]> code.delx.au - gnu-emacs/commitdiff
Merge from emacs-23; up to 2010-06-12T11:17:12Z!eliz@gnu.org.
authorGlenn Morris <rgm@gnu.org>
Sun, 29 May 2011 22:41:06 +0000 (15:41 -0700)
committerGlenn Morris <rgm@gnu.org>
Sun, 29 May 2011 22:41:06 +0000 (15:41 -0700)
15 files changed:
1  2 
doc/lispref/ChangeLog
doc/lispref/compile.texi
doc/lispref/display.texi
doc/lispref/elisp.texi
doc/lispref/help.texi
doc/lispref/keymaps.texi
doc/lispref/lists.texi
doc/lispref/minibuf.texi
doc/lispref/modes.texi
doc/lispref/nonascii.texi
doc/lispref/processes.texi
doc/lispref/strings.texi
doc/lispref/text.texi
doc/lispref/tips.texi
doc/lispref/windows.texi

diff --combined doc/lispref/ChangeLog
index ce3521b37d510acdac4e733efc1c92aa1a899a48,fd8a9945cf97df4b5100889bb5d981a7fd35a270..bd92b2a7273a1d1ccad57afc383f2fbbf98686d6
@@@ -1,63 -1,21 +1,80 @@@
 -2011-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+ 2011-05-29  Chong Yidong  <cyd@stupidchicken.com>
