]> code.delx.au - gnu-emacs/blobdiff - man/faq.texi
ChangeLog
[gnu-emacs] / man / faq.texi
index 3d5281950c2caf74497bee43b21c8689ba78b1a1..91219806b6237c3169784f44e102709c48722170 100644 (file)
@@ -1,4 +1,4 @@
-\input texinfo   @c -*-texinfo-*-  -*- coding: latin-1 -*-
+\input texinfo   @c -*- coding: latin-1; mode: texinfo; -*-
 @c %**start of header
 @setfilename ../info/efaq
 @settitle GNU Emacs FAQ
@@ -7,19 +7,15 @@
 @setchapternewpage odd
 
 @c This is used in many places
-@set VER 21.1
-
-@c The @ifinfo stuff only appears in the Info version
-@ifinfo
-@dircategory Emacs
-@direntry
-* Emacs FAQ: (efaq).   Frequently Asked Questions about Emacs.
-@end direntry
+@set VER 21.3
 
+@copying
+Copyright 2001, 2002 Free Software Foundation, Inc.
 Copyright 1994,1995,1996,1997,1998,1999,2000 Reuven M. Lerner@*
 Copyright 1992,1993 Steven Byrnes@*
 Copyright 1990,1991,1992 Joseph Brian Wells@*
 
+@quotation
 This list of frequently asked questions about GNU Emacs with answers
 ("FAQ") may be translated into other languages, transformed into other
 formats (e.g. Texinfo, Info, WWW, WAIS), and updated with new information.
@@ -36,8 +32,13 @@ itself allows free copying and redistribution.
 
 [This version has been somewhat edited from the last-posted version
 (as of August 1999) for inclusion in the Emacs distribution.]
+@end quotation
+@end copying
 
-@end ifinfo
+@dircategory Emacs
+@direntry
+* Emacs FAQ: (efaq).   Frequently Asked Questions about Emacs.
+@end direntry
 
 @c The @titlepage stuff only appears in the printed version
 @titlepage
@@ -47,26 +48,7 @@ itself allows free copying and redistribution.
 @c The following two commands start the copyright page.
 @page
 @vskip 0pt plus 1filll
-Copyright @copyright{} 1994,1995,1996,1997,1998,1999,2000 Reuven M. Lerner@*
-Copyright @copyright{} 1992,1993 Steven Byrnes@*
-Copyright @copyright{} 1990,1991,1992 Joseph Brian Wells@*
-
-This list of frequently asked questions about GNU Emacs with answers
-("FAQ") may be translated into other languages, transformed into other
-formats (e.g. Texinfo, Info, WWW, WAIS), and updated with new information.
-
-The same conditions apply to any derivative of the FAQ as apply to the FAQ
-itself.  Every copy of the FAQ must include this notice or an approved
-translation, information on who is currently maintaining the FAQ and how to
-contact them (including their e-mail address), and information on where the
-latest version of the FAQ is archived (including FTP information).
-
-The FAQ may be copied and redistributed under these conditions, except that
-the FAQ may not be embedded in a larger literary work unless that work
-itself allows free copying and redistribution.
-
-[This version has been somewhat edited from the last-posted version
-(as of August 1999) for inclusion in the Emacs distribution.]
+@insertcopying
 @end titlepage
 
 @node    Top, FAQ notation, (dir), (dir)
@@ -109,18 +91,18 @@ used in the FAQ.
 * Basic keys::                  
 * Extended commands::           
 * On-line manual::              
-* Filename conventions::        
+* File-name conventions::        
 * Common acronyms::             
 @end menu
 
 @node Basic keys, Extended commands, FAQ notation, FAQ notation
-@section What do these mean: @kbd{C-h}, @kbd{M-C-a}, @key{RET}, @kbd{@key{ESC} a}, etc.?
+@section What do these mean: @kbd{C-h}, @kbd{C-M-a}, @key{RET}, @kbd{@key{ESC} a}, etc.?
 @cindex Basic keys
 @cindex Control key, notation for
 @cindex @key{Meta} key, notation for
 @cindex Control-Meta characters, notation for
 @cindex @kbd{C-h}, definition of
-@cindex @kbd{M-C-h}, definition of
+@cindex @kbd{C-M-h}, definition of
 @cindex @key{DEL}, definition of
 @cindex @key{ESC}, definition of
 @cindex @key{LFD}, definition of
@@ -180,7 +162,7 @@ really means press the space key.
 
 The ASCII code sent by @kbd{C-x} (except for @kbd{C-?}) is the value
 that would be sent by pressing just @key{x} minus 96 (or 64 for
-uppercase @key{X}) and will be from 0 to 31.  On Unix and GNU/Linux
+upper-case @key{X}) and will be from 0 to 31.  On Unix and GNU/Linux
 terminals, the ASCII code sent by @kbd{M-x} is the sum of 128 and the
 ASCII code that would be sent by pressing just @key{x}.  Essentially,
 @key{Control} turns off bits 5 and 6 and @key{Meta} turns on bit
@@ -192,9 +174,9 @@ pressed.}.
 @kbd{C-?}  a ``control'' key, since 127 has both bits 5 and 6 turned ON.
 Also, on very few keyboards does @kbd{C-?} generate ASCII code 127.
 
-@inforef{Characters, Characters, emacs}, and @inforef{Keys, Keys, emacs},
-for more information.  (@xref{On-line manual}, for more information about
-Info.)
+@inforef{Text Characters, Text Characters, emacs}, and @inforef{Keys,
+Keys, emacs}, for more information.  (@xref{On-line manual}, for more
+information about Info.)
 
 @node Extended commands, On-line manual, Basic keys, FAQ notation
 @section What does @file{M-x @var{command}} mean?
@@ -223,7 +205,7 @@ good candidate for this, on keyboards that have such a key.
 If you need to run non-interactive Emacs functions, see @ref{Evaluating
 Emacs Lisp code}.
 
-@node On-line manual, Filename conventions, Extended commands, FAQ notation
+@node On-line manual, File-name conventions, Extended commands, FAQ notation
 @section How do I read topic XXX in the on-line manual?
 @cindex On-line manual, reading topics in
 @cindex Reading topics in the on-line manual
@@ -247,10 +229,10 @@ improperly.  In this case you should complain.
 @xref{Getting a printed manual}, if you would like a paper copy of the
 Emacs manual.
 
-@node Filename conventions, Common acronyms, On-line manual, FAQ notation
+@node File-name conventions, Common acronyms, On-line manual, FAQ notation
 @section What are @file{etc/SERVICE}, @file{src/config.h}, and @file{lisp/default.el}?
-@cindex Filename conventions
-@cindex Conventions for filenames
+@cindex File-name conventions
+@cindex Conventions for file names
 @cindex Directories and files that come with Emacs
 
 These are files that come with Emacs.  The Emacs distribution is divided
@@ -274,13 +256,13 @@ default, Info documentation is placed in @file{/usr/local/info}.
 Some of these files are available individually via FTP or e-mail; see
 @ref{Informational files for Emacs}.  They all are available in the
 source distribution.  Many of the files in the @file{etc} directory are
-also available via the Emacs "@samp{Help} menu, or by typing @kbd{C-h ?}
+also available via the Emacs @samp{Help} menu, or by typing @kbd{C-h ?}
 (@kbd{M-x help-for-help}).
 
 Your system administrator may have removed the @file{src} directory and
 many files from the @file{etc} directory.
 
