Merge from emacs-24; up to 2012-04-20T05:47:55Z!eliz@gnu.org
authorChong Yidong <cyd@gnu.org>
Sat, 5 May 2012 04:32:58 +0000 (12:32 +0800)
committerChong Yidong <cyd@gnu.org>
Sat, 5 May 2012 04:32:58 +0000 (12:32 +0800)
30 files changed:
1  2 
doc/emacs/ChangeLog
doc/emacs/abbrevs.texi
doc/emacs/arevert-xtra.texi
doc/emacs/buffers.texi
doc/emacs/calendar.texi
doc/emacs/custom.texi
doc/emacs/dired.texi
doc/emacs/fixit.texi
doc/emacs/frames.texi
doc/emacs/maintaining.texi
doc/emacs/modes.texi
doc/emacs/mule.texi
doc/emacs/programs.texi
doc/emacs/rmail.texi
doc/emacs/text.texi
doc/lispintro/ChangeLog
doc/lispintro/emacs-lisp-intro.texi
doc/lispref/ChangeLog
doc/lispref/commands.texi
doc/lispref/elisp.texi
doc/lispref/intro.texi
doc/lispref/lists.texi
doc/lispref/numbers.texi
doc/lispref/objects.texi
doc/lispref/text.texi
etc/refcards/README
lib-src/ChangeLog
lisp/ChangeLog
lisp/select.el
src/ChangeLog

@@@ -1,15 -1,8 +1,56 @@@
 -2012-05-01  Glenn Morris  <rgm@gnu.org>
++2012-05-05  Glenn Morris  <rgm@gnu.org>
 -      * emacs.texi (@copying): Only print EDITION in the TeX version.
++      * custom.texi (Customization Groups, Custom Themes, Examining):
++      Improve page breaks.
++
++      * rmail.texi (Rmail Display): Use example rather than smallexample.
++
++      * calendar.texi: Convert inforefs to refs.
++
++      * dired.texi (Dired Enter): Improve page break.
++
++      * abbrevs.texi (Abbrev Concepts): Copyedits.
++
++      * maintaining.texi (Registering, Tag Syntax):
++      Tweak line and page breaks.
++
++      * programs.texi (Programs, Electric C): Copyedits.
++      (Program Modes): Add xref to Fortran.
++      (Left Margin Paren): Remove what was (oddly enough) the only use
++      of defvar in the entire Emacs manual.
++      (Hungry Delete): Remove footnote about ancient Emacs version.
++      (Other C Commands): Use example rather than smallexample.
++
++      * text.texi (Pages, Filling, Foldout, Org Mode, HTML Mode)
++      (Nroff Mode, Enriched Indentation, Table Rows and Columns):
++      Tweak line and page breaks.
++
++      * modes.texi (Major Modes, Minor Modes): Reword to improve page-breaks.
++      (Major Modes): Use example rather than smallexample.
 -2012-04-30  Glenn Morris  <rgm@gnu.org>
++      * mule.texi (Output Coding): Reword to improve page-breaks.
++
++      * frames.texi (Fonts): Tweak line and page breaks.
++      Use example rather than smallexample.  Change cross-reference.
++      (Text-Only Mouse): Fix xref.
++
++      * buffers.texi (Buffers, Kill Buffer, Several Buffers)
++      (Indirect Buffers): Tweak line- and page-breaks.
++
++      * fixit.texi (Fixit, Undo): Reword to improve page-breaks.
++
 +2012-05-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
 +      (info, infoclean): Use $INFO_EXT.
 +      ($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
 +      * makefile.w32-in (INFO_EXT, INFO_OPTS): New.
 +      (INFO_TARGETS): Use $INFO_EXT.
 +      ($(infodir)/emacs$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT, and -o.
 +
 +2012-05-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.texi (@copying): Only print EDITION in the TeX version.
  
        * search.texi (Regexp Search): Just say "Emacs".
  
@@@ -37,12 -37,12 +37,12 @@@ Automatic Typing}
  @node Abbrev Concepts
  @section Abbrev Concepts
  
--  An @dfn{abbrev} is a word which has been defined to @dfn{expand} into
++  An @dfn{abbrev} is a word that has been defined to @dfn{expand} into
  a specified @dfn{expansion}.  When you insert a word-separator character
  following the abbrev, that expands the abbrev---replacing the abbrev
  with its expansion.  For example, if @samp{foo} is defined as an abbrev
--expanding to @samp{find outer otter}, then you can insert @samp{find
--outer otter.} into the buffer by typing @kbd{f o o .}.
++expanding to @samp{find outer otter}, then typing @kbd{f o o .} will
++insert @samp{find outer otter.}.
  
  @findex abbrev-mode
  @cindex Abbrev mode
@@@ -61,10 -61,10 +61,9 @@@ mode-specific definitions for differen
  definition for the current major mode overrides a global definition.
  
    You can define abbrevs interactively during the editing session,
--irrespective of whether Abbrev mode is enabled.  You
--can also save lists of abbrev definitions in files for use in later
--sessions.  Some users keep extensive lists of abbrevs that they load
--in every session.
++irrespective of whether Abbrev mode is enabled.  You can also save
++lists of abbrev definitions in files, which you can the reload for use
++in later sessions.
  
  @node Defining Abbrevs
  @section Defining Abbrevs
@@@ -109,6 -109,6 +109,7 @@@ revert-buffer-function,, Reverting, eli
  
  In addition, it @emph{must} have a @code{buffer-stale-function}.
  
++@c FIXME only defvar in all of doc/emacs!
  @defvar buffer-stale-function
  The value of this variable is a function to check whether a non-file
  buffer needs reverting.  This should be a function with one optional
@@@ -46,7 -46,7 +46,7 @@@ This is because Emacs tracks buffer pos
  For typical 64-bit machines, this maximum buffer size is @math{2^61 -
  2} bytes, or about 2 EiB.  For typical 32-bit machines, the maximum is
  usually @math{2^29 - 2} bytes, or about 512 MiB.  Buffer sizes are
--also limited by the amount of memory present in the system.
++also limited by the amount of memory in the system.
  
  @menu
  * Select Buffer::       Creating a new buffer or reselecting an old one.
@@@ -326,8 -326,8 +326,8 @@@ for a mere hour
  @cindex Midnight mode
  @vindex midnight-mode
  @vindex midnight-hook
--  You can also have this buffer purging done for you, every day at
--midnight, by enabling Midnight mode.  Midnight mode operates each day
++  You can also have this buffer purging done for you, once a day,
++by enabling Midnight mode.  Midnight mode operates each day
  at midnight; at that time, it runs @code{clean-buffer-list}, or
  whichever functions you have placed in the normal hook
  @code{midnight-hook} (@pxref{Hooks}).  To enable Midnight mode, use
@@@ -361,7 -361,7 +361,7 @@@ the buffer menu in another window, and 
  
    The buffer menu is a read-only buffer, and can be changed only
  through the special commands described in this section.  The usual
--Emacs cursor motion commands can be used in this buffer.  The
++cursor motion commands can be used in this buffer.  The
  following commands apply to the buffer described on the current line:
  
  @table @kbd
@@@ -476,13 -476,13 +476,13 @@@ Auto Revert mode applies to the @file{*
  
    An @dfn{indirect buffer} shares the text of some other buffer, which
  is called the @dfn{base buffer} of the indirect buffer.  In some ways it
--is the analogue, for buffers, of a symbolic link between files.
++is a buffer analogue of a symbolic link between files.
  
  @table @kbd
  @findex make-indirect-buffer
  @item M-x make-indirect-buffer @key{RET} @var{base-buffer} @key{RET} @var{indirect-name} @key{RET}
--Create an indirect buffer named @var{indirect-name} whose base buffer
--is @var{base-buffer}.
++Create an indirect buffer named @var{indirect-name} with base buffer
++@var{base-buffer}.
  @findex clone-indirect-buffer
  @item M-x clone-indirect-buffer @key{RET}
  Create an indirect buffer that is a twin copy of the current buffer.
@@@ -520,10 -520,10 +520,9 @@@ buffer in another window.  These functi
  @code{clone-indirect-buffer-hook} after creating the indirect buffer.
  
    The more general way to make an indirect buffer is with the command
--@kbd{M-x make-indirect-buffer}.  It creates an indirect buffer from
--buffer @var{base-buffer}, under the name @var{indirect-name}.  It
--prompts for both @var{base-buffer} and @var{indirect-name} using the
--minibuffer.
++@kbd{M-x make-indirect-buffer}.  It creates an indirect buffer
++named @var{indirect-name} from a buffer @var{base-buffer}, prompting for
++both using the minibuffer.
  
  @node Buffer Convenience
  @section Convenience Features and Customization of Buffer Handling
@@@ -26,8 -26,8 +26,8 @@@ the calendar, type @kbd{q}
  
  @iftex
    This chapter describes the basic calendar features.
--@inforef{Advanced Calendar/Diary Usage,, emacs-xtra}, for information
--about more specialized features.
++For more advanced topics,
++@pxref{Advanced Calendar/Diary Usage,,, emacs-xtra, Specialized Emacs Features}.
  @end iftex
  
  @menu
@@@ -489,7 -489,7 +489,7 @@@ window
  calendar, use the @kbd{x} command.  This displays the dates that are
  holidays in a different face.
  @iftex
--@inforef{Calendar Customizing, calendar-holiday-marker, emacs-xtra}.
++@xref{Calendar Customizing,,, emacs-xtra, Specialized Emacs Features}.
  @end iftex
  @ifnottex
  @xref{Calendar Customizing, calendar-holiday-marker}.
@@@ -1102,7 -1102,7 +1102,7 @@@ current date is visible)
  the @kbd{m} command.  This marks the dates that have diary entries in
  a different face.
  @iftex
--@inforef{Calendar Customizing, diary-entry-marker, emacs-xtra}.
++@xref{Calendar Customizing,,, emacs-xtra, Specialized Emacs Features}.
  @end iftex
  @ifnottex
  @xref{Calendar Customizing, diary-entry-marker}.
@@@ -1126,7 -1126,7 +1126,7 @@@ date, independently of the calendar dis
  few days as well; the variable @code{diary-number-of-entries} specifies
  how many days to include.
  @iftex
--@inforef{Diary Customizing,, emacs-xtra}.
++@xref{Diary Customizing,,, emacs-xtra, Specialized Emacs Features}.
  @end iftex
  @ifnottex
  @xref{Diary Customizing, diary-number-of-entries}.
@@@ -1270,7 -1270,7 +1270,7 @@@ entries.  The basic commands are liste
  commands are in the next section (@pxref{Special Diary Entries}).
  Entries can also be based on non-Gregorian calendars.
  @iftex
--@inforef{Non-Gregorian Diary,, emacs-xtra}.
++@xref{Non-Gregorian Diary,,, emacs-xtra, Specialized Emacs Features}.
  @end iftex
  @ifnottex
  @xref{Non-Gregorian Diary}.
@@@ -1438,7 -1438,7 +1438,7 @@@ specifying the name of a face or a sing
  marking the entry in the calendar.  Most generally, sexp diary entries
  can perform arbitrary computations to determine when they apply.
  @iftex
--@inforef{Sexp Diary Entries,, emacs-xtra}.
++@xref{Sexp Diary Entries,,, emacs-xtra, Specialized Emacs Features}.
  @end iftex
  @ifnottex
  @xref{Sexp Diary Entries}.
@@@ -1512,7 -1512,7 +1512,7 @@@ display the day's diary buffer, unless 
  @code{appt-display-diary} to @code{nil}.  The appointments list is
  also updated whenever the diary file (or a file it includes; see
  @iftex
--@inforef{Fancy Diary Display,, emacs-xtra})
++@ref{Fancy Diary Display,,, emacs-xtra, Specialized Emacs Features})
  @end iftex
  @ifnottex
  @ref{Fancy Diary Display})
