emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] pdumper c63aa80 1/3: Merge remote-tracking branch 'origin/


From: Daniel Colascione
Subject: [Emacs-diffs] pdumper c63aa80 1/3: Merge remote-tracking branch 'origin/master' into pdumper
Date: Mon, 26 Feb 2018 14:30:49 -0500 (EST)

branch: pdumper
commit c63aa8073368b1c8f6abcc57f59a825774475edc
Merge: dcb44cc 25271a6
Author: Daniel Colascione <address@hidden>
Commit: Daniel Colascione <address@hidden>

    Merge remote-tracking branch 'origin/master' into pdumper
---
 admin/automerge                       |   9 +-
 build-aux/config.guess                |   8 +-
 build-aux/config.sub                  |   5 +-
 doc/emacs/building.texi               |  11 +-
 doc/emacs/calendar.texi               |   3 +-
 doc/emacs/cmdargs.texi                |  82 ++++----
 doc/emacs/custom.texi                 |  91 +++++----
 doc/emacs/display.texi                |   7 +-
 doc/emacs/help.texi                   |   4 +-
 doc/emacs/m-x.texi                    |   4 +-
 doc/emacs/mini.texi                   |  11 +-
 doc/emacs/misc.texi                   |   2 +-
 doc/emacs/package.texi                |  10 +-
 doc/emacs/search.texi                 |  11 +-
 doc/emacs/sending.texi                |  44 ++---
 doc/emacs/trouble.texi                |   2 +-
 doc/emacs/windows.texi                |   2 +-
 doc/emacs/xresources.texi             |  23 ++-
 doc/lispintro/emacs-lisp-intro.texi   |  28 +--
 doc/lispref/buffers.texi              |   5 +-
 doc/lispref/edebug.texi               |   2 +-
 doc/lispref/files.texi                |   3 +-
 doc/lispref/frames.texi               | 170 ++++++++---------
 doc/lispref/functions.texi            |   2 +-
 doc/lispref/minibuf.texi              |   2 +-
 doc/lispref/os.texi                   |   5 +-
 doc/lispref/positions.texi            |   2 +-
 doc/lispref/strings.texi              |   2 +-
 doc/lispref/syntax.texi               |   4 +
 doc/lispref/text.texi                 |   2 +-
 doc/lispref/windows.texi              |  30 +--
 doc/misc/calc.texi                    |   2 +-
 doc/misc/cc-mode.texi                 | 346 +++++++++++++++++-----------------
 doc/misc/dired-x.texi                 |   6 +-
 doc/misc/ediff.texi                   |  10 +-
 doc/misc/epa.texi                     |   4 +-
 doc/misc/gnus-faq.texi                |   2 +-
 doc/misc/gnus.texi                    |  14 +-
 doc/misc/mh-e.texi                    |  40 ++--
 doc/misc/pcl-cvs.texi                 |  14 +-
 doc/misc/reftex.texi                  |  24 +--
 doc/misc/sc.texi                      | 144 +++++++-------
 doc/misc/semantic.texi                |   5 +-
 doc/misc/tramp.texi                   |   4 +-
 doc/misc/url.texi                     |   5 +-
 doc/misc/vhdl-mode.texi               |  38 ++--
 doc/misc/viper.texi                   | 196 +++++++++----------
 etc/NEWS                              |  29 +++
 lib/gnulib.mk.in                      |   8 +-
 lib/stdlib.in.h                       |   3 +
 lisp/autorevert.el                    |   3 +-
 lisp/chistory.el                      |  13 +-
 lisp/help.el                          |  16 +-
 lisp/international/mule.el            |   2 +-
 lisp/isearch.el                       |  29 +--
 lisp/net/ange-ftp.el                  |  10 +
 lisp/progmodes/grep.el                |  51 ++++-
 lisp/simple.el                        |  65 +++++--
 lisp/textmodes/flyspell.el            |   2 +-
 lisp/vc/vc-dispatcher.el              |  30 +--
 lisp/vc/vc-git.el                     |  15 +-
 m4/getloadavg.m4                      |   5 +-
 m4/stdlib_h.m4                        |   5 +-
 m4/warnings.m4                        |  11 +-
 src/Makefile.in                       |   7 +-
 src/keyboard.c                        |   5 +-
 src/sysdep.c                          |  29 ++-
 src/xdisp.c                           |  10 +-
 src/xterm.c                           |   2 +
 test/Makefile.in                      |   8 +
 test/lisp/emacs-lisp/package-tests.el |  10 +-
 71 files changed, 1040 insertions(+), 768 deletions(-)

diff --git a/admin/automerge b/admin/automerge
index 18f8c75..520961f 100755
--- a/admin/automerge
+++ b/admin/automerge
@@ -141,7 +141,7 @@ trap "rm -f $tempfile 2> /dev/null" EXIT
     git reset --hard origin/master || die "reset error"
 
     echo "Pulling..."
-    git pull --ff-only || die "pull error"
+    git pull -q --ff-only || die "pull error"
 }
 
 
@@ -161,10 +161,8 @@ merge ()
         return 0
 
     else
-        grep -qE "Nothing to merge|Number of missing commits" $tempfile && {
-            echo "Fewer than $nmin commits to merge"
+        grep -E "Nothing to merge|Number of missing commits" $tempfile && \
             exit 0
-        }
 
         cat "$tempfile" 1>&2
 
@@ -213,7 +211,8 @@ echo "Build finished ok"
 
 echo "Testing..."
 
-make "$@" check || die "check error"
+## We just want a fast pass/fail, we don't want to debug.
+make "$@" check TEST_LOAD_EL=no || die "check error"
 
 echo "Tests finished ok"
 
diff --git a/build-aux/config.guess b/build-aux/config.guess
index 9baaa27..f50dcdb 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-01-26'
+timestamp='2018-02-24'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -1046,7 +1046,11 @@ EOF
        echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
        exit ;;
     x86_64:Linux:*:*)
-       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+       if objdump -f /bin/sh | grep -q elf32-x86-64; then
+           echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32
+       else
+           echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
+       fi
        exit ;;
     xtensa*:Linux:*:*)
        echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
diff --git a/build-aux/config.sub b/build-aux/config.sub
index 818892c..1d8e98b 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-01-15'
+timestamp='2018-02-22'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -1389,7 +1389,8 @@ case $os in
              | -morphos* | -superux* | -rtmk* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
              | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
-             | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme*)
+             | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
+             | -midnightbsd*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
diff --git a/doc/emacs/building.texi b/doc/emacs/building.texi
index b6b664d..8e2fdf1 100644
--- a/doc/emacs/building.texi
+++ b/doc/emacs/building.texi
@@ -302,7 +302,7 @@ And here's how to do it in csh:
 if ($?prompt) set prompt = @dots{}
 @end example
 
address@hidden TERM, environment variable, in compilation mode
address@hidden address@hidden, environment variable, in compilation mode}
   If you want to customize the value of the @env{TERM} environment
 variable passed to the compilation subshell, customize the variable
 @code{comint-terminfo-terminal} (@pxref{Shell Options}).
@@ -434,6 +434,15 @@ the variable @code{grep-files-aliases}.
 @kbd{M-x rgrep}.  The default value includes the data directories used
 by various version control systems.
 
address@hidden grep-find-hide
+  By default, the shell commands constructed for @code{lgrep},
address@hidden, and @code{zgrep} are abbreviated for display by
+concealing the part that contains a long list of files and directories
+to ignore.  You can reveal the concealed part by clicking on the
+button with ellipsis, which represents them.  To disable this
+abbreviation of the shell commands, customize the option
address@hidden to a @code{nil} value.
+
 @node Flymake
 @section Finding Syntax Errors On The Fly
 @cindex checking syntax
diff --git a/doc/emacs/calendar.texi b/doc/emacs/calendar.texi
index be5af99..c6a84b5 100644
--- a/doc/emacs/calendar.texi
+++ b/doc/emacs/calendar.texi
@@ -1507,7 +1507,8 @@ to the main diary file, if these are different files.
 @end ifnottex
 
 
address@hidden icalendar-export-file, icalendar-export-region
address@hidden icalendar-export-file
address@hidden icalendar-export-region
   Use @code{icalendar-export-file} to interactively export an entire
 Emacs diary file to iCalendar format.  To export only a part of a diary
 file, mark the relevant area, and call @code{icalendar-export-region}.
diff --git a/doc/emacs/cmdargs.texi b/doc/emacs/cmdargs.texi
index d18de8e..733919a 100644
--- a/doc/emacs/cmdargs.texi
+++ b/doc/emacs/cmdargs.texi
@@ -464,25 +464,25 @@ variables to be set, but it uses their values if they are 
set.
 @c might be confused with general-purpose phrases.
 @table @env
 @item CDPATH
address@hidden CDPATH, environment variable
address@hidden address@hidden, environment variable}
 Used by the @code{cd} command to search for the directory you specify,
 when you specify a relative directory,
 @item DBUS_SESSION_BUS_ADDRESS
address@hidden DBUS_SESSION_BUS_ADDRESS, environment variable
address@hidden address@hidden, environment variable}
 Used by D-Bus when Emacs is compiled with it.  Usually, there is no
 need to change it.  Setting it to a dummy address, like
 @samp{unix:path=/dev/null}, suppresses connections to the D-Bus session
 bus as well as autolaunching the D-Bus session bus if not running yet.
 @item EMACSDATA
address@hidden EMACSDATA, environment variable
address@hidden address@hidden, environment variable}
 Directory for the architecture-independent files that come with Emacs.
 This is used to initialize the variable @code{data-directory}.
 @item EMACSDOC
address@hidden EMACSDOC, environment variable
address@hidden address@hidden, environment variable}
 Directory for the documentation string file, which is used to
 initialize the Lisp variable @code{doc-directory}.
 @item EMACSLOADPATH
address@hidden EMACSLOADPATH, environment variable
address@hidden address@hidden, environment variable}
 A colon-separated list of address@hidden and below,
 whenever we say ``colon-separated list of directories'', it pertains
 to Unix and GNU/Linux systems.  On MS-DOS and MS-Windows, the
@@ -496,28 +496,28 @@ the default @code{load-path}.  To specify an empty 
element in the
 middle of the list, use 2 colons in a row, as in
 @samp{EMACSLOADPATH="/tmp::/foo"}.
 @item EMACSPATH
address@hidden EMACSPATH, environment variable
address@hidden address@hidden, environment variable}
 A colon-separated list of directories to search for executable files.
 If set, Emacs uses this in addition to @env{PATH} (see below) when
 initializing the variable @code{exec-path} (@pxref{Shell}).
 @item EMAIL
address@hidden EMAIL, environment variable
address@hidden address@hidden, environment variable}
 @vindex address@hidden, initialization}
 Your email address; used to initialize the Lisp variable
 @code{user-mail-address}, which the Emacs mail interface puts into the
 @samp{From} header of outgoing messages (@pxref{Mail Headers}).
 @item ESHELL
address@hidden ESHELL, environment variable
address@hidden address@hidden, environment variable}
 Used for shell-mode to override the @env{SHELL} environment variable
 (@pxref{Interactive Shell}).
 @item HISTFILE
address@hidden HISTFILE, environment variable
address@hidden address@hidden, environment variable}
 The name of the file that shell commands are saved in between logins.
 This variable defaults to @file{~/.bash_history} if you use Bash, to
 @file{~/.sh_history} if you use ksh, and to @file{~/.history}
 otherwise.
 @item HOME
address@hidden HOME, environment variable
address@hidden address@hidden, environment variable}
 The location of your files in the directory tree; used for
 expansion of file names starting with a tilde (@file{~}).  On MS-DOS,
 it defaults to the directory from which Emacs was started, with
@@ -529,7 +529,7 @@ where @var{username} is your user name), though for 
backwards
 compatibility @file{C:/} will be used instead if a @file{.emacs} file
 is found there.
 @item HOSTNAME
address@hidden HOSTNAME, environment variable
address@hidden address@hidden, environment variable}
 The name of the machine that Emacs is running on.
 @c complete.el is obsolete since 24.1.
 @ignore
@@ -538,24 +538,24 @@ A colon-separated list of directories.  Used by the 
@code{complete} package
 to search for files.
 @end ignore
 @item INFOPATH
address@hidden INFOPATH, environment variable
address@hidden address@hidden, environment variable}
 A colon-separated list of directories in which to search for Info files.
 @item LC_ALL
address@hidden LC_ALL, environment variable
address@hidden address@hidden, environment variable}
 @itemx LC_COLLATE
address@hidden LC_COLLATE, environment variable
address@hidden address@hidden, environment variable}
 @itemx LC_CTYPE
address@hidden LC_CTYPE, environment variable
address@hidden address@hidden, environment variable}
 @itemx LC_MESSAGES
address@hidden LC_MESSAGES, environment variable
address@hidden address@hidden, environment variable}
 @itemx LC_MONETARY
address@hidden LC_MONETARY, environment variable
address@hidden address@hidden, environment variable}
 @itemx LC_NUMERIC
address@hidden LC_NUMERIC, environment variable
address@hidden address@hidden, environment variable}
 @itemx LC_TIME
address@hidden LC_TIME, environment variable
address@hidden address@hidden, environment variable}
 @itemx LANG
address@hidden LANG, environment variable
address@hidden address@hidden, environment variable}
 The user's preferred locale.  The locale has six categories, specified
 by the environment variables @env{LC_COLLATE} for sorting,
 @env{LC_CTYPE} for character encoding, @env{LC_MESSAGES} for system
@@ -578,70 +578,70 @@ matched against entries in @code{locale-language-names},
 @code{locale-preferred-coding-systems}, to select a default language
 environment and coding system.  @xref{Language Environments}.
 @item LOGNAME
address@hidden LOGNAME, environment variable
address@hidden address@hidden, environment variable}
 The user's login name.  See also @env{USER}.
 @item MAIL
address@hidden MAIL, environment variable
address@hidden address@hidden, environment variable}
 The name of your system mail inbox.
 @ifnottex
 @item MH
address@hidden MH, environment variable
address@hidden address@hidden, environment variable}
 Name of setup file for the mh system.  @xref{Top,,MH-E,mh-e, The Emacs
 Interface to MH}.
 @end ifnottex
 @item NAME
address@hidden NAME, environment variable
address@hidden address@hidden, environment variable}
 Your real-world name.  This is used to initialize the variable
 @code{user-full-name} (@pxref{Mail Headers}).
 @item NNTPSERVER
address@hidden NNTPSERVER, environment variable
address@hidden address@hidden, environment variable}
 The name of the news server.  Used by the mh and Gnus packages.
 @item ORGANIZATION
address@hidden ORGANIZATION, environment variable
address@hidden address@hidden, environment variable}
 The name of the organization to which you belong.  Used for setting the
 @samp{Organization:} header in your posts from the Gnus package.
 @item PATH
address@hidden PATH, environment variable
address@hidden address@hidden, environment variable}
 A colon-separated list of directories containing executable files.
 This is used to initialize the variable @code{exec-path}
 (@pxref{Shell}).
 @item PWD
address@hidden PWD, environment variable
address@hidden address@hidden, environment variable}
 If set, this should be the default directory when Emacs was started.
 @item REPLYTO
address@hidden REPLYTO, environment variable
address@hidden address@hidden, environment variable}
 If set, this specifies an initial value for the variable
 @code{mail-default-reply-to} (@pxref{Mail Headers}).
 @item SAVEDIR
address@hidden SAVEDIR, environment variable
address@hidden address@hidden, environment variable}
 The name of a directory in which news articles are saved by default.
 Used by the Gnus package.
 @item SHELL
address@hidden SHELL, environment variable
address@hidden address@hidden, environment variable}
 The name of an interpreter used to parse and execute programs run from
 inside Emacs.
 @item SMTPSERVER
address@hidden SMTPSERVER, environment variable
address@hidden address@hidden, environment variable}
 The name of the outgoing mail server.  This is used to initialize the
 variable @code{smtpmail-smtp-server} (@pxref{Mail Sending}).
 @cindex background mode, on @command{xterm}
 @item TERM
address@hidden TERM, environment variable
address@hidden address@hidden, environment variable}
 The type of the terminal that Emacs is using.  This variable must be
 set unless Emacs is run in batch mode.  On MS-DOS, it defaults to
 @samp{internal}, which specifies a built-in terminal emulation that
 handles the machine's own display.
 @item TERMCAP
address@hidden TERMCAP, environment variable
address@hidden address@hidden, environment variable}
 The name of the termcap library file describing how to program the
 terminal specified by @env{TERM}.  This defaults to
 @file{/etc/termcap}.
 @item TMPDIR
address@hidden TMPDIR, environment variable
address@hidden address@hidden, environment variable}
 @itemx TMP
address@hidden TMP, environment variable
address@hidden address@hidden, environment variable}
 @itemx TEMP
address@hidden TEMP, environment variable
address@hidden address@hidden, environment variable}
 These environment variables are used to initialize the variable
 @code{temporary-file-directory}, which specifies a directory in which
 to put temporary files (@pxref{Backup}).  Emacs tries to use
@@ -649,7 +649,7 @@ to put temporary files (@pxref{Backup}).  Emacs tries to use
 @file{/tmp}, but on MS-Windows and MS-DOS it instead falls back on
 @env{TMP}, then @env{TEMP}, and finally @file{c:/temp}.
 @item TZ
address@hidden TZ, environment variable
address@hidden address@hidden, environment variable}
 This specifies the default time zone and possibly also daylight
 saving time information.  @xref{Time Zone Rules,,, elisp, The GNU
 Emacs Lisp Reference Manual}.  On MS-DOS, if @env{TZ} is not set in the
@@ -657,11 +657,11 @@ environment when Emacs starts, Emacs defines a default 
value as
 appropriate for the country code returned by address@hidden  On MS-Windows, 
Emacs
 does not use @env{TZ} at all.
 @item USER
address@hidden USER, environment variable
address@hidden address@hidden, environment variable}
 The user's login name.  See also @env{LOGNAME}.  On MS-DOS, this
 defaults to @samp{root}.
 @item VERSION_CONTROL
address@hidden VERSION_CONTROL, environment variable
address@hidden address@hidden, environment variable}
 Used to initialize the @code{version-control} variable (@pxref{Backup
 Names}).
 @end table
@@ -913,7 +913,7 @@ colored display.
 Turn on the color support unconditionally, and use color commands
 specified by the ANSI escape sequences for the 8 standard colors.
 @item @var{num}
-Use color mode for @var{num} colors.  If @var{num} is -1, turn off
+Use color mode for @var{num} colors.  If @var{num} is @minus{}1, turn off
 color support (equivalent to @samp{never}); if it is 0, use the
 default color support for this terminal (equivalent to @samp{auto});
 otherwise use an appropriate standard mode for @var{num} colors.
diff --git a/doc/emacs/custom.texi b/doc/emacs/custom.texi
index 07ddd1f..59cd57b 100644
--- a/doc/emacs/custom.texi
+++ b/doc/emacs/custom.texi
@@ -83,7 +83,7 @@ top-level @code{Emacs} group.  It looks like this, in part:
 @c @page
 @smallexample
 @group
-For help, see [Easy Customization] in the [Emacs manual].
+For help using this buffer, see [Easy Customization] in the [Emacs manual].
 
 ________________________________________ [ Search ]
 
@@ -95,10 +95,10 @@ Emacs group: Customization of the One True Editor.
       [State]: visible group members are all at standard values.
       See also [Manual].
 
-[Editing] : Basic text editing facilities.
-[Convenience] : Convenience features for faster editing.
+[Editing]      Basic text editing facilities.
+[Convenience]  Convenience features for faster editing.
 
address@hidden second-level groups}
address@hidden second-level groups...}
 @end group
 @end smallexample
 
@@ -119,7 +119,7 @@ has been edited, set, or saved.  @xref{Changing a Variable}.
 the customization buffer is an editable field for searching for
 settings (@pxref{Browsing Custom}).  There are also @dfn{buttons} and
 @dfn{links}, which you can activate by either clicking with the mouse,
-or moving point there and typing @key{RET}.  For example, the group
+or moving point there and typing @address@hidden  For example, the group
 names like @samp{[Editing]} are links; activating one of these links
 brings up the customization buffer for that group.
 
@@ -127,7 +127,7 @@ brings up the customization buffer for that group.
 @kindex S-TAB @r{(customization buffer)}
 @findex widget-forward
 @findex widget-backward
-  In the customization buffer, you can type @key{TAB}
+  In the customization buffer, you can type @address@hidden
 (@code{widget-forward}) to move forward to the next button or editable
 field.  @address@hidden (@code{widget-backward}) moves back to the
 previous button or editable field.
@@ -146,16 +146,16 @@ settings that you want to customize.
 
   If you are interested in customizing a particular setting or
 customization group, you can go straight there with the commands
address@hidden customize-option}, @kbd{M-x customize-face}, or @kbd{M-x
-customize-group}.  @xref{Specific Customization}.
address@hidden customize-option}, @kbd{M-x customize-face}, or @address@hidden
+customize-group}}.  @xref{Specific Customization}.
 
 @vindex custom-search-field
   If you don't know exactly what groups or settings you want to
 customize, you can search for them using the editable search field at
 the top of each customization buffer.  Here, you can type in a search
 term---either one or more words separated by spaces, or a regular
-expression (@pxref{Regexps}).  Then type @key{RET} in the field, or
-activate the @samp{Search} button next to it, to switch to a
+expression (@pxref{Regexps}).  Then type @address@hidden in the field,
+or activate the @samp{Search} button next to it, to switch to a
 customization buffer containing groups and settings that match those
 terms.  Note, however, that this feature only finds groups and
 settings that are loaded in the current Emacs session.
@@ -252,11 +252,11 @@ names, and Emacs command names, you can perform 
completion with
 @address@hidden or @address@hidden @key{TAB}}.  This behaves much
 like minibuffer completion (@pxref{Completion}).
 
-  Typing @key{RET} on an editable value field moves point forward to
-the next field or button, like @key{TAB}.  You can thus type @key{RET}
-when you are finished editing a field, to move on to the next button
-or field.  To insert a newline within an editable field, use @kbd{C-o}
-or @kbd{C-q C-j}.
+  Typing @address@hidden on an editable value field moves point
+forward to the next field or button, like @address@hidden  You can
+thus type @address@hidden when you are finished editing a field, to
+move on to the next button or field.  To insert a newline within an
+editable field, use @kbd{C-o} or @kbd{C-q C-j}.
 
   For some variables, there is only a fixed set of legitimate values,
 and you are not allowed to edit the value directly.  Instead, a
@@ -306,9 +306,10 @@ operation.  There are actually four reset operations:
 If you have modified but not yet set the variable, this restores the
 text in the customization buffer to match the actual value.
 
address@hidden Reset to Saved
-This restores the value of the variable to the last saved value,
-and updates the text accordingly.
address@hidden Revert This Session's Customizations
+This restores the value of the variable to the last saved value, if
+there was one.  Otherwise it restores the standard value.  It updates
+the text accordingly.
 
 @item Erase Customization
 This sets the variable to its standard value.  Any saved value that
@@ -329,15 +330,17 @@ customization.  Use the @samp{Add Comment} item from the
   Near the top of the customization buffer are two lines of buttons:
 
 @smallexample
- [Set for Current Session] [Save for Future Sessions]
- [Undo Edits] [Reset to Saved] [Erase Customization]   [Exit]
+ Operate on all settings in this buffer:
+ [Revert...] [Apply] [Apply and Save]
 @end smallexample
 
 @noindent
-Each of the first five buttons performs the stated operation---set,
-save, reset, etc.---on all the settings in the buffer that could
-meaningfully be affected.  They do not operate on settings that are
-hidden, nor on subgroups that are hidden or not visible in the buffer.
+The @samp{[Revert...]} button drops a menu with the first 3 reset
+operations described above.  The @samp{[Apply]} button applies the
+settings for the current session.  The @samp{[Apply and Save]} button
+applies the settings and saves them for future sessions; this button
+does not appear if Emacs was started with the @option{-q} or
address@hidden option (@pxref{Initial Options}).
 
 @kindex C-c C-c @r{(customization buffer)}
 @kindex C-x C-c @r{(customization buffer)}
@@ -360,8 +363,8 @@ kill the customization buffer instead, change the variable
   In the customization buffer, you can @dfn{save} a customization
 setting by choosing the @samp{Save for Future Sessions} choice from
 its @samp{[State]} button.  The @kbd{C-x C-s} (@code{Custom-save})
-command, or the @samp{[Save for Future Sessions]} button at the top of
-the customization buffer, saves all applicable settings in the buffer.
+command, or the @samp{[Apply and Save]} button at the top of the
+customization buffer, saves all applicable settings in the buffer.
 
   Saving works by writing code to a file, usually your initialization
 file (@pxref{Init File}).  Future Emacs sessions automatically read
@@ -427,7 +430,8 @@ both variables and faces.
 
   For example, in programming language modes, source code comments are
 shown with @code{font-lock-comment-face} (@pxref{Font Lock}).  In a
-customization buffer, that face appears like this:
+customization buffer, that face appears like this, after you click on
+the @samp{[Show All Attributes]} link:
 
 @smallexample
 [Hide] Font Lock Comment Face:[sample]
@@ -469,7 +473,7 @@ Any unspecified attribute is taken from the special face 
named
 have an explicitly-assigned face; furthermore, its background color
 attribute serves as the background color of the frame.
 
-  The @samp{Hide Unused Attributes} button, at the end of the
+  The @samp{[Hide Unused Attributes]} button, at the end of the
 attribute list, hides the unspecified attributes of the face.  When
 attributes are being hidden, the button changes to @samp{[Show All
 Attributes]}, which reveals the entire attribute list.  The
@@ -482,8 +486,8 @@ usual ways.
   Foreground and background colors can be specified using either color
 names or RGB triplets (@pxref{Colors}).  You can also use the
 @samp{[Choose]} button to switch to a list of color names; select a
-color with @key{RET} in that buffer to put the color name in the value
-field.
+color with @address@hidden in that buffer to put the color name in the
+value field.
 
   Setting, saving and resetting a face work like the same operations for
 variables (@pxref{Changing a Variable}).
@@ -501,19 +505,29 @@ menu you get from invoking @samp{[State]}.
 @item M-x customize-option @key{RET} @var{option} @key{RET}
 @itemx M-x customize-variable @key{RET} @var{option} @key{RET}
 Set up a customization buffer for just one user option, @var{option}.
+
 @item M-x customize-face @key{RET} @var{face} @key{RET}
 Set up a customization buffer for just one face, @var{face}.
+
 @item M-x customize-group @key{RET} @var{group} @key{RET}
 Set up a customization buffer for just one group, @var{group}.
+
 @item M-x customize-apropos @key{RET} @var{regexp} @key{RET}
 Set up a customization buffer for all the settings and groups that
 match @var{regexp}.
+
 @item M-x customize-changed @key{RET} @var{version} @key{RET}
 Set up a customization buffer with all the settings and groups
 whose meaning has changed since Emacs version @var{version}.
+
address@hidden M-x customize-changed-options @key{RET} @var{version} @key{RET}
+Set up a customization buffer with all the options whose meaning or
+default values have changed since Emacs version @var{version}.
+
 @item M-x customize-saved
 Set up a customization buffer containing all settings that you
 have saved with customization buffers.
+
 @item M-x customize-unsaved
 Set up a customization buffer containing all settings that you have
 set but not saved.
@@ -759,6 +773,7 @@ expects (@pxref{Examining}).
 @item C-h v @var{var} @key{RET}
 Display the value and documentation of variable @var{var}
 (@code{describe-variable}).
+
 @item M-x set-variable @key{RET} @var{var} @key{RET} @var{value} @key{RET}
 Change the value of variable @var{var} to @var{value}.
 @end table
@@ -951,8 +966,10 @@ be run as well.
 @table @kbd
 @item M-x make-local-variable @key{RET} @var{var} @key{RET}
 Make variable @var{var} have a local value in the current buffer.
+
 @item M-x kill-local-variable @key{RET} @var{var} @key{RET}
 Make variable @var{var} use its global value in the current buffer.
+
 @item M-x make-variable-buffer-local @key{RET} @var{var} @key{RET}
 Mark variable @var{var} so that setting it will make it local to the
 buffer that is current at that time.
@@ -1200,7 +1217,7 @@ keyword with a Lisp expression that runs the mode command
 list enables Eldoc mode (@pxref{Lisp Doc}) by calling
 @code{eldoc-mode} with no argument (calling it with an argument of 1
 would do the same), and disables Font Lock mode (@pxref{Font Lock}) by
-calling @code{font-lock-mode} with an argument of -1.
+calling @code{font-lock-mode} with an argument of @minus{}1.
 
 @example
 ;; Local Variables:
@@ -1400,6 +1417,14 @@ 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}).
 
+  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,
+so key bindings using those keys are safer in this regard.  The
+reserved key sequences are those consisting of @kbd{C-c} followed by a
+letter (either upper or lower case), and function keys @key{F5}
+through @key{F9} without modifiers (@pxref{Modifier Keys}).
+
 @menu
 * Keymaps::             Generalities.  The global keymap.
 * Prefix Keymaps::      Keymaps for prefix keys.
@@ -2583,5 +2608,5 @@ you can customize variables that affect the 
initialization process,
 such as @code{package-enable-at-startup} and @code{package-load-list}.
 @xref{Package Installation}.
 
-  For more information on the early init file, @pxref{Early Init
-File,,, elisp, The Emacs Lisp Reference Manual}.
+  For more information on the early init file, @pxref{Init File,,,
+elisp, The Emacs Lisp Reference Manual}.
diff --git a/doc/emacs/display.texi b/doc/emacs/display.texi
index 205ca54..64a1d4b 100644
--- a/doc/emacs/display.texi
+++ b/doc/emacs/display.texi
@@ -1848,8 +1848,11 @@ it may improve the legibility of underlined text for 
certain fonts.
 area.)  The variable @code{x-underline-at-descent-line} determines how
 to draw underlined text.  The default is @code{nil}, which means to
 draw it at the baseline level of the font; if you change it to
address@hidden, Emacs draws the underline at the same height as the font's
-descent line.
address@hidden, Emacs draws the underline at the same height as the font's
+descent line.  (If non-default line spacing was specified for the
+underlined text, see @ref{Line Height,,, elisp, The Emacs Lisp
+Reference Manual}, Emacs draws the underline below the additional
+spacing.)
 
 @vindex overline-margin
   The variable @code{overline-margin} specifies the vertical position
diff --git a/doc/emacs/help.texi b/doc/emacs/help.texi
index 6c093f1..e005fe3 100644
--- a/doc/emacs/help.texi
+++ b/doc/emacs/help.texi
@@ -595,8 +595,8 @@ typing @kbd{C-h}, @kbd{?}, or @key{F1}
 few prefix keys for which not all of these keys work---those that
 provide their own bindings for that key.  One of these prefix keys
 is @key{ESC}, because @address@hidden C-h} is actually @kbd{C-M-h},
-which marks a defun.  However, @address@hidden @key{F1}} and
address@hidden@key{ESC} ?} work fine.)
+which marks a defun.  However, @address@hidden@key{ESC} @key{F1}}} and
address@hidden@address@hidden ?}} work fine.)
 
 @node Help Files
 @section Help Files
diff --git a/doc/emacs/m-x.texi b/doc/emacs/m-x.texi
index a9b80d1..adf46ff 100644
--- a/doc/emacs/m-x.texi
+++ b/doc/emacs/m-x.texi
@@ -82,8 +82,8 @@ setting of @code{suggest-key-bindings} affects these hints as 
well.
 
   In this manual, when we speak of running a command by name, we often
 omit the @key{RET} that terminates the name.  Thus we might say
address@hidden auto-fill-mode} rather than @kbd{M-x auto-fill-mode
address@hidden  We mention the @key{RET} only for emphasis, such as when
address@hidden auto-fill-mode} rather than @address@hidden auto-fill-mode
address@hidden  We mention the @key{RET} only for emphasis, such as when
 the command is followed by arguments.
 
 @findex execute-extended-command
diff --git a/doc/emacs/mini.texi b/doc/emacs/mini.texi
index 332602d..579697f 100644
--- a/doc/emacs/mini.texi
+++ b/doc/emacs/mini.texi
@@ -117,7 +117,7 @@ second slash in the pair.  In the example above,
 @file{/u2/emacs/src/} is ignored, so the argument you supplied is
 @file{/etc/termcap}.  The ignored part of the file name is dimmed if
 the terminal allows it.  (To disable this dimming, turn off File Name
-Shadow mode with the command @kbd{M-x file-name-shadow-mode}.)
+Shadow mode with the command @address@hidden file-name-shadow-mode}}.)
 
   When completing remote file names (@pxref{Remote Files}), a double
 slash behaves slightly differently: it causes Emacs to ignore only the