-@node Common acronyms,  , Filename conventions, FAQ notation
+@node Common acronyms,  , File-name conventions, FAQ notation
 @section What are FSF, LPF, OSF, GNU, RMS, FTP, and GPL?
 @cindex FSF, definition of
 @cindex LPF, definition of
@@ -430,7 +412,7 @@ posting bug reports to this newsgroup directly (@pxref{Reporting bugs}).
 
 @node Newsgroup archives, Reporting bugs, Guidelines for newsgroup postings, General questions
 @section Where can I get old postings to @uref{news:gnu.emacs.help} and other GNU groups?
-@cindex Archived postings from @uref{news:gnu.emacs.help}
+@cindex Archived postings from @code{gnu.emacs.help}
 @cindex Usenet archives for GNU groups
 @cindex Old Usenet postings for GNU groups
 
@@ -670,8 +652,8 @@ information.  To get a list of these commands, type @samp{?} after
 @node Getting a printed manual, Emacs Lisp documentation, Learning how to do something, Getting help
 @section How do I get a printed copy of the Emacs manual?
 @cindex Printed Emacs manual, obtaining
-@cindex Manual, obtaining a printed copy of
-@cindex Emacs manual, obtaining a printed copy of
+@cindex Manual, obtaining a printed or HTML copy of
+@cindex Emacs manual, obtaining a printed or HTML copy of
 
 You can order a printed copy of the Emacs manual from the FSF.  For
 details see the @uref{http://www.gnu.org/order/order.html, GNU Web site}
@@ -688,6 +670,7 @@ you can get a PostScript version from
 
 @uref{http://www.gnu.org/manual/emacs/ps/emacs.ps.gz}
 
+@cindex HTML version of Emacs manual, obtaining
 An HTML version of the manual is at
 
 @uref{www.gnu.org/manual/emacs/index.html}
@@ -758,7 +741,7 @@ perform these steps:
 @enumerate
 @item
 Move the files to the @file{info} directory in the installed Emacs
-distribution.  @xref{Filename conventions}, if you don't know where that
+distribution.  @xref{File-name conventions}, if you don't know where that
 is.
 
 @item
@@ -797,9 +780,9 @@ parentheses.  This goes to the node named ``Top'' in that file.  For
 example, to view a Info file named @file{@var{info-file}} in your home
 directory, you can type this:
 
-@lisp
-C-h i g (~/@var{info-file}) @key{RET}
-@end lisp
+@example
+@kbd{C-h i g (~/@var{info-file}) @key{RET}}
+@end example
 
 @item
 You can create your own Info directory.  You can tell Emacs where that
@@ -915,7 +898,7 @@ informational files about Emacs and relevant aspects of the GNU project
 are available for you to read.
 
 The following files are available in the @file{etc} directory of the
-Emacs distribution (see @ref{Filename conventions}, if you're not sure
+Emacs distribution (see @ref{File-name conventions}, if you're not sure
 where that is).
 
 @table @file
@@ -977,7 +960,7 @@ Bulletin}, are at
 @ref{Problems building Emacs}, or @ref{Linking with -lX11 fails}, if you
 have problems with the installation.
 
-The file @file{etc/SERVICE} (see @ref{Filename conventions}, if you're
+The file @file{etc/SERVICE} (see @ref{File-name conventions}, if you're
 not sure where that is) lists companies and individuals willing to sell
 you help in installing or using Emacs.  An up-to-date version this file
 is available on @samp{ftp.gnu.org} (@pxref{Informational files for
@@ -1031,8 +1014,8 @@ Via HTTP or FTP.  You can always fetch the latest FAQ from
 
 @item
 In the Emacs distribution.  Since Emacs 18.56, the FAQ at the time
-of release has been part of the Emacs distribution as
-@file{man/faq.texi} (@pxref{Filename conventions}).
+of release has been part of the Emacs distribution as either
+@file{etc/FAQ} or @file{man/faq.texi} (@pxref{File-name conventions}).
 
 @item
 Via the World Wide Web.  A hypertext version is available at
@@ -1113,7 +1096,7 @@ original TECO Emacs inside of Emacs.
 
 @cindex Why Emacs?
 For some not-so-serious alternative reasons for Emacs to have that
-name, check out the file @file{etc/JOKES} (@pxref{Filename
+name, check out the file @file{etc/JOKES} (@pxref{File-name
 conventions}).
 
 @node Latest version of Emacs, New in Emacs 20, Origin of the term Emacs, Status of Emacs
@@ -1159,15 +1142,15 @@ and are now included with the standard distribution.
 @cindex Toolbar support
 Emacs 21 features a thorough rewrite of the display engine.  The new
 display engine supports variable-size fonts, images, and can play sounds
-on platforms which support that.  As a result, the visual appearence of
+on platforms which support that.  As a result, the visual appearance of
 Emacs, when it runs on a windowed display, is much more reminiscent of
 modern GUI programs, and includes 3D widgets (used for the mode line and
 the scroll bars), a configurable and extensible toolbar, tooltips
 (a.k.a.@: balloon help), and other niceties.
 
-@cindex Colors on character terminals
+@cindex Colors on text-only terminals
 @cindex TTY colors
-In addition, Emacs 21 supports faces on character terminals.  This means
+In addition, Emacs 21 supports faces on text-only terminals.  This means
 that you can now have colors when you run Emacs on a GNU/Linux console
 and on @code{xterm} with @kbd{emacs -nw}.
 
@@ -1181,7 +1164,7 @@ and on @code{xterm} with @kbd{emacs -nw}.
 * Debugging a customization file::  
 * Colors on a TTY::  
 * Displaying the current line or column::  
-* Displaying the current filename in the titlebar::  
+* Displaying the current file name in the titlebar::  
 * Turning on abbrevs by default::  
 * Turning on auto-fill by default::  
 * Associating modes with files::  
@@ -1195,6 +1178,7 @@ and on @code{xterm} with @kbd{emacs -nw}.
 * Using an already running Emacs process::  
 * Compiler error messages::     
 * Indenting switch statements::  
+* Customizing C and C++ indentation::  
 * Horizontal scrolling::        
 * Overwrite mode::              
 * Turning off beeping::         
@@ -1216,6 +1200,7 @@ and on @code{xterm} with @kbd{emacs -nw}.
 * Documentation for etags::     
 * Disabling backups::           
 * Disabling auto-save-mode::    
+* Going to a line by number::   
 * Modifying pull-down menus::   
 * Deleting menus and menu options::  
 * Turning on syntax highlighting::  
@@ -1223,6 +1208,7 @@ and on @code{xterm} with @kbd{emacs -nw}.
 * Replacing highlighted text::  
 * Editing MS-DOS files::        
 * Filling paragraphs with a single space::  
+* Escape sequences in shell output::   
 @end menu
 
 @node Setting up a customization file, Colors on a TTY, Common requests, Common requests
@@ -1257,8 +1243,8 @@ interested in performing frequently requested, basic tasks.
 @cindex Syntax highlighting on a TTY
 @cindex Console, colors
 
-As of Emacs 21.1, colors and faces are supported in non-windowed mode,
-i.e.@: on Unix and GNU/Linux character terminals and consoles, and when
+In Emacs 21.1 and later, colors and faces are supported in non-windowed mode,
+i.e.@: on Unix and GNU/Linux text-only terminals and consoles, and when
 invoked as @samp{emacs -nw} on X and MS-Windows.  (Colors and faces were
 supported in the MS-DOS port since Emacs 19.29.)  Emacs automatically
 detects color support at startup and uses it if available.  If you think
@@ -1294,7 +1280,7 @@ eval-last-sexp}).
 Use @kbd{C-h v} (@kbd{M-x describe-variable}) to check the value of
 variables which you are trying to set or use.
 
-@node Displaying the current line or column, Displaying the current filename in the titlebar, Debugging a customization file, Common requests
+@node Displaying the current line or column, Displaying the current file name in the titlebar, Debugging a customization file, Common requests
 @section How do I make Emacs display the current line (or column) number?
 @cindex @code{line-number-mode}
 @cindex Displaying the current line or column
@@ -1342,10 +1328,10 @@ instructions on how to get it.
 None of the @code{vi} emulation modes provide the ``set number''
 capability of @code{vi} (as far as we know).
 
-@node Displaying the current filename in the titlebar, Turning on abbrevs by default, Displaying the current line or column, Common requests
-@section How can I modify the titlebar to contain the current filename?
-@cindex Titlebar, displaying the current filename in
-@cindex Filename, displaying in the titlebar
+@node Displaying the current file name in the titlebar, Turning on abbrevs by default, Displaying the current line or column, Common requests
+@section How can I modify the titlebar to contain the current file name?
+@cindex Titlebar, displaying the current file name in
+@cindex File name, displaying in the titlebar
 @cindex @code{frame-title-format}
 
 The contents of an Emacs frame's titlebar is controlled by the variable
@@ -1356,8 +1342,8 @@ variables.)
 
 By default, the titlebar for a frame does contain the name of the buffer
 currently being visited, except if there is a single frame.  In such a
-case, the titlebar contains the name of the user and the machine at
-which Emacs was invoked.  This is done by setting
+case, the titlebar contains Emacs invocation name and the name of the
+machine at which Emacs was invoked.  This is done by setting
 @code{frame-title-format} to the default value of
 
 @lisp
@@ -1372,7 +1358,7 @@ in your @file{.emacs}:
 (setq frame-title-format "%b")
 @end lisp
 
-@node Turning on abbrevs by default, Turning on auto-fill by default, Displaying the current filename in the titlebar, Common requests
+@node Turning on abbrevs by default, Turning on auto-fill by default, Displaying the current file name in the titlebar, Common requests
 @section How do I turn on abbrevs by default just in mode @var{mymode}?
 @cindex Abbrevs, turning on by default
 
@@ -1478,7 +1464,7 @@ to search for unprintable characters using @code{re-search-forward}:
 
 Using @code{isearch-forward-regexp}:
 
-@kbd{M-C-s [^ @key{TAB} @key{RET} C-q @key{RET} C-q C-l @key{SPC} -~]}
+@kbd{C-M-s [^ @key{TAB} @key{LFD} C-q @key{RET} C-q C-l @key{SPC} -~]}
 
 To delete all unprintable characters, simply use replace-regexp:
 
@@ -1504,13 +1490,14 @@ something in the minibuffer.
 @cindex @code{transient-mark-mode}
 @cindex Region, highlighting a
 
-If you are using a windowing system such as X, you can cause the region
-to be highlighted when the mark is active by including
+You can cause the region to be highlighted when the mark is active by
+including
 
 @lisp
 (transient-mark-mode t)
 @end lisp
 
+@noindent
 in your @file{.emacs} file.  (Also see @ref{Turning on syntax
 highlighting}.)
 
@@ -1622,11 +1609,10 @@ or by invoking @code{server-start} from @file{.emacs}:
 (if (@var{some conditions are met}) (server-start))
 @end lisp
 
-When this is done, Emacs starts a subprocess running a program called
-@samp{server}.  @samp{server} creates a Unix domain socket.  The socket
-is either named @file{.emacs_server}, in the user's home directory,
-or @file{esrv-@var{user-id}-@var{system-name}}, in the @file{/tmp}
-directory, depending on how @samp{emacsserver} was compiled.
+When this is done, Emacs creates a Unix domain socket.
+The socket is either named @file{.emacs_server}, in the user's home directory,
+or @file{esrv-@var{userid}-@var{systemname}}, in the @file{/tmp}
+directory, depending on your system.  See @var{server-socket-name}.
 
 To get your news reader, mail reader, etc., to invoke
 @samp{emacsclient}, try setting the environment variable @code{EDITOR}
@@ -1664,8 +1650,9 @@ share the same filesystem for this to work.  The pathnames that
 @samp{emacsclient} specifies should be correct for the filesystem that
 the Emacs process sees.  The Emacs process should not be suspended at
 the time @samp{emacsclient} is invoked.  On Unix and GNU/Linux systems,
-@samp{emacsclient} should either be invoked from another X window or
-from a shell window inside Emacs itself.
+@samp{emacsclient} should either be invoked from another X window, or
+from a shell window inside Emacs itself, or from another interactive
+session, e.g., by means of a @code{screen} program.
 
 @cindex @code{gnuserv}
 There is an enhanced version of @samp{emacsclient}/server called
@@ -1707,7 +1694,7 @@ following to inform Emacs of your changes:
          compilation-error-regexp-alist))
 @end lisp
 
-@node Indenting switch statements, Horizontal scrolling, Compiler error messages, Common requests
+@node Indenting switch statements, Customizing C and C++ indentation, Compiler error messages, Common requests
 @section How do I change the indentation for @code{switch}?
 @cindex @code{switch}, indenting
 @cindex Indenting of @code{switch}
@@ -1744,7 +1731,91 @@ C programming in Emacs 20 and later) and add the following line to yoyr
 
 There appears to be no way to do this with the old @code{c-mode}.
 
-@node Horizontal scrolling, Overwrite mode, Indenting switch statements, Common requests
+@node Customizing C and C++ indentation, Horizontal scrolling, Indenting switch statements, Common requests
+@section How to customize indentation in C, C@t{++}, and Java buffers?
+@cindex Indentation, how to customize
+@cindex Customize indentation
+
+The Emacs @code{cc-mode} features an interactive procedure for
+customizing the indentation style, which is fully explained in the
+@cite{CC Mode} manual that is part of the Emacs distribution, see
+@ref{Customizing Indentation, , Customization Indentation, ccmode,
+The CC Mode Manual}.  Here's a short summary of the procedure:
+
+@enumerate
+@item
+Go to the beginning of the first line where you don't like the
+indentation and type @kbd{C-c C-o}.  Emacs will prompt you for the
+syntactic symbol; type @key{RET} to accept the default it suggests.
+
+@item
+Emacs now prompts for the offset of this syntactic symbol, showing the
+default (the current definition) inside parentheses.  You can choose
+one of these:
+
+@table @code
+@item 0
+No extra indentation.
+@item +
+Indent one basic offset.
+@item -
+Outdent one basic offset.
+@item ++
+Indent two basic offsets
+@item --
+Outdent two basic offsets.
+@item *
+Indent half basic offset.
+@item /
+Outdent half basic offset.
+@end table
+
+@item
+After choosing one of these symbols, type @kbd{C-c C-q} to reindent
+the line or the block according to what you just specified.
+
+@item
+If you don't like the result, go back to step 1.  Otherwise, add the
+following line to your @file{.emacs}:
+
+@lisp
+(c-set-offset '@var{syntactic-symbol} @var{offset})
+@end lisp
+
+@noindent
+where @var{syntactic-symbol} is the name Emacs shows in the minibuffer
+when you type @kbd{C-c C-o} at the beginning of the line, and
+@var{offset} is one of the indentation symbols listed above (@code{+},
+@code{/}, @code{0}, etc.) that you've chosen during the interactive
+procedure.
+
+@item
+Go to the next line whose indentation is not to your liking and repeat
+the process there.
+@end enumerate
+
+It is recommended to put all the resulting @code{(c-set-offset ...)}
+customizations inside a C mode hook, like this:
+
+@lisp
+(defun my-c-mode-hook ()
+  (c-set-offset ...)
+  (c-set-offset ...))
+(add-hook 'c-mode-hook 'my-c-mode-hook)
+@end lisp
+
+@noindent
+Using @code{c-mode-hook} avoids the need to put a @w{@code{(require
+'cc-mode)}} into your @file{.emacs} file, because @code{c-set-offset}
+might be unavailable when @code{cc-mode} is not loaded.
+
+Note that @code{c-mode-hook} runs for C source files only; use
+@code{c++-mode-hook} for C@t{++} sources, @code{java-mode-hook} for
+Java sources, etc.  If you want the same customizations to be in
+effect in @emph{all} languages supported by @code{cc-mode}, use
+@code{c-mode-common-hook}.
+
+@node Horizontal scrolling, Overwrite mode, Customizing C and C++ indentation, Common requests
 @section How can I make Emacs automatically scroll horizontally?
 @cindex @code{hscroll-mode}
 @cindex Horizontal scrolling
@@ -1821,7 +1892,7 @@ And evaluate the following Lisp form:
 @end example
 
 @node Turning the volume down, Automatic indentation, Turning off beeping, Common requests
-@section How do I turn down the bell volume in Emacs running under X Windows?
+@section How do I turn down the bell volume in Emacs running under X?
 @cindex Bell, volume of
 @cindex Volume of bell
 
@@ -1920,7 +1991,7 @@ delete it and reinsert it.  Emacs will momentarily move the cursor to
 the matching parenthesis.
 
 @item
-@kbd{M-C-f} (@code{forward-sexp}) and @kbd{M-C-b} (@code{backward-sexp})
+@kbd{C-M-f} (@code{forward-sexp}) and @kbd{C-M-b} (@code{backward-sexp})
 will skip over one set of balanced parentheses, so you can see which
 parentheses match.  (You can train it to skip over balanced brackets
 and braces at the same time by modifying the syntax table.)
@@ -2017,7 +2088,7 @@ You can type the form in the @file{*scratch*} buffer, and then type
 will be inserted in the buffer.
 
 @item
-In @code{emacs-lisp-mode}, typing @kbd{M-C-x} evaluates a top-level form
+In @code{emacs-lisp-mode}, typing @kbd{C-M-x} evaluates a top-level form
 before or around point.
 
 @item
@@ -2070,11 +2141,11 @@ when you press the @key{TAB} character in certain modes.
 To do this to an entire buffer, type @kbd{M-< M-x replace-regexp
 @key{RET} ^ @key{RET} > @key{RET}}.
 
-To do this to a region, use @code{string-rectangle} (@kbd{C-x r t}).
+To do this to a region, use @code{string-insert-rectangle}.
 Set the mark (@kbd{C-@key{SPC}}) at the beginning of the first line you
 want to prefix, move the cursor to last line to be prefixed, and type
-@kbd{C-x r t > @key{RET}}.  To do this for the whole buffer, type
-@kbd{C-x h C-x r t > @key{RET}}.
+@kbd{M-x string-insert-rectangle @key{RET}}.  To do this for the whole
+buffer, type @kbd{C-x h M-x string-insert-rectangle @key{RET}}.
 
 If you are trying to prefix a yanked mail message with @samp{>}, you
 might want to set the variable @code{mail-yank-prefix}.  Better yet, use
@@ -2113,11 +2184,11 @@ If you need to repeat a command a small number of times, you can use
 
 @node Forcing Emacs to iconify itself, Using regular expressions, Forcing the cursor to remain in the same column, Common requests
 @section How do I tell Emacs to iconify itself?
-@cindex Iconification under X Windows
-@cindex X Windows and iconification
+@cindex Iconification under the X Window System
+@cindex X Window System and iconification
 @cindex Suspending Emacs
 
-@kbd{C-z} iconifies Emacs when running under X Windows and suspends Emacs
+@kbd{C-z} iconifies Emacs when running under X and suspends Emacs
 otherwise.  @inforef{Misc X, Misc X, emacs}.
 
 @node Using regular expressions, Replacing text across multiple files, Forcing Emacs to iconify itself, Common requests
@@ -2219,7 +2290,7 @@ should have their backups put in certain directories.  A typical use is
 to add the element @code{("." . @var{dir})} to force Emacs to put
 @strong{all} backup files in the directory @file{dir}.
 
-@node Disabling auto-save-mode, Modifying pull-down menus, Disabling backups, Common requests
+@node Disabling auto-save-mode, Going to a line by number, Disabling backups, Common requests
 @section How do I disable @code{auto-save-mode}?
 @cindex Disabling @code{auto-save-mode}
 @cindex Auto-saving
@@ -2243,7 +2314,43 @@ such as @file{/tmp}.
 To disable or change how @code{auto-save-mode} works, @inforef{Auto
 Save, , emacs}.
 
-@node Modifying pull-down menus, Deleting menus and menu options, Disabling auto-save-mode, Common requests
+@node Going to a line by number, Modifying pull-down menus, Disabling auto-save-mode, Common requests
+@section How can I go to a certain line given its number?
+@cindex Going to a line by number
+@cindex Compilation error messages
+@cindex Recompilation
+
+Are you sure you indeed need to go to a line by its number?  Perhaps all
+you want is to display a line in your source file for which a compiler
+printed an error message?  If so, compiling from within Emacs using the
+@kbd{M-x compile} and @kbd{M-x recompile} commands is a much more
+effective way of doing that.  Emacs automatically intercepts the compile
+error messages, inserts them into a special buffer called
+@code{*compilation*}, and lets you visit the locus of each message in
+the source.  Type @kbd{C-x `} to step through the offending lines one by
+one.  Click @kbd{Mouse-2} or press @key{RET} on a message text in the
+@code{*compilation*} buffer to go to the line whose number is mentioned
+in that message.
+
+But if you indeed need to go to a certain text line, type @kbd{M-x
+goto-line @key{RET}}.  Emacs will prompt you for the number of the line
+and go to that line.
+
+You can do this faster by invoking @code{goto-line} with a numeric
+argument that is the line's number.  For example, @kbd{C-u 286 M-x
+goto-line @key{RET}} will jump to line number 286 in the current
+buffer.
+
+If you need to use this command frequently, you might consider binding
+it to a key.  The following snippet, if added to your @file{~/.emacs}
+file, will bind the sequence @kbd{C-x g} to @code{goto-line}:
+
+@lisp
+ (global-set-key "\C-xg" 'goto-line)
+@end lisp
+
+
+@node Modifying pull-down menus, Deleting menus and menu options, Going to a line by number, Common requests
 @section How can I create or modify new pull-down menu options?
 @cindex Pull-down menus, creating or modifying
 @cindex Menus, creating or modifying
@@ -2329,8 +2436,8 @@ To move a menu option from one position to another, simply evaluate
 
 More detailed information---and more examples of how to create and
 modify menu options---are in the @cite{Emacs Lisp Reference Manual}, under
-``Keymaps''.  (@xref{Emacs Lisp documentation}, for information on this
-manual.)
+``Menu Keymaps''.  (@xref{Emacs Lisp documentation}, for information on
+this manual.)
 
 @node Deleting menus and menu options, Turning on syntax highlighting, Modifying pull-down menus, Common requests
 @section How do I delete menus and menu options?
@@ -2467,7 +2574,7 @@ consult the documentation of the variables @code{ps-printer-name},
 @node Scrolling only one line, Replacing highlighted text, Turning on syntax highlighting, Common requests
 @section How can I force Emacs to scroll only one line when I move past the bottom of the screen?
 @cindex Scrolling only one line
-@cindex Reducing the increment when scrollng
+@cindex Reducing the increment when scrolling
 
 Place the following Lisp form in your @file{.emacs} file:
 
@@ -2481,7 +2588,7 @@ Place the following Lisp form in your @file{.emacs} file:
 @section How can I replace highlighted text with what I type?
 @cindex @code{delete-selection-mode}
 @cindex Replacing highlighted text
-@cindex Highlighing and replacing text
+@cindex Highlighting and replacing text
 
 Use @code{delete-selection-mode}, which you can start automatically by
 placing the following Lisp form in your @file{.emacs} file:
@@ -2526,7 +2633,7 @@ MS-DOS files as they are loaded and saved, allowing you to ignore the
 different conventions that Unix and MS-DOS have for delineating the end
 of a line.
 
-@node Filling paragraphs with a single space,  , Editing MS-DOS files, Common requests
+@node Filling paragraphs with a single space,  Escape sequences in shell output, Editing MS-DOS files, Common requests
 @section How can I tell Emacs to fill paragraphs with a single space after each period?
 @cindex One space following periods
 @cindex Single space following periods
@@ -2540,20 +2647,54 @@ following two lines to your @file{.emacs} file:
 (setq sentence-end-double-space nil)
 @end lisp
 
+@node Escape sequences in shell output, , Filling paragraphs with a single space, Common requests
+@section Why these strange escape sequences from @code{ls} from the Shell mode?
+@cindex Escape sequences in @code{ls} output
+@cindex @code{ls} in Shell mode
+
+This happens because @code{ls} is aliased to @samp{ls --color} in your
+shell init file.  You have two alternatives to solve this:
+
+@itemize @bullet
+@item
+Make the alias conditioned on the @code{EMACS} variable in the
+environment.  When Emacs runs a subsidiary shell, it exports the
+@code{EMACS} variable with the value @code{t} to that shell.  You can
+unalias @code{ls} when that happens, thus limiting the alias to your
+interactive sessions.
+
+@item
+Install the @code{ansi-color} package (bundled with Emacs 21.1 and
+later), which converts these ANSI escape sequences into colors.
+@end itemize
+
 @c ------------------------------------------------------------
 @node    Bugs and problems, Compiling and installing Emacs, Common requests, Top
 @chapter Bugs and problems
 @cindex Bugs and problems
 
+The Emacs manual lists some common kinds of trouble users could get
+into, see @ref{Lossage, , Dealing with Emacs Trouble, emacs, The GNU
+Emacs Manual}, so you might look there if the problem you encounter
+isn't described in this chapter.  If you decide you've discovered a bug,
+see @ref{Bugs, , Reporting Bugs, emacs, The GNU Emacs Manual}, for
+instructions how to do that.
+
+The file @file{etc/PROBLEMS} in the Emacs distribution lists various
+known problems with building and using Emacs on specific platforms;
+type @kbd{C-h P} to read it.
+
 @menu
 * Problems with very large files::  
 * ^M in the shell buffer::      
 * Shell process exits abnormally::  
+* Problems with Shell Mode on MS-Windows::  
 * Termcap/Terminfo entries for Emacs::  
 * Spontaneous entry into isearch-mode::  
 * Problems talking to certain hosts::  
 * Errors with init files::      
 * Emacs ignores X resources::   
+* Emacs ignores frame parameters::  
 * Emacs takes a long time to visit files::  
 * Editing files with $ in the name::  
 * Shell mode loses the current directory::  
@@ -2659,6 +2800,16 @@ with the following Lisp form,
 (setenv "ESHELL" "/bin/csh")
 @end lisp
 
+The above solutions try to prevent the shell from producing the
+@samp{^M} characters in the first place.  If this is not possible
+(e.g., if you use a Windows shell), you can get Emacs to remove these
+characters from the buffer by adding this to your @file{.emacs} init
+file:
+
+@smalllisp
+(add-hook 'comint-output-filter-functions 'shell-strip-ctrl-m)
+@end smalllisp
+
 On a related note: If your shell is echoing your input line in the shell
 buffer, you might want to try the following command in your shell
 start-up file:
@@ -2667,7 +2818,7 @@ start-up file:
 stty -icrnl -onlcr -echo susp ^Z
 @end example
 
-@node Shell process exits abnormally, Termcap/Terminfo entries for Emacs, ^M in the shell buffer, Bugs and problems
+@node Shell process exits abnormally, Problems with Shell Mode on MS-Windows, ^M in the shell buffer, Bugs and problems
 @section Why do I get "Process shell exited abnormally with code 1"?
 @cindex Abnormal exits from @code{shell-mode}
 @cindex @code{shell-mode} exits
@@ -2692,10 +2843,39 @@ It has been reported that this sometimes happened when Emacs was started
 as an X client from an xterm window (i.e., had a controlling tty) but the
 xterm was later terminated.
 
-See also @samp{PROBLEMS} (in the top-level directory when you unpack the
-Emacs source) for other possible causes of this message.
+See also @samp{PROBLEMS} (in the @file{etc} subdirectory of the
+top-level directory when you unpack the Emacs source) for other
+possible causes of this message.
 
-@node Termcap/Terminfo entries for Emacs, Spontaneous entry into isearch-mode, Shell process exits abnormally, Bugs and problems
+@node Problems with Shell Mode on MS-Windows, Termcap/Terminfo entries for Emacs, Shell process exits abnormally, Bugs and problems
+@section Why do I get an error message when I try to run @kbd{M-x shell}?
+
+@cindex Shell Mode, and MS-Windows
+@cindex @code{explicit-shell-file-name}
+On MS-Windows, this might happen because Emacs tries to look for the
+shell in a wrong place.  The default file name @file{/bin/sh} is
+usually incorrect for non-Unix systems.  If you know where your shell
+executable is, set the variable @code{explicit-shell-file-name} in
+your @file{.emacs} file to point to its full file name, like this:
+
+@lisp
+(setq explicit-shell-file-name "d:/shells/bash.exe")
+@end lisp
+
+If you don't know what shell does Emacs use, try the @kbd{M-!}
+command; if that works, put the following line into your
+@file{.emacs}:
+
+@lisp
+(setq explicit-shell-file-name shell-file-name)
+@end lisp
+
+@cindex Antivirus programs, and Shell Mode
+Some people have trouble with Shell Mode because of intrusive
+antivirus software; disabling the resident antivirus program solves
+the problems in those cases.
+
+@node Termcap/Terminfo entries for Emacs, Spontaneous entry into isearch-mode, Problems with Shell Mode on MS-Windows, Bugs and problems
 @section Where is the termcap/terminfo entry for terminal type "emacs"?
 @cindex Termcap
 @cindex Terminfo
@@ -2807,7 +2987,7 @@ hook that will be evaluated after the package is loaded.  A common case
 of this is explained in @ref{Terminal setup code works after Emacs has
 begun}.
 
-@node Emacs ignores X resources, Emacs takes a long time to visit files, Errors with init files, Bugs and problems
+@node Emacs ignores X resources, Emacs ignores frame parameters, Errors with init files, Bugs and problems
 @section Why does Emacs ignore my X resources (my .Xdefaults file)?
 @cindex X resources being ignored
 @cindex Ignored X resources
@@ -2886,7 +3066,23 @@ then in the files listed in  @code{XFILESEARCHPATH}.
 
 @end enumerate
 
-@node Emacs takes a long time to visit files, Editing files with $ in the name, Emacs ignores X resources, Bugs and problems
+@node Emacs ignores frame parameters, Emacs takes a long time to visit files, Emacs ignores X resources, Bugs and problems
+@section Why don't my customizations of the frame parameters work?
+@cindex Frame parameters
+
+This probably happens because you have set the frame parameters in the
+variable @code{initial-frame-alist}.  That variable holds parameters
+used only for the first frame created when Emacs starts.  To customize
+the parameters of all frames, change the variable
+@code{default-frame-alist} instead.
+
+These two variables exist because many users customize the initial frame
+in a special way.  For example, you could determine the position and
+size of the initial frame, but would like to control the geometry of the
+other frames by individually positioning each one of them.
+
+
+@node Emacs takes a long time to visit files, Editing files with $ in the name, Emacs ignores frame parameters, Bugs and problems
 @section Why does Emacs take 20 seconds to visit a file?
 @cindex Visiting files takes a long time
 @cindex Delay when visiting files
@@ -2905,10 +3101,10 @@ over NFS anyway, the best solution is to recompile Emacs with
 @node Editing files with $ in the name, Shell mode loses the current directory, Emacs takes a long time to visit files, Bugs and problems
 @section How do I edit a file with a @samp{$} in its name?
 @cindex Editing files with @samp{$} in the name
-@cindex @samp{$} in filenames
-@cindex Filenames containing @samp{$}, editing
+@cindex @samp{$} in file names
+@cindex File names containing @samp{$}, editing
 
-When entering a filename in the minibuffer, Emacs will attempt to expand
+When entering a file name in the minibuffer, Emacs will attempt to expand
 a @samp{$} followed by a word as an environment variable.  To suppress
 this behavior, type @kbd{$$} instead.
 
@@ -3005,7 +3201,7 @@ programs, then removing the access.  This reduces the risk somewhat by
 narrowing the time window when hostile users would have access, but
 @emph{does not eliminate the risk}.
 
-On most computers running Unix and X Windows, you enable and disable
+On most computers running Unix and X, you enable and disable
 access using the @code{xhost} command.  To allow all hosts access to
 your X server, use
 
@@ -3216,10 +3412,10 @@ files before you upgrade, and you shouldn't have too much trouble.
 @cindex Problems building Emacs
 @cindex Errors when building Emacs
 
-First look in the file @file{PROBLEMS} (in the top-level directory when
-you unpack the Emacs source) to see if there is already a solution for
-your problem.  Next, look for other questions in this FAQ that have to
-do with Emacs installation and compilation problems.
+First look in the file @file{etc/PROBLEMS} (where you unpack the Emacs
+source) to see if there is already a solution for your problem.  Next,
+look for other questions in this FAQ that have to do with Emacs
+installation and compilation problems.
 
 If you'd like to have someone look at your problem and help solve it,
 see @ref{Help installing Emacs}.
@@ -3227,7 +3423,7 @@ see @ref{Help installing Emacs}.
 If you cannot find a solution in the documentation, send a message to
 @email{bug-gnu-emacs@@gnu.org}.
 
-Please do not post it to @uref{news:gnu.emacs.help} or send e-mail to
+Please don't post it to @uref{news:gnu.emacs.help} or send e-mail to
 @email{help-gnu-emacs@@gnu.org}.  For further guidelines, see
 @ref{Guidelines for newsgroup postings} and @ref{Reporting bugs}.
 
@@ -3295,7 +3491,7 @@ To get the Xmenu stuff to work, you need to find a copy of MIT's
 @cindex Snail mail, ordering Emacs via
 @cindex Postal service, ordering Emacs via
 @cindex Distribution, retrieving Emacs 
-@cindex Internet, retreiving from
+@cindex Internet, retrieving from
 
 Look in the files @file{etc/DISTRIB} and @file{etc/FTP} for information
 on nearby archive sites and @file{etc/ORDERS} for mail orders.  If you
@@ -3319,8 +3515,8 @@ string @samp{wordstar}.
 
 It is also possible that the package is on your system, but has not been
 loaded.  To see which packages are available for loading, look through
-your computer's lisp directory (@pxref{Filename conventions}).  The Lisp
-source to most most packages contains a short description of how they
+your computer's lisp directory (@pxref{File-name conventions}).  The Lisp
+source to most packages contains a short description of how they
 should be loaded, invoked, and configured---so before you use or
 modify a Lisp package, see if the author has provided any hints in the
 source code.
@@ -3467,7 +3663,7 @@ Emacs 19 and Epoch, an X-aware version of Emacs 18.
 
 Emacs (i.e., the version distributed by the FSF) has a larger installed
 base and now always contains the MULE multilingual facilities.
-XEmacs can do some clever tricks with X Windows, such as
+XEmacs can do some clever tricks with X and MS-Windows, such as
 putting arbitrary graphics in a buffer.  Similar facilities have been
 implemented for Emacs as part of a new redisplay implementation for
 Emacs 21, and are available in the latest Emacs releases.
@@ -3484,10 +3680,10 @@ Many XEmacs features have found their way into recent versions of Emacs,
 and more features can be expected in the future, but there are still many
 differences between the two.
 
-The latest stable version of XEmacs as of this writing is 21.1; you can
+The latest stable branch of XEmacs as of this writing is 21.1; you can
 get it at
 
-@uref{ftp://ftp.xemacs.org/pub/xemacs/current/xemacs-21.1.13.tar.gz}
+@uref{ftp://ftp.xemacs.org/pub/xemacs/xemacs-21.1.14.tar.gz}
 
 More information about XEmacs, including a list of frequently asked
 questions (FAQ), is available at
@@ -3508,12 +3704,12 @@ Windows (3.X, 9X, ME, NT, and 2000) and supports long file names under
 Windows 9X, Windows ME, and Windows 2000.  More information is available
 from
 
-@uref{ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/emacs.README}
+@uref{http://www.simtel.net/pub/djgpp/v2gnu/emacs.README}
 
 The binary itself is available in the files @file{em*.zip} in the
 directory
 
-@uref{ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu/}
+@uref{http://www.simtel.net/pub/djgpp/v2gnu/}
 
 If you prefer to compile Emacs for yourself, you can do so with the
 current distribution directly.  You will need a 386 (or
@@ -3527,12 +3723,12 @@ following:
 @item Compiler
 DJGPP version 1.12 maint 1 or later.  Djgpp 2.0 or later is
 recommended, since 1.x is very old an unmaintained.  Djgpp 2 supports
-long filenames on Windows 9X/ME/2K.
+long file names on Windows 9X/ME/2K.
 
 You can get the latest release of DJGPP by retrieving all of
 the files in
 
-@uref{ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2*}
+@uref{http://www.simtel.net/pub/gnu/djgpp/v2*}
 
 @item Unpacking program
 The easiest way is to use @code{djtar} which comes with DJGPP v2.x,
@@ -3551,11 +3747,11 @@ actually prevent Emacs from building successfully!
 @item make, mv, sed, and rm
 All of these utilities are available at
 
-@uref{ftp://ftp.simtel.net/pub/simtelnet/gnu/djgpp/v2gnu}
+@uref{http://www.simtel.net/pub/gnu/djgpp/v2gnu}
 
 16-bit utilities can be found in GNUish, at
 
-@uref{ftp://ftp.simtel.net/pub/simtelnet/gnu/gnuish}
+@uref{http://www.simtel.net/pub/gnuish/}
 
 @noindent
 (@code{mv} and @code{rm} are in the Fileutils package, @code{sed} and
@@ -3563,9 +3759,9 @@ All of these utilities are available at
 
 @end table
 
-The files @file{INSTALL} (near its end) and @file{PROBLEMS} in the
-top-level directory of the Emacs source contains some additional
-information regarding Emacs under MS-DOS.
+The files @file{INSTALL} (near its end) and @file{etc/PROBLEMS} in the
+directory of the Emacs sources contains some additional information
+regarding Emacs under MS-DOS.
 
 For a list of other MS-DOS implementations of Emacs (and Emacs
 look-alikes), consult the list of "Emacs implementations and literature,"
@@ -3579,9 +3775,9 @@ lack certain features, such as the Emacs Lisp extension language.
 @node Emacs for Windows, Emacs for OS/2, Emacs for MS-DOS, Finding Emacs and related packages
 @section Where can I get Emacs for Microsoft Windows
 @cindex FAQ for NT Emacs
+@cindex Emacs for MS-Windows
 @cindex Microsoft Windows, Emacs for
-@cindex Windows NT and Windows 2K, Emacs for
-@cindex Windows 95, 98, and ME, Emacs for
+@cindex Windows 9X, ME, NT, 2K, and CE, Emacs for
 
 For information on Emacs for Windows 95 and NT, read the FAQ produced by
 @email{voelker@@cs.washington.edu, Geoff Voelker}, available at
@@ -3590,13 +3786,32 @@ For information on Emacs for Windows 95 and NT, read the FAQ produced by
 
 @xref{Emacs for MS-DOS}, for Windows 3.1.
 
+A port of Emacs 20.7 for Windows CE, based on NTEmacs, is available at
+
+@uref{http://www.rainer-keuchel.de/software.html}
+
+@noindent
+This port was done by @email{coyxc@@rainer-keuchel.de, Rainer Keuchel},
+and supports all Emacs features except async subprocesses and menus.
+You will need MSVC 6.0 and a Windows CE SDK to build this port.
+
 @node Emacs for OS/2, Emacs for Atari ST, Emacs for Windows, Finding Emacs and related packages
 @section Where can I get Emacs for my PC running OS/2?
 @cindex OS/2, Emacs for
 
-Emacs 19.33 is ported for emx on OS/2 2.0 or 2.1, and is available at
+Emacs 20.6 is ported for emx on OS/2 2.0 or 2.1, and is available at
+
+@uref{ftp://hobbes.nmsu.edu/pub/os2/apps/editors/emacs/e206*.zip}
+
+@noindent
+and also at
+
+@uref{http://archiv.leo.org/pub/comp/os/os2/leo/gnu/emacs%2d20/}
+
+Instructions for installation, basic setup, and other useful information
+for OS/2 users of Emacs can be found at
 
-@uref{ftp://hobbes.nmsu.edu/pub/os2/apps/editors/emacs/v19.33/}
+@uref{http://userpage.fu-berlin.de/~oheiabbd/emacs/emacs206-os2.html}
 
 @node Emacs for Atari ST, Emacs for the Amiga , Emacs for OS/2, Finding Emacs and related packages
 @section Where can I get Emacs for my Atari ST?
@@ -3852,7 +4067,7 @@ better than the one distributed with Emacs:
 4.3
 
 @item Distribution
-@uref{ftp://archive.cis.ohio-state.edu/pub/emacs-lisp/modes/vip-mode.tar.Z}
+@uref{ftp://archive.cis.ohio-state.edu/pub/emacs-lisp/old-archive/modes/vip-mode.tar.Z}
 
 @end table
 
@@ -3903,7 +4118,7 @@ Development team is at @email{auc-tex_mgr@@iesd.auc.dk}
 2.00
 
 @item Distribution
-@uref{http://www.netcom.com/~simmonmt/bbdb/index.html}
+@uref{http://bbdb.sf.net/}
 
 @item Mailing lists
 Subscription requests to @email{info-bbdb-request@@xemacs.org}@*
@@ -4199,9 +4414,9 @@ For information on what Emacs does every time it is started, see the
 @file{lisp/startup.el} file.
 
 @node Using function keys under X, Working with function and arrow keys, Terminal setup code works after Emacs has begun, Key bindings
-@section How do I use function keys under X Windows?
+@section How do I use function keys under X?
 @cindex Function keys
-@cindex X Windows and function keys
+@cindex X Window System and function keys
 @cindex Binding function keys
 
 With Emacs 19, functions keys under X are bound like any other key.  @xref{Binding keys to commands}, for details.
@@ -4352,11 +4567,13 @@ change the default swap keys (@code{flow-control-c-s-replacement} and
 
 If you are fixing this for yourself, simply put the form in your
 @file{.emacs} file.  If you are fixing this for your entire site, the
-best place to put it is in the @file{lisp/site-start.el} file.  Putting
-this form in @file{lisp/default.el} has the problem that if the user's
-@file{.emacs} file has an error, this will prevent
-@file{lisp/default.el} from being loaded and Emacs may be unusable for
-the user, even for correcting their @file{.emacs} file (unless they're
+best place to put it is in the @file{site-lisp/site-start.el} file.
+(Here @file{site-lisp} is actually a subdirectory of your Emacs
+installation directory, typically @file{/usr/local/share/emacs}.)
+Putting this form in @file{site-lisp/default.el} has the problem that
+if the user's @file{.emacs} file has an error, this will prevent
+@file{default.el} from being loaded and Emacs may be unusable for the
+user, even for correcting their @file{.emacs} file (unless they're
 smart enough to move it to another name).
 
 @code{enable-flow-control} can be invoked interactively as well:
@@ -4376,11 +4593,11 @@ To bind @kbd{C-s} and @kbd{C-q}, use either @code{enable-flow-control}
 or @code{enable-flow-control-on}.  @xref{Handling C-s and C-q with flow
 control}, for usage and implementation details.
 
-To bind other keys, use @code{keyboard-translate}.  @xref{Swapping keys},
-for usage details.  To do this for an entire site, you should swap the
-keys in @file{lisp/site-start.el}.  @xref{Handling C-s and C-q with flow
-control}, for an explanation of why @file{lisp/default.el} should not be
-used.
+To bind other keys, use @code{keyboard-translate}.  @xref{Swapping
+keys}, for usage details.  To do this for an entire site, you should
+swap the keys in @file{site-lisp/site-start.el}.  @xref{Handling C-s
+and C-q with flow control}, for an explanation of why
+@file{site-lisp/default.el} should not be used.
 
 @itemize @bullet
 
@@ -4395,6 +4612,7 @@ actually behaves.
 @section Why does the @key{Backspace} key invoke help?
 @cindex Backspace key invokes help
 @cindex Help invoked by Backspace
+@cindex DEL key does not delete
 
 The @key{Backspace} key (on most keyboards) generates ASCII code 8.
 @kbd{C-h} sends the same code.  In Emacs by default @kbd{C-h} invokes
@@ -4424,22 +4642,45 @@ keyboard or because they don't even have a separate @key{Delete} key.
 In this case, the @key{Backspace} key should be made to behave like
 @key{Delete}.  There are several methods.
 
+@itemize @minus
+@item
+Some terminals (e.g., VT3## terminals) and terminal emulators (e.g.,
+TeraTerm) allow the character generated by the @key{Backspace} key to be
+changed from a setup menu.
+
 @item
-Some terminals (e.g., VT3## terminals) allow the character generated
-by the @key{Backspace} key to be changed from a setup menu.
+You may be able to get a keyboard that is completely programmable, or a
+terminal emulator that supports remapping of any key to any other key.
 
 @item
-You may be able to get a keyboard that is completely programmable.
+With Emacs 21.1 and later, you can control the effect of the
+@key{Backspace} and @key{Delete} keys, on both dumb terminals and a
+windowed displays, by customizing the option
+@code{normal-erase-is-backspace-mode}, or by invoking @kbd{M-x
+normal-erase-is-backspace}.  See the documentation of these symbols
+(@pxref{Emacs Lisp documentation}) for more info.
 
 @item
-Under X or on a dumb terminal, it is possible to swap the
-@key{Backspace} and @key{Delete} keys inside Emacs:
+It is possible to swap the @key{Backspace} and @key{DEL} keys inside
+Emacs:
 
 @lisp
 (keyboard-translate ?\C-h ?\C-?)
 @end lisp
 
-@xref{Swapping keys}, for further details of "keyboard-translate".
+@noindent
+This is the recommended method of forcing @key{Backspace} to act as
+@key{DEL}, because it works even in modes which bind @key{DEL} to
+something other than @code{delete-backward-char}.
+
+Similarly, you could remap @key{DEL} to act as @kbd{C-d}, which by
+default deletes forward:
+
+@lisp
+(keyboard-translate ?\C-? ?\C-d)
+@end lisp
+
+@xref{Swapping keys}, for further details about @code{keyboard-translate}.
 
 @item
 Another approach is to switch key bindings and put help on @kbd{C-x h}
@@ -4452,7 +4693,16 @@ instead:
 (global-set-key "\C-xh" 'help-command) 
 @end lisp
 
+@noindent
+This method is not recommended, though: it only solves the problem for
+those modes which bind @key{DEL} to @code{delete-backward-char}.  Modes
+which bind @key{DEL} to something else, such as @code{view-mode}, will
+not work as you expect when you press the @key{Backspace} key.  For this
+reason, we recommend the @code{keyboard-translate} method, shown
+above.
+
 Other popular key bindings for help are @kbd{M-?} and @kbd{C-x ?}.
+@end itemize
 
 Don't try to bind @key{DEL} to @code{help-command}, because there are
 many modes that have local bindings of @key{DEL} that will interfere.
@@ -4463,6 +4713,10 @@ When Emacs 21 or later runs on a windowed display, it binds the
 @key{Delete} key to a command which deletes the character at point, to
 make Emacs more consistent with keyboard operation on these systems.
 
+For more information about troubleshooting this problem, see @ref{DEL
+Does Not Delete, , If @key{DEL} Fails to Delete, emacs, The GNU Emacs
+Manual}.
+
 @node stty and Backspace key, Swapping keys, Backspace invokes help, Key bindings
 @section Why doesn't Emacs look at the @file{stty} settings for @key{Backspace} vs. @key{Delete}?
 @cindex @file{stty} and Emacs
@@ -4611,7 +4865,7 @@ is how to make @kbd{H-M-RIGHT} move forward a word:
 Not all modifiers are permitted in all situations.  @key{Hyper},
 @key{Super}, and @key{Alt} are not available on Unix character
 terminals.  Non-ASCII keys and mouse events (e.g. @kbd{C-=} and
-@kbd{mouse-1}) also fall under this category.
+@kbd{Mouse-1}) also fall under this category.
 
 @end itemize
 
@@ -4638,8 +4892,15 @@ You may have big problems using @code{mwm} as your window manager.
 @item
 For X11: Make sure it really is a @key{Meta} key.  Use @code{xev} to
 find out what keysym your @key{Meta} key generates.  It should be either
-@key{Meta}_L or @key{Meta}_R.  If it isn't, use @file{xmodmap} to fix
-the situation.
+@code{Meta_L} or @code{Meta_R}.  If it isn't, use @file{xmodmap} to fix
+the situation.  If @key{Meta} does generate @code{Meta_L} or
+@code{Meta_R}, but @kbd{M-x} produces a non-ASCII character, put this in
+your @file{~/.Xdefaults} file:
+
+@example
+ XTerm*eightBitInput:   false
+ XTerm*eightBitOutput:  true
+@end example
 
 @item
 Make sure the @code{pty} the @code{xterm} is using is passing 8 bit
@@ -4722,7 +4983,7 @@ undesirable if you actually intend to use them.
 @cindex Eight-bit characters, displaying
 
 @inforef{Single-Byte Character Support, Single-byte Character Set
-Support, emacs}.  On a Unix, when Emacs runs on a character terminal
+Support, emacs}.  On a Unix, when Emacs runs on a text-only terminal
 display or is invoked with @samp{emacs -nw}, you typically need to use
 @code{set-terminal-coding-system} to tell Emacs what the terminal can
 display, even after setting the language environment; otherwise
@@ -4771,7 +5032,7 @@ Emacs 18.  Write to Joel if you want the patches or package.
 @c FIXME: Should we mention Ehud Karni's package?
 
 @file{hebrew.el} requires a Hebrew screen font, but no other hardware support.
-Joel has a screen font for PCs running MS-DOS and Linux.
+Joel has a screen font for PCs running MS-DOS or GNU/Linux.
 
 You might also try to query archie for files named with @file{hebrew};
 several ftp sites in Israel may also have the necessary files.
@@ -4892,7 +5153,7 @@ If you like, you can expand mail aliases as abbrevs, as soon as you
 type them in.  To enable this feature, execute the following:
 
 @lisp
-(add-hook 'mail-setup-hook 'mail-abbrevs-setup)
+(add-hook 'mail-mode-hook 'mail-abbrevs-setup)
 @end lisp
 
 Note that the aliases are expanded automatically only after you type
@@ -4961,6 +5222,19 @@ If you want to convert an existing file from BABYL format to Unix mail
 format, use the command @kbd{M-x unrmail}: it will prompt you for the
 input and output file names.
 
+@pindex b2m
+Alternatively, you could use the @code{b2m} program supplied with
+Emacs.  @code{b2m} is a filter, and is used like this:
+
+@example
+ b2m < @var{babyl-file} > @var{mbox-file}
+@end example
+
+@noindent
+where @var{babyl-file} is the name of the BABYL file, and
+@var{mbox-file} is the name of the file where the converted mail will
+be written.
+
 @node Replying to the sender of a message, MIME with Emacs mail packages, Recovering mail files when Rmail munges them, Mail and news
 @section How can I force Rmail to reply to the sender of a message, but not the other recipients?
 @cindex Replying only to the sender of a message