@@@ -1576,7 -1576,7 +1576,7 @@@ and adds the results to an Emacs diary 
  You can use an @code{#include} directive to add the import file contents
  to the main diary file, if these are different files.
  @iftex
--@inforef{Fancy Diary Display,, emacs-xtra}.
++@xref{Fancy Diary Display,,, emacs-xtra, Specialized Emacs Features}.
  @end iftex
  @ifnottex
  @xref{Fancy Diary Display}.
@@@ -79,7 -79,7 +79,7 @@@ top-level @code{Emacs} group.  It look
  
  @c we want the buffer example to all be on one page, but unfortunately
  @c that's quite a bit of text, so force all space to the bottom.
--@page
++@c @page
  @smallexample
  @group
  To apply changes, use the Save or Set buttons.
@@@ -628,7 -628,7 +628,7 @@@ theme, its @samp{State} display shows @
  @findex disable-theme
    You can enable a specific Custom theme in the current Emacs session
  by typing @kbd{M-x load-theme}.  This prompts for a theme name, loads
--the theme from the theme file, and enables the theme.  If a theme file
++the theme from the theme file, and enables it.  If a theme file
  has been loaded before, you can enable the theme without loading its
  file by typing @kbd{M-x enable-theme}.  To disable a Custom theme,
  type @kbd{M-x disable-theme}.
  @findex describe-theme
    To see a description of a Custom theme, type @kbd{?} on its line in
  the @file{*Custom Themes*} buffer; or type @kbd{M-x describe-theme}
--anywhere in Emacs and enter the theme name in the minibuffer.
++anywhere in Emacs and enter the theme name.
  
  @node Creating Custom Themes
  @subsection Creating Custom Themes
@@@ -762,7 -762,7 +762,7 @@@ C-h v fill-column @key{RET
  @noindent
  displays something like this:
  
--@smallexample
++@example
  fill-column is a variable defined in `C source code'.
  fill-column's value is 70
  Local in buffer custom.texi; global value is 70
@@@ -777,7 -777,7 +777,7 @@@ Documentation
  Interactively, you can set the buffer local value using C-x f.
  
  You can customize this variable.
--@end smallexample
++@end example
  
  @noindent
  The line that says ``You can customize the variable'' indicates that
@@@ -104,7 -104,7 +104,7 @@@ use the @samp{--dired} option
  @findex dired-other-frame
  @kindex C-x 5 d
    To display the Dired buffer in another window, use @kbd{C-x 4 d}
--(@code{dired-other-window}) instead of @kbd{C-x d}.  @kbd{C-x 5 d}
++(@code{dired-other-window}).  @kbd{C-x 5 d}
  (@code{dired-other-frame}) displays the Dired buffer in a separate
  frame.
  
@@@ -8,9 -8,9 +8,9 @@@
  @cindex mistakes, correcting
  
    In this chapter we describe commands that are useful when you catch
--a mistake while editing.  The most fundamental command for correcting
--erroneous editing is the undo command @kbd{C-/} (which is also bound
--to @kbd{C-x u} and @kbd{C-_}).  This undoes a single command, or a
++a mistake while editing.  The most fundamental of these commands is
++the undo command @kbd{C-/} (also bound to @kbd{C-x u} and @kbd{C-_}).
++This undoes a single command, or a
  part of a command (as in the case of @code{query-replace}), or several
  consecutive character insertions.  Consecutive repetitions of
  @kbd{C-/} undo earlier and earlier changes, back to the limit of the
@@@ -60,7 -60,7 +60,6 @@@ beginners to remember: @samp{u} stands 
  to @kbd{C-_} because typing @kbd{C-/} on some text terminals actually
  enters @kbd{C-_}.}.  This undoes the most recent change in the buffer,
  and moves point back to where it was before that change.
--
    Consecutive repetitions of @kbd{C-/} (or its aliases) undo earlier
  and earlier changes in the current buffer.  If all the recorded
  changes have already been undone, the undo command signals an error.
@@@ -75,7 -75,7 +74,7 @@@ changes you have undone, type @kbd{C-f
  harmlessly breaks the sequence of undoing; then type @kbd{C-/} to undo
  the undo command.
  
--  On the other hand, if you want to resume undoing, without redoing
++  Alternatively, if you want to resume undoing, without redoing
  previous undo commands, use @kbd{M-x undo-only}.  This is like
  @code{undo}, but will not redo changes you have just undone.
  
@@@ -492,13 -492,13 +492,13 @@@ this for future sessions, click on @sam
  @samp{Options} menu.
  
  @item
--Add a line to your init file (@pxref{Init File}), modifying the
--variable @code{default-frame-alist} to specify the @code{font}
--parameter (@pxref{Creating Frames}), like this:
++Add a line to your init file, modifying the variable
++@code{default-frame-alist} to specify the @code{font} parameter
++(@pxref{Frame Parameters}), like this:
  
--@smallexample
++@example
  (add-to-list 'default-frame-alist '(font . "DejaVu Sans Mono-10"))
--@end smallexample
++@end example
  
  @cindex X defaults file
  @cindex X resources file
  Add an @samp{emacs.font} X resource setting to your X resource file,
  like this:
  
--@smallexample
++@example
  emacs.font: DejaVu Sans Mono-12
--@end smallexample
++@end example
  
  @noindent
  You must restart X, or use the @command{xrdb} command, for the X
--resources file to take effect.  @xref{Resources}.  When specifying a
--font in your X resources file, you should not quote it.
++resources file to take effect.  @xref{Resources}.  Do not quote
++font names in X resource files.
  
  @item
  If you are running Emacs on the GNOME desktop, you can tell Emacs to
@@@ -535,9 -535,9 +535,9 @@@ names the font that it's rendered in
  first is to use a @dfn{Fontconfig pattern}.  Fontconfig patterns have
  the following form:
  
--@smallexample
++@example
  @var{fontname}[-@var{fontsize}][:@var{name1}=@var{values1}][:@var{name2}=@var{values2}]...
--@end smallexample
++@end example
  
  @noindent
  Within this format, any of the elements in braces may be omitted.
@@@ -577,13 -577,13 +577,13 @@@ One of @samp{monospace}, @samp{proporti
  @noindent
  Here are some examples of Fontconfig patterns:
  
--@smallexample
++@example
  Monospace
  Monospace-12
  Monospace-12:bold
  DejaVu Sans Mono:bold:italic
  Monospace-12:weight=bold:slant=italic
--@end smallexample
++@end example
  
  For a more detailed description of Fontconfig patterns, see the
  Fontconfig manual, which is distributed with Fontconfig and available
@@@ -593,9 -593,9 +593,9 @@@ online at @url{http://fontconfig.org/fo
    The second way to specify a font is to use a @dfn{GTK font pattern}.
  These have the syntax
  
--@smallexample
++@example
  @var{fontname} [@var{properties}] [@var{fontsize}]
--@end smallexample
++@end example
  
  @noindent
  where @var{fontname} is the family name, @var{properties} is a list of
@@@ -619,10 -619,10 +619,10 @@@ omitted, a default width is used
  @noindent
  Here are some examples of GTK font patterns:
  
--@smallexample
++@example
  Monospace 12
  Monospace Bold Italic 12
--@end smallexample
++@end example
  
  @cindex XLFD
  @cindex X Logical Font Description
@@@ -631,9 -631,9 +631,9 @@@ Logical Font Description}).  This is th
  specifying fonts under X.  Each XLFD consists of fourteen words or
  numbers, separated by dashes, like this:
  
--@smallexample
++@example
  -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
--@end smallexample
++@end example
  
  @noindent
  A wildcard character (@samp{*}) in an XLFD matches any sequence of
@@@ -644,10 -644,10 +644,10 @@@ results, supply all 14 dashes and use w
  Case is insignificant in an XLFD.  The syntax for an XLFD is as
  follows:
  
--@smallexample
++@example
  -@var{maker}-@var{family}-@var{weight}-@var{slant}-@var{widthtype}-@var{style}@dots{}
  @dots{}-@var{pixels}-@var{height}-@var{horiz}-@var{vert}-@var{spacing}-@var{width}-@var{registry}-@var{encoding}
--@end smallexample
++@end example
  
  @noindent
  The entries have the following meanings:
@@@ -706,9 -706,9 +706,9 @@@ nickname''.  Certain fonts have shorte
  instead of a normal font specification.  For instance, @samp{6x13} is
  equivalent to
  
--@smallexample
++@example
  -misc-fixed-medium-r-semicondensed--13-*-*-*-c-60-iso8859-1
--@end smallexample
++@end example
  
  @cindex client-side fonts
  @cindex server-side fonts
@@@ -1160,9 -1160,9 +1160,9 @@@ enable mouse support.  You must have th
  running on your system in order for this to work.
  
  @iftex
--@pxref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features},
++@xref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features},
  @end iftex
  @ifnottex
--@pxref{MS-DOS Mouse},
++@xref{MS-DOS Mouse},
  @end ifnottex
  for information about mouse support on MS-DOS.
@@@ -711,7 -711,7 +711,7 @@@ commit can include both file additions 
  
    On a locking-based version control system (@pxref{VCS Merging}),
  registering a file leaves it unlocked and read-only.  Type @kbd{C-x v
--v} if you wish to start editing it.
++v} to start editing it.
  
  @node Old Revisions
  @subsection Examining And Comparing Old Revisions
@@@ -1729,7 -1729,7 +1729,7 @@@ find-tag @key{RET} bidule @key{RET}} wi
  @code{bidule}.
  
  @item
--In assembler code, labels appearing at the beginning of a line,
++In assembler code, labels appearing at the start of a line,
  followed by a colon, are tags.
  
  @item
@@@ -65,8 -65,8 +65,7 @@@ process (@pxref{Interactive Shell})
  first visit a file or create a buffer (@pxref{Choosing Modes}).  You
  can explicitly select a new major mode by using an @kbd{M-x} command.
  Take the name of the mode and add @code{-mode} to get the name of the
--command to select that mode.  Thus, you can enter Lisp mode with
--@kbd{M-x lisp-mode}.
++command to select that mode (e.g., @kbd{M-x lisp-mode} enters Lisp mode).
  
  @vindex major-mode
    The value of the buffer-local variable @code{major-mode} is a symbol
@@@ -81,9 -81,9 +80,9 @@@ change this default value via the Custo
  Customization}), or by adding a line like this to your init file
  (@pxref{Init File}):
  
--@smallexample
++@example
  (setq-default major-mode 'text-mode)
--@end smallexample
++@end example
  
  @noindent
  If the default value of @code{major-mode} is @code{nil}, the major
@@@ -216,8 -216,8 +215,7 @@@ in individual buffers.  @xref{Faces}
  @findex linum-mode
  @cindex Linum mode
  @item
--Linum mode displays each line's line number in the window's left
--margin.  Its mode command is @code{linum-mode}.
++Linum mode displays each line's line number in the window's left margin.
  
  @item
  Outline minor mode provides similar facilities to the major mode
@@@ -991,12 -991,12 +991,11 @@@ and asks you to choose one of those cod
  behaves a bit differently.  It additionally checks whether the
  @c What determines this?
  most-preferred coding system is recommended for use in MIME messages;
--if not, Emacs tells you that the most-preferred coding system is not
--recommended and prompts you for another coding system.  This is so you
--won't inadvertently send a message encoded in a way that your
--recipient's mail software will have difficulty decoding.  (You can
--still use an unsuitable coding system if you type its name in response
--to the question.)
++if not, it informs you of this fact and prompts you for another coding
++system.  This is so you won't inadvertently send a message encoded in
++a way that your recipient's mail software will have difficulty
++decoding.  (You can still use an unsuitable coding system if you enter
++its name at the prompt.)
  
  @c It seems that select-message-coding-system does this.
  @c Both sendmail.el and smptmail.el call it; i.e. smtpmail.el still
@@@ -9,7 -9,7 +9,7 @@@
  @cindex program editing
  
    This chapter describes Emacs features for facilitating editing
--programs.  Some of these features can:
++programs.  Some of the things these features can do are:
  
  @itemize @bullet
  @item
@@@ -128,8 -128,8 +128,7 @@@ IDL/Pike/AWK (@pxref{Top, , CC Mode, cc
  @ifnotinfo
    The Emacs distribution contains Info manuals for the major modes for
  Ada, C/C++/Objective C/Java/Corba IDL/Pike/AWK, and IDLWAVE.  For
--Fortran mode, see the ``Fortran'' section in the Info version of the
--Emacs manual, which is not included in this printed version.
++Fortran mode, @pxref{Fortran,,, emacs-xtra, Specialized Emacs Features}.
  @end ifnotinfo
  
  @node Defuns
@@@ -186,15 -186,15 +185,13 @@@ delimiter from starting a defun.  Here'
  highlights confusing opening delimiters (those that ought to be
  quoted) in bold red.
  
++@vindex open-paren-in-column-0-is-defun-start
    If you need to override this convention, you can do so by setting
--this user option:
--
--@defvar open-paren-in-column-0-is-defun-start
++the variable @code{open-paren-in-column-0-is-defun-start}.
  If this user option is set to @code{t} (the default), opening
--parentheses or braces at column zero always start defuns.  When it's
++parentheses or braces at column zero always start defuns.  When it is
  @code{nil}, defuns are found by searching for parens or braces at the
  outermost level.
--@end defvar
  
    Usually, you should leave this option at its default value of
  @code{t}.  If your buffer contains parentheses or braces in column
@@@ -1553,8 -1553,8 +1550,8 @@@ after the mode name
  @kindex C-c C-l @r{(C mode)}
  @findex c-toggle-electric-state
  Toggle electric action (@code{c-toggle-electric-state}).  With a
--prefix argument, this command enables electric action if the argument
--is positive, disables it if it is negative.
++positive prefix argument, this command enables electric action, with a
++negative one it disables it.
  @end table
  
    Electric characters insert newlines only when, in addition to the
@@@ -1591,8 -1591,8 +1588,7 @@@ preprocessor commands
  @findex c-hungry-delete-backwards
  @kindex C-c C-@key{DEL} (C Mode)
  @kindex C-c @key{DEL} (C Mode)
--@code{c-hungry-delete-backwards}---Delete the entire block of whitespace
--preceding point.
++Delete the entire block of whitespace preceding point (@code{c-hungry-delete-backwards}).
  
  @item C-c C-d
  @itemx C-c C-@key{DELETE}
  @kindex C-c C-d (C Mode)
  @kindex C-c C-@key{DELETE} (C Mode)
  @kindex C-c @key{DELETE} (C Mode)
--@code{c-hungry-delete-forward}---Delete the entire block of whitespace
--following point.
++Delete the entire block of whitespace after point (@code{c-hungry-delete-forward}).
  @end table
  
    As an alternative to the above commands, you can enable @dfn{hungry
@@@ -1615,9 -1615,9 +1610,7 @@@ preceding whitespace, not just one spac
  @item M-x c-toggle-hungry-state
  @findex c-toggle-hungry-state
  Toggle the hungry-delete feature
--(@code{c-toggle-hungry-state})@footnote{This command had the binding
--@kbd{C-c C-d} in earlier versions of Emacs.  @kbd{C-c C-d} is now
--bound to @code{c-hungry-delete-forward}.}.  With a prefix argument,
++(@code{c-toggle-hungry-state}).  With a prefix argument,
  this command turns the hungry-delete feature on if the argument is
  positive, and off if it is negative.
  @end table
@@@ -1656,11 -1656,11 +1649,11 @@@ needs a binding to be useful.  The foll
  @kbd{C-j}.  We use @code{c-initialization-hook} here to make sure
  the keymap is loaded before we try to change it.
  
--@smallexample
++@example
  (defun my-bind-clb ()
    (define-key c-mode-base-map "\C-j" 'c-context-line-break))
  (add-hook 'c-initialization-hook 'my-bind-clb)
--@end smallexample
++@end example
  
  @item C-M-h
  Put mark at the end of a function definition, and put point at the
@@@ -1232,9 -1232,9 +1232,9 @@@ rmail-epa-decrypt} to decrypt it, usin
  Address mode:
  
  @c FIXME goto-addr.el commentary says to use goto-address instead.
--@smallexample
++@example
  (add-hook 'rmail-show-message-hook 'goto-address-mode)
--@end smallexample
++@end example
  
  @noindent
  Then you can browse these URLs by clicking on them with @kbd{Mouse-2}
@@@ -379,8 -379,8 +379,8 @@@ delimited once again.  The reason @kbd{
  following page delimiter in the region is to ensure that.
  
    A numeric argument to @kbd{C-x C-p} specifies which page to go to,
--relative to the current one.  Zero means the current page.  One means
--the next page, and @minus{}1 means the previous one.
++relative to the current one.  Zero means the current page, one
++the next page, and @minus{}1 the previous one.
  
  @kindex C-x l
  @findex count-lines-page
@@@ -412,7 -412,7 +412,7 @@@ beginning of a line
  specified width.  Emacs does filling in two ways.  In Auto Fill mode,
  inserting text with self-inserting characters also automatically fills
  it.  There are also explicit fill commands that you can use when editing
--text leaves it unfilled.
++text.
  
  @menu
  * Auto Fill::      Auto Fill mode breaks long lines automatically.
@@@ -1240,6 -1240,6 +1240,7 @@@ quad click: exit all folds and hide tex
  @end itemize
  @end table
  
++@c FIXME not marked as a user variable
  @vindex foldout-mouse-modifiers
    You can specify different modifier keys (instead of
  @kbd{Control-Meta-}) by setting @code{foldout-mouse-modifiers}; but if
@@@ -1248,7 -1248,7 +1249,7 @@@ it in order for this to take effect
  
    To use the Foldout package, you can type @kbd{M-x load-library
  @key{RET} foldout @key{RET}}; or you can arrange for to do that
--automatically by putting this in your init file (@pxref{Init File}):
++automatically by putting the following in your init file:
  
  @example
  (eval-after-load "outline" '(require 'foldout))
@@@ -1307,8 -1307,8 +1308,8 @@@ with @kbd{M-<left>} (@code{org-metaleft
  if invoked on a body line.
  
    The following subsections give basic instructions for using Org mode
--as an organizer and as an authoring system.  @xref{Top,The Org Mode
--Manual,,org, The Org Manual}, for details.
++as an organizer and as an authoring system.  For details, @pxref{Top,
++The Org Mode Manual, Introduction, org, The Org Manual}.
  
  @menu
  * Org Organizer::   Managing TODO lists and agendas.
@@@ -1886,8 -1886,8 +1887,8 @@@ the tag at point
  @kindex C-c / @r{(SGML mode)}
  @findex sgml-close-tag
  Insert a close tag for the innermost unterminated tag
--(@code{sgml-close-tag}).  If called from within a tag or a comment,
--close this element instead of inserting a close tag.
++(@code{sgml-close-tag}).  If called within a tag or a comment,
++close it instead of inserting a close tag.
  
  @item C-c 8
  @kindex C-c 8 @r{(SGML mode)}
@@@ -1948,10 -1948,10 +1949,10 @@@ always insert explicit closing tags as 
  @cindex nroff
  @findex nroff-mode
  @vindex nroff-mode-hook
--  Nroff mode is a major mode derived from Text mode, which is
++  Nroff mode, a major mode derived from Text mode, is
  specialized for editing nroff files (e.g.@: Unix man pages).  Type
  @kbd{M-x nroff-mode} to enter this mode.  Entering Nroff mode runs the
--hook @code{text-mode-hook}, followed by @code{nroff-mode-hook}
++hook @code{text-mode-hook}, then @code{nroff-mode-hook}
  (@pxref{Hooks}).
  
    In Nroff mode, nroff command lines are treated as paragraph
@@@ -2209,7 -2209,7 +2210,7 @@@ for the right or left margin of a parag
  These margins also affect fill commands such as @kbd{M-q}
  (@pxref{Filling}).
  
--  The Indentation submenu of Text Properties provides four commands
++  The Indentation submenu of Text Properties offers commands
  for specifying indentation:
  
  @table @code
@@@ -2292,10 -2292,10 +2293,9 @@@ commands do nothing on text with this s
  still indent the left margin.
  @end table
  
++@vindex default-justification
    You can also specify justification styles using the Justification
  submenu in the Text Properties menu.
--
--@vindex default-justification
    The default justification style is specified by the per-buffer
  variable @code{default-justification}.  Its value should be one of the
  symbols @code{left}, @code{right}, @code{full}, @code{center}, or
@@@ -2578,10 -2578,10 +2578,12 @@@ to @code{nil}
  @findex table-insert-row
    @kbd{M-x table-insert-row} inserts a row of cells before the current
  table row.  The current row, together with point, is pushed down past
--the new row.  To insert rows after the last row at the bottom of a
++the new row.  To insert a row after the last row at the bottom of a
  table, invoke this command with point below the table, just below the
--bottom edge.  A numeric prefix argument specifies the number of rows
--to insert.
++bottom edge.  You can insert more than one row at a time by using a
++numeric prefix argument.
++
++@c A numeric prefix argument specifies the number of rows to insert.
  
  @findex table-insert-column
    Similarly, @kbd{M-x table-insert-column} inserts a column of cells
@@@ -1,13 -1,4 +1,22 @@@
 -2012-04-28  Glenn Morris  <rgm@gnu.org>
++2012-05-05  Glenn Morris  <rgm@gnu.org>
++
++      * emacs-lisp-intro.texi (Making Errors): Don't mention Emacs 20.
++      (Void Function, Wrong Type of Argument, Recursion with list)
++      (Simple Extension): Assume a non-ancient Emacs.
++      (Void Variable, Switching Buffers): Improve page breaks.
++
++      * emacs-lisp-intro.texi: Update GNU Press contact details.
++
 +2012-05-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
 +      (info, infoclean): Use $INFO_EXT.
 +      (${infodir}/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
 +      * makefile.w32-in (INFO_EXT, INFO_OPTS): New.
 +      (INFO_TARGETS, clean): Use $INFO_EXT.
 +      ($(infodir)/eintr$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
 +
 +2012-05-02  Glenn Morris  <rgm@gnu.org>
  
        * emacs-lisp-intro.texi (Syntax): Reword to avoid underfull hbox.
  
@@@ -234,27 -234,27 +234,27 @@@ Copyright @copyright{} 1990-1995, 1997
  @iftex
  Published by the:@*
  
--GNU Press,                      @hfill  @uref{http://www.gnupress.org}@*
--a division of the               @hfill General: @email{press@@gnu.org}@*
--Free Software Foundation, Inc.  @hfill Orders:@w{ }  @email{sales@@gnu.org}@*
--51 Franklin Street, Fifth Floor @hfill Tel: +1 (617) 542-5942@*
--Boston, MA 02110-1301 USA       @hfill Fax: +1 (617) 542-2652@*
++GNU Press,               @hfill @uref{http://www.fsf.org/campaigns/gnu-press/}@*
++a division of the               @hfill email: @email{sales@@fsf.org}@*
++Free Software Foundation, Inc.  @hfill Tel: +1 (617) 542-5942@*
++51 Franklin Street, Fifth Floor @hfill Fax: +1 (617) 542-2652@*
++Boston, MA 02110-1301 USA
  @end iftex
  
  @ifnottex
  Published by the:
  
  @example
--GNU Press,                          Website: http://www.gnupress.org
--a division of the                   General: press@@gnu.org
--Free Software Foundation, Inc.      Orders:  sales@@gnu.org
--51 Franklin Street, Fifth Floor     Tel: +1 (617) 542-5942
--Boston, MA 02110-1301 USA           Fax: +1 (617) 542-2652
++GNU Press,                        http://www.fsf.org/campaigns/gnu-press/
++a division of the                 email: sales@@fsf.org
++Free Software Foundation, Inc.    Tel: +1 (617) 542-5942
++51 Franklin Street, Fifth Floor   Fax: +1 (617) 542-2652
++Boston, MA 02110-1301 USA
  @end example
  @end ifnottex
  
  @sp 1
--@c Printed copies are available for $30 each.@*
++@c Printed copies are available from @uref{http://shop.fsf.org/} for $35 each.@*
  ISBN 1-882114-43-4
  
  Permission is granted to copy, distribute and/or modify this document
@@@ -1426,6 -1426,6 +1426,7 @@@ C-e}
  (this is an unquoted list)
  @end smallexample
  
++@ignore
  @noindent
  What you see depends on which version of Emacs you are running.  GNU
  Emacs version 22 provides more information than version 20 and before.
@@@ -1436,6 -1436,6 +1437,10 @@@ earlier, version 20 result
  @noindent
  In GNU Emacs version 22, a @file{*Backtrace*} window will open up and
  you will see the following in it:
++@end ignore
++
++A @file{*Backtrace*} window will open up and you should see the
++following in it:
  
  @smallexample
  @group
@@@ -1514,19 -1514,19 +1519,24 @@@ evaluating @code{(+ 2 2)}, we can infe
  have a set of instructions for the computer to obey and those
  instructions must be to add the numbers that follow the @code{+}.
  
--@need 1250
--In GNU Emacs version 20, and in earlier versions, you will see only
--one line of error message; it will appear in the echo area and look
--like this:
++It is possible to prevent Emacs entering the debugger in cases like
++this.  We do not explain how to do that here, but we will mention what
++the result looks like, because you may encounter a similar situation
++if there is a bug in some Emacs code that you are using.  In such
++cases, you will see only one line of error message; it will appear in
++the echo area and look like this:
  
  @smallexample
  Symbol's function definition is void:@: this
  @end smallexample
  
  @noindent
++@ignore
  (Also, your terminal may beep at you---some do, some don't; and others
--blink.  This is just a device to get your attention.)  The message goes
--away as soon as you type another key, even just to move the cursor.
++blink.  This is just a device to get your attention.)
++@end ignore
++The message goes away as soon as you type a key, even just to
++move the cursor.
  
  We know the meaning of the word @samp{Symbol}.  It refers to the first
  atom of the list, the word @samp{this}.  The word @samp{function}
@@@ -1862,8 -1862,8 +1872,7 @@@ Try evaluating this
  
  @need 1250
  @noindent
--In GNU Emacs version 22, you will create a @file{*Backtrace*} buffer
--that says:
++You will create a @file{*Backtrace*} buffer that says:
  
  @smallexample
  @group
@@@ -1929,7 -1929,7 +1938,7 @@@ Debugger entered--Lisp error: (void-var
  @end smallexample
  
  @noindent
--(As with the other times we entered the debugger, you can quit by
++(Again, you can quit the debugger by
  typing @kbd{q} in the @file{*Backtrace*} buffer.)
  
  This backtrace is different from the very first error message we saw,
@@@ -1943,7 -1943,7 +1952,7 @@@ interpreter to evaluate the @code{+} an
  variable instead of the function definition.  We did this by placing the
  cursor right after the symbol rather than after the parenthesis of the
  enclosing list as we did before.  As a consequence, the Lisp interpreter
--evaluated the preceding s-expression, which in this case was the
++evaluated the preceding s-expression, which in this case was
  @code{+} by itself.
  
  Since @code{+} does not have a value bound to it, just the function
@@@ -2183,8 -2183,8 +2192,7 @@@ is that @code{+} has tried to add the 
  could not carry out its addition.
  
  @need 1250
--In GNU Emacs version 22, you will create and enter a
--@file{*Backtrace*} buffer that says:
++You will create and enter a @file{*Backtrace*} buffer that says:
  
  @noindent
  @smallexample
@@@ -2912,7 -2912,7 +2920,7 @@@ rather, to save typing, you probably on
  default buffer was @file{*scratch*}, or if it was different, then you
  typed just part of the name, such as @code{*sc}, pressed your
  @kbd{TAB} key to cause it to expand to the full name, and then typed
--your @kbd{RET} key.} when prompted in the minibuffer for the name of
++@kbd{RET}.} when prompted in the minibuffer for the name of
  the buffer to which you wanted to switch.  The keystrokes, @kbd{C-x
  b}, cause the Lisp interpreter to evaluate the interactive function
  @code{switch-to-buffer}.  As we said before, this is how Emacs works:
@@@ -2922,10 -2922,10 +2930,7 @@@ different keystrokes call or run differ
  
  By writing @code{switch-to-buffer} in an expression, and giving it a
  buffer to switch to, we can switch buffers just the way @kbd{C-x b}
--does.
--
--@need 1000
--Here is the Lisp expression:
++does:
  
  @smallexample
  (switch-to-buffer (other-buffer))
@@@ -7722,6 -7722,6 +7727,7 @@@ retrieved.  @xref{Yanking, , Yanking Te
  @section @code{zap-to-char}
  @findex zap-to-char
  
++@c FIXME remove obsolete stuff
  The @code{zap-to-char} function changed little between GNU Emacs
  version 19 and GNU Emacs version 22.  However, @code{zap-to-char}
  calls another function, @code{kill-region}, which enjoyed a major
@@@ -11508,9 -11508,9 +11514,10 @@@ The example of a @code{while} loop tha
  of numbers can be written recursively.  Here is the code, including
  an expression to set the value of the variable @code{animals} to a list.
  
--If you are using GNU Emacs 20 or before, this example must be copied
--to the @file{*scratch*} buffer and each expression must be evaluated
--there.  Use @kbd{C-u C-x C-e} to evaluate the
++If you are reading this in Info in Emacs, you can evaluate this
++expression directly in Info.  Otherwise, you must copy the example
++to the @file{*scratch*} buffer and evaluate each expression there.
++Use @kbd{C-u C-x C-e} to evaluate the
  @code{(print-elements-recursively animals)} expression so that the
  results are printed in the buffer; otherwise the Lisp interpreter will
  try to squeeze the results into the one line of the echo area.
@@@ -11519,9 -11519,9 +11526,6 @@@ Also, place your cursor immediately aft
  of the @code{print-elements-recursively} function, before the comment.
  Otherwise, the Lisp interpreter will try to evaluate the comment.
  
--If you are using a more recent version of Emacs, you can evaluate this
--expression directly in Info.
--
  @findex print-elements-recursively
  @smallexample
  @group
@@@ -17949,7 -17949,7 +17953,7 @@@ the following conditional
  @end group
  @end smallexample
  
--For example, in contrast to version 20, more recent versions blink
++For example, recent versions blink
  their cursors by default.  I hate such blinking, as well as other
  features, so I placed the following in my @file{.emacs}
  file@footnote{When I start instances of Emacs that do not load my
@@@ -1,28 -1,4 +1,49 @@@
 -2012-05-01  Glenn Morris  <rgm@gnu.org>
++2012-05-05  Glenn Morris  <rgm@gnu.org>
++
++      * objects.texi (Process Type, Overlay Type): Tweak page-breaks.
++
++      * intro.texi (Caveats): Copyedit.
++      (Lisp History): Convert inforef to xref.
++      (Lisp History, Printing Notation, Version Info): Improve page-breaks.
++
++      * text.texi (Auto Filling): Don't mention Emacs 19.
++
++      * commands.texi (Event Input Misc): Don't mention unread-command-char.
++      * numbers.texi (Predicates on Numbers): Don't mention Emacs 18.
++
++      * elisp.texi (DATE): Forgot to change the month in 2012-04-21 change.
++
++2012-05-04  Glenn Morris  <rgm@gnu.org>
++
++      * lists.texi (List-related Predicates, List Variables):
++      Tweak page-breaks.
++      (Sets And Lists): Convert inforef to xref.
++
 +2012-05-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (INFO_EXT, INFO_OPTS): New, set by configure.
 +      (info, infoclean): Use $INFO_EXT.
 +      ($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
 +      * makefile.w32-in (INFO_EXT, INFO_OPTS): New.
 +      (info, maintainer-clean): Use $INFO_EXT.
 +      ($(infodir)/elisp$(INFO_EXT)): Use $INFO_EXT and $INFO_OPT.
 +
 +2012-05-04  Chong Yidong  <cyd@gnu.org>
 +
 +      * os.texi (Timers): Use defopt for timer-max-repeats.
 +
 +2012-05-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * os.texi (Time of Day): Do not limit current-time-string
 +      to years 1000..9999.
 +
 +2012-05-02  Chong Yidong  <cyd@gnu.org>
 +
 +      * display.texi (Font Lookup):
 +      * frames.texi (Pointer Shape):
 +      * processes.texi (Subprocess Creation): Use defopt for options.
 +
 +2012-05-02  Glenn Morris  <rgm@gnu.org>
  
        * elisp.texi (@copying):
        * intro.texi (Introduction): Only print VERSION in the TeX version.
@@@ -2703,6 -2704,6 +2703,7 @@@ This function converts the string or ve
  individual events, which you can put in @code{unread-command-events}.
  @end defun
  
++@ignore
  @defvar unread-command-char
  This variable holds a character to be read as command input.
  A value of -1 means ``empty''.
@@@ -2711,6 -2712,6 +2712,7 @@@ This variable is mostly obsolete now th
  @code{unread-command-events} instead; it exists only to support programs
  written for Emacs versions 18 and earlier.
  @end defvar
++@end ignore
  
  @defun input-pending-p
  @cindex waiting for command key input
@@@ -9,7 -9,7 +9,7 @@@
  @c (See comments for EDITION in emacs.texi)
  @set VERSION  3.1
  @include emacsver.texi
--@set DATE July 2012
++@set DATE May 2012
  
  @c in general, keep the following line commented out, unless doing a
  @c copy of this manual that will be published.  The manual should go
@@@ -73,7 -74,7 +73,7 @@@ real-life example for a function or gro
  effort to write it up and send it in.  Please reference any comments to
  the chapter name, section name, and function name, as appropriate, since
  page numbers and chapter and section numbers will change and we may have
--trouble finding the text you are talking about.  Also state the number
++trouble finding the text you are talking about.  Also state the version
  of the edition you are criticizing.
  @end iftex
  @ifnottex
@@@ -120,10 -121,10 +120,10 @@@ worry about it; this manual is self-con
  
  @pindex cl
    A certain amount of Common Lisp emulation is available via the
--@file{cl} library.  @inforef{Top, Overview, cl}.
++@file{cl} library.  @xref{Top,, Overview, cl, Common Lisp Extensions}.
  
    Emacs Lisp is not at all influenced by Scheme; but the GNU project has
--an implementation of Scheme, called Guile.  We use Guile in all new GNU
++an implementation of Scheme, called Guile.  We use it in all new GNU
  software that calls for extensibility.
  
  @node Conventions
@@@ -257,7 -258,7 +257,7 @@@ displayed in the echo area
  
    Examples in this manual indicate printed text with @samp{@print{}},
  irrespective of where that text goes.  The value returned by
--evaluating the form (here @code{bar}) follows on a separate line with
++evaluating the form follows on a separate line with
  @samp{@result{}}.
  
  @example
@@@ -510,8 -511,8 +510,6 @@@ numeric components, such as @code{"22.0
  unreleased test version.
  @end defvar
  
--  The following two variables have existed since Emacs version 19.23:
--
  @defvar emacs-major-version
  The major version number of Emacs, as an integer.  For Emacs version
  23.1, the value is 23.
@@@ -87,7 -88,7 +87,7 @@@ structure made out of cons cells as a @
  whether it is a cons cell or is a list, or whether it is the
  distinguished object @code{nil}.  (Many of these predicates can be
  defined in terms of the others, but they are used so often that it is
--worth having all of them.)
++worth having them.)
  
  @defun consp object
  This function returns @code{t} if @var{object} is a cons cell, @code{nil}
@@@ -763,8 -764,8 +763,7 @@@ if it already has one; otherwise, it i
  
  The argument @var{symbol} is not implicitly quoted;
  @code{add-to-ordered-list} is an ordinary function, like @code{set}
--and unlike @code{setq}.  Quote the argument yourself if that is what
--you want.
++and unlike @code{setq}.  Quote the argument yourself if necessary.
  
  The ordering information is stored in a hash table on @var{symbol}'s
  @code{list-order} property.
@@@ -1269,7 -1270,7 +1268,7 @@@ functions for sets include @code{memq} 
  @b{Common Lisp note:} Common Lisp has functions @code{union} (which
  avoids duplicate elements) and @code{intersection} for set operations.
  Although standard GNU Emacs Lisp does not have them, the @file{cl}
--library provides versions.  @inforef{Top, Overview, cl}.
++library provides versions.  @xref{Top,, Overview, cl, Common Lisp Extensions}.
  @end quotation
  
  @defun memq object list
@@@ -267,8 -268,8 +267,6 @@@ its argument.  See also @code{integer-o
  @defun floatp object
  This predicate tests whether its argument is a floating point
  number and returns @code{t} if so, @code{nil} otherwise.
--
--@code{floatp} does not exist in Emacs versions 18 and earlier.
  @end defun
  
  @defun integerp object
@@@ -1567,7 -1568,7 +1567,6 @@@ runs in a process of this sort.  Howeve
  Lisp object that designates a subprocess created by the Emacs process.
  Programs such as shells, GDB, ftp, and compilers, running in
  subprocesses of Emacs, extend the capabilities of Emacs.
--
    An Emacs subprocess takes textual input from Emacs and returns textual
  output to Emacs for further manipulation.  Emacs can also send signals
  to the subprocess.
@@@ -1631,7 -1632,7 +1630,7 @@@ buffer temporarily in a different displ
  syntax, and print in hash notation, giving the buffer name and range of
  positions.
  
--  @xref{Overlays}, for how to create and use overlays.
++  @xref{Overlays}, for information on how you can create and use overlays.
  
  @node Font Type
  @subsection Font Type
@@@ -1799,12 -1800,12 +1799,6 @@@ special is done in that case
  The value of @code{auto-fill-function} is @code{do-auto-fill} when
  Auto-Fill mode is enabled.  That is a function whose sole purpose is to
  implement the usual strategy for breaking a line.
--
--@quotation
--In older Emacs versions, this variable was named @code{auto-fill-hook},
--but since it is not called with the standard convention for hooks, it
--was renamed to @code{auto-fill-function} in version 19.
--@end quotation
  @end defvar
  
  @defvar normal-auto-fill-function
@@@ -1,8 -1,8 +1,11 @@@
--Some of the *.tex files need special versions of TeX to typeset them.
--The files cs-*.tex and sk-*.tex need csTeX, a special version of TeX
--tailored to typesetting Czech and Slovak documents.  We provide
--generated files for these documents, so that you could print them
--without installing the modified TeX versions.
++To generate these refcards, you need to install the TeX document
++production system.  For example, http://www.tug.org/texlive/ .
++
++All modern GNU/Linux distributions provide TeX packages, so the
++easiest way is just to install those.  Your distribution may have
++split some of the files needed to process non-English output into
++separate, optional packages such as: texlive-lang-cyrillic,
++texlive-lang-czechslovak, texlive-lang-german, and texlive-lang-polish.
  
  
  COPYRIGHT AND LICENSE INFORMATION FOR IMAGE FILES
@@@ -12,5 -12,5 +15,5 @@@ it is reproduced here for convenience
  
  File: gnus-logo.eps, gnus-logo.pdf
    Author: Luis Fernandes <elf@ee.ryerson.ca>
--  Copyright (C) 2001-2012  Free Software Foundation, Inc.
++  Copyright (C) 2001-2012 Free Software Foundation, Inc.
    License: GNU General Public License version 3 or later (see COPYING)
@@@ -1,3 -1,3 +1,8 @@@
++2012-05-05  Jim Meyering  <meyering@redhat.com>
++
++      * lib-src/pop.c (pop_stat, pop_list, pop_multi_first, pop_last):
++      NUL-terminate the error buffer (Bug#11372).
++
  2012-05-02  Juanma Barranquero  <lekktu@gmail.com>
  
        * emacsclient.c (min): Undef before redefining it.
diff --cc lisp/ChangeLog
 -2012-04-30  Eli Zaretskii  <eliz@gnu.org>
++2012-05-04  Chong Yidong  <cyd@gnu.org>
++
++      * select.el (xselect--encode-string): Always use utf-8 for TEXT on
++      Nextstep.
++
 +2012-05-05  Ransom Williams  <auvergnerw@gmail.com>  (tiny change)
 +
 +      * files.el (file-auto-mode-skip): New var.
 +      (set-auto-mode-1): Use it.
 +
 +2012-05-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * repeat.el: Use lexical-binding.
 +      (repeat-last-self-insert, repeat-num-input-keys-at-self-insert)
 +      (repeat-undo-count): Remove.
 +      (repeat):
 +      * progmodes/octave-mod.el (octave-abbrev-start):
 +      * progmodes/f90.el (f90-abbrev-start):
 +      * face-remap.el (text-scale-adjust):
 +      * kmacro.el (kmacro-call-macro): Use set-temporary-overlay-map.
 +
 +      * emacs-lisp/pcase.el (pcase--let*): New function.
 +      (pcase--expand, pcase-codegen, pcase--q1): Use it to reduce nesting
 +      a bit more.
 +      (pcase--split-pred): Be more clever about ruling out overlap between
 +      a predicate and some constant pattern.
 +      (pcase--q1): Use `null' instead of (eq foo nil).
 +
 +      * subr.el (setq-local, defvar-local): New macros.
 +      (kbd): Redefine as an alias.
 +      (with-selected-window): Leave unrelated frames alone.
 +      (set-temporary-overlay-map): New function.
 +
 +2012-05-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (user-error): New function.
 +      * window.el (switch-to-buffer):
 +      * vc/smerge-mode.el (smerge-resolve-function, smerge-resolve)
 +      (smerge-match-conflict):
 +      * simple.el (previous-matching-history-element)
 +      (next-matching-history-element, goto-history-element, undo-more)
 +      (undo-start):
 +      * progmodes/etags.el (visit-tags-table-buffer, find-tag-tag)
 +      (find-tag-noselect, find-tag-in-order, etags-goto-tag-location)
 +      (next-file, tags-loop-scan, list-tags, complete-tag):
 +      * progmodes/compile.el (compilation-loop):
 +      * mouse.el (mouse-minibuffer-check):
 +      * man.el (Man-bgproc-sentinel, Man-goto-page):
 +      * info.el (Info-find-node-2, Info-extract-pointer, Info-history-back)
 +      (Info-history-forward, Info-follow-reference, Info-menu)
 +      (Info-extract-menu-item, Info-extract-menu-counting)
 +      (Info-forward-node, Info-backward-node, Info-next-menu-item)
 +      (Info-last-menu-item, Info-next-preorder, Info-last-preorder)
 +      (Info-next-reference, Info-prev-reference, Info-index)
 +      (Info-index-next, Info-follow-nearest-node)
 +      (Info-copy-current-node-name):
 +      * imenu.el (imenu--make-index-alist)
 +      (imenu-default-create-index-function, imenu-add-to-menubar):
 +      * files.el (basic-save-buffer, recover-file):
 +      * emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
 +      * emacs-lisp/checkdoc.el (checkdoc-continue, checkdoc-comments)
 +      (checkdoc-message-text, checkdoc-defun):
 +      * dabbrev.el (dabbrev-completion, dabbrev--abbrev-at-point):
 +      * cus-edit.el (customize-changed-options, customize-rogue)
 +      (customize-saved, custom-variable-set, custom-variable-mark-to-save)
 +      (custom-variable-mark-to-reset-standard)
 +      (custom-variable-reset-backup, custom-face-mark-to-reset-standard)
 +      (custom-file):
 +      * completion.el (check-completion-length):
 +      * comint.el (comint-search-arg)
 +      (comint-previous-matching-input-string-position)
 +      (comint-previous-matching-input)
 +      (comint-replace-by-expanded-history-before-point, comint-send-input)
 +      (comint-copy-old-input, comint-backward-matching-input)
 +      (comint-goto-process-mark, comint-set-process-mark):
 +      * calendar/calendar.el (calendar-cursor-to-date): Use it.
 +      * bindings.el (debug-ignored-errors): Remove regexps, add `user-error'.
 +
 +2012-05-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * dabbrev.el (dabbrev--ignore-case-p): New function.
 +      (dabbrev-completion, dabbrev-expand, dabbrev--substitute-expansion):
 +      Use it.
 +
 +      * files.el (automount-dir-prefix): Mark as obsolete.
 +
 +2012-05-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * patcomp.el, play/bruce.el: Move to obsolete/.
 +
 +2012-05-04  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix minor Y10k bugs.
 +      * arc-mode.el (archive-unixdate):
 +      * autoinsert.el (auto-insert-alist):
 +      * calc/calc-forms.el (math-this-year):
 +      * emacs-lisp/copyright.el (copyright-current-year)
 +      (copyright-update-year, copyright):
 +      * tar-mode.el (tar-clip-time-string):
 +      * time.el (display-time-update):
 +      Don't assume years have 4 digits.
 +
 +2012-05-04  Chong Yidong  <cyd@gnu.org>
 +
 +      * dos-w32.el (file-name-buffer-file-type-alist)
 +      (direct-print-region-use-command-dot-com):
 +      * ffap.el (ffap-menu-regexp):
 +      * find-file.el (ff-special-constructs):
 +      * follow.el (follow-debug):
 +      * forms.el (forms--debug):
 +      * iswitchb.el (iswitchb-all-frames):
 +      * ido.el (ido-all-frames):
 +      * emacs-lisp/timer.el (timer-max-repeats):
 +      * mail/feedmail.el (feedmail-mail-send-hook)
 +      (feedmail-mail-send-hook-queued):
 +      * mail/footnote.el (footnote-signature-separator):
 +      * mail/mailabbrev.el (mail-alias-separator-string)
 +      (mail-abbrev-mode-regexp):
 +      * mail/rmail.el (rmail-speedbar-match-folder-regexp):
 +      * progmodes/idlwave.el (idlwave-libinfo-file)
 +      (idlwave-default-completion-case-is-down)
 +      (idlwave-library-routines): Convert defvars to defcustoms.
 +
 +      * mail/rmail.el (rmail-decode-mime-charset):
 +      * progmodes/idlw-shell.el (idlwave-shell-print-expression-function)
 +      (idlwave-shell-fix-inserted-breaks)
 +      (idlwave-shell-activate-alt-keybindings)
 +      (idlwave-shell-use-breakpoint-glyph):
 +      * facemenu.el (facemenu-unlisted-faces): Delete obsolete vars.
 +
 +2012-05-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion--twq-all): Beware completion-ignore-case.
 +
 +2012-05-03  Wilson Snyder  <wsnyder@wsnyder.org>
 +
 +      * progmodes/verilog-mode.el (font-lock-keywords):
 +      Fix mis-highligting auto.  Reported by Craig Barner.
 +      (verilog-auto, verilog-auto-undef): Add AUTOUNDEF to remove
 +      defines from global name space. Reported by Dan Dever.
 +      (verilog-auto-reset, verilog-auto-reset-widths)
 +      (verilog-auto-tieoff): Support using unbased numbers for
 +      AUTORESET and AUTOTIEOFF.
 +      (verilog-submit-bug-report): Update variable list.
 +      (verilog-read-auto-params): Fix AUTOINPUT regexps containing
 +      parenthesis from not matching. Reported by Michael Rytting.
 +      (verilog-auto-template-lint): Fix hash error when linting modules
 +      with no used templates.
 +      (verilog-warn, verilog-warn-error)
 +      (verilog-warn-fatal): When non-interactive report multiple
 +      warnings before exiting.  Suggested by Brad Dobbie.
 +      (verilog-auto-template-lint, verilog-auto-template-warn-unused)
 +      (verilog-read-auto-template): Add `verilog-auto-template-warn-unused'
 +      to report unused template errors.  Reported by Brad Dobbie.
 +      (verilog-read-decls): Fix AUTOWIRE etc on supply0, supply1 type
 +      nets, bug438. Reported by Vns Blore.
 +      (verilog-auto-inout-module, verilog-auto-reg)
 +      (verilog-read-decls, verilog-read-sub-decls-sig)
 +      (verilog-signals-edit-wire-reg, verilog-signals-with):
 +      Fix passing of Verilog data types in ANSI input/output ports
 +      such as "output logic" into the AUTOs. Special case "wire" and
 +      "reg" for backwards compatibility presuming Verilog 2001.
 +      (verilog-auto-ascii-enum): Add "auto enum" as alias.
 +      (verilog-preprocess): Fix replication of preprocess output.
 +      Reported by Brad Dobbie.
 +      (verilog-auto-inst-interfaced-ports):
 +      Create verilog-auto-inst-interfaced-ports, bug429.
 +      Reported by Julian Gorfajn.
 +      (verilog-after-save-font-hook)
 +      (verilog-before-save-font-hook): New variable.
 +      (verilog-modi-cache-results, verilog-save-font-mod-hooked)
 +      (verilog-save-font-mods): Wrap disabling fontification, reported
 +      by David Rogoff.
 +      (verilog-do-indent, verilog-pretty-declarations-auto)
 +      (verilog-sk-def-reg): Fix obeying `verilog-auto-lineup', bug305.
 +      Reported by Pierre-David Pfister.
 +      (verilog-set-auto-endcomments): Fix endtask auto comments outside
 +      of class declarations, bug292.  Reported by Kevin Heilman.
 +      (verilog-read-decls): Fix 'parameter type' not appearing in
 +      AUTOINSTPARAM, bug340.  Reported by Jonathan Greenlaw.
 +      (verilog-auto-logic): Fix when AUTOLOGIC present to properly do
 +      AUTOINPUTs, bug411. Reported by Jonathan Greenlaw.
 +      (verilog-read-auto-lisp): Avoid syntax-ppss warning on AUTOLISP.
 +      Reported by David Kravitz.
 +
 +2012-05-03  Michael McNamara  <mac@mail.brushroad.com>
 +
 +      * progmodes/verilog-mode.el (verilog-pretty-expr): Don't line up
 +      assignment with tests in ifs and for loops.
 +      (verilog-extended-complete-re, verilog-complete-reg): Change so
 +      that DPI inport functions don't look like fuction declarations.
 +      (verilog-pretty-expr): Don't line up assignment
 +      operations to the test and increment in if and for loops
 +      (verilog-extended-complete-re, verilog-complete-reg): Change so
 +      that DPI inport functions don't look like fuction declarations
 +
 +2012-05-03  Kenichi Handa  <handa@m17n.org>
 +
 +      * mail/rmailmm.el (rmail-show-mime): Catch an error caused by text
 +      decoding, and show a warning message without signalling an error
 +      (Bug#11282).
 +
 +2012-05-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/bytecomp.el
 +      (byte-compile-file-form-custom-declare-variable): Compile all elements,
 +      since cconv.el might have introduced :fun-body, internal-make-closure,
 +      and friends for bytecomp to handle (bug#11391).
 +      * custom.el (defcustom): Avoid ((λ ..) ..).
 +
 +2012-05-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (read-passwd): Better clean after ourselves (bug#11392).
 +
 +2012-05-02  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * notifications.el (dbus-debug):
 +      * term/linux.el (gpm-mouse-enable):
 +      * term/screen.el (xterm-register-default-colors): Declare.
 +
 +2012-05-02  Chong Yidong  <cyd@gnu.org>
 +
 +      * cus-start.el (gc-cons-percentage, exec-suffixes)
 +      (dos-display-scancodes, dos-hyper-key, dos-super-key)
 +      (dos-keypad-mode, debug-on-signal, vertical-centering-font-regexp)
 +      (make-cursor-line-fully-visible, void-text-area-pointer)
 +      (font-list-limit): Add customization data.
 +
 +      * allout.el (allout-exposure-change-functions)
 +      (allout-structure-added-functions)
 +      (allout-structure-deleted-functions)
 +      (allout-structure-shifted-functions): Rename abnormal hooks from
 +      *-hook, and convert to defcustoms.
 +      (allout-after-copy-or-kill-hook, allout-post-undo-hook):
 +      Convert to defcustoms.
 +      (allout-mode-hook, allout-mode-deactivate-hook): Doc fix.
 +
 +      * allout-widgets.el: Hook callers changed.
 +
 +2012-05-02  Eli Zaretskii  <eliz@gnu.org>
  
        * mail/rmail.el (rmail-yank-current-message): Use the encoding of
        the yanked message in preference to the default value of
diff --cc lisp/select.el
@@@ -228,24 -228,24 +228,30 @@@ two markers or an overlay.  Otherwise, 
          ;; But avoid modifying the string if it's a buffer name etc.
          (unless can-modify (setq str (substring str 0)))
          (remove-text-properties 0 (length str) '(composition nil) str)
--        ;; TEXT is a polymorphic target.  Select the actual type
--        ;; from `UTF8_STRING', `COMPOUND_TEXT', `STRING', and
--        ;; `C_STRING'.
--        (if (eq type 'TEXT)
--            (if (not (multibyte-string-p str))
--                (setq type 'C_STRING)
--              (let (non-latin-1 non-unicode eight-bit)
--                (mapc #'(lambda (x)
--                          (if (>= x #x100)
--                              (if (< x #x110000)
--                                  (setq non-latin-1 t)
--                                (if (< x #x3FFF80)
--                                    (setq non-unicode t)
--                                  (setq eight-bit t)))))
--                      str)
--                (setq type (if non-unicode 'COMPOUND_TEXT
--                             (if non-latin-1 'UTF8_STRING
--                               (if eight-bit 'C_STRING 'STRING)))))))
++        ;; For X selections, TEXT is a polymorphic target; choose
++        ;; the actual type from `UTF8_STRING', `COMPOUND_TEXT',
++        ;; `STRING', and `C_STRING'.  On Nextstep, always use UTF-8
++        ;; (see ns_string_to_pasteboard_internal in nsselect.m).
++        (when (eq type 'TEXT)
++          (cond
++           ((featurep 'ns)
++            (setq type 'UTF8_STRING))
++           ((not (multibyte-string-p str))
++            (setq type 'C_STRING))
++           (t
++            (let (non-latin-1 non-unicode eight-bit)
++              (mapc #'(lambda (x)
++                        (if (>= x #x100)
++                            (if (< x #x110000)
++                                (setq non-latin-1 t)
++                              (if (< x #x3FFF80)
++                                  (setq non-unicode t)
++                                (setq eight-bit t)))))
++                    str)
++              (setq type (if non-unicode 'COMPOUND_TEXT
++                           (if non-latin-1 'UTF8_STRING
++                             (if eight-bit 'C_STRING
++                               'STRING))))))))
          (cond
           ((eq type 'UTF8_STRING)
            (if (or (not coding)
diff --cc src/ChangeLog
@@@ -1,54 -1,8 +1,58 @@@
 -2012-05-02  Jim Meyering  <meyering@redhat.com>
++2012-05-05  Jim Meyering  <meyering@redhat.com>
+       * w32font.c (fill_in_logfont): NUL-terminate a string (Bug#11372).
 -2012-04-29  Eli Zaretskii  <eliz@gnu.org>
 +2012-05-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * data.c (PUT_ERROR): New macro.
 +      (syms_of_data): Use it.  Add new error type `user-error'.
 +      * undo.c (user_error): New function.
 +      (Fprimitive_undo): Use it.
 +      * print.c (print_error_message): Adjust print style for `user-error'.
 +      * keyboard.c (user_error): New function.
 +      (Fexit_recursive_edit, Fabort_recursive_edit): Use it.
 +
 +2012-05-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Do not limit current-time-string to years 1000..9999.
 +      * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): Remove.
 +      (Fcurrent_time_string): Support any year that is supported by the
 +      underlying localtime representation.  Don't use asctime, as it
 +      has undefined behavior for years outside the range -999..9999.
 +
 +2012-05-02  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix race conditions involving setenv, gmtime, localtime, asctime.
 +      Without this fix, interrupts could mess up code that uses these
 +      nonreentrant functions, since setting TZ invalidates existing
 +      tm_zone or tzname values, and since most of these functions return
 +      pointers to static storage.
 +      * editfns.c (format_time_string, Fdecode_time, Fencode_time)
 +      (Fcurrent_time_string, Fcurrent_time_zone, Fset_time_zone_rule):
 +      Grow the critical sections to include not just invoking
 +      localtime/gmtime, but also accessing these functions' results
 +      including their tm_zone values if any, and any related TZ setting.
 +      (format_time_string): Last arg is now struct tm *, not struct tm **,
 +      so that the struct tm is saved in the critical section.
 +      All callers changed.  Simplify allocation of initial buffer, partly
 +      motivated by the fact that memory allocation needs to be outside
 +      the critical section.
 +
 +2012-05-02  Dmitry Antipov  <dmantipov@yandex.ru>
 +
 +      * intervals.c (adjust_intervals_for_insertion): Initialize `newi'
 +      with RESET_INTERVAL.
 +
 +      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
 +      Remove duplicated buffer name initialization.
 +
 +2012-05-02  Jim Meyering  <jim@meyering.net>
 +
 +      * xterm.c (x_term_init): Use memcpy instead of strncpy (Bug#11373).
 +
 +      * xfns.c (x_window): Use xstrdup (Bug#11375).
 +
 +2012-05-02  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (pos_visible_p): If already at a newline from the
        display string before the 'while' loop, don't walk back the glyphs