@@ -464,12 +464,14 @@ Lisp symbol).  The default completion styles are (in 
order):
 
 @table @code
 @item basic
address@hidden @code{basic}, completion style
 A matching completion alternative must have the same beginning as the
 text in the minibuffer before point.  Furthermore, if there is any
 text in the minibuffer after point, the rest of the completion
 alternative must contain that text as a substring.
 
address@hidden partial completion
address@hidden partial completion
address@hidden @code{partial-completion}, completion style
 @item partial-completion
 This aggressive completion style divides the minibuffer text into
 words separated by hyphens or spaces, and completes each word
@@ -481,6 +483,7 @@ Furthermore, a @samp{*} in the minibuffer text is treated 
as a
 corresponding position in the completion alternative.
 
 @item emacs22
address@hidden @code{emacs22}, completion style
 This completion style is similar to @code{basic}, except that it
 ignores the text in the minibuffer after point.  It is so-named
 because it corresponds to the completion behavior in Emacs 22.
@@ -493,6 +496,7 @@ can add them to @code{completion-styles} if you wish
 
 @table @code
 @item substring
address@hidden @code{substring}, completion style
 A matching completion alternative must contain the text in the
 minibuffer before point, and the text in the minibuffer after point,
 as substrings (in that same order).
@@ -503,6 +507,7 @@ between @samp{foo} and @samp{bar}, that matches
 @var{c} can be any string including the empty string.
 
 @item initials
address@hidden @code{initials}, completion style
 This very aggressive completion style attempts to complete acronyms
 and initialisms.  For example, when completing command names, it
 matches @samp{lch} to @samp{list-command-history}.
@@ -747,7 +752,7 @@ it by typing @key{RET}.
 @vindex isearch-resume-in-command-history
   Incremental search does not, strictly speaking, use the minibuffer.
 Therefore, although it behaves like a complex command, it normally
-does not appear in the history list for @kbd{C-x @key{ESC} @key{ESC}}.
+does not appear in the history list for @address@hidden @key{ESC} @key{ESC}}}.
 You can make incremental search commands appear in the history by
 setting @code{isearch-resume-in-command-history} to a address@hidden
 value.  @xref{Incremental Search}.
diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi
index 9610ed4..d8f202f 100644
--- a/doc/emacs/misc.texi
+++ b/doc/emacs/misc.texi
@@ -1359,7 +1359,7 @@ directory stack if they are not already on it
 underlying shell, of course.
 
 @vindex comint-terminfo-terminal
address@hidden TERM, environment variable, in sub-shell
address@hidden address@hidden, environment variable, in sub-shell}
 Comint mode sets the @env{TERM} environment variable to a safe default
 value, but this value disables some useful features.  For example,
 color is disabled in applications that use @env{TERM} to determine if
diff --git a/doc/emacs/package.texi b/doc/emacs/package.texi
index 6c74937..be74934 100644
--- a/doc/emacs/package.texi
+++ b/doc/emacs/package.texi
@@ -252,16 +252,14 @@ consult the package's help buffer.
   After a package is installed, it is automatically made available by
 Emacs in all subsequent sessions.  This happens at startup, before
 processing the init file but after processing the early init file
-(@pxref{Early Init File,,, elisp, The Emacs Lisp Reference Manual}).
-As an exception, Emacs does not make packages available at startup if
-invoked with the @samp{-q} or @samp{--no-init-file} options
-(@pxref{Initial Options}).
+(@pxref{Early Init File}).  As an exception, Emacs does not make
+packages available at startup if invoked with the @samp{-q} or
address@hidden options (@pxref{Initial Options}).
 
 @vindex package-enable-at-startup
   To keep Emacs from automatically making packages available at
 startup, change the variable @code{package-enable-at-startup} to
address@hidden  You must do this in the early init file (@pxref{Early
-Init File,,, elisp, The Emacs Lisp Reference Manual}), as the variable
address@hidden  You must do this in the early init file, as the variable
 is read before loading the regular init file.  Currently this variable
 cannot be set via Customize.
 
diff --git a/doc/emacs/search.texi b/doc/emacs/search.texi
index 319f64f..9d7ff59 100644
--- a/doc/emacs/search.texi
+++ b/doc/emacs/search.texi
@@ -229,6 +229,13 @@ character or word at point to the search string.  This is 
an easy way
 to search for another occurrence of the text at point.  (The decision
 of whether to copy a character or a word is heuristic.)
 
address@hidden C-M-w @r{(Incremental search)}
address@hidden isearch-yank-symbol-or-char
+  @kbd{C-M-w} (@code{isearch-yank-symbol-or-char}) appends the next
+character or symbol at point to the search string.  This is an easy way
+to search for another occurrence of the symbol at point.  (The decision
+of whether to copy a character or a symbol is heuristic.)
+
 @kindex M-s C-e @r{(Incremental search)}
 @findex isearch-yank-line
   Similarly, @kbd{M-s C-e} (@code{isearch-yank-line}) appends the rest
@@ -250,11 +257,11 @@ appended text with an earlier kill, similar to the usual 
@kbd{M-y}
 in the echo area appends the current X selection (@pxref{Primary
 Selection}) to the search string (@code{isearch-yank-x-selection}).
 
address@hidden C-M-w @r{(Incremental search)}
address@hidden C-M-d @r{(Incremental search)}
 @kindex C-M-y @r{(Incremental search)}
 @findex isearch-del-char
 @findex isearch-yank-char
-  @kbd{C-M-w} (@code{isearch-del-char}) deletes the last character
+  @kbd{C-M-d} (@code{isearch-del-char}) deletes the last character
 from the search string, and @kbd{C-M-y} (@code{isearch-yank-char})
 appends the character after point to the search string.  An
 alternative method to add the character after point is to enter the
diff --git a/doc/emacs/sending.texi b/doc/emacs/sending.texi
index 299f789..b7bdd69 100644
--- a/doc/emacs/sending.texi
+++ b/doc/emacs/sending.texi
@@ -70,7 +70,7 @@ or using some other method.  @xref{Mail Sending}, for details.
 
 @example
 To: subotai@@example.org
-CC: mongol.soldier@@example.net, rms@@gnu.org
+Cc: mongol.soldier@@example.net, rms@@gnu.org
 Subject: Re: What is best in life?
 From: conan@@example.org
 --text follows this line--
@@ -152,23 +152,23 @@ more than one address, use commas to separate them.
 @item Subject
 The subject of the message.
 
address@hidden CC
address@hidden Cc
 Additional mailing address(es) to send the message to.  This is like
 @samp{To}, except that these readers should not regard the message as
 directed at them.
 
address@hidden BCC
address@hidden Bcc
 Additional mailing address(es) to send the message to, which should
-not appear in the header of the message actually sent.  @samp{BCC} stands
+not appear in the header of the message actually sent.  @samp{Bcc} stands
 for @dfn{blind carbon copies}.
 
address@hidden FCC
address@hidden Fcc
 The name of a file, to which a copy of the sent message should be
 appended.  Emacs writes the message in mbox format, unless the file is
 in Babyl format (used by Rmail before Emacs 23), in which case Emacs
 writes in Babyl format.  If an Rmail buffer is visiting the file,
 Emacs updates it accordingly.  To specify more than one file, use
-several @samp{FCC} fields, with one file name in each field.
+several @samp{Fcc} fields, with one file name in each field.
 
 @item Reply-to
 An address to which replies should be sent, instead of @samp{From}.
@@ -180,7 +180,7 @@ This field takes precedence over @samp{Reply-to}.  It is 
used because
 some mailing lists set the @samp{Reply-to} field for their own
 purposes (a somewhat controversial practice).
 
address@hidden Mail-followup-to
address@hidden Mail-Followup-To
 One of more address(es) to use as default recipient(s) for follow-up
 messages.  This is typically used when you reply to a message from a
 mailing list that you are subscribed to, and want replies to go to the
@@ -198,7 +198,7 @@ this is normally filled in automatically for you.
 @end table
 
 @noindent
-The @samp{To}, @samp{CC}, and @samp{BCC} fields can appear any number
+The @samp{To}, @samp{Cc}, and @samp{Bcc} fields can appear any number
 of times, and each such header field can contain multiple addresses,
 separated by commas.  This way, you can specify any number of places
 to send the message.  These fields can also have continuation lines:
@@ -221,11 +221,11 @@ To: foo@@example.net, this@@example.net,
 buffer by setting the variable @code{mail-default-headers} to a
 string.  Then @kbd{C-x m} inserts this string into the message
 headers.  For example, here is how to add a @samp{Reply-to} and
address@hidden header to each message:
address@hidden header to each message:
 
 @smallexample
 (setq mail-default-headers
-      "Reply-to: foo@@example.com\nFCC: ~/Mail/sent")
+      "Reply-to: foo@@example.com\nFcc: ~/Mail/sent")
 @end smallexample
 
 @noindent
@@ -245,7 +245,7 @@ aliases are defined in the file @file{~/.mailrc}.  You can 
specify a
 different file name to use, by setting the variable
 @code{mail-personal-alias-file}.
 
-  To define an alias in @file{.mailrc}, write a line like this:
+  To define an alias in @file{~/.mailrc}, write a line like this:
 
 @example
 alias @var{nick} @var{fulladdresses}
@@ -276,7 +276,7 @@ of the address, such as the person's full name.  Emacs puts 
them in if
 they are needed.  For instance, it inserts the above address as
 @samp{"John Q. Smith" <none@@example.com>}.
 
-  Emacs also recognizes include commands in @file{.mailrc}.  They
+  Emacs also recognizes include commands in @file{~/.mailrc}.  They
 look like this:
 
 @example
@@ -284,7 +284,7 @@ source @var{filename}
 @end example
 
 @noindent
-The @file{.mailrc} file is not unique to Emacs; many other
+The @file{~/.mailrc} file is not unique to Emacs; many other
 mail-reading programs use it for mail aliases, and it can contain
 various other commands.  However, Emacs ignores everything except
 alias definitions and include commands.
@@ -293,7 +293,7 @@ alias definitions and include commands.
   Mail aliases expand as abbrevs---that is to say, as soon as you type
 a word-separator character after an alias (@pxref{Abbrevs}).  This
 expansion takes place only within the @samp{To}, @samp{From},
address@hidden, @samp{BCC}, and @samp{Reply-to} header fields (plus their
address@hidden, @samp{Bcc}, and @samp{Reply-to} header fields (plus their
 @samp{Resent-} variants); it does not take place in other header
 fields, such as @samp{Subject}.
 
@@ -418,16 +418,16 @@ Move to the @samp{To} header (@code{message-goto-to}).
 @item C-c C-f C-s
 Move to the @samp{Subject} header (@code{message-goto-subject}).
 @item C-c C-f C-c
-Move to the @samp{CC} header (@code{message-goto-cc}).
+Move to the @samp{Cc} header (@code{message-goto-cc}).
 @item C-c C-f C-b
-Move to the @samp{BCC} header (@code{message-goto-bcc}).
+Move to the @samp{Bcc} header (@code{message-goto-bcc}).
 @item C-c C-f C-r
-Move to the @samp{Reply-To} header (@code{message-goto-reply-to}).
+Move to the @samp{Reply-to} header (@code{message-goto-reply-to}).
 @item C-c C-f C-f
 Move to the @samp{Mail-Followup-To} header field
 (@code{message-goto-followup-to}).
 @item C-c C-f C-w
-Add a new @samp{FCC} header field, with file-name completion
+Add a new @samp{Fcc} header field, with file-name completion
 (@code{message-goto-fcc}).
 @item C-c C-b
 Move to the start of the message body (@code{message-goto-body}).
@@ -463,7 +463,7 @@ the body.
 @findex message-tab
 @kindex TAB @r{(Message mode)}
   While editing a header field that contains addresses, such as
address@hidden:}, @samp{CC:} and @samp{BCC:}, you can complete an address by
address@hidden:}, @samp{Cc:} and @samp{Bcc:}, you can complete an address by
 typing @key{TAB} (@code{message-tab}).  This attempts to insert the
 full name corresponding to the address based on a couple of methods,
 including EUDC, a library that recognizes a number of directory server
@@ -534,9 +534,9 @@ and for the attachment's @dfn{content type}, 
@dfn{description}, and
 automatically; just type @key{RET} to accept the default.  The
 description is a single line of text that the recipient will see next
 to the attachment; you may also choose to leave this empty.  The
-disposition is either @samp{inline} (the default), which means the
-recipient will see a link to the attachment within the message body,
-or @samp{attachment}, which means the link will be separate from the
+disposition is either @samp{inline}, which means the recipient will
+see a link to the attachment within the message body, or
address@hidden, which means the link will be separate from the
 body.
 
 @findex mail-add-attachment
diff --git a/doc/emacs/trouble.texi b/doc/emacs/trouble.texi
index 330497c..9712cc7 100644
--- a/doc/emacs/trouble.texi
+++ b/doc/emacs/trouble.texi
@@ -779,7 +779,7 @@ the dribble file.
 @item
 @findex open-termscript
 @cindex termscript file
address@hidden TERM, environment variable, and display bugs
address@hidden address@hidden, environment variable, and display bugs}
 For possible display bugs, the terminal type (the value of environment
 variable @env{TERM}), the complete termcap entry for the terminal from
 @file{/etc/termcap} (since that file is not identical on all machines),
diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi
index 9f3b1b6..7dbd680 100644
--- a/doc/emacs/windows.texi
+++ b/doc/emacs/windows.texi
@@ -379,7 +379,7 @@ Several of these commands are bound in the @kbd{C-x 5} 
prefix key.
 
 @node Window Choice
 @subsection How @code{display-buffer} works
address@hidden display-buffer, detailed description
address@hidden address@hidden, detailed description}
 
 The @code{display-buffer} command (as well as commands that call it
 internally) chooses a window to display by following the steps given
diff --git a/doc/emacs/xresources.texi b/doc/emacs/xresources.texi
index ee59551..096e747 100644
--- a/doc/emacs/xresources.texi
+++ b/doc/emacs/xresources.texi
@@ -216,6 +216,14 @@ Width of the internal frame border, in pixels.
 @cindex line spacing
 Additional space between lines, in pixels.
 
address@hidden
address@hidden @code{menuBackground} (class @code{Background})
address@hidden background for menus
+The background color of the menus in non-toolkit versions of Emacs.
+(For toolkit versions, see @ref{Lucid Resources}, also see @ref{Motif
+Resources}, and see @ref{GTK resources}.)
address@hidden ifnottex
+
 @item @code{menuBar} (class @code{MenuBar})
 @cindex menu bar (X resource)
 If the value of this resource is @samp{off} or @samp{false} or
@@ -229,6 +237,14 @@ will use a separate minibuffer frame instead.
 @item @code{paneFont} (class @code{Font})
 @cindex font for menus
 Font name for menu pane titles, in non-toolkit versions of Emacs.
+(For toolkit versions, see @ref{Lucid Resources}, also see @ref{Motif
+Resources}, and see @ref{GTK resources}.)
+
address@hidden @code{paneForeground} (class @code{Foreground})
address@hidden foreground for menus
+Foreground color for menu pane titles, in non-toolkit versions of
+Emacs.  (For toolkit versions, see @ref{Lucid Resources}, also see
address@hidden Resources}, and see @ref{GTK resources}.)
 @end ifnottex
 
 @item @code{pointerColor} (class @code{Foreground})
@@ -266,7 +282,12 @@ compiled with GTK+ support.
 @item @code{selectionFont} (class @code{SelectionFont})
 Font name for pop-up menu items, in non-toolkit versions of Emacs.  (For
 toolkit versions, see @ref{Lucid Resources}, also see @ref{Motif
-Resources}.)
+Resources}, and see @ref{GTK resources}.)
+
address@hidden @code{selectionForeground} (class @code{SelectionForeground})
+Foreground color for pop-up menu items, in non-toolkit versions of
+Emacs.  (For toolkit versions, see @ref{Lucid Resources}, also see
address@hidden Resources}, and see @ref{GTK resources}.)
 
 @item @code{selectionTimeout} (class @code{SelectionTimeout})
 Number of milliseconds to wait for a selection reply.
diff --git a/doc/lispintro/emacs-lisp-intro.texi 
b/doc/lispintro/emacs-lisp-intro.texi
index 137ccfe..16216bb 100644
--- a/doc/lispintro/emacs-lisp-intro.texi
+++ b/doc/lispintro/emacs-lisp-intro.texi
@@ -1716,7 +1716,7 @@ function definition, and vice versa.
 @unnumberedsubsec @code{fill-column}, an Example Variable
 @end ifnottex
 
address@hidden fill-column, @r{an example variable}
address@hidden address@hidden, an example variable}
 @cindex Example variable, @code{fill-column}
 @cindex Variable, example of, @code{fill-column}
 The variable @code{fill-column} illustrates a symbol with a value
@@ -3839,7 +3839,7 @@ message @samp{5 is greater than 4!} will be printed.
 @noindent
 (The function @code{>} tests whether its first argument is greater than
 its second argument and returns true if it is.)
address@hidden > (greater than)
address@hidden > @r{(greater than)}
 
 Of course, in actual use, the test in an @code{if} expression will not
 be fixed for all time as it is by the expression @code{(> 5 4)}.
@@ -4552,7 +4552,7 @@ buffers.  Later, we will study other functions.
 @node Finding More
 @section Finding More Information
 
address@hidden describe-function, @r{introduced}
address@hidden address@hidden, introduced}
 @cindex Find function documentation
 In this walk-through, I will describe each new function as we come to
 it, sometimes in detail and sometimes briefly.  If you are interested,
@@ -5564,7 +5564,7 @@ outline of the function:
 
 @node insert-buffer interactive
 @subsection The Interactive Expression in @code{insert-buffer}
address@hidden interactive, @r{example use of}
address@hidden address@hidden, example use of}
 
 In @code{insert-buffer}, the argument to the @code{interactive}
 declaration has two parts, an asterisk, @samp{*}, and @samp{bInsert
@@ -5881,8 +5881,8 @@ find and use again and again.
 
 @node New insert-buffer
 @subsection New Body for @code{insert-buffer}
address@hidden insert-buffer, new version body
address@hidden new version body for insert-buffer
address@hidden address@hidden, new version body}
address@hidden new version body for insert-buffer
 
 The body in the GNU Emacs 22 version is more confusing than the original.
 
@@ -6734,8 +6734,8 @@ Or can you write the function without them?
 
 @node car cdr & cons
 @chapter @code{car}, @code{cdr}, @code{cons}: Fundamental Functions
address@hidden car, @r{introduced}
address@hidden cdr, @r{introduced}
address@hidden address@hidden, introduced}
address@hidden address@hidden, introduced}
 
 In Lisp, @code{car}, @code{cdr}, and @code{cons} are fundamental
 functions.  The @code{cons} function is used to construct lists, and
@@ -6900,7 +6900,7 @@ Emacs Lisp Reference Manual}.)
 
 @node cons
 @section @code{cons}
address@hidden cons, @r{introduced}
address@hidden address@hidden, introduced}
 
 The @code{cons} function constructs lists; it is the inverse of
 @code{car} and @code{cdr}.  For example, @code{cons} can be used to make
@@ -8715,7 +8715,7 @@ example-list
 @noindent
 Now, we can add a new element on to this list by evaluating the
 following expression:
address@hidden push, @r{example}
address@hidden address@hidden, example}
 
 @smallexample
 (push "a third clause" example-list)
@@ -8762,13 +8762,13 @@ element of the kill ring---this means that since the 
@sc{cdr} of the
 next to last element is the last element of the kill ring, it will set
 the last element of the kill ring.
 
address@hidden nthcdr, @r{example}
address@hidden address@hidden, example}
 The @code{nthcdr} function works by repeatedly taking the @sc{cdr} of a
 list---it takes the @sc{cdr} of the @sc{cdr} of the @sc{cdr}
 @dots{}  It does this @var{N} times and returns the results.
 (@xref{nthcdr, , @code{nthcdr}}.)
 
address@hidden setcdr, @r{example}
address@hidden address@hidden, example}
 Thus, if we had a four element list that was supposed to be three
 elements long, we could set the @sc{cdr} of the next to last element
 to @code{nil}, and thereby shorten the list.  (If you set the last
@@ -17177,8 +17177,8 @@ file, as I intended, I accidentally set the width for 
filled text,
 almost always to a width I did not want.  Since I hardly ever reset my
 default width, I simply unbound the key.
 
address@hidden list-buffers, @r{rebound}
address@hidden buffer-menu, @r{bound to key}
address@hidden address@hidden, rebound}
address@hidden address@hidden, bound to key}
 @need 1250
 The following rebinds an existing key:
 
diff --git a/doc/lispref/buffers.texi b/doc/lispref/buffers.texi
index 3750fa6..a72e1eb 100644
--- a/doc/lispref/buffers.texi
+++ b/doc/lispref/buffers.texi
@@ -647,7 +647,7 @@ visiting a file or if the time has been explicitly cleared 
by
 too.  For instance, in a Dired buffer listing a directory, it returns
 the last modification time of that directory, as recorded by Dired.
 
-If the buffer is not visiting a file, this function returns -1.
+If the buffer is not visiting a file, this function returns @minus{}1.
 @end defun
 
 @defun set-visited-file-modtime &optional time
@@ -656,7 +656,8 @@ of the visited file, to the value specified by @var{time} 
if @var{time}
 is not @code{nil}, and otherwise to the last modification time of the
 visited file.
 
-If @var{time} is neither @code{nil} nor zero, it should have the form
+If @var{time} is neither @code{nil} nor an integer flag returned
+by @code{visited-file-modtime}, it should have the form
 @code{(@var{high} @var{low} @var{microsec} @var{picosec})},
 the format used by @code{current-time} (@pxref{Time of Day}).
 
diff --git a/doc/lispref/edebug.texi b/doc/lispref/edebug.texi
index 031fe65..b9cc1d5 100644
--- a/doc/lispref/edebug.texi
+++ b/doc/lispref/edebug.texi
@@ -158,7 +158,7 @@ display a list of all Edebug commands.
 into it, to invoke Edebug at the proper places.
 
 @kindex C-M-x
address@hidden eval-defun (Edebug)
address@hidden eval-defun @r{(Edebug)}
   When you invoke command @kbd{C-M-x} (@code{eval-defun}) with a
 prefix argument on a function definition, it instruments the
 definition before evaluating it.  (This does not modify the source
diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi
index 70d6ec9..9fbdb62 100644
--- a/doc/lispref/files.texi
+++ b/doc/lispref/files.texi
@@ -1894,8 +1894,7 @@ all.
 This function sets the access and modification times of @var{filename}
 to @var{time}.  The return value is @code{t} if the times are successfully
 set, otherwise it is @code{nil}.  @var{time} defaults to the current
-time and must be in the format returned by @code{current-time}
-(@pxref{Time of Day}).
+time and must be a time value (@pxref{Time of Day}).
 @end defun
 
 @defun set-file-extended-attributes filename attribute-alist
diff --git a/doc/lispref/frames.texi b/doc/lispref/frames.texi
index 43fdd8f..2f9bb39 100644
--- a/doc/lispref/frames.texi
+++ b/doc/lispref/frames.texi
@@ -1391,20 +1391,20 @@ text terminals.
 frame.  @code{title} and @code{name} are meaningful on all terminals.
 
 @table @code
address@hidden display, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item display
 The display on which to open this frame.  It should be a string of the
 form @address@hidden:@address@hidden, just like the
 @env{DISPLAY} environment variable.  @xref{Multiple Terminals}, for
 more details about display names.
 
address@hidden display-type, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item display-type
 This parameter describes the range of possible colors that can be used
 in this frame.  Its value is @code{color}, @code{grayscale} or
 @code{mono}.
 
address@hidden title, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item title
 If a frame has a address@hidden title, it appears in the window
 system's title bar at the top of the frame, and also in the mode line
@@ -1413,7 +1413,7 @@ of windows in that frame if 
@code{mode-line-frame-identification} uses
 Emacs is not using a window system, and can only display one frame at
 a time.  @xref{Frame Titles}.
 
address@hidden name, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item name
 The name of the frame.  The frame name serves as a default for the frame
 title, if the @code{title} parameter is unspecified or @code{nil}.  If
@@ -1424,7 +1424,7 @@ If you specify the frame name explicitly when you create 
the frame, the
 name is also used (instead of the name of the Emacs executable) when
 looking up X resources for the frame.
 
address@hidden explicit-name, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item explicit-name
 If the frame name was specified explicitly when the frame was created,
 this parameter will be that name.  If the frame wasn't explicitly
@@ -1446,7 +1446,7 @@ frame's parent frame.  (Note that none of these 
parameters is meaningful
 on TTY frames.)
 
 @table @code
address@hidden left, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item left
 The position, in pixels, of the left outer edge of the frame with
 respect to the left edge of the frame's display or parent frame.  It can
@@ -1521,13 +1521,13 @@ of the display, workarea or parent frame edge.  They 
are also returned
 as such by functions like @code{frame-parameters} and restored as such
 by the desktop saving routines.
 
address@hidden top, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item top
 The screen position of the top (or bottom) edge, in pixels, with respect
 to the top (or bottom) edge of the display or parent frame.  It works
 just like @code{left}, except vertically instead of horizontally.
 
address@hidden icon-left, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item icon-left
 The screen position of the left edge of the frame's icon, in pixels,
 counting from the left edge of the screen.  This takes effect when the
@@ -1535,13 +1535,13 @@ frame is iconified, if the window manager supports this 
feature.  If
 you specify a value for this parameter, then you must also specify a
 value for @code{icon-top} and vice versa.
 
address@hidden icon-top, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item icon-top
 The screen position of the top edge of the frame's icon, in pixels,
 counting from the top edge of the screen.  This takes effect when the
 frame is iconified, if the window manager supports this feature.
 
address@hidden user-position, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item user-position
 When you create a frame and specify its screen position with the
 @code{left} and @code{top} parameters, use this parameter to say whether
@@ -1562,7 +1562,7 @@ value for this parameter if the values of the @code{left} 
and @code{top}
 parameters represent the user's stated preference; otherwise, use
 @code{nil}.
 
address@hidden z-group, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item z-group
 This parameter specifies a relative position of the frame's
 window-system window in the stacking (Z-) order of the frame's display.
@@ -1589,7 +1589,7 @@ graphical displays, the @code{default} face determines 
the actual pixel
 sizes of these character units (@pxref{Face Attributes}).
 
 @table @code
address@hidden width, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item width
 This parameter specifies the width of the frame.  It can be specified as
 in the following ways:
@@ -1635,19 +1635,19 @@ width of the frame's text area in characters as an 
integer rounded, if
 necessary, to a multiple of the frame's default character width.  That
 value is also used by the desktop saving routines.
 
address@hidden height, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item height
 This parameter specifies the height of the frame.  It works just like
 @code{width}, except vertically instead of horizontally.
 
address@hidden user-size, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item user-size
 This does for the size parameters @code{height} and @code{width} what
 the @code{user-position} parameter (@pxref{Position Parameters,
 user-position}) does for the position parameters @code{top} and
 @code{left}.
 
address@hidden min-width, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item min-width
 This parameter specifies the minimum native width (@pxref{Frame
 Geometry}) of the frame, in characters.  Normally, the functions that
@@ -1658,7 +1658,7 @@ address@hidden allows to make a frame narrower than that 
with the
 consequence that any components that do not fit will be clipped by the
 window manager.
 
address@hidden min-height, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item min-height
 This parameter specifies the minimum native height (@pxref{Frame
 Geometry}) of the frame, in characters.  Normally, the functions that
@@ -1673,7 +1673,7 @@ fit will be clipped by the window manager.
 @cindex fullheight frames
 @cindex fullwidth frames
 @cindex maximized frames
address@hidden fullscreen, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item fullscreen
 This parameter specifies whether to maximize the frame's width, height
 or both.  Its value can be @code{fullwidth}, @code{fullheight},
@@ -1704,7 +1704,7 @@ Full-screen on macOS hides both the tool-bar and the 
menu-bar, however
 both will be displayed if the mouse pointer is moved to the top of the
 screen.
 
address@hidden fullscreen-restore, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item fullscreen-restore
 This parameter specifies the desired fullscreen state of the frame
 after invoking the @code{toggle-frame-fullscreen} command (@pxref{Frame
@@ -1723,14 +1723,14 @@ file as, for example
 This will give a new frame full height after typing in it @key{F11} for
 the first time.
 
address@hidden fit-frame-to-buffer-margins, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item fit-frame-to-buffer-margins
 This parameter allows to override the value of the option
 @code{fit-frame-to-buffer-margins} when fitting this frame to the buffer
 of its root window with @code{fit-frame-to-buffer} (@pxref{Resizing
 Windows}).
 
address@hidden fit-frame-to-buffer-sizes, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item fit-frame-to-buffer-sizes
 This parameter allows to override the value of the option
 @code{fit-frame-to-buffer-sizes} when fitting this frame to the buffer
@@ -1748,38 +1748,38 @@ Windows}).
 frame, or control their sizes.
 
 @table @code
address@hidden border-width, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item border-width
 The width in pixels of the frame's outer border (@pxref{Frame Geometry}).
 
address@hidden internal-border-width, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item internal-border-width
 The width in pixels of the frame's internal border (@pxref{Frame
 Geometry}).
 
address@hidden vertical-scroll-bars, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item vertical-scroll-bars
 Whether the frame has scroll bars (@pxref{Scroll Bars}) for vertical
 scrolling, and which side of the frame they should be on.  The possible
 values are @code{left}, @code{right}, and @code{nil} for no scroll bars.
 
address@hidden horizontal-scroll-bars, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item horizontal-scroll-bars
 Whether the frame has scroll bars for horizontal scrolling (@code{t} and
 @code{bottom} mean yes, @code{nil} means no).
 
address@hidden scroll-bar-width, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item scroll-bar-width
 The width of vertical scroll bars, in pixels, or @code{nil} meaning to
 use the default width.
 
address@hidden scroll-bar-height, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item scroll-bar-height
 The height of horizontal scroll bars, in pixels, or @code{nil} meaning
 to use the default height.
 
address@hidden left-fringe, a frame parameter
address@hidden right-fringe, a frame parameter
address@hidden address@hidden, a frame parameter}
address@hidden address@hidden, a frame parameter}
 @item left-fringe
 @itemx right-fringe
 The default width of the left and right fringes of windows in this
@@ -1791,19 +1791,19 @@ these two frame parameters, the return value is always 
an integer.
 When using @code{set-frame-parameter}, passing a @code{nil} value
 imposes an actual default value of 8 pixels.
 
address@hidden right-divider-width, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item right-divider-width
 The width (thickness) reserved for the right divider (@pxref{Window
 Dividers}) of any window on the frame, in pixels.  A value of zero means
 to not draw right dividers.
 
address@hidden bottom-divider-width, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item bottom-divider-width
 The width (thickness) reserved for the bottom divider (@pxref{Window
 Dividers}) of any window on the frame, in pixels.  A value of zero means
 to not draw bottom dividers.
 
address@hidden menu-bar-lines frame parameter
address@hidden address@hidden, a frame parameter}
 @item menu-bar-lines
 The number of lines to allocate at the top of the frame for a menu bar
 (@pxref{Menu Bar}).  The default is one if Menu Bar mode is enabled and
@@ -1814,25 +1814,25 @@ even when the menu bar wraps to two or more lines.  In 
that case, the
 (@pxref{Frame Geometry}) allows to derive whether the menu bar actually
 occupies one or more lines.
 
address@hidden tool-bar-lines frame parameter
address@hidden address@hidden, a frame parameter}
 @item tool-bar-lines
 The number of lines to use for the tool bar (@pxref{Tool Bar}).  The
 default is one if Tool Bar mode is enabled and zero otherwise.
 @xref{Tool Bars,,,emacs, The GNU Emacs Manual}.  This value may change
 whenever the tool bar wraps (@pxref{Frame Layout}).
 
address@hidden tool-bar-position frame parameter
address@hidden address@hidden, a frame parameter}
 @item tool-bar-position
 The position of the tool bar when Emacs was built with GTK+.  Its value
 can be one of @code{top}, @code{bottom} @code{left}, @code{right}.  The
 default is @code{top}.
 
address@hidden line-spacing, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item line-spacing
 Additional space to leave below each text line, in pixels (a positive
 integer).  @xref{Line Height}, for more information.
 
address@hidden no-special-glyphs, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item no-special-glyphs
 If this is address@hidden, it suppresses the display of any truncation
 and continuation glyphs (@pxref{Truncation}) for all buffers displayed
@@ -1851,7 +1851,7 @@ Windows}).
 with which buffers have been, or should, be displayed in the frame.
 
 @table @code
address@hidden minibuffer, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item minibuffer
 Whether this frame has its own minibuffer.  The value @code{t} means
 yes, @code{nil} means no, @code{only} means this frame is just a
@@ -1867,7 +1867,7 @@ minibuffer window to @code{t} and vice-versa, or from 
@code{t} to
 @code{nil}.  If the parameter specifies a minibuffer window already,
 setting it to @code{nil} has no effect.
 
address@hidden buffer-predicate, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item buffer-predicate
 The buffer-predicate function for this frame.  The function
 @code{other-buffer} uses this predicate (from the selected frame) to
@@ -1876,12 +1876,12 @@ decide which buffers it should consider, if the 
predicate is not
 each buffer; if the predicate returns a address@hidden value, it
 considers that buffer.
 
address@hidden buffer-list, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item buffer-list
 A list of buffers that have been selected in this frame, ordered
 most-recently-selected first.
 
address@hidden unsplittable, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item unsplittable
 If address@hidden, this frame's window is never split automatically.
 @end table
@@ -1895,40 +1895,40 @@ If address@hidden, this frame's window is never split 
automatically.
 These parameters supply forms of interactions between different frames.
 
 @table @code
address@hidden parent-frame, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item parent-frame
 If address@hidden, this means that this frame is a child frame
 (@pxref{Child Frames}), and this parameter specifies its parent frame.
 If @code{nil}, this means that this frame is a normal, top-level frame.
 
address@hidden delete-before, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item delete-before
 If address@hidden, this parameter specifies another frame whose deletion
 will automatically trigger the deletion of this frame.  @xref{Deleting
 Frames}.
 
address@hidden mouse-wheel-frame, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item mouse-wheel-frame
 If address@hidden, this parameter specifies the frame whose windows will
 be scrolled whenever the mouse wheel is scrolled with the mouse pointer
 hovering over this frame, see @ref{Mouse Commands,,, emacs, The GNU
 Emacs Manual}.
 
address@hidden no-other-frame, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item no-other-frame
 If this is address@hidden, then this frame is not eligible as candidate
 for the functions @code{next-frame}, @code{previous-frame}
 (@pxref{Finding All Frames}) and @code{other-frame}, see @ref{Frame
 Commands,,, emacs, The GNU Emacs Manual}.
 
address@hidden auto-hide-function, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item auto-hide-function
 When this parameter specifies a function, that function will be called
 instead of the function specified by the variable
 @code{frame-auto-hide-function} when quitting the frame's only window
 (@pxref{Quitting Windows}) and there are other frames left.
 
address@hidden minibuffer-exit, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item minibuffer-exit
 When this parameter is address@hidden, Emacs will by default make this
 frame invisible whenever the minibuffer (@pxref{Minibuffers}) is exited.
@@ -1937,7 +1937,7 @@ Alternatively, it can specify the functions 
@code{iconify-frame} and
 disappear automatically (similar to how Emacs deals with a window) when
 exiting the minibuffer.
 
address@hidden keep-ratio, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item keep-ratio
 This parameter is currently meaningful for child frames (@pxref{Child
 Frames}) only.  If it is address@hidden, then Emacs will try to keep the
@@ -1977,29 +1977,29 @@ Frames}) that come without window manager decorations.  
If necessary,
 they can be used for undecorated top-level frames as well.
 
 @table @code
address@hidden drag-internal-border, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item drag-internal-border
 If address@hidden, the frame can be resized by dragging its internal
 borders, if present, with the mouse.
 
address@hidden drag-with-header-line, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item drag-with-header-line
 If address@hidden, the frame can be moved with the mouse by dragging the
 header line of its topmost window.
 
address@hidden drag-with-mode-line, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item drag-with-mode-line
 If address@hidden, the frame can be moved with the mouse by dragging the
 mode line of its bottommost window.  Note that such a frame is not
 allowed to have its own minibuffer window.
 
address@hidden snap-width, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item snap-width
 A frame that is moved with the mouse will ``snap'' at the border(s) of
 the display or its parent frame whenever it is dragged as near to such
 an edge as the number of pixels specified by this parameter.
 
address@hidden top-visible, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item top-visible
 If this parameter is a number, the top edge of the frame never appears
 above the top edge of its display or parent frame.  Moreover, as many
@@ -2010,7 +2010,7 @@ dragging a child frame with a address@hidden
 @code{drag-with-header-line} parameter completely out of the area
 of its parent frame.
 
address@hidden bottom-visible, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item bottom-visible
 If this parameter is a number, the bottom edge of the frame never
 appears below the bottom edge of its display or parent frame.  Moreover,
@@ -2032,66 +2032,66 @@ interaction with the window manager or window system.  
They have no
 effect on text terminals.
 
 @table @code
address@hidden visibility, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item visibility
 The state of visibility of the frame.  There are three possibilities:
 @code{nil} for invisible, @code{t} for visible, and @code{icon} for
 iconified.  @xref{Visibility of Frames}.
 
address@hidden auto-raise, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item auto-raise
 If address@hidden, Emacs automatically raises the frame when it is
 selected.  Some window managers do not allow this.
 
address@hidden auto-lower, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item auto-lower
 If address@hidden, Emacs automatically lowers the frame when it is
 deselected.  Some window managers do not allow this.
 
address@hidden icon-type, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item icon-type
 The type of icon to use for this frame.  If the value is a string,
 that specifies a file containing a bitmap to use; @code{nil} specifies
 no icon (in which case the window manager decides what to show); any
 other address@hidden value specifies the default Emacs icon.
 
address@hidden icon-name, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item icon-name
 The name to use in the icon for this frame, when and if the icon
 appears.  If this is @code{nil}, the frame's title is used.
 
address@hidden window-id, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item window-id
 The ID number which the graphical display uses for this frame.  Emacs
 assigns this parameter when the frame is created; changing the
 parameter has no effect on the actual ID number.
 
address@hidden outer-window-id, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item outer-window-id
 The ID number of the outermost window-system window in which the frame
 exists.  As with @code{window-id}, changing this parameter has no
 actual effect.
 
address@hidden wait-for-wm, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item wait-for-wm
 If address@hidden, tell Xt to wait for the window manager to confirm
 geometry changes.  Some window managers, including versions of Fvwm2
 and KDE, fail to confirm, so Xt hangs.  Set this to @code{nil} to
 prevent hanging with those window managers.
 
address@hidden sticky, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item sticky
 If address@hidden, the frame is visible on all virtual desktops on systems
 with virtual desktops.
 
address@hidden inhibit-double-buffering, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item inhibit-double-buffering
 If address@hidden, the frame is drawn to the screen without double
 buffering.  Emacs normally attempts to use double buffering, where
 available, to reduce flicker.  Set this property if you experience
 display bugs or pine for that retro, flicker-y feeling.
 
address@hidden skip-taskbar, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item skip-taskbar
 If address@hidden, this tells the window manager to remove the frame's
 icon from the taskbar associated with the frame's display and inhibit
@@ -2100,13 +2100,13 @@ On MS-Windows, iconifying such a frame will "roll in" 
its window-system
 window at the bottom of the desktop.  Some window managers may not honor
 this parameter.
 
address@hidden no-focus-on-map, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item no-focus-on-map
 If address@hidden, this means that the frame does not want to receive
 input focus when it is mapped (@pxref{Visibility of Frames}).  Some
 window managers may not honor this parameter.
 
address@hidden no-accept-focus, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item no-accept-focus
 If address@hidden, this means that the frame does not want to receive
 input focus via explicit mouse clicks or when moving the mouse into it
@@ -2116,7 +2116,7 @@ This may have the unwanted side-effect that a user cannot 
scroll a
 non-selected frame with the mouse.  Some window managers may not honor
 this parameter.
 
address@hidden undecorated, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item undecorated
 If address@hidden, this frame's window-system window is drawn without
 decorations, like the title, minimize/maximize boxes and external
@@ -2131,7 +2131,7 @@ decorations.  Some window managers may not honor these 
hints.
 NS builds consider the tool bar to be a decoration, and therefore hide
 it on an undecorated frame.
 
address@hidden override-redirect, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item override-redirect
 @cindex override redirect frames
 If address@hidden, this means that this is an @dfn{override redirect}
@@ -2142,7 +2142,7 @@ usually drawn on top of all other frames.  Setting this 
parameter has
 no effect on MS-Windows.
 
 @ignore
address@hidden parent-id, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item parent-id
 @c ??? Not yet working.
 The X window number of the window that should be the parent of this one.
@@ -2151,7 +2151,7 @@ application's window.  (It is not certain this will be 
implemented; try
 it and see if it works.)
 @end ignore
 
address@hidden ns-appearance, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item ns-appearance
 Only available on macOS, if set to @code{dark} draw this frame's
 window-system window using the ``vibrant dark'' theme, otherwise use
@@ -2159,7 +2159,7 @@ the system default.  The ``vibrant dark'' theme can be 
used to set the
 toolbar and scrollbars to a dark appearance when using an Emacs theme
 with a dark background.
 
address@hidden ns-transparent-titlebar, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item ns-transparent-titlebar
 Only available on macOS, if address@hidden, set the titlebar and
 toolbar to be transparent.  This effectively sets the background color
@@ -2174,7 +2174,7 @@ of both to match the Emacs background color.
   This frame parameter controls the way the cursor looks.
 
 @table @code
address@hidden cursor-type, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item cursor-type
 How to display the cursor.  Legitimate values are:
 
@@ -2252,7 +2252,7 @@ variable do not take effect immediately, only when you 
specify the
   These frame parameters control the use of fonts and colors.
 
 @table @code
address@hidden font-backend, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item font-backend
 A list of symbols, specifying the @dfn{font backends} to use for
 drawing fonts in the frame, in order of priority.  On X, there are
@@ -2263,12 +2263,12 @@ currently two available font backends: @code{gdi} and
 Manual}).  On other systems, there is only one available font backend,
 so it does not make sense to modify this frame parameter.
 
address@hidden background-mode, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item background-mode
 This parameter is either @code{dark} or @code{light}, according
 to whether the background color is a light one or a dark one.
 
address@hidden tty-color-mode, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item tty-color-mode
 @cindex standard colors for character terminals
 This parameter overrides the terminal's color support as given by the
@@ -2277,14 +2277,14 @@ specifies the color mode to use on a text terminal.  
The value can be
 either a symbol or a number.  A number specifies the number of colors
 to use (and, indirectly, what commands to issue to produce each
 color).  For example, @code{(tty-color-mode . 8)} specifies use of the
-ANSI escape sequences for 8 standard text colors.  A value of -1 turns
+ANSI escape sequences for 8 standard text colors.  A value of @minus{}1 turns
 off color support.
 
 If the parameter's value is a symbol, it specifies a number through
 the value of @code{tty-color-mode-alist}, and the associated number is
 used instead.
 
address@hidden screen-gamma, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item screen-gamma
 @cindex gamma correction
 If this is a number, Emacs performs gamma correction which adjusts
@@ -2304,7 +2304,7 @@ If your monitor displays colors too light, you should 
specify a
 that makes colors darker.  A screen gamma value of 1.5 may give good
 results for LCD color displays.
 
address@hidden alpha, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item alpha
 @cindex opacity, frame
 @cindex transparency, frame
@@ -2335,45 +2335,45 @@ automatically equivalent to particular face attributes 
of particular
 faces (@pxref{Standard Faces,,, emacs, The Emacs Manual}):
 
 @table @code
address@hidden font, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item font
 The name of the font for displaying text in the frame.  This is a
 string, either a valid font name for your system or the name of an Emacs
 fontset (@pxref{Fontsets}).  It is equivalent to the @code{font}
 attribute of the @code{default} face.
 
address@hidden foreground-color, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item foreground-color
 The color to use for the image of a character.  It is equivalent to
 the @code{:foreground} attribute of the @code{default} face.
 
address@hidden background-color, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item background-color
 The color to use for the background of characters.  It is equivalent to
 the @code{:background} attribute of the @code{default} face.
 
address@hidden mouse-color, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item mouse-color
 The color for the mouse pointer.  It is equivalent to the @code{:background}
 attribute of the @code{mouse} face.
 
address@hidden cursor-color, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item cursor-color
 The color for the cursor that shows point.  It is equivalent to the
 @code{:background} attribute of the @code{cursor} face.
 
address@hidden border-color, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item border-color
 The color for the border of the frame.  It is equivalent to the
 @code{:background} attribute of the @code{border} face.
 
address@hidden scroll-bar-foreground, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item scroll-bar-foreground
 If address@hidden, the color for the foreground of scroll bars.  It is
 equivalent to the @code{:foreground} attribute of the
 @code{scroll-bar} face.
 
address@hidden scroll-bar-background, a frame parameter
address@hidden address@hidden, a frame parameter}
 @item scroll-bar-background
 If address@hidden, the color for the background of scroll bars.  It is
 equivalent to the @code{:background} attribute of the
diff --git a/doc/lispref/functions.texi b/doc/lispref/functions.texi
index 9090956..db59463 100644
--- a/doc/lispref/functions.texi
+++ b/doc/lispref/functions.texi
@@ -1634,7 +1634,7 @@ anonymous function.
 This specifies how to order the advice, should several pieces of
 advice be present.  By default, the depth is 0.  A depth of 100
 indicates that this piece of advice should be kept as deep as
-possible, whereas a depth of -100 indicates that it should stay as the
+possible, whereas a depth of @minus{}100 indicates that it should stay as the
 outermost piece.  When two pieces of advice specify the same depth,
 the most recently added one will be outermost.
 
diff --git a/doc/lispref/minibuf.texi b/doc/lispref/minibuf.texi
index c7f8ba9..0ef8185 100644
--- a/doc/lispref/minibuf.texi
+++ b/doc/lispref/minibuf.texi
@@ -1916,7 +1916,7 @@ may internally call functions in 
@code{completion-at-point-functions}
 many times, but care about the value of @var{collection} for only some
 of these calls.  By supplying a function for @var{collection}, Emacs
 can defer generating completions until necessary.  You can use
address@hidden to create a wrapper function:
address@hidden to create a wrapper function:
 
 @smallexample
 ;; Avoid this pattern.
diff --git a/doc/lispref/os.texi b/doc/lispref/os.texi
index be2d148..0e30ad5 100644
--- a/doc/lispref/os.texi
+++ b/doc/lispref/os.texi
@@ -1322,7 +1322,7 @@ or rounding errors occur.
 @section Time Zone Rules
 @cindex time zone rules
 
address@hidden TZ, environment variable
address@hidden address@hidden, environment variable}
 The default time zone is determined by the @env{TZ} environment
 variable.  @xref{System Environment}.  For example, you can tell Emacs
 to default to Universal Time with @code{(setenv "TZ" "UTC0")}.  If
@@ -1478,7 +1478,8 @@ on others, years as early as 1901 do work.
 @cindex formatting time values
 
   These functions convert time values to text in a string, and vice versa.
-Time values are lists of two to four integers (@pxref{Time of Day}).
+Time values include @code{nil}, numbers, and lists of two to four
+integers (@pxref{Time of Day}).
 
 @defun date-to-time string
 This function parses the time-string @var{string} and returns the
diff --git a/doc/lispref/positions.texi b/doc/lispref/positions.texi
index c89a87c..0a03e24 100644
--- a/doc/lispref/positions.texi
+++ b/doc/lispref/positions.texi
@@ -602,7 +602,7 @@ line @var{count} screen lines from the top of the window; 
zero means
 the topmost line.  If @var{count} is negative, that specifies a
 position @address@hidden@var{count}} lines from the bottom (or the last
 line of the buffer, if the buffer ends above the specified screen
-position); thus, @var{count} of -1 specifies the last fully visible
+position); thus, @var{count} of @minus{}1 specifies the last fully visible
 screen line of the window.
 
 If @var{count} is @code{nil}, then point moves to the beginning of the
diff --git a/doc/lispref/strings.texi b/doc/lispref/strings.texi
index c8261e3..5452ea6 100644
--- a/doc/lispref/strings.texi
+++ b/doc/lispref/strings.texi
@@ -927,7 +927,7 @@ floating-point number.
 @item %g
 Replace the specification with notation for a floating-point number,
 using either exponential notation or decimal-point notation.  The
-exponential notation is used if the exponent would be less than -4 or
+exponential notation is used if the exponent would be less than @minus{}4 or
 greater than or equal to the precision (default: 6).  By default,
 trailing zeros are removed from the fractional portion of the result
 and a decimal-point character appears only if it is followed by a
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi
index fd461b7..3327d78 100644
--- a/doc/lispref/syntax.texi
+++ b/doc/lispref/syntax.texi
@@ -972,6 +972,10 @@ encodes the syntax class and syntax flags, according to 
the table
 below.  @var{matching-char}, if address@hidden, specifies a matching
 character (similar to the second character in a syntax descriptor).
 
address@hidden syntax tables (accessing elements of)
+Use @code{aref} (@pxref{Array Functions}) to get the raw syntax
+descriptor of a character, e.g. @address@hidden(aref (syntax-table) ch)}}.
+
   Here are the syntax codes corresponding to the various syntax
 classes:
 
diff --git a/doc/lispref/text.texi b/doc/lispref/text.texi
index 51a440c..9de270c 100644
--- a/doc/lispref/text.texi
+++ b/doc/lispref/text.texi
@@ -1638,7 +1638,7 @@ This function returns the proper justification style to 
use for filling
 the text around point.
 
 This returns the value of the @code{justification} text property at
-point, or the variable @var{default-justification} if there is no such
+point, or the variable @code{default-justification} if there is no such
 text property.  However, it returns @code{nil} rather than @code{none}
 to mean ``don't justify''.
 @end defun
diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi
index 687d597..75651b9 100644
--- a/doc/lispref/windows.texi
+++ b/doc/lispref/windows.texi
@@ -5014,43 +5014,43 @@ code:
 
 @table @code
 @item delete-window
address@hidden delete-window, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter affects the execution of @code{delete-window}
 (@pxref{Deleting Windows}).
 
 @item delete-other-windows
address@hidden delete-other-windows, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter affects the execution of @code{delete-other-windows}
 (@pxref{Deleting Windows}).
 
 @item no-delete-other-windows
address@hidden no-delete-other-windows, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter marks the window as not deletable by
 @code{delete-other-windows} (@pxref{Deleting Windows}).
 
 @item split-window
address@hidden split-window, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter affects the execution of @code{split-window}
 (@pxref{Splitting Windows}).
 
 @item other-window
address@hidden other-window, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter affects the execution of @code{other-window}
 (@pxref{Cyclic Window Ordering}).
 
 @item no-other-window
address@hidden no-other-window, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter marks the window as not selectable by @code{other-window}
 (@pxref{Cyclic Window Ordering}).
 
 @item clone-of
address@hidden clone-of, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter specifies the window that this one has been cloned
 from.  It is installed by @code{window-state-get} (@pxref{Window
 Configurations}).
 
 @item window-preserved-size
address@hidden window-preserved-size, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter specifies a buffer, a direction where @code{nil} means
 vertical and @code{t} horizontal, and a size in pixels.  If this window
 displays the specified buffer and its size in the indicated direction
@@ -5060,7 +5060,7 @@ parameter is installed and updated by the function
 @code{window-preserve-size} (@pxref{Preserving Window Sizes}).
 
 @item quit-restore
address@hidden quit-restore, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter is installed by the buffer display functions
 (@pxref{Choosing Window}) and consulted by @code{quit-restore-window}
 (@pxref{Quitting Windows}).  It contains four elements:
@@ -5092,18 +5092,18 @@ See the description of @code{quit-restore-window} in 
@ref{Quitting
 Windows} for details.
 
 @item window-side window-slot
address@hidden window-side, a window parameter
address@hidden window-slot, a window parameter
address@hidden address@hidden, a window parameter}
address@hidden address@hidden, a window parameter}
 These parameters are used for implementing side windows (@pxref{Side
 Windows}).
 
 @item window-atom
address@hidden window-atom, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter is used for implementing atomic windows, see @ref{Atomic
 Windows}.
 
 @item mode-line-format
address@hidden mode-line-format, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter replaces the value of the buffer-local variable
 @code{mode-line-format} (@pxref{Mode Line Basics}) of this window's
 buffer whenever this window is displayed.  The symbol @code{none} means
@@ -5112,7 +5112,7 @@ contents of the mode line on other windows showing this 
buffer are not
 affected.
 
 @item header-line-format
address@hidden header-line-format, a window parameter
address@hidden address@hidden, a window parameter}
 This parameter replaces the value of the buffer-local variable
 @code{header-line-format} (@pxref{Mode Line Basics}) of this window's
 buffer whenever this window is displayed.  The symbol @code{none} means
@@ -5121,7 +5121,7 @@ contents of the header line on other windows showing this 
buffer are not
 affected.
 
 @item min-margins
address@hidden min-margins, a window parameter
address@hidden address@hidden, a window parameter}
 The value of this parameter is a cons cell whose @sc{car} and @sc{cdr},
 if address@hidden, specify the minimum values (in columns) for the left
 and right margin of this window.  When present, Emacs will use these
diff --git a/doc/misc/calc.texi b/doc/misc/calc.texi
index 40b16b0..a4a091f 100644
--- a/doc/misc/calc.texi
+++ b/doc/misc/calc.texi
@@ -14242,7 +14242,7 @@ format in @TeX{} mode and in
 @address@hidden@} a & b \\ c & d address@hidden@}} format in
 @LaTeX{} mode; you may need to edit this afterwards to change to your
 preferred matrix form.  If you invoke @kbd{d T} or @kbd{d L} with an
-argument of 2 or -2, then matrices will be displayed in two-dimensional
+argument of 2 or @minus{}2, then matrices will be displayed in two-dimensional
 form, such as
 
 @example
diff --git a/doc/misc/cc-mode.texi b/doc/misc/cc-mode.texi
index 2de56fa..a506213 100644
--- a/doc/misc/cc-mode.texi
+++ b/doc/misc/cc-mode.texi
@@ -576,7 +576,7 @@ for the latest information on Emacs version and package 
compatibility
 (@pxref{Updating CC Mode}).
 
 @deffn Command c-version
address@hidden version (c-)
address@hidden 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:
@@ -673,7 +673,7 @@ These commands indent code:
 @item @address@hidden (@code{c-indent-command})
 @kindex TAB
 @findex c-indent-command
address@hidden indent-command (c-)
address@hidden indent-command @r{(c-)}
 This command indents the current line.  That is all you need to know
 about it for normal use.
 
@@ -693,7 +693,7 @@ that begins at the line's left margin.
 @item
 When it's @code{nil}, the command indents the line by an extra
 @code{c-basic-offset} columns.  A prefix argument acts as a
-multiplier.  A bare prefix (@kbd{C-u @key{TAB}}) is equivalent to -1,
+multiplier.  A bare prefix (@kbd{C-u @key{TAB}}) is equivalent to @minus{}1,
 removing @code{c-basic-offset} columns from the indentation.
 @end itemize
 
@@ -707,7 +707,7 @@ you want only spaces.  @xref{Just Spaces,,,@emacsman{},
 @emacsmantitle{}}.
 
 @defopt c-tab-always-indent
address@hidden tab-always-indent (c-)
address@hidden tab-always-indent @r{(c-)}
 @cindex literal
 This variable modifies how @key{TAB} operates.
 @itemize @bullet
@@ -726,7 +726,7 @@ is within a string or comment, some whitespace is inserted.
 @end defopt
 
 @defopt c-insert-tab-function
address@hidden insert-tab-function (c-)
address@hidden insert-tab-function @r{(c-)}
 @findex tab-to-tab-stop
 When ``some whitespace'' is inserted as described above, what actually
 happens is that the function stored in @code{c-insert-tab-function} is
@@ -756,7 +756,7 @@ very useful in this case.
 @item @kbd{C-M-q} (@code{c-indent-exp})
 @kindex C-M-q
 @findex c-indent-exp
address@hidden indent-exp (c-)
address@hidden indent-exp @r{(c-)}
 Indents an entire balanced brace or parenthesis expression.  Note that
 point must be on the opening brace or parenthesis of the expression
 you want to indent.
@@ -764,7 +764,7 @@ you want to indent.
 @item @kbd{C-c C-q} (@code{c-indent-defun})
 @kindex C-c C-q
 @findex c-indent-defun
address@hidden indent-defun (c-)
address@hidden indent-defun @r{(c-)}
 Indents the entire top-level function, class or macro definition
 encompassing point.  It leaves point unchanged.  This function can't be
 used to reindent a nested brace construct, such as a nested class or
@@ -782,7 +782,7 @@ and mark must delineate the region you want to indent.
 @item @kbd{C-M-h} (@code{c-mark-function})
 @kindex C-M-h
 @findex c-mark-function
address@hidden mark-function (c-)
address@hidden mark-function @r{(c-)}
 While not strictly an indentation command, this is useful for marking
 the current top-level function or class definition as the current
 region.  As with @code{c-indent-defun}, this command operates on
@@ -798,7 +798,7 @@ indentation, otherwise only spaces are used.
 @end defopt
 
 @defopt c-progress-interval
address@hidden progress-interval (c-)
address@hidden progress-interval @r{(c-)}
 When indenting large regions of code, this variable controls how often a
 progress message is displayed.  Set this variable to @code{nil} to
 inhibit the progress messages, or set it to an integer which is how
@@ -845,7 +845,7 @@ together with any whitespace before it.  This is a standard 
Emacs
 command, but @ccmode{} enhances it a bit with two variables:
 
 @defopt c-indent-comment-alist
address@hidden indent-comment-alist (c-)
address@hidden indent-comment-alist @r{(c-)}
 @vindex comment-column
 This style variable allows you to vary the column that @kbd{M-;} puts
 the comment at, depending on what sort of code is on the line, and
@@ -860,7 +860,7 @@ variable (use @kbd{C-h v c-indent-comment-alist}).
 @end defopt
 
 @defopt c-indent-comments-syntactically-p
address@hidden indent-comments-syntactically-p (c-)
address@hidden indent-comments-syntactically-p @r{(c-)}
 Normally, when this style variable is @code{nil}, @kbd{M-;} will
 indent comment-only lines according to @code{c-indent-comment-alist},
 just as it does with lines where other code precede the comments.
@@ -889,7 +889,7 @@ lines.
 @findex c-beginning-of-defun
 @findex c-end-of-defun
 @vindex c-defun-tactic
address@hidden defun-tactic (c-)
address@hidden defun-tactic @r{(c-)}
 
 Move to the beginning or end of the current or next function.  Other
 constructs (such as a structs or classes) which have a brace block
@@ -923,9 +923,9 @@ must be in column zero.  See @ref{Defuns,,,@emacsman{},
 @kindex C-M-a (AWK Mode)
 @kindex C-M-e (AWK Mode)
 @findex c-awk-beginning-of-defun
address@hidden awk-beginning-of-defun (c-)
address@hidden awk-beginning-of-defun @r{(c-)}
 @findex c-awk-end-of-defun
address@hidden awk-end-of-defun (c-)
address@hidden awk-end-of-defun @r{(c-)}
 Move to the beginning or end of the current or next AWK defun.  These
 commands can take prefix-arguments, their functionality being entirely
 equivalent to @code{beginning-of-defun} and @code{end-of-defun}.
@@ -941,8 +941,8 @@ modes, is neither necessary nor helpful in AWK mode.
 @kindex M-e
 @findex c-beginning-of-statement
 @findex c-end-of-statement
address@hidden beginning-of-statement (c-)
address@hidden end-of-statement (c-)
address@hidden beginning-of-statement @r{(c-)}
address@hidden end-of-statement @r{(c-)}
 Move to the beginning or end of the innermost C statement.  If point
 is already there, move to the next beginning or end of a statement,
 even if that means moving into a block.  (Use @kbd{C-M-b} or
@@ -961,7 +961,7 @@ strings.
 @item @kbd{C-c C-u} (@code{c-up-conditional})
 @kindex C-c C-u
 @findex c-up-conditional
address@hidden up-conditional (c-)
address@hidden up-conditional @r{(c-)}
 Move back to the containing preprocessor conditional, leaving the mark
 behind.  A prefix argument acts as a repeat count.  With a negative
 argument, move forward to the end of the containing preprocessor
@@ -976,13 +976,13 @@ preprocessor statements.
 
 @item @kbd{M-x c-up-conditional-with-else}
 @findex c-up-conditional-with-else
address@hidden up-conditional-with-else (c-)
address@hidden up-conditional-with-else @r{(c-)}
 A variety of @code{c-up-conditional} that also stops at @samp{#else}
 lines.  Normally those lines are ignored.
 
 @item @kbd{M-x c-down-conditional}
 @findex c-down-conditional
address@hidden down-conditional (c-)
address@hidden down-conditional @r{(c-)}
 Move forward into the next nested preprocessor conditional, leaving
 the mark behind.  A prefix argument acts as a repeat count.  With a
 negative argument, move backward into the previous nested preprocessor
@@ -993,7 +993,7 @@ function stops at them when going forward, but not when 
going backward.
 
 @item @kbd{M-x c-down-conditional-with-else}
 @findex c-down-conditional-with-else
address@hidden down-conditional-with-else (c-)
address@hidden down-conditional-with-else @r{(c-)}
 A variety of @code{c-down-conditional} that also stops at @samp{#else}
 lines.  Normally those lines are ignored.
 
@@ -1003,8 +1003,8 @@ lines.  Normally those lines are ignored.
 @kindex C-c C-n
 @findex c-backward-conditional
 @findex c-forward-conditional
address@hidden backward-conditional (c-)
address@hidden forward-conditional (c-)
address@hidden backward-conditional @r{(c-)}
address@hidden forward-conditional @r{(c-)}
 Move backward or forward across a preprocessor conditional, leaving
 the mark behind.  A prefix argument acts as a repeat count.  With a
 negative argument, move in the opposite direction.
@@ -1016,8 +1016,8 @@ preprocessor statements.
 @itemx @kbd{M-x c-forward-into-nomenclature}
 @findex c-backward-into-nomenclature
 @findex c-forward-into-nomenclature
address@hidden backward-into-nomenclature (c-)
address@hidden forward-into-nomenclature (c-)
address@hidden backward-into-nomenclature @r{(c-)}
address@hidden forward-into-nomenclature @r{(c-)}
 A popular programming style, especially for object-oriented languages
 such as C++ is to write symbols in a mixed case format, where the
 first letter of each word is capitalized, and not separated by
@@ -1070,7 +1070,7 @@ and @pxref{Customizing Indentation})}.
 @item @kbd{M-q} (@code{c-fill-paragraph})
 @kindex M-q
 @findex c-fill-paragraph
address@hidden fill-paragraph (c-)
address@hidden fill-paragraph @r{(c-)}
 @cindex Javadoc markup
 @cindex Pike autodoc markup
 This command fills multiline string literals and both block
@@ -1090,7 +1090,7 @@ buffers.
 @item @kbd{M-j} (@code{c-indent-new-comment-line})
 @kindex M-j
 @findex c-indent-new-comment-line
address@hidden indent-new-comment-line (c-)
address@hidden indent-new-comment-line @r{(c-)}
 This breaks the current line at point and indents the new line.  If
 point was in a comment, the new line gets the proper comment line
 prefix.  If point was inside a macro, a backslash is inserted before
@@ -1099,7 +1099,7 @@ the line break.  It is the replacement for
 
 @item @kbd{M-x c-context-line-break}
 @findex c-context-line-break
address@hidden context-line-break (c-)
address@hidden context-line-break @r{(c-)}
 Insert a line break suitable to the context: If the point is inside a
 comment, the new line gets the suitable indentation and comment line
 prefix like @code{c-indent-new-comment-line}.  In normal code it's
@@ -1118,7 +1118,7 @@ this function.  @xref{Sample Init File}.
 
 @item @kbd{M-x c-context-open-line}
 @findex c-context-open-line
address@hidden context-open-line (c-)
address@hidden context-open-line @r{(c-)}
 This is to @kbd{C-o} (@kbd{M-x open-line}) as
 @code{c-context-line-break} is to @kbd{RET}.  I.e., it works just like
 @code{c-context-line-break} but leaves the point before the inserted
@@ -1196,7 +1196,7 @@ Here are the commands to toggle these modes:
 @item @kbd{C-c C-k} (@code{c-toggle-comment-style})
 @kindex C-c C-k
 @findex c-toggle-comment-style
address@hidden toggle-comment-style (c-)
address@hidden toggle-comment-style @r{(c-)}
 Toggle the comment style between line style and block style.  In modes
 (such as AWK Mode) which only have one of these styles, this function
 does nothing.
@@ -1204,25 +1204,25 @@ does nothing.
 @item @kbd{C-c C-l} (@code{c-toggle-electric-state})
 @kindex C-c C-l
 @findex c-toggle-electric-state
address@hidden toggle-electric-state (c-)
address@hidden toggle-electric-state @r{(c-)}
 Toggle electric minor mode.  When the command turns the mode off, it
 also suppresses auto-newline mode.
 
 @item @kbd{C-c C-a} (@code{c-toggle-auto-newline})
 @kindex C-c C-a
 @findex c-toggle-auto-newline
address@hidden toggle-auto-newline (c-)
address@hidden toggle-auto-newline @r{(c-)}
 Toggle auto-newline minor mode.  When the command turns the mode on,
 it also enables electric minor mode.
 
 @item @kbd{M-x address@hidden to @ccmode{} 5.31, this command was bound to 
@kbd{C-c C-d}.}
 @findex c-toggle-hungry-state
address@hidden toggle-hungry-state (c-)
address@hidden toggle-hungry-state @r{(c-)}
 Toggle hungry-delete minor mode.
 
 @item @kbd{M-x address@hidden to @ccmode{} 5.31, this command was bound to 
@kbd{C-c C-t}.}
 @findex c-toggle-auto-hungry-state
address@hidden toggle-auto-hungry-state (c-)
address@hidden toggle-auto-hungry-state @r{(c-)}
 Toggle both auto-newline and hungry delete minor modes.
 
 @item @kbd{C-c C-w} (@code{M-x subword-mode})
@@ -1232,7 +1232,7 @@ Toggle subword mode.
 
 @item @kbd{M-x c-toggle-syntactic-indentation}
 @findex c-toggle-syntactic-indentation
address@hidden toggle-syntactic-indentation (c-)
address@hidden toggle-syntactic-indentation @r{(c-)}
 Toggle syntactic-indentation mode.
 @end table
 
@@ -1276,9 +1276,9 @@ These keys and keywords are:
 @item #
 @kindex #
 @findex c-electric-pound
address@hidden electric-pound (c-)
address@hidden electric-pound @r{(c-)}
 @vindex c-electric-pound-behavior
address@hidden electric-pound-behavior (c-)
address@hidden electric-pound-behavior @r{(c-)}
 Pound (bound to @code{c-electric-pound}) is electric when typed as the
 first non-whitespace character on a line and not within a macro
 definition.  In this case, the variable @code{c-electric-pound-behavior}
@@ -1298,9 +1298,9 @@ character.
 @itemx /
 @kindex /
 @findex c-electric-star
address@hidden electric-star (c-)
address@hidden electric-star @r{(c-)}
 @findex c-electric-slash
address@hidden electric-slash (c-)
address@hidden electric-slash @r{(c-)}
 A star (bound to @code{c-electric-star}) or a slash
 (@code{c-electric-slash}) causes reindentation when you type it as the
 second component of a C style block comment opener (@samp{/*}) or a
@@ -1321,7 +1321,7 @@ electric.
 @itemx >
 @kindex >
 @findex c-electric-lt-gt
address@hidden electric-lt-gt (c-)
address@hidden electric-lt-gt @r{(c-)}
 A less-than or greater-than sign (bound to @code{c-electric-lt-gt}) is
 electric in two circumstances: when it is an angle bracket in a C++
 @samp{template} declaration (and similar constructs in other
@@ -1335,7 +1335,7 @@ electric.
 @itemx )
 @kindex )
 @findex c-electric-paren
address@hidden electric-paren (c-)
address@hidden electric-paren @r{(c-)}
 The normal parenthesis characters @samp{(} and @samp{)} (bound to
 @code{c-electric-paren}) reindent the current line.  This is useful
 for getting the closing parenthesis of an argument list aligned
@@ -1352,7 +1352,7 @@ get these actions.  @xref{Clean-ups}.
 @itemx @}
 @kindex @}
 @findex c-electric-brace
address@hidden electric-brace (c-)
address@hidden electric-brace @r{(c-)}
 Typing a brace (bound to @code{c-electric-brace}) reindents the
 current line.  Also, one or more newlines might be inserted if
 auto-newline minor mode is enabled.  @xref{Auto-newlines}.
@@ -1363,7 +1363,7 @@ inserted by auto-newline mode in certain circumstances.
 @item :
 @kindex :
 @findex c-electric-colon
address@hidden electric-colon (c-)
address@hidden electric-colon @r{(c-)}
 Typing a colon (bound to @code{c-electric-colon}) reindents the
 current line.  Additionally, one or more newlines might be inserted if
 auto-newline minor mode is enabled.  @xref{Auto-newlines}.  If you
@@ -1380,7 +1380,7 @@ avoiding all these spurious reindentations, newlines, and 
clean-ups.
 @itemx ,
 @kindex ,
 @findex c-electric-semi&comma
address@hidden electric-semi&comma (c-)
address@hidden electric-semi&comma @r{(c-)}
 Typing a semicolon or comma (bound to @code{c-electric-semi&comma})
 reindents the current line.  Also, a newline might be inserted if
 auto-newline minor mode is enabled.  @xref{Auto-newlines}.
@@ -1391,7 +1391,7 @@ when you type a semicolon or comma just after it.  
@xref{Clean-ups}.
 @end table
 
 @deffn Command c-electric-continued-statement
address@hidden electric-continued-statement (c-)
address@hidden electric-continued-statement @r{(c-)}
 
 Certain keywords are electric, causing reindentation when they are
 preceded only by whitespace on the line.  The keywords are those that
@@ -1520,7 +1520,7 @@ deletion.
 @item @address@hidden (@code{c-electric-backspace})
 @kindex DEL
 @findex c-electric-backspace
address@hidden electric-backspace (c-)
address@hidden electric-backspace @r{(c-)}
 This command is run by default when you hit the @kbd{DEL} key.  When
 hungry delete mode is enabled, it deletes any amount of whitespace in
 the backwards direction.  Otherwise, or when used with a prefix
@@ -1531,7 +1531,7 @@ passing it the prefix argument, if any.)
 
 @item @code{c-backspace-function}
 @vindex c-backspace-function
address@hidden backspace-function (c-)
address@hidden backspace-function @r{(c-)}
 @findex backward-delete-char-untabify
 Hook that gets called by @code{c-electric-backspace} when it doesn't
 do an ``electric'' deletion of the preceding whitespace.  The default
@@ -1542,7 +1542,7 @@ deletes a single character.
 @item @kbd{C-d} (@code{c-electric-delete-forward})
 @kindex C-d
 @findex c-electric-delete-forward
address@hidden electric-delete-forward (c-)
address@hidden electric-delete-forward @r{(c-)}
 This function, which is bound to @kbd{C-d} by default, works just like
 @code{c-electric-backspace} but in the forward direction.  When it
 doesn't do an ``electric'' deletion of the following whitespace, it
@@ -1552,7 +1552,7 @@ argument.)
 
 @item @code{c-delete-function}
 @vindex c-delete-function
address@hidden delete-function (c-)
address@hidden delete-function @r{(c-)}
 @findex delete-char
 Hook that gets called by @code{c-electric-delete-forward} when it
 doesn't do an ``electric'' deletion of the following whitespace.  The
@@ -1572,7 +1572,7 @@ rather than using the minor mode toggling.
 @kindex C-c C-DEL
 @kindex C-c DEL
 @findex c-hungry-delete-backwards
address@hidden hungry-delete-backwards (c-)
address@hidden hungry-delete-backwards @r{(c-)}
 Delete any amount of whitespace in the backwards 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{DEL}}, since the more
@@ -1584,7 +1584,7 @@ a character terminal.
 @kindex C-c C-<DELETE>
 @kindex C-c <DELETE>
 @findex c-hungry-delete-forward
address@hidden hungry-delete-forward (c-)
address@hidden 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
@@ -1601,9 +1601,9 @@ known as @key{Backspace} and @key{Delete}.  The default 
bindings to
 those two keys depends on the flavor of (X)Emacs you are using.
 
 @findex c-electric-delete
address@hidden electric-delete (c-)
address@hidden electric-delete @r{(c-)}
 @findex c-hungry-delete
address@hidden hungry-delete (c-)
address@hidden hungry-delete @r{(c-)}
 @vindex delete-key-deletes-forward
 In XEmacs 20.3 and beyond, the @key{Backspace} key is bound to
 @code{c-electric-backspace} and the @key{Delete} key is bound to
@@ -1678,23 +1678,23 @@ editing commands with variants that recognize subwords 
in a
 nomenclature and treat them as separate words:
 
 @findex c-forward-subword
address@hidden forward-subword (c-)
address@hidden forward-subword @r{(c-)}
 @findex c-backward-subword
address@hidden backward-subword (c-)
address@hidden backward-subword @r{(c-)}
 @findex c-mark-subword
address@hidden mark-subword (c-)
address@hidden mark-subword @r{(c-)}
 @findex c-kill-subword
address@hidden kill-subword (c-)
address@hidden kill-subword @r{(c-)}
 @findex c-backward-kill-subword
address@hidden backward-kill-subword (c-)
address@hidden backward-kill-subword @r{(c-)}
 @findex c-transpose-subwords
address@hidden transpose-subwords (c-)
address@hidden transpose-subwords @r{(c-)}
 @findex c-capitalize-subword
address@hidden capitalize-subword (c-)
address@hidden capitalize-subword @r{(c-)}
 @findex c-upcase-subword
address@hidden upcase-subword (c-)
address@hidden upcase-subword @r{(c-)}
 @findex c-downcase-subword
address@hidden downcase-subword (c-)
address@hidden downcase-subword @r{(c-)}
 @multitable @columnfractions .20 .40 .40
 @c This could be converted to @headitem when we require Texinfo 4.7
 @iftex
@@ -1744,7 +1744,7 @@ Here are the various other commands that didn't fit 
anywhere else:
 @item @kbd{C-c .} (@code{c-set-style})
 @kindex C-c .
 @findex c-set-style
address@hidden set-style (c-)
address@hidden set-style @r{(c-)}
 Switch to the specified style in the current buffer.  Use like this:
 
 @example
@@ -1764,7 +1764,7 @@ For details of the @ccmode{} style system, see 
@ref{Styles}.
 @item @kbd{C-c :} (@code{c-scope-operator})
 @kindex C-c :
 @findex c-scope-operator
address@hidden scope-operator (c-)
address@hidden scope-operator @r{(c-)}
 In C++, it is also sometimes desirable to insert the double-colon scope
 operator without performing the electric behavior of colon insertion.
 @kbd{C-c :} does just this.
@@ -1772,7 +1772,7 @@ operator without performing the electric behavior of 
colon insertion.
 @item @kbd{C-c C-z} (@code{c-display-defun-name})
 @kindex C-c C-z
 @findex c-display-defun-name
address@hidden display-defun-name (c-)
address@hidden display-defun-name @r{(c-)}
 Display the current function name, if any, in the minibuffer.
 Additionally, if a prefix argument is given, push the function name to
 the kill ring.  If there is no current function,
@@ -1784,7 +1784,7 @@ customizable option @code{isearch-allow-scroll} to 
address@hidden
 @item @kbd{C-c C-\} (@code{c-backslash-region})
 @kindex C-c C-\
 @findex c-backslash-region
address@hidden backslash-region (c-)
address@hidden backslash-region @r{(c-)}
 This function inserts and aligns or deletes end-of-line backslashes in
 the current region.  These are typically used in multi-line macros.
 
@@ -1814,7 +1814,7 @@ with the trailing backslashes.
 @item @kbd{C-c C-e} (@code{c-macro-expand})
 @kindex C-c C-e
 @findex c-macro-expand
address@hidden macro-expand (c-)
address@hidden macro-expand @r{(c-)}
 This command expands C, C++, Objective C or Pike macros in the region,
 using an appropriate external preprocessor program.  Normally it
 displays its output in a temporary buffer, but if you give it a prefix
@@ -2046,7 +2046,7 @@ or @code{font-lock-reference-face}, for lack of a closer 
equivalent.
 @item
 @vindex font-lock-warning-face
 @vindex c-invalid-face
address@hidden invalid-face (c-)
address@hidden invalid-face @r{(c-)}
 Some kinds of syntactic errors are fontified with
 @code{font-lock-warning-face} in Emacs.  In older XEmacs versions
 there's no corresponding standard face, so there a special
@@ -2071,7 +2071,7 @@ specially structured comments, e.g., the standard Javadoc 
tool in Java.
 the special markup inside them.
 
 @defopt c-doc-comment-style
address@hidden doc-comment-style (c-)
address@hidden doc-comment-style @r{(c-)}
 This is a style variable that specifies which documentation comment
 style to recognize, e.g., @code{javadoc} for Javadoc comments.
 
@@ -2096,7 +2096,7 @@ to do @kbd{M-x java-mode} (or whatever mode you're 
currently using) to
 reinitialize.
 
 @findex c-setup-doc-comment-style
address@hidden setup-doc-comment-style (c-)
address@hidden setup-doc-comment-style @r{(c-)}
 Note also that when @ccmode{} starts up, the other variables are
 modified before the mode hooks are run.  If you change this variable in
 a mode hook, you'll have to call @code{c-setup-doc-comment-style}
@@ -2163,7 +2163,7 @@ foo& bar
 @code{c-asymmetry-fontification-flag}.
 
 @defvar c-asymmetry-fontification-flag
address@hidden asymmetry-fontification-flag (c-)
address@hidden asymmetry-fontification-flag @r{(c-)}
 When @code{c-asymmetry-fontification-flag} is non-nil (which it is by
 default), code like the above, with white space either before or after
 the operator, but not both, is fontified as a declaration.  When the
@@ -2461,14 +2461,14 @@ hook.  Thus, any style settings done in these hooks 
will override
 those set by @code{c-default-style}.
 
 @defvar c-initialization-hook
address@hidden initialization-hook (c-)
address@hidden initialization-hook @r{(c-)}
 Hook run only once per Emacs session, when @ccmode{} is initialized.
 This is a good place to change key bindings (or add new ones) in any
 of the @ccmode{} key maps.  @xref{Sample Init File}.
 @end defvar
 
 @defvar c-mode-common-hook
address@hidden mode-common-hook (c-)
address@hidden mode-common-hook @r{(c-)}
 Common hook across all languages.  It's run immediately before the
 language specific hook.
 @end defvar
@@ -2528,7 +2528,7 @@ initialized.
 
 @item
 @vindex c-old-style-variable-behavior
address@hidden old-style-variable-behavior (c-)
address@hidden old-style-variable-behavior @r{(c-)}
 The default global binding of any style variable (with two exceptions
 - see below) is the special symbol @code{set-from-style}.  When the
 style system initializes a buffer-local copy of a style variable for a
@@ -2724,7 +2724,7 @@ To set a buffer's style interactively, use the command 
@kbd{C-c .}
 list, @ref{File Styles}.
 
 @defopt c-default-style
address@hidden default-style (c-)
address@hidden default-style @r{(c-)}
 This variable specifies which style to install by default in new
 buffers.  It takes either a style name string, or an association list
 of major mode symbols to style names:
@@ -2757,7 +2757,7 @@ The standard value of @code{c-default-style} is 
@address@hidden((java-mode
 @end defopt
 
 @defvar c-indentation-style
address@hidden indentation-style (c-)
address@hidden indentation-style @r{(c-)}
 This variable always contains the buffer's current style name, as a
 string.
 @end defvar
@@ -2827,7 +2827,7 @@ should never modify this variable directly.  Instead, 
@ccmode{}
 provides the function @code{c-add-style} for this purpose.
 
 @defun c-add-style stylename description &optional set-p
address@hidden add-style (c-)
address@hidden add-style @r{(c-)}
 Add or update a style called @var{stylename}, a string.
 @var{description} is the new style definition in the form described
 above.  If @var{stylename} already exists in @code{c-style-alist} then
@@ -2845,7 +2845,7 @@ style can be added and automatically set.  @xref{Sample 
Init File}.
 @end defun
 
 @defvar c-style-alist
address@hidden style-alist (c-)
address@hidden style-alist @r{(c-)}
 This is the variable that holds the definitions for the styles.  It
 should not be changed directly; use @code{c-add-style} instead.
 @end defvar
@@ -2881,9 +2881,9 @@ You can then set the guessed style in any @ccmode{} 
buffer with
 @findex c-guess-no-install
 @findex c-guess-buffer-no-install
 @findex c-guess-region-no-install
address@hidden guess-no-install (c-)
address@hidden guess-buffer-no-install (c-)
address@hidden guess-region-no-install (c-)
address@hidden guess-no-install @r{(c-)}
address@hidden guess-buffer-no-install @r{(c-)}
address@hidden guess-region-no-install @r{(c-)}
 These commands analyze a part of the current buffer and guess the
 style from it.
 
@@ -2904,9 +2904,9 @@ guesses before forming the guessed style.
 @findex c-guess
 @findex c-guess-buffer
 @findex c-guess-region
address@hidden guess (c-)
address@hidden guess-buffer (c-)
address@hidden guess-region (c-)
address@hidden guess @r{(c-)}
address@hidden guess-buffer @r{(c-)}
address@hidden guess-region @r{(c-)}
 These commands analyze a part of the current buffer, guess the style
 from it, then install the guessed style on the buffer.  The guessed
 style is given a name based on the buffer's absolute file name, and
@@ -2922,14 +2922,14 @@ guesses before forming the guessed style.
 @end table
 
 @defopt c-guess-region-max
address@hidden guess-region-max (c-)
address@hidden guess-region-max @r{(c-)}
 This variable, default 50000, is the size in bytes of the buffer
 portion examined by c-guess and c-guess-no-install.  If set to
 @code{nil}, the entire buffer is examined.
 @end defopt
 
 @defopt c-guess-offset-threshold
address@hidden guess-offset-threshold (c-)
address@hidden guess-offset-threshold @r{(c-)}
 This variable, default 10, is the maximum offset, either outwards or
 inwards, which will be taken into account by the analysis process.
 Any offset bigger than this will be ignored.  For no limit, set this
@@ -2939,7 +2939,7 @@ variable to a large number.
 @table @asis
 @item  @kbd{M-x c-guess-install}
 @findex c-guess-install
address@hidden guess-install (c-)
address@hidden guess-install @r{(c-)}
 
 Set the current buffer's style to the guessed style.  This prompts you
 to enter an optional new style name to give to the guessed style.  By
@@ -2948,7 +2948,7 @@ can then use this style like any other.
 
 @item  @kbd{M-x c-guess-view}
 @findex c-guess-view
address@hidden guess-view (c-)
address@hidden guess-view @r{(c-)}
 Display the most recently guessed style in a temporary buffer.  This
 display is in the form of a @code{c-add-style} form (@pxref{Adding
 Styles}) which can be easily copied to your @file{.emacs}.  You will
@@ -2994,14 +2994,14 @@ Don't use them anywhere else!  These allow you to 
customize the style
 on a per-file basis:
 
 @defvar c-file-style
address@hidden file-style (c-)
address@hidden file-style @r{(c-)}
 Set this variable to a style name string in the Local Variables list.
 From now on, when you visit the file, @ccmode{} will automatically set
 the file's style to this one using @code{c-set-style}.
 @end defvar
 
 @defvar c-file-offsets
address@hidden file-offsets (c-)
address@hidden file-offsets @r{(c-)}
 Set this variable (in the Local Variables list) to an association list
 of the same format as @code{c-offsets-alist}.  From now on, when you
 visit the file, @ccmode{} will automatically institute these offsets
@@ -3034,7 +3034,7 @@ this by hooking in on the different line breaking 
functions and tuning
 relevant variables as necessary.
 
 @vindex c-comment-prefix-regexp
address@hidden comment-prefix-regexp (c-)
address@hidden comment-prefix-regexp @r{(c-)}
 @cindex comment line prefix
 @vindex comment-start
 @vindex comment-end
@@ -3055,7 +3055,7 @@ address@hidden@code{comment-start}, @code{comment-end},
 according to the language syntax and the comment line prefix.
 
 @defopt c-comment-prefix-regexp
address@hidden comment-prefix-regexp (c-)
address@hidden comment-prefix-regexp @r{(c-)}
 This style variable contains the regexp used to recognize the
 @dfn{comment line prefix}, which is the line decoration that starts
 every line in a comment.  The variable is either the comment line
@@ -3092,7 +3092,7 @@ this variable, please make sure it still matches the 
comment starter
 block comments.
 
 @findex c-setup-paragraph-variables
address@hidden setup-paragraph-variables (c-)
address@hidden setup-paragraph-variables @r{(c-)}
 Also note that since @ccmode{} uses the value of
 @code{c-comment-prefix-regexp} to set up several other variables at
 mode initialization, there won't be any effect if you just change it
@@ -3128,7 +3128,7 @@ margins of the texts kept intact:
 @end example
 
 @findex c-setup-filladapt
address@hidden setup-filladapt (c-)
address@hidden setup-filladapt @r{(c-)}
 @findex filladapt-mode
 @vindex filladapt-mode
 @cindex Filladapt mode
@@ -3153,9 +3153,9 @@ something like this in your @file{.emacs}:
 @end example
 
 @defopt c-block-comment-prefix
address@hidden block-comment-prefix (c-)
address@hidden block-comment-prefix @r{(c-)}
 @vindex c-comment-continuation-stars
address@hidden comment-continuation-stars (c-)
address@hidden comment-continuation-stars @r{(c-)}
 Normally the comment line prefix inserted for a new line inside a
 comment is deduced from other lines in it.  However there's one
 situation when there's no hint about what the prefix should look like,
@@ -3193,7 +3193,7 @@ most common comment styles, see @ref{Line-Up Functions}.
 @end defopt
 
 @defopt c-ignore-auto-fill
address@hidden ignore-auto-fill (c-)
address@hidden ignore-auto-fill @r{(c-)}
 When auto fill mode is enabled, @ccmode{} can selectively ignore it
 depending on the context the line break would occur in, e.g., to never
 break a line automatically inside a string literal.  This variable
@@ -3346,7 +3346,7 @@ newline both before and after the brace.  In place of a
 is useful when the auto newlines depend on the code around the brace.
 
 @defopt c-hanging-braces-alist
address@hidden hanging-braces-alist (c-)
address@hidden hanging-braces-alist @r{(c-)}
 
 This variable is an association list which maps syntactic symbols to
 lists of places to insert a newline.  @xref{Association
@@ -3454,7 +3454,7 @@ themselves.
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 @vindex c-hanging-braces-alist
address@hidden hanging-braces-alist (c-)
address@hidden hanging-braces-alist @r{(c-)}
 @cindex action functions
 Syntactic symbols aren't the only place where you can customize
 @ccmode{} with the lisp equivalent of callback functions.  Remember
@@ -3475,7 +3475,7 @@ some combination of @code{before} and @code{after}, 
including neither
 of them (i.e., @code{nil}).
 
 @defvar c-syntactic-context
address@hidden syntactic-context (c-)
address@hidden syntactic-context @r{(c-)}
 During the call to the indentation or brace hanging @var{action}
 function, this variable is bound to the full syntactic analysis list.
 This might be, for example, @samp{((block-close 73))}.  Don't ever
@@ -3528,7 +3528,7 @@ associate the @code{block-close} symbol with the 
@var{action} function
 @end example
 
 @findex c-snug-do-while
address@hidden snug-do-while (c-)
address@hidden snug-do-while @r{(c-)}
 This function simply looks to see if the brace closes a ``do-while''
 clause and if so, returns the list @samp{(before)} indicating
 that a newline should be inserted before the brace, but not after it.
@@ -3544,7 +3544,7 @@ that the brace appears on a line by itself.
 
 @cindex customization, colon hanging
 @vindex c-hanging-colons-alist
address@hidden hanging-colons-alist (c-)
address@hidden hanging-colons-alist @r{(c-)}
 
 Using a mechanism similar to brace hanging (@pxref{Hanging Braces}),
 colons can also be made to hang using the style variable
@@ -3556,7 +3556,7 @@ syntactic symbol in the alist, no newlines are inserted 
around the
 newly typed colon.
 
 @defopt c-hanging-colons-alist
address@hidden hanging-colons-alist (c-)
address@hidden hanging-colons-alist @r{(c-)}
 
 @table @asis
 @item The Key: the syntactic symbol
@@ -3589,7 +3589,7 @@ them are controlled by a different mechanism, called 
@dfn{clean-ups} in
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 @defopt c-hanging-semi&comma-criteria
address@hidden hanging-semi&comma-criteria (c-)
address@hidden hanging-semi&comma-criteria @r{(c-)}
 This style variable takes a list of functions; these get called when
 you type a semicolon or comma.  The functions are called in order
 without arguments.  When these functions are entered, point is just
@@ -3624,7 +3624,7 @@ semicolons, apart from those separating @code{for}-clause 
statements.
 @end defopt
 
 @defun c-semi&comma-no-newlines-before-nonblanks
address@hidden semi&comma-no-newlines-before-nonblanks (c-)
address@hidden semi&comma-no-newlines-before-nonblanks @r{(c-)}
 This is an example of a criteria function, provided by @ccmode{}.  It
 prevents newlines from being inserted after semicolons when there is a
 non-blank following line.  Otherwise, it makes no determination.  To
@@ -3644,9 +3644,9 @@ use, add this function to the front of the
 @end defun
 
 @defun c-semi&comma-inside-parenlist
address@hidden semi&comma-inside-parenlist (c-)
address@hidden semi&comma-inside-parenlist @r{(c-)}
 @defunx c-semi&comma-no-newlines-for-oneline-inliners
address@hidden semi&comma-no-newlines-for-oneline-inliners (c-)
address@hidden semi&comma-no-newlines-for-oneline-inliners @r{(c-)}
 The function @code{c-semi&comma-inside-parenlist} is what prevents
 newlines from being inserted inside the parenthesis list of @code{for}
 statements.  In addition to
@@ -3687,7 +3687,7 @@ of the construct, and (apart from 
@code{comment-close-slash}) when the
 construct does not occur within a literal (@pxref{Auto-newlines}).
 
 @defopt c-cleanup-list
address@hidden cleanup-list (c-)
address@hidden cleanup-list @r{(c-)}
 @cindex literal
 
 You configure @ccmode{}'s clean-ups by setting the style variable
@@ -3870,7 +3870,7 @@ BEGIN @{FS = "\t"@} # use <TAB> as a field separator
 @end example
 
 @defopt c-max-one-liner-length
address@hidden max-one-liner-length (c-)
address@hidden max-one-liner-length @r{(c-)}
 The maximum length of the resulting line for which the clean-up
 @code{one-liner-defun} will be triggered.  This length is that of the entire
 line, including any leading whitespace and any trailing comment.  Its
@@ -3953,7 +3953,7 @@ it by setting @code{c-syntactic-indentation} to 
@code{nil}.  (To set
 the variable interactively, @ref{Minor Modes}).
 
 @defopt c-syntactic-indentation
address@hidden syntactic-indentation (c-)
address@hidden syntactic-indentation @r{(c-)}
 When this is address@hidden (which it is by default), the indentation
 of code is done according to its syntactic structure.  When it's
 @code{nil}, every line is just indented to the same level as the
@@ -3988,7 +3988,7 @@ Line-up functions (@pxref{Custom Line-Up}) or in 
functions on
 @code{c-special-indent-hook} (@pxref{Other Indentation}).
 
 @defun c-guess-basic-syntax
address@hidden guess-basic-syntax (c-)
address@hidden guess-basic-syntax @r{(c-)}
 Determine the syntactic context of the current line.
 @end defun
 
@@ -4042,7 +4042,7 @@ report what the syntactic analysis is for the current 
line:
 @item @kbd{C-c C-s} (@code{c-show-syntactic-information})
 @kindex C-c C-s
 @findex c-show-syntactic-information
address@hidden show-syntactic-information (c-)
address@hidden show-syntactic-information @r{(c-)}
 This command calculates the syntactic analysis of the current line and
 displays it in the minibuffer.  The command also highlights the anchor
 position(s).
@@ -4138,7 +4138,7 @@ anchor position.
 
 @cindex syntactic symbols, brief list
 @vindex c-offsets-alist
address@hidden offsets-alist (c-)
address@hidden offsets-alist @r{(c-)}
 This section is a complete list of the syntactic symbols which appear
 in the @code{c-offsets-alist} style variable, along with brief
 descriptions.  The previous section (@pxref{Syntactic Analysis})
@@ -5284,7 +5284,7 @@ The simplest and most used kind of ``offset'' setting in
 @code{c-basic-offset}:
 
 @defopt c-basic-offset
address@hidden basic-offset (c-)
address@hidden basic-offset @r{(c-)}
 This style variable holds the basic offset between indentation levels.
 It's factory default is 4, but all the built-in styles set it
 themselves, to some value between 2 (for @code{gnu} style) and 8 (for
@@ -5322,7 +5322,7 @@ indentation.  Details of how to set it up, and its 
relationship to
 @ccmode{}'s style system are given in @ref{Style Variables}.
 
 @defopt c-offsets-alist
address@hidden offsets-alist (c-)
address@hidden offsets-alist @r{(c-)}
 This is an alist which associates an offset with each syntactic
 symbol.  This @dfn{offset} is a rule specifying how to indent a line
 whose syntactic context matches the symbol.  @xref{Syntactic
@@ -5355,7 +5355,7 @@ of these kinds of offsets:
 @end defopt
 
 @deffn Command c-set-offset (@kbd{C-c C-o})
address@hidden set-offset (c-)
address@hidden set-offset @r{(c-)}
 @kindex C-c C-o
 This command changes the entry for a syntactic symbol in the current
 binding of @code{c-offsets-alist}, or it inserts a new entry if there
@@ -5470,7 +5470,7 @@ will be combined according to the method @code{first}.
 @end table
 
 @vindex c-strict-syntax-p
address@hidden strict-syntax-p (c-)
address@hidden strict-syntax-p @r{(c-)}
 If an offset specification evaluates to @code{nil}, then a relative
 offset of 0 (zero) is address@hidden is however a variable
 @code{c-strict-syntax-p} that when set to address@hidden will cause an
@@ -5575,7 +5575,7 @@ adjustments.
 
 @c Move this bit to "Styles" (2005/10/7)
 @deffn Command c-set-offset symbol offset
address@hidden set-offset (c-)
address@hidden set-offset @r{(c-)}
 @kindex C-c C-o
 This is the command bound to @kbd{C-c C-o}.  It provides a convenient
 way to set offsets on @code{c-offsets-alist} both interactively (see
@@ -5671,7 +5671,7 @@ The line-up functions here calculate the indentation for 
braces,
 parentheses and statements within brace blocks.
 
 @defun c-lineup-close-paren
address@hidden lineup-close-paren (c-)
address@hidden lineup-close-paren @r{(c-)}
 Line up the closing paren under its corresponding open paren if the
 open paren is followed by code.  If the open paren ends its line, no
 indentation is added.  E.g.:
@@ -5707,7 +5707,7 @@ open parenthesis of the argument list, the indentation is
 
 @anchor{c-lineup-arglist-close-under-paren}
 @defun c-lineup-arglist-close-under-paren
address@hidden lineup-arglist-close-under-paren (c-)
address@hidden lineup-arglist-close-under-paren @r{(c-)}
 Set your @code{arglist-close} syntactic symbol to this line-up function
 so that parentheses that close argument lists will line up under the
 parenthesis that opened the argument list.  It can also be used with
@@ -5727,7 +5727,7 @@ discussion of this ``DWIM'' measure.
 @comment ------------------------------------------------------------
 
 @defun c-indent-one-line-block
address@hidden indent-one-line-block (c-)
address@hidden indent-one-line-block @r{(c-)}
 Indent a one line block @code{c-basic-offset} extra.  E.g.:
 
 @example
@@ -5761,7 +5761,7 @@ which makes the function usable in list expressions.
 @comment ------------------------------------------------------------
 
 @defun c-indent-multi-line-block
address@hidden indent-multi-line-block (c-)
address@hidden indent-multi-line-block @r{(c-)}
 Indent a multiline block @code{c-basic-offset} extra.  E.g.:
 
 @example
@@ -5797,7 +5797,7 @@ block, which makes the function usable in list 
expressions.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-runin-statements
address@hidden lineup-runin-statements (c-)
address@hidden lineup-runin-statements @r{(c-)}
 Line up statements for coding standards which place the first statement
 in a block on the same line as the block opening address@hidden
 style doesn't really work too well.  You might need to write your own
@@ -5822,7 +5822,7 @@ expressions.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-inexpr-block
address@hidden lineup-inexpr-block (c-)
address@hidden lineup-inexpr-block @r{(c-)}
 This can be used with the in-expression block symbols to indent the
 whole block to the column where the construct is started.  E.g., for Java
 anonymous classes, this lines up the class under the @samp{new} keyword,
@@ -5837,7 +5837,7 @@ construct.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-after-whitesmith-blocks
address@hidden lineup-after-whitesmith-blocks (c-)
address@hidden lineup-after-whitesmith-blocks @r{(c-)}
 Compensate for Whitesmith style indentation of blocks.  Due to the way
 @ccmode{} calculates anchor positions for normal lines inside blocks,
 this function is necessary for those lines to get correct Whitesmith
@@ -5882,7 +5882,7 @@ indents relative to the surrounding block just like
 @comment ------------------------------------------------------------
 
 @defun c-lineup-whitesmith-in-block
address@hidden lineup-whitesmith-in-block (c-)
address@hidden lineup-whitesmith-in-block @r{(c-)}
 Line up lines inside a block in Whitesmith style.  It's done in a way
 that works both when the opening brace hangs and when it doesn't.  E.g.:
 
@@ -5932,7 +5932,7 @@ for indenting a close parenthesis, is also useful for the 
lines
 contained within parentheses.
 
 @defun c-lineup-arglist
address@hidden lineup-arglist (c-)
address@hidden lineup-arglist @r{(c-)}
 Line up the current argument line under the first argument.
 
 As a special case, if an argument on the same line as the open
@@ -5960,7 +5960,7 @@ indent such cases this way.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-arglist-intro-after-paren
address@hidden lineup-arglist-intro-after-paren (c-)
address@hidden lineup-arglist-intro-after-paren @r{(c-)}
 Line up a line to just after the open paren of the surrounding paren or
 brace block.
 
@@ -5972,7 +5972,7 @@ brace block.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-multi-inher
address@hidden lineup-multi-inher (c-)
address@hidden lineup-multi-inher @r{(c-)}
 Line up the classes in C++ multiple inheritance clauses and member
 initializers under each other.  E.g.:
 
@@ -6012,7 +6012,7 @@ Foo::Foo (int a, int b)
 @comment ------------------------------------------------------------
 
 @defun c-lineup-java-inher
address@hidden lineup-java-inher (c-)
address@hidden lineup-java-inher @r{(c-)}
 Line up Java implements and extends declarations.  If class names
 follow on the same line as the @samp{implements}/@samp{extends}
 keyword, they are lined up under each other.  Otherwise, they are
@@ -6045,7 +6045,7 @@ class Foo
 @comment ------------------------------------------------------------
 
 @defun c-lineup-java-throws
address@hidden lineup-java-throws (c-)
address@hidden lineup-java-throws @r{(c-)}
 Line up Java throws declarations.  If exception names follow on the
 same line as the throws keyword, they are lined up under each other.
 Otherwise, they are indented by adding @code{c-basic-offset} to the
@@ -6079,7 +6079,7 @@ int foo() throws Cyphr,
 @comment ------------------------------------------------------------
 
 @defun c-lineup-template-args
address@hidden lineup-template-args (c-)
address@hidden lineup-template-args @r{(c-)}
 Line up the arguments of a template argument list under each other, but
 only in the case where the first argument is on the same line as the
 opening @samp{<}.
@@ -6093,7 +6093,7 @@ returned if there's no template argument on the first 
line.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-ObjC-method-call
address@hidden lineup-ObjC-method-call (c-)
address@hidden lineup-ObjC-method-call @r{(c-)}
 For Objective-C code, line up selector args as Emacs Lisp mode does
 with function args: go to the position right after the message receiver,
 and if you are at the end of the line, indent the current line
@@ -6107,7 +6107,7 @@ lineup the current line with it.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-ObjC-method-args
address@hidden lineup-ObjC-method-args (c-)
address@hidden lineup-ObjC-method-args @r{(c-)}
 For Objective-C code, line up the colons that separate args.  The colon
 on the current line is aligned with the one on the first line.
 
@@ -6117,7 +6117,7 @@ on the current line is aligned with the one on the first 
line.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-ObjC-method-args-2
address@hidden lineup-ObjC-method-args-2 (c-)
address@hidden lineup-ObjC-method-args-2 @r{(c-)}
 Similar to @code{c-lineup-ObjC-method-args} but lines up the colon on
 the current line with the colon on the previous line.
 
@@ -6135,7 +6135,7 @@ start with an operator, by lining it up with something on 
the previous
 line.
 
 @defun c-lineup-argcont
address@hidden lineup-argcont (c-)
address@hidden lineup-argcont @r{(c-)}
 Line up a continued argument.  E.g.:
 
 @example
@@ -6158,7 +6158,7 @@ expressions for the operands.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-arglist-operators
address@hidden lineup-arglist-operators (c-)
address@hidden lineup-arglist-operators @r{(c-)}
 Line up lines starting with an infix operator under the open paren.
 Return @code{nil} on lines that don't start with an operator, to leave
 those cases to other line-up functions.  Example:
@@ -6192,7 +6192,7 @@ suggestion to get a consistent style):
 @comment ------------------------------------------------------------
 
 @defun c-lineup-assignments
address@hidden lineup-assignments (c-)
address@hidden lineup-assignments @r{(c-)}
 Line up the current line after the assignment operator on the first line
 in the statement.  If there isn't any, return @code{nil} to allow stacking with
 other line-up functions.  If the current line contains an assignment
@@ -6206,7 +6206,7 @@ operator too, try to align it with the first one.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-math
address@hidden lineup-math (c-)
address@hidden lineup-math @r{(c-)}
 Like @code{c-lineup-assignments} but indent with @code{c-basic-offset}
 if no assignment operator was found on the first line.  I.e., this
 function is the same as specifying a list @code{(c-lineup-assignments
@@ -6219,7 +6219,7 @@ function is the same as specifying a list 
@code{(c-lineup-assignments
 @comment ------------------------------------------------------------
 
 @defun c-lineup-cascaded-calls
address@hidden lineup-cascaded-calls (c-)
address@hidden lineup-cascaded-calls @r{(c-)}
 Line up ``cascaded calls'' under each other.  If the line begins with
 @code{->} or @code{.} and the preceding line ends with one or more
 function calls preceded by the same token, then the arrow is lined up
@@ -6243,7 +6243,7 @@ expressions.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-streamop
address@hidden lineup-streamop (c-)
address@hidden lineup-streamop @r{(c-)}
 Line up C++ stream operators (i.e., @samp{<<} and @samp{>>}).
 
 @workswith @code{stream-op}.
@@ -6252,7 +6252,7 @@ Line up C++ stream operators (i.e., @samp{<<} and 
@samp{>>}).
 @comment ------------------------------------------------------------
 
 @defun c-lineup-string-cont
address@hidden lineup-string-cont (c-)
address@hidden lineup-string-cont @r{(c-)}
 Line up a continued string under the one it continues.  A continued
 string in this sense is where a string literal follows directly after
 another one.  E.g.:
@@ -6282,7 +6282,7 @@ The lineup functions here calculate the indentation for 
several types
 of comment structure.
 
 @defun c-lineup-C-comments
address@hidden lineup-C-comments (c-)
address@hidden lineup-C-comments @r{(c-)}
 Line up C block comment continuation lines.  Various heuristics are used
 to handle most of the common comment styles.  Some examples:
 
@@ -6334,13 +6334,13 @@ line inside a comment.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-comment
address@hidden lineup-comment (c-)
address@hidden lineup-comment @r{(c-)}
 Line up a comment-only line according to the style variable
 @code{c-comment-only-line-offset}.  If the comment is lined up with a
 comment starter on the previous line, that alignment is preserved.
 
 @defopt c-comment-only-line-offset
address@hidden comment-only-line-offset (c-)
address@hidden comment-only-line-offset @r{(c-)}
 This style variable specifies the extra offset for the line.  It can
 contain an integer or a cons cell of the form
 
@@ -6361,7 +6361,7 @@ is equivalent to @code{(@address@hidden . -1000)}.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-knr-region-comment
address@hidden lineup-knr-region-comment (c-)
address@hidden lineup-knr-region-comment @r{(c-)}
 Line up a comment in the ``K&R region'' with the declaration.  That is
 the region between the function or class header and the beginning of the
 block.  E.g.:
@@ -6392,7 +6392,7 @@ The line-up functions here are the odds and ends which 
didn't fit into
 any earlier category.
 
 @defun c-lineup-dont-change
address@hidden lineup-dont-change (c-)
address@hidden lineup-dont-change @r{(c-)}
 This lineup function makes the line stay at whatever indentation it
 already has; think of it as an identity function for lineups.
 
@@ -6413,7 +6413,7 @@ disregarded.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-cpp-define
address@hidden lineup-cpp-define (c-)
address@hidden lineup-cpp-define @r{(c-)}
 Line up macro continuation lines according to the indentation of the
 construct preceding the macro.  E.g.:
 
@@ -6502,7 +6502,7 @@ described above.
 @comment ------------------------------------------------------------
 
 @defun c-lineup-gcc-asm-reg
address@hidden lineup-gcc-asm-reg (c-)
address@hidden lineup-gcc-asm-reg @r{(c-)}
 Line up a gcc asm register under one on a previous line.
 
 @example
@@ -6534,7 +6534,7 @@ arglist lineups, e.g.:
 @comment ------------------------------------------------------------
 
 @defun c-lineup-topmost-intro-cont
address@hidden lineup-topmost-intro-cont (c-)
address@hidden lineup-topmost-intro-cont @r{(c-)}
 Line up declaration continuation lines zero or one indentation
 address@hidden function is mainly provided to mimic the behavior of
 CC Mode 5.28 and earlier where this case wasn't handled consistently so
@@ -6644,9 +6644,9 @@ your setup for this by using the access functions
 (@code{c-langelem-sym}, etc.)@: described below.
 
 @vindex c-syntactic-element
address@hidden syntactic-element (c-)
address@hidden syntactic-element @r{(c-)}
 @vindex c-syntactic-context
address@hidden syntactic-context (c-)
address@hidden syntactic-context @r{(c-)}
 Some syntactic symbols, e.g., @code{arglist-cont-nonempty}, have more
 info in the syntactic element: typically other positions that can be
 interesting besides the anchor position.  That info can't be accessed
@@ -6664,24 +6664,24 @@ used in the line-up function argument and the new list 
form used in
 @code{c-syntactic-element} and everywhere else.  The functions are:
 
 @defun c-langelem-sym langelem
address@hidden langelem-sym (c-)
address@hidden langelem-sym @r{(c-)}
 Return the syntactic symbol in @var{langelem}.
 @end defun
 
 @defun c-langelem-pos langelem
address@hidden langelem-pos (c-)
address@hidden langelem-pos @r{(c-)}
 Return the anchor position in @var{langelem}, or @code{nil} if there is none.
 @end defun
 
 @defun c-langelem-col langelem &optional preserve-point
address@hidden langelem-col (c-)
address@hidden langelem-col @r{(c-)}
 Return the column of the anchor position in @var{langelem}.  Also move
 the point to that position unless @var{preserve-point} is
 address@hidden
 @end defun
 
 @defun c-langelem-2nd-pos langelem
address@hidden langelem-2nd-pos (c-)
address@hidden langelem-2nd-pos @r{(c-)}
 Return the secondary position in @var{langelem}, or @code{nil} if there
 is none.
 
@@ -6712,20 +6712,20 @@ see @xref{Macros with ;}.
 Here are the remaining odds and ends regarding indentation:
 
 @defopt c-label-minimum-indentation
address@hidden label-minimum-indentation (c-)
address@hidden label-minimum-indentation @r{(c-)}
 In @samp{gnu} style (@pxref{Built-in Styles}), a minimum indentation is
 imposed on lines inside code blocks.  This minimum indentation is
 controlled by this style variable.  The default value is 1.
 
 @findex c-gnu-impose-minimum
address@hidden gnu-impose-minimum (c-)
address@hidden gnu-impose-minimum @r{(c-)}
 It's the function @code{c-gnu-impose-minimum} that enforces this minimum
 indentation.  It must be present on @code{c-special-indent-hook} to
 work.
 @end defopt
 
 @defopt c-special-indent-hook
address@hidden special-indent-hook (c-)
address@hidden special-indent-hook @r{(c-)}
 This style variable is a standard hook variable that is called after
 every line is indented by @ccmode{}.  It is called only if
 @code{c-syntactic-indentation} is address@hidden (which it is by
@@ -6772,7 +6772,7 @@ each other as though they were code.  You can suppress 
this behavior
 by setting the following user option:
 
 @defopt c-syntactic-indentation-in-macros
address@hidden syntactic-indentation-in-macros (c-)
address@hidden syntactic-indentation-in-macros @r{(c-)}
 Enable syntactic analysis inside macros, which is the default.  If this
 is @code{nil}, all lines inside macro definitions are analyzed as
 @code{cpp-macro-cont}.
@@ -6808,9 +6808,9 @@ backslashes in macros neat and tidy.  Their precise 
action is
 customized with these variables:
 
 @defopt c-backslash-column
address@hidden backslash-column (c-)
address@hidden backslash-column @r{(c-)}
 @defoptx c-backslash-max-column
address@hidden backslash-max-column (c-)
address@hidden backslash-max-column @r{(c-)}
 These variables control the alignment columns for line continuation
 backslashes in multiline macros.  They are used by the functions that
 automatically insert or align such backslashes,
@@ -6831,7 +6831,7 @@ the automatic alignment of backslashes, use
 @end defopt
 
 @defopt c-auto-align-backslashes
address@hidden auto-align-backslashes (c-)
address@hidden auto-align-backslashes @r{(c-)}
 Align automatically inserted line continuation backslashes if
 address@hidden  When line continuation backslashes are inserted
 automatically for line breaks in multiline macros, e.g., by
@@ -6862,7 +6862,7 @@ You can prevent these by specifying which macros have 
semicolons.  It
 doesn't matter whether or not such a macro has a parameter list:
 
 @defopt c-macro-names-with-semicolon
address@hidden macro-names-with-semicolon (c-)
address@hidden macro-names-with-semicolon @r{(c-)}
 This buffer-local variable specifies which macros have semicolons.
 After setting its value, you need to call
 @code{c-make-macro-with-semi-re} for it to take effect.  It should be
@@ -6894,7 +6894,7 @@ example:
 @end defopt
 
 @defun c-make-macro-with-semi-re
address@hidden make-macro-with-semi-re (c-)
address@hidden make-macro-with-semi-re @r{(c-)}
 Call this (non-interactive) function, which sets internal variables,
 each time you change the value of @code{c-macro-names-with-semicolon}
 after the major mode function has run.  It takes no arguments, and its
@@ -6921,7 +6921,7 @@ can prevent this confusion by specifying the identifiers 
which
 constitute noise macros.
 
 @defopt c-noise-macro-names
address@hidden noise-macro-names (c-)
address@hidden noise-macro-names @r{(c-)}
 This variable is a list of names of noise macros which never have
 parenthesized arguments.  Each element is a string, and must be a
 valid identifier.  An element in @code{c-noise-macro-names} must not
@@ -6930,7 +6930,7 @@ treated as whitespace by @ccmode{}.
 @end defopt
 
 @defopt c-noise-macro-with-parens-names
address@hidden noise-macro-with-parens-names (c-)
address@hidden noise-macro-with-parens-names @r{(c-)}
 This variable is a list of names of noise macros which optionally have
 arguments in parentheses.  Each element of the list is a string, and
 must be a valid identifier.  An element in
@@ -6949,7 +6949,7 @@ but doing so is OK.
 @end defopt
 
 @defun c-make-noise-macro-regexps
address@hidden make-noise-macro-regexps (c-)
address@hidden make-noise-macro-regexps @r{(c-)}
 Call this (non-interactive) function, which sets internal variables,
 on changing the value of @code{c-noise-macro-names} or
 @code{c-noise-macro-with-parens-names} after the major mode's function
@@ -6966,7 +6966,7 @@ after the mode hooks have run.
 The stuff that didn't fit in anywhere else is documented here.
 
 @defopt c-require-final-newline
address@hidden require-final-newline (c-)
address@hidden require-final-newline @r{(c-)}
 Controls whether a final newline is enforced when the file is saved.
 The value is an association list that for each language mode specifies
 the value to give to @code{require-final-newline} (@pxref{Saving
@@ -6980,7 +6980,7 @@ These are C, C++ and Objective-C.
 @end defopt
 
 @defopt c-echo-syntactic-information-p
address@hidden echo-syntactic-information-p (c-)
address@hidden echo-syntactic-information-p @r{(c-)}
 If address@hidden, the syntactic analysis for the current line is shown
 in the echo area when it's indented (unless
 @code{c-syntactic-indentation} is @code{nil}).  That's useful when
@@ -6989,7 +6989,7 @@ want.
 @end defopt
 
 @defopt c-report-syntactic-errors
address@hidden report-syntactic-errors (c-)
address@hidden report-syntactic-errors @r{(c-)}
 If address@hidden, certain syntactic errors are reported with a ding and
 a message, for example when an @code{else} is indented for which there
 is no corresponding @code{if}.
@@ -7106,7 +7106,7 @@ except perhaps when you've just moved a long way inside 
the file.
 
 @findex defun-prompt-regexp
 @vindex c-Java-defun-prompt-regexp
address@hidden Java-defun-prompt-regexp (c-)
address@hidden Java-defun-prompt-regexp @r{(c-)}
 A special note about @code{defun-prompt-regexp} in Java mode: The common
 style is to hang the opening braces of functions and classes on the
 right side of the line, and that doesn't work well with the Emacs
@@ -7132,7 +7132,7 @@ typically gives good performance even when the code 
doesn't fit the
 Emacs approach to finding the defun starts.
 
 @vindex c-enable-xemacs-performance-kludge-p
address@hidden enable-xemacs-performance-kludge-p (c-)
address@hidden enable-xemacs-performance-kludge-p @r{(c-)}
 XEmacs users can set the variable
 @code{c-enable-xemacs-performance-kludge-p} to address@hidden  This
 tells @ccmode{} to use XEmacs-specific built-in functions which, in some
@@ -7390,7 +7390,7 @@ compatibility, etc.@: are all available on the web site:
 
 @kindex C-c C-b
 @findex c-submit-bug-report
address@hidden submit-bug-report (c-)
address@hidden submit-bug-report @r{(c-)}
 To report bugs, use the @kbd{C-c C-b} (bound to
 @code{c-submit-bug-report}) command.  This provides vital information
 we need to reproduce your problem.  Make sure you include a concise,
diff --git a/doc/misc/dired-x.texi b/doc/misc/dired-x.texi
index 8566c7c..130c06b 100644
--- a/doc/misc/dired-x.texi
+++ b/doc/misc/dired-x.texi
@@ -640,7 +640,7 @@ A address@hidden value means that @samp{-q} is passed to 
@code{gzip}
 overriding a verbose option in the @env{GZIP} environment variable.
 
 @item dired-guess-shell-znew-switches nil
address@hidden dired-guess-shell-znew-switches nil
address@hidden dired-guess-shell-znew-switches
 @cindex @code{znew}
 Default: @code{nil}
 
@@ -649,7 +649,7 @@ A string of switches passed to @code{znew}.  An example is
 smaller than the @file{.gz} file.
 
 @item dired-shell-command-history nil
address@hidden dired-shell-command-history nil
address@hidden dired-shell-command-history
 
 History list for commands that read dired-shell commands.
 @end table
@@ -733,7 +733,7 @@ and an optional argument @var{marker-char} specifies the 
marker used.
 @findex dired-mark-suffix
 Mark all files with a certain suffix for use in later commands.  A @samp{.}
 is not automatically prepended to the string entered, you must type it
-explicitly.  This is different from @var{dired-mark-extension} which prepends
+explicitly.  This is different from @code{dired-mark-extension} which prepends
 a @samp{.} if not present.
 If invoked with prefix argument @kbd{C-u}, this command unmarks files instead.
 If called with the @kbd{C-u C-u} prefix, asks for a character to use
diff --git a/doc/misc/ediff.texi b/doc/misc/ediff.texi
index 3547af3..e488fc0 100644
--- a/doc/misc/ediff.texi
+++ b/doc/misc/ediff.texi
@@ -345,7 +345,7 @@ file name will be appended to that directory.  In addition, 
if the variable
 @code{ediff-use-last-dir} is not @code{nil}, Ediff will offer
 previously entered directories as defaults (which will be maintained
 separately for each type of file, A, B, or C).
address@hidden @code{ediff-use-last-dir}
address@hidden ediff-use-last-dir
 
 All the above functions use the POSIX @code{diff} or @code{diff3} programs
 to find differences between two files.  They process the @code{diff} output
@@ -1924,7 +1924,7 @@ versions only permit @option{-b}, which (usually) assumes 
the
 extension @file{.orig}.  Yet others force you to use
 @address@hidden
 
-Both @code{ediff-backup-extension} and @var{ediff-backup-specs} must
+Both @code{ediff-backup-extension} and @code{ediff-backup-specs} must
 be properly set.  If your patch program takes the option @option{-b},
 but not @option{-b @var{extension}}, the variable
 @code{ediff-backup-extension} must still be set so Ediff will know
@@ -2304,7 +2304,7 @@ version control, Ediff first tries to check the file out.
 If @code{t}, all variant buffers are made read-only at Ediff startup.
 
 @item ediff-keep-variants
address@hidden @code{ediff-keep-variants}
address@hidden ediff-keep-variants
 The default is @code{t}, meaning that the buffers being compared or merged will
 be preserved when Ediff quits.  Setting this to @code{nil} causes Ediff to
 offer the user a chance to delete these buffers (if they are not modified).
@@ -2323,14 +2323,14 @@ Using @code{ediff-cleanup-hook}, one can make Ediff 
delete the variants
 unconditionally (e.g., by making @code{ediff-janitor} into one of these hooks).
 
 @item ediff-keep-tmp-versions
address@hidden @code{ediff-keep-tmp-versions}
address@hidden ediff-keep-tmp-versions
 Default is @code{nil}. If @code{t}, the versions of the files being
 compared or merged using operations such as @code{ediff-revision} or
 @code{ediff-merge-revisions} are not deleted on exit. The normal action is
 to clean up and delete these version files.
 
 @item ediff-grab-mouse
address@hidden @code{ediff-grab-mouse}
address@hidden ediff-grab-mouse
 Default is @code{t}.  Normally, Ediff grabs mouse and puts it in its
 control frame.  This is useful since the user can be sure that when he
 needs to type an Ediff command the focus will be in an appropriate Ediff's
diff --git a/doc/misc/epa.texi b/doc/misc/epa.texi
index 8c21a26..237617a 100644
--- a/doc/misc/epa.texi
+++ b/doc/misc/epa.texi
@@ -363,7 +363,7 @@ Similarly, when you save the buffer to a @file{foo.gpg} 
file,
 encrypted data is written.
 
 The file name pattern for encrypted files can be controlled by
address@hidden
address@hidden
 
 @defvar epa-file-name-regexp
 Regexp which matches filenames treated as encrypted.
@@ -392,7 +392,7 @@ public key encryption.
 @end deffn
 
 You can also change the default behavior with the variable
address@hidden
address@hidden
 
 @defvar epa-file-select-keys
 Control whether or not to pop up the key selection dialog.
diff --git a/doc/misc/gnus-faq.texi b/doc/misc/gnus-faq.texi
index 26135b8..4175c88 100644
--- a/doc/misc/gnus-faq.texi
+++ b/doc/misc/gnus-faq.texi
@@ -915,7 +915,7 @@ You want Scoring. Scoring means, that you define rules
 which assign each message an integer value. Depending on
 the value the message is highlighted in summary buffer (if
 it's high, say +2000) or automatically marked read (if the
-value is low, say -800) or some other action happens.
+value is low, say @minus{}800) or some other action happens.
 
 There are basically three ways of setting up rules which assign
 the scoring-value to messages. The first and easiest way is to set
diff --git a/doc/misc/gnus.texi b/doc/misc/gnus.texi
index 8c2fc56..17fbe0e 100644
--- a/doc/misc/gnus.texi
+++ b/doc/misc/gnus.texi
@@ -15179,7 +15179,7 @@ All new mail files will get this file mode.  The 
default is @code{#o600}.
 @item mail-source-movemail-program
 @vindex mail-source-movemail-program
 If address@hidden, name of program for fetching new mail.  If
address@hidden, @code{movemail} in @var{exec-directory}.
address@hidden, @code{movemail} in @code{exec-directory}.
 
 @end table
 
@@ -20281,13 +20281,13 @@ will be applied to each article.
 
 To take @code{gnus-del-mark} as an example---this alist says that all
 articles that have that mark (i.e., are marked with @samp{e}) will have a
-score entry added to lower based on the @code{From} header by -4, and
-lowered by @code{Subject} by -1.  Change this to fit your prejudices.
+score entry added to lower based on the @code{From} header by @minus{}4, and
+lowered by @code{Subject} by @minus{}1.  Change this to fit your prejudices.
 
 If you have marked 10 articles with the same subject with
 @code{gnus-del-mark}, the rule for that mark will be applied ten times.
-That means that that subject will get a score of ten times -1, which
-should be, unless I'm much mistaken, -10.
+That means that that subject will get a score of ten times @minus{}1, which
+should be, unless I'm much mistaken, @minus{}10.
 
 If you have auto-expirable (mail) groups (@pxref{Expiring Mail}), all
 the read articles will be marked with the @samp{E} mark.  This'll
@@ -20302,7 +20302,7 @@ on the @code{References} header using the 
@code{Message-ID} of the
 current article, thereby matching the following thread.
 
 If you use this scheme, you should set the score file atom @code{mark}
-to something small---like -300, perhaps, to avoid having small random
+to something small---like @minus{}300, perhaps, to avoid having small random
 changes result in articles getting marked as read.
 
 After using adaptive scoring for a week or so, Gnus should start to
@@ -21078,7 +21078,7 @@ and `gnus-score-decay-scale'."
 
 @enumerate
 @item
-Scores between -3 and 3 will be set to 0 when this function is called.
+Scores between @minus{}3 and 3 will be set to 0 when this function is called.
 
 @item
 Scores with magnitudes between 3 and 60 will be shrunk by 3.
diff --git a/doc/misc/mh-e.texi b/doc/misc/mh-e.texi
index 29caefd..5f0cc32 100644
--- a/doc/misc/mh-e.texi
+++ b/doc/misc/mh-e.texi
@@ -1163,7 +1163,7 @@ your initials. (Unless, of course, your initials happen 
to be @emph{mh}!)
 @cindex customizing MH-E
 @cindex setting options
 @findex customize-option
address@hidden mh-lpr-command-format, example
address@hidden address@hidden, example}
 
 Many string or integer options are easy to modify using @kbd{M-x
 customize-option}. For example, to modify the option that controls
@@ -1181,7 +1181,7 @@ Sessions}. To read more about 
@code{mh-lpr-command-format}, see
 @cindex option, turning on and off
 @cindex t
 @findex customize-option
address@hidden mh-bury-show-buffer-flag, example
address@hidden address@hidden, example}
 
 Options can also hold boolean values. In Emacs Lisp, the boolean
 values are @code{nil}, which means false, and @code{t}, which means
@@ -1196,7 +1196,7 @@ the @samp{Erase Customization} menu item to reset the 
option to the
 default, which places the MH-Show buffer at the bottom of the buffer
 stack.
 
address@hidden mh-mhl-format-file, example
address@hidden address@hidden, example}
 
 The text usually says to turn on an option by setting it to a
 @address@hidden value, because sometimes values other than
@@ -1520,9 +1520,9 @@ after running @kbd{M-x mh-rmail} the first time or when 
you've changed
 the message numbers from outside of MH-E.
 
 @findex mh-execute-commands
address@hidden mh-rescan-folder, example
address@hidden mh-show, example
address@hidden mh-inc-folder-hook, example
address@hidden address@hidden, example}
address@hidden address@hidden, example}
address@hidden address@hidden, example}
 
 @smalllisp
 @group
@@ -3175,7 +3175,7 @@ code to @file{~/.emacs}.
 @filbreak
 @end iftex
 
address@hidden mh-rmail, example
address@hidden address@hidden, example}
 
 @smalllisp
 @group
@@ -3490,7 +3490,7 @@ The hook @code{mh-folder-mode-hook} is called when 
visiting a new
 folder in MH-Folder mode. This could be used to set your own key
 bindings, for example:
 
address@hidden mh-folder-mode-hook, example
address@hidden address@hidden, example}
 
 @smalllisp
 @group
@@ -3810,9 +3810,9 @@ again.
 @findex mh-execute-commands
 @kindex q
 @vindex mh-before-quit-hook
address@hidden mh-before-quit-hook, example
address@hidden address@hidden, example}
 @vindex mh-quit-hook
address@hidden mh-quit-hook, example
address@hidden address@hidden, example}
 
 The two hooks @code{mh-before-quit-hook} and @code{mh-quit-hook} are
 called by @kbd{q}. The former one is called before the quit occurs, so
@@ -4099,7 +4099,7 @@ may have a complicated @file{components} file and need to 
tell MH-E
 where the cursor should go. Here's an example of how you would use
 this hook.
 
address@hidden mh-insert-signature, example
address@hidden address@hidden, example}
 
 @smalllisp
 @group
@@ -8478,7 +8478,7 @@ message according to MH; it also uses that column for 
notations.
 
 @vindex mh-adaptive-cmd-note-flag
 @vindex mh-scan-format-file
address@hidden mh-scan-format-file, example
address@hidden address@hidden, example}
 
 The first thing you have to do is tell MH-E to use this file.
 Customize @code{mh-scan-format-file} and set its value to @samp{Use
@@ -8488,7 +8488,7 @@ Default scan Format}. If you didn't get already turn off
 Next, tell MH-E what a valid scan line looks like so that you can at
 least display the output of scan in your MH-Folder buffer.
 
address@hidden mh-scan-valid-regexp, example
address@hidden address@hidden, example}
 
 @smalllisp
 (setq mh-scan-valid-regexp "[0-9]+[+D^ ]$")
@@ -8499,8 +8499,8 @@ message, you need to tell MH-E how to access the message 
number. You
 should also see why MH-E requires that you include a message number in
 the first place.
 
address@hidden mh-scan-msg-number-regexp, example
address@hidden mh-scan-msg-search-regexp, example
address@hidden address@hidden, example}
address@hidden address@hidden, example}
 
 @smalllisp
 (setq mh-scan-msg-number-regexp "^.* \\([0-9]+\\)[+D^ ]$")
@@ -8509,7 +8509,7 @@ the first place.
 
 In order to get the next and previous commands working, add this.
 
address@hidden mh-scan-good-msg-regexp, example
address@hidden address@hidden, example}
 
 @smalllisp
 (setq mh-scan-good-msg-regexp "^.* \\([0-9]+\\)[+D^ ]$")
@@ -8519,8 +8519,8 @@ Note that the current message isn't marked with a 
@samp{+} when moving
 between the next and previous messages. Here is the code required to
 get this working.
 
address@hidden set-mh-cmd-note, example
address@hidden mh-scan-cur-msg-number-regexp, example
address@hidden address@hidden, example}
address@hidden address@hidden, example}
 
 @smalllisp
 (set-mh-cmd-note 76)
@@ -8529,8 +8529,8 @@ get this working.
 
 Finally, add the following to delete and refile messages.
 
address@hidden mh-scan-deleted-msg-regexp, example
address@hidden mh-scan-refiled-msg-regexp, example
address@hidden address@hidden, example}
address@hidden address@hidden, example}
 
 @smalllisp
 (setq mh-scan-deleted-msg-regexp "^.* \\([0-9]+\\)D$")
diff --git a/doc/misc/pcl-cvs.texi b/doc/misc/pcl-cvs.texi
index d0427eb..1163530 100644
--- a/doc/misc/pcl-cvs.texi
+++ b/doc/misc/pcl-cvs.texi
@@ -1331,13 +1331,13 @@ default.
 
 @node Customizing Faces
 @section Customizing Faces
address@hidden cvs-header (face)
address@hidden cvs-filename (face)
address@hidden cvs-unknown (face)
address@hidden cvs-handled (face)
address@hidden cvs-need-action (face)
address@hidden cvs-marked (face)
address@hidden cvs-msg (face)
address@hidden cvs-header @r{(face)}
address@hidden cvs-filename @r{(face)}
address@hidden cvs-unknown @r{(face)}
address@hidden cvs-handled @r{(face)}
address@hidden cvs-need-action @r{(face)}
address@hidden cvs-marked @r{(face)}
address@hidden cvs-msg @r{(face)}
 
 PCL-CVS adds a few extra features, including menus, mouse bindings, and
 fontification of the @file{*cvs*} buffer.  The faces defined for
diff --git a/doc/misc/reftex.texi b/doc/misc/reftex.texi
index 8632965..55060d0 100644
--- a/doc/misc/reftex.texi
+++ b/doc/misc/reftex.texi
@@ -1732,8 +1732,8 @@ seems inconvenient to address@hidden could, e.g., bind
 @cindex LaTeX packages, @code{varioref}
 @cindex @code{fancyref}, LaTeX package
 @cindex LaTeX packages, @code{fancyref}
address@hidden reftex-vref-is-default (deprecated)
address@hidden reftex-fref-is-default (deprecated)
address@hidden reftex-vref-is-default @r{(deprecated)}
address@hidden reftex-fref-is-default @r{(deprecated)}
 In former versions of @RefTeX{} only support for @code{varioref} and
 @code{fancyref} was included.  @code{varioref} is a @LaTeX{} package to
 create cross-references with page information.  @code{fancyref} is a
@@ -3295,11 +3295,11 @@ The following list describes the individual parts of 
the interface.
 @itemize @bullet
 @item
 @findex reftex-label
address@hidden LaTeX-label-function, @r{AUCTeX}
address@hidden address@hidden, AUCTeX}
 @kindex C-c C-e
 @kindex C-c C-s
address@hidden LaTeX-section, @r{AUCTeX}
address@hidden TeX-insert-macro, @r{AUCTeX}
address@hidden address@hidden, AUCTeX}
address@hidden address@hidden, AUCTeX}
 @address@hidden calls @code{reftex-label} to insert address@hidden
 When a new section is created with @kbd{C-c C-s}, or a new environment
 is inserted with @kbd{C-c C-e}, @AUCTeX{} normally prompts for a label to
@@ -3327,14 +3327,14 @@ have to rescan the buffer in order to see it.
 
 @item
 @findex reftex-arg-label
address@hidden TeX-arg-label, @r{AUCTeX function}
address@hidden address@hidden, AUCTeX function}
 @findex reftex-arg-ref
address@hidden TeX-arg-ref, @r{AUCTeX function}
address@hidden address@hidden, AUCTeX function}
 @findex reftex-arg-cite
address@hidden TeX-arg-cite, @r{AUCTeX function}
address@hidden address@hidden, AUCTeX function}
 @findex reftex-arg-index
address@hidden TeX-arg-index, @r{AUCTeX function}
address@hidden TeX-insert-macro, @r{AUCTeX function}
address@hidden address@hidden, AUCTeX function}
address@hidden address@hidden, AUCTeX function}
 @kindex C-c @key{RET}
 @address@hidden supplies macro address@hidden When you insert a macro
 interactively with @kbd{C-c @key{RET}}, @AUCTeX{} normally prompts for
@@ -3357,7 +3357,7 @@ Labels}).
 @node Style Files
 @subsection Style Files
 @cindex Style files, AUCTeX
address@hidden TeX-add-style-hook, @r{AUCTeX}
address@hidden address@hidden, AUCTeX}
 Style files are Emacs Lisp files which are evaluated by @AUCTeX{} in
 association with the @code{\documentclass} and @code{\usepackage}
 commands of a document (@pxref{Style Files,,,auctex}). Support for
@@ -3396,7 +3396,7 @@ style file of @AUCTeX{} for example contains the 
following:
 @end lisp
 
 @noindent
address@hidden LaTeX-add-environments, @r{AUCTeX}
address@hidden address@hidden, AUCTeX}
 while a package @code{myprop} defining a @code{proposition} environment
 with @code{\newtheorem} might use
 
diff --git a/doc/misc/sc.texi b/doc/misc/sc.texi
index f214152..03ca842 100644
--- a/doc/misc/sc.texi
+++ b/doc/misc/sc.texi
@@ -274,7 +274,7 @@ Notice here that my inclusion of Jane's inclusion of John's 
original
 message did not result in a line cited with @samp{Jane>John>}.
 
 @vindex sc-nested-citation-p
address@hidden nested-citation-p (sc-)
address@hidden nested-citation-p @r{(sc-)}
 Supercite supports both styles of citation, and the variable
 @code{sc-nested-citation-p} controls which style it will use when
 citing previously uncited text.  When this variable is @code{nil} (the
@@ -292,7 +292,7 @@ directly user definable.  The elements are concatenated 
together, in
 this order:
 
 @cindex citation leader
address@hidden citation-leader (sc-)
address@hidden citation-leader @r{(sc-)}
 @vindex sc-citation-leader
 @enumerate
 @item
@@ -309,7 +309,7 @@ headers, though you may be asked to confirm Supercite's 
choice.
 
 @cindex citation delimiter
 @vindex sc-citation-delimiter
address@hidden citation-delimiter (sc-)
address@hidden citation-delimiter @r{(sc-)}
 @item
 The @dfn{citation delimiter}.  This string, contained in the variable
 @code{sc-citation-delimiter} visually separates the citation from the
@@ -317,7 +317,7 @@ text of the line.  This variable has a default value of 
@code{">"} and
 for best results, the string should consist of only a single character.
 
 @cindex citation separator
address@hidden citation-separator (sc-)
address@hidden citation-separator @r{(sc-)}
 @vindex sc-citation-separator
 @item
 The @dfn{citation separator}.  The citation separator is contained in
@@ -348,15 +348,15 @@ Recognition of cited lines is controlled by variables 
analogous to
 those that make up the citation string as mentioned previously.
 
 @vindex sc-citation-leader-regexp
address@hidden citation-leader-regexp (sc-)
address@hidden citation-leader-regexp @r{(sc-)}
 @vindex sc-citation-delimiter-regexp
address@hidden citation-delimiter-regexp (sc-)
address@hidden citation-delimiter-regexp @r{(sc-)}
 @vindex sc-citation-separator-regexp
address@hidden citation-separator-regexp (sc-)
address@hidden citation-separator-regexp @r{(sc-)}
 @vindex sc-citation-root-regexp
address@hidden citation-root-regexp (sc-)
address@hidden citation-root-regexp @r{(sc-)}
 @vindex sc-citation-nonnested-root-regexp
address@hidden citation-nonnested-root-regexp (sc-)
address@hidden citation-nonnested-root-regexp @r{(sc-)}
 
 The variable @code{sc-citation-leader-regexp} describes how citation
 leaders can look, by default it matches any number of spaces or tabs.
@@ -388,7 +388,7 @@ change @code{sc-citation-root-regexp} you should always 
also change
 @cindex Info Alist
 @cindex information extracted from mail fields
 @findex sc-mail-field
address@hidden mail-field (sc-)
address@hidden mail-field @r{(sc-)}
 
 @dfn{Mail header information keys} are nuggets of information that
 Supercite extracts from the various mail headers of the original
@@ -409,7 +409,7 @@ Subject:@: Better get out your asbestos suit
 @end example
 
 @vindex sc-mumble
address@hidden mumble (sc-)
address@hidden mumble @r{(sc-)}
 @noindent
 then, the following lisp constructs return:
 
@@ -513,7 +513,7 @@ header.
 
 @cindex header rewrite functions
 @vindex sc-rewrite-header-list
address@hidden rewrite-header-list (sc-)
address@hidden rewrite-header-list @r{(sc-)}
 There are a number of built-in @dfn{header rewrite functions} supplied
 by Supercite, but you can write your own custom header rewrite
 functions (perhaps using the built-in ones as examples).  The variable
@@ -523,7 +523,7 @@ reference header, and when displaying @dfn{electric 
references}.
 @xref{Electric References}.
 
 @vindex sc-preferred-header-style
address@hidden preferred-header-style (sc-)
address@hidden preferred-header-style @r{(sc-)}
 When Supercite is initially run on a reply buffer (via
 @code{sc-cite-original}), it will automatically call one of these
 functions.  The one it uses is defined in the variable
@@ -544,7 +544,7 @@ below, @var{date} and @var{from} correspond to the values 
of the
 @samp{Date:@:} and @samp{From:@:} mail headers respectively.
 
 @vindex sc-reference-tag-string
address@hidden reference-tag-string (sc-)
address@hidden reference-tag-string @r{(sc-)}
 Also, the string @code{">>>>>"} below is really the value of the
 variable @code{sc-reference-tag-string}.  This variable is used in all
 built-in header rewrite functions, and you can customize its value to
@@ -559,7 +559,7 @@ problem either in your MUA or in Supercite's installation).
 
 @table @code
 @findex sc-no-header
address@hidden no-header (sc-)
address@hidden no-header @r{(sc-)}
 @item sc-no-header
 This function produces no header.  It should be used instead of
 @code{nil} to produce a blank header.  This header can possibly
@@ -567,38 +567,38 @@ contain a blank line after the 
@code{mail-header-separator} line.
 
 @item sc-no-blank-line-or-header
 @findex sc-no-blank-line-or-header
address@hidden no-blank-line-or-header (sc-)
address@hidden no-blank-line-or-header @r{(sc-)}
 This function is similar to @code{sc-no-header} except that any blank
 line after the @code{mail-header-separator} line will be removed.
 
 @item sc-header-on-said
 @findex sc-header-on-said
address@hidden header-on-said (sc-)
address@hidden header-on-said @r{(sc-)}
 @code{>>>>> On @var{date}, @var{from} said:}
 
 @item sc-header-inarticle-writes
 @findex sc-header-inarticle-writes
address@hidden header-inarticle-writes (sc-)
address@hidden header-inarticle-writes @r{(sc-)}
 @code{>>>>> In article @var{message-id}, @var{from} writes:}
 
 @item sc-header-regarding-adds
 @findex sc-header-regarding-adds
address@hidden header-regarding-adds (sc-)
address@hidden header-regarding-adds @r{(sc-)}
 @code{>>>>> Regarding @var{subject}; @var{from} adds:}
 
 @item sc-header-attributed-writes
 @findex sc-header-attributed-writes
address@hidden header-attributed-writes (sc-)
address@hidden header-attributed-writes @r{(sc-)}
 @code{>>>>> "@var{sc-attribution}" == @var{sc-author} <@var{sc-reply-address}> 
writes:}
 
 @item sc-header-author-writes
 @findex sc-header-author-writes
address@hidden header-author-writes (sc-)
address@hidden header-author-writes @r{(sc-)}
 @code{>>>>> @var{sc-author} writes:}
 
 @item sc-header-verbose
 @findex sc-header-verbose
address@hidden header-verbose (sc-)
address@hidden header-verbose @r{(sc-)}
 @code{>>>>> On @var{date},address@hidden
 @code{>>>>> @address@hidden
 @code{>>>>> from the organization of @address@hidden
@@ -624,7 +624,7 @@ not. Supercite provides an optional @dfn{electric 
reference} mode
 which you can drop into to give you this functionality.
 
 @vindex sc-electric-references-p
address@hidden electric-references-p (sc-)
address@hidden electric-references-p @r{(sc-)}
 If the variable @code{sc-electric-references-p} is address@hidden,
 Supercite will bring up an electric reference mode buffer and place you
 into a recursive edit.  The electric reference buffer is read-only, so
@@ -644,10 +644,10 @@ The following commands are available while in electric 
reference mode
 @table @asis
 @item @code{sc-eref-next} (@kbd{n})
 @findex sc-eref-next
address@hidden eref-next (sc-)
address@hidden eref-next @r{(sc-)}
 @kindex n
 @vindex sc-electric-circular-p
address@hidden electric-circular-p (sc-)
address@hidden electric-circular-p @r{(sc-)}
 Displays the next reference header in the electric reference buffer.  If
 the variable @code{sc-electric-circular-p} is address@hidden, invoking
 @code{sc-eref-next} while viewing the last reference header in the list
@@ -655,7 +655,7 @@ will wrap around to the first header.
 
 @item @code{sc-eref-prev} (@kbd{p})
 @findex sc-eref-prev
address@hidden eref-prev (sc-)
address@hidden eref-prev @r{(sc-)}
 @kindex p
 Displays the previous reference header in the electric reference buffer.
 If the variable @code{sc-electric-circular-p} is address@hidden,
@@ -663,7 +663,7 @@ invoking @code{sc-eref-prev} will wrap around to the last 
header.
 
 @item @code{sc-eref-goto} (@kbd{g})
 @findex sc-eref-goto
address@hidden eref-goto (sc-)
address@hidden eref-goto @r{(sc-)}
 @kindex g
 Goes to a specified reference header.  The index (into the
 @code{sc-rewrite-header-list}) can be specified as a numeric argument to
@@ -672,14 +672,14 @@ minibuffer.
 
 @item @code{sc-eref-jump} (@kbd{j})
 @findex sc-eref-jump
address@hidden eref-jump (sc-)
address@hidden eref-jump @r{(sc-)}
 @kindex j
 Display the preferred reference header, i.e., the one indexed by the current
 value of @code{sc-preferred-header-style}.
 
 @item @code{sc-eref-setn} (@kbd{s})
 @findex sc-eref-setn
address@hidden eref-setn (sc-)
address@hidden eref-setn @r{(sc-)}
 @kindex s
 Set the preferred reference header (i.e.,
 @code{sc-preferred-header-style}) to the currently displayed header.
@@ -689,19 +689,19 @@ Set the preferred reference header (i.e.,
 @kindex C-j
 @kindex q
 @findex sc-eref-exit
address@hidden eref-exit (sc-)
address@hidden eref-exit @r{(sc-)}
 Exit from electric reference mode and insert the current header into the
 reply buffer.
 
 @item @code{sc-eref-abort} (@kbd{q}, @kbd{x})
 @findex sc-eref-abort
address@hidden eref-abort (sc-)
address@hidden eref-abort @r{(sc-)}
 @kindex x
 Exit from electric reference mode without inserting the current header.
 @end table
 
 @vindex sc-electric-mode-hook
address@hidden electric-mode-hook (sc-)
address@hidden electric-mode-hook @r{(sc-)}
 @noindent
 Supercite will execute the hook @code{sc-electric-mode-hook} before
 entering electric reference mode.
@@ -747,7 +747,7 @@ interface specifications, or if you are writing or 
maintaining an MUA,
 @cindex autoload
 @cindex .emacs file
 @findex sc-cite-original
address@hidden cite-original (sc-)
address@hidden cite-original @r{(sc-)}
 The first thing that everyone should do, regardless of the MUA you are
 using is to set up Emacs so it will load Supercite at the appropriate
 time.  This happens automatically if Supercite is distributed with your
@@ -789,7 +789,7 @@ message from an MUA.
 @node  Reply Buffer Initialization
 @section Reply Buffer Initialization
 @findex sc-cite-original
address@hidden cite-original (sc-)
address@hidden cite-original @r{(sc-)}
 
 Executing @code{sc-cite-original} performs the following steps as it
 initializes the reply buffer:
@@ -797,7 +797,7 @@ initializes the reply buffer:
 @enumerate
 @item
 @vindex sc-pre-hook
address@hidden pre-hook (sc-)
address@hidden pre-hook @r{(sc-)}
 @emph{Runs @code{sc-pre-hook}.}
 This hook variable is run before @code{sc-cite-original} does any other
 work.  You could conceivably use this hook to set certain Supercite
@@ -808,7 +808,7 @@ an article).
 @item
 @emph{Inserts Supercite's keymap.}
 @vindex sc-mode-map-prefix
address@hidden mode-map-prefix (sc-)
address@hidden mode-map-prefix @r{(sc-)}
 @kindex C-c C-p
 @cindex keymap prefix
 Supercite provides a number of commands for performing post-yank
@@ -842,9 +842,9 @@ affect alternative citing styles.
 @item
 @emph{Processes the mail headers.}
 @vindex sc-confirm-always-p
address@hidden confirm-always-p (sc-)
address@hidden confirm-always-p @r{(sc-)}
 @vindex sc-mail-warn-if-non-rfc822-p
address@hidden mail-warn-if-non-rfc822-p (sc-)
address@hidden mail-warn-if-non-rfc822-p @r{(sc-)}
 All previously retrieved info key-value pairs are deleted from the info
 alist, then the mail headers in the body of the yanked message are
 scanned.  Info key-value pairs are created for each header found.  Also,
@@ -857,8 +857,8 @@ transport agent) along the way.
 
 @vindex sc-nuke-mail-headers
 @vindex sc-nuke-mail-header-list
address@hidden nuke-mail-headers (sc-)
address@hidden nuke-mail-header-list (sc-)
address@hidden nuke-mail-headers @r{(sc-)}
address@hidden nuke-mail-header-list @r{(sc-)}
 Once the info keys have been extracted from the mail headers, the
 headers are nuked from the reply buffer.  You can control exactly which
 headers are removed or kept, but by default, all headers are removed.
@@ -881,7 +881,7 @@ The line is matched against the regexp using 
@code{looking-at} rooted at
 the beginning of the line.
 
 @vindex sc-blank-lines-after-headers
address@hidden blank-lines-after-headers (sc-)
address@hidden blank-lines-after-headers @r{(sc-)}
 If the variable @code{sc-blank-lines-after-headers} is address@hidden,
 it contains the number of blank lines remaining in the buffer after mail
 headers are nuked.  By default, only one blank line is left in the buffer.
@@ -895,7 +895,7 @@ original message.  @xref{Selecting an Attribution}, for 
details.
 @item
 @emph{Cites the message body.}
 @vindex sc-cite-region-limit
address@hidden cite-region-limit (sc-)b
address@hidden cite-region-limit @r{(sc-)}
 After the selection of the attribution and citation strings, Supercite
 cites the original message by inserting the citation string prefix in
 front of every uncited line.  You may not want Supercite to
@@ -918,7 +918,7 @@ automatically.  Use this if you always want to be able to 
edit and cite
 the message manually.
 
 @vindex sc-cite-blank-lines-p
address@hidden cite-blank-lines-p (sc-)
address@hidden cite-blank-lines-p @r{(sc-)}
 The variable @code{sc-cite-blank-lines-p} controls whether blank lines
 in the original message should be cited or not.  If this variable is
 address@hidden, blank lines will be cited just like non-blank lines.
@@ -936,7 +936,7 @@ recognize those styles you see often.
 @item
 @emph{Runs @code{sc-post-hook}.}
 @vindex sc-post-hook
address@hidden post-hook (sc-)
address@hidden post-hook @r{(sc-)}
 This variable is very similar to @code{sc-pre-hook}, except that it runs
 after @code{sc-cite-original} is finished.  This hook is provided mostly
 for completeness and backward compatibility.  Perhaps it could be used to
@@ -947,11 +947,11 @@ reset certain variables set in @code{sc-pre-hook}.
 @section Filling Cited Text
 @cindex filling paragraphs
 @vindex sc-auto-fill-region-p
address@hidden auto-fill-region-p (sc-)
address@hidden auto-fill-region-p @r{(sc-)}
 @cindex filladapt
 @cindex gin-mode
 @findex sc-setup-filladapt
address@hidden setup-filladapt (sc-)
address@hidden setup-filladapt @r{(sc-)}
 
 Supercite will automatically fill newly cited text from the original
 message unless the variable @code{sc-auto-fill-region-p} has a
@@ -971,7 +971,7 @@ makes @dfn{filladapt} a little more Supercite savvy than 
its default
 setup.
 
 @vindex sc-fixup-whitespace-p
address@hidden fixup-whitespace-p (sc-)
address@hidden fixup-whitespace-p @r{(sc-)}
 Also, Supercite will collapse leading whitespace between the citation
 string and the text on a line when the variable
 @code{sc-fixup-whitespace-p} is address@hidden  The default value for
@@ -1025,7 +1025,7 @@ fill cited text.
 @chapter Selecting an Attribution
 @cindex attribution list
 @vindex sc-preferred-attribution-list
address@hidden preferred-attribution-list (sc-)
address@hidden preferred-attribution-list @r{(sc-)}
 
 As you know, the attribution string is the part of the author's name
 that will be used to composed a non-nested citation string.  Supercite
@@ -1080,7 +1080,7 @@ recite paragraphs in the reply.
 
 @item "sc-consult"
 @vindex sc-attrib-selection-list
address@hidden attrib-selection-list (sc-)
address@hidden attrib-selection-list @r{(sc-)}
 consults the customizable list @code{sc-attrib-selection-list} which can
 be used to select special attributions based on the value of any info
 key.  See below for details.
@@ -1114,7 +1114,7 @@ suggested that if you change the order of the keys in 
this list, that
 @code{"sc-lastchoice"}.  This latter is the default.
 
 @vindex sc-attrib-selection-list
address@hidden attrib-selection-list (sc-)
address@hidden attrib-selection-list @r{(sc-)}
 The value @code{"sc-consult"} in @code{sc-preferred-attribution-list}
 has a special meaning during attribution selection.  When Supercite
 encounters this preference, it begins processing a customizable list of
@@ -1131,7 +1131,7 @@ Each element in this list contains lists of the following 
form:
 
 @noindent
 @findex sc-mail-field
address@hidden mail-field (sc-)
address@hidden mail-field @r{(sc-)}
 where @var{infokey} is a key for @code{sc-mail-field} and @var{regexp}
 is a regular expression to match against the @var{infokey}'s value.  If
 @var{regexp} matches the @var{infokey}'s value, the @var{attribution} is
@@ -1148,9 +1148,9 @@ to cite your friend's message with the appropriate 
attribution.
 @node  Anonymous Attributions
 @section Anonymous Attributions
 @vindex sc-default-author-name
address@hidden default-author-name (sc-)
address@hidden default-author-name @r{(sc-)}
 @vindex sc-default-attribution
address@hidden default-attribution (sc-)
address@hidden default-attribution @r{(sc-)}
 
 When the author's name cannot be found in the @samp{From:@:} mail
 header, a fallback author name and attribution string must be supplied.
@@ -1163,7 +1163,7 @@ author name or attribution is a sign that something is 
set up
 incorrectly.
 
 @vindex sc-use-only-preference-p
address@hidden use-only-preference-p (sc-)
address@hidden use-only-preference-p @r{(sc-)}
 Also, if the preferred attribution, which you specified in your
 @code{sc-preferred-attribution-list} variable cannot be found, a
 secondary method can be employed to find a valid attribution string.  The
@@ -1199,7 +1199,7 @@ attribution alist.
 @end enumerate
 
 @vindex sc-confirm-always-p
address@hidden confirm-always-p (sc-)
address@hidden confirm-always-p @r{(sc-)}
 Once the attribution string has been automatically selected, a number of
 things can happen.  If the variable @code{sc-confirm-always-p} is
 address@hidden, you are queried for confirmation of the chosen
@@ -1210,15 +1210,15 @@ you enter becomes the value associated with the 
@code{"sc-lastchoice"}
 key in the attribution alist.
 
 @vindex sc-downcase-p
address@hidden downcase-p (sc-)
address@hidden downcase-p @r{(sc-)}
 Once an attribution string has been selected, Supercite will force the
 string to lower case if the variable @code{sc-downcase-p} is
 address@hidden
 
 @vindex sc-attribs-preselect-hook
address@hidden attribs-preselect-hook (sc-)
address@hidden attribs-preselect-hook @r{(sc-)}
 @vindex sc-attribs-postselect-hook
address@hidden attribs-postselect-hook (sc-)
address@hidden attribs-postselect-hook @r{(sc-)}
 
 Two hook variables provide even greater control of the attribution
 selection process.  The hook @code{sc-attribs-preselect-hook} is run
@@ -1245,7 +1245,7 @@ formats in use.  If you encounter a @samp{From:@:} field 
that Supercite
 cannot parse, please report this bug using @kbd{M-x report-emacs-bug}.
 
 @vindex sc-titlecue-regexp
address@hidden titlecue-regexp (sc-)
address@hidden titlecue-regexp @r{(sc-)}
 There are a number of Supercite variables that control how author names
 are extracted from the @samp{From:@:} header.  Some headers may contain a
 descriptive title as in:
@@ -1263,7 +1263,7 @@ This variable has the default value of @code{"\\\\s 
+-+\\\\s +"}.  Any
 text after this regexp is encountered is ignored as noise.
 
 @vindex sc-name-filter-alist
address@hidden name-filter-alist (sc-)
address@hidden name-filter-alist @r{(sc-)}
 Some @samp{From:@:} headers may contain extra titles in the name fields
 not separated by a title cue, but which are nonetheless not part of the
 author's name proper.  Examples include the titles ``Dr.'', ``Mr.'',
@@ -1497,7 +1497,7 @@ is not found from the alist, then the appropriate default 
frame is used.
 @node  Post-yank Formatting Commands
 @chapter Post-yank Formatting Commands
 @vindex sc-mode-map-prefix
address@hidden mode-map-prefix (sc-)
address@hidden mode-map-prefix @r{(sc-)}
 @kindex C-c C-p
 
 Once the original message has been yanked into the reply buffer, and
@@ -1540,10 +1540,10 @@ Here is the list of Supercite citing commands:
 
 @table @asis
 @findex sc-cite-region
address@hidden cite-region (sc-)
address@hidden cite-region @r{(sc-)}
 @kindex C-c C-p c
 @vindex sc-pre-cite-hook
address@hidden pre-cite-hook (sc-)
address@hidden pre-cite-hook @r{(sc-)}
 @vindex sc-confirm-always-p
 @vindex confirm-always-p
 @kindex C-u
@@ -1558,7 +1558,7 @@ attribution string for a single manual citing.
 @xref{Configuring the Citation Engine}.
 
 @findex sc-uncite-region
address@hidden uncite-region (sc-)
address@hidden uncite-region @r{(sc-)}
 @kindex C-c C-p u
 @item @code{sc-uncite-region} (@kbd{C-c C-p u})
 This command removes any citation strings from the beginning of each
@@ -1569,7 +1569,7 @@ cited line in the region by interpreting the selected 
frame from
 @xref{Configuring the Citation Engine}.
 
 @findex sc-recite-region
address@hidden recite-region (sc-)
address@hidden recite-region @r{(sc-)}
 @kindex C-c C-p r
 @item @code{sc-recite-region} (@kbd{C-c C-p r})
 This command recites each line the region by interpreting the selected
@@ -1579,7 +1579,7 @@ frame from @code{sc-recite-frame-alist}, or the default 
reciting frame
 @xref{Configuring the Citation Engine}.
 
 @vindex sc-confirm-always-p
address@hidden confirm-always-p (sc-)
address@hidden confirm-always-p @r{(sc-)}
 Supercite will always ask you to confirm the attribution when reciting a
 region, regardless of the value of @code{sc-confirm-always-p}.
 @end table
@@ -1591,11 +1591,11 @@ These two functions insert various strings into the 
reply buffer.
 
 @table @asis
 @findex sc-insert-reference
address@hidden insert-reference (sc-)
address@hidden insert-reference @r{(sc-)}
 @kindex C-c C-p w
 @item @code{sc-insert-reference} (@kbd{C-c C-p w})
 @vindex sc-preferred-header-style
address@hidden preferred-header-style (sc-)
address@hidden preferred-header-style @r{(sc-)}
 Inserts a reference header into the reply buffer at @samp{point}.  With
 no arguments, the header indexed by @code{sc-preferred-header-style} is
 inserted.  An optional numeric argument is the index into
@@ -1606,7 +1606,7 @@ With just the universal argument (@kbd{C-u}), electric 
reference mode is
 entered, regardless of the value of @code{sc-electric-references-p}.
 
 @findex sc-insert-citation
address@hidden insert-citation (sc-)
address@hidden insert-citation @r{(sc-)}
 @kindex C-c C-p i
 @item @code{sc-insert-citation} (@kbd{C-c C-p i})
 Inserts the current citation string at the beginning of the line that
@@ -1704,7 +1704,7 @@ of information from the info alist.
 @table @asis
 @kindex C-c C-p f
 @findex sc-mail-field-query
address@hidden mail-field-query (sc-)
address@hidden mail-field-query @r{(sc-)}
 @kindex C-c C-p f
 @item @code{sc-mail-field-query} (@kbd{C-c C-p f})
 Allows you to interactively view, modify, add, and delete info alist
@@ -1732,7 +1732,7 @@ will override any old value.  It will not replace it 
though; if you
 subsequently delete the key-value pair, the old value will reappear.
 
 @findex sc-mail-process-headers
address@hidden mail-process-headers (sc-)
address@hidden mail-process-headers @r{(sc-)}
 @kindex C-c C-p g
 @item @code{sc-mail-process-headers} (@kbd{C-c C-p g})
 This command lets you re-initialize Supercite's info alist from any set
@@ -1749,7 +1749,7 @@ old information is lost.
 
 @table @asis
 @findex sc-open-line
address@hidden open-line (sc-)
address@hidden open-line @r{(sc-)}
 @findex open-line
 @kindex C-c C-p o
 @item @code{sc-open-line} (@kbd{C-c C-p o})
diff --git a/doc/misc/semantic.texi b/doc/misc/semantic.texi
index 9597b4b..8d4920c 100644
--- a/doc/misc/semantic.texi
+++ b/doc/misc/semantic.texi
@@ -445,7 +445,7 @@ completion lists.
 @node Tools
 @section Tools
 
-These files contain various tools a user can use.
+These files contain various tools for users.
 
 @table @file
 @item semantic-idle.el
@@ -485,8 +485,7 @@ A bunch of small minor-modes that exposes aspects of the 
semantic
 parser state.  Includes @code{semantic-stickyfunc-mode}.
 
 @item document.el
address@hidden document-vars.el
-Create an update comments for tags.
+Create and update comments for tags.
 
 @item semantic-adebug.el
 Extensions of @file{data-debug.el} for @semantic{}.
diff --git a/doc/misc/tramp.texi b/doc/misc/tramp.texi
index 6ad2135..5038143 100644
--- a/doc/misc/tramp.texi
+++ b/doc/misc/tramp.texi
@@ -820,7 +820,7 @@ External methods save on the overhead of encoding and 
decoding of
 inline methods.
 
 Since external methods have the overhead of opening a new channel,
-files smaller than @var{tramp-copy-size-limit} still use inline
+files smaller than @code{tramp-copy-size-limit} still use inline
 methods.
 
 @table @asis
@@ -1219,7 +1219,7 @@ Start by using an inline method.
 External methods might be more efficient for large files, but most
 @value{tramp} users edit small files more often than large files.
 
-Enable compression, @var{tramp-inline-compress-start-size}, for a
+Enable compression, @code{tramp-inline-compress-start-size}, for a
 performance boost for large files.
 
 Since @command{ssh} has become the most common method of remote host
diff --git a/doc/misc/url.texi b/doc/misc/url.texi
index b665e6a..ed39aab 100644
--- a/doc/misc/url.texi
+++ b/doc/misc/url.texi
@@ -1271,8 +1271,9 @@ operation at startup.
 @item TMPDIR
 @vindex TMPDIR
 @vindex url-temporary-directory
-If this is defined, @var{url-temporary-directory} is initialized from
-it.
+If this is defined, @code{url-temporary-directory} is initialized from
+it.  This variable was obsoleted in 23.1, please use
address@hidden instead.
 @end table
 
   The following user options affect the general operation of
diff --git a/doc/misc/vhdl-mode.texi b/doc/misc/vhdl-mode.texi
index cf3909c..e94fba6 100644
--- a/doc/misc/vhdl-mode.texi
+++ b/doc/misc/vhdl-mode.texi
@@ -147,7 +147,7 @@ your personal coding style.
 @cindex   Syntactic Analysis
 
 @vindex vhdl-offsets-alist
address@hidden offsets-alist (vhdl-)
address@hidden offsets-alist @r{(vhdl-)}
 @cindex relative buffer position
 @cindex syntactic symbol
 @cindex syntactic component
@@ -186,7 +186,7 @@ in this and future examples don't actually appear in the 
buffer.}:
 
 @kindex C-c C-x
 @findex vhdl-show-syntactic-information
address@hidden show-syntactic-information (vhdl-)
address@hidden show-syntactic-information @r{(vhdl-)}
 We can use the command @kbd{C-c C-x}
 (@code{vhdl-show-syntactic-information}) to simply report what the
 syntactic analysis is for the current line.  Running this command on
@@ -241,7 +241,7 @@ components.  Also notice that the first component,
 @cindex   Indentation Calculation
 
 @vindex vhdl-offsets-alist
address@hidden offsets-alist (vhdl-)
address@hidden offsets-alist @r{(vhdl-)}
 Indentation for the current line is calculated using the syntactic
 component list derived in step 1 above (see @ref{Syntactic
 Analysis}).  Each component contributes to the final total indentation
@@ -301,7 +301,7 @@ indentation, it's helpful to understand the general 
indentation model
 being used.
 
 @vindex vhdl-echo-syntactic-information-p
address@hidden echo-syntactic-information-p (vhdl-)
address@hidden echo-syntactic-information-p @r{(vhdl-)}
 @cindex TAB
 To help you configure VHDL Mode, you can set the variable
 @code{vhdl-echo-syntactic-information-p} to address@hidden so that the
@@ -428,7 +428,7 @@ line.  Hitting @kbd{C-c C-x} on line 3 yields:
 @end example
 
 @findex vhdl-set-offset
address@hidden set-offset (vhdl-)
address@hidden set-offset @r{(vhdl-)}
 @kindex C-c O
 @noindent
 So we know that to change the offset of the first signal assignment, we need to
@@ -447,7 +447,7 @@ basic indent with the syntactic symbol 
@code{statement-block-intro} in
 the @code{vhdl-offsets-alist} variable.
 
 @findex vhdl-indent-defun
address@hidden indent-defun (vhdl-)
address@hidden indent-defun @r{(vhdl-)}
 To check your changes quickly, just enter @kbd{M-x vhdl-indent-defun} to
 reindent the entire function.  The example should now look like:
 @example
@@ -546,7 +546,7 @@ already built-in.  These include:
 @end itemize
 
 @findex vhdl-set-style
address@hidden set-style (vhdl-)
address@hidden 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.
 
@@ -583,9 +583,9 @@ files.  You would add this:
 @cindex   Adding Styles
 
 @vindex vhdl-style-alist
address@hidden style-alist (vhdl-)
address@hidden style-alist @r{(vhdl-)}
 @findex vhdl-add-style
address@hidden add-style (vhdl-)
address@hidden add-style @r{(vhdl-)}
 If none of the built-in styles is appropriate, you'll probably want to
 add a new style definition.  Styles are kept in the @code{vhdl-style-alist}
 variable, but you probably won't want to modify this variable directly.
@@ -615,9 +615,9 @@ block.  VHDL Mode provides two variables that make it 
easier for
 you to customize your style on a per-file basis.
 
 @vindex vhdl-file-style
address@hidden file-style (vhdl-)
address@hidden file-style @r{(vhdl-)}
 @vindex vhdl-file-offsets
address@hidden file-offsets (vhdl-)
address@hidden file-offsets @r{(vhdl-)}
 
 The variable @code{vhdl-file-style} can be set to a style name string as
 described in @ref{Built-in Styles}.  When the file is visited,
@@ -625,9 +625,9 @@ VHDL Mode will automatically set the file's style to this 
style
 using @code{vhdl-set-style}.
 
 @vindex vhdl-offsets-alist
address@hidden offsets-alist (vhdl-)
address@hidden offsets-alist @r{(vhdl-)}
 @findex vhdl-set-offset
address@hidden set-offset (vhdl-)
address@hidden set-offset @r{(vhdl-)}
 Another variable, @code{vhdl-file-offsets}, takes an association list
 similar to what is allowed in @code{vhdl-offsets-alist}.  When the file is
 visited, VHDL Mode will automatically institute these offsets using
@@ -642,9 +642,9 @@ before file offset settings (i.e., 
@code{vhdl-file-offsets}).
 @cindex   Advanced Customizations
 
 @vindex vhdl-style-alist
address@hidden style-alist (vhdl-)
address@hidden style-alist @r{(vhdl-)}
 @vindex vhdl-basic-offset
address@hidden basic-offset (vhdl-)
address@hidden basic-offset @r{(vhdl-)}
 For most users, VHDL Mode will support their coding styles with
 very little need for customizations.  Usually, one of the standard
 styles defined in @code{vhdl-style-alist} will do the trick.  Sometimes,
@@ -743,7 +743,7 @@ don't want that value added into the final total twice.
 
 @cindex statement-cont syntactic symbol
 @findex vhdl-lineup-statement-cont
address@hidden lineup-statement-cont (vhdl-)
address@hidden lineup-statement-cont @r{(vhdl-)}
 Now, to associate the function @code{vhdl-lineup-statement-cont} with the
 @code{statement-cont} syntactic symbol, we can add something like the
 following to our @code{vhdl-mode-hook}:
@@ -765,7 +765,7 @@ vhdl-indent-defun}):
 @end example
 
 @vindex vhdl-offsets-alist
address@hidden offsets-alist (vhdl-)
address@hidden offsets-alist @r{(vhdl-)}
 Custom indentation functions can be as simple or as complex as you like,
 and any syntactic symbol that appears in @code{vhdl-offsets-alist} can have
 a custom indentation function associated with it.  Note however that
@@ -777,7 +777,7 @@ VHDL Mode.
 @cindex   Other Special Indentations
 
 @vindex vhdl-special-indent-hook
address@hidden special-indent-hook (vhdl-)
address@hidden special-indent-hook @r{(vhdl-)}
 One other variable is available for you to customize VHDL Mode:
 @code{vhdl-special-indent-hook}.  This is a standard hook variable that
 is called after every line is indented by VHDL Mode.  You can use
@@ -956,7 +956,7 @@ The index menu does not work on my XEmacs installation 
(don't know why).
 
 @kindex C-c C-b
 @findex vhdl-submit-bug-report
address@hidden submit-bug-report (vhdl-)
address@hidden submit-bug-report @r{(vhdl-)}
 @cindex beta testers mailing list
 @cindex announcement mailing list
 To report bugs, use the @kbd{C-c C-b} (@code{vhdl-submit-bug-report})
diff --git a/doc/misc/viper.texi b/doc/misc/viper.texi
index 1e6e08b..8948437 100644
--- a/doc/misc/viper.texi
+++ b/doc/misc/viper.texi
@@ -376,8 +376,8 @@ toggles Viperization of Emacs on and off.
 @cindex Insert state
 @cindex Replace state
 @cindex Ex commands
address@hidden @code{viper-go-away}
address@hidden @code{toggle-viper-mode}
address@hidden viper-go-away
address@hidden toggle-viper-mode
 
 Viper has four states, Emacs, Vi, Insert, and Replace.
 
@@ -1182,7 +1182,7 @@ variable that controls how search patterns are 
highlighted is
 @example
 (copy-face 'default 'viper-search-face)
 @end example
address@hidden @code{viper-search-face}
address@hidden viper-search-face
 @noindent
 in your Viper customization file.  If you want to change how patterns are
 highlighted, you will have to change @code{viper-search-face} to your liking.
@@ -1240,7 +1240,7 @@ watch out for is that it is possible to be on the 
end-of-line character.
 The keys @kbd{x} and @kbd{%} will still work correctly, i.e., as if they
 were on the last character.
 
address@hidden @code{viper-syntax-preference}
address@hidden viper-syntax-preference
 @cindex syntax table
 
 The word-movement commands @kbd{w}, @kbd{e}, etc., and the associated
@@ -1278,7 +1278,7 @@ the following example:
 (viper-set-syntax-preference nil "emacs")
 @end example
 
address@hidden @code{viper-set-syntax-preference}
address@hidden viper-set-syntax-preference
 
 The above discussion of the meaning of Viper's words concerns only Viper's
 movement commands.  In regular expressions, words remain the same as in
@@ -1369,7 +1369,7 @@ character(s) appropriate for the current major mode.
 Check spelling of words in the region (@code{spell-region}).
 The function used for spelling is determined from the variable
 @code{viper-spell-function}.
address@hidden @code{viper-spell-function}
address@hidden viper-spell-function
 @item *
 @kindex @kbd{*}
 Call last keyboard macro.
@@ -1775,7 +1775,7 @@ Use @code{viper-glob-unix-files} and 
@code{viper-glob-mswindows-files} in
 This feature is used to expand wildcards in the Ex command @kbd{:e}.
 Note that Viper doesn't support wildcards in the @kbd{:r} and @kbd{:w}
 commands, because file completion is a better mechanism.
address@hidden @code{viper-glob-function}
address@hidden viper-glob-function
 
 @item ex-cycle-other-window t
 If not @code{nil}, @kbd{:n} and @kbd{:b} will cycle through files in another
@@ -1845,16 +1845,16 @@ For a complete list of colors available to you, 
evaluate the expression
 hit the @kbd{C-j} key.
 
 @item viper-replace-overlay-cursor-color  "Red"
address@hidden @code{viper-replace-overlay-cursor-color}
address@hidden viper-replace-overlay-cursor-color
 Cursor color when it is inside the replacement region.
 This has effect only on color displays and only when Emacs runs as an X
 application.
 @item viper-insert-state-cursor-color nil
address@hidden @code{viper-insert-state-cursor-color}
address@hidden viper-insert-state-cursor-color
 If set to a valid color, this will be the cursor color when Viper is in
 insert state.
 @item viper-emacs-state-cursor-color nil
address@hidden @code{viper-emacs-state-cursor-color}
address@hidden viper-emacs-state-cursor-color
 If set to a valid color, this will be the cursor color when Viper is in
 emacs state.
 @item viper-replace-region-end-delimiter "$"
@@ -1913,45 +1913,45 @@ can include a line like this in your Viper 
customization file:
 @example
 (setq viper-case-fold-search t)
 @end example
address@hidden @code{viper-auto-indent}
address@hidden @code{viper-electric-mode}
address@hidden @code{viper-case-fold-search}
address@hidden @code{viper-re-search}
address@hidden @code{viper-shift-width}
address@hidden @code{buffer-read-only}
address@hidden @code{viper-search-wrap-around}
address@hidden @code{viper-search-scroll-threshold}
address@hidden @code{viper-search-face}
address@hidden @code{viper-tags-file-name}
address@hidden @code{viper-re-query-replace}
address@hidden @code{viper-want-ctl-h-help}
address@hidden @code{viper-vi-style-in-minibuffer}
address@hidden @code{viper-no-multiple-ESC}
address@hidden @code{viper-always}
address@hidden @code{viper-fast-keyseq-timeout}
address@hidden @code{viper-ex-style-motion}
address@hidden @code{viper-ex-style-editing}
address@hidden @code{viper-ESC-moves-cursor-back}
address@hidden @code{viper-custom-file-name}
address@hidden @code{viper-spell-function}
address@hidden @code{ex-cycle-other-window}
address@hidden @code{ex-cycle-through-non-files}
address@hidden @code{viper-want-emacs-keys-in-insert}
address@hidden @code{viper-want-emacs-keys-in-vi}
address@hidden @code{viper-keep-point-on-repeat}
address@hidden @code{viper-keep-point-on-undo}
address@hidden @code{viper-delete-backwards-in-replace}
address@hidden @code{viper-replace-overlay-face}
address@hidden @code{viper-replace-region-end-symbol}
address@hidden @code{viper-replace-region-start-symbol}
address@hidden @code{viper-allow-multiline-replace-regions}
address@hidden @code{viper-toggle-key}
address@hidden @code{viper-buffer-search-char}
address@hidden @code{viper-surrounding-word-function}
address@hidden @code{viper-vi-state-hook}
address@hidden @code{viper-insert-state-hook}
address@hidden @code{viper-replace-state-hook}
address@hidden @code{viper-emacs-state-hook}
address@hidden viper-auto-indent
address@hidden viper-electric-mode
address@hidden viper-case-fold-search
address@hidden viper-re-search
address@hidden viper-shift-width
address@hidden buffer-read-only
address@hidden viper-search-wrap-around
address@hidden viper-search-scroll-threshold
address@hidden viper-search-face
address@hidden viper-tags-file-name
address@hidden viper-re-query-replace
address@hidden viper-want-ctl-h-help
address@hidden viper-vi-style-in-minibuffer
address@hidden viper-no-multiple-ESC
address@hidden viper-always
address@hidden viper-fast-keyseq-timeout
address@hidden viper-ex-style-motion
address@hidden viper-ex-style-editing
address@hidden viper-ESC-moves-cursor-back
address@hidden viper-custom-file-name
address@hidden viper-spell-function
address@hidden ex-cycle-other-window
address@hidden ex-cycle-through-non-files
address@hidden viper-want-emacs-keys-in-insert
address@hidden viper-want-emacs-keys-in-vi
address@hidden viper-keep-point-on-repeat
address@hidden viper-keep-point-on-undo
address@hidden viper-delete-backwards-in-replace
address@hidden viper-replace-overlay-face
address@hidden viper-replace-region-end-symbol
address@hidden viper-replace-region-start-symbol
address@hidden viper-allow-multiline-replace-regions
address@hidden viper-toggle-key
address@hidden viper-buffer-search-char
address@hidden viper-surrounding-word-function
address@hidden viper-vi-state-hook
address@hidden viper-insert-state-hook
address@hidden viper-replace-state-hook
address@hidden viper-emacs-state-hook
 
 @node Key Bindings
 @section Key Bindings
@@ -2059,7 +2059,7 @@ Viper users can also change bindings on a per major mode 
basis.  As with
 global bindings, this can be done separately for each of the three main Viper
 states.  To this end, Viper provides the function
 @code{viper-modify-major-mode}.
address@hidden @code{viper-modify-major-mode}
address@hidden viper-modify-major-mode
 
 To modify keys in Emacs state for @code{my-favorite-major-mode}, the user
 needs to create a sparse keymap, say, @code{my-fancy-map}, bind whatever
@@ -2099,7 +2099,7 @@ Dired functions, the trick can be accomplished via the 
following code:
 
 Yet another way to customize key bindings in a major mode is to edit the
 list @code{viper-major-mode-modifier-list} using the customization widget.
address@hidden @code{viper-major-mode-modifier-list}
address@hidden viper-major-mode-modifier-list
 (This variable is in the Viper-misc customization group.)
 The elements of this list are triples of the form: (major-mode viper-state
 keymap), where the keymap contains bindings that are supposed to be active
@@ -2184,13 +2184,13 @@ So much about Viper-specific bindings.
 Manual}, and the Emacs quick reference card for the general info on key
 bindings in Emacs.
 
address@hidden @code{input-decode-map}
address@hidden @code{function-key-map}
address@hidden @code{viper-vi-global-user-map}
address@hidden @code{viper-insert-global-user-map}
address@hidden @code{viper-emacs-global-user-map}
address@hidden @code{viper-add-local-keys}
address@hidden @code{viper-zap-local-keys}
address@hidden input-decode-map
address@hidden function-key-map
address@hidden viper-vi-global-user-map
address@hidden viper-insert-global-user-map
address@hidden viper-emacs-global-user-map
address@hidden viper-add-local-keys
address@hidden viper-zap-local-keys
 
 @node Packages that Change Keymaps
 @section Packages that Change Keymaps
@@ -2261,9 +2261,9 @@ on the @code{viper-emacs-state-mode-list} list and delete 
them from
 @code{viper-vi-state-mode-list}.
 Likewise, you can force Viper's Insert state on a major mode by putting it
 in @code{viper-insert-state-mode-list}.
address@hidden @code{viper-emacs-state-mode-list}
address@hidden @code{viper-insert-state-mode-list}
address@hidden @code{viper-vi-state-mode-list}
address@hidden viper-emacs-state-mode-list
address@hidden viper-insert-state-mode-list
address@hidden viper-vi-state-mode-list
 
 It is also possible to impose Vi on some major modes, even though they may
 bind common keys to specialized commands.  This might make sense for modes
@@ -2312,14 +2312,14 @@ compatible with Viper is to have the file 
@file{my-mode.el} include the followin
     (viper-harness-minor-mode lib)))
 @end lisp
 
address@hidden @code{viper-want-emacs-keys-in-vi}
address@hidden @code{viper-want-emacs-keys-in-insert}
address@hidden @code{viper-always}
address@hidden @code{viper-set-hooks}
address@hidden @code{viper-mode}
address@hidden @code{viper-harness-minor-mode}
address@hidden @code{remove-hook}
address@hidden @code{add-hook}
address@hidden viper-want-emacs-keys-in-vi
address@hidden viper-want-emacs-keys-in-insert
address@hidden viper-always
address@hidden viper-set-hooks
address@hidden viper-mode
address@hidden viper-harness-minor-mode
address@hidden remove-hook
address@hidden add-hook
 
 @node Viper Specials
 @section Viper Specials
@@ -2339,8 +2339,8 @@ sets @code{viper-buffer-search-char} to @kbd{g}.  
Alternatively, the user can
 set @code{viper-buffer-search-char} in his/her Viper customization file to a 
key
 sequence to be used for buffer search.  There is no need to call
 @code{viper-buffer-search-enable} in that case.
address@hidden @code{viper-buffer-search-enable}
address@hidden @code{viper-buffer-search-char}
address@hidden viper-buffer-search-enable
address@hidden viper-buffer-search-char
 @item viper-toggle-search-style
 This function, bound to @kbd{C-c /}, lets one toggle case-sensitive and
 case-insensitive search, and also switch between plain vanilla search and
@@ -2365,7 +2365,7 @@ feature, put this in the file:
 @example
 (viper-set-searchstyle-toggling-macros 'undefine)
 @end example
address@hidden @code{viper-set-searchstyle-toggling-macros}
address@hidden viper-set-searchstyle-toggling-macros
 
 If you don't like this feature as a default, but would still like to have
 it in some major modes, you can do so by first unsetting it globally, as
@@ -2389,8 +2389,8 @@ case-insensitivity and regexp-search.
 If you don't like these features---which I don't really understand---you
 can unbind @kbd{/} and @kbd{:} in @code{viper-dired-modifier-map} (for
 Dired) or in @code{viper-slash-and-colon-map}, for other modes.
address@hidden @code{viper-slash-and-colon-map}
address@hidden @code{viper-dired-modifier-map}
address@hidden viper-slash-and-colon-map
address@hidden viper-dired-modifier-map
 
 To unbind the macros @kbd{//} and @kbd{///} for a major mode where you
 feel they
@@ -2400,7 +2400,7 @@ prefix argument, or by placing
 @example
 (viper-set-emacs-state-searchstyle-macros 'undefine)
 @end example
address@hidden @code{viper-set-emacs-state-searchstyle-macros}
address@hidden viper-set-emacs-state-searchstyle-macros
 in the hook to the major mode (e.g., @code{dired-mode-hook}).
 @xref{Vi Macros}, for more information on Vi macros.
 
@@ -2414,10 +2414,10 @@ Regular Expressions for @kbd{[[} and @kbd{]]}.  Note 
that Emacs defines
 Regexps for paragraphs and sentences.  @xref{Paragraphs,,Paragraphs and
 Sentences,emacs,The GNU Emacs Manual}, for details.
 @item M-x viper-set-expert-level
address@hidden @code{viper-set-expert-level}
address@hidden viper-set-expert-level
 Change your user level interactively.
 @item viper-smart-suffix-list  '("" "tex" "c" "cc" "el" "p")
address@hidden @code{viper-smart-suffix-list}
address@hidden viper-smart-suffix-list
 Viper supports Emacs-style file completion when it prompts the user for a
 file name.  However, in many cases, the same directory may contain files
 with identical prefix but different suffixes, e.g., prog.c, prog.o,
@@ -2437,7 +2437,7 @@ the intended file name, hitting return will accept it.
 To turn this feature off, set the above variable to @code{nil}.
 
 @item viper-insertion-ring-size  14
address@hidden @code{viper-insertion-ring-size}
address@hidden viper-insertion-ring-size
 @cindex Insertion ring
 Viper remembers what was previously inserted in Insert and Replace states.
 Several such recent insertions are kept in a special ring of strings of size
@@ -2470,7 +2470,7 @@ this will interfere with the minibuffer histories and, 
possibly, other
 major modes.
 
 @item viper-command-ring-size  14
address@hidden @code{viper-command-ring-size}
address@hidden viper-command-ring-size
 @cindex Destructive command ring
 @cindex Destructive command history
 Viper keeps track of the recent history of destructive
@@ -2527,11 +2527,11 @@ indication of the current Viper state in the 
minibuffer.  (This is important
 if the user accidentally switches to another Viper state by typing @key{ESC} or
 @kbd{C-z}).
 @item M-x viper-go-away
address@hidden @code{viper-go-away}
address@hidden viper-go-away
 Make Viper disappear from the face of your running Emacs instance.  If your
 fingers start aching again, @kbd{M-x viper-mode} might save your day.
 @item M-x toggle-viper-mode
address@hidden @code{toggle-viper-mode}
address@hidden toggle-viper-mode
 Toggle Viperization of Emacs on and off.
 @end table
 
@@ -2581,7 +2581,7 @@ is available).  Clicking the mouse when Emacs is invoked 
in an Xterm window
 @cindex mouse
 @cindex mouse-search
 @item viper-mouse-search-key  (meta shift 1)
address@hidden @code{viper-mouse-insert-key}
address@hidden viper-mouse-insert-key
 This variable controls the @emph{mouse-search} feature of Viper.  The
 default value
 states that holding Meta and Shift keys while clicking mouse button 1
@@ -2636,7 +2636,7 @@ occurred with all leading and trailing spaces and tabs 
removed.
 
 @cindex mouse-insert
 @item viper-mouse-insert-key (meta shift 2)
address@hidden @code{viper-mouse-insert-key}
address@hidden viper-mouse-insert-key
 This variable controls the @emph{mouse-insert} feature of Viper.
 The above default value states that
 holding Meta and Shift keys while clicking mouse button 2
@@ -2673,9 +2673,9 @@ purpose of mouse search and mouse insert.  By default, 
this is set to
 @kindex @kbd{S-mouse-2}
 @kindex @kbd{meta shift button1up}
 @kindex @kbd{meta shift button2up}
address@hidden @code{viper-multiclick-timeout}
address@hidden @code{viper-mouse-click-insert-word}
address@hidden @code{viper-mouse-click-search-word}
address@hidden viper-multiclick-timeout
address@hidden viper-mouse-click-insert-word
address@hidden viper-mouse-click-search-word
 
 Note: The above functions search and insert in the selected window of
 the latest active frame.  This means that you can click in another window or
@@ -2852,7 +2852,7 @@ The latter is more powerful, since it can delete macros 
even in
 needed only when the user needs to get rid of the macros that are already
 predefined in Viper.
 The syntax is:
address@hidden @code{viper-unrecord-kbd-macro}
address@hidden viper-unrecord-kbd-macro
 @example
 (viper-unrecord-kbd-macro macro state)
 @end example
@@ -2992,7 +2992,7 @@ keys have to be redefined for TTY's (and possibly for 
every type of TTY you
 may be using).  To do this, start Emacs on an appropriate TTY device and
 define the macro using @kbd{:map}, as usual.
 
address@hidden @code{viper-describe-kbd-macros}
address@hidden viper-describe-kbd-macros
 Finally, Viper provides a function that conveniently displays all macros
 currently defined.  To see all macros along with their definitions, type
 @kbd{M-x viper-describe-kbd-macros}.
@@ -3199,8 +3199,8 @@ modes, you should execute, for example,
 
 in the appropriate major mode hooks.
 
address@hidden @code{viper-syntax-preference}
address@hidden @code{viper-set-syntax-preference}
address@hidden viper-syntax-preference
address@hidden viper-set-syntax-preference
 @cindex syntax table
 
 
@@ -3378,7 +3378,7 @@ don't want this macro, put
 @example
 (viper-set-parsing-style-toggling-macro 'undefine)
 @end example
address@hidden @code{viper-set-parsing-style-toggling-macro}
address@hidden viper-set-parsing-style-toggling-macro
 
 in your Viper customization file.
 
@@ -3437,7 +3437,7 @@ in your Viper customization file.
 @kindex @kbd{j}
 @kindex @kbd{k}
 @kindex @kbd{l}
address@hidden @code{viper-parse-sexp-ignore-comments}
address@hidden viper-parse-sexp-ignore-comments
 
 @node Marking
 @subsection Marking
@@ -3579,7 +3579,7 @@ Viper customization file.  @xref{Viper Specials}, for 
details.
 Minibuffer can be edited similarly to Insert state, and you can switch
 between Insert/Replace/Vi states at will.
 Some users prefer plain Emacs feel in the minibuffer.  To this end, set
address@hidden to @code{nil}.
address@hidden to @code{nil}.
 
 @cindex Insert state
 
@@ -4061,17 +4061,17 @@ List files not shown anywhere with counts for next
 Edit <count> file, or edit files.  The count comes from @kbd{:args}.
 @item :N [count] [+<cmd>] [<files>]
 Like @kbd{:n}, but the meaning of the variable
address@hidden is reversed.
address@hidden is reversed.
 @item :b
-Switch to another buffer.  If @var{ex-cycle-other-window} is @code{t},
+Switch to another buffer.  If @code{ex-cycle-other-window} is @code{t},
 switch in another window.  Buffer completion is supported.
-The variable @var{viper-read-buffer-function} controls which function is
+The variable @code{viper-read-buffer-function} controls which function is
 actually used to read the buffer name. The default is @code{read-buffer},
 but better alternatives are also available in Emacs (e.g.,
 @code{ido-read-buffer}).
address@hidden @var{viper-read-buffer-function}
address@hidden viper-read-buffer-function
 @item :B
-Like @kbd{:b}, but the meaning of @var{ex-cycle-other-window} is reversed.
+Like @kbd{:b}, but the meaning of @code{ex-cycle-other-window} is reversed.
 @item :<address>r <name>
 Read the file <name> into the buffer after the line <address>.
 @item v, V, C-v
diff --git a/etc/NEWS b/etc/NEWS
index 8db638e..596adf8 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -109,6 +109,11 @@ regular expression was previously invalid, but is now 
accepted:
 
 * Editing Changes in Emacs 27.1
 
++++
+** New isearch bindings.
+'C-M-w' in isearch changed from isearch-del-char to the new function
+isearch-yank-symbol-or-char. isearch-del-char is now bound to 'C-M-d'.
+
 ---
 ** New variable 'x-wait-for-event-timeout'.
 This controls how long Emacs will wait for updates to the graphical
@@ -160,6 +165,16 @@ bound to 'C-c C-f'.
 'dired-do-copy' and 'dired-rename-file' should create non-existent
 directories in the destination.
 
+** Help
+
+---
+*** Output format of 'C-h l' (view-lossage) has changed.
+For convenience, 'view-lossage' now displays the last keystrokes
+and commands in the same format as the edit buffer of
+'edit-last-kbd-macro'.  This makes it possible to copy the lines from
+the buffer generated by 'view-lossage' to the "*Edit Macro*" buffer
+created by 'edit-last-kbd-macro', and to save the macro by 'C-c C-c'.
+
 ** Ibuffer
 
 ---
@@ -182,6 +197,13 @@ by default.
 
 ** Gamegrid
 
+** grep
+
+*** rgrep, lgrep and zrgrep now hide part of the command line
+that contains a list of ignored directories and files.
+Clicking on the button with ellipsis unhides the truncated part.
+This truncation can be disabled by the new option 'grep-find-hide'.
+
 ** ERT
 
 +++
@@ -203,6 +225,13 @@ styles as configured by the variable 'completion-styles'.
 These macros are analogue to 'let' and 'let*', but create bindings that
 are evaluated lazily.
 
+** next-error
+
+*** New customizable variable next-error-find-buffer-function
+defines the logic of finding a next-error capable buffer.
+It has an option to use a single such buffer on selected frame, or
+by default use the last buffer that navigated to the current buffer.
+
 ** Eshell
 
 ---
diff --git a/lib/gnulib.mk.in b/lib/gnulib.mk.in
index 451c157..ce47b9d 100644
--- a/lib/gnulib.mk.in
+++ b/lib/gnulib.mk.in
@@ -548,6 +548,8 @@ KQUEUE_CFLAGS = @KQUEUE_CFLAGS@
 KQUEUE_LIBS = @KQUEUE_LIBS@
 KRB4LIB = @KRB4LIB@
 KRB5LIB = @KRB5LIB@
+LCMS2_CFLAGS = @LCMS2_CFLAGS@
+LCMS2_LIBS = @LCMS2_LIBS@
 LDFLAGS = @LDFLAGS@
 LD_SWITCH_SYSTEM = @LD_SWITCH_SYSTEM@
 LD_SWITCH_SYSTEM_TEMACS = @LD_SWITCH_SYSTEM_TEMACS@
@@ -562,7 +564,6 @@ LIBGPM = @LIBGPM@
 LIBHESIOD = @LIBHESIOD@
 LIBINTL = @LIBINTL@
 LIBJPEG = @LIBJPEG@
-LIBLCMS2 = @LIBLCMS2@
 LIBMODULES = @LIBMODULES@
 LIBOBJS = @LIBOBJS@
 LIBOTF_CFLAGS = @LIBOTF_CFLAGS@
@@ -672,6 +673,7 @@ PKG_CONFIG = @PKG_CONFIG@
 PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
 PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
 PNG_CFLAGS = @PNG_CFLAGS@
+PNG_LIBS = @PNG_LIBS@
 POST_ALLOC_OBJ = @POST_ALLOC_OBJ@
 PRAGMA_COLUMNS = @PRAGMA_COLUMNS@
 PRAGMA_SYSTEM_HEADER = @PRAGMA_SYSTEM_HEADER@
@@ -1984,8 +1986,8 @@ signal.h: signal.in.h $(top_builddir)/config.status 
$(CXXDEFS_H) $(ARG_NONNULL_H
              -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \
              -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \
              -e 's|@''NEXT_SIGNAL_H''@|$(NEXT_SIGNAL_H)|g' \
-             -e 's|@''GNULIB_PTHREAD_SIGMASK''@|$(GNULIB_PTHREAD_SIGMASK)|g' \
-             -e 's|@''GNULIB_RAISE''@|$(GNULIB_RAISE)|g' \
+             -e 's/@''GNULIB_PTHREAD_SIGMASK''@/$(GNULIB_PTHREAD_SIGMASK)/g' \
+             -e 's/@''GNULIB_RAISE''@/$(GNULIB_RAISE)/g' \
              -e 's/@''GNULIB_SIGNAL_H_SIGPIPE''@/$(GNULIB_SIGNAL_H_SIGPIPE)/g' 
\
              -e 's/@''GNULIB_SIGPROCMASK''@/$(GNULIB_SIGPROCMASK)/g' \
              -e 's/@''GNULIB_SIGACTION''@/$(GNULIB_SIGACTION)/g' \
diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h
index b9701d5..c8a5d0d 100644
--- a/lib/stdlib.in.h
+++ b/lib/stdlib.in.h
@@ -47,6 +47,9 @@
 
 /* Solaris declares getloadavg() in <sys/loadavg.h>.  */
 #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@
+/* OpenIndiana has a bug: <sys/time.h> must be included before
+   <sys/loadavg.h>.  */
+# include <sys/time.h>
 # include <sys/loadavg.h>
 #endif
 
diff --git a/lisp/autorevert.el b/lisp/autorevert.el
index cf145e0..0a9d3be 100644
--- a/lisp/autorevert.el
+++ b/lisp/autorevert.el
@@ -709,7 +709,8 @@ This is an internal function used by Auto-Revert Mode."
     ;; `preserve-modes' avoids changing the (minor) modes.  But we do
     ;; want to reset the mode for VC, so we do it manually.
     (when (or revert auto-revert-check-vc-info)
-      (vc-refresh-state))))
+      (let ((revert-buffer-in-progress-p t))
+        (vc-refresh-state)))))
 
 (defun auto-revert-tail-handler (size)
   (let ((modified (buffer-modified-p))
diff --git a/lisp/chistory.el b/lisp/chistory.el
index d557c9f..b4a8b6e 100644
--- a/lisp/chistory.el
+++ b/lisp/chistory.el
@@ -125,8 +125,8 @@ The buffer is left in Command History mode."
   'command-history-mode-map "24.1")
 (defvar command-history-mode-map
   (let ((map (make-sparse-keymap)))
-    (set-keymap-parent map lisp-mode-shared-map)
-    (suppress-keymap map)
+    (set-keymap-parent map (make-composed-keymap lisp-mode-shared-map
+                                                 special-mode-map))
     (define-key map "x" 'command-history-repeat)
     (define-key map "\n" 'next-line)
     (define-key map "\r" 'next-line)
@@ -134,20 +134,23 @@ The buffer is left in Command History mode."
     map)
   "Keymap for `command-history-mode'.")
 
-(define-derived-mode command-history-mode fundamental-mode "Command History"
+(define-derived-mode command-history-mode special-mode "Command History"
   "Major mode for listing and repeating recent commands.
 
 Keybindings:
 \\{command-history-mode-map}"
   (lisp-mode-variables nil)
-  (set-syntax-table emacs-lisp-mode-syntax-table)
-  (setq buffer-read-only t))
+  (set (make-local-variable 'revert-buffer-function) 'command-history-revert)
+  (set-syntax-table emacs-lisp-mode-syntax-table))
 
 (defcustom command-history-hook nil
   "If non-nil, its value is called on entry to `command-history-mode'."
   :type 'hook
   :group 'chistory)
 
+(defun command-history-revert (_ignore-auto _noconfirm)
+  (list-command-history))
+
 (defun command-history-repeat ()
   "Repeat the command shown on the current line.
 The buffer for that command is the previous current buffer."
diff --git a/lisp/help.el b/lisp/help.el
index 4899bc4..dcf1f32 100644
--- a/lisp/help.el
+++ b/lisp/help.el
@@ -455,6 +455,8 @@ is specified by the variable `message-log-max'."
 
 (defun view-lossage ()
   "Display last few input keystrokes and the commands run.
+For convenience this uses the same format as
+`edit-last-kbd-macro'.
 
 To record all your input, use `open-dribble-file'."
   (interactive)
@@ -465,8 +467,8 @@ To record all your input, use `open-dribble-file'."
     (princ (mapconcat (lambda (key)
                        (cond
                         ((and (consp key) (null (car key)))
-                         (format "[%s]\n" (if (symbolp (cdr key)) (cdr key)
-                                          "anonymous-command")))
+                         (format ";; %s\n" (if (symbolp (cdr key)) (cdr key)
+                                             "anonymous-command")))
                         ((or (integerp key) (symbolp key) (listp key))
                          (single-key-description key))
                         (t
@@ -475,11 +477,11 @@ To record all your input, use `open-dribble-file'."
                      " "))
     (with-current-buffer standard-output
       (goto-char (point-min))
-      (while (not (eobp))
-       (move-to-column 50)
-       (unless (eolp)
-         (fill-region (line-beginning-position) (line-end-position)))
-       (forward-line 1))
+      (let ((comment-start ";; ")
+            (comment-column 24))
+        (while (not (eobp))
+          (comment-indent)
+         (forward-line 1)))
       ;; jidanni wants to see the last keystrokes immediately.
       (set-marker help-window-point-marker (point)))))
 
diff --git a/lisp/international/mule.el b/lisp/international/mule.el
index e8fb042..8d4c328 100644
--- a/lisp/international/mule.el
+++ b/lisp/international/mule.el
@@ -1492,7 +1492,7 @@ If you set this on a terminal which can't distinguish 
Meta keys from
 8-bit characters, you will have to use ESC to type Meta characters.
 See Info node `Terminal Coding' and Info node `Unibyte Mode'.
 
-On non-windowing terminals, this is set from the locale by default.
+This is set at startup based on the locale.
 
 Setting this variable directly does not take effect;
 use either \\[customize] or \\[set-keyboard-coding-system]."
diff --git a/lisp/isearch.el b/lisp/isearch.el
index 41350c2..a41adf0 100644
--- a/lisp/isearch.el
+++ b/lisp/isearch.el
@@ -480,7 +480,8 @@ This is like `describe-bindings', but displays only Isearch 
keys."
     (define-key map [?\S-\ ] 'isearch-printing-char)
 
     (define-key map    "\C-w" 'isearch-yank-word-or-char)
-    (define-key map "\M-\C-w" 'isearch-del-char)
+    (define-key map "\M-\C-w" 'isearch-yank-symbol-or-char)
+    (define-key map "\M-\C-d" 'isearch-del-char)
     (define-key map "\M-\C-y" 'isearch-yank-char)
     (define-key map    "\C-y" 'isearch-yank-kill)
     (define-key map "\M-s\C-e" 'isearch-yank-line)
@@ -2089,22 +2090,26 @@ If optional ARG is non-nil, pull in the next ARG 
characters."
   (interactive "p")
   (isearch-yank-internal (lambda () (forward-char arg) (point))))
 
-(declare-function subword-forward "subword" (&optional arg))
-(defun isearch-yank-word-or-char ()
-  "Pull next character, subword or word from buffer into search string.
-Subword is used when `subword-mode' is activated. "
-  (interactive)
+(defun isearch--yank-char-or-syntax (syntax-list fn)
   (isearch-yank-internal
    (lambda ()
-     (if (or (= (char-syntax (or (char-after) 0)) ?w)
-             (= (char-syntax (or (char-after (1+ (point))) 0)) ?w))
-        (if (or (and (boundp 'subword-mode) subword-mode)
-                (and (boundp 'superword-mode) superword-mode))
-            (subword-forward 1)
-          (forward-word 1))
+     (if (or (memq (char-syntax (or (char-after) 0)) syntax-list)
+             (memq (char-syntax (or (char-after (1+ (point))) 0))
+                   syntax-list))
+        (funcall fn 1)
        (forward-char 1))
      (point))))
 
+(defun isearch-yank-word-or-char ()
+  "Pull next character or word from buffer into search string."
+  (interactive)
+  (isearch--yank-char-or-syntax '(?w) 'forward-word))
+
+(defun isearch-yank-symbol-or-char ()
+  "Pull next character or symbol from buffer into search string."
+  (interactive)
+  (isearch--yank-char-or-syntax '(?w ?_) 'forward-symbol))
+
 (defun isearch-yank-word (&optional arg)
   "Pull next word from buffer into search string.
 If optional ARG is non-nil, pull in the next ARG words."
diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el
index f5a5474..b1e0bf2 100644
--- a/lisp/net/ange-ftp.el
+++ b/lisp/net/ange-ftp.el
@@ -3373,6 +3373,13 @@ system TYPE.")
        (file-error nil))
     (ange-ftp-real-file-symlink-p file)))
 
+(defun ange-ftp-file-regular-p (file)
+  ;; Reuse Tramp's implementation.
+  (if (ange-ftp-ftp-name file)
+      (and (file-exists-p file)
+           (eq ?- (aref (file-attribute-modes (file-attributes file)) 0)))
+    (ange-ftp-real-file-regular-p file)))
+
 (defun ange-ftp-file-exists-p (name)
   (setq name (expand-file-name name))
   (if (ange-ftp-ftp-name name)
@@ -4395,6 +4402,7 @@ NEWNAME should be the name to give the new compressed or 
uncompressed file.")
 (put 'file-readable-p 'ange-ftp 'ange-ftp-file-readable-p)
 (put 'file-executable-p 'ange-ftp 'ange-ftp-file-executable-p)
 (put 'file-symlink-p 'ange-ftp 'ange-ftp-file-symlink-p)
+(put 'file-regular-p 'ange-ftp 'ange-ftp-file-regular-p)
 (put 'delete-file 'ange-ftp 'ange-ftp-delete-file)
 (put 'verify-visited-file-modtime 'ange-ftp
      'ange-ftp-verify-visited-file-modtime)
@@ -4485,6 +4493,8 @@ NEWNAME should be the name to give the new compressed or 
uncompressed file.")
   (ange-ftp-run-real-handler 'file-executable-p args))
 (defun ange-ftp-real-file-symlink-p (&rest args)
   (ange-ftp-run-real-handler 'file-symlink-p args))
+(defun ange-ftp-real-file-regular-p (&rest args)
+  (ange-ftp-run-real-handler 'file-regular-p args))
 (defun ange-ftp-real-delete-file (&rest args)
   (ange-ftp-run-real-handler 'delete-file args))
 (defun ange-ftp-real-verify-visited-file-modtime (&rest args)
diff --git a/lisp/progmodes/grep.el b/lisp/progmodes/grep.el
index 14e251e..9b2c6f1 100644
--- a/lisp/progmodes/grep.el
+++ b/lisp/progmodes/grep.el
@@ -433,6 +433,26 @@ See `compilation-error-regexp-alist' for format details.")
                       help-echo "Number of matches so far")
     "]"))
 
+(defcustom grep-find-hide t
+  "If non-nil, hide part of rgrep/lgrep/zrgrep command line.
+The hidden part contains a list of ignored directories and files.
+Clicking on the button-like ellipsis unhides the abbreviated part
+and reveals the entire command line."
+  :type 'boolean
+  :version "27.1"
+  :group 'grep)
+
+(defvar grep-find-hide-properties
+  (let ((ellipsis (if (char-displayable-p ?…) "[…]" "[...]"))
+        (map (make-sparse-keymap)))
+    (define-key map [down-mouse-2] 'mouse-set-point)
+    (define-key map [mouse-2] 'grep-find-show)
+    (define-key map "\C-m" 'grep-find-show)
+    `(face nil display ,ellipsis mouse-face highlight
+      help-echo "RET, mouse-2: show unabbreviated command"
+      keymap ,map))
+  "Properties of button-like ellipsis on part of rgrep command line.")
+
 (defvar grep-mode-font-lock-keywords
    '(;; Command output lines.
      (": \\(.+\\): \\(?:Permission denied\\|No such \\(?:file or 
directory\\|device or address\\)\\)$"
@@ -450,9 +470,16 @@ See `compilation-error-regexp-alist' for format details.")
       (2 grep-error-face nil t))
      ;; "filename-linenumber-" format is used for context lines in GNU grep,
      ;; "filename=linenumber=" for lines with function names in "git grep -p".
-     ("^.+?\\([-=\0]\\)[0-9]+\\([-=]\\).*\n" (0 grep-context-face)
+     ("^.+?\\([-=\0]\\)[0-9]+\\([-=]\\).*\n"
+      (0 grep-context-face)
       (1 (if (eq (char-after (match-beginning 1)) ?\0)
-             `(face nil display ,(match-string 2))))))
+             `(face nil display ,(match-string 2)))))
+     ;; Hide excessive part of rgrep command
+     ("^find \\(\\. -type d .*\\\\)\\)"
+      (1 (when grep-find-hide grep-find-hide-properties)))
+     ;; Hide excessive part of lgrep command
+     ("^grep \\( *--exclude.*--exclude[^ ]+\\)"
+      (1 (when grep-find-hide grep-find-hide-properties))))
    "Additional things to highlight in grep output.
 This gets tacked on the end of the generated expressions.")
 
@@ -734,6 +761,8 @@ This function is called from `compilation-filter-hook'."
             (grep-use-null-device ,grep-use-null-device)
             (grep-find-command ,grep-find-command)
             (grep-find-template ,grep-find-template)
+            (grep-use-null-filename-separator
+             ,grep-use-null-filename-separator)
             (grep-find-use-xargs ,grep-find-use-xargs)
             (grep-highlight-matches ,grep-highlight-matches))))))
 
@@ -1166,6 +1195,24 @@ to specify a command to run."
                  (shell-quote-argument ")")
                  " -prune -o ")))))
 
+(defun grep-find-show ()
+  "Show the hidden part of rgrep/lgrep/zrgrep command line."
+  (interactive)
+  (when (get-text-property (point) 'display)
+    (let ((beg (or (previous-single-property-change
+                    (min (point-max) (1+ (point))) 'display)
+                   (point)))
+          (end (or (next-single-property-change
+                    (point) 'display)
+                   (point)))
+          (inhibit-modification-hooks t)
+          (inhibit-read-only t)
+         (buffer-undo-list t)
+         (modified (buffer-modified-p)))
+      (remove-list-of-text-properties
+       beg end '(display help-echo mouse-face help-echo keymap))
+      (set-buffer-modified-p modified))))
+
 ;;;###autoload
 (defun zrgrep (regexp &optional files dir confirm template)
   "Recursively grep for REGEXP in gzipped FILES in tree rooted at DIR.
diff --git a/lisp/simple.el b/lisp/simple.el
index 0c54c8f..2101cfe 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -121,6 +121,7 @@ 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].")
+(make-variable-buffer-local 'next-error-last-buffer)
 
 (defvar next-error-function nil
   "Function to use to find the next error in the current buffer.
@@ -169,6 +170,31 @@ rejected, and the function returns nil."
           (and extra-test-inclusive
                (funcall extra-test-inclusive))))))
 
+(defcustom next-error-find-buffer-function nil
+  "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)
+                 (function :tag "Other function"))
+  :group 'next-error
+  :version "27.1")
+
+(defun next-error-buffer-on-selected-frame (&optional avoid-current
+                                                      extra-test-inclusive
+                                                      extra-test-exclusive)
+  "Return a single visible next-error buffer on the selected frame."
+  (let ((window-buffers
+         (delete-dups
+          (delq nil (mapcar (lambda (w)
+                              (if (next-error-buffer-p
+                                  (window-buffer w)
+                                   avoid-current
+                                   extra-test-inclusive extra-test-exclusive)
+                                  (window-buffer w)))
+                            (window-list))))))
+    (if (eq (length window-buffers) 1)
+        (car window-buffers))))
+
 (defun next-error-find-buffer (&optional avoid-current
                                         extra-test-inclusive
                                         extra-test-exclusive)
@@ -185,18 +211,11 @@ The function EXTRA-TEST-EXCLUSIVE, if non-nil, is called 
in each buffer
 that would normally be considered usable.  If it returns nil,
 that buffer is rejected."
   (or
-   ;; 1. If one window on the selected frame displays such buffer, return it.
-   (let ((window-buffers
-          (delete-dups
-           (delq nil (mapcar (lambda (w)
-                               (if (next-error-buffer-p
-                                   (window-buffer w)
-                                    avoid-current
-                                    extra-test-inclusive extra-test-exclusive)
-                                   (window-buffer w)))
-                             (window-list))))))
-     (if (eq (length window-buffers) 1)
-         (car window-buffers)))
+   ;; 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))
    ;; 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
@@ -261,11 +280,20 @@ To control which errors are matched, customize the 
variable
     (when buffer
       ;; We know here that next-error-function is a valid symbol we can funcall
       (with-current-buffer buffer
+        ;; Allow next-error to be used from the next-error capable buffer.
+        (setq next-error-last-buffer buffer)
         (funcall next-error-function (prefix-numeric-value arg) reset)
         ;; Override possible change of next-error-last-buffer in 
next-error-function
         (setq next-error-last-buffer buffer)
+        (setq-default next-error-last-buffer buffer)
         (when next-error-recenter
           (recenter next-error-recenter))
+        (message "%s error from %s"
+                 (cond (reset                             "First")
+                       ((eq (prefix-numeric-value arg) 0) "Current")
+                       ((< (prefix-numeric-value arg) 0)  "Previous")
+                       (t                                 "Next"))
+                 next-error-last-buffer)
         (run-hooks 'next-error-hook)))))
 
 (defun next-error-internal ()
@@ -273,13 +301,26 @@ To control which errors are matched, customize the 
variable
   (let ((buffer (current-buffer)))
     ;; We know here that next-error-function is a valid symbol we can funcall
     (with-current-buffer buffer
+      ;; Allow next-error to be used from the next-error capable buffer.
+      (setq next-error-last-buffer buffer)
       (funcall next-error-function 0 nil)
       ;; Override possible change of next-error-last-buffer in 
next-error-function
       (setq next-error-last-buffer buffer)
+      (setq-default next-error-last-buffer buffer)
       (when next-error-recenter
         (recenter next-error-recenter))
+      (message "Current error from %s" next-error-last-buffer)
       (run-hooks 'next-error-hook))))
 
+(defun next-error-select-buffer (buffer)
+  "Select a `next-error' capable buffer and set it as the last used."
+  (interactive
+   (list (get-buffer
+          (read-buffer "Select next-error buffer: " nil nil
+                       (lambda (b) (next-error-buffer-p (cdr b)))))))
+  (setq next-error-last-buffer buffer)
+  (setq-default next-error-last-buffer buffer))
+
 (defalias 'goto-next-locus 'next-error)
 (defalias 'next-match 'next-error)
 
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index aaa8ebf..d87cb5e 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -1309,7 +1309,7 @@ that may be included as part of a word (see 
`ispell-dictionary-alist').
 
 This finds the word to spell-check by searching for CASECHARS defined
 in `ispell-dictionary-alist' for the current dictionary.  Thus, the
-word could be far away of point if point is inside whitespace or
+word could be far away from point if point is inside whitespace or
 punctuation characters, or in text that belongs to a different
 language."
   (let* ((flyspell-casechars (flyspell-get-casechars))
diff --git a/lisp/vc/vc-dispatcher.el b/lisp/vc/vc-dispatcher.el
index b0d2221..da9d346 100644
--- a/lisp/vc/vc-dispatcher.el
+++ b/lisp/vc/vc-dispatcher.el
@@ -290,16 +290,16 @@ case, and the process object in the asynchronous case."
   (let* ((files
          (mapcar (lambda (f) (file-relative-name (expand-file-name f)))
                  (if (listp file-or-list) file-or-list (list file-or-list))))
+        ;; Keep entire commands in *Messages* but avoid resizing the
+        ;; echo area.  Messages in this function are formatted in
+        ;; a such way that the important parts are at the beginning,
+        ;; due to potential truncation of long messages.
+        (message-truncate-lines t)
         (full-command
-         ;; What we're doing here is preparing a version of the command
-         ;; for display in a debug-progress message.  If it's fewer than
-         ;; 20 characters display the entire command (without trailing
-         ;; newline).  Otherwise display the first 20 followed by an ellipsis.
          (concat (if (string= (substring command -1) "\n")
                      (substring command 0 -1)
                    command)
-                 " "
-                 (vc-delistify (mapcar (lambda (s) (if (> (length s) 20) 
(concat (substring s 0 2) "...")  s)) flags))
+                 " " (vc-delistify flags)
                  " " (vc-delistify files))))
     (save-current-buffer
       (unless (or (eq buffer t)
@@ -324,7 +324,7 @@ case, and the process object in the asynchronous case."
                       (apply 'start-file-process command (current-buffer)
                               command squeezed))))
                (when vc-command-messages
-                 (message "Running %s in background..." full-command))
+                 (message "Running in background: %s" full-command))
                 ;; Get rid of the default message insertion, in case we don't
                 ;; set a sentinel explicitly.
                (set-process-sentinel proc #'ignore)
@@ -332,10 +332,11 @@ case, and the process object in the asynchronous case."
                (setq status proc)
                (when vc-command-messages
                  (vc-run-delayed
-                  (message "Running %s in background... done" full-command))))
+                   (let ((message-truncate-lines t))
+                     (message "Done in background: %s" full-command)))))
            ;; Run synchronously
            (when vc-command-messages
-             (message "Running %s in foreground..." full-command))
+             (message "Running in foreground: %s" full-command))
            (let ((buffer-undo-list t))
              (setq status (apply 'process-file command nil t nil squeezed)))
            (when (and (not (eq t okstatus))
@@ -345,13 +346,14 @@ case, and the process object in the asynchronous case."
                 (pop-to-buffer (current-buffer))
                 (goto-char (point-min))
                 (shrink-window-if-larger-than-buffer))
-             (error "Running %s...FAILED (%s)" full-command
-                    (if (integerp status) (format "status %d" status) status)))
+             (error "Failed (%s): %s"
+                    (if (integerp status) (format "status %d" status) status)
+                    full-command))
            (when vc-command-messages
-             (message "Running %s...OK = %d" full-command status))))
+             (message "Done (status=%d): %s" status full-command))))
        (vc-run-delayed
-        (run-hook-with-args 'vc-post-command-functions
-                             command file-or-list flags))
+         (run-hook-with-args 'vc-post-command-functions
+                             command file-or-list flags))
        status))))
 
 (defun vc-do-async-command (buffer root command &rest args)
diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el
index 26af998..5456467 100644
--- a/lisp/vc/vc-git.el
+++ b/lisp/vc/vc-git.el
@@ -102,8 +102,7 @@
 (eval-when-compile
   (require 'cl-lib)
   (require 'vc)
-  (require 'vc-dir)
-  (require 'grep))
+  (require 'vc-dir))
 
 (defgroup vc-git nil
   "VC Git backend."
@@ -869,6 +868,8 @@ It is based on `log-edit-mode', and has Git-specific 
extensions.")
 
 ;; To be called via vc-pull from vc.el, which requires vc-dispatcher.
 (declare-function vc-compilation-mode "vc-dispatcher" (backend))
+(defvar compilation-directory)
+(defvar compilation-arguments)
 
 (defun vc-git--pushpull (command prompt extra-args)
   "Run COMMAND (a string; either push or pull) on the current Git branch.
@@ -1411,6 +1412,7 @@ This requires git 1.8.4 or later, for the \"-L\" option 
of \"git log\"."
 (declare-function grep-read-files "grep" (regexp))
 (declare-function grep-expand-template "grep"
                  (template &optional regexp files dir excl))
+(defvar compilation-environment)
 
 ;; Derived from `lgrep'.
 (defun vc-git-grep (regexp &optional files dir)
@@ -1569,7 +1571,14 @@ The difference to vc-do-command is that this function 
always invokes
          (or coding-system-for-read vc-git-log-output-coding-system))
        (coding-system-for-write
          (or coding-system-for-write vc-git-commits-coding-system))
-        (process-environment (cons "GIT_DIR" process-environment)))
+        (process-environment
+         (append
+          `("GIT_DIR"
+            ;; Avoid repository locking during background operations
+            ;; (bug#21559).
+            ,@(when revert-buffer-in-progress-p
+                '("GIT_OPTIONAL_LOCKS=0")))
+          process-environment)))
     (apply 'vc-do-command (or buffer "*vc*") okstatus vc-git-program
           ;; https://debbugs.gnu.org/16897
           (unless (and (not (cdr-safe file-or-list))
diff --git a/m4/getloadavg.m4 b/m4/getloadavg.m4
index acc2665..7b6a09a 100644
--- a/m4/getloadavg.m4
+++ b/m4/getloadavg.m4
@@ -7,7 +7,7 @@
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 6
+#serial 7
 
 # Autoconf defines AC_FUNC_GETLOADAVG, but that is obsolescent.
 # New applications should use gl_GETLOADAVG instead.
@@ -92,6 +92,9 @@ else
 fi
 AC_CHECK_DECL([getloadavg], [], [HAVE_DECL_GETLOADAVG=0],
   [[#if HAVE_SYS_LOADAVG_H
+    /* OpenIndiana has a bug: <sys/time.h> must be included before
+       <sys/loadavg.h>.  */
+    # include <sys/time.h>
     # include <sys/loadavg.h>
     #endif
     #include <stdlib.h>]])
diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4
index eff6f9e..49dc5d5 100644
--- a/m4/stdlib_h.m4
+++ b/m4/stdlib_h.m4
@@ -1,4 +1,4 @@
-# stdlib_h.m4 serial 44
+# stdlib_h.m4 serial 45
 dnl Copyright (C) 2007-2018 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -14,6 +14,9 @@ AC_DEFUN([gl_STDLIB_H],
   dnl guaranteed by C89.
   gl_WARN_ON_USE_PREPARE([[#include <stdlib.h>
 #if HAVE_SYS_LOADAVG_H
+/* OpenIndiana has a bug: <sys/time.h> must be included before
+   <sys/loadavg.h>.  */
+# include <sys/time.h>
 # include <sys/loadavg.h>
 #endif
 #if HAVE_RANDOM_H
diff --git a/m4/warnings.m4 b/m4/warnings.m4
index eb1c795..07edda1 100644
--- a/m4/warnings.m4
+++ b/m4/warnings.m4
@@ -1,4 +1,4 @@
-# warnings.m4 serial 13
+# warnings.m4 serial 14
 dnl Copyright (C) 2008-2018 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -76,6 +76,15 @@ m4_defun([gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)],
   AC_LANG_POP([C++])
 ])
 
+# Specialization for _AC_LANG = Objective C. This macro can be AC_REQUIREd.
+# Use of m4_defun rather than AC_DEFUN works around a bug in autoconf < 2.63b.
+m4_defun([gl_UNKNOWN_WARNINGS_ARE_ERRORS(Objective C)],
+[
+  AC_LANG_PUSH([Objective C])
+  gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL
+  AC_LANG_POP([Objective C])
+])
+
 AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL],
 [gl_COMPILER_OPTION_IF([-Werror -Wunknown-warning-option],
    [gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'],
diff --git a/src/Makefile.in b/src/Makefile.in
index ab9bc5b..ba51333 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -455,6 +455,10 @@ otherobj= $(TERMCAP_OBJ) $(PRE_ALLOC_OBJ) $(GMALLOC_OBJ) 
$(RALLOC_OBJ) \
 address@hidden@
 ALLOBJS = $(FIRSTFILE_OBJ) $(VMLIMIT_OBJ) $(obj) $(otherobj)
 
+# Must be first, before dep inclusion!
+all: emacs$(EXEEXT) $(OTHER_FILES)
+.PHONY: all
+
 AUTO_DEPEND = @AUTO_DEPEND@
 DEPDIR = deps
 ifeq ($(AUTO_DEPEND),yes)
@@ -465,9 +469,6 @@ else
   include $(srcdir)/deps.mk
 endif
 
-all: emacs$(EXEEXT) $(OTHER_FILES)
-.PHONY: all
-
 ## This is the list of all Lisp files that might be loaded into the
 ## dumped Emacs.  Some of them are not loaded on all platforms, but
 ## the DOC file on every platform uses them (because the DOC file is
diff --git a/src/keyboard.c b/src/keyboard.c
index fae1677..4280316 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -11741,8 +11741,9 @@ immediately after running `post-command-hook'.  */);
 
   DEFVAR_LISP ("input-method-function", Vinput_method_function,
               doc: /* If non-nil, the function that implements the current 
input method.
-It's called with one argument, a printing character that was just read.
-\(That means a character with code 040...0176.)
+It's called with one argument, which must be a single-byte
+character that was just read.  Any single-byte character is
+acceptable, except the DEL character, codepoint 127 decimal, 177 octal.
 Typically this function uses `read-event' to read additional events.
 When it does so, it should first bind `input-method-function' to nil
 so it will not be called recursively.
diff --git a/src/sysdep.c b/src/sysdep.c
index c374ac7..cde12f9 100644
--- a/src/sysdep.c
+++ b/src/sysdep.c
@@ -2565,6 +2565,22 @@ emacs_close (int fd)
 #define MAX_RW_COUNT (INT_MAX >> 18 << 18)
 #endif
 
+/* Verify that MAX_RW_COUNT fits in the relevant standard types.  */
+#ifndef SSIZE_MAX
+# define SSIZE_MAX TYPE_MAXIMUM (ssize_t)
+#endif
+verify (MAX_RW_COUNT <= PTRDIFF_MAX);
+verify (MAX_RW_COUNT <= SIZE_MAX);
+verify (MAX_RW_COUNT <= SSIZE_MAX);
+
+#ifdef WINDOWSNT
+/* Verify that Emacs read requests cannot cause trouble, even in
+   64-bit builds.  The last argument of 'read' is 'unsigned int', and
+   the return value's type (see 'sys_read') is 'int'.  */
+verify (MAX_RW_COUNT <= INT_MAX);
+verify (MAX_RW_COUNT <= UINT_MAX);
+#endif
+
 /* Read from FD to a buffer BUF with size NBYTE.
    If interrupted, process any quits and pending signals immediately
    if INTERRUPTIBLE, and then retry the read unless quitting.
@@ -2573,18 +2589,11 @@ emacs_close (int fd)
 static ptrdiff_t
 emacs_intr_read (int fd, void *buf, ptrdiff_t nbyte, bool interruptible)
 {
+  /* No caller should ever pass a too-large size to emacs_read.  */
+  eassert (nbyte <= MAX_RW_COUNT);
+
   ssize_t result;
 
-  /* There is no need to check against MAX_RW_COUNT, since no caller ever
-     passes a size that large to emacs_read.  */
-#ifdef WINDOWSNT
-  /* On MS-Windows, 'read's last argument is declared as 'unsigned
-     int', and the return value's type (see 'sys_read') is 'int'.
-     This might cause trouble, especially in 64-bit builds, if the
-     above comment ever becomes incorrect.  The following assertion
-     should make us more future-proof.  */
-  eassert (nbyte <= INT_MAX);
-#endif
   do
     {
       if (interruptible)
diff --git a/src/xdisp.c b/src/xdisp.c
index 1428644..9170d6b 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -31377,10 +31377,12 @@ note_mouse_highlight (struct frame *f, int x, int y)
       /* Check mouse-face highlighting.  */
       if (! same_region
          /* If there exists an overlay with mouse-face overlapping
-            the one we are currently highlighting, we have to
-            check if we enter the overlapping overlay, and then
-            highlight only that.  */
-         || (OVERLAYP (hlinfo->mouse_face_overlay)
+            the one we are currently highlighting, we have to check
+            if we enter the overlapping overlay, and then highlight
+            only that.  Skip the check when mouse-face highlighting
+            is currently hidden to avoid Bug#30519.  */
+         || (!hlinfo->mouse_face_hidden
+             && OVERLAYP (hlinfo->mouse_face_overlay)
              && mouse_face_overlay_overlaps (hlinfo->mouse_face_overlay)))
        {
          /* Find the highest priority overlay with a mouse-face.  */
diff --git a/src/xterm.c b/src/xterm.c
index 1b96b08..bd798d5 100644
--- a/src/xterm.c
+++ b/src/xterm.c
@@ -13252,6 +13252,8 @@ small font display sizes.  */);
   DEFVAR_BOOL ("x-underline-at-descent-line",
               x_underline_at_descent_line,
      doc: /* Non-nil means to draw the underline at the same place as the 
descent line.
+(If `line-spacing' is in effect, that moves the underline lower by
+that many pixels.)
 A value of nil means to draw the underline according to the value of the
 variable `x-use-underline-position-properties', which is usually at the
 baseline level.  The default value is nil.  */);
diff --git a/test/Makefile.in b/test/Makefile.in
index a85d491..1653263 100644
--- a/test/Makefile.in
+++ b/test/Makefile.in
@@ -96,6 +96,7 @@ TEST_LOCALE = C
 
 # Whether to run tests from .el files in preference to .elc, we do
 # this by default since it gives nicer stacktraces.
+# If you just want a pass/fail, setting this to no is much faster.
 TEST_LOAD_EL ?= yes
 
 # Maximum length of lines in ert backtraces; nil for no limit.
@@ -174,11 +175,18 @@ else
 maybe_exclude_module_tests := -name emacs-module-tests.el -prune -o
 endif
 
+## To speed up parallel builds, put these slow test files (which can
+## take longer than all the rest combined) at the start of the list.
+SLOW_TESTS = ${srcdir}/lisp/net/tramp-tests.el
+
 ELFILES := $(sort $(shell find ${srcdir} -path "${srcdir}/manual" -prune -o \
                -path "${srcdir}/data" -prune -o \
                -name "*resources" -prune -o \
                ${maybe_exclude_module_tests} \
                -name "*.el" ! -name ".*" -print))
+
+$(foreach slow,${SLOW_TESTS},$(eval ELFILES:= ${slow} $(filter-out 
${slow},${ELFILES})))
+
 ## .log files may be in a different directory for out of source builds
 LOGFILES := $(patsubst %.el,%.log, \
                $(patsubst $(srcdir)/%,%,$(ELFILES)))
diff --git a/test/lisp/emacs-lisp/package-tests.el 
b/test/lisp/emacs-lisp/package-tests.el
index 62fba58..83f5228 100644
--- a/test/lisp/emacs-lisp/package-tests.el
+++ b/test/lisp/emacs-lisp/package-tests.el
@@ -484,14 +484,16 @@ Must called from within a `tar-mode' buffer."
       (package-import-keyring keyring)
       (package-refresh-contents)
       (let ((package-check-signature 'allow-unsigned))
-        (should (package-install 'signed-good))
+        (should (progn (package-install 'signed-good) 'noerror))
         (should-error (package-install 'signed-bad)))
+      (package-delete (car (alist-get 'signed-good package-alist)))
       (let ((package-check-signature t))
-        (should (package-install 'signed-good))
+        (should (progn (package-install 'signed-good) 'noerror))
         (should-error (package-install 'signed-bad)))
+      (package-delete (car (alist-get 'signed-good package-alist)))
       (let ((package-check-signature nil))
-        (should (package-install 'signed-good))
-        (should (package-install 'signed-bad)))
+        (should (progn (package-install 'signed-good) 'noerror))
+        (should (progn (package-install 'signed-bad) 'noerror)))
       ;; Check if the installed package status is updated.
       (let ((buf (package-list-packages)))
        (package-menu-refresh)



reply via email to

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