emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] pdumper 7aafd71: Merge remote-tracking branch 'origin/mast


From: Daniel Colascione
Subject: [Emacs-diffs] pdumper 7aafd71: Merge remote-tracking branch 'origin/master' into pdumper
Date: Sun, 4 Mar 2018 19:39:07 -0500 (EST)

branch: pdumper
commit 7aafd712750d9eaa4c3f8e862566111b5d050548
Merge: 9d46a9a a56a3fc
Author: Daniel Colascione <address@hidden>
Commit: Daniel Colascione <address@hidden>

    Merge remote-tracking branch 'origin/master' into pdumper
---
 ChangeLog.3                           |   20 +-
 admin/automerge                       |    2 +-
 admin/grammars/scheme.by              |    5 +
 configure.ac                          |    7 +-
 doc/emacs/basic.texi                  |    6 +-
 doc/emacs/building.texi               |    2 +-
 doc/emacs/custom.texi                 |    4 +-
 doc/emacs/dired.texi                  |    4 +-
 doc/emacs/display.texi                |   40 +-
 doc/emacs/emacs.texi                  |    4 +-
 doc/emacs/files.texi                  |    4 +-
 doc/emacs/frames.texi                 |   28 +-
 doc/emacs/help.texi                   |    1 -
 doc/emacs/killing.texi                |    5 +-
 doc/emacs/maintaining.texi            |    2 +-
 doc/emacs/misc.texi                   |    2 +-
 doc/emacs/msdos-xtra.texi             |    6 +-
 doc/emacs/msdos.texi                  |    4 +-
 doc/emacs/programs.texi               |   16 +-
 doc/emacs/search.texi                 |   24 +-
 doc/emacs/text.texi                   |   16 +-
 doc/emacs/trouble.texi                |    4 +-
 doc/emacs/xresources.texi             |  130 +--
 doc/lispintro/emacs-lisp-intro.texi   |   18 +-
 doc/lispref/display.texi              |    6 +-
 doc/lispref/files.texi                |    4 +-
 doc/lispref/keymaps.texi              |    2 +-
 doc/lispref/streams.texi              |    8 +
 doc/lispref/strings.texi              |    2 +-
 doc/lispref/text.texi                 |    2 +-
 doc/misc/calc.texi                    |   66 +-
 doc/misc/cc-mode.texi                 |   40 +-
 doc/misc/dbus.texi                    |    6 +-
 doc/misc/dired-x.texi                 |    2 +-
 doc/misc/ebrowse.texi                 |    6 +-
 doc/misc/ede.texi                     |   32 +-
 doc/misc/ediff.texi                   |    4 +-
 doc/misc/edt.texi                     |    4 +-
 doc/misc/efaq-w32.texi                |   26 +-
 doc/misc/efaq.texi                    |   12 +-
 doc/misc/eieio.texi                   |    6 +-
 doc/misc/emacs-mime.texi              |    8 +-
 doc/misc/epa.texi                     |   24 +-
 doc/misc/erc.texi                     |   24 +-
 doc/misc/ert.texi                     |   10 +-
 doc/misc/eshell.texi                  |   18 +-
 doc/misc/eww.texi                     |    2 +-
 doc/misc/forms.texi                   |   24 +-
 doc/misc/gnus-faq.texi                |   36 +-
 doc/misc/gnus-news.texi               |    2 +-
 doc/misc/gnus.texi                    | 1551 ++++++++++++++++-----------------
 doc/misc/htmlfontify.texi             |    6 +-
 doc/misc/idlwave.texi                 |    8 +-
 doc/misc/ido.texi                     |    4 +-
 doc/misc/mairix-el.texi               |   24 +-
 doc/misc/message.texi                 |   20 +-
 doc/misc/mh-e.texi                    |  169 ++--
 doc/misc/newsticker.texi              |   20 +-
 doc/misc/org.texi                     | 1033 +++++++++++-----------
 doc/misc/pcl-cvs.texi                 |   11 +-
 doc/misc/reftex.texi                  |    2 +-
 doc/misc/sem-user.texi                |    6 +-
 doc/misc/ses.texi                     |   16 +-
 doc/misc/sieve.texi                   |   10 +-
 doc/misc/smtpmail.texi                |    2 +-
 doc/misc/speedbar.texi                |    4 +-
 doc/misc/srecode.texi                 |   17 +-
 doc/misc/texinfo.tex                  |    2 +-
 doc/misc/tramp.texi                   |   11 +-
 doc/misc/vhdl-mode.texi               |   14 +-
 doc/misc/vip.texi                     |  446 +++++-----
 doc/misc/viper.texi                   |  436 ++++-----
 etc/NEWS                              |    8 +
 etc/NEWS.26                           |   14 +-
 lib-src/make-docfile.c                |   95 +-
 lib/unistd.in.h                       |    2 +-
 lisp/cedet/ede.el                     |    1 +
 lisp/cedet/semantic/bovine/grammar.el |    9 +-
 lisp/cedet/semantic/texi.el           |    2 +
 lisp/dired-aux.el                     |    5 +-
 lisp/dired.el                         |    7 +-
 lisp/emacs-lisp/autoload.el           |    2 +
 lisp/emacs-lisp/eieio.el              |    2 +-
 lisp/emulation/viper-cmd.el           |    3 -
 lisp/emulation/viper-ex.el            |   10 +-
 lisp/emulation/viper-util.el          |    4 +-
 lisp/emulation/viper.el               |    2 +
 lisp/eshell/em-dirs.el                |    4 +-
 lisp/eshell/em-script.el              |    2 +-
 lisp/eshell/em-tramp.el               |    1 +
 lisp/eshell/em-unix.el                |    2 +-
 lisp/eshell/esh-ext.el                |    2 +-
 lisp/eshell/esh-proc.el               |    2 +-
 lisp/font-lock.el                     |    5 +-
 lisp/gnus/gnus-cloud.el               |    2 +
 lisp/gnus/gnus-group.el               |    2 +
 lisp/gnus/gnus-sum.el                 |    2 +
 lisp/gnus/gnus.el                     |    1 +
 lisp/gnus/message.el                  |    2 +
 lisp/gnus/mm-decode.el                |  127 ++-
 lisp/gnus/mm-extern.el                |   21 +-
 lisp/gnus/mm-util.el                  |   82 +-
 lisp/gnus/mml.el                      |    3 +
 lisp/gnus/nnir.el                     |   40 +-
 lisp/help.el                          |    3 +
 lisp/ido.el                           |   13 +-
 lisp/image.el                         |    3 +
 lisp/international/fontset.el         |    2 +
 lisp/isearch.el                       |   52 +-
 lisp/ldefs-boot.el                    |   74 +-
 lisp/mail/hashcash.el                 |    2 +-
 lisp/mh-e/mh-acros.el                 |    7 +-
 lisp/mh-e/mh-comp.el                  |   24 +-
 lisp/mh-e/mh-compat.el                |    6 +-
 lisp/mh-e/mh-thread.el                |   25 +-
 lisp/mwheel.el                        |   79 +-
 lisp/net/eww.el                       |    3 +-
 lisp/net/imap.el                      |    8 +-
 lisp/net/rcirc.el                     |    3 +-
 lisp/net/tramp-adb.el                 |   14 +-
 lisp/net/tramp-archive.el             |    6 +-
 lisp/net/tramp-sh.el                  |   10 +-
 lisp/net/tramp.el                     |    2 +-
 lisp/net/zeroconf.el                  |    2 +
 lisp/nxml/nxml-mode.el                |    2 +-
 lisp/org/org.el                       |    5 +-
 lisp/org/ox-odt.el                    |    4 +
 lisp/progmodes/cperl-mode.el          |    2 +-
 lisp/progmodes/gdb-mi.el              |    2 +-
 lisp/progmodes/gud.el                 |    3 +-
 lisp/progmodes/octave.el              |    2 +
 lisp/progmodes/perl-mode.el           |    2 +-
 lisp/progmodes/python.el              |   39 +-
 lisp/progmodes/sql.el                 |    3 +-
 lisp/progmodes/xref.el                |    9 +-
 lisp/ps-print.el                      |   48 +-
 lisp/ses.el                           |    4 +-
 lisp/simple.el                        |   16 +-
 lisp/term/ns-win.el                   |    4 +
 lisp/term/w32-win.el                  |    8 +-
 lisp/textmodes/sgml-mode.el           |    3 +
 lisp/url/url-auth.el                  |    2 +-
 lisp/url/url-handlers.el              |    3 +
 lisp/vc/add-log.el                    |    2 +-
 lisp/vc/ediff.el                      |    2 +-
 src/fns.c                             |    5 +-
 src/print.c                           |   57 +-
 src/systhread.c                       |    7 +
 src/window.c                          |    3 +
 149 files changed, 2871 insertions(+), 2712 deletions(-)

diff --git a/ChangeLog.3 b/ChangeLog.3
index f68ba58..5b68559 100644
--- a/ChangeLog.3
+++ b/ChangeLog.3
@@ -20930,7 +20930,7 @@
 
 2017-04-24  Alan Third  <address@hidden>
 
-       Fix XBM colour rendering in NS port (bug#22060)
+       Fix XBM color rendering in NS port (bug#22060)
 
        src/nsimage.m (setXBMColor): Fix calculation of xbm_fg.
 
@@ -38136,7 +38136,7 @@
                                 ^
 
        * src/frame.c (x_set_frame_parameters): Drop width_changed and
-       height_changed variables in favour of storing that information in
+       height_changed variables in favor of storing that information in
        width and height variables.
 
 2016-09-12  Michal Nazarewicz  <address@hidden>
@@ -38193,7 +38193,7 @@
 
        Refactor common code in {upcase,downcase,capitalize}-word functions
 
-       * src/casefiddle.c (operate_on_word): Removed in favour of…
+       * src/casefiddle.c (operate_on_word): Removed in favor of…
        (casify_word) …new function which does what operate_on_word did plus
        what all of the common code from *-word functions.
        (upcase-word, downcase-word, capitalize-word): Move code common between
@@ -38418,9 +38418,9 @@
        alphabeticp.  Because both of those functions require Unicode general
        category lookup, this resulted in unnecessary lookups (if alphabeticp
        return false decimalp had to perform another lookup).  Drop decimalnump
-       in favour of alphanumericp which combines decimelnump with alphabeticp.
+       in favor of alphanumericp which combines decimelnump with alphabeticp.
 
-       * src/character.c (decimalnump): Remove in favour of…
+       * src/character.c (decimalnump): Remove in favor of…
        (alphanumericp): …new function.
 
        * src/regex.c (ISALNUM): Use alphanumericp.
@@ -42329,9 +42329,9 @@
 
        Enable dividers in NS (bug#22973)
 
-       src/nsfns.m: Add colour settings functions to ns_frame_park_handlers.
+       src/nsfns.m: Add color settings functions to ns_frame_park_handlers.
        src/nsterm.m (ns_draw_window_divider): ns_focus has to go before the
-       attempt to set the colour.
+       attempt to set the color.
        src/nsterm.m (ns_draw_vertical_window_border): This had the same bug as
        above, although I didn't see any errors.
 
@@ -43563,10 +43563,10 @@
 
 2016-06-08  Michal Nazarewicz  <address@hidden>
 
-       Remove ‘ert-with-function-mocked’ macro in favour of ‘cl-letf’ macro
+       Remove ‘ert-with-function-mocked’ macro in favor of ‘cl-letf’ macro
 
        * lisp/emacs-lisp/ert-x.el (ert-with-function-mocked): Remove macro
-       in favour of ‘cl-letf’ macro which is more generic.  All existing
+       in favor of ‘cl-letf’ macro which is more generic.  All existing
        uses are migrated accordingly.  The macro has not been included in
        an official release yet so it should be fine to delete it.
 
@@ -49635,7 +49635,7 @@
 
 2016-02-27  Jan Moringen  <address@hidden>
 
-       Show the face colours when completing in `read-color'
+       Show the face colors when completing in `read-color'
 
        * lisp/faces.el (defined-colors-with-face-attributes): New function.
        (readable-foreground-color, defined-colors-with-face-attributes)
diff --git a/admin/automerge b/admin/automerge
index 520961f..e88711f 100755
--- a/admin/automerge
+++ b/admin/automerge
@@ -138,7 +138,7 @@ trap "rm -f $tempfile 2> /dev/null" EXIT
 
 [ "$reset" ] && {
     echo "Resetting..."
-    git reset --hard origin/master || die "reset error"
+    git reset -q --hard origin/master || die "reset error"
 
     echo "Pulling..."
     git pull -q --ff-only || die "pull error"
diff --git a/admin/grammars/scheme.by b/admin/grammars/scheme.by
index ce9fff0..5ea2550 100644
--- a/admin/grammars/scheme.by
+++ b/admin/grammars/scheme.by
@@ -20,6 +20,11 @@
 %package semantic-scm-by
 %provide semantic/bovine/scm-by
 
+%{
+(declare-function semantic-parse-region "semantic"
+                 (start end &optional nonterminal depth returnonerror))
+}
+
 %languagemode  scheme-mode
 %start         scheme
 
diff --git a/configure.ac b/configure.ac
index e8ad7f7..d2da890 100644
--- a/configure.ac
+++ b/configure.ac
@@ -453,7 +453,12 @@ OPTION_DEFAULT_OFF([w32], [use native MS Windows GUI in a 
Cygwin build])
 OPTION_DEFAULT_ON([gpm],[don't use -lgpm for mouse support on a GNU/Linux 
console])
 OPTION_DEFAULT_ON([dbus],[don't compile with D-Bus support])
 AC_ARG_WITH([gconf],[AS_HELP_STRING([--with-gconf],
-[compile with Gconf support (Gsettings replaces this)])],[],[with_gconf=maybe])
+[compile with Gconf support (Gsettings replaces this)])],[],
+[if test $with_features = yes; then
+with_gconf=maybe
+else
+with_gconf=no
+fi])
 OPTION_DEFAULT_ON([gsettings],[don't compile with GSettings support])
 OPTION_DEFAULT_ON([selinux],[don't compile with SELinux support])
 OPTION_DEFAULT_ON([gnutls],[don't use -lgnutls for SSL/TLS support])
diff --git a/doc/emacs/basic.texi b/doc/emacs/basic.texi
index aa91f05..b9e0ce4 100644
--- a/doc/emacs/basic.texi
+++ b/doc/emacs/basic.texi
@@ -218,14 +218,14 @@ preserves position within the line, like @kbd{C-n}.
 @item C-a
 @itemx @key{Home}
 @kindex C-a
address@hidden HOME key
address@hidden HOME
 @findex move-beginning-of-line
 Move to the beginning of the line (@code{move-beginning-of-line}).
 
 @item C-e
 @itemx @key{End}
 @kindex C-e
address@hidden END key
address@hidden END
 @findex move-end-of-line
 Move to the end of the line (@code{move-end-of-line}).
 
@@ -277,7 +277,7 @@ On graphical displays, @address@hidden does the same.
 
 @item M->
 @kindex M->
address@hidden address@hidden
address@hidden C-END
 @findex end-of-buffer
 Move to the end of the buffer (@code{end-of-buffer}).  On graphical
 displays, @address@hidden does the same.
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index 8e2fdf1..0697e1b 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -1499,7 +1499,7 @@ Evaluate all the Emacs Lisp expressions in the buffer.
 @ifinfo
 @c This uses 'colon' instead of a literal ':' because Info cannot
 @c cope with a ':' in a menu.
address@hidden address@hidden
address@hidden M-colon
 @end ifinfo
 @ifnotinfo
 @kindex M-:
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 59cd57b..0905ae7 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -1417,6 +1417,8 @@ commands, and @dfn{keymaps}, which record key bindings.  
It also
 explains how to customize key bindings, which is done by editing your
 init file (@pxref{Init Rebinding}).
 
address@hidden reserved key bindings
address@hidden keys, reserved
   Since most modes define their own key bindings, activating a mode
 might override your custom key bindings.  A small number of keys are
 reserved for user-defined bindings, and should not be used by modes,
@@ -2162,7 +2164,7 @@ loading of this library, use the option 
@samp{--no-site-file}.
 better to put them in @file{default.el}, so that users can more easily
 override them.
 
address@hidden site-lisp directories
address@hidden @file{site-lisp} directories
   You can place @file{default.el} and @file{site-start.el} in any of
 the directories which Emacs searches for Lisp libraries.  The variable
 @code{load-path} (@pxref{Lisp Libraries}) specifies these directories.
diff --git a/doc/emacs/dired.texi b/doc/emacs/dired.texi
index 0a62285..01ae910 100644
--- a/doc/emacs/dired.texi
+++ b/doc/emacs/dired.texi
@@ -1370,8 +1370,8 @@ C-c}.
 
 @node Image-Dired
 @section Viewing Image Thumbnails in Dired
address@hidden image-dired mode
address@hidden image-dired
address@hidden @code{image-dired} mode
address@hidden @code{image-dired}
 
   Image-Dired is a facility for browsing image files.  It provides viewing
 the images either as thumbnails or in full size, either inside Emacs
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 64a1d4b..312f70e 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -526,7 +526,7 @@ frames as if they have a dark background, whereas a value of
 background.
 
 @cindex background color
address@hidden default face
address@hidden @code{default face}
   You can customize a face to alter its attributes, and save those
 customizations for future Emacs sessions.  @xref{Face Customization},
 for details.
@@ -535,7 +535,7 @@ for details.
 of its attributes are specified.  Its background color is also used as
 the frame's background color.  @xref{Colors}.
 
address@hidden cursor face
address@hidden @code{cursor} face
   Another special face is the @code{cursor} face.  On graphical
 displays, the background color of this face is used to draw the text
 cursor.  None of the other attributes of this face have any effect;
@@ -627,10 +627,10 @@ but you should not make it a variable-width font.
 @item fixed-pitch-serif
 This face is like @code{fixed-pitch}, except the font has serifs and
 looks more like traditional typewriting.
address@hidden variable-pitch face
address@hidden @code{variable-pitch} face
 @item variable-pitch
 This face forces use of a variable-width font.
address@hidden shadow face
address@hidden @code{shadow} face
 @item shadow
 This face is used for making the text less noticeable than the surrounding
 ordinary text.  Usually this can be achieved by using shades of gray in
@@ -656,8 +656,8 @@ This face is used to highlight lazy matches for Isearch and 
Query
 Replace (matches other than the current one).
 @item region
 This face is used for displaying an active region (@pxref{Mark}).
-When Emacs is built with GTK support, its colors are taken from the
-current GTK theme.
+When Emacs is built with GTK+ support, its colors are taken from the
+current GTK+ theme.
 @item secondary-selection
 This face is used for displaying a secondary X selection (@pxref{Secondary
 Selection}).
@@ -685,40 +685,40 @@ frame:
 
 @table @code
 @item mode-line
address@hidden mode-line face
address@hidden @code{mode-line} face
 @cindex faces for mode lines
 This face is used for the mode line of the currently selected window,
 and for menu bars when toolkit menus are not used.  By default, it's
 drawn with shadows for a raised effect on graphical displays, and
 drawn as the inverse of the default face on non-windowed terminals.
 @item mode-line-inactive
address@hidden mode-line-inactive face
address@hidden @code{mode-line-inactive} face
 Like @code{mode-line}, but used for mode lines of the windows other
 than the selected one (if @code{mode-line-in-non-selected-windows} is
 address@hidden).  This face inherits from @code{mode-line}, so changes
 in that face affect mode lines in all windows.
 @item mode-line-highlight
address@hidden mode-line-highlight face
address@hidden @code{mode-line-highlight} face
 Like @code{highlight}, but used for mouse-sensitive portions of text
 on mode lines.  Such portions of text typically pop up tooltips
 (@pxref{Tooltips}) when the mouse pointer hovers above them.
 @item mode-line-buffer-id
address@hidden mode-line-buffer-id face
address@hidden @code{mode-line-buffer-id} face
 This face is used for buffer identification parts in the mode line.
 @item header-line
address@hidden header-line face
address@hidden @code{header-line} face
 Similar to @code{mode-line} for a window's header line, which appears
 at the top of a window just as the mode line appears at the bottom.
 Most windows do not have a header line---only some special modes, such
 Info mode, create one.
 @item header-line-highlight
address@hidden header-line-highlight face
address@hidden @code{header-line-highlight} face
 Similar to @code{highlight} and @code{mode-line-highlight}, but used
 for mouse-sensitive portions of text on header lines.  This is a
 separate face because the @code{header-line} face might be customized
 in a way that does not interact well with @code{highlight}.
 @item vertical-border
address@hidden vertical-border face
address@hidden @code{vertical-border} face
 This face is used for the vertical divider between windows on text
 terminals.
 @item minibuffer-prompt
@@ -741,7 +741,7 @@ The @code{:background} attribute of this face specifies the 
color of
 the text cursor.  @xref{Cursor Display}.
 @item tooltip
 This face is used for tooltip text.  By default, if Emacs is built
-with GTK support, tooltips are drawn via GTK and this face has no
+with GTK+ support, tooltips are drawn via GTK+ and this face has no
 effect.  @xref{Tooltips}.
 @item mouse
 This face determines the color of the mouse pointer.
@@ -1177,7 +1177,7 @@ empty lines at the end of a buffer, without realizing it. 
 In most
 cases, this @dfn{trailing whitespace} has no effect, but sometimes it
 can be a nuisance.
 
address@hidden trailing-whitespace face
address@hidden @code{trailing-whitespace} face
   You can make trailing whitespace at the end of a line visible by
 setting the buffer-local variable @code{show-trailing-whitespace} to
 @code{t}.  Then Emacs displays trailing whitespace, using the face
@@ -1508,8 +1508,8 @@ as octal escape sequences instead of caret escape 
sequences.
 @cindex non-breaking space
 @cindex non-breaking hyphen
 @cindex soft hyphen
address@hidden escape-glyph face
address@hidden nobreak-space face
address@hidden @code{escape-glyph} face
address@hidden @code{nobreak-space} face
   Some address@hidden characters have the same appearance as an
 @acronym{ASCII} space or hyphen (minus) character.  Such characters
 can cause problems if they are entered into a buffer without your
@@ -1531,7 +1531,7 @@ elisp, The Emacs Lisp Reference Manual}.
 
 @cindex glyphless characters
 @cindex characters with no font glyphs
address@hidden glyphless-char face
address@hidden @code{glyphless-char} face
   On graphical displays, some characters may have no glyphs in any of
 the fonts available to Emacs.  These @dfn{glyphless characters} are
 normally displayed as boxes containing the hexadecimal character code.
@@ -1546,7 +1546,7 @@ for details.
 
 @cindex curly quotes, and terminal capabilities
 @cindex curved quotes, and terminal capabilities
address@hidden homoglyph face
address@hidden @code{homoglyph} face
 
 Emacs tries to determine if the curved quotes @samp{‘} and @samp{’}
 can be displayed on the current display.  By default, if this seems to
@@ -1801,7 +1801,7 @@ may wish to customize the variables
 @code{display-line-numbers-width} to a large enough value, to avoid
 occasional miscalculations of space reserved for the line numbers.
 
address@hidden line-number face
address@hidden @code{line-number} face
 The line numbers are displayed in a special face @code{line-number}.
 The current line number is displayed in a different face,
 @code{line-number-current-line}, so you can make the current line's
diff --git a/doc/emacs/emacs.texi b/doc/emacs/emacs.texi
index 65affeb..f917fa8 100644
--- a/doc/emacs/emacs.texi
+++ b/doc/emacs/emacs.texi
@@ -1223,8 +1223,8 @@ GTK resources
 
 * GTK Resource Basics::   Basic usage of GTK+ resources.
 * GTK Widget Names::      How GTK+ widgets are named.
-* GTK Names in Emacs::    GTK widgets used by Emacs.
-* GTK styles::            What can be customized in a GTK widget.
+* GTK Names in Emacs::    GTK+ widgets used by Emacs.
+* GTK styles::            What can be customized in a GTK+ widget.
 
 Emacs and macOS / GNUstep
 
diff --git a/doc/emacs/files.texi b/doc/emacs/files.texi
index bd772e9..fd35096 100644
--- a/doc/emacs/files.texi
+++ b/doc/emacs/files.texi
@@ -281,7 +281,7 @@ files.  Firstly, when Emacs is built with a suitable GUI 
toolkit,
 commands invoked with the mouse (by clicking on the menu bar or tool
 bar) use the toolkit's standard file selection dialog instead of
 prompting for the file name in the minibuffer.  On GNU/Linux and Unix
-platforms, Emacs does this when built with GTK, LessTif, and Motif
+platforms, Emacs does this when built with GTK+, LessTif, and Motif
 toolkits; on MS-Windows and Mac, the GUI version does that by default.
 For information on how to customize this, see @ref{Dialog Boxes}.
 
@@ -1857,7 +1857,7 @@ variable @code{tramp-mode} to @code{nil}.  You can turn 
off the
 feature in individual cases by quoting the file name with @samp{/:}
 (@pxref{Quoted File Names}).
 
address@hidden ange-ftp
address@hidden @code{ange-ftp}
   Remote file access through FTP is handled by the Ange-FTP package, which
 is documented in the following.  Remote file access through the other
 methods is handled by the Tramp package, which has its own manual.
diff --git a/doc/emacs/frames.texi b/doc/emacs/frames.texi
index b2ec574..11611e7 100644
--- a/doc/emacs/frames.texi
+++ b/doc/emacs/frames.texi
@@ -207,13 +207,13 @@ buffers are scrolled.  The variable
 @code{mouse-wheel-progressive-speed} determines whether the scroll
 speed is linked to how fast you move the wheel.
 
address@hidden mwheel-tilt-scroll-p
address@hidden mwheel-flip-direction
address@hidden mouse-wheel-tilt-scroll
address@hidden mouse-wheel-flip-direction
 Emacs can also support horizontal scrolling if your mouse's wheel can
 be tilted.  This feature is off by default; the variable
address@hidden turns it on.  If you'd like to reverse the
-direction of horizontal scrolling, customize the variable
address@hidden to a address@hidden value.
address@hidden turns it on.  If you'd like to reverse
+the direction of horizontal scrolling, customize the variable
address@hidden to a address@hidden value.
 
 
 @node Word and Line Mouse
@@ -479,14 +479,14 @@ cycles through all the frames on your terminal.
 @findex delete-other-frames
 Delete all frames on the current terminal, except the selected one.
 
address@hidden M-<F10>
address@hidden M-<F10>
address@hidden address@hidden
address@hidden M-F10
 @findex toggle-frame-maximized
 Toggle the maximization state of the current frame.  When a frame is
 maximized, it fills the screen.
 
address@hidden <F11>
address@hidden <F11>
address@hidden @key{F11>}
address@hidden F11
 @findex toggle-frame-fullscreen
 Toggle full-screen mode for the current frame.  (The difference
 between full-screen and maximized is normally that the former
@@ -901,7 +901,7 @@ that server's selected frame.
 
 @node Frame Parameters
 @section Frame Parameters
address@hidden default-frame-alist
address@hidden default-frame-alist
 
   You can control the default appearance and behavior of all frames by
 specifying a default list of @dfn{frame parameters} in the variable
@@ -925,7 +925,7 @@ default font to @samp{Monospace-10}:
   For a list of frame parameters and their effects, see @ref{Frame
 Parameters,,, elisp, The Emacs Lisp Reference Manual}.
 
address@hidden initial-frame-alist
address@hidden initial-frame-alist
   You can also specify a list of frame parameters which apply to just
 the initial frame, by customizing the variable
 @code{initial-frame-alist}.
@@ -999,11 +999,11 @@ end of the buffer is shown; if @code{nil}, the thumb will 
be at the
 bottom when the end of the buffer is shown.  You cannot over-scroll
 when the entire buffer is visible.
 
address@hidden scroll-bar face
address@hidden @code{scroll-bar} face
   The visual appearance of the scroll bars is controlled by the
address@hidden face.  (Some toolkits, such as GTK and MS-Windows,
address@hidden face.  (Some toolkits, such as GTK+ and MS-Windows,
 ignore this face; the scroll-bar appearance there can only be
-customized system-wide, for GTK @pxref{GTK resources}).
+customized system-wide, for GTK+ @pxref{GTK resources}).
 
 @cindex vertical border
   On graphical frames, vertical scroll bars implicitly serve to separate
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index e005fe3..a570076 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -4,7 +4,6 @@
 @c See file emacs.texi for copying conditions.
 @node Help
 @chapter Help
address@hidden Help
 @cindex help
 @cindex self-documentation
 @findex help-command
diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi
index 19aa907..4c47c8b 100644
--- a/doc/emacs/killing.texi
+++ b/doc/emacs/killing.texi
@@ -590,7 +590,7 @@ you can access it using the following Emacs commands:
 @table @kbd
 @findex mouse-set-secondary
 @kindex M-Drag-mouse-1
address@hidden secondary-selection face
address@hidden @code{secondary-selection} face
 @item M-Drag-mouse-1
 Set the secondary selection, with one end at the place where you press
 down the button, and the other end at the place where you release it
@@ -857,7 +857,8 @@ region is active.
 
 Unlike the standard region, the region-rectangle can have its corners
 extended past the end of buffer, or inside stretches of white space
-that point normally cannot enter, like the TAB.
+that point normally cannot enter, like in the middle of a TAB
+character.
 
 @findex rectangle-exchange-point-and-mark
 @findex address@hidden, in rectangle-mark-mode}
diff --git a/doc/emacs/maintaining.texi b/doc/emacs/maintaining.texi
index 23e08a5..8f71b12 100644
--- a/doc/emacs/maintaining.texi
+++ b/doc/emacs/maintaining.texi
@@ -628,7 +628,7 @@ they use the concept of checking out individual files.
 @node Log Buffer
 @subsection Features of the Log Entry Buffer
 
address@hidden C-c C-c @r{(Log Edit mode)}
address@hidden C-c C-c @r{(Log Edit mode)}
 @findex log-edit-done
   When you tell VC to commit a change, it pops up a buffer named
 @file{*vc-log*}.  In this buffer, you should write a @dfn{log entry}
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index d8f202f..e1b8070 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -409,7 +409,7 @@ is needed.  For OpenDocument and Microsoft Office 
documents, the
 @code{unoconv} tool is needed.}, and displaying those images.
 
 @findex doc-view-toggle-display
address@hidden doc-view-minor-mode
address@hidden doc-view-minor-mode
   When you visit a document file that can be displayed with DocView
 mode, Emacs automatically uses DocView mode @footnote{The needed
 external tools for the document type must be available, and Emacs must
diff --git a/doc/emacs/msdos-xtra.texi b/doc/emacs/msdos-xtra.texi
index 39d003c..406ebd1 100644
--- a/doc/emacs/msdos-xtra.texi
+++ b/doc/emacs/msdos-xtra.texi
@@ -412,7 +412,7 @@ will print the region while converting it to the codepage 
850 encoding.
 
 @node MS-DOS and MULE
 @subsection International Support on MS-DOS
address@hidden international support @r{(MS-DOS)}
address@hidden international support (MS-DOS)
 
   Emacs on MS-DOS supports the same international character sets as it
 does on GNU, Unix and other platforms
@@ -471,7 +471,7 @@ codepage built into the display hardware.)  You can specify 
a different
 codepage for Emacs to use by setting the variable @code{dos-codepage} in
 your init file.
 
address@hidden language environment, automatic selection on @r{MS-DOS}
address@hidden language environment, automatic selection on MS-DOS
   Multibyte Emacs supports only certain DOS codepages: those which can
 display Far-Eastern scripts, like the Japanese codepage 932, and those
 that encode a single ISO 8859 character set.
@@ -494,7 +494,7 @@ codes.  For example, the letter @samp{@,{c}} (@samp{c} with 
cedilla) has
 code 231 in the standard Latin-1 character set, but the corresponding
 DOS codepage 850 uses code 135 for this glyph.}
 
address@hidden mode line @r{(MS-DOS)}
address@hidden mode line (MS-DOS)
   All the @address@hidden coding systems use the letter @samp{D}
 (for ``DOS'') as their mode-line mnemonic.  Since both the terminal
 coding system and the default coding system for file I/O are set to
diff --git a/doc/emacs/msdos.texi b/doc/emacs/msdos.texi
index 2790d56..b3b40d4 100644
--- a/doc/emacs/msdos.texi
+++ b/doc/emacs/msdos.texi
@@ -129,7 +129,7 @@ invoked---that will always give you an editor.  When 
invoked via
 the program that invoked @command{emacsclient}.
 @end enumerate
 
address@hidden emacsclient, on MS-Windows
address@hidden @command{emacsclient}, on MS-Windows
 Note that, due to limitations of MS-Windows, Emacs cannot have both
 GUI and text-mode frames in the same session.  It also cannot open
 text-mode frames on more than a single @dfn{Command Prompt} window,
@@ -694,7 +694,7 @@ its normal effect: for example, @address@hidden opens the
 
 @vindex w32-recognize-altgr
 @kindex AltGr @r{(MS-Windows)}
address@hidden AltGr key (MS-Windows)
address@hidden @key{AltGr} key (MS-Windows)
   The variable @code{w32-recognize-altgr} controls whether the
 @key{AltGr} key (if it exists on your keyboard), or its equivalent,
 the combination of the right @key{Alt} and left @key{Ctrl} keys
diff --git a/doc/emacs/programs.texi b/doc/emacs/programs.texi
index 042a197..74fae2a 100644
--- a/doc/emacs/programs.texi
+++ b/doc/emacs/programs.texi
@@ -1009,7 +1009,7 @@ effect as @kbd{C-u M-;} by typing @kbd{M-x comment-kill}
 (@code{comment-dwim} actually calls @code{comment-kill} as a
 subroutine when it is given a prefix argument).
 
address@hidden C-c C-c (C mode)
address@hidden C-c C-c @r{(C mode)}
 @findex comment-region
 @findex uncomment-region
   The command @kbd{M-x comment-region} is equivalent to calling
@@ -1626,7 +1626,7 @@ behind.  A prefix argument acts as a repeat count.  With 
a negative
 argument, move backward.
 
 @item M-a
address@hidden M-a (C mode)
address@hidden M-a @r{(C mode)}
 @findex c-beginning-of-statement
 Move point to the beginning of the innermost C statement
 (@code{c-beginning-of-statement}).  If point is already at the beginning
@@ -1637,7 +1637,7 @@ In comments or in strings which span more than one line, 
this command
 moves by sentences instead of statements.
 
 @item M-e
address@hidden M-e (C mode)
address@hidden M-e @r{(C mode)}
 @findex c-end-of-statement
 Move point to the end of the innermost C statement or sentence; like
 @kbd{M-a} except that it moves in the other direction
@@ -1702,17 +1702,17 @@ preprocessor commands.
 @item C-c address@hidden
 @itemx C-c @key{DEL}
 @findex c-hungry-delete-backwards
address@hidden C-c C-DEL (C Mode)
address@hidden C-c DEL (C Mode)
address@hidden C-c C-DEL @r{(C Mode)}
address@hidden C-c DEL @r{(C Mode)}
 Delete the entire block of whitespace preceding point 
(@code{c-hungry-delete-backwards}).
 
 @item C-c C-d
 @itemx C-c address@hidden
 @itemx C-c @key{Delete}
 @findex c-hungry-delete-forward
address@hidden C-c C-d (C Mode)
address@hidden C-c C-Delete (C Mode)
address@hidden C-c Delete (C Mode)
address@hidden C-c C-d @r{(C Mode)}
address@hidden C-c C-Delete @r{(C Mode)}
address@hidden C-c Delete @r{(C Mode)}
 Delete the entire block of whitespace after point 
(@code{c-hungry-delete-forward}).
 @end table
 
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 9d7ff59..0de3aee 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -92,7 +92,7 @@ the first @samp{F} previously found.  After another @kbd{O}, 
the
 cursor moves to just after the first @samp{FOO}.
 
 @cindex faces for highlighting search matches
address@hidden isearch face
address@hidden @code{isearch} face
   At each step, Emacs highlights the @dfn{current match}---the buffer
 text that matches the search string---using the @code{isearch} face
 (@pxref{Faces}).  @xref{Search Customizations}, for various options
@@ -280,7 +280,7 @@ down-casing.
 @node Error in Isearch
 @subsection Errors in Incremental Search
 
address@hidden isearch-fail face
address@hidden @code{isearch-fail} face
   If your string is not found at all, the echo area says @samp{Failing
 I-Search}, and the cursor moves past the place where Emacs found as
 much of your string as it could.  Thus, if you search for @samp{FOOT},
@@ -437,7 +437,7 @@ of the keymap @code{isearch-mode-map} (@pxref{Keymaps}).
 
 This subsection describes how to control whether typing a command not
 specifically meaningful in searches exits the search before executing
-the command.  It also describes two categories of commands which you
+the command.  It also describes three categories of commands which you
 can type without exiting the current incremental search, even though
 they are not themselves part of incremental search.
 
@@ -507,6 +507,18 @@ change point, the buffer contents, the match data, the 
current buffer,
 or the selected window and frame.  The command must not itself attempt
 an incremental search.  This feature is disabled if
 @code{isearch-allow-scroll} is @code{nil} (which it is by default).
+
address@hidden Motion Commands
address@hidden motion commands, during incremental search
+When @code{search-exit-option} is customized to @code{shift-move},
+you can extend the search string by holding down the shift key while
+typing cursor motion commands.  It will yank text that ends at the new
+position after moving point in the current buffer.
+
+When @code{search-exit-option} is @code{move}, you can extend the
+search string without using the shift key for cursor motion commands,
+but it applies only for certain motion command that have the
address@hidden property on their symbols.
 @end table
 
 @node Isearch Minibuffer
@@ -1552,8 +1564,8 @@ replacements are not added to the command history, and 
cannot be
 reused.
 
 @cindex faces for highlighting query replace
address@hidden query-replace face
address@hidden lazy-highlight face, in replace
address@hidden @code{query-replace} face
address@hidden @code{lazy-highlight} face, in replace
 @vindex query-replace-highlight
 @vindex query-replace-lazy-highlight
 @vindex query-replace-show-replacement
@@ -1869,7 +1881,7 @@ setting the variable @code{search-highlight} to 
@code{nil}.
 
 @cindex lazy highlighting customizations
 @vindex isearch-lazy-highlight
address@hidden lazy-highlight face
address@hidden @code{lazy-highlight} face
   The other matches for the search string that are visible on display
 are highlighted using the @code{lazy-highlight} face.  Setting the
 variable @code{isearch-lazy-highlight} to @code{nil} disables this
diff --git a/doc/emacs/text.texi b/doc/emacs/text.texi
index d32bb3c..9ecc41e 100644
--- a/doc/emacs/text.texi
+++ b/doc/emacs/text.texi
@@ -1380,19 +1380,19 @@ buffer cycles the visibility of the entire outline 
structure, between
 (i) showing only top-level heading lines, (ii) showing all heading
 lines but no body lines, and (iii) showing everything.
 
address@hidden M-<up> @r{(Org Mode)}
address@hidden M-<down> @r{(Org Mode)}
address@hidden M-<left> @r{(Org Mode)}
address@hidden M-<right> @r{(Org Mode)}
address@hidden M-UP @r{(Org Mode)}
address@hidden M-DOWN @r{(Org Mode)}
address@hidden M-LEFT @r{(Org Mode)}
address@hidden M-RIGHT @r{(Org Mode)}
 @findex org-metaup
 @findex org-metadown
 @findex org-metaleft
 @findex org-metaright
   You can move an entire entry up or down in the buffer, including its
-body lines and subtree (if any), by typing @kbd{M-<up>}
-(@code{org-metaup}) or @kbd{M-<down>} (@code{org-metadown}) on the
+body lines and subtree (if any), by typing @address@hidden
+(@code{org-metaup}) or @address@hidden (@code{org-metadown}) on the
 heading line.  Similarly, you can promote or demote a heading line
-with @kbd{M-<left>} (@code{org-metaleft}) and @kbd{M-<right>}
+with @address@hidden (@code{org-metaleft}) and @address@hidden
 (@code{org-metaright}).  These commands execute their global bindings
 if invoked on a body line.
 
@@ -2175,7 +2175,7 @@ text properties.
 @cindex soft newline
 @cindex newlines, hard and soft
 
address@hidden use-hard-newlines
address@hidden use-hard-newlines
   In Enriched mode, Emacs distinguishes between two different kinds of
 newlines, @dfn{hard} newlines and @dfn{soft} newlines.  You can also
 enable or disable this feature in other buffers, by typing @kbd{M-x
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index 9712cc7..c0dc3d4 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -1411,8 +1411,8 @@ patches) over all your contributions.
 @node Service
 @section How To Get Help with GNU Emacs
 @cindex help in using Emacs
address@hidden help-gnu-emacs mailing list
address@hidden gnu.emacs.help newsgroup
address@hidden @samp{help-gnu-emacs} mailing list
address@hidden @samp{gnu.emacs.help} newsgroup
 
 If you need help installing, using or changing GNU Emacs, there are
 two ways to find it:
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi
index 096e747..db2c6ff 100644
--- a/doc/emacs/xresources.texi
+++ b/doc/emacs/xresources.texi
@@ -12,10 +12,10 @@ resources, as is usual for programs that use X.
 graphical widgets, such as the menu-bar, scroll-bar, and dialog boxes,
 is determined by
 @ifnottex
-GTK resources, which we will also describe.
+GTK+ resources, which we will also describe.
 @end ifnottex
 @iftex
-GTK resources.
+GTK+ resources.
 @end iftex
 When Emacs is built without GTK+ support, the appearance of these
 widgets is determined by additional X resources.
@@ -28,7 +28,7 @@ system registry (@pxref{MS-Windows Registry}).
 * Table of Resources::  Table of specific X resources that affect Emacs.
 * Lucid Resources::     X resources for Lucid menus.
 * Motif Resources::     X resources for Motif and LessTif menus.
-* GTK resources::       Resources for GTK widgets.
+* GTK resources::       Resources for GTK+ widgets.
 @end menu
 
 @node Resources
@@ -119,28 +119,29 @@ named @samp{Emacs}.  If you write @samp{Emacs} instead of
 regardless of frame titles and regardless of the name of the
 executable file.
 
address@hidden -xrm @var{resource-values}
address@hidden -xrm @var{resource-value}
 @opindex --xrm
address@hidden address@hidden
address@hidden address@hidden
 @cindex resource values, command-line argument
 This option specifies X resource values for the present Emacs job.
 
address@hidden should have the same format that you would use
-inside a file of X resources.  To include multiple resource
-specifications in @var{resource-values}, put a newline between them,
-just as you would in a file.  You can also use @samp{#include
-"@var{filename}"} to include a file full of resource specifications.
-Resource values specified with @samp{-xrm} take precedence over all
-other resource specifications.
address@hidden should have the same format that you would use
+inside a file of X resources.  Several @samp{-xrm} options are
+possible to include multiple resource specifications.  You can also
+use @samp{#include "@var{filename}"} as @var{resource-value} to
+include a file full of resource specifications.  Resource values
+specified with @samp{-xrm} take precedence over all other resource
+specifications.
 @end table
 @end ifnottex
 
 @node Table of Resources
 @appendixsec Table of X Resources for Emacs
 
-  This table lists the X resource names that Emacs recognizes,
-excluding those that control the appearance of graphical widgets like
-the menu bar:
+  The table below lists the X resource names that Emacs recognizes.
+Note that some of the resources have no effect in Emacs compiled with
+various X toolkits (GTK+, Lucid, etc.)---we indicate below when this
+is the case.
 
 @table @asis
 @item @code{background} (class @code{Background})
@@ -160,16 +161,16 @@ Width of the frame's external border, in pixels.  This 
has no effect
 if Emacs is compiled with GTK+ support.
 @end ifnottex
 
address@hidden @code{cursorColor} (class @code{Foreground})
-Text cursor color.  If this resource is specified when Emacs starts
-up, Emacs sets its value as the background color of the @code{cursor}
-face (@pxref{Faces}).
-
 @item @code{cursorBlink} (class @code{CursorBlink})
 If the value of this resource is @samp{off} or @samp{false} or
 @samp{0} at startup, Emacs disables Blink Cursor mode (@pxref{Cursor
 Display}).
 
address@hidden @code{cursorColor} (class @code{Foreground})
+Text cursor color.  If this resource is specified when Emacs starts
+up, Emacs sets its value as the background color of the @code{cursor}
+face (@pxref{Faces}).
+
 @item @code{font} (class @code{Font})
 Font name for the @code{default} face (@pxref{Fonts}).  You can also
 specify a fontset name (@pxref{Fontsets}).
@@ -184,6 +185,13 @@ in which case Emacs tries using all available font 
backends.
 @item @code{foreground} (class @code{Foreground})
 Default foreground color for text.
 
address@hidden @code{fullscreen} (class @code{Fullscreen})
+The desired fullscreen size.  The value can be one of @code{fullboth},
address@hidden, @code{fullwidth} or @code{fullheight}, which
+correspond to the command-line options @samp{-fs}, @samp{-mm},
address@hidden, and @samp{-fh} (@pxref{Window Size X}).  Note that this
+applies to the initial frame only.
+
 @item @code{geometry} (class @code{Geometry})
 Window size and position.  The value should be a size and position
 specification, of the same form as in the @samp{-g} or
@@ -193,18 +201,15 @@ The size applies to all frames in the Emacs session, but 
the position
 applies only to the initial Emacs frame (or, in the case of a resource
 for a specific frame name, only that frame).
 
-
 Be careful not to specify this resource as @samp{emacs*geometry}, as
 that may affect individual menus as well as the main Emacs frame.
 
address@hidden @code{fullscreen} (class @code{Fullscreen})
-The desired fullscreen size.  The value can be one of @code{fullboth},
address@hidden, @code{fullwidth} or @code{fullheight}, which
-correspond to the command-line options @samp{-fs}, @samp{-mm},
address@hidden, and @samp{-fh} (@pxref{Window Size X}).  Note that this
-applies to the initial frame only.
-
 @ifnottex
address@hidden @code{horizontalScrollBars} (class @code{ScrollBars})
+If the value of this resource is @samp{off} or @samp{false} or
address@hidden, Emacs disables Horizontal Scroll Bar mode at startup
+(@pxref{Scroll Bars}).
+
 @item @code{iconName} (class @code{Title})
 Name to display in the icon.
 
@@ -318,8 +323,8 @@ This is only relevant if your Emacs is built with XIM 
support.  It
 might be useful to turn off XIM on slow X client/server links.
 
 @item @code{verticalScrollBars} (class @code{ScrollBars})
-Give frames scroll bars if @samp{on}; don't have scroll bars if
address@hidden
+Give frames scroll bars on the left if @samp{left}, on the right if
address@hidden; don't have scroll bars if @samp{off} (@pxref{Scroll Bars}).
 
 @ifnottex
 @item @code{visualClass} (class @code{VisualClass})
@@ -346,13 +351,13 @@ resources.  @xref{Face Customization}.
 @cindex Lucid Widget X Resources
 
   If Emacs is compiled with the X toolkit support using Lucid widgets,
-you can use X resources to customize the appearance of the menu bar,
-pop-up menus, and dialog boxes.  The resources for the menu bar fall
-in the @samp{pane.menubar} class (following, as always, either the
-name of the Emacs executable or @samp{Emacs} for all Emacs
-invocations).  The resources for the pop-up menu are in the
address@hidden class.  The resources for dialog boxes are in the
address@hidden class.
+you can use X resources to customize the appearance of the menu bar
+(@pxref{Menu Bar}), pop-up menus, and dialog boxes (@pxref{Dialog
+Boxes}).  The resources for the menu bar fall in the
address@hidden class (following, as always, either the name of
+the Emacs executable or @samp{Emacs} for all Emacs invocations).  The
+resources for the pop-up menu are in the @samp{menu*} class.  The
+resources for dialog boxes are in the @samp{dialog*} class.
 
   For example, to display menu bar entries with the @samp{Courier-12}
 font (@pxref{Fonts}), write this:
@@ -374,12 +379,12 @@ Here is a list of resources for menu bars, pop-up menus, 
and dialogs:
 Font for menu item text.
 @item fontSet
 Fontset for menu item text.
address@hidden foreground
-Foreground color.
 @item background
 Background color.
 @item buttonForeground
 Foreground color for a selected item.
address@hidden foreground
+Foreground color.
 @ifnottex
 @item horizontalSpacing
 Horizontal spacing in pixels between items.  Default is 3.
@@ -403,14 +408,15 @@ Margin of the menu bar, in characters.  Default is 1.
 
   If Emacs is compiled with the X toolkit support using Motif or
 LessTif widgets, you can use X resources to customize the appearance
-of the menu bar, pop-up menus, and dialog boxes.  However, the
-resources are organized differently from Lucid widgets.
+of the menu bar (@pxref{Menu Bar}), pop-up menus, and dialog boxes
+(@pxref{Dialog Boxes}).  However, the resources are organized
+differently from Lucid widgets.
 
   The resource names for the menu bar are in the @samp{pane.menubar}
 class, and they must be specified in this form:
 
 @smallexample
address@hidden@var{resource}:  @var{value}
address@hidden@var{resource}: @var{value}
 @end smallexample
 
 @noindent
@@ -427,7 +433,7 @@ For example, to specify the font @samp{8x16} for all menu 
bar items,
 including submenus, write this:
 
 @smallexample
-Emacs.pane.menubar.*.fontList:  8x16
+Emacs.pane.menubar.*.fontList: 8x16
 @end smallexample
 
   Each item in a submenu also has its own name for X resources; for
@@ -471,7 +477,7 @@ itself, you must first specify the resource for all of 
them, then
 override the value for submenus alone.  Here is an example:
 
 @smallexample
-Emacs.pane.menubar.*.fontList:  8x16
+Emacs.pane.menubar.*.fontList: 9x18
 Emacs.pane.menubar.popup_*.fontList: 8x16
 @end smallexample
 
@@ -508,9 +514,9 @@ The color for the border shadow, on the top and the left.
 @end ifnottex
 
 @node GTK resources
address@hidden GTK resources
address@hidden GTK+ resources
 @cindex GTK+ resources
address@hidden resource files for GTK
address@hidden resource files for GTK+
 @cindex @file{~/.gtkrc-2.0} file
 @cindex @file{~/.emacs.d/gtkrc} file
 
@@ -525,7 +531,7 @@ resources are specified in either the file 
@file{~/.emacs.d/gtkrc}
 (for Emacs-specific GTK+ resources), or @file{~/.gtkrc-2.0} (for
 general GTK+ resources).  We recommend using @file{~/.emacs.d/gtkrc},
 since GTK+ seems to ignore @file{~/.gtkrc-2.0} when running GConf with
address@hidden  Note, however, that some GTK themes may override
address@hidden  Note, however, that some GTK+ themes may override
 customizations in @file{~/.emacs.d/gtkrc}; there is nothing we can do
 about this.  GTK+ resources do not affect aspects of Emacs unrelated
 to GTK+ widgets, such as fonts and colors in the main Emacs window;
@@ -548,15 +554,15 @@ system, see
 @menu
 * GTK Resource Basics::   Basic usage of GTK+ resources.
 * GTK Widget Names::      How GTK+ widgets are named.
-* GTK Names in Emacs::    GTK widgets used by Emacs.
-* GTK styles::            What can be customized in a GTK widget.
+* GTK Names in Emacs::    GTK+ widgets used by Emacs.
+* GTK styles::            What can be customized in a GTK+ widget.
 @end menu
 
 @node GTK Resource Basics
address@hidden GTK Resource Basics
address@hidden GTK+ Resource Basics
 
   In a GTK+ 2 resource file (usually @file{~/.emacs.d/gtkrc}), the
-simplest kinds of resource settings simply assign a value to a
+simplest kind of a resource setting simply assigns a value to a
 variable.  For example, putting the following line in the resource
 file changes the font on all GTK+ widgets to @samp{courier-12}:
 
@@ -611,8 +617,8 @@ widget "*verticalScrollBar*" style "scroll"
 @end smallexample
 
 @node GTK Widget Names
address@hidden GTK widget names
address@hidden GTK widget names
address@hidden GTK+ widget names
address@hidden GTK+ widget names
 
   A GTK+ widget is specified by a @dfn{widget name} and a @dfn{widget
 class}.  The widget name refers to a specific widget
@@ -656,9 +662,9 @@ widget "*" style "my_style"
 @end smallexample
 
 @node GTK Names in Emacs
address@hidden GTK Widget Names in Emacs
address@hidden GTK widget names in Emacs
address@hidden GTK widget classes
address@hidden GTK+ Widget Names in Emacs
address@hidden GTK+ widget names in Emacs
address@hidden GTK+ widget classes
 
   The GTK+ widgets used by an Emacs frame are listed below:
 
@@ -720,8 +726,8 @@ widget_class "*Menu*" style "my_menu_style"
 @end smallexample
 
 @node GTK styles
address@hidden GTK styles
address@hidden GTK styles
address@hidden GTK+ styles
address@hidden GTK+ styles
 
   Here is an example of two GTK+ style declarations:
 
@@ -770,20 +776,24 @@ possible states are:
 @table @code
 @item NORMAL
 This is the default state for widgets.
+
 @item ACTIVE
 This is the state for a widget that is ready to do something.  It is
 also for the trough of a scroll bar, i.e., @code{bg[ACTIVE] = "red"}
 sets the scroll bar trough to red.  Buttons that have been armed
 (pressed but not released yet) are in this state.
+
 @item PRELIGHT
 This is the state for a widget that can be manipulated, when the mouse
 pointer is over it---for example when the mouse is over the thumb in
 the scroll bar or over a menu item.  When the mouse is over a button
 that is not pressed, the button is in this state.
+
 @item SELECTED
 This is the state for data that has been selected by the user.  It can
 be selected text or items selected in a list.  This state is not used
 in Emacs.
+
 @item INSENSITIVE
 This is the state for widgets that are visible, but they cannot be
 manipulated in the usual way---for example, buttons that can't be
@@ -805,14 +815,14 @@ dialog.
 
 @item address@hidden = "@var{pixmap}"
 This specifies an image background (instead of a background color).
address@hidden should be the image file name.  GTK can use a number of
address@hidden should be the image file name.  GTK+ can use a number of
 image file formats, including XPM, XBM, GIF, JPEG and address@hidden  If you
 want a widget to use the same image as its parent, use
 @samp{<parent>}.  If you don't want any image, use @samp{<none>}.
 @samp{<none>} is the way to cancel a background image inherited from a
 parent style.
 
-You can't specify the file by its absolute file name.  GTK looks for
+You can't specify the file by its absolute file name.  GTK+ looks for
 the pixmap file in directories specified in @code{pixmap_path}.
 @code{pixmap_path} is a colon-separated list of directories within
 double quotes, specified at the top level in a @file{gtkrc} file
diff --git a/doc/lispintro/emacs-lisp-intro.texi 
b/doc/lispintro/emacs-lisp-intro.texi
index 16216bb..c86ca43 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -5882,7 +5882,7 @@ find and use again and again.
 @node New insert-buffer
 @subsection New Body for @code{insert-buffer}
 @findex address@hidden, new version body}
address@hidden new version body for insert-buffer
address@hidden new version body for @code{insert-buffer}
 
 The body in the GNU Emacs 22 version is more confusing than the original.
 
@@ -13254,7 +13254,7 @@ If you are reading this inside of GNU Emacs and you 
want to see the
 whole function, you can type @kbd{C-h f} (@code{describe-function})
 and the name of the function.  This gives you the function
 documentation and the name of the library containing the function's
-source.  Place point over the name of the library and press the RET
+source.  Place point over the name of the library and press the @key{RET}
 key; you will be taken directly to the source.  (Be sure to install
 your sources!  Without them, you are like a person who tries to drive
 a car with his eyes shut!)
@@ -14739,7 +14739,7 @@ In Emacs 22
   "Edit file FILENAME.
 Switch to a buffer visiting file FILENAME,
 creating one if none already exists.
-Interactively, the default if you just type RET is the current directory,
+Interactively, the default if you just type @key{RET} is the current directory,
 but the visited file name is available through the minibuffer history:
 type M-n to pull it into the minibuffer.
 
@@ -15917,8 +15917,8 @@ a regular expression, including functions that are not 
interactive.
 What we want to look for is some command that prints or inserts
 columns.  Very likely, the name of the function will contain either
 the word ``print'' or the word ``insert'' or the word ``column''.
-Therefore, we can simply type @kbd{M-x apropos RET
-print\|insert\|column RET} and look at the result.  On my system, this
+Therefore, we can simply type @kbd{M-x apropos @key{RET}
+print\|insert\|column @key{RET}} and look at the result.  On my system, this
 command once took quite some time, and then produced a list of 79
 functions and variables.  Now it does not take much time at all and
 produces a list of 211 functions and variables.  Scanning down the
@@ -18147,7 +18147,7 @@ You can enter the debugger when you call the function 
by calling
 Type:
 
 @smallexample
-M-x debug-on-entry RET triangle-bugged RET
+M-x debug-on-entry @key{RET} triangle-bugged @key{RET}
 @end smallexample
 
 @need 1250
@@ -18255,7 +18255,7 @@ To cancel the effect of @code{debug-on-entry}, call
 @code{cancel-debug-on-entry} and the name of the function, like this:
 
 @smallexample
-M-x cancel-debug-on-entry RET triangle-bugged RET
+M-x cancel-debug-on-entry @key{RET} triangle-bugged @key{RET}
 @end smallexample
 
 @noindent
@@ -18341,7 +18341,7 @@ this by positioning your cursor within or just after 
the definition
 and typing
 
 @smallexample
-M-x edebug-defun RET
+M-x edebug-defun @key{RET}
 @end smallexample
 
 @noindent
@@ -18552,7 +18552,7 @@ one of those long, but decipherable functions.  You can 
look up
 
 In this instance, since the code is Lisp, the @file{*Help*} buffer
 contains the name of the library containing the function's source.
-You can put point over the name of the library and press the RET key,
+You can put point over the name of the library and press the @key{RET} key,
 which in this situation is bound to @code{help-follow}, and be taken
 directly to the source, in the same way as @kbd{M-.}
 (@code{find-tag}).
diff --git a/doc/lispref/display.texi b/doc/lispref/display.texi
index 64b8c0a..dcd2fcf 100644
--- a/doc/lispref/display.texi
+++ b/doc/lispref/display.texi
@@ -3292,7 +3292,7 @@ nominal heights and widths would suggest.
 @defun x-list-fonts name &optional reference-face frame maximum width
 This function returns a list of available font names that match
 @var{name}.  @var{name} should be a string containing a font name in
-either the Fontconfig, GTK, or XLFD format (@pxref{Fonts,,, emacs, The
+either the Fontconfig, GTK+, or XLFD format (@pxref{Fonts,,, emacs, The
 GNU Emacs Manual}).  Within an XLFD string, wildcard characters may be
 used: the @samp{*} character matches any substring, and the @samp{?}
 character matches any single character.  Case is ignored when matching
@@ -3550,7 +3550,7 @@ specifications are as follows:
 
 @table @code
 @item :name
-The font name (a string), in either XLFD, Fontconfig, or GTK format.
+The font name (a string), in either XLFD, Fontconfig, or GTK+ format.
 @xref{Fonts,,, emacs, The GNU Emacs Manual}.
 
 @item :family
@@ -5993,7 +5993,7 @@ debugging.
 @cindex embedded widgets
 @cindex webkit browser widget
 
-  Emacs is able to display native widgets, such as GTK WebKit widgets,
+  Emacs is able to display native widgets, such as GTK+ WebKit widgets,
 in Emacs buffers when it was built with the necessary support
 libraries and is running on a graphical terminal.  To test whether
 Emacs supports display of embedded widgets, check that the
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 9fbdb62..3a39826 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -3267,7 +3267,7 @@ shown above; the details are crucial for proper behavior 
in the case of
 multiple handlers, and for operations that have two file names that may
 each have handlers.
 
address@hidden safe-magic (@r{property})
address@hidden safe-magic @r{(property)}
   Handlers that don't really do anything special for actual access to the
 file---such as the ones that implement completion of host names for
 remote file names---should have a address@hidden @code{safe-magic}
@@ -3277,7 +3277,7 @@ file names, by prefixing them with @samp{/:}.  But if the 
handler that
 would be used for them has a address@hidden @code{safe-magic}
 property, the @samp{/:} is not added.
 
address@hidden operations (@r{property})
address@hidden operations @r{(property)}
   A file name handler can have an @code{operations} property to
 declare which operations it handles in a nontrivial way.  If this
 property has a address@hidden value, it should be a list of
diff --git a/doc/lispref/keymaps.texi b/doc/lispref/keymaps.texi
index e39db7f..cc2e11e 100644
--- a/doc/lispref/keymaps.texi
+++ b/doc/lispref/keymaps.texi
@@ -2750,7 +2750,7 @@ If the value is @code{grow-only}, the tool bar expands 
automatically,
 but does not contract automatically.  To contract the tool bar, the
 user has to redraw the frame by entering @kbd{C-l}.
 
-If Emacs is built with GTK or Nextstep, the tool bar can only show one
+If Emacs is built with GTK+ or Nextstep, the tool bar can only show one
 line, so this variable has no effect.
 @end defvar
 
diff --git a/doc/lispref/streams.texi b/doc/lispref/streams.texi
index 6172392..ebd8066 100644
--- a/doc/lispref/streams.texi
+++ b/doc/lispref/streams.texi
@@ -778,6 +778,14 @@ In the second expression, the local binding of
 @code{prin1}, but not during the printing of the result.
 @end defvar
 
address@hidden print-escape-control-characters
+If this variable is address@hidden, control characters in strings are
+printed as backslash sequences by the print functions @code{prin1} and
address@hidden that print with quoting.  If this variable and
address@hidden are both address@hidden, the latter takes
+precedences for newlines and formfeeds.
address@hidden defvar
+
 @defvar print-escape-nonascii
 If this variable is address@hidden, then unibyte address@hidden
 characters in strings are unconditionally printed as backslash sequences
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index 5452ea6..8a9e27d 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -727,7 +727,7 @@ minus sign if the argument is negative.
      @result{} "-23.5"
 @end example
 
address@hidden int-to-string
address@hidden @code{int-to-string}
 @code{int-to-string} is a semi-obsolete alias for this function.
 
 See also the function @code{format} in @ref{Formatting Strings}.
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 9de270c..e992c0f 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -3862,7 +3862,7 @@ clicks on the link quickly without moving the mouse.  
This behavior is
 controlled by the user option @code{mouse-1-click-follows-link}.
 @xref{Mouse References,,, emacs, The GNU Emacs Manual}.
 
address@hidden follow-link (text or overlay property)
address@hidden follow-link @r{(text or overlay property)}
   To set up the link so that it obeys
 @code{mouse-1-click-follows-link}, you must either (1) apply a
 @code{follow-link} text or overlay property to the link text, or (2)
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index a4a091f..1fe7948 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -9710,7 +9710,7 @@ The @kbd{C-x * x} command also turns the Calculator off, 
no matter which
 user interface (standard, Keypad, or Embedded) is currently active.
 It also cancels @code{calc-edit} mode if used from there.
 
address@hidden d @key{SPC}
address@hidden d SPC
 @pindex calc-refresh
 @cindex Refreshing a garbled display
 @cindex Garbled displays, refreshing
@@ -10268,7 +10268,7 @@ information is cleared whenever you give any command 
that adds new undo
 information, i.e., if you undo, then enter a number on the stack or make
 any other change, then it will be too late to redo.
 
address@hidden address@hidden
address@hidden M-RET
 @pindex calc-last-args
 @cindex Last-arguments feature
 @cindex Arguments, restoring
@@ -10906,27 +10906,27 @@ degrees, minutes, and seconds.
 @ignore
 @mindex @null
 @end ignore
address@hidden ' (HMS forms)
address@hidden ' @r{(HMS forms)}
 @ignore
 @mindex @null
 @end ignore
address@hidden " (HMS forms)
address@hidden " @r{(HMS forms)}
 @ignore
 @mindex @null
 @end ignore
address@hidden h (HMS forms)
address@hidden h @r{(HMS forms)}
 @ignore
 @mindex @null
 @end ignore
address@hidden o (HMS forms)
address@hidden o @r{(HMS forms)}
 @ignore
 @mindex @null
 @end ignore
address@hidden m (HMS forms)
address@hidden m @r{(HMS forms)}
 @ignore
 @mindex @null
 @end ignore
address@hidden s (HMS forms)
address@hidden s @r{(HMS forms)}
 The default format for HMS values is
 @address@hidden@@ @var{mins}' @var{secs}"}.  During entry, the letters
 @samp{h} (for ``hours'') or
@@ -11125,7 +11125,7 @@ integers but this is not required.
 @ignore
 @mindex M
 @end ignore
address@hidden M (modulo forms)
address@hidden M @r{(modulo forms)}
 @ignore
 @mindex mod
 @end ignore
@@ -11280,7 +11280,7 @@ would indeed have been negligible.
 @ignore
 @mindex p
 @end ignore
address@hidden p (error forms)
address@hidden p @r{(error forms)}
 @tindex +/-
 To enter an error form during regular numeric entry, use the @kbd{p}
 (``plus-or-minus'') key to type the @samp{+/-} symbol.  (If you try actually
@@ -11732,8 +11732,8 @@ type, such as numbers, vectors, formulas, and 
incomplete objects.)
 @section Stack Manipulation Commands
 
 @noindent
address@hidden @key{RET}
address@hidden @key{SPC}
address@hidden RET
address@hidden SPC
 @pindex calc-enter
 @cindex Duplicating stack entries
 To duplicate the top object on the stack, press @key{RET} or @key{SPC}
@@ -11749,7 +11749,7 @@ For example, with @samp{10 20 30} on the stack,
 @kbd{C-u - 2 @key{RET}} creates @samp{10 20 30 20}, and
 @kbd{C-u 0 @key{RET}} creates @samp{10 20 30 10 20 30}.
 
address@hidden @key{LFD}
address@hidden LFD
 @pindex calc-over
 The @key{LFD} (@code{calc-over}) command (on a key marked Line-Feed if you
 have it, else on @kbd{C-j}) is like @code{calc-enter}
@@ -11759,7 +11759,7 @@ Thus with @samp{10 20 30} on the stack, @key{LFD} and 
@kbd{C-u 2 @key{LFD}}
 are both equivalent to @kbd{C-u - 2 @key{RET}}, producing
 @samp{10 20 30 20}.
 
address@hidden @key{DEL}
address@hidden DEL
 @kindex C-d
 @pindex calc-pop
 @cindex Removing stack entries
@@ -11777,7 +11777,7 @@ For example, with @samp{10 20 30} on the stack,
 @kbd{C-u - 2 @key{DEL}} leaves @samp{10 30}, and
 @kbd{C-u 0 @key{DEL}} leaves an empty stack.
 
address@hidden address@hidden
address@hidden M-DEL
 @pindex calc-pop-above
 The @address@hidden (@code{calc-pop-above}) command is to @key{DEL} what
 @key{LFD} is to @key{RET}:  It interprets the sign of the numeric
@@ -11798,7 +11798,7 @@ specified element of the stack regardless of the cursor 
 position.
 Similarly, @key{DEL} will remove the corresponding elements from the
 stack.
 
address@hidden @key{TAB}
address@hidden TAB
 @pindex calc-roll-down
 To exchange the top two elements of the stack, press @key{TAB}
 (@code{calc-roll-down}).  Given a positive numeric prefix argument, the
@@ -11812,7 +11812,7 @@ For example, with @samp{10 20 30 40 50} on the stack,
 @kbd{C-u - 2 @key{TAB}} creates @samp{40 50 10 20 30}, and
 @kbd{C-u 0 @key{TAB}} creates @samp{50 40 30 20 10}.
 
address@hidden address@hidden
address@hidden M-TAB
 @pindex calc-roll-up
 The command @address@hidden (@code{calc-roll-up}) is analogous to @key{TAB}
 except that it rotates upward instead of downward.  Also, the default
@@ -13075,7 +13075,7 @@ refresh the stack to leave the stack display alone.  
The word ``Dirty''
 will appear in the mode line when Calc thinks the stack display may not
 reflect the latest mode settings.
 
address@hidden d @key{RET}
address@hidden d RET
 @pindex calc-refresh-top
 The @kbd{d @key{RET}} (@code{calc-refresh-top}) command reformats the
 top stack entry according to all the current modes.  Positive prefix
@@ -16682,8 +16682,8 @@ or matrix argument, these functions operate 
element-wise.
 @ignore
 @mindex v p
 @end ignore
address@hidden v p (complex)
address@hidden V p (complex)
address@hidden v p @r{(complex)}
address@hidden V p @r{(complex)}
 @pindex calc-pack
 The @kbd{v p} (@code{calc-pack}) command can pack the top two numbers on
 the stack into a composite object such as a complex number.  With
@@ -16694,8 +16694,8 @@ with an argument of @mathit{-2}, it produces a polar 
complex number.
 @ignore
 @mindex v u
 @end ignore
address@hidden v u (complex)
address@hidden V u (complex)
address@hidden v u @r{(complex)}
address@hidden V u @r{(complex)}
 @pindex calc-unpack
 The @kbd{v u} (@code{calc-unpack}) command takes the complex number
 (or other composite object) on the top of the stack and unpacks it
@@ -20234,7 +20234,7 @@ the conjugate transpose of its argument, i.e., 
@samp{conj(trn(x))}.
 @ignore
 @mindex A
 @end ignore
address@hidden A (vectors)
address@hidden A @r{(vectors)}
 @pindex calc-abs (vectors)
 @ignore
 @mindex abs
@@ -20280,7 +20280,7 @@ exactly three elements.
 @ignore
 @mindex &
 @end ignore
address@hidden & (matrices)
address@hidden & @r{(matrices)}
 @pindex calc-inv (matrices)
 @ignore
 @mindex inv
@@ -21942,7 +21942,7 @@ If you select an element of a vector and press 
@key{DEL}, that
 element is deleted from the vector.  If you delete one side of
 an equation or inequality, only the opposite side remains.
 
address@hidden j @key{DEL}
address@hidden j DEL
 @pindex calc-del-selection
 The @kbd{j @key{DEL}} (@code{calc-del-selection}) command is like
 @key{DEL} but with the auto-selecting behavior of @kbd{j '} and
@@ -21950,7 +21950,7 @@ The @kbd{j @key{DEL}} (@code{calc-del-selection}) 
command is like
 indicated by the cursor, or, in the absence of a selection, it
 deletes the sub-formula indicated by the cursor position.
 
address@hidden j @key{RET}
address@hidden j RET
 @pindex calc-grab-selection
 (There is also an auto-selecting @kbd{j @key{RET}} (@code{calc-copy-selection})
 command.)
@@ -35348,13 +35348,13 @@ followed by  @kbd{=}, @kbd{&}, @kbd{#}, @kbd{\}, 
@kbd{/}, @kbd{+} or
 @kbd{-} as well as @kbd{*} to start Calc, and so in many cases the last
 character of the prefix can simply be typed twice.
 
-Calc is controlled by many variables, most of which can be reset
-from within Calc.  Some variables are less involved with actual
-calculation and can be set outside of Calc using Emacs's
-customization facilities.  These variables are listed below.
-Typing @kbd{M-x customize-variable RET @var{variable-name} RET}
-will bring up a buffer in which the variable's value can be redefined.
-Typing @kbd{M-x customize-group RET calc RET} will bring up a buffer which
+Calc is controlled by many variables, most of which can be reset from
+within Calc.  Some variables are less involved with actual calculation
+and can be set outside of Calc using Emacs's customization facilities.
+These variables are listed below.  Typing @kbd{M-x customize-variable
address@hidden @var{variable-name} @key{RET}} will bring up a buffer in
+which the variable's value can be redefined.  Typing @kbd{M-x
+customize-group @key{RET} calc @key{RET}} will bring up a buffer which
 contains all of Calc's customizable variables.  (These variables can
 also be reset by putting the appropriate lines in your .emacs file;
 @xref{Init File, ,Init File, emacs, The GNU Emacs Manual}.)
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index a506213..d0d39d4 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -356,9 +356,9 @@ Customizing Macros
 
 @cindex BOCM
 @cindex history
address@hidden awk-mode.el
address@hidden c-mode.el
address@hidden c++-mode.el
address@hidden @file{awk-mode.el}
address@hidden @file{c-mode.el}
address@hidden @file{c++-mode.el}
 
 Welcome to @ccmode{}, a GNU Emacs mode for editing files containing C,
 C++, Objective-C, Java, CORBA IDL (and the variants CORBA PSDL and
@@ -577,9 +577,9 @@ for the latest information on Emacs version and package 
compatibility
 
 @deffn Command c-version
 @findex version @r{(c-)}
-You can find out what version of @ccmode{} you are using by visiting a C
-file and entering @kbd{M-x c-version RET}.  You should see this message in
-the echo area:
+You can find out what version of @ccmode{} you are using by visiting a
+C file and entering @kbd{M-x c-version @key{RET}}.  You should see
+this message in the echo area:
 
 @example
 Using CC Mode version 5.XX
@@ -920,8 +920,8 @@ must be in column zero.  See @ref{Defuns,,,@emacsman{},
 
 @item @kbd{C-M-a} (AWK Mode) (@code{c-awk-beginning-of-defun})
 @itemx @kbd{C-M-e} (AWK Mode) (@code{c-awk-end-of-defun})
address@hidden C-M-a (AWK Mode)
address@hidden C-M-e (AWK Mode)
address@hidden C-M-a @r{(AWK Mode)}
address@hidden C-M-e @r{(AWK Mode)}
 @findex c-awk-beginning-of-defun
 @findex awk-beginning-of-defun @r{(c-)}
 @findex c-awk-end-of-defun
@@ -1521,7 +1521,7 @@ deletion.
 @kindex DEL
 @findex c-electric-backspace
 @findex electric-backspace @r{(c-)}
-This command is run by default when you hit the @kbd{DEL} key.  When
+This command is run by default when you hit the @address@hidden key.  When
 hungry delete mode is enabled, it deletes any amount of whitespace in
 the backwards direction.  Otherwise, or when used with a prefix
 argument or in a literal (@pxref{Auto-newlines}), the command just
@@ -1567,8 +1567,8 @@ rather than using the minor mode toggling.
 
 @table @asis
 @item @kbd{C-c address@hidden, or @kbd{C-c @key{DEL}} 
(@code{c-hungry-delete-backwards})@footnote{This command was formerly known as 
@code{c-hungry-backspace}.}
address@hidden C-c C-<backspace>
address@hidden C-c <backspace>
address@hidden C-c C-Backspace
address@hidden C-c Backspace
 @kindex C-c C-DEL
 @kindex C-c DEL
 @findex c-hungry-delete-backwards
@@ -1581,21 +1581,21 @@ a character terminal.
 
 @item @kbd{C-c C-d}, @kbd{C-c address@hidden, or @kbd{C-c @key{DELETE}} 
(@code{c-hungry-delete-forward})
 @kindex C-c C-d
address@hidden C-c C-<DELETE>
address@hidden C-c <DELETE>
address@hidden C-c C-Delete
address@hidden C-c Delete
 @findex c-hungry-delete-forward
 @findex hungry-delete-forward @r{(c-)}
 Delete any amount of whitespace in the forward direction (regardless
 whether hungry-delete mode is enabled or not).  This command is bound
-to both @kbd{C-c address@hidden and @kbd{C-c @key{DELETE}} for the
+to both @kbd{C-c address@hidden and @kbd{C-c @key{Delete}} for the
 same reason as for @key{DEL} above.
 @end table
 @end table
 
address@hidden <delete>
address@hidden <backspace>
address@hidden Delete
address@hidden Backspace
 
-When we talk about @address@hidden, and @address@hidden above, we
+When we talk about @address@hidden, and @address@hidden above, we
 actually do so without connecting them to the physical keys commonly
 known as @key{Backspace} and @key{Delete}.  The default bindings to
 those two keys depends on the flavor of (X)Emacs you are using.
@@ -1708,7 +1708,7 @@ nomenclature and treat them as separate words:
 @item     @kbd{M-b}   @tab @code{backward-word}      @tab 
@code{c-backward-subword}
 @item     @kbd{M-@@}  @tab @code{mark-word}          @tab @code{c-mark-subword}
 @item     @kbd{M-d}   @tab @code{kill-word}          @tab @code{c-kill-subword}
address@hidden     @kbd{M-DEL} @tab @code{backward-kill-word} @tab 
@code{c-backward-kill-subword}
address@hidden     @address@hidden @tab @code{backward-kill-word} @tab 
@code{c-backward-kill-subword}
 @item     @kbd{M-t}   @tab @code{transpose-words}    @tab 
@code{c-transpose-subwords}
 @item     @kbd{M-c}   @tab @code{capitalize-word}    @tab 
@code{c-capitalize-subword}
 @item     @kbd{M-u}   @tab @code{upcase-word}        @tab 
@code{c-upcase-subword}
@@ -7250,13 +7250,13 @@ Set the variable @code{c-basic-offset}.  @xref{Getting 
Started}.
 @item
 @kindex RET
 @kindex C-j
address@hidden does/doesn't the @kbd{RET} key indent the new line?}
address@hidden does/doesn't the @address@hidden key indent the new line?}
 
 Emacs's convention used to be that @kbd{RET} just adds a newline, and that
 @kbd{C-j} adds a newline and indents it.  In Emacs-24.4, this convention was
 reversed.
 
-If you use an older Emacs and you want @kbd{RET} do this
+If you use an older Emacs and you want @address@hidden do this
 too, add this to your @code{c-initialization-hook}:
 
 @example
diff --git a/doc/misc/dbus.texi b/doc/misc/dbus.texi
index b425bb0..5b14382 100644
--- a/doc/misc/dbus.texi
+++ b/doc/misc/dbus.texi
@@ -1815,7 +1815,7 @@ The function returns a number, which counts the 
connections this Emacs
 session has established to the @var{bus} under the same unique name
 (see @code{dbus-get-unique-name}).  It depends on the libraries Emacs
 is linked with, and on the environment Emacs is running.  For example,
-if Emacs is linked with the gtk toolkit, and it runs in a GTK-aware
+if Emacs is linked with the GTK+ toolkit, and it runs in a GTK+-aware
 environment like Gnome, another connection might already be
 established.
 
@@ -1837,9 +1837,9 @@ Example: You initialize a connection to the AT-SPI bus on 
your host:
 
 @result{} 
"unix:abstract=/tmp/dbus-2yzWHOCdSD,guid=a490dd26625870ca1298b6e10000fd7f"
 
-;; If Emacs is built with gtk support, and you run in a GTK enabled
+;; If Emacs is built with GTK+ support, and you run in a GTK+-enabled
 ;; environment (like a GNOME session), the initialization reuses the
-;; connection established by GTK's atk bindings.
+;; connection established by GTK+'s atk bindings.
 (dbus-init-bus my-bus)
 
 @result{} 2
diff --git a/doc/misc/dired-x.texi b/doc/misc/dired-x.texi
index 130c06b..60e978c 100644
--- a/doc/misc/dired-x.texi
+++ b/doc/misc/dired-x.texi
@@ -995,7 +995,7 @@ If there are several Dired buffers for a directory, the 
most recently
 used is chosen.
 
 Dired avoids switching to the current buffer, so that if you have a
-normal and a wildcard buffer for the same directory, @kbd{C-x d RET}
+normal and a wildcard buffer for the same directory, @kbd{C-x d @key{RET}}
 will toggle between those two.
 @end table
 
diff --git a/doc/misc/ebrowse.texi b/doc/misc/ebrowse.texi
index 9ac2af1..b6f2c18 100644
--- a/doc/misc/ebrowse.texi
+++ b/doc/misc/ebrowse.texi
@@ -482,7 +482,7 @@ you are working on, some classes will only be known to 
exist but the
 location of their declarations and definitions will not be known.
 
 @item @key{RET}
-Works like @kbd{SPC}, except that it finds the class
+Works like @address@hidden, except that it finds the class
 declaration rather than viewing it, so that it is ready for
 editing.
 @end table
@@ -886,7 +886,7 @@ the member.
 This command finds the declaration of the member the cursor is on.
 
 @item @key{SPC}
-This is the same command as @kbd{RET}, but views the member definition
+This is the same command as @address@hidden, but views the member definition
 instead of finding the member's source file.
 
 @item v
@@ -1314,7 +1314,7 @@ the next position stored in the position stack.
 
 @item C-c C-m p
 Displays an electric buffer showing all positions saved in the stack.
-You can select a position by pressing @kbd{SPC} in a line.  You can
+You can select a position by pressing @address@hidden in a line.  You can
 view a position with @kbd{v}.
 @end table
 
diff --git a/doc/misc/ede.texi b/doc/misc/ede.texi
index 88dc9e9..42bedb1 100644
--- a/doc/misc/ede.texi
+++ b/doc/misc/ede.texi
@@ -160,8 +160,8 @@ First, lets create a directory for our project.  For this 
example,
 we'll start with something in @file{/tmp}.
 
 @example
-C-x C-f /tmp/myproject/README RET
-M-x make-directory RET RET
+C-x C-f /tmp/myproject/README @key{RET}
+M-x make-directory @key{RET} @key{RET}
 @end example
 
 Now put some plain text in your README file to start.
@@ -169,7 +169,7 @@ Now put some plain text in your README file to start.
 Now, lets create the project:
 
 @example
-M-x ede-new RET Automake RET myproject RET
+M-x ede-new @key{RET} Automake @key{RET} myproject @key{RET}
 @end example
 
 
@@ -191,8 +191,8 @@ We'll make a more complex project, so use dired to create 
some more
 directories using the @kbd{+} key, and typing in new directories:
 
 @example
-+ include RET
-+ src RET
++ include @key{RET}
++ src @key{RET}
 @end example
 
 Now I'll short-cut in this tutorial.  Create the following files:
@@ -252,13 +252,13 @@ now create those projects.
 With @file{main.cpp} as your current buffer, type:
 
 @example
-M-x ede-new RET Automake RET src RET
+M-x ede-new @key{RET} Automake @key{RET} src @key{RET}
 @end example
 
 and in @file{myproj.hh} as your current buffer, type:
 
 @example
-M-x ede-new RET Automake RET include RET
+M-x ede-new @key{RET} Automake @key{RET} include @key{RET}
 @end example
 
 These steps effectively only create the Project.ede file in which you
@@ -272,7 +272,7 @@ Projects.  You can create targets either from a buffer, or 
from a
 
 Note: If for some reason a directory list buffer, or file does not have the
 @samp{Project} menu item, or if @ede{} keybindings don't work, just
-use @kbd{M-x revert-buffer RET} to force a refresh.  Sometimes
+use @kbd{M-x revert-buffer @key{RET}} to force a refresh.  Sometimes
 creating a new project doesn't restart buffers correctly.
 
 Lets start with the header file.  In @file{include/myproj.hh}, you
@@ -280,7 +280,7 @@ could use the menu, but we will now start using the @ede{} 
command prefix
 which is @kbd{C-c .}.
 
 @example
-C-c . t includes RET miscellaneous RET y
+C-c . t includes @key{RET} miscellaneous @key{RET} y
 @end example
 
 
@@ -292,7 +292,7 @@ Next, visit the @file{src} directory using dired.  There 
should be a
 @samp{Project} menu.   You can create a new target with
 
 @example
-. t myprogram RET program RET
+. t myprogram @key{RET} program @key{RET}
 @end example
 
 Note that @kbd{. t} is a command for creating a target.  This command
@@ -304,7 +304,7 @@ Next, place the cursor on @file{main.cpp}, and use @kbd{. 
a} to add
 that file to your target.
 
 @example
-. a myprogram RET
+. a myprogram @key{RET}
 @end example
 
 Note that these prompts often have completion, so you can just press
@@ -316,8 +316,8 @@ all in your dired buffer, and add them all at the same time.
 Next, do the same for the library by placing the cursor on @file{mylib.cpp}.
 
 @example
-. t mylib RET sharedobject RET
-. a mylib RET
+. t mylib @key{RET} sharedobject @key{RET}
+. a mylib @key{RET}
 @end example
 
 @section Step 5: Compile, and fail
@@ -350,7 +350,7 @@ To fix the failed compile, we need to add
 Visit @file{main.cpp}.
 
 @example
-M-x customize-project RET
+M-x customize-project @key{RET}
 @end example
 
 Select the @samp{[Settings]} subgroup of options.  Under
@@ -407,7 +407,7 @@ project.  This is because variables such as the include 
path are
 treated globally, whereas dependencies for a target are target specific.
 
 @example
-M-x customize-target RET
+M-x customize-target @key{RET}
 @end example
 
 On the first page, you will see an Ldlibs-local section.  Add mylib to
@@ -437,7 +437,7 @@ C-c . C
 You can run your program directly from @ede{}.
 
 @example
-C-c . R RET RET
+C-c . R @key{RET} @key{RET}
 @end example
 
 If your program takes command line arguments, you can type them in
diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi
index e488fc0..8ffa90f 100644
--- a/doc/misc/ediff.texi
+++ b/doc/misc/ediff.texi
@@ -541,12 +541,12 @@ Copies the difference region from buffer C to buffer 
address@hidden
 The command @kbd{rb} undoes this.
 
 @item p
address@hidden DEL
address@hidden @key{DEL}
 @kindex p
 @kindex DEL
 Makes the previous difference region current.
 @item n
address@hidden SPC
address@hidden @key{SPC}
 @kindex n
 @kindex SPC
 Makes the next difference region current.
diff --git a/doc/misc/edt.texi b/doc/misc/edt.texi
index ed48659..754e3c8 100644
--- a/doc/misc/edt.texi
+++ b/doc/misc/edt.texi
@@ -195,10 +195,10 @@ EDT Emulation.  (Note: In a few rare circumstances this 
does not work
 properly.  In particular, it does not work if a subset of the leading
 @acronym{ASCII} characters in a key sequence are recognized by Emacs as
 having an existing binding.  For example, if the keypad 7 (@key{KP7})
-key generates the sequence @samp{<ESC>Ow} and @samp{<ESC>O} is already
+key generates the sequence @address@hidden and @address@hidden is already
 bound to a function, pressing @key{KP7} when told to do so by
 @file{edt-mapper.el} will result in @file{edt-mapper.el} incorrectly
-mapping @samp{<ESC>O} to @key{KP7} and @samp{w} to @key{KP8}.  If
+mapping @address@hidden to @key{KP7} and @samp{w} to @key{KP8}.  If
 something like this happens to you, it is probably a bug in the support
 for your keyboard within Emacs @strong{or} a bug in the Unix
 termcap/terminfo support for your terminal @strong{or} a bug in the
diff --git a/doc/misc/efaq-w32.texi b/doc/misc/efaq-w32.texi
index dd5bfd9..af002d7 100644
--- a/doc/misc/efaq-w32.texi
+++ b/doc/misc/efaq-w32.texi
@@ -316,7 +316,7 @@ file for build instructions.
 
 You can run Emacs without any extra steps, but if you want icons in your
 Start Menu, or for Emacs to detect the image libraries that are already
-installed on your system as part of GTK, then you should run the program
+installed on your system as part of GTK+, then you should run the program
 @file{addpm.exe}, which is usually installed into the same @file{bin}
 directory with @file{emacs.exe}.
 
@@ -2206,10 +2206,10 @@ outdated.  Tools available here that are useful for 
Emacs include:
 @item GifLib - library to support GIF images.
 @item Grep - for searching through files with @code{grep}.
 @item Gzip - used by Emacs to automatically decompress .gz files.
address@hidden Jpeg - library to support JPEG images (also in GTK).
address@hidden Jpeg - library to support JPEG images (also in GTK+).
 @item Lha - used by @code{archive-mode} to edit .lzh files.
address@hidden LibPng - library to support PNG images (also in GTK).
address@hidden LibTiff - library to support TIFF images (also in GTK).
address@hidden LibPng - library to support PNG images (also in GTK+).
address@hidden LibTiff - library to support TIFF images (also in GTK+).
 @item Make - used by @code{compile} for building projects (also in MinGW)
 @item OpenSSL - used by @code{gnus} to talk to servers over SSL.
 @item Patch - used by @code{ediff-patch-file} and others to apply patches.
@@ -2218,21 +2218,21 @@ outdated.  Tools available here that are useful for 
Emacs include:
 @item Unzip - used by @code{archive-mode} for extracting zip files.
 @item Xpm - library to support XPM images (bundled with Emacs binaries)
 @item Zip - used by @code{archive-mode} for editing zip files.
address@hidden Zlib - required by LibPng (also in GTK).
address@hidden Zlib - required by LibPng (also in GTK+).
 @end itemize
 
 @node GTK
address@hidden GTK
address@hidden GTK image libraries
address@hidden image libraries, GTK
address@hidden addpm, using GTK image libraries
address@hidden GTK+
address@hidden GTK+ image libraries
address@hidden image libraries, GTK+
address@hidden addpm, using GTK+ image libraries
 
-GTK is a potential source for some of the image libraries that Emacs
-requires.  GTK is installed along with other ports of GUI software,
+GTK+ is a potential source for some of the image libraries that Emacs
+requires.  GTK+ is installed along with other ports of GUI software,
 such as the GIMP image editor, and Pidgin instant messenger client.
-If GTK is installed when you run @command{addpm}, Emacs will use the
+If GTK+ is installed when you run @command{addpm}, Emacs will use the
 image libraries that it provides, even if they are not on the
address@hidden  GTK ships with JPEG, PNG and TIFF support.
address@hidden  GTK+ ships with JPEG, PNG and TIFF support.
 
 @node Read man pages
 @section How do I read man pages?
diff --git a/doc/misc/efaq.texi b/doc/misc/efaq.texi
index da6fda0..e1575f5 100644
--- a/doc/misc/efaq.texi
+++ b/doc/misc/efaq.texi
@@ -173,7 +173,7 @@ Key sequences longer than one key (and some single-key 
sequences) are
 written inside quotes or on lines by themselves, like this:
 
 @display
-  @kbd{M-x frobnicate-while-foo RET}
+  @kbd{M-x frobnicate-while-foo @key{RET}}
 @end display
 
 @noindent
@@ -201,7 +201,7 @@ Also, on very few keyboards does @kbd{C-?} generate 
@acronym{ASCII} code 127.
 @section What does @file{M-x @var{command}} mean?
 @cindex Extended commands
 @cindex Commands, extended
address@hidden M-x, meaning of
address@hidden @kbd{M-x}, meaning of
 
 @kbd{M-x @var{command}} means type @kbd{M-x}, then type the name of the
 command, then type @key{RET}.  (@xref{Basic keys}, if you're not sure
@@ -3808,9 +3808,9 @@ defines the @address@hidden key sequence.
 
 @node Backspace invokes help
 @section Why does the @key{Backspace} key invoke help?
address@hidden Backspace key invokes help
address@hidden Help invoked by Backspace
address@hidden DEL key does not delete
address@hidden @key{Backspace} key invokes help
address@hidden Help invoked by @key{Backspace}
address@hidden @key{DEL} key does not delete
 
 The @key{Backspace} key (on most keyboards) generates @acronym{ASCII} code 8.
 @kbd{C-h} sends the same code.  In Emacs by default @kbd{C-h} invokes
@@ -4155,7 +4155,7 @@ This will disable the use of the extra keysyms 
systemwide, which may be
 undesirable if you actually intend to use them.
 
 @node SPC no longer completes file names
address@hidden Why doesn't SPC complete file names anymore?
address@hidden Why doesn't @key{SPC} complete file names anymore?
 @cindex @kbd{SPC} file name completion
 
 Starting with Emacs 22.1, @kbd{SPC} no longer completes file names in
diff --git a/doc/misc/eieio.texi b/doc/misc/eieio.texi
index 16c341b..689ff72 100644
--- a/doc/misc/eieio.texi
+++ b/doc/misc/eieio.texi
@@ -1263,13 +1263,13 @@ The @var{parent-instance} slot indicates the instance 
which is
 considered the parent of the current instance.  Default is @code{nil}.
 @end deftp
 
address@hidden clone
address@hidden @code{clone}
 To use this class, inherit from it with your own class.
 To make a new instance that inherits from and existing instance of your
 class, use the @code{clone} method with additional parameters
 to specify local values.
 
address@hidden slot-unbound
address@hidden @code{slot-unbound}
 The @code{eieio-instance-inheritor} class works by causing cloned
 objects to have all slots unbound.  This class' @code{slot-unbound}
 method will cause references to unbound slots to be redirected to the
@@ -1395,7 +1395,7 @@ with a minimum of effort.
 
 @deftp {Class} eieio-speedbar buttontype buttonface
 Enables base speedbar display for a class.
address@hidden speedbar-make-tag-line
address@hidden @code{speedbar-make-tag-line}
 The slot @var{buttontype} is any of the symbols allowed by the
 function @code{speedbar-make-tag-line} for the @var{exp-button-type}
 argument @xref{Extending,,,speedbar}.
diff --git a/doc/misc/emacs-mime.texi b/doc/misc/emacs-mime.texi
index 4fbb3e5..2c607cc 100644
--- a/doc/misc/emacs-mime.texi
+++ b/doc/misc/emacs-mime.texi
@@ -179,18 +179,18 @@ Emacs source code.  This item works only in the groups 
matching
 @code{mm-uu-emacs-sources-regexp}.
 
 @item diff
address@hidden diff
address@hidden diff
 @vindex mm-uu-diff-groups-regexp
 Patches.  This is intended for groups where diffs of committed files
 are automatically sent to.  It only works in groups matching
 @code{mm-uu-diff-groups-regexp}.
 
 @item verbatim-marks
address@hidden verbatim-marks
address@hidden verbatim-marks
 Slrn-style verbatim marks.
 
 @item LaTeX
address@hidden LaTeX
address@hidden LaTeX
 LaTeX documents.  It only works in groups matching
 @code{mm-uu-tex-groups-regexp}.
 
@@ -1093,7 +1093,7 @@ If address@hidden a format=flowed article will be 
displayed flowed.
 @node Interface Functions
 @chapter Interface Functions
 @cindex interface functions
address@hidden mail-parse
address@hidden @code{mail-parse}
 
 The @code{mail-parse} library is an abstraction over the actual
 low-level libraries that are described in the next chapter.
diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi
index 237617a..d5dfe70 100644
--- a/doc/misc/epa.texi
+++ b/doc/misc/epa.texi
@@ -281,22 +281,22 @@ The following keys are assigned.
 
 @table @kbd
 @item : d
address@hidden @kbd{: d}
address@hidden : d
 @findex epa-dired-do-decrypt
 Decrypt marked files.
 
 @item : v
address@hidden @kbd{: v}
address@hidden : v
 @findex epa-dired-do-verify
 Verify marked files.
 
 @item : s
address@hidden @kbd{: s}
address@hidden : s
 @findex epa-dired-do-sign
 Sign marked files.
 
 @item : e
address@hidden @kbd{: e}
address@hidden : e
 @findex epa-dired-do-encrypt
 Encrypt marked files.
 
@@ -322,26 +322,26 @@ interface.  Try @kbd{M-x customize-variable 
epa-global-mail-mode}.
 
 @table @kbd
 @item C-c C-e C-d and C-c C-e d
address@hidden @kbd{C-c C-e C-d}
address@hidden @kbd{C-c C-e d}
address@hidden C-c C-e C-d
address@hidden C-c C-e d
 @findex epa-mail-decrypt
 Decrypt OpenPGP armors in the current buffer.
 
 @item C-c C-e C-v and C-c C-e v
address@hidden @kbd{C-c C-e C-v}
address@hidden @kbd{C-c C-e v}
address@hidden C-c C-e C-v
address@hidden C-c C-e v
 @findex epa-mail-verify
 Verify OpenPGP cleartext signed messages in the current buffer.
 
 @item C-c C-e C-s and C-c C-e s
address@hidden @kbd{C-c C-e C-s}
address@hidden @kbd{C-c C-e s}
address@hidden C-c C-e C-s
address@hidden C-c C-e s
 @findex epa-mail-sign
 Compose a signed message from the current buffer.
 
 @item C-c C-e C-e and C-c C-e e
address@hidden @kbd{C-c C-e C-e}
address@hidden @kbd{C-c C-e e}
address@hidden C-c C-e C-e
address@hidden C-c C-e e
 @findex epa-mail-encrypt
 @vindex epa-mail-aliases
 Compose an encrypted message from the current buffer.
diff --git a/doc/misc/erc.texi b/doc/misc/erc.texi
index 466a4fc..55556c5 100644
--- a/doc/misc/erc.texi
+++ b/doc/misc/erc.texi
@@ -117,10 +117,11 @@ connect to.
 If you want to place ERC settings in their own file, you can place them
 in @file{~/.emacs.d/.ercrc.el}, creating it if necessary.
 
-If you would rather use the Customize interface to change how ERC works,
-do @kbd{M-x customize-group RET erc RET}.  In particular, ERC comes with
-lots of modules that may be enabled or disabled; to select which ones
-you want, do @kbd{M-x customize-variable RET erc-modules RET}.
+If you would rather use the Customize interface to change how ERC
+works, do @kbd{M-x customize-group @key{RET} erc @key{RET}}.  In
+particular, ERC comes with lots of modules that may be enabled or
+disabled; to select which ones you want, do @kbd{M-x
+customize-variable @key{RET} erc-modules @key{RET}}.
 
 @menu
 * Sample Session::              Example of connecting to the #emacs channel
@@ -269,14 +270,14 @@ This is a summary of keystrokes available in every ERC 
buffer.
 @item C-a or <home> (@code{erc-bol})
 Go to beginning of line or end of prompt.
 
address@hidden RET (@code{erc-send-current-line})
address@hidden @key{RET} (@code{erc-send-current-line})
 Send the current line
 
address@hidden TAB (@code{erc-complete-word})
address@hidden @key{TAB} (@code{erc-complete-word})
 If at prompt, complete the current word.
 Otherwise, move to the next link or button.
 
address@hidden M-TAB (@code{ispell-complete-word})
address@hidden address@hidden (@code{ispell-complete-word})
 Complete the given word, using ispell.
 
 @item C-c C-a (@code{erc-bol})
@@ -297,7 +298,7 @@ Toggle automatic CTCP replies (like VERSION and PING).
 @item C-c C-f (@code{erc-toggle-flood-control})
 Toggle use of flood control on sent messages.
 
address@hidden C-c TAB (@code{erc-invite-only-mode})
address@hidden C-c @key{TAB} (@code{erc-invite-only-mode})
 Turn on the invite only mode (+i) for the current channel.
 
 @item C-c C-j (@code{erc-join-channel})
@@ -349,8 +350,9 @@ One way to add functionality to ERC is to customize which 
of its many
 modules are loaded.
 
 There is a spiffy customize interface, which may be reached by typing
address@hidden customize-option erc-modules RET}.  Alternatively, set
address@hidden manually and then call @code{erc-update-modules}.
address@hidden customize-option @key{RET} erc-modules @key{RET}}.
+Alternatively, set @code{erc-modules} manually and then call
address@hidden
 
 The following is a list of available modules.
 
@@ -743,7 +745,7 @@ stuff, to the current ERC buffer."
 
 This section is extremely incomplete.  For now, the easiest way to
 check out all the available options for ERC is to do
address@hidden customize-group erc RET}.
address@hidden customize-group @key{RET} erc @key{RET}}.
 
 @defopt erc-hide-list
 If non, @code{nil}, this is a list of IRC message types to hide, e.g.:
diff --git a/doc/misc/ert.texi b/doc/misc/ert.texi
index 3553560..82e0e27 100644
--- a/doc/misc/ert.texi
+++ b/doc/misc/ert.texi
@@ -203,7 +203,7 @@ different Emacs versions.
 
 @findex ert
 You can run the tests that are currently defined in your Emacs with
-the command @address@hidden ert @kbd{RET} t @kbd{RET}}.  (For an
+the command @kbd{M-x ert @key{RET} t @key{RET}}.  (For an
 explanation of the @code{t} argument, @pxref{Test Selectors}.) ERT will pop
 up a new buffer, the ERT results buffer, showing the results of the
 tests run.  It looks like this:
@@ -262,9 +262,9 @@ for more details.
 
 @kindex address@hidden, in ert results buffer}
 @kindex address@hidden, in ert results buffer}
-In the ERT results buffer, @kbd{TAB} and @kbd{S-TAB} cycle between
+In the ERT results buffer, @address@hidden and @address@hidden cycle between
 buttons.  Each name of a function or macro in this buffer is a button;
-moving point to it and typing @kbd{RET} jumps to its definition.
+moving point to it and typing @address@hidden jumps to its definition.
 
 @kindex address@hidden, in ert results buffer}
 @kindex address@hidden, in ert results buffer}
@@ -273,7 +273,7 @@ moving point to it and typing @kbd{RET} jumps to its 
definition.
 @cindex backtrace of a failed test
 Pressing @kbd{r} re-runs the test near point on its own.  Pressing
 @kbd{d} re-runs it with the debugger enabled.  @kbd{.} jumps to the
-definition of the test near point (@kbd{RET} has the same effect if
+definition of the test near point (@address@hidden has the same effect if
 point is on the name of the test).  On a failed test, @kbd{b} shows
 the backtrace of the failure.
 
@@ -817,7 +817,7 @@ failed.  This can be useful to figure out how far it got.
 @item
 You can instrument tests for debugging the same way you instrument
 @code{defun}s for debugging: go to the source code of the test and
-type @address@hidden @kbd{C-M-x}}.  Then, go back to the ERT buffer and
+type @kbd{C-u C-M-x}.  Then, go back to the ERT buffer and
 re-run the test with @kbd{r} or @kbd{d}.
 
 @cindex discard obsolete test results
diff --git a/doc/misc/eshell.texi b/doc/misc/eshell.texi
index 1789767..80077e5 100644
--- a/doc/misc/eshell.texi
+++ b/doc/misc/eshell.texi
@@ -894,7 +894,7 @@ will happen as it should (albeit slowly).
 
 @item Make sure syntax table is correct in Eshell mode
 
-So that @kbd{M-DEL} acts in a predictable manner, etc.
+So that @address@hidden acts in a predictable manner, etc.
 
 @item Allow all Eshell buffers to share the same history and list-dir
 
@@ -908,19 +908,19 @@ output from all subsequent commands is swallowed.
 Make it similar to the way that @file{esh-arg.el} is structured.
 Then add parsing of @samp{$[?\n]}.
 
address@hidden After pressing @kbd{M-RET}, redisplay before running the next 
command
address@hidden After pressing @address@hidden, redisplay before running the 
next command
 
 @item Argument predicates and modifiers should work anywhere in a path
 
 @example
-/usr/local/src/editors/vim $ vi **/CVS(/)/Root(.)
-Invalid regexp: "Unmatched ( or \\("
+/usr/local/src/editors/vim $ vi **/CVS(/)/Root(.)  Invalid regexp:
+"Unmatched ( or \\("
 @end example
 
 With @command{zsh}, the glob above expands to all files named
 @file{Root} in directories named @file{CVS}.
 
address@hidden Typing @samp{echo address@hidden address@hidden/bin<TAB>} 
results in a Lisp error
address@hidden Typing @samp{echo address@hidden address@hidden/address@hidden 
results in a Lisp error
 
 Perhaps it should interpolate all permutations, and make that the
 globbing result, since otherwise hitting return here will result in
@@ -960,7 +960,7 @@ At the moment, this is not supported.
 An error should be generated only if @code{eshell-error-if-no-glob} is
 address@hidden
 
address@hidden @samp{(+ RET SPC TAB} does not cause 
@code{indent-according-to-mode} to occur
address@hidden @samp{(+ @key{RET} @key{SPC} @key{TAB}} does not cause 
@code{indent-according-to-mode} to occur
 
 @item Create @code{eshell-auto-accumulate-list}
 
@@ -1172,8 +1172,8 @@ only.  That way, it could be listed as a login shell.
 @item Make @kbd{/} electric
 
 So that it automatically expands and corrects pathnames.  Or make
-pathname completion for Pcomplete auto-expand @samp{/u/i/std<TAB>} to
address@hidden/usr/include/std<TAB>}.
+pathname completion for Pcomplete auto-expand @samp{/u/i/address@hidden to
address@hidden/usr/include/address@hidden
 
 @item Write the @command{pushd} stack to disk along with @code{last-dir-ring}
 
@@ -1221,7 +1221,7 @@ If the first thing that I do after entering Emacs is to 
run
 @code{eshell-command} and invoke @command{ls}, and then use @kbd{M-x
 eshell}, it doesn't display anything.
 
address@hidden @kbd{M-RET} during a long command (using smart display) doesn't 
work
address@hidden @address@hidden during a long command (using smart display) 
doesn't work
 
 Since it keeps the cursor up where the command was invoked.
 
diff --git a/doc/misc/eww.texi b/doc/misc/eww.texi
index 258a2f2..43adc2e 100644
--- a/doc/misc/eww.texi
+++ b/doc/misc/eww.texi
@@ -99,7 +99,7 @@ web page hit @kbd{g} (@code{eww-reload}).  Pressing @kbd{w}
 
 @findex eww-open-in-new-buffer
 @kindex M-RET
-  The @kbd{M-RET} command (@code{eww-open-in-new-buffer}) opens the
+  The @address@hidden command (@code{eww-open-in-new-buffer}) opens the
 URL at point in a new EWW buffer, akin to opening a link in a new
 ``tab'' in other browsers.
 
diff --git a/doc/misc/forms.texi b/doc/misc/forms.texi
index 9857a67..7046341 100644
--- a/doc/misc/forms.texi
+++ b/doc/misc/forms.texi
@@ -263,14 +263,14 @@ prompted for confirmation before the record is deleted 
unless a numeric
 argument has been provided.
 
 @findex forms-search-forward
address@hidden C-c C-s @var{regexp} @key{RET}
address@hidden C-c C-s @var{regexp} RET
 @item C-c C-s @var{regexp} @key{RET}
 Search forward for @var{regexp} in all records following this one
 (@code{forms-search-forward}).  If found, this record is shown.
 If you give an empty argument, the previous regexp is used again.
 
 @findex forms-search-backward
address@hidden C-c C-r @var{regexp} @key{RET}
address@hidden C-c C-r @var{regexp} RET
 @item C-c C-r @var{regexp} @key{RET}
 Search backward for @var{regexp} in all records following this one
 (@code{forms-search-backward}).  If found, this record is shown.
@@ -334,25 +334,25 @@ The following function key definitions are set up in 
Forms mode
 (whether read-only or not):
 
 @table @kbd
address@hidden next
address@hidden next
address@hidden NEXT
address@hidden @key{NEXT}
 forms-next-record
 
address@hidden prior
address@hidden prior
address@hidden PRIOR
address@hidden @key{PRIOR}
 forms-prev-record
 
address@hidden begin
address@hidden begin
address@hidden BEGIN
address@hidden @key{BEGIN}
 forms-first-record
 
address@hidden end
address@hidden end
address@hidden END
address@hidden @key{END}
 forms-last-record
 
address@hidden S-Tab
address@hidden S-TAB
 @findex forms-prev-field
address@hidden S-Tab
address@hidden address@hidden
 forms-prev-field
 @end table
 
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 4175c88..efef01f 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -397,7 +397,7 @@ The ~/ means the home directory where Gnus and Emacs look
 for the configuration files.  However, you don't really
 need to know what this means, it suffices that Emacs knows
 what it means :-) You can type
address@hidden C-f ~/.gnus.el RET }
address@hidden C-f ~/.gnus.el @key{RET}}
 (yes, with the forward slash, even on Windows), and
 Emacs will open the right file for you.  (It will most
 likely be new, and thus empty.)
@@ -422,7 +422,7 @@ possibility to set environment variables.  Create a new one 
with
 name HOME and value C:\myhome.  Rebooting is not necessary.
 
 Now to create @file{~/.gnus.el}, say
address@hidden C-f ~/.gnus.el RET C-x C-s}.
address@hidden C-f ~/.gnus.el @key{RET} C-x C-s}.
 in Emacs.
 
 @node FAQ 3-3
@@ -459,11 +459,11 @@ subscribe to a group.
 @subsubheading Answer
 
 If you know the name of the group say @samp{U
-name.of.group RET} in group buffer (use the
+name.of.group @key{RET}} in group buffer (use the
 tab-completion Luke). Otherwise hit ^ in group buffer,
 this brings you to the server buffer. Now place point (the
 cursor) over the server which carries the group you want,
-hit @samp{RET}, move point to the group
+hit @address@hidden, move point to the group
 you want to subscribe to and say @samp{u}
 to subscribe to it.
 
@@ -753,11 +753,11 @@ When I enter a group, all read messages are gone. How to 
view them again?
 @subsubheading Answer
 
 If you enter the group by saying
address@hidden
address@hidden@key{RET}}
 in group buffer with point over the group, only unread and ticked messages are 
loaded. Say
address@hidden RET}
address@hidden @key{RET}}
 instead to load all available messages. If you want only the 300 newest say
address@hidden 300 RET}
address@hidden 300 @key{RET}}
 
 Loading only unread messages can be annoying if you have threaded view 
enabled, say
 
@@ -1019,7 +1019,7 @@ back ends. Gnus thinks ``highest-article-number @minus{}
 lowest-article-number = total-number-of-articles''. This
 works OK for Usenet groups, but if you delete and move
 many messages in mail groups, this fails. To cure the
-symptom, enter the group via @samp{C-u RET}
+symptom, enter the group via @samp{C-u @key{RET}}
 (this makes Gnus get all messages), then
 hit @samp{M P b} to mark all messages and
 then say @samp{B m name.of.group} to move
@@ -1494,8 +1494,8 @@ place them in ~/.emacs:
 @end example
 @noindent
 
-Now you should be ready to go. Say @samp{M-x bbdb RET
-RET} to open a bbdb buffer showing all
+Now you should be ready to go. Say @samp{M-x bbdb @key{RET}
address@hidden to open a bbdb buffer showing all
 entries. Say @samp{c} to create a new
 entry, @samp{b} to search your BBDB and
 @samp{C-o} to add a new field to an
@@ -1734,15 +1734,15 @@ world, you may find tools at
 
 Now you've got to import this mbox file into Gnus. To do
 this, create a nndoc group based on the mbox file by
-saying @samp{G f /path/file.mbox RET} in
+saying @samp{G f /path/file.mbox @key{RET}} in
 Group buffer. You now have read-only access to your
 mail. If you want to import the messages to your normal
 Gnus mail groups hierarchy, enter the nndoc group you've
-just created by saying @samp{C-u RET}
+just created by saying @samp{C-u @key{RET}}
 (thus making sure all messages are retrieved), mark all
 messages by saying @samp{M P b} and
 either copy them to the desired group by saying
address@hidden c name.of.group RET} or send them
address@hidden c name.of.group @key{RET}} or send them
 through nnmail-split-methods (respool them) by saying
 @samp{B r}.
 
@@ -1809,7 +1809,7 @@ a Usenet group the easiest solution is probably to ask
 @uref{http://groups.google.com, groups.google.com},
 if you found the posting there, tell Google to display
 the raw message, look for the message-id, and say
address@hidden the@@message.id RET} in a
address@hidden the@@message.id @key{RET}} in a
 summary buffer.
 Since Gnus 5.10 there's also a Gnus interface for
 groups.google.com which you can call with
@@ -1853,7 +1853,7 @@ How to get rid of old unwanted mail?
 
 You can of course just mark the mail you don't need
 anymore by saying @samp{#} with point
-over the mail and then say @samp{B DEL}
+over the mail and then say @samp{B @key{DEL}}
 to get rid of them forever. You could also instead of
 actually deleting them, send them to a junk-group by
 saying @samp{B m nnml:trash-bin} which
@@ -2089,7 +2089,7 @@ How to find information and help inside Emacs?
 @subsubheading Answer
 
 The first stop should be the Gnus manual (Say
address@hidden i d m Gnus RET} to start the
address@hidden i d m Gnus @key{RET}} to start the
 Gnus manual, then walk through the menus or do a
 full-text search with @samp{s}). Then
 there are the general Emacs help commands starting with
@@ -2191,8 +2191,8 @@ The reason for this could be the way Gnus reads its
 active file, see the node "The Active File" in the Gnus
 manual for things you might try to speed the process up.
 An other idea would be to byte compile your @file{~/.gnus.el} (say
address@hidden byte-compile-file RET ~/.gnus.el
-RET} to do it). Finally, if you have require
address@hidden byte-compile-file @key{RET} ~/.gnus.el
address@hidden to do it). Finally, if you have require
 statements in your .gnus, you could replace them with
 @code{with-eval-after-load}, which loads the stuff not at startup
 time, but when it's needed. Say you've got this in your
diff --git a/doc/misc/gnus-news.texi b/doc/misc/gnus-news.texi
index 9190858..171f59a 100644
--- a/doc/misc/gnus-news.texi
+++ b/doc/misc/gnus-news.texi
@@ -324,7 +324,7 @@ messages are deleted again).
 @itemize @bullet
 
 @item The tool bar has been updated to use GNOME icons.
-You can also customize the tool bars: @kbd{M-x customize-apropos RET
+You can also customize the tool bars: @kbd{M-x customize-apropos @key{RET}
 -tool-bar$} should get you started.  (Only for Emacs, not in XEmacs.)
 @c FIXME: Document this in the manual
 
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 17fbe0e..8a0b631 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -959,7 +959,6 @@ Emacs for Heathens
 If you haven't used Emacs much before using Gnus, read @ref{Emacs for
 Heathens} first.
 
address@hidden M-x gnus
 @findex gnus
 If your system administrator has set things up properly, starting Gnus
 and reading news is extremely easy---you just type @kbd{M-x gnus} in
@@ -969,7 +968,6 @@ minimal setup for posting should also customize the 
variables
 @code{user-full-name} and @code{user-mail-address}.
 
 @findex gnus-other-frame
address@hidden M-x gnus-other-frame
 If you want to start Gnus in a different frame, you can use the command
 @kbd{M-x gnus-other-frame} instead.
 
@@ -1000,7 +998,7 @@ terminology section (@pxref{Terminology}).
 First of all, you should know that there is a special buffer called
 @file{*Server*} that lists all the servers Gnus knows about.  You can
 press @kbd{^} from the Group buffer to see it.  In the Server buffer,
-you can press @kbd{RET} on a defined server to see all the groups it
+you can press @address@hidden on a defined server to see all the groups it
 serves (subscribed or not!).  You can also add or delete servers, edit
 a foreign server's definition, agentize or de-agentize a server, and
 do many other neat things.  @xref{Server Buffer}.
@@ -1043,7 +1041,7 @@ If that fails as well, Gnus will try to use the machine 
running Emacs
 as an @acronym{NNTP} server.  That's a long shot, though.
 
 @findex gnus-group-browse-foreign-server
address@hidden B (Group)
address@hidden B @r{(Group)}
 However, if you use one @acronym{NNTP} server regularly and are just
 interested in a couple of groups from a different server, you would be
 better served by using the @kbd{B} command in the group buffer.  It will
@@ -1087,7 +1085,6 @@ groups, you'll find it difficult to actually do anything 
in the group
 buffer.  But, hey, that's your problem.  Blllrph!
 
 @findex gnus-no-server
address@hidden M-x gnus-no-server
 @c @head
 If you know that the server is definitely down, or you just want to read
 your mail without bothering with the server at all, you can use the
@@ -1354,13 +1351,11 @@ you have read is by keeping track of article numbers.  
So when you
 change @code{gnus-select-method}, your @file{.newsrc} file becomes
 worthless.
 
address@hidden M-x gnus-group-clear-data-on-native-groups
 @findex gnus-group-clear-data-on-native-groups
 You can use the @kbd{M-x gnus-group-clear-data-on-native-groups}
 command to clear out all data that you have on your native groups.
 Use with caution.
 
address@hidden M-x gnus-group-clear-data
 @findex gnus-group-clear-data
 Clear the data from the current group only---nix out marks and the
 list of read articles (@code{gnus-group-clear-data}).
@@ -1704,7 +1699,7 @@ long as Gnus is active.
 @end menu
 
 You can customize the Group Mode tool bar, see @kbd{M-x
-customize-apropos RET gnus-group-tool-bar}.  This feature is only
+customize-apropos @key{RET} gnus-group-tool-bar}.  This feature is only
 available in Emacs.
 
 The tool bar icons are now (de)activated correctly depending on the
@@ -1989,37 +1984,37 @@ expected, hopefully.
 @table @kbd
 
 @item n
address@hidden n (Group)
address@hidden n @r{(Group)}
 @findex gnus-group-next-unread-group
 Go to the next group that has unread articles
 (@code{gnus-group-next-unread-group}).
 
 @item p
address@hidden DEL
address@hidden DEL (Group)
address@hidden p (Group)
address@hidden @key{DEL}
address@hidden DEL @r{(Group)}
address@hidden p @r{(Group)}
 @findex gnus-group-prev-unread-group
 Go to the previous group that has unread articles
 (@code{gnus-group-prev-unread-group}).
 
 @item N
address@hidden N (Group)
address@hidden N @r{(Group)}
 @findex gnus-group-next-group
 Go to the next group (@code{gnus-group-next-group}).
 
 @item P
address@hidden P (Group)
address@hidden P @r{(Group)}
 @findex gnus-group-prev-group
 Go to the previous group (@code{gnus-group-prev-group}).
 
 @item M-n
address@hidden M-n (Group)
address@hidden M-n @r{(Group)}
 @findex gnus-group-next-unread-group-same-level
 Go to the next unread group on the same (or lower) level
 (@code{gnus-group-next-unread-group-same-level}).
 
 @item M-p
address@hidden M-p (Group)
address@hidden M-p @r{(Group)}
 @findex gnus-group-prev-unread-group-same-level
 Go to the previous unread group on the same (or lower) level
 (@code{gnus-group-prev-unread-group-same-level}).
@@ -2030,20 +2025,20 @@ Three commands for jumping to groups:
 @table @kbd
 
 @item j
address@hidden j (Group)
address@hidden j @r{(Group)}
 @findex gnus-group-jump-to-group
 Jump to a group (and make it visible if it isn't already)
 (@code{gnus-group-jump-to-group}).  Killed groups can be jumped to, just
 like living groups.
 
 @item ,
address@hidden , (Group)
address@hidden , @r{(Group)}
 @findex gnus-group-best-unread-group
 Jump to the unread group with the lowest level
 (@code{gnus-group-best-unread-group}).
 
 @item .
address@hidden . (Group)
address@hidden . @r{(Group)}
 @findex gnus-group-first-unread-group
 Jump to the first group with unread articles
 (@code{gnus-group-first-unread-group}).
@@ -2067,8 +2062,8 @@ Otherwise, the point is set to the group just exited.  
The default is
 
 @table @kbd
 
address@hidden SPACE
address@hidden SPACE (Group)
address@hidden @key{SPC}
address@hidden SPC @r{(Group)}
 @findex gnus-group-read-group
 Select the current group, switch to the summary buffer and display the
 first unread article (@code{gnus-group-read-group}).  If there are no
@@ -2079,16 +2074,16 @@ determines the number of articles Gnus will fetch.  If 
@var{n} is
 positive, Gnus fetches the @var{n} newest articles, if @var{n} is
 negative, Gnus fetches the @code{abs(@var{n})} oldest articles.
 
-Thus, @kbd{SPC} enters the group normally, @kbd{C-u SPC} offers old
-articles, @kbd{C-u 4 2 SPC} fetches the 42 newest articles, and @kbd{C-u
-- 4 2 SPC} fetches the 42 oldest ones.
+Thus, @address@hidden enters the group normally, @kbd{C-u @key{SPC}}
+offers old articles, @kbd{C-u 4 2 @key{SPC}} fetches the 42 newest
+articles, and @kbd{C-u - 4 2 @key{SPC}} fetches the 42 oldest ones.
 
 When you are in the group (in the Summary buffer), you can type
 @kbd{M-g} to fetch new articles, or @kbd{C-u M-g} to also show the old
 ones.
 
address@hidden RET
address@hidden RET (Group)
address@hidden @key{RET}
address@hidden RET @r{(Group)}
 @findex gnus-group-select-group
 Select the current group and switch to the summary buffer
 (@code{gnus-group-select-group}).  Takes the same arguments as
@@ -2096,27 +2091,27 @@ Select the current group and switch to the summary 
buffer
 does not display the first unread article automatically upon group
 entry.
 
address@hidden M-RET
address@hidden M-RET (Group)
address@hidden address@hidden
address@hidden M-RET @r{(Group)}
 @findex gnus-group-quick-select-group
 This does the same as the command above, but tries to do it with the
 minimum amount of fuzz (@code{gnus-group-quick-select-group}).  No
 scoring/killing will be performed, there will be no highlights and no
 expunging.  This might be useful if you're in a real hurry and have to
 enter some humongous group.  If you give a 0 prefix to this command
-(i.e., @kbd{0 M-RET}), Gnus won't even generate the summary buffer,
+(i.e., @kbd{0 address@hidden), Gnus won't even generate the summary buffer,
 which is useful if you want to toggle threading before generating the
 summary buffer (@pxref{Summary Generation Commands}).
 
address@hidden M-SPACE
address@hidden M-SPACE (Group)
address@hidden address@hidden
address@hidden M-SPC @r{(Group)}
 @findex gnus-group-visible-select-group
-This is yet one more command that does the same as the @kbd{RET}
+This is yet one more command that does the same as the @address@hidden
 command, but this one does it without expunging and hiding dormants
 (@code{gnus-group-visible-select-group}).
 
address@hidden C-M-RET
address@hidden C-M-RET (Group)
address@hidden address@hidden
address@hidden C-M-RET @r{(Group)}
 @findex gnus-group-select-group-ephemerally
 Finally, this command selects the current group ephemerally without
 doing any processing of its contents
@@ -2164,7 +2159,7 @@ means Gnus never ignores old articles.
 @vindex gnus-auto-select-first
 @vindex gnus-auto-select-subject
 If @code{gnus-auto-select-first} is address@hidden, select an article
-automatically when entering a group with the @kbd{SPACE} command.
+automatically when entering a group with the @address@hidden command.
 Which article this is controlled by the
 @code{gnus-auto-select-subject} variable.  Valid values for this
 variable are:
@@ -2207,15 +2202,15 @@ selected.
 The following commands allow for managing your subscriptions in the
 Group buffer.  If you want to subscribe to many groups, it's probably
 more convenient to go to the @ref{Server Buffer}, and choose the
-server there using @kbd{RET} or @kbd{SPC}.  Then you'll have the
+server there using @address@hidden or @address@hidden  Then you'll have the
 commands listed in @ref{Browse Foreign Server} at hand.
 
 @table @kbd
 
 @item S t
 @itemx u
address@hidden S t (Group)
address@hidden u (Group)
address@hidden S t @r{(Group)}
address@hidden u @r{(Group)}
 @findex gnus-group-unsubscribe-current-group
 @c @icon{gnus-group-unsubscribe}
 Toggle subscription to the current group
@@ -2223,8 +2218,8 @@ Toggle subscription to the current group
 
 @item S s
 @itemx U
address@hidden S s (Group)
address@hidden U (Group)
address@hidden S s @r{(Group)}
address@hidden U @r{(Group)}
 @findex gnus-group-unsubscribe-group
 Prompt for a group to subscribe, and then subscribe it.  If it was
 subscribed already, unsubscribe it instead
@@ -2232,21 +2227,21 @@ subscribed already, unsubscribe it instead
 
 @item S k
 @itemx C-k
address@hidden S k (Group)
address@hidden C-k (Group)
address@hidden S k @r{(Group)}
address@hidden C-k @r{(Group)}
 @findex gnus-group-kill-group
 @c @icon{gnus-group-kill-group}
 Kill the current group (@code{gnus-group-kill-group}).
 
 @item S y
 @itemx C-y
address@hidden S y (Group)
address@hidden C-y (Group)
address@hidden S y @r{(Group)}
address@hidden C-y @r{(Group)}
 @findex gnus-group-yank-group
 Yank the last killed group (@code{gnus-group-yank-group}).
 
 @item C-x C-t
address@hidden C-x C-t (Group)
address@hidden C-x C-t @r{(Group)}
 @findex gnus-group-transpose-groups
 Transpose two groups (@code{gnus-group-transpose-groups}).  This isn't
 really a subscription command, but you can use it instead of a
@@ -2254,18 +2249,18 @@ kill-and-yank sequence sometimes.
 
 @item S w
 @itemx C-w
address@hidden S w (Group)
address@hidden C-w (Group)
address@hidden S w @r{(Group)}
address@hidden C-w @r{(Group)}
 @findex gnus-group-kill-region
 Kill all groups in the region (@code{gnus-group-kill-region}).
 
 @item S z
address@hidden S z (Group)
address@hidden S z @r{(Group)}
 @findex gnus-group-kill-all-zombies
 Kill all zombie groups (@code{gnus-group-kill-all-zombies}).
 
 @item S C-k
address@hidden S C-k (Group)
address@hidden S C-k @r{(Group)}
 @findex gnus-group-kill-level
 Kill all groups on a certain level (@code{gnus-group-kill-level}).
 These groups can't be yanked back after killing, so this command should
@@ -2286,7 +2281,7 @@ Also @pxref{Group Levels}.
 @table @kbd
 
 @item c
address@hidden c (Group)
address@hidden c @r{(Group)}
 @findex gnus-group-catchup-current
 @vindex gnus-group-catchup-group-hook
 @c @icon{gnus-group-catchup-current}
@@ -2296,19 +2291,18 @@ Mark all unticked articles in this group as read
 the group buffer.
 
 @item C
address@hidden C (Group)
address@hidden C @r{(Group)}
 @findex gnus-group-catchup-current-all
 Mark all articles in this group, even the ticked ones, as read
 (@code{gnus-group-catchup-current-all}).
 
 @item M-c
address@hidden M-c (Group)
address@hidden M-c @r{(Group)}
 @findex gnus-group-clear-data
 Clear the data from the current group---nix out marks and the list of
 read articles (@code{gnus-group-clear-data}).
 
 @item M-x gnus-group-clear-data-on-native-groups
address@hidden M-x gnus-group-clear-data-on-native-groups
 @findex gnus-group-clear-data-on-native-groups
 If you have switched from one @acronym{NNTP} server to another, all your marks
 and read ranges have become worthless.  You can use this command to
@@ -2334,7 +2328,7 @@ Remember:  The higher the level of the group, the less 
important it is.
 @table @kbd
 
 @item S l
address@hidden S l (Group)
address@hidden S l @r{(Group)}
 @findex gnus-group-set-current-level
 Set the level of the current group.  If a numeric prefix is given, the
 next @var{n} groups will have their levels set.  The user will be
@@ -2478,37 +2472,37 @@ with the process mark and then execute the command.
 @table @kbd
 
 @item #
address@hidden # (Group)
address@hidden # @r{(Group)}
 @itemx M m
address@hidden M m (Group)
address@hidden M m @r{(Group)}
 @findex gnus-group-mark-group
 Set the mark on the current group (@code{gnus-group-mark-group}).
 
 @item M-#
address@hidden M-# (Group)
address@hidden M-# @r{(Group)}
 @itemx M u
address@hidden M u (Group)
address@hidden M u @r{(Group)}
 @findex gnus-group-unmark-group
 Remove the mark from the current group
 (@code{gnus-group-unmark-group}).
 
 @item M U
address@hidden M U (Group)
address@hidden M U @r{(Group)}
 @findex gnus-group-unmark-all-groups
 Remove the mark from all groups (@code{gnus-group-unmark-all-groups}).
 
 @item M w
address@hidden M w (Group)
address@hidden M w @r{(Group)}
 @findex gnus-group-mark-region
 Mark all groups between point and mark (@code{gnus-group-mark-region}).
 
 @item M b
address@hidden M b (Group)
address@hidden M b @r{(Group)}
 @findex gnus-group-mark-buffer
 Mark all groups in the buffer (@code{gnus-group-mark-buffer}).
 
 @item M r
address@hidden M r (Group)
address@hidden M r @r{(Group)}
 @findex gnus-group-mark-regexp
 Mark all groups that match some regular expression
 (@code{gnus-group-mark-regexp}).
@@ -2549,7 +2543,7 @@ variable @code{gnus-parameters}, @xref{Group Parameters}.
 @table @kbd
 
 @item G m
address@hidden G m (Group)
address@hidden G m @r{(Group)}
 @findex gnus-group-make-group
 @cindex making groups
 Make a new group (@code{gnus-group-make-group}).  Gnus will prompt you
@@ -2557,13 +2551,13 @@ for a name, a method and possibly an @dfn{address}.  
For an easier way
 to subscribe to @acronym{NNTP} groups (@pxref{Browse Foreign Server}).
 
 @item G M
address@hidden G M (Group)
address@hidden G M @r{(Group)}
 @findex gnus-group-read-ephemeral-group
 Make an ephemeral group (@code{gnus-group-read-ephemeral-group}).  Gnus
 will prompt you for a name, a method and an @dfn{address}.
 
 @item G r
address@hidden G r (Group)
address@hidden G r @r{(Group)}
 @findex gnus-group-rename-group
 @cindex renaming groups
 Rename the current group to something else
@@ -2572,45 +2566,45 @@ groups---mail groups mostly.  This command might very 
well be quite slow
 on some back ends.
 
 @item G c
address@hidden G c (Group)
address@hidden G c @r{(Group)}
 @cindex customizing
 @findex gnus-group-customize
 Customize the group parameters (@code{gnus-group-customize}).
 
 @item G e
address@hidden G e (Group)
address@hidden G e @r{(Group)}
 @findex gnus-group-edit-group-method
 @cindex renaming groups
 Enter a buffer where you can edit the select method of the current
 group (@code{gnus-group-edit-group-method}).
 
 @item G p
address@hidden G p (Group)
address@hidden G p @r{(Group)}
 @findex gnus-group-edit-group-parameters
 Enter a buffer where you can edit the group parameters
 (@code{gnus-group-edit-group-parameters}).
 
 @item G E
address@hidden G E (Group)
address@hidden G E @r{(Group)}
 @findex gnus-group-edit-group
 Enter a buffer where you can edit the group info
 (@code{gnus-group-edit-group}).
 
 @item G d
address@hidden G d (Group)
address@hidden G d @r{(Group)}
 @findex gnus-group-make-directory-group
 @cindex nndir
 Make a directory group (@pxref{Directory Groups}).  You will be prompted
 for the directory's name (@code{gnus-group-make-directory-group}).
 
 @item G h
address@hidden G h (Group)
address@hidden G h @r{(Group)}
 @cindex help group
 @findex gnus-group-make-help-group
 Make the Gnus help group (@code{gnus-group-make-help-group}).
 
 @item G D
address@hidden G D (Group)
address@hidden G D @r{(Group)}
 @findex gnus-group-enter-directory
 @cindex nneething
 Read an arbitrary directory as if it were a newsgroup with the
@@ -2618,7 +2612,7 @@ Read an arbitrary directory as if it were a newsgroup 
with the
 @xref{Anything Groups}.
 
 @item G f
address@hidden G f (Group)
address@hidden G f @r{(Group)}
 @findex gnus-group-make-doc-group
 @cindex ClariNet Briefs
 @cindex nndoc
@@ -2634,14 +2628,14 @@ you run this command without a prefix, Gnus will guess 
at the file
 type.  @xref{Document Groups}.
 
 @item G u
address@hidden G u (Group)
address@hidden G u @r{(Group)}
 @vindex gnus-useful-groups
 @findex gnus-group-make-useful-group
 Create one of the groups mentioned in @code{gnus-useful-groups}
 (@code{gnus-group-make-useful-group}).
 
 @item G w
address@hidden G w (Group)
address@hidden G w @r{(Group)}
 @findex gnus-group-make-web-group
 @cindex Google
 @cindex nnweb
@@ -2658,14 +2652,14 @@ to a particular group by using a match string like
 @samp{shaving group:alt.sysadmin.recovery}.
 
 @item G R
address@hidden G R (Group)
address@hidden G R @r{(Group)}
 @findex gnus-group-make-rss-group
 Make a group based on an @acronym{RSS} feed
 (@code{gnus-group-make-rss-group}).  You will be prompted for an address@hidden
 @xref{RSS}.
 
address@hidden G DEL
address@hidden G DEL (Group)
address@hidden G @key{DEL}
address@hidden G DEL @r{(Group)}
 @findex gnus-group-delete-group
 This function will delete the current group
 (@code{gnus-group-delete-group}).  If given a prefix, this function will
@@ -2675,13 +2669,13 @@ absolutely sure of what you are doing.  This command 
can't be used on
 read-only groups (like @code{nntp} groups), though.
 
 @item G V
address@hidden G V (Group)
address@hidden G V @r{(Group)}
 @findex gnus-group-make-empty-virtual
 Make a new, fresh, empty @code{nnvirtual} group
 (@code{gnus-group-make-empty-virtual}).  @xref{Virtual Groups}.
 
 @item G v
address@hidden G v (Group)
address@hidden G v @r{(Group)}
 @findex gnus-group-add-to-virtual
 Add the current group to an @code{nnvirtual} group
 (@code{gnus-group-add-to-virtual}).  Uses the process/prefix convention.
@@ -3260,8 +3254,8 @@ These commands all list various slices of the groups 
available.
 
 @item l
 @itemx A s
address@hidden A s (Group)
address@hidden l (Group)
address@hidden A s @r{(Group)}
address@hidden l @r{(Group)}
 @findex gnus-group-list-groups
 List all groups that have unread articles
 (@code{gnus-group-list-groups}).  If the numeric prefix is used, this
@@ -3272,8 +3266,8 @@ groups).
 
 @item L
 @itemx A u
address@hidden A u (Group)
address@hidden L (Group)
address@hidden A u @r{(Group)}
address@hidden L @r{(Group)}
 @findex gnus-group-list-all-groups
 List all groups, whether they have unread articles or not
 (@code{gnus-group-list-all-groups}).  If the numeric prefix is used,
@@ -3282,14 +3276,14 @@ it lists groups of level seven or lower (i.e., just 
subscribed and
 unsubscribed groups).
 
 @item A l
address@hidden A l (Group)
address@hidden A l @r{(Group)}
 @findex gnus-group-list-level
 List all unread groups on a specific level
 (@code{gnus-group-list-level}).  If given a prefix, also list the groups
 with no unread articles.
 
 @item A k
address@hidden A k (Group)
address@hidden A k @r{(Group)}
 @findex gnus-group-list-killed
 List all killed groups (@code{gnus-group-list-killed}).  If given a
 prefix argument, really list all groups that are available, but aren't
@@ -3297,23 +3291,23 @@ currently (un)subscribed.  This could entail reading 
the active file
 from the server.
 
 @item A z
address@hidden A z (Group)
address@hidden A z @r{(Group)}
 @findex gnus-group-list-zombies
 List all zombie groups (@code{gnus-group-list-zombies}).
 
 @item A m
address@hidden A m (Group)
address@hidden A m @r{(Group)}
 @findex gnus-group-list-matching
 List all unread, subscribed groups with names that match a regexp
 (@code{gnus-group-list-matching}).
 
 @item A M
address@hidden A M (Group)
address@hidden A M @r{(Group)}
 @findex gnus-group-list-all-matching
 List groups that match a regexp (@code{gnus-group-list-all-matching}).
 
 @item A A
address@hidden A A (Group)
address@hidden A A @r{(Group)}
 @findex gnus-group-list-active
 List absolutely all groups in the active file(s) of the
 server(s) you are connected to (@code{gnus-group-list-active}).  This
@@ -3324,34 +3318,34 @@ don't exist (yet)---these will be listed as if they 
were killed groups.
 Take the output with some grains of salt.
 
 @item A a
address@hidden A a (Group)
address@hidden A a @r{(Group)}
 @findex gnus-group-apropos
 List all groups that have names that match a regexp
 (@code{gnus-group-apropos}).
 
 @item A d
address@hidden A d (Group)
address@hidden A d @r{(Group)}
 @findex gnus-group-description-apropos
 List all groups that have names or descriptions that match a regexp
 (@code{gnus-group-description-apropos}).
 
 @item A c
address@hidden A c (Group)
address@hidden A c @r{(Group)}
 @findex gnus-group-list-cached
 List all groups with cached articles (@code{gnus-group-list-cached}).
 
 @item A ?
address@hidden A ? (Group)
address@hidden A ? @r{(Group)}
 @findex gnus-group-list-dormant
 List all groups with dormant articles (@code{gnus-group-list-dormant}).
 
 @item A !
address@hidden A ! (Group)
address@hidden A ! @r{(Group)}
 @findex gnus-group-list-ticked
 List all groups with ticked articles (@code{gnus-group-list-ticked}).
 
 @item A /
address@hidden A / (Group)
address@hidden A / @r{(Group)}
 @findex gnus-group-list-limit
 Further limit groups within the current selection
 (@code{gnus-group-list-limit}).  If you've first limited to groups
@@ -3361,12 +3355,12 @@ giving you the groups that have both dormant articles 
and cached
 articles.
 
 @item A f
address@hidden A f (Group)
address@hidden A f @r{(Group)}
 @findex gnus-group-list-flush
 Flush groups from the current selection (@code{gnus-group-list-flush}).
 
 @item A p
address@hidden A p (Group)
address@hidden A p @r{(Group)}
 @findex gnus-group-list-plus
 List groups plus the current selection (@code{gnus-group-list-plus}).
 
@@ -3390,7 +3384,7 @@ groups.  It is @code{t} by default.
 @section Sorting Groups
 @cindex sorting groups
 
address@hidden C-c C-s (Group)
address@hidden C-c C-s @r{(Group)}
 @findex gnus-group-sort-groups
 @vindex gnus-group-sort-function
 The @kbd{C-c C-s} (@code{gnus-group-sort-groups}) command sorts the
@@ -3446,43 +3440,43 @@ some sorting criteria:
 
 @table @kbd
 @item G S a
address@hidden G S a (Group)
address@hidden G S a @r{(Group)}
 @findex gnus-group-sort-groups-by-alphabet
 Sort the group buffer alphabetically by group name
 (@code{gnus-group-sort-groups-by-alphabet}).
 
 @item G S u
address@hidden G S u (Group)
address@hidden G S u @r{(Group)}
 @findex gnus-group-sort-groups-by-unread
 Sort the group buffer by the number of unread articles
 (@code{gnus-group-sort-groups-by-unread}).
 
 @item G S l
address@hidden G S l (Group)
address@hidden G S l @r{(Group)}
 @findex gnus-group-sort-groups-by-level
 Sort the group buffer by group level
 (@code{gnus-group-sort-groups-by-level}).
 
 @item G S v
address@hidden G S v (Group)
address@hidden G S v @r{(Group)}
 @findex gnus-group-sort-groups-by-score
 Sort the group buffer by group score
 (@code{gnus-group-sort-groups-by-score}).  @xref{Group Score}.
 
 @item G S r
address@hidden G S r (Group)
address@hidden G S r @r{(Group)}
 @findex gnus-group-sort-groups-by-rank
 Sort the group buffer by group rank
 (@code{gnus-group-sort-groups-by-rank}).  @xref{Group Score}.
 
 @item G S m
address@hidden G S m (Group)
address@hidden G S m @r{(Group)}
 @findex gnus-group-sort-groups-by-method
 Sort the group buffer alphabetically by back end address@hidden
 (@code{gnus-group-sort-groups-by-method}).
 
 @item G S n
address@hidden G S n (Group)
address@hidden G S n @r{(Group)}
 @findex gnus-group-sort-groups-by-real-name
 Sort the group buffer alphabetically by real (unprefixed) group name
 (@code{gnus-group-sort-groups-by-real-name}).
@@ -3499,49 +3493,49 @@ You can also sort a subset of the groups:
 
 @table @kbd
 @item G P a
address@hidden G P a (Group)
address@hidden G P a @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-alphabet
 Sort the groups alphabetically by group name
 (@code{gnus-group-sort-selected-groups-by-alphabet}).
 
 @item G P u
address@hidden G P u (Group)
address@hidden G P u @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-unread
 Sort the groups by the number of unread articles
 (@code{gnus-group-sort-selected-groups-by-unread}).
 
 @item G P l
address@hidden G P l (Group)
address@hidden G P l @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-level
 Sort the groups by group level
 (@code{gnus-group-sort-selected-groups-by-level}).
 
 @item G P v
address@hidden G P v (Group)
address@hidden G P v @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-score
 Sort the groups by group score
 (@code{gnus-group-sort-selected-groups-by-score}).  @xref{Group Score}.
 
 @item G P r
address@hidden G P r (Group)
address@hidden G P r @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-rank
 Sort the groups by group rank
 (@code{gnus-group-sort-selected-groups-by-rank}).  @xref{Group Score}.
 
 @item G P m
address@hidden G P m (Group)
address@hidden G P m @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-method
 Sort the groups alphabetically by back end address@hidden
 (@code{gnus-group-sort-selected-groups-by-method}).
 
 @item G P n
address@hidden G P n (Group)
address@hidden G P n @r{(Group)}
 @findex gnus-group-sort-selected-groups-by-real-name
 Sort the groups alphabetically by real (unprefixed) group name
 (@code{gnus-group-sort-selected-groups-by-real-name}).
 
 @item G P s
address@hidden G P s (Group)
address@hidden G P s @r{(Group)}
 @findex gnus-group-sort-selected-groups
 Sort the groups according to @code{gnus-group-sort-function}.
 
@@ -3557,13 +3551,13 @@ move groups around.
 
 @table @kbd
 @item b
address@hidden b (Group)
address@hidden b @r{(Group)}
 @findex gnus-group-check-bogus-groups
 Find bogus groups and delete them
 (@code{gnus-group-check-bogus-groups}).
 
 @item F
address@hidden F (Group)
address@hidden F @r{(Group)}
 @findex gnus-group-find-new-groups
 Find new groups and process them (@code{gnus-group-find-new-groups}).
 With 1 @kbd{C-u}, use the @code{ask-server} method to query the server
@@ -3572,7 +3566,7 @@ to query the server for new groups, and subscribe the new 
groups as
 zombies.
 
 @item C-c C-x
address@hidden C-c C-x (Group)
address@hidden C-c C-x @r{(Group)}
 @findex gnus-group-expire-articles
 @cindex expiring mail
 Run all expirable articles in the current group through the expiry
@@ -3581,7 +3575,7 @@ all expirable articles in the group that have been around 
for a while.
 (@pxref{Expiring Mail}).
 
 @item C-c C-M-x
address@hidden C-c C-M-x (Group)
address@hidden C-c C-M-x @r{(Group)}
 @findex gnus-group-expire-all-groups
 @cindex expiring mail
 Run all expirable articles in all groups through the expiry process
@@ -3597,7 +3591,7 @@ Run all expirable articles in all groups through the 
expiry process
 
 @table @kbd
 @item B
address@hidden B (Group)
address@hidden B @r{(Group)}
 @findex gnus-group-browse-foreign-server
 You will be queried for a select method and a server name.  Gnus will
 then attempt to contact this server and let you browse the groups there
@@ -3613,28 +3607,28 @@ Here's a list of keystrokes available in the browse 
mode:
 
 @table @kbd
 @item n
address@hidden n (Browse)
address@hidden n @r{(Browse)}
 @findex gnus-group-next-group
 Go to the next group (@code{gnus-group-next-group}).
 
 @item p
address@hidden p (Browse)
address@hidden p @r{(Browse)}
 @findex gnus-group-prev-group
 Go to the previous group (@code{gnus-group-prev-group}).
 
address@hidden SPACE
address@hidden SPACE (Browse)
address@hidden @key{SPC}
address@hidden SPC @r{(Browse)}
 @findex gnus-browse-read-group
 Enter the current group and display the first article
 (@code{gnus-browse-read-group}).
 
address@hidden RET
address@hidden RET (Browse)
address@hidden @key{RET}
address@hidden RET @r{(Browse)}
 @findex gnus-browse-select-group
 Enter the current group (@code{gnus-browse-select-group}).
 
 @item u
address@hidden u (Browse)
address@hidden u @r{(Browse)}
 @findex gnus-browse-unsubscribe-current-group
 @vindex gnus-browse-subscribe-newsgroup-method
 Unsubscribe to the current group, or, as will be the case here,
@@ -3645,24 +3639,24 @@ using the variable 
@code{gnus-browse-subscribe-newsgroup-method}.  See
 
 @item l
 @itemx q
address@hidden q (Browse)
address@hidden l (Browse)
address@hidden q @r{(Browse)}
address@hidden l @r{(Browse)}
 @findex gnus-browse-exit
 Exit browse mode (@code{gnus-browse-exit}).
 
 @item d
address@hidden d (Browse)
address@hidden d @r{(Browse)}
 @findex gnus-browse-describe-group
 Describe the current group (@code{gnus-browse-describe-group}).
 
 @item ?
address@hidden ? (Browse)
address@hidden ? @r{(Browse)}
 @findex gnus-browse-describe-briefly
 Describe browse mode briefly (well, there's not much to describe, is
 there) (@code{gnus-browse-describe-briefly}).
 
address@hidden DEL
address@hidden DEL (Browse)
address@hidden @key{DEL}
address@hidden DEL @r{(Browse)}
 @findex gnus-browse-delete-group
 This function will delete the current group
 (@code{gnus-browse-delete-group}).  If given a prefix, this function
@@ -3680,20 +3674,20 @@ Yes, Gnus is ex(c)iting.
 
 @table @kbd
 @item z
address@hidden z (Group)
address@hidden z @r{(Group)}
 @findex gnus-group-suspend
 Suspend Gnus (@code{gnus-group-suspend}).  This doesn't really exit Gnus,
 but it kills all buffers except the Group buffer.  I'm not sure why this
 is a gain, but then who am I to judge?
 
 @item q
address@hidden q (Group)
address@hidden q @r{(Group)}
 @findex gnus-group-exit
 @c @icon{gnus-group-exit}
 Quit Gnus (@code{gnus-group-exit}).
 
 @item Q
address@hidden Q (Group)
address@hidden Q @r{(Group)}
 @findex gnus-group-quit
 Quit Gnus without saving the @file{.newsrc} files (@code{gnus-group-quit}).
 The dribble file will be saved, though (@pxref{Auto Save}).
@@ -3752,7 +3746,7 @@ Gnus
 @end example
 
 @findex gnus-topic-mode
address@hidden t (Group)
address@hidden t @r{(Group)}
 To get this @emph{fab} functionality you simply turn on (ooh!) the
 @code{gnus-topic} minor mode---type @kbd{t} in the group buffer.  (This
 is a toggling command.)
@@ -3801,22 +3795,22 @@ the way you like.
 @table @kbd
 
 @item T n
address@hidden T n (Topic)
address@hidden T n @r{(Topic)}
 @findex gnus-topic-create-topic
 Prompt for a new topic name and create it
 (@code{gnus-topic-create-topic}).
 
address@hidden T TAB
address@hidden TAB
address@hidden T TAB (Topic)
address@hidden TAB (Topic)
address@hidden T @key{TAB}
address@hidden @key{TAB}
address@hidden T TAB @r{(Topic)}
address@hidden TAB @r{(Topic)}
 @findex gnus-topic-indent
 ``Indent'' the current topic so that it becomes a sub-topic of the
 previous topic (@code{gnus-topic-indent}).  If given a prefix,
 ``un-indent'' the topic instead.
 
address@hidden M-TAB
address@hidden M-TAB (Topic)
address@hidden address@hidden
address@hidden M-TAB @r{(Topic)}
 @findex gnus-topic-unindent
 ``Un-indent'' the current topic so that it becomes a sub-topic of the
 parent of its current parent (@code{gnus-topic-unindent}).
@@ -3831,13 +3825,13 @@ kill and yank rather than cut and paste.
 @table @kbd
 
 @item C-k
address@hidden C-k (Topic)
address@hidden C-k @r{(Topic)}
 @findex gnus-topic-kill-group
 Kill a group or topic (@code{gnus-topic-kill-group}).  All groups in the
 topic will be removed along with the topic.
 
 @item C-y
address@hidden C-y (Topic)
address@hidden C-y @r{(Topic)}
 @findex gnus-topic-yank-group
 Yank the previously killed group or topic
 (@code{gnus-topic-yank-group}).  Note that all topics will be yanked
@@ -3860,10 +3854,10 @@ key.
 
 @table @kbd
 
address@hidden RET
address@hidden RET (Topic)
address@hidden @key{RET}
address@hidden RET @r{(Topic)}
 @findex gnus-topic-select-group
address@hidden SPACE
address@hidden @key{SPC}
 Either select a group or fold a topic (@code{gnus-topic-select-group}).
 When you perform this command on a group, you'll enter the group, as
 usual.  When done on a topic line, the topic will be folded (if it was
@@ -3878,38 +3872,38 @@ Now for a list of other commands, in no particular 
order.
 @table @kbd
 
 @item T m
address@hidden T m (Topic)
address@hidden T m @r{(Topic)}
 @findex gnus-topic-move-group
 Move the current group to some other topic
 (@code{gnus-topic-move-group}).  This command uses the process/prefix
 convention (@pxref{Process/Prefix}).
 
 @item T j
address@hidden T j (Topic)
address@hidden T j @r{(Topic)}
 @findex gnus-topic-jump-to-topic
 Go to a topic (@code{gnus-topic-jump-to-topic}).
 
 @item T c
address@hidden T c (Topic)
address@hidden T c @r{(Topic)}
 @findex gnus-topic-copy-group
 Copy the current group to some other topic
 (@code{gnus-topic-copy-group}).  This command uses the process/prefix
 convention (@pxref{Process/Prefix}).
 
 @item T h
address@hidden T h (Topic)
address@hidden T h @r{(Topic)}
 @findex gnus-topic-hide-topic
 Hide the current topic (@code{gnus-topic-hide-topic}).  If given
 a prefix, hide the topic permanently.
 
 @item T s
address@hidden T s (Topic)
address@hidden T s @r{(Topic)}
 @findex gnus-topic-show-topic
 Show the current topic (@code{gnus-topic-show-topic}).  If given
 a prefix, show the topic permanently.
 
 @item T D
address@hidden T D (Topic)
address@hidden T D @r{(Topic)}
 @findex gnus-topic-remove-group
 Remove a group from the current topic (@code{gnus-topic-remove-group}).
 This command is mainly useful if you have the same group in several
@@ -3923,39 +3917,39 @@ This command uses the process/prefix convention
 (@pxref{Process/Prefix}).
 
 @item T M
address@hidden T M (Topic)
address@hidden T M @r{(Topic)}
 @findex gnus-topic-move-matching
 Move all groups that match some regular expression to a topic
 (@code{gnus-topic-move-matching}).
 
 @item T C
address@hidden T C (Topic)
address@hidden T C @r{(Topic)}
 @findex gnus-topic-copy-matching
 Copy all groups that match some regular expression to a topic
 (@code{gnus-topic-copy-matching}).
 
 @item T H
address@hidden T H (Topic)
address@hidden T H @r{(Topic)}
 @findex gnus-topic-toggle-display-empty-topics
 Toggle hiding empty topics
 (@code{gnus-topic-toggle-display-empty-topics}).
 
 @item T #
address@hidden T # (Topic)
address@hidden T # @r{(Topic)}
 @findex gnus-topic-mark-topic
 Mark all groups in the current topic with the process mark
 (@code{gnus-topic-mark-topic}).  This command works recursively on
 sub-topics unless given a prefix.
 
 @item T M-#
address@hidden T M-# (Topic)
address@hidden T M-# @r{(Topic)}
 @findex gnus-topic-unmark-topic
 Remove the process mark from all groups in the current topic
 (@code{gnus-topic-unmark-topic}).  This command works recursively on
 sub-topics unless given a prefix.
 
 @item C-c C-x
address@hidden C-c C-x (Topic)
address@hidden C-c C-x @r{(Topic)}
 @findex gnus-topic-expire-articles
 @cindex expiring mail
 Run all expirable articles in the current group or topic through the
@@ -3963,33 +3957,33 @@ expiry process (if any)
 (@code{gnus-topic-expire-articles}).  (@pxref{Expiring Mail}).
 
 @item T r
address@hidden T r (Topic)
address@hidden T r @r{(Topic)}
 @findex gnus-topic-rename
 Rename a topic (@code{gnus-topic-rename}).
 
address@hidden T DEL
address@hidden T DEL (Topic)
address@hidden T @key{DEL}
address@hidden T DEL @r{(Topic)}
 @findex gnus-topic-delete
 Delete an empty topic (@code{gnus-topic-delete}).
 
 @item A T
address@hidden A T (Topic)
address@hidden A T @r{(Topic)}
 @findex gnus-topic-list-active
 List all groups that Gnus knows about in a topics-ified way
 (@code{gnus-topic-list-active}).
 
 @item T M-n
address@hidden T M-n (Topic)
address@hidden T M-n @r{(Topic)}
 @findex gnus-topic-goto-next-topic
 Go to the next topic (@code{gnus-topic-goto-next-topic}).
 
 @item T M-p
address@hidden T M-p (Topic)
address@hidden T M-p @r{(Topic)}
 @findex gnus-topic-goto-previous-topic
 Go to the previous topic (@code{gnus-topic-goto-previous-topic}).
 
 @item G p
address@hidden G p (Topic)
address@hidden G p @r{(Topic)}
 @findex gnus-topic-edit-parameters
 @cindex group parameters
 @cindex topic parameters
@@ -4052,49 +4046,49 @@ commands:
 
 @table @kbd
 @item T S a
address@hidden T S a (Topic)
address@hidden T S a @r{(Topic)}
 @findex gnus-topic-sort-groups-by-alphabet
 Sort the current topic alphabetically by group name
 (@code{gnus-topic-sort-groups-by-alphabet}).
 
 @item T S u
address@hidden T S u (Topic)
address@hidden T S u @r{(Topic)}
 @findex gnus-topic-sort-groups-by-unread
 Sort the current topic by the number of unread articles
 (@code{gnus-topic-sort-groups-by-unread}).
 
 @item T S l
address@hidden T S l (Topic)
address@hidden T S l @r{(Topic)}
 @findex gnus-topic-sort-groups-by-level
 Sort the current topic by group level
 (@code{gnus-topic-sort-groups-by-level}).
 
 @item T S v
address@hidden T S v (Topic)
address@hidden T S v @r{(Topic)}
 @findex gnus-topic-sort-groups-by-score
 Sort the current topic by group score
 (@code{gnus-topic-sort-groups-by-score}).  @xref{Group Score}.
 
 @item T S r
address@hidden T S r (Topic)
address@hidden T S r @r{(Topic)}
 @findex gnus-topic-sort-groups-by-rank
 Sort the current topic by group rank
 (@code{gnus-topic-sort-groups-by-rank}).  @xref{Group Score}.
 
 @item T S m
address@hidden T S m (Topic)
address@hidden T S m @r{(Topic)}
 @findex gnus-topic-sort-groups-by-method
 Sort the current topic alphabetically by back end name
 (@code{gnus-topic-sort-groups-by-method}).
 
 @item T S e
address@hidden T S e (Topic)
address@hidden T S e @r{(Topic)}
 @findex gnus-topic-sort-groups-by-server
 Sort the current topic alphabetically by server name
 (@code{gnus-topic-sort-groups-by-server}).
 
 @item T S s
address@hidden T S s (Topic)
address@hidden T S s @r{(Topic)}
 @findex gnus-topic-sort-groups
 Sort the current topic according to the function(s) given by the
 @code{gnus-group-sort-function} variable
@@ -4369,7 +4363,7 @@ header will be displayed incorrectly in the article 
buffer.
 @table @kbd
 
 @item v
address@hidden v (Group)
address@hidden v @r{(Group)}
 @cindex keys, reserved for users (Group)
 The key @kbd{v} is reserved for users.  You can bind it to some
 command or better use it as a prefix key.  For example:
@@ -4385,13 +4379,13 @@ On keys reserved for users in Emacs and on keybindings 
in general
 @xref{Keymaps, Keymaps, , emacs, The Emacs Editor}.
 
 @item ^
address@hidden ^ (Group)
address@hidden ^ @r{(Group)}
 @findex gnus-group-enter-server-mode
 Enter the server buffer (@code{gnus-group-enter-server-mode}).
 @xref{Server Buffer}.
 
 @item a
address@hidden a (Group)
address@hidden a @r{(Group)}
 @findex gnus-group-post-news
 Start composing a message (a news by default)
 (@code{gnus-group-post-news}).  If given a prefix, post to the group
@@ -4401,7 +4395,7 @@ article might be a mail instead of a news, if a mail 
group is specified
 with the prefix argument.  @xref{Composing Messages}.
 
 @item m
address@hidden m (Group)
address@hidden m @r{(Group)}
 @findex gnus-group-mail
 Mail a message somewhere (@code{gnus-group-mail}).  If given a prefix,
 use the posting style of the group under the point.  If the prefix is 1,
@@ -4409,7 +4403,7 @@ prompt for a group name to find the posting style.
 @xref{Composing Messages}.
 
 @item i
address@hidden i (Group)
address@hidden i @r{(Group)}
 @findex gnus-group-news
 Start composing a news (@code{gnus-group-news}).  If given a prefix,
 post to the group under the point.  If the prefix is 1, prompt
@@ -4422,7 +4416,7 @@ in question.  The corresponding back end must have a 
request-post method
 for this to work though.
 
 @item G z
address@hidden G z (Group)
address@hidden G z @r{(Group)}
 @findex gnus-group-compact-group
 
 Compact the group under point (@code{gnus-group-compact-group}).
@@ -4467,7 +4461,7 @@ whether they are empty or not.
 @table @kbd
 
 @item g
address@hidden g (Group)
address@hidden g @r{(Group)}
 @findex gnus-group-get-new-news
 @c @icon{gnus-group-get-new-news}
 Check the server(s) for new articles.  If the numerical prefix is used,
@@ -4477,7 +4471,7 @@ command will force a total re-reading of the active 
file(s) from the
 back end(s).
 
 @item M-g
address@hidden M-g (Group)
address@hidden M-g @r{(Group)}
 @findex gnus-group-get-new-news-this-group
 @vindex gnus-goto-next-group-when-activating
 @c @icon{gnus-group-get-new-news-this-group}
@@ -4489,11 +4483,11 @@ to move point to the next group or not.  It is @code{t} 
by default.
 @findex gnus-activate-all-groups
 @cindex activating groups
 @item C-c M-g
address@hidden C-c M-g (Group)
address@hidden C-c M-g @r{(Group)}
 Activate absolutely all groups (@code{gnus-activate-all-groups}).
 
 @item R
address@hidden R (Group)
address@hidden R @r{(Group)}
 @cindex restarting
 @findex gnus-group-restart
 Restart Gnus (@code{gnus-group-restart}).  This saves the @file{.newsrc}
@@ -4521,8 +4515,8 @@ news.
 @item H d
 @itemx C-c C-d
 @c @icon{gnus-group-describe-group}
address@hidden H d (Group)
address@hidden C-c C-d (Group)
address@hidden H d @r{(Group)}
address@hidden C-c C-d @r{(Group)}
 @cindex describing groups
 @cindex group description
 @findex gnus-group-describe-group
@@ -4530,26 +4524,26 @@ Describe the current group 
(@code{gnus-group-describe-group}).  If given
 a prefix, force Gnus to re-read the description from the server.
 
 @item M-d
address@hidden M-d (Group)
address@hidden M-d @r{(Group)}
 @findex gnus-group-describe-all-groups
 Describe all groups (@code{gnus-group-describe-all-groups}).  If given a
 prefix, force Gnus to re-read the description file from the server.
 
 @item H v
 @itemx V
address@hidden V (Group)
address@hidden H v (Group)
address@hidden V @r{(Group)}
address@hidden H v @r{(Group)}
 @cindex version
 @findex gnus-version
 Display current Gnus version numbers (@code{gnus-version}).
 
 @item ?
address@hidden ? (Group)
address@hidden ? @r{(Group)}
 @findex gnus-group-describe-briefly
 Give a very short help message (@code{gnus-group-describe-briefly}).
 
 @item C-c C-i
address@hidden C-c C-i (Group)
address@hidden C-c C-i @r{(Group)}
 @cindex info
 @cindex manual
 @findex gnus-info-find-node
@@ -4623,7 +4617,7 @@ either.
 @table @kbd
 
 @item r
address@hidden r (Group)
address@hidden r @r{(Group)}
 @findex gnus-group-read-init-file
 @vindex gnus-init-file
 @cindex reading init file
@@ -4631,7 +4625,7 @@ Re-read the init file (@code{gnus-init-file}, which 
defaults to
 @file{~/.gnus.el}) (@code{gnus-group-read-init-file}).
 
 @item s
address@hidden s (Group)
address@hidden s @r{(Group)}
 @findex gnus-group-save-newsrc
 @cindex saving .newsrc
 Save the @file{.newsrc.eld} file (and @file{.newsrc} if wanted)
@@ -4639,7 +4633,7 @@ Save the @file{.newsrc.eld} file (and @file{.newsrc} if 
wanted)
 file(s) whether Gnus thinks it is necessary or not.
 
 @c @item Z
address@hidden @kindex Z (Group)
address@hidden @kindex Z @r{(Group)}
 @c @findex gnus-group-clear-dribble
 @c Clear the dribble buffer (@code{gnus-group-clear-dribble}).
 
@@ -4689,7 +4683,7 @@ if address "sender" "owner-ding@@hpc.uh.edu" @{
 @table @kbd
 
 @item D g
address@hidden D g (Group)
address@hidden D g @r{(Group)}
 @findex gnus-sieve-generate
 @vindex gnus-sieve-file
 @cindex generating sieve script
@@ -4697,7 +4691,7 @@ Regenerate a Sieve script from the @code{sieve} group 
parameters and
 put you into the @code{gnus-sieve-file} without saving it.
 
 @item D u
address@hidden D u (Group)
address@hidden D u @r{(Group)}
 @findex gnus-sieve-update
 @vindex gnus-sieve-file
 @cindex updating sieve script
@@ -4721,10 +4715,10 @@ group buffer (@pxref{Selecting a Group}).
 You can have as many summary buffers open as you wish.
 
 You can customize the Summary Mode tool bar, see @kbd{M-x
-customize-apropos RET gnus-summary-tool-bar}.  This feature is only
+customize-apropos @key{RET} gnus-summary-tool-bar}.  This feature is only
 available in Emacs.
 
address@hidden v (Summary)
address@hidden v @r{(Summary)}
 @cindex keys, reserved for users (Summary)
 The key @kbd{v} is reserved for users.  You can bind it to some
 command or better use it as a prefix key.  For example:
@@ -5204,22 +5198,22 @@ None of these commands select articles.
 @table @kbd
 @item G M-n
 @itemx M-n
address@hidden M-n (Summary)
address@hidden G M-n (Summary)
address@hidden M-n @r{(Summary)}
address@hidden G M-n @r{(Summary)}
 @findex gnus-summary-next-unread-subject
 Go to the next summary line of an unread article
 (@code{gnus-summary-next-unread-subject}).
 
 @item G M-p
 @itemx M-p
address@hidden M-p (Summary)
address@hidden G M-p (Summary)
address@hidden M-p @r{(Summary)}
address@hidden G M-p @r{(Summary)}
 @findex gnus-summary-prev-unread-subject
 Go to the previous summary line of an unread article
 (@code{gnus-summary-prev-unread-subject}).
 
 @item G g
address@hidden G g (Summary)
address@hidden G g @r{(Summary)}
 @findex gnus-summary-goto-subject
 Ask for an article number and then go to the summary line of that article
 without displaying the article (@code{gnus-summary-goto-subject}).
@@ -5281,7 +5275,7 @@ the given number of lines from the top.
 @item gnus-summary-stop-at-end-of-message
 @vindex gnus-summary-stop-at-end-of-message
 If address@hidden, don't go to the next article when hitting
address@hidden, and you're at the end of the article.
address@hidden@key{SPC}}, and you're at the end of the article.
 
 @end table
 
@@ -5306,69 +5300,69 @@ If you want to fetch new articles or redisplay the 
group, see
 @ref{Exiting the Summary Buffer}.
 
 @table @kbd
address@hidden SPACE
address@hidden SPACE (Summary)
address@hidden @key{SPC}
address@hidden SPC @r{(Summary)}
 @findex gnus-summary-next-page
 Select the current article, or, if that one's read already, the next
 unread article (@code{gnus-summary-next-page}).
 
-If you have an article window open already and you press @kbd{SPACE}
+If you have an article window open already and you press @address@hidden
 again, the article will be scrolled.  This lets you conveniently
address@hidden through an entire newsgroup.  @xref{Paging the Article}.
address@hidden@key{SPC}} through an entire newsgroup.  @xref{Paging the 
Article}.
 
 @item G n
 @itemx n
address@hidden n (Summary)
address@hidden G n (Summary)
address@hidden n @r{(Summary)}
address@hidden G n @r{(Summary)}
 @findex gnus-summary-next-unread-article
 @c @icon{gnus-summary-next-unread}
 Go to next unread article (@code{gnus-summary-next-unread-article}).
 
 @item G p
 @itemx p
address@hidden p (Summary)
address@hidden p @r{(Summary)}
 @findex gnus-summary-prev-unread-article
 @c @icon{gnus-summary-prev-unread}
 Go to previous unread article (@code{gnus-summary-prev-unread-article}).
 
 @item G N
 @itemx N
address@hidden N (Summary)
address@hidden G N (Summary)
address@hidden N @r{(Summary)}
address@hidden G N @r{(Summary)}
 @findex gnus-summary-next-article
 Go to the next article (@code{gnus-summary-next-article}).
 
 @item G P
 @itemx P
address@hidden P (Summary)
address@hidden G P (Summary)
address@hidden P @r{(Summary)}
address@hidden G P @r{(Summary)}
 @findex gnus-summary-prev-article
 Go to the previous article (@code{gnus-summary-prev-article}).
 
 @item G C-n
address@hidden G C-n (Summary)
address@hidden G C-n @r{(Summary)}
 @findex gnus-summary-next-same-subject
 Go to the next article with the same subject
 (@code{gnus-summary-next-same-subject}).
 
 @item G C-p
address@hidden G C-p (Summary)
address@hidden G C-p @r{(Summary)}
 @findex gnus-summary-prev-same-subject
 Go to the previous article with the same subject
 (@code{gnus-summary-prev-same-subject}).
 
 @item G f
 @itemx .
address@hidden G f  (Summary)
address@hidden .  (Summary)
address@hidden G f  @r{(Summary)}
address@hidden .  @r{(Summary)}
 @findex gnus-summary-first-unread-article
 Go to the first unread article
 (@code{gnus-summary-first-unread-article}).
 
 @item G b
 @itemx ,
address@hidden G b (Summary)
address@hidden , (Summary)
address@hidden G b @r{(Summary)}
address@hidden , @r{(Summary)}
 @findex gnus-summary-best-unread-article
 Go to the unread article with the highest score
 (@code{gnus-summary-best-unread-article}).  If given a prefix argument,
@@ -5376,13 +5370,13 @@ go to the first unread article that has a score over 
the default score.
 
 @item G l
 @itemx l
address@hidden l (Summary)
address@hidden G l (Summary)
address@hidden l @r{(Summary)}
address@hidden G l @r{(Summary)}
 @findex gnus-summary-goto-last-article
 Go to the previous article read (@code{gnus-summary-goto-last-article}).
 
 @item G o
address@hidden G o (Summary)
address@hidden G o @r{(Summary)}
 @findex gnus-summary-pop-article
 @cindex history
 @cindex article history
@@ -5395,8 +5389,8 @@ For a somewhat related issue (if you use these commands a 
lot),
 
 @item G j
 @itemx j
address@hidden j (Summary)
address@hidden G j (Summary)
address@hidden j @r{(Summary)}
address@hidden G j @r{(Summary)}
 @findex gnus-summary-goto-article
 Ask for an article number or @code{Message-ID}, and then go to that
 article (@code{gnus-summary-goto-article}).
@@ -5448,10 +5442,10 @@ instead.  It will leave marks like 
@code{gnus-low-score-mark},
 
 @table @kbd
 
address@hidden SPACE
address@hidden SPACE (Summary)
address@hidden @key{SPC}
address@hidden SPC @r{(Summary)}
 @findex gnus-summary-next-page
-Pressing @kbd{SPACE} will scroll the current article forward one page,
+Pressing @address@hidden will scroll the current article forward one page,
 or, if you have come to the end of the current article, will choose the
 next article (@code{gnus-summary-next-page}).
 
@@ -5464,27 +5458,27 @@ what is considered uninteresting with
 @code{gnus-article-boring-faces}.  You can manually view the article's
 pages, no matter how boring, using @kbd{C-M-v}.
 
address@hidden DEL
address@hidden DEL (Summary)
address@hidden @key{DEL}
address@hidden DEL @r{(Summary)}
 @findex gnus-summary-prev-page
 Scroll the current article back one page (@code{gnus-summary-prev-page}).
 
address@hidden RET
address@hidden RET (Summary)
address@hidden @key{RET}
address@hidden RET @r{(Summary)}
 @findex gnus-summary-scroll-up
 Scroll the current article one line forward
 (@code{gnus-summary-scroll-up}).
 
address@hidden M-RET
address@hidden M-RET (Summary)
address@hidden address@hidden
address@hidden M-RET @r{(Summary)}
 @findex gnus-summary-scroll-down
 Scroll the current article one line backward
 (@code{gnus-summary-scroll-down}).
 
 @item A g
 @itemx g
address@hidden A g (Summary)
address@hidden g (Summary)
address@hidden A g @r{(Summary)}
address@hidden g @r{(Summary)}
 @findex gnus-summary-show-article
 @vindex gnus-summary-show-article-charset-alist
 (Re)fetch the current article (@code{gnus-summary-show-article}).  If
@@ -5495,7 +5489,7 @@ treatment functions.
 
 @cindex charset, view article with different charset
 If given a numerical prefix, you can do semi-manual charset stuff.
address@hidden 0 g cn-gb-2312 RET} will decode the message as if it were
address@hidden 0 g cn-gb-2312 @key{RET}} will decode the message as if it were
 encoded in the @code{cn-gb-2312} charset.  If you have
 
 @lisp
@@ -5508,29 +5502,29 @@ then you can say @kbd{C-u 1 g} to get the same effect.
 
 @item A <
 @itemx <
address@hidden < (Summary)
address@hidden A < (Summary)
address@hidden < @r{(Summary)}
address@hidden A < @r{(Summary)}
 @findex gnus-summary-beginning-of-article
 Scroll to the beginning of the article
 (@code{gnus-summary-beginning-of-article}).
 
 @item A >
 @itemx >
address@hidden > (Summary)
address@hidden A > (Summary)
address@hidden > @r{(Summary)}
address@hidden A > @r{(Summary)}
 @findex gnus-summary-end-of-article
 Scroll to the end of the article (@code{gnus-summary-end-of-article}).
 
 @item A s
 @itemx s
address@hidden A s (Summary)
address@hidden s (Summary)
address@hidden A s @r{(Summary)}
address@hidden s @r{(Summary)}
 @findex gnus-summary-isearch-article
 Perform an isearch in the article buffer
 (@code{gnus-summary-isearch-article}).
 
 @item h
address@hidden h (Summary)
address@hidden h @r{(Summary)}
 @findex gnus-summary-select-article-buffer
 Select the article buffer (@code{gnus-summary-select-article-buffer}).
 
@@ -5559,8 +5553,8 @@ Commands for composing a mail message:
 
 @item S r
 @itemx r
address@hidden S r (Summary)
address@hidden r (Summary)
address@hidden S r @r{(Summary)}
address@hidden r @r{(Summary)}
 @findex gnus-summary-reply
 @c @icon{gnus-summary-mail-reply}
 @c @icon{gnus-summary-reply}
@@ -5569,8 +5563,8 @@ Mail a reply to the author of the current article
 
 @item S R
 @itemx R
address@hidden R (Summary)
address@hidden S R (Summary)
address@hidden R @r{(Summary)}
address@hidden S R @r{(Summary)}
 @findex gnus-summary-reply-with-original
 @c @icon{gnus-summary-reply-with-original}
 Mail a reply to the author of the current article and include the
@@ -5578,7 +5572,7 @@ original message 
(@code{gnus-summary-reply-with-original}).  This
 command uses the process/prefix convention.
 
 @item S w
address@hidden S w (Summary)
address@hidden S w @r{(Summary)}
 @findex gnus-summary-wide-reply
 Mail a wide reply to the author of the current article
 (@code{gnus-summary-wide-reply}).  A @dfn{wide reply} is a reply that
@@ -5587,7 +5581,7 @@ goes out to all people listed in the @code{To}, 
@code{From} (or
 present, that's used instead.
 
 @item S W
address@hidden S W (Summary)
address@hidden S W @r{(Summary)}
 @findex gnus-summary-wide-reply-with-original
 Mail a wide reply to the current article and include the original
 message (@code{gnus-summary-wide-reply-with-original}).  This command uses
@@ -5595,14 +5589,14 @@ the process/prefix convention, but only uses the 
headers from the
 first article to determine the recipients.
 
 @item S L
address@hidden S L (Summary)
address@hidden S L @r{(Summary)}
 @findex gnus-summary-reply-to-list-with-original
 When replying to a message from a mailing list, send a reply to that
 message to the mailing list, and include the original message
 (@code{gnus-summary-reply-to-list-with-original}).
 
 @item S v
address@hidden S v (Summary)
address@hidden S v @r{(Summary)}
 @findex gnus-summary-very-wide-reply
 Mail a very wide reply to the author of the current article
 (@code{gnus-summary-wide-reply}).  A @dfn{very wide reply} is a reply
@@ -5611,14 +5605,14 @@ that goes out to all people listed in the @code{To}, 
@code{From} (or
 articles.  This command uses the process/prefix convention.
 
 @item S V
address@hidden S V (Summary)
address@hidden S V @r{(Summary)}
 @findex gnus-summary-very-wide-reply-with-original
 Mail a very wide reply to the author of the current article and include the
 original message (@code{gnus-summary-very-wide-reply-with-original}).  This
 command uses the process/prefix convention.
 
 @item S B r
address@hidden S B r (Summary)
address@hidden S B r @r{(Summary)}
 @findex gnus-summary-reply-broken-reply-to
 Mail a reply to the author of the current article but ignore the
 @code{Reply-To} field (@code{gnus-summary-reply-broken-reply-to}).
@@ -5628,7 +5622,7 @@ the @code{broken-reply-to} group parameter instead, so 
things will work
 correctly.  @xref{Group Parameters}.
 
 @item S B R
address@hidden S B R (Summary)
address@hidden S B R @r{(Summary)}
 @findex gnus-summary-reply-broken-reply-to-with-original
 Mail a reply to the author of the current article and include the
 original message but ignore the @code{Reply-To} field
@@ -5636,8 +5630,8 @@ original message but ignore the @code{Reply-To} field
 
 @item S o m
 @itemx C-c C-f
address@hidden S o m (Summary)
address@hidden C-c C-f (Summary)
address@hidden S o m @r{(Summary)}
address@hidden C-c C-f @r{(Summary)}
 @findex gnus-summary-mail-forward
 @c @icon{gnus-summary-mail-forward}
 Forward the current article to some other person
@@ -5654,8 +5648,8 @@ section.
 
 @item S m
 @itemx m
address@hidden m (Summary)
address@hidden S m (Summary)
address@hidden m @r{(Summary)}
address@hidden S m @r{(Summary)}
 @findex gnus-summary-mail-other-window
 @c @icon{gnus-summary-mail-originate}
 Prepare a mail (@code{gnus-summary-mail-other-window}).  By default, use
@@ -5663,7 +5657,7 @@ the posting style of the current group.  If given a 
prefix, disable that.
 If the prefix is 1, prompt for a group name to find the posting style.
 
 @item S i
address@hidden S i (Summary)
address@hidden S i @r{(Summary)}
 @findex gnus-summary-news-other-window
 Prepare a news (@code{gnus-summary-news-other-window}).  By default,
 post to the current group.  If given a prefix, disable that.  If the
@@ -5676,7 +5670,7 @@ in question.  The corresponding back end must have a 
request-post method
 for this to work though.
 
 @item S D b
address@hidden S D b (Summary)
address@hidden S D b @r{(Summary)}
 @findex gnus-summary-resend-bounced-mail
 @cindex bouncing mail
 If you have sent a mail, but the mail was bounced back to you for some
@@ -5689,7 +5683,7 @@ that mail and display it for easy perusal of its headers. 
 This might
 very well fail, though.
 
 @item S D r
address@hidden S D r (Summary)
address@hidden S D r @r{(Summary)}
 @findex gnus-summary-resend-message
 Not to be confused with the previous command,
 @code{gnus-summary-resend-message} will prompt you for an address to
@@ -5710,21 +5704,21 @@ This command understands the process/prefix convention
 (@pxref{Process/Prefix}).
 
 @item S D e
address@hidden S D e (Summary)
address@hidden S D e @r{(Summary)}
 @findex gnus-summary-resend-message-edit
 
 Like the previous command, but will allow you to edit the message as
 if it were a new message before resending.
 
 @item S O m
address@hidden S O m (Summary)
address@hidden S O m @r{(Summary)}
 @findex gnus-uu-digest-mail-forward
 Digest the current series (@pxref{Decoding Articles}) and forward the
 result using mail (@code{gnus-uu-digest-mail-forward}).  This command
 uses the process/prefix convention (@pxref{Process/Prefix}).
 
 @item S M-c
address@hidden S M-c (Summary)
address@hidden S M-c @r{(Summary)}
 @findex gnus-summary-mail-crosspost-complaint
 @cindex crossposting
 @cindex excessive crossposting
@@ -5754,8 +5748,8 @@ Commands for posting a news article:
 @table @kbd
 @item S p
 @itemx a
address@hidden a (Summary)
address@hidden S p (Summary)
address@hidden a @r{(Summary)}
address@hidden S p @r{(Summary)}
 @findex gnus-summary-post-news
 @c @icon{gnus-summary-post-news}
 Prepare for posting an article (@code{gnus-summary-post-news}).  By
@@ -5764,16 +5758,16 @@ If the prefix is 1, prompt for another group instead.
 
 @item S f
 @itemx f
address@hidden f (Summary)
address@hidden S f (Summary)
address@hidden f @r{(Summary)}
address@hidden S f @r{(Summary)}
 @findex gnus-summary-followup
 @c @icon{gnus-summary-followup}
 Post a followup to the current article (@code{gnus-summary-followup}).
 
 @item S F
 @itemx F
address@hidden S F (Summary)
address@hidden F (Summary)
address@hidden S F @r{(Summary)}
address@hidden F @r{(Summary)}
 @c @icon{gnus-summary-followup-with-original}
 @findex gnus-summary-followup-with-original
 Post a followup to the current article and include the original message
@@ -5781,13 +5775,13 @@ Post a followup to the current article and include the 
original message
 process/prefix convention.
 
 @item S n
address@hidden S n (Summary)
address@hidden S n @r{(Summary)}
 @findex gnus-summary-followup-to-mail
 Post a followup to the current article via news, even if you got the
 message through mail (@code{gnus-summary-followup-to-mail}).
 
 @item S N
address@hidden S N (Summary)
address@hidden S N @r{(Summary)}
 @findex gnus-summary-followup-to-mail-with-original
 Post a followup to the current article via news, even if you got the
 message through mail and include the original message
@@ -5795,7 +5789,7 @@ message through mail and include the original message
 the process/prefix convention.
 
 @item S o p
address@hidden S o p (Summary)
address@hidden S o p @r{(Summary)}
 @findex gnus-summary-post-forward
 Forward the current article to a newsgroup
 (@code{gnus-summary-post-forward}).
@@ -5810,7 +5804,7 @@ but use the flipped value of 
(@code{message-forward-as-mime}).  By
 default, the message is decoded and forwarded as an rfc822 @acronym{MIME} 
section.
 
 @item S O p
address@hidden S O p (Summary)
address@hidden S O p @r{(Summary)}
 @findex gnus-uu-digest-post-forward
 @cindex digests
 @cindex making digests
@@ -5819,7 +5813,7 @@ Digest the current series and forward the result to a 
newsgroup
 process/prefix convention.
 
 @item S u
address@hidden S u (Summary)
address@hidden S u @r{(Summary)}
 @findex gnus-uu-post-news
 @c @icon{gnus-uu-post-news}
 Uuencode a file, split it into parts, and post it as a series
@@ -5835,7 +5829,7 @@ Manual}, for more information.
 
 @table @kbd
 @item S y
address@hidden S y (Summary)
address@hidden S y @r{(Summary)}
 @findex gnus-summary-yank-message
 Yank the current article into an already existing Message composition
 buffer (@code{gnus-summary-yank-message}).  This command prompts for
@@ -5856,7 +5850,7 @@ really, really wish you hadn't posted that?
 Well, you can't cancel mail, but you can cancel posts.
 
 @findex gnus-summary-cancel-article
address@hidden C (Summary)
address@hidden C @r{(Summary)}
 @c @icon{gnus-summary-cancel-article}
 Find the article you wish to cancel (you can only cancel your own
 articles, so don't try any funny stuff).  Then press @kbd{C} or @kbd{S
@@ -5881,7 +5875,7 @@ corrections, you can post a @dfn{superseding} article 
that will replace
 your original article.
 
 @findex gnus-summary-supersede-article
address@hidden S (Summary)
address@hidden S @r{(Summary)}
 Go to the original article and press @kbd{S s}
 (@code{gnus-summary-supersede-article}).  You will be put in a buffer
 where you can edit the article all you want before sending it off the
@@ -6064,7 +6058,7 @@ followups, you can use the @kbd{/ D} command 
(@pxref{Limiting}).
 Otherwise (except for the visibility issue), they are just like ticked
 messages.
 
address@hidden SPACE
address@hidden @key{SPC}
 @vindex gnus-unread-mark
 Marked as unread (@code{gnus-unread-mark}).
 
@@ -6248,8 +6242,8 @@ All the marking commands understand the numeric prefix.
 @table @kbd
 @item M c
 @itemx M-u
address@hidden M c (Summary)
address@hidden M-u (Summary)
address@hidden M c @r{(Summary)}
address@hidden M-u @r{(Summary)}
 @findex gnus-summary-clear-mark-forward
 @cindex mark as unread
 Clear all readedness-marks from the current article
@@ -6258,38 +6252,38 @@ article as unread.
 
 @item M t
 @itemx !
address@hidden ! (Summary)
address@hidden M t (Summary)
address@hidden ! @r{(Summary)}
address@hidden M t @r{(Summary)}
 @findex gnus-summary-tick-article-forward
 Tick the current article (@code{gnus-summary-tick-article-forward}).
 @xref{Article Caching}.
 
 @item M ?
 @itemx ?
address@hidden ? (Summary)
address@hidden M ? (Summary)
address@hidden ? @r{(Summary)}
address@hidden M ? @r{(Summary)}
 @findex gnus-summary-mark-as-dormant
 Mark the current article as dormant
 (@code{gnus-summary-mark-as-dormant}).  @xref{Article Caching}.
 
 @item M d
 @itemx d
address@hidden M d (Summary)
address@hidden d (Summary)
address@hidden M d @r{(Summary)}
address@hidden d @r{(Summary)}
 @findex gnus-summary-mark-as-read-forward
 Mark the current article as read
 (@code{gnus-summary-mark-as-read-forward}).
 
 @item D
address@hidden D (Summary)
address@hidden D @r{(Summary)}
 @findex gnus-summary-mark-as-read-backward
 Mark the current article as read and move point to the previous line
 (@code{gnus-summary-mark-as-read-backward}).
 
 @item M k
 @itemx k
address@hidden k (Summary)
address@hidden M k (Summary)
address@hidden k @r{(Summary)}
address@hidden M k @r{(Summary)}
 @findex gnus-summary-kill-same-subject-and-select
 Mark all articles that have the same subject as the current one as read,
 and then select the next unread article
@@ -6297,82 +6291,82 @@ and then select the next unread article
 
 @item M K
 @itemx C-k
address@hidden M K (Summary)
address@hidden C-k (Summary)
address@hidden M K @r{(Summary)}
address@hidden C-k @r{(Summary)}
 @findex gnus-summary-kill-same-subject
 Mark all articles that have the same subject as the current one as read
 (@code{gnus-summary-kill-same-subject}).
 
 @item M C
address@hidden M C (Summary)
address@hidden M C @r{(Summary)}
 @findex gnus-summary-catchup
 @c @icon{gnus-summary-catchup}
 Mark all unread articles as read (@code{gnus-summary-catchup}).
 
 @item M C-c
address@hidden M C-c (Summary)
address@hidden M C-c @r{(Summary)}
 @findex gnus-summary-catchup-all
 Mark all articles in the group as read---even the ticked and dormant
 articles (@code{gnus-summary-catchup-all}).
 
 @item M H
address@hidden M H (Summary)
address@hidden M H @r{(Summary)}
 @findex gnus-summary-catchup-to-here
 Catchup the current group to point (before the point)
 (@code{gnus-summary-catchup-to-here}).
 
 @item M h
address@hidden M h (Summary)
address@hidden M h @r{(Summary)}
 @findex gnus-summary-catchup-from-here
 Catchup the current group from point (after the point)
 (@code{gnus-summary-catchup-from-here}).
 
 @item C-w
address@hidden C-w (Summary)
address@hidden C-w @r{(Summary)}
 @findex gnus-summary-mark-region-as-read
 Mark all articles between point and mark as read
 (@code{gnus-summary-mark-region-as-read}).
 
 @item M V k
address@hidden M V k (Summary)
address@hidden M V k @r{(Summary)}
 @findex gnus-summary-kill-below
 Kill all articles with scores below the default score (or below the
 numeric prefix) (@code{gnus-summary-kill-below}).
 
 @item M e
 @itemx E
address@hidden M e (Summary)
address@hidden E (Summary)
address@hidden M e @r{(Summary)}
address@hidden E @r{(Summary)}
 @findex gnus-summary-mark-as-expirable
 Mark the current article as expirable
 (@code{gnus-summary-mark-as-expirable}).
 
 @item M b
address@hidden M b (Summary)
address@hidden M b @r{(Summary)}
 @findex gnus-summary-set-bookmark
 Set a bookmark in the current article
 (@code{gnus-summary-set-bookmark}).
 
 @item M B
address@hidden M B (Summary)
address@hidden M B @r{(Summary)}
 @findex gnus-summary-remove-bookmark
 Remove the bookmark from the current article
 (@code{gnus-summary-remove-bookmark}).
 
 @item M V c
address@hidden M V c (Summary)
address@hidden M V c @r{(Summary)}
 @findex gnus-summary-clear-above
 Clear all marks from articles with scores over the default score (or
 over the numeric prefix) (@code{gnus-summary-clear-above}).
 
 @item M V u
address@hidden M V u (Summary)
address@hidden M V u @r{(Summary)}
 @findex gnus-summary-tick-above
 Tick all articles with scores over the default score (or over the
 numeric prefix) (@code{gnus-summary-tick-above}).
 
 @item M V m
address@hidden M V m (Summary)
address@hidden M V m @r{(Summary)}
 @findex gnus-summary-mark-above
 Prompt for a mark, and mark all articles with scores over the default
 score (or over the numeric prefix) with this mark
@@ -6385,7 +6379,7 @@ be taken after setting a mark.  If address@hidden, point 
will move to
 the next/previous unread article.  If @code{nil}, point will just move
 one line up or down.  As a special case, if this variable is
 @code{never}, all the marking commands as well as other commands (like
address@hidden) will move to the next article, whether it is unread or not.
address@hidden@key{SPC}}) will move to the next article, whether it is unread 
or not.
 The default is @code{t}.
 
 
@@ -6445,8 +6439,8 @@ articles into the cache.  For more information,
 
 @item M P p
 @itemx #
address@hidden # (Summary)
address@hidden M P p (Summary)
address@hidden # @r{(Summary)}
address@hidden M P p @r{(Summary)}
 @findex gnus-summary-mark-as-processable
 Mark the current article with the process mark
 (@code{gnus-summary-mark-as-processable}).
@@ -6454,99 +6448,99 @@ Mark the current article with the process mark
 
 @item M P u
 @itemx M-#
address@hidden M P u (Summary)
address@hidden M-# (Summary)
address@hidden M P u @r{(Summary)}
address@hidden M-# @r{(Summary)}
 Remove the process mark, if any, from the current article
 (@code{gnus-summary-unmark-as-processable}).
 
 @item M P U
address@hidden M P U (Summary)
address@hidden M P U @r{(Summary)}
 @findex gnus-summary-unmark-all-processable
 Remove the process mark from all articles
 (@code{gnus-summary-unmark-all-processable}).
 
 @item M P i
address@hidden M P i (Summary)
address@hidden M P i @r{(Summary)}
 @findex gnus-uu-invert-processable
 Invert the list of process marked articles
 (@code{gnus-uu-invert-processable}).
 
 @item M P R
address@hidden M P R (Summary)
address@hidden M P R @r{(Summary)}
 @findex gnus-uu-mark-by-regexp
 Mark articles that have a @code{Subject} header that matches a regular
 expression (@code{gnus-uu-mark-by-regexp}).
 
 @item M P G
address@hidden M P G (Summary)
address@hidden M P G @r{(Summary)}
 @findex gnus-uu-unmark-by-regexp
 Unmark articles that have a @code{Subject} header that matches a regular
 expression (@code{gnus-uu-unmark-by-regexp}).
 
 @item M P r
address@hidden M P r (Summary)
address@hidden M P r @r{(Summary)}
 @findex gnus-uu-mark-region
 Mark articles in region (@code{gnus-uu-mark-region}).
 
 @item M P g
address@hidden M P g (Summary)
address@hidden M P g @r{(Summary)}
 @findex gnus-uu-unmark-region
 Unmark articles in region (@code{gnus-uu-unmark-region}).
 
 @item M P t
address@hidden M P t (Summary)
address@hidden M P t @r{(Summary)}
 @findex gnus-uu-mark-thread
 Mark all articles in the current (sub)thread
 (@code{gnus-uu-mark-thread}).
 
 @item M P T
address@hidden M P T (Summary)
address@hidden M P T @r{(Summary)}
 @findex gnus-uu-unmark-thread
 Unmark all articles in the current (sub)thread
 (@code{gnus-uu-unmark-thread}).
 
 @item M P v
address@hidden M P v (Summary)
address@hidden M P v @r{(Summary)}
 @findex gnus-uu-mark-over
 Mark all articles that have a score above the prefix argument
 (@code{gnus-uu-mark-over}).
 
 @item M P s
address@hidden M P s (Summary)
address@hidden M P s @r{(Summary)}
 @findex gnus-uu-mark-series
 Mark all articles in the current series (@code{gnus-uu-mark-series}).
 
 @item M P S
address@hidden M P S (Summary)
address@hidden M P S @r{(Summary)}
 @findex gnus-uu-mark-sparse
 Mark all series that have already had some articles marked
 (@code{gnus-uu-mark-sparse}).
 
 @item M P a
address@hidden M P a (Summary)
address@hidden M P a @r{(Summary)}
 @findex gnus-uu-mark-all
 Mark all articles in series order (@code{gnus-uu-mark-all}).
 
 @item M P b
address@hidden M P b (Summary)
address@hidden M P b @r{(Summary)}
 @findex gnus-uu-mark-buffer
 Mark all articles in the buffer in the order they appear
 (@code{gnus-uu-mark-buffer}).
 
 @item M P k
address@hidden M P k (Summary)
address@hidden M P k @r{(Summary)}
 @findex gnus-summary-kill-process-mark
 Push the current process mark set onto the stack and unmark all articles
 (@code{gnus-summary-kill-process-mark}).
 
 @item M P y
address@hidden M P y (Summary)
address@hidden M P y @r{(Summary)}
 @findex gnus-summary-yank-process-mark
 Pop the previous process mark set from the stack and restore it
 (@code{gnus-summary-yank-process-mark}).
 
 @item M P w
address@hidden M P w (Summary)
address@hidden M P w @r{(Summary)}
 @findex gnus-summary-save-process-mark
 Push the current process mark set onto the stack
 (@code{gnus-summary-save-process-mark}).
@@ -6574,42 +6568,42 @@ articles.
 
 @item / /
 @itemx / s
address@hidden / / (Summary)
address@hidden / / @r{(Summary)}
 @findex gnus-summary-limit-to-subject
 Limit the summary buffer to articles that match some subject
 (@code{gnus-summary-limit-to-subject}).  If given a prefix, exclude
 matching articles.
 
 @item / a
address@hidden / a (Summary)
address@hidden / a @r{(Summary)}
 @findex gnus-summary-limit-to-author
 Limit the summary buffer to articles that match some author
 (@code{gnus-summary-limit-to-author}).  If given a prefix, exclude
 matching articles.
 
 @item / R
address@hidden / R (Summary)
address@hidden / R @r{(Summary)}
 @findex gnus-summary-limit-to-recipient
 Limit the summary buffer to articles that match some recipient
 (@code{gnus-summary-limit-to-recipient}).  If given a prefix, exclude
 matching articles.
 
 @item / A
address@hidden / A (Summary)
address@hidden / A @r{(Summary)}
 @findex gnus-summary-limit-to-address
 Limit the summary buffer to articles in which contents of From, To or Cc
 header match a given address (@code{gnus-summary-limit-to-address}).  If
 given a prefix, exclude matching articles.
 
 @item / S
address@hidden / S (Summary)
address@hidden / S @r{(Summary)}
 @findex gnus-summary-limit-to-singletons
 Limit the summary buffer to articles that aren't part of any displayed
 threads (@code{gnus-summary-limit-to-singletons}).  If given a prefix,
 limit to articles that are part of displayed threads.
 
 @item / x
address@hidden / x (Summary)
address@hidden / x @r{(Summary)}
 @findex gnus-summary-limit-to-extra
 Limit the summary buffer to articles that match one of the ``extra''
 headers (@pxref{To From Newsgroups})
@@ -6618,8 +6612,8 @@ matching articles.
 
 @item / u
 @itemx x
address@hidden / u (Summary)
address@hidden x (Summary)
address@hidden / u @r{(Summary)}
address@hidden x @r{(Summary)}
 @findex gnus-summary-limit-to-unread
 Limit the summary buffer to articles not marked as read
 (@code{gnus-summary-limit-to-unread}).  If given a prefix, limit the
@@ -6627,46 +6621,46 @@ buffer to articles strictly unread.  This means that 
ticked and
 dormant articles will also be excluded.
 
 @item / m
address@hidden / m (Summary)
address@hidden / m @r{(Summary)}
 @findex gnus-summary-limit-to-marks
 Ask for a mark and then limit to all articles that have been marked
 with that mark (@code{gnus-summary-limit-to-marks}).
 
 @item / t
address@hidden / t (Summary)
address@hidden / t @r{(Summary)}
 @findex gnus-summary-limit-to-age
 Ask for a number and then limit the summary buffer to articles older than (or 
equal to) that number of days
 (@code{gnus-summary-limit-to-age}).  If given a prefix, limit to
 articles younger than that number of days.
 
 @item / n
address@hidden / n (Summary)
address@hidden / n @r{(Summary)}
 @findex gnus-summary-limit-to-articles
 With prefix @samp{n}, limit the summary buffer to the next @samp{n}
 articles.  If not given a prefix, use the process marked articles
 instead.  (@code{gnus-summary-limit-to-articles}).
 
 @item / w
address@hidden / w (Summary)
address@hidden / w @r{(Summary)}
 @findex gnus-summary-pop-limit
 Pop the previous limit off the stack and restore it
 (@code{gnus-summary-pop-limit}).  If given a prefix, pop all limits off
 the stack.
 
 @item / .
address@hidden / . (Summary)
address@hidden / . @r{(Summary)}
 @findex gnus-summary-limit-to-unseen
 Limit the summary buffer to the unseen articles
 (@code{gnus-summary-limit-to-unseen}).
 
 @item / v
address@hidden / v (Summary)
address@hidden / v @r{(Summary)}
 @findex gnus-summary-limit-to-score
 Limit the summary buffer to articles that have a score at or above some
 score (@code{gnus-summary-limit-to-score}).
 
 @item / p
address@hidden / p (Summary)
address@hidden / p @r{(Summary)}
 @findex gnus-summary-limit-to-display-predicate
 Limit the summary buffer to articles that satisfy the @code{display}
 group parameter predicate
@@ -6674,7 +6668,7 @@ group parameter predicate
 Parameters}, for more on this predicate.
 
 @item / r
address@hidden / r (Summary)
address@hidden / r @r{(Summary)}
 @findex gnus-summary-limit-to-replied
 Limit the summary buffer to replied articles
 (@code{gnus-summary-limit-to-replied}).  If given a prefix, exclude
@@ -6682,55 +6676,55 @@ replied articles.
 
 @item / E
 @itemx M S
address@hidden M S (Summary)
address@hidden / E (Summary)
address@hidden M S @r{(Summary)}
address@hidden / E @r{(Summary)}
 @findex gnus-summary-limit-include-expunged
 Include all expunged articles in the limit
 (@code{gnus-summary-limit-include-expunged}).
 
 @item / D
address@hidden / D (Summary)
address@hidden / D @r{(Summary)}
 @findex gnus-summary-limit-include-dormant
 Include all dormant articles in the limit
 (@code{gnus-summary-limit-include-dormant}).
 
 @item / *
address@hidden / * (Summary)
address@hidden / * @r{(Summary)}
 @findex gnus-summary-limit-include-cached
 Include all cached articles in the limit
 (@code{gnus-summary-limit-include-cached}).
 
 @item / d
address@hidden / d (Summary)
address@hidden / d @r{(Summary)}
 @findex gnus-summary-limit-exclude-dormant
 Exclude all dormant articles from the limit
 (@code{gnus-summary-limit-exclude-dormant}).
 
 @item / M
address@hidden / M (Summary)
address@hidden / M @r{(Summary)}
 @findex gnus-summary-limit-exclude-marks
 Exclude all marked articles (@code{gnus-summary-limit-exclude-marks}).
 
 @item / T
address@hidden / T (Summary)
address@hidden / T @r{(Summary)}
 @findex gnus-summary-limit-include-thread
 Include all the articles in the current thread in the limit.
 
 @item / c
address@hidden / c (Summary)
address@hidden / c @r{(Summary)}
 @findex gnus-summary-limit-exclude-childless-dormant
 Exclude all dormant articles that have no children from the address@hidden
 (@code{gnus-summary-limit-exclude-childless-dormant}).
 
 @item / C
address@hidden / C (Summary)
address@hidden / C @r{(Summary)}
 @findex gnus-summary-limit-mark-excluded-as-read
 Mark all excluded unread articles as read
 (@code{gnus-summary-limit-mark-excluded-as-read}).  If given a prefix,
 also mark excluded ticked and dormant articles as read.
 
 @item / b
address@hidden / b (Summary)
address@hidden / b @r{(Summary)}
 @findex gnus-summary-limit-to-bodies
 Limit the summary buffer to articles that have bodies that match a
 certain regexp (@code{gnus-summary-limit-to-bodies}).  If given a
@@ -6738,7 +6732,7 @@ prefix, reverse the limit.  This command is quite slow 
since it
 requires selecting each article to find the matches.
 
 @item / h
address@hidden / h (Summary)
address@hidden / h @r{(Summary)}
 @findex gnus-summary-limit-to-headers
 Like the previous command, only limit to headers instead
 (@code{gnus-summary-limit-to-headers}).
@@ -6751,13 +6745,13 @@ prefix as well.
 
 @table @kbd
 @item / N
address@hidden / N (Summary)
address@hidden / N @r{(Summary)}
 @findex gnus-summary-insert-new-articles
 Insert all new articles in the summary buffer.  It scans for new emails
 if @address@hidden is address@hidden
 
 @item / o
address@hidden / o (Summary)
address@hidden / o @r{(Summary)}
 @findex gnus-summary-insert-old-articles
 Insert all old articles in the summary buffer.  If given a numbered
 prefix, fetch this number of articles.
@@ -7043,7 +7037,7 @@ visible effects, but is useful if you use the @kbd{A T} 
command a lot
 
 The server has to support @acronym{NOV} for any of this to work.
 
address@hidden Gmane, gnus-fetch-old-headers
address@hidden Gmane, @code{gnus-fetch-old-headers}
 This feature can seriously impact performance it ignores all locally
 cached header entries.  Setting it to @code{t} for groups for a server
 that doesn't expire articles (such as news.gmane.org), leads to very
@@ -7197,8 +7191,8 @@ meaningful.  Here's one example:
 
 @item T k
 @itemx C-M-k
address@hidden T k (Summary)
address@hidden C-M-k (Summary)
address@hidden T k @r{(Summary)}
address@hidden C-M-k @r{(Summary)}
 @findex gnus-summary-kill-thread
 Mark all articles in the current (sub-)thread as read
 (@code{gnus-summary-kill-thread}).  If the prefix argument is positive,
@@ -7207,71 +7201,71 @@ articles instead.
 
 @item T l
 @itemx C-M-l
address@hidden T l (Summary)
address@hidden C-M-l (Summary)
address@hidden T l @r{(Summary)}
address@hidden C-M-l @r{(Summary)}
 @findex gnus-summary-lower-thread
 Lower the score of the current (sub-)thread
 (@code{gnus-summary-lower-thread}).
 
 @item T i
address@hidden T i (Summary)
address@hidden T i @r{(Summary)}
 @findex gnus-summary-raise-thread
 Increase the score of the current (sub-)thread
 (@code{gnus-summary-raise-thread}).
 
 @item T #
address@hidden T # (Summary)
address@hidden T # @r{(Summary)}
 @findex gnus-uu-mark-thread
 Set the process mark on the current (sub-)thread
 (@code{gnus-uu-mark-thread}).
 
 @item T M-#
address@hidden T M-# (Summary)
address@hidden T M-# @r{(Summary)}
 @findex gnus-uu-unmark-thread
 Remove the process mark from the current (sub-)thread
 (@code{gnus-uu-unmark-thread}).
 
 @item T T
address@hidden T T (Summary)
address@hidden T T @r{(Summary)}
 @findex gnus-summary-toggle-threads
 Toggle threading (@code{gnus-summary-toggle-threads}).
 
 @item T s
address@hidden T s (Summary)
address@hidden T s @r{(Summary)}
 @findex gnus-summary-show-thread
 Expose the (sub-)thread hidden under the current article, if address@hidden
 (@code{gnus-summary-show-thread}).
 
 @item T h
address@hidden T h (Summary)
address@hidden T h @r{(Summary)}
 @findex gnus-summary-hide-thread
 Hide the current (sub-)thread (@code{gnus-summary-hide-thread}).
 
 @item T S
address@hidden T S (Summary)
address@hidden T S @r{(Summary)}
 @findex gnus-summary-show-all-threads
 Expose all hidden threads (@code{gnus-summary-show-all-threads}).
 
 @item T H
address@hidden T H (Summary)
address@hidden T H @r{(Summary)}
 @findex gnus-summary-hide-all-threads
 Hide all threads (@code{gnus-summary-hide-all-threads}).
 
 @item T t
address@hidden T t (Summary)
address@hidden T t @r{(Summary)}
 @findex gnus-summary-rethread-current
 Re-thread the current article's thread
 (@code{gnus-summary-rethread-current}).  This works even when the
 summary buffer is otherwise unthreaded.
 
 @item T ^
address@hidden T ^ (Summary)
address@hidden T ^ @r{(Summary)}
 @findex gnus-summary-reparent-thread
 Make the current article the child of the marked (or previous) article
 (@code{gnus-summary-reparent-thread}).
 
 @item T M-^
address@hidden T M-^ (Summary)
address@hidden T M-^ @r{(Summary)}
 @findex gnus-summary-reparent-children
 Make the current article the parent of the marked articles
 (@code{gnus-summary-reparent-children}).
@@ -7284,35 +7278,35 @@ understand the numeric prefix.
 @table @kbd
 
 @item T n
address@hidden T n (Summary)
address@hidden T n @r{(Summary)}
 @itemx C-M-f
address@hidden C-M-n (Summary)
address@hidden M-down
address@hidden M-down (Summary)
address@hidden C-M-n @r{(Summary)}
address@hidden address@hidden
address@hidden M-DOWN @r{(Summary)}
 @findex gnus-summary-next-thread
 Go to the next thread (@code{gnus-summary-next-thread}).
 
 @item T p
address@hidden T p (Summary)
address@hidden T p @r{(Summary)}
 @itemx C-M-b
address@hidden C-M-p (Summary)
address@hidden M-up
address@hidden M-up (Summary)
address@hidden C-M-p @r{(Summary)}
address@hidden address@hidden
address@hidden M-UP @r{(Summary)}
 @findex gnus-summary-prev-thread
 Go to the previous thread (@code{gnus-summary-prev-thread}).
 
 @item T d
address@hidden T d (Summary)
address@hidden T d @r{(Summary)}
 @findex gnus-summary-down-thread
 Descend the thread (@code{gnus-summary-down-thread}).
 
 @item T u
address@hidden T u (Summary)
address@hidden T u @r{(Summary)}
 @findex gnus-summary-up-thread
 Ascend the thread (@code{gnus-summary-up-thread}).
 
 @item T o
address@hidden T o (Summary)
address@hidden T o @r{(Summary)}
 @findex gnus-summary-top-thread
 Go to the top of the thread (@code{gnus-summary-top-thread}).
 @end table
@@ -7654,12 +7648,12 @@ you use two explicit commands for managing persistent 
articles:
 @table @kbd
 
 @item *
address@hidden * (Summary)
address@hidden * @r{(Summary)}
 @findex gnus-cache-enter-article
 Make the current article persistent (@code{gnus-cache-enter-article}).
 
 @item M-*
address@hidden M-* (Summary)
address@hidden M-* @r{(Summary)}
 @findex gnus-cache-remove-article
 Remove the current article from the persistent articles
 (@code{gnus-cache-remove-article}).  This will normally delete the
@@ -7697,7 +7691,7 @@ select another article.  You can make an article sticky 
with:
 
 @table @kbd
 @item A S
address@hidden A S (Summary)
address@hidden A S @r{(Summary)}
 @findex gnus-sticky-article
 Make the current article sticky.  If a prefix arg is given, ask for a
 name for this sticky article buffer.
@@ -7707,12 +7701,12 @@ To close a sticky article buffer you can use these 
commands:
 
 @table @kbd
 @item q
address@hidden q (Article)
address@hidden q @address@hidden(Article)}}
 @findex bury-buffer
 Puts this sticky article buffer at the end of the list of all buffers.
 
 @item k
address@hidden k (Article)
address@hidden k @r{(Article)}
 @findex gnus-kill-sticky-article-buffer
 Kills this sticky article buffer.
 @end table
@@ -7778,61 +7772,61 @@ deleted before saving.
 
 @item O o
 @itemx o
address@hidden O o (Summary)
address@hidden o (Summary)
address@hidden O o @r{(Summary)}
address@hidden o @r{(Summary)}
 @findex gnus-summary-save-article
 @c @icon{gnus-summary-save-article}
 Save the current article using the default article saver
 (@code{gnus-summary-save-article}).
 
 @item O m
address@hidden O m (Summary)
address@hidden O m @r{(Summary)}
 @findex gnus-summary-save-article-mail
 Save the current article in a Unix mail box (mbox) file
 (@code{gnus-summary-save-article-mail}).
 
 @item O r
address@hidden O r (Summary)
address@hidden O r @r{(Summary)}
 @findex gnus-summary-save-article-rmail
 Save the current article in Rmail format
 (@code{gnus-summary-save-article-rmail}).  This is mbox since Emacs 23,
 Babyl in older versions.
 
 @item O f
address@hidden O f (Summary)
address@hidden O f @r{(Summary)}
 @findex gnus-summary-save-article-file
 @c @icon{gnus-summary-save-article-file}
 Save the current article in plain file format
 (@code{gnus-summary-save-article-file}).
 
 @item O F
address@hidden O F (Summary)
address@hidden O F @r{(Summary)}
 @findex gnus-summary-write-article-file
 Write the current article in plain file format, overwriting any previous
 file contents (@code{gnus-summary-write-article-file}).
 
 @item O b
address@hidden O b (Summary)
address@hidden O b @r{(Summary)}
 @findex gnus-summary-save-article-body-file
 Save the current article body in plain file format
 (@code{gnus-summary-save-article-body-file}).
 
 @item O h
address@hidden O h (Summary)
address@hidden O h @r{(Summary)}
 @findex gnus-summary-save-article-folder
 Save the current article in mh folder format
 (@code{gnus-summary-save-article-folder}).
 
 @item O v
address@hidden O v (Summary)
address@hidden O v @r{(Summary)}
 @findex gnus-summary-save-article-vm
 Save the current article in a VM folder
 (@code{gnus-summary-save-article-vm}).
 
 @item O p
 @itemx |
address@hidden O p (Summary)
address@hidden | (Summary)
address@hidden O p @r{(Summary)}
address@hidden | @r{(Summary)}
 @findex gnus-summary-pipe-output
 @vindex gnus-summary-pipe-output-default-command
 Save the current article in a pipe.  Uhm, like, what I mean is---Pipe
@@ -7845,7 +7839,7 @@ to a string containing the default command and options 
(default
 @code{nil}).
 
 @item O P
address@hidden O P (Summary)
address@hidden O P @r{(Summary)}
 @findex gnus-summary-muttprint
 @vindex gnus-summary-muttprint-program
 Save the current article into muttprint.  That is, print it using the
@@ -8152,24 +8146,24 @@ commands, and you have to mark the articles manually 
with @kbd{#}.
 @table @kbd
 
 @item X u
address@hidden X u (Summary)
address@hidden X u @r{(Summary)}
 @findex gnus-uu-decode-uu
 @c @icon{gnus-uu-decode-uu}
 Uudecodes the current series (@code{gnus-uu-decode-uu}).
 
 @item X U
address@hidden X U (Summary)
address@hidden X U @r{(Summary)}
 @findex gnus-uu-decode-uu-and-save
 Uudecodes and saves the current series
 (@code{gnus-uu-decode-uu-and-save}).
 
 @item X v u
address@hidden X v u (Summary)
address@hidden X v u @r{(Summary)}
 @findex gnus-uu-decode-uu-view
 Uudecodes and views the current series (@code{gnus-uu-decode-uu-view}).
 
 @item X v U
address@hidden X v U (Summary)
address@hidden X v U @r{(Summary)}
 @findex gnus-uu-decode-uu-and-save-view
 Uudecodes, views and saves the current series
 (@code{gnus-uu-decode-uu-and-save-view}).
@@ -8210,22 +8204,22 @@ some commands to deal with these:
 @table @kbd
 
 @item X s
address@hidden X s (Summary)
address@hidden X s @r{(Summary)}
 @findex gnus-uu-decode-unshar
 Unshars the current series (@code{gnus-uu-decode-unshar}).
 
 @item X S
address@hidden X S (Summary)
address@hidden X S @r{(Summary)}
 @findex gnus-uu-decode-unshar-and-save
 Unshars and saves the current series (@code{gnus-uu-decode-unshar-and-save}).
 
 @item X v s
address@hidden X v s (Summary)
address@hidden X v s @r{(Summary)}
 @findex gnus-uu-decode-unshar-view
 Unshars and views the current series (@code{gnus-uu-decode-unshar-view}).
 
 @item X v S
address@hidden X v S (Summary)
address@hidden X v S @r{(Summary)}
 @findex gnus-uu-decode-unshar-and-save-view
 Unshars, views and saves the current series
 (@code{gnus-uu-decode-unshar-and-save-view}).
@@ -8239,24 +8233,24 @@ Unshars, views and saves the current series
 @table @kbd
 
 @item X p
address@hidden X p (Summary)
address@hidden X p @r{(Summary)}
 @findex gnus-uu-decode-postscript
 Unpack the current PostScript series (@code{gnus-uu-decode-postscript}).
 
 @item X P
address@hidden X P (Summary)
address@hidden X P @r{(Summary)}
 @findex gnus-uu-decode-postscript-and-save
 Unpack and save the current PostScript series
 (@code{gnus-uu-decode-postscript-and-save}).
 
 @item X v p
address@hidden X v p (Summary)
address@hidden X v p @r{(Summary)}
 @findex gnus-uu-decode-postscript-view
 View the current PostScript series
 (@code{gnus-uu-decode-postscript-view}).
 
 @item X v P
address@hidden X v P (Summary)
address@hidden X v P @r{(Summary)}
 @findex gnus-uu-decode-postscript-and-save-view
 View and save the current PostScript series
 (@code{gnus-uu-decode-postscript-and-save-view}).
@@ -8268,19 +8262,19 @@ View and save the current PostScript series
 
 @table @kbd
 @item X o
address@hidden X o (Summary)
address@hidden X o @r{(Summary)}
 @findex gnus-uu-decode-save
 Save the current series
 (@code{gnus-uu-decode-save}).
 
 @item X b
address@hidden X b (Summary)
address@hidden X b @r{(Summary)}
 @findex gnus-uu-decode-binhex
 Unbinhex the current series (@code{gnus-uu-decode-binhex}).  This
 doesn't really work yet.
 
 @item X Y
address@hidden X Y (Summary)
address@hidden X Y @r{(Summary)}
 @findex gnus-uu-decode-yenc
 yEnc-decode the current series and save it (@code{gnus-uu-decode-yenc}).
 @end table
@@ -8554,7 +8548,7 @@ you want it to look like technicolor fruit salad.
 @table @kbd
 
 @item W H a
address@hidden W H a (Summary)
address@hidden W H a @r{(Summary)}
 @findex gnus-article-highlight
 @findex gnus-article-maybe-highlight
 Do much highlighting of the current article
@@ -8562,7 +8556,7 @@ Do much highlighting of the current article
 text, the signature, and adds buttons to the body and the head.
 
 @item W H h
address@hidden W H h (Summary)
address@hidden W H h @r{(Summary)}
 @findex gnus-article-highlight-headers
 @vindex gnus-header-face-alist
 Highlight the headers (@code{gnus-article-highlight-headers}).  The
@@ -8576,7 +8570,7 @@ the header value.  The first match made will be used.  
Note that
 @var{regexp} shouldn't have @samp{^} prepended---Gnus will add one.
 
 @item W H c
address@hidden W H c (Summary)
address@hidden W H c @r{(Summary)}
 @findex gnus-article-highlight-citation
 Highlight cited text (@code{gnus-article-highlight-citation}).
 
@@ -8637,7 +8631,7 @@ is @code{t}.
 
 
 @item W H s
address@hidden W H s (Summary)
address@hidden W H s @r{(Summary)}
 @vindex gnus-signature-separator
 @vindex gnus-signature-face
 @findex gnus-article-highlight-signature
@@ -8658,7 +8652,7 @@ default.
 @cindex article emphasis
 
 @findex gnus-article-emphasize
address@hidden W e (Summary)
address@hidden W e @r{(Summary)}
 People commonly add emphasis to words in news articles by writing things
 like @samp{_this_} or @samp{*this*} or @samp{/this/}.  Gnus can make
 this look nicer by running the article through the @kbd{W e}
@@ -8729,32 +8723,32 @@ too much cruft in most articles.
 @table @kbd
 
 @item W W a
address@hidden W W a (Summary)
address@hidden W W a @r{(Summary)}
 @findex gnus-article-hide
 Do quite a lot of hiding on the article buffer
 (@kbd{gnus-article-hide}).  In particular, this function will hide
 headers, @acronym{PGP}, cited text and the signature.
 
 @item W W h
address@hidden W W h (Summary)
address@hidden W W h @r{(Summary)}
 @findex gnus-article-hide-headers
 Hide headers (@code{gnus-article-hide-headers}).  @xref{Hiding
 Headers}.
 
 @item W W b
address@hidden W W b (Summary)
address@hidden W W b @r{(Summary)}
 @findex gnus-article-hide-boring-headers
 Hide headers that aren't particularly interesting
 (@code{gnus-article-hide-boring-headers}).  @xref{Hiding Headers}.
 
 @item W W s
address@hidden W W s (Summary)
address@hidden W W s @r{(Summary)}
 @findex gnus-article-hide-signature
 Hide signature (@code{gnus-article-hide-signature}).  @xref{Article
 Signature}.
 
 @item W W l
address@hidden W W l (Summary)
address@hidden W W l @r{(Summary)}
 @findex gnus-article-hide-list-identifiers
 @vindex gnus-list-identifiers
 Strip list identifiers specified in @code{gnus-list-identifiers}.  These
@@ -8773,13 +8767,13 @@ subject.  This can also be a list of regular 
expressions.
 @end table
 
 @item W W P
address@hidden W W P (Summary)
address@hidden W W P @r{(Summary)}
 @findex gnus-article-hide-pem
 Hide @acronym{PEM} (privacy enhanced messages) cruft
 (@code{gnus-article-hide-pem}).
 
 @item W W B
address@hidden W W B (Summary)
address@hidden W W B @r{(Summary)}
 @findex gnus-article-strip-banner
 @vindex gnus-article-banner-alist
 @vindex gnus-article-address-banner-alist
@@ -8833,7 +8827,7 @@ sends, you can use the following element to remove them:
 @end table
 
 @item W W c
address@hidden W W c (Summary)
address@hidden W W c @r{(Summary)}
 @findex gnus-article-hide-citation
 Hide citation (@code{gnus-article-hide-citation}).  Some variables for
 customizing the hiding:
@@ -8869,7 +8863,7 @@ and bottom of the text, respectively, to remain visible.
 @end table
 
 @item W W C-c
address@hidden W W C-c (Summary)
address@hidden W W C-c @r{(Summary)}
 @findex gnus-article-hide-citation-maybe
 
 Hide citation (@code{gnus-article-hide-citation-maybe}) depending on the
@@ -8888,7 +8882,7 @@ is hidden.
 @end table
 
 @item W W C
address@hidden W W C (Summary)
address@hidden W W C @r{(Summary)}
 @findex gnus-article-hide-citation-in-followups
 Hide cited text in articles that aren't roots
 (@code{gnus-article-hide-citation-in-followups}).  This isn't very
@@ -8938,14 +8932,14 @@ interactive Washing functions but with all default 
treatments
 (@pxref{Customizing Articles}).
 
 @item W l
address@hidden W l (Summary)
address@hidden W l @r{(Summary)}
 @findex gnus-summary-stop-page-breaking
 Remove page breaks from the current article
 (@code{gnus-summary-stop-page-breaking}).  @xref{Misc Article}, for page
 delimiters.
 
 @item W r
address@hidden W r (Summary)
address@hidden W r @r{(Summary)}
 @findex gnus-summary-caesar-message
 @c @icon{gnus-summary-caesar-message}
 Do a Caesar rotate (rot13) on the article buffer
@@ -8959,12 +8953,12 @@ positions in the alphabet, e.g., @samp{B} (letter #2) 
-> @samp{O} (letter
 is rumored to have employed this form of, uh, somewhat weak encryption.
 
 @item W m
address@hidden W m (Summary)
address@hidden W m @r{(Summary)}
 @findex gnus-summary-morse-message
 Morse decode the article buffer (@code{gnus-summary-morse-message}).
 
 @item W i
address@hidden W i (Summary)
address@hidden W i @r{(Summary)}
 @findex gnus-summary-idna-message
 Decode IDNA encoded domain names in the current articles.  IDNA
 encoded domain names looks like @samp{xn--bar}.  If a string remain
@@ -8975,25 +8969,25 @@ to work.
 
 @item W t
 @item t
address@hidden W t (Summary)
address@hidden t (Summary)
address@hidden W t @r{(Summary)}
address@hidden t @r{(Summary)}
 @findex gnus-summary-toggle-header
 Toggle whether to display all headers in the article buffer
 (@code{gnus-summary-toggle-header}).
 
 @item W v
address@hidden W v (Summary)
address@hidden W v @r{(Summary)}
 @findex gnus-summary-verbose-headers
 Toggle whether to display all headers in the article buffer permanently
 (@code{gnus-summary-verbose-headers}).
 
 @item W o
address@hidden W o (Summary)
address@hidden W o @r{(Summary)}
 @findex gnus-article-treat-overstrike
 Treat overstrike (@code{gnus-article-treat-overstrike}).
 
 @item W d
address@hidden W d (Summary)
address@hidden W d @r{(Summary)}
 @findex gnus-article-treat-dumbquotes
 @vindex gnus-article-dumbquotes-map
 @cindex Smartquotes
@@ -9011,7 +9005,7 @@ like @code{\222} or @code{\264} where you're expecting 
some kind of
 apostrophe or quotation mark, then try this wash.
 
 @item W U
address@hidden W U (Summary)
address@hidden W U @r{(Summary)}
 @findex gnus-article-treat-non-ascii
 @cindex Unicode
 @cindex address@hidden
@@ -9022,7 +9016,7 @@ and doesn't show accented characters, ``advanced'' 
punctuation, and the
 like.  For instance, @samp{»} is translated into @samp{>>}, and so on.
 
 @item W Y f
address@hidden W Y f (Summary)
address@hidden W Y f @r{(Summary)}
 @findex gnus-article-outlook-deuglify-article
 @cindex Outlook Express
 Full deuglify of broken Outlook (Express) articles: Treat dumbquotes,
@@ -9030,7 +9024,7 @@ unwrap lines, repair attribution and rearrange citation.
 (@code{gnus-article-outlook-deuglify-article}).
 
 @item W Y u
address@hidden W Y u (Summary)
address@hidden W Y u @r{(Summary)}
 @findex gnus-article-outlook-unwrap-lines
 @vindex gnus-outlook-deuglify-unwrap-min
 @vindex gnus-outlook-deuglify-unwrap-max
@@ -9042,19 +9036,19 @@ maximum length of an unwrapped citation line.
 (@code{gnus-article-outlook-unwrap-lines}).
 
 @item W Y a
address@hidden W Y a (Summary)
address@hidden W Y a @r{(Summary)}
 @findex gnus-article-outlook-repair-attribution
 Repair a broken attribution address@hidden
 (@code{gnus-article-outlook-repair-attribution}).
 
 @item W Y c
address@hidden W Y c (Summary)
address@hidden W Y c @r{(Summary)}
 @findex gnus-article-outlook-rearrange-citation
 Repair broken citations by rearranging the text.
 (@code{gnus-article-outlook-rearrange-citation}).
 
 @item W w
address@hidden W w (Summary)
address@hidden W w @r{(Summary)}
 @findex gnus-article-fill-cited-article
 Do word wrap (@code{gnus-article-fill-cited-article}).
 
@@ -9062,18 +9056,18 @@ You can give the command a numerical prefix to specify 
the width to use
 when filling.
 
 @item W Q
address@hidden W Q (Summary)
address@hidden W Q @r{(Summary)}
 @findex gnus-article-fill-long-lines
 Fill long lines (@code{gnus-article-fill-long-lines}).
 
 @item W C
address@hidden W C (Summary)
address@hidden W C @r{(Summary)}
 @findex gnus-article-capitalize-sentences
 Capitalize the first word in each sentence
 (@code{gnus-article-capitalize-sentences}).
 
 @item W c
address@hidden W c (Summary)
address@hidden W c @r{(Summary)}
 @findex gnus-article-remove-cr
 Translate CRLF pairs (i.e., @samp{^M}s on the end of the lines) into LF
 (this takes care of DOS line endings), and then translate any remaining
@@ -9081,7 +9075,7 @@ CRs into LF (this takes care of Mac line endings)
 (@code{gnus-article-remove-cr}).
 
 @item W q
address@hidden W q (Summary)
address@hidden W q @r{(Summary)}
 @findex gnus-article-de-quoted-unreadable
 Treat quoted-printable (@code{gnus-article-de-quoted-unreadable}).
 Quoted-Printable is one common @acronym{MIME} encoding employed when
@@ -9093,7 +9087,7 @@ done automatically by Gnus if the message in question has 
a
 has been done.  If a prefix is given, a charset will be asked for.
 
 @item W 6
address@hidden W 6 (Summary)
address@hidden W 6 @r{(Summary)}
 @findex gnus-article-de-base64-unreadable
 Treat base64 (@code{gnus-article-de-base64-unreadable}).  Base64 is
 one common @acronym{MIME} encoding employed when sending
@@ -9103,14 +9097,14 @@ usually done automatically by Gnus if the message in 
question has a
 has been done.  If a prefix is given, a charset will be asked for.
 
 @item W Z
address@hidden W Z (Summary)
address@hidden W Z @r{(Summary)}
 @findex gnus-article-decode-HZ
 Treat HZ or HZP (@code{gnus-article-decode-HZ}).  HZ (or HZP) is one
 common encoding employed when sending Chinese articles.  It typically
 makes strings look like @address@hidden<:Ky2;address@hidden,NpJ)address@hidden
 
 @item W A
address@hidden W A (Summary)
address@hidden W A @r{(Summary)}
 @findex gnus-article-treat-ansi-sequences
 @cindex @acronym{ANSI} control sequences
 Translate @acronym{ANSI} SGR control sequences into overlays or
@@ -9118,7 +9112,7 @@ extents (@code{gnus-article-treat-ansi-sequences}).  
@acronym{ANSI}
 sequences are used in some Chinese hierarchies for highlighting.
 
 @item W u
address@hidden W u (Summary)
address@hidden W u @r{(Summary)}
 @findex gnus-article-unsplit-urls
 Remove newlines from within URLs.  Some mailers insert newlines into
 outgoing email messages to keep lines short.  This reformatting can
@@ -9126,7 +9120,7 @@ split long URLs onto multiple lines.  Repair those URLs 
by removing
 the newlines (@code{gnus-article-unsplit-urls}).
 
 @item W h
address@hidden W h (Summary)
address@hidden W h @r{(Summary)}
 @findex gnus-article-wash-html
 Treat @acronym{HTML} (@code{gnus-article-wash-html}).  Note that this is
 usually done automatically by Gnus if the message in question has a
@@ -9166,19 +9160,19 @@ Use html2text---a simple @acronym{HTML} converter 
included with Gnus.
 @end table
 
 @item W b
address@hidden W b (Summary)
address@hidden W b @r{(Summary)}
 @findex gnus-article-add-buttons
 Add clickable buttons to the article (@code{gnus-article-add-buttons}).
 @xref{Article Buttons}.
 
 @item W B
address@hidden W B (Summary)
address@hidden W B @r{(Summary)}
 @findex gnus-article-add-buttons-to-head
 Add clickable buttons to the article headers
 (@code{gnus-article-add-buttons-to-head}).
 
 @item W p
address@hidden W p (Summary)
address@hidden W p @r{(Summary)}
 @findex gnus-article-verify-x-pgp-sig
 Verify a signed control message
 (@code{gnus-article-verify-x-pgp-sig}).  Control messages such as
@@ -9189,57 +9183,57 @@ address@hidden@acronym{PGP} keys for many hierarchies 
are
 available at @uref{https://ftp.isc.org/pub/pgpcontrol/README.html}}
 
 @item W s
address@hidden W s (Summary)
address@hidden W s @r{(Summary)}
 @findex gnus-summary-force-verify-and-decrypt
 Verify a signed (@acronym{PGP}, @acronym{PGP/MIME} or
 @acronym{S/MIME}) message
 (@code{gnus-summary-force-verify-and-decrypt}). @xref{Security}.
 
 @item W a
address@hidden W a (Summary)
address@hidden W a @r{(Summary)}
 @findex gnus-article-strip-headers-in-body
 Strip headers like the @code{X-No-Archive} header from the beginning of
 article bodies (@code{gnus-article-strip-headers-in-body}).
 
 @item W E l
address@hidden W E l (Summary)
address@hidden W E l @r{(Summary)}
 @findex gnus-article-strip-leading-blank-lines
 Remove all blank lines from the beginning of the article
 (@code{gnus-article-strip-leading-blank-lines}).
 
 @item W E m
address@hidden W E m (Summary)
address@hidden W E m @r{(Summary)}
 @findex gnus-article-strip-multiple-blank-lines
 Replace all blank lines with empty lines and then all multiple empty
 lines with a single empty line.
 (@code{gnus-article-strip-multiple-blank-lines}).
 
 @item W E t
address@hidden W E t (Summary)
address@hidden W E t @r{(Summary)}
 @findex gnus-article-remove-trailing-blank-lines
 Remove all blank lines at the end of the article
 (@code{gnus-article-remove-trailing-blank-lines}).
 
 @item W E a
address@hidden W E a (Summary)
address@hidden W E a @r{(Summary)}
 @findex gnus-article-strip-blank-lines
 Do all the three commands above
 (@code{gnus-article-strip-blank-lines}).
 
 @item W E A
address@hidden W E A (Summary)
address@hidden W E A @r{(Summary)}
 @findex gnus-article-strip-all-blank-lines
 Remove all blank lines
 (@code{gnus-article-strip-all-blank-lines}).
 
 @item W E s
address@hidden W E s (Summary)
address@hidden W E s @r{(Summary)}
 @findex gnus-article-strip-leading-space
 Remove all white space from the beginning of all lines of the article
 body (@code{gnus-article-strip-leading-space}).
 
 @item W E e
address@hidden W E e (Summary)
address@hidden W E e @r{(Summary)}
 @findex gnus-article-strip-trailing-space
 Remove all white space from the end of all lines of the article
 body (@code{gnus-article-strip-trailing-space}).
@@ -9257,24 +9251,24 @@ These commands perform various transformations of 
article header.
 @table @kbd
 
 @item W G u
address@hidden W G u (Summary)
address@hidden W G u @r{(Summary)}
 @findex gnus-article-treat-unfold-headers
 Unfold folded header lines (@code{gnus-article-treat-unfold-headers}).
 
 @item W G n
address@hidden W G n (Summary)
address@hidden W G n @r{(Summary)}
 @findex gnus-article-treat-fold-newsgroups
 Fold the @code{Newsgroups} and @code{Followup-To} headers
 (@code{gnus-article-treat-fold-newsgroups}).
 
 @item W G f
address@hidden W G f (Summary)
address@hidden W G f @r{(Summary)}
 @findex gnus-article-treat-fold-headers
 Fold all the message headers
 (@code{gnus-article-treat-fold-headers}).
 
 @item W E w
address@hidden W E w (Summary)
address@hidden W E w @r{(Summary)}
 @findex gnus-article-remove-leading-whitespace
 Remove excessive whitespace from all headers
 (@code{gnus-article-remove-leading-whitespace}).
@@ -9288,7 +9282,7 @@ Remove excessive whitespace from all headers
 
 People often include references to other stuff in articles, and it would
 be nice if Gnus could just fetch whatever it is that people talk about
-with the minimum of fuzz when you hit @kbd{RET} or use the middle mouse
+with the minimum of fuzz when you hit @address@hidden or use the middle mouse
 button on these references.
 
 @vindex gnus-button-man-handler
@@ -9494,31 +9488,31 @@ when the article was sent.
 @table @kbd
 
 @item W T u
address@hidden W T u (Summary)
address@hidden W T u @r{(Summary)}
 @findex gnus-article-date-ut
 Display the date in UT (aka. GMT, aka ZULU)
 (@code{gnus-article-date-ut}).
 
 @item W T i
address@hidden W T i (Summary)
address@hidden W T i @r{(Summary)}
 @findex gnus-article-date-iso8601
 @cindex ISO 8601
 Display the date in international format, aka. ISO 8601
 (@code{gnus-article-date-iso8601}).
 
 @item W T l
address@hidden W T l (Summary)
address@hidden W T l @r{(Summary)}
 @findex gnus-article-date-local
 Display the date in the local timezone (@code{gnus-article-date-local}).
 
 @item W T p
address@hidden W T p (Summary)
address@hidden W T p @r{(Summary)}
 @findex gnus-article-date-english
 Display the date in a format that's easily pronounceable in English
 (@code{gnus-article-date-english}).
 
 @item W T s
address@hidden W T s (Summary)
address@hidden W T s @r{(Summary)}
 @vindex gnus-article-time-format
 @findex gnus-article-date-user
 @findex format-time-string
@@ -9529,7 +9523,7 @@ to @code{format-time-string}.  See the documentation of 
that variable
 for a list of possible format specs.
 
 @item W T e
address@hidden W T e (Summary)
address@hidden W T e @r{(Summary)}
 @findex gnus-article-date-lapsed
 @findex gnus-start-date-timer
 @findex gnus-stop-date-timer
@@ -9545,7 +9539,7 @@ To make this line updated continually, set the
 seconds (the default is @code{nil}).
 
 @item W T o
address@hidden W T o (Summary)
address@hidden W T o @r{(Summary)}
 @findex gnus-article-date-original
 Display the original date (@code{gnus-article-date-original}).  This can
 be useful if you normally use some other conversion function and are
@@ -9589,58 +9583,58 @@ they'll be removed.
 
 @table @kbd
 @item W D x
address@hidden W D x (Summary)
address@hidden W D x @r{(Summary)}
 @findex gnus-article-display-x-face
 Display an @code{X-Face} in the @code{From} header.
 (@code{gnus-article-display-x-face}).
 
 @item W D d
address@hidden W D d (Summary)
address@hidden W D d @r{(Summary)}
 @findex gnus-article-display-face
 Display a @code{Face} in the @code{From} header.
 (@code{gnus-article-display-face}).
 
 @item W D s
address@hidden W D s (Summary)
address@hidden W D s @r{(Summary)}
 @findex gnus-treat-smiley
 Display smileys (@code{gnus-treat-smiley}).
 
 @item W D f
address@hidden W D f (Summary)
address@hidden W D f @r{(Summary)}
 @findex gnus-treat-from-picon
 Piconify the @code{From} header (@code{gnus-treat-from-picon}).
 
 @item W D m
address@hidden W D m (Summary)
address@hidden W D m @r{(Summary)}
 @findex gnus-treat-mail-picon
 Piconify all mail headers (i.e., @code{Cc}, @code{To})
 (@code{gnus-treat-mail-picon}).
 
 @item W D n
address@hidden W D n (Summary)
address@hidden W D n @r{(Summary)}
 @findex gnus-treat-newsgroups-picon
 Piconify all news headers (i.e., @code{Newsgroups} and
 @code{Followup-To}) (@code{gnus-treat-newsgroups-picon}).
 
 @item W D g
address@hidden W D g (Summary)
address@hidden W D g @r{(Summary)}
 @findex gnus-treat-from-gravatar
 Gravatarify the @code{From} header (@code{gnus-treat-from-gravatar}).
 
 @item W D h
address@hidden W D h (Summary)
address@hidden W D h @r{(Summary)}
 @findex gnus-treat-mail-gravatar
 Gravatarify all mail headers (i.e., @code{Cc}, @code{To})
 (@code{gnus-treat-from-gravatar}).
 
 @item W D D
address@hidden W D D (Summary)
address@hidden W D D @r{(Summary)}
 @findex gnus-article-remove-images
 Remove all images from the article buffer
 (@code{gnus-article-remove-images}).
 
 @item W D W
address@hidden W D W (Summary)
address@hidden W D W @r{(Summary)}
 @findex gnus-html-show-images
 If you're reading an @acronym{HTML} article rendered with
 @code{gnus-article-html}, then you can insert any blocked images in
@@ -9718,7 +9712,7 @@ signature after all.
 
 @table @kbd
 @item A t
address@hidden A t (Summary)
address@hidden A t @r{(Summary)}
 @findex gnus-article-babel
 Translate the article from one language to another
 (@code{gnus-article-babel}).
@@ -9738,43 +9732,43 @@ instance, @kbd{3 K v} means ``view the third 
@acronym{MIME} part''.
 @table @kbd
 @item b
 @itemx K v
address@hidden b (Summary)
address@hidden K v (Summary)
address@hidden b @r{(Summary)}
address@hidden K v @r{(Summary)}
 View the @acronym{MIME} part.
 
 @item K o
address@hidden K o (Summary)
address@hidden K o @r{(Summary)}
 Save the @acronym{MIME} part.
 
 @item K O
address@hidden K O (Summary)
address@hidden K O @r{(Summary)}
 Prompt for a file name, then save the @acronym{MIME} part and strip it
 from the article.  The stripped @acronym{MIME} object will be referred
 via the message/external-body @acronym{MIME} type.
 
 @item K r
address@hidden K r (Summary)
address@hidden K r @r{(Summary)}
 Replace the @acronym{MIME} part with an external body.
 
 @item K d
address@hidden K d (Summary)
address@hidden K d @r{(Summary)}
 Delete the @acronym{MIME} part and add some information about the
 removed part.
 
 @item K c
address@hidden K c (Summary)
address@hidden K c @r{(Summary)}
 Copy the @acronym{MIME} part.
 
 @item K e
address@hidden K e (Summary)
address@hidden K e @r{(Summary)}
 View the @acronym{MIME} part externally.
 
 @item K i
address@hidden K i (Summary)
address@hidden K i @r{(Summary)}
 View the @acronym{MIME} part internally.
 
 @item K |
address@hidden K | (Summary)
address@hidden K | @r{(Summary)}
 Pipe the @acronym{MIME} part to an external command.
 @end table
 
@@ -9783,7 +9777,7 @@ the same manner:
 
 @table @kbd
 @item K H
address@hidden K H (Summary)
address@hidden K H @r{(Summary)}
 @findex gnus-article-browse-html-article
 View @samp{text/html} parts of the current article with a WWW browser.
 Inline images embedded in a message using the @code{cid} scheme, as they
@@ -9805,13 +9799,13 @@ including images if any to the browser, and deletes 
them when exiting
 the group (if you want).
 
 @item K b
address@hidden K b (Summary)
address@hidden K b @r{(Summary)}
 Make all the @acronym{MIME} parts have buttons in front of them.  This is
 mostly useful if you wish to save (or perform other actions) on inlined
 parts.
 
 @item W M h
address@hidden W M h (Summary)
address@hidden W M h @r{(Summary)}
 @findex gnus-mime-buttonize-attachments-in-header
 @vindex gnus-mime-display-attachment-buttons-in-header
 Display @acronym{MIME} part buttons in the end of the header of an
@@ -9824,7 +9818,7 @@ The default is @code{t}.  To change the appearance of 
buttons, customize
 @code{gnus-header-face-alist}.
 
 @item K m
address@hidden K m (Summary)
address@hidden K m @r{(Summary)}
 @findex gnus-summary-repair-multipart
 Some multipart messages are transmitted with missing or faulty headers.
 This command will attempt to ``repair'' these messages so that they can
@@ -9832,26 +9826,26 @@ be viewed in a more pleasant manner
 (@code{gnus-summary-repair-multipart}).
 
 @item X m
address@hidden X m (Summary)
address@hidden X m @r{(Summary)}
 @findex gnus-summary-save-parts
 Save all parts matching a @acronym{MIME} type to a directory
 (@code{gnus-summary-save-parts}).  Understands the process/prefix
 convention (@pxref{Process/Prefix}).
 
 @item M-t
address@hidden M-t (Summary)
address@hidden M-t @r{(Summary)}
 @findex gnus-summary-toggle-display-buttonized
 Toggle the buttonized display of the article buffer
 (@code{gnus-summary-toggle-display-buttonized}).
 
 @item W M w
address@hidden W M w (Summary)
address@hidden W M w @r{(Summary)}
 @findex gnus-article-decode-mime-words
 Decode RFC 2047-encoded words in the article headers
 (@code{gnus-article-decode-mime-words}).
 
 @item W M c
address@hidden W M c (Summary)
address@hidden W M c @r{(Summary)}
 @findex gnus-article-decode-charset
 Decode encoded article bodies as well as charsets
 (@code{gnus-article-decode-charset}).
@@ -9864,7 +9858,7 @@ include @acronym{MIME} headers), you can set the 
@code{charset} group/topic
 parameter to the required charset (@pxref{Group Parameters}).
 
 @item W M v
address@hidden W M v (Summary)
address@hidden W M v @r{(Summary)}
 @findex gnus-mime-view-all-parts
 View all the @acronym{MIME} parts in the current article
 (@code{gnus-mime-view-all-parts}).
@@ -10123,7 +10117,7 @@ something like
 @item A P
 @cindex PostScript
 @cindex printing
address@hidden A P (Summary)
address@hidden A P @r{(Summary)}
 @vindex gnus-ps-print-hook
 @findex gnus-summary-print-article
 Generate and print a PostScript image of the article buffer
@@ -10154,68 +10148,68 @@ can't really see why you'd want that.
 @table @kbd
 
 @item C-c C-s C-n
address@hidden C-c C-s C-n (Summary)
address@hidden C-c C-s C-n @r{(Summary)}
 @findex gnus-summary-sort-by-number
 Sort by article number (@code{gnus-summary-sort-by-number}).
 
 @item C-c C-s C-m C-n
address@hidden C-c C-s C-n (Summary)
address@hidden C-c C-s C-n @r{(Summary)}
 @findex gnus-summary-sort-by-most-recent-number
 Sort by most recent article number
 (@code{gnus-summary-sort-by-most-recent-number}).
 
 @item C-c C-s C-a
address@hidden C-c C-s C-a (Summary)
address@hidden C-c C-s C-a @r{(Summary)}
 @findex gnus-summary-sort-by-author
 Sort by author (@code{gnus-summary-sort-by-author}).
 
 @item C-c C-s C-t
address@hidden C-c C-s C-t (Summary)
address@hidden C-c C-s C-t @r{(Summary)}
 @findex gnus-summary-sort-by-recipient
 Sort by recipient (@code{gnus-summary-sort-by-recipient}).
 
 @item C-c C-s C-s
address@hidden C-c C-s C-s (Summary)
address@hidden C-c C-s C-s @r{(Summary)}
 @findex gnus-summary-sort-by-subject
 Sort by subject (@code{gnus-summary-sort-by-subject}).
 
 @item C-c C-s C-d
address@hidden C-c C-s C-d (Summary)
address@hidden C-c C-s C-d @r{(Summary)}
 @findex gnus-summary-sort-by-date
 Sort by date (@code{gnus-summary-sort-by-date}).
 
 @item C-c C-s C-m C-d
address@hidden C-c C-s C-m C-d (Summary)
address@hidden C-c C-s C-m C-d @r{(Summary)}
 @findex gnus-summary-sort-by-most-recent-date
 Sort by most recent date (@code{gnus-summary-sort-by-most-recent-date}).
 
 @item C-c C-s C-l
address@hidden C-c C-s C-l (Summary)
address@hidden C-c C-s C-l @r{(Summary)}
 @findex gnus-summary-sort-by-lines
 Sort by lines (@code{gnus-summary-sort-by-lines}).
 
 @item C-c C-s C-c
address@hidden C-c C-s C-c (Summary)
address@hidden C-c C-s C-c @r{(Summary)}
 @findex gnus-summary-sort-by-chars
 Sort by article length (@code{gnus-summary-sort-by-chars}).
 
 @item C-c C-s C-m C-m
address@hidden C-c C-s C-m C-m (Summary)
address@hidden C-c C-s C-m C-m @r{(Summary)}
 @findex gnus-summary-sort-by-marks
 Sort by article ``readedness'' marks (@code{gnus-summary-sort-by-marks}).
 
 @item C-c C-s C-i
address@hidden C-c C-s C-i (Summary)
address@hidden C-c C-s C-i @r{(Summary)}
 @findex gnus-summary-sort-by-score
 Sort by score (@code{gnus-summary-sort-by-score}).
 
 @item C-c C-s C-r
address@hidden C-c C-s C-r (Summary)
address@hidden C-c C-s C-r @r{(Summary)}
 @findex gnus-summary-sort-by-random
 Randomize (@code{gnus-summary-sort-by-random}).
 
 @item C-c C-s C-o
address@hidden C-c C-s C-o (Summary)
address@hidden C-c C-s C-o @r{(Summary)}
 @findex gnus-summary-sort-by-original
 Sort using the default sorting method
 (@code{gnus-summary-sort-by-original}).
@@ -10238,7 +10232,7 @@ If a prefix argument if given, the sort order is 
reversed.
 
 @table @kbd
 @item ^
address@hidden ^ (Summary)
address@hidden ^ @r{(Summary)}
 @findex gnus-summary-refer-parent-article
 If you'd like to read the parent of the current article, and it is not
 displayed in the summary buffer, you might still be able to.  That is,
@@ -10258,13 +10252,13 @@ article.
 
 @item A R (Summary)
 @findex gnus-summary-refer-references
address@hidden A R (Summary)
address@hidden A R @r{(Summary)}
 Fetch all articles mentioned in the @code{References} header of the
 article (@code{gnus-summary-refer-references}).
 
 @item A T (Summary)
 @findex gnus-summary-refer-thread
address@hidden A T (Summary)
address@hidden A T @r{(Summary)}
 Display the full thread where the current article appears
 (@code{gnus-summary-refer-thread}).  This command has to fetch all the
 headers in the current group to work, so it usually takes a while.  If
@@ -10282,7 +10276,7 @@ by giving the @kbd{A T} command a numerical prefix.
 
 @item M-^ (Summary)
 @findex gnus-summary-refer-article
address@hidden M-^ (Summary)
address@hidden M-^ @r{(Summary)}
 @cindex Message-ID
 @cindex fetching by Message-ID
 You can also ask Gnus for an arbitrary article, no matter what group it
@@ -10352,7 +10346,6 @@ buffer the articles she wants to read.  Then she starts 
reading the
 articles with just an article buffer displayed.
 
 @findex gnus-pick-mode
address@hidden M-x gnus-pick-mode
 Gnus provides a summary buffer minor mode that allows
 address@hidden  This basically means that a few process
 mark commands become one-keystroke commands to allow easy marking, and
@@ -10362,7 +10355,7 @@ Here are the available keystrokes when using pick mode:
 
 @table @kbd
 @item .
address@hidden . (Pick)
address@hidden . @r{(Pick)}
 @findex gnus-pick-article-or-thread
 Pick the article or thread on the current line
 (@code{gnus-pick-article-or-thread}).  If the variable
@@ -10372,14 +10365,14 @@ it selects just the article.  If given a numerical 
prefix, go to that
 thread or article and pick it.  (The line number is normally displayed
 at the beginning of the summary pick lines.)
 
address@hidden SPACE
address@hidden SPACE (Pick)
address@hidden @key{SPC}
address@hidden SPC @r{(Pick)}
 @findex gnus-pick-next-page
 Scroll the summary buffer up one page (@code{gnus-pick-next-page}).  If
 at the end of the buffer, start reading the picked articles.
 
 @item u
address@hidden u (Pick)
address@hidden u @r{(Pick)}
 @findex gnus-pick-unmark-article-or-thread.
 Unpick the thread or article
 (@code{gnus-pick-unmark-article-or-thread}).  If the variable
@@ -10388,8 +10381,8 @@ thread if used at the first article of the thread.  
Otherwise it unpicks
 just the article.  You can give this key a numerical prefix to unpick
 the thread or article at that line.
 
address@hidden RET
address@hidden RET (Pick)
address@hidden @key{RET}
address@hidden RET @r{(Pick)}
 @findex gnus-pick-start-reading
 @vindex gnus-pick-display-summary
 Start reading the picked articles (@code{gnus-pick-start-reading}).  If
@@ -10431,14 +10424,13 @@ Variables}).  It accepts the same format specs that
 @cindex binary groups
 
 @findex gnus-binary-mode
address@hidden M-x gnus-binary-mode
 If you spend much time in binary groups, you may grow tired of hitting
address@hidden u}, @kbd{n}, @kbd{RET} all the time.  @kbd{M-x gnus-binary-mode}
address@hidden u}, @kbd{n}, @address@hidden all the time.  @kbd{M-x 
gnus-binary-mode}
 is a minor mode for summary buffers that makes all ordinary Gnus article
 selection functions uudecode series of articles and display the result
 instead of just displaying the articles the normal way.
 
address@hidden g (Binary)
address@hidden g @r{(Binary)}
 @findex gnus-binary-show-article
 The only way, in fact, to see the actual articles is the @kbd{g}
 command, when you have turned on this mode
@@ -10614,7 +10606,7 @@ process/prefix convention (@pxref{Process/Prefix}).
 @table @kbd
 
 @item B e
address@hidden B e (Summary)
address@hidden B e @r{(Summary)}
 @findex gnus-summary-expire-articles
 @cindex expiring mail
 Run all expirable articles in the current group through the expiry
@@ -10623,7 +10615,7 @@ expirable articles in the group that have been around 
for a while.
 (@pxref{Expiring Mail}).
 
 @item B C-M-e
address@hidden B C-M-e (Summary)
address@hidden B C-M-e @r{(Summary)}
 @findex gnus-summary-expire-articles-now
 @cindex expiring mail
 Delete all the expirable articles in the group
@@ -10631,8 +10623,8 @@ Delete all the expirable articles in the group
 articles eligible for expiry in the current group will
 disappear forever into that big @file{/dev/null} in the sky.
 
address@hidden B DEL
address@hidden B DEL (Summary)
address@hidden B @key{DEL}
address@hidden B DEL @r{(Summary)}
 @cindex deleting mail
 @findex gnus-summary-delete-article
 @c @icon{gnus-summary-mail-delete}
@@ -10641,7 +10633,7 @@ disk forever and ever, never to return again.'' Use 
with caution.
 (@code{gnus-summary-delete-article}).
 
 @item B m
address@hidden B m (Summary)
address@hidden B m @r{(Summary)}
 @cindex move mail
 @findex gnus-summary-move-article
 @vindex gnus-preserve-marks
@@ -10650,7 +10642,7 @@ Move the article from one mail group to another
 @code{gnus-preserve-marks} is address@hidden (which is the default).
 
 @item B c
address@hidden B c (Summary)
address@hidden B c @r{(Summary)}
 @cindex copy mail
 @findex gnus-summary-copy-article
 @c @icon{gnus-summary-mail-copy}
@@ -10659,7 +10651,7 @@ Copy the article from one group (mail group or not) to 
a mail group
 @code{gnus-preserve-marks} is address@hidden (which is the default).
 
 @item B B
address@hidden B B (Summary)
address@hidden B B @r{(Summary)}
 @cindex crosspost mail
 @findex gnus-summary-crosspost-article
 Crosspost the current article to some other group
@@ -10668,21 +10660,21 @@ the article in the other group, and the Xref headers 
of the article will
 be properly updated.
 
 @item B i
address@hidden B i (Summary)
address@hidden B i @r{(Summary)}
 @findex gnus-summary-import-article
 Import an arbitrary file into the current mail newsgroup
 (@code{gnus-summary-import-article}).  You will be prompted for a file
 name, a @code{From} header and a @code{Subject} header.
 
 @item B I
address@hidden B I (Summary)
address@hidden B I @r{(Summary)}
 @findex gnus-summary-create-article
 Create an empty article in the current mail newsgroups
 (@code{gnus-summary-create-article}).  You will be prompted for a
 @code{From} header and a @code{Subject} header.
 
 @item B r
address@hidden B r (Summary)
address@hidden B r @r{(Summary)}
 @findex gnus-summary-respool-article
 @vindex gnus-summary-respool-default-method
 Respool the mail article (@code{gnus-summary-respool-article}).
@@ -10694,10 +10686,10 @@ Marks will be preserved if @code{gnus-preserve-marks} 
is address@hidden
 
 @item B w
 @itemx e
address@hidden B w (Summary)
address@hidden e (Summary)
address@hidden B w @r{(Summary)}
address@hidden e @r{(Summary)}
 @findex gnus-summary-edit-article
address@hidden C-c C-c (Article)
address@hidden C-c C-c @r{(Article)}
 @findex gnus-summary-edit-article-done
 Edit the current article (@code{gnus-summary-edit-article}).  To finish
 editing and make the changes permanent, type @kbd{C-c C-c}
@@ -10705,20 +10697,20 @@ editing and make the changes permanent, type @kbd{C-c 
C-c}
 @kbd{C-c C-c} command, Gnus won't re-highlight the article.
 
 @item B q
address@hidden B q (Summary)
address@hidden B q @r{(Summary)}
 @findex gnus-summary-respool-query
 If you want to re-spool an article, you might be curious as to what group
 the article will end up in before you do the re-spooling.  This command
 will tell you (@code{gnus-summary-respool-query}).
 
 @item B t
address@hidden B t (Summary)
address@hidden B t @r{(Summary)}
 @findex gnus-summary-respool-trace
 Similarly, this command will display all fancy splitting patterns used
 when respooling, if any (@code{gnus-summary-respool-trace}).
 
 @item B p
address@hidden B p (Summary)
address@hidden B p @r{(Summary)}
 @findex gnus-summary-article-posted-p
 Some people have a tendency to send you ``courtesy'' copies when they
 follow up to articles you have posted.  These usually have a
@@ -10732,7 +10724,7 @@ propagation is much faster than news propagation, and 
the news copy may
 just not have arrived yet.
 
 @item K E
address@hidden K E (Summary)
address@hidden K E @r{(Summary)}
 @findex gnus-article-encrypt-body
 @vindex gnus-article-encrypt-protocol
 Encrypt the body of an article (@code{gnus-article-encrypt-body}).
@@ -10867,20 +10859,20 @@ Also @pxref{Group Parameters}.
 @table @kbd
 
 @item H d
address@hidden H d (Summary)
address@hidden H d @r{(Summary)}
 @findex gnus-summary-describe-group
 Give a brief description of the current group
 (@code{gnus-summary-describe-group}).  If given a prefix, force
 rereading the description from the server.
 
 @item H h
address@hidden H h (Summary)
address@hidden H h @r{(Summary)}
 @findex gnus-summary-describe-briefly
 Give an extremely brief description of the most important summary
 keystrokes (@code{gnus-summary-describe-briefly}).
 
 @item H i
address@hidden H i (Summary)
address@hidden H i @r{(Summary)}
 @findex gnus-info-find-node
 Go to the Gnus info node (@code{gnus-info-find-node}).
 @end table
@@ -10892,31 +10884,31 @@ Go to the Gnus info node (@code{gnus-info-find-node}).
 @table @kbd
 
 @item M-s
address@hidden M-s (Summary)
address@hidden M-s @r{(Summary)}
 @findex gnus-summary-search-article-forward
 Search through all subsequent (raw) articles for a regexp
 (@code{gnus-summary-search-article-forward}).
 
 @item M-r
address@hidden M-r (Summary)
address@hidden M-r @r{(Summary)}
 @findex gnus-summary-search-article-backward
 Search through all previous (raw) articles for a regexp
 (@code{gnus-summary-search-article-backward}).
 
 @item M-S
address@hidden M-S (Summary)
address@hidden M-S @r{(Summary)}
 @findex gnus-summary-repeat-search-article-forward
 Repeat the previous search forwards
 (@code{gnus-summary-repeat-search-article-forward}).
 
 @item M-R
address@hidden M-R (Summary)
address@hidden M-R @r{(Summary)}
 @findex gnus-summary-repeat-search-article-backward
 Repeat the previous search backwards
 (@code{gnus-summary-repeat-search-article-backward}).
 
 @item &
address@hidden & (Summary)
address@hidden & @r{(Summary)}
 @findex gnus-summary-execute-command
 This command will prompt you for a header, a regular expression to match
 on this field, and a command to be executed if the match is made
@@ -10924,11 +10916,12 @@ on this field, and a command to be executed if the 
match is made
 string, the match is done on the entire article.  If given a prefix,
 search backward instead.
 
-For instance, @kbd{& RET some.*string RET #} will put the process mark on
-all articles that have heads or bodies that match @samp{some.*string}.
+For instance, @kbd{& @key{RET} some.*string @key{RET} #} will put the
+process mark on all articles that have heads or bodies that match
address@hidden
 
 @item M-&
address@hidden M-& (Summary)
address@hidden M-& @r{(Summary)}
 @findex gnus-summary-universal-argument
 Perform any operation on all articles that have been marked with
 the process mark (@code{gnus-summary-universal-argument}).
@@ -10940,24 +10933,24 @@ the process mark 
(@code{gnus-summary-universal-argument}).
 @table @kbd
 
 @item Y g
address@hidden Y g (Summary)
address@hidden Y g @r{(Summary)}
 @findex gnus-summary-prepare
 Regenerate the current summary buffer (@code{gnus-summary-prepare}).
 
 @item Y c
address@hidden Y c (Summary)
address@hidden Y c @r{(Summary)}
 @findex gnus-summary-insert-cached-articles
 Pull all cached articles (for the current group) into the summary buffer
 (@code{gnus-summary-insert-cached-articles}).
 
 @item Y d
address@hidden Y d (Summary)
address@hidden Y d @r{(Summary)}
 @findex gnus-summary-insert-dormant-articles
 Pull all dormant articles (for the current group) into the summary buffer
 (@code{gnus-summary-insert-dormant-articles}).
 
 @item Y t
address@hidden Y t (Summary)
address@hidden Y t @r{(Summary)}
 @findex gnus-summary-insert-ticked-articles
 Pull all ticked articles (for the current group) into the summary buffer
 (@code{gnus-summary-insert-ticked-articles}).
@@ -10972,8 +10965,8 @@ Pull all ticked articles (for the current group) into 
the summary buffer
 
 @item A D
 @itemx C-d
address@hidden C-d (Summary)
address@hidden A D (Summary)
address@hidden C-d @r{(Summary)}
address@hidden A D @r{(Summary)}
 @findex gnus-summary-enter-digest-group
 If the current article is a collection of other articles (for instance,
 a digest), you might use this command to enter a group based on that
@@ -11007,7 +11000,7 @@ If it has any other value or there is no next (unread) 
article, the
 article selected before entering to the digest group will appear.
 
 @item C-M-d
address@hidden C-M-d (Summary)
address@hidden C-M-d @r{(Summary)}
 @findex gnus-summary-read-document
 This command is very similar to the one above, but lets you gather
 several documents into one biiig group
@@ -11018,7 +11011,7 @@ command understands the process/prefix convention
 (@pxref{Process/Prefix}).
 
 @item C-t
address@hidden C-t (Summary)
address@hidden C-t @r{(Summary)}
 @findex gnus-summary-toggle-truncation
 Toggle truncation of summary lines
 (@code{gnus-summary-toggle-truncation}).  This will probably confuse the
@@ -11026,19 +11019,19 @@ line centering function in the summary buffer, so 
it's not a good idea
 to have truncation switched off while reading articles.
 
 @item =
address@hidden = (Summary)
address@hidden = @r{(Summary)}
 @findex gnus-summary-expand-window
 Expand the summary buffer window (@code{gnus-summary-expand-window}).
 If given a prefix, force an @code{article} window configuration.
 
 @item C-M-e
address@hidden C-M-e (Summary)
address@hidden C-M-e @r{(Summary)}
 @findex gnus-summary-edit-parameters
 Edit the group parameters (@pxref{Group Parameters}) of the current
 group (@code{gnus-summary-edit-parameters}).
 
 @item C-M-a
address@hidden C-M-a (Summary)
address@hidden C-M-a @r{(Summary)}
 @findex gnus-summary-customize-parameters
 Customize the group parameters (@pxref{Group Parameters}) of the current
 group (@code{gnus-summary-customize-parameters}).
@@ -11059,9 +11052,9 @@ group and return you to the group buffer.
 @item Z Z
 @itemx Z Q
 @itemx q
address@hidden Z Z (Summary)
address@hidden Z Q (Summary)
address@hidden q (Summary)
address@hidden Z Z @r{(Summary)}
address@hidden Z Q @r{(Summary)}
address@hidden q @r{(Summary)}
 @findex gnus-summary-exit
 @vindex gnus-summary-exit-hook
 @vindex gnus-summary-prepare-exit-hook
@@ -11077,43 +11070,43 @@ group mode having no more (unread) groups.
 
 @item Z E
 @itemx Q
address@hidden Z E (Summary)
address@hidden Q (Summary)
address@hidden Z E @r{(Summary)}
address@hidden Q @r{(Summary)}
 @findex gnus-summary-exit-no-update
 Exit the current group without updating any information on the group
 (@code{gnus-summary-exit-no-update}).
 
 @item Z c
 @itemx c
address@hidden Z c (Summary)
address@hidden c (Summary)
address@hidden Z c @r{(Summary)}
address@hidden c @r{(Summary)}
 @findex gnus-summary-catchup-and-exit
 @c @icon{gnus-summary-catchup-and-exit}
 Mark all unticked articles in the group as read and then exit
 (@code{gnus-summary-catchup-and-exit}).
 
 @item Z C
address@hidden Z C (Summary)
address@hidden Z C @r{(Summary)}
 @findex gnus-summary-catchup-all-and-exit
 Mark all articles, even the ticked ones, as read and then exit
 (@code{gnus-summary-catchup-all-and-exit}).
 
 @item Z n
address@hidden Z n (Summary)
address@hidden Z n @r{(Summary)}
 @findex gnus-summary-catchup-and-goto-next-group
 Mark all articles as read and go to the next group
 (@code{gnus-summary-catchup-and-goto-next-group}).
 
 @item Z p
address@hidden Z p (Summary)
address@hidden Z p @r{(Summary)}
 @findex gnus-summary-catchup-and-goto-prev-group
 Mark all articles as read and go to the previous group
 (@code{gnus-summary-catchup-and-goto-prev-group}).
 
 @item Z R
 @itemx C-x C-s
address@hidden Z R (Summary)
address@hidden C-x C-s (Summary)
address@hidden Z R @r{(Summary)}
address@hidden C-x C-s @r{(Summary)}
 @findex gnus-summary-reselect-current-group
 Exit this group, and then enter it again
 (@code{gnus-summary-reselect-current-group}).  If given a prefix, select
@@ -11121,8 +11114,8 @@ all articles, both read and unread.
 
 @item Z G
 @itemx M-g
address@hidden Z G (Summary)
address@hidden M-g (Summary)
address@hidden Z G @r{(Summary)}
address@hidden M-g @r{(Summary)}
 @findex gnus-summary-rescan-group
 @c @icon{gnus-summary-mail-get}
 Exit the group, check for new articles in the group, and select the
@@ -11130,19 +11123,19 @@ group (@code{gnus-summary-rescan-group}).  If given a 
prefix, select all
 articles, both read and unread.
 
 @item Z N
address@hidden Z N (Summary)
address@hidden Z N @r{(Summary)}
 @findex gnus-summary-next-group
 Exit the group and go to the next group
 (@code{gnus-summary-next-group}).
 
 @item Z P
address@hidden Z P (Summary)
address@hidden Z P @r{(Summary)}
 @findex gnus-summary-prev-group
 Exit the group and go to the previous group
 (@code{gnus-summary-prev-group}).
 
 @item Z s
address@hidden Z s (Summary)
address@hidden Z s @r{(Summary)}
 @findex gnus-summary-save-newsrc
 Save the current number of read/marked articles in the dribble buffer
 and then save the dribble buffer (@code{gnus-summary-save-newsrc}).  If
@@ -11413,7 +11406,7 @@ encrypted messages up can be found in the message manual
 @cindex mailing list
 @cindex RFC 2396
 
address@hidden A M (summary)
address@hidden A M @r{(Summary)}
 @findex gnus-mailing-list-insinuate
 Gnus understands some mailing list fields of RFC 2369.  To enable it,
 add a @code{to-list} group parameter (@pxref{Group Parameters}),
@@ -11425,33 +11418,33 @@ That enables the following commands to the summary 
buffer:
 @table @kbd
 
 @item C-c C-n h
address@hidden C-c C-n h (Summary)
address@hidden C-c C-n h @r{(Summary)}
 @findex gnus-mailing-list-help
 Send a message to fetch mailing list help, if List-Help field exists.
 
 @item C-c C-n s
address@hidden C-c C-n s (Summary)
address@hidden C-c C-n s @r{(Summary)}
 @findex gnus-mailing-list-subscribe
 Send a message to subscribe the mailing list, if List-Subscribe field exists.
 
 @item C-c C-n u
address@hidden C-c C-n u (Summary)
address@hidden C-c C-n u @r{(Summary)}
 @findex gnus-mailing-list-unsubscribe
 Send a message to unsubscribe the mailing list, if List-Unsubscribe
 field exists.
 
 @item C-c C-n p
address@hidden C-c C-n p (Summary)
address@hidden C-c C-n p @r{(Summary)}
 @findex gnus-mailing-list-post
 Post to the mailing list, if List-Post field exists.
 
 @item C-c C-n o
address@hidden C-c C-n o (Summary)
address@hidden C-c C-n o @r{(Summary)}
 @findex gnus-mailing-list-owner
 Send a message to the mailing list owner, if List-Owner field exists.
 
 @item C-c C-n a
address@hidden C-c C-n a (Summary)
address@hidden C-c C-n a @r{(Summary)}
 @findex gnus-mailing-list-archive
 Browse the mailing list archive, if List-Archive field exists.
 
@@ -11629,9 +11622,9 @@ The following commands are available when you have 
placed point over a
 
 @table @kbd
 @findex gnus-article-press-button
address@hidden RET (Article)
address@hidden RET (Article)
address@hidden BUTTON-2 (Article)
address@hidden @key{RET} (Article)
address@hidden RET @r{(Article)}
address@hidden @key{BUTTON-2} (Article)
 Toggle displaying of the @acronym{MIME} object
 (@code{gnus-article-press-button}).  If built-in viewers can not display
 the object, Gnus resorts to external viewers in the @file{mailcap}
@@ -11639,33 +11632,33 @@ files.  If a viewer has the @samp{copiousoutput} 
specification, the
 object is displayed inline.
 
 @findex gnus-mime-view-part
address@hidden M-RET (Article)
address@hidden M-RET (Article)
address@hidden address@hidden (Article)
address@hidden M-RET @r{(Article)}
 @itemx v (Article)
 Prompt for a method, and then view the @acronym{MIME} object using this
 method (@code{gnus-mime-view-part}).
 
 @findex gnus-mime-view-part-as-type
 @item t (Article)
address@hidden t (Article)
address@hidden t @r{(Article)}
 View the @acronym{MIME} object as if it were a different @acronym{MIME} media 
type
 (@code{gnus-mime-view-part-as-type}).
 
 @findex gnus-mime-view-part-as-charset
 @item C (Article)
address@hidden C (Article)
address@hidden C @r{(Article)}
 Prompt for a charset, and then view the @acronym{MIME} object using this
 charset (@code{gnus-mime-view-part-as-charset}).
 
 @findex gnus-mime-save-part
 @item o (Article)
address@hidden o (Article)
address@hidden o @r{(Article)}
 Prompt for a file name, and then save the @acronym{MIME} object
 (@code{gnus-mime-save-part}).
 
 @findex gnus-mime-save-part-and-strip
 @item C-o (Article)
address@hidden C-o (Article)
address@hidden C-o @r{(Article)}
 Prompt for a file name, then save the @acronym{MIME} object and strip it from
 the article.  Then proceed to article editing, where a reasonable
 suggestion is being made on how the altered article should look
@@ -11675,14 +11668,14 @@ message/external-body @acronym{MIME} type.
 
 @findex gnus-mime-replace-part
 @item r (Article)
address@hidden r (Article)
address@hidden r @r{(Article)}
 Prompt for a file name, replace the @acronym{MIME} object with an
 external body referring to the file via the message/external-body
 @acronym{MIME} type.  (@code{gnus-mime-replace-part}).
 
 @findex gnus-mime-delete-part
 @item d (Article)
address@hidden d (Article)
address@hidden d @r{(Article)}
 Delete the @acronym{MIME} object from the article and replace it with some
 information about the removed @acronym{MIME} object
 (@code{gnus-mime-delete-part}).
@@ -11691,7 +11684,7 @@ information about the removed @acronym{MIME} object
 
 @findex gnus-mime-copy-part
 @item c (Article)
address@hidden c (Article)
address@hidden c @r{(Article)}
 Copy the @acronym{MIME} object to a fresh buffer and display this buffer
 (@code{gnus-mime-copy-part}).  If given a prefix, copy the raw contents
 without decoding.  If given a numerical prefix, you can do semi-manual
@@ -11703,14 +11696,14 @@ Accessing Compressed Files, emacs, The Emacs Editor}).
 
 @findex gnus-mime-print-part
 @item p (Article)
address@hidden p (Article)
address@hidden p @r{(Article)}
 Print the @acronym{MIME} object (@code{gnus-mime-print-part}).  This
 command respects the @samp{print=} specifications in the
 @file{.mailcap} file.
 
 @findex gnus-mime-inline-part
 @item i (Article)
address@hidden i (Article)
address@hidden i @r{(Article)}
 Insert the contents of the @acronym{MIME} object into the buffer
 (@code{gnus-mime-inline-part}) as @samp{text/plain}.  If given a prefix, insert
 the raw contents without decoding.  If given a numerical prefix, you can
@@ -11723,25 +11716,25 @@ Compressed Files, emacs, The Emacs Editor}).
 
 @findex gnus-mime-view-part-internally
 @item E (Article)
address@hidden E (Article)
address@hidden E @r{(Article)}
 View the @acronym{MIME} object with an internal viewer.  If no internal
 viewer is available, use an external viewer
 (@code{gnus-mime-view-part-internally}).
 
 @findex gnus-mime-view-part-externally
 @item e (Article)
address@hidden e (Article)
address@hidden e @r{(Article)}
 View the @acronym{MIME} object with an external viewer.
 (@code{gnus-mime-view-part-externally}).
 
 @findex gnus-mime-pipe-part
 @item | (Article)
address@hidden | (Article)
address@hidden | @r{(Article)}
 Output the @acronym{MIME} object to a process (@code{gnus-mime-pipe-part}).
 
 @findex gnus-mime-action-on-part
 @item . (Article)
address@hidden . (Article)
address@hidden . @r{(Article)}
 Interactively run an action on the @acronym{MIME} object
 (@code{gnus-mime-action-on-part}).
 
@@ -11925,7 +11918,7 @@ controlling variable is a predicate list, as described 
above.
 
 @ifinfo
 @c Avoid sort of redundant entries in the same section for the printed
address@hidden manual, but add them in info to allow 'i gnus-treat-foo-bar RET' 
or
address@hidden manual, but add them in info to allow 'i gnus-treat-foo-bar 
@key{RET}' or
 @c 'i foo-bar'.
 @vindex gnus-treat-buttonize
 @vindex gnus-treat-buttonize-head
@@ -12130,7 +12123,7 @@ buffer, which means that you don't actually have to 
have a summary
 buffer displayed while reading.  You can do it all from the article
 buffer.
 
address@hidden v (Article)
address@hidden v @r{(Article)}
 @cindex keys, reserved for users (Article)
 The key @kbd{v} is reserved for users.  You can bind it to some
 command or better use it as a prefix key.
@@ -12139,70 +12132,70 @@ A few additional keystrokes are available:
 
 @table @kbd
 
address@hidden SPACE
address@hidden SPACE (Article)
address@hidden @key{SPC}
address@hidden SPC @r{(Article)}
 @findex gnus-article-next-page
 Scroll forwards one page (@code{gnus-article-next-page}).
-This is exactly the same as @kbd{h SPACE h}.
+This is exactly the same as @kbd{h @key{SPC} h}.
 
address@hidden DEL
address@hidden DEL (Article)
address@hidden @key{DEL}
address@hidden DEL @r{(Article)}
 @findex gnus-article-prev-page
 Scroll backwards one page (@code{gnus-article-prev-page}).
-This is exactly the same as @kbd{h DEL h}.
+This is exactly the same as @kbd{h @key{DEL} h}.
 
 @item C-c ^
address@hidden C-c ^ (Article)
address@hidden C-c ^ @r{(Article)}
 @findex gnus-article-refer-article
 If point is in the neighborhood of a @code{Message-ID} and you press
 @kbd{C-c ^}, Gnus will try to get that article from the server
 (@code{gnus-article-refer-article}).
 
 @item C-c C-m
address@hidden C-c C-m (Article)
address@hidden C-c C-m @r{(Article)}
 @findex gnus-article-mail
 Send a reply to the address near point (@code{gnus-article-mail}).  If
 given a prefix, include the mail.
 
 @item s
address@hidden s (Article)
address@hidden s @r{(Article)}
 @findex gnus-article-show-summary
 Reconfigure the buffers so that the summary buffer becomes visible
 (@code{gnus-article-show-summary}).
 
 @item ?
address@hidden ? (Article)
address@hidden ? @r{(Article)}
 @findex gnus-article-describe-briefly
 Give a very brief description of the available keystrokes
 (@code{gnus-article-describe-briefly}).
 
address@hidden TAB
address@hidden TAB (Article)
address@hidden @key{TAB}
address@hidden TAB @r{(Article)}
 @findex gnus-article-next-button
 Go to the next button, if any (@code{gnus-article-next-button}).  This
 only makes sense if you have buttonizing turned on.
 
address@hidden M-TAB
address@hidden M-TAB (Article)
address@hidden address@hidden
address@hidden M-TAB @r{(Article)}
 @findex gnus-article-prev-button
 Go to the previous button, if any (@code{gnus-article-prev-button}).
 
 @item R
address@hidden R (Article)
address@hidden R @r{(Article)}
 @findex gnus-article-reply-with-original
 Send a reply to the current article and yank the current article
 (@code{gnus-article-reply-with-original}).  If the region is active,
 only yank the text in the region.
 
 @item S W
address@hidden S W (Article)
address@hidden S W @r{(Article)}
 @findex gnus-article-wide-reply-with-original
 Send a wide reply to the current article and yank the current article
 (@code{gnus-article-wide-reply-with-original}).  If the region is
 active, only yank the text in the region.
 
 @item F
address@hidden F (Article)
address@hidden F @r{(Article)}
 @findex gnus-article-followup-with-original
 Send a followup to the current article and yank the current article
 (@code{gnus-article-followup-with-original}).  If the region is active,
@@ -12225,7 +12218,7 @@ If address@hidden, use the same article buffer for all 
the groups.
 article buffer.
 
 @item gnus-widen-article-window
address@hidden gnus-widen-article-window
address@hidden gnus-widen-article-window
 If address@hidden, selecting the article buffer with the @kbd{h}
 command will ``widen'' the article window to take the entire frame.
 
@@ -12348,7 +12341,7 @@ when @code{mm-text-html-renderer} (@pxref{Display 
Customization,
 @cindex using s/mime
 @cindex using smime
 
address@hidden C-c C-c (Post)
address@hidden C-c C-c @r{(Post)}
 All commands for posting and mailing will put you in a message buffer
 where you can edit the article all you like, before you send the
 article by pressing @kbd{C-c C-c}.  @xref{Top, , Overview, message,
@@ -12946,10 +12939,10 @@ correct parameters.  The content of the group is not 
lost.
 
 @c @findex gnus-dissociate-buffer-from-draft
 @c @kindex C-c M-d (Mail)
address@hidden @kindex C-c M-d (Post)
address@hidden @kindex C-c M-d @r{(Post)}
 @c @findex gnus-associate-buffer-with-draft
 @c @kindex C-c C-d (Mail)
address@hidden @kindex C-c C-d (Post)
address@hidden @kindex C-c C-d @r{(Post)}
 @c If you're writing some super-secret message that you later want to
 @c encode with PGP before sending, you may wish to turn the auto-saving
 @c (and association with the draft group) off.  You never know who might be
@@ -12964,7 +12957,7 @@ correct parameters.  The content of the group is not 
lost.
 @c @code{gnus-use-draft} to @code{nil}.  It is @code{t} by default.
 
 @findex gnus-draft-edit-message
address@hidden D e (Draft)
address@hidden D e @r{(Draft)}
 When you want to continue editing the article, you simply enter the
 draft group and push @kbd{D e} (@code{gnus-draft-edit-message}) to do
 that.  You will be placed in a buffer where you left off.
@@ -12973,9 +12966,9 @@ Rejected articles will also be put in this draft group 
(@pxref{Rejected
 Articles}).
 
 @findex gnus-draft-send-all-messages
address@hidden D s (Draft)
address@hidden D s @r{(Draft)}
 @findex gnus-draft-send-message
address@hidden D S (Draft)
address@hidden D S @r{(Draft)}
 If you have lots of rejected messages you want to post (or mail) without
 doing further editing, you can use the @kbd{D s} command
 (@code{gnus-draft-send-message}).  This command understands the
@@ -12984,12 +12977,12 @@ command (@code{gnus-draft-send-all-messages}) will 
ship off all messages
 in the buffer.
 
 @findex gnus-draft-toggle-sending
address@hidden D t (Draft)
address@hidden D t @r{(Draft)}
 If you have some messages that you wish not to send, you can use the
 @kbd{D t} (@code{gnus-draft-toggle-sending}) command to mark the message
 as unsendable.  This is a toggling command.
 
-Finally, if you want to delete a draft, use the normal @kbd{B DEL}
+Finally, if you want to delete a draft, use the normal @kbd{B @key{DEL}}
 command (@pxref{Mail Group Commands}).
 
 
@@ -13041,43 +13034,43 @@ signing and the @kbd{C-c C-m c} key map for 
encryption, as follows.
 @table @kbd
 
 @item C-c C-m s s
address@hidden C-c C-m s s (Message)
address@hidden C-c C-m s s @r{(Message)}
 @findex mml-secure-message-sign-smime
 
 Digitally sign current message using @acronym{S/MIME}.
 
 @item C-c C-m s o
address@hidden C-c C-m s o (Message)
address@hidden C-c C-m s o @r{(Message)}
 @findex mml-secure-message-sign-pgp
 
 Digitally sign current message using @acronym{PGP}.
 
 @item C-c C-m s p
address@hidden C-c C-m s p (Message)
address@hidden C-c C-m s p @r{(Message)}
 @findex mml-secure-message-sign-pgp
 
 Digitally sign current message using @acronym{PGP/MIME}.
 
 @item C-c C-m c s
address@hidden C-c C-m c s (Message)
address@hidden C-c C-m c s @r{(Message)}
 @findex mml-secure-message-encrypt-smime
 
 Digitally encrypt current message using @acronym{S/MIME}.
 
 @item C-c C-m c o
address@hidden C-c C-m c o (Message)
address@hidden C-c C-m c o @r{(Message)}
 @findex mml-secure-message-encrypt-pgp
 
 Digitally encrypt current message using @acronym{PGP}.
 
 @item C-c C-m c p
address@hidden C-c C-m c p (Message)
address@hidden C-c C-m c p @r{(Message)}
 @findex mml-secure-message-encrypt-pgpmime
 
 Digitally encrypt current message using @acronym{PGP/MIME}.
 
 @item C-c C-m C-n
address@hidden C-c C-m C-n (Message)
address@hidden C-c C-m C-n @r{(Message)}
 @findex mml-unsecure-message
 Remove security related @acronym{MML} tags from message.
 
@@ -13224,72 +13217,72 @@ in your init files.
 @table @kbd
 
 @item v
address@hidden v (Server)
address@hidden v @r{(Server)}
 @cindex keys, reserved for users (Server)
 The key @kbd{v} is reserved for users.  You can bind it to some
 command or better use it as a prefix key.
 
 @item a
address@hidden a (Server)
address@hidden a @r{(Server)}
 @findex gnus-server-add-server
 Add a new server (@code{gnus-server-add-server}).
 
 @item e
address@hidden e (Server)
address@hidden e @r{(Server)}
 @findex gnus-server-edit-server
 Edit a server (@code{gnus-server-edit-server}).
 
 @item S
address@hidden S (Server)
address@hidden S @r{(Server)}
 @findex gnus-server-show-server
 Show the definition of a server (@code{gnus-server-show-server}).
 
address@hidden SPACE
address@hidden SPACE (Server)
address@hidden @key{SPC}
address@hidden SPC @r{(Server)}
 @findex gnus-server-read-server
 Browse the current server (@code{gnus-server-read-server}).
 
 @item q
address@hidden q (Server)
address@hidden q @r{(Server)}
 @findex gnus-server-exit
 Return to the group buffer (@code{gnus-server-exit}).
 
 @item k
address@hidden k (Server)
address@hidden k @r{(Server)}
 @findex gnus-server-kill-server
 Kill the current server (@code{gnus-server-kill-server}).
 
 @item y
address@hidden y (Server)
address@hidden y @r{(Server)}
 @findex gnus-server-yank-server
 Yank the previously killed server (@code{gnus-server-yank-server}).
 
 @item c
address@hidden c (Server)
address@hidden c @r{(Server)}
 @findex gnus-server-copy-server
 Copy the current server (@code{gnus-server-copy-server}).
 
 @item l
address@hidden l (Server)
address@hidden l @r{(Server)}
 @findex gnus-server-list-servers
 List all servers (@code{gnus-server-list-servers}).
 
 @item s
address@hidden s (Server)
address@hidden s @r{(Server)}
 @findex gnus-server-scan-server
 Request that the server scan its sources for new articles
 (@code{gnus-server-scan-server}).  This is mainly sensible with mail
 servers.
 
 @item g
address@hidden g (Server)
address@hidden g @r{(Server)}
 @findex gnus-server-regenerate-server
 Request that the server regenerate all its data structures
 (@code{gnus-server-regenerate-server}).  This can be useful if you have
 a mail back end that has gotten out of sync.
 
 @item z
address@hidden z (Server)
address@hidden z @r{(Server)}
 @findex gnus-server-compact-server
 
 Compact all groups in the server under point
@@ -13421,7 +13414,7 @@ First you need to add a new server.  The @kbd{a} 
command does that.  It
 would probably be best to use @code{nnml} to read the cache.  You
 could also use @code{nnspool} or @code{nnmh}, though.
 
-Type @kbd{a nnml RET cache RET}.
+Type @kbd{a nnml @key{RET} cache @key{RET}}.
 
 You should now have a brand new @code{nnml} virtual server called
 @samp{cache}.  You now need to edit it to have the right definitions.
@@ -13441,7 +13434,7 @@ Change that to:
 @end lisp
 
 Type @kbd{C-c C-c} to return to the server buffer.  If you now press
address@hidden over this virtual server, you should be entered into a browse
address@hidden@key{RET}} over this virtual server, you should be entered into a 
browse
 buffer, and you should be able to enter any of the groups displayed.
 
 
@@ -13512,44 +13505,44 @@ with the following commands:
 @table @kbd
 
 @item O
address@hidden O (Server)
address@hidden O @r{(Server)}
 @findex gnus-server-open-server
 Try to establish connection to the server on the current line
 (@code{gnus-server-open-server}).
 
 @item C
address@hidden C (Server)
address@hidden C @r{(Server)}
 @findex gnus-server-close-server
 Close the connection (if any) to the server
 (@code{gnus-server-close-server}).
 
 @item D
address@hidden D (Server)
address@hidden D @r{(Server)}
 @findex gnus-server-deny-server
 Mark the current server as unreachable
 (@code{gnus-server-deny-server}).  This will effectively disable the
 server.
 
 @item M-o
address@hidden M-o (Server)
address@hidden M-o @r{(Server)}
 @findex gnus-server-open-all-servers
 Open the connections to all servers in the buffer
 (@code{gnus-server-open-all-servers}).
 
 @item M-c
address@hidden M-c (Server)
address@hidden M-c @r{(Server)}
 @findex gnus-server-close-all-servers
 Close the connections to all servers in the buffer
 (@code{gnus-server-close-all-servers}).
 
 @item R
address@hidden R (Server)
address@hidden R @r{(Server)}
 @findex gnus-server-remove-denials
 Remove all marks to whether Gnus was denied connection from any servers
 (@code{gnus-server-remove-denials}).
 
 @item c
address@hidden c (Server)
address@hidden c @r{(Server)}
 @findex gnus-server-copy-server
 Copy a server and give it a new name
 (@code{gnus-server-copy-server}).  This can be useful if you have a
@@ -13557,7 +13550,7 @@ complex method definition, and want to use the same 
definition towards
 a different (physical) server.
 
 @item L
address@hidden L (Server)
address@hidden L @r{(Server)}
 @findex gnus-server-offline-server
 Set server status to offline (@code{gnus-server-offline-server}).
 
@@ -14565,7 +14558,7 @@ see @ref{Fancy Mail Splitting}.
 Note that the mail back ends are free to maul the poor, innocent,
 incoming headers all they want to.  They all add @code{Lines} headers;
 some add @code{X-Gnus-Group} headers; most rename the Unix mbox
address@hidden<SPACE>} line to something else.
address@hidden@key{SPC}} line to something else.
 
 @vindex nnmail-crosspost
 The mail back ends all support cross-posting.  If several regexps match,
@@ -14582,7 +14575,6 @@ links.  If that's the case for you, set
 @code{nnmail-crosspost-link-function} to @code{copy-file}.  (This
 variable is @code{add-name-to-file} by default.)
 
address@hidden M-x nnmail-split-history
 @findex nnmail-split-history
 If you wish to see where the previous mail split put the messages, you
 can use the @kbd{M-x nnmail-split-history} command.  If you wish to see
@@ -15721,7 +15713,7 @@ Type @kbd{G f} and give the file name to the mbox file 
when prompted to create a
 @code{nndoc} group from the mbox file (@pxref{Foreign Groups}).
 
 @item
-Type @kbd{SPACE} to enter the newly created group.
+Type @address@hidden to enter the newly created group.
 
 @item
 Type @kbd{M P b} to process-mark all articles in this group's buffer
@@ -16036,7 +16028,7 @@ This can also be done non-destructively with
 
 @item nnmail-remove-tabs
 @findex nnmail-remove-tabs
-Translate all @samp{TAB} characters into @samp{SPACE} characters.
+Translate all @address@hidden characters into @address@hidden characters.
 
 @item nnmail-ignore-broken-references
 @findex nnmail-ignore-broken-references
@@ -16713,7 +16705,6 @@ The directory where the @acronym{NOV} files should be 
stored.  If
 
 
 @findex nnfolder-generate-active-file
address@hidden M-x nnfolder-generate-active-file
 If you have lots of @code{nnfolder}-like files you'd like to read with
 @code{nnfolder}, you can use the @kbd{M-x nnfolder-generate-active-file}
 command to make @code{nnfolder} aware of all likely files in
@@ -17062,14 +17053,14 @@ system because @acronym{RSS} uses UTF-8 for encoding 
address@hidden
 text by default.  It is also used by default for address@hidden
 group names.
 
address@hidden G R (Group)
address@hidden G R @r{(Group)}
 Use @kbd{G R} from the group buffer to subscribe to a feed---you will be
 prompted for the location, the title and the description of the feed.
 The title, which allows any characters, will be used for the group name
 and the name of the group data file.  The description can be omitted.
 
 An easy way to get started with @code{nnrss} is to say something like
-the following in the group buffer: @kbd{B nnrss RET RET y}, then
+the following in the group buffer: @kbd{B nnrss @key{RET} @key{RET} y}, then
 subscribe to groups.
 
 The @code{nnrss} back end saves the group data file in
@@ -18670,51 +18661,51 @@ The following commands are available in this buffer:
 
 @table @kbd
 @item q
address@hidden q (Category)
address@hidden q @r{(Category)}
 @findex gnus-category-exit
 Return to the group buffer (@code{gnus-category-exit}).
 
 @item e
address@hidden e (Category)
address@hidden e @r{(Category)}
 @findex gnus-category-customize-category
 Use a customization buffer to set all of the selected category's
 parameters at one time (@code{gnus-category-customize-category}).
 
 @item k
address@hidden k (Category)
address@hidden k @r{(Category)}
 @findex gnus-category-kill
 Kill the current category (@code{gnus-category-kill}).
 
 @item c
address@hidden c (Category)
address@hidden c @r{(Category)}
 @findex gnus-category-copy
 Copy the current category (@code{gnus-category-copy}).
 
 @item a
address@hidden a (Category)
address@hidden a @r{(Category)}
 @findex gnus-category-add
 Add a new category (@code{gnus-category-add}).
 
 @item p
address@hidden p (Category)
address@hidden p @r{(Category)}
 @findex gnus-category-edit-predicate
 Edit the predicate of the current category
 (@code{gnus-category-edit-predicate}).
 
 @item g
address@hidden g (Category)
address@hidden g @r{(Category)}
 @findex gnus-category-edit-groups
 Edit the list of groups belonging to the current category
 (@code{gnus-category-edit-groups}).
 
 @item s
address@hidden s (Category)
address@hidden s @r{(Category)}
 @findex gnus-category-edit-score
 Edit the download score rule of the current category
 (@code{gnus-category-edit-score}).
 
 @item l
address@hidden l (Category)
address@hidden l @r{(Category)}
 @findex gnus-category-list
 List all the categories (@code{gnus-category-list}).
 @end table
@@ -18788,7 +18779,7 @@ have to enable expiration in selected groups.
 @node Agent Commands
 @subsection Agent Commands
 @findex gnus-agent-toggle-plugged
address@hidden J j (Agent)
address@hidden J j @r{(Agent)}
 
 All the Gnus Agent commands are on the @kbd{J} submap.  The @kbd{J j}
 (@code{gnus-agent-toggle-plugged}) command works in all modes, and
@@ -18809,44 +18800,44 @@ toggles the plugged/unplugged state of the Gnus Agent.
 
 @table @kbd
 @item J u
address@hidden J u (Agent Group)
address@hidden J u @r{(Agent Group)}
 @findex gnus-agent-fetch-groups
 Fetch all eligible articles in the current group
 (@code{gnus-agent-fetch-groups}).
 
 @item J c
address@hidden J c (Agent Group)
address@hidden J c @r{(Agent Group)}
 @findex gnus-enter-category-buffer
 Enter the Agent category buffer (@code{gnus-enter-category-buffer}).
 
 @item J s
address@hidden J s (Agent Group)
address@hidden J s @r{(Agent Group)}
 @findex gnus-agent-fetch-session
 Fetch all eligible articles in all groups
 (@code{gnus-agent-fetch-session}).
 
 @item J S
address@hidden J S (Agent Group)
address@hidden J S @r{(Agent Group)}
 @findex gnus-group-send-queue
 Send all sendable messages in the queue group
 (@code{gnus-group-send-queue}).  @xref{Drafts}.
 
 @item J a
address@hidden J a (Agent Group)
address@hidden J a @r{(Agent Group)}
 @findex gnus-agent-add-group
 Add the current group to an Agent category
 (@code{gnus-agent-add-group}).  This command understands the
 process/prefix convention (@pxref{Process/Prefix}).
 
 @item J r
address@hidden J r (Agent Group)
address@hidden J r @r{(Agent Group)}
 @findex gnus-agent-remove-group
 Remove the current group from its category, if any
 (@code{gnus-agent-remove-group}).  This command understands the
 process/prefix convention (@pxref{Process/Prefix}).
 
 @item J Y
address@hidden J Y (Agent Group)
address@hidden J Y @r{(Agent Group)}
 @findex gnus-agent-synchronize-flags
 Synchronize flags changed while unplugged with remote server, if any.
 
@@ -18859,43 +18850,43 @@ Synchronize flags changed while unplugged with remote 
server, if any.
 
 @table @kbd
 @item J #
address@hidden J # (Agent Summary)
address@hidden J # @r{(Agent Summary)}
 @findex gnus-agent-mark-article
 Mark the article for downloading (@code{gnus-agent-mark-article}).
 
 @item J M-#
address@hidden J M-# (Agent Summary)
address@hidden J M-# @r{(Agent Summary)}
 @findex gnus-agent-unmark-article
 Remove the downloading mark from the article
 (@code{gnus-agent-unmark-article}).
 
 @cindex %
 @item @@
address@hidden @@ (Agent Summary)
address@hidden @@ @r{(Agent Summary)}
 @findex gnus-agent-toggle-mark
 Toggle whether to download the article
 (@code{gnus-agent-toggle-mark}).  The download mark is @samp{%} by
 default.
 
 @item J c
address@hidden J c (Agent Summary)
address@hidden J c @r{(Agent Summary)}
 @findex gnus-agent-catchup
 Mark all articles as read (@code{gnus-agent-catchup}) that are neither cached, 
downloaded, nor downloadable.
 
 @item J S
address@hidden J S (Agent Summary)
address@hidden J S @r{(Agent Summary)}
 @findex gnus-agent-fetch-group
 Download all eligible (@pxref{Agent Categories}) articles in this group.
 (@code{gnus-agent-fetch-group}).
 
 @item J s
address@hidden J s (Agent Summary)
address@hidden J s @r{(Agent Summary)}
 @findex gnus-agent-summary-fetch-series
 Download all processable articles in this group.
 (@code{gnus-agent-summary-fetch-series}).
 
 @item J u
address@hidden J u (Agent Summary)
address@hidden J u @r{(Agent Summary)}
 @findex gnus-agent-summary-fetch-group
 Download all downloadable articles in the current group
 (@code{gnus-agent-summary-fetch-group}).
@@ -18908,13 +18899,13 @@ Download all downloadable articles in the current 
group
 
 @table @kbd
 @item J a
address@hidden J a (Agent Server)
address@hidden J a @r{(Agent Server)}
 @findex gnus-agent-add-server
 Add the current server to the list of servers covered by the Gnus Agent
 (@code{gnus-agent-add-server}).
 
 @item J r
address@hidden J r (Agent Server)
address@hidden J r @r{(Agent Server)}
 @findex gnus-agent-remove-server
 Remove the current server from the list of servers covered by the Gnus
 Agent (@code{gnus-agent-remove-server}).
@@ -19015,8 +19006,6 @@ sense if you are using a nntp or nnimap back end.
 
 @vindex gnus-agent-expire-days
 @findex gnus-agent-expire
address@hidden M-x gnus-agent-expire
address@hidden M-x gnus-agent-expire-group
 @findex gnus-agent-expire-group
 @cindex agent expiry
 @cindex Gnus agent expiry
@@ -19070,14 +19059,12 @@ failure.  Running @code{gnus-agent-regenerate} or
 such that you don't need to download these articles a second time.
 
 @findex gnus-agent-regenerate
address@hidden M-x gnus-agent-regenerate
 The command @code{gnus-agent-regenerate} will perform
 @code{gnus-agent-regenerate-group} on every agentized group.  While
 you can run @code{gnus-agent-regenerate} in any buffer, it is strongly
 recommended that you first close all summary buffers.
 
 @findex gnus-agent-regenerate-group
address@hidden M-x gnus-agent-regenerate-group
 The command @code{gnus-agent-regenerate-group} uses the local copies
 of individual articles to repair the local @acronym{NOV}(header) database.  It
 then updates the internal data structures that document which articles
@@ -19463,18 +19450,18 @@ General score commands that don't actually change the 
score file:
 @table @kbd
 
 @item V s
address@hidden V s (Summary)
address@hidden V s @r{(Summary)}
 @findex gnus-summary-set-score
 Set the score of the current article (@code{gnus-summary-set-score}).
 
 @item V S
address@hidden V S (Summary)
address@hidden V S @r{(Summary)}
 @findex gnus-summary-current-score
 Display the score of the current article
 (@code{gnus-summary-current-score}).
 
 @item V t
address@hidden V t (Summary)
address@hidden V t @r{(Summary)}
 @findex gnus-score-find-trace
 Display all score rules that have been used on the current article
 (@code{gnus-score-find-trace}).  In the @file{*Score Trace*} buffer, you
@@ -19483,12 +19470,12 @@ current line and @kbd{f} to format 
(@code{gnus-score-pretty-print}) the
 score file and edit it.
 
 @item V w
address@hidden V w (Summary)
address@hidden V w @r{(Summary)}
 @findex gnus-score-find-favourite-words
 List words used in scoring (@code{gnus-score-find-favourite-words}).
 
 @item V R
address@hidden V R (Summary)
address@hidden V R @r{(Summary)}
 @findex gnus-summary-rescore
 Run the current summary through the scoring process
 (@code{gnus-summary-rescore}).  This might be useful if you're playing
@@ -19496,32 +19483,32 @@ around with your score files behind Gnus' back and 
want to see the
 effect you're having.
 
 @item V c
address@hidden V c (Summary)
address@hidden V c @r{(Summary)}
 @findex gnus-score-change-score-file
 Make a different score file the current
 (@code{gnus-score-change-score-file}).
 
 @item V e
address@hidden V e (Summary)
address@hidden V e @r{(Summary)}
 @findex gnus-score-edit-current-scores
 Edit the current score file (@code{gnus-score-edit-current-scores}).
 You will be popped into a @code{gnus-score-mode} buffer (@pxref{Score
 File Editing}).
 
 @item V f
address@hidden V f (Summary)
address@hidden V f @r{(Summary)}
 @findex gnus-score-edit-file
 Edit a score file and make this score file the current one
 (@code{gnus-score-edit-file}).
 
 @item V F
address@hidden V F (Summary)
address@hidden V F @r{(Summary)}
 @findex gnus-score-flush-cache
 Flush the score cache (@code{gnus-score-flush-cache}).  This is useful
 after editing score files.
 
 @item V C
address@hidden V C (Summary)
address@hidden V C @r{(Summary)}
 @findex gnus-score-customize
 Customize a score file in a visually pleasing manner
 (@code{gnus-score-customize}).
@@ -19533,13 +19520,13 @@ The rest of these commands modify the local score 
file.
 @table @kbd
 
 @item V m
address@hidden V m (Summary)
address@hidden V m @r{(Summary)}
 @findex gnus-score-set-mark-below
 Prompt for a score, and mark all articles with a score below this as
 read (@code{gnus-score-set-mark-below}).
 
 @item V x
address@hidden V x (Summary)
address@hidden V x @r{(Summary)}
 @findex gnus-score-set-expunge-below
 Prompt for a score, and add a score rule to the current score file to
 expunge all articles below this score
@@ -19674,7 +19661,7 @@ Immediately scoring.
 @item
 If you are scoring on @samp{e} (extra) headers, you will then be prompted for
 the header name on which you wish to score.  This must be a header named
-in gnus-extra-headers, and @samp{TAB} completion is available.
+in gnus-extra-headers, and @address@hidden completion is available.
 
 @end enumerate
 
@@ -19709,13 +19696,13 @@ There aren't many of these as yet, I'm afraid.
 @table @kbd
 
 @item W e
address@hidden W e (Group)
address@hidden W e @r{(Group)}
 @findex gnus-score-edit-all-score
 Edit the apply-to-all-groups all.SCORE file.  You will be popped into
 a @code{gnus-score-mode} buffer (@pxref{Score File Editing}).
 
 @item W f
address@hidden W f (Group)
address@hidden W f @r{(Group)}
 @findex gnus-score-flush-cache
 Gnus maintains a cache of score alists to avoid having to reload them
 all the time.  This command will flush the cache
@@ -20199,20 +20186,20 @@ additional commands:
 @table @kbd
 
 @item C-c C-c
address@hidden C-c C-c (Score)
address@hidden C-c C-c @r{(Score)}
 @findex gnus-score-edit-exit
 Save the changes you have made and return to the summary buffer
 (@code{gnus-score-edit-exit}).
 
 @item C-c C-d
address@hidden C-c C-d (Score)
address@hidden C-c C-d @r{(Score)}
 @findex gnus-score-edit-insert-date
 Insert the current date in numerical format
 (@code{gnus-score-edit-insert-date}).  This is really the day number, if
 you were wondering.
 
 @item C-c C-p
address@hidden C-c C-p (Score)
address@hidden C-c C-p @r{(Score)}
 @findex gnus-score-pretty-print
 The adaptive score files are saved in an unformatted fashion.  If you
 intend to read one of these files, you want to @dfn{pretty print} it
@@ -20578,7 +20565,7 @@ Restart Gnus and rebuild your @code{nnml} overview 
files with the
 time if you have much mail.
 
 Now you can score on @samp{To} and @samp{Cc} as ``extra headers'' like
-so: @kbd{I e s p To RET <your name> RET}.
+so: @kbd{I e s p To @key{RET} <your name> @key{RET}}.
 
 See?  Simple.
 
@@ -20765,12 +20752,12 @@ Two summary functions for editing a @sc{gnus} kill 
file:
 @table @kbd
 
 @item M-k
address@hidden M-k (Summary)
address@hidden M-k @r{(Summary)}
 @findex gnus-summary-edit-local-kill
 Edit this group's kill file (@code{gnus-summary-edit-local-kill}).
 
 @item M-K
address@hidden M-K (Summary)
address@hidden M-K @r{(Summary)}
 @findex gnus-summary-edit-global-kill
 Edit the general kill file (@code{gnus-summary-edit-global-kill}).
 @end table
@@ -20780,12 +20767,12 @@ Two group mode functions for editing the kill files:
 @table @kbd
 
 @item M-k
address@hidden M-k (Group)
address@hidden M-k @r{(Group)}
 @findex gnus-group-edit-local-kill
 Edit this group's kill file (@code{gnus-group-edit-local-kill}).
 
 @item M-K
address@hidden M-K (Group)
address@hidden M-K @r{(Group)}
 @findex gnus-group-edit-global-kill
 Edit the general kill file (@code{gnus-group-edit-global-kill}).
 @end table
@@ -21725,7 +21712,7 @@ want.
 @item
 The name of the @strong{back end server} where mairix should store its
 searches.  This must be a full server name, like @code{nnml:mymail}.
-Just hit @kbd{TAB} to see the available servers.  Currently, servers
+Just hit @address@hidden to see the available servers.  Currently, servers
 which are accessed through @code{nnmaildir}, @code{nnimap} and
 @code{nnml} are supported.  As explained above, for locally stored
 mails, this can be an existing server where you store your mails.
@@ -21770,34 +21757,34 @@ In group mode:
 @table @kbd
 
 @item G b c
address@hidden G b c (Group)
address@hidden G b c @r{(Group)}
 @findex nnmairix-create-server-and-default-group
 Creates @code{nnmairix} server and default search group for this server
 (@code{nnmairix-create-server-and-default-group}).  You should have done
 this by now (@pxref{Configuring nnmairix}).
 
 @item G b s
address@hidden G b s (Group)
address@hidden G b s @r{(Group)}
 @findex nnmairix-search
 Prompts for query which is then sent to the mairix binary.  Search
 results are put into the default search group which is automatically
 displayed (@code{nnmairix-search}).
 
 @item G b m
address@hidden G b m (Group)
address@hidden G b m @r{(Group)}
 @findex nnmairix-widget-search
 Allows you to create a mairix search or a permanent group more
 comfortably using graphical widgets, similar to a customization
 group.  Just try it to see how it works (@code{nnmairix-widget-search}).
 
 @item G b i
address@hidden G b i (Group)
address@hidden G b i @r{(Group)}
 @findex nnmairix-search-interactive
 Another command for creating a mairix query more comfortably, but uses
 only the minibuffer (@code{nnmairix-search-interactive}).
 
 @item G b g
address@hidden G b g (Group)
address@hidden G b g @r{(Group)}
 @findex nnmairix-create-search-group
 Creates a permanent group which is associated with a search query
 (@code{nnmairix-create-search-group}).  The @code{nnmairix} back end
@@ -21805,20 +21792,20 @@ automatically calls mairix when you update this group 
with @kbd{g} or
 @kbd{M-g}.
 
 @item G b q
address@hidden G b q (Group)
address@hidden G b q @r{(Group)}
 @findex nnmairix-group-change-query-this-group
 Changes the search query for the @code{nnmairix} group under cursor
 (@code{nnmairix-group-change-query-this-group}).
 
 @item G b t
address@hidden G b t (Group)
address@hidden G b t @r{(Group)}
 @findex nnmairix-group-toggle-threads-this-group
 Toggles the 'threads' parameter for the @code{nnmairix} group under cursor,
 i.e., if you want see the whole threads of the found messages
 (@code{nnmairix-group-toggle-threads-this-group}).
 
 @item G b u
address@hidden G b u (Group)
address@hidden G b u @r{(Group)}
 @findex nnmairix-update-database
 @vindex nnmairix-mairix-update-options
 Calls mairix binary for updating the database
@@ -21828,20 +21815,20 @@ and @code{-Q} for making this as fast as possible 
(see variable
 options).
 
 @item G b r
address@hidden G b r (Group)
address@hidden G b r @r{(Group)}
 @findex nnmairix-group-toggle-readmarks-this-group
 Keep articles in this @code{nnmairix} group always read or unread, or leave the
 marks unchanged (@code{nnmairix-group-toggle-readmarks-this-group}).
 
 @item G b d
address@hidden G b d (Group)
address@hidden G b d @r{(Group)}
 @findex nnmairix-group-delete-recreate-this-group
 Recreate @code{nnmairix} group on the ``real'' mail back end
 (@code{nnmairix-group-delete-recreate-this-group}).  You can do this if
 you always get wrong article counts with a @code{nnmairix} group.
 
 @item G b a
address@hidden G b a (Group)
address@hidden G b a @r{(Group)}
 @findex nnmairix-group-toggle-allowfast-this-group
 Toggles the @code{allow-fast} parameters for group under cursor
 (@code{nnmairix-group-toggle-allowfast-this-group}).  The default
@@ -21853,14 +21840,14 @@ lead to dangling symlinks if something changed 
between updating and
 entering the group which is not yet in the mairix database.
 
 @item G b p
address@hidden G b p (Group)
address@hidden G b p @r{(Group)}
 @findex nnmairix-group-toggle-propmarks-this-group
 Toggle marks propagation for this group
 (@code{nnmairix-group-toggle-propmarks-this-group}).  (@pxref{Propagating
 marks}).
 
 @item G b o
address@hidden G b o (Group)
address@hidden G b o @r{(Group)}
 @findex nnmairix-propagate-marks
 Manually propagate marks (@code{nnmairix-propagate-marks}); needed only when
 @code{nnmairix-propagate-marks-upon-close} is set to @code{nil}.
@@ -21872,21 +21859,21 @@ In summary mode:
 @table @kbd
 
 @item G G m
address@hidden G G m (Summary)
address@hidden G G m @r{(Summary)}
 @findex nnmairix-widget-search-from-this-article
 Allows you to create a mairix query or group based on the current
 message using graphical widgets (same as @code{nnmairix-widget-search})
 (@code{nnmairix-widget-search-from-this-article}).
 
 @item G G g
address@hidden G G g (Summary)
address@hidden G G g @r{(Summary)}
 @findex nnmairix-create-search-group-from-message
 Interactively creates a new search group with query based on the current
 message, but uses the minibuffer instead of graphical widgets
 (@code{nnmairix-create-search-group-from-message}).
 
 @item G G t
address@hidden G G t (Summary)
address@hidden G G t @r{(Summary)}
 @findex nnmairix-search-thread-this-article
 Searches thread for the current article
 (@code{nnmairix-search-thread-this-article}).  This is effectively a
@@ -21894,14 +21881,14 @@ shortcut for calling @code{nnmairix-search} with 
@samp{m:msgid} of the
 current article and enabled threads.
 
 @item G G f
address@hidden G G f (Summary)
address@hidden G G f @r{(Summary)}
 @findex nnmairix-search-from-this-article
 Searches all messages from sender of the current article
 (@code{nnmairix-search-from-this-article}).  This is a shortcut for
 calling @code{nnmairix-search} with @samp{f:From}.
 
 @item G G o
address@hidden G G o (Summary)
address@hidden G G o @r{(Summary)}
 @findex nnmairix-goto-original-article
 (Only in @code{nnmairix} groups!) Tries determine the group this article
 originally came from and displays the article in this group, so that,
@@ -21911,7 +21898,7 @@ function will use the registry if available, but can 
also parse the
 article file name as a fallback method.
 
 @item G G u
address@hidden G G u (Summary)
address@hidden G G u @r{(Summary)}
 @findex nnmairix-remove-tick-mark-original-article
 Remove possibly existing tick mark from original article
 (@code{nnmairix-remove-tick-mark-original-article}).  (@pxref{nnmairix
@@ -22334,7 +22321,7 @@ for instance.  But what if you want to save without 
making a backup
 file, and you want Emacs to flash lights and play a nice tune at the
 same time?  You can't, and you're probably perfectly happy that way.
 
address@hidden M-i (Summary)
address@hidden M-i @r{(Summary)}
 @findex gnus-symbolic-argument
 I'm not, so I've added a second prefix---the @dfn{symbolic prefix}.  The
 prefix key is @kbd{M-i} (@code{gnus-symbolic-argument}), and the next
@@ -22390,7 +22377,6 @@ Currently Gnus uses the following formatting variables:
 All these format variables can also be arbitrary elisp forms.  In that
 case, they will be @code{eval}ed to insert the required lines.
 
address@hidden M-x gnus-update-format
 @findex gnus-update-format
 Gnus includes a command to help you while creating your own format
 specs.  @kbd{M-x gnus-update-format} will @code{eval} the current form,
@@ -24292,10 +24278,10 @@ group:
 @itemx M-d
 @itemx M s x
 @itemx S x
address@hidden $ (Summary)
address@hidden M-d (Summary)
address@hidden S x (Summary)
address@hidden M s x (Summary)
address@hidden $ @r{(Summary)}
address@hidden M-d @r{(Summary)}
address@hidden S x @r{(Summary)}
address@hidden M s x @r{(Summary)}
 @findex gnus-summary-mark-as-spam
 @findex gnus-summary-mark-as-spam
 Mark current article as spam, showing it with the @samp{$} mark
@@ -24567,7 +24553,7 @@ determined by either the @code{ham-process-destination} 
group
 parameter or a match in the @code{gnus-ham-process-destinations}
 variable, which is a list of regular expressions matched with group
 names (it's easiest to customize this variable with @kbd{M-x
-customize-variable @key{RET} gnus-ham-process-destinations}).  Each
+customize-variable @address@hidden gnus-ham-process-destinations}).  Each
 group name list is a standard Lisp list, if you prefer to customize
 the variable manually.  If the @code{ham-process-destination}
 parameter is not set, ham articles are left in place.  If the
@@ -24603,7 +24589,7 @@ When you leave a @emph{ham} or @emph{unclassified} 
group, all
 the @code{spam-process-destination} group parameter or a match in the
 @code{gnus-spam-process-destinations} variable, which is a list of
 regular expressions matched with group names (it's easiest to
-customize this variable with @kbd{M-x customize-variable @key{RET}
+customize this variable with @kbd{M-x customize-variable @address@hidden
 gnus-spam-process-destinations}).  Each group name list is a standard
 Lisp list, if you prefer to customize the variable manually.  If the
 @code{spam-process-destination} parameter is not set, the spam
@@ -26235,7 +26221,7 @@ you to optionally upload your first 
CloudSynchronizationDataPack(TM).
 After setting up, you can use these shortcuts from the Group buffer:
 
 @table @kbd
address@hidden ~ RET
address@hidden ~ @key{RET}
 @item ~ d
 @findex gnus-cloud-download-all-data
 @cindex cloud, download
@@ -26670,7 +26656,6 @@ to stop doing it the old way.
 
 Gnus understands all @sc{gnus} startup files.
 
address@hidden M-x gnus-bug
 @findex gnus-bug
 @cindex reporting bugs
 @cindex bugs
@@ -27749,7 +27734,7 @@ control over simplification.
 limit.
 
 @item
address@hidden is a new Message command for breaking cited text.
address@hidden@key{RET}} is a new Message command for breaking cited text.
 
 @item
 @samp{\\1}-expressions are now valid in @code{nnmail-split-methods}.
@@ -28304,10 +28289,10 @@ Easy inclusion of X-Faces headers.  @xref{X-Face}.
 @item
 Group Carbon Copy (GCC) quoting
 
-To support groups that contains SPC and other weird characters, groups
+To support groups that contains @key{SPC} and other weird characters, groups
 are quoted before they are placed in the Gcc: header.  This means
 variables such as @code{gnus-message-archive-group} should no longer
-contain quote characters to make groups containing SPC work.  Also, if
+contain quote characters to make groups containing @key{SPC} work.  Also, if
 you are using the string @samp{nnml:foo, nnml:bar} (indicating Gcc
 into two groups) you must change it to return the list
 @code{("nnml:foo" "nnml:bar")}, otherwise the Gcc: line will be quoted
@@ -28396,7 +28381,7 @@ Gnus supports @acronym{PGP} (RFC 1991/2440), 
@acronym{PGP/MIME} (RFC
 
 It needs an external @acronym{S/MIME} and OpenPGP implementation, but no
 additional Lisp libraries.  This add several menu items to the
-Attachments menu, and @kbd{C-c RET} key bindings, when composing
+Attachments menu, and @kbd{C-c @key{RET}} key bindings, when composing
 messages.  This also obsoletes @code{gnus-article-hide-pgp-hook}.
 
 @item
@@ -28492,7 +28477,7 @@ message, Message Manual}).
 @item
 The tool bars have been updated to use GNOME icons in Group, Summary and
 Message mode.  You can also customize the tool bars: @kbd{M-x
-customize-apropos RET -tool-bar$} should get you started.  This is a new
+customize-apropos @key{RET} -tool-bar$} should get you started.  This is a new
 feature in Gnus 5.10.10.  (Only for Emacs, not in XEmacs.)
 
 @item The tool bar icons are now (de)activated correctly
@@ -28723,7 +28708,7 @@ commonly fetched via the protocol @acronym{NNTP}, 
whereas mail
 messages could be read from a file on the local disk.  The internal
 architecture of Gnus thus comprises a ``front end'' and a number of
 ``back ends''.  Internally, when you enter a group (by hitting
address@hidden, say), you thereby invoke a function in the front end in
address@hidden@key{RET}}, say), you thereby invoke a function in the front end 
in
 Gnus.  The front end then ``talks'' to a back end and says things like
 ``Give me the list of articles in the foo group'' or ``Show me article
 number 4711''.
@@ -29125,12 +29110,12 @@ If all else fails, report the problem as a bug.
 @cindex bugs
 @cindex reporting bugs
 
address@hidden M-x gnus-bug
 @findex gnus-bug
-If you find a bug in Gnus, you can report it with the @kbd{M-x gnus-bug}
-command.  @kbd{M-x set-variable RET debug-on-error RET t RET}, and send
-me the backtrace.  I will fix bugs, but I can only fix them if you send
-me a precise description as to how to reproduce the bug.
+If you find a bug in Gnus, you can report it with the @kbd{M-x
+gnus-bug} command.  @kbd{M-x set-variable @key{RET} debug-on-error
address@hidden t @key{RET}}, and send me the backtrace.  I will fix bugs,
+but I can only fix them if you send me a precise description as to how
+to reproduce the bug.
 
 You really can never be too detailed in a bug report.  Always use the
 @kbd{M-x gnus-bug} command when you make bug reports, even if it creates
@@ -29163,9 +29148,9 @@ Lisp Reference Manual}).  To get you started with 
edebug, consider if
 you discover some weird behavior when pressing @kbd{c}, the first
 step is to do @kbd{C-h k c} and click on the hyperlink (Emacs only) in
 the documentation buffer that leads you to the function definition,
-then press @kbd{M-x edebug-defun RET} with point inside that function,
+then press @kbd{M-x edebug-defun @key{RET}} with point inside that function,
 return to Gnus and press @kbd{c} to invoke the code.  You will be
-placed in the lisp buffer and can single step using @kbd{SPC} and
+placed in the lisp buffer and can single step using @address@hidden and
 evaluate expressions using @kbd{M-:} or inspect variables using
 @kbd{C-h v}, abort execution with @kbd{q}, and resume execution with
 @kbd{c} or @kbd{g}.
@@ -29183,8 +29168,8 @@ A fancier approach is to use the elisp profiler, 
address@hidden  The profiler is
 (or should be) fully documented elsewhere, but to get you started
 there are a few steps that need to be followed.  First, instrument the
 part of Gnus you are interested in for profiling, e.g., @kbd{M-x
-elp-instrument-package RET gnus} or @kbd{M-x elp-instrument-package
-RET message}.  Then perform the operation that is slow and press
+elp-instrument-package @key{RET} gnus} or @kbd{M-x elp-instrument-package
address@hidden message}.  Then perform the operation that is slow and press
 @kbd{M-x elp-results}.  You will then see which operations that takes
 time, and can debug them further.  If the entire operation takes much
 longer than the time spent in the slowest function in the profiler
diff --git a/doc/misc/htmlfontify.texi b/doc/misc/htmlfontify.texi
index 9f1d1b4..6bc57da 100644
--- a/doc/misc/htmlfontify.texi
+++ b/doc/misc/htmlfontify.texi
@@ -1116,7 +1116,7 @@ Some of the (informal) data structures used in 
Htmlfontify are detailed here:
 @table @code
 
 @item hfy-style-assoc
address@hidden hfy-style-assoc
address@hidden @code{hfy-style-assoc}
 @anchor{hfy-style-assoc}
 
 An assoc representing/describing an Emacs face.  Properties may be repeated,
@@ -1148,7 +1148,7 @@ Some examples:
 @end lisp
 
 @item hfy-sheet-assoc
address@hidden hfy-sheet-assoc
address@hidden @code{hfy-sheet-assoc}
 @anchor{hfy-sheet-assoc}
 
 An assoc with elements of the form @samp{(face-name style-name . 
style-string)}.
@@ -1160,7 +1160,7 @@ The actual stylesheet for each page is derived from one 
of these.
 @end lisp
 
 @item hfy-facemap-assoc
address@hidden hfy-facemap-assoc
address@hidden @code{hfy-facemap-assoc}
 @anchor{hfy-facemap-assoc}
 
 An assoc of @code{(point . @var{face-symbol})} or
diff --git a/doc/misc/idlwave.texi b/doc/misc/idlwave.texi
index c37ca16..204a449 100644
--- a/doc/misc/idlwave.texi
+++ b/doc/misc/idlwave.texi
@@ -172,7 +172,7 @@ Catalogs
 @cindex CORBA (Common Object Request Broker Architecture)
 @cindex Interface Definition Language
 @cindex Interactive Data Language
address@hidden cc-mode.el
address@hidden @file{cc-mode.el}
 @cindex @file{idl.el}
 @cindex @file{idl-shell.el}
 @cindex Feature overview
@@ -935,7 +935,7 @@ IDL code.
 @cindex String splitting
 @cindex Splitting, of lines
 
address@hidden address@hidden
address@hidden M-RET
 In IDL, a newline character terminates a statement unless preceded by a
 @samp{$}.  If you would like to start a continuation line, use
 @address@hidden, which calls the command @code{idlwave-split-line}.
@@ -1523,7 +1523,7 @@ The case-insensitive heading word in doclib headers to 
locate the
 @cindex Function name completion
 @cindex Procedure name completion
 
address@hidden address@hidden
address@hidden M-TAB
 @kindex C-c C-i
 IDLWAVE offers completion for class names, routine names, keywords,
 system variables, system variable tags, class structure tags, regular
@@ -4064,7 +4064,7 @@ sure you check the following things:
 @itemize @bullet
 @item When you download the IDLWAVE distribution, make sure you save the
 file under the names @file{idlwave.tar.gz}.
address@hidden M-TAB switches among running programs---use Esc-TAB
address@hidden address@hidden switches among running programs---use 
@address@hidden
 instead.
 @item Other issues as yet unnamed...
 @end itemize
diff --git a/doc/misc/ido.texi b/doc/misc/ido.texi
index bc37429..098b28e 100644
--- a/doc/misc/ido.texi
+++ b/doc/misc/ido.texi
@@ -456,14 +456,14 @@ You can toggle display of the hidden buffers and files 
with @kbd{C-a}
 You can customize the @code{ido} group to change Ido functionality:
 
 @example
-M-x customize-group RET ido RET
+M-x customize-group @key{RET} ido @key{RET}
 @end example
 
 @noindent
 or customize a certain variable:
 
 @example
-M-x customize-variable RET ido-xxxxx
+M-x customize-variable @key{RET} ido-xxxxx @key{RET}
 @end example
 
 To modify the keybindings, use the @code{ido-setup-hook}.  For example:
diff --git a/doc/misc/mairix-el.texi b/doc/misc/mairix-el.texi
index 906448c..8d620c7 100644
--- a/doc/misc/mairix-el.texi
+++ b/doc/misc/mairix-el.texi
@@ -169,13 +169,13 @@ the updates incrementally and hence is very fast.
 
 First, put @code{mairix.el} in your Emacs search path and put
 @code{(require 'mairix)} into your @file{.emacs} file.  Then, use
address@hidden customize-group mairix RET} to set your preferences for
-mairix.el.  The most important items are @emph{Mairix File Path},
address@hidden Search File} and @emph{Mairix Mail Program}.  The latter
-specifies which mail program should be used to display the mairix search
-results.  Currently, RMail, Gnus with mbox files, and VM are supported.
-If you use Gnus with maildir or mh, use the native Gnus back end
-nnmairix instead.
address@hidden customize-group @key{RET} mairix @key{RET}} to set your
+preferences for mairix.el.  The most important items are @emph{Mairix
+File Path}, @emph{Mairix Search File} and @emph{Mairix Mail Program}.
+The latter specifies which mail program should be used to display the
+mairix search results.  Currently, RMail, Gnus with mbox files, and VM
+are supported.  If you use Gnus with maildir or mh, use the native
+Gnus back end nnmairix instead.
 
 If you use another Emacs mail program which is not yet supported by
 mairix.el, it is pretty easy to integrate it.  @xref{Extending},
@@ -213,7 +213,6 @@ Here's a description of the available interactive functions:
 @table @code
 
 @item mairix-search
address@hidden M-x mairix-search
 @findex mairix-search
 @vindex mairix-search-file
 @vindex mairix-file-path
@@ -229,7 +228,6 @@ is specified by the variable @code{mairix-command}, 
together with the options
 for making searching faster.
 
 @item mairix-widget-search
address@hidden M-x mairix-widget-search
 @findex mairix-widget-search
 @vindex mairix-widget-fields-list
 Creates a mairix query using graphical widgets.  Very handy if you're
@@ -241,28 +239,24 @@ might want to include some other fields.  This can be 
easily done by
 modifying @code{mairix-widget-fields-list}.
 
 @item mairix-widget-search-based-on-article
address@hidden M-x mairix-widget-search-based-on-article
 @findex mairix-widget-search-based-on-article
 Create a mairix query using graphical widgets, but based on the
 currently displayed article, i.e., the available fields will be filled
 with the current header values.
 
 @item mairix-search-from-this-article
address@hidden M-x mairix-search-from-this-article
 @findex mairix-search-from-this-article
 Search messages from sender of the current article.  This is effectively
 a shortcut for calling @code{mairix-search} with @code{f:current_from}.
 If used with a prefix, include whole threads of the found messages.
 
 @item mairix-search-thread-this-article
address@hidden M-x mairix-search-thread-this-article
 @findex mairix-search-thread-this-article
 Search thread for the current article.  This is effectively a shortcut
 for calling @code{mairix-search} with @code{m:msgid} of the current article and
 enabled threads.
 
 @item mairix-save-search
address@hidden M-x mairix-save-search
 @findex mairix-save-search
 Save the last search for future use.  You will have to specify a name
 for the search and will then be asked if you want to save your saved
@@ -272,13 +266,11 @@ your @file{.emacs}.  You can also do this later by using
 @code{mairix-edit-saved-searches}.
 
 @item mairix-use-saved-search
address@hidden M-x mairix-use-saved-search
 @findex mairix-use-saved-search
 Call mairix with a previously saved search.  You will be asked for the
 name of the saved search (use @kbd{TAB} for completion).
 
 @item mairix-edit-saved-searches
address@hidden M-x mairix-edit-saved-searches
 @findex mairix-edit-saved-searches
 Edit your current mairix searches.  This is a simple major mode for
 editing the contents of the variable @code{mairix-saved-searches}.  You
@@ -290,14 +282,12 @@ to open different searches at the same time, or if you 
want to regularly
 access certain searches without the need to call mairix.
 
 @item mairix-edit-saved-searches-customize
address@hidden M-x mairix-edit-saved-searches-customize
 @findex mairix-edit-saved-searches-customize
 Edit the variable @code{mairix-saved-searches} in a normal customization
 buffer.  This function exists more or less for historic reasons, but
 maybe you like it.
 
 @item mairix-update-database
address@hidden M-x mairix-update-database
 @findex mairix-update-database
 @vindex mairix-update-options
 @vindex mairix-synchronous-update
diff --git a/doc/misc/message.texi b/doc/misc/message.texi
index 1ef67fe..0a2a6ce 100644
--- a/doc/misc/message.texi
+++ b/doc/misc/message.texi
@@ -104,7 +104,7 @@ sending it.
 @end menu
 
 You can customize the Message Mode tool bar, see @kbd{M-x
-customize-apropos RET message-tool-bar}.  This feature is only available
+customize-apropos @key{RET} message-tool-bar}.  This feature is only available
 in Emacs.
 
 @node New Mail Message
@@ -707,14 +707,12 @@ This means that if the recipient supports RFC 2298 she 
might send you a
 notification that she received the message.
 
 @item M-x message-insert-importance-high
address@hidden M-x message-insert-importance-high
 @findex message-insert-importance-high
 @cindex Importance
 Insert an @samp{Importance} header with a value of @samp{high},
 deleting headers if necessary.
 
 @item M-x message-insert-importance-low
address@hidden M-x message-insert-importance-low
 @findex message-insert-importance-low
 @cindex Importance
 Insert an @samp{Importance} header with a value of @samp{low}, deleting
@@ -921,7 +919,7 @@ is fully available) @acronym{IDNA} encoding happens 
automatically.
 
 @findex message-idna-to-ascii-rhs
 If you want to experiment with the @acronym{IDNA} encoding, you can
-invoke @kbd{M-x message-idna-to-ascii-rhs RET} in the message buffer
+invoke @kbd{M-x message-idna-to-ascii-rhs @key{RET}} in the message buffer
 to have the address@hidden domain names encoded while you edit
 the message.
 
@@ -1084,7 +1082,7 @@ Since signing and especially encryption often is used 
when sensitive
 information is sent, you may want to have some way to ensure that your
 mail is actually signed or encrypted.  After invoking the above
 sign/encrypt commands, it is possible to preview the raw article by
-using @kbd{C-u C-c RET P} (@code{mml-preview}).  Then you can
+using @kbd{C-u C-c @key{RET} P} (@code{mml-preview}).  Then you can
 verify that your long rant about what your ex-significant other or
 whomever actually did with that funny looking person at that strange
 party the other night, actually will be sent encrypted.
@@ -1176,7 +1174,7 @@ without some kind of configuration.  Especially, you need 
to tell it
 where your private key and your certificate is stored.  @acronym{MML}
 uses an Emacs interface to OpenSSL, aptly named @code{smime.el}, and it
 contain a @code{custom} group used for this configuration.  So, try
address@hidden customize-group RET smime RET} and look around.
address@hidden customize-group @key{RET} smime @key{RET}} and look around.
 
 Currently there is no support for talking to a CA (or RA) to create
 your own certificate.  None is planned either.  You need to do this
@@ -1222,7 +1220,7 @@ according to two different standards, namely 
@acronym{PGP} or
 @node Passphrase caching
 @subsection Passphrase caching
 
address@hidden gpg-agent
address@hidden @command{gpg-agent}
 Message with EasyPG internally calls GnuPG (the @command{gpg} or
 @command{gpgsm} command) to perform
 data encryption, and in certain cases (decrypting or signing for
@@ -1379,7 +1377,7 @@ end of the message (@code{message-kill-to-signature}).
 Delete all text in the body of the message that is outside the region
 (@code{message-delete-not-region}).
 
address@hidden M-RET
address@hidden address@hidden
 @kindex M-RET
 @findex message-newline-and-reformat
 Insert four newlines, and then reformat if inside quoted text.
@@ -1390,7 +1388,7 @@ Here's an example:
 > This is some quoted text.  And here's more quoted text.
 @end example
 
-If point is before @samp{And} and you press @kbd{M-RET}, you'll get:
+If point is before @samp{And} and you press @address@hidden, you'll get:
 
 @example
 > This is some quoted text.
@@ -1408,12 +1406,12 @@ If point is before @samp{And} and you press 
@kbd{M-RET}, you'll get:
 Rename the buffer (@code{message-rename-buffer}).  If given a prefix,
 prompt for a new buffer name.
 
address@hidden TAB
address@hidden @key{TAB}
 @kindex TAB
 @findex message-tab
 @vindex message-tab-body-function
 If @code{message-tab-body-function} is address@hidden, execute the
-function it specifies.  Otherwise use the function bound to @kbd{TAB} in
+function it specifies.  Otherwise use the function bound to @key{TAB} in
 @code{text-mode-map} or @code{global-map}.
 
 @end table
diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi
index 5f0cc32..b44e503 100644
--- a/doc/misc/mh-e.texi
+++ b/doc/misc/mh-e.texi
@@ -442,7 +442,7 @@ either @code{customize-option} or @code{add-hook}.
 @cindex point
 @cindex region
 @kindex C-@@
address@hidden address@hidden
address@hidden C-SPC
 
 There are several other terms that are used in Emacs that you should
 know. The @dfn{point} is where the cursor currently is. You can save
@@ -692,7 +692,6 @@ get the big picture, and then you can read the manual as 
you wish.
 @cindex modes, MH-Letter
 @cindex sending mail
 @findex mh-smail
address@hidden M-x mh-smail
 
 Let's start our tour by sending ourselves a message which we can later
 read and process. Enter @kbd{M-x mh-smail} to invoke the MH-E program
@@ -762,7 +761,6 @@ message. Type @kbd{C-c C-c} now. That's all there is to it!
 @cindex modes, MH-Folder
 @cindex reading mail
 @findex mh-rmail
address@hidden M-x mh-rmail
 
 To read the mail you've just sent yourself, enter @kbd{M-x mh-rmail}.
 This incorporates the new mail and puts the output from
@@ -777,7 +775,6 @@ major mode is MH-Folder.
 
 @findex mh-rmail
 @kindex F r
address@hidden M-x mh-rmail
 
 @sp 1
 @center @strong{NOTE}
@@ -790,7 +787,7 @@ use @kbd{F r} to pull all your messages into MH-E.
 @end quotation
 @sp 1
 
address@hidden @key{RET}
address@hidden RET
 @kindex n
 @kindex p
 
@@ -820,8 +817,8 @@ This is a test message to get the wheels churning...
 @end cartouche
 @i{After incorporating new messages}
 
address@hidden @key{DEL}
address@hidden @key{SPC}
address@hidden DEL
address@hidden SPC
 
 If you typed a long message, you can view subsequent pages with
 @key{SPC} and previous pages with @key{DEL}.
@@ -830,7 +827,7 @@ If you typed a long message, you can view subsequent pages 
with
 @section Processing Mail
 
 @cindex processing mail
address@hidden @key{RET}
address@hidden RET
 @kindex r
 
 The first thing we want to do is reply to the message that we sent
@@ -883,7 +880,7 @@ Type C-c C-c to send message, C-c ? for help
 @kindex C-f
 @kindex C-n
 @kindex C-p
address@hidden @key{BS}
address@hidden BS
 
 By default, MH will not add you to the address list of your replies,
 so if you find that the @samp{To:} header field is missing, don't
@@ -898,7 +895,7 @@ editing your message, send it with @kbd{C-c C-c} as before.
 @cindex @command{refile}
 @cindex MH commands, @command{refile}
 @cindex folders
address@hidden @key{SPC}
address@hidden SPC
 @kindex o
 
 You'll often want to save messages that were sent to you in an
@@ -918,7 +915,7 @@ in a moment.
 @cindex modes, MH-Folder
 @kindex d
 @kindex i
address@hidden @key{RET}
address@hidden RET
 @kindex n
 @kindex p
 @kindex x
@@ -935,7 +932,6 @@ command.
 
 @findex mh-smail
 @kindex m
address@hidden M-x mh-smail
 
 If you want to send another message you can use @kbd{m} instead of
 @kbd{M-x mh-smail}. So go ahead, send some mail to your friends!
@@ -970,7 +966,6 @@ perform any refiles and deletes that you did there.
 @findex mh-rmail
 @kindex C-x b
 @kindex C-x k
address@hidden M-x mh-rmail
 @kindex q
 
 If you don't want to leave Emacs, you can type @kbd{q} to bury (hide)
@@ -1228,7 +1223,7 @@ Many commands that operate on individual messages, such as
 @code{mh-forward} or @code{mh-refile-msg} take a @code{RANGE}
 argument. This argument can be used in several ways.
 
address@hidden C-u, with ranges
address@hidden address@hidden, with ranges}
 
 If you provide the prefix argument @kbd{C-u} to these commands, then
 you will be prompted for the message range. This can be any valid MH
@@ -1552,7 +1547,6 @@ the message numbers from outside of MH-E.
 @findex mh-rmail
 @kindex F r
 @kindex F v
address@hidden M-x mh-rmail
 
 The MH-E entry point for reading mail is @kbd{M-x mh-rmail}. This
 command incorporates your mail and creates a buffer called
@@ -1592,38 +1586,38 @@ Display cheat sheet for the MH-E commands 
(@code{mh-help}).
 @c -------------------------
 @cindex @samp{Message > Show Message} menu item
 @cindex menu item, @samp{Message > Show Message}
address@hidden @key{RET}
address@hidden RET
 @findex mh-show
 @item @key{RET}
 Display message (@code{mh-show}).
 @c -------------------------
 @cindex @samp{Message > Show Message with Header} menu item
 @cindex menu item, @samp{Message > Show Message with Header}
address@hidden , (comma)
address@hidden , @r{(comma)}
 @findex mh-header-display
 @item , (comma)
 Display message with all header fields (@code{mh-header-display}).
 @c -------------------------
 @cindex @samp{Message > Show Message with Preferred Alternative} menu item
 @cindex menu item, @samp{Message > Show Message with Preferred Alternative}
address@hidden : (colon)
address@hidden : @r{(colon)}
 @findex mh-show-preferred-alternative
 @item : (colon)
 Display message with the default preferred alternative
 (@code{mh-show-preferred-alternative}).
 @c -------------------------
address@hidden ; (semicolon)
address@hidden ; @r{(semicolon)}
 @findex mh-toggle-mh-decode-mime-flag
 @item ; (semicolon)
 Toggle the value of @code{mh-decode-mime-flag}
 (@code{mh-toggle-mh-decode-mime-flag}).
 @c -------------------------
address@hidden @key{SPC}
address@hidden SPC
 @findex mh-page-msg
 @item @key{SPC}
 Display next page in message (@code{mh-page-msg}).
 @c -------------------------
address@hidden @key{BS}
address@hidden BS
 @findex mh-previous-page
 @item @key{BS}
 Display previous page in message (@code{mh-previous-page}).
@@ -1661,12 +1655,12 @@ Delete range (@code{mh-delete-msg}).
 Display cheat sheet for the commands of the current prefix in
 minibuffer (@code{mh-prefix-help}).
 @c -------------------------
address@hidden D @key{SPC}
address@hidden D SPC
 @findex mh-page-digest
 @item D @key{SPC}
 Display next message in digest (@code{mh-page-digest}).
 @c -------------------------
address@hidden D @key{BS}
address@hidden D BS
 @findex mh-page-digest-backwards
 @item D @key{BS}
 Display previous message in digest (@code{mh-page-digest-backwards}).
@@ -1697,12 +1691,12 @@ Delete messages with same subject or thread
 Display cheat sheet for the commands of the current prefix in
 minibuffer (@code{mh-prefix-help}).
 @c -------------------------
address@hidden K @key{TAB}
address@hidden K TAB
 @findex mh-next-button
 @item K @key{TAB}
 Go to the next button (@code{mh-next-button}).
 @c -------------------------
address@hidden K address@hidden
address@hidden K S-TAB
 @findex mh-prev-button
 @item K address@hidden
 Go to the previous button (@code{mh-prev-button}).
@@ -1844,7 +1838,7 @@ Move point to mouse event and show message 
(@code{mh-show-mouse}).
 Within the MH-Show buffer, the following command is defined.
 
 @table @kbd
address@hidden @key{RET}
address@hidden RET
 @kindex mouse-1
 @kindex mouse-2
 @findex mh-press-button
@@ -2017,11 +2011,11 @@ detail in the following sections.
 @findex mh-previous-page
 @findex mh-show
 @findex mh-show-mouse
address@hidden , (comma)
address@hidden . (period)
address@hidden @key{BS}
address@hidden @key{RET}
address@hidden @key{SPC}
address@hidden , @r{(comma)}
address@hidden . @r{(period)}
address@hidden BS
address@hidden RET
address@hidden SPC
 @kindex mouse-2
 
 The command @key{RET} (@code{mh-show}) displays the message that the
@@ -2101,9 +2095,9 @@ Emacs 21 and XEmacs. For more information, see
 @uref{http://quimby.gnus.org/circus/face/}.}.
 
 @cindex @command{uncompface}
address@hidden Emacs, packages, x-face
address@hidden Emacs, packages, @samp{x-face}
 @cindex Unix commands, @command{uncompface}
address@hidden x-face package
address@hidden @samp{x-face} package
 @vindex mh-show-xface
 
 Next is the traditional @samp{X-Face:} header address@hidden
@@ -2200,7 +2194,7 @@ highlighting of citations entirely, choose @samp{None}.
 @cindex highlighting email addresses
 @cindex links, following
 @findex goto-address-at-point
address@hidden C-c @key{RET}
address@hidden C-c RET
 @kindex mouse-2
 @vindex goto-address-highlight-p
 
@@ -2306,10 +2300,10 @@ System: type @kbd{M-! xterm -e mhshow 
@var{message-number}}. You can
 leave out the @samp{xterm -e} if you use @command{mhlist} or
 @command{mhstore}.}.
 
address@hidden Emacs, packages, mm-decode
address@hidden mm-decode package
address@hidden Emacs, packages, @samp{mm-decode}
address@hidden @samp{mm-decode} package
 @findex mh-toggle-mh-decode-mime-flag
address@hidden ; (semicolon)
address@hidden ; @r{(semicolon)}
 @vindex mh-decode-mime-flag
 
 MH-E can handle attachments as well if the Gnus @samp{mm-decode}
@@ -2334,9 +2328,9 @@ Attachments in MH-E are indicated by @dfn{buttons} like 
this:
 @findex mh-next-button
 @findex mh-press-button
 @findex mh-prev-button
address@hidden @key{RET}
address@hidden K @key{TAB}
address@hidden K address@hidden
address@hidden RET
address@hidden K TAB
address@hidden K S-TAB
 @kindex mouse-1
 @kindex mouse-2
 
@@ -2490,7 +2484,7 @@ the option @code{mm-discouraged-alternatives}, and add
 @samp{text/html}. The next best alternative, if any, will be shown.
 
 @findex mh-show-preferred-alternative
address@hidden : (colon)
address@hidden : @r{(colon)}
 
 Occasionally, though, you might want to see the preferred alternative.
 The command @kbd{:} (@code{mh-show-preferred-alternative}) displays
@@ -2688,10 +2682,10 @@ buffer, including HTML buffers.
 @cindex digests
 @findex mh-page-digest
 @findex mh-page-digest-backwards
address@hidden D @key{BS}
address@hidden D @key{SPC}
address@hidden @key{BS}
address@hidden @key{SPC}
address@hidden D BS
address@hidden D SPC
address@hidden BS
address@hidden SPC
 
 A digest is a message that contains other messages. Special MH-E
 commands let you read digests conveniently. You can use @key{SPC} and
@@ -2904,8 +2898,8 @@ Another related function is the command @kbd{P F}
 faces and not. When faces are enabled, the printed message will look
 very similar to the message in the MH-Show buffer.
 
address@hidden ps-print package
address@hidden Emacs, packages, ps-print
address@hidden @samp{ps-print} package
address@hidden Emacs, packages, @samp{ps-print}
 
 MH-E uses the @samp{ps-print} package to do the printing, so you can
 customize the printing further by going to the @samp{ps-print}
@@ -2995,7 +2989,7 @@ like to change the initial default directory, customize 
the option
 directory for storing the content of these messages.
 
 @findex mh-store-buffer
address@hidden @key{RET}
address@hidden RET
 @kindex X s
 
 By the way, @kbd{X s} calls the Emacs Lisp function
@@ -3045,7 +3039,7 @@ message with @kbd{M-<} (@code{mh-first-msg}) and @kbd{M->}
 @findex previous-line
 @kindex C-n
 @kindex C-p
address@hidden @key{RET}
address@hidden RET
 
 You can also use the Emacs commands @kbd{C-p} (@code{previous-line})
 and @kbd{C-n} (@code{next-line}) to move up and down the scan lines in
@@ -3746,7 +3740,7 @@ The command @kbd{F p} runs @code{mh-pack-folder-hook} 
after
 renumbering the messages. A variable that is useful with this hook
 is @code{mh-current-folder}.
 
address@hidden @key{TAB}
address@hidden TAB
 @vindex mh-recursive-folders-flag
 
 By default, operations on folders work only one level at a time. Set
@@ -3850,16 +3844,15 @@ buffers that you would rather remove, you can use both
 
 You can use dired to manipulate the folders themselves. For example, I
 renamed my @samp{+out} folder to the more common @samp{+outbox} by
-running dired on my mail directory (@kbd{M-x dired RET ~/Mail RET}),
-moving my cursor to @samp{out} and using the command @kbd{R}
-(@code{dired-do-rename}).
+running dired on my mail directory (@kbd{M-x dired @key{RET} ~/Mail
address@hidden), moving my cursor to @samp{out} and using the command
address@hidden (@code{dired-do-rename}).
 
 @node Sending Mail, Editing Drafts, Folders, Top
 @chapter Sending Mail
 
 @cindex sending mail
 @findex mh-smail
address@hidden M-x mh-smail
 
 You can send a mail message in several ways. You can call @kbd{M-x
 mh-smail} directly, or from the command line like this:
@@ -4027,8 +4020,6 @@ more detail in the following sections.
 @cindex sending mail
 @findex mh-smail
 @findex mh-smail-other-window
address@hidden M-x mh-smail
address@hidden M-x mh-smail-other-window
 
 Outside of an MH-Folder buffer, you must call either @kbd{M-x
 mh-smail} or @kbd{M-x mh-smail-other-window} to compose a new message.
@@ -4390,28 +4381,28 @@ commands in addition to the normal Emacs editing 
commands to help you
 edit your draft. These can also be found in the @samp{Letter} menu.
 
 @table @kbd
address@hidden @key{SPC}
address@hidden SPC
 @findex mh-letter-complete-or-space
 @item @key{SPC}
 Perform completion or insert space (@code{mh-letter-complete-or-space}).
 @c -------------------------
address@hidden address@hidden
address@hidden M-TAB
 @findex mh-letter-complete
 @item address@hidden
 Perform completion on header field or word preceding point
 (@code{mh-letter-complete}).
 @c -------------------------
address@hidden , (comma)
address@hidden , @r{(comma)}
 @findex mh-letter-confirm-address
 @item , (comma)
 Flash alias expansion (@code{mh-letter-confirm-address}).
 @c -------------------------
address@hidden @key{TAB}
address@hidden TAB
 @findex mh-letter-next-header-field-or-indent
 @item @key{TAB}
 Cycle to next field (@code{mh-letter-next-header-field-or-indent}).
 @c -------------------------
address@hidden address@hidden
address@hidden S-TAB
 @findex mh-letter-previous-header-field
 @item address@hidden
 Cycle to the previous header field
@@ -4816,8 +4807,8 @@ draft. @xref{Folder Selection}.
 @findex indent-relative
 @findex mh-letter-next-header-field-or-indent
 @findex mh-letter-previous-header-field
address@hidden @key{TAB}
address@hidden address@hidden
address@hidden TAB
address@hidden S-TAB
 @vindex mh-compose-skipped-header-fields
 @vindex mh-letter-header-field
 
@@ -4842,9 +4833,9 @@ take point to the last field from anywhere in the body.
 @findex mh-letter-complete
 @findex mh-letter-complete-or-space
 @findex mh-letter-confirm-address
address@hidden , (comma)
address@hidden @key{SPC}
address@hidden address@hidden
address@hidden , @r{(comma)}
address@hidden SPC
address@hidden M-TAB
 @vindex mh-alias-flash-on-comma
 @vindex mh-compose-space-does-completion-flag
 @vindex mh-letter-complete-function
@@ -4997,8 +4988,8 @@ You can also turn on the 
@code{mh-delete-yanked-msg-window-flag}
 option to delete the window containing the original message after
 yanking it to make more room on your screen for your reply.
 
address@hidden Emacs, packages, supercite
address@hidden supercite package
address@hidden Emacs, packages, @samp{supercite}
address@hidden @samp{supercite} package
 @kindex r
 @vindex mail-citation-hook
 @vindex mh-yank-behavior
@@ -5061,8 +5052,8 @@ and it should leave point and mark around the modified 
citation text
 for the next hook function. The standard prefix
 @code{mh-ins-buf-prefix} is not added if this hook is set.
 
address@hidden Emacs, packages, trivial-cite
address@hidden trivial-cite package
address@hidden Emacs, packages, @samp{trivial-cite}
address@hidden @samp{trivial-cite} package
 @vindex mh-yank-behavior
 
 For example, if you use the hook function
@@ -5499,7 +5490,7 @@ 
LyogWFBNICovCnN0YXRpYyBjaGFyICogc2V0aWF0aG9tZV94cG1bXSA9IHsKIjQ1IDQ1IDc2N
 @end cartouche
 @i{MH-E @sc{mime} draft ready to send}
 
address@hidden undo effects of mh-mml-to-mime
address@hidden undo effects of @code{mh-mml-to-mime}
 
 This action can be undone by running @kbd{C-_} (@code{undo}).
 
@@ -5507,7 +5498,7 @@ This action can be undone by running @kbd{C-_} 
(@code{undo}).
 @cindex @command{mhn}
 @cindex MH commands, @command{mhbuild}
 @cindex MH commands, @command{mhn}
address@hidden undo effects of mh-mh-to-mime
address@hidden undo effects of @code{mh-mh-to-mime}
 @findex mh-mh-to-mime
 @findex mh-mh-to-mime-undo
 @kindex C-c C-e
@@ -5723,12 +5714,12 @@ The following commands are available in MH-Letter mode 
with the
 exception of @code{mh-alias-reload} which can be called from anywhere.
 
 @table @kbd
address@hidden @key{SPC}
address@hidden SPC
 @findex mh-letter-complete-or-space
 @item @key{SPC}
 Perform completion or insert space (@code{mh-letter-complete-or-space}).
 @c -------------------------
address@hidden address@hidden
address@hidden M-TAB
 @findex mh-letter-complete
 @item address@hidden
 Perform completion on header field or word preceding point
@@ -5800,7 +5791,7 @@ Hook run by @code{mh-alias-reload} after loading aliases 
(default:
 You can use aliases when you are adding recipients to a message.
 
 @findex minibuffer-complete
address@hidden @key{TAB}
address@hidden TAB
 @vindex mh-alias-expand-aliases-flag
 @vindex mh-compose-prompt-flag
 
@@ -5814,8 +5805,8 @@ aliases to be expanded to their respective addresses in 
the draft.
 
 @findex mh-letter-complete
 @findex mh-letter-complete-or-space
address@hidden @key{SPC}
address@hidden address@hidden
address@hidden SPC
address@hidden M-TAB
 
 Otherwise, you can complete aliases in the header of the draft with
 @address@hidden (@code{mh-letter-complete}) or @key{SPC}
@@ -5934,7 +5925,6 @@ executed to generate the password file. For example, use 
@samp{ypcat
 passwd} to obtain the NIS password file.
 
 @findex mh-alias-reload
address@hidden M-x mh-alias-reload
 @vindex mh-alias-reloaded-hook
 
 Since aliases are updated frequently, MH-E reloads aliases
@@ -5950,7 +5940,6 @@ listed in your @samp{Aliasfile:} profile component. MH-E 
provides
 other methods for maintaining your alias file(s).
 
 @findex mh-alias-add-alias
address@hidden M-x mh-alias-add-alias
 
 You can use the @kbd{M-x mh-alias-add-alias} command which will prompt
 you for the alias and address that you would like to add. If the alias
@@ -5985,8 +5974,8 @@ Using prefixes instead of postfixes helps you explore 
aliases during
 completion. If you forget the name of an old dive buddy, you can enter
 @samp{div} and then @key{SPC} to get a listing of all your dive buddies.
 
address@hidden M-x mh-alias-add-address-under-point
address@hidden M-x mh-alias-grab-from-field
address@hidden mh-alias-add-address-under-point
address@hidden mh-alias-grab-from-field
 
 An alias for the sender of the current message is added automatically
 by clicking on the @samp{Grab From alias} tool bar button or by running
@@ -6021,7 +6010,6 @@ more appropriate.
 
 @cindex regular expressions, @code{mh-alias-apropos}
 @findex mh-alias-apropos
address@hidden M-x mh-alias-apropos
 
 If you can't quite remember an alias, you can use @kbd{M-x
 mh-alias-apropos} to show all aliases or addresses that match a
@@ -6280,8 +6268,8 @@ containing the value for the field is given.
 @cindex folder navigation
 @cindex speedbar
 @findex mh-visit-folder
address@hidden speedbar
 @kindex F v
address@hidden M-x speedbar
 @kindex mouse-2
 
 You can also use the speedbar
@@ -6623,12 +6611,12 @@ Another few commands are available in the MH-Folder 
buffer resulting
 from a search.
 
 @table @kbd
address@hidden @key{TAB}
address@hidden TAB
 @findex mh-index-next-folder
 @item @key{TAB}
 Jump to the next folder marker (@code{mh-index-next-folder}).
 @c -------------------------
address@hidden address@hidden
address@hidden S-TAB
 @findex mh-index-previous-folder
 @item address@hidden
 Jump to the previous folder marker (@code{mh-index-previous-folder}).
@@ -6773,8 +6761,8 @@ method with the pick method by running the command 
@kbd{C-c C-p}
 @cindex @samp{+mhe-index}
 @findex mh-index-next-folder
 @findex mh-index-previous-folder
address@hidden @key{TAB}
address@hidden address@hidden
address@hidden TAB
address@hidden S-TAB
 @vindex mh-search-folder
 
 The messages that are found are put in a temporary sub-folder of
@@ -7514,7 +7502,6 @@ Mail}).
 @cindex sequence, @samp{cur}
 @cindex sequence, @samp{tick}
 @findex mh-update-sequences
address@hidden M-x mh-update-sequences
 @kindex q
 @kindex x
 @vindex mh-tick-seq
@@ -8001,7 +7988,7 @@ system.
 @cindex MH-E version
 @cindex @file{*MH-E Info*}
 @cindex version
address@hidden M-x mh-version
address@hidden mh-version
 
 One command worth noting is @kbd{M-x mh-version}. You can compare the
 version this command prints to the latest release (@pxref{Getting
@@ -8716,7 +8703,7 @@ I also point out some additional sources of information.
 
 @cindex bugs
 @cindex SourceForge
address@hidden M-x mh-version
address@hidden mh-version
 
 Bug reports should be filed at
 @uref{https://sourceforge.net/p/mh-e/bugs/, SourceForge}. You need to
@@ -8792,7 +8779,7 @@ instead.
 @cindex news
 @cindex @samp{MH-E-NEWS}
 @cindex @samp{README}
address@hidden M-x mh-version
address@hidden mh-version
 
 After you download and extract the MH-E tarball, read the
 @file{README} file and @file{MH-E-NEWS}. These correspond to the
diff --git a/doc/misc/newsticker.texi b/doc/misc/newsticker.texi
index 43d248b..ac29ced 100644
--- a/doc/misc/newsticker.texi
+++ b/doc/misc/newsticker.texi
@@ -239,17 +239,17 @@ The position of groups and feeds within the tree can be 
changed with these
 commands:
 
 @table @kbd
address@hidden M-up
address@hidden M-down
address@hidden M-up
address@hidden M-down
address@hidden address@hidden
address@hidden address@hidden
address@hidden M-UP
address@hidden M-DOWN
 @findex newsticker-group-shift-feed-up
 @findex newsticker-group-shift-feed-down
 Shift the currently selected feed up and down within its group.
address@hidden M-S-up
address@hidden M-S-down
address@hidden M-S-up
address@hidden M-S-down
address@hidden address@hidden
address@hidden address@hidden
address@hidden M-S-UP
address@hidden M-S-DOWN
 @findex newsticker-group-shift-group-up
 @findex newsticker-group-shift-group-down
 Shift the currently selected group up and down within its parent group.
@@ -397,8 +397,8 @@ Mark current item as immortal.  Immortal items are kept 
forever.
 @table @kbd
 @cindex Get News
 @item v
address@hidden RET
address@hidden <mouse-1>
address@hidden @key{RET}
address@hidden mouse-1
 @findex newsticker-treeview-browse-url
 Open the link to the full article (as contained in the current
 headline) in your web browser @code{newsticker-treeview-browse-url}).
diff --git a/doc/misc/org.texi b/doc/misc/org.texi
index 1793190..4434636 100644
--- a/doc/misc/org.texi
+++ b/doc/misc/org.texi
@@ -749,7 +749,7 @@ Specific header arguments
 
 Miscellaneous
 
-* Completion::                  M-TAB guesses completions
+* Completion::                  address@hidden guesses completions
 * Easy templates::              Quick insertion of structural elements
 * Speed keys::                  Electric commands at the beginning of a 
headline
 * Code evaluation security::    Org mode files evaluate inline code
@@ -884,7 +884,8 @@ We @b{strongly recommend} to stick to a single installation 
method.
 @subsubheading Using Emacs packaging system
 
 Recent Emacs distributions include a packaging system which lets you install
-Elisp libraries.  You can install Org with @kbd{M-x package-install RET org}.
+Elisp libraries.  You can install Org with @kbd{M-x package-install @key{RET}
+org}.
 
 @noindent @b{Important}: you need to do this in a session where no @code{.org} 
file has
 been visited, i.e., where no Org built-in function have been loaded.
@@ -1011,10 +1012,10 @@ version of Org available---if you are running an 
outdated version, it is
 quite possible that the bug has been fixed already.  If the bug persists,
 prepare a report and provide as much information as possible, including the
 version information of Emacs (@kbd{M-x emacs-version @key{RET}}) and Org
-(@kbd{M-x org-version RET}), as well as the Org related setup in the Emacs
-init file.  The easiest way to do this is to use the command
+(@kbd{M-x org-version @key{RET}}), as well as the Org related setup in the
+Emacs init file.  The easiest way to do this is to use the command
 @example
address@hidden org-submit-bug-report RET}
address@hidden org-submit-bug-report @key{RET}}
 @end example
 @noindent which will put all this information into an Emacs mail buffer so
 that you only need to add your description.  If you are not sending the Email
@@ -1074,7 +1075,7 @@ Reload uncompiled versions of all Org mode Lisp files.  
The backtrace
 contains much more information if it is produced with uncompiled code.
 To do this, use
 @example
address@hidden M-x org-reload RET}
address@hidden M-x org-reload @key{RET}}
 @end example
 @noindent
 or select @code{Org -> Refresh/Reload -> Reload Org uncompiled} from the
@@ -1134,7 +1135,7 @@ accessing a functionality.  Org mode often uses the same 
key for different
 functions, depending on context.  The command that is bound to such keys has
 a generic name, like @code{org-metaright}.  In the manual we will, wherever
 possible, give the function that is internally called by the generic command.
-For example, in the chapter on document structure, @address@hidden will
+For example, in the chapter on document structure, @address@hidden will
 be listed to call @code{org-do-demote}, while in the chapter on tables, it
 will be listed to call @code{org-table-move-column-right}.  If you prefer,
 you can compile the manual without the command names by unsetting the flag
@@ -1340,9 +1341,9 @@ following lines anywhere in the buffer:
 #+STARTUP: showeverything
 @end example
 
address@hidden property, VISIBILITY
address@hidden property, @code{VISIBILITY}
 @noindent
-Furthermore, any entries with a @samp{VISIBILITY} property (@pxref{Properties
+Furthermore, any entries with a @code{VISIBILITY} property (@pxref{Properties
 and columns}) will get their visibility adapted accordingly.  Allowed values
 for this property are @code{folded}, @code{children}, @code{content}, and
 @code{all}.
@@ -1350,7 +1351,7 @@ for this property are @code{folded}, @code{children}, 
@code{content}, and
 @table @asis
 @orgcmd{C-u C-u @key{TAB},org-set-startup-visibility}
 Switch back to the startup visibility of the buffer, i.e., whatever is
-requested by startup options and @samp{VISIBILITY} properties in individual
+requested by startup options and @code{VISIBILITY} properties in individual
 entries.
 @end table
 
@@ -1390,7 +1391,7 @@ you can use the following keys to find your destination:
 @vindex org-goto-auto-isearch
 @example
 @key{TAB}         @r{Cycle visibility.}
address@hidden / @key{up}   @r{Next/previous visible headline.}
address@hidden / @key{UP}   @r{Next/previous visible headline.}
 @key{RET}         @r{Select this location.}
 @kbd{/}           @r{Do a Sparse-tree search}
 @r{The following keys work if you turn off @code{org-goto-auto-isearch}}
@@ -1451,18 +1452,18 @@ In a new entry with no text yet, the first @key{TAB} 
demotes the entry to
 become a child of the previous one.  The next @key{TAB} makes it a parent,
 and so on, all the way to top level.  Yet another @key{TAB}, and you are back
 to the initial level.
address@hidden@key{left},org-do-promote}
address@hidden@key{LEFT},org-do-promote}
 Promote current heading by one level.
address@hidden@key{right},org-do-demote}
address@hidden@key{RIGHT},org-do-demote}
 Demote current heading by one level.
address@hidden@key{left},org-promote-subtree}
address@hidden@key{LEFT},org-promote-subtree}
 Promote the current subtree by one level.
address@hidden@key{right},org-demote-subtree}
address@hidden@key{RIGHT},org-demote-subtree}
 Demote the current subtree by one level.
address@hidden@key{up},org-move-subtree-up}
address@hidden@key{UP},org-move-subtree-up}
 Move subtree up (swap with previous subtree of same
 level).
address@hidden@key{down},org-move-subtree-down}
address@hidden@key{DOWN},org-move-subtree-down}
 Move subtree down (swap with next subtree of same level).
 @orgcmd{M-h,org-mark-element}
 Mark the element at point.  Hitting repeatedly will mark subsequent elements
@@ -1728,10 +1729,10 @@ one.
 @end table
 
 @table @kbd
address@hidden address@hidden
address@hidden M-S-RET
 @item address@hidden
 Insert a new item with a checkbox (@pxref{Checkboxes}).
address@hidden address@hidden
address@hidden S-DOWN
 @item S-up
 @itemx S-down
 @cindex shift-selection-mode
@@ -1741,25 +1742,25 @@ Jump to the previous/next item in the current 
address@hidden you want to
 cycle around items that way, you may customize
 @code{org-list-use-circular-motion}.}, but only if
 @code{org-support-shift-select} is off.  If not, you can still use paragraph
-jumping commands like @address@hidden and @address@hidden to quite
+jumping commands like @address@hidden and @address@hidden to quite
 similar effect.
address@hidden address@hidden
address@hidden address@hidden
address@hidden M-UP
address@hidden M-DOWN
 @item M-up
 @itemx M-down
 Move the item including subitems up/address@hidden
 @code{org-list-use-circular-motion} for a cyclic behavior.} (swap with
 previous/next item of same indentation).  If the list is ordered, renumbering
 is automatic.
address@hidden address@hidden
address@hidden address@hidden
address@hidden M-LEFT
address@hidden M-RIGHT
 @item M-left
 @itemx M-right
 Decrease/increase the indentation of an item, leaving children alone.
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden M-S-LEFT
address@hidden M-S-RIGHT
address@hidden address@hidden
address@hidden address@hidden
 Decrease/increase the indentation of the item, including subitems.
 Initially, the item tree is selected based on current indentation.  When
 these commands are executed several times in direct succession, the initially
@@ -1797,9 +1798,9 @@ its location).  @xref{Structure editing}, for a detailed 
explanation.
 Turn the whole plain list into a subtree of the current heading.  Checkboxes
 (@pxref{Checkboxes}) will become TODO (resp. DONE) keywords when unchecked
 (resp. checked).
address@hidden address@hidden
address@hidden address@hidden
address@hidden S-left/right
address@hidden S-LEFT
address@hidden S-RIGHT
address@hidden address@hidden/@key{RIGHT}
 @vindex org-support-shift-select
 This command also cycles bullet styles when the cursor in on the bullet or
 anywhere in an item line, details depending on
@@ -1817,7 +1818,7 @@ or by a custom function.
 @cindex drawers
 @cindex visibility cycling, drawers
 
address@hidden org-insert-drawer
address@hidden @code{org-insert-drawer}
 @kindex C-c C-x d
 Sometimes you want to keep information associated with an entry, but you
 normally don't want to see it.  For this, Org mode has @emph{drawers}.  They
@@ -1873,7 +1874,7 @@ export output.  Property drawers are not affected by this 
variable: configure
 Org mode uses begin...end blocks for various purposes from including source
 code examples (@pxref{Literal examples}) to capturing time logging
 information (@pxref{Clocking work time}).  These blocks can be folded and
-unfolded by pressing TAB in the begin line.  You can also get all blocks
+unfolded by pressing @key{TAB} in the begin line.  You can also get all blocks
 folded at startup by configuring the option @code{org-hide-block-startup}
 or on a per-file basis by using
 
@@ -1997,7 +1998,7 @@ a separate window.  The window can be closed by pressing 
@kbd{C-c '}.
 If you like the intuitive way the Org mode structure editing and list
 formatting works, you might want to use these commands in other modes like
 Text mode or Mail mode as well.  The minor mode @code{orgstruct-mode} makes
-this possible.   Toggle the mode with @kbd{M-x orgstruct-mode RET}, or
+this possible.   Toggle the mode with @kbd{M-x orgstruct-mode @key{RET}}, or
 turn it on by default, for example in Message mode, with one of:
 
 @lisp
@@ -2038,7 +2039,7 @@ file falls into one of the categories above.
 To explore the abstract structure of an Org buffer, run this in a buffer:
 
 @lisp
-M-: (org-element-parse-buffer) RET
+M-: (org-element-parse-buffer) @key{RET}
 @end lisp
 
 It will output a list containing the buffer's content represented as an
@@ -2132,10 +2133,10 @@ table.  But it is easier just to start typing, like
 @orgcmd{C-c C-c,org-table-align}
 Re-align the table and don't move to another field.
 @c
address@hidden SPC,org-table-blank-field}
address@hidden @key{SPC},org-table-blank-field}
 Blank the field at point.
 @c
address@hidden,org-table-next-field}
address@hidden@key{TAB},org-table-next-field}
 Re-align the table, move to the next field.  Creates a new row if
 necessary.
 @c
@@ -2153,22 +2154,22 @@ Move to beginning of the current table field, or on to 
the previous field.
 Move to end of the current table field, or on to the next field.
 
 @tsubheading{Column and row editing}
address@hidden@key{left},address@hidden,org-table-move-column-left,org-table-move-column-right}
address@hidden@key{LEFT},address@hidden,org-table-move-column-left,org-table-move-column-right}
 Move the current column left/right.
 @c
address@hidden@key{left},org-table-delete-column}
address@hidden@key{LEFT},org-table-delete-column}
 Kill the current column.
 @c
address@hidden@key{right},org-table-insert-column}
address@hidden@key{RIGHT},org-table-insert-column}
 Insert a new column to the left of the cursor position.
 @c
address@hidden@key{up},address@hidden,org-table-move-row-up,org-table-move-row-down}
address@hidden@key{UP},address@hidden,org-table-move-row-up,org-table-move-row-down}
 Move the current row up/down.
 @c
address@hidden@key{up},org-table-kill-row}
address@hidden@key{UP},org-table-kill-row}
 Kill the current row or horizontal line.
 @c
address@hidden@key{down},org-table-insert-row}
address@hidden@key{DOWN},org-table-insert-row}
 Insert a new row above the current row.  With a prefix argument, the line is
 created below the current one.
 @c
@@ -2250,7 +2251,7 @@ window follow the cursor through the table and always 
show the current
 field.  The follow mode exits automatically when the cursor leaves the table,
 or when you repeat this command with @kbd{C-u C-u C-c `}.
 @c
address@hidden M-x org-table-import RET
address@hidden M-x org-table-import @key{RET}
 Import a file as a table.  The table should be TAB or whitespace
 separated.  Use, for example, to import a spreadsheet table or data
 from a database, because these programs generally can write
@@ -2263,7 +2264,7 @@ Tables can also be imported by pasting tabular text into 
the Org
 buffer, selecting the pasted text with @kbd{C-x C-x} and then using the
 @kbd{C-c |} command (see above under @i{Creation and conversion}).
 @c
address@hidden M-x org-table-export RET
address@hidden M-x org-table-export @key{RET}
 @findex org-table-export
 @vindex org-table-export-default-format
 Export the table, by default as a TAB-separated file.  Use for data
@@ -2388,11 +2389,11 @@ every vertical line you would like to have:
 @cindex Orgtbl mode
 @cindex minor mode for tables
 
-If you like the intuitive way the Org table editor works, you
-might also want to use it in other modes like Text mode or Mail mode.
-The minor mode Orgtbl mode makes this possible.  You can always toggle
-the mode with @kbd{M-x orgtbl-mode RET}.  To turn it on by default, for
-example in Message mode, use
+If you like the intuitive way the Org table editor works, you might also want
+to use it in other modes like Text mode or Mail mode.  The minor mode Orgtbl
+mode makes this possible.  You can always toggle the mode with @kbd{M-x
+orgtbl-mode @key{RET}}.  To turn it on by default, for example in Message
+mode, use
 
 @lisp
 (add-hook 'message-mode-hook 'turn-on-orgtbl)
@@ -2565,7 +2566,7 @@ rows/columns.
 @cindex references, named
 @cindex name, of column or field
 @cindex constants, in calculations
address@hidden #+CONSTANTS
address@hidden @code{#+CONSTANTS}
 
 @vindex org-table-formula-constants
 @samp{$name} is interpreted as the name of a column, parameter or
@@ -2602,7 +2603,7 @@ numbers.
 @cindex references, to a different table
 @cindex name, of column or field
 @cindex constants, in calculations
address@hidden #+NAME, for table
address@hidden @code{#+NAME}, for table
 
 You may also reference constants, fields and ranges from a different table,
 either in the current file or even in a different file.  The syntax is
@@ -2824,8 +2825,8 @@ preceded by @samp{:=}, for example 
@samp{:=vsum(@@II..III)}.  When you press
 the formula will be stored as the formula for this field, evaluated, and the
 current field will be replaced with the result.
 
address@hidden #+TBLFM
-Formulas are stored in a special line starting with @samp{#+TBLFM:} directly
address@hidden @code{#+TBLFM}
+Formulas are stored in a special line starting with @code{#+TBLFM:} directly
 below the table.  If you type the equation in the 4th field of the 3rd data
 line in the table, the formula will look like @samp{@@3$4=$1+$2}.  When
 inserting/deleting/swapping columns and rows with the appropriate commands,
@@ -2843,7 +2844,7 @@ command
 @table @kbd
 @orgcmd{C-u C-c =,org-table-eval-formula}
 Install a new formula for the current field.  The command prompts for a
-formula with default taken from the @samp{#+TBLFM:} line, applies
+formula with default taken from the @code{#+TBLFM:} line, applies
 it to the current field, and stores it.
 @end table
 
@@ -2890,7 +2891,7 @@ the formula will be stored as the formula for the current 
column, evaluated
 and the current field replaced with the result.  If the field contains only
 @samp{=}, the previously stored formula for this column is used.  For each
 column, Org will only remember the most recently used formula.  In the
address@hidden:} line, column formulas will look like @samp{$4=$1+$2}.  The
address@hidden:} line, column formulas will look like @samp{$4=$1+$2}.  The
 left-hand side of a column formula cannot be the name of column, it must be
 the numeric column reference or @code{$>}.
 
@@ -2901,7 +2902,7 @@ following command:
 @orgcmd{C-c =,org-table-eval-formula}
 Install a new formula for the current column and replace current field with
 the result of the formula.  The command prompts for a formula, with default
-taken from the @samp{#+TBLFM} line, applies it to the current field and
+taken from the @code{#+TBLFM} line, applies it to the current field and
 stores it.  With a numeric prefix argument(e.g., @kbd{C-5 C-c =}) the command
 will apply it to that many consecutive fields in the current column.
 @end table
@@ -3012,22 +3013,22 @@ formula, @key{TAB} re-indents just like in Emacs Lisp 
mode.
 Complete Lisp symbols, just like in Emacs Lisp address@hidden desktops
 intercept @address@hidden to switch windows.  Use @kbd{C-M-i} or
 @address@hidden @key{TAB}} instead for completion (@pxref{Completion}).}
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden S-UP
address@hidden S-DOWN
address@hidden S-LEFT
address@hidden S-RIGHT
 @findex org-table-fedit-ref-up
 @findex org-table-fedit-ref-down
 @findex org-table-fedit-ref-left
 @findex org-table-fedit-ref-right
address@hidden address@hidden/@key{down}/@key{left}/@key{right}
address@hidden address@hidden/@key{DOWN}/@key{LEFT}/@key{RIGHT}
 Shift the reference at point.  For example, if the reference is
address@hidden and you press @address@hidden, it will become @code{C3}.
address@hidden and you press @address@hidden, it will become @code{C3}.
 This also works for relative references and for hline references.
address@hidden@key{up},address@hidden,org-table-fedit-line-up,org-table-fedit-line-down}
address@hidden@key{UP},address@hidden,org-table-fedit-line-up,org-table-fedit-line-down}
 Move the test line for column formulas in the Org buffer up and
 down.
address@hidden@key{up},address@hidden,org-table-fedit-scroll-down,org-table-fedit-scroll-up}
address@hidden@key{UP},address@hidden,org-table-fedit-scroll-down,org-table-fedit-scroll-up}
 Scroll the window displaying the table.
 @kindex C-c @}
 @findex org-table-toggle-coordinate-overlays
@@ -3037,25 +3038,25 @@ Turn the coordinate grid in the table on and off.
 @end table
 
 Making a table field blank does not remove the formula associated with
-the field, because that is stored in a different line (the @samp{#+TBLFM}
+the field, because that is stored in a different line (the @code{#+TBLFM}
 line)---during the next recalculation the field will be filled again.
 To remove a formula from a field, you have to give an empty reply when
-prompted for the formula, or to edit the @samp{#+TBLFM} line.
+prompted for the formula, or to edit the @code{#+TBLFM} line.
 
 @kindex C-c C-c
-You may edit the @samp{#+TBLFM} directly and re-apply the changed
+You may edit the @code{#+TBLFM} directly and re-apply the changed
 equations with @kbd{C-c C-c} in that line or with the normal
 recalculation commands in the table.
 
 @anchor{Using multiple #+TBLFM lines}
address@hidden Using multiple #+TBLFM lines
address@hidden #+TBLFM line, multiple
address@hidden #+TBLFM
address@hidden #+TBLFM, switching
address@hidden Using multiple @code{#+TBLFM} lines
address@hidden @code{#+TBLFM} line, multiple
address@hidden @code{#+TBLFM}
address@hidden @code{#+TBLFM}, switching
 @kindex C-c C-c
 
 You may apply the formula temporarily.  This is useful when you
-switch the formula.  Place multiple @samp{#+TBLFM} lines right
+switch the formula.  Place multiple @code{#+TBLFM} lines right
 after the table, and then press @kbd{C-c C-c} on the formula to
 apply.  Here is an example:
 
@@ -3082,7 +3083,7 @@ Pressing @kbd{C-c C-c} in the line of @samp{#+TBLFM: 
$2=$1*2} yields:
 
 @noindent
 Note: If you recalculate this table (with @kbd{C-u C-c *}, for example), you
-will get the following result of applying only the first @samp{#+TBLFM} line.
+will get the following result of applying only the first @code{#+TBLFM} line.
 
 @example
 | x | y |
@@ -3131,10 +3132,10 @@ hline are left alone, assuming that these are part of 
the table header.
 Iterate the table by recomputing it until no further changes occur.
 This may be necessary if some computed fields use the value of other
 fields that are computed @i{later} in the calculation sequence.
address@hidden M-x org-table-recalculate-buffer-tables RET
address@hidden M-x org-table-recalculate-buffer-tables @key{RET}
 @findex org-table-recalculate-buffer-tables
 Recompute all tables in the current buffer.
address@hidden M-x org-table-iterate-buffer-tables RET
address@hidden M-x org-table-iterate-buffer-tables @key{RET}
 @findex org-table-iterate-buffer-tables
 Iterate all tables in the current buffer, in order to converge table-to-table
 dependencies.
@@ -3249,7 +3250,7 @@ functions.
 @section Org-Plot
 @cindex graph, in tables
 @cindex plot tables using Gnuplot
address@hidden #+PLOT
address@hidden @code{#+PLOT}
 
 Org-Plot can produce graphs of information stored in org tables, either
 graphically or in ASCII-art.
@@ -3432,7 +3433,7 @@ internal structure of all links, use the menu entry
 @cindex links, internal
 @cindex targets, for links
 
address@hidden property, CUSTOM_ID
address@hidden property, @code{CUSTOM_ID}
 If the link does not look like a URL, it is considered to be internal in the
 current file.  The most important case is a link like
 @samp{[[#my-custom-id]]} which will link to the entry with the
@@ -3448,7 +3449,7 @@ point to the corresponding headline.  The preferred match 
for a text link is
 a @i{dedicated target}: the same string in double angular brackets, like
 @samp{<<My Target>>}.
 
address@hidden #+NAME
address@hidden @code{#+NAME}
 If no dedicated target exists, the link will then try to match the exact name
 of an element within the buffer.  Naming is done with the @code{#+NAME}
 keyword, which has to be put in the line before the element it refers to, as
@@ -3640,8 +3641,8 @@ removed from the link and result in a wrong link---you 
should avoid putting
 timestamp in the headline.}.
 
 @vindex org-id-link-to-org-use-id
address@hidden property, CUSTOM_ID
address@hidden property, ID
address@hidden property, @code{CUSTOM_ID}
address@hidden property, @code{ID}
 If the headline has a @code{CUSTOM_ID} property, a link to this custom ID
 will be stored.  In addition or alternatively (depending on the value of
 @code{org-id-link-to-org-use-id}), a globally unique @code{ID} property will
@@ -3708,7 +3709,7 @@ becomes the default description.
 @b{Inserting stored address@hidden
 All links stored during the
 current session are part of the history for this prompt, so you can access
-them with @key{up} and @key{down} (or @kbd{M-p/n}).
+them with @key{UP} and @key{DOWN} (or @kbd{M-p/n}).
 
 @b{Completion address@hidden Completion with @key{TAB} will help you to insert
 valid link prefixes like @samp{https:}, including the prefixes
@@ -3883,7 +3884,7 @@ what the Org author is doing besides Emacs hacking with
 If you need special abbreviations just for a single Org buffer, you
 can define them in the file with
 
address@hidden #+LINK
address@hidden @code{#+LINK}
 @example
 #+LINK: bugzilla  http://10.1.2.9/bugzilla/show_bug.cgi?id=
 #+LINK: google    http://www.google.com/search?q=%s
@@ -4041,9 +4042,9 @@ completion; otherwise force cycling through TODO states 
with no prompt.  When
 @code{org-use-fast-todo-selection} is set to @code{prefix}, use the fast
 selection interface.
 
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden @ @r{/} @ address@hidden
address@hidden S-RIGHT
address@hidden S-LEFT
address@hidden address@hidden @ @r{/} @ address@hidden
 @vindex org-treat-S-cursor-todo-selection-as-state-change
 Select the following/preceding TODO state, similar to cycling.  Useful
 mostly if more than two TODO states are possible (@pxref{TODO
@@ -4124,7 +4125,7 @@ With this setup, the command @kbd{C-c C-t} will cycle an 
entry from TODO
 to FEEDBACK, then to VERIFY, and finally to DONE and address@hidden  You may
 also use a numeric prefix argument to quickly select a specific state.  For
 example @kbd{C-3 C-c C-t} will change the state immediately to address@hidden
-Or you can use @address@hidden to go backward through the sequence.  If you
+Or you can use @address@hidden to go backward through the sequence.  If you
 define many keywords, you can use in-buffer completion
 (@pxref{Completion}) or even a special one-key selection scheme
 (@pxref{Fast access to TODO states}) to insert these words into the
@@ -4190,23 +4191,23 @@ select the correct sequence.  Besides the obvious ways 
like typing a
 keyword or using completion, you may also apply the following commands:
 
 @table @kbd
address@hidden address@hidden
address@hidden address@hidden
address@hidden C-S-RIGHT
address@hidden C-S-LEFT
 @kindex C-u C-u C-c C-t
 @item C-u C-u C-c C-t
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
 These keys jump from one TODO subset to the next.  In the above example,
address@hidden C-u C-c C-t} or @address@hidden would jump from @code{TODO} or
address@hidden C-u C-c C-t} or @address@hidden would jump from @code{TODO} or
 @code{DONE} to @code{REPORT}, and any of the words in the second row to
 @code{CANCELED}.  Note that the @kbd{C-S-} key binding conflict with
 @code{shift-selection-mode} (@pxref{Conflicts}).
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden@key{left}} and @address@hidden and walk through @emph{all}
-keywords from all sets, so for example @address@hidden would switch
address@hidden S-RIGHT
address@hidden S-LEFT
address@hidden address@hidden
address@hidden address@hidden
address@hidden@key{LEFT}} and @address@hidden and walk through @emph{all}
+keywords from all sets, so for example @address@hidden would switch
 from @code{DONE} to @code{REPORT} in the example above.  See also
 @ref{Conflicts}, for a discussion of the interaction with
 @code{shift-selection-mode}.
@@ -4229,8 +4230,8 @@ each keyword, in address@hidden characters are allowed 
except
 @end lisp
 
 @vindex org-fast-tag-selection-include-todo
-If you then press @kbd{C-c C-t} followed by the selection key, the entry
-will be switched to this state.  @kbd{SPC} can be used to remove any TODO
+If you then press @kbd{C-c C-t} followed by the selection key, the entry will
+be switched to this state.  @address@hidden can be used to remove any TODO
 keyword from an address@hidden also the option
 @code{org-fast-tag-selection-include-todo}, it allows you to change the TODO
 state through the tags interface (@pxref{Setting tags}), in case you like to
@@ -4241,9 +4242,9 @@ unique keys across both sets of keywords.}
 @subsection Setting up keywords for individual files
 @cindex keyword options
 @cindex per-file keywords
address@hidden #+TODO
address@hidden #+TYP_TODO
address@hidden #+SEQ_TODO
address@hidden @code{#+TODO}
address@hidden @code{#+TYP_TODO}
address@hidden @code{#+SEQ_TODO}
 
 It can be very useful to use different aspects of the TODO mechanism in
 different files.  For file-local settings, you need to add special lines to
@@ -4269,7 +4270,7 @@ A setup for using several sets in parallel would be:
 @end example
 
 @cindex completion, of option keywords
address@hidden address@hidden
address@hidden M-TAB
 @noindent To make sure you are using the correct keyword, type
 @samp{#+} into the buffer and then use @address@hidden completion.
 
@@ -4318,7 +4319,7 @@ foreground or a background color.
 @cindex TODO dependencies, NOBLOCKING
 
 @vindex org-enforce-todo-dependencies
address@hidden property, ORDERED
address@hidden property, @code{ORDERED}
 The structure of Org files (hierarchy and lists) makes it easy to define TODO
 dependencies.  Usually, a parent TODO task should not be marked DONE until
 all subtasks (defined as children tasks) are marked as address@hidden  And 
sometimes
@@ -4357,7 +4358,7 @@ property:
 @table @kbd
 @orgcmd{C-c C-x o,org-toggle-ordered-property}
 @vindex org-track-ordered-property-with-tag
address@hidden property, ORDERED
address@hidden property, @code{ORDERED}
 Toggle the @code{ORDERED} property of the current entry.  A property is used
 for this behavior because this should be local to the current entry, not
 inherited like a tag.  However, if you would like to @i{track} the value of
@@ -4419,7 +4420,7 @@ Then each time you turn an entry from a TODO (not-done) 
state into any of the
 DONE states, a line @samp{CLOSED: [timestamp]} will be inserted just after
 the headline.  If you turn the entry back into a TODO item through further
 state cycling, that line will be removed again.  If you turn the entry back
-to a non-TODO state (by pressing @key{C-c C-t SPC} for example), that line
+to a non-TODO state (by pressing @key{C-c C-t @key{SPC}} for example), that 
line
 will also be removed, unless you set @code{org-closed-keep-when-no-todo} to
 address@hidden  If you want to record a note along with the timestamp,
 address@hidden corresponding in-buffer setting is: @code{#+STARTUP:
@@ -4439,7 +4440,7 @@ the entry with a @samp{Closing Note} heading.
 
 @vindex org-log-states-order-reversed
 @vindex org-log-into-drawer
address@hidden property, LOG_INTO_DRAWER
address@hidden property, @code{LOG_INTO_DRAWER}
 When TODO keywords are used as workflow states (@pxref{Workflow states}), you
 might want to keep track of when a state change occurred and maybe take a
 note about this change.  You can either record just a timestamp, or a
@@ -4449,8 +4450,8 @@ headline as an itemized list, newest address@hidden the 
option
 want to get the notes out of the way into a drawer (@pxref{Drawers}).
 Customize @code{org-log-into-drawer} to get this behavior---the recommended
 drawer for this is called @address@hidden that the
address@hidden drawer is unfolded when pressing @key{SPC} in the agenda to
-show an entry---use @key{C-u SPC} to keep it folded here}.  You can also
address@hidden drawer is unfolded when pressing @address@hidden in the agenda to
+show an entry---use @kbd{C-u @key{SPC}} to keep it folded here}.  You can also
 overrule the setting of this variable for a subtree by setting a
 @code{LOG_INTO_DRAWER} property.
 
@@ -4493,12 +4494,12 @@ to a buffer:
 #+TODO: TODO(t) WAIT(w@@/!) | DONE(d!) CANCELED(c@@)
 @end example
 
address@hidden property, LOGGING
-In order to define logging settings that are local to a subtree or a
-single item, define a LOGGING property in this entry.  Any non-empty
-LOGGING property resets all logging settings to @code{nil}.  You may then turn
-on logging for this specific tree using STARTUP keywords like
address@hidden or @code{logrepeat}, as well as adding state specific
address@hidden property, @code{LOGGING}
+In order to define logging settings that are local to a subtree or a single
+item, define a @code{LOGGING} property in this entry.  Any non-empty
address@hidden property resets all logging settings to @code{nil}.  You may
+then turn on logging for this specific tree using @code{#+STARTUP} keywords
+like @code{lognotedone} or @code{logrepeat}, as well as adding state specific
 settings like @code{TODO(!)}.  For example
 
 @example
@@ -4642,7 +4643,7 @@ items.
 
 @table @kbd
 @item @kbd{C-c ,}
address@hidden @kbd{C-c ,}
address@hidden C-c ,
 @findex org-priority
 Set the priority of the current headline (@command{org-priority}).  The
 command prompts for a priority character @samp{A}, @samp{B} or @samp{C}.
@@ -4650,7 +4651,7 @@ When you press @key{SPC} instead, the priority cookie is 
removed from the
 headline.  The priorities can also be changed ``remotely'' from the agenda
 buffer with the @kbd{,} command (@pxref{Agenda commands}).
 @c
address@hidden@key{up},address@hidden,org-priority-up,org-priority-down}
address@hidden@key{UP},address@hidden,org-priority-up,org-priority-down}
 @vindex org-priority-start-cycle-with-default
 Increase/decrease priority of current address@hidden also the option
 @code{org-priority-start-cycle-with-default}.}.  Note that these keys are
@@ -4669,7 +4670,7 @@ these values (highest, lowest, default) like this (please 
make sure that
 the highest priority is earlier in the alphabet than the lowest
 priority):
 
address@hidden #+PRIORITIES
address@hidden @code{#+PRIORITIES}
 @example
 #+PRIORITIES: A C B
 @end example
@@ -4698,7 +4699,7 @@ be updated each time the TODO status of a child changes, 
or when pressing
 ** DONE Talk to neighbor
 @end example
 
address@hidden property, COOKIE_DATA
address@hidden property, @code{COOKIE_DATA}
 If a heading has both checkboxes and TODO children below it, the meaning of
 the statistics cookie become ambiguous.  Set the property
 @code{COOKIE_DATA} to either @samp{checkbox} or @samp{todo} to resolve
@@ -4770,7 +4771,7 @@ checked.
 
 @cindex statistics, for checkboxes
 @cindex checkbox statistics
address@hidden property, COOKIE_DATA
address@hidden property, @code{COOKIE_DATA}
 @vindex org-checkbox-hierarchical-statistics
 The @samp{[2/4]} and @samp{[1/3]} in the first and second line are cookies
 indicating how many checkboxes present in this entry have been checked off,
@@ -4792,7 +4793,7 @@ to either @samp{checkbox} or @samp{todo} to resolve this 
issue.
 
 @cindex blocking, of checkboxes
 @cindex checkbox blocking
address@hidden property, ORDERED
address@hidden property, @code{ORDERED}
 If the current outline node has an @code{ORDERED} property, checkboxes must
 be checked off in sequence, and an error will be thrown if you try to check
 off a box while there are unchecked boxes above it.
@@ -4829,7 +4830,7 @@ Insert a new item with a checkbox.  This works only if 
the cursor is already
 in a plain list item (@pxref{Plain lists}).
 @orgcmd{C-c C-x o,org-toggle-ordered-property}
 @vindex org-track-ordered-property-with-tag
address@hidden property, ORDERED
address@hidden property, @code{ORDERED}
 Toggle the @code{ORDERED} property of the entry, to toggle if checkboxes must
 be checked off in sequence.  A property is used for this behavior because
 this should be local to the current entry, not inherited like a tag.
@@ -4897,7 +4898,7 @@ a hypothetical level zero that surrounds the entire file. 
 Use a line like
 address@hidden with all these in-buffer settings, pressing @kbd{C-c C-c}
 activates any changes in the line.}:
 
address@hidden #+FILETAGS
address@hidden @code{#+FILETAGS}
 @example
 #+FILETAGS: :Peter:Boss:Secret:
 @end example
@@ -4931,7 +4932,7 @@ can really speed up agenda generation.
 @cindex setting tags
 @cindex tags, setting
 
address@hidden address@hidden
address@hidden M-TAB
 Tags can simply be typed into the buffer at the end of a headline.
 After a colon, @address@hidden offers completion on tags.  There is
 also a special command for inserting tags:
@@ -4959,7 +4960,7 @@ currently used in the buffer.  You may also globally 
specify a hard list
 of tags with the variable @code{org-tag-alist}.  Finally you can set
 the default tags for a given file with lines like
 
address@hidden #+TAGS
address@hidden @code{#+TAGS}
 @example
 #+TAGS: @@work @@home @@tennisclub
 #+TAGS: laptop car pc sailboat
@@ -4978,7 +4979,7 @@ If you have a preferred set of tags that you would like 
to use in every file,
 in addition to those defined on a per-file basis by TAGS option lines, then
 you may specify a list of tags with the variable
 @code{org-tag-persistent-alist}.  You may turn this off on a per-file basis
-by adding a STARTUP option line to that file:
+by adding a @code{#+STARTUP} option line to that file:
 
 @example
 #+STARTUP: noptag
@@ -5062,17 +5063,17 @@ will turn off any other tags from that group.
 In this interface, you can also use the following special keys:
 
 @table @kbd
address@hidden @key{TAB}
address@hidden TAB
 @item @key{TAB}
 Enter a tag in the minibuffer, even if the tag is not in the predefined
 list.  You will be able to complete on all tags present in the buffer.
 You can also add several tags: just separate them with a comma.
 
address@hidden @key{SPC}
address@hidden SPC
 @item @key{SPC}
 Clear all tags for this line.
 
address@hidden @key{RET}
address@hidden RET
 @item @key{RET}
 Accept the modified set.
 
@@ -5328,8 +5329,8 @@ publishers and the number of disks in a box like this:
 
 If you want to set properties that can be inherited by any entry in a
 file, use a line like
address@hidden property, _ALL
address@hidden #+PROPERTY
address@hidden property, @code{_ALL}
address@hidden @code{#+PROPERTY}
 @example
 #+PROPERTY: NDisks_ALL 1 2 3 4
 @end example
@@ -5340,7 +5341,7 @@ buffer with @kbd{C-c C-c} to activate this change.
 If you want to add to the value of an existing property, append a @code{+} to
 the property name.  The following results in the property @code{var} having
 the value ``foo=1 bar=2''.
address@hidden property, +
address@hidden property, @code{+}
 @example
 #+PROPERTY: var  foo=1
 #+PROPERTY: var+ bar=2
@@ -5349,7 +5350,7 @@ the value ``foo=1 bar=2''.
 It is also possible to add to the values of inherited properties.  The
 following results in the @code{genres} property having the value ``Classic
 Baroque'' under the @code{Goldberg Variations} subtree.
address@hidden property, +
address@hidden property, @code{+}
 @example
 * CD collection
 ** Classic
@@ -5383,8 +5384,8 @@ in the current file will be offered as possible 
completions.
 @orgcmd{C-c C-x p,org-set-property}
 Set a property.  This prompts for a property name and a value.  If
 necessary, the property drawer is created as well.
address@hidden C-u M-x org-insert-drawer RET
address@hidden org-insert-drawer
address@hidden C-u M-x org-insert-drawer @key{RET}
address@hidden @code{org-insert-drawer}
 Insert a property drawer into the current entry.  The drawer will be
 inserted early in the entry, but after the lines with planning
 information like deadlines.
@@ -5393,7 +5394,7 @@ With the cursor in a property drawer, this executes 
property commands.
 @orgcmd{C-c C-c s,org-set-property}
 Set a property in the current entry.  Both the property and the value
 can be inserted using completion.
address@hidden@key{right},address@hidden,org-property-next-allowed-value,org-property-previous-allowed-value}
address@hidden@key{RIGHT},address@hidden,org-property-next-allowed-value,org-property-previous-allowed-value}
 Switch property at point to the next/previous allowed value.
 @orgcmd{C-c C-c d,org-delete-property}
 Remove a property from the current entry.
@@ -5415,20 +5416,20 @@ a column view (@pxref{Column view}), or to use them in 
queries.  The
 following property names are special and should not be used as keys in the
 properties drawer:
 
address@hidden property, special, ALLTAGS
address@hidden property, special, BLOCKED
address@hidden property, special, CLOCKSUM
address@hidden property, special, CLOCKSUM_T
address@hidden property, special, CLOSED
address@hidden property, special, DEADLINE
address@hidden property, special, FILE
address@hidden property, special, ITEM
address@hidden property, special, PRIORITY
address@hidden property, special, SCHEDULED
address@hidden property, special, TAGS
address@hidden property, special, TIMESTAMP
address@hidden property, special, TIMESTAMP_IA
address@hidden property, special, TODO
address@hidden property, special, @code{ALLTAGS}
address@hidden property, special, @code{BLOCKED}
address@hidden property, special, @code{CLOCKSUM}
address@hidden property, special, @code{CLOCKSUM_T}
address@hidden property, special, @code{CLOSED}
address@hidden property, special, @code{DEADLINE}
address@hidden property, special, @code{FILE}
address@hidden property, special, @code{ITEM}
address@hidden property, special, @code{PRIORITY}
address@hidden property, special, @code{SCHEDULED}
address@hidden property, special, @code{TAGS}
address@hidden property, special, @code{TIMESTAMP}
address@hidden property, special, @code{TIMESTAMP_IA}
address@hidden property, special, @code{TODO}
 @example
 ALLTAGS      @r{All tags, including inherited ones.}
 BLOCKED      @r{"t" if task is currently blocked by children or siblings.}
@@ -5508,7 +5509,7 @@ search will stop at this value and return @code{nil}.
 Org mode has a few properties for which inheritance is hard-coded, at
 least for the special applications for which they are used:
 
address@hidden property, COLUMNS
address@hidden property, @code{COLUMNS}
 @table @code
 @item COLUMNS
 The @code{:COLUMNS:} property defines the format of column view
@@ -5517,16 +5518,16 @@ where a @code{:COLUMNS:} property is defined is used as 
the starting
 point for a column view table, independently of the location in the
 subtree from where columns view is turned on.
 @item CATEGORY
address@hidden property, CATEGORY
address@hidden property, @code{CATEGORY}
 For agenda view, a category set through a @code{:CATEGORY:} property
 applies to the entire subtree.
 @item ARCHIVE
address@hidden property, ARCHIVE
address@hidden property, @code{ARCHIVE}
 For archiving, the @code{:ARCHIVE:} property may define the archive
 location for the entire subtree (@pxref{Moving subtrees}).
 @item LOGGING
address@hidden property, LOGGING
-The LOGGING property may define logging settings for an entry or a
address@hidden property, @code{LOGGING}
+The @code{LOGGING} property may define logging settings for an entry or a
 subtree (@pxref{Tracking TODO state changes}).
 @end table
 
@@ -5571,7 +5572,7 @@ done by defining a column format line.
 
 To define a column format for an entire file, use a line like
 
address@hidden #+COLUMNS
address@hidden @code{#+COLUMNS}
 @example
 #+COLUMNS: %25ITEM %TAGS %PRIORITY %TODO
 @end example
@@ -5723,17 +5724,17 @@ Same as @kbd{r}.
 @orgcmd{q,org-columns-quit}
 Exit column view.
 @tsubheading{Editing values}
address@hidden @key{left} @key{right} @key{up} @key{down}
address@hidden @key{LEFT} @key{RIGHT} @key{UP} @key{DOWN}
 Move through the column view from field to field.
address@hidden address@hidden
address@hidden address@hidden
address@hidden  address@hidden/@key{right}
address@hidden S-LEFT
address@hidden S-RIGHT
address@hidden  address@hidden/@key{RIGHT}
 Switch to the next/previous allowed value of the field.  For this, you
 have to have specified allowed values for a property.
 @item 1..9,0
 Directly select the Nth allowed value, @kbd{0} selects the 10th value.
 
@orgcmdkkcc{n,p,org-columns-next-allowed-value,org-columns-previous-allowed-value}
-Same as @address@hidden/@key{right}}
+Same as @address@hidden/@key{RIGHT}}
 @orgcmd{e,org-columns-edit-value}
 Edit the property at point.  For the special properties, this will
 invoke the same interface that you normally use to change that
@@ -5752,9 +5753,9 @@ current column view.
 @tsubheading{Modifying the table structure}
 @orgcmdkkcc{<,>,org-columns-narrow,org-columns-widen}
 Make the column narrower/wider by one character.
address@hidden@key{right},org-columns-new}
address@hidden@key{RIGHT},org-columns-new}
 Insert a new column, to the left of the current column.
address@hidden@key{left},org-columns-delete}
address@hidden@key{LEFT},org-columns-delete}
 Delete the current column.
 @end table
 
@@ -5766,7 +5767,7 @@ exported or printed directly.  If you want to capture a 
column view, use
 a @code{columnview} dynamic block (@pxref{Dynamic blocks}).  The frame
 of this block looks like this:
 
address@hidden #+BEGIN, columnview
address@hidden @code{#+BEGIN}, columnview
 @example
 * The column view
 #+BEGIN: columnview :hlines 1 :id "label"
@@ -5782,7 +5783,7 @@ This is the most important parameter.  Column view is a 
feature that is
 often localized to a certain (sub)tree, and the capture block might be
 at a different location in the file.  To identify the tree whose view to
 capture, you can use 4 values:
address@hidden property, ID
address@hidden property, @code{ID}
 @example
 local     @r{use the tree in which the capture block is located}
 global    @r{make a global view, including all headings in the file}
@@ -5790,7 +5791,7 @@ global    @r{make a global view, including all headings 
in the file}
           @r{run column view at the top of this file}
 "@var{ID}"      @r{call column view in the tree that has an @code{:ID:}}
           @r{property with the value @i{label}.  You can use}
-          @address@hidden org-id-copy RET} to create a globally unique ID for}
+          @address@hidden org-id-copy @key{RET}} to create a globally unique 
@code{ID} for}
           @r{the current entry and copy it to the kill-ring.}
 @end example
 @item :hlines
@@ -5814,7 +5815,7 @@ The following commands insert or update the dynamic block:
 @table @kbd
 @orgcmd{C-c C-x i,org-insert-columns-dblock}
 Insert a dynamic block capturing a column view.  You will be prompted
-for the scope or ID of the view.
+for the scope or @code{ID} of the view.
 @orgcmdkkc{C-c C-c,C-c C-x C-u,org-dblock-update}
 Update dynamic block at point.
 @orgcmd{C-u C-c C-x C-u,org-update-all-dblocks}
@@ -6008,11 +6009,11 @@ instead.
 Access the agenda for the date given by the timestamp or -range at
 point (@pxref{Weekly/daily agenda}).
 @c
address@hidden@key{left},address@hidden,org-timestamp-down-day,org-timestamp-up-day}
address@hidden@key{LEFT},address@hidden,org-timestamp-down-day,org-timestamp-up-day}
 Change date at cursor by one day.  These key bindings conflict with
 shift-selection and related modes (@pxref{Conflicts}).
 @c
address@hidden@key{up},address@hidden,org-timestamp-up,org-timestamp-down-down}
address@hidden@key{UP},address@hidden,org-timestamp-up,org-timestamp-down-down}
 Change the item under the cursor in a timestamp.  The cursor can be on a
 year, month, day, hour or minute.  When the timestamp contains a time range
 like @samp{15:30-16:30}, modifying the first time will also shift the second,
@@ -6136,25 +6137,25 @@ from the minibuffer:
 @kindex M-v
 @kindex C-v
 @kindex mouse-1
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden address@hidden
address@hidden @key{RET}
address@hidden address@hidden
address@hidden address@hidden
address@hidden S-RIGHT
address@hidden S-LEFT
address@hidden S-DOWN
address@hidden S-UP
address@hidden M-S-RIGHT
address@hidden M-S-LEFT
address@hidden RET
address@hidden M-S-DOWN
address@hidden M-S-UP
 
 @example
 @key{RET}              @r{Choose date at cursor in calendar.}
 mouse-1            @r{Select date by clicking on it.}
address@hidden/@key{left}   @r{One day forward/backward.}
address@hidden/@key{up}      @r{One week forward/backward.}
address@hidden/@key{left} @r{One month forward/backward.}
address@hidden/@key{LEFT}   @r{One day forward/backward.}
address@hidden/@key{UP}      @r{One week forward/backward.}
address@hidden/@key{LEFT} @r{One month forward/backward.}
 > / <              @r{Scroll calendar forward/backward by one month.}
 M-v / C-v          @r{Scroll calendar forward/backward by 3 months.}
address@hidden/@key{up}    @r{Scroll calendar forward/backward by one year.}
address@hidden/@key{UP}    @r{Scroll calendar forward/backward by one year.}
 @end example
 
 @vindex org-read-date-display-live
@@ -6194,10 +6195,10 @@ following consequences:
 You cannot place the cursor onto a timestamp anymore, only before or
 after.
 @item
-The @address@hidden/@key{down}} keys can no longer be used to adjust
+The @address@hidden/@key{DOWN}} keys can no longer be used to adjust
 each component of a timestamp.  If the cursor is at the beginning of
-the stamp, @address@hidden/@key{down}} will change the stamp by one day,
-just like @address@hidden/@key{right}}.  At the end of the stamp, the
+the stamp, @address@hidden/@key{DOWN}} will change the stamp by one day,
+just like @address@hidden/@key{RIGHT}}.  At the end of the stamp, the
 time will be changed by one minute.
 @item
 If the timestamp contains a range of clock times or a repeater, these
@@ -6222,7 +6223,7 @@ they refer to.
 
 @table @var
 @item DEADLINE
address@hidden DEADLINE keyword
address@hidden @code{DEADLINE} keyword
 
 Meaning: the task (most likely a TODO item, though not necessarily) is supposed
 to be finished on that date.
@@ -6248,7 +6249,7 @@ deactivated if the task gets scheduled and you set
 @code{org-agenda-skip-deadline-prewarning-if-scheduled} to @code{t}.
 
 @item SCHEDULED
address@hidden SCHEDULED keyword
address@hidden @code{SCHEDULED} keyword
 
 Meaning: you are planning to start working on that task on the given
 date.
@@ -6313,7 +6314,7 @@ an item:
 @table @kbd
 @c
 @orgcmd{C-c C-d,org-deadline}
-Insert @samp{DEADLINE} keyword along with a stamp.  Any CLOSED timestamp will
+Insert @code{DEADLINE} keyword along with a stamp.  Any CLOSED timestamp will
 be removed.  When called with a prefix arg, an existing deadline will be
 removed from the entry.  Depending on the variable
 @address@hidden corresponding @code{#+STARTUP}
@@ -6322,7 +6323,7 @@ keywords @code{logredeadline}, @code{lognoteredeadline}, 
and
 deadline.
 
 @orgcmd{C-c C-s,org-schedule}
-Insert @samp{SCHEDULED} keyword along with a stamp.  Any CLOSED timestamp
+Insert @code{SCHEDULED} keyword along with a stamp.  Any CLOSED timestamp
 will be removed.  When called with a prefix argument, remove the scheduling
 date from the entry.  Depending on the variable
 @address@hidden corresponding @code{#+STARTUP}
@@ -6356,8 +6357,8 @@ to the previous week before any current timestamp.
 @cindex tasks, repeated
 @cindex repeated tasks
 
-Some tasks need to be repeated again and again.  Org mode helps to
-organize such tasks using a so-called repeater in a DEADLINE, SCHEDULED,
+Some tasks need to be repeated again and again.  Org mode helps to organize
+such tasks using a so-called repeater in a @code{DEADLINE}, @code{SCHEDULED},
 or plain timestamp.  In the following example
 @example
 ** TODO Pay the rent
@@ -6374,18 +6375,18 @@ first and the warning period last: @code{DEADLINE: 
<2005-10-01 Sat +1m -3d>}.
 @vindex org-todo-repeat-to-state
 Deadlines and scheduled items produce entries in the agenda when they are
 over-due, so it is important to be able to mark such an entry as completed
-once you have done so.  When you mark a DEADLINE or a SCHEDULE with the TODO
-keyword DONE, it will no longer produce entries in the agenda.  The problem
-with this is, however, that then also the @emph{next} instance of the
-repeated entry will not be active.  Org mode deals with this in the following
-way: When you try to mark such an entry DONE (using @kbd{C-c C-t}), it will
-shift the base date of the repeating timestamp by the repeater interval, and
-immediately set the entry state back to address@hidden fact, the target
-state is taken from, in this sequence, the @code{REPEAT_TO_STATE} property or
-the variable @code{org-todo-repeat-to-state}.  If neither of these is
-specified, the target state defaults to the first state of the TODO state
-sequence.}.  In the example above, setting the state to DONE would actually
-switch the date like this:
+once you have done so.  When you mark a @code{DEADLINE} or a @code{SCHEDULED}
+with the TODO keyword DONE, it will no longer produce entries in the agenda.
+The problem with this is, however, that then also the @emph{next} instance of
+the repeated entry will not be active.  Org mode deals with this in the
+following way: When you try to mark such an entry DONE (using @kbd{C-c C-t}),
+it will shift the base date of the repeating timestamp by the repeater
+interval, and immediately set the entry state back to address@hidden fact,
+the target state is taken from, in this sequence, the @code{REPEAT_TO_STATE}
+property or the variable @code{org-todo-repeat-to-state}.  If neither of
+these is specified, the target state defaults to the first state of the TODO
+state sequence.}.  In the example above, setting the state to DONE would
+actually switch the date like this:
 
 @example
 ** TODO Pay the rent
@@ -6491,22 +6492,21 @@ what to do with it.
 @orgcmd{C-c C-x C-i,org-clock-in}
 @vindex org-clock-into-drawer
 @vindex org-clock-continuously
address@hidden property, LOG_INTO_DRAWER
-Start the clock on the current item (clock-in).  This inserts the CLOCK
-keyword together with a timestamp.  If this is not the first clocking of
-this item, the multiple CLOCK lines will be wrapped into a
address@hidden:LOGBOOK:} drawer (see also the variable
address@hidden).  You can also overrule
-the setting of this variable for a subtree by setting a
address@hidden or @code{LOG_INTO_DRAWER} property.
-When called with a @kbd{C-u} prefix argument,
-select the task from a list of recently clocked tasks.  With two @kbd{C-u
-C-u} prefixes, clock into the task at point and mark it as the default task;
-the default task will then always be available with letter @kbd{d} when
-selecting a clocking task.  With three @kbd{C-u C-u C-u} prefixes, force
-continuous clocking by starting the clock when the last clock address@hidden
address@hidden property: CLOCK_MODELINE_TOTAL
address@hidden property: LAST_REPEAT
address@hidden property, @code{LOG_INTO_DRAWER}
+!Start the clock on the current item (clock-in).  This inserts the
address@hidden keyword together with a timestamp.  If this is not the first
+clocking of this item, the multiple @code{CLOCK} lines will be wrapped into a
address@hidden:LOGBOOK:} drawer (see also the variable 
@code{org-clock-into-drawer}).
+You can also overrule the setting of this variable for a subtree by setting a
address@hidden or @code{LOG_INTO_DRAWER} property.  When called
+with a @kbd{C-u} prefix argument, select the task from a list of recently
+clocked tasks.  With two @kbd{C-u C-u} prefixes, clock into the task at point
+and mark it as the default task; the default task will then always be
+available with letter @kbd{d} when selecting a clocking task.  With three
address@hidden C-u C-u} prefixes, force continuous clocking by starting the 
clock
+when the last clock address@hidden
address@hidden property, @code{CLOCK_MODELINE_TOTAL}
address@hidden property, @code{LAST_REPEAT}
 @vindex org-clock-modeline-total
 While the clock is running, the current clocking time is shown in the mode
 line, along with the title of the task.  The clock time shown will be all
@@ -6554,7 +6554,7 @@ clock duration keeps the same.
 @address@hidden/down},org-timestamp-up/down}
 On @code{CLOCK} log lines, increase/decrease the timestamp at point and
 the one of the previous (or the next clock) timestamp by the same duration.
-For example, if you hit @address@hidden to increase a clocked-out timestamp
+For example, if you hit @address@hidden to increase a clocked-out timestamp
 by five minutes, then the clocked-in timestamp of the next clock will be
 increased by five minutes.
 @orgcmd{C-c C-t,org-todo}
@@ -6605,7 +6605,7 @@ Update dynamic block at point.
 @orgkey{C-u C-c C-x C-u}
 Update all dynamic blocks (@pxref{Dynamic blocks}).  This is useful if
 you have several clock table blocks in a buffer.
address@hidden@key{left},address@hidden,org-clocktable-try-shift}
address@hidden@key{LEFT},address@hidden,org-clocktable-try-shift}
 Shift the current @code{:block} interval and update the table.  The cursor
 needs to be in the @code{#+BEGIN: clocktable} line for this command.  If
 @code{:block} is @code{today}, it will be shifted to @code{today-1} etc.
@@ -6615,7 +6615,7 @@ needs to be in the @code{#+BEGIN: clocktable} line for 
this command.  If
 Here is an example of the frame for a clock table as it is inserted into the
 buffer with the @kbd{C-c C-x C-r} command:
 
address@hidden #+BEGIN, clocktable
address@hidden @code{#+BEGIN}, clocktable
 @example
 #+BEGIN: clocktable :maxlevel 2 :emphasize nil :scope file
 #+END: clocktable
@@ -6655,7 +6655,7 @@ be selected:
              thismonth, lastmonth, address@hidden  @r{a relative month}
              thisyear, lastyear, address@hidden     @r{a relative year}
              untilnow
-             @r{Use @address@hidden/@key{right}} keys to shift the time 
interval.}
+             @r{Use @address@hidden/@key{RIGHT}} keys to shift the time 
interval.}
 :tstart      @r{A time string specifying when to start considering times.}
              @r{Relative times like @code{"<-2w>"} can also be used.  See}
              @address@hidden tags and properties} for relative time syntax.}
@@ -6691,8 +6691,8 @@ but you can specify your own function using the 
@code{:formatter} parameter.
              @r{E.g., @code{:sort (1 . ?a)} sorts the first column 
alphabetically.}
 :compact     @r{Abbreviation for @code{:level nil :indent t :narrow 40! 
:tcolumns 1}}
              @r{All are overwritten except if there is an explicit 
@code{:narrow}}
-:timestamp   @r{A timestamp for the entry, when available.  Look for 
SCHEDULED,}
-             @r{DEADLINE, TIMESTAMP and TIMESTAMP_IA, in this order.}
+:timestamp   @r{A timestamp for the entry, when available.  Look for 
@code{SCHEDULED},}
+             @address@hidden, @code{TIMESTAMP} and @code{TIMESTAMP_IA}, in 
this order.}
 :properties  @r{List of properties that should be shown in the table.  Each}
              @r{property will get its own column.}
 :inherit-props @r{When this flag is @code{t}, the values for 
@code{:properties} will be inherited.}
@@ -6805,7 +6805,8 @@ identical to dealing with away time due to idleness; it 
is just happening due
 to a recovery event rather than a set amount of idle time.
 
 You can also check all the files visited by your Org agenda for dangling
-clocks at any time using @kbd{M-x org-resolve-clocks RET} (or @kbd{C-c C-x 
C-z}).
+clocks at any time using @kbd{M-x org-resolve-clocks @key{RET}} (or @kbd{C-c
+C-x C-z}).
 
 @subsubheading Continuous clocking
 @cindex continuous clocking
@@ -6823,7 +6824,7 @@ with @code{org-clock-in} and two @kbd{C-u C-u} with 
@code{org-clock-in-last}.
 @section Effort estimates
 @cindex effort estimates
 
address@hidden property, Effort
address@hidden property, @code{EFFORT}
 If you want to plan your work in a very detailed way, or if you need to
 produce offers with quotations of the estimated work effort, you may want to
 assign effort estimates to entries.  If you are also clocking your work, you
@@ -6861,7 +6862,7 @@ In particular if you want to use this setup also in the 
agenda, a global
 setup may be advised.
 
 The way to assign estimates to individual items is then to switch to column
-mode, and to use @address@hidden and @address@hidden to change the
+mode, and to use @address@hidden and @address@hidden to change the
 value.  The values you enter will immediately be summed up in the hierarchy.
 In the column next to it, any clocked time will be displayed.
 
@@ -6965,7 +6966,7 @@ If your configuration depends on @file{org-remember.el}, 
you need to update
 it and use the setup described below.  To convert your
 @code{org-remember-templates}, run the command
 @example
address@hidden org-capture-import-remember-templates RET}
address@hidden org-capture-import-remember-templates @key{RET}}
 @end example
 @noindent and then customize the new variable with @kbd{M-x
 customize-variable org-capture-templates}, check the result, and save the
@@ -7041,7 +7042,7 @@ Visit the last stored capture item in its buffer.
 @end table
 
 @vindex org-capture-bookmark
address@hidden org-capture-last-stored
address@hidden @code{org-capture-last-stored}
 You can also jump to the bookmark @code{org-capture-last-stored}, which will
 automatically be created unless you set @code{org-capture-bookmark} to
 @code{nil}.
@@ -7462,12 +7463,12 @@ Delete all of a task's attachments.  A safer way is to 
open the directory in
 @command{dired} and delete from there.
 
 @orgcmdtkc{s,C-c C-a s,org-attach-set-directory}
address@hidden property, ATTACH_DIR
address@hidden property, @code{ATTACH_DIR}
 Set a specific directory as the entry's attachment directory.  This works by
 putting the directory path into the @code{ATTACH_DIR} property.
 
 @orgcmdtkc{i,C-c C-a i,org-attach-set-inherit}
address@hidden property, ATTACH_DIR_INHERIT
address@hidden property, @code{ATTACH_DIR_INHERIT}
 Set the @code{ATTACH_DIR_INHERIT} property, so that children will use the
 same directory for attachments as the parent does.
 @end table
@@ -7641,14 +7642,14 @@ 
javascript:location.href='org-protocol://open-source?&url='+
       encodeURIComponent(location.href)
 @end example
 
address@hidden protocol, open-source, :base-url property
address@hidden :base-url property in open-source protocol
address@hidden protocol, open-source, :working-directory property
address@hidden :working-directory property in open-source protocol
address@hidden protocol, open-source, :online-suffix property
address@hidden :online-suffix property in open-source protocol
address@hidden protocol, open-source, :working-suffix property
address@hidden :working-suffix property in open-source protocol
address@hidden protocol, open-source, @code{:base-url} property
address@hidden @code{:base-url} property in open-source protocol
address@hidden protocol, open-source, @code{:working-directory} property
address@hidden @code{:working-directory} property in open-source protocol
address@hidden protocol, open-source, @code{:online-suffix} property
address@hidden @code{:online-suffix} property in open-source protocol
address@hidden protocol, open-source, @code{:working-suffix} property
address@hidden @code{:working-suffix} property in open-source protocol
 @vindex org-protocol-project-alist
 The variable @code{org-protocol-project-alist} maps URLs to local file names,
 by stripping URL parameters from the end and replacing the @code{:base-url}
@@ -7685,8 +7686,8 @@ to something like
 @code{open-source} handler probably cannot find a file named
 @file{/home/user/example/print/posters.html.php} and fails.
 
address@hidden protocol, open-source, :rewrites property
address@hidden :rewrites property in open-source protocol
address@hidden protocol, open-source, @code{:rewrites} property
address@hidden @code{:rewrites property} in open-source protocol
 Such an entry in @code{org-protocol-project-alist} may hold an additional
 property @code{:rewrites}.  This property is a list of cons cells, each of
 which maps a regular expression to a path relative to the
@@ -7837,12 +7838,12 @@ see the documentation string of the variable
 
 There is also an in-buffer option for setting this variable, for example:
 
address@hidden #+ARCHIVE
address@hidden @code{#+ARCHIVE}
 @example
 #+ARCHIVE: %s_done::
 @end example
 
address@hidden property, ARCHIVE
address@hidden property, @code{ARCHIVE}
 @noindent
 If you would like to have a special ARCHIVE location for a single entry
 or a (sub)tree, give the entry an @code{:ARCHIVE:} property with the
@@ -7909,7 +7910,7 @@ To do this, each subtree is checked for open TODO 
entries.  If none are
 found, the command offers to set the ARCHIVE tag for the child.  If the
 cursor is @emph{not} on a headline when this command is invoked, the
 level 1 trees will be checked.
address@hidden@kbd{TAB},org-force-cycle-archived}
address@hidden@key{TAB},org-force-cycle-archived}
 Cycle a tree even if it is tagged with ARCHIVE.
 @orgcmd{C-c C-x A,org-archive-to-archive-sibling}
 Move the current entry to the @emph{Archive Sibling}.  This is a sibling of
@@ -8021,8 +8022,7 @@ Remove current file from the list of agenda files.
 @orgcmd{C-',org-cycle-agenda-files}
 @itemx C-,
 Cycle through agenda file list, visiting one file after the other.
address@hidden M-x org-iswitchb
address@hidden M-x org-iswitchb RET
address@hidden M-x org-iswitchb @key{RET}
 Command to use an @code{iswitchb}-like interface to switch to and between Org
 buffers.
 @end table
@@ -8150,7 +8150,7 @@ The purpose of the weekly/daily @emph{agenda} is to act 
like a page of a
 paper agenda, showing all the tasks for the current week or day.
 
 @table @kbd
address@hidden org-agenda, command
address@hidden @code{org-agenda}, command
 @orgcmd{C-c a a,org-agenda-list}
 Compile an agenda for the current week from a list of Org files.  The agenda
 shows the entries for each day.  With a numeric address@hidden backward
@@ -8637,7 +8637,7 @@ associated with the item.
 @subsection Categories
 
 @cindex category
address@hidden #+CATEGORY
address@hidden @code{#+CATEGORY}
 The category is a broad label assigned to each agenda item.  By default, the
 category is simply derived from the file name, but you can also specify it
 with a special line in the buffer, like this:
@@ -8647,8 +8647,8 @@ with a special line in the buffer, like this:
 @end example
 
 @noindent
address@hidden property, CATEGORY
-If you would like to have a special CATEGORY for a single entry or a
address@hidden property, @code{CATEGORY}
+If you would like to have a special @code{CATEGORY} for a single entry or a
 (sub)tree, give the entry a @code{:CATEGORY:} property with the
 special category you want to apply as the value.
 
@@ -8788,12 +8788,13 @@ excluding the next tag.
 Org also supports automatic, context-aware tag filtering.  If the variable
 @code{org-agenda-auto-exclude-function} is set to a user-defined function,
 that function can decide which tags should be excluded from the agenda
-automatically.  Once this is set, the @kbd{/} command then accepts @kbd{RET}
-as a sub-option key and runs the auto exclusion logic.  For example, let's
-say you use a @code{Net} tag to identify tasks which need network access, an
address@hidden tag for errands in town, and a @code{Call} tag for making phone
-calls.  You could auto-exclude these tags based on the availability of the
-Internet, and outside of business hours, with something like this:
+automatically.  Once this is set, the @kbd{/} command then accepts
address@hidden@key{RET}} as a sub-option key and runs the auto exclusion logic. 
 For
+example, let's say you use a @code{Net} tag to identify tasks which need
+network access, an @code{Errand} tag for errands in town, and a @code{Call}
+tag for making phone calls.  You could auto-exclude these tags based on the
+availability of the Internet, and outside of business hours, with something
+like this:
 
 @smalllisp
 @group
@@ -8949,9 +8950,9 @@ the other commands, the cursor needs to be in the desired 
line.
 @tsubheading{Motion}
 @cindex motion commands in agenda
 @orgcmd{n,org-agenda-next-line}
-Next line (same as @key{down} and @kbd{C-n}).
+Next line (same as @key{DOWN} and @kbd{C-n}).
 @orgcmd{p,org-agenda-previous-line}
-Previous line (same as @key{up} and @kbd{C-p}).
+Previous line (same as @key{UP} and @kbd{C-p}).
 @orgcmd{N,org-agenda-next-item}
 Next item: same as next line, but only consider items.
 @orgcmd{P,org-agenda-previous-item}
@@ -9004,7 +9005,7 @@ Delete other windows.
 @xorgcmd{v t,org-agenda-fortnight-view}
 @xorgcmd{v m,org-agenda-month-view}
 @xorgcmd{v y,org-agenda-year-view}
address@hidden SPC,org-agenda-reset-view}
address@hidden @key{SPC},org-agenda-reset-view}
 @vindex org-agenda-span
 Switch to day/week/month/year view.  When switching to day or week view, this
 setting becomes the default for subsequent agenda refreshes.  Since month and
@@ -9102,8 +9103,8 @@ Toggle the time grid on and off.  See also the variables
 @c
 @orgcmd{r,org-agenda-redo}
 Recreate the agenda buffer, for example to reflect the changes after
-modification of the timestamps of items with @address@hidden and
address@hidden@key{right}}.  When the buffer is the global TODO list, a prefix
+modification of the timestamps of items with @address@hidden and
address@hidden@key{RIGHT}}.  When the buffer is the global TODO list, a prefix
 argument is interpreted to create a selective list for a specific TODO
 keyword.
 @orgcmd{g,org-agenda-redo}
@@ -9167,8 +9168,8 @@ both in the agenda buffer and in the remote buffer.
 Change the TODO state of the item, both in the agenda and in the
 original org file.
 @c
address@hidden@key{right},org-agenda-todo-nextset}
address@hidden@key{left},org-agenda-todo-previousset}
address@hidden@key{RIGHT},org-agenda-todo-nextset}
address@hidden@key{LEFT},org-agenda-todo-previousset}
 Switch to the next/previous set of TODO keywords.
 @c
 @orgcmd{C-k,org-agenda-kill}
@@ -9218,12 +9219,12 @@ the priority cookie is removed from the entry.
 @orgcmd{P,org-agenda-show-priority}
 Display weighted priority of current item.
 @c
address@hidden,address@hidden,org-agenda-priority-up}
address@hidden,address@hidden,org-agenda-priority-up}
 Increase the priority of the current item.  The priority is changed in
 the original buffer, but the agenda is not resorted.  Use the @kbd{r}
 key for this.
 @c
address@hidden,address@hidden,org-agenda-priority-down}
address@hidden,address@hidden,org-agenda-priority-down}
 Decrease the priority of the current item.
 @c
 @orgcmdkkc{z,C-c C-z,org-agenda-add-note}
@@ -9241,19 +9242,19 @@ Schedule this item.  With prefix arg remove the 
scheduling timestamp
 @orgcmd{C-c C-d,org-agenda-deadline}
 Set a deadline for this item.  With prefix arg remove the deadline.
 @c
address@hidden@key{right},org-agenda-do-date-later}
address@hidden@key{RIGHT},org-agenda-do-date-later}
 Change the timestamp associated with the current line by one day into the
 future.  If the date is in the past, the first call to this command will move
 it to address@hidden
 With a numeric prefix argument, change it by that many days.  For example,
address@hidden 6 5 address@hidden will change it by a year.  With a @kbd{C-u} 
prefix,
address@hidden 6 5 address@hidden will change it by a year.  With a @kbd{C-u} 
prefix,
 change the time by one hour.  If you immediately repeat the command, it will
 continue to change hours even without the prefix arg.  With a double @kbd{C-u
 C-u} prefix, do the same for changing address@hidden
 The stamp is changed in the original Org file, but the change is not directly
 reflected in the agenda buffer.  Use @kbd{r} or @kbd{g} to update the buffer.
 @c
address@hidden@key{left},org-agenda-do-date-earlier}
address@hidden@key{LEFT},org-agenda-do-date-earlier}
 Change the timestamp associated with the current line by one day
 into the past.
 @c
@@ -9423,7 +9424,7 @@ calendars.
 @orgcmd{H,org-agenda-holidays}
 Show holidays for three months around the cursor date.
 
address@hidden M-x org-icalendar-combine-agenda-files RET
address@hidden M-x org-icalendar-combine-agenda-files @key{RET}
 Export a single iCalendar file containing entries from all agenda files.
 This is a globally available command, and also available in the agenda menu.
 
@@ -9860,7 +9861,7 @@ does not have a specific format---defined in a property, 
or in its file---it
 uses @code{org-columns-default-format}.
 
 @item
address@hidden property, special, CLOCKSUM
address@hidden property, special, @code{CLOCKSUM}
 If any of the columns has a summary type defined (@pxref{Column attributes}),
 turning on column view in the agenda will visit all relevant agenda files and
 make sure that the computations of this property are up to date.  This is
@@ -9884,7 +9885,7 @@ clocked time in the displayed period use clock table mode 
(press @kbd{R} in
 the agenda).
 
 @item
address@hidden property, special, CLOCKSUM_T
address@hidden property, special, @code{CLOCKSUM_T}
 When the column view in the agenda shows the @code{CLOCKSUM_T}, that is
 always today's clocked time for this item.  So even in the weekly agenda, the
 clocksum listed in column view only originates from today.  This lets you
@@ -9924,7 +9925,7 @@ To preserve the line breaks, indentation and blank lines 
in a region, but
 otherwise use normal formatting, you can use this construct, which can also
 be used to format poetry.
 
address@hidden #+BEGIN_VERSE
address@hidden @code{#+BEGIN_VERSE}
 @cindex verse blocks
 @example
 #+BEGIN_VERSE
@@ -9940,7 +9941,7 @@ When quoting a passage from another document, it is 
customary to format this
 as a paragraph that is indented on both the left and the right margin.  You
 can include quotations in Org mode documents like this:
 
address@hidden #+BEGIN_QUOTE
address@hidden @code{#+BEGIN_QUOTE}
 @cindex quote blocks
 @example
 #+BEGIN_QUOTE
@@ -9950,7 +9951,7 @@ but not any simpler -- Albert Einstein
 @end example
 
 If you would like to center some text, do it like this:
address@hidden #+BEGIN_CENTER
address@hidden @code{#+BEGIN_CENTER}
 @cindex center blocks
 @example
 #+BEGIN_CENTER
@@ -9994,8 +9995,8 @@ a horizontal line.
 @section Images and Tables
 
 @cindex tables, markup rules
address@hidden #+CAPTION
address@hidden #+NAME
address@hidden @code{#+CAPTION}
address@hidden @code{#+NAME}
 Both the native Org mode tables (@pxref{Tables}) and tables formatted with
 the @file{table.el} package will be exported properly.  For Org mode tables,
 the lines before the first horizontal separator line will become table header
@@ -10046,7 +10047,7 @@ or may not be handled.
 You can include literal examples that should not be subjected to
 markup.  Such examples will be typeset in monospace, so this is well suited
 for source code and similar examples.
address@hidden #+BEGIN_EXAMPLE
address@hidden @code{#+BEGIN_EXAMPLE}
 
 @example
 #+BEGIN_EXAMPLE
@@ -10085,7 +10086,7 @@ address@hidden in @samp{src} blocks may also be 
evaluated either
 interactively or on export.  @xref{Working with source code}, for more
 information on evaluating code blocks.}, see @ref{Easy templates} for
 shortcuts to easily insert code blocks.
address@hidden #+BEGIN_SRC
address@hidden @code{#+BEGIN_SRC}
 
 @example
 #+BEGIN_SRC emacs-lisp
@@ -10407,14 +10408,14 @@ To disable it, simply use
 
 address@hidden mode is a minor mode that is normally used in combination with a
 major @LaTeX{} mode like address@hidden in order to speed-up insertion of
-environments and math templates.  Inside Org mode, you can make use of
-some of the features of address@hidden mode.  You need to install
address@hidden and @file{texmathp.el} (the latter comes also with
address@hidden) from @url{https://staff.fnwi.uva.nl/c.dominik/Tools/cdlatex}.
-Don't use address@hidden mode itself under Org mode, but use the light
-version @code{org-cdlatex-mode} that comes as part of Org mode.  Turn it
-on for the current buffer with @kbd{M-x org-cdlatex-mode RET}, or for all
-Org files with
+environments and math templates.  Inside Org mode, you can make use of some
+of the features of address@hidden mode.  You need to install @file{cdlatex.el}
+and @file{texmathp.el} (the latter comes also with address@hidden) from
address@hidden://staff.fnwi.uva.nl/c.dominik/Tools/cdlatex}.  Don't use
address@hidden mode itself under Org mode, but use the light version
address@hidden that comes as part of Org mode.  Turn it on for the
+current buffer with @kbd{M-x org-cdlatex-mode @key{RET}}, or for all Org
+files with
 
 @lisp
 (add-hook 'org-mode-hook 'turn-on-org-cdlatex)
@@ -10427,7 +10428,7 @@ details see the documentation of address@hidden mode):
 @item
 Environment templates can be inserted with @kbd{C-c @{}.
 @item
address@hidden @key{TAB}
address@hidden TAB
 The @key{TAB} key will do template expansion if the cursor is inside a
 @LaTeX{} address@hidden mode has a method to test if the cursor is
 inside such a fragment, see the documentation of the function
@@ -10438,7 +10439,8 @@ the second brace.  Even outside fragments, @key{TAB} 
will expand
 environment abbreviations at the beginning of a line.  For example, if
 you write @samp{equ} at the beginning of a line and press @key{TAB},
 this abbreviation will be expanded to an @code{equation} environment.
-To get a list of all abbreviations, type @kbd{M-x cdlatex-command-help RET}.
+To get a list of all abbreviations, type @kbd{M-x cdlatex-command-help
address@hidden
 @item
 @kindex _
 @kindex ^
@@ -10600,7 +10602,7 @@ Org document by adjusting outline visibility settings.
 @section Export settings
 @cindex Export, settings
 
address@hidden #+OPTIONS
address@hidden @code{#+OPTIONS}
 Export options can be set: globally with variables; for an individual file by
 making variables buffer-local with in-buffer settings (@pxref{In-buffer
 settings}), by setting individual keywords, or by specifying them in a
@@ -10608,7 +10610,7 @@ compact form with the @code{#+OPTIONS} keyword; or for 
a tree by setting
 properties (@pxref{Properties and columns}).  Options set at a specific level
 override options set at a more general level.
 
address@hidden #+SETUPFILE
address@hidden @code{#+SETUPFILE}
 In-buffer settings may appear anywhere in the file, either directly or
 indirectly through a file included using @samp{#+SETUPFILE: filename or URL}
 syntax.  Option keyword sets tailored to a particular back-end can be
@@ -10616,37 +10618,37 @@ inserted from the export dispatcher (@pxref{The 
export dispatcher}) using the
 @code{Insert template} command by pressing @key{#}.  To insert keywords
 individually, a good way to make sure the keyword is correct is to type
 @code{#+} and then to use @address@hidden@footnote{Many desktops intercept
address@hidden to switch windows.  Use @kbd{C-M-i} or @address@hidden @key{TAB}}
-instead.} for completion.
address@hidden@key{TAB}} to switch windows.  Use @kbd{C-M-i} or @address@hidden
address@hidden instead.} for completion.
 
 The export keywords available for every back-end, and their equivalent global
 variables, include:
 
 @table @samp
 @item AUTHOR
address@hidden #+AUTHOR
address@hidden @code{#+AUTHOR}
 @vindex user-full-name
 The document author (@code{user-full-name}).
 
 @item CREATOR
address@hidden #+CREATOR
address@hidden @code{#+CREATOR}
 @vindex org-export-creator-string
 Entity responsible for output generation (@code{org-export-creator-string}).
 
 @item DATE
address@hidden #+DATE
address@hidden @code{#+DATE}
 @vindex org-export-date-timestamp-format
 A date or a address@hidden variable
 @code{org-export-date-timestamp-format} defines how this time-stamp will be
 exported.}.
 
 @item EMAIL
address@hidden #+EMAIL
address@hidden @code{#+EMAIL}
 @vindex user-mail-address
 The email address (@code{user-mail-address}).
 
 @item LANGUAGE
address@hidden #+LANGUAGE
address@hidden @code{#+LANGUAGE}
 @vindex org-export-default-language
 Language to use for translating certain strings
 (@code{org-export-default-language}).  With @samp{#+LANGUAGE: fr}, for
@@ -10654,7 +10656,7 @@ example, Org translates @emph{Table of contents} to the 
French @emph{Table
 des matières}.
 
 @item SELECT_TAGS
address@hidden #+SELECT_TAGS
address@hidden @code{#+SELECT_TAGS}
 @vindex org-export-select-tags
 The default value is @code{:export:}.  When a tree is tagged with
 @code{:export:} (@code{org-export-select-tags}), Org selects that tree and
@@ -10663,7 +10665,7 @@ see below.  When selectively exporting files with 
@code{:export:} tags set,
 Org does not export any text that appears before the first headline.
 
 @item EXCLUDE_TAGS
address@hidden #+EXCLUDE_TAGS
address@hidden @code{#+EXCLUDE_TAGS}
 @vindex org-export-exclude-tags
 The default value is @code{:noexport:}.  When a tree is tagged with
 @code{:noexport:} (@code{org-export-exclude-tags}), Org excludes that tree
@@ -10673,12 +10675,12 @@ unconditionally excluded from the export, even if 
they have an
 code blocks contained in them.
 
 @item TITLE
address@hidden #+TITLE
address@hidden @code{#+TITLE}
 @cindex document title
 Org displays this title.  For long titles, use multiple @code{#+TITLE} lines.
 
 @item EXPORT_FILE_NAME
address@hidden #+EXPORT_FILE_NAME
address@hidden @code{#+EXPORT_FILE_NAME}
 The name of the output file to be generated.  Otherwise, Org generates the
 file name based on the buffer name and the extension based on the back-end
 format.
@@ -10784,7 +10786,7 @@ Toggle inclusion of inlinetasks 
(@code{org-export-with-inlinetasks}).
 
 @item num:
 @vindex org-export-with-section-numbers
address@hidden property, UNNUMBERED
address@hidden property, @code{UNNUMBERED}
 Toggle section-numbers (@code{org-export-with-section-numbers}).  When set to
 number @samp{n}, Org numbers only those headlines at level @samp{n} or above.
 Setting @code{UNNUMBERED} property to address@hidden disables numbering of
@@ -10860,7 +10862,7 @@ respectively, @samp{EXPORT_DATE} and 
@samp{EXPORT_FILE_NAME}.  Except for
 @samp{SETUPFILE}, all other keywords listed above have an @samp{EXPORT_}
 equivalent.
 
address@hidden #+BIND
address@hidden @code{#+BIND}
 @vindex org-export-allow-bind-keywords
 If @code{org-export-allow-bind-keywords} is address@hidden, Emacs variables
 can become buffer-local during export by using the BIND keyword.  Its syntax
@@ -10873,7 +10875,7 @@ settings that cannot be changed using keywords.
 @cindex list of tables
 @cindex list of listings
 
address@hidden #+TOC
address@hidden @code{#+TOC}
 @vindex org-export-with-toc
 Org normally inserts the table of contents directly before the first headline
 of the file.  Org sets the TOC depth the same as the headline levels in the
@@ -10919,7 +10921,7 @@ with captions.
 #+TOC: tables             @r{build a list of tables}
 @end example
 
address@hidden property, ALT_TITLE
address@hidden property, @code{ALT_TITLE}
 Normally Org uses the headline for its entry in the table of contents.  But
 with @code{ALT_TITLE} property, a different entry can be specified for the
 table of contents.
@@ -10929,7 +10931,7 @@ table of contents.
 @cindex include files, during export
 Include other files during export.  For example, to include your @file{.emacs}
 file, you could use:
address@hidden #+INCLUDE
address@hidden @code{#+INCLUDE}
 
 @example
 #+INCLUDE: "~/.emacs" src emacs-lisp
@@ -11001,7 +11003,7 @@ Visit the include file at point.
 @node Macro replacement
 @section Macro replacement
 @cindex macro replacement, during export
address@hidden #+MACRO
address@hidden @code{#+MACRO}
 
 @vindex org-export-global-macros
 Macros replace text snippets during export.  Macros are defined globally in
@@ -11093,9 +11095,9 @@ Lines starting with zero or more whitespace characters 
followed by one
 @samp{#} and a whitespace are treated as comments and, as such, are not
 exported.
 
address@hidden #+BEGIN_COMMENT
-Likewise, regions surrounded by @samp{#+BEGIN_COMMENT}
-... @samp{#+END_COMMENT} are not exported.
address@hidden @code{#+BEGIN_COMMENT}
+Likewise, regions surrounded by @code{#+BEGIN_COMMENT}
+... @code{#+END_COMMENT} are not exported.
 
 @cindex comment trees
 Finally, a @samp{COMMENT} keyword at the beginning of an entry, but after any
@@ -11151,7 +11153,7 @@ settings}).
 
 @table @samp
 @item SUBTITLE
address@hidden #+SUBTITLE (ASCII)
address@hidden @code{#+SUBTITLE} (ASCII)
 The document subtitle.  For long subtitles, use multiple @code{#+SUBTITLE}
 lines in the Org file.  Org prints them on one continuous line, wrapping into
 multiple lines if necessary.
@@ -11168,8 +11170,8 @@ where levels become lists, @pxref{Export settings}.
 To insert text within the Org file by the ASCII back-end, use one the
 following constructs, inline, keyword, or export block:
 
address@hidden #+ASCII
address@hidden #+BEGIN_EXPORT ascii
address@hidden @code{#+ASCII}
address@hidden @code{#+BEGIN_EXPORT ascii}
 @example
 Inline text @@@@ascii:and additional text@@@@ within a paragraph.
 
@@ -11181,7 +11183,7 @@ Org exports text in this block only when using ASCII 
back-end.
 @end example
 
 @subheading ASCII specific attributes
address@hidden #+ATTR_ASCII
address@hidden @code{#+ATTR_ASCII}
 @cindex horizontal rules, in ASCII export
 
 ASCII back-end recognizes only one attribute, @code{:width}, which specifies
@@ -11195,8 +11197,8 @@ syntax for specifying widths is:
 
 @subheading ASCII special blocks
 @cindex special blocks, in ASCII export
address@hidden #+BEGIN_JUSTIFYLEFT
address@hidden #+BEGIN_JUSTIFYRIGHT
address@hidden @code{#+BEGIN_JUSTIFYLEFT}
address@hidden @code{#+BEGIN_JUSTIFYRIGHT}
 
 Besides @code{#+BEGIN_CENTER} blocks (@pxref{Paragraphs}), ASCII back-end has
 these two left and right justification blocks:
@@ -11254,7 +11256,7 @@ output.  These keywords work similar to the general 
options settings
 
 @table @samp
 @item BEAMER_THEME
address@hidden #+BEAMER_THEME
address@hidden @code{#+BEAMER_THEME}
 @vindex org-beamer-theme
 The Beamer layout theme (@code{org-beamer-theme}).  Use square brackets for
 options.  For example:
@@ -11263,24 +11265,24 @@ options.  For example:
 @end smallexample
 
 @item BEAMER_FONT_THEME
address@hidden #+BEAMER_FONT_THEME
address@hidden @code{#+BEAMER_FONT_THEME}
 The Beamer font theme.
 
 @item BEAMER_INNER_THEME
address@hidden #+BEAMER_INNER_THEME
address@hidden @code{#+BEAMER_INNER_THEME}
 The Beamer inner theme.
 
 @item BEAMER_OUTER_THEME
address@hidden #+BEAMER_OUTER_THEME
address@hidden @code{#+BEAMER_OUTER_THEME}
 The Beamer outer theme.
 
 @item BEAMER_HEADER
address@hidden #+BEAMER_HEADER
address@hidden @code{#+BEAMER_HEADER}
 Arbitrary lines inserted in the preamble, just before the @samp{hyperref}
 settings.
 
 @item DESCRIPTION
address@hidden #+DESCRIPTION (Beamer)
address@hidden @code{#+DESCRIPTION} (Beamer)
 The document description.  For long descriptions, use multiple
 @code{#+DESCRIPTION} keywords.  By default, @samp{hyperref} inserts
 @code{#+DESCRIPTION} as metadata.  Use @code{org-latex-hyperref-template} to
@@ -11288,7 +11290,7 @@ configure document metadata.  Use 
@code{org-latex-title-command} to configure
 typesetting of description as part of front matter.
 
 @item KEYWORDS
address@hidden #+KEYWORDS (Beamer)
address@hidden @code{#+KEYWORDS} (Beamer)
 The keywords for defining the contents of the document.  Use multiple
 @code{#+KEYWORDS} lines if necessary.  By default, @samp{hyperref} inserts
 @code{#+KEYWORDS} as metadata.  Use @code{org-latex-hyperref-template} to
@@ -11296,7 +11298,7 @@ configure document metadata.  Use 
@code{org-latex-title-command} to configure
 typesetting of keywords as part of front matter.
 
 @item SUBTITLE
address@hidden #+SUBTITLE (Beamer)
address@hidden @code{#+SUBTITLE} (Beamer)
 @vindex org-beamer-subtitle-format
 Document's subtitle.  For typesetting, use @code{org-beamer-subtitle-format}
 string.  Use @code{org-latex-hyperref-template} to configure document
@@ -11318,7 +11320,7 @@ Org headlines become Beamer frames when the heading 
level in Org is equal to
 @code{org-beamer-frame-level} or @code{H} value in an @code{OPTIONS} line
 (@pxref{Export settings}).
 
address@hidden property, BEAMER_ENV
address@hidden property, @code{BEAMER_ENV}
 Org overrides headlines to frames conversion for the current tree of an Org
 file if it encounters the @code{BEAMER_ENV} property set to @code{frame} or
 @code{fullframe}.  Org ignores whatever @code{org-beamer-frame-level} happens
@@ -11337,7 +11339,7 @@ aid and has no semantic relevance.}.  For valid values 
see
 @code{org-beamer-environments-extra}.
 
 @item
address@hidden property, BEAMER_REF
address@hidden property, @code{BEAMER_REF}
 If @code{BEAMER_ENV} is set to @code{appendix}, Org exports the entry as an
 appendix.  When set to @code{note}, Org exports the entry as a note within
 the frame or between frames, depending on the entry's heading level.  When
@@ -11351,8 +11353,8 @@ not its content.  This is useful for inserting content 
between frames.  It is
 also useful for properly closing a @code{column} environment.
 @end itemize
 
address@hidden property, BEAMER_ACT
address@hidden property, BEAMER_OPT
address@hidden property, @code{BEAMER_ACT}
address@hidden property, @code{BEAMER_OPT}
 When @code{BEAMER_ACT} is set for a headline, Org export translates that
 headline as an overlay or action specification.  When enclosed in square
 brackets, Org export makes the overlay specification a default.  Use
@@ -11361,7 +11363,7 @@ or block.  The Beamer export back-end wraps with 
appropriate angular or
 square brackets.  It also adds the @code{fragile} option for any code that may
 require a verbatim block.
 
address@hidden property, BEAMER_COL
address@hidden property, @code{BEAMER_COL}
 To create a column on the Beamer slide, use the @code{BEAMER_COL} property
 for its headline in the Org file.  Set the value of @code{BEAMER_COL} to a
 decimal number representing the fraction of the total text width.  Beamer
@@ -11376,8 +11378,8 @@ needs, use the @code{BEAMER_ENV} property.
 @node Beamer specific syntax
 @subsection Beamer specific syntax
 Since Org's Beamer export back-end is an extension of the @LaTeX{} back-end,
-it recognizes other @LaTeX{} specific syntax---for example, @samp{#+LATEX:}
-or @samp{#+ATTR_LATEX:}.  @address@hidden export}, for details.
+it recognizes other @LaTeX{} specific syntax---for example, @code{#+LATEX:}
+or @code{#+ATTR_LATEX:}.  @address@hidden export}, for details.
 
 Beamer export wraps the table of contents generated with @code{toc:t}
 @code{OPTION} keyword in a @code{frame} environment.  Beamer export does not
@@ -11390,8 +11392,8 @@ contents}).  Use square brackets for specifying options.
 
 Insert Beamer-specific code using the following constructs:
 
address@hidden #+BEAMER
address@hidden #+BEGIN_EXPORT beamer
address@hidden @code{#+BEAMER}
address@hidden @code{#+BEGIN_EXPORT beamer}
 @example
 #+BEAMER: \pause
 
@@ -11412,7 +11414,7 @@ this example:
 A *@@@@beamer:<2->@@@@useful* feature
 @end example
 
address@hidden #+ATTR_BEAMER
address@hidden @code{#+ATTR_BEAMER}
 Beamer export recognizes the @code{ATTR_BEAMER} keyword with the following
 attributes from Beamer configurations: @code{:environment} for changing local
 Beamer environment, @code{:overlay} for specifying Beamer overlays in angular
@@ -11536,66 +11538,66 @@ described in @ref{Export settings}.
 
 @table @samp
 @item DESCRIPTION
address@hidden #+DESCRIPTION (HTML)
address@hidden @code{#+DESCRIPTION} (HTML)
 This is the document's description, which the HTML exporter inserts it as a
 HTML meta tag in the HTML file.  For long descriptions, use multiple
 @code{#+DESCRIPTION} lines.  The exporter takes care of wrapping the lines
 properly.
 
 @item HTML_DOCTYPE
address@hidden #+HTML_DOCTYPE
address@hidden @code{#+HTML_DOCTYPE}
 @vindex org-html-doctype
 Specify the document type, for example: HTML5 (@code{org-html-doctype}).
 
 @item HTML_CONTAINER
address@hidden #+HTML_CONTAINER
address@hidden @code{#+HTML_CONTAINER}
 @vindex org-html-container-element
 Specify the HTML container, such as @samp{div}, for wrapping sections and
 elements (@code{org-html-container-element}).
 
 @item HTML_LINK_HOME
address@hidden #+HTML_LINK_HOME
address@hidden @code{#+HTML_LINK_HOME}
 @vindex org-html-link-home
 The URL for home link (@code{org-html-link-home}).
 
 @item HTML_LINK_UP
address@hidden #+HTML_LINK_UP
address@hidden @code{#+HTML_LINK_UP}
 @vindex org-html-link-up
 The URL for the up link of exported HTML pages (@code{org-html-link-up}).
 
 @item HTML_MATHJAX
address@hidden #+HTML_MATHJAX
address@hidden @code{#+HTML_MATHJAX}
 @vindex org-html-mathjax-options
 Options for MathJax (@code{org-html-mathjax-options}).  MathJax is used to
 typeset @LaTeX{} math in HTML documents.  @xref{Math formatting in HTML
 export}, for an example.
 
 @item HTML_HEAD
address@hidden #+HTML_HEAD
address@hidden @code{#+HTML_HEAD}
 @vindex org-html-head
 Arbitrary lines for appending to the HTML document's head
 (@code{org-html-head}).
 
 @item HTML_HEAD_EXTRA
address@hidden #+HTML_HEAD_EXTRA
address@hidden @code{#+HTML_HEAD_EXTRA}
 @vindex org-html-head-extra
 More arbitrary lines for appending to the HTML document's head
 (@code{org-html-head-extra}).
 
 @item KEYWORDS
address@hidden #+KEYWORDS (HTML)
address@hidden @code{#+KEYWORDS} (HTML)
 Keywords to describe the document's content.  HTML exporter inserts these
 keywords as HTML meta tags.  For long keywords, use multiple
 @code{#+KEYWORDS} lines.
 
 @item LATEX_HEADER
address@hidden #+LATEX_HEADER (HTML)
address@hidden @code{#+LATEX_HEADER} (HTML)
 Arbitrary lines for appending to the preamble; HTML exporter appends when
 transcoding @LaTeX{} fragments to images (@pxref{Math formatting in HTML
 export}).
 
 @item SUBTITLE
address@hidden #+SUBTITLE (HTML)
address@hidden @code{#+SUBTITLE} (HTML)
 The document's subtitle.  HTML exporter formats subtitle if document type is
 @samp{HTML5} and the CSS has a @samp{subtitle} class.
 @end table
@@ -11729,14 +11731,13 @@ back-end can insert that HTML code in the output, use 
this inline syntax:
 text@@@@html:</b>@@@@}.  For larger raw HTML code blocks, use these HTML
 export code blocks:
 
address@hidden #+HTML
address@hidden #+BEGIN_EXPORT html
address@hidden @code{#+HTML}
 @example
 #+HTML: Literal HTML code for export
 @end example
 
 @noindent or
address@hidden #+BEGIN_EXPORT html
address@hidden @code{#+BEGIN_EXPORT html}
 
 @example
 #+BEGIN_EXPORT html
@@ -11773,7 +11774,7 @@ example, by using @code{#+ATTR_HTML} lines to specify 
new format attributes
 to @code{<a>} or @code{<img>} tags.  This example shows changing the link's
 @code{title} and @code{style}:
 
address@hidden #+ATTR_HTML
address@hidden @code{#+ATTR_HTML}
 @example
 #+ATTR_HTML: :title The Org mode homepage :style color:red;
 [[http://orgmode.org]]
@@ -11789,8 +11790,8 @@ exporting Org tables to HTML.  By default, the exporter 
does not draw frames
 and cell borders.  To change for this for a table, use the following lines
 before the table in the Org file:
 
address@hidden #+CAPTION
address@hidden #+ATTR_HTML
address@hidden @code{#+CAPTION}
address@hidden @code{#+ATTR_HTML}
 @example
 #+CAPTION: This is a table with lines around and between cells
 #+ATTR_HTML: :border 2 :rules all :frame border
@@ -11863,8 +11864,8 @@ Org file.  This example shows realignment to right, and 
adds @code{alt} and
 @code{title} attributes in support of text viewers and modern web accessibility
 standards.
 
address@hidden #+CAPTION
address@hidden #+ATTR_HTML
address@hidden @code{#+CAPTION}
address@hidden @code{#+ATTR_HTML}
 @example
 #+CAPTION: A black cat stalking a spider
 #+ATTR_HTML: :alt cat/spider image :title Action! :align right
@@ -11973,7 +11974,7 @@ p.creator           @r{creator info, about org mode 
version}
 .done               @r{the DONE keywords, all states that count as done}
 .WAITING            @r{each TODO keyword also uses a class named after itself}
 .timestamp          @r{timestamp}
-.timestamp-kwd      @r{keyword associated with a timestamp, like SCHEDULED}
+.timestamp-kwd      @r{keyword associated with a timestamp, like 
@code{SCHEDULED}}
 .timestamp-wrapper  @r{span around keyword plus timestamp}
 .tag                @r{tag in a headline}
 ._HOME              @r{each tag uses itself as a class, "@@" replaced by "_"}
@@ -12001,14 +12002,14 @@ p.footnote          @r{footnote definition paragraph, 
containing a footnote}
 @vindex org-html-head-include-default-style
 @vindex org-html-head
 @vindex org-html-head-extra
address@hidden #+HTML_INCLUDE_STYLE
address@hidden @code{#+HTML_INCLUDE_STYLE}
 The HTML export back-end includes a compact default style in each exported
 HTML file.  To override the default style with another style, use these
 keywords in the Org file.  They will replace the global defaults the HTML
 exporter uses.
 
address@hidden #+HTML_HEAD
address@hidden #+HTML_HEAD_EXTRA
address@hidden @code{#+HTML_HEAD}
address@hidden @code{#+HTML_HEAD_EXTRA}
 @example
 #+HTML_HEAD: <link rel="stylesheet" type="text/css" href="style1.css" />
 #+HTML_HEAD_EXTRA: <link rel="alternate stylesheet" type="text/css" 
href="style2.css" />
@@ -12058,7 +12059,7 @@ it on your own web server.
 
 To use this program, just add this line to the Org file:
 
address@hidden #+INFOJS_OPT
address@hidden @code{#+INFOJS_OPT}
 @example
 #+INFOJS_OPT: view:info toc:nil
 @end example
@@ -12179,7 +12180,7 @@ The @LaTeX{} export back-end has several additional 
keywords for customizing
 
 @table @samp
 @item DESCRIPTION
address@hidden #+DESCRIPTION (@LaTeX{})
address@hidden @code{#+DESCRIPTION} (@LaTeX{})
 The document's description.  The description along with author name,
 keywords, and related file metadata are inserted in the output file by the
 @samp{hyperref} package.  See @code{org-latex-hyperref-template} for
@@ -12188,7 +12189,7 @@ typesetting description into the document's front 
matter.  Use multiple
 @code{#+DESCRIPTION} lines for long descriptions.
 
 @item LATEX_CLASS
address@hidden #+LATEX_CLASS
address@hidden @code{#+LATEX_CLASS}
 @vindex org-latex-default-class
 @vindex org-latex-classes
 This is @LaTeX{} document class, such as @code{article}, @code{report},
@@ -12199,32 +12200,32 @@ default class name from the 
@code{org-latex-default-class} variable.  Org has
 element of @code{org-latex-classes}.
 
 @item LATEX_CLASS_OPTIONS
address@hidden #+LATEX_CLASS_OPTIONS
address@hidden @code{#+LATEX_CLASS_OPTIONS}
 Options the @LaTeX{} export back-end uses when calling the @LaTeX{} document
 class.
 
 @item LATEX_COMPILER
address@hidden #+LATEX_COMPILER
address@hidden @code{#+LATEX_COMPILER}
 @vindex org-latex-compiler
 The compiler, such as @samp{pdflatex}, @samp{xelatex}, @samp{lualatex}, for
 producing the PDF (@code{org-latex-compiler}).
 
 @item LATEX_HEADER
address@hidden #+LATEX_HEADER
address@hidden @code{#+LATEX_HEADER}
 @vindex org-latex-classes
 Arbitrary lines to add to the document's preamble, before the @samp{hyperref}
 settings.  See @code{org-latex-classes} for adjusting the structure and order
 of the @LaTeX{} headers.
 
 @item LATEX_HEADER_EXTRA
address@hidden #+LATEX_HEADER_EXTRA
address@hidden @code{#+LATEX_HEADER_EXTRA}
 @vindex org-latex-classes
 Arbitrary lines to add to the document's preamble, before the @samp{hyperref}
 settings.  See @code{org-latex-classes} for adjusting the structure and order
 of the @LaTeX{} headers.
 
 @item KEYWORDS
address@hidden #+KEYWORDS (@LaTeX{})
address@hidden @code{#+KEYWORDS} (@LaTeX{})
 The keywords for the document.  The description along with author name,
 keywords, and related file metadata are inserted in the output file by the
 @samp{hyperref} package.  See @code{org-latex-hyperref-template} for
@@ -12233,7 +12234,7 @@ typesetting description into the document's front 
matter.  Use multiple
 @code{#+KEYWORDS} lines if necessary.
 
 @item SUBTITLE
address@hidden #+SUBTITLE (@LaTeX{})
address@hidden @code{#+SUBTITLE} (@LaTeX{})
 @vindex org-latex-subtitle-separate
 @vindex org-latex-subtitle-format
 The document's subtitle.  It is typeset as per
@@ -12275,10 +12276,10 @@ exporter splices the values of 
@code{org-latex-default-packages-alist} and
 @code{org-latex-packages-alist}.  Use the same three variables to define
 custom sectioning or custom classes.
 
address@hidden #+LATEX_CLASS
address@hidden #+LATEX_CLASS_OPTIONS
address@hidden property, EXPORT_LATEX_CLASS
address@hidden property, EXPORT_LATEX_CLASS_OPTIONS
address@hidden @code{#+LATEX_CLASS}
address@hidden @code{#+LATEX_CLASS_OPTIONS}
address@hidden property, @code{EXPORT_LATEX_CLASS}
address@hidden property, @code{EXPORT_LATEX_CLASS_OPTIONS}
 The @LaTeX{} export back-end sends the @code{LATEX_CLASS_OPTIONS} keyword and
 @code{EXPORT_LATEX_CLASS_OPTIONS} property as options to the @LaTeX{}
 @code{\documentclass} macro.  The options and the syntax for specifying them,
@@ -12288,8 +12289,8 @@ including enclosing them in square brackets, follow 
@LaTeX{} conventions.
 #+LATEX_CLASS_OPTIONS: [a4paper,11pt,twoside,twocolumn]
 @end example
 
address@hidden #+LATEX_HEADER
address@hidden #+LATEX_HEADER_EXTRA
address@hidden @code{#+LATEX_HEADER}
address@hidden @code{#+LATEX_HEADER_EXTRA}
 The @LaTeX{} export back-end appends values from @code{LATEX_HEADER} and
 @code{LATEX_HEADER_EXTRA} keywords to the @LaTeX{} header.  The docstring for
 @code{org-latex-classes} explains in more detail.  Also note that @LaTeX{}
@@ -12323,14 +12324,14 @@ Code embedded in-line @@@@latex:any arbitrary LaTeX 
code@@@@ in a paragraph.
 @end example
 
 Inserting as one or more keyword lines in the Org file:
address@hidden #+LATEX
address@hidden @code{#+LATEX}
 @example
 #+LATEX: any arbitrary LaTeX code
 @end example
 
 Inserting as an export block in the Org file, where the back-end exports any
 code between begin and end markers:
address@hidden #+BEGIN_EXPORT latex
address@hidden @code{#+BEGIN_EXPORT latex}
 @example
 #+BEGIN_EXPORT latex
 any arbitrary LaTeX code
@@ -12340,7 +12341,7 @@ any arbitrary LaTeX code
 @node Tables in @LaTeX{} export
 @subsection Tables in @LaTeX{} export
 @cindex tables, in @LaTeX{} export
address@hidden #+ATTR_LATEX, in tables
address@hidden @code{#+ATTR_LATEX}, in tables
 
 The @LaTeX{} export back-end can pass several @LaTeX{} attributes for table
 contents and layout.  Besides specifying label and caption (@pxref{Images and
@@ -12444,7 +12445,7 @@ Set the caption with the @LaTeX{} command
 @subsection Images in @LaTeX{} export
 @cindex images, inline in @LaTeX{}
 @cindex inlining images in @LaTeX{}
address@hidden #+ATTR_LATEX, in images
address@hidden @code{#+ATTR_LATEX}, in images
 
 The @LaTeX{} export back-end processes image links in Org files that do not
 have descriptions, such as these links @samp{[[file:img.jpg]]} or
@@ -12514,7 +12515,7 @@ Set the @code{:comment-include} attribute to 
address@hidden value for the
 @node Plain lists in @LaTeX{} export
 @subsection Plain lists in @LaTeX{} export
 @cindex plain lists, in @LaTeX{} export
address@hidden #+ATTR_LATEX, in plain lists
address@hidden @code{#+ATTR_LATEX}, in plain lists
 
 The @LaTeX{} export back-end accepts the @code{:environment} and
 @code{:options} attributes for plain lists.  Both attributes work together
@@ -12548,7 +12549,7 @@ four:
 @node Source blocks in @LaTeX{} export
 @subsection Source blocks in @LaTeX{} export
 @cindex source blocks, in @LaTeX{} export
address@hidden #+ATTR_LATEX, in source blocks
address@hidden @code{#+ATTR_LATEX}, in source blocks
 
 The @LaTeX{} export back-end can make source code blocks into floating
 objects through the attributes @code{:float} and @code{:options}.  For
@@ -12595,7 +12596,7 @@ variables.
 @subsection Example blocks in @LaTeX{} export
 @cindex example blocks, in @LaTeX{} export
 @cindex verbatim blocks, in @LaTeX{} export
address@hidden #+ATTR_LATEX, in example blocks
address@hidden @code{#+ATTR_LATEX}, in example blocks
 
 The @LaTeX{} export back-end wraps the contents of example blocks in a
 @samp{verbatim} environment.  To change this behavior to use another
@@ -12615,7 +12616,7 @@ This sentence is false.
 @cindex special blocks, in @LaTeX{} export
 @cindex abstract, in @LaTeX{} export
 @cindex proof, in @LaTeX{} export
address@hidden #+ATTR_LATEX, in special blocks
address@hidden @code{#+ATTR_LATEX}, in special blocks
 
 
 For other special blocks in the Org file, the @LaTeX{} export back-end makes
@@ -12663,7 +12664,7 @@ example:
 @node Horizontal rules in @LaTeX{} export
 @subsection Horizontal rules in @LaTeX{} export
 @cindex horizontal rules, in @LaTeX{} export
address@hidden #+ATTR_LATEX, in horizontal rules
address@hidden @code{#+ATTR_LATEX}, in horizontal rules
 
 The @LaTeX{} export back-end converts horizontal rules by the specified
 @code{:width} and @code{:thickness} attributes.  For example:
@@ -12747,10 +12748,10 @@ executable.  Without @file{zip}, export cannot finish.
 @anchor{x-export-to-odt}
 @cindex region, active
 @cindex active region
address@hidden transient-mark-mode
address@hidden @code{transient-mark-mode}
 @table @kbd
 @orgcmd{C-c C-e o o,org-odt-export-to-odt}
address@hidden property EXPORT_FILE_NAME
address@hidden property, @code{EXPORT_FILE_NAME}
 
 Export as OpenDocument Text file.
 
@@ -12787,13 +12788,13 @@ output.  Setting these keywords works similar to the 
general options
 
 @table @samp
 @item DESCRIPTION
address@hidden #+DESCRIPTION (ODT)
address@hidden @code{#+DESCRIPTION} (ODT)
 This is the document's description, which the ODT export back-end inserts as
 document metadata.  For long descriptions, use multiple @code{#+DESCRIPTION}
 lines.
 
 @item KEYWORDS
address@hidden #+KEYWORDS (ODT)
address@hidden @code{#+KEYWORDS} (ODT)
 The keywords for the document.  The ODT export back-end inserts the
 description along with author name, keywords, and related file metadata as
 metadata in the output file.  Use multiple @code{#+KEYWORDS} lines if
@@ -12848,7 +12849,7 @@ generic commands:
 @vindex org-odt-convert
 @table @kbd
 
address@hidden M-x org-odt-convert RET
address@hidden M-x org-odt-convert @key{RET}
 Convert an existing document from one format to another.  With a prefix
 argument, opens the newly produced file.
 @end table
@@ -12882,7 +12883,7 @@ Open one, modify, and save as either OpenDocument Text 
(@file{.odt}) or
 OpenDocument Template (@file{.ott}) file.
 
 @item
address@hidden #+ODT_STYLES_FILE
address@hidden @code{#+ODT_STYLES_FILE}
 @vindex org-odt-styles-file
 Customize the variable @code{org-odt-styles-file} and point it to the
 newly created file.  For additional configuration options
@@ -12941,7 +12942,7 @@ back-end honors any table alignments and relative 
widths for columns
 Note that the ODT export back-end interprets column widths as weighted
 ratios, the default weight being 1.
 
address@hidden #+ATTR_ODT
address@hidden @code{#+ATTR_ODT}
 
 Specifying @code{:rel-width} property on an @code{#+ATTR_ODT} line controls
 the width of the table.  For example:
@@ -12998,7 +12999,7 @@ when clicked jumps to @uref{http://Orgmode.org} 
website, do the following
 
 @subsubheading Sizing and scaling of embedded images
 
address@hidden #+ATTR_ODT
address@hidden @code{#+ATTR_ODT}
 Control the size and scale of the embedded images with the @code{#+ATTR_ODT}
 attribute.
 
@@ -13054,7 +13055,7 @@ height:width ratio, do the following
 
 @subsubheading Anchoring of images
 
address@hidden #+ATTR_ODT
address@hidden @code{#+ATTR_ODT}
 The ODT export back-end can anchor images to @samp{"as-char"},
 @samp{"paragraph"}, or @samp{"page"}.  Set the preferred anchor using the
 @code{:anchor} property of the @code{#+ATTR_ODT} line.
@@ -13123,10 +13124,10 @@ To quickly verify the reliability of the 
@LaTeX{}-to-MathML converter, use
 the following commands:
 
 @table @kbd
address@hidden M-x org-odt-export-as-odf RET
address@hidden M-x org-odt-export-as-odf @key{RET}
 Convert a @LaTeX{} math snippet to an OpenDocument formula (@file{.odf}) file.
 
address@hidden M-x org-odt-export-as-odf-and-open RET
address@hidden M-x org-odt-export-as-odf-and-open @key{RET}
 Convert a @LaTeX{} math snippet to an OpenDocument formula (@file{.odf}) file
 and open the formula file with the system-registered application.
 @end table
@@ -13452,7 +13453,7 @@ This paragraph is specially formatted and uses bold 
text.
 @subsubheading Customizing tables in ODT export
 @cindex tables, in ODT export
 
address@hidden #+ATTR_ODT
address@hidden @code{#+ATTR_ODT}
 Override the default table format by specifying a custom table style with the
 @code{#+ATTR_ODT} line.  For a discussion on default formatting of tables
 @pxref{Tables in ODT export}.
@@ -13696,52 +13697,52 @@ Texinfo output.  Setting these keywords works similar 
to the general options
 @table @samp
 
 @item SUBTITLE
address@hidden #+SUBTITLE (Texinfo)
address@hidden @code{#+SUBTITLE} (Texinfo)
 The document subtitle.
 
 @item SUBAUTHOR
address@hidden #+SUBAUTHOR
address@hidden @code{#+SUBAUTHOR}
 The document subauthor.
 
 @item TEXINFO_FILENAME
address@hidden #+TEXINFO_FILENAME
address@hidden @code{#+TEXINFO_FILENAME}
 The Texinfo filename.
 
 @item TEXINFO_CLASS
address@hidden #+TEXINFO_CLASS
address@hidden @code{#+TEXINFO_CLASS}
 @vindex org-texinfo-default-class
 The default document class (@code{org-texinfo-default-class}), which must be
 a member of @code{org-texinfo-classes}.
 
 @item TEXINFO_HEADER
address@hidden #+TEXINFO_HEADER
address@hidden @code{#+TEXINFO_HEADER}
 Arbitrary lines inserted at the end of the header.
 
 @item TEXINFO_POST_HEADER
address@hidden #+TEXINFO_POST_HEADER
address@hidden @code{#+TEXINFO_POST_HEADER}
 Arbitrary lines inserted after the end of the header.
 
 @item TEXINFO_DIR_CATEGORY
address@hidden #+TEXINFO_DIR_CATEGORY
address@hidden @code{#+TEXINFO_DIR_CATEGORY}
 The directory category of the document.
 
 @item TEXINFO_DIR_TITLE
address@hidden #+TEXINFO_DIR_TITLE
address@hidden @code{#+TEXINFO_DIR_TITLE}
 The directory title of the document.
 
 @item TEXINFO_DIR_DESC
address@hidden #+TEXINFO_DIR_DESC
address@hidden @code{#+TEXINFO_DIR_DESC}
 The directory description of the document.
 
 @item TEXINFO_PRINTED_TITLE
address@hidden #+TEXINFO_PRINTED_TITLE
address@hidden @code{#+TEXINFO_PRINTED_TITLE}
 The printed title of the document.
 @end table
 
 @node Texinfo file header
 @subsection Texinfo file header
 
address@hidden #+TEXINFO_FILENAME
address@hidden @code{#+TEXINFO_FILENAME}
 After creating the header for a Texinfo file, the Texinfo back-end
 automatically generates a name and destination path for the Info file.  To
 override this default with a more sensible path and name, specify the
@@ -13749,8 +13750,8 @@ override this default with a more sensible path and 
name, specify the
 
 @vindex org-texinfo-coding-system
 @vindex org-texinfo-classes
address@hidden #+TEXINFO_HEADER
address@hidden #+TEXINFO_CLASS
address@hidden @code{#+TEXINFO_HEADER}
address@hidden @code{#+TEXINFO_CLASS}
 Along with the output's file name, the Texinfo header also contains language
 details (@pxref{Export settings}) and encoding system as set in the
 @code{org-texinfo-coding-system} variable.  Insert @code{#+TEXINFO_HEADER}
@@ -13764,14 +13765,14 @@ setting the @code{#+TEXINFO_CLASS} keyword to that 
class.
 @node Texinfo title and copyright page
 @subsection Texinfo title and copyright page
 
address@hidden #+TEXINFO_PRINTED_TITLE
address@hidden @code{#+TEXINFO_PRINTED_TITLE}
 The default template for hard copy output has a title page with
 @code{#+TITLE} and @code{#+AUTHOR} (@pxref{Export settings}).  To replace the
 regular @code{#+TITLE} with something different for the printed version, use
 the @code{#+TEXINFO_PRINTED_TITLE} and @code{#+SUBTITLE} keywords.  Both
 expect raw Texinfo code for setting their values.
 
address@hidden #+SUBAUTHOR
address@hidden @code{#+SUBAUTHOR}
 If one @code{#+AUTHOR} is not sufficient, add multiple @code{#+SUBAUTHOR}
 keywords.  They have to be set in raw Texinfo code.
 
@@ -13781,7 +13782,7 @@ keywords.  They have to be set in raw Texinfo code.
 #+TEXINFO_PRINTED_TITLE: This Long Title@@address@hidden,@@address@hidden Is 
Broken in @@address@hidden@}
 @end example
 
address@hidden property, COPYING
address@hidden property, @code{COPYING}
 Copying material is defined in a dedicated headline with a address@hidden
 @code{:COPYING:} property.  The back-end inserts the contents within a
 @code{@@copying} command at the beginning of the document.  The heading
@@ -13809,9 +13810,9 @@ Copyright information is printed on the back of the 
title page.
 @cindex @code{install-info} parameters, in Texinfo export
 @cindex Texinfo export, @code{install-info} parameters
 
address@hidden #+TEXINFO_DIR_CATEGORY
address@hidden #+TEXINFO_DIR_TITLE
address@hidden #+TEXINFO_DIR_DESC
address@hidden @code{#+TEXINFO_DIR_CATEGORY}
address@hidden @code{#+TEXINFO_DIR_TITLE}
address@hidden @code{#+TEXINFO_DIR_DESC}
 The end result of the Texinfo export process is the creation of an Info file.
 This Info file's metadata has variables for category, title, and description:
 @code{#+TEXINFO_DIR_CATEGORY}, @code{#+TEXINFO_DIR_TITLE}, and
@@ -13831,7 +13832,7 @@ Here is an example that writes to the Info directory 
file:
 
 @vindex org-texinfo-classes
 @vindex org-texinfo-default-class
address@hidden #+TEXINFO_CLASS
address@hidden @code{#+TEXINFO_CLASS}
 The Texinfo export back-end uses a pre-defined scheme to convert Org
 headlines to an equivalent Texinfo structuring commands.  A scheme like this
 maps top-level headlines to numbered chapters tagged as @code{@@chapter} and
@@ -13846,12 +13847,12 @@ If an Org headline's level has no associated Texinfo 
structuring command, or
 is below a certain threshold (@pxref{Export settings}), then the Texinfo
 export back-end makes it into a list item.
 
address@hidden property, APPENDIX
address@hidden property, @code{APPENDIX}
 The Texinfo export back-end makes any headline with a address@hidden
 @code{:APPENDIX:} property into an appendix.  This happens independent of the
 Org headline level or the @code{#+TEXINFO_CLASS}.
 
address@hidden property, DESCRIPTION
address@hidden property, @code{DESCRIPTION}
 The Texinfo export back-end creates a menu entry after the Org headline for
 each regular sectioning structure.  To override this with a shorter menu
 entry, use the @code{:ALT_TITLE:} property (@pxref{Table of contents}).
@@ -13877,22 +13878,22 @@ Top Node,,texinfo}, for more information.
 @node Indices
 @subsection Indices
 
address@hidden #+CINDEX
address@hidden @code{#+CINDEX}
 @cindex concept index, in Texinfo export
 @cindex Texinfo export, index, concept
address@hidden #+FINDEX
address@hidden @code{#+FINDEX}
 @cindex function index, in Texinfo export
 @cindex Texinfo export, index, function
address@hidden #+KINDEX
address@hidden @code{#+KINDEX}
 @cindex keystroke index, in Texinfo export
 @cindex Texinfo export, keystroke index
address@hidden #+PINDEX
address@hidden @code{#+PINDEX}
 @cindex program index, in Texinfo export
 @cindex Texinfo export, program index
address@hidden #+TINDEX
address@hidden @code{#+TINDEX}
 @cindex data type index, in Texinfo export
 @cindex Texinfo export, data type index
address@hidden #+VINDEX
address@hidden @code{#+VINDEX}
 @cindex variable index, in Texinfo export
 @cindex Texinfo export, variable index
 The Texinfo export back-end recognizes these indexing keywords if used in the
@@ -13905,7 +13906,7 @@ escaped with @samp{@@} if they not belong to a Texinfo 
command.
 #+CINDEX: Defining indexing entries
 @end example
 
address@hidden property, INDEX
address@hidden property, @code{INDEX}
 For the back-end to generate an index entry for a headline, set the
 @code{:INDEX:} property to @samp{cp} or @samp{vr}.  These abbreviations come
 from Texinfo that stand for concept index and variable index.  The Texinfo
@@ -13925,8 +13926,8 @@ inserts the index after its contents.
 
 Use any of the following three methods to insert or escape raw Texinfo code:
 
address@hidden #+TEXINFO
address@hidden #+BEGIN_EXPORT texinfo
address@hidden @code{#+TEXINFO}
address@hidden @code{#+BEGIN_EXPORT texinfo}
 @example
 Richard @@@@texinfo:@@address@hidden@@@@Stallman@@@@texinfo:@}@@@@ commence' 
GNU.
 
@@ -13941,10 +13942,10 @@ This paragraph is preceded by...
 
 @node Plain lists in Texinfo export
 @subsection Plain lists in Texinfo export
address@hidden #+ATTR_TEXINFO, in plain lists
address@hidden @code{#+ATTR_TEXINFO}, in plain lists
 @cindex Two-column tables, in Texinfo export
 
address@hidden :table-type attribute, in Texinfo export
address@hidden @code{:table-type} attribute, in Texinfo export
 The Texinfo export back-end by default converts description lists in the Org
 file using the default command @code{@@table}, which results in a table with
 two columns.  To change this behavior, specify @code{:table-type} with
@@ -13952,14 +13953,14 @@ two columns.  To change this behavior, specify 
@code{:table-type} with
 @inforef{Two-column Tables,,texinfo}.
 
 @vindex org-texinfo-table-default-markup
address@hidden :indic attribute, in Texinfo export
address@hidden @code{:indic} attribute, in Texinfo export
 The Texinfo export back-end by default also applies a text highlight based on
 the defaults stored in @code{org-texinfo-table-default-markup}.  To override
 the default highlight command, specify another one with the @code{:indic}
 attribute.
 
 @cindex Multiple entries in two-column tables, in Texinfo export
address@hidden :sep attribute, in Texinfo export
address@hidden @code{:sep} attribute, in Texinfo export
 Org syntax is limited to one entry per list item.  Nevertheless, the Texinfo
 export back-end can split that entry according to any text provided through
 the @code{:sep} attribute.  Each part then becomes a new entry in the first
@@ -13985,7 +13986,7 @@ This is the common text for variables foo and bar.
 
 @node Tables in Texinfo export
 @subsection Tables in Texinfo export
address@hidden #+ATTR_TEXINFO, in tables
address@hidden @code{#+ATTR_TEXINFO}, in tables
 
 When exporting tables, the Texinfo export back-end uses the widest cell width
 in each column.  To override this and instead specify as fractions of line
@@ -13998,7 +13999,7 @@ length, use the @code{:columns} attribute.  See example 
below.
 
 @node Images in Texinfo export
 @subsection Images in Texinfo export
address@hidden #+ATTR_TEXINFO, in images
address@hidden @code{#+ATTR_TEXINFO}, in images
 
 Insert a file link to the image in the Org file, and the Texinfo export
 back-end inserts the image.  These links must have the usual supported image
@@ -14013,7 +14014,7 @@ the text using Texinfo code, as shown in the example:
 
 @node Special blocks in Texinfo export
 @subsection Special blocks
address@hidden #+ATTR_TEXINFO, in special blocks
address@hidden @code{#+ATTR_TEXINFO}, in special blocks
 
 The Texinfo export back-end converts special blocks to commands with the same
 name.  It also adds any @code{:options} attributes to the end of the command,
@@ -14136,7 +14137,7 @@ configure the variable @code{org-icalendar-categories}. 
 To assign clock
 alarms based on time, configure the @code{org-icalendar-alarm-time} variable.
 
 @vindex org-icalendar-store-UID
address@hidden property, ID
address@hidden property, @code{ID}
 The iCalendar format standard requires globally unique identifier---UID---for
 each entry.  The iCalendar export back-end creates UIDs during export.  To
 save a copy of the UID in the Org file set the variable
@@ -14165,26 +14166,27 @@ and write it to 
@code{org-icalendar-combined-agenda-file} file name.
 
 @vindex org-use-property-inheritance
 @vindex org-icalendar-include-body
address@hidden property, SUMMARY
address@hidden property, DESCRIPTION
address@hidden property, LOCATION
address@hidden property, TIMEZONE
-The iCalendar export back-end includes SUMMARY, DESCRIPTION, LOCATION and
-TIMEZONE properties from the Org entries when exporting.  To force the
-back-end to inherit the LOCATION and TIMEZONE properties, configure the
address@hidden variable.
-
-When Org entries do not have SUMMARY, DESCRIPTION and LOCATION properties,
-the iCalendar export back-end derives the summary from the headline, and
-derives the description from the body of the Org item.  The
address@hidden variable limits the maximum number of
address@hidden property, @code{SUMMARY}
address@hidden property, @code{DESCRIPTION}
address@hidden property, @code{LOCATION}
address@hidden property, @code{TIMEZONE}
+The iCalendar export back-end includes @code{SUMMARY}, @code{DESCRIPTION},
address@hidden and @code{TIMEZONE} properties from the Org entries when
+exporting.  To force the back-end to inherit the @code{LOCATION} and
address@hidden properties, configure the @code{org-use-property-inheritance}
+variable.
+
+When Org entries do not have @code{SUMMARY}, @code{DESCRIPTION} and
address@hidden properties, the iCalendar export back-end derives the summary
+from the headline, and derives the description from the body of the Org item.
+The @code{org-icalendar-include-body} variable limits the maximum number of
 characters of the content are turned into its description.
 
-The TIMEZONE property can be used to specify a per-entry time zone, and will
-be applied to any entry with timestamp information.  Time zones should be
-specified as per the IANA time zone database format, e.g.@: ``Asia/Almaty''.
-Alternately, the property value can be ``UTC'', to force UTC time for this
-entry only.
+The @code{TIMEZONE} property can be used to specify a per-entry time zone,
+and will be applied to any entry with timestamp information.  Time zones
+should be specified as per the IANA time zone database format, e.g.@:
+``Asia/Almaty''.  Alternately, the property value can be ``UTC'', to force
+UTC time for this entry only.
 
 Exporting to iCalendar format depends in large part on the capabilities of
 the destination application.  Some are more lenient than others.  Consult the
@@ -14429,7 +14431,7 @@ In-place conversions are particularly handy for quick 
conversion of tables
 and lists in foreign buffers.  For example, turn on the minor mode @code{M-x
 orgstruct-mode} in an HTML buffer, then use the convenient Org keyboard
 commands to create a list, select it, and covert it to HTML with @code{M-x
-org-html-convert-region-to-html RET}.
+org-html-convert-region-to-html @key{RET}}.
 
 
 @node Publishing
@@ -14473,7 +14475,7 @@ and many other properties of a project.
 
 @node Project alist
 @subsection The variable @code{org-publish-project-alist}
address@hidden org-publish-project-alist
address@hidden @code{org-publish-project-alist}
 @cindex projects, for publishing
 
 @vindex org-publish-project-alist
@@ -14929,7 +14931,7 @@ The file will be created when first publishing a 
project with the
 "theindex.inc"}.  You can then build around this include statement by adding
 a title, style information, etc.
 
address@hidden #+INDEX
address@hidden @code{#+INDEX}
 Index entries are specified with @code{#+INDEX} keyword.  An entry that
 contains an exclamation mark will create a sub item.
 
@@ -15100,8 +15102,8 @@ such as not inside comments and fixed width areas.  
Here's a sample
 #+END_SRC
 @end example
 
-Org can take the code in the block between the @samp{#+BEGIN_SRC} and
address@hidden tags, and format, compile, execute, and show the results.
+Org can take the code in the block between the @code{#+BEGIN_SRC} and
address@hidden tags, and format, compile, execute, and show the results.
 Org can simplify many housekeeping tasks essential to modern code
 maintenance.  That's why these blocks in Org mode literature are sometimes
 referred to as @samp{live code} blocks (as compared to the static text and
@@ -15110,7 +15112,7 @@ block by tweaking the headers for compiling, execution, 
extraction.
 
 Org's @samp{src} code block type is one of many block types, such as quote,
 export, verse, latex, example, and verbatim.  This section pertains to
address@hidden code blocks between @samp{#+BEGIN_SRC} and @samp{#+END_SRC}
address@hidden code blocks between @code{#+BEGIN_SRC} and @code{#+END_SRC}
 
 For editing @samp{src} code blocks, Org provides native Emacs major-modes.
 That leverages the latest Emacs features for that source code language mode.
@@ -15172,8 +15174,8 @@ Details of Org's facilities for working with source 
code are shown next.
 @section Structure of code blocks
 @cindex code block, structure
 @cindex source code, block structure
address@hidden #+NAME
address@hidden #+BEGIN_SRC
address@hidden @code{#+NAME}
address@hidden @code{#+BEGIN_SRC}
 
 Org offers two ways to structure source code in Org documents: in a
 @samp{src} block, and directly inline.  Both specifications are shown below.
@@ -15215,7 +15217,7 @@ results.  Code from other blocks, other files, and from 
table formulas
 (@pxref{The spreadsheet}) can use the name to reference a @samp{src} block.
 This naming serves the same purpose as naming Org tables.  Org mode requires
 unique names.  For duplicate names, Org mode's behavior is undefined.
address@hidden #+NAME
address@hidden @code{#+NAME}
 @item #+BEGIN_SRC
 @item #+END_SRC
 Mandatory.  They mark the start and end of a block that Org requires.  The
@@ -15426,7 +15428,7 @@ block header arguments: One, set @code{padline} 
(@pxref{padline}) to true
 @section Evaluating code blocks
 @cindex code block, evaluating
 @cindex source code, evaluating
address@hidden #+RESULTS
address@hidden @code{#+RESULTS}
 
 A note about security: With code evaluation comes the risk of harm.  Org
 safeguards by prompting for user's permission before executing any code in
@@ -15449,7 +15451,7 @@ evaluation from the @kbd{C-c C-c} key binding.} calls 
the
 @code{org-babel-execute-src-block} function, which executes the code in the
 block, collects the results, and inserts them in the buffer.
 
address@hidden #+CALL
address@hidden @code{#+CALL}
 By calling a named code address@hidden, the constructs call_<name>()
 and src_<lang>@address@hidden are not evaluated when they appear in a keyword 
line
 (i.e. lines starting with @code{#+KEYWORD:}, @pxref{In-buffer settings}).}
@@ -15732,7 +15734,7 @@ each line.  Note that Org currently accepts the plural 
spelling of
 @code{#+HEADER:} only as a convenience for backward-compatibility.  It may be
 removed at some point.
 
address@hidden #+HEADER:
address@hidden @code{#+HEADER:}
 
 Multi-line header arguments on an unnamed @samp{src} code block:
 
@@ -16146,7 +16148,7 @@ Interpreted as raw Org mode.  Inserted directly into 
the buffer.  Aligned if
 it is a table.  Usage example: @code{:results value raw}.
 @item @code{org}
 Results enclosed in a @code{BEGIN_SRC org} block.  For comma-escape, either
address@hidden in the block, or export the file.  Usage example: @code{:results
address@hidden in the block, or export the file.  Usage example: @code{:results
 value org}.
 @item @code{html}
 Results enclosed in a @code{BEGIN_EXPORT html} block.  Usage example:
@@ -16233,7 +16235,7 @@ output file, @code{:dir} specifies the default 
directory during @samp{src}
 code block execution.  If it is absent, then the directory associated with
 the current buffer is used.  In other words, supplying @code{:dir path}
 temporarily has the same effect as changing the current directory with
address@hidden cd path RET}, and then not supplying @code{:dir}.  Under the
address@hidden cd path @key{RET}}, and then not supplying @code{:dir}.  Under 
the
 surface, @code{:dir} simply sets the value of the Emacs variable
 @code{default-directory}.
 
@@ -17127,10 +17129,10 @@ Active key bindings in code blocks:
 @item @kbd{C-c C-c} @tab @code{org-babel-execute-src-block}
 @kindex C-c C-o
 @item @kbd{C-c C-o} @tab @code{org-babel-open-src-block-result}
address@hidden M-up
address@hidden @address@hidden    @tab @code{org-babel-load-in-session}
address@hidden M-down
address@hidden @address@hidden  @tab @code{org-babel-switch-to-session}
address@hidden M-UP
address@hidden @address@hidden    @tab @code{org-babel-load-in-session}
address@hidden M-DOWN
address@hidden @address@hidden  @tab @code{org-babel-switch-to-session}
 @end multitable
 
 Active key bindings in Org mode buffer:
@@ -17247,12 +17249,12 @@ emacs -Q --batch --eval "
 @chapter Miscellaneous
 
 @menu
-* Completion::                  M-TAB guesses completions
+* Completion::                  address@hidden guesses completions
 * Easy templates::              Quick insertion of structural elements
 * Speed keys::                  Electric commands at the beginning of a 
headline
 * Code evaluation security::    Org mode files evaluate inline code
 * Customization::               Adapting Org to changing tastes
-* In-buffer settings::          Overview of the #+KEYWORDS
+* In-buffer settings::          Overview of the @code{#+KEYWORDS}
 * The very busy C-c C-c key::   When in doubt, press C-c C-c
 * Clean view::                  Getting rid of leading stars in the outline
 * TTY keys::                    Using Org on a tty
@@ -17286,7 +17288,7 @@ is involved.  Such mode-specific hot keys have become 
an integral part of
 Emacs and Org provides several shortcuts.
 
 @table @kbd
address@hidden address@hidden
address@hidden M-TAB
 @item address@hidden
 Complete word at point
 @itemize @bullet
@@ -17300,7 +17302,7 @@ can be used in search links like @samp{[[*find this 
headline]]}.
 @item
 After @samp{:} in a headline, complete tags.  The list of tags is taken
 from the variable @code{org-tag-alist} (possibly set through the
address@hidden in-buffer option, @pxref{Setting tags}), or it is created
address@hidden in-buffer option, @pxref{Setting tags}), or it is created
 dynamically from all tags used in the current buffer.
 @item
 After @samp{:} and not in a headline, complete property keys.  The list
@@ -17313,7 +17315,7 @@ After @samp{#+}, complete the special keywords like 
@samp{TYP_TODO} or
 file-specific @samp{OPTIONS}.  After option keyword is complete, pressing
 @address@hidden again will insert example settings for that option.
 @item
-After @samp{#+STARTUP: }, complete startup keywords.
+After @code{#+STARTUP:}, complete startup keywords.
 @item
 When the point is anywhere else, complete dictionary words using Ispell.
 @end itemize
@@ -17457,8 +17459,8 @@ Org executes formulas in tables (@pxref{The 
spreadsheet}) either through the
 @cindex variables, for customization
 
 Org has more than 500 variables for customization.  They can be accessed
-through the usual @kbd{M-x org-customize RET} command.  Or through the Org
-menu, @code{Org->Customization->Browse Org Group}.  Org also has per-file
+through the usual @kbd{M-x org-customize @key{RET}} command.  Or through the
+Org menu, @code{Org->Customization->Browse Org Group}.  Org also has per-file
 settings for some variables (@pxref{In-buffer settings}).
 
 @node In-buffer settings
@@ -17477,13 +17479,13 @@ reopening the Org file in Emacs also activates the 
changes.
 @table @kbd
 @item #+ARCHIVE: %s_done::
 Sets the archive location of the agenda file.  This location applies to the
-lines until the next @samp{#+ARCHIVE} line, if any, in the Org file.  The
+lines until the next @code{#+ARCHIVE} line, if any, in the Org file.  The
 first archive location in the Org file also applies to any entries before it.
 The corresponding variable is @code{org-archive-location}.
 @item #+CATEGORY:
 Sets the category of the agenda file, which applies to the entire document.
 @item #+COLUMNS: %25ITEM ...
address@hidden property, COLUMNS
address@hidden property, @code{COLUMNS}
 Sets the default format for columns view.  Org uses this format for column
 views where there is no @code{COLUMNS} property.
 @item #+CONSTANTS: name1=value1 ...
@@ -17510,7 +17512,7 @@ have a lower ASCII number than the lowest priority.
 @item #+PROPERTY: Property_Name Value
 This line sets a default inheritance value for entries in the current
 buffer, most useful for specifying the allowed values of a property.
address@hidden #+SETUPFILE
address@hidden @code{#+SETUPFILE}
 @item #+SETUPFILE: file or URL
 The setup file or a URL pointing to such file is for additional in-buffer
 settings.  Org loads this file and parses it for any settings in it only when
@@ -17522,7 +17524,7 @@ parses the contents of this document as if it was 
included in the buffer.  It
 can be another Org file.  To visit the file (not a URL), @kbd{C-c '} while
 the cursor is on the line with the file name.
 @item #+STARTUP:
address@hidden #+STARTUP
address@hidden @code{#+STARTUP}
 Startup options Org uses when first visiting a file.
 
 The first set of options deals with the initial visibility of the outline
@@ -17703,7 +17705,7 @@ fnadjust    @r{automatically renumber and sort 
footnotes}
 nofnadjust  @r{do not renumber and sort automatically}
 @end example
 
address@hidden org-hide-block-startup
address@hidden @code{org-hide-block-startup}
 To hide blocks on startup, use these keywords.  The corresponding variable is
 @code{org-hide-block-startup}.
 @cindex @code{hideblocks}, STARTUP keyword
@@ -17713,7 +17715,7 @@ hideblocks   @r{Hide all begin/end blocks on startup}
 nohideblocks @r{Do not hide blocks on startup}
 @end example
 
address@hidden org-pretty-entities
address@hidden @code{org-pretty-entities}
 The display of entities as UTF-8 characters is governed by the variable
 @code{org-pretty-entities} and the keywords
 @cindex @code{entitiespretty}, STARTUP keyword
@@ -17728,11 +17730,11 @@ entitiesplain   @r{Leave entities plain}
 These lines specify valid tags for this file.  Org accepts multiple tags
 lines.  Tags could correspond to the @emph{fast tag selection} keys.  The
 corresponding variable is @code{org-tag-alist}.
address@hidden #+TBLFM
address@hidden @code{#+TBLFM}
 @item #+TBLFM:
 This line is for formulas for the table directly above.  A table can have
-multiple @samp{#+TBLFM:} lines.  On table recalculation, Org applies only the
-first @samp{#+TBLFM:} line.  For details see @ref{Using multiple #+TBLFM
+multiple @code{#+TBLFM:} lines.  On table recalculation, Org applies only the
+first @code{#+TBLFM:} line.  For details see @ref{Using multiple #+TBLFM
 lines} in @ref{Editing and debugging formulas}.
 @item #+TITLE:, #+AUTHOR:, #+EMAIL:, #+LANGUAGE:, #+DATE:,
 @itemx #+OPTIONS:, #+BIND:,
@@ -17748,7 +17750,7 @@ The corresponding variable is @code{org-todo-keywords}.
 @node The very busy C-c C-c key
 @section The very busy C-c C-c key
 @kindex C-c C-c
address@hidden C-c C-c, overview
address@hidden @kbd{C-c C-c}, overview
 
 The @kbd{C-c C-c} key in Org serves many purposes depending on the context.
 It is probably the most over-worked, multi-purpose key combination in Org.
@@ -17912,7 +17914,8 @@ one of the following lines:
 @end example
 
 To switch between single and double stars layouts, use @kbd{M-x
-org-convert-to-odd-levels RET} and @kbd{M-x org-convert-to-oddeven-levels}.
+org-convert-to-odd-levels @key{RET}} and @kbd{M-x
+org-convert-to-oddeven-levels @key{RET}}.
 @end enumerate
 
 @node TTY keys
@@ -17929,23 +17932,23 @@ normal @address@hidden for editing timestamp might be 
better with
 @multitable @columnfractions 0.15 0.2 0.1 0.2
 @item @b{Default} @tab @b{Alternative 1} @tab @b{Speed key} @tab 
@b{Alternative 2}
 @item @address@hidden     @tab @kbd{C-u @key{TAB}}       @tab @kbd{C} @tab
address@hidden @address@hidden    @tab @kbd{C-c C-x l}           @tab @kbd{l} 
@tab @address@hidden @key{left}}
address@hidden @address@hidden  @tab @kbd{C-c C-x L}           @tab @kbd{L} @tab
address@hidden @address@hidden   @tab @kbd{C-c C-x r}           @tab @kbd{r} 
@tab @address@hidden @key{right}}
address@hidden @address@hidden @tab @kbd{C-c C-x R}           @tab @kbd{R} @tab
address@hidden @address@hidden      @tab @kbd{C-c C-x u}           @tab @kbd{ } 
@tab @address@hidden @key{up}}
address@hidden @address@hidden    @tab @kbd{C-c C-x U}           @tab @kbd{U} 
@tab
address@hidden @address@hidden    @tab @kbd{C-c C-x d}           @tab @kbd{ } 
@tab @address@hidden @key{down}}
address@hidden @address@hidden  @tab @kbd{C-c C-x D}           @tab @kbd{D} @tab
address@hidden @address@hidden    @tab @kbd{C-c C-x l}           @tab @kbd{l} 
@tab @address@hidden @key{LEFT}}
address@hidden @address@hidden  @tab @kbd{C-c C-x L}           @tab @kbd{L} @tab
address@hidden @address@hidden   @tab @kbd{C-c C-x r}           @tab @kbd{r} 
@tab @address@hidden @key{RIGHT}}
address@hidden @address@hidden @tab @kbd{C-c C-x R}           @tab @kbd{R} @tab
address@hidden @address@hidden      @tab @kbd{C-c C-x u}           @tab @kbd{ } 
@tab @address@hidden @key{UP}}
address@hidden @address@hidden    @tab @kbd{C-c C-x U}           @tab @kbd{U} 
@tab
address@hidden @address@hidden    @tab @kbd{C-c C-x d}           @tab @kbd{ } 
@tab @address@hidden @key{DOWN}}
address@hidden @address@hidden  @tab @kbd{C-c C-x D}           @tab @kbd{D} @tab
 @item @address@hidden     @tab @kbd{C-c C-x c}           @tab @kbd{ } @tab
 @item @address@hidden     @tab @kbd{C-c C-x m}           @tab @kbd{ } @tab 
@address@hidden @key{RET}}
 @item @address@hidden   @tab @kbd{C-c C-x M}           @tab @kbd{ } @tab
address@hidden @address@hidden    @tab @kbd{C-c @key{left}}      @tab @kbd{ } 
@tab
address@hidden @address@hidden   @tab @kbd{C-c @key{right}}     @tab @kbd{ } 
@tab
address@hidden @address@hidden      @tab @kbd{C-c @key{up}}        @tab @kbd{ } 
@tab
address@hidden @address@hidden    @tab @kbd{C-c @key{down}}      @tab @kbd{ } 
@tab
address@hidden @address@hidden  @tab @kbd{C-c C-x @key{left}}  @tab @kbd{ } @tab
address@hidden @address@hidden @tab @kbd{C-c C-x @key{right}} @tab @kbd{ } @tab
address@hidden @address@hidden    @tab @kbd{C-c @key{LEFT}}      @tab @kbd{ } 
@tab
address@hidden @address@hidden   @tab @kbd{C-c @key{RIGHT}}     @tab @kbd{ } 
@tab
address@hidden @address@hidden      @tab @kbd{C-c @key{UP}}        @tab @kbd{ } 
@tab
address@hidden @address@hidden    @tab @kbd{C-c @key{DOWN}}      @tab @kbd{ } 
@tab
address@hidden @address@hidden  @tab @kbd{C-c C-x @key{LEFT}}  @tab @kbd{ } @tab
address@hidden @address@hidden @tab @kbd{C-c C-x @key{RIGHT}} @tab @kbd{ } @tab
 @end multitable
 
 
@@ -18058,9 +18061,9 @@ bindings in Org files, and in the agenda buffer (but 
not during date
 selection).
 
 @example
-S-UP      @result{}  M-p             S-DOWN     @result{}  M-n
-S-LEFT    @result{}  M--             S-RIGHT    @result{}  M-+
-C-S-LEFT  @result{}  M-S--           C-S-RIGHT  @result{}  M-S-+
address@hidden      @result{}  M-p             address@hidden     @result{}  M-n
address@hidden    @result{}  M--             address@hidden    @result{}  M-+
address@hidden  @result{}  M-S--           address@hidden  @result{}  M-S-+
 @end example
 
 @vindex org-disputed-keys
@@ -18427,7 +18430,7 @@ the mode is C, then:
 At the location of source, Org needs a special line to direct Orgtbl to
 translate and to find the target for inserting the translated table.  For
 example:
address@hidden #+ORGTBL
address@hidden @code{#+ORGTBL}
 @example
 #+ORGTBL: SEND table_name translation_function arguments...
 @end example
@@ -18465,7 +18468,7 @@ Put the table after an @samp{END} statement.  For 
example @samp{\bye} in
 @TeX{} and @address@hidden@}} in @LaTeX{}.
 @item
 Comment and uncomment each line of the table during edits.  The @kbd{M-x
-orgtbl-toggle-comment RET} command makes toggling easy.
+orgtbl-toggle-comment @key{RET}} command makes toggling easy.
 @end itemize
 
 @node A @LaTeX{} example
@@ -18478,10 +18481,10 @@ provided by @file{comment.sty}.  To activate it, put
 radio table address@hidden default this works only for @LaTeX{}, HTML,
 and Texinfo.  Configure the variable @code{orgtbl-radio-table-templates} to
 install templates for other export formats.}  with the command @kbd{M-x
-orgtbl-insert-radio-table RET}, which prompts for a table name.  For example,
-if @samp{salesfigures} is the name, the template inserts:
+orgtbl-insert-radio-table @key{RET}}, which prompts for a table name.  For
+example, if @samp{salesfigures} is the name, the template inserts:
 
address@hidden #+ORGTBL, SEND
address@hidden @code{#+ORGTBL}, @samp{SEND}
 @example
 % BEGIN RECEIVE ORGTBL salesfigures
 % END RECEIVE ORGTBL salesfigures
@@ -18497,7 +18500,7 @@ The line @code{#+ORGTBL: SEND} tells Orgtbl mode to use 
the function
 @code{orgtbl-to-latex} to convert the table to @LaTeX{} format, then insert
 the table at the target (receive) location named @code{salesfigures}.  Now
 the table is ready for data entry.  It can even use spreadsheet
address@hidden the @samp{#+TBLFM} line contains an odd number of dollar
address@hidden the @code{#+TBLFM} line contains an odd number of dollar
 characters, this may cause problems with font-lock in @LaTeX{} mode.  As
 shown in the example you can fix this by adding an extra line inside the
 @code{comment} environment that is used to balance the dollar expressions.
@@ -18628,14 +18631,14 @@ translator functions by posting them to the Org users 
mailing list,
 @node Radio lists
 @subsection Radio lists
 @cindex radio lists
address@hidden org-list-insert-radio-list
address@hidden @code{org-list-insert-radio-list}
 
 Call the @code{org-list-insert-radio-list} function to insert a radio list
 template in HTML, @LaTeX{}, and Texinfo mode documents.  Sending and
 receiving radio lists works is the same as for radio tables (@pxref{Radio
 tables}) except for these differences:
 
address@hidden #+ORGLST
address@hidden @code{#+ORGLST}
 @itemize @minus
 @item
 Orgstruct mode must be active.
@@ -18679,7 +18682,7 @@ time}).
 Dynamic blocks can have names and function parameters.  The syntax is similar
 to @samp{src} code block specifications:
 
address@hidden #+BEGIN:dynamic block
address@hidden @code{#+BEGIN}, dynamic block
 @example
 #+BEGIN: myblock :parameter1 value1 :parameter2 value2 ...
 
@@ -18941,7 +18944,7 @@ priority-n   @r{The computed numerical priority}
 
 @noindent
 If the selection of the agenda item was based on a timestamp, including those
-items with @samp{DEADLINE} and @samp{SCHEDULED} keywords, then Org includes
+items with @code{DEADLINE} and @code{SCHEDULED} keywords, then Org includes
 date and time in the output.
 
 If the selection of the agenda item was based on a timestamp  (or
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi
index 1163530..4c61aed 100644
--- a/doc/misc/pcl-cvs.texi
+++ b/doc/misc/pcl-cvs.texi
@@ -63,10 +63,11 @@ modify this GNU manual.''
 @node Top
 @top PCL-CVS
 
-This manual describes PCL-CVS, the GNU Emacs front-end to address@hidden  It
-is nowhere near complete, so you are advised to use @kbd{M-x
-customize-group RET pcl-cvs @key{RET}} and to look at the documentation strings
-of the various commands and major modes for further information.
+This manual describes PCL-CVS, the GNU Emacs front-end to address@hidden  It is
+nowhere near complete, so you are advised to use @kbd{M-x
+customize-group @key{RET} pcl-cvs @key{RET}} and to look at the
+documentation strings of the various commands and major modes for
+further information.
 @c This manual is updated to release 2.5 of PCL-CVS.
 
 @insertcopying
@@ -1109,7 +1110,7 @@ Tag all selected files by running @samp{cvs tag} on
 them (@code{cvs-mode-tag}).  It's usually preferable to tag a directory
 at a time.  Rather than selecting all files (which too often doesn't
 select all files but only the few that are displayed), clear the
-selection with @kbd{M-DEL} (@code{cvs-mode-unmark-all-files}), position
+selection with @address@hidden (@code{cvs-mode-unmark-all-files}), position
 the cursor on the directory you want to tag and hit @kbd{t}.
 @end table
 
diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi
index 55060d0..3803cb0 100644
--- a/doc/misc/reftex.texi
+++ b/doc/misc/reftex.texi
@@ -3335,7 +3335,7 @@ have to rescan the buffer in order to see it.
 @findex reftex-arg-index
 @findex address@hidden, AUCTeX function}
 @findex address@hidden, AUCTeX function}
address@hidden C-c @key{RET}
address@hidden C-c RET
 @address@hidden supplies macro address@hidden When you insert a macro
 interactively with @kbd{C-c @key{RET}}, @AUCTeX{} normally prompts for
 macro arguments.  Internally, it uses the functions
diff --git a/doc/misc/sem-user.texi b/doc/misc/sem-user.texi
index e821626..8484a7b 100644
--- a/doc/misc/sem-user.texi
+++ b/doc/misc/sem-user.texi
@@ -1145,7 +1145,7 @@ Typing @kbd{RET} on a reference line jumps to that 
reference.
 
 @node MRU Bookmarks
 @section MRU Bookmarks mode
address@hidden semantic-mru-bookmark-mode
address@hidden @code{semantic-mru-bookmark-mode}
 
 Semantic MRU Bookmarks mode is a minor mode that keeps track of the
 tags you have edited, allowing you to quickly return to them later
@@ -1193,7 +1193,7 @@ declarations.  Other possible tag classes are 
@code{variable},
 
 @node Highlight Func Mode
 @section Highlight Func Mode
address@hidden semantic-highlight-func-mode
address@hidden @code{semantic-highlight-func-mode}
 
 Semantic Highlight Function minor mode highlights the declaration line
 of the current function or tag (that is to say, the first line that
@@ -1220,7 +1220,7 @@ Func mode.
 
 @node Tag Decoration Mode
 @section Tag Decoration Mode
address@hidden semantic-decoration-mode
address@hidden @code{semantic-decoration-mode}
 
 Semantic Tag Decoration mode ``decorates'' each tag based on certain
 arbitrary features of that tag.  Decorations are specified using the
diff --git a/doc/misc/ses.texi b/doc/misc/ses.texi
index 60963ad..aa4fe81 100644
--- a/doc/misc/ses.texi
+++ b/doc/misc/ses.texi
@@ -209,7 +209,7 @@ remove blank cells from the returned list, which allows to 
use
 @findex keyboard-quit
 
 To create a new spreadsheet, visit a nonexistent file whose name ends
-  with ".ses".  For example, @kbd{C-x C-f test.ses RET}.
+with ".ses".  For example, @kbd{C-x C-f test.ses @key{RET}}.
 
 
 A @dfn{cell identifier} is a symbol with a column letter and a row
@@ -310,7 +310,7 @@ To enter something else (e.g., a vector), begin with a 
digit, then
 erase the digit and type whatever you want.
 
 @table @kbd
address@hidden RET
address@hidden @key{RET}
 Edit the existing formula in the current cell (@code{ses-edit-cell}).
 
 @item C-c C-c
@@ -357,7 +357,7 @@ Basic commands:
 @item w
 (@code{ses-set-column-width})
 
address@hidden TAB
address@hidden @key{TAB}
 Moves point to the next rightward cell, or inserts a new column if
 already at last cell on line, or inserts a new row if at endline
 (@code{ses-forward-or-insert}).
@@ -639,7 +639,7 @@ or a non-string is displayed as an error by using @code{#} 
filling.
 These commands set both formula and printer to @code{nil}:
 
 @table @kbd
address@hidden DEL
address@hidden @key{DEL}
 Clear cell and move left (@code{ses-clear-cell-backward}).
 
 @item C-d
@@ -1282,10 +1282,10 @@ avoid virus warnings, each function used in a formula 
needs
 
 @node Uses of defadvice in @acronym{SES}
 @section Uses of defadvice in @acronym{SES}
address@hidden defadvice
address@hidden undo-more
address@hidden copy-region-as-kill
address@hidden yank
address@hidden defadvice
address@hidden undo-more
address@hidden copy-region-as-kill
address@hidden yank
 
 @table @code
 @item undo-more
diff --git a/doc/misc/sieve.texi b/doc/misc/sieve.texi
index 37bb707..2d290b3 100644
--- a/doc/misc/sieve.texi
+++ b/doc/misc/sieve.texi
@@ -123,7 +123,7 @@ bindings to manage Sieve scripts remotely. @xref{Managing 
Sieve}.
 
 @table @kbd
 
address@hidden C-c RET
address@hidden C-c @key{RET}
 @kindex C-c RET
 @findex sieve-manage
 @cindex manage remote sieve script
@@ -160,8 +160,8 @@ press RET on <new script> to create a new script.
 @end example
 
 One of the scripts are highlighted, and standard point navigation
-commands (@kbd{<up>}, @kbd{<down>} etc.)@: can be used to navigate the
-list.
+commands (@address@hidden, @address@hidden etc.)@: can be used to
+navigate the list.
 
 The following commands are available in the Manage Sieve buffer:
 
@@ -187,7 +187,7 @@ Deactivates all scripts.
 @findex sieve-remove
 Remove currently highlighted script.
 
address@hidden RET
address@hidden @key{RET}
 @item mouse-2
 @item f
 @kindex RET
@@ -272,7 +272,7 @@ The @file{sieve-manage.el} library contains low-level 
functionality
 for talking to a server with the @sc{managesieve} protocol.
 
 A number of user-visible variables exist, which all can be customized
-in the @code{sieve} group (@kbd{M-x customize-group RET sieve RET}):
+in the @code{sieve} group (@kbd{M-x customize-group @key{RET} sieve 
@key{RET}}):
 
 @table @code
 
diff --git a/doc/misc/smtpmail.texi b/doc/misc/smtpmail.texi
index 6da51f7..c338705 100644
--- a/doc/misc/smtpmail.texi
+++ b/doc/misc/smtpmail.texi
@@ -354,7 +354,7 @@ directory to hold queued messages.  It defaults to
   The function @code{smtpmail-send-queued-mail} can be used to send
 any queued mail when @code{smtpmail-queue-mail} is enabled.  It is
 typically invoked interactively with @kbd{M-x
-smtpmail-send-queued-mail RET} when you are connected to the internet.
+smtpmail-send-queued-mail @key{RET}} when you are connected to the internet.
 
 @node Server workarounds
 @chapter Server workarounds
diff --git a/doc/misc/speedbar.texi b/doc/misc/speedbar.texi
index 6286ac1..1c1b014 100644
--- a/doc/misc/speedbar.texi
+++ b/doc/misc/speedbar.texi
@@ -87,7 +87,7 @@ on.  @xref{Basic Navigation}.
 @chapter Introduction
 @cindex introduction
 
-To start using speedbar use the command @kbd{M-x speedbar RET} or
+To start using speedbar use the command @kbd{M-x speedbar @key{RET}} or
 select it from the @samp{Options->Show/Hide} sub-menu.  This command
 will open a new frame to summarize the local files.  On X Window
 systems or on MS-Windows, speedbar's frame is twenty characters wide,
@@ -188,7 +188,7 @@ these are available, some additional common bindings are 
available.
 
 @cindex common keys
 @table @kbd
address@hidden RET
address@hidden @key{RET}
 @itemx e
 Edit/Open the current group or tag.  This behavior is dependent on the
 mode.  In general, files or buffers are opened in the attached frame,
diff --git a/doc/misc/srecode.texi b/doc/misc/srecode.texi
index afa3af1..2987f62 100644
--- a/doc/misc/srecode.texi
+++ b/doc/misc/srecode.texi
@@ -105,11 +105,11 @@ item should appear.
 To toggle @srecode{} minor mode on and off use:
 
 @example
-M-x srecode-minor-mode RET
+M-x srecode-minor-mode @key{RET}
 @end example
 or
 @example
-M-x global-srecode-minor-mode RET
+M-x global-srecode-minor-mode @key{RET}
 @end example
 
 or add
@@ -276,7 +276,8 @@ If the variable @code{srecode-insert-ask-variable-method} 
is set to
 instead create ``fields'' in the buffer.  A field-editing layer
 provides simple interaction through the fields.  Typing in a field
 will cause all variable locations that are the same to edit at the
-same time.  Pressing TAB on a field will move you to the next field.
+same time.  Pressing @address@hidden on a field will move you to the
+next field.
 
 @node SRecode Minor Mode
 @chapter SRecode Minor Mode
@@ -284,17 +285,17 @@ same time.  Pressing TAB on a field will move you to the 
next field.
 The Semantic Recode minor mode enables a keymap and menu that provides
 simple access to different templates or template applications.
 
-The key prefix is @key{C-c /}.
+The key prefix is @kbd{C-c /}.
 
 If the variable @code{srecode-takeover-INS-key} is set, then the key
address@hidden<insert>} can also be used.
address@hidden@key{INSERT}} can also be used.
 
 The most important key is bound to @code{srecode-insert} which is
address@hidden / /}, or @key{insert insert}.  @ref{Quick Start}.
address@hidden / /}, or @address@hidden @key{INSERT}}.  @ref{Quick Start}.
 
 Major keybindings are:
 
address@hidden @key
address@hidden @kbd
 @item C-c / /
 Insert a template whose name is typed into the minibuffer.
 @item C-c / <lower case letter>
@@ -338,7 +339,7 @@ will not be prompted to fill in values while the template is
 inserted.  Instead, short regions will be highlighted, and the cursor
 placed in a field.  Typing in the field will then fill in the value.
 Several fields might be linked together.  In that case, typing in one
-area will modify the other linked areas.  Pressing TAB will move
+area will modify the other linked areas.  Pressing @key{TAB} will move
 between editable fields in the template.
 
 Once the cursor moves out of the are inserted by the template, all the
diff --git a/doc/misc/texinfo.tex b/doc/misc/texinfo.tex
index c614e02..0af2f09 100644
--- a/doc/misc/texinfo.tex
+++ b/doc/misc/texinfo.tex
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2018-01-09.11}
+\def\texinfoversion{2018-02-24.16}
 %
 % Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 5038143..f2530cd 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -3040,13 +3040,20 @@ Java archives
 @cindex @file{jar} file archive suffix
 @cindex file archive suffix @file{jar}
 
address@hidden @samp{.lzh}, @samp{LZH} ---
address@hidden @samp{.lzh}, @samp{.LZH} ---
 Microsoft Windows compressed LHA archives
 @cindex @file{lzh} file archive suffix
 @cindex @file{LZH} file archive suffix
 @cindex file archive suffix @file{lzh}
 @cindex file archive suffix @file{LZH}
 
address@hidden @samp{.msu}, @samp{.MSU} ---
+Microsoft Windows Update packages
address@hidden @file{msu} file archive suffix
address@hidden @file{MSU} file archive suffix
address@hidden file archive suffix @file{msu}
address@hidden file archive suffix @file{MSU}
+
 @item @samp{.mtree} ---
 BSD mtree format
 @cindex @file{mtree} file archive suffix
@@ -3072,7 +3079,7 @@ Shell archives
 @cindex @file{shar} file archive suffix
 @cindex file archive suffix @file{shar}
 
address@hidden @samp{.tar}, @samp{tbz}, @samp{tgz}, @samp{tlz}, @samp{txz} ---
address@hidden @samp{.tar}, @samp{.tbz}, @samp{.tgz}, @samp{.tlz}, @samp{.txz} 
---
 (Compressed) tape archives
 @cindex @file{tar} file archive suffix
 @cindex @file{tbz} file archive suffix
diff --git a/doc/misc/vhdl-mode.texi b/doc/misc/vhdl-mode.texi
index e94fba6..8fc7510 100644
--- a/doc/misc/vhdl-mode.texi
+++ b/doc/misc/vhdl-mode.texi
@@ -100,7 +100,7 @@ How to customize the indentation engine.
 The major version number was incremented to 3 with the addition of
 many new features for editing VHDL code to the new indentation engine,
 which was introduced in major version 2. To find the minor revision
-number of this release, use @kbd{M-x vhdl-version RET}.
+number of this release, use @kbd{M-x vhdl-version @key{RET}}.
 
 A special word of thanks goes to Rod Whitby, who wrote the
 VHDL Mode indentation engine, and to Barry Warsaw, who wrote
@@ -119,7 +119,7 @@ makes everything highly self-explaining.
 @cindex   Getting Connected
 
 To get started, simply visit a @file{.vhd} file in Emacs; or type
address@hidden vhdl-mode RET}.
address@hidden vhdl-mode @key{RET}}.
 
 @node     New Indentation Engine
 @chapter  New Indentation Engine
@@ -302,11 +302,11 @@ being used.
 
 @vindex vhdl-echo-syntactic-information-p
 @vindex echo-syntactic-information-p @r{(vhdl-)}
address@hidden TAB
address@hidden @key{TAB}
 To help you configure VHDL Mode, you can set the variable
 @code{vhdl-echo-syntactic-information-p} to address@hidden so that the
 syntactic component list and calculated offset will always be echoed in
-the minibuffer when you hit @kbd{TAB}.
+the minibuffer when you hit @address@hidden
 
 
 @ignore
@@ -322,7 +322,7 @@ the minibuffer when you hit @kbd{TAB}.
 @chapter  Customizing Indentation
 @cindex   Customizing Indentation
 
address@hidden vhdl-set-offset
address@hidden @code{vhdl-set-offset}
 @cindex set-offset (vhdl-)
 The @code{vhdl-offsets-alist} variable is where you customize all your
 indentations.  You simply need to decide what additional offset you want
@@ -334,7 +334,7 @@ pre-defined styles will suit your needs, but if not, this 
section will
 describe how to set up basic editing configurations.  @xref{Styles}, for
 an explanation of how to set up named styles.
 
address@hidden vhdl-basic-offset
address@hidden @code{vhdl-basic-offset}
 @cindex basic-offset (vhdl-)
 As mentioned previously, the variable @code{vhdl-offsets-alist} is an
 association list between syntactic symbols and the offsets to be applied
@@ -548,7 +548,7 @@ already built-in.  These include:
 @findex vhdl-set-style
 @findex set-style @r{(vhdl-)}
 If you'd like to experiment with these built-in styles you can simply
-type @kbd{M-x vhdl-set-style RET} in a VHDL Mode buffer.
+type @kbd{M-x vhdl-set-style @key{RET}} in a VHDL Mode buffer.
 
 You will be prompted for one of the above styles (with completion).
 Enter one of the styles and hit @kbd{RET}.  Note however that setting a
diff --git a/doc/misc/vip.texi b/doc/misc/vip.texi
index af4c05d..59df749 100644
--- a/doc/misc/vip.texi
+++ b/doc/misc/vip.texi
@@ -186,8 +186,8 @@ M-x vip-mode
 @node Modes in VIP
 @section Modes in VIP
 
address@hidden 032 @kbd{C-z} (@code{vip-change-mode-to-vi})
address@hidden 0301 @kbd{C-x C-z} (@code{suspend-emacs})
address@hidden 032 C-z @r{(address@hidden@r{)}
address@hidden 0301 C-x C-z @r{(address@hidden@r{)}
 
 Loading VIP has the effect of globally binding @kbd{C-z} (@kbd{Control-z})
 to the function @code{vip-change-mode-to-vi}. The default binding of @kbd{C-z}
@@ -266,7 +266,7 @@ emacs mode             vi mode                 insert mode
 @node Emacs Mode
 @subsection Emacs Mode
 
address@hidden 032 @kbd{C-z} (@code{vip-change-mode-to-vi})
address@hidden 032 C-z @r{(address@hidden@r{)}
 
 You will be in this mode just after you loaded address@hidden  You can do all
 normal Emacs editing in this mode.  Note that the key @kbd{C-z} is globally
@@ -289,16 +289,16 @@ its content while you are in insert mode.
 
 @table @kbd
 @item @key{ESC}
address@hidden 033 @kbd{ESC} (@code{vip-change-mode-to-vi}) (insert mode)
address@hidden 033 ESC @r{(address@hidden@r{) (insert mode)}
 This key will take you back to vi mode.
 @item C-h
address@hidden 010 @kbd{C-h} (@code{vip-delete-backward-char}) (insert mode)
address@hidden 010 C-h @r{(address@hidden@r{) (insert mode)}
 Delete previous character.
 @item C-w
address@hidden 027 @kbd{C-w} (@code{vip-delete-backward-word}) (insert mode)
address@hidden 027 C-w @r{(address@hidden@r{) (insert mode)}
 Delete previous word.
 @item C-z
address@hidden 032 @kbd{C-z} (@code{vip-ESC}) (insert mode)
address@hidden 032 C-z @r{(address@hidden@r{) (insert mode)}
 Typing this key has the same effect as typing @key{ESC} in emacs mode.
 Thus typing @kbd{C-z x} in insert mode will have the same effect as typing
 @kbd{ESC x} in emacs mode.
@@ -332,8 +332,8 @@ The major differences from Vi are explained below.
 @node Undoing
 @subsection Undoing
 
address@hidden 165 @kbd{u} (@code{vip-undo})
address@hidden 056 @kbd{.} (@code{vip-repeat})
address@hidden 165 u @r{(address@hidden@r{)}
address@hidden 056 . @r{(address@hidden@r{)}
 
 You can repeat undoing by the @kbd{.} key.  So, @kbd{u} will undo
 a single change, while @kbd{u .@: .@: .@:}, for instance, will undo 4 previous
@@ -350,14 +350,14 @@ then VIP will prompt you for a new word in the minibuffer 
by the prompt
 @samp{foo => }.  You can then enter @samp{bar} followed by @key{RET} or
 @key{ESC} to complete the command.  Before you enter @key{RET} or
 @key{ESC} you can abort the command by typing @kbd{C-g}.  In general,
address@hidden 007 @kbd{C-g} (@code{vip-keyboard-quit})
address@hidden 007 C-g @r{(address@hidden)
 you can abort a partially formed command by typing @kbd{C-g}.
 
 @node Searching
 @subsection Searching
 
address@hidden 057 @kbd{/} (@code{vip-search-forward})
address@hidden 077 @kbd{?} (@code{vip-search-backward})
address@hidden 057 / @r{(address@hidden@r{)}
address@hidden 077 ? @r{(address@hidden@r{)}
 
 As in Vi, searching is done by @kbd{/} and @kbd{?}.  The string will be
 searched literally by default.  To invoke a regular expression search,
@@ -372,12 +372,12 @@ the buffer as in Vi.  You can change this by rebinding 
the variable
 @node z Command
 @subsection z Command
 
address@hidden 1723 @kbd{z H} (@code{vip-line-to-top})
address@hidden 1721 @kbd{z RET} (@code{vip-line-to-top})
address@hidden 1723 @kbd{z M} (@code{vip-line-to-middle})
address@hidden 1722 @kbd{z .} (@code{vip-line-to-middle})
address@hidden 1723 @kbd{z L} (@code{vip-line-to-bottom})
address@hidden 1722 @kbd{z -} (@code{vip-line-to-bottom})
address@hidden 1723 z H @r{(address@hidden@r{)}
address@hidden 1721 z RET @r{(address@hidden@r{)}
address@hidden 1723 z M @r{(address@hidden@r{)}
address@hidden 1722 z . @r{(address@hidden@r{)}
address@hidden 1723 z L @r{(address@hidden@r{)}
address@hidden 1722 z - @r{(address@hidden@r{)}
 
 For those of you who cannot remember which of @kbd{z} followed by @key{RET},
 @kbd{.}@: and @kbd{-} do what.  You can also use @kbd{z} followed by @kbd{H},
@@ -392,21 +392,21 @@ Some Vi commands which do not accept a count now accept 
one
 @table @kbd
 @item p
 @itemx P
address@hidden 160 @kbd{p} (@code{vip-put-back})
address@hidden 120 @kbd{P} (@code{vip-Put-back})
address@hidden 160 p @r{(address@hidden@r{)}
address@hidden 120 P @r{(address@hidden@r{)}
 Given counts, text will be yanked (in Vi's sense) that many times.  Thus
 @kbd{3 p} is the same as @kbd{p p p}.
 @item o
 @itemx O
address@hidden 157 @kbd{o} (@code{vip-open-line})
address@hidden 117 @kbd{O} (@code{vip-Open-line})
address@hidden 157 o @r{(address@hidden@r{)}
address@hidden 117 O @r{(address@hidden@r{)}
 Given counts, that many copies of text will be inserted. Thus
 @kbd{o a b c @key{ESC}} will insert 3 lines of @samp{abc} below the current
 line.
 @item /
 @itemx ?
address@hidden 057 @kbd{/} (@code{vip-search-forward})
address@hidden 077 @kbd{?} (@code{vip-search-backward})
address@hidden 057 / @r{(address@hidden@r{)}
address@hidden 077 ? @r{(address@hidden@r{)}
 Given a count @var{n}, @var{n}-th occurrence will be searched.
 @end table
 
@@ -417,7 +417,7 @@ Typing an @kbd{m} followed by a lower-case character 
@var{ch} marks the
 point to the register named @var{ch} as in Vi.  In addition to these, we
 have following key bindings for marking.
 
address@hidden 155 @kbd{m} (@code{vip-mark-point})
address@hidden 155 m @r{(address@hidden@r{)}
 
 @table @kbd
 @item m <
@@ -451,34 +451,34 @@ Note that the keys below (except for @kbd{R}) are not 
used in Vi.
 
 @table @kbd
 @item C-a
address@hidden 001 @kbd{C-a} (@code{vip-beginning-of-line})
address@hidden 001 C-a @r{(address@hidden@r{)}
 Move point to the beginning of line.
 @item C-n
address@hidden 016 @kbd{C-n} (@code{vip-next-window})
address@hidden 016 C-n @r{(address@hidden@r{)}
 If you have two or more windows in the screen, this key will move point to
 the next window.
 @item C-o
address@hidden 017 @kbd{C-o} (@code{vip-open-line-at-point})
address@hidden 017 C-o @r{(address@hidden@r{)}
 Insert a newline and leave point before it, and then enter insert mode.
 @item C-r
address@hidden 022 @kbd{C-r} (@code{isearch-backward})
address@hidden 022 C-r @r{(address@hidden@r{)}
 Backward incremental search.
 @item C-s
address@hidden 023 @kbd{C-s} (@code{isearch-forward})
address@hidden 023 C-s @r{(address@hidden@r{)}
 Forward incremental search.
 @item C-c
 @itemx C-x
 @itemx @key{ESC}
address@hidden 003 @kbd{C-c} (@code{vip-ctl-c})
address@hidden 0300 @kbd{C-x} (@code{vip-ctl-x})
address@hidden 033 @kbd{ESC} (@code{vip-ESC})
address@hidden 003 C-c @r{(address@hidden@r{)}
address@hidden 0300 C-x @r{(address@hidden@r{)}
address@hidden 033 ESC @r{(address@hidden@r{)}
 These keys will exit from vi mode and return to emacs mode temporarily.  If
 you hit one of these keys, Emacs will be in emacs mode and will believe
 that you hit that key in emacs mode. For example, if you hit @kbd{C-x}
 followed by @kbd{2}, then the current window will be split into 2 and you
 will be in vi mode again.
 @item \
address@hidden 134 @kbd{\} (@code{vip-escape-to-emacs})
address@hidden 134 \ @r{(address@hidden@r{)}
 Escape to emacs mode.  Hitting @kbd{\} will take you to emacs mode, and you
 can execute a single Emacs command.  After executing the Emacs command you
 will be in vi mode again.  You can give a count before typing @kbd{\}.
@@ -486,13 +486,13 @@ Thus @kbd{5 \ *}, as well as @kbd{\ C-u 5 *}, will insert 
@samp{*****}
 before point.  Similarly @kbd{1 0 \ C-p} will move the point 10 lines above
 the current line.
 @item K
address@hidden 113 @kbd{K} (@code{vip-kill-buffer})
address@hidden 113 K @r{(address@hidden@r{)}
 Kill current buffer if it is not modified.  Useful when you selected a
 buffer which you did not want.
 @item Q
 @itemx R
address@hidden 121 @kbd{Q} (@code{vip-query-replace})
address@hidden 122 @kbd{R} (@code{vip-replace-string})
address@hidden 121 Q @r{(address@hidden@r{)}
address@hidden 122 R @r{(address@hidden@r{)}
 @kbd{Q} is for query replace and @kbd{R} is for replace.  By default,
 string to be replaced are treated literally.  If you wish to do a regular
 expression replace, first do replace with empty string as the string to be
@@ -500,39 +500,39 @@ replaced.  In this way, you can toggle between vanilla 
and regular
 expression replacement.
 @item v
 @itemx V
address@hidden 166 @kbd{v} (@code{vip-find-file})
address@hidden 126 @kbd{V} (@code{vip-find-file-other-window})
address@hidden 166 v @r{(address@hidden@r{)}
address@hidden 126 V @r{(address@hidden@r{)}
 These keys are used to Visit files.  @kbd{v} will switch to a buffer
 visiting file whose name can be entered in the minibuffer. @kbd{V} is
 similar, but will use window different from the current window.
 @item #
address@hidden 0430 @kbd{#} (@code{vip-command-argument})
address@hidden 0430 # @r{(address@hidden@r{)}
 If followed by a certain character @var{ch}, it becomes an operator whose
 argument is the region determined by the motion command that follows.
 Currently, @var{ch} can be one of @kbd{c}, @kbd{C}, @kbd{g}, @kbd{q} and
 @kbd{s}.
 @item # c
address@hidden 0432 @kbd{# c} (@code{downcase-region})
address@hidden 0432 # c @r{(address@hidden@r{)}
 Change upper-case characters in the region to lower case
 (@code{downcase-region}).
 @item # C
address@hidden 0431 @kbd{# C} (@code{upcase-region})
address@hidden 0431 # C @r{(address@hidden@r{)}
 Change lower-case characters in the region to upper case. For instance,
 @kbd{# C 3 w} will capitalize 3 words from the current point
 (@code{upcase-region}).
 @item # g
address@hidden 0432 @kbd{# g} (@code{vip-global-execute})
address@hidden 0432 # g @r{(address@hidden@r{)}
 Execute last keyboard macro for each line in the region
 (@code{vip-global-execute}).
 @item # q
address@hidden 0432 @kbd{# q} (@code{vip-quote-region})
address@hidden 0432 # q @r{(address@hidden@r{)}
 Insert specified string at the beginning of each line in the region
 (@code{vip-quote-region}).
 @item # s
address@hidden 0432 @kbd{# s} (@code{spell-region})
address@hidden 0432 # s @r{(address@hidden@r{)}
 Check spelling of words in the region (@code{spell-region}).
 @item *
address@hidden 052 @kbd{*} (@code{vip-call-last-kbd-macro})
address@hidden 052 * @r{(address@hidden@r{)}
 Call last keyboard macro.
 @end table
 
@@ -548,21 +548,21 @@ details.
 @table @kbd
 @item C-g
 @itemx g
address@hidden 007 @kbd{C-g} (@code{vip-keyboard-quit})
address@hidden 147 @kbd{g} (@code{vip-info-on-file})
address@hidden 007 C-g @r{(address@hidden@r{)}
address@hidden 147 g @r{(address@hidden@r{)}
 In Vi, @kbd{C-g} is used to get information about the file associated to
 the current buffer.  Here, @kbd{g} will do that, and @kbd{C-g} is
 used to abort a command (this is for compatibility with emacs mode.)
address@hidden SPC
address@hidden @key{SPC}
 @itemx @key{RET}
address@hidden 040 @kbd{SPC} (@code{vip-scroll})
address@hidden 015 @kbd{RET} (@code{vip-scroll-back})
address@hidden 040 SPC @r{(address@hidden@r{)}
address@hidden 015 RET @r{(address@hidden@r{)}
 Now these keys will scroll up and down the text of current window.
 Convenient for viewing the text.
 @item s
 @itemx S
address@hidden 163 @kbd{s} (@code{vip-switch-to-buffer})
address@hidden 123 @kbd{S} (@code{vip-switch-to-buffer-other-window})
address@hidden 163 s @r{(address@hidden@r{)}
address@hidden 123 S @r{(address@hidden@r{)}
 They are used to switch to a specified buffer.  Useful for switching to
 already existing buffer since buffer name completion is provided.  Also
 a default buffer will be given as part of the prompt, to which you can
@@ -570,8 +570,8 @@ switch by just typing @key{RET} key.  @kbd{s} is used to 
select buffer
 in the current window, while @kbd{S} selects buffer in another window.
 @item C
 @itemx X
address@hidden 103 @kbd{C} (@code{vip-ctl-c-equivalent})
address@hidden 1300 @kbd{X} (@code{vip-ctl-x-equivalent})
address@hidden 103 C @r{(address@hidden@r{)}
address@hidden 1300 X @r{(address@hidden@r{)}
 These keys will exit from vi mode and return to emacs mode temporarily.
 If you type @kbd{C} (@kbd{X}), Emacs will be in emacs mode and will believe
 that you have typed @kbd{C-c} (@kbd{C-x}) in emacs mode. Moreover,
@@ -588,7 +588,7 @@ vi mode again.
 
 In addition to these, @code{ctl-x-map} is slightly modified:
 
address@hidden 1301 @kbd{X 3} (@code{vip-buffer-in-two-windows})
address@hidden 1301 X 3 @r{(address@hidden@r{)}
 
 @table @kbd
 @item X 3
@@ -604,19 +604,19 @@ basic functions related to windows, buffers and files.
 
 @table @kbd
 @item C-n
address@hidden 016 @kbd{C-n} (@code{vip-next-window})
address@hidden 016 C-n @r{(address@hidden@r{)}
 Switch to next window.
 @item X 1
 @itemx C-x 1
address@hidden 1301 @kbd{X 1} (@code{delete-other-windows})
address@hidden 1301 X 1 @r{(address@hidden@r{)}
 Delete other windows.
 @item X 2
 @itemx C-x 2
address@hidden 1301 @kbd{X 2} (@code{split-window-vertically})
address@hidden 1301 X 2 @r{(address@hidden@r{)}
 Split current window into two windows.
 @item X 3
 @itemx C-x 3
address@hidden 1301 @kbd{X 3} (@code{vip-buffer-in-two-windows})
address@hidden 1301 X 3 @r{(address@hidden@r{)}
 Show current buffer in two windows.
 @end table
 
@@ -625,19 +625,19 @@ Show current buffer in two windows.
 
 @table @kbd
 @item s
address@hidden 163 @kbd{s} (@code{vip-switch-to-buffer})
address@hidden 163 s @r{(address@hidden@r{)}
 Switch to the specified buffer in the current window
 (@code{vip-switch-to-buffer}).
 @item S
address@hidden 123 @kbd{S} (@code{vip-switch-to-buffer-other-window})
address@hidden 123 S @r{(address@hidden@r{)}
 Switch to the specified buffer in another window
 (@code{vip-switch-to-buffer-other-window}).
 @item K
address@hidden 113 @kbd{K} (@code{vip-kill-buffer})
address@hidden 113 K @r{(address@hidden@r{)}
 Kill the current buffer if it is not modified.
 @item X S
 @itemx C-x C-s
address@hidden 1302 @kbd{X S} (@code{save-buffer})
address@hidden 1302 X S @r{(address@hidden@r{)}
 Save the current buffer in the file associated to the buffer.
 @end table
 
@@ -646,18 +646,18 @@ Save the current buffer in the file associated to the 
buffer.
 
 @table @kbd
 @item v
address@hidden 166 @kbd{v} (@code{vip-find-file})
address@hidden 166 v @r{(address@hidden@r{)}
 Visit specified file in the current window.
 @item V
address@hidden 126 @kbd{V} (@code{vip-find-file-other-window})
address@hidden 126 V @r{(address@hidden@r{)}
 Visit specified file in another window.
 @item X W
 @itemx C-x C-w
address@hidden 1302 @kbd{X W} (@code{write-file})
address@hidden 1302 X W @r{(address@hidden@r{)}
 Write current buffer into the specified file.
 @item X I
 @itemx C-x C-i
address@hidden 1302 @kbd{X I} (@code{insert-file})
address@hidden 1302 X I @r{(address@hidden@r{)}
 
 Insert specified file at point.
 @end table
@@ -668,18 +668,18 @@ Insert specified file at point.
 @table @kbd
 @item X (
 @itemx C-x (
address@hidden 1301 @kbd{X (} (@code{start-kbd-macro})
address@hidden 1301 X ( @r{(address@hidden@r{)}
 Start remembering keyboard macro.
 @item X )
 @itemx C-x )
address@hidden 1301 @kbd{X )} (@code{end-kbd-macro})
address@hidden 1301 X ) @r{(address@hidden@r{)}
 Finish remembering keyboard macro.
 @item *
address@hidden 052 @kbd{*} (@code{vip-call-last-kbd-macro})
address@hidden 052 * @r{(address@hidden@r{)}
 Call last remembered keyboard macro.
 @item X Z
 @itemx C-x C-z
address@hidden 1302 @kbd{X Z} (@code{suspend-emacs})
address@hidden 1302 X Z @r{(address@hidden@r{)}
 Suspend Emacs.
 @item Z Z
 Exit Emacs.
@@ -715,15 +715,15 @@ commands described in this chapter are to be used in vi 
mode.
 
 @cindex numeric arguments
 @cindex count
address@hidden 061 @kbd{1} (numeric argument)
address@hidden 062 @kbd{2} (numeric argument)
address@hidden 063 @kbd{3} (numeric argument)
address@hidden 064 @kbd{4} (numeric argument)
address@hidden 065 @kbd{5} (numeric argument)
address@hidden 066 @kbd{6} (numeric argument)
address@hidden 067 @kbd{7} (numeric argument)
address@hidden 068 @kbd{8} (numeric argument)
address@hidden 069 @kbd{9} (numeric argument)
address@hidden 061 1 @r{(numeric argument)}
address@hidden 062 2 @r{(numeric argument)}
address@hidden 063 3 @r{(numeric argument)}
address@hidden 064 4 @r{(numeric argument)}
address@hidden 065 5 @r{(numeric argument)}
address@hidden 066 6 @r{(numeric argument)}
address@hidden 067 7 @r{(numeric argument)}
address@hidden 068 8 @r{(numeric argument)}
address@hidden 069 9 @r{(numeric argument)}
 
 Most Vi commands accept a @dfn{numeric argument} which can be supplied as
 a prefix to the commands.  A numeric argument is also called a @dfn{count}.
@@ -739,10 +739,10 @@ functions are the same in any of emacs, vi and insert 
mode.
 
 @table @kbd
 @item C-g
address@hidden 007 @kbd{C-g} (@code{vip-keyboard-quit})
address@hidden 007 C-g (@address@hidden)}
 Quit.  Cancel running or partially typed command (@code{keyboard-quit}).
 @item C-l
address@hidden 014 @kbd{C-l} (@code{recenter})
address@hidden 014 C-l @r{(address@hidden@r{)}
 Clear the screen and reprint everything (@code{recenter}).
 @end table
 
@@ -754,9 +754,9 @@ accessed from vi mode as easily as from emacs mode.
 @item C-x
 @itemx C-c
 @itemx @key{ESC}
address@hidden 003 @kbd{C-c} (@code{vip-ctl-c})
address@hidden 0300 @kbd{C-x} (@code{vip-ctl-x})
address@hidden 033 @kbd{ESC} (@code{vip-ESC})
address@hidden 003 C-c @r{(address@hidden@r{)}
address@hidden 0300 C-x @r{(address@hidden@r{)}
address@hidden 033 ESC @r{(address@hidden@r{)}
 Typing one of these keys have the same effect as typing it in emacs mode.
 Appropriate command will be executed according as the keys you type after
 it.  You will be in vi mode again after the execution of the command.
@@ -764,8 +764,8 @@ For instance, if you type @address@hidden <} (in vi mode) 
then the cursor will
 move to the beginning of the buffer and you will still be in vi mode.
 @item C
 @itemx X
address@hidden 103 @kbd{C} (@code{vip-ctl-c-equivalent})
address@hidden 1300 @kbd{X} (@code{vip-ctl-x-equivalent})
address@hidden 103 C @r{(address@hidden@r{)}
address@hidden 1300 X @r{(address@hidden@r{)}
 Typing one of these keys have the effect of typing the corresponding
 control character in emacs mode.  Moreover, if you type an upper-case
 character following it, that character will also be translated to the
@@ -773,7 +773,7 @@ corresponding control character.  Thus typing @kbd{X W} in 
vi mode is the
 same as typing @kbd{C-x C-w} in emacs mode.  You will be in vi mode again
 after the execution of a command.
 @item \
address@hidden 134 @kbd{\} (@code{vip-escape-to-emacs})
address@hidden 134 \ @r{(address@hidden@r{)}
 Escape to emacs mode.  Hitting the @kbd{\} key will take you to emacs mode,
 and you can execute a single Emacs command.  After executing the
 Emacs command you will be in vi mode again.  You can give a count before
@@ -810,31 +810,31 @@ We have the following commands related to windows and 
buffers.
 
 @table @kbd
 @item C-n
address@hidden 016 @kbd{C-n} (@code{vip-next-window})
address@hidden 016 C-n @r{(address@hidden@r{)}
 Move cursor to the next-window (@code{vip-next-window}).
 @item X 1
address@hidden 1301 @kbd{X 1} (@code{delete-other-windows})
address@hidden 1301 X 1 @r{(address@hidden@r{)}
 Delete other windows and make the selected window fill the screen
 @*(@code{delete-other-windows}).
 @item X 2
address@hidden 1301 @kbd{X 2} (@code{split-window-vertically})
address@hidden 1301 X 2 @r{(address@hidden@r{)}
 Split current window into two windows (@code{split-window-vertically}).
 @item X 3
address@hidden 1301 @kbd{X 3} (@code{vip-buffer-in-two-windows})
address@hidden 1301 X 3 @r{(address@hidden@r{)}
 Show current buffer in two windows.
 @item s @var{buffer} @key{RET}
address@hidden 163 @kbd{s} (@code{vip-switch-to-buffer})
address@hidden 163 s @r{(address@hidden@r{)}
 Select or create a buffer named @var{buffer} (@code{vip-switch-to-buffer}).
 @item S @var{buffer} @key{RET}
address@hidden 123 @kbd{S} (@code{vip-switch-to-buffer-other-window})
address@hidden 123 S @r{(address@hidden@r{)}
 Similar but select a buffer named @var{buffer} in another window
 @*(@code{vip-switch-to-buffer-other-window}).
 @item K
address@hidden 113 @kbd{K} (@code{vip-kill-buffer})
address@hidden 113 K @r{(address@hidden@r{)}
 Kill the current buffer if it is not modified or if it is not associated
 with a file @*(@code{vip-kill-buffer}).
 @item X B
address@hidden 1302 @kbd{X B} (@code{list-buffers})
address@hidden 1302 X B @r{(address@hidden@r{)}
 List the existing buffers (@code{list-buffers}).
 @end table
 
@@ -856,24 +856,24 @@ save and insert files.
 
 @table @kbd
 @item v @var{file} @key{RET}
address@hidden 166 @kbd{v} (@code{vip-find-file})
address@hidden 166 v @r{(address@hidden@r{)}
 Visit specified file in the current window (@code{vip-find-file}).
 @item V @var{file} @key{RET}
address@hidden 126 @kbd{V} (@code{vip-find-file-other-window})
address@hidden 126 V @r{(address@hidden@r{)}
 Visit specified file in another window (@code{vip-find-file-other-window}).
 @item X S
address@hidden 1302 @kbd{X S} (@code{save-buffer})
address@hidden 1302 X S @r{(address@hidden@r{)}
 Save current buffer to the file associated with the buffer.  If no file is
 associated with the buffer, the name of the file to write out the content
 of the buffer will be asked in the minibuffer.
 @item X W @var{file} @key{RET}
address@hidden 1302 @kbd{X W} (@code{write-file})
address@hidden 1302 X W @r{(address@hidden@r{)}
 Write current buffer into a specified file.
 @item X I @var{file} @key{RET}
address@hidden 1302 @kbd{X I} (@code{insert-file})
address@hidden 1302 X I @r{(address@hidden@r{)}
 Insert a specified file at point.
 @item g
address@hidden 147 @kbd{g} (@code{vip-info-on-file})
address@hidden 147 g @r{(address@hidden@r{)}
 Give information on the file associated with the current buffer.  Tell you
 the name of the file associated with the buffer, the line number of the
 current point and total line numbers in the buffer.  If no file is
@@ -940,29 +940,29 @@ buffer.
 @table @kbd
 @item @key{SPC}
 @itemx C-f
address@hidden 040 @kbd{SPC} (@code{vip-scroll})
address@hidden 006 @kbd{C-f} (@code{vip-scroll-back})
address@hidden 040 SPC @r{(address@hidden@r{)}
address@hidden 006 C-f @r{(address@hidden@r{)}
 Scroll text of current window upward almost full screen.  You can go
 @i{forward} in the buffer by this command (@code{vip-scroll}).
 @item @key{RET}
 @itemx C-b
address@hidden 015 @kbd{RET} (@code{vip-scroll-back})
address@hidden 002 @kbd{C-b} (@code{vip-scroll-back})
address@hidden 015 RET @r{(address@hidden@r{)}
address@hidden 002 C-b @r{(address@hidden@r{)}
 Scroll text of current window downward almost full screen.  You can go
 @i{backward} in the buffer by this command (@code{vip-scroll-back}).
 @item C-d
address@hidden 004 @kbd{C-d} (@code{vip-scroll-up})
address@hidden 004 C-d @r{(address@hidden@r{)}
 Scroll text of current window upward half screen.  You can go
 @i{down} in the buffer by this command (@code{vip-scroll-down}).
 @item C-u
address@hidden 025 @kbd{C-u} (@code{vip-scroll-down})
address@hidden 025 C-u @r{(address@hidden@r{)}
 Scroll text of current window downward half screen.  You can go
 @i{up} in the buffer by this command (@code{vip-scroll-up}).
 @item C-y
address@hidden 031 @kbd{C-y} (@code{vip-scroll-down-one})
address@hidden 031 C-y @r{(address@hidden@r{)}
 Scroll text of current window upward by one line (@code{vip-scroll-down-one}).
 @item C-e
address@hidden 005 @kbd{C-e} (@code{vip-scroll-up-one})
address@hidden 005 C-e @r{(address@hidden@r{)}
 Scroll text of current window downward by one line (@code{vip-scroll-up-one}).
 @end table
 @noindent
@@ -974,22 +974,22 @@ The following commands reposition point in the window.
 @table @kbd
 @item z H
 @itemx z @key{RET}
address@hidden 1723 @kbd{z H} (@code{vip-line-to-top})
address@hidden 1721 @kbd{z RET} (@code{vip-line-to-top})
address@hidden 1723 z H @r{(address@hidden@r{)}
address@hidden 1721 z RET @r{(address@hidden@r{)}
 Put point on the top (@i{home}) line in the window.  So the current line
 becomes the top line in the window.  Given a count @var{n}, point will be
 placed in the @var{n}-th line from top (@code{vip-line-to-top}).
 @item z M
 @itemx z .
address@hidden 1723 @kbd{z M} (@code{vip-line-to-middle})
address@hidden 1722 @kbd{z .} (@code{vip-line-to-middle})
address@hidden 1723 z M @r{(address@hidden@r{)}
address@hidden 1722 z . @r{(address@hidden@r{)}
 Put point on the @i{middle} line in the window.  Given a count @var{n},
 point will be placed in the @var{n}-th line from the middle line
 (@code{vip-line-to-middle}).
 @item z L
 @itemx z -
address@hidden 1723 @kbd{z L} (@code{vip-line-to-bottom})
address@hidden 1722 @kbd{z -} (@code{vip-line-to-bottom})
address@hidden 1723 z L @r{(address@hidden@r{)}
address@hidden 1722 z - @r{(address@hidden@r{)}
 Put point on the @i{bottom} line in the window.  Given a count @var{n},
 point will be placed in the @var{n}-th line from bottom
 (@code{vip-line-to-bottom}).
@@ -1004,7 +1004,7 @@ The following commands are used to mark positions in the 
buffer.
 
 @table @kbd
 @item m @var{ch}
address@hidden 155 @kbd{m} (@code{vip-mark-point})
address@hidden 155 m @r{(address@hidden@r{)}
 Store current point in the register @var{ch}.  @var{ch} must be a
 lower-case @acronym{ASCII} letter.
 @item m <
@@ -1034,31 +1034,31 @@ to be described in the next section.
 
 @table @kbd
 @item h
address@hidden 150 @kbd{h} (@code{vip-backward-char})
address@hidden 150 h @r{(address@hidden@r{)}
 Move point backward by one character.  Signal error if point is at the
 beginning of buffer, but (unlike Vi) do not complain otherwise
 (@code{vip-backward-char}).
 @item l
address@hidden 154 @kbd{l} (@code{vip-forward-char})
address@hidden 154 l @r{(address@hidden@r{)}
 Move point backward by one character.  Signal error if point is at the
 end of buffer, but (unlike Vi) do not complain otherwise
 (@code{vip-forward-char}).
 @item j
address@hidden 152 @kbd{j} (@code{vip-next-line})
address@hidden 152 j @r{(address@hidden@r{)}
 Move point to the next line keeping the current column.  If point is on the
 last line of the buffer, a new line will be created and point will move to
 that line (@code{vip-next-line}).
 @item k
address@hidden 153 @kbd{k} (@code{vip-previous-line})
address@hidden 153 k @r{(address@hidden@r{)}
 Move point to the previous line keeping the current column
 (@code{vip-next-line}).
 @item +
address@hidden 053 @kbd{+} (@code{vip-next-line-at-bol})
address@hidden 053 + @r{(address@hidden@r{)}
 Move point to the next line at the first non-white character.  If point is
 on the last line of the buffer, a new line will be created and point will
 move to the beginning of that line (@code{vip-next-line-at-bol}).
 @item -
address@hidden 055 @kbd{-} (@code{vip-previous-line-at-bol})
address@hidden 055 - @r{(address@hidden@r{)}
 Move point to the previous line at the first non-white character
 (@code{vip-previous-line-at-bol}).
 @end table
@@ -1068,17 +1068,17 @@ many times.
 
 @table @kbd
 @item 0
address@hidden 060 @kbd{0} (@code{vip-beginning-of-line})
address@hidden 060 0 @r{(address@hidden@r{)}
 Move point to the beginning of line (@code{vip-beginning-of-line}).
 @item ^
address@hidden 136 @kbd{^} (@code{vip-bol-and-skip-white})
address@hidden 136 ^ @r{(address@hidden@r{)}
 Move point to the first non-white character on the line
 (@code{vip-bol-and-skip-white}).
 @item $
address@hidden 044 @kbd{$} (@code{vip-goto-eol})
address@hidden 044 $ @r{(address@hidden@r{)}
 Move point to the end of line (@code{vip-goto-eol}).
 @item @var{n} |
address@hidden 174 @kbd{|} (@code{vip-goto-col})
address@hidden 174 | @r{(address@hidden@r{)}
 Move point to the @var{n}-th column on the line (@code{vip-goto-col}).
 @end table
 @noindent
@@ -1088,25 +1088,25 @@ Except for the @kbd{|} command, these commands neglect 
a count.
 
 @table @kbd
 @item w
address@hidden 167 @kbd{w} (@code{vip-forward-word})
address@hidden 167 w @r{(address@hidden@r{)}
 Move point forward to the beginning of the next word
 (@code{vip-forward-word}).
 @item W
address@hidden 127 @kbd{W} (@code{vip-forward-Word})
address@hidden 127 W @r{(address@hidden@r{)}
 Move point forward to the beginning of the next word, where a @dfn{word} is
 considered as a sequence of non-white characters (@code{vip-forward-Word}).
 @item b
address@hidden 142 @kbd{b} (@code{vip-backward-word})
address@hidden 142 b @r{(address@hidden@r{)}
 Move point backward to the beginning of a word (@code{vip-backward-word}).
 @item B
address@hidden 102 @kbd{B} (@code{vip-backward-Word})
address@hidden 102 B @r{(address@hidden@r{)}
 Move point backward to the beginning of a word, where a @i{word} is
 considered as a sequence of non-white characters (@code{vip-forward-Word}).
 @item e
address@hidden 145 @kbd{e} (@code{vip-end-of-word})
address@hidden 145 e @r{(address@hidden@r{)}
 Move point forward to the end of a word (@code{vip-end-of-word}).
 @item E
address@hidden 105 @kbd{E} (@code{vip-end-of-Word})
address@hidden 105 E @r{(address@hidden@r{)}
 Move point forward to the end of a word, where a @i{word} is
 considered as a sequence of non-white characters (@code{vip-end-of-Word}).
 @end table
@@ -1120,17 +1120,17 @@ details of syntax table.
 
 @table @kbd
 @item H
address@hidden 110 @kbd{H} (@code{vip-window-top})
address@hidden 110 H @r{(address@hidden@r{)}
 Move point to the beginning of the @i{home} (top) line of the window.
 Given a count @var{n}, go to the @var{n}-th line from top
 (@code{vip-window-top}).
 @item M
address@hidden 115 @kbd{M} (@code{vip-window-middle})
address@hidden 115 M @r{(address@hidden@r{)}
 Move point to the beginning of the @i{middle} line of the window.  Given
 a count @var{n}, go to the @var{n}-th line from the middle line
 (@code{vip-window-middle}).
 @item L
address@hidden 114 @kbd{L} (@code{vip-window-bottom})
address@hidden 114 L @r{(address@hidden@r{)}
 Move point to the beginning of the @i{lowest} (bottom) line of the
 window.  Given count, go to the @var{n}-th line from bottom
 (@code{vip-window-bottom}).
@@ -1140,19 +1140,19 @@ These commands can be used to go to the desired line 
visible on the screen.
 
 @table @kbd
 @item (
address@hidden 050 @kbd{(} (@code{vip-backward-sentence})
address@hidden 050 ( @r{(address@hidden@r{)}
 Move point backward to the beginning of the sentence
 (@code{vip-backward-sentence}).
 @item )
address@hidden 051 @kbd{)} (@code{vip-forward-sentence})
address@hidden 051 ) @r{(address@hidden@r{)}
 Move point forward to the end of the sentence
 (@code{vip-forward-sentence}).
 @item @{
address@hidden 173 @address@hidden (@code{vip-backward-paragraph})
address@hidden 173 @{ @r{(address@hidden@r{)}
 Move point backward to the beginning of the paragraph
 (@code{vip-backward-paragraph}).
 @item @}
address@hidden 175 @address@hidden (@code{vip-forward-paragraph})
address@hidden 175 @} @r{(address@hidden@r{)}
 Move point forward to the end of the paragraph
 (@code{vip-forward-paragraph}).
 @end table
@@ -1161,25 +1161,25 @@ A count repeats the effect for these commands.
 
 @table @kbd
 @item G
address@hidden 107 @kbd{G} (@code{vip-goto-line})
address@hidden 107 G @r{(address@hidden@r{)}
 Given a count @var{n}, move point to the @var{n}-th line in the buffer on
 the first non-white character.  Without a count, go to the end of the buffer
 (@code{vip-goto-line}).
 @item ` `
address@hidden 140 @kbd{`} (@code{vip-goto-mark})
address@hidden 140 ` @r{(address@hidden@r{)}
 Exchange point and mark (@code{vip-goto-mark}).
 @item ` @var{ch}
 Move point to the position stored in the register @var{ch}.  @var{ch} must
 be a lower-case letter.
 @item ' '
address@hidden 047 @kbd{'} (@code{vip-goto-mark-and-skip-white})
address@hidden 047 ' @r{(address@hidden@r{)}
 Exchange point and mark, and then move point to the first non-white
 character on the line (@code{vip-goto-mark-and-skip-white}).
 @item ' @var{ch}
 Move point to the position stored in the register @var{ch} and skip to the
 first non-white character on the line.  @var{ch} must be a lower-case letter.
 @item %
address@hidden 045 @kbd{%} (@code{vip-paren-match})
address@hidden 045 % @r{(address@hidden@r{)}
 Move point to the matching parenthesis if point is looking at @kbd{(},
 @kbd{)}, @address@hidden, @address@hidden, @kbd{[} or @kbd{]}
 @*(@code{vip-paren-match}).
@@ -1194,27 +1194,27 @@ will repeat the effect.
 
 @table @kbd
 @item f @var{ch}
address@hidden 146 @kbd{f} (@code{vip-find-char-forward})
address@hidden 146 f @r{(address@hidden@r{)}
 Move point forward to the character @var{ch} on the line.  Signal error if
 @var{ch} could not be found (@code{vip-find-char-forward}).
 @item F @var{ch}
address@hidden 106 @kbd{F} (@code{vip-find-char-backward})
address@hidden 106 F @r{(address@hidden@r{)}
 Move point backward to the character @var{ch} on the line.  Signal error if
 @var{ch} could not be found (@code{vip-find-char-backward}).
 @item t @var{ch}
address@hidden 164 @kbd{t} (@code{vip-goto-char-forward})
address@hidden 164 t @r{(address@hidden@r{)}
 Move point forward upto the character @var{ch} on the line.  Signal error if
 @var{ch} could not be found (@code{vip-goto-char-forward}).
 @item T @var{ch}
address@hidden 124 @kbd{T} (@code{vip-goto-char-backward})
address@hidden 124 T @r{(address@hidden@r{)}
 Move point backward upto the character @var{ch} on the line.  Signal error if
 @var{ch} could not be found (@code{vip-goto-char-backward}).
 @item ;
address@hidden 073 @kbd{;} (@code{vip-repeat-find})
address@hidden 073 ; @r{(address@hidden@r{)}
 Repeat previous @kbd{f}, @kbd{t}, @kbd{F} or @kbd{T} command
 (@code{vip-repeat-find}).
 @item ,
address@hidden 054 @kbd{,} (@code{vip-repeat-find-opposite})
address@hidden 054 , @r{(address@hidden@r{)}
 Repeat previous @kbd{f}, @kbd{t}, @kbd{F} or @kbd{T} command, in the
 opposite direction (@code{vip-repeat-find-opposite}).
 @end table
@@ -1228,7 +1228,7 @@ Following commands are available for searching and 
replacing.
 
 @table @kbd
 @item / @var{string} @key{RET}
address@hidden 057 @kbd{/} (@code{vip-search-forward})
address@hidden 057 / @r{(address@hidden@r{)}
 Search the first occurrence of the string @var{string} forward starting
 from point.  Given a count @var{n}, the @var{n}-th occurrence of
 @var{string} will be searched.  If the variable @code{vip-re-search} has value
@@ -1238,28 +1238,28 @@ empty string as @var{string} then the search mode will 
change from vanilla
 search to regular expression search and vice versa
 (@code{vip-search-forward}).
 @item ? @var{string} @key{RET}
address@hidden 077 @kbd{?} (@code{vip-search-backward})
address@hidden 077 ? @r{(address@hidden@r{)}
 Same as @kbd{/}, except that search is done backward
 (@code{vip-search-backward}).
 @item n
address@hidden 156 @kbd{n} (@code{vip-search-next})
address@hidden 156 n @r{(address@hidden@r{)}
 Search the previous search pattern in the same direction as before
 (@code{vip-search-next}).
 @item N
address@hidden 116 @kbd{N} (@code{vip-search-Next})
address@hidden 116 N @r{(address@hidden@r{)}
 Search the previous search pattern in the opposite direction
 (@code{vip-search-Next}).
 @item C-s
address@hidden 023 @kbd{C-s} (@code{isearch-forward})
address@hidden 023 C-s @r{(address@hidden@r{)}
 Search forward incrementally.  See GNU Emacs Manual for details
 (@code{isearch-forward}).
 @item C-r
address@hidden 022 @kbd{C-r} (@code{isearch-backward})
address@hidden 022 C-r @r{(address@hidden@r{)}
 Search backward incrementally (@code{isearch-backward}).
 @cindex vanilla (replacement)
 @cindex regular expression (replacement)
address@hidden R @var{string} RET @var{newstring}
address@hidden 122 @kbd{R} (@code{vip-replace-string})
address@hidden R @var{string} @key{RET} @var{newstring}
address@hidden 122 R @r{(address@hidden@r{)}
 There are two modes of replacement, @dfn{vanilla} and @dfn{regular expression}.
 If the mode is @i{vanilla} you will get a prompt @samp{Replace string:},
 and if the mode is @i{regular expression} you will ge a prompt
@@ -1269,13 +1269,13 @@ vanilla, this command replaces every occurrence of 
@var{string} with
 @var{newstring}.  If the mode is regular expression, @var{string} is
 treated as a regular expression and every string matching the regular
 expression is replaced with @var{newstring} (@code{vip-replace-string}).
address@hidden Q @var{string} RET @var{newstring}
address@hidden 121 @kbd{Q} (@code{vip-query-replace})
address@hidden Q @var{string} @key{RET} @var{newstring}
address@hidden 121 Q @r{(address@hidden@r{)}
 Same as @kbd{R} except that you will be asked form confirmation before each
 replacement
 @*(@code{vip-query-replace}).
 @item r @var{ch}
address@hidden 162 @kbd{r} (@code{vip-replace-char})
address@hidden 162 r @r{(address@hidden@r{)}
 Replace the character point is looking at by the character @var{ch}.  Give
 count, replace that many characters by @var{ch} (@code{vip-replace-char}).
 @end table
@@ -1326,7 +1326,7 @@ command.
 
 @table @kbd
 @item d @var{motion-command}
address@hidden 1440 @kbd{d} (@code{vip-command-argument})
address@hidden 1440 d @r{(address@hidden@r{)}
 Delete the region determined by the motion command @var{motion-command}.
 @end table
 @noindent
@@ -1337,7 +1337,7 @@ end of the buffer, since @kbd{G} is a line command.  A 
count given to the
 command above will become the count for the associated motion command.
 Thus, @kbd{3 d w} will delete three words.
 
address@hidden 042 @kbd{"} (@code{vip-command-argument})
address@hidden 042 " @r{(address@hidden@r{)}
 It is also possible to save the deleted text into a register you specify.
 For example, you can say @kbd{" t 3 d w} to delete three words and save it
 to register @kbd{t}.  The name of a register is a lower-case letter between
@@ -1352,23 +1352,23 @@ We have more delete commands as below.
 
 @table @kbd
 @item d d
address@hidden 1442 @kbd{d d}
address@hidden 1442 d d
 Delete a line.  Given a count @var{n}, delete @var{n} lines.
 @item d r
address@hidden 1442 @kbd{d r}
address@hidden 1442 d r
 Delete current region.
 @item d R
address@hidden 1441 @kbd{d R}
address@hidden 1441 d R
 Expand current region and delete it.
 @item D
address@hidden 104 @kbd{D} (@code{vip-kill-line})
address@hidden 104 D @r{(address@hidden@r{)}
 Delete to the end of a line (@code{vip-kill-line}).
 @item x
address@hidden 170 @kbd{x} (@code{vip-delete-char})
address@hidden 170 x @r{(address@hidden@r{)}
 Delete a character after point.  Given @var{n}, delete @var{n} characters
 (@code{vip-delete-char}).
 @item @key{DEL}
address@hidden 177 @kbd{DEL} (@code{vip-delete-backward-char})
address@hidden 177 DEL @r{(address@hidden@r{)}
 Delete a character before point.  Given @var{n}, delete @var{n} characters
 (@code{vip-delete-backward-char}).
 @end table
@@ -1385,7 +1385,7 @@ commands that put back the yanked text into the buffer.
 
 @table @kbd
 @item y @var{motion-command}
address@hidden 1710 @kbd{y} (@code{vip-command-argument})
address@hidden 1710 y @r{(address@hidden@r{)}
 Yank the region determined by the motion command @var{motion-command}.
 @end table
 @noindent
@@ -1398,14 +1398,14 @@ Use the following command to yank consecutive lines of 
text.
 @table @kbd
 @item y y
 @itemx Y
address@hidden 131 @kbd{Y} (@code{vip-yank-line})
address@hidden 1712 @kbd{y y} (@code{vip-yank-line})
address@hidden 131 Y @r{(address@hidden@r{)}
address@hidden 1712 y y @r{(address@hidden@r{)}
 Yank a line.  Given @var{n}, yank @var{n} lines (@code{vip-yank-line}).
 @item y r
address@hidden 1712 @kbd{y r}
address@hidden 1712 y r
 Yank current region.
 @item y R
address@hidden 1711 @kbd{y R}
address@hidden 1711 y R
 Expand current region and yank it.
 @end table
 
@@ -1416,7 +1416,7 @@ below.
 
 @table @kbd
 @item p
address@hidden 160 @kbd{p} (@code{vip-put-back})
address@hidden 160 p @r{(address@hidden@r{)}
 Insert, after the character point is looking at, most recently
 deleted/yanked text from anonymous register. Given a register name
 argument, the content of the named register will be put back.  Given a
@@ -1424,7 +1424,7 @@ count, the command will be repeated that many times. This 
command also
 checks if the text to put back ends with a new line character, and if so
 the text will be put below the current line (@code{vip-put-back}).
 @item P
address@hidden 120 @kbd{P} (@code{vip-Put-back})
address@hidden 120 P @r{(address@hidden@r{)}
 Insert at point most recently deleted/yanked text from anonymous register.
 Given a register name argument, the content of the named register will
 be put back.  Given a count, the command will be repeated that many times.
@@ -1447,7 +1447,7 @@ Most commonly used change command takes the following 
form.
 
 @table @kbd
 @item c @var{motion-command}
address@hidden 1430 @kbd{c} (@code{vip-command-argument})
address@hidden 1430 c @r{(address@hidden@r{)}
 Replace the content of the region determined by the motion command
 @var{motion-command} by the text you type.  If the motion command is a
 point command then you will type the text into minibuffer, and if the
@@ -1463,13 +1463,13 @@ command.
 
 @table @kbd
 @item c c
address@hidden 1432 @kbd{c c}
address@hidden 1432 c c
 Change a line.  Given a count, that many lines are changed.
 @item c r
address@hidden 1432 @kbd{c r}
address@hidden 1432 c r
 Change current region.
 @item c R
address@hidden 1431 @kbd{c R}
address@hidden 1431 c R
 Expand current region and change it.
 @end table
 
@@ -1481,13 +1481,13 @@ it.  It is also very easy to undo changes made by 
modifying commands.
 
 @table @kbd
 @item u
address@hidden 165 @kbd{u} (@code{vip-undo})
address@hidden 165 u @r{(address@hidden@r{)}
 Undo the last change.  You can undo more by repeating undo by the repeat
 command @samp{.}.  For example, you can undo 5 previous changes by typing
 @samp{u....}.  If you type @samp{uu}, then the second @samp{u} undoes the
 first undo command (@code{vip-undo}).
 @item .
address@hidden 056 @kbd{.} (@code{vip-repeat})
address@hidden 056 . @r{(address@hidden@r{)}
 Repeat the last modifying command.  Given count @var{n} it becomes the new
 count for the repeated command.  Otherwise, the count for the last
 modifying command is used again (@code{vip-repeat}).
@@ -1500,12 +1500,12 @@ Miscellaneous Vi commands are collected here.
 
 @table @kbd
 @item Z Z
address@hidden 132 @kbd{Z Z} (@code{save-buffers-kill-emacs})
address@hidden 132 Z Z @r{(address@hidden@r{)}
 Exit Emacs.  If modified buffers exist, you will be asked whether you wish
 to save them or not (@code{save-buffers-kill-emacs}).
 @item !@: @var{motion-command} @var{format-command}
 @itemx @var{n} !@: !@: @var{format-command}
address@hidden 041 @kbd{!} (@code{vip-command-argument})
address@hidden 041 ! @r{(address@hidden@r{)}
 The region determined by the motion command @var{motion-command} will be
 given to the shell command @var{format-command} and the region will be
 replaced by its output.  If a count is given, it will be passed to
@@ -1514,30 +1514,30 @@ between point and the 3rd line.  If @kbd{!} is used 
instead of
 @var{motion-command} then @var{n} lines will be processed by
 @var{format-command} (@code{vip-command-argument}).
 @item J
address@hidden 112 @kbd{J} (@code{vip-join-lines})
address@hidden 112 J @r{(address@hidden@r{)}
 Join two lines.  Given count, join that many lines.  A space will be
 inserted at each junction (@code{vip-join-lines}).
 @item < @var{motion-command}
 @itemx @var{n} < <
address@hidden 074 @kbd{<} (@code{vip-command-argument})
address@hidden 074 < @r{(address@hidden@r{)}
 Shift region determined by the motion command @var{motion-command} to
 left by @var{shift-width} (default is 8).  If @kbd{<} is used instead of
 @var{motion-command} then shift @var{n} lines
 @*(@code{vip-command-argument}).
 @item > @var{motion-command}
 @itemx @var{n} > >
address@hidden 076 @kbd{>} (@code{vip-command-argument})
address@hidden 076 > @r{(address@hidden@r{)}
 Shift region determined by the motion command @var{motion-command} to
 right by @var{shift-width} (default is 8).  If @kbd{<} is used instead of
 @var{motion-command} then shift @var{n} lines
 @*(@code{vip-command-argument}).
 @item = @var{motion-command}
address@hidden 075 @kbd{=} (@code{vip-command-argument})
address@hidden 075 = @r{(address@hidden@r{)}
 Indent region determined by the motion command @var{motion-command}.  If
 @kbd{=} is used instead of @var{motion-command} then indent @var{n} lines
 (@code{vip-command-argument}).
 @item *
address@hidden 052 @kbd{*} (@code{vip-call-last-kbd-macro})
address@hidden 052 * @r{(address@hidden@r{)}
 Call last remembered keyboard macro.
 @item #
 A new vi operator. @xref{New Commands}, for more details.
@@ -1546,14 +1546,14 @@ A new vi operator. @xref{New Commands}, for more 
details.
 The following keys are reserved for future extensions, and currently
 assigned to a function that just beeps (@code{vip-nil}).
 
address@hidden 046 @kbd{&} (@code{vip-nil})
address@hidden 100 @kbd{@@} (@code{vip-nil})
address@hidden 125 @kbd{U} (@code{vip-nil})
address@hidden 133 @kbd{[} (@code{vip-nil})
address@hidden 135 @kbd{]} (@code{vip-nil})
address@hidden 137 @kbd{_} (@code{vip-nil})
address@hidden 161 @kbd{q} (@code{vip-nil})
address@hidden 176 @kbd{~} (@code{vip-nil})
address@hidden 046 & @r{(address@hidden@r{)}
address@hidden 100 @@ @r{(address@hidden@r{)}
address@hidden 125 U @r{(address@hidden@r{)}
address@hidden 133 [ @r{(address@hidden@r{)}
address@hidden 135 ] @r{(address@hidden@r{)}
address@hidden 137 _ @r{(address@hidden@r{)}
address@hidden 161 q @r{(address@hidden@r{)}
address@hidden 176 ~ @r{(address@hidden@r{)}
 
 @example
 &, @@, U, [, ], _, q, ~
@@ -1567,48 +1567,48 @@ keymap.  See GNU Emacs Manual for details.
 
 @table @kbd
 @item C-@@
address@hidden 000 @kbd{C-@@} (@code{set-mark-command})
address@hidden 000 C-@@ @r{(address@hidden@r{)}
 Set mark and push previous mark on mark ring (@code{set-mark-command}).
address@hidden TAB
address@hidden 011 TAB (@code{indent-for-tab-command})
address@hidden @key{TAB}
address@hidden 011 TAB @r{(address@hidden@r{)}
 Indent line for current major mode (@code{indent-for-tab-command}).
 @item C-j
address@hidden 012 @kbd{C-j} (@code{electric-newline-and-maybe-indent})
address@hidden 012 C-j @r{(address@hidden@r{)}
 Insert a newline, and maybe indent according to mode.
 @item C-k
address@hidden 013 @kbd{C-k} (@code{kill-line})
address@hidden 013 C-k @r{(address@hidden@r{)}
 Kill the rest of the current line; before a newline, kill the newline.
 With a numeric argument, kill that many lines from point.  Negative arguments
 kill lines backward (@code{kill-line}).
 @item C-l
address@hidden 014 @kbd{C-l} (@code{recenter})
address@hidden 014 C-l @r{(address@hidden@r{)}
 Clear the screen and reprint everything (@code{recenter}).
 @item @var{n} C-p
address@hidden 020 @kbd{C-p} (@code{previous-line})
address@hidden 020 C-p @r{(address@hidden@r{)}
 Move cursor vertically up @var{n} lines (@code{previous-line}).
 @item C-q
address@hidden 021 @kbd{C-q} (@code{quoted-insert})
address@hidden 021 C-q @r{(address@hidden@r{)}
 Read next input character and insert it.  Useful for inserting control
 characters
 @*(@code{quoted-insert}).
 @item C-r
address@hidden 022 @kbd{C-r} (@code{isearch-backward})
address@hidden 022 C-r @r{(address@hidden@r{)}
 Search backward incrementally (@code{isearch-backward}).
 @item C-s
address@hidden 023 @kbd{C-s} (@code{isearch-forward})
address@hidden 023 C-s @r{(address@hidden@r{)}
 Search forward incrementally (@code{isearch-forward}).
 @item @var{n} C-t
address@hidden 024 @kbd{C-t} (@code{transpose-chars})
address@hidden 024 C-t @r{(address@hidden@r{)}
 Interchange characters around point, moving forward one character.  With
 count @var{n}, take character before point and drag it forward past @var{n}
 other characters.  If no argument and at end of line, the previous two
 characters are exchanged (@code{transpose-chars}).
 @item @var{n} C-v
address@hidden 026 @kbd{C-v} (@code{scroll-up})
address@hidden 026 C-v @r{(address@hidden@r{)}
 Scroll text upward @var{n} lines.  If @var{n} is not given, scroll near
 full screen (@code{scroll-up}).
 @item C-w
address@hidden 027 @kbd{C-w} (@code{kill-region})
address@hidden 027 C-w @r{(address@hidden@r{)}
 Kill between point and mark.  The text is save in the kill ring.  The
 command @kbd{P} or @kbd{p} can retrieve it from kill ring
 (@code{kill-region}).
@@ -1624,29 +1624,29 @@ and you can repeat them by the repeat command @kbd{.} 
(@code{vip-repeat}).
 
 @table @kbd
 @item i
address@hidden 151 @kbd{i} (@code{vip-insert})
address@hidden 151 i @r{(address@hidden@r{)}
 Enter insert mode at point (@code{vip-insert}).
 @item I
address@hidden 111 @kbd{I} (@code{vip-Insert})
address@hidden 111 I @r{(address@hidden@r{)}
 Enter insert mode at the first non white character on the line
 (@code{vip-Insert}).
 @item a
address@hidden 141 @kbd{a} (@code{vip-append})
address@hidden 141 a @r{(address@hidden@r{)}
 Move point forward by one character and then enter insert mode
 (@code{vip-append}).
 @item A
address@hidden 101 @kbd{A} (@code{vip-Append})
address@hidden 101 A @r{(address@hidden@r{)}
 Enter insert mode at end of line (@code{vip-Append}).
 @item o
address@hidden 157 @kbd{o} (@code{vip-open-line})
address@hidden 157 o @r{(address@hidden@r{)}
 Open a new line below the current line and enter insert mode
 (@code{vip-open-line}).
 @item O
address@hidden 117 @kbd{O} (@code{vip-Open-line})
address@hidden 117 O @r{(address@hidden@r{)}
 Open a new line above the current line and enter insert mode
 (@code{vip-Open-line}).
 @item C-o
address@hidden 017 @kbd{C-o} (@code{vip-open-line-at-point})
address@hidden 017 C-o @r{(address@hidden@r{)}
 Insert a newline and leave point before it, and then enter insert mode
 @*(@code{vip-open-line-at-point}).
 @end table
@@ -1656,16 +1656,16 @@ differently from emacs mode.
 
 @table @kbd
 @item @key{ESC}
address@hidden 033 @kbd{ESC} (@code{vip-change-mode-to-vi}) (insert mode)
address@hidden 033 ESC @r{(address@hidden@r{) (insert mode)}
 This key will take you back to vi mode (@code{vip-change-mode-to-vi}).
 @item C-h
address@hidden 010 @kbd{C-h} (@code{delete-backward-char}) (insert mode)
address@hidden 010 C-h @r{(address@hidden@r{) (insert mode)}
 Delete previous character (@code{delete-backward-char}).
 @item C-w
address@hidden 027 @kbd{C-w} (@code{vip-delete-backward-word}) (insert mode)
address@hidden 027 C-w @r{(address@hidden@r{) (insert mode)}
 Delete previous word (@code{vip-delete-backward-word}).
 @item C-z
address@hidden 032 @kbd{C-z} (@code{vip-ESC}) (insert mode)
address@hidden 032 C-z @r{(address@hidden@r{) (insert mode)}
 This key simulates @key{ESC} key in emacs mode.  For instance, typing
 @kbd{C-z x} in insert mode is the same as typing @kbd{ESC x} in emacs mode
 (@code{vip-ESC}).
@@ -1685,7 +1685,7 @@ commands while in insert mode.
 @node Ex Commands
 @chapter Ex Commands
 
address@hidden 072 @kbd{:} (@code{vip-ex})
address@hidden 072 : @r{(address@hidden@r{)}
 
 In vi mode, you can execute an Ex command @var{ex-command} by typing:
 @example
diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi
index 8948437..2b300f6 100644
--- a/doc/misc/viper.texi
+++ b/doc/misc/viper.texi
@@ -368,9 +368,9 @@ toggles Viperization of Emacs on and off.
 @node States in Viper
 @section States in Viper
 
address@hidden @kbd{C-z}
address@hidden @key{ESC}
address@hidden @kbd{i}
address@hidden C-z
address@hidden ESC
address@hidden i
 @cindex Emacs state
 @cindex Vi state
 @cindex Insert state
@@ -474,7 +474,7 @@ to allow Emacs keys in Insert state.
 @node Emacs State
 @subsection Emacs State
 
address@hidden @kbd{C-z}
address@hidden C-z
 @cindex Emacs state
 
 
@@ -514,7 +514,7 @@ exceptions are:
 
 @table @kbd
 @item C-x
address@hidden @kbd{C-x}
address@hidden C-x
 @kbd{C-x} is used to invoke Emacs commands, mainly those that do window
 management.  @kbd{C-x 2} will split a window, @kbd{C-x 0} will close a
 window.  @kbd{C-x 1} will close all other windows.  @kbd{C-xb} is used to
@@ -523,14 +523,14 @@ These are about the only necessary keystrokes.
 For the rest, see the GNU Emacs Manual.
 
 @item C-c
address@hidden @kbd{C-c}
address@hidden C-c
 For user levels 2 and higher, this key serves as a prefix key for the key
 sequences used by various major modes.  For users at Viper level 1, @kbd{C-c}
 simply beeps.
 
 @item C-g and C-]
address@hidden @kbd{C-g}
address@hidden @kbd{C-]}
address@hidden C-g
address@hidden C-]
 
 These are the Emacs @samp{quit} keys.
 There will be cases where you will have to
@@ -543,7 +543,7 @@ Edit,Recursive Edit,emacs,The GNU Emacs Manual}.
 At user level 1, @kbd{C-g} is bound to @code{viper-info-on-file}
 function instead.
 @item C-\
address@hidden @kbd{C-\}
address@hidden C-\
 @cindex Meta key
 
 Viper uses @key{ESC} as a switch between Insert and Vi states.  Emacs uses
@@ -569,7 +569,7 @@ about are:
 
 @table @samp
 @item Undo
address@hidden @kbd{u}
address@hidden u
 @kbd{u} will undo.  Undo can be repeated by the @kbd{.} key.  Undo itself
 can be undone.  Another @kbd{u} will change the direction.  The presence
 of repeatable undo means that @kbd{U}, undoing lines, is not very
@@ -599,7 +599,7 @@ to case-insensitive and back.
 @cindex vanilla search
 @cindex case-sensitive search
 @cindex case-insensitive search
address@hidden @kbd{C-c /}
address@hidden C-c /
 
 @item Ex commands
 @cindex Ex commands
@@ -1083,7 +1083,7 @@ remembered (This is called ``learn mode'' in some 
editors.)
 where @samp{register} is any character from @samp{a} through @samp{z}.  Then
 you can execute this macro using @kbd{@@register}.  It is, of course,
 possible to yank some text into a register and execute it using
address@hidden@@register}.  Typing @kbd{@@@@}, @kbd{@@RET}, or @kbd{@@C-j} will
address@hidden@@register}.  Typing @kbd{@@@@}, @kbd{@@@key{RET}}, or 
@kbd{@@C-j} will
 execute the last macro that was executed using @kbd{@@register}.
 
 Viper will automatically lowercase the register, so that pressing the
@@ -1302,8 +1302,8 @@ These commands have no Vi analogs.
 
 @table @kbd
 @item C-x, C-c
address@hidden @kbd{C-x}
address@hidden @kbd{C-c}
address@hidden C-x
address@hidden C-c
 These two keys invoke many important Emacs functions.  For example, if you
 hit @kbd{C-x} followed by @kbd{2}, then the current window will be split
 into 2.  Except for novice users, @kbd{C-c} is also set to execute an Emacs
@@ -1313,11 +1313,11 @@ configure @key{ESC} as Meta by setting 
@code{viper-no-multiple-ESC} to
 @kbd{C-\} in Insert, Replace, or Vi states will make Emacs think
 @kbd{Meta} has been hit.
 @item \
address@hidden @kbd{\}
address@hidden \
 Escape to Emacs to execute a single Emacs command.  For instance,
 @kbd{\ @key{ESC}} will act like a Meta key.
 @item Q
address@hidden @kbd{Q}
address@hidden Q
 @cindex query replace
 @kbd{Q} is for query replace.  By default,
 each string to be replaced is treated as a regular expression.  You can use
@@ -1327,16 +1327,16 @@ that @kbd{:se nomagic} turns Regexps off completely, 
unlike Vi).
 @item v
 @itemx V
 @itemx C-v
address@hidden @kbd{v}
address@hidden @kbd{V}
address@hidden @kbd{C-v}
address@hidden v
address@hidden V
address@hidden C-v
 These keys are used to visit files.  @kbd{v} will switch to a buffer
 visiting file whose name can be entered in the minibuffer.  @kbd{V} is
 similar, but will use a window different from the current window.
 @kbd{C-v} is like @kbd{V}, except that a new frame (X window) will be used
 instead of a new Emacs window.
 @item #
address@hidden @kbd{#}
address@hidden #
 If followed by a certain character @var{ch}, it becomes an operator whose
 argument is the region determined by the motion command that follows
 (indicated as <move>).
@@ -1344,34 +1344,34 @@ Currently, @var{ch} can be one of @kbd{c}, @kbd{C}, 
@kbd{g}, @kbd{q}, and
 @kbd{s}.  For instance, @kbd{#qr} will prompt you for a string and then
 prepend this string to each line in the buffer.
 @item # c
address@hidden @kbd{#c<move>}
address@hidden #c<move>
 @cindex changing case
 Change upper-case characters in the region to lower-case
 (@code{downcase-region}).
 Emacs command @kbd{M-l} does the same for words.
 @item # C
address@hidden @kbd{#C<move>}
address@hidden #C<move>
 Change lower-case characters in the region to upper-case.  For instance,
 @kbd{# C 3 w} will capitalize 3 words from the current point
 (@code{upcase-region}).
 Emacs command @kbd{M-u} does the same for words.
 @item # g
address@hidden @kbd{#g<move>}
address@hidden #g<move>
 Execute last keyboard macro for each line in the region
 (@code{viper-global-execute}).
 @item # q
address@hidden @kbd{#q<move>}
address@hidden #q<move>
 Insert specified string at the beginning of each line in the region
 (@code{viper-quote-region}).  The default string is composed of the comment
 character(s) appropriate for the current major mode.
 @item # s
address@hidden @kbd{#s<move>}
address@hidden #s<move>
 Check spelling of words in the region (@code{spell-region}).
 The function used for spelling is determined from the variable
 @code{viper-spell-function}.
 @vindex viper-spell-function
 @item *
address@hidden @kbd{*}
address@hidden *
 Call last keyboard macro.
 @item m .
 Set mark at point and push old mark off the ring
@@ -1382,41 +1382,41 @@ Set mark at beginning and end of buffer, respectively.
 Jump to mark and pop mark off the ring.  @xref{Mark,,Mark,emacs,The GNU
 Emacs Manual}, for more info.
 @item ] register
address@hidden @kbd{]<a-z>}
address@hidden ]<a-z>
 View contents of register
 @item [ textmarker
address@hidden @kbd{[<a-z>}
address@hidden [<a-z>
 View filename and position of textmarker
 @item @@#
 @item @@register
 @item @@!
address@hidden @kbd{@@#}
address@hidden @kbd{@@<a-z>}
address@hidden @kbd{@@!}
address@hidden @@#
address@hidden @@<a-z>
address@hidden @@!
 @cindex keyboard macros
 @cindex register execution
 
 Begin/end keyboard macro.  @@register has a different meaning when used after
 a @kbd{@@#}.  @xref{Macros and Registers}, for details
 @item []
address@hidden @kbd{[]}
address@hidden []
 Go to end of heading.
 @item g <@emph{movement command}>
 Search buffer for text delimited by movement command.  The canonical
 example is @kbd{gw} to search for the word under the cursor.
 @xref{Improved Search}, for details.
 @item C-g and C-]
address@hidden @kbd{C-g}
address@hidden @kbd{C-]}
address@hidden C-g
address@hidden C-]
 Quit and Abort Recursive edit.  These may be necessary on occasion.
 @xref{Vi State}, for a reason.
 @item C-c C-g
address@hidden @kbd{C-c C-g}
address@hidden C-c C-g
 Hitting @kbd{C-c} followed by @kbd{C-g} will display the information on the
 current buffer.  This is the same as hitting @kbd{C-g} in Vi, but, as
 explained above, @kbd{C-g} is needed for other purposes in Emacs.
 @item C-c /
address@hidden @kbd{C-c /}
address@hidden C-c /
 Without a prefix argument, this command toggles
 case-sensitive/case-insensitive search modes and plain vanilla/regular
 expression search.  With the prefix argument 1, i.e.,
@@ -1429,21 +1429,21 @@ this function.
 @cindex case-insensitive search
 
 @item M-p and M-n
address@hidden @kbd{M-p}
address@hidden @kbd{M-n}
address@hidden M-p
address@hidden M-n
 In the minibuffer, these commands navigate through the minibuffer
 histories, such as the history of search strings, Ex commands, etc.
 
 @item C-s
address@hidden @kbd{C-s}
address@hidden C-s
 If the minibuffer is entered via a Viper search commands @kbd{/} or @kbd{?},
 then typing this key inserts the last search string used by the
 Emacs incremental search command (that is bound to @kbd{C-s} everywhere
 except in this case).
 
 @item C-c M-p and C-c M-n
address@hidden @kbd{C-c M-p}
address@hidden @kbd{C-c M-n}
address@hidden C-c M-p
address@hidden C-c M-n
 @cindex Insertion history
 @cindex Insertion ring
 @cindex Command history
@@ -2669,10 +2669,10 @@ purpose of mouse search and mouse insert.  By default, 
this is set to
 @code{double-click-time} in Emacs and to
 @code{mouse-track-multi-click-time} milliseconds in XEmacs.
 @end table
address@hidden @kbd{S-mouse-1}
address@hidden @kbd{S-mouse-2}
address@hidden @kbd{meta shift button1up}
address@hidden @kbd{meta shift button2up}
address@hidden S-mouse-1
address@hidden S-mouse-2
address@hidden META SHIFT button1up
address@hidden META SHIFT button2up
 @vindex viper-multiclick-timeout
 @findex viper-mouse-click-insert-word
 @findex viper-mouse-click-search-word
@@ -3383,60 +3383,60 @@ don't want this macro, put
 in your Viper customization file.
 
 @end table
address@hidden @kbd{%}
address@hidden @kbd{C-c /}
address@hidden @kbd{N}
address@hidden @kbd{n}
address@hidden @kbd{?<cr>}
address@hidden @kbd{/<cr>}
address@hidden @kbd{?<string>}
address@hidden @kbd{/<string>}
address@hidden @kbd{''}
address@hidden @kbd{``}
address@hidden @kbd{]<a-z>}
address@hidden @kbd{[<a-z>}
address@hidden @kbd{'<a-z>}
address@hidden @kbd{`<a-z>}
address@hidden @kbd{m<a-z>}
address@hidden @kbd{[]}
address@hidden @kbd{[[}
address@hidden @kbd{]]}
address@hidden @address@hidden
address@hidden @address@hidden
address@hidden @kbd{(}
address@hidden @kbd{)}
address@hidden @kbd{M}
address@hidden @kbd{L}
address@hidden @kbd{H}
address@hidden @kbd{G}
address@hidden @kbd{E}
address@hidden @kbd{e}
address@hidden @kbd{B}
address@hidden @kbd{b}
address@hidden @kbd{W}
address@hidden @kbd{w}
address@hidden @kbd{,}
address@hidden @kbd{;}
address@hidden @kbd{T<char>}
address@hidden @kbd{F<char>}
address@hidden @kbd{t<char>}
address@hidden @kbd{f<char>}
address@hidden @kbd{|}
address@hidden @kbd{0}
address@hidden @kbd{<cr>}
address@hidden @kbd{+}
address@hidden @kbd{-}
address@hidden @kbd{^}
address@hidden @kbd{$}
address@hidden @kbd{C-p}
address@hidden @kbd{<lf>}
address@hidden @kbd{<sp>}
address@hidden @kbd{C-n}
address@hidden @kbd{C-h}
address@hidden @kbd{h}
address@hidden @kbd{j}
address@hidden @kbd{k}
address@hidden @kbd{l}
address@hidden %
address@hidden C-c /
address@hidden N
address@hidden n
address@hidden ?<cr>
address@hidden /<cr>
address@hidden ?<string>
address@hidden /<string>
address@hidden ''
address@hidden ``
address@hidden ]<a-z>
address@hidden [<a-z>
address@hidden '<a-z>
address@hidden `<a-z>
address@hidden m<a-z>
address@hidden []
address@hidden [[
address@hidden ]]
address@hidden @{
address@hidden @}
address@hidden (
address@hidden )
address@hidden M
address@hidden L
address@hidden H
address@hidden G
address@hidden E
address@hidden e
address@hidden B
address@hidden b
address@hidden W
address@hidden w
address@hidden ,
address@hidden ;
address@hidden T<char>
address@hidden F<char>
address@hidden t<char>
address@hidden f<char>
address@hidden |
address@hidden 0
address@hidden CR
address@hidden +
address@hidden -
address@hidden ^
address@hidden $
address@hidden C-p
address@hidden LF
address@hidden SPC
address@hidden C-n
address@hidden C-h
address@hidden h
address@hidden j
address@hidden k
address@hidden l
 @vindex viper-parse-sexp-ignore-comments
 
 @node Marking
@@ -3478,18 +3478,18 @@ Go to specified Viper mark.
 @item `<a-z>
 Go to specified Viper mark and go to the first CHAR on line.
 @end table
address@hidden @kbd{m<a-z>}
address@hidden @kbd{m.}
address@hidden @kbd{m>}
address@hidden @kbd{m<}
address@hidden @kbd{m,}
address@hidden @kbd{m^}
address@hidden m<a-z>
address@hidden m.
address@hidden m>
address@hidden m<
address@hidden m,
address@hidden m^
 @findex @kbd{Ex mark}
 @findex @kbd{Ex k}
address@hidden @kbd{''}
address@hidden @kbd{``}
address@hidden @kbd{`<a-z>}
address@hidden @kbd{'<a-z>}
address@hidden ''
address@hidden ``
address@hidden `<a-z>
address@hidden '<a-z>
 
 @node  Appending Text
 @subsection Appending Text
@@ -3556,22 +3556,22 @@ Since typing the above sequences of keys may be 
tedious, the
 functions doing the perusing can be bound to unused keyboard keys in the
 Viper customization file.  @xref{Viper Specials}, for details.
 @end table
address@hidden @kbd{C-c M-p}
address@hidden @kbd{C-c M-n}
address@hidden @kbd{.}
address@hidden @kbd{]<a-z>}
address@hidden @kbd{[<a-z>}
address@hidden @kbd{P}
address@hidden @kbd{p}
address@hidden @kbd{"<a-z1-9>p}
address@hidden @kbd{"<a-z1-9>P}
address@hidden @kbd{>>}
address@hidden @kbd{><move>}
address@hidden @kbd{O}
address@hidden @kbd{o}
address@hidden @kbd{i}
address@hidden @kbd{A}
address@hidden @kbd{a}
address@hidden C-c M-p
address@hidden C-c M-n
address@hidden .
address@hidden ]<a-z>
address@hidden [<a-z>
address@hidden P
address@hidden p
address@hidden "<a-z1-9>p
address@hidden "<a-z1-9>P
address@hidden >>
address@hidden ><move>
address@hidden O
address@hidden o
address@hidden i
address@hidden A
address@hidden a
 
 @node Editing in Insert State
 @subsection Editing in Insert State
@@ -3595,9 +3595,9 @@ Back to the begin of the change on the
 current line.
 
 @end table
address@hidden @kbd{C-u}
address@hidden @kbd{C-w}
address@hidden @kbd{C-v}
address@hidden C-u
address@hidden C-w
address@hidden C-v
 
 @node Deleting Text
 @subsection Deleting Text
@@ -3634,13 +3634,13 @@ shiftwidth to the left (layout!).
 @item <count>  <<
 Shift <count> lines one shiftwidth to the left.
 @end table
address@hidden @kbd{<<}
address@hidden @kbd{<<move>}
address@hidden @kbd{D}
address@hidden @kbd{dd}
address@hidden @kbd{d<move>}
address@hidden @kbd{X}
address@hidden @kbd{x}
address@hidden <<
address@hidden <<move>
address@hidden D
address@hidden dd
address@hidden d<move>
address@hidden X
address@hidden x
 
 @node Changing Text
 @subsection Changing Text
@@ -3727,28 +3727,28 @@ In Vi state, these keys are bound to functions that 
peruse the history of
 destructive Vi commands.
 @xref{Viper Specials}, for details.
 @end table
address@hidden @kbd{C-c M-p}
address@hidden @kbd{C-c M-n}
address@hidden @kbd{#q<move> }
address@hidden @kbd{#C<move>}
address@hidden @kbd{#c<move>}
address@hidden @kbd{&}
address@hidden @kbd{\&}
address@hidden C-c M-p
address@hidden C-c M-n
address@hidden #q<move>
address@hidden #C<move>
address@hidden #c<move>
address@hidden &
address@hidden \&
 @findex @kbd{Ex substitute/<pat>/<repl>/<f>}
 @findex @kbd{Ex s/<pat>/<repl>/<f>}
 @findex @kbd{Ex copy [z]}
 @findex @kbd{Ex t [z]}
 @findex @kbd{Ex move [z]}
address@hidden @kbd{J}
address@hidden @kbd{~}
address@hidden @kbd{=<move>}
address@hidden @kbd{C}
address@hidden @kbd{cc}
address@hidden @kbd{c<move>}
address@hidden @kbd{S}
address@hidden @kbd{s}
address@hidden @kbd{R}
address@hidden @kbd{r<char>}
address@hidden J
address@hidden ~
address@hidden =<move>
address@hidden C
address@hidden cc
address@hidden c<move>
address@hidden S
address@hidden s
address@hidden R
address@hidden r<char>
 
 @node Search and Replace
 @subsection Search and Replace
@@ -3817,21 +3817,21 @@ Execute <ex-command> on all lines that match <pattern>.
 @itemx :v /<pattern>/<ex-command>
 Execute <ex-command> on all lines that do not match <pattern>.
 @end table
address@hidden @kbd{&}
address@hidden &
 @findex @kbd{Ex substitute/<pat>/<repl>/<f>}
address@hidden @kbd{Q}
address@hidden @kbd{#g<move>}
address@hidden Q
address@hidden #g<move>
 @findex @kbd{Ex v}
 @findex @kbd{Ex g}
 @findex @kbd{Ex global}
 @findex @kbd{Ex vglobal}
 @findex @kbd{Ex tag <name>}
address@hidden @kbd{%}
address@hidden @kbd{N}
address@hidden @kbd{n}
address@hidden @kbd{g<move>}
address@hidden @kbd{?<string>}
address@hidden @kbd{/<string>}
address@hidden %
address@hidden N
address@hidden n
address@hidden g<move>
address@hidden ?<string>
address@hidden /<string>
 
 @node Yanking
 @subsection Yanking
@@ -3865,19 +3865,19 @@ be automatically down-cased.
 Put the contents of the (default undo) buffer
 <count> times before the cursor.  The register will
 @end table
address@hidden @kbd{P}
address@hidden @kbd{p}
address@hidden @kbd{"<a-z1-9>p}
address@hidden @kbd{"<a-z1-9>P}
address@hidden @kbd{]<a-z>}
address@hidden @kbd{[<a-z>}
address@hidden @kbd{m<a-z>}
address@hidden @kbd{Y}
address@hidden @kbd{yy}
address@hidden @kbd{"<A-Z>y<move>}
address@hidden @kbd{"<a-z>y<move>}
address@hidden @kbd{y<move>}
address@hidden @kbd{yank}
address@hidden P
address@hidden p
address@hidden "<a-z1-9>p
address@hidden "<a-z1-9>P
address@hidden ]<a-z>
address@hidden [<a-z>
address@hidden m<a-z>
address@hidden Y
address@hidden yy
address@hidden "<A-Z>y<move>
address@hidden "<a-z>y<move>
address@hidden y<move>
address@hidden yank
 @findex @kbd{Ex yank}
 
 @node Undoing
@@ -3902,9 +3902,9 @@ that have a @samp{~} appended to them.
 @findex @kbd{Ex rec}
 @findex @kbd{Ex e!}
 @findex @kbd{Ex q!}
address@hidden @kbd{.}
address@hidden @kbd{U}
address@hidden @kbd{u}
address@hidden .
address@hidden U
address@hidden u
 
 @node Display
 @section Display
@@ -3948,21 +3948,21 @@ Put line <count> at the bottom of the window
 Put line <count> in the center of the window
 (default the current line).
 @end table
address@hidden @kbd{zM}
address@hidden @kbd{zL}
address@hidden @kbd{zH}
address@hidden @kbd{z<cr>}
address@hidden @kbd{z.}
address@hidden @kbd{z-}
address@hidden @kbd{z<cr>}
address@hidden @kbd{C-b}
address@hidden @kbd{C-f}
address@hidden @kbd{C-u}
address@hidden @kbd{C-d}
address@hidden @kbd{C-y}
address@hidden @kbd{C-e}
address@hidden @kbd{C-l}
address@hidden @kbd{C-g}
address@hidden zM
address@hidden zL
address@hidden zH
address@hidden z<cr>
address@hidden z.
address@hidden z-
address@hidden z<cr>
address@hidden C-b
address@hidden C-f
address@hidden C-u
address@hidden C-d
address@hidden C-y
address@hidden C-e
address@hidden C-l
address@hidden C-g
 
 
 @node File and Buffer Handling
@@ -4078,11 +4078,11 @@ Read the file <name> into the buffer after the line 
<address>.
 Edit a file in current or another window, or in another frame.  File name
 is typed in minibuffer.  File completion and history are supported.
 @end table
address@hidden @kbd{v}
address@hidden @kbd{V}
address@hidden v
address@hidden V
 @findex @kbd{Ex args}
 @findex @kbd{Ex rew}
address@hidden @kbd{C-^}
address@hidden C-^
 @findex @kbd{Ex e!@: [<files>]}
 @findex @kbd{Ex e [<files>]}
 @findex @kbd{Ex edit [<files>]}
@@ -4096,7 +4096,7 @@ is typed in minibuffer.  File completion and history are 
supported.
 @findex @kbd{Ex r}
 @findex @kbd{Ex read}
 @findex @kbd{Ex pre}
address@hidden @kbd{ZZ}
address@hidden ZZ
 @findex @kbd{Ex wq}
 @findex @kbd{Ex w <file>}
 @findex @kbd{Ex w!@: <file>}
@@ -4171,14 +4171,14 @@ Show contents of textmarker.
 @item ]<a-z>
 Show contents of register.
 @end table
address@hidden @kbd{]<a-z>}
address@hidden @kbd{[<a-z>}
address@hidden @kbd{#g<move>}
address@hidden @kbd{*}
address@hidden @kbd{@@!<a-z>}
address@hidden @kbd{@@#}
address@hidden @kbd{@@@@}
address@hidden @kbd{@@<a-z>}
address@hidden ]<a-z>
address@hidden [<a-z>
address@hidden #g<move>
address@hidden *
address@hidden @@!<a-z>
address@hidden @@#
address@hidden @@@@
address@hidden @@<a-z>
 @findex @kbd{Ex unmap <char>}
 @findex @kbd{Ex map <char> <seq>}
 @findex @kbd{Ex unmap!@: <char>}
@@ -4410,16 +4410,16 @@ Undoes the last @kbd{C-y} and puts another kill from 
the kill ring.
 Using this command, you can try may different kills until you find the one
 you need.
 @end table
address@hidden @kbd{M-y}
address@hidden @kbd{C-y}
address@hidden @kbd{C-xC-f}
address@hidden @kbd{C-xo}
address@hidden @kbd{C-x2}
address@hidden @kbd{C-x1}
address@hidden @kbd{C-x0}
address@hidden @kbd{C-z}
address@hidden @kbd{C-\}
address@hidden @kbd{C-c\}
address@hidden M-y
address@hidden C-y
address@hidden C-x C-f
address@hidden C-x o
address@hidden C-x 2
address@hidden C-x 1
address@hidden C-x 0
address@hidden C-z
address@hidden C-\
address@hidden C-c\
 
 @node Mouse-bound Commands
 @section Mouse-bound Commands
@@ -4445,10 +4445,10 @@ Note: Viper sets this binding only if this mouse action 
is not
 already bound to something else.
 @xref{Viper Specials}, for more details.
 @end table
address@hidden @kbd{S-mouse-1}
address@hidden @kbd{S-mouse-2}
address@hidden @kbd{meta button1up}
address@hidden @kbd{meta button2up}
address@hidden S-mouse-1
address@hidden S-mouse-2
address@hidden META button1up
address@hidden META button2up
 
 @node GNU Free Documentation License
 @appendix GNU Free Documentation License
diff --git a/etc/NEWS b/etc/NEWS
index 596adf8..08c7e7e 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -180,6 +180,14 @@ created by 'edit-last-kbd-macro', and to save the macro by 
'C-c C-c'.
 ---
 *** New filter ibuffer-filter-by-process; bound to '/E'.
 
+** Search and Replace
+
+*** 'search-exit-option' provides new options 'move' and 'shift-move'
+to extend the search string by yanking text that ends at the new
+position after moving point in the current buffer.  'shift-move'
+extends the search string by motion commands while holding down
+the shift key.
+
 ** Edebug
 
 +++
diff --git a/etc/NEWS.26 b/etc/NEWS.26
index a8880d0..eded00e 100644
--- a/etc/NEWS.26
+++ b/etc/NEWS.26
@@ -431,9 +431,9 @@ always restricting the margin to a quarter of the window.
 
 +++
 ** Emacs can scroll horizontally using mouse, touchpad, and trackbar.
-You can enable this by customizing 'mwheel-tilt-scroll-p'.  If you
+You can enable this by customizing 'mouse-wheel-tilt-scroll'.  If you
 want to reverse the direction of the scroll, customize
-'mwheel-flip-direction'.
+'mouse-wheel-flip-direction'.
 
 +++
 ** The default GnuTLS priority string now includes %DUMBFW.
@@ -1219,7 +1219,7 @@ backend", which has been updated to benefit from the new 
UI features.
 ** Term
 
 ---
-*** `term-char-mode' now makes its buffer read-only.
+*** 'term-char-mode' now makes its buffer read-only.
 
 The buffer is made read-only to prevent changes from being made by
 anything other than the process filter; and movements of point away
@@ -1228,8 +1228,8 @@ correct position after each command.  This is needed to 
avoid states
 which are inconsistent with the state of the terminal understood by
 the inferior process.
 
-New user options `term-char-mode-buffer-read-only' and
-`term-char-mode-point-at-process-mark' control these behaviors, and
+New user options 'term-char-mode-buffer-read-only' and
+'term-char-mode-point-at-process-mark' control these behaviors, and
 are non-nil by default.  Customize these options to nil if you want
 the previous behavior.
 
@@ -1747,6 +1747,10 @@ when a symbol's value is changed.  This is used to 
implement the new
 debugger command 'debug-on-variable-change'.
 
 +++
+** New variable 'print-escape-control-characters' causes 'prin1' and
+'print' to output control characters as backslash sequences.
+
++++
 ** Time conversion functions that accept a time zone rule argument now
 allow it to be OFFSET or a list (OFFSET ABBR), where the integer
 OFFSET is a count of seconds east of Universal Time, and the string
diff --git a/lib-src/make-docfile.c b/lib-src/make-docfile.c
index 61d53dc..a5ed6e3 100644
--- a/lib-src/make-docfile.c
+++ b/lib-src/make-docfile.c
@@ -43,6 +43,7 @@ along with GNU Emacs.  If not, see 
<https://www.gnu.org/licenses/>.  */
 #include <string.h>
 
 #include <binary-io.h>
+#include <c-ctype.h>
 #include <intprops.h>
 #include <min-max.h>
 #include <unlocked-io.h>
@@ -341,7 +342,7 @@ scan_keyword_or_put_char (char ch, struct rcsoc_state 
*state)
          state->pending_newlines = 2;
          state->pending_spaces = 0;
 
-         /* Skip any whitespace between the keyword and the
+         /* Skip any spaces and newlines between the keyword and the
             usage string.  */
          int c;
          do
@@ -361,6 +362,7 @@ scan_keyword_or_put_char (char ch, struct rcsoc_state 
*state)
                fatal ("Unexpected EOF after keyword");
            }
          while (c != ' ' && c != ')');
+
          put_char ('f', state);
          put_char ('n', state);
 
@@ -415,7 +417,7 @@ read_c_string_or_comment (FILE *infile, int printflag, bool 
comment,
 
   c = getc (infile);
   if (comment)
-    while (c == '\n' || c == '\r' || c == '\t' || c == ' ')
+    while (c_isspace (c))
       c = getc (infile);
 
   while (c != EOF)
@@ -425,15 +427,14 @@ read_c_string_or_comment (FILE *infile, int printflag, 
bool comment,
          if (c == '\\')
            {
              c = getc (infile);
-             if (c == '\n' || c == '\r')
+             switch (c)
                {
+               case '\n': case '\r':
                  c = getc (infile);
                  continue;
+               case 'n': c = '\n'; break;
+               case 't': c = '\t'; break;
                }
-             if (c == 'n')
-               c = '\n';
-             if (c == 't')
-               c = '\t';
            }
 
          if (c == ' ')
@@ -504,10 +505,7 @@ write_c_args (char *func, char *buf, int minargs, int 
maxargs)
       char c = *p;
 
       /* Notice when a new identifier starts.  */
-      if ((('A' <= c && c <= 'Z')
-          || ('a' <= c && c <= 'z')
-          || ('0' <= c && c <= '9')
-          || c == '_')
+      if ((c_isalnum (c) || c == '_')
          != in_ident)
        {
          if (!in_ident)
@@ -550,11 +548,8 @@ write_c_args (char *func, char *buf, int minargs, int 
maxargs)
          else
            while (ident_length-- > 0)
              {
-               c = *ident_start++;
-               if (c >= 'a' && c <= 'z')
-                 /* Upcase the letter.  */
-                 c += 'A' - 'a';
-               else if (c == '_')
+               c = c_toupper (*ident_start++);
+               if (c == '_')
                  /* Print underscore as hyphen.  */
                  c = '-';
                putchar (c);
@@ -960,7 +955,7 @@ scan_c_stream (FILE *infile)
            {
              c = getc (infile);
            }
-         while (c == ',' || c == ' ' || c == '\t' || c == '\n' || c == '\r');
+         while (c == ',' || c_isspace (c));
 
          /* Read in the identifier.  */
          do
@@ -972,8 +967,8 @@ scan_c_stream (FILE *infile)
                fatal ("identifier too long");
              c = getc (infile);
            }
-         while (! (c == ',' || c == ' ' || c == '\t'
-                   || c == '\n' || c == '\r'));
+         while (! (c == ',' || c_isspace (c)));
+
          input_buffer[i] = '\0';
          memcpy (name, input_buffer, i + 1);
 
@@ -981,7 +976,8 @@ scan_c_stream (FILE *infile)
            {
              do
                c = getc (infile);
-             while (c == ' ' || c == '\t' || c == '\n' || c == '\r');
+             while (c_isspace (c));
+
              if (c != '"')
                continue;
              c = read_c_string_or_comment (infile, -1, false, 0);
@@ -1022,7 +1018,8 @@ scan_c_stream (FILE *infile)
                  int scanned = 0;
                  do
                    c = getc (infile);
-                 while (c == ' ' || c == '\n' || c == '\r' || c == '\t');
+                 while (c_isspace (c));
+
                  if (c < 0)
                    goto eof;
                  ungetc (c, infile);
@@ -1072,7 +1069,7 @@ scan_c_stream (FILE *infile)
          int d = getc (infile);
          if (d == EOF)
            goto eof;
-         while (1)
+         while (true)
            {
              if (c == '*' && d == '/')
                break;
@@ -1087,13 +1084,14 @@ scan_c_stream (FILE *infile)
              if (c == EOF)
                goto eof;
            }
-         while (c == ' ' || c == '\n' || c == '\r' || c == '\t');
+         while (c_isspace (c));
+
          /* Check for 'attributes:' token.  */
          if (c == 'a' && stream_match (infile, "ttributes:"))
            {
              char *p = input_buffer;
              /* Collect attributes up to ')'.  */
-             while (1)
+             while (true)
                {
                  c = getc (infile);
                  if (c == EOF)
@@ -1115,7 +1113,7 @@ scan_c_stream (FILE *infile)
          continue;
        }
 
-      while (c == ' ' || c == '\n' || c == '\r' || c == '\t')
+      while (c_isspace (c))
        c = getc (infile);
 
       if (c == '"')
@@ -1125,17 +1123,18 @@ scan_c_stream (FILE *infile)
        c = getc (infile);
       if (c == ',')
        {
-         c = getc (infile);
-         while (c == ' ' || c == '\n' || c == '\r' || c == '\t')
+         do
            c = getc (infile);
-         while ((c >= 'a' && c <= 'z') || (c >= 'Z' && c <= 'Z'))
+         while (c_isspace (c));
+
+         while (c_isalpha (c))
            c = getc (infile);
          if (c == ':')
            {
              doc_keyword = true;
-             c = getc (infile);
-             while (c == ' ' || c == '\n' || c == '\r' || c == '\t')
+             do
                c = getc (infile);
+             while (c_isspace (c));
            }
        }
 
@@ -1186,8 +1185,14 @@ scan_c_stream (FILE *infile)
              /* Copy arguments into ARGBUF.  */
              *p++ = c;
              do
-               *p++ = c = getc (infile);
+               {
+                 c = getc (infile);
+                 if (c < 0)
+                   goto eof;
+                 *p++ = c;
+               }
              while (c != ')');
+
              *p = '\0';
              /* Output them.  */
              fputs ("\n\n", stdout);
@@ -1243,25 +1248,32 @@ scan_c_stream (FILE *infile)
 static void
 skip_white (FILE *infile)
 {
-  char c = ' ';
-  while (c == ' ' || c == '\t' || c == '\n' || c == '\r')
+  int c;
+  do
     c = getc (infile);
+  while (c_isspace (c));
+
   ungetc (c, infile);
 }
 
 static void
 read_lisp_symbol (FILE *infile, char *buffer)
 {
-  char c;
+  int c;
   char *fillp = buffer;
 
   skip_white (infile);
-  while (1)
+  while (true)
     {
       c = getc (infile);
       if (c == '\\')
-       *(++fillp) = getc (infile);
-      else if (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '(' || 
c == ')')
+       {
+         c = getc (infile);
+         if (c < 0)
+           return;
+         *fillp++ = c;
+       }
+      else if (c_isspace (c) || c == '(' || c == ')' || c < 0)
        {
          ungetc (c, infile);
          *fillp = 0;
@@ -1381,7 +1393,7 @@ scan_lisp_file (const char *filename, const char *mode)
 
              /* Read the length.  */
              while ((c = getc (infile),
-                     c >= '0' && c <= '9'))
+                     c_isdigit (c)))
                {
                  if (INT_MULTIPLY_WRAPV (length, 10, &length)
                      || INT_ADD_WRAPV (length, c - '0', &length)
@@ -1413,7 +1425,7 @@ scan_lisp_file (const char *filename, const char *mode)
              while (c == '\n' || c == '\r')
                c = getc (infile);
              /* Skip the following line.  */
-             while (c != '\n' && c != '\r')
+             while (! (c == '\n' || c == '\r' || c < 0))
                c = getc (infile);
            }
          continue;
@@ -1451,7 +1463,7 @@ scan_lisp_file (const char *filename, const char *mode)
              continue;
            }
          else
-           while (c != ')')
+           while (! (c == ')' || c < 0))
              c = getc (infile);
          skip_white (infile);
 
@@ -1595,7 +1607,8 @@ scan_lisp_file (const char *filename, const char *mode)
                }
            }
          skip_white (infile);
-         if ((c = getc (infile)) != '\"')
+         c = getc (infile);
+         if (c != '\"')
            {
              fprintf (stderr, "## autoload of %s unparsable (%s)\n",
                       buffer, filename);
diff --git a/lib/unistd.in.h b/lib/unistd.in.h
index 13f4bb6..beeb8e1 100644
--- a/lib/unistd.in.h
+++ b/lib/unistd.in.h
@@ -400,7 +400,7 @@ _GL_WARN_ON_USE (dup3, "dup3 is unportable - "
 
 
 #if @GNULIB_ENVIRON@
-# if defined __CYGWIN__
+# if defined __CYGWIN__ && !defined __i386__
 /* The 'environ' variable is defined in a DLL. Therefore its declaration needs
    the '__declspec(dllimport)' attribute, but the system's <unistd.h> lacks it.
    This leads to a link error on 64-bit Cygwin when the option
diff --git a/lisp/cedet/ede.el b/lisp/cedet/ede.el
index 76acf8a..5bbc2d0 100644
--- a/lisp/cedet/ede.el
+++ b/lisp/cedet/ede.el
@@ -1095,6 +1095,7 @@ Flush the dead projects from the project cache."
     ))
 
 (defvar ede--disable-inode)             ;Defined in ede/files.el.
+(declare-function ede--project-inode "ede/files" (proj))
 
 (defun ede-global-list-sanity-check ()
   "Perform a sanity check to make sure there are no duplicate projects."
diff --git a/lisp/cedet/semantic/bovine/grammar.el 
b/lisp/cedet/semantic/bovine/grammar.el
index 0eab01b..1746f3e 100644
--- a/lisp/cedet/semantic/bovine/grammar.el
+++ b/lisp/cedet/semantic/bovine/grammar.el
@@ -475,6 +475,7 @@ Menu items are appended to the common grammar menu.")
         ;; This is with-demoted-errors.
         (condition-case err
             (with-current-buffer (find-file-noselect infile)
+              (setq infile buffer-file-name)
               (if outdir (setq default-directory outdir))
               (semantic-grammar-create-package nil t))
           (error (message "%s" (error-message-string err)) nil)))
@@ -509,8 +510,12 @@ Menu items are appended to the common grammar menu.")
 
 ;;; Commentary:
 ;;
-;; This file was generated from admin/grammars/"
-               lang ".by.
+;; This file was generated from "
+               (if (string-match "\\(admin/grammars/.*\\.by\\)\\'" infile)
+                   (match-string 1 infile)
+                 (concat "admin/grammars/"
+                         (if (string-equal lang "scm") "scheme" lang) ".by"))
+".
 
 ;;; Code:
 ")
diff --git a/lisp/cedet/semantic/texi.el b/lisp/cedet/semantic/texi.el
index 9769ae8..7fe1932 100644
--- a/lisp/cedet/semantic/texi.el
+++ b/lisp/cedet/semantic/texi.el
@@ -365,6 +365,8 @@ Optional argument POINT is where to look for the 
environment."
 (eval-when-compile
   (require 'semantic/analyze))
 
+(declare-function semantic-analyze-context "semantic/analyze")
+
 (define-mode-local-override semantic-analyze-current-context
   texinfo-mode (point)
   "Analysis context makes no sense for texinfo.  Return nil."
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 6e3e336..e8b5e67 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1552,7 +1552,7 @@ Special value `always' suppresses confirmation."
 (defcustom dired-create-destination-dirs nil
   "Whether Dired should create destination dirs when copying/removing files.
 If nil, don't create them.
-If `always', create them without ask.
+If `always', create them without asking.
 If `ask', ask for user confirmation."
   :type '(choice (const :tag "Never create non-existent dirs" nil)
                 (const :tag "Always create non-existent dirs" always)
@@ -1842,7 +1842,8 @@ Optional arg HOW-TO determines how to treat the target.
       rfn-list  - list of the relative names for the marked files.
       fn-list   - list of the absolute names for the marked files.
       target    - the name of the target itself.
-      The rest of into-dir are optional arguments.
+    The rest of elements of the list returned by HOW-TO are optional
+    arguments for the function that is the first element of the list.
    For any other return value, TARGET is treated as a directory."
   (or op1 (setq op1 operation))
   (let* ((fn-list (dired-get-marked-files nil arg nil nil t))
diff --git a/lisp/dired.el b/lisp/dired.el
index ef069d2..1c283c5 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -2352,12 +2352,7 @@ Otherwise, an error occurs in these cases."
                  (setq start (match-end 0))))))
 
           ;; Hence we don't need to worry about converting `\\' back to `\'.
-          (setq file (read (concat "\"" file "\"")))
-         ;; The above `read' will return a unibyte string if FILE
-         ;; contains eight-bit-control/graphic characters.
-         (if (and enable-multibyte-characters
-                  (not (multibyte-string-p file)))
-             (setq file (string-to-multibyte file)))))
+          (setq file (read (concat "\"" file "\"")))))
     (and file (files--name-absolute-system-p file)
         (setq already-absolute t))
     (cond
diff --git a/lisp/emacs-lisp/autoload.el b/lisp/emacs-lisp/autoload.el
index 92ad615..7b4a7d0 100644
--- a/lisp/emacs-lisp/autoload.el
+++ b/lisp/emacs-lisp/autoload.el
@@ -324,6 +324,7 @@ put the output in."
            (setcdr p nil)
            (princ "\n(" outbuf)
            (let ((print-escape-newlines t)
+                 (print-escape-control-characters t)
                   (print-quoted t)
                  (print-escape-nonascii t))
              (dolist (elt form)
@@ -348,6 +349,7 @@ put the output in."
                       outbuf))
              (terpri outbuf)))
        (let ((print-escape-newlines t)
+             (print-escape-control-characters t)
               (print-quoted t)
              (print-escape-nonascii t))
          (print form outbuf)))))))
diff --git a/lisp/emacs-lisp/eieio.el b/lisp/emacs-lisp/eieio.el
index de08e37..1e1419f 100644
--- a/lisp/emacs-lisp/eieio.el
+++ b/lisp/emacs-lisp/eieio.el
@@ -403,7 +403,7 @@ If EXTRA, include that in the string returned to represent 
the symbol."
 
 (cl-defgeneric eieio-object-set-name-string (obj name)
   "Set the string which is OBJ's NAME."
-  (declare (obsolete "inherit from `eieio-named' and use (setf (slot-value OBJ 
'object-name) NAME) instead" "25.1"))
+  (declare (obsolete "inherit from `eieio-named' and use (setf (slot-value OBJ 
\\='object-name) NAME) instead" "25.1"))
   (cl-check-type name string)
   (setf (gethash obj eieio--object-names) name))
 (define-obsolete-function-alias
diff --git a/lisp/emulation/viper-cmd.el b/lisp/emulation/viper-cmd.el
index fe57535..224ce58 100644
--- a/lisp/emulation/viper-cmd.el
+++ b/lisp/emulation/viper-cmd.el
@@ -131,9 +131,6 @@
 ;; define viper-vi-command-p
 (viper-test-com-defun viper-vi-command)
 
-;; Where viper saves mark. This mark is resurrected by m^
-(defvar viper-saved-mark nil)
-
 ;; Contains user settings for vars affected by viper-set-expert-level function.
 ;; Not a user option.
 (defvar viper-saved-user-settings nil)
diff --git a/lisp/emulation/viper-ex.el b/lisp/emulation/viper-ex.el
index 347e66f..d95a828 100644
--- a/lisp/emulation/viper-ex.el
+++ b/lisp/emulation/viper-ex.el
@@ -548,9 +548,13 @@ reversed."
       (setq viper-ex-work-buf (get-buffer-create viper-ex-work-buf-name))
       (set-buffer viper-ex-work-buf)
       (goto-char (point-max)))
-    (cond ((looking-back quit-regex1) (exit-minibuffer))
-         ((looking-back stay-regex)  (insert " "))
-         ((looking-back quit-regex2) (exit-minibuffer))
+    (cond ((looking-back quit-regex1 (line-beginning-position))
+          (exit-minibuffer))
+         ;; Almost certainly point-min should be line-beginning-position,
+         ;; but probably the two are identical anyway, and who really cares?
+         ((looking-back stay-regex (point-min)) (insert " "))
+         ((looking-back quit-regex2 (line-beginning-position))
+          (exit-minibuffer))
          (t (insert " ")))))
 
 (declare-function viper-tmp-insert-at-eob "viper-cmd" (msg))
diff --git a/lisp/emulation/viper-util.el b/lisp/emulation/viper-util.el
index f054040..9fd68b7 100644
--- a/lisp/emulation/viper-util.el
+++ b/lisp/emulation/viper-util.el
@@ -39,7 +39,6 @@
 (defvar ex-unix-type-shell-options)
 (defvar viper-ex-tmp-buf-name)
 (defvar viper-syntax-preference)
-(defvar viper-saved-mark)
 
 (require 'ring)
 
@@ -886,6 +885,9 @@ Otherwise return the normal value."
   (if (featurep 'xemacs) (mark-marker t)
     (mark-marker)))
 
+(defvar viper-saved-mark nil
+  "Where viper saves mark.  This mark is resurrected by m^.")
+
 ;; like (set-mark-command nil) but doesn't push twice, if (car mark-ring)
 ;; is the same as (mark t).
 (defsubst viper-set-mark-if-necessary ()
diff --git a/lisp/emulation/viper.el b/lisp/emulation/viper.el
index 7292fd5..13a88ad 100644
--- a/lisp/emulation/viper.el
+++ b/lisp/emulation/viper.el
@@ -300,6 +300,8 @@
 
 ;;; Code:
 
+(require 'cl-lib)
+
 ;; compiler pacifier
 (defvar mark-even-if-inactive)
 (defvar quail-mode)
diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el
index 37cb6b1..34bf821 100644
--- a/lisp/eshell/em-dirs.el
+++ b/lisp/eshell/em-dirs.el
@@ -207,7 +207,7 @@ Thus, this does not include the current directory.")
   (when eshell-cd-on-directory
     (make-local-variable 'eshell-interpreter-alist)
     (setq eshell-interpreter-alist
-         (cons (cons #'(lambda (file args)
+         (cons (cons #'(lambda (file _args)
                           (eshell-lone-directory-p file))
                      'eshell-dirs-substitute-cd)
                eshell-interpreter-alist)))
@@ -300,7 +300,7 @@ Thus, this does not include the current directory.")
                    (file-name-as-directory (cdr user))))
                 eshell-user-names)))))))
 
-(defun eshell/pwd (&rest args)
+(defun eshell/pwd (&rest _args)
   "Change output from `pwd' to be cleaner."
   (let* ((path default-directory)
         (len (length path)))
diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el
index 1b0b220..a5d8e96 100644
--- a/lisp/eshell/em-script.el
+++ b/lisp/eshell/em-script.el
@@ -61,7 +61,7 @@ This includes when running `eshell-command'."
   "Initialize the script parsing code."
   (make-local-variable 'eshell-interpreter-alist)
   (setq eshell-interpreter-alist
-       (cons (cons #'(lambda (file args)
+       (cons (cons #'(lambda (file _args)
                         (string= (file-name-nondirectory file)
                                  "eshell"))
                     'eshell/source)
diff --git a/lisp/eshell/em-tramp.el b/lisp/eshell/em-tramp.el
index c45453b..004c495 100644
--- a/lisp/eshell/em-tramp.el
+++ b/lisp/eshell/em-tramp.el
@@ -26,6 +26,7 @@
 ;;; Code:
 
 (require 'esh-util)
+(require 'esh-cmd)
 
 (eval-when-compile
   (require 'esh-mode)
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el
index c3448de..a18fb85 100644
--- a/lisp/eshell/em-unix.el
+++ b/lisp/eshell/em-unix.el
@@ -965,7 +965,7 @@ Show wall-clock time elapsed during execution of COMMAND.")
                                  (eshell-stringify-list
                                   (eshell-flatten-list (cdr time-args))))))))
 
-(defun eshell/whoami (&rest args)
+(defun eshell/whoami (&rest _args)
   "Make \"whoami\" Tramp aware."
   (or (file-remote-p default-directory 'user) (user-login-name)))
 
diff --git a/lisp/eshell/esh-ext.el b/lisp/eshell/esh-ext.el
index 1bfab23..ba5182d 100644
--- a/lisp/eshell/esh-ext.el
+++ b/lisp/eshell/esh-ext.el
@@ -37,8 +37,8 @@
 
 (eval-when-compile
   (require 'cl-lib)
-  (require 'esh-io)
   (require 'esh-cmd))
+(require 'esh-io)
 (require 'esh-arg)
 (require 'esh-opt)
 (require 'esh-proc)
diff --git a/lisp/eshell/esh-proc.el b/lisp/eshell/esh-proc.el
index 59fb9b9..f138085 100644
--- a/lisp/eshell/esh-proc.el
+++ b/lisp/eshell/esh-proc.el
@@ -158,7 +158,7 @@ The signals which will cause this to happen are matched by
 
 (defalias 'eshell/wait 'eshell-wait-for-process)
 
-(defun eshell/jobs (&rest args)
+(defun eshell/jobs (&rest _args)
   "List processes, if there are any."
   (and (fboundp 'process-list)
        (process-list)
diff --git a/lisp/font-lock.el b/lisp/font-lock.el
index 29d3bc5..0ed94bd 100644
--- a/lisp/font-lock.el
+++ b/lisp/font-lock.el
@@ -631,10 +631,7 @@ Major/minor modes can set this variable if they know which 
option applies.")
     (declare (indent 0) (debug t))
     `(let ((inhibit-point-motion-hooks t))
        (with-silent-modifications
-         ,@body)))
-  ;;
-  ;; Shut up the byte compiler.
-  (defvar font-lock-face-attributes))  ; Obsolete but respected if set.
+         ,@body))))
 
 (defvar-local font-lock-set-defaults nil) ; Whether we have set up defaults.
 
diff --git a/lisp/gnus/gnus-cloud.el b/lisp/gnus/gnus-cloud.el
index 2693c01..ac5ff7d 100644
--- a/lisp/gnus/gnus-cloud.el
+++ b/lisp/gnus/gnus-cloud.el
@@ -362,6 +362,8 @@ Use old data if FORCE-OLDER is not nil."
   (interactive)
   (gnus-cloud-upload-data t))
 
+(autoload 'gnus-group-refresh-group "gnus-group")
+
 (defun gnus-cloud-upload-data (&optional full)
   "Upload data (newsrc and files) to the Gnus Cloud.
 When FULL is t, upload everything, not just a difference from the last full."
diff --git a/lisp/gnus/gnus-group.el b/lisp/gnus/gnus-group.el
index 48dbc82..3e655cc 100644
--- a/lisp/gnus/gnus-group.el
+++ b/lisp/gnus/gnus-group.el
@@ -1086,6 +1086,8 @@ See `gmm-tool-bar-from-list' for the format of the list."
 
 (defvar image-load-path)
 (defvar tool-bar-map)
+(declare-function image-load-path-for-library "image"
+                 (library image &optional path no-error))
 
 (defun gnus-group-make-tool-bar (&optional force)
   "Make a group mode tool bar from `gnus-group-tool-bar'.
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el
index b6e9ea9..a28c00b 100644
--- a/lisp/gnus/gnus-sum.el
+++ b/lisp/gnus/gnus-sum.el
@@ -2944,6 +2944,8 @@ See `gmm-tool-bar-from-list' for the format of the list."
 
 (defvar image-load-path)
 (defvar tool-bar-map)
+(declare-function image-load-path-for-library "image"
+                 (library image &optional path no-error))
 
 (defun gnus-summary-make-tool-bar (&optional force)
   "Make a summary mode tool bar from `gnus-summary-tool-bar'.
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el
index 123b64a..fb2ae19 100644
--- a/lisp/gnus/gnus.el
+++ b/lisp/gnus/gnus.el
@@ -752,6 +752,7 @@ be set in `.emacs' instead."
   (cdr (assq gnus-logo-color-style gnus-logo-color-alist))
   "Colors used for the Gnus logo.")
 
+(defvar image-load-path)
 (declare-function image-size "image.c" (spec &optional pixels frame))
 
 (defun gnus-group-startup-message (&optional x y)
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el
index 4f4ec3b..e452c80 100644
--- a/lisp/gnus/message.el
+++ b/lisp/gnus/message.el
@@ -7854,6 +7854,8 @@ See `gmm-tool-bar-from-list' for the format of the list."
   :group 'message)
 
 (defvar image-load-path)
+(declare-function image-load-path-for-library "image"
+                 (library image &optional path no-error))
 
 (defun message-make-tool-bar (&optional force)
   "Make a message mode tool bar from `message-tool-bar-list'.
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 87941b8..372b6da 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -1,4 +1,4 @@
-;;; mm-decode.el --- Functions for decoding MIME things
+;;; mm-decode.el --- Functions for decoding MIME things  -*- lexical-binding:t 
-*-
 
 ;; Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
@@ -773,15 +773,16 @@ MIME-Version header before proceeding."
       (insert-buffer-substring obuf beg)
       (current-buffer))))
 
-(defun mm-display-parts (handle &optional no-default)
-  (if (stringp (car handle))
-      (mapcar 'mm-display-parts (cdr handle))
-    (if (bufferp (car handle))
-       (save-restriction
-         (narrow-to-region (point) (point))
-         (mm-display-part handle)
-         (goto-char (point-max)))
-      (mapcar 'mm-display-parts handle))))
+(defun mm-display-parts (handle)
+  (cond
+   ((stringp (car handle)) (mapcar #'mm-display-parts (cdr handle)))
+   ((bufferp (car handle))
+    (save-restriction
+      (narrow-to-region (point) (point))
+      (mm-display-part handle)
+      (goto-char (point-max))))
+   (t
+    (mapcar #'mm-display-parts handle))))
 
 (autoload 'mailcap-parse-mailcaps "mailcap")
 (autoload 'mailcap-mime-info "mailcap")
@@ -961,15 +962,15 @@ external if displayed external."
                                      mm-external-terminal-program
                                      "-e" shell-file-name
                                      shell-command-switch command)
-                      `(lambda (process state)
-                         (if (eq 'exit (process-status process))
-                             (run-at-time
-                              60.0 nil
-                              (lambda ()
-                                (ignore-errors (delete-file ,file))
-                                (ignore-errors (delete-directory
-                                                ,(file-name-directory
-                                                  file))))))))
+                      (lambda (process _state)
+                        (if (eq 'exit (process-status process))
+                            (run-at-time
+                             60.0 nil
+                             (lambda ()
+                               (ignore-errors (delete-file file))
+                               (ignore-errors (delete-directory
+                                               (file-name-directory
+                                                file))))))))
                    (require 'term)
                    (require 'gnus-win)
                    (set-buffer
@@ -982,13 +983,13 @@ external if displayed external."
                    (term-char-mode)
                    (set-process-sentinel
                     (get-buffer-process buffer)
-                    `(lambda (process state)
-                       (when (eq 'exit (process-status process))
-                         (ignore-errors (delete-file ,file))
-                         (ignore-errors
-                           (delete-directory ,(file-name-directory file)))
-                         (gnus-configure-windows
-                          ',gnus-current-window-configuration))))
+                     (let ((wc gnus-current-window-configuration))
+                      (lambda (process _state)
+                        (when (eq 'exit (process-status process))
+                          (ignore-errors (delete-file file))
+                          (ignore-errors
+                            (delete-directory (file-name-directory file)))
+                          (gnus-configure-windows wc)))))
                    (gnus-configure-windows 'display-term))
                (mm-handle-set-external-undisplayer handle (cons file buffer))
                (add-to-list 'mm-temp-files-to-be-deleted file t))
@@ -1032,34 +1033,29 @@ external if displayed external."
                                   shell-command-switch command)
                    (set-process-sentinel
                     (get-buffer-process buffer)
-                    (lexical-let ((outbuf outbuf)
-                                  (file file)
-                                  (buffer buffer)
-                                  (command command)
-                                  (handle handle))
-                      (lambda (process state)
-                        (when (eq (process-status process) 'exit)
-                          (run-at-time
-                           60.0 nil
-                           (lambda ()
-                             (ignore-errors (delete-file file))
-                             (ignore-errors (delete-directory
-                                             (file-name-directory file)))))
-                          (when (buffer-live-p outbuf)
-                            (with-current-buffer outbuf
-                              (let ((buffer-read-only nil)
-                                    (point (point)))
-                                (forward-line 2)
-                                (let ((start (point)))
-                                  (mm-insert-inline
-                                   handle (with-current-buffer buffer
-                                            (buffer-string)))
-                                  (put-text-property start (point)
-                                                     'face 'mm-command-output))
-                                (goto-char point))))
-                          (when (buffer-live-p buffer)
-                            (kill-buffer buffer)))
-                        (message "Displaying %s...done" command)))))
+                    (lambda (process _state)
+                      (when (eq (process-status process) 'exit)
+                        (run-at-time
+                         60.0 nil
+                         (lambda ()
+                           (ignore-errors (delete-file file))
+                           (ignore-errors (delete-directory
+                                           (file-name-directory file)))))
+                        (when (buffer-live-p outbuf)
+                          (with-current-buffer outbuf
+                            (let ((buffer-read-only nil)
+                                  (point (point)))
+                              (forward-line 2)
+                              (let ((start (point)))
+                                (mm-insert-inline
+                                 handle (with-current-buffer buffer
+                                          (buffer-string)))
+                                (put-text-property start (point)
+                                                   'face 'mm-command-output))
+                              (goto-char point))))
+                        (when (buffer-live-p buffer)
+                          (kill-buffer buffer)))
+                      (message "Displaying %s...done" command))))
                (mm-handle-set-external-undisplayer
                 handle (cons file buffer))
                (add-to-list 'mm-temp-files-to-be-deleted file t))
@@ -1170,9 +1166,9 @@ external if displayed external."
     (goto-char (point-min))))
 
 (defun mm-assoc-string-match (alist type)
-  (dolist (elem alist)
+  (cl-dolist (elem alist)
     (when (string-match (car elem) type)
-      (return elem))))
+      (cl-return elem))))
 
 (defun mm-automatic-display-p (handle)
   "Say whether the user wants HANDLE to be displayed automatically."
@@ -1302,8 +1298,6 @@ are ignored."
                         'gnus-decoded)
                     (with-current-buffer (mm-handle-buffer handle)
                       (buffer-string)))
-                   ((mm-multibyte-p)
-                    (string-to-multibyte (mm-get-part handle no-cache)))
                    (t
                     (mm-get-part handle no-cache)))))
     (save-restriction
@@ -1448,8 +1442,7 @@ text/html\\(?:;\\s-*charset=\\([^\t\n\r 
\"'>]+\\)\\)?[^>]*>" nil t)
 (defun mm-pipe-part (handle &optional cmd)
   "Pipe HANDLE to a process.
 Use CMD as the process."
-  (let ((name (mail-content-type-get (mm-handle-type handle) 'name))
-       (command (or cmd
+  (let ((command (or cmd
                     (read-shell-command
                      "Shell command on MIME part: " mm-last-shell-command))))
     (mm-with-unibyte-buffer
@@ -1784,6 +1777,9 @@ If RECURSIVE, search recursively."
 (declare-function shr-insert-document "shr" (dom))
 (defvar shr-blocked-images)
 (defvar shr-use-fonts)
+(defvar shr-width)
+(defvar shr-content-function)
+(defvar shr-inhibit-images)
 
 (defun mm-shr (handle)
   ;; Require since we bind its variables.
@@ -1840,10 +1836,11 @@ text/html;\\s-*charset=\\([^\t\n\r \"'>]+\\)[^>]*>" nil 
t)
       (mm-convert-shr-links)
       (mm-handle-set-undisplayer
        handle
-       `(lambda ()
-         (let ((inhibit-read-only t))
-           (delete-region ,(point-min-marker)
-                          ,(point-max-marker))))))))
+       (let ((min (point-min-marker))
+             (max (point-max-marker)))
+         (lambda ()
+          (let ((inhibit-read-only t))
+            (delete-region min max))))))))
 
 (defvar shr-image-map)
 
@@ -1865,7 +1862,7 @@ text/html;\\s-*charset=\\([^\t\n\r \"'>]+\\)[^>]*>" nil t)
        ;; Mask keys that launch `widget-button-click'.
        ;; Those bindings are provided by `widget-keymap'
        ;; that is a parent of `gnus-article-mode-map'.
-       (dolist (key (where-is-internal #'widget-button-click widget-keymap))
+       (dolist (key (where-is-internal 'widget-button-click widget-keymap))
          (unless (lookup-key keymap key)
            (define-key keymap key #'ignore)))
        ;; Avoid `shr-next-link' and `shr-previous-link' in `keymap' so
diff --git a/lisp/gnus/mm-extern.el b/lisp/gnus/mm-extern.el
index b7c6020..fbae669 100644
--- a/lisp/gnus/mm-extern.el
+++ b/lisp/gnus/mm-extern.el
@@ -1,4 +1,4 @@
-;;; mm-extern.el --- showing message/external-body
+;;; mm-extern.el --- showing message/external-body  -*- lexical-binding:t -*-
 
 ;; Copyright (C) 2000-2018 Free Software Foundation, Inc.
 
@@ -24,8 +24,6 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'cl))
-
 (require 'mm-util)
 (require 'mm-decode)
 (require 'mm-url)
@@ -33,13 +31,13 @@
 (defvar gnus-article-mime-handles)
 
 (defvar mm-extern-function-alist
-  '((local-file . mm-extern-local-file)
-    (url . mm-extern-url)
-    (anon-ftp . mm-extern-anon-ftp)
-    (ftp . mm-extern-ftp)
-;;;     (tftp . mm-extern-tftp)
-    (mail-server . mm-extern-mail-server)
-;;;     (afs . mm-extern-afs))
+  `((local-file . ,#'mm-extern-local-file)
+    (url . ,#'mm-extern-url)
+    (anon-ftp . ,#'mm-extern-anon-ftp)
+    (ftp . ,#'mm-extern-ftp)
+    ;; (tftp . ,#'mm-extern-tftp)
+    (mail-server . ,#'mm-extern-mail-server)
+    ;; (afs . ,#'mm-extern-afs))
     ))
 
 (defvar mm-extern-anonymous "anonymous")
@@ -72,7 +70,6 @@
         (name (cdr (assq 'name params)))
         (site (cdr (assq 'site params)))
         (directory (cdr (assq 'directory params)))
-        (mode (cdr (assq 'mode params)))
         (path (concat "/" (or mm-extern-anonymous
                               (read-string (format "ID for %s: " site)))
                       "@" site ":" directory "/" name))
@@ -86,7 +83,7 @@
   (let (mm-extern-anonymous)
     (mm-extern-anon-ftp handle)))
 
-(declare-function message-goto-body "message" ())
+(declare-function message-goto-body "message" (&optional interactive))
 
 (defun mm-extern-mail-server (handle)
   (require 'message)
diff --git a/lisp/gnus/mm-util.el b/lisp/gnus/mm-util.el
index fcd97f2..98f9933 100644
--- a/lisp/gnus/mm-util.el
+++ b/lisp/gnus/mm-util.el
@@ -1,4 +1,4 @@
-;;; mm-util.el --- Utility functions for Mule and low level things
+;;; mm-util.el --- Utility functions for Mule and low level things  -*- 
lexical-binding:t -*-
 
 ;; Copyright (C) 1998-2018 Free Software Foundation, Inc.
 
@@ -23,7 +23,7 @@
 
 ;;; Code:
 
-(eval-when-compile (require 'cl))
+(eval-when-compile (require 'cl-lib))
 (require 'mail-prsvr)
 (require 'timer)
 
@@ -431,7 +431,7 @@ mail with multiple parts is preferred to sending a Unicode 
one.")
      (#x94 . #x201D) (#x95 . #x2022) (#x96 . #x2013) (#x97 . #x2014)
      (#x98 . #x02DC) (#x99 . #x2122) (#x9A . #x0161) (#x9B . #x203A)
      (#x9C . #x0153) (#x9E . #x017E) (#x9F . #x0178)))
-  "*Alist of extra numeric entities and characters other than ISO 10646.
+  "Alist of extra numeric entities and characters other than ISO 10646.
 This table is used for decoding extra numeric entities to characters,
 like \"&#128;\" to the euro sign, mainly in html messages."
   :type '(alist :key-type character :value-type character)
@@ -521,7 +521,7 @@ If POS is out of range, the value is nil."
   enable-multibyte-characters)
 
 (defun mm-iso-8859-x-to-15-region (&optional b e)
-  (let (charset item c inconvertible)
+  (let (item c inconvertible)
     (save-restriction
       (if e (narrow-to-region b e))
       (goto-char (point-min))
@@ -597,7 +597,7 @@ charset, and a longer list means no appropriate charset."
        ;; We're not multibyte, or a single coding system won't cover it.
        (setq charsets
              (delete-dups
-              (mapcar 'mm-mime-charset
+              (mapcar #'mm-mime-charset
                       (delq 'ascii
                             (mm-find-charset-region b e))))))
     (if (and (> (length charsets) 1)
@@ -612,40 +612,18 @@ charset, and a longer list means no appropriate charset."
     charsets))
 
 (defmacro mm-with-unibyte-buffer (&rest forms)
-  "Create a temporary buffer, and evaluate FORMS there like `progn'.
-Use unibyte mode for this."
+  "Create a temporary unibyte buffer, and evaluate FORMS there like `progn'."
+  (declare (indent 0) (debug t))
   `(with-temp-buffer
      (mm-disable-multibyte)
      ,@forms))
-(put 'mm-with-unibyte-buffer 'lisp-indent-function 0)
-(put 'mm-with-unibyte-buffer 'edebug-form-spec '(body))
 
 (defmacro mm-with-multibyte-buffer (&rest forms)
-  "Create a temporary buffer, and evaluate FORMS there like `progn'.
-Use multibyte mode for this."
+  "Create a temporary multibyte buffer, and evaluate FORMS there like `progn'."
+  (declare (indent 0) (debug t))
   `(with-temp-buffer
      (mm-enable-multibyte)
      ,@forms))
-(put 'mm-with-multibyte-buffer 'lisp-indent-function 0)
-(put 'mm-with-multibyte-buffer 'edebug-form-spec '(body))
-
-(defmacro mm-with-unibyte-current-buffer (&rest forms)
-  "Evaluate FORMS with current buffer temporarily made unibyte.
-
-Note: We recommend not using this macro any more; there should be
-better ways to do a similar thing.  The previous version of this macro
-bound the default value of `enable-multibyte-characters' to nil while
-evaluating FORMS but it is no longer done.  So, some programs assuming
-it if any may malfunction."
-  (declare (obsolete nil "25.1") (indent 0) (debug t))
-  (let ((multibyte (make-symbol "multibyte")))
-    `(let ((,multibyte enable-multibyte-characters))
-       (when ,multibyte
-        (set-buffer-multibyte nil))
-       (prog1
-          (progn ,@forms)
-        (when ,multibyte
-          (set-buffer-multibyte t))))))
 
 (defun mm-find-charset-region (b e)
   "Return a list of Emacs charsets in the region B to E."
@@ -699,21 +677,26 @@ to advanced Emacs features, such as file-name-handlers, 
format decoding,
 `find-file-hook', etc.
 If INHIBIT is non-nil, inhibit `mm-inhibit-file-name-handlers'.
 This function ensures that none of these modifications will take place."
-  (letf* ((format-alist nil)
-          (auto-mode-alist (if inhibit nil (mm-auto-mode-alist)))
-          ((default-value 'major-mode) 'fundamental-mode)
-          (enable-local-variables nil)
-          (after-insert-file-functions nil)
-          (enable-local-eval nil)
-          (inhibit-file-name-operation (if inhibit
-                                           'insert-file-contents
-                                         inhibit-file-name-operation))
-          (inhibit-file-name-handlers
-           (if inhibit
-               (append mm-inhibit-file-name-handlers
-                       inhibit-file-name-handlers)
-             inhibit-file-name-handlers))
-         (find-file-hook nil))
+  (cl-letf* ((format-alist nil)
+             ;; FIXME: insert-file-contents doesn't look at auto-mode-alist,
+             ;; nor at (default-value 'major-mode)!
+             (auto-mode-alist (if inhibit nil (mm-auto-mode-alist)))
+             ((default-value 'major-mode) 'fundamental-mode)
+             ;; FIXME: neither enable-local-variables nor enable-local-eval are
+             ;; run by insert-file-contents, AFAICT?!
+             (enable-local-variables nil)
+             (after-insert-file-functions nil)
+             (enable-local-eval nil)
+             (inhibit-file-name-operation (if inhibit
+                                              'insert-file-contents
+                                            inhibit-file-name-operation))
+             (inhibit-file-name-handlers
+              (if inhibit
+                  (append mm-inhibit-file-name-handlers
+                          inhibit-file-name-handlers)
+                inhibit-file-name-handlers))
+             ;; FIXME: insert-file-contents doesn't run find-file-hook anyway!
+            (find-file-hook nil))
     (insert-file-contents filename visit beg end replace)))
 
 (defun mm-append-to-file (start end filename &optional codesys inhibit)
@@ -838,17 +821,18 @@ decompressed data.  The buffer's multibyteness must be 
turned off."
                                       prog t (list t err-file) nil args)
                                jka-compr-acceptable-retval-list)
                    (erase-buffer)
-                   (insert (mapconcat 'identity
+                   (insert (mapconcat #'identity
                                       (split-string
                                        (prog2
                                            (insert-file-contents err-file)
                                            (buffer-string)
-                                         (erase-buffer)) t)
+                                         (erase-buffer))
+                                        t)
                                       " ")
                            "\n")
                    (setq err-msg
                          (format "Error while executing \"%s %s < %s\""
-                                 prog (mapconcat 'identity args " ")
+                                 prog (mapconcat #'identity args " ")
                                  filename)))
                  (setq retval (buffer-string)))
              (error
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index 3c94763..38be0dc 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -548,6 +548,9 @@ be \"related\" or \"alternate\"."
                                                   ">")))))))
        cont))))
 
+(autoload 'image-property "image")
+
+;; FIXME presumably (built-in) ImageMagick could replace exiftool?
 (defun mml--possibly-alter-image (file-name image)
   (if (or (null image)
          (not (consp image))
diff --git a/lisp/gnus/nnir.el b/lisp/gnus/nnir.el
index 55e00a0..0a7d829 100644
--- a/lisp/gnus/nnir.el
+++ b/lisp/gnus/nnir.el
@@ -644,7 +644,7 @@ skips all prompting."
       (add-hook 'gnus-summary-mode-hook 'nnir-mode)
       (nnoo-change-server 'nnir server definitions))))
 
-(deffoo nnir-request-group (group &optional server dont-check info)
+(deffoo nnir-request-group (group &optional server dont-check _info)
   (nnir-possibly-change-group group server)
   (let ((pgroup (gnus-group-guess-full-name-from-command-method group))
        length)
@@ -669,7 +669,9 @@ skips all prompting."
                          group)))) ; group name
   nnir-artlist)
 
-(deffoo nnir-retrieve-headers (articles &optional group server fetch-old)
+(defvar gnus-inhibit-demon)
+
+(deffoo nnir-retrieve-headers (articles &optional _group _server _fetch-old)
   (with-current-buffer nntp-server-buffer
     (let ((gnus-inhibit-demon t)
          (articles-by-group (nnir-categorize
@@ -716,6 +718,8 @@ skips all prompting."
       (mapc 'nnheader-insert-nov headers)
       'nov)))
 
+(defvar gnus-article-decode-hook)
+
 (deffoo nnir-request-article (article &optional group server to-buffer)
   (nnir-possibly-change-group group server)
   (if (and (stringp article)
@@ -753,7 +757,7 @@ skips all prompting."
             (cons artfullgroup artno)))))))
 
 (deffoo nnir-request-move-article (article group server accept-form
-                                          &optional last internal-move-group)
+                                          &optional last _internal-move-group)
   (nnir-possibly-change-group group server)
   (let* ((artfullgroup (nnir-article-group article))
         (artno (nnir-article-number article))
@@ -803,7 +807,8 @@ skips all prompting."
                (error "Can't warp to a pseudo-article")))
         (backend-article-group (nnir-article-group cur))
          (backend-article-number (nnir-article-number cur))
-        (quit-config (gnus-ephemeral-group-p gnus-newsgroup-name)))
+;       (quit-config (gnus-ephemeral-group-p gnus-newsgroup-name))
+        )
 
     ;; what should we do here? we could leave all the buffers around
     ;; and assume that we have to exit from them one by one. or we can
@@ -818,7 +823,7 @@ skips all prompting."
     (gnus-summary-read-group-1 backend-article-group t t  nil
                                nil (list backend-article-number))))
 
-(deffoo nnir-request-update-mark (group article mark)
+(deffoo nnir-request-update-mark (_group article mark)
   (let ((artgroup (nnir-article-group article))
        (artnumber (nnir-article-number article)))
     (or (and artgroup
@@ -956,7 +961,7 @@ details on the language and supported extensions."
   (save-excursion
     (let ((qstring (cdr (assq 'query query)))
           (server (cadr (gnus-server-to-method srv)))
-          (defs (nth 2 (gnus-server-to-method srv)))
+;;          (defs (nth 2 (gnus-server-to-method srv)))
           (criteria (or (cdr (assq 'criteria query))
                         (cdr (assoc nnir-imap-default-search-key
                                     nnir-imap-search-arguments))))
@@ -1177,7 +1182,7 @@ returning the one at the supplied position."
 ;; - article number
 ;; - file size
 ;; - group
-(defun nnir-run-swish++ (query server &optional group)
+(defun nnir-run-swish++ (query server &optional _group)
   "Run QUERY against swish++.
 Returns a vector of (group name, file name) pairs (also vectors,
 actually).
@@ -1267,7 +1272,7 @@ Windows NT 4.0."
                                   (nnir-artitem-rsv y)))))))))
 
 ;; Swish-E interface.
-(defun nnir-run-swish-e (query server &optional group)
+(defun nnir-run-swish-e (query server &optional _group)
   "Run given query against swish-e.
 Returns a vector of (group name, file name) pairs (also vectors,
 actually).
@@ -1433,7 +1438,7 @@ Tested with swish-e-2.0.1 on Windows NT 4.0."
       )))
 
 ;; Namazu interface
-(defun nnir-run-namazu (query server &optional group)
+(defun nnir-run-namazu (query server &optional _group)
   "Run given query against Namazu.  Returns a vector of (group name, file name)
 pairs (also vectors, actually).
 
@@ -1502,7 +1507,7 @@ Tested with Namazu 2.0.6 on a GNU/Linux system."
                                (> (nnir-artitem-rsv x)
                                   (nnir-artitem-rsv y)))))))))
 
-(defun nnir-run-notmuch (query server &optional group)
+(defun nnir-run-notmuch (query server &optional _group)
   "Run QUERY against notmuch.
 Returns a vector of (group name, file name) pairs (also vectors,
 actually)."
@@ -1667,7 +1672,7 @@ actually)."
   "Run a search against a gmane back-end server."
       (let* ((case-fold-search t)
             (qstring (cdr (assq 'query query)))
-            (server (cadr (gnus-server-to-method srv)))
+;;          (server (cadr (gnus-server-to-method srv)))
             (groupspec (mapconcat
                         (lambda (x)
                           (if (string-match-p "gmane" x)
@@ -1809,8 +1814,7 @@ article came from is also searched."
        groups)
     (gnus-request-list method)
     (with-current-buffer nntp-server-buffer
-      (let ((cur (current-buffer))
-           name)
+      (let ((cur (current-buffer)))
        (goto-char (point-min))
        (unless (or (null nnir-ignored-newsgroups)
                    (string= nnir-ignored-newsgroups ""))
@@ -1851,7 +1855,7 @@ article came from is also searched."
 (declare-function gnus-registry-action "gnus-registry"
                   (action data-header from &optional to method))
 
-(defun nnir-registry-action (action data-header from &optional to method)
+(defun nnir-registry-action (action data-header _from &optional to method)
   "Call `gnus-registry-action' with the original article group."
   (gnus-registry-action
    action
@@ -1886,7 +1890,7 @@ article came from is also searched."
        (gnus-group-find-parameter pgroup)))))
 
 
-(deffoo nnir-request-create-group (group &optional server args)
+(deffoo nnir-request-create-group (group &optional _server args)
   (message "Creating nnir group %s" group)
   (let* ((group (gnus-group-prefixed-name  group '(nnir "nnir")))
          (specs (assq 'nnir-specs args))
@@ -1907,13 +1911,13 @@ article came from is also searched."
     (nnir-request-update-info group (gnus-get-info group)))
   t)
 
-(deffoo nnir-request-delete-group (group &optional force server)
+(deffoo nnir-request-delete-group (_group &optional _force _server)
   t)
 
-(deffoo nnir-request-list (&optional server)
+(deffoo nnir-request-list (&optional _server)
   t)
 
-(deffoo nnir-request-scan (group method)
+(deffoo nnir-request-scan (_group _method)
   t)
 
 (deffoo nnir-request-close ()
diff --git a/lisp/help.el b/lisp/help.el
index dcf1f32..e923546 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -1059,6 +1059,9 @@ is currently activated with completion."
          (setq minor-modes (cdr minor-modes)))))
     result))
 
+(declare-function x-display-pixel-height "xfns.c" (&optional terminal))
+(declare-function x-display-pixel-width "xfns.c" (&optional terminal))
+
 ;;; Automatic resizing of temporary buffers.
 (defcustom temp-buffer-max-height
   (lambda (_buffer)
diff --git a/lisp/ido.el b/lisp/ido.el
index da0c9d4..7ff3d68 100644
--- a/lisp/ido.el
+++ b/lisp/ido.el
@@ -1135,6 +1135,9 @@ selected.")
 (defvar ido-current-directory nil
   "Current directory for `ido-find-file'.")
 
+(defvar ido-predicate nil
+  "Current completion predicate.")
+
 (defvar ido-auto-merge-timer nil
   "Delay timer for auto merge.")
 
@@ -3480,6 +3483,11 @@ it is put to the start of the list."
     (if ido-temp-list
        (nconc ido-temp-list ido-current-buffers)
       (setq ido-temp-list ido-current-buffers))
+    (if ido-predicate
+        (setq ido-temp-list (seq-filter
+                             (lambda (name)
+                               (funcall ido-predicate (cons name (get-buffer 
name))))
+                             ido-temp-list)))
     (if default
        (setq ido-temp-list
              (cons default (delete default ido-temp-list))))
@@ -4845,10 +4853,13 @@ Modified from `icomplete-completions'."
 Return the name of a buffer selected.
 PROMPT is the prompt to give to the user.  DEFAULT if given is the default
 buffer to be selected, which will go to the front of the list.
-If REQUIRE-MATCH is non-nil, an existing buffer must be selected."
+If REQUIRE-MATCH is non-nil, an existing buffer must be selected.
+Optional arg PREDICATE if non-nil is a function limiting the
+buffers that can be considered."
   (let* ((ido-current-directory nil)
         (ido-directory-nonreadable nil)
         (ido-directory-too-big nil)
+         (ido-predicate predicate)
         (ido-context-switch-command 'ignore)
         (buf (ido-read-internal 'buffer prompt 'ido-buffer-history default 
require-match)))
     (if (eq ido-exit 'fallback)
diff --git a/lisp/image.el b/lisp/image.el
index b5f2235..b69bf93 100644
--- a/lisp/image.el
+++ b/lisp/image.el
@@ -29,6 +29,7 @@
   "Image support."
   :group 'multimedia)
 
+(declare-function image-flush "image.c" (spec &optional frame))
 (defalias 'image-refresh 'image-flush)
 
 (defconst image-type-header-regexps
@@ -1001,6 +1002,8 @@ default is 20%."
               (setq new (nconc new (list key val))))))
           new)))
 
+(declare-function image-size "image.c" (spec &optional pixels frame))
+
 (defun image--current-scaling (image new-image)
   ;; The image may be scaled due to many reasons (:scale, :max-width,
   ;; etc), so find out what the current scaling is based on the
diff --git a/lisp/international/fontset.el b/lisp/international/fontset.el
index 6f91207..4a7b754 100644
--- a/lisp/international/fontset.el
+++ b/lisp/international/fontset.el
@@ -1144,6 +1144,8 @@ given from DEFAULT-SPEC."
        (setcar (cdr elt) spec)))
     fontlist))
 
+(defvar fontset-alias-alist)
+
 (defun fontset-name-p (fontset)
   "Return non-nil if FONTSET is valid as fontset name.
 A valid fontset name should conform to XLFD (X Logical Font Description)
diff --git a/lisp/isearch.el b/lisp/isearch.el
index a41adf0..96faa27 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -67,8 +67,23 @@
 
 
 (defcustom search-exit-option t
-  "Non-nil means random control characters terminate incremental search."
-  :type 'boolean)
+  "Defines what control characters do in incremental search.
+If t, random control and meta characters terminate the search
+and are then executed normally.
+If `edit', edit the search string instead of exiting.
+If `move', extend the search string by motion commands
+that have the `isearch-move' property on their symbols.
+If `shift-move', extend the search string by motion commands
+while holding down the shift key.
+Both `move' and `shift-move' extend the search string by yanking text
+that ends at the new position after moving point in the current buffer.
+If nil, run the command without exiting Isearch."
+  :type '(choice (const :tag "Terminate incremental search" t)
+                 (const :tag "Edit the search string" edit)
+                 (const :tag "Extend the search string by motion commands" 
move)
+                 (const :tag "Extend the search string by shifted motion keys" 
shift-move)
+                 (const :tag "Don't terminate incremental search" nil))
+  :version "27.1")
 
 (defcustom search-slow-window-lines 1
   "Number of lines in slow search display windows.
@@ -2391,6 +2406,7 @@ the bottom."
   (goto-char isearch-point))
 
 (defvar isearch-pre-scroll-point nil)
+(defvar isearch-pre-move-point nil)
 
 (defun isearch-pre-command-hook ()
   "Decide whether to exit Isearch mode before executing the command.
@@ -2398,8 +2414,9 @@ Don't exit Isearch if the key sequence that invoked this 
command
 is bound in `isearch-mode-map', or if the invoked command is
 a prefix argument command (when `isearch-allow-prefix' is non-nil),
 or it is a scrolling command (when `isearch-allow-scroll' is non-nil).
-Otherwise, exit Isearch (when `search-exit-option' is non-nil)
-before the command is executed globally with terminated Isearch."
+Otherwise, exit Isearch (when `search-exit-option' is t)
+before the command is executed globally with terminated Isearch.
+See more for options in `search-exit-option'."
   (let* ((key (this-single-command-keys))
         (main-event (aref key 0)))
     (cond
@@ -2427,6 +2444,14 @@ before the command is executed globally with terminated 
Isearch."
       ;; Swallow the up-event.
       (read-event)
       (setq this-command 'isearch-edit-string))
+     ;; Don't terminate the search for motion commands.
+     ((or (and (eq search-exit-option 'move)
+               (symbolp this-command)
+               (eq (get this-command 'isearch-move) t))
+          (and (eq search-exit-option 'shift-move)
+               this-command-keys-shift-translated))
+      (setq this-command-keys-shift-translated nil)
+      (setq isearch-pre-move-point (point)))
      ;; Other characters terminate the search and are then executed normally.
      (search-exit-option
       (isearch-done)
@@ -2436,13 +2461,28 @@ before the command is executed globally with terminated 
Isearch."
       (isearch-process-search-string key key)))))
 
 (defun isearch-post-command-hook ()
-  (when isearch-pre-scroll-point
+  (cond
+   (isearch-pre-scroll-point
     (let ((ab-bel (isearch-string-out-of-window isearch-pre-scroll-point)))
       (if ab-bel
          (isearch-back-into-window (eq ab-bel 'above) isearch-pre-scroll-point)
        (goto-char isearch-pre-scroll-point)))
     (setq isearch-pre-scroll-point nil)
-    (isearch-update)))
+    (isearch-update))
+   ((memq search-exit-option '(move shift-move))
+    (when (and isearch-pre-move-point
+               (not (eq isearch-pre-move-point (point))))
+      (let ((string (buffer-substring-no-properties
+                     (or isearch-other-end isearch-opoint) (point))))
+        (if isearch-regexp (setq string (regexp-quote string)))
+        (setq isearch-string string)
+        (setq isearch-message (mapconcat 'isearch-text-char-description
+                                         string ""))
+        (setq isearch-yank-flag t)
+        (setq isearch-forward (<= (or isearch-other-end isearch-opoint) 
(point)))
+        (goto-char isearch-pre-move-point)
+        (isearch-search-and-update)))
+    (setq isearch-pre-move-point nil))))
 
 (defun isearch-quote-char (&optional count)
   "Quote special characters for incremental search.
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el
index ec238a4..4ad6b5c 100644
--- a/lisp/ldefs-boot.el
+++ b/lisp/ldefs-boot.el
@@ -1969,7 +1969,8 @@ result.  The overhead of the `lambda's is accounted for.
 
 (autoload 'benchmark "benchmark" "\
 Print the time taken for REPETITIONS executions of FORM.
-Interactively, REPETITIONS is taken from the prefix arg.
+Interactively, REPETITIONS is taken from the prefix arg, and
+the command prompts for the form to benchmark.
 For non-interactive use see also `benchmark-run' and
 `benchmark-run-compiled'.
 
@@ -2927,6 +2928,7 @@ Like `bug-reference-mode', but only buttonize in comments 
and strings.
 (put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
 (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp)
 (put 'byte-compile-dynamic-docstrings 'safe-local-variable 'booleanp)
+(put 'byte-compile-error-on-warn 'safe-local-variable 'booleanp)
 
 (put 'byte-compile-warnings 'safe-local-variable (lambda (v) (or (symbolp v) 
(null (delq nil (mapcar (lambda (x) (not (symbolp x))) v))))))
 
@@ -6192,7 +6194,7 @@ For example, the MH-E package updates this alist as 
follows:
 
 The value of PACKAGE needs to be unique and it needs to match the
 PACKAGE value appearing in the :package-version keyword.  Since
-the user might see the value in a error message, a good choice is
+the user might see the value in an error message, a good choice is
 the official name of the package, such as MH-E or Gnus.")
 
 (defalias 'customize-changed 'customize-changed-options)
@@ -9813,8 +9815,11 @@ the mode if ARG is omitted or nil.
 
 Electric Pair mode is a global minor mode.  When enabled, typing
 an open parenthesis automatically inserts the corresponding
-closing parenthesis.  (Likewise for brackets, etc.). To toggle
-the mode in a single buffer, use `electric-pair-local-mode'.
+closing parenthesis, and vice versa.  (Likewise for brackets, etc.).
+If the region is active, the parentheses (brackets, etc.) are
+inserted around the region instead.
+
+To toggle the mode in a single buffer, use `electric-pair-local-mode'.
 
 \(fn &optional ARG)" t nil)
 
@@ -9893,7 +9898,8 @@ FUNSYM must be a symbol of a defined function.
 (autoload 'elp-instrument-list "elp" "\
 Instrument, for profiling, all functions in `elp-function-list'.
 Use optional LIST if provided instead.
-If called interactively, read LIST using the minibuffer.
+If called interactively, prompt for LIST in the minibuffer;
+type \"nil\" to use `elp-function-list'.
 
 \(fn &optional LIST)" t nil)
 
@@ -15143,7 +15149,7 @@ file name to `*.gz', and sets `grep-highlight-matches' 
to `always'.
 
 (defalias 'rzgrep 'zrgrep)
 
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"grep" '("rgrep-" "grep-" "kill-grep")))
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"grep" '("grep-" "rgrep-" "kill-grep")))
 
 ;;;***
 
@@ -16525,7 +16531,7 @@ See the documentation for `calendar-holidays' for 
details.")
 (autoload 'holidays "holidays" "\
 Display the holidays for last month, this month, and next month.
 If called with an optional prefix argument ARG, prompts for month and year.
-This function is suitable for execution in a init file.
+This function is suitable for execution in an init file.
 
 \(fn &optional ARG)" t nil)
 
@@ -16796,7 +16802,7 @@ Extract iCalendar events from current buffer.
 
 This function searches the current buffer for the first iCalendar
 object, reads it and adds all VEVENT elements to the diary
-DIARY-FILE.
+DIARY-FILENAME.
 
 It will ask for each appointment whether to add it to the diary
 unless DO-NOT-ASK is non-nil.  When called interactively,
@@ -16809,7 +16815,7 @@ Return code t means that importing worked well, return 
code nil
 means that an error has occurred.  Error messages will be in the
 buffer `*icalendar-errors*'.
 
-\(fn &optional DIARY-FILE DO-NOT-ASK NON-MARKING)" t nil)
+\(fn &optional DIARY-FILENAME DO-NOT-ASK NON-MARKING)" t nil)
 
 (if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"icalendar" '("icalendar-")))
 
@@ -17335,6 +17341,8 @@ Return the name of a buffer selected.
 PROMPT is the prompt to give to the user.  DEFAULT if given is the default
 buffer to be selected, which will go to the front of the list.
 If REQUIRE-MATCH is non-nil, an existing buffer must be selected.
+Optional arg PREDICATE if non-nil is a function limiting the
+buffers that can be considered.
 
 \(fn PROMPT &optional DEFAULT REQUIRE-MATCH PREDICATE)" nil nil)
 
@@ -17913,8 +17921,8 @@ If non-nil this pattern is passed to 
`imenu--generic-function' to
 create a buffer index.
 
 For example, see the value of `fortran-imenu-generic-expression'
-used by `fortran-mode' with `imenu-syntax-alist' set locally to
-give the characters which normally have \"symbol\" syntax
+used by `fortran-mode' with `imenu-syntax-alist' set locally so that
+characters which normally have \"symbol\" syntax are considered to have
 \"word\" syntax during matching.")
 (put 'imenu-generic-expression 'risky-local-variable t)
 
@@ -22012,7 +22020,7 @@ QUALITY can be:
 ;;;### (autoloads nil "mwheel" "mwheel.el" (0 0 0 0))
 ;;; Generated autoloads from mwheel.el
 
-(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mwheel" '("mwheel-" "mouse-wheel-")))
+(if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"mwheel" '("mouse-wheel-" "mwheel-")))
 
 ;;;***
 
@@ -23246,6 +23254,7 @@ Coloring:
 
 ;;;### (autoloads nil "org" "org/org.el" (0 0 0 0))
 ;;; Generated autoloads from org/org.el
+(push (purecopy '(org 9 1 6)) package--builtin-versions)
 
 (autoload 'org-babel-do-load-languages "org" "\
 Load the languages defined in `org-babel-load-languages'.
@@ -24408,8 +24417,6 @@ activate the package system at any time.")
 Load Emacs Lisp packages, and activate them.
 The variable `package-load-list' controls which packages to load.
 If optional arg NO-ACTIVATE is non-nil, don't activate packages.
-If `user-init-file' does not mention `(package-initialize)', add
-it to the file.
 If called as part of loading `user-init-file', set
 `package-enable-at-startup' to nil, to prevent accidentally
 loading packages twice.
@@ -26421,7 +26428,7 @@ Optional argument FACE specifies the face to do the 
highlighting.
 
 ;;;### (autoloads nil "python" "progmodes/python.el" (0 0 0 0))
 ;;; Generated autoloads from progmodes/python.el
-(push (purecopy '(python 0 25 2)) package--builtin-versions)
+(push (purecopy '(python 0 26 1)) package--builtin-versions)
 
 (add-to-list 'auto-mode-alist (cons (purecopy "\\.py[iw]?\\'") 'python-mode))
 
@@ -29843,13 +29850,6 @@ Like `mail' command, but display mail buffer in 
another frame.
 
 (put 'server-auth-dir 'risky-local-variable t)
 
-(defvar server-name "server" "\
-The name of the Emacs server, if this Emacs process creates one.
-The command `server-start' makes use of this.  It should not be
-changed while a server is running.")
-
-(custom-autoload 'server-name "server" t)
-
 (autoload 'server-start "server" "\
 Allow this Emacs process to be a server for client processes.
 This starts a server communications subprocess through which client
@@ -31725,7 +31725,7 @@ Args are NAME BUFFER HOST PORT.
 NAME is name for process.  It is modified if necessary to make it unique.
 BUFFER is the buffer (or `buffer-name') to associate with the process.
  Process output goes at end of that buffer, unless you specify
- an output stream or filter function to handle the output.
+ a filter function to handle the output.
  BUFFER may be also nil, meaning that this process is not associated
  with any buffer
 Third arg is name of the host to connect to, or its IP address.
@@ -34063,7 +34063,7 @@ Todo mode revisit this file or, with option
 file was last visited.
 
 If you call this command before you have created any todo file in
-the current format, and you have an todo file in old format, it
+the current format, and you have a todo file in old format, it
 will ask you whether to convert that file and show it.
 Otherwise, calling this command before any todo file exists
 prompts for a file name and an initial category (defaulting to
@@ -34313,6 +34313,27 @@ Discard Tramp from loading remote files.
 ;;;;;;  0 0))
 ;;; Generated autoloads from net/tramp-archive.el
 
+(defvar tramp-archive-enabled (featurep 'dbusbind) "\
+Non-nil when file archive support is available.")
+
+(defconst tramp-archive-suffixes '("7z" "apk" "ar" "cab" "CAB" "cpio" "deb" 
"depot" "exe" "iso" "jar" "lzh" "LZH" "msu" "MSU" "mtree" "pax" "rar" "rpm" 
"shar" "tar" "tbz" "tgz" "tlz" "txz" "warc" "xar" "xpi" "xps" "zip" "ZIP") "\
+List of suffixes which indicate a file archive.
+It must be supported by libarchive(3).")
+
+(defconst tramp-archive-compression-suffixes '("bz2" "gz" "lrz" "lz" "lz4" 
"lzma" "lzo" "uu" "xz" "Z") "\
+List of suffixes which indicate a compressed file.
+It must be supported by libarchive(3).")
+
+(defmacro tramp-archive-autoload-file-name-regexp nil "\
+Regular expression matching archive file names." `(concat "\\`" "\\(" ".+" 
"\\." (regexp-opt tramp-archive-suffixes) "\\(?:" "\\." (regexp-opt 
tramp-archive-compression-suffixes) "\\)*" "\\)" "\\(" "/" ".*" "\\)" "\\'"))
+
+(defun tramp-register-archive-file-name-handler nil "\
+Add archive file name handler to `file-name-handler-alist'." (when 
tramp-archive-enabled (add-to-list 'file-name-handler-alist (cons 
(tramp-archive-autoload-file-name-regexp) 'tramp-autoload-file-name-handler)) 
(put 'tramp-archive-file-name-handler 'safe-magic t)))
+
+(add-hook 'after-init-hook 'tramp-register-archive-file-name-handler)
+
+(add-hook 'tramp-archive-unload-hook (lambda nil (remove-hook 'after-init-hook 
'tramp-register-archive-file-name-handler)))
+
 (if (fboundp 'register-definition-prefixes) (register-definition-prefixes 
"tramp-archive" '("tramp-" "with-parsed-tramp-archive-file-name")))
 
 ;;;***
@@ -35867,7 +35888,10 @@ When called interactively with a prefix argument, 
prompt for REMOTE-LOCATION.
 \(fn &optional REMOTE-LOCATION)" t nil)
 
 (autoload 'vc-region-history "vc" "\
-Show the history of the region FROM..TO.
+Show the history of the region between FROM and TO.
+
+If called interactively, show the history between point and
+mark.
 
 \(fn FROM TO)" t nil)
 
diff --git a/lisp/mail/hashcash.el b/lisp/mail/hashcash.el
index b5fb1ae..37b2d94 100644
--- a/lisp/mail/hashcash.el
+++ b/lisp/mail/hashcash.el
@@ -133,7 +133,7 @@ For example, you may want to set this to (\"-Z2\") to 
reduce header length."
 
 (declare-function message-narrow-to-headers-or-head "message" ())
 (declare-function message-fetch-field "message" (header &optional not-all))
-(declare-function message-goto-eoh "message" ())
+(declare-function message-goto-eoh "message" (&optional interactive))
 (declare-function message-narrow-to-headers "message" ())
 
 (defun hashcash-token-substring ()
diff --git a/lisp/mh-e/mh-acros.el b/lisp/mh-e/mh-acros.el
index ac31127..fb8a16b 100644
--- a/lisp/mh-e/mh-acros.el
+++ b/lisp/mh-e/mh-acros.el
@@ -90,9 +90,10 @@ loads \"cl\" appropriately."
   "Create function NAME.
 If FUNCTION exists, then NAME becomes an alias for FUNCTION.
 Otherwise, create function NAME with ARG-LIST and BODY."
-  `(if (fboundp ',function)
-       (defalias ',name ',function)
-     (defun ,name ,arg-list ,@body)))
+  `(defalias ',name
+     (if (fboundp ',function)
+         ',function
+       (lambda ,arg-list ,@body))))
 (put 'defun-mh 'lisp-indent-function 'defun)
 (put 'defun-mh 'doc-string-elt 4)
 
diff --git a/lisp/mh-e/mh-comp.el b/lisp/mh-e/mh-comp.el
index a9f809c..cfdd2ae 100644
--- a/lisp/mh-e/mh-comp.el
+++ b/lisp/mh-e/mh-comp.el
@@ -305,17 +305,19 @@ message and scan line."
         (file-name buffer-file-name)
         (config mh-previous-window-config)
         (coding-system-for-write
-         (if (and (local-variable-p 'buffer-file-coding-system
-                                    (current-buffer)) ;XEmacs needs two args
-                  ;; We're not sure why, but buffer-file-coding-system
-                  ;; tends to get set to undecided-unix.
-                  (not (memq buffer-file-coding-system
-                             '(undecided undecided-unix undecided-dos))))
-             buffer-file-coding-system
-           (or (and (boundp 'sendmail-coding-system) sendmail-coding-system)
-               (and (default-boundp 'buffer-file-coding-system)
-                    (default-value 'buffer-file-coding-system))
-               'iso-latin-1))))
+         (if (fboundp 'select-message-coding-system)
+             (select-message-coding-system) ; Emacs has this since at least 
21.1
+           (if (and (local-variable-p 'buffer-file-coding-system
+                                      (current-buffer)) ;XEmacs needs two args
+                    ;; We're not sure why, but buffer-file-coding-system
+                    ;; tends to get set to undecided-unix.
+                    (not (memq buffer-file-coding-system
+                               '(undecided undecided-unix undecided-dos))))
+               buffer-file-coding-system
+             (or (and (boundp 'sendmail-coding-system) sendmail-coding-system)
+                 (and (default-boundp 'buffer-file-coding-system)
+                      (default-value 'buffer-file-coding-system))
+                 'iso-latin-1)))))
     ;; Older versions of spost do not support -msgid and -mime.
     (unless mh-send-uses-spost-flag
       ;; Adding a Message-ID field looks good, makes it easier to search for
diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el
index 2307812..ffeb693 100644
--- a/lisp/mh-e/mh-compat.el
+++ b/lisp/mh-e/mh-compat.el
@@ -65,7 +65,8 @@ Simulate NOERROR argument in XEmacs which lacks it."
 Case is ignored if CASE-FOLD is non-nil.
 This function is used by Emacs versions that lack `assoc-string',
 introduced in Emacs 22."
-  (if case-fold
+  ;; Test for fboundp is solely to silence compiler for Emacs >= 22.1.
+  (if (and case-fold (fboundp 'assoc-ignore-case))
       (assoc-ignore-case key list)
     (assoc key list)))
 
@@ -307,7 +308,8 @@ This function is used by XEmacs that lacks 
`replace-regexp-in-string'.
 The function `replace-in-string' is used instead.
 The arguments FIXEDCASE, SUBEXP, and START, used by
 `replace-in-string' are ignored."
-  (replace-in-string string regexp rep literal))
+  (if (featurep 'xemacs)                ; silence Emacs compiler
+      (replace-in-string string regexp rep literal)))
 
 (defun-mh mh-test-completion
   test-completion (string collection &optional predicate)
diff --git a/lisp/mh-e/mh-thread.el b/lisp/mh-e/mh-thread.el
index 41a79b6..ff8e660 100644
--- a/lisp/mh-e/mh-thread.el
+++ b/lisp/mh-e/mh-thread.el
@@ -647,20 +647,17 @@ Only information about messages in MSG-LIST are added to 
the tree."
 
 (defun mh-thread-set-tables (folder)
   "Use the tables of FOLDER in current buffer."
-  (mh-flet
-   ((mh-get-table (symbol)
-                  (with-current-buffer folder
-                    (symbol-value symbol))))
-   (setq mh-thread-id-hash (mh-get-table 'mh-thread-id-hash))
-   (setq mh-thread-subject-hash (mh-get-table 'mh-thread-subject-hash))
-   (setq mh-thread-id-table (mh-get-table 'mh-thread-id-table))
-   (setq mh-thread-id-index-map (mh-get-table 'mh-thread-id-index-map))
-   (setq mh-thread-index-id-map (mh-get-table 'mh-thread-index-id-map))
-   (setq mh-thread-scan-line-map (mh-get-table 'mh-thread-scan-line-map))
-   (setq mh-thread-subject-container-hash
-         (mh-get-table 'mh-thread-subject-container-hash))
-   (setq mh-thread-duplicates (mh-get-table 'mh-thread-duplicates))
-   (setq mh-thread-history (mh-get-table 'mh-thread-history))))
+  (dolist (v '(mh-thread-id-hash
+               mh-thread-subject-hash
+               mh-thread-id-table
+               mh-thread-id-index-map
+               mh-thread-index-id-map
+               mh-thread-scan-line-map
+               mh-thread-subject-container-hash
+               mh-thread-duplicates
+               mh-thread-history))
+    ;; Emacs >= 22.1: (buffer-local-value v folder).
+    (set v (with-current-buffer folder (symbol-value v)))))
 
 (defun mh-thread-process-in-reply-to (reply-to-header)
   "Extract message id's from REPLY-TO-HEADER.
diff --git a/lisp/mwheel.el b/lisp/mwheel.el
index 9718ab8..44c4989 100644
--- a/lisp/mwheel.el
+++ b/lisp/mwheel.el
@@ -148,6 +148,20 @@ This can be slightly disconcerting, but some people prefer 
it."
   :group 'mouse
   :type 'boolean)
 
+;;; For tilt-scroll
+;;;
+(defcustom mouse-wheel-tilt-scroll nil
+  "Enable scroll using tilting mouse wheel."
+  :group 'mouse
+  :type 'boolean
+  :version "26.1")
+
+(defcustom mouse-wheel-flip-direction nil
+  "Swap direction of 'wheel-right and 'wheel-left."
+  :group 'mouse
+  :type 'boolean
+  :version "26.1")
+
 (eval-and-compile
   (if (fboundp 'event-button)
       (fset 'mwheel-event-button 'event-button)
@@ -185,6 +199,24 @@ This can be slightly disconcerting, but some people prefer 
it."
 (defvar mwheel-scroll-down-function 'scroll-down
   "Function that does the job of scrolling downward.")
 
+(defvar mwheel-scroll-left-function 'scroll-left
+  "Function that does the job of scrolling left.")
+
+(defvar mwheel-scroll-right-function 'scroll-right
+  "Function that does the job of scrolling right.")
+
+(defvar mouse-wheel-left-event
+  (if (or (featurep 'w32-win) (featurep 'ns-win))
+      'wheel-left
+    (intern "mouse-6"))
+  "Event used for scrolling left.")
+
+(defvar mouse-wheel-right-event
+  (if (or (featurep 'w32-win) (featurep 'ns-win))
+      'wheel-right
+    (intern "mouse-7"))
+  "Event used for scrolling right.")
+
 (defun mwheel-scroll (event)
   "Scroll up or down according to the EVENT.
 This should be bound only to mouse buttons 4, 5, 6, and 7 on
@@ -255,13 +287,13 @@ non-Windows systems."
                    ;; Make sure we do indeed scroll to the end of the buffer.
                    (end-of-buffer (while t (funcall 
mwheel-scroll-up-function)))))
                 ((eq button mouse-wheel-left-event) ; for tilt scroll
-                 (when mwheel-tilt-scroll-p
-                   (funcall (if mwheel-flip-direction
+                 (when mouse-wheel-tilt-scroll
+                   (funcall (if mouse-wheel-flip-direction
                                 mwheel-scroll-right-function
                               mwheel-scroll-left-function) amt)))
                 ((eq button mouse-wheel-right-event) ; for tilt scroll
-                 (when mwheel-tilt-scroll-p
-                   (funcall (if mwheel-flip-direction
+                 (when mouse-wheel-tilt-scroll
+                   (funcall (if mouse-wheel-flip-direction
                                 mwheel-scroll-left-function
                               mwheel-scroll-right-function) amt)))
                (t (error "Bad binding in mwheel-scroll"))))
@@ -321,45 +353,6 @@ the mode if ARG is omitted or nil."
   "Enable mouse wheel support."
   (mouse-wheel-mode (if uninstall -1 1)))
 
-
-;;; For tilt-scroll
-;;;
-(defcustom mwheel-tilt-scroll-p nil
-  "Enable scroll using tilting mouse wheel."
-  :group 'mouse
-  :type 'boolean
-  :version "26.1")
-
-(defcustom mwheel-flip-direction nil
-  "Swap direction of 'wheel-right and 'wheel-left."
-  :group 'mouse
-  :type 'boolean
-  :version "26.1")
-
-(defcustom mwheel-scroll-left-function 'scroll-left
-  "Function that does the job of scrolling left."
-  :group 'mouse
-  :type 'function
-  :version "26.1")
-
-(defcustom mwheel-scroll-right-function 'scroll-right
-  "Function that does the job of scrolling right."
-  :group 'mouse
-  :type 'function
-  :version "26.1")
-
-(defvar mouse-wheel-left-event
-  (if (or (featurep 'w32-win) (featurep 'ns-win))
-      'wheel-left
-    (intern "mouse-6"))
-  "Event used for scrolling left.")
-
-(defvar mouse-wheel-right-event
-  (if (or (featurep 'w32-win) (featurep 'ns-win))
-      'wheel-right
-    (intern "mouse-7"))
-  "Event used for scrolling right.")
-
 (provide 'mwheel)
 
 ;;; mwheel.el ends here
diff --git a/lisp/net/eww.el b/lisp/net/eww.el
index caac96a..66b1767 100644
--- a/lisp/net/eww.el
+++ b/lisp/net/eww.el
@@ -1532,7 +1532,8 @@ Differences in #targets are ignored."
                   eww-download-directory)))
       (goto-char (point-min))
       (re-search-forward "\r?\n\r?\n")
-      (write-region (point) (point-max) file)
+      (let ((coding-system-for-write 'no-conversion))
+        (write-region (point) (point-max) file))
       (message "Saved %s" file))))
 
 (defun eww-decode-url-file-name (string)
diff --git a/lisp/net/imap.el b/lisp/net/imap.el
index 36b96ca..2a2ce8b 100644
--- a/lisp/net/imap.el
+++ b/lisp/net/imap.el
@@ -141,10 +141,10 @@
 (require 'rfc2104)
 ;; Hmm... digest-md5 is not part of Emacs.
 ;; FIXME: Should/can we use sasl-digest.el instead?
-(declare-function digest-md5-parse-digest-challenge "digest-md5")
-(declare-function digest-md5-digest-response "digest-md5")
-(declare-function digest-md5-digest-uri "digest-md5")
-(declare-function digest-md5-challenge "digest-md5")
+(declare-function digest-md5-parse-digest-challenge "ext:digest-md5")
+(declare-function digest-md5-digest-response "ext:digest-md5")
+(declare-function digest-md5-digest-uri "ext:digest-md5")
+(declare-function digest-md5-challenge "ext:digest-md5")
 
 ;; User variables.
 
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el
index 5acbec7..abd9692 100644
--- a/lisp/net/rcirc.el
+++ b/lisp/net/rcirc.el
@@ -182,6 +182,8 @@ underneath each nick."
   :type '(repeat string)
   :group 'rcirc)
 
+(defvar rcirc-prompt-start-marker nil)
+
 (define-minor-mode rcirc-omit-mode
   "Toggle the hiding of \"uninteresting\" lines.
 With a prefix argument ARG, enable Rcirc-Omit mode if ARG is
@@ -401,7 +403,6 @@ will be killed."
 
 (defvar rcirc-nick nil)
 
-(defvar rcirc-prompt-start-marker nil)
 (defvar rcirc-prompt-end-marker nil)
 
 (defvar rcirc-nick-table nil)
diff --git a/lisp/net/tramp-adb.el b/lisp/net/tramp-adb.el
index f5c45f6..7ac61b8 100644
--- a/lisp/net/tramp-adb.el
+++ b/lisp/net/tramp-adb.el
@@ -71,7 +71,7 @@ It is used for TCP/IP devices."
 
 (defconst tramp-adb-ls-toolbox-regexp
   (concat
-   "^[[:space:]]*\\([-[:alpha:]]+\\)"  ; \1 permissions
+   "^[[:space:]]*\\([-.[:alpha:]]+\\)" ; \1 permissions
    "\\(?:[[:space:]]+[[:digit:]]+\\)?" ; links (Android 7/toybox)
    "[[:space:]]*\\([^[:space:]]+\\)"   ; \2 username
    "[[:space:]]+\\([^[:space:]]+\\)"   ; \3 group
@@ -458,13 +458,19 @@ pass to the OPERATION."
                           result)))))))))
 
 (defun tramp-adb-get-ls-command (vec)
-  "Determine `ls' command at its arguments."
+  "Determine `ls' command and its arguments."
   (with-tramp-connection-property vec "ls"
     (tramp-message vec 5 "Finding a suitable `ls' command")
     (cond
+     ;; Support Android derived systems where "ls" command is provided
+     ;; by GNU Coreutils. Force "ls" to print one column and set
+     ;; time-style to imitate other "ls" flavours.
+     ((tramp-adb-send-command-and-check
+       vec "ls --time-style=long-iso /dev/null")
+      "ls -1 --time-style=long-iso")
      ;; Can't disable coloring explicitly for toybox ls command.  We
-     ;; must force "ls" to print just one column.
-     ((tramp-adb-send-command-and-check vec "toybox") "env COLUMNS=1 ls")
+     ;; also must force "ls" to print just one column.
+     ((tramp-adb-send-command-and-check vec "toybox") "ls -1")
      ;; On CyanogenMod based system BusyBox is used and "ls" output
      ;; coloring is enabled by default.  So we try to disable it when
      ;; possible.
diff --git a/lisp/net/tramp-archive.el b/lisp/net/tramp-archive.el
index 2ed803a..87b6976 100644
--- a/lisp/net/tramp-archive.el
+++ b/lisp/net/tramp-archive.el
@@ -59,13 +59,14 @@
 ;; * ".exe" - Self extracting Microsoft Windows EXE files
 ;; * ".iso" - ISO 9660 images
 ;; * ".jar" - Java archives
-;; * ".lzh", "LZH" - Microsoft Windows compressed LHA archives
+;; * ".lzh", ".LZH" - Microsoft Windows compressed LHA archives
+;; * ".msu", ".MSU" - Microsoft Windows Update packages
 ;; * ".mtree" - BSD mtree format
 ;; * ".pax" - Posix archives
 ;; * ".rar" - RAR archives
 ;; * ".rpm" - Red Hat packages
 ;; * ".shar" - Shell archives
-;; * ".tar", "tbz", "tgz", "tlz", "txz" - (Compressed) tape archives
+;; * ".tar", ".tbz", ".tgz", ".tlz", ".txz" - (Compressed) tape archives
 ;; * ".warc" - Web archives
 ;; * ".xar" - macOS XAR archives
 ;; * ".xpi" - XPInstall Mozilla addons
@@ -139,6 +140,7 @@
     "iso" ;; ISO 9660 images.
     "jar" ;; Java archives.  Not in libarchive testsuite.
     "lzh" "LZH" ;; Microsoft Windows compressed LHA archives.
+    "msu" "MSU" ;; Microsoft Windows Update packages.  Not in testsuite.
     "mtree" ;; BSD mtree format.
     "pax" ;; Posix archives.
     "rar" ;; RAR archives.
diff --git a/lisp/net/tramp-sh.el b/lisp/net/tramp-sh.el
index ff5d404..f619ac3 100644
--- a/lisp/net/tramp-sh.el
+++ b/lisp/net/tramp-sh.el
@@ -962,15 +962,16 @@ busybox awk '{}' </dev/null"
 (defconst tramp-vc-registered-read-file-names
   "echo \"(\"
 while read file; do
+    quoted=`echo \"$file\" | sed -e \"s/\\\"/\\\\\\\\\\\\\\\\\\\"/\"`
     if %s \"$file\"; then
-       echo \"(\\\"$file\\\" \\\"file-exists-p\\\" t)\"
+       echo \"(\\\"$quoted\\\" \\\"file-exists-p\\\" t)\"
     else
-       echo \"(\\\"$file\\\" \\\"file-exists-p\\\" nil)\"
+       echo \"(\\\"$quoted\\\" \\\"file-exists-p\\\" nil)\"
     fi
     if %s \"$file\"; then
-       echo \"(\\\"$file\\\" \\\"file-readable-p\\\" t)\"
+       echo \"(\\\"$quoted\\\" \\\"file-readable-p\\\" t)\"
     else
-       echo \"(\\\"$file\\\" \\\"file-readable-p\\\" nil)\"
+       echo \"(\\\"$quoted\\\" \\\"file-readable-p\\\" nil)\"
     fi
 done
 echo \")\""
@@ -2054,6 +2055,7 @@ file names."
          (t2 (tramp-tramp-file-p newname))
          (length (tramp-compat-file-attribute-size
                   (file-attributes (file-truename filename))))
+         ;; `file-extended-attributes' exists since Emacs 24.4.
          (attributes (and preserve-extended-attributes
                           (apply 'file-extended-attributes (list filename)))))
 
diff --git a/lisp/net/tramp.el b/lisp/net/tramp.el
index 618d026..6011239 100644
--- a/lisp/net/tramp.el
+++ b/lisp/net/tramp.el
@@ -3564,7 +3564,7 @@ support symbolic links."
                  (concat (file-remote-p filename)
                          (substitute-in-file-name localname))))))
       ;; "/m:h:~" does not work for completion.  We use "/m:h:~/".
-      (if (string-match "~$" filename)
+      (if (and (stringp localname) (string-equal "~" localname))
          (concat filename "/")
        filename))))
 
diff --git a/lisp/net/zeroconf.el b/lisp/net/zeroconf.el
index 351fc9f..0a3f277 100644
--- a/lisp/net/zeroconf.el
+++ b/lisp/net/zeroconf.el
@@ -382,6 +382,8 @@ TYPE. The resulting list has the format
   ;; `zeroconf-services-hash'.
   (gethash (concat name "/" type) zeroconf-services-hash nil))
 
+(defvar dbus-debug)
+
 (defun zeroconf-resolve-service (service)
   "Return all service attributes SERVICE as list.
 NAME must be a string.  The service must be of service type
diff --git a/lisp/nxml/nxml-mode.el b/lisp/nxml/nxml-mode.el
index 7dc0be8..1df410e 100644
--- a/lisp/nxml/nxml-mode.el
+++ b/lisp/nxml/nxml-mode.el
@@ -493,7 +493,7 @@ Many aspects this mode can be customized using
   ;; FIXME: Use the fact that we're parsing the document already
   ;; rather than using regex-based filtering.
   (setq-local tildify-foreach-region-function
-              (apply-partially #'tildify-foreach-ignore-environments
+              (apply-partially 'tildify-foreach-ignore-environments
                                '(("<! *--" . "-- *>") ("<" . ">"))))
   (setq-local mode-line-process '((nxml-degraded "/degraded")))
   ;; We'll determine the fill prefix ourselves
diff --git a/lisp/org/org.el b/lisp/org/org.el
index 4e46205..2f60a07 100644
--- a/lisp/org/org.el
+++ b/lisp/org/org.el
@@ -19316,6 +19316,9 @@ INCLUDE-LINKED is passed to 
`org-display-inline-images'."
     (org-toggle-inline-images)
     (org-toggle-inline-images)))
 
+;; For without-x builds.
+(declare-function image-refresh "image" (spec &optional frame))
+
 (defun org-display-inline-images (&optional include-linked refresh beg end)
   "Display inline images.
 
@@ -22905,7 +22908,7 @@ matches in paragraphs or comments, use it."
                      (match-string 0)
                    "")))))))))))
 
-(declare-function message-goto-body "message" ())
+(declare-function message-goto-body "message" (&optional interactive))
 (defvar message-cite-prefix-regexp)    ; From message.el
 
 (defun org-fill-element (&optional justify)
diff --git a/lisp/org/ox-odt.el b/lisp/org/ox-odt.el
index cdee568..1fc697a 100644
--- a/lisp/org/ox-odt.el
+++ b/lisp/org/ox-odt.el
@@ -2192,6 +2192,10 @@ SHORT-CAPTION are strings."
     (org-odt-create-manifest-file-entry media-type target-file)
     target-file))
 
+;; For --without-x builds.
+(declare-function clear-image-cache "image.c" (&optional filter))
+(declare-function image-size "image.c" (spec &optional pixels frame))
+
 (defun org-odt--image-size
   (file info &optional user-width user-height scale dpi embed-as)
   (let* ((--pixels-to-cms
diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el
index a62a974..8c0682a 100644
--- a/lisp/progmodes/cperl-mode.el
+++ b/lisp/progmodes/cperl-mode.el
@@ -267,7 +267,7 @@ Versions 5.2 ... 5.20 behaved as if this were nil."
   :group 'cperl-indentation-details)
 
 (defcustom cperl-indent-subs-specially t
-  "*Non-nil means indent subs that are inside other blocks (hash values, for 
example) relative to the beginning of the \"sub\" keyword, rather than relative 
to the statement that contains the declaration."
+  "Non-nil means indent subs that are inside other blocks (hash values, for 
example) relative to the beginning of the \"sub\" keyword, rather than relative 
to the statement that contains the declaration."
   :type 'boolean
   :group 'cperl-indentation-details)
 
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el
index c664799..88e34d8 100644
--- a/lisp/progmodes/gdb-mi.el
+++ b/lisp/progmodes/gdb-mi.el
@@ -792,7 +792,7 @@ detailed description of this mode.
   (gud-def gud-tbreak "tbreak %f:%l" "\C-t"
           "Set temporary breakpoint at current line.")
   (gud-def gud-jump
-          (progn (gud-call "tbreak %f:%l") (gud-call "jump %f:%l"))
+          (progn (gud-call "tbreak %f:%l" arg) (gud-call "jump %f:%l"))
           "\C-j" "Set execution address to current line.")
 
   (gud-def gud-up     "up %p"     "<" "Up N stack frames (numeric arg).")
diff --git a/lisp/progmodes/gud.el b/lisp/progmodes/gud.el
index 72f5769..6aa9a7e 100644
--- a/lisp/progmodes/gud.el
+++ b/lisp/progmodes/gud.el
@@ -378,6 +378,7 @@ we're in the GUD buffer)."
        (if (not gud-running)
         ,(if (stringp cmd)
              `(gud-call ,cmd arg)
+           ;; Unused lexical warning if cmd does not use "arg".
            cmd))))
      ,(if key `(local-set-key ,(concat "\C-c" key) ',func))
      ,(if key `(global-set-key (vconcat gud-key-prefix ,key) ',func))))
@@ -771,7 +772,7 @@ the buffer in which this command was invoked."
   (gud-def gud-cont   "cont"     "\C-r" "Continue with display.")
   (gud-def gud-finish "finish"   "\C-f" "Finish executing current function.")
   (gud-def gud-jump
-          (progn (gud-call "tbreak %f:%l") (gud-call "jump %f:%l"))
+          (progn (gud-call "tbreak %f:%l" arg) (gud-call "jump %f:%l"))
           "\C-j" "Set execution address to current line.")
 
   (gud-def gud-up     "up %p"     "<" "Up N stack frames (numeric arg).")
diff --git a/lisp/progmodes/octave.el b/lisp/progmodes/octave.el
index c768d8d..f5d764e 100644
--- a/lisp/progmodes/octave.el
+++ b/lisp/progmodes/octave.el
@@ -1165,6 +1165,8 @@ q: Don't fix\n" func file))
   "Face used to highlight function comment block.")
 
 (eval-when-compile (require 'texinfo))
+;; Undo the effects of texinfo loading tex-mode loading compile.
+(declare-function compilation-forget-errors "compile" ())
 
 (defun octave-font-lock-texinfo-comment ()
   (let ((kws
diff --git a/lisp/progmodes/perl-mode.el b/lisp/progmodes/perl-mode.el
index 9948078..c1d94ac 100644
--- a/lisp/progmodes/perl-mode.el
+++ b/lisp/progmodes/perl-mode.el
@@ -165,7 +165,7 @@
     ;; Fontify function and package names in declarations.
     ("\\<\\(package\\|sub\\)\\>[ \t]*\\(\\sw+\\)?"
      (1 font-lock-keyword-face) (2 font-lock-function-name-face nil t))
-    ("\\<\\(import\\|no\\|require\\|use\\)\\>[ \t]*\\(\\sw+\\)?"
+    ("\\(^\\|address@hidden&\\]\\)\\<\\(import\\|no\\|require\\|use\\)\\>[ 
\t]*\\(\\sw+\\)?"
      (1 font-lock-keyword-face) (2 font-lock-constant-face nil t)))
   "Subdued level highlighting for Perl mode.")
 
diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 530eb2f..afafd1b 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -4,7 +4,7 @@
 
 ;; Author: Fabián E. Gallina <address@hidden>
 ;; URL: https://github.com/fgallina/python.el
-;; Version: 0.26
+;; Version: 0.26.1
 ;; Package-Requires: ((emacs "24.1") (cl-lib "1.0"))
 ;; Maintainer: address@hidden
 ;; Created: Jul 2010
@@ -287,9 +287,20 @@
 ;;; 24.x Compat
 
 
-(unless (fboundp 'prog-first-column)
-  (defun prog-first-column ()
-    0))
+(eval-and-compile
+  (unless (fboundp 'prog-first-column)
+    (defun prog-first-column ()
+      0))
+  (unless (fboundp 'file-local-name)
+    (defun file-local-name (file)
+      "Return the local name component of FILE.
+It returns a file name which can be used directly as argument of
+`process-file', `start-file-process', or `shell-command'."
+      (or (file-remote-p file 'localname) file))))
+
+;; In Emacs 24.3 and earlier, `define-derived-mode' does not define
+;; the hook variable, it only puts documentation on the symbol.
+(defvar inferior-python-mode-hook)
 
 
 ;;; Bindings
@@ -636,15 +647,15 @@ The type returned can be `comment', `string' or `paren'."
    ((python-rx string-delimiter)
     (0 (ignore (python-syntax-stringify))))))
 
+(define-obsolete-variable-alias 'python--prettify-symbols-alist
+  'python-prettify-symbols-alist "26.1")
+
 (defvar python-prettify-symbols-alist
   '(("lambda"  . ?λ)
     ("and" . ?∧)
     ("or" . ?∨))
   "Value for `prettify-symbols-alist' in `python-mode'.")
 
-(define-obsolete-variable-alias 'python--prettify-symbols-alist
-  'python-prettify-symbols-alist "26.1")
-
 (defsubst python-syntax-count-quotes (quote-char &optional point limit)
   "Count number of quotes around point (max is 3).
 QUOTE-CHAR is the quote char to count.  Optional argument POINT is
@@ -1509,7 +1520,8 @@ of the statement."
                        ;; narrowing.
                        (cl-assert (> string-start last-string-end)
                                   :show-args
-                                  "Overlapping strings detected")
+                                  "\
+Overlapping strings detected (start=%d, last-end=%d)")
                        (goto-char string-start)
                        (if (python-syntax-context 'paren)
                            ;; Ended up inside a paren, roll again.
@@ -2148,7 +2160,7 @@ of `exec-path'."
 (defun python-shell-tramp-refresh-process-environment (vec env)
   "Update VEC's process environment with ENV."
   ;; Stolen from `tramp-open-connection-setup-interactive-shell'.
-  (let ((env (append (when (fboundp #'tramp-get-remote-locale)
+  (let ((env (append (when (fboundp 'tramp-get-remote-locale)
                        ;; Emacs<24.4 compat.
                        (list (tramp-get-remote-locale vec)))
                     (copy-sequence env)))
@@ -3184,10 +3196,10 @@ t when called interactively."
                      (insert-file-contents
                       (or temp-file-name file-name))
                      (python-info-encoding)))
-         (file-name (expand-file-name (file-local-name file-name)))
+         (file-name (file-local-name (expand-file-name file-name)))
          (temp-file-name (when temp-file-name
-                           (expand-file-name
-                            (file-local-name temp-file-name)))))
+                           (file-local-name (expand-file-name
+                                             temp-file-name)))))
     (python-shell-send-string
      (format
       (concat
@@ -5287,6 +5299,7 @@ REPORT-FN is Flymake's callback function."
     (save-excursion (insert (make-string 2 last-command-event)))))
 
 (defvar electric-indent-inhibit)
+(defvar prettify-symbols-alist)
 
 ;;;###autoload
 (define-derived-mode python-mode prog-mode "Python"
@@ -5382,7 +5395,7 @@ REPORT-FN is Flymake's callback function."
            (1+ (/ (current-indentation) python-indent-offset))))
 
   (set (make-local-variable 'prettify-symbols-alist)
-       python--prettify-symbols-alist)
+       python-prettify-symbols-alist)
 
   (python-skeleton-add-menu-items)
 
diff --git a/lisp/progmodes/sql.el b/lisp/progmodes/sql.el
index d20c579..9bb2cf4 100644
--- a/lisp/progmodes/sql.el
+++ b/lisp/progmodes/sql.el
@@ -4406,7 +4406,8 @@ The default comes from `process-coding-system-alist' and
                            (or coding 'utf-8))
                     (when (string-match (format "\\.%s\\'" (car cs)) nlslang)
                       (setq coding (cdr cs)))))
-    (set-buffer-process-coding-system coding coding)))
+    (set-process-coding-system (get-buffer-process (current-buffer))
+                               coding coding)))
 
 (defun sql-oracle-save-settings (sqlbuf)
   "Save most SQL*Plus settings so they may be reset by \\[sql-redirect]."
diff --git a/lisp/progmodes/xref.el b/lisp/progmodes/xref.el
index e0f5b2d..5a9a7a9 100644
--- a/lisp/progmodes/xref.el
+++ b/lisp/progmodes/xref.el
@@ -501,8 +501,9 @@ SELECT is `quit', also quit the *xref* window."
              (xref-buffer (current-buffer)))
         (cond (select
                (if (eq select 'quit) (quit-window nil nil))
-               (with-current-buffer xref-buffer
-                 (select-window (xref--show-pos-in-buf marker buf))))
+               (select-window
+                (with-current-buffer xref-buffer
+                  (xref--show-pos-in-buf marker buf))))
               (t
                (save-selected-window
                  (xref--with-dedicated-window
@@ -692,6 +693,10 @@ references displayed in the current *xref* buffer."
     (dotimes (_ n)
       (setq xref (xref--search-property 'xref-item backward)))
     (cond (xref
+           ;; Save the current position (when the buffer is visible,
+           ;; it gets reset to that window's point from time to time).
+           (let ((win (get-buffer-window (current-buffer))))
+             (and win (set-window-point win (point))))
            (xref--show-location (xref-item-location xref) t))
           (t
            (error "No %s xref" (if backward "previous" "next"))))))
diff --git a/lisp/ps-print.el b/lisp/ps-print.el
index baf290f..28f93f4 100644
--- a/lisp/ps-print.el
+++ b/lisp/ps-print.el
@@ -1773,7 +1773,7 @@ See `ps-lpr-command'."
 
 (defcustom ps-print-region-function
   (if (memq system-type '(ms-dos windows-nt))
-      #'w32-direct-ps-print-region-function
+      'w32-direct-ps-print-region-function
     #'call-process-region)
   "Specify a function to print the region on a PostScript printer.
 See definition of `call-process-region' for calling conventions.  The fourth
@@ -4140,48 +4140,6 @@ If EXTENSION is any other symbol, it is ignored."
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; Adapted from font-lock: (obsolete stuff)
-;; Originally face attributes were specified via `font-lock-face-attributes'.
-;; Users then changed the default face attributes by setting that variable.
-;; However, we try and be back-compatible and respect its value if set except
-;; for faces where M-x customize has been used to save changes for the face.
-
-
-(defun ps-font-lock-face-attributes ()
-  (and (boundp 'font-lock-mode) (symbol-value 'font-lock-mode)
-       (boundp 'font-lock-face-attributes)
-       (let ((face-attributes (symbol-value 'font-lock-face-attributes)))
-        (while face-attributes
-          (let* ((face-attribute
-                  (car (prog1 face-attributes
-                         (setq face-attributes (cdr face-attributes)))))
-                 (face (car face-attribute)))
-            ;; Rustle up a `defface' SPEC from a
-            ;; `font-lock-face-attributes' entry.
-            (unless (get face 'saved-face)
-              (let ((foreground (nth 1 face-attribute))
-                    (background (nth 2 face-attribute))
-                    (bold-p (nth 3 face-attribute))
-                    (italic-p (nth 4 face-attribute))
-                    (underline-p (nth 5 face-attribute))
-                    face-spec)
-                (when foreground
-                  (setq face-spec (cons ':foreground
-                                        (cons foreground face-spec))))
-                (when background
-                  (setq face-spec (cons ':background
-                                        (cons background face-spec))))
-                (when bold-p
-                  (setq face-spec (append '(:weight bold) face-spec)))
-                (when italic-p
-                  (setq face-spec (append '(:slant italic) face-spec)))
-                (when underline-p
-                  (setq face-spec (append '(:underline t) face-spec)))
-                (custom-declare-face face (list (list t face-spec)) nil)
-                )))))))
-
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Internal functions and variables
 
 
@@ -6350,10 +6308,6 @@ If FACE is not a valid face name, use default face."
 
 
 (defun ps-build-reference-face-lists ()
-  ;; Ensure that face database is updated with faces on
-  ;; `font-lock-face-attributes' (obsolete stuff)
-  (ps-font-lock-face-attributes)
-  ;; Now, rebuild reference face lists
   (setq ps-print-face-alist nil)
   (if ps-auto-font-detect
       (mapc 'ps-map-face (face-list))
diff --git a/lisp/ses.el b/lisp/ses.el
index 9097bf5..bcf8bdb 100644
--- a/lisp/ses.el
+++ b/lisp/ses.el
@@ -2495,7 +2495,7 @@ to are recalculated first."
          prefix-length)
     (when (and prefix (null (string= prefix "")))
       (setq prefix-length (length prefix))
-      (maphash (lambda (key val)
+      (maphash (lambda (key _val)
                  (let ((key-name (symbol-name key)))
                    (when (and (>= (length key-name) prefix-length)
                               (string= prefix (substring key-name 0 
prefix-length)))
@@ -2648,7 +2648,7 @@ cells."
          prefix-length)
     (when prefix
       (setq prefix-length (length prefix))
-      (maphash (lambda (key val)
+      (maphash (lambda (key _val)
                  (let ((key-name (symbol-name key)))
                    (when (and (>= (length key-name) prefix-length)
                               (string= prefix (substring key-name 0 
prefix-length)))
diff --git a/lisp/simple.el b/lisp/simple.el
index 2101cfe..60a0028 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -121,6 +121,11 @@ If non-nil, the value is passed directly to `recenter'."
 A buffer becomes most recent when its compilation, grep, or
 similar mode is started, or when it is used with \\[next-error]
 or \\[compile-goto-error].")
+
+;; next-error-last-buffer is made buffer-local to keep the reference
+;; to the parent buffer used to navigate to the current buffer, so the
+;; next call of next-buffer will use the same parent buffer to
+;; continue navigation from it.
 (make-variable-buffer-local 'next-error-last-buffer)
 
 (defvar next-error-function nil
@@ -170,11 +175,11 @@ rejected, and the function returns nil."
           (and extra-test-inclusive
                (funcall extra-test-inclusive))))))
 
-(defcustom next-error-find-buffer-function nil
+(defcustom next-error-find-buffer-function #'ignore
   "Function called to find a `next-error' capable buffer."
   :type '(choice (const :tag "Single next-error capable buffer on selected 
frame"
                         next-error-buffer-on-selected-frame)
-                 (const :tag "No default" nil)
+                 (const :tag "No default" ignore)
                  (function :tag "Other function"))
   :group 'next-error
   :version "27.1")
@@ -212,10 +217,9 @@ that would normally be considered usable.  If it returns 
nil,
 that buffer is rejected."
   (or
    ;; 1. If a customizable function returns a buffer, use it.
-   (when next-error-find-buffer-function
-     (funcall next-error-find-buffer-function avoid-current
-                                              extra-test-inclusive
-                                              extra-test-exclusive))
+   (funcall next-error-find-buffer-function avoid-current
+                                            extra-test-inclusive
+                                            extra-test-exclusive)
    ;; 2. If next-error-last-buffer is an acceptable buffer, use that.
    (if (and next-error-last-buffer
             (next-error-buffer-p next-error-last-buffer avoid-current
diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el
index 7d89ec3..1c7dd8a 100644
--- a/lisp/term/ns-win.el
+++ b/lisp/term/ns-win.el
@@ -738,6 +738,10 @@ See the documentation of 
`create-fontset-from-fontset-spec' for the format.")
 ;;;; macOS-like defaults for trackpad and mouse wheel scrolling on
 ;;;; macOS 10.7+.
 
+(defvar ns-version-string)
+(defvar mouse-wheel-scroll-amount)
+(defvar mouse-wheel-progressive-speed)
+
 ;; FIXME: This doesn't look right.  Is there a better way to do this
 ;; that keeps customize happy?
 (when (featurep 'cocoa)
diff --git a/lisp/term/w32-win.el b/lisp/term/w32-win.el
index 28eaeff..dc57160 100644
--- a/lisp/term/w32-win.el
+++ b/lisp/term/w32-win.el
@@ -392,8 +392,12 @@ See the documentation of 
`create-fontset-from-fontset-spec' for the format.")
 
 (declare-function w32-set-clipboard-data "w32select.c"
                  (string &optional ignored))
-(declare-function w32-get-clipboard-data "w32select.c")
-(declare-function w32-selection-exists-p "w32select.c")
+(declare-function w32-get-clipboard-data "w32select.c"
+                  (&optional ignored))
+(declare-function w32-selection-exists-p "w32select.c"
+                  (&optional selection terminal))
+(declare-function w32-selection-targets "w32select.c"
+                  (&optional selection terminal))
 
 ;;; Fix interface to (X-specific) mouse.el
 (defun w32--set-selection (type value)
diff --git a/lisp/textmodes/sgml-mode.el b/lisp/textmodes/sgml-mode.el
index eb6ebf5..f6bdfc6 100644
--- a/lisp/textmodes/sgml-mode.el
+++ b/lisp/textmodes/sgml-mode.el
@@ -2232,6 +2232,9 @@ buffer's tick counter (as produced by 
`buffer-modified-tick'),
 and the CDR is the list of class names found in the buffer.")
 (make-variable-buffer-local 'html--buffer-ids-cache)
 
+(declare-function libxml-parse-html-region "xml.c"
+                  (start end &optional base-url discard-comments))
+
 (defun html-current-buffer-classes ()
   "Return a list of class names used in the current buffer.
 The result is cached in `html--buffer-classes-cache'."
diff --git a/lisp/url/url-auth.el b/lisp/url/url-auth.el
index 4f7b544..67e701e 100644
--- a/lisp/url/url-auth.el
+++ b/lisp/url/url-auth.el
@@ -194,7 +194,7 @@ key cache `url-digest-auth-storage'."
   (base64-encode-string
    (apply 'format "%016x%04x%04x%05x%05x" (random) (current-time)) t))
 
-(defun url-digest-auth-nonce-count (nonce)
+(defun url-digest-auth-nonce-count (_nonce)
   "The number requests sent to server with the given NONCE.
 This count includes the request we're preparing here.
 
diff --git a/lisp/url/url-handlers.el b/lisp/url/url-handlers.el
index 1fe0af6..7d0320c 100644
--- a/lisp/url/url-handlers.el
+++ b/lisp/url/url-handlers.el
@@ -41,6 +41,9 @@
 (declare-function mm-decode-string "mm-bodies" (string charset))
 ;; mm-decode loads mail-parse.
 (declare-function mail-content-type-get "mail-parse" (ct attribute))
+;; mm-decode loads mm-bodies, which loads mm-util.
+(declare-function mm-charset-to-coding-system "mm-util"
+                 (charset &optional lbt allow-override silent))
 
 ;; Implementation status
 ;; ---------------------
diff --git a/lisp/vc/add-log.el b/lisp/vc/add-log.el
index bc2be4a..175c82f 100644
--- a/lisp/vc/add-log.el
+++ b/lisp/vc/add-log.el
@@ -898,7 +898,7 @@ non-nil, otherwise in local time."
              (insert (if use-hard-newlines hard-newline "\n")
                      (if use-hard-newlines hard-newline "\n"))
              (forward-line -2)
-             (indent-relative-maybe))
+             (indent-relative-first-indent-point))
             (t
              ;; Make a new item.
              (while (looking-at "\\sW")
diff --git a/lisp/vc/ediff.el b/lisp/vc/ediff.el
index cd2b2c4..a5e8022 100644
--- a/lisp/vc/ediff.el
+++ b/lisp/vc/ediff.el
@@ -153,7 +153,7 @@
 (declare-function dired-get-filename "dired"
                   (&optional localp no-error-if-not-filep))
 (declare-function dired-get-marked-files "dired"
-                  (&optional localp arg filter distinguish-one-marked))
+                  (&optional localp arg filter distinguish-one-marked error))
 
 ;; Return a plausible default for ediff's first file:
 ;; In dired, return the file number FILENO (or 0) in the list
diff --git a/src/fns.c b/src/fns.c
index a04d0d4..d5759c5 100644
--- a/src/fns.c
+++ b/src/fns.c
@@ -4810,8 +4810,6 @@ extract_data_from_object (Lisp_Object spec,
 
       record_unwind_current_buffer ();
 
-      CHECK_BUFFER (object);
-
       struct buffer *bp = XBUFFER (object);
       set_buffer_internal (bp);
 
@@ -4933,6 +4931,9 @@ extract_data_from_object (Lisp_Object spec,
 #endif
     }
 
+  if (!STRINGP (object))
+    signal_error ("Invalid object argument",
+                 NILP (object) ? build_string ("nil") : object);
   return SSDATA (object);
 }
 
diff --git a/src/print.c b/src/print.c
index b3c0f6f..a8bbb9d 100644
--- a/src/print.c
+++ b/src/print.c
@@ -313,6 +313,25 @@ printchar (unsigned int ch, Lisp_Object fun)
     }
 }
 
+/* Output an octal escape for C.  If C is less than '\100' consult the
+   following character (if any) to see whether to use three octal
+   digits to avoid misinterpretation of the next character.  The next
+   character after C will be taken from DATA, starting at byte
+   location I, if I is less than SIZE.  Use PRINTCHARFUN to output
+   each character.  */
+
+static void
+octalout (unsigned char c, unsigned char *data, ptrdiff_t i, ptrdiff_t size,
+         Lisp_Object printcharfun)
+{
+  int digits = (c > '\77' || (i < size && '0' <= data[i] && data[i] <= '7')
+               ? 3
+               : c > '\7' ? 2 : 1);
+  printchar ('\\', printcharfun);
+  do
+    printchar ('0' + ((c >> (3 * --digits)) & 7), printcharfun);
+  while (digits != 0);
+}
 
 /* Output SIZE characters, SIZE_BYTE bytes from string PTR using
    method PRINTCHARFUN.  PRINTCHARFUN nil means output to
@@ -1367,32 +1386,33 @@ print_vectorlike (Lisp_Object obj, Lisp_Object 
printcharfun, bool escapeflag,
     case PVEC_BOOL_VECTOR:
       {
        EMACS_INT size = bool_vector_size (obj);
-       ptrdiff_t size_in_chars = bool_vector_bytes (size);
-       ptrdiff_t real_size_in_chars = size_in_chars;
+       ptrdiff_t size_in_bytes = bool_vector_bytes (size);
+       ptrdiff_t real_size_in_bytes = size_in_bytes;
+       unsigned char *data = bool_vector_uchar_data (obj);
 
        int len = sprintf (buf, "#&%"pI"d\"", size);
        strout (buf, len, len, printcharfun);
 
-       /* Don't print more characters than the specified maximum.
+       /* Don't print more bytes than the specified maximum.
           Negative values of print-length are invalid.  Treat them
           like a print-length of nil.  */
        if (NATNUMP (Vprint_length)
-           && XFASTINT (Vprint_length) < size_in_chars)
-         size_in_chars = XFASTINT (Vprint_length);
+           && XFASTINT (Vprint_length) < size_in_bytes)
+         size_in_bytes = XFASTINT (Vprint_length);
 
-       for (ptrdiff_t i = 0; i < size_in_chars; i++)
+       for (ptrdiff_t i = 0; i < size_in_bytes; i++)
          {
            maybe_quit ();
-           unsigned char c = bool_vector_uchar_data (obj)[i];
+           unsigned char c = data[i];
            if (c == '\n' && print_escape_newlines)
              print_c_string ("\\n", printcharfun);
            else if (c == '\f' && print_escape_newlines)
              print_c_string ("\\f", printcharfun);
-           else if (c > '\177')
+           else if (c > '\177'
+                    || (print_escape_control_characters && c_iscntrl (c)))
              {
                /* Use octal escapes to avoid encoding issues.  */
-               int len = sprintf (buf, "\\%o", c);
-               strout (buf, len, len, printcharfun);
+               octalout (c, data, i + 1, size_in_bytes, printcharfun);
              }
            else
              {
@@ -1402,7 +1422,7 @@ print_vectorlike (Lisp_Object obj, Lisp_Object 
printcharfun, bool escapeflag,
              }
          }
 
-       if (size_in_chars < real_size_in_chars)
+       if (size_in_bytes < real_size_in_bytes)
          print_c_string (" ...", printcharfun);
        printchar ('\"', printcharfun);
       }
@@ -1854,9 +1874,7 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, 
bool escapeflag)
                     (when requested) a non-ASCII character in a unibyte buffer,
                     print single-byte non-ASCII string chars
                     using octal escapes.  */
-                 char outbuf[5];
-                 int len = sprintf (outbuf, "\\%03o", c + 0u);
-                 strout (outbuf, len, len, printcharfun);
+                 octalout (c, SDATA (obj), i_byte, size_byte, printcharfun);
                  need_nonhex = false;
                }
              else if (multibyte
@@ -1870,7 +1888,6 @@ print_object (Lisp_Object obj, Lisp_Object printcharfun, 
bool escapeflag)
                }
              else
                {
-                  bool still_need_nonhex = false;
                  /* If we just had a hex escape, and this character
                     could be taken as part of it,
                     output `\ ' to prevent that.  */
@@ -1884,22 +1901,16 @@ print_object (Lisp_Object obj, Lisp_Object 
printcharfun, bool escapeflag)
                            ? (c = 'n', true)
                            : c == '\f' && print_escape_newlines
                            ? (c = 'f', true)
-                           : c == '\0' && print_escape_control_characters
-                           ? (c = '0', still_need_nonhex = true)
                            : c == '\"' || c == '\\')
                     {
                       printchar ('\\', printcharfun);
                       printchar (c, printcharfun);
                     }
                   else if (print_escape_control_characters && c_iscntrl (c))
-                    {
-                      char outbuf[1 + 3 + 1];
-                      int len = sprintf (outbuf, "\\%03o", c + 0u);
-                      strout (outbuf, len, len, printcharfun);
-                    }
+                   octalout (c, SDATA (obj), i_byte, size_byte, printcharfun);
                   else
                     printchar (c, printcharfun);
-                 need_nonhex = still_need_nonhex;
+                 need_nonhex = false;
                }
            }
          printchar ('\"', printcharfun);
diff --git a/src/systhread.c b/src/systhread.c
index 3f162a2..e972ed3 100644
--- a/src/systhread.c
+++ b/src/systhread.c
@@ -177,6 +177,13 @@ sys_thread_create (sys_thread_t *thread_ptr, const char 
*name,
   if (pthread_attr_init (&attr))
     return 0;
 
+  /* Avoid crash on macOS with deeply nested GC (Bug#30364).  */
+  size_t stack_size;
+  size_t required_stack_size = sizeof (void *) * 1024 * 1024;
+  if (pthread_attr_getstacksize (&attr, &stack_size) == 0
+      && stack_size < required_stack_size)
+    pthread_attr_setstacksize (&attr, required_stack_size);
+
   if (!pthread_attr_setdetachstate (&attr, PTHREAD_CREATE_DETACHED))
     {
       result = pthread_create (thread_ptr, &attr, func, arg) == 0;
diff --git a/src/window.c b/src/window.c
index 6d9ebd4..9f8c551 100644
--- a/src/window.c
+++ b/src/window.c
@@ -5924,6 +5924,9 @@ and redisplay normally--don't erase and redraw the frame. 
 */)
   EMACS_INT iarg UNINIT;
   int this_scroll_margin;
 
+  /* For reasons why we signal an error here, see
+     http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00053.html,
+     http://lists.gnu.org/archive/html/emacs-devel/2014-06/msg00094.html.  */
   if (buf != current_buffer)
     error ("`recenter'ing a window that does not display current-buffer.");
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]