+       * help.texi (Accessing Documentation):
+       * display.texi (Pixel Specification):
+       * processes.texi (Serial Ports, Serial Ports):
+       * nonascii.texi (Character Properties, Default Coding Systems):
+       * text.texi (Changing Properties, Special Properties):
+       * windows.texi (Window Start and End):
+       * modes.texi (SMIE Indentation Example, SMIE Tricks):
+       * keymaps.texi (Searching Keymaps, Tool Bar):
+       * minibuf.texi (Basic Completion):
+       * compile.texi (Eval During Compile):
+       * strings.texi (Formatting Strings): Tweaks to avoid overflowing
+       7x9 paper in printed manual.
+       * lists.texi (Sets And Lists): Fix misplaced text.
 +2011-05-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keymaps.texi (Remapping Commands): Emphasize that the keymap
 +      needs to be active (Bug#8350).
 +
 +2011-05-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * minibuf.texi (Reading File Names): Clarify (Bug#8480).
 +
 +      * tips.texi (Coding Conventions): Remove antediluvian filename
 +      limit recommendation (Bug#8538).
 +
 +2011-05-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * modes.texi (Auto Major Mode): Update for set-auto-mode changes.
 +
 +2011-05-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * variables.texi (File Local Variables):
 +      Update hack-local-variables `mode-only' return value.
 +      Add some more details on what this function does in the other case.
 +
 +2011-05-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * lists.texi (Sets And Lists): Mention cl provides union etc.
 +
 +2011-05-19  Nix  <nix@esperi.org.uk>
 +
 +      * windows.texi (Displaying Buffers): pop-to-buffer is not a command.
 +
 +      * text.texi (Parsing HTML): Update for function name changes.
 +
 +      * syntax.texi (Syntax Flags): Small fix.
 +
 +      * keymaps.texi (Active Keymaps): Typo fix.
 +      (Changing Key Bindings): Grammar fix.
 +
 +      * frames.texi (Minibuffers and Frames): Grammar fix.
 +      (Window System Selections): x-select-enable-clipboard now defaults to t.
 +
 +      * customize.texi (Common Keywords):
 +      * display.texi (Abstract Display):
 +      * modes.texi (Auto-Indentation):
 +      * nonascii.texi (Converting Representations): Typo fixes.
 +
 +      * control.texi (Examples of Catch): Call it "goto" not "go to".
 +
 +2011-05-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * nonascii.texi (Character Properties): Fix inconsistencies with
 +      implementation.
 +
 +      * text.texi (Special Properties): Move @defvar's out of the
 +      @table.  (Bug#8652)
 +
 +2011-05-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * display.texi (Image Descriptors): Fix typo.  (Bug#8495)
 +
 +2011-05-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * modes.texi (Region to Refontify): Rename from "Region to Fontify".
        (Multiline Font Lock):
        * vol1.texi (Top):
        * elisp.texi (Top): Update menu accordingly.
  
 -2011-05-05  Drew Adams  <drew.adams@oracle.com>
 +2011-05-12  Drew Adams  <drew.adams@oracle.com>
  
        * modes.texi (Region to Fontify): Fix typo.
  
 -2011-04-13  Juanma Barranquero  <lekktu@gmail.com>
 +2011-05-10  Jim Meyering  <meyering@redhat.com>
 +
 +      * minibuf.texi: Fix typo "in in -> in".
 +
 +2011-05-06  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * numbers.texi (Integer Basics): Large integers are treated as floats.
 +
 +2011-04-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * processes.texi (Synchronous Processes): Document the (:file
 +      "/file-name") syntax for `call-process'.
 +
 +2011-04-23  Juanma Barranquero  <lekktu@gmail.com>
  
        * windows.texi (Choosing Window): Fix typo.
  
 -2011-04-10  Chong Yidong  <cyd@stupidchicken.com>
 +2011-04-23  Chong Yidong  <cyd@stupidchicken.com>
  
        * frames.texi (Layout Parameters): Note the difference between
        querying and setting parameters for left-fringe and right-fringe
        * buffers.texi (Current Buffer): Copyedits.  Don't recommend using
        save-excursion.  Suggested by Uday S Reddy.
  
 -2011-03-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-04-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * variables.texi (Defining Variables): Mention the new meaning of `defvar'.
 +      (Lexical Binding): New sub-section.
 +
 +      * eval.texi (Eval): Discourage the use of `eval'.
 +      Document its new `lexical' argument.
 +
 +2011-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * commands.texi (Command Overview): `post-command-hook' is not reset to
 +      nil any more.
 +
 +2011-03-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * strings.texi (String Conversion): Don't mention
        string-make-(uni|multi)byte (bug#8262).
        * keymaps.texi (Key Binding Commands): Update code point, avoid
        "unibyte character" and remove mention of unibyte bindings.
  
 +2011-03-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * modes.texi (Operator Precedence Grammars): Don't use characters
 +      outside ISO-8859-1.
 +
 +2011-03-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * intro.texi (Acknowledgements): Convert to ISO-8859-1 encoding.
 +
 +      * makefile.w32-in (MAKEINFO_OPTS): Add --enable-encoding.
 +
 +2011-03-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (MAKEINFO_OPTS): Add --enable-encoding.
 +      * intro.texi (Acknowledgements): Names to UTF-8.
 +      * elisp.texi: Set documentencoding.
 +
  2011-03-07  Chong Yidong  <cyd@stupidchicken.com>
  
        * Version 23.3 released.
  
 -2011-02-25  Glenn Morris  <rgm@gnu.org>
 +2011-03-06  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * package.texi: Update index keywords.
 +      (Package Archives): New node contents.  Document package-x.el.
 +
 +2011-03-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (srcs): Add package.texi.
 +
 +2011-03-06  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * package.texi (Packaging, Packaging Basics, Simple Packages)
 +      (Multi-file Packages): Expand and clarify.
 +      (Package Archives): Temporary placeholder node.
 +
 +      * elisp.texi (Top): Update node listing.
 +
 +      * Makefile.in (srcs): Add package.texi.
 +
 +2011-03-05  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * processes.texi (Synchronous Processes): Minor clarification
 +      (Bug#8149).
 +
 +2011-03-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.texi (Truenames): Minor clarification.  (Bug#2341)
 +
 +2011-03-01  Glenn Morris  <rgm@gnu.org>
 +
 +      * variables.texi (Directory Local Variables):
 +      Mention `(subdirs . nil)' alist element.
 +
 +2011-02-28  Glenn Morris  <rgm@gnu.org>
  
        * variables.texi (Directory Local Variables): Mention the optional
        mtime argument of dir-locals-set-directory-class.  (Bug#3577)
  
 -2011-02-18  Eli Zaretskii  <eliz@gnu.org>
 +2011-02-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * minibuf.texi (Minibuffer History): Clarify discussion of
 +      minibuffer history lists (Bug#8085).
 +
 +2011-02-19  Eli Zaretskii  <eliz@gnu.org>
  
        * elisp.texi: Sync @dircategory with ../../info/dir.
  
        * variables.texi (Creating Buffer-Local): Explain the meaning of
        permanent local variables.
  
 -2011-02-18  Glenn Morris  <rgm@gnu.org>
 +      * files.texi (Visiting Functions): Document find-file-literally,
 +      both the command and the variable.
 +
 +      * variables.texi (Creating Buffer-Local): Explain the meaning of
 +      permanent local variables.
 +
 +2011-02-19  Glenn Morris  <rgm@gnu.org>
  
        * keymaps.texi (Remapping Commands): Mention how to undo it.
  
 +2011-02-09  Reuben Thomas  <rrt@sc3d.org>
 +
 +      * loading.texi (Hooks for Loading): Remove unnecessary advice
 +      about eval-after-load (Bug#7986).
 +
  2011-02-05  Chong Yidong  <cyd@stupidchicken.com>
  
        * commands.texi (Accessing Mouse): Note that a header line is not
        included in the row of posn-col-row.
  
 +2011-02-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * modes.texi (Major Mode Conventions): Add face guidelines.
 +      (Faces for Font Lock): List faces in order of prominence.
 +
 +2011-02-01  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      format-time-string now supports subsecond time stamp resolution
 +      * os.texi (Time Parsing): Document %N.
 +
  2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
  
        * vol1.texi (Top):
        * keymaps.texi (Defining Menus): Add "menu item" and "extended
        menu item" concept index entries (Bug#7805).
  
 -2011-01-23  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (texinfodir): New variable.
 +      (usermanualdir): Remove as redundant with $(emacsdir).
 +      (MAKEINFO): Remove options, leave only program name.
 +      (MAKEINFO_OPTS): New variable.
 +      (texinputdir, $(infodir)/elisp): Use $(MAKEINFO_OPTS).
 +
 +2011-01-25  Chong Yidong  <cyd@stupidchicken.com>
              Richard Kim  <emacs18@gmail.com>
  
        * loading.texi (Library Search): Document list-load-path-shadows
        (Bug#7757).
  
 -2011-01-23  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-25  Chong Yidong  <cyd@stupidchicken.com>
  
        * searching.texi (Regexp Special): Remove outdated discussion of
        character sets (Bug#7780).
  
 -2011-01-22  Chong Yidong  <cyd@stupidchicken.com>
 -
        * frames.texi (Pop-Up Menus): Document where menu title comes
        from (Bug#7684).
  
 -2011-01-22  Glenn Morris  <rgm@gnu.org>
 +2011-01-25  Glenn Morris  <rgm@gnu.org>
  
        * display.texi (Making Buttons): Mention limitation of text buttons.
  
 -2011-01-08  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-23  Werner Lemberg  <wl@gnu.org>
 +
 +      * Makefile.in (MAKEINFO): Now controlled by `configure'.
 +      (MAKEINFO_OPTS): New variable.  Use it where appropriate.
 +      (ENVADD): New variable to control texi2dvi and texi2pdf.
 +
 +2011-01-15  Chong Yidong  <cyd@stupidchicken.com>
  
        * files.texi (Directory Names): Move directory-abbrev-alist doc to
        Emacs manual.
  
 -2011-01-07  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-15  Eli Zaretskii  <eliz@gnu.org>
  
        * files.texi (Directory Names): Explain why FROM in
        directory-abbrev-alist should begin with \`.  (Bug#7777)
  
 -2010-12-25  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * loading.texi (Hooks for Loading): Adjust doc of eval-after-load.
 +
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * modes.texi (Emulating Mode Line): Fix last change.
  
 -2010-12-18  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * modes.texi (Emulating Mode Line): Update documentation of
        format-mode-line according to changes that fixed bug #7587.
  
 -2010-12-11  Eli Zaretskii  <eliz@gnu.org>
 +2010-12-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * modes.texi (Derived Modes): Mention prog-mode.
 +
 +      * keymaps.texi (Simple Menu Items, Extended Menu Items): Remove mention
 +      of the key-binding-data cache since we don't use it any more.
 +
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * processes.texi (Shell Arguments):
        * strings.texi (Creating Strings): Don't mention "shell commands";
        * processes.texi (Shell Arguments): Fix documentation of
        `split-string-and-unquote'.  Add indexing.  (Bug#7563)
  
 -2010-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * modes.texi (Auto-Indentation): New section to document SMIE.
        (Major Mode Conventions):
        * text.texi (Mode-Specific Indent): Refer to it.
  
 -2010-12-04  Eli Zaretskii  <eliz@gnu.org>
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * display.texi (Other Display Specs): Document left-fringe and
        right-fringe display specs.
  
 -2010-12-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * backups.texi (Making Backups):
        * modes.texi (Example Major Modes): Use recommended coding style.
        (Major Mode Basics, Derived Modes): Encourge more strongly use of
        define-derived-mode.  Mention completion-at-point-functions.
  
 -2010-11-21  Chong Yidong  <cyd@stupidchicken.com>
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
  
        * nonascii.texi (Converting Representations):
        Document byte-to-string.
  
 +2010-12-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * buffers.texi (Modification Time):
 +      verify-visited-file-modtime now defaults to the current buffer.
 +
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * nonascii.texi (Converting Representations): Document byte-to-string.
 +
        * strings.texi (Creating Strings): Don't mention semi-obsolete
        function char-to-string.
        (String Conversion): Shorten discussion of semi-obsolete function
        * functions.texi (Mapping Functions): Use string instead of
        char-to-string in examples.
  
 -2010-11-20  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
  
        * text.texi (Kill Functions, Kill Functions)
        (Low-Level Kill Ring, Low-Level Kill Ring): Remove obsolete
        * variables.texi (Defining Variables): Change "pi" example to
        "float-pi".
  
 -2010-11-12  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * commands.texi (Click Events): Document the values of X, Y and
 +      COL, ROW in the event's position, when the click is on the header
 +      or mode line, on the fringes, or in the margins.
 +
 +2010-11-17  Eli Zaretskii  <eliz@gnu.org>
  
        * customize.texi (Composite Types): Lower-case index entry.
  
        * loading.texi (How Programs Do Loading):
        Document load-file-name.  (Bug#7346)
  
 -2010-11-10  Glenn Morris  <rgm@gnu.org>
 +2010-11-17  Glenn Morris  <rgm@gnu.org>
  
        * text.texi (Kill Functions, Low-Level Kill Ring): Small fixes.
  
 -2010-10-27  Glenn Morris  <rgm@gnu.org>
 +2010-11-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * display.texi (Usual Display): Characters with no fonts are not
 +      necessarily displayed as empty boxes.
 +
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
  
        * maps.texi (Standard Keymaps): Update File menu description.
  
 -2010-10-22  Eli Zaretskii  <eliz@gnu.org>
 +2010-10-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (elisp.dvi, elisp.pdf): Also include $emacsdir.
 +
 +2010-10-24  Eli Zaretskii  <eliz@gnu.org>
  
        * display.texi (Window Systems): Deprecate use of window-system as
        a predicate.
  
 -2010-09-05  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +2010-10-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * help.texi (Documentation Basics): Remove mentions of digest-doc and
 +      sorted-doc.
 +
 +2010-10-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * os.texi (Dynamic Libraries): New node, with slightly modified
 +      text deleted from "Image Formats".
 +      (System Interface): Add @menu entry for "Dynamic Libraries".
 +
 +      * display.texi (Image Formats): Remove description of
 +      image-library-alist.  (Renamed in 2010-10-13T14:50:06Z!lekktu@gmail.com.)
 +
 +2010-10-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * book-spine.texinfo: Rename to book-spine.texi.
 +
 +2010-10-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (MAKEINFO): Add explicit -I$srcdir.
 +
 +      * Makefile.in (DVIPS): New variable.
 +      (.PHONY): Add html, ps.
 +      (html, elisp.html, ps, elisp.ps): New targets.
 +      (clean): Delete html, ps files.
 +      ($(infodir)/elisp): Remove unnecessary includes.
 +
 +2010-10-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (emacsdir): New variable.
 +      (srcs): Add emacsver.texi.
 +      ($(infodir)/elisp, elisp.dvi): Add -I$(emacsdir).
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (VPATH): Remove.
 +      (infodir): Make it absolute.
 +      (mkinfodir, $(infodir)/elisp, infoclean): No need to cd $srcdir.
 +
 +      * Makefile.in (dist): Anchor regexps.
 +
 +      * Makefile.in (srcs): Put elisp.texi first.
 +      ($(infodir)/elisp, elisp.dvi, elisp.pdf): Use $<.
 +
 +      * Makefile.in (infoclean): Remove harmless, long-standing error.
 +
 +      * Makefile.in ($(infodir)): Delete rule.
 +      (mkinfodir): New.
 +      ($(infodir)/elisp): Use $mkinfodir instead of infodir.
 +
 +      * Makefile.in (dist): Remove reference to emacsver.texi.in.
 +      Also copy emacsver.texi, and edit $emacsdir.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (emacsdir): New variable.
 +      (MAKEINFO): Add -I $emacsdir.
 +      (dist): Copy emacsver.texi.
 +      (srcs): Add emacsver.texi.
 +
 +      * book-spine.texinfo, elisp.texi, vol2.texi, vol1.texi:
 +      Set EMACSVER by including emacsver.texi.
 +
 +      * Makefile.in (.PHONY): Declare info, dvi, pdf, dist.
 +
 +2010-10-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (version): New, set by configure.
 +      (clean): Delete dist tar file.
 +      (dist): Use version in tar name.
 +
 +2010-10-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in: Rearrange to more closely resemble doc/emacs/Makefile.
 +      (INSTALL_INFO): Remove unused variable.
 +      (mostlyclean, infoclean, dist): New rules.
 +      (clean): Delete dvi and pdf files.
 +      (maintainer-clean): Remove elisp.oaux, use infoclean.
 +      ($(infodir)): Add parallel build workaround.
 +
 +2010-10-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (dvi, pdf, $(infodir)): New targets.
 +      ($(infodir)/elisp): Ensure target directory exists.  Use $@.
 +      Fix -I typo.
 +      (clean): No 'make.out' or 'core' files.
 +      (.PHONY): Declare clean rules.
 +      (maintainer-clean): Delete pdf file.  Guard against cd failures.
 +
 +2010-10-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.texi (File Name Components): Remove ignored section about
 +      deleted variable directory-sep-char.
 +
 +2010-10-03  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.texi (Magic File Names): New defopt
 +      remote-file-name-inhibit-cache.
 +
 +2010-10-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * os.texi (Killing Emacs): Hook now runs in batch mode.
 +
 +2010-09-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * text.texi (Special Properties): Clarify when modification-hooks run.
 +
 +2010-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * syntax.texi (Syntax Flags): Document new `c' flag.
 +
 +2010-09-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * display.texi (ImageMagick Images): General cleanup.
 +
 +2010-09-06  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
  
        * files.texi (Directory Names): Use \` rather than ^.
  
 +2010-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * text.texi (Low-Level Kill Ring):
 +      * frames.texi (Window System Selections): Remove cut buffer
 +      documentation.
 +
 +2010-08-28  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * display.texi (Fringe Size/Pos): Add a cross-reference to "Layout
 +      Parameters", where the default fringe width is described.
 +
 +      * frames.texi (Window Frame Parameters, Basic Parameters)
 +      (Position Parameters, Layout Parameters, Management Parameters)
 +      (Cursor Parameters, Font and Color Parameters): Add indexing for
 +      frame parameters.  (Bug#6929)
 +
 +2010-08-25  Tom Tromey  <tromey@redhat.com>
 +
 +      * vol2.texi (Top): Update.
 +      * vol1.texi (Top): Update.
 +      * tips.texi (Library Headers): Mention Package-Version and
 +      Package-Requires.
 +      * package.texi: New file.
 +      * os.texi (System Interface): Update pointers.
 +      * elisp.texi (Top): Link to new nodes.  Include package.texi.
 +      * anti.texi (Antinews): Update pointers.
 +
 +2010-08-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * processes.texi (Filter Functions): Fix last change.
 +
 +2010-08-24  Markus Triska  <triska@gmx.at>
 +
 +      * processes.texi (Filter Functions): Use `buffer-live-p' instead
 +      of `buffer-name' in the main text as well as in the example
 +      (Bug#3098).
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * nonascii.texi (Text Representations):
 +      * loading.texi (Loading Non-ASCII):
 +      * compile.texi (Byte Compilation): Don't mention obsolete
 +      --unibyte command-line argument.
 +
  2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
  
        * modes.texi (Defining Minor Modes): Doc fix (Bug#6880).
  
 -2010-08-19  Chong Yidong  <cyd@stupidchicken.com>
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
  
        * objects.texi (Bool-Vector Type): Minor definition tweak (Bug#6878).
  
 -2010-08-02  Christoph  <cschol2112@googlemail.com>
 +2010-08-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * commands.texi (Misc Events): Add cross-references to where
 +      POSITION of a mouse event is described in detail.
 +
 +2010-08-08  Christoph  <cschol2112@googlemail.com>
  
        * control.texi (Handling Errors) <error-message-string>: Fix arg name.
  
 -2010-07-29  Juanma Barranquero  <lekktu@gmail.com>
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
  
        * modes.texi (Defining Minor Modes): Use C-backspace, not C-delete.
        Suggested by Å tÄ›pán NÄ›mec <stepnem@gmail.com>.
  
 -2010-07-28  Juanma Barranquero  <lekktu@gmail.com>
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
  
        * minibuf.texi (High-Level Completion): Document args of
        `read-buffer-function' (bug#5625).
  
 +2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Layout Parameters): Add doc for tool-bar-position.
 +
 +2010-07-29  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * processes.texi (Process Information): Explain process property
 +      `remote-tty'.
 +
  2010-07-27  Juanma Barranquero  <lekktu@gmail.com>
  
        * modes.texi (Defining Minor Modes): Use C-delete in examples,
        instead of "\C-\^?" (bug#6334).
  
 -2010-07-21  Juanma Barranquero  <lekktu@gmail.com>
 -
        * text.texi (Special Properties): Fix typo.
  
 +2010-07-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * internals.texi (Writing Emacs Primitives): Adapt to ANSI C
 +      calling sequences, which are now the standard.
 +
  2010-06-24  Chong Yidong  <cyd@stupidchicken.com>
  
        * text.texi (Undo): Clarify command loop behavior (Bug#2433).
  
  2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * errors.texi (Standard Errors): Remove unnecessary markup
 -      (Bug#6461).
 +      * errors.texi (Standard Errors): Remove unnecessary markup (Bug#6461).
  
  2010-06-02  Chong Yidong  <cyd@stupidchicken.com>
  
        * minibuf.texi (Basic Completion): Document completion-boundaries.
        (Programmed Completion): Document the new fourth method for boundaries.
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +2010-05-22  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * Version 23.2 released.
 +      * display.texi (Image Cache): Update documentation about image caching.
  
 -2010-05-03  Å tÄ›pán NÄ›mec  <stepnem@gmail.com>  (tiny change)
 +2010-05-08  Å tÄ›pán NÄ›mec  <stepnem@gmail.com>  (tiny change)
  
        * windows.texi (Textual Scrolling):
        * tips.texi (Coding Conventions):
        * loading.texi (Where Defined):
        * edebug.texi (Instrumenting): Fix typos.
  
 -2010-04-25  Chong Yidong  <cyd@stupidchicken.com>
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
  
        * keymaps.texi (Menu Bar): Document :advertised-binding property.
  
  
        * elisp.texi (Top): Update node description.
  
 +2010-05-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * nonascii.texi (Character Properties):
 +      Document unicode-category-table.  Add an index entry for Unicode
 +      general category.
 +
 +2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 23.2 released.
 +
 +2010-04-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * locals.texi (Standard Buffer-Local Variables):
 +      Remove @ignore'd reference to `direction-reversed'.
 +
  2010-04-14  Juri Linkov  <juri@jurta.org>
  
        Fix @deffn without category.
  
        * frames.texi (Cursor Parameters): Fix typo.  (Bug#5760)
  
 -2010-03-21  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
  
        * processes.texi (Network Processes): Document seqpacket type.
  
 +2010-03-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * os.texi (System Environment): Do not mention lynxos.
 +
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
  2010-03-06  Chong Yidong  <cyd@stupidchicken.com>
  
        * objects.texi (Integer Type): Take note of the read syntax
  2005-02-05  Eli Zaretskii  <eliz@gnu.org>
  
        * frames.texi (Color Names): Add pointer to the X docs about RGB
 -      color specifications.  Improve indexing
 +      color specifications.  Improve indexing.
        (Text Terminal Colors): Replace the description of RGB values by
        an xref to "Color Names".
  
        * minibuf.texi (Reading File Names): read-file-name has new
        arg PREDICATE.  New function read-directory-name.
  
 -      * macros.texi (Defining Macros): Give definition of `declare'
 +      * macros.texi (Defining Macros): Give definition of `declare'.
        (Indenting Macros): New node.
  
        * frames.texi (Parameter Access): Add modify-all-frames-parameters.
        * numbers.texi (Integer Basics): Add most-positive-fixnum,
        most-negative-fixnum.
  
 -      * compile.texi (Byte Compilation): Explain no-byte-compile
 +      * compile.texi (Byte Compilation): Explain no-byte-compile.
        (Compiler Errors): New node.
  
        * os.texi (User Identification): user-uid, user-real-uid
  
  ;; Local Variables:
  ;; coding: utf-8
 -;; add-log-time-zone-rule: t
  ;; End:
  
 -    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
 -      2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +  Copyright (C) 1998-2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
diff --combined doc/lispref/compile.texi
index f9f0e6662cf6371ca460d9b34b4f820ede70f7c8,b91e1626233e328d12d0d509c109d629e8c2b0ec..fe5563370c4f19c4054b44eebf5530c9018f4366
@@@ -1,6 -1,7 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 2001, 2002, 2003, 2004,
 -@c   2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +@c Copyright (C) 1990-1994, 2001-2011  Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/compile
  @node Byte Compilation, Advising Functions, Loading, Top
@@@ -21,6 -22,12 +21,6 @@@ hardware (as true compiled code is), by
  transportable from machine to machine without recompilation.  It is not,
  however, as fast as true compiled code.
  
 -  Compiling a Lisp file with the Emacs byte compiler always reads the
 -file as multibyte text, even if Emacs was started with @samp{--unibyte},
 -unless the file specifies otherwise.  This is so that compilation gives
 -results compatible with running the same file without compilation.
 -@xref{Loading Non-ASCII}.
 -
    In general, any version of Emacs can run byte-compiled code produced
  by recent earlier versions of Emacs, but the reverse is not true.
  
@@@ -445,7 -452,7 +445,7 @@@ used to load it for compiling, but not 
  
  @lisp
  (eval-when-compile
-   (require 'my-macro-package))  ;; only macros needed from this
+   (require 'my-macro-package))
  @end lisp
  
  The same sort of thing goes for macros and @code{defsubst} functions
@@@ -789,3 -796,7 +789,3 @@@ The @code{silly-loop} function is somew
  @end group
  @end example
  
 -
 -@ignore
 -   arch-tag: f78e3050-2f0a-4dee-be27-d9979a0a2289
 -@end ignore
diff --combined doc/lispref/display.texi
index 338fd42199451eda84daaaead3344b32b27cc655,4a647ef15a2bfa77891c4c9bfe62be6f79be3bea..199a20cc2cd6500a5b4816c427dee1fe2f467113
@@@ -1,6 -1,8 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 -@c   Free Software Foundation, Inc.
 +@c Copyright (C) 1990-1995, 1998-2011  Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/display
  @node Display, System Interface, Processes, Top
@@@ -1441,9 -1443,9 +1441,9 @@@ specify a particular attribute for cert
  Attributes}.
  
  @item
- A cons cell, either of the form @code{(foreground-color . @var{color-name})} or
- @code{(background-color . @var{color-name})}.  These elements specify
just the foreground color or just the background color.
+ A cons cell, either of the form @code{(fg-color . @var{color-name})}
+ or @code{(bg-color . @var{color-name})}.  These elements specify just
+ the foreground color or just the background color.
  
  @code{(foreground-color . @var{color-name})} has the same effect as
  @code{(:foreground @var{color-name})}; likewise for the background.
@@@ -3212,9 -3214,7 +3212,9 @@@ width from the window's frame
    The values of these variables take effect when you display the
  buffer in a window.  If you change them while the buffer is visible,
  you can call @code{set-window-buffer} to display it once again in the
 -same window, to make the changes take effect.
 +same window, to make the changes take effect.  A buffer that does not
 +specify values for these variables will use the default values
 +specified for the frame; see @ref{Layout Parameters}.
  
  @defun set-window-fringes window left &optional right outside-margins
  This function sets the fringe widths of window @var{window}.
@@@ -3821,9 -3821,10 +3821,10 @@@ pixels per inch, millimeter, and centim
  and height of the current face.  An image specification @code{image}
  corresponds to the width or height of the image.
  
-   The @code{left-fringe}, @code{right-fringe}, @code{left-margin},
- @code{right-margin}, @code{scroll-bar}, and @code{text} elements
- specify to the width of the corresponding area of the window.
+   The elements @code{left-fringe}, @code{right-fringe},
+ @code{left-margin}, @code{right-margin}, @code{scroll-bar}, and
+ @code{text} specify to the width of the corresponding area of the
+ window.
  
    The @code{left}, @code{center}, and @code{right} positions can be
  used with @code{:align-to} to specify a position relative to the left
@@@ -4045,7 -4046,6 +4046,7 @@@ displayed (@pxref{Display Feature Testi
  * GIF Images::          Special features for GIF format.
  * TIFF Images::         Special features for TIFF format.
  * PostScript Images::   Special features for PostScript format.
 +* ImageMagick Images::  Special features available through ImageMagick.
  * Other Image Types::   Various other formats are supported.
  * Defining Images::     Convenient ways to define an image for later use.
  * Showing Images::      Convenient ways to display an image once it is defined.
  
    Emacs can display a number of different image formats; some of them
  are supported only if particular support libraries are installed on
 -your machine.  In some environments, Emacs can load image
 -libraries on demand; if so, the variable @code{image-library-alist}
 -can be used to modify the set of known names for these dynamic
 -libraries (though it is not possible to add new image formats).
 +your machine.  In some environments, Emacs can load support libraries
 +on demand; if so, the variable @code{dynamic-library-alist}
 +(@pxref{Dynamic Libraries}) can be used to modify the set of known
 +names for these dynamic libraries (though it is not possible to add
 +new image formats).  Note that image types @code{pbm} and @code{xbm}
 +do not depend on external libraries and are always available in Emacs.
  
    The supported image formats include XBM, XPM (this requires the
  libraries @code{libXpm} version 3.4k and @code{libz}), GIF (requiring
@@@ -4088,6 -4086,24 +4089,6 @@@ To know which image types are really av
  @code{image-type-available-p}.
  @end defvar
  
 -@defvar image-library-alist
 -This in an alist of image types vs external libraries needed to
 -display them.
 -
 -Each element is a list @code{(@var{image-type} @var{library}...)},
 -where the car is a supported image format from @code{image-types}, and
 -the rest are strings giving alternate filenames for the corresponding
 -external libraries to load.
 -
 -Emacs tries to load the libraries in the order they appear on the
 -list; if none is loaded, the running session of Emacs won't support
 -the image type.  @code{pbm} and @code{xbm} don't need to be listed;
 -they're always supported.
 -
 -This variable is ignored if the image libraries are statically linked
 -into Emacs.
 -@end defvar
 -
  @defun image-type-available-p type
  This function returns non-@code{nil} if image type @var{type} is
  available, i.e., if images of this type can be loaded and displayed in
@@@ -4213,14 -4229,14 +4214,14 @@@ Laplace edge-detection currently uses 
  @tex
  $$\pmatrix{1 & 0 & 0 \cr
     0&  0 &  0 \cr
 -   9 & 9 & -1 \cr}$$
 +   0 & 0 & -1 \cr}$$
  @end tex
  @end iftex
  @ifnottex
  @display
    (1  0  0
     0  0  0
 -   9  9 -1)
 +   0  0 -1)
  @end display
  @end ifnottex
  
@@@ -4454,60 -4470,6 +4455,60 @@@ specifying the bounding box of the Post
  @end example
  @end table
  
 +@node ImageMagick Images
 +@subsection ImageMagick Images
 +@cindex ImageMagick images
 +@cindex images, support for more formats
 +
 +  If you build Emacs with ImageMagick (@url{http://www.imagemagick.org})
 +support, you can use the ImageMagick library to load many image formats.
 +
 +@findex imagemagick-types
 +The function @code{imagemagick-types} returns a list of image file
 +extensions that your installation of ImageMagick supports.  To enable
 +support, you must call the function @code{imagemagick-register-types}.
 +
 +@vindex imagemagick-types-inhibit
 +The variable @code{imagemagick-types-inhibit} specifies a list of
 +image types that you do @emph{not} want ImageMagick to handle.  There
 +may be overlap between image loaders in your Emacs installation, and
 +you may prefer to use a different one for a given image type (which
 +@c FIXME how is this priority determined?
 +loader will be used in practice depends on the priority of the loaders).
 +@c FIXME why are these uppercase when image-types is lower-case?
 +@c FIXME what are the possibe options?  Are these actually file extensions?
 +For example, if you never want to use the ImageMagick loader to use
 +JPEG files, add @code{JPG} to this list.
 +
 +@vindex imagemagick-render-type
 +You can set the variable @code{imagemagick-render-type} to choose
 +between screen render methods for the ImageMagick loader.  The options
 +are: @code{0}, a conservative method which works with older
 +@c FIXME details of this "newer method"?
 +@c Presumably it is faster but may be less "robust"?
 +ImageMagick versions (it is a bit slow, but robust); and @code{1},
 +a newer ImageMagick method.
 +
 +Images loaded with ImageMagick support a few new display specifications:
 +
 +@table @code
 +@item :width, :height
 +The @code{:width} and @code{:height} keywords are used for scaling the
 +image.  If only one of them is specified, the other one will be
 +calculated so as to preserve the aspect ratio.  If both are specified,
 +aspect ratio may not be preserved.
 +
 +@item :rotation
 +Specifies a rotation angle in degrees.
 +
 +@item :index
 +Specifies which image to view inside an image bundle file format, such
 +as TIFF or DJVM.  You can use the @code{image-metadata} function to
 +retrieve the total number of images in an image bundle (this is
 +similar to how GIF files work).
 +@end table
 +
 +
  @node Other Image Types
  @subsection Other Image Types
  @cindex PBM
@@@ -4652,16 -4614,14 +4653,14 @@@ If @var{no-error} is non-@code{nil} an
  found, don't signal an error.  Instead, return a list of directories as
  before, except that @code{nil} appears in place of the image directory.
  
- Here is an example that uses a common idiom to provide compatibility
- with versions of Emacs that lack the variable @code{image-load-path}:
+ Here is an example of using @code{image-load-path-for-library}:
  
  @example
  (defvar image-load-path) ; shush compiler
  (let* ((load-path (image-load-path-for-library
-                         "mh-e" "mh-logo.xpm"))
+                     "mh-e" "mh-logo.xpm"))
         (image-load-path (cons (car load-path)
-                               (when (boundp 'image-load-path)
-                                 image-load-path))))
+                               image-load-path)))
    (mh-tool-bar-folder-buttons-init))
  @end example
  @end defun
@@@ -4775,35 -4735,29 +4774,35 @@@ cache, it can always be displayed, eve
  efficiently.  When Emacs displays an image, it searches the image
  cache for an existing image specification @code{equal} to the desired
  specification.  If a match is found, the image is displayed from the
 -cache; otherwise, Emacs loads the image normally.
 -
 -  Occasionally, you may need to tell Emacs to refresh the images
 -associated with a given image specification.  For example, suppose you
 -display an image using a specification that contains a @code{:file}
 -property.  The image is automatically cached, and subsequent displays
 -of that image, with the same image specification, will use the image
 -cache.  If the image file changes in the meantime, Emacs would be
 -displaying the old version of the image.  In such a situation, you can
 -``refresh'' the image by calling @code{image-refresh}.
 -
 -  In Emacs' current implementation, each graphical terminal possesses
 -an image cache, which is shared by all the frames on that terminal
 +cache.  Otherwise, Emacs loads the image normally.
 +
 +@defun image-flush spec &optional frame
 +This function removes the image with specification @var{spec} from the
 +image cache of frame @var{frame}.  Image specifications are compared
 +using @code{equal}.  If @var{frame} is @code{nil}, it defaults to the
 +selected frame.  If @var{frame} is @code{t}, the image is flushed on
 +all existing frames.
 +
 +In Emacs' current implementation, each graphical terminal possesses an
 +image cache, which is shared by all the frames on that terminal
  (@pxref{Multiple Terminals}).  Thus, refreshing an image in one frame
  also refreshes it in all other frames on the same terminal.
 -
 -@defun image-refresh spec &optional frame
 -This function refreshes any images with image specifications
 -@code{equal} to @var{spec} on frame @var{frame}.  If @var{frame} is
 -@code{nil}, it defaults to the selected frame.  If @var{frame} is
 -@code{t}, the refresh is applied to all existing frames.
  @end defun
  
 +  One use for @code{image-flush} is to tell Emacs about a change in an
 +image file.  If an image specification contains a @code{:file}
 +property, the image is cached based on the file's contents when the
 +image is first displayed.  Even if the file subsequently changes,
 +Emacs continues displaying the old version of the image.  Calling
 +@code{image-flush} flushes the image from the cache, forcing Emacs to
 +re-read the file the next time it needs to display that image.
 +
 +  Another use for @code{image-flush} is for memory conservation.  If
 +your Lisp program creates a large number of temporary images over a
 +period much shorter than @code{image-cache-eviction-delay} (see
 +below), you can opt to flush unused images yourself, instead of
 +waiting for Emacs to do it automatically.
 +
  @defun clear-image-cache &optional filter
  This function clears an image cache, removing all the images stored in
  it.  If @var{filter} is omitted or @code{nil}, it clears the cache for
@@@ -4819,12 -4773,9 +4818,12 @@@ period of time, Emacs removes it from t
  associated memory.
  
  @defvar image-cache-eviction-delay
 -This variable specifies the number of seconds an image can remain in the
 -cache without being displayed.  When an image is not displayed for this
 -length of time, Emacs removes it from the image cache.
 +This variable specifies the number of seconds an image can remain in
 +the cache without being displayed.  When an image is not displayed for
 +this length of time, Emacs removes it from the image cache.
 +
 +Under some circumstances, if the number of images in the cache grows
 +too large, the actual eviction delay may be shorter than this.
  
  If the value is @code{nil}, Emacs does not remove images from the cache
  except when you explicitly clear it.  This mode can be useful for
@@@ -5201,7 -5152,7 +5200,7 @@@ element value into the current buffer
    Typically, you define an ewoc with @code{ewoc-create}, and then pass
  the resulting ewoc structure to other functions in the Ewoc package to
  build nodes within it, and display it in the buffer.  Once it is
 -displayed in the buffer, other functions determine the correspondance
 +displayed in the buffer, other functions determine the correspondence
  between buffer positions and nodes, move point from one node's textual
  representation to another, and so forth.  @xref{Abstract Display
  Functions}.
@@@ -5399,8 -5350,10 +5398,10 @@@ value) in various ways
                          (aref colorcomp-data 2)))
            (samp " (sample text) "))
        (insert "Color\t: "
-               (propertize samp 'face `(foreground-color . ,cstr))
-               (propertize samp 'face `(background-color . ,cstr))
+               (propertize samp 'face
+                           `(foreground-color . ,cstr))
+               (propertize samp 'face
+                           `(background-color . ,cstr))
                "\n"))))
  
  (defun colorcomp (color)
@@@ -5584,9 -5537,9 +5585,9 @@@ digit characters representing the chara
  table can specify a glyph to use instead of @samp{\}.)
  
  @item
 -Multibyte character codes above 256 are displayed as themselves, or as a
 -question mark or empty box if the terminal cannot display that
 -character.
 +Multibyte character codes above 256 are displayed as themselves, or as
 +a question mark or a hex code or an empty box if the terminal cannot
 +display that character.
  @end itemize
  
    The usual display conventions apply even when there is a display
diff --combined doc/lispref/elisp.texi
index 259bb3cf86e2ca4474d56a11ba8e1851014c3ccc,b140a1343dc6163cfda7500c7d6c13f124870415..264d63511bc6001b24cb8188fe86ff9e6ded9eea
@@@ -8,13 -8,13 +8,13 @@@
  @c Please remember to update the edition number in README as well.
  @c And also the copies in vol1.texi and vol2.texi.
  @set VERSION  3.0
 -@set EMACSVER 23.3.50
 +@include emacsver.texi
  @set DATE July 2009
  
  @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
  @c onto the distribution in the full, 8.5 x 11" size.
- @c set smallbook
+ @c @smallbook
  
  @ifset smallbook
  @smallbook
@@@ -44,7 -44,8 +44,7 @@@
  This is edition @value{VERSION} of the GNU Emacs Lisp Reference Manual,@*
  corresponding to Emacs version @value{EMACSVER}.
  
 -Copyright @copyright{} 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1998,
 -1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software
 +Copyright @copyright{} 1990-1996, 1998-2011  Free Software
  Foundation, Inc.
  
  @quotation
@@@ -62,8 -63,6 +62,8 @@@ developing GNU and promoting software f
  @end quotation
  @end copying
  
 +@documentencoding ISO-8859-1
 +
  @dircategory GNU Emacs Lisp
  @direntry
  * Elisp: (elisp).       The Emacs Lisp Reference Manual.
@@@ -160,8 -159,6 +160,8 @@@ Cover art by Etienne Suvasa
  * System Interface::        Getting the user id, system type, environment
                                variables, and other such things.
  
 +* Packaging::               Preparing Lisp code for distribution.
 +
  Appendices
  
  * Antinews::                Info for users downgrading to Emacs 22.
@@@ -1396,13 -1393,6 +1396,13 @@@ Operating System Interfac
  * Session Management::      Saving and restoring state with
                                X Session Management.
  
 +Preparing Lisp code for distribution
 +
 +* Packaging Basics::        The basic concepts of Emacs Lisp packages.
 +* Simple Packages::         How to package a single .el file.
 +* Multi-file Packages::     How to package multiple files.
 +* Package Archives::        Maintaining package archives.
 +
  Starting Up Emacs
  
  * Startup Summary::         Sequence of actions Emacs performs at startup.
@@@ -1499,8 -1489,6 +1499,8 @@@ Object Internal
  @include display.texi
  @include os.texi
  
 +@include package.texi
 +
  @c MOVE to Emacs Manual:  include misc-modes.texi
  
  @c appendices
  
  \f
  These words prevent "local variables" above from confusing Emacs.
 -
 -@ignore
 -   arch-tag: f7e9a219-a0e1-4776-b631-08eaa1d49b34
 -@end ignore
diff --combined doc/lispref/help.texi
index e287e6fbad4d0b51d6031477c7a56dbef058c27a,f1db33582ffdb7fee6a35822f3990572cda2c4b4..63fc06c929ba20e297022a7e7fbacb1bb5530fee
@@@ -1,7 -1,7 +1,7 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
 +@c   Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/help
  @node Documentation, Files, Modes, Top
@@@ -106,6 -106,12 +106,6 @@@ documentation string.  The functions @c
  documentation string from the appropriate file; this is transparent to
  the user.
  
 -@c Wordy to prevent overfull hbox.  --rjc 15mar92
 -  The @file{emacs/lib-src} directory contains two utilities that you can
 -use to print nice-looking hardcopy for the file
 -@file{emacs/etc/DOC-@var{version}}.  These are @file{sorted-doc} and
 -@file{digest-doc}.
 -
  @node Accessing Documentation
  @section Access to Documentation Strings
  
@@@ -138,9 -144,9 +138,9 @@@ unless @var{verbatim} is non-@code{nil}
  @end defun
  
  @defun documentation function &optional verbatim
- This function returns the documentation string of @var{function}.
- @code{documentation} handles macros, named keyboard macros, and
special forms, as well as ordinary functions.
+ This function returns the documentation string of @var{function}.  It
+ handles macros, named keyboard macros, and special forms, as well as
+ ordinary functions.
  
  If @var{function} is a symbol, this function first looks for the
  @code{function-documentation} property of that symbol; if that has a
@@@ -695,3 -701,6 +695,3 @@@ echo area at first, and display the lon
  if the user types the help character again.
  @end defopt
  
 -@ignore
 -   arch-tag: ba36b4c2-e60f-49e2-bc25-61158fdcd815
 -@end ignore
diff --combined doc/lispref/keymaps.texi
index bf3c18ca6829642a08e7572ff1ed7bff0144a371,b1f02d6b26e7ea44c0708ca9d1af254c1093278e..d55cb29977155580e53ca590c9037c3f48ea3d2f
@@@ -1,6 -1,8 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1998, 1999, 2000, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 -@c   Free Software Foundation, Inc.
 +@c Copyright (C) 1990-1994, 1998-2011  Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/keymaps
  @node Keymaps, Modes, Command Loop, Top
@@@ -686,7 -688,7 +686,7 @@@ bindings, as in @code{lookup-key} (@pxr
  
  When commands are remapped (@pxref{Remapping Commands}),
  @code{key-binding} normally processes command remappings so as to
 -returns the remapped command that will actually be executed.  However,
 +return the remapped command that will actually be executed.  However,
  if @var{no-remap} is non-@code{nil}, @code{key-binding} ignores
  remappings and returns the binding directly specified for @var{key}.
  
@@@ -718,17 -720,18 +718,18 @@@ pseudo-Lisp description of the order an
  them:
  
  @lisp
- (or (if overriding-terminal-local-map
-         (@var{find-in} overriding-terminal-local-map)
-       (if overriding-local-map
-           (@var{find-in} overriding-local-map)
-         (or (@var{find-in} (get-char-property (point) 'keymap))
-             (@var{find-in-any} emulation-mode-map-alists)
-             (@var{find-in-any} minor-mode-overriding-map-alist)
-             (@var{find-in-any} minor-mode-map-alist)
-             (if (get-text-property (point) 'local-map)
-                 (@var{find-in} (get-char-property (point) 'local-map))
-               (@var{find-in} (current-local-map))))))
+ (or (cond
+      (overriding-terminal-local-map
+       (@var{find-in} overriding-terminal-local-map))
+      (overriding-local-map
+       (@var{find-in} overriding-local-map))
+      (or (@var{find-in} (get-char-property (point) 'keymap))
+        (@var{find-in-any} emulation-mode-map-alists)
+        (@var{find-in-any} minor-mode-overriding-map-alist)
+        (@var{find-in-any} minor-mode-map-alist)
+        (if (get-text-property (point) 'local-map)
+            (@var{find-in} (get-char-property (point) 'local-map))
+          (@var{find-in} (current-local-map)))))
      (@var{find-in} (current-global-map)))
  @end lisp
  
@@@ -1239,7 -1242,7 +1240,7 @@@ local map, that usually affects all buf
  The @code{global-set-key} and @code{local-set-key} functions are
  convenient interfaces for these operations (@pxref{Key Binding
  Commands}).  You can also use @code{define-key}, a more general
 -function; then you must specify explicitly the map to change.
 +function; then you must explicitly specify the map to change.
  
    When choosing the key sequences for Lisp programs to rebind, please
  follow the Emacs conventions for use of various keys (@pxref{Key
@@@ -1468,33 -1471,33 +1469,33 @@@ Dired mode is set up
  @section Remapping Commands
  @cindex remapping commands
  
 -  A special kind of key binding, using a special ``key sequence''
 -which includes a command name, has the effect of @dfn{remapping} that
 -command into another.  Here's how it works.  You make a key binding
 -for a key sequence that starts with the dummy event @code{remap},
 -followed by the command name you want to remap.  Specify the remapped
 -definition as the definition in this binding.  The remapped definition
 -is usually a command name, but it can be any valid definition for
 -a key binding.
 +  A special kind of key binding can be used to @dfn{remap} one command
 +to another, without having to refer to the key sequence(s) bound to
 +the original command.  To use this feature, make a key binding for a
 +key sequence that starts with the dummy event @code{remap}, followed
 +by the command name you want to remap; for the binding, specify the
 +new definition (usually a command name, but possibly any other valid
 +definition for a key binding).
  
 -  Here's an example.  Suppose that My mode uses special commands
 -@code{my-kill-line} and @code{my-kill-word}, which should be invoked
 -instead of @code{kill-line} and @code{kill-word}.  It can establish
 -this by making these two command-remapping bindings in its keymap:
 +  For example, suppose My mode provides a special command
 +@code{my-kill-line}, which should be invoked instead of
 +@code{kill-line}.  To establish this, its mode keymap should contain
 +the following remapping:
  
  @smallexample
  (define-key my-mode-map [remap kill-line] 'my-kill-line)
 -(define-key my-mode-map [remap kill-word] 'my-kill-word)
  @end smallexample
  
 -Whenever @code{my-mode-map} is an active keymap, if the user types
 -@kbd{C-k}, Emacs will find the standard global binding of
 -@code{kill-line} (assuming nobody has changed it).  But
 -@code{my-mode-map} remaps @code{kill-line} to @code{my-kill-line},
 -so instead of running @code{kill-line}, Emacs runs
 -@code{my-kill-line}.
 +@noindent
 +Then, whenever @code{my-mode-map} is active, if the user types
 +@kbd{C-k} (the default global key sequence for @code{kill-line}) Emacs
 +will instead run @code{my-kill-line}.
  
 -Remapping only works through a single level.  In other words,
 +  Note that remapping only takes place through active keymaps; for
 +example, putting a remapping in a prefix keymap like @code{ctl-x-map}
 +typically has no effect, as such keymaps are not themselves active.
 +In addition, remapping only works through a single level; in the
 +following example,
  
  @smallexample
  (define-key my-mode-map [remap kill-line] 'my-kill-line)
  @end smallexample
  
  @noindent
 -does not have the effect of remapping @code{kill-line} into
 -@code{my-other-kill-line}.  If an ordinary key binding specifies
 -@code{kill-line}, this keymap will remap it to @code{my-kill-line};
 -if an ordinary binding specifies @code{my-kill-line}, this keymap will
 -remap it to @code{my-other-kill-line}.
 +@code{kill-line} is @emph{not} remapped to @code{my-other-kill-line}.
 +Instead, if an ordinary key binding specifies @code{kill-line}, it is
 +remapped to @code{my-kill-line}; if an ordinary binding specifies
 +@code{my-kill-line}, it is remapped to @code{my-other-kill-line}.
  
  To undo the remapping of a command, remap it to @code{nil}; e.g.
  
@@@ -2072,6 -2076,21 +2073,6 @@@ look at a menu.  This is because the X 
  of menus in advance.  To force recalculation of the menu bar, call
  @code{force-mode-line-update} (@pxref{Mode Line Format}).
  
 -  You've probably noticed that menu items show the equivalent keyboard key
 -sequence (if any) to invoke the same command.  To save time on
 -recalculation, menu display caches this information in a sublist in the
 -binding, like this:
 -
 -@c This line is not too long--rms.
 -@example
 -(@var{item-string} @r{[}@var{help}@r{]} (@var{key-binding-data}) . @var{real-binding})
 -@end example
 -
 -@noindent
 -Don't put these sublists in the menu item yourself; menu display
 -calculates them automatically.  Don't mention keyboard equivalents in
 -the item strings themselves, since that is redundant.
 -
  @node Extended Menu Items
  @subsubsection Extended Menu Items
  @kindex menu-item
@@@ -2105,6 -2124,14 +2106,6 @@@ string.  Thus, the string need not be 
  @var{item-property-list}, has the form of a property list which contains
  other information.
  
 -  When an equivalent keyboard key binding is cached, the extended menu
 -item binding looks like this:
 -
 -@example
 -(menu-item @var{item-name} @var{real-binding} (@var{key-binding-data})
 -    . @var{item-property-list})
 -@end example
 -
    Here is a table of the properties that are supported:
  
  @table @code
@@@ -2635,8 -2662,8 +2636,8 @@@ using an indirection through @code{tool
  By default, the global map binds @code{[tool-bar]} as follows:
  @example
  (global-set-key [tool-bar]
-                 '(menu-item "tool bar" ignore
-                             :filter (lambda (ignore) tool-bar-map)))
+   '(menu-item "tool bar" ignore
+               :filter (lambda (ignore) tool-bar-map)))
  @end example
  @noindent
  Thus the tool bar map is derived dynamically from the value of variable
@@@ -2797,3 -2824,7 +2798,3 @@@ menu of Shell mode, after the item @cod
    [work] '("Work" . work-command) 'break)
  @end example
  @end defun
 -
 -@ignore
 -   arch-tag: cfb87287-9364-4e46-9e93-6c2f7f6ae794
 -@end ignore
diff --combined doc/lispref/lists.texi
index d27c609dc83b278daeaf7eb5d5d1cc8636af577a,b45277acfb3e59a0665453156b3d9fc91a0f61fa..064be89632f47bf872770977ecc6c49099362cf0
@@@ -1,6 -1,7 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +@c Copyright (C) 1990-1995, 1998-1999, 2001-2011  Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/lists
  @node Lists, Sequences Arrays Vectors, Strings and Characters, Top
@@@ -1266,9 -1267,9 +1266,9 @@@ functions for sets include @code{memq} 
  @cindex CL note---lack @code{union}, @code{intersection}
  @quotation
  @b{Common Lisp note:} Common Lisp has functions @code{union} (which
 -avoids duplicate elements) and @code{intersection} for set operations,
 -but GNU Emacs Lisp does not have them.  You can write them in Lisp if
 -you wish.
 +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}.
  @end quotation
  
  @defun memq object list
@@@ -1355,10 -1356,10 +1355,10 @@@ and the @code{(4)} in the @code{sample-
  (delq '(4) sample-list)
       @result{} (a c (4))
  @end group
+ @end example
  
  If you want to delete elements that are @code{equal} to a given value,
  use @code{delete} (see below).
- @end example
  
  @defun remq object list
  This function returns a copy of @var{list}, with all elements removed
@@@ -1887,3 -1888,7 +1887,3 @@@ use the ring as a first-in-first-out qu
          (ring-remove fifo)))
       @result{} (0 t one t "two")
  @end lisp
 -
 -@ignore
 -   arch-tag: 31fb8a4e-4aa8-4a74-a206-aa00451394d4
 -@end ignore
diff --combined doc/lispref/minibuf.texi
index 5336fef48add485b5b4f5ffaffd7fad74056cc8c,b2ffc5fede72a7f9cd1b4f918c6346e86c9362bf..aa22e6c92ff86afe5ffee923a187bfe89d12862e
@@@ -1,6 -1,7 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001, 2002,
 -@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
  @c   Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/minibuf
@@@ -433,17 -434,18 +433,17 @@@ expression, thus moving point forward o
  @cindex minibuffer history
  @cindex history list
  
 -  A @dfn{minibuffer history list} records previous minibuffer inputs so
 -the user can reuse them conveniently.  A history list is actually a
 -symbol, not a list; it is a variable whose value is a list of strings
 -(previous inputs), most recent first.
 +  A @dfn{minibuffer history list} records previous minibuffer inputs
 +so the user can reuse them conveniently.  It is a variable whose value
 +is a list of strings (previous inputs), most recent first.
  
 -  There are many separate history lists, used for different kinds of
 -inputs.  It's the Lisp programmer's job to specify the right history
 -list for each use of the minibuffer.
 +  There are many separate minibuffer history lists, used for different
 +kinds of inputs.  It's the Lisp programmer's job to specify the right
 +history list for each use of the minibuffer.
  
 -  You specify the history list with the optional @var{hist} argument
 -to either @code{read-from-minibuffer} or @code{completing-read}.  Here
 -are the possible values for it:
 +  You specify a minibuffer history list with the optional @var{hist}
 +argument to @code{read-from-minibuffer} or @code{completing-read}.
 +Here are the possible values for it:
  
  @table @asis
  @item @var{variable}
@@@ -837,12 -839,13 +837,13 @@@ variable as ``risky'' with a non-@code{
  @code{risky-local-variable} property.  @xref{File Local Variables}.
  
  @defvar completion-ignore-case
- If the value of this variable is non-@code{nil}, Emacs does not
- consider case significant in completion.  Note, however, that this
- variable is overridden by @code{read-file-name-completion-ignore-case}
- within @code{read-file-name} (@pxref{Reading File Names}), and by
- @code{read-buffer-completion-ignore-case} within @code{read-buffer}
- (@pxref{High-Level Completion}).
+ If the value of this variable is non-@code{nil}, case is not
+ considered significant in completion.  Within @code{read-file-name},
+ this variable is overridden by
+ @code{read-file-name-completion-ignore-case} (@pxref{Reading File
+ Names}); within @code{read-buffer}, it is overridden by
+ @code{read-buffer-completion-ignore-case} (@pxref{High-Level
+ Completion}).
  @end defvar
  
  @defvar completion-regexp-list
@@@ -1383,19 -1386,17 +1384,19 @@@ Files, emacs, The GNU Emacs Manual}).  
  graphical file dialog is platform-dependent.  Here, we simply document
  the behavior when using the minibuffer.
  
 -The optional argument @var{require-match} has the same meaning as in
 -@code{completing-read}.  @xref{Minibuffer Completion}.
 +@code{read-file-name} does not automatically expand the returned file
 +name.  You must call @code{expand-file-name} yourself if an absolute
 +file name is required.
  
 -@code{read-file-name} uses
 -@code{minibuffer-local-filename-completion-map} as the keymap if
 -@var{require-match} is @code{nil}, and uses
 -@code{minibuffer-local-filename-must-match-map} if @var{require-match}
 -is non-@code{nil}.  @xref{Completion Commands}.
 +The optional argument @var{require-match} has the same meaning as in
 +@code{completing-read}.  @xref{Minibuffer Completion}.  If
 +@var{require-match} is @code{nil}, the local keymap in the minibuffer
 +is @code{minibuffer-local-filename-completion-map}; otherwise, it is
 +@code{minibuffer-local-filename-must-match-map}.  @xref{Completion
 +Commands}.
  
  The argument @var{directory} specifies the directory to use for
 -completion of relative file names.  It should be an absolute directory
 +completing relative file names.  It should be an absolute directory
  name.  If @code{insert-default-directory} is non-@code{nil},
  @var{directory} is also inserted in the minibuffer as initial input.
  It defaults to the current buffer's value of @code{default-directory}.
@@@ -1443,7 -1444,11 +1444,7 @@@ argument that decides which file names 
  possibilities.  A file name is an acceptable value if @var{predicate}
  returns non-@code{nil} for it.
  
 -@code{read-file-name} does not automatically expand file names.  You
 -must call @code{expand-file-name} yourself if an absolute file name is
 -required.
 -
 -Here is an example:
 +Here is an example of using @code{read-file-name}:
  
  @example
  @group
@@@ -1689,7 -1694,7 +1690,7 @@@ match for some possibility; @code{nil} 
  @item
  @code{(boundaries . SUFFIX)} specifies @code{completion-boundaries}.
  The function should return a value of the form @code{(boundaries
 -START . END)} where START is the position of the beginning boundary in
 +START . END)} where START is the position of the beginning boundary
  in the string to complete, and END is the position of the end boundary
  in SUFFIX.
  @end itemize
@@@ -2190,3 -2195,7 +2191,3 @@@ arrives, whichever comes first.  If @va
  actual message is obtained by passing @var{string} and @var{args}
  through @code{format}.  @xref{Formatting Strings}.
  @end defun
 -
 -@ignore
 -   arch-tag: bba7f945-9078-477f-a2ce-18818a6e1218
 -@end ignore
diff --combined doc/lispref/modes.texi
index 63ecf59e5383c6c40fe3c675cb8856d545359274,3f3eb2cd1f6133758c1c900d1f9414978fbdff00..562cc76c3f0884f7547e69bd8d922bf7f2ff0fbe
@@@ -1,6 -1,7 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +@c Copyright (C) 1990-1995, 1998-1999, 2001-2011  Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/modes
  @node Modes, Documentation, Keymaps, Top
@@@ -414,31 -415,6 +414,31 @@@ The mode should specify how to do highl
  setting up a buffer-local value for the variable
  @code{font-lock-defaults} (@pxref{Font Lock Mode}).
  
 +@item
 +Each face that the mode defines should, if possible, inherit from an
 +existing Emacs face.  This reduces the chance of conflicting with a
 +user's face customizations.  Useful faces include:
 +
 +@table @asis
 +@item @code{highlight}
 +for stretches of text that should temporarily stand out.
 +
 +@item @code{match}
 +for text matching a search command.
 +
 +@item @code{link} and @code{link-visited}
 +for clickable text buttons that send the user to a different buffer or
 +``location''.
 +
 +@item @code{button}
 +for clickable text buttons that perform other actions.
 +
 +@item @asis{Font Lock faces}
 +for other kinds of syntactic highlighting, if highlighting is not
 +handled by Font Lock mode or some Font Lock faces are not in use.
 +@xref{Faces for Font Lock}, for how to assign Font Lock faces.
 +@end table
 +
  @item
  The mode should specify how Imenu should find the definitions or
  sections of a buffer, by setting up a buffer-local value for the
@@@ -583,9 -559,12 +583,9 @@@ If you run @code{normal-mode} interacti
  @var{find-file} is normally @code{nil}.  In this case,
  @code{normal-mode} unconditionally processes any file local variables.
  
 -If @code{normal-mode} processes the local variables list and this list
 -specifies a major mode, that mode overrides any mode chosen by
 -@code{set-auto-mode}.  If neither @code{set-auto-mode} nor
 -@code{hack-local-variables} specify a major mode, the buffer stays in
 -the major mode determined by the default value of @code{major-mode}
 -(see below).
 +The function calls @code{set-auto-mode} to choose a major mode.  If this
 +does not specify a mode, the buffer stays in the major mode determined
 +by the default value of @code{major-mode} (see below).
  
  @cindex file mode specification error
  @code{normal-mode} uses @code{condition-case} around the call to the
@@@ -597,15 -576,15 +597,15 @@@ mode specification error},  followed b
  @cindex visited file mode
    This function selects the major mode that is appropriate for the
  current buffer.  It bases its decision (in order of precedence) on
 -the @w{@samp{-*-}} line, on the @w{@samp{#!}} line (using
 +the @w{@samp{-*-}} line, on any @samp{mode:} local variable near the
 +end of a file, on the @w{@samp{#!}} line (using
  @code{interpreter-mode-alist}), on the text at the beginning of the
  buffer (using @code{magic-mode-alist}), and finally on the visited
  file name (using @code{auto-mode-alist}).  @xref{Choosing Modes, , How
 -Major Modes are Chosen, emacs, The GNU Emacs Manual}.  However, this
 -function does not look for the @samp{mode:} local variable near the
 -end of a file; the @code{hack-local-variables} function does that.
 +Major Modes are Chosen, emacs, The GNU Emacs Manual}. 
  If @code{enable-local-variables} is @code{nil}, @code{set-auto-mode}
 -does not check the @w{@samp{-*-}} line for a mode tag either.
 +does not check the @w{@samp{-*-}} line, or near the end of the file,
 +for any mode tag.
  
  If @var{keep-mode-if-same} is non-@code{nil}, this function does not
  call the mode command if the buffer is already in the proper major
@@@ -765,8 -744,7 +765,8 @@@ documentation of the major mode
    The recommended way to define a new major mode is to derive it
  from an existing one using @code{define-derived-mode}.  If there is no
  closely related mode, you can inherit from @code{text-mode},
 -@code{special-mode}, or in the worst case @code{fundamental-mode}.
 +@code{special-mode}, @code{prog-mode}, or in the worst case
 +@code{fundamental-mode}.
  
  @defmac define-derived-mode variant parent name docstring keyword-args@dots{} body@dots{}
  This macro defines @var{variant} as a major mode command, using
@@@ -1046,8 -1024,8 +1046,8 @@@ Turning on text-mode runs the hook `tex
  @end group
  @group
    ;; @r{These four lines are absent from the current version}
-   ;; @r{not because this is done some other way, but rather}
-   ;; @r{because nowadays Text mode uses the normal definition of paragraphs.}
+   ;; @r{not because this is done some other way, but because}
+   ;; @r{nowadays Text mode uses the normal definition of paragraphs.}
    (set (make-local-variable 'paragraph-start)
         (concat "[ \t]*$\\|" page-delimiter))
    (set (make-local-variable 'paragraph-separate) paragraph-start)
@@@ -1139,12 -1117,15 +1139,15 @@@ modes should understand the Lisp conven
  
  @smallexample
  @group
-   (set (make-local-variable 'paragraph-start) (concat page-delimiter "\\|$" ))
-   (set (make-local-variable 'paragraph-separate) paragraph-start)
+   (set (make-local-variable 'paragraph-start)
+        (concat page-delimiter "\\|$" ))
+   (set (make-local-variable 'paragraph-separate)
+        paragraph-start)
    @dots{}
  @end group
  @group
-   (set (make-local-variable 'comment-indent-function) 'lisp-comment-indent))
+   (set (make-local-variable 'comment-indent-function)
+        'lisp-comment-indent))
    @dots{}
  @end group
  @end smallexample
@@@ -2901,79 -2882,73 +2904,79 @@@ the normal Font Lock machinery, it shou
  @cindex faces for font lock
  @cindex font lock faces
  
 -  You can make Font Lock mode use any face, but several faces are
 -defined specifically for Font Lock mode.  Each of these symbols is both
 -a face name, and a variable whose default value is the symbol itself.
 -Thus, the default value of @code{font-lock-comment-face} is
 -@code{font-lock-comment-face}.  This means you can write
 -@code{font-lock-comment-face} in a context such as
 -@code{font-lock-keywords} where a face-name-valued expression is used.
 +  Font Lock mode can highlight using any face, but Emacs defines several
 +faces specifically for syntactic highlighting.  These @dfn{Font Lock
 +faces} are listed below.  They can also be used by major modes for
 +syntactic highlighting outside of Font Lock mode (@pxref{Major Mode
 +Conventions}).
  
 -@table @code
 -@item font-lock-comment-face
 -@vindex font-lock-comment-face
 -Used (typically) for comments.
 +  Each of these symbols is both a face name, and a variable whose
 +default value is the symbol itself.  Thus, the default value of
 +@code{font-lock-comment-face} is @code{font-lock-comment-face}.
  
 -@item font-lock-comment-delimiter-face
 -@vindex font-lock-comment-delimiter-face
 -Used (typically) for comments delimiters.
 -
 -@item font-lock-doc-face
 -@vindex font-lock-doc-face
 -Used (typically) for documentation strings in the code.
 -
 -@item font-lock-string-face
 -@vindex font-lock-string-face
 -Used (typically) for string constants.
 -
 -@item font-lock-keyword-face
 -@vindex font-lock-keyword-face
 -Used (typically) for keywords---names that have special syntactic
 -significance, like @code{for} and @code{if} in C.
 +  The faces are listed with descriptions of their typical usage, and in
 +order of greater to lesser ``prominence''.  If a mode's syntactic
 +categories do not fit well with the usage descriptions, the faces can be
 +assigned using the ordering as a guide.
  
 -@item font-lock-builtin-face
 -@vindex font-lock-builtin-face
 -Used (typically) for built-in function names.
 +@table @code
 +@item font-lock-warning-face
 +@vindex font-lock-warning-face
 +for a construct that is peculiar, or that greatly changes the meaning of
 +other text, like @samp{;;;###autoload} in Emacs Lisp and @samp{#error}
 +in C.
  
  @item font-lock-function-name-face
  @vindex font-lock-function-name-face
 -Used (typically) for the name of a function being defined or declared,
 -in a function definition or declaration.
 +for the name of a function being defined or declared.
  
  @item font-lock-variable-name-face
  @vindex font-lock-variable-name-face
 -Used (typically) for the name of a variable being defined or declared,
 -in a variable definition or declaration.
 +for the name of a variable being defined or declared.
 +
 +@item font-lock-keyword-face
 +@vindex font-lock-keyword-face
 +for a keyword with special syntactic significance, like @samp{for} and
 +@samp{if} in C.
 +
 +@item font-lock-comment-face
 +@vindex font-lock-comment-face
 +for comments.
 +
 +@item font-lock-comment-delimiter-face
 +@vindex font-lock-comment-delimiter-face
 +for comments delimiters, like @samp{/*} and @samp{*/} in C.  On most
 +terminals, this inherits from @code{font-lock-comment-face}.
  
  @item font-lock-type-face
  @vindex font-lock-type-face
 -Used (typically) for names of user-defined data types,
 -where they are defined and where they are used.
 +for the names of user-defined data types.
  
  @item font-lock-constant-face
  @vindex font-lock-constant-face
 -Used (typically) for constant names.
 +for the names of constants, like @samp{NULL} in C.
 +
 +@item font-lock-builtin-face
 +@vindex font-lock-builtin-face
 +for the names of built-in functions.
  
  @item font-lock-preprocessor-face
  @vindex font-lock-preprocessor-face
 -Used (typically) for preprocessor commands.
 +for preprocessor commands.  This inherits, by default, from
 +@code{font-lock-builtin-face}.
 +
 +@item font-lock-string-face
 +@vindex font-lock-string-face
 +for string constants.
 +
 +@item font-lock-doc-face
 +@vindex font-lock-doc-face
 +for documentation strings in the code.  This inherits, by default, from
 +@code{font-lock-string-face}.
  
  @item font-lock-negation-char-face
  @vindex font-lock-negation-char-face
 -Used (typically) for easily-overlooked negation characters.
 -
 -@item font-lock-warning-face
 -@vindex font-lock-warning-face
 -Used (typically) for constructs that are peculiar, or that greatly
 -change the meaning of other text.  For example, this is used for
 -@samp{;;;###autoload} cookies in Emacs Lisp, and for @code{#error}
 -directives in C.
 +for easily-overlooked negation characters.
  @end table
  
  @node Syntactic Font Lock
@@@ -3253,7 -3228,7 +3256,7 @@@ reasonably fast
  @end defvar
  
  @node Auto-Indentation
 -@section Auto-indention of code
 +@section Auto-indentation of code
  
  For programming languages, an important feature of a major mode is to
  provide automatic indentation.  This is controlled in Emacs by
@@@ -3370,9 -3345,8 +3373,9 @@@ transpose the two arguments of a @code{
  the precedence rules of the language.
  
  Calling `smie-setup' is also sufficient to make TAB indentation work in
 -the expected way, and provides some commands that you can bind in the
 -major mode keymap.
 +the expected way, extends @code{blink-matching-paren} to apply to
 +elements like @code{begin...end}, and provides some commands that you
 +can bind in the major mode keymap.
  
  @deffn Command smie-close-block
  This command closes the most recently opened (and not yet closed) block.
@@@ -3400,7 -3374,7 +3403,7 @@@ Such pairs of precedences are sufficien
  or right-associativity of infix operators, nesting of tokens like
  parentheses and many other cases.
  
 -@c Â¡Let's leave this undocumented to leave it more open for change!
 +@c Let's leave this undocumented to leave it more open for change!
  @c @defvar smie-grammar
  @c The value of this variable is an alist specifying the left and right
  @c precedence of each token.  It is meant to be initialized by using one of
@@@ -3619,7 -3593,9 +3622,9 @@@ natural to have a BNF grammar that look
    (inst ("IF" exp "THEN" insts "ELSE" insts "END")
          ("CASE" exp "OF" cases "END")
          ...)
-   (cases (cases "|" cases) (caselabel ":" insts) ("ELSE" insts))
+   (cases (cases "|" cases)
+          (caselabel ":" insts)
+          ("ELSE" insts))
    ...
  @end example
  
@@@ -3820,16 -3796,25 +3825,16 @@@ block)
  Here is an example of an indentation function:
  
  @example
 -;; For the `case' macro.
 -(eval-when-compile (require 'cl))
 -
  (defun sample-smie-rules (kind token)
 -  (case kind
 -    (:elem (case token
 -             (basic sample-indent-basic)))
 -    (:after
 -     (cond
 -      ((equal token ",") (smie-rule-separator kind))
 -      ((equal token ":=") sample-indent-basic)))
 -    (:before
 -     (cond
 -      ((equal token ",") (smie-rule-separator kind))
 -      ((member token '("begin" "(" "@{"))
 -       (if (smie-rule-hanging-p) (smie-rule-parent)))
 -      ((equal token "if")
 -       (and (not (smie-rule-bolp)) (smie-rule-prev-p "else")
 -            (smie-rule-parent)))))))
 +  (pcase (cons kind token)
 +    (`(:elem . basic) sample-indent-basic)
 +    (`(,_ . ",") (smie-rule-separator kind))
 +    (`(:after . ":=") sample-indent-basic)
 +    (`(:before . ,(or `"begin" `"(" `"@{")))
 +     (if (smie-rule-hanging-p) (smie-rule-parent)))
 +    (`(:before . "if")
 +     (and (not (smie-rule-bolp)) (smie-rule-prev-p "else")
 +          (smie-rule-parent)))))
  @end example
  
  @noindent
@@@ -3844,10 -3829,10 +3849,10 @@@ setting @code{smie-indent-basic}.  The 
  is discouraged.
  
  @item
 -The two (identical) rules for the token @code{","} make SMIE try to be
 -more clever when the comma separator is placed at the beginning of
 -lines.  It tries to outdent the separator so as to align the code after
 -the comma; for example:
 +The rule for the token @code{","} make SMIE try to be more clever when
 +the comma separator is placed at the beginning of lines.  It tries to
 +outdent the separator so as to align the code after the comma; for
 +example:
  
  @example
  x = longfunctionname (
@@@ -3894,9 -3879,10 +3899,10 @@@ and is always at the beginning of a lin
  rule:
  @example
  ((equal token "if")
-  (and (not (smie-rule-bolp)) (smie-rule-prev-p "else")
+  (and (not (smie-rule-bolp))
+       (smie-rule-prev-p "else")
        (save-excursion
-         (sample-smie-backward-token)  ;Jump before the "else".
+         (sample-smie-backward-token)
          (cons 'column (current-column)))))
  @end example
  
index 0328dae9e7b6b009142cf493344b44528c08f0f4,b66a5446e4547e1d61c0b6e0758f071b73531483..7733789992308f6fdf83feedea81df56b431bd5a
@@@ -1,6 -1,7 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1998, 1999, 2001, 2002, 2003, 2004,
 -@c   2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +@c Copyright (C) 1998-1999, 2001-2011  Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/characters
  @node Non-ASCII Characters, Searching and Matching, Text, Top
@@@ -101,6 -102,9 +101,6 @@@ it contains unibyte encoded text or bin
  
  You cannot set this variable directly; instead, use the function
  @code{set-buffer-multibyte} to change a buffer's representation.
 -
 -The @samp{--unibyte} command line option does its job by setting the
 -default value to @code{nil} early in startup.
  @end defvar
  
  @defun position-bytes position
@@@ -201,7 -205,7 +201,7 @@@ characters
  @defun byte-to-string byte
  @cindex byte to string
  This function returns a unibyte string containing a single byte of
 -character data, @var{character}.  It signals a error if
 +character data, @var{character}.  It signals an error if
  @var{character} is not an integer between 0 and 255.
  @end defun
  
@@@ -374,18 -378,17 +374,18 @@@ properties that Emacs knows about
  
  @table @code
  @item name
- This property corresponds to the Unicode @code{Name} property.  The
value is a string consisting of upper-case Latin letters A to Z,
digits, spaces, and hyphen @samp{-} characters.
+ Corresponds to the @code{Name} Unicode property.  The value is a
string consisting of upper-case Latin letters A to Z, digits, spaces,
+ and hyphen @samp{-} characters.
  
 +@cindex unicode general category
  @item general-category
- This property corresponds to the Unicode @code{General_Category}
- property.  The value is a symbol whose name is a 2-letter abbreviation
of the character's classification.
+ Corresponds to the @code{General_Category} Unicode property.  The
+ value is a symbol whose name is a 2-letter abbreviation of the
+ character's classification.
  
  @item canonical-combining-class
- Corresponds to the Unicode @code{Canonical_Combining_Class} property.
+ Corresponds to the @code{Canonical_Combining_Class} Unicode property.
  The value is an integer number.
  
  @item bidi-class
@@@ -410,7 -413,7 +410,7 @@@ Corresponds to the Unicode @code{Numeri
  characters whose @code{Numeric_Type} is @samp{Digit}.  The value is an
  integer number.
  
 -@item digit
 +@item digit-value
  Corresponds to the Unicode @code{Numeric_Value} property for
  characters whose @code{Numeric_Type} is @samp{Decimal}.  The value is
  an integer number.  Examples of such characters include compatibility
@@@ -466,16 -469,19 +466,19 @@@ This function returns the value of @var
       @result{} Nd
  @end group
  @group
- (get-char-code-property ?\u2084 'digit-value) ; subscript 4
+ ;; subscript 4
+ (get-char-code-property ?\u2084 'digit-value)
       @result{} 4
  @end group
  @group
- (get-char-code-property ?\u2155 'numeric-value) ; one fifth
+ ;; one fifth
+ (get-char-code-property ?\u2155 'numeric-value)
 -     @result{} 1/5
 +     @result{} 0.2
  @end group
  @group
- (get-char-code-property ?\u2163 'numeric-value) ; Roman IV
+ ;; Roman IV
+ (get-char-code-property ?\u2163 'numeric-value)
 -     @result{} \4
 +     @result{} 4
  @end group
  @end example
  @end defun
@@@ -505,18 -511,13 +508,18 @@@ This function stores @var{value} as th
  @var{propname} for the character @var{char}.
  @end defun
  
 -@defvar char-script-table
 +@defvar unicode-category-table
  The value of this variable is a char-table (@pxref{Char-Tables}) that
 -specifies, for each character, a symbol whose name is the script to
 -which the character belongs, according to the Unicode Standard
 -classification of the Unicode code space into script-specific blocks.
 -This char-table has a single extra slot whose value is the list of all
 -script symbols.
 +specifies, for each character, its Unicode @code{General_Category}
 +property as a symbol.
 +@end defvar
 +
 +@defvar char-script-table
 +The value of this variable is a char-table that specifies, for each
 +character, a symbol whose name is the script to which the character
 +belongs, according to the Unicode Standard classification of the
 +Unicode code space into script-specific blocks.  This char-table has a
 +single extra slot whose value is the list of all script symbols.
  @end defvar
  
  @defvar char-width-table
@@@ -1449,11 -1450,11 +1452,11 @@@ for decoding (in case @var{operation} d
  @var{encoding-system} is the coding system for encoding (in case
  @var{operation} does encoding).
  
- The argument @var{operation} is a symbol, one of @code{write-region},
- @code{start-process}, @code{call-process}, @code{call-process-region},
- @code{insert-file-contents}, or @code{open-network-stream}.  These are
- the names of the Emacs I/O primitives that can do character code and
- eol conversion.
+ The argument @var{operation} is a symbol; it should be one of
+ @code{write-region}, @code{start-process}, @code{call-process},
+ @code{call-process-region}, @code{insert-file-contents}, or
+ @code{open-network-stream}.  These are the names of the Emacs I/O
primitives that can do character code and eol conversion.
  
  The remaining arguments should be the same arguments that might be given
  to the corresponding I/O primitive.  Depending on the primitive, one
@@@ -1920,3 -1921,7 +1923,3 @@@ strings in the return value are decode
  @code{locale-coding-system}.  @xref{Locales,,, libc, The GNU Libc Manual},
  for more information about locales and locale items.
  @end defun
 -
 -@ignore
 -   arch-tag: be705bf8-941b-4c35-84fc-ad7d20ddb7cb
 -@end ignore
index ba9d8accd4a9a31501d8141092fdf46f805c8832,f3f68a79471ffb1cca772f87e3dee27442ccdbc2..1a1b63683ce1776e2891739c71ff8f3680ab09cc
@@@ -1,6 -1,7 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
  @c   Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/processes
@@@ -266,9 -267,10 +266,9 @@@ subprocess by @code{call-process-region
  system, much like text written into a file.  @xref{Coding Systems}.
  
  @defun call-process program &optional infile destination display &rest args
 -This function calls @var{program} in a separate process and waits for
 -it to finish.
 +This function calls @var{program} and waits for it to finish.
  
 -The standard input for the process comes from file @var{infile} if
 +The standard input for the new process comes from file @var{infile} if
  @var{infile} is not @code{nil}, and from the null device otherwise.
  The argument @var{destination} says where to put the process output.
  Here are the possibilities:
@@@ -299,9 -301,6 +299,9 @@@ function returns
  MS-DOS doesn't support asynchronous subprocesses, so this option doesn't
  work there.
  
 +@item @code{(:file @var{file-name})}
 +Send the output to the file name specified.
 +
  @item @code{(@var{real-destination} @var{error-destination})}
  Keep the standard output stream separate from the standard error stream;
  deal with the ordinary output as specified by @var{real-destination},
@@@ -490,10 -489,10 +490,10 @@@ inputinput@point{
  @end defun
  
  @defun call-process-shell-command command &optional infile destination display &rest args
 -This function executes the shell command @var{command} synchronously
 -in a separate process.  The final arguments @var{args} are additional
 -arguments to add at the end of @var{command}.  The other arguments
 -are handled as in @code{call-process}.
 +This function executes the shell command @var{command} synchronously.
 +The final arguments @var{args} are additional arguments to add at the
 +end of @var{command}.  The other arguments are handled as in
 +@code{call-process}.
  @end defun
  
  @defun process-file-shell-command command &optional infile destination display &rest args
@@@ -508,12 -507,12 +508,12 @@@ then returns the command's output as a 
  @end defun
  
  @defun process-lines program &rest args
 -This function runs @var{program} in a separate process, waits for it
 -to finish, and returns its output as a list of strings.  Each string
 -in the list holds a single line of text output by the program; the
 -end-of-line characters are stripped from each line.  The arguments
 -beyond @var{program}, @var{args}, are strings that specify
 -command-line arguments with which to run the program.
 +This function runs @var{program}, waits for it to finish, and returns
 +its output as a list of strings.  Each string in the list holds a
 +single line of text output by the program; the end-of-line characters
 +are stripped from each line.  The arguments beyond @var{program},
 +@var{args}, are strings that specify command-line arguments with which
 +to run the program.
  
  If @var{program} exits with a non-zero exit status, this function
  signals an error.
@@@ -876,9 -875,7 +876,9 @@@ terminated, the value is 0
  This function returns the terminal name that @var{process} is using for
  its communication with Emacs---or @code{nil} if it is using pipes
  instead of a terminal (see @code{process-connection-type} in
 -@ref{Asynchronous Processes}).
 +@ref{Asynchronous Processes}).  If @var{process} represents a program
 +running on a remote host, the terminal name used by that program on
 +the remote host is provided as process property @code{remote-tty}.
  @end defun
  
  @defun process-coding-system process
@@@ -1281,24 -1278,22 +1281,24 @@@ process's buffer, mimicking the action
  filter.  Such filter functions need to use @code{set-buffer} in order to
  be sure to insert in that buffer.  To avoid setting the current buffer
  semipermanently, these filter functions must save and restore the
 -current buffer.  They should also update the process marker, and in some
 -cases update the value of point.  Here is how to do these things:
 +current buffer.  They should also check whether the buffer is still
 +alive, update the process marker, and in some cases update the value
 +of point.  Here is how to do these things:
  
  @smallexample
  @group
  (defun ordinary-insertion-filter (proc string)
 -  (with-current-buffer (process-buffer proc)
 -    (let ((moving (= (point) (process-mark proc))))
 +  (when (buffer-live-p (process-buffer proc))
 +    (with-current-buffer (process-buffer proc)
 +      (let ((moving (= (point) (process-mark proc))))
  @end group
  @group
 -      (save-excursion
 -        ;; @r{Insert the text, advancing the process marker.}
 -        (goto-char (process-mark proc))
 -        (insert string)
 -        (set-marker (process-mark proc) (point)))
 -      (if moving (goto-char (process-mark proc))))))
 +        (save-excursion
 +          ;;  @r{Insert the text, advancing the process marker.}
 +          (goto-char (process-mark proc))
 +          (insert string)
 +          (set-marker (process-mark proc) (point)))
 +        (if moving (goto-char (process-mark proc)))))))
  @end group
  @end smallexample
  
@@@ -1325,6 -1320,12 +1325,6 @@@ expression searching or matching had t
  match data.  Now Emacs does this automatically for filter functions;
  they never need to do it explicitly.  @xref{Match Data}.
  
 -  A filter function that writes the output into the buffer of the
 -process should check whether the buffer is still alive.  If it tries to
 -insert into a dead buffer, it will get an error.  The expression
 -@code{(buffer-name (process-buffer @var{process}))} returns @code{nil}
 -if the buffer is dead.
 -
    The output to the function may come in chunks of any size.  A program
  that produces the same output twice in a row may send it as one batch of
  200 characters one time, and five batches of 40 characters the next.  If
@@@ -1794,9 -1795,9 +1794,9 @@@ nice values get scheduled more favorabl
  The number of threads in the process.
  
  @item start
- The time the process was started, in the @w{@code{(@var{high}
- @var{low} @var{microsec})}} format used by @code{current-time} and
- @code{file-attributes}.
+ The time when the process was started, in the same
+ @w{@code{(@var{high} @var{low} @var{microsec})}} format used by
+ @code{current-time} and @code{file-attributes}.
  
  @item etime
  The time elapsed since the process started, in the @w{@code{(@var{high}
@@@ -2482,25 -2483,17 +2482,17 @@@ Install @var{plist} as the initial plis
  @itemx :parity
  @itemx :stopbits
  @itemx :flowcontrol
- These arguments are handled by @code{serial-process-configure}, which
is called by @code{make-serial-process}.
+ These are handled by @code{serial-process-configure}, which is called
+ by @code{make-serial-process}.
  @end table
  
  The original argument list, possibly modified by later configuration,
  is available via the function @code{process-contact}.
  
Examples:
Here is an example:
  
  @example
  (make-serial-process :port "/dev/ttyS0" :speed 9600)
- (make-serial-process :port "COM1" :speed 115200 :stopbits 2)
- (make-serial-process :port "\\\\.\\COM13" :speed 1200
-                      :bytesize 7 :parity 'odd)
- (make-serial-process :port "/dev/tty.BlueConsole-SPP-1"
-                      :speed nil)
  @end example
  @end defun
  
@@@ -2560,19 -2553,9 +2552,9 @@@ flow control).  If @var{flowcontrol} i
  flow control.
  @end table
  
- @code{serial-process-configure} is called by @code{make-serial-process} for the
- initial configuration of the serial port.
- Examples:
- @example
- (serial-process-configure :process "/dev/ttyS0" :speed 1200)
- (serial-process-configure :buffer "COM1" :stopbits 1
-                           :parity 'odd :flowcontrol 'hw)
- (serial-process-configure :port "\\\\.\\COM13" :bytesize 7)
- @end example
+ @code{serial-process-configure} is called by
+ @code{make-serial-process} for the initial configuration of the serial
+ port.
  @end defun
  
  @node Byte Packing
@@@ -3019,3 -3002,7 +3001,3 @@@ Fetching data from this structure
  (bindat-get-field decoded 'item 1 'id)
       @result{} "BCDEFG"
  @end lisp
 -
 -@ignore
 -   arch-tag: ba9da253-e65f-4e7f-b727-08fba0a1df7a
 -@end ignore
diff --combined doc/lispref/strings.texi
index d062c215952bdb29a9c6eaf19b8afb9702fa68bb,87b9f4368fb4446fefc281319e600796349ee01e..05ac40e90c1988d7e4bbe4735bbb84b9d4a447e5
@@@ -1,6 -1,7 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
  @c   Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/strings
@@@ -828,12 -829,12 +828,12 @@@ is not truncated
  
  @example
  @group
- (format "The word `%7s' actually has %d letters in it."
+ (format "The word `%7s' has %d letters in it."
          "foo" (length "foo"))
-      @result{} "The word `    foo' actually has 3 letters in it."
- (format "The word `%7s' actually has %d letters in it."
+      @result{} "The word `    foo' has 3 letters in it."
+ (format "The word `%7s' has %d letters in it."
          "specification" (length "specification"))
-      @result{} "The word `specification' actually has 13 letters in it."
+      @result{} "The word `specification' has 13 letters in it."
  @end group
  @end example
  
@@@ -1141,3 -1142,7 +1141,3 @@@ This function makes @var{char} case-inv
  This command displays a description of the contents of the current
  buffer's case table.
  @end deffn
 -
 -@ignore
 -   arch-tag: 700b8e95-7aa5-4b52-9eb3-8f2e1ea152b4
 -@end ignore
diff --combined doc/lispref/text.texi
index 8205c5fa169582151d0b809fa34b9572a63658d1,f4dce6a1bc634b19412ef37c3bbee9b0f52d180d..6a3f53c55e2caade24303ae1cabd576e8253e81a
@@@ -1,6 -1,8 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 -@c   Free Software Foundation, Inc.
 +@c Copyright (C) 1990-1995, 1998-2011  Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/text
  @node Text, Non-ASCII Characters, Markers, Top
@@@ -57,7 -59,6 +57,7 @@@ the character after point
                         position stored in a register.
  * Base 64::          Conversion to or from base 64 encoding.
  * MD5 Checksum::     Compute the MD5 "message digest"/"checksum".
 +* Parsing HTML::     Parsing HTML and XML.
  * Atomic Changes::   Installing several buffer changes "atomically".
  * Change Hooks::     Supplying functions to be run when text is changed.
  @end menu
@@@ -1108,13 -1109,16 +1108,13 @@@ use @code{string=} to compare it with t
  @defvar interprogram-cut-function
  This variable provides a way of communicating killed text to other
  programs, when you are using a window system.  Its value should be
 -@code{nil} or a function of one required and one optional argument.
 +@code{nil} or a function of one required argument.
  
  If the value is a function, @code{kill-new} and @code{kill-append} call
 -it with the new first element of the kill ring as the first argument.
 -The second, optional, argument has the same meaning as the @var{push}
 -argument to @code{x-set-cut-buffer} (@pxref{Definition of
 -x-set-cut-buffer}) and only affects the second and later cut buffers.
 +it with the new first element of the kill ring as the argument.
  
  The normal use of this function is to set the window system's primary
 -selection (and first cut buffer) from the newly killed text.
 +selection from the newly killed text.
  @xref{Window System Selections}.
  @end defvar
  
@@@ -2806,9 -2810,9 +2806,9 @@@ construct each part with @code{properti
  @end smallexample
  @end defun
  
-   See also the function @code{buffer-substring-no-properties}
- (@pxref{Buffer Contents}) which copies text from the buffer
- but does not copy its properties.
+   @xref{Buffer Contents}, for the function
+ @code{buffer-substring-no-properties}, which copies text from the
+ buffer but does not copy its properties.
  
  @node Property Search
  @subsection Text Property Search Functions
@@@ -2992,13 -2996,6 +2992,6 @@@ face attribute name and @var{value} is 
  attribute.  With this feature, you do not need to create a face each
  time you want to specify a particular attribute for certain text.
  @xref{Face Attributes}.
- @item
- A cons cell with the form @code{(foreground-color . @var{color-name})}
- or @code{(background-color . @var{color-name})}.  These are old,
- deprecated equivalents for @code{(:foreground @var{color-name})} and
- @code{(:background @var{color-name})}.  Please convert code that uses
- them.
  @end itemize
  
  It works to use the latter two forms directly as the value
@@@ -3211,16 -3208,12 +3204,16 @@@ the @code{line-prefix} variable).  @xre
  @cindex hooks for changing a character
  @kindex modification-hooks @r{(text property)}
  If a character has the property @code{modification-hooks}, then its
 -value should be a list of functions; modifying that character calls all
 -of those functions.  Each function receives two arguments: the beginning
 -and end of the part of the buffer being modified.  Note that if a
 -particular modification hook function appears on several characters
 -being modified by a single primitive, you can't predict how many times
 -the function will be called.
 +value should be a list of functions; modifying that character calls
 +all of those functions before the actual modification.  Each function
 +receives two arguments: the beginning and end of the part of the
 +buffer being modified.  Note that if a particular modification hook
 +function appears on several characters being modified by a single
 +primitive, you can't predict how many times the function will
 +be called.
 +Furthermore, insertion will not modify any existing character, so this
 +hook will only be run when removing some characters, replacing them
 +with others, or changing their text-properties.
  
  If these functions modify the buffer, they should bind
  @code{inhibit-modification-hooks} to @code{t} around doing so, to
@@@ -3272,28 -3265,15 +3265,28 @@@ functions (which may be the same functi
  @code{point-left} functions are called first, followed by all the
  @code{point-entered} functions.
  
 -It is possible with @code{char-after} to examine characters at various
 +It is possible to use @code{char-after} to examine characters at various
  buffer positions without moving point to those positions.  Only an
  actual change in the value of point runs these hook functions.
  
 +The variable @code{inhibit-point-motion-hooks} can inhibit running the
 +@code{point-left} and @code{point-entered} hooks, see @ref{Inhibit
 +point motion hooks}.
 +
 +@item composition
 +@kindex composition @r{(text property)}
 +This text property is used to display a sequence of characters as a
 +single glyph composed from components.  But the value of the property
 +itself is completely internal to Emacs and should not be manipulated
 +directly by, for instance, @code{put-text-property}.
 +
 +@end table
 +
  @defvar inhibit-point-motion-hooks
 -When this variable is non-@code{nil}, @code{point-left} and
 -@code{point-entered} hooks are not run, and the @code{intangible}
 -property has no effect.  Do not set this variable globally; bind it with
 -@code{let}.
 +@anchor{Inhibit point motion hooks} When this variable is
 +non-@code{nil}, @code{point-left} and @code{point-entered} hooks are
 +not run, and the @code{intangible} property has no effect.  Do not set
 +this variable globally; bind it with @code{let}.
  @end defvar
  
  @defvar show-help-function
@@@ -3306,6 -3286,15 +3299,6 @@@ string to display.  Tooltip mode (@pxre
  Manual}) provides an example.
  @end defvar
  
 -@item composition
 -@kindex composition @r{(text property)}
 -This text property is used to display a sequence of characters as a
 -single glyph composed from components.  But the value of the property
 -itself is completely internal to Emacs and should not be manipulated
 -directly by, for instance, @code{put-text-property}.
 -
 -@end table
 -
  @node Format Properties
  @subsection Formatted Text Properties
  
@@@ -4096,62 -4085,11 +4089,62 @@@ using the specified or chosen coding sy
  coding instead.
  @end defun
  
 +@node Parsing HTML
 +@section Parsing HTML
 +@cindex parsing html
 +
 +@defun libxml-parse-html-region start end &optional base-url
 +This function provides HTML parsing via the @code{libxml2} library.
 +It parses ``real world'' HTML and tries to return a sensible parse tree
 +regardless.
 +
 +In addition to @var{start} and @var{end} (specifying the start and end
 +of the region to act on), it takes an optional parameter,
 +@var{base-url}, which is used to expand relative URLs in the document,
 +if any.
 +
 +Here's an example demonstrating the structure of the parsed data you
 +get out.  Given this HTML document:
 +
 +@example
 +<html><hEad></head><body width=101><div class=thing>Foo<div>Yes
 +@end example
 +
 +You get this parse tree:
 +
 +@example
 +(html
 + (head)
 + (body
 +  (:width . "101")
 +  (div
 +   (:class . "thing")
 +   (text . "Foo")
 +   (div
 +    (text . "Yes\n")))))
 +@end example
 +
 +It's a simple tree structure, where the @code{car} for each node is
 +the name of the node, and the @code{cdr} is the value, or the list of
 +values.
 +
 +Attributes are coded the same way as child nodes, but with @samp{:} as
 +the first character.
 +@end defun
 +
 +@cindex parsing xml
 +@defun libxml-parse-xml-region start end &optional base-url
 +
 +This is much the same as @code{libxml-parse-html-region} above, but
 +operates on XML instead of HTML, and is correspondingly stricter about
 +syntax.
 +@end defun
 +
  @node Atomic Changes
  @section Atomic Change Groups
  @cindex atomic changes
  
 -  In data base terminology, an @dfn{atomic} change is an indivisible
 +  In database terminology, an @dfn{atomic} change is an indivisible
  change---it can succeed entirely or it can fail entirely, but it
  cannot partly succeed.  A Lisp program can make a series of changes to
  one or several buffers as an @dfn{atomic change group}, meaning that
diff --combined doc/lispref/tips.texi
index e2bbcc11e6efa375483c99a87ad7638c05cd2f9d,9be6c061bf14ad32ce6e465677dbdca8bf94684a..be37eb2034ba61fe57af8e11600373656baeced1
@@@ -1,6 -1,7 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2001, 2002,
 -@c   2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +@c Copyright (C) 1990-1993, 1995, 1998-1999, 2001-2011
  @c   Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/tips
@@@ -203,6 -204,12 +203,6 @@@ defined as the first argument.  That wi
  definition automatically.  Avoid constructing the names in the macro
  itself, since that would confuse these tools.
  
 -@item
 -Please keep the names of your Emacs Lisp source files to 13 characters
 -or less.  This way, if the files are compiled, the compiled files' names
 -will be 14 characters or less, which is short enough to fit on all kinds
 -of Unix systems.
 -
  @item
  In some other systems there is a convention of choosing variable names
  that begin and end with @samp{*}.  We don't use that convention in Emacs
@@@ -249,7 -256,8 +249,8 @@@ file if you distribute copies.  Use a n
  ;; GNU General Public License for more details.
  
  ;; You should have received a copy of the GNU General Public License
- ;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
+ ;; along with this program.  If not, see
+ ;; <http://www.gnu.org/licenses/>.
  @end smallexample
  
  If you have signed papers to assign the copyright to the Foundation,
@@@ -1045,31 -1053,6 +1046,31 @@@ Please use that command to see a list o
  This field is important; it's how people will find your package when
  they're looking for things by topic area.  To separate the keywords, you
  can use spaces, commas, or both.
 +
 +@item Package-Version
 +If @samp{Version} is not suitable for use by the package manager, then
 +a package can define @samp{Package-Version}; it will be used instead.
 +This is handy if @samp{Version} is an RCS id or something else that
 +cannot be parsed by @code{version-to-list}.  @xref{Packaging Basics}.
 +
 +@item Package-Requires
 +If this exists, it names packages on which the current package depends
 +for proper operation.  @xref{Packaging Basics}.  This is used by the
 +package manager both at download time (to ensure that a complete set
 +of packages is downloaded) and at activation time (to ensure that a
 +package is activated if and only if all its dependencies have been).
 +
 +Its format is a list of lists.  The @code{car} of each sub-list is the
 +name of a package, as a symbol.  The @code{cadr} of each sub-list is
 +the minimum acceptable version number, as a string.  For instance:
 +
 +@smallexample
 +;; Package-Requires: ((gnus "1.0") (bubbles "2.7.2"))
 +@end smallexample
 +
 +The package code automatically defines a package named @samp{emacs}
 +with the version number of the currently running Emacs.  This can be
 +used to require a minimal version of Emacs for a package.
  @end table
  
    Just about every Lisp library ought to have the @samp{Author} and
@@@ -1108,3 -1091,7 +1109,3 @@@ This is the @dfn{footer line}; it appea
  Its purpose is to enable people to detect truncated versions of the file
  from the lack of a footer line.
  @end table
 -
 -@ignore
 -   arch-tag: 9ea911c2-6b1d-47dd-88b7-0a94e8b27c2e
 -@end ignore
diff --combined doc/lispref/windows.texi
index 93f2035eca62c5849a7532f804b2a984a1862dc0,ee9d1a8374e641209cf74354d9e2f71707421cef..2cf4a8152c779d3d4e69fc47ade15f3a2d5b6bbf
@@@ -1,6 -1,7 +1,6 @@@
  @c -*-texinfo-*-
  @c This is part of the GNU Emacs Lisp Reference Manual.
 -@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2001,
 -@c   2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +@c Copyright (C) 1990-1995, 1998-1999, 2001-2011
  @c   Free Software Foundation, Inc.
  @c See the file elisp.texi for copying conditions.
  @setfilename ../../info/windows
@@@ -826,8 -827,8 +826,8 @@@ This function updates the buffer list j
  unless @var{norecord} is non-@code{nil}.
  @end deffn
  
 -@deffn Command pop-to-buffer buffer-or-name &optional other-window norecord
 -This command makes @var{buffer-or-name} the current buffer and switches
 +@defun pop-to-buffer buffer-or-name &optional other-window norecord
 +This function makes @var{buffer-or-name} the current buffer and switches
  to it in some window, preferably not the window previously selected.
  The ``popped-to'' window becomes the selected window.  Its frame is
  given the X server's focus, if possible; see @ref{Input Focus}.  The
@@@ -866,7 -867,7 +866,7 @@@ All the variables that affect @code{dis
  
  This function updates the buffer list just like @code{switch-to-buffer}
  unless @var{norecord} is non-@code{nil}.
 -@end deffn
 +@end defun
  
  @deffn Command replace-buffer-in-windows &optional buffer-or-name
  This function replaces @var{buffer-or-name} in all windows displaying
@@@ -1462,10 -1463,10 +1462,10 @@@ to the current position of point in @va
  selected window.  If @var{position} is @code{t}, that means to check the
  last visible position in @var{window}.
  
- The @code{pos-visible-in-window-p} function considers only vertical
- scrolling.  If @var{position} is out of view only because @var{window}
- has been scrolled horizontally, @code{pos-visible-in-window-p} returns
non-@code{nil} anyway.  @xref{Horizontal Scrolling}.
+ This function considers only vertical scrolling.  If @var{position} is
+ out of view only because @var{window} has been scrolled horizontally,
+ @code{pos-visible-in-window-p} returns non-@code{nil} anyway.
+ @xref{Horizontal Scrolling}.
  
  If @var{position} is visible, @code{pos-visible-in-window-p} returns
  @code{t} if @var{partially} is @code{nil}; if @var{partially} is
@@@ -2606,3 -2607,7 +2606,3 @@@ frame selected
  Lock fontification function, which will be called whenever parts of a
  buffer are (re)fontified because a window was scrolled or its size
  changed.  @xref{Other Font Lock Variables}.
 -
 -@ignore
 -   arch-tag: 3f6c36e8-df49-4986-b757-417feed88be3
 -@end ignore