]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from emacs--rel--22
authorMiles Bader <miles@gnu.org>
Fri, 28 Dec 2007 22:26:14 +0000 (22:26 +0000)
committerMiles Bader <miles@gnu.org>
Fri, 28 Dec 2007 22:26:14 +0000 (22:26 +0000)
Revision: emacs@sv.gnu.org/emacs--devo--0--patch-966

32 files changed:
1  2 
admin/FOR-RELEASE
doc/emacs/ChangeLog
doc/emacs/files.texi
doc/emacs/search.texi
doc/emacs/text.texi
doc/lispref/ChangeLog
doc/lispref/customize.texi
doc/lispref/frames.texi
doc/misc/cc-mode.texi
etc/NEWS.22
leim/ChangeLog
lisp/ChangeLog
lisp/comint.el
lisp/emacs-lisp/find-func.el
lisp/faces.el
lisp/files.el
lisp/info.el
lisp/international/mule-cmds.el
lisp/menu-bar.el
lisp/progmodes/cc-vars.el
lisp/progmodes/compile.el
lisp/progmodes/grep.el
lisp/replace.el
lisp/simple.el
lisp/startup.el
lisp/textmodes/fill.el
src/ChangeLog
src/callint.c
src/macmenu.c
src/process.c
src/w32fns.c
src/xdisp.c

index f96da325b75142be78f63fc8a3ebbe28ba03cb56,57b439b6749e334753a06f298a6d2b4c67d4e59f..1d5cfc9ddf0af63d0f13aed2ee53ee9d31c47a2b
@@@ -55,62 -50,17 +55,64 @@@ http://lists.gnu.org/archive/html/bug-g
  
  * BUGS
  
 +** Document the changes introduced by multi-tty
 +http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg01639.html
 +http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg01602.html
 +
 +** Does deleting frames run Lisp code?  If so, can we get rid of that?
 +It is a dangerous design.
 +http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01330.html
 +
 +** Why were the calls to x_fully_uncatch_errors commented out in eval.c?
 +http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01987.html
 +
 +** grep et al should use font-lock to do highlighting, so that they respect font-lock-mode.
 +"can't turn off font-lock"
 +http://lists.gnu.org/archive/html/emacs-devel/2007-08/msg00548.html
 +
 +** mah@everybody.org, Sep 18: erc causes emacs to hang with multi-tty
 +http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01765.html
 +
 +** jbw@macs.hw.ac.uk, Sep 18: before-string property has no effect if display property is empty
 +http://lists.gnu.org/archive/html/bug-gnu-emacs/2007-09/msg00094.html
 +http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01816.html
 +
 +** sdl.web@gmail.com, Sep 24: TLS infinite loop.
 +http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg01720.html
 +
 +** herring@lanl.gov: find-func: can no longer find adviced subrs
 +This ought to work.
 +
 +** \\{...} produces duplicate entries
 +http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg00209.html
 +
 +** menu indications of key bindings for remapped commands
 +http://lists.gnu.org/archive/html/emacs-devel/2007-05/msg01339.html
 +
 +** rms: gnus-dired.el is a mistake.  Those features should not
 +be part of Gnus.  They should be moved to some other part of Emacs.
 +rsteib: Gnus dependencies in `gnus-dired.el' (and `mailcap.el') have been
 +minimized.  I don't know what is left to do here.
 +
 +** sdl.web@gmail.com, 30 Oct: ps-lpr-switches has no effect
 +
  ** Stephen.Berman@gmx.net: minibuffer and current-local-map
  
 -** bojohan+news@dd.chalmers.se, 19 Nov: appointment display during isearch replaces buffer contents
 -  with history element.
 +** timh@insightful.com, 9 Nov: X-coding-system incompatibility, and workaround
 +
 +** Get rid of old-style backquotes in cc-vars.el.
 +ttn has a patch:
 +http://lists.gnu.org/archive/html/emacs-devel/2007-10/msg02052.html
  
 -** eric@openbsd.org, 24 Nov: c-mode syntactic analysis regression in emacs-22.1
 +** Fix or document the shortcoming of easymenu and :suffix.
 +http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01857.html
  
 -** diff mode change for missing spaces in -u format.
 +** Fix problem with mode-name in SGML mode.
 +If mode-name stays non-string, add NEWS entry and doc fix.
 +http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg02048.html
  
+ ** pot@gnu.org, 17 Dec: strange From line maker rmail-reply loop
  * DOCUMENTATION
  
  ** Check the Emacs Tutorial.
index 9c4d874e13968b61fc6b3d30b8f312b1a4cf6acc,0000000000000000000000000000000000000000..e950d152a8071b4e7a9b06e26fa507f9925a1bef
mode 100644,000000..100644
--- /dev/null
@@@ -1,5093 -1,0 +1,5114 @@@
++2007-12-27  Richard Stallman  <rms@gnu.org>
++
++      * text.texi (Formatted Text): Improve menu tag.
++      (Editing Format Info): In Info, add duplicate menu of nodes
++      about the submenus.
++      (Format Faces): Say where Faces menu is found.  Mention Other.
++      (Format Colors): Say where these submenus are found.
++      (Format Indentation, Format Justification): Likewise.
++      (Format Properties): Likewise.
++
++2007-12-22  Richard Stallman  <rms@gnu.org>
++
++      * search.texi (Query Replace): Make exp of query-replace more
++      self-contained, and clarify.
++ 
++      * cc-mode.texi (Getting Started): Change @ref to @pxref.
++
++2007-12-15  Richard Stallman  <rms@gnu.org>
++
++      * files.texi (Auto Save): Clarify definition of auto-saving.
++
 +2007-11-26  Richard Stallman  <rms@gnu.org>
 +
 +      * help.texi (Help Echo): Cleanups.
 +
 +2007-11-23  Thien-Thi Nguyen  <ttn@gnuvola.org>
 +
 +      * files.texi (Why Version Control?): Fix typo.
 +      (VCS Concepts): Fix typos; small tense fix.
 +      (Selecting a Fileset): Fix typos; small rewording.
 +      (Log Buffer): Likewise.
 +      (Old Revisions): Likewise.
 +
 +2007-11-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mule.texi (Communication Coding): Fix wording of last change.
 +
 +2007-11-16  Werner Lemberg <wl@gnu.org>
 +
 +      * custom.texi (Specifying File Variables), major.texi (Choosing
 +      Modes): Mention '\" in man pages.
 +
 +2007-11-16  Kenichi Handa  <handa@ni.aist.go.jp>
 +
 +      * mule.texi (Communication Coding): Document x-select-request-type.
 +
 +      * frames.texi (Cut/Paste Other App): Mention x-select-request-type.
 +
 +2007-11-15  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 +
 +      * maintaining.texi (TEXTAGS): note that you can use "-" for stdout with
 +      --output=file.
 +
 +2007-11-13  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * help.texi (Help Summary, Apropos, Misc Help): Fix typos.
 +      (Help Echo): Avoid mentioning the term "region" here and
 +      consistently use the term "active text".
 +
 +2007-11-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar.texi (Special Diary Entries): Fix Thanksgiving example.
 +
 +2007-11-10  Paul Pogonyshev  <pogonyshev@gmx.net>
 +
 +      * search.texi (Query Replace): Mention
 +      `query-replace-show-replacement'.
 +
 +2007-11-09  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Watch Expressions): Remove obscure sentence.
 +
 +2007-11-06  Kenichi Handa  <handa@ni.aist.go.jp>
 +
 +      * mule.texi (Select Input Method): Describe how to activate an input
 +      method in the text mode.
 +
 +2007-11-01  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * cmdargs.texi (Misc Variables): Remove Sun windows info.
 +
 +2007-10-30  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Watch Expressions): Describe gdb-delete-out-of-scope.
 +
 +2007-10-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * misc.texi (Directory Tracking): Explain a bit more about
 +      dirtrack-mode.
 +
 +2007-10-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * fortran-xtra.texi (Fortran): F90 mode handles F2003.
 +
 +2007-10-24  Richard Stallman  <rms@gnu.org>
 +
 +      * misc.texi (Interactive Shell): Cleanup last change.
 +
 +2007-10-22  Juri Linkov  <juri@jurta.org>
 +
 +      * mini.texi (Minibuffer History): Add text about a list of minibuffer
 +      default values.
 +
 +2007-10-20  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * files.texi: Disambiguate two slightly different uses of the term
 +      'filesets'.
 +
 +2007-10-18  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * trouble.texi (Quitting): Fix typo.
 +
 +2007-10-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * frames.texi (Mode Line Mouse): Mention minor mode names.
 +
 +2007-10-17  Juri Linkov  <juri@jurta.org>
 +
 +      * text.texi (Fill Commands): Undocument fill-paragraph-or-region.
 +      fill-paragraph operates on the active region in Transient Mark mode.
 +      (Fill Prefix, Format Indentation): Replace fill-paragraph-or-region
 +      with fill-paragraph.
 +
 +      * basic.texi (Arguments): Replace fill-paragraph-or-region with
 +      fill-paragraph.
 +
 +      * fixit.texi (Spelling): ispell-word operates on the active region
 +      in Transient Mark mode.
 +
 +2007-10-17  Aaron S. Hawley  <aaronh@garden.org>
 +
 +      * building.texi (Source Buffers):
 +      * custom.texi (Init Non-ASCII):
 +      * glossary.texi (Glossary): Use "key binding" consistently.
 +
 +2007-10-17  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * calendar.texi (Diary): Fix directive.
 +
 +2007-10-16  Richard Stallman  <rms@gnu.org>
 +
 +      * calendar.texi (Diary): Clarify text about diary file example.
 +
 +2007-10-13  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * files.texi: Capitalize node names according to convention.
 +
 +2007-10-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * misc.texi (Interactive Shell): Correct INSIDE_EMACS reference.
 +
 +2007-10-11  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * emacs.texi:
 +      * files.texi (Version Systems): Minor fixes to version-control material
 +      suggested by RMS and Robert J. Chassell.
 +
 +2007-10-10  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * files.texi (Version Systems):
 +      * vc-xtra.texi:
 +      * vc1-xtra.texi:
 +      * vc2-xtra.texi: Merge in changes for new VC with fileset-oriented
 +      operations.  Change of terminology from `version' to `revision'.
 +      Revise text for adequate description of VCSes with monotonic IDs.
 +      * emacs.texi: Change of terminology from `version' to `revision'.
 +
 +2007-10-09  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * files.texi (Version Systems): Describe newer VCses.
 +      Reorder the descriptions to be chronological.
 +
 +2007-10-09  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Cursor Display): Correct how cursor appears
 +      in nonselected windows.
 +
 +2007-10-04  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB Graphical Interface): Remove references to gdba
 +      and mention gud-gdb.
 +
 +2007-08-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * rmail.texi (Rmail Sorting): Improve indexing.
 +
 +2007-10-06  Juri Linkov  <juri@jurta.org>
 +
 +      * text.texi (Fill Commands): Document fill-paragraph-or-region.
 +      (Fill Prefix, Format Indentation): Replace fill-paragraph with
 +      fill-paragraph-or-region.
 +
 +      * basic.texi (Arguments): Replace fill-paragraph with
 +      fill-paragraph-or-region.
 +
 +2007-10-06  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * files.texi: Update the section on version control for 2007
 +      conditions.  None of these changes are new-VC-specific; that
 +      will come later.
 +
 +2007-09-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar.texi (Holidays): Change all instances of `holiday-list' back
 +      to `list-holidays'.
 +
 +2007-09-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar.texi: Update all instances of mark-calendar-holidays,
 +      list-calendar-holidays, list-holidays with the new names.
 +
 +2007-09-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * Move manual sources from man/ to subdirectories of doc/.
 +      Split into the Emacs manual in emacs/, and other manuals in misc/.
 +      * Makefile.in (INFO_TARGETS, DVI_TARGETS): Reduce to just the Emacs
 +      manual.
 +      (infodir): New variable.
 +      (info): Use $infodir.
 +      (emacsman): Delete target, not needed any more.
 +      Move all targets that are not the Emacs manual to misc/Makefile.in.
 +      (mostlyclean): Remove `gnustmp'.
 +      * makefile.w32-in (INFO_TARGETS, DVI_TARGETS): Reduce to just the Emacs
 +      manual.
 +      (MULTI_INSTALL_INFO, ENVADD, infodir): Go up one more level.
 +      (emacsman): Delete target, not needed any more.
 +      (clean): Remove all info files but Emacs manual.
 +      Move all targets that are not the Emacs manual to misc/Makefile.in.
 +      * emacs-xtra.texi, emacs.texi (setfilename): Go up one more level.
 +
 +      * Makefile.in (INFOSOURCES): Delete.
 +      (.SUFFIXES): Use $(TEXI2DVI) rather than texi2dvi.
 +      (mostlyclean): Add *.op, *.ops.  Move *.aux *.cps *.fns *.kys *.pgs
 +      *.vrs *.toc here...
 +      (maintainer-clean): ...from here.
 +
 +2007-09-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * custom.texi (Safe File Variables): Clarify `!' and risky variables.
 +
 +2007-08-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.texi (EMACSVER): Increase to 23.0.50.
 +
 +2007-08-27  Richard Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Top): Clarify menu item for Glossary.
 +
 +      * display.texi (Faces): Change secn title.
 +      Clarify not all fonts come from Font Lock.
 +
 +2007-08-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * basic.texi (Position Info): Add index entry for face at point.
 +      Mention that character faces are also displayed by "C-u C-x =".
 +
 +2007-08-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * glossary.texi (Glossary): Deprecate `iff'.
 +
 +2007-08-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * files.texi (File Conveniences): Document point motion keys in Image
 +      mode.
 +
 +2007-07-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.texi (Copying): Include license text from gpl.texi, rather than
 +      in-line.
 +
 +      * gpl.texi: New file with text of GPL.
 +      * Makefile.in (EMACSSOURCES): Add gpl.texi.
 +
 +2007-07-26  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vc2-xtra.texi (Customizing VC): Add GIT and HG.
 +
 +      * dired.texi (Wdired): Mention C-x C-q key binding.
 +
 +2007-07-28  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB Graphical Interface): Qualify use of "M-x gdba".
 +
 +2007-07-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.texi (Copying): Replace license with GPLv3.
 +
 +      * Relicense all FSF files to GPLv3 or later.
 +
 +2007-07-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar.texi (Writing Calendar Files): cal-tex-diary etc only work
 +      for some calendars.
 +
 +2007-07-23  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * screen.texi (Mode Line): Describe new mode-line flag that shows if
 +      default-directory for the current buffer is on a remote machine.
 +
 +2007-07-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * vc2-xtra.texi (Customizing VC) <vc-handled-backends>: Update the
 +      default value.
 +
 +2007-07-21  Richard Stallman  <rms@gnu.org>
 +
 +      * files.texi (Why Version Control?): Improve previous change.
 +
 +2007-07-18  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * files.texi (Why Version Control?): New node.
 +
 +2007-07-12  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Starting GUD): Add xref to this anchor.
 +
 +2007-06-24  Karl Berry  <karl@gnu.org>
 +
 +      * emacs.texi: New Back-Cover Text.
 +
 +2007-06-07  Alan Mackenzie  <acm@muc.de>
 +
 +      * display.texi (Optional Mode Line): Document the new form of
 +      line+column numbers, "(561,2)".
 +
 +2007-06-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * maintaining.texi (Create Tags Table): Fix typos.
 +
 +2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 22.1 released.
 +
 +2007-05-07  Karl Berry  <karl@gnu.org>
 +
 +      * emacs.texi (EMACSVER): Back to 22.
 +
 +2007-05-06  Richard Stallman  <rms@gnu.org>
 +
 +      * maintaining.texi (Create Tags Table): Clean up previous change.
 +
 +2007-05-05  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 +
 +      * maintaining.texi (Create Tags Table): Add text about the dangers of
 +      making symbolic links to tags files.
 +
 +2007-05-04  Karl Berry  <karl@gnu.org>
 +
 +      * emacs.texi (EMACSVER) [smallbook]: 22.1 for printed version, not 22.
 +
 +2007-05-03  Karl Berry  <karl@gnu.org>
 +
 +      * emacs.texi (EMACSVER) [smallbook]: 22 for printed version.
 +
 +      * .cvsignore (*.pdf): New entry.
 +
 +      * emacs.texi (\urlcolor, \linkcolor) [smallbook]: \let to \Black
 +      for printing.
 +
 +2007-05-01  Richard Stallman  <rms@gnu.org>
 +
 +      * cmdargs.texi (Initial Options): Under --batch, mention --eval.
 +
 +2007-04-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * ack.texi (Acknowledgments):
 +      * anti.texi (Antinews):
 +      * programs.texi (Program Modes): Restore mention of python.el pending
 +      consideration of legal status.
 +
 +2007-04-28  Richard Stallman  <rms@gnu.org>
 +
 +      * files.texi (File Names): Fixes to ~ description on MS systems.
 +
 +2007-04-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.texi (EMACSVER): Increase to 22.1.50.
 +
 +2007-04-25  Karl Berry  <karl@gnu.org>
 +
 +      * emacs.texi: Improve line breaks on copyright page,
 +      similar layout to lispref, 8.5x11 by default.
 +
 +      * dired.texi (Image-Dired): Improve line break, fix typo.
 +
 +2007-04-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * programs.texi (Program Modes):
 +      * anti.texi (Antinews):
 +      * ack.texi (Acknowledgments): python.el removed.
 +
 +2007-04-23  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Highlight Interactively): Correct description of
 +      hi-lock-file-patterns-policy.
 +
 +      * files.texi (File Archives): Mention self-extracting executables.
 +
 +2007-04-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * search.texi (Unconditional Replace, Query Replace): Add xref to
 +      "Replacement and Case".
 +
 +2007-04-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * dired.texi (Image-Dired): Move from Thumbnails node.
 +      * misc.texi (Thumbnails): Node deleted.
 +      * emacs.texi (Top): Update node listing.
 +
 +      * files.texi (File Conveniences):
 +      * ack.texi (Acknowledgments): Rename "tumme" to "image-dired".
 +
 +2007-04-21  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Highlight Interactively): Correct previous change.
 +      Clarify doc of hi-lock-find-patterns, and move new features into it.
 +
 +2007-04-20  David Koppelman  <koppel@ece.lsu.edu>
 +
 +      * display.texi (Highlight Interactively): Document
 +      hi-lock-file-patterns-policy.
 +
 +2007-04-20  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * display.texi (Scrolling): Fix typo.
 +
 +2007-04-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * doclicense.texi: Remove node heading, so that it can be included by
 +      other files.
 +
 +      * emacs.texi: Insert node heading for GFDL.
 +
 +2007-04-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * cmdargs.texi (Colors): Qualify "color of window" index entry by
 +      "command line".
 +
 +      * display.texi (Faces): Refer to "Creating Frames" for face
 +      and other frame customizations in .emacs.
 +
 +      * frames.texi (Creating Frames): Mention that face customizations can
 +      be put in .emacs.  Add index entries.
 +
 +2007-04-12  Richard Stallman  <rms@gnu.org>
 +
 +      * glossary.texi (Glossary): Explain `iff'.
 +
 +2007-04-11  Karl Berry  <karl@gnu.org>
 +
 +      * gnu.texi (Top),
 +      * macos.texi (Mac Font Specs),
 +      * anti.texi (Antinews),
 +      * xresources.texi (Resources),
 +      * misc.texi (Emulation),
 +      * calendar.texi (Daylight Saving),
 +      * dired.texi (Dired and Find),
 +      * rmail.texi (Remote Mailboxes),
 +      * sending.texi (Mail Headers),
 +      * programs.texi (Which Function),
 +      * files.texi (Recover),
 +      * buffers.texi (Uniquify),
 +      * frames.texi (Wheeled Mice),
 +      * killing.texi (Rectangles): Wording to improve breaks in
 +      8.5x11 format.
 +      * mule.texi (Language Environments): \hbadness=10000 since there's
 +      no way to reword.
 +      * emacs.texi (smallbook): New @set to more easily switch between
 +      smallbook and 8.5x11.
 +
 +2007-04-11  Richard Stallman  <rms@gnu.org>
 +
 +      * files.texi (File Conveniences): Add xref to Tumme.
 +      Delete text about Thumbnail mode.
 +
 +2007-04-09  Alan Mackenzie  <acm@muc.de>
 +
 +      * cmdargs.texi (Initial Options): Call "inhibit-splash-screen" by its
 +      new name.  Insert concept index entries.
 +
 +2007-04-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Standard Faces): Document prefix arg for
 +      list-faces-display.
 +
 +      * rmail.texi (Rmail Scrolling): Document rmail-end-of-message.
 +
 +2007-04-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * killing.texi (Deletion): Rewrite description of M-\ prefix argument.
 +
 +      * files.texi (Misc File Ops): Rewrite description of
 +      insert-file-literally.
 +
 +2007-03-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * misc.texi (Printing): Postscript -> PostScript.
 +
 +      * ack.texi (Acknowledgments): Postscript -> PostScript.
 +
 +      * custom.texi (Init File, Init Non-ASCII): Fix last change.
 +
 +      * emacs.texi (Top): Fix the menu due to the change in custom.texi
 +      below.
 +
 +2007-03-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.texi (Non-ASCII Rebinding): Node deleted.  Material moved to
 +      Init Non-ASCII.
 +      (Init Rebinding, Init Syntax): Link to Init Non-ASCII instead.
 +      (Init Non-ASCII): New node.
 +
 +2007-03-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * macos.texi (Mac Font Specs): Mention AppleAntiAliasingThreshold.
 +
 +2007-03-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar.texi, emacs.texi (Daylight Saving): Rename node from
 +      "Daylight Savings".
 +
 +      * calendar.texi: Replace "daylight savings" with "daylight
 +      saving" in text throughout.
 +
 +2007-03-04  Richard Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Safe File Variables): Minor correction.
 +
 +2007-02-28  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * rmail.texi (Movemail): Add internal ref.
 +      Don't indent the intro for the PROTO table.
 +      Format PROTO table items with @code.
 +
 +2007-02-26  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi: Remove references to bashdb.
 +
 +2007-02-19  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * mule.texi (Language Environments): Update list of supported language
 +      environments.
 +
 +2007-02-14  Kim F. Storm  <storm@cua.dk>
 +
 +      * building.texi (Grep Searching): Fix lgrep doc.
 +
 +2007-02-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * back.texi: Remove unused file.
 +
 +2007-02-05  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 +
 +      * maintaining.texi (Tag Syntax): Now --members is the default for
 +      etags, not for ctags yet.
 +
 +2007-02-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacs.texi (Top): Update the top-level menus.  Make the detailed menu
 +      headers compliant with Texinfo guidelines and with what texnfo-upd.el
 +      expects.  Add comments to prevent people from inadvertently modifying
 +      the key parts needed by `texinfo-multiple-files-update'.
 +
 +2007-01-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frames.texi (Secondary Selection): Window clicked does not matter
 +      when mouse-yank-at-point is non-nil.
 +
 +2007-01-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * abbrevs.texi (Editing Abbrevs): Describe how to disable a
 +      system abbrev.
 +
 +2007-01-11  Richard Stallman  <rms@gnu.org>
 +
 +      * msdog.texi (Windows Keyboard): Another small cleanup.
 +
 +2007-01-10  Richard Stallman  <rms@gnu.org>
 +
 +      * msdog.texi (Windows Keyboard): Yet another try to make
 +      everyone happy with that passage.
 +
 +2007-01-05  Richard Stallman  <rms@gnu.org>
 +
 +      * anti.texi (Antinews): Mention M-x shell scrolling.
 +
 +2007-01-05  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Watch Expressions): Describe gdb-max-children.
 +
 +2007-01-04  Richard Stallman  <rms@gnu.org>
 +
 +      * msdog.texi (Windows Keyboard): Clarify previous change.
 +
 +2007-01-02  Richard Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Changing a Variable): Minor clarification.
 +      (Specific Customization): customize-customized => customize-unsaved.
 +
 +      * entering.texi (Entering Emacs): Clean up text about restarting
 +      Emacs for each file.
 +
 +      * misc.texi (Shell Options): Minor cleanup.
 +
 +      * msdog.texi (Windows Keyboard): Explain that Windows was incompatible
 +      with Emacs, not vice versa.
 +
 +      * programs.texi (Symbol Completion): Recommend customizing
 +      window manager.
 +
 +      * xresources.texi (Resources): Minor fix.
 +
 +2007-01-01  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * xresources.texi (Table of Resources): Add scrollBarWidth resource.
 +
 +2007-01-01  Richard Stallman  <rms@gnu.org>
 +
 +      * commands.texi (User Input): Document keys stolen by window mangers.
 +
 +2006-12-31  Richard Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Specific Customization): Document customize-option
 +      instead of customize-variable.
 +
 +2006-12-31  Kim F. Storm  <storm@cua.dk>
 +
 +      * major.texi (Choosing Modes): Document auto-mode-case-fold.
 +
 +2006-12-30  Kim F. Storm  <storm@cua.dk>
 +
 +      * killing.texi (CUA Bindings): Fix typo.
 +
 +      * xresources.texi (Table of Resources): Mention grow-only value for
 +      auto-resize-tool-bars.
 +
 +2006-12-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdog.texi (Windows Keyboard): Mention widespread Windows bindings,
 +      and how to get them back.
 +
 +2006-12-26  Richard Stallman  <rms@gnu.org>
 +
 +      * calendar.texi (Holidays): Holiday listing is based on current
 +      practice, but DST is not.
 +
 +2006-12-25  Richard Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Top): Update subnode menus.
 +
 +      * mark.texi (Transient Mark): Fix xref.
 +
 +      * killing.texi (Graphical Kill): Node deleted.
 +      (Killing): Add xref to Cut and Paste.
 +      (CUA Bindings): Update xref.
 +
 +      * frames.texi (Cut and Paste): New section to hold other nodes.
 +      (Mouse Commands): Node demoted.
 +      (Cut/Paste Other App): Split out from Mouse Commands.
 +      (Word and Line Mouse): Likewise.
 +      (Secondary Selection, Clipboard): Nodes demoted.
 +
 +2006-12-24  Kevin Ryde  <user42@zip.com.au>
 +
 +      * calendar.texi (Holidays): US daylight saving begins second Sunday
 +      in March for 2007 onwards.
 +      (Daylight Savings): Show new US default daylight saving rules, 2nd
 +      Sun in Mar to 1st Sun in Nov, now in cal-dst.el.
 +
 +2006-12-23  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * calendar.texi (Scroll Calendar): < and > are switched.
 +
 +2006-12-23  Kevin Rodgers  <ihs_4664@yahoo.com>
 +
 +      * killing.texi (Deletion): Describe M-\ prefix argument.
 +
 +2006-12-23  Richard Stallman  <rms@gnu.org>
 +
 +      * search.texi (Regexp Search): Explain why forward and reverse regexp
 +      search are not mirror images.
 +
 +2006-12-19  Kim F. Storm  <storm@cua.dk>
 +
 +      * major.texi (Choosing Modes): Describe match-function elements for
 +      magic-mode-alist.
 +
 +2006-12-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdog.texi (Windows Keyboard): Add a footnote about "Windows" keys
 +      peculiarities.
 +
 +2006-12-18  Richard Stallman  <rms@gnu.org>
 +
 +      * abbrevs.texi (Editing Abbrevs): Fix previous change.
 +
 +2006-12-17  Alan Mackenzie  <acm@muc.de>
 +
 +      * programs.texi (Left Margin Paren): Remove the bit which says
 +      that CC Mode sets open-paren-in-column-0-is-defun-start to nil.
 +      Discuss some of the issues of setting this option to nil.
 +
 +2006-12-17  Glenn Morris  <rgm@gnu.org>
 +
 +      * abbrevs.texi (Editing Abbrevs): Mention system abbrevs.
 +
 +2006-12-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdog.texi (Windows Keyboard): Clarify `w32-recognize-altgr' effect.
 +      (Windows Files): `w32-get-true-file-attributes' is only relevant for
 +      NTFS volumes.
 +      (ls in Lisp): `links' in `ls-lisp-verbosity' is only relevant to NTFS
 +      volumes.
 +
 +2006-12-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * text.texi (HTML Mode): Fix "C-c TAB".
 +
 +2006-12-09  Richard Stallman  <rms@gnu.org>
 +
 +      * misc.texi (Invoking emacsclient): Simplify TCP file text.
 +
 +2006-12-08  Kevin Rodgers  <ihs_4664@yahoo.com>
 +
 +      * files.texi (Misc File Ops): Document insert-file-literally.
 +
 +2006-12-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * cmdargs.texi (Colors): Note that --color is intended for overriding
 +      the terminal defaults, not for normal invocation.
 +
 +      * misc.texi (Emacs Server): Improve wording.  Don't mention the
 +      ``server program''.  Add a cross-reference to "Init File" node.
 +      (Invoking emacsclient): Add index entries.  Document both short and
 +      long versions of command-line options.  Document the -f option.
 +
 +2006-12-06  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Outline Format): Say to set outline-regexp
 +      and outline-level with major modes and file local variables.
 +
 +2006-12-05  Micha\e,Ak\e(Bl Cadilhac  <michael.cadilhac@lrde.org>
 +
 +      * anti.texi (Antinews): Mention the alternative to
 +      `~/.emacs_SHELLNAME', which is `~/.emacs.d/init_SHELLNAME.sh'.
 +
 +      * misc.texi (Interactive Shell): Ditto.
 +
 +2006-12-04  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacs.texi (Acknowledgments): Fix Arne J@o{}rgensen's name.
 +
 +      * ack.texi (Acknowledgments): Fix Arne J@o{}rgensen's name.
 +
 +2006-12-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mule.texi (Enabling Multibyte): Rephrase the confusing reference to a
 +      colon in the mode line.
 +
 +      * msdog.texi (Windows Processes) [@ifnottex]: Mention w32-shell-execute.
 +
 +2006-11-26  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Watch Expressions): Mention SPC for expanding/
 +      contracting watch expressions.
 +
 +2006-11-26  Kim F. Storm  <storm@cua.dk>
 +
 +      * kmacro.texi (Basic Keyboard Macro): Mention F3/F4 more.
 +
 +2006-11-26  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Debugger Operation): Define text command mode.
 +      Clarify how tooltips work.
 +      (GDB Graphical Interface): Explain how to run in text command mode
 +      more clearly.
 +
 +2006-11-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * mule.texi (Defining Fontsets): Fix use of `charset' and `font'.
 +
 +2006-11-22  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * anti.texi (Antinews): Mention --server-file and TCP sockets.
 +
 +2006-11-18  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * misc.texi (Interactive Shell): INSIDE_EMACS is set to t,
 +      and EMACS is deprecated.
 +
 +2006-11-18  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (emacs.dvi): Remove xresmini.texi.
 +
 +2006-11-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * Makefile.in (emacs.dvi): Remove xresmini.texi.
 +
 +      * emacs.texi: Include xresources.texi both for info and dvi.
 +
 +      * xresources.texi: Merge text from xresmini.texi.
 +
 +2006-11-12  Roberto Rodr\e,Am\e(Bguez  <lanubeblanca@googlemail.com>  (tiny change)
 +
 +      * glossary.texi: Fix typos.
 +
 +2006-11-06  Richard Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Acknowledgments): Fix name spelling, add Anna Bigatti.
 +
 +      * ack.texi (Acknowledgments): Fix name spelling.
 +
 +2006-11-01  Juri Linkov  <juri@jurta.org>
 +
 +      * search.texi (Word Search): Document incremental word search.
 +
 +2006-10-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * ack.texi (Acknowledgments): Add cal-html author.
 +
 +      * calendar.texi (Writing Calendar Files): Rename section (was "LaTeX
 +      Calendar").  Describe new package cal-html.
 +      * emacs.texi (Top): Rename old node "LaTeX Calendar" to "Writing
 +      Calendar Files."
 +
 +2006-10-23  Richard Stallman  <rms@gnu.org>
 +
 +      * abbrevs.texi (Expanding Abbrevs): Expansion happens only when
 +      Abbrev mode is enabled.
 +
 +2006-10-16  Richard Stallman  <rms@gnu.org>
 +
 +      * emacs.texi: Update ISBN.
 +
 +2006-10-11  Kim F. Storm  <storm@cua.dk>
 +
 +      * emacs.texi (Acknowledgments): Use @dotless{i}.
 +
 +2006-10-08  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Breakpoints Buffer): Mention catchpoints.
 +
 +2006-10-08  Kim F. Storm  <storm@cua.dk>
 +
 +      * ack.texi (Acknowledgments): Update.
 +
 +      * emacs.texi (Acknowledgments): Fix bad @/ form.
 +
 +2006-10-05  Kim F. Storm  <storm@cua.dk>
 +
 +      * emacs.texi (Acknowledgments): Add more contributors.
 +
 +2006-10-03  Richard Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Acknowledgments): Update version and edition.
 +
 +2006-10-01  Karl Berry  <karl@gnu.org>
 +
 +      * custom.texi (Customization Groups): Page break to keep example buffer
 +      on one page.
 +
 +2006-09-30  Karl Berry  <karl@gnu.org>
 +
 +      * programs.texi (Basic Indent): @need to improve page break.
 +      * text.texi: Rewording to improve page breaks, and use @LaTeX{}.
 +
 +2006-09-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar.texi (Date Formats): Doc fix for european-calendar-style.
 +
 +2006-09-29  Karl Berry  <karl@gnu.org>
 +
 +      * windows.texi (Basic Window): Remove forced @break, no longer
 +      desirable.
 +      * frames.texi (Frame Commands),
 +      * mark.texi (Marking Objects): Reword to avoid bad page break.
 +      * display.texi (Auto Scrolling): Use @tie{} to avoid bad line break.
 +
 +2006-09-19  Richard Stallman  <rms@gnu.org>
 +
 +      * frames.texi (Dialog Boxes): Clean up wording: avoid passive,
 +      stick to present tense.
 +
 +2006-09-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Dialog Boxes): Rename x-use-old-gtk-file-dialog
 +      to x-gtk-use-old-file-dialog.
 +      (Dialog Boxes): Document x-gtk-file-dialog-help-text.
 +
 +2006-09-15  Jay Belanger  <belanger@truman.edu>
 +
 +      * emacs.texi (GNU GENERAL PUBLIC LICENSE):
 +      Change "Library Public License" to "Lesser Public License"
 +      throughout.  Use "yyyy" to represent year.
 +
 +2006-09-12  Reiner Steib  <Reiner.Steib@gmx.de>
 +
 +      * files.texi (Visiting): Add index entry "open file".
 +
 +2006-09-11  Richard Stallman  <rms@gnu.org>
 +
 +      * building.texi (Compilation Mode): Clarification.
 +      (Grep Searching): Add xref to Compilation Mode.
 +
 +2006-09-08  Richard Stallman  <rms@gnu.org>
 +
 +      * search.texi (Search): Ref multi-file search commands here.
 +      (Other Repeating Search): Not here.
 +
 +2006-08-28  Richard Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Split Window): Update xref.
 +
 +      * basic.texi (Continuation Lines): Update xref.
 +
 +      * indent.texi (Tab Stops): Update xref.
 +
 +      * emacs.texi (Top): Update subnode menu.
 +
 +      * display.texi (Line Truncation, Displaying Boundaries): New nodes,
 +      split out of Display Custom.
 +
 +2006-08-25  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Display Custom): Add variables overline-margin
 +      and x-underline-at-descent-line.
 +
 +2006-08-25  Richard Stallman  <rms@gnu.org>
 +
 +      * entering.texi (Exiting): Rewrite to give graphical displays
 +      priority over text terminals.
 +
 +      * search.texi (Incremental Search): Move index entries.
 +
 +2006-08-23  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.texi (Init File): Reference Find Init to avoid "home
 +      directory" confusion.
 +
 +2006-08-22  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Other GDB-UI Buffers): Describe how to edit
 +      a value in the locals buffer.
 +
 +2006-08-21  Richard Stallman  <rms@gnu.org>
 +
 +      * search.texi (Basic Isearch): Add `isearch' index entry.
 +
 +2006-08-16  Richard Stallman  <rms@gnu.org>
 +
 +      * misc.texi (Saving Emacs Sessions): Clean up wording.
 +
 +      * mark.texi (Marking Objects): Mention term "select all".
 +
 +      * emacs.texi (Top): Update subnode menu.
 +
 +      * help.texi (Help Mode): Move node up in file.
 +
 +2006-08-15  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Stack Buffer): Explain fringe arrow.
 +
 +2006-08-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * misc.texi (Saving Emacs Sessions): Clarify when desktop is restored
 +      on startup.
 +
 +2006-08-11  Romain Francoise  <romain@orebokech.com>
 +
 +      * ack.texi (Acknowledgments): Delete mention to zone-mode.el.
 +
 +2006-08-10  Sven Joachim  <svenjoac@gmx.de>  (tiny change)
 +
 +      * mule.texi (Recognize Coding, Text Coding): Fix typos.
 +
 +2006-08-10  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Format Faces): Substantial rewrites to deal
 +      with face merging.  Empty regions don't count.  Clarify
 +      face property inheritance.
 +
 +2006-08-08  Romain Francoise  <romain@orebokech.com>
 +
 +      * dired.texi (Marks vs Flags): Fix typo reported by Ari Roponen
 +      <arjuropo@cc.jyu.fi>.
 +
 +2006-08-04  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * cmdargs.texi (Window Size X) <--geometry>: Only width and height
 +      apply to all frames.
 +
 +2006-08-01  Richard Stallman  <rms@gnu.org>
 +
 +      * help.texi (Name Help): Add index entries for describe-variable.
 +
 +2006-08-01  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB Graphical Interface): Shorten node names.
 +      (GDB-UI Layout): Use GDB-related.
 +      (Other GDB-UI Buffers): Simplify English.
 +
 +2006-07-31  Richard Stallman  <rms@gnu.org>
 +
 +      * search.texi (Query Replace): Add xref for Dired's Q command.
 +
 +2006-07-31  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB commands in Fringe): Rename to...
 +      (Source Buffers): ..this and move forward.  Describe hollow arrow and
 +      new option gdb-find-source-frame.
 +
 +2006-07-29  Richard Stallman  <rms@gnu.org>
 +
 +      * dired.texi (Operating on Files): Simplify previous change
 +      and fix Texinfo usage.
 +
 +2006-07-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dired.texi (Operating on Files): Add cross-references.  State the
 +      Unix commands that do similar things.
 +
 +2006-07-28  Richard Stallman  <rms@gnu.org>
 +
 +      * mark.texi (Transient Mark): Clarify that region never disappears
 +      when Transient Mark mode is off, and not when it is on.
 +
 +2006-07-27  Richard Stallman  <rms@gnu.org>
 +
 +      * search.texi (Non-ASCII Isearch): Clarify.  Mention C-q.
 +
 +2006-07-24  Richard Stallman  <rms@gnu.org>
 +
 +      * xresources.texi (GTK styles): Fix texinfo usage.
 +
 +      * commands.texi (User Input): Explain why we teach keyboard cmds.
 +
 +      * xresources.texi, xresmini.texi, search.texi, programs.texi:
 +      * misc.texi, kmacro.texi, killing.texi, glossary.texi:
 +      * fortran-xtra.texi, files.texi, emacs.texi, emacs-xtra.texi:
 +      * doclicense.texi, display.texi, dired.texi, basic.texi:
 +      * anti.texi, ack.texi: Move periods and commas inside quotes.
 +
 +2006-07-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * cmdargs.texi (General Variables): Document EMAIL.
 +
 +2006-07-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * frames.texi (Frame Commands): Mention that focus-follows-mouse
 +      doesn't have effect on MS-Windows.
 +
 +2006-07-17  Richard Stallman  <rms@gnu.org>
 +
 +      * building.texi (Grep Searching): Explain about chaining grep commands.
 +
 +2006-07-10  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * killing.texi, mini.texi: Fix typos.
 +
 +2006-07-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * misc.texi (Invoking emacsclient): Document behavior when emacsclient
 +      is invoked for multiple files.
 +
 +2006-07-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdog.texi (Windows Keyboard) [@iftex]: Add an @inforef to the
 +      on-line manual for the rest of this node.
 +      (Windows Mouse) <w32-pass-extra-mouse-buttons-to-system>: Include
 +      unconditionally.
 +      (Windows Processes) <w32-quote-process-args>: Include unconditionally.
 +      Improve wording.
 +      (Windows Printing): Improve wording.
 +      (Windows Misc) [@iftex]: Add an @inforef to the on-line manual for the
 +      rest of this node.
 +
 +2006-07-05  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * building.texi (Lisp Eval): Throughout, replace eval-current-buffer
 +      with eval-buffer.
 +
 +2006-07-05  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * mule.texi (Coding Systems, Specify Coding): Link descriptions
 +      of character translation.
 +
 +2006-07-04  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * rmail.texi (Remote Mailboxes): Add missing @code keyword.
 +
 +2006-07-03  Karl Berry  <karl@gnu.org>
 +
 +      * emacs.texi (\hbadness): Set to 6000 so we aren't bothered by
 +      not-too-underfull hboxes in the TeX output.
 +      * abbrevs.texi, buffers.texi, building.texi, calendar.texi,
 +      * cmdargs.texi, custom.texi, dired.texi, macos.texi,
 +      * maintaining.texi, misc.texi, mule.texi, programs.texi, rmail.texi,
 +      * sending.texi, text.texi: Fix overfull/underfull boxes.
 +
 +2006-07-03  Romain Francoise  <romain@orebokech.com>
 +
 +      * m-x.texi (M-x): Fix.
 +
 +2006-07-03  Richard Stallman  <rms@gnu.org>
 +
 +      * search.texi (Other Repeating Search): filename -> file name.
 +
 +      * misc.texi (Narrowing): Minor cleanups.
 +
 +      * files.texi (Visiting): filename -> file name.
 +
 +      * emacs.texi (Top): Update subnode menus.
 +
 +      * mule.texi (Coding Systems): Move char translation stuff here.
 +      (Specify Coding, Output Coding): New nodes, out of Recognize Coding.
 +      (Recognize Coding): Substantial local rewrites.
 +      (International): Update menu.
 +
 +      * display.texi (Auto Scrolling): New node, broken out of Scrolling.
 +      (Scrolling): Substantial local rewrites.
 +      (Display): Update menu and intro.
 +
 +      * dired.texi: filename -> file name.
 +
 +      * custom.texi (Safe File Variables): Texinfo usage fix.
 +
 +2006-07-03  Ted Zlatanov  <tzz@lifelogs.com>
 +
 +      * help.texi, m-x.texi: Lots of cleanups.
 +
 +2006-06-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdog.texi (ls in Lisp, Windows Keyboard, Windows Mouse)
 +      (Windows Processes, Windows Misc): Shorten the printed version by
 +      selectively conditioning less important portions by @ifnottex.
 +
 +2006-06-27  Richard Stallman  <rms@gnu.org>
 +
 +      * mini.texi (Minibuffer File): Minor cleanup.
 +
 +2006-06-25  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * frames.texi (XTerm Mouse): Rename to...
 +      (Text-Only Mouse): ...this.  Mention t-mouse-mode.
 +
 +      * emacs.texi (Top): Use new node name.
 +
 +2006-06-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacs.texi (Top): Update the detailed menu according to changes in
 +      msdog.texi.
 +
 +      * msdog.texi (Windows Keyboard): New section.
 +      (Windows Mouse): New section.
 +      (Windows System Menu): Remove section (text merged with "Windows
 +      Keyboard").
 +      (Windows Misc): New section.
 +
 +      * dired.texi (Dired Enter): Refer to msdog.texi for ls-lisp emulation.
 +
 +      * msdog.texi (ls in Lisp): New section.
 +
 +      * files.texi (Visiting): Document case-insensitive wildcard matching
 +      under find-file-wildcards.
 +
 +2006-06-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * macos.texi (Mac Input): Add description of mac-function-modifier.
 +      Now Unicode keyboard layouts work.
 +
 +2006-06-10  Richard Stallman  <rms@gnu.org>
 +
 +      * mule.texi (Recognize Coding): Clarify previous change.
 +
 +2006-06-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * mule.texi (Recognize Coding): Describe the convention of "CODING!"
 +      notation.
 +
 +2006-06-07  Kevin Ryde  <user42@zip.com.au>
 +
 +      * mule.texi (Coding Systems): Footnote xref "MS-DOS and MULE" in main
 +      manual for @ifnottex, but in emacs-extra for @iftex.
 +
 +      * cmdargs.texi (General Variables): Fix smtpmail xref.
 +
 +2006-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * programs.texi (Comment Commands):
 +      * custom.texi (Specifying File Variables):
 +      Use ;; instead of ;;; to better follow coding conventions.
 +
 +2006-06-07  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Watch Expressions): Move node to end.
 +      (GDB Graphical Interface): Move description of clicks in fringe...
 +      (GDB commands in the Fringe): ...to here.  New node.
 +
 +2006-06-05  Romain Francoise  <romain@orebokech.com>
 +
 +      * xresmini.texi (GTK resources): Fix various typos.
 +
 +2006-06-05  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB Graphical Interface): Update bindings.
 +      (Commands of GUD): Add gud-print.  Remove gud-run.
 +      Restate availability more generally.
 +
 +2006-06-03  Ted Zlatanov  <tzz@lifelogs.com>
 +
 +      * mini.texi: Lots of cleanups.
 +
 +2006-06-01  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * misc.texi (Shell History Copying): Update descriptions of `C-c RET'
 +      and Mouse-2.
 +
 +2006-06-01  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * screen.texi (Menu Bar): Change menu-bar-start to menu-bar-open.
 +
 +2006-05-31  Richard Stallman  <rms@gnu.org>
 +
 +      * basic.texi (Moving Point): Fix previous change.
 +
 +2006-05-29  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * screen.texi (Menu Bar): F10 for Gtk+/Lesstif/Lucid menus.
 +
 +2006-05-28  Ted Zlatanov  <tzz@lifelogs.com>
 +
 +      * basic.texi: Many simplifications and improvements in wording.
 +
 +2006-05-26  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * anti.texi (Antinews): Create a node for gdb-ui.
 +
 +2006-05-22  Reiner Steib  <Reiner.Steib@gmx.de>
 +
 +      * frames.texi (Menu Bars, Tool Bars): Add index entries.
 +
 +2006-05-20  Richard Stallman  <rms@gnu.org>
 +
 +      * dired.texi (Dired Navigation): dired-goto-file is now j.
 +
 +2006-05-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mule.texi (Coding Systems): Mention the undecided-* coding systems
 +      and their aliases.
 +
 +      * msdog.texi (Windows Printing): Mention non-support of plain text
 +      printing with some el-cheapo printers, and suggest a workaround.
 +
 +2006-05-20  Kevin Ryde  <user42@zip.com.au>
 +
 +      * text.texi (TeX Print): tex-dvi-view-command has a default value,
 +      remove the bit saying you must set it.
 +
 +2006-05-19  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * trouble.texi (Checklist):
 +      * text.texi (Text, Auto Fill, Text Mode):
 +      * search.texi (Nonincremental Search):
 +      * rmail.texi (Rmail Labels):
 +      * mule.texi (Input Methods, Multibyte Conversion):
 +      * misc.texi (Gnus, Where to Look, PostScript):
 +      * maintaining.texi (Create Tags Table):
 +      * indent.texi (Indentation Commands):
 +      * fixit.texi (Spelling):
 +      * emacs.texi (Copying):
 +      * custom.texi (Init File): ifinfo -> ifnottex.
 +
 +2006-05-17  Richard Stallman  <rms@gnu.org>
 +
 +      * files.texi (Diff Mode): Mention C-x `.
 +
 +2006-05-08  Richard Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Disabling): Textual cleanups.
 +
 +2006-05-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar.texi (Displaying the Diary, Format of Diary File):
 +      Refer to diary-view-entries, diary-list-entries,
 +      diary-show-all-entries rather than obsolete aliases.
 +
 +2006-05-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * calendar.texi (Calendar/Diary, Holidays, Displaying the Diary)
 +      (Displaying the Diary, Special Diary Entries, Importing Diary):
 +      * building.texi (Compilation Shell):
 +      * buffers.texi (Several Buffers) [iftex]: Replace @xref's to
 +      emacs-xtra with @inforef's.
 +
 +      * files.texi (Visiting): Fix wording.
 +
 +      * mule.texi (Coding Systems, Text Coding): More indexing.
 +      Mention that C-x RET f can set eol conversion.
 +
 +2006-05-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * xresmini.texi (GTK resources): Insert GTK description.
 +
 +      * xresources.texi (GTK resources): metafont should be menufont.
 +
 +2006-05-06  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * mini.texi (Completion Options): Completion of remote files'
 +      method, user name and host name is active only in partial
 +      completion mode.
 +
 +2006-05-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (emacs.dvi):
 +      * Makefile.in (emacs.dvi): Add xresmini.texi.
 +
 +      * xresmini.texi (Table of Resources): Remove xref to non-existent
 +      node "LessTif Resources".
 +
 +      * msdog.texi (Microsoft Windows):
 +      * calendar.texi (Calendar/Diary, Displaying the Diary)
 +      (Special Diary Entries, Importing Diary, Holidays):
 +      * programs.texi (Program Modes):
 +      * text.texi (Text):
 +      * buffers.texi (Several Buffers):
 +      * files.texi (Comparing Files): Fix cross-references to emacs-xtra.
 +
 +2006-05-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      The following changes merge the emacs-xtra manual into the main
 +      manual, but only for on-line version of the manual.
 +
 +      * vc2-xtra.texi (Version Backups, Local Version Control)
 +      (Making Snapshots, Change Logs and VC, Version Headers)
 +      (Customizing VC, CVS Options) [ifnottex]: Conditional xref's for
 +      on-line manual.
 +
 +      * vc1-xtra.texi (VC Dired Mode) [ifnottex]: Conditional xref's
 +      for on-line manual.
 +
 +      * msdog-xtra.texi (MS-DOS, MS-DOS Keyboard, MS-DOS Mouse)
 +      (MS-DOS Display, MS-DOS File Names, MS-DOS Printing)
 +      (MS-DOS and MULE, MS-DOS Processes) [ifnottex]: Conditional xref's
 +      for on-line manual.
 +
 +      * fortran-xtra.texi (Fortran, Fortran Autofill)
 +      (Fortran Autofill, Fortran Abbrev) [ifnottex]: Conditional xref's
 +      for on-line manual.
 +
 +      * picture-xtra.texi (Basic Picture, Rectangles in Picture) [ifnottex]:
 +      Conditional xref's for on-line manual.
 +
 +      * emerge-xtra.texi (Emerge, Overview of Emerge)
 +      (Fine Points of Emerge) [ifnottex]: Conditional xref's for on-line
 +      manual.
 +
 +      * Makefile.in (INFO_TARGETS): Remove ../info/emacs-xtra.
 +      (EMACS_XTRA): New variable, lists the new *-xtra.texi files.
 +      (EMACSSOURCES): Use EMACS_XTRA.
 +      (../info/emacs-xtra): Remove.
 +      (emacs-xtra.dvi): Add EMACS_XTRA to prerequisites.
 +
 +      * makefile.w32-in (INFO_TARGETS): Remove $(infodir)/emacs-xtra.
 +      (EMACS_XTRA): New variable, lists the new *-xtra.texi files.
 +      (EMACSSOURCES): Use EMACS_XTRA.
 +      ($(infodir)/emacs-xtra): Remove.
 +      (emacs-xtra.dvi): Add EMACS_XTRA to prerequisites.
 +
 +      * trouble.texi (Quitting):
 +      * text.texi (Text):
 +      * programs.texi (Program Modes):
 +      * msdog.texi (Microsoft Windows):
 +      * frames.texi (Frames):
 +      * files.texi (Backup, Version Control, VC Concepts)
 +      (Types of Log File, Advanced C-x v v, Log Buffer, Old Versions)
 +      (Registering, VC Status, VC Undo, Multi-User Branching)
 +      (Comparing Files):
 +      * calendar.texi (Calendar/Diary, Holidays, Displaying the Diary)
 +      (Displaying the Diary, Special Diary Entries, Importing Diary):
 +      * buffers.texi (Several Buffers): Replace inforef to emacs-xtra by
 +      conditional xref's, depending on @iftex/@ifnottex.
 +
 +      * msdog.texi (Microsoft Windows) [ifnottex]: Add menu entry for
 +      "MS-DOS".  @include msdog-xtra.texi.
 +
 +      * programs.texi (Programs) [ifnottex]: Add menu entry for "Fortran".
 +      <Top Level> [ifnottex]: @include fortran-xtra.texi.
 +
 +      * files.texi (Secondary VC Commands) [ifnottex]: Add menu entries
 +      for vc-xtra.texi subsections.
 +      (VC Undo) [ifnottex]: @include vc1-xtra.texi and @lowersections it.
 +      (Multi-User Branching) [ifnottex]: @include vc2-xtra.texi.
 +
 +      * sending.texi (Sending Mail): A @node line without explicit Prev,
 +      Next, and Up links.
 +
 +      * abbrevs.texi (Abbrevs): A @node line without explicit Prev,
 +      Next, and Up links.
 +
 +      * emacs.texi (Top) [ifnottex]: Add menu entries for "Picture Mode"
 +      and its sections.  @include picture-xtra.texi.
 +
 +      * maintaining.texi (Maintaining) [ifnottex]: Add menu entry for
 +      "Emerge".
 +      (List Tags) [ifnottex]: @include emerge-xtra.texi.
 +
 +      * cal-xtra.texi (Daylight Savings): Remove this node: it is an
 +      exact duplicate of its name-sake in calendar.texi.
 +
 +      * calendar.texi (Calendar/Diary) [ifnottex]: Add menu item for
 +      "Advanced Calendar/Diary Usage".
 +      (Time Intervals) [ifnottex]: @include cal-xtra.texi.
 +
 +      * dired.texi (Subdirectories in Dired) [ifnottex]: @include
 +      dired-xtra.texi.
 +      (Dired) [ifnottex]: Add menu entry for "Subdir Switches".
 +
 +      * files.texi (Reverting) [ifnottex]: @include arevert-xtra.texi.
 +      (Files) [ifnottex]: Add menu entry for Autorevert.
 +
 +      * emacs-xtra.texi (Introduction): Reword to make consistent with
 +      printed version only.
 +      <Top level>: Remove the body of all chapters and move them to the
 +      new *-xtra.texi files.  Use @raisesections and @lowersections to
 +      convert sections to chapters etc.
 +
 +      * msdog-xtra.texi:
 +      * fortran-xtra.texi:
 +      * vc-xtra.texi:
 +      * vc1-xtra.texi:
 +      * vc2-xtra.texi:
 +      * emerge-xtra.texi:
 +      * cal-xtra.texi:
 +      * dired-xtra.texi:
 +      * arevert-xtra.texi: New files, with text from respective chapters
 +      of emacs-xtra.texi.  Convert each @chapter into @section, @section
 +      into @subsection, etc.
 +
 +      * emacs-xtra.texi (MS-DOS): Renamed from "MS-DOG".  All references
 +      updated.
 +
 +      * msdog.texi (Microsoft Windows): Rename from "Emacs and Microsoft
 +      Windows".  All references updated.
 +
 +2006-05-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * macos.texi (Mac Input): Mention input from Character Palette.
 +      (Mac Font Specs): Fix typo.
 +
 +2006-05-05  Richard Stallman  <rms@gnu.org>
 +
 +      * files.texi (Diff Mode): Minor cleanup.
 +
 +2006-05-05  Karl Berry  <karl@gnu.org>
 +
 +      * emacs.texi: Call @fonttextsize 10, inside @tex to avoid
 +      errors from the current release of makeinfo (4.8).
 +      * help.texi (Library Keywords): Change widest word in multitable
 +      template from `emulations' to `convenience'.  (Not sure if this is
 +      related to the font change.)
 +
 +2006-05-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.texi (File Names): Add a footnote about limited support of
 +      ~USER on MS-Windows.
 +
 +      * cmdargs.texi (Initial Options): Add a footnote about limited
 +      support of ~USER on MS-Windows.
 +
 +2006-05-03  Richard Stallman  <rms@gnu.org>
 +
 +      * files.texi (Diff Mode): Node moved here.
 +      (Comparing Files): Delete what duplicates new node.
 +      (Files): Put Diff Mode in menu.
 +
 +      * misc.texi (Diff Mode): Moved to files.texi.
 +
 +      * emacs.texi (Top): Update menu for Diff Mode.
 +
 +      * trouble.texi (Emergency Escape): Simplify.
 +
 +      * emacs.texi (Top): Minor clarification.
 +
 +2006-05-03  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * commands.texi, entering.texi, screen.texi: Many simplifications.
 +
 +2006-05-03  Richard Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Text Characters): Delete paragraph about unibyte
 +      non-ASCII printing chars.
 +
 +      * killing.texi (Killing): Say "graphical displays".
 +      * display.texi: Say "graphical displays".
 +
 +      * cmdargs.texi (Misc X): Say "graphical displays".
 +
 +2006-05-01  Richard Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Top): Add Diff Mode to menu.
 +
 +2006-05-01  Aaron S. Hawley  <Aaron.Hawley@uvm.edu>
 +
 +      * misc.texi (Diff Mode): New node.
 +
 +2006-05-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * macos.texi (Mac International): Now Carbon Emacs has ATSUI support.
 +      (Mac Environment Variables): Shorten example line.
 +      (Mac Font Specs): Shorten lisp lines.  Add descriptions for ATSUI.
 +
 +2006-05-01  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GUD Customization): Describe cases %d and %c.
 +      Update description for %e.
 +
 +2006-04-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar.texi (LaTeX Calendar): Mention cal-tex-preamble-extra.
 +
 +2006-04-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * custom.texi (Examining): Update C-h v output example.
 +
 +2006-04-29  Kim F. Storm  <storm@cua.dk>
 +
 +      * building.texi (Grep Searching): Add lgrep and rgrep.
 +
 +2006-04-23  Richard Stallman  <rms@gnu.org>
 +
 +      * emacs.texi [TeX]: Use xresmini.texi instead of xresources.texi.
 +
 +      * xresmini.texi: New file.
 +
 +      * xresources.texi (Face Resources): Split table into font resources
 +      and the rest.  Combine similar attributes for brevity.
 +
 +2006-04-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacs-xtra.texi (MS-DOS File Names): Remove section about
 +      backslashes and case-insensitivity in file names (moved to the
 +      main manual).
 +      (MS-DOS Printing): Move most of the text to the main manual.
 +
 +      * msdog.texi (Windows Files, Windows HOME, MS-Windows Printing):
 +      New nodes.
 +      (Windows Processes, Windows System Menu): Add index entries and
 +      fix wording.
 +
 +2006-04-18  J.D. Smith  <jdsmith@as.arizona.edu>
 +
 +      * misc.texi (Shell Ring): Add notes on saved input when
 +      navigating off the end of the history list.
 +
 +2006-04-18  Chong Yidong  <cyd@mit.edu>
 +
 +      * misc.texi (Shell Options): Correct default value of
 +      comint-scroll-show-maximum-output.
 +
 +2006-04-18  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Watch Expressions): Update.
 +
 +2006-04-12  Richard Stallman  <rms@gnu.org>
 +
 +      * search.texi: Clean up previous change.
 +
 +2006-04-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * search.texi (Regexp Backslash, Regexp Replace): Add index
 +      entries for ``back reference'' and mention the term itself in the
 +      text.
 +
 +2006-04-11  Richard Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Safe File Variables):
 +      Document enable-local-variables = :safe.
 +
 +2006-04-11  Karl Berry  <karl@gnu.org>
 +
 +      * emacs-xtra.texi, emacs.texi (Dired under VC, VC Dired Commands)
 +      (Remote Repositories, Version Backups, Local Version Control)
 +      (Snapshots, Making and Using Snapshots, Snapshot Caveats)
 +      (Miscellaneous Commands and Features of VC, Change Logs and VC)
 +      (Renaming VC Work Files and Master Files)
 +      (Inserting Version Control Headers, Customizing VC, General Options)
 +      (Options for RCS and SCCS, Options specific for CVS): Move all
 +      these nodes to emacs-xtra.texi, for brevity.
 +      * cmdargs.texi, files.texi: Change cross-references.
 +
 +2006-04-11  J.D. Smith  <jdsmith@as.arizona.edu>
 +
 +      * files.texi (Old Versions): Update description of vc-annotate's
 +      use of color to indicate date ranges.
 +
 +2006-04-09  Kevin Ryde  <user42@zip.com.au>
 +
 +      * sending.texi (Mail Sending): In send-mail-function @pxref smtpmail,
 +      put info and printed manual names the right way around.
 +
 +2006-04-09  Karl Berry  <karl@gnu.org>
 +
 +      * msdog.texi, emacs-xtra.texi: Move all the MS-DOS material to
 +      emacs-xtra.texi, leaving only MS Windows information.
 +      * building.texi, emacs.texi, frames.texi, gnu.texi, macos.texi,
 +      * msdog.texi, mule.texi, trouble.texi: Change cross-references and
 +      node names.
 +
 +      * emacs.texi: Move @summarycontents and @contents to the beginning
 +      of the file.
 +
 +2006-04-08  Kevin Ryde  <user42@zip.com.au>
 +
 +      * text.texi (Fill Commands): fill-nobreak-predicate is now a hook.
 +
 +2006-04-07  Richard Stallman  <rms@gnu.org>
 +
 +      * programs.texi (Comments, Comment Commands, Options for Comments)
 +      (Multi-Line Comments): "Align", not "indent".
 +      (Basic Indent): C-j deletes trailing whitespace before the newline.
 +
 +2006-04-06  Richard Stallman  <rms@gnu.org>
 +
 +      * programs.texi (Basic Indent): Clarify relationship of C-j to TAB.
 +
 +2006-04-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * killing.texi (Rectangles): Add index entry for marking a rectangle.
 +
 +2006-04-05  Richard Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Top): Update subnode menu.
 +
 +      * trouble.texi (Unasked-for Search): Node deleted.
 +      (Lossage): Delete from menu.
 +
 +2006-04-04  Richard Stallman  <rms@gnu.org>
 +
 +      * trouble.texi: Various cleanups.
 +      (Checklist): Don't bother saying how to snail a bug report.
 +      (Emergency Escape): Much rewriting.
 +      (After a Crash): Rename the core dump immediately.
 +      (Total Frustration): Call it a psychotherapist.
 +      (Bug Criteria): Avoid "illegal instruction".
 +      (Sending Patches): We always put the contributor's name in.
 +
 +      * misc.texi (Thumbnails): Minor correction.
 +
 +2006-04-03  Richard Stallman  <rms@gnu.org>
 +
 +      * misc.texi (Thumbnails): Minor cleanup.
 +
 +2006-04-02  Karl Berry  <karl@gnu.org>
 +
 +      * sending.texi (Mail Sending): pxref to Top needs five args.
 +
 +      * texinfo.tex: Update to current version (2006-03-21.13).
 +
 +2006-03-31  Richard Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Top): Update subnode menu.
 +
 +      * help.texi (Help Mode): Cleanup.
 +
 +      * dired.texi: Many cleanups.
 +      (Dired Deletion): Describe dired-recursive-deletes.
 +      (Operating on Files): dired-create-directory moved.
 +      (Misc Dired Features): Move to here.
 +      (Tumme): Node moved to misc.texi.
 +
 +      * custom.texi: Many cleanups.
 +      (Minor Modes): Don't mention ISO Accents Mode.
 +      (Examining): Update C-h v output example.
 +      (Hooks): Add index and xref for add-hook.
 +      (Locals): Delete list of vars that are always per-buffer.  Rearrange.
 +      (Local Keymaps): Don't mention lisp-mode-map, c-mode-map.
 +
 +      * misc.texi: Many cleanups.
 +      (beginning): Add to summary of topics.
 +      (Shell): Put eshell xref at the end.  Remove eshell from table.
 +      (Thumbnails): New node.
 +
 +2006-03-28  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.texi (File Name Cache): Make it clear that the cache is
 +      not persistent.
 +
 +2006-03-25  Karl Berry  <karl@gnu.org>
 +
 +      * emacs-xtra.texi, emacs.texi, gnu.texi:
 +      (1) use @copyright{} instead of (C) in typeset text;
 +      (2) do not indent copyright year list (or anything else).
 +
 +2006-03-21  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * files.texi (VC Dired Mode): Remove misplaced brackets.
 +
 +2006-03-21  Andre Spiegel  <spiegel@gnu.org>
 +
 +      * files.texi: Various updates and clarifications in the VC chapter.
 +
 +2006-03-19  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * help.texi (Help Mode): Document "C-c C-c".
 +
 +2006-03-16  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * emacs-xtra.texi (Top): Avoid ugly continuation line in
 +      menu in the standalone Info reader.
 +
 +2006-03-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-xtra.texi (Emerge, Picture Mode, Fortran): New chapters,
 +      moved here from Emacs manual.
 +
 +      * programs.texi (Fortran): Section moved to emacs-xtra.
 +      (Program Modes): Xref to Fortran in emacs-xtra.
 +
 +      * maintaining.texi (Emerge): Move to emacs-xtra.
 +      * files.texi (Comparing Files): Xref to Emerge in emacs-xtra.
 +
 +      * picture.texi: File deleted.
 +      * Makefile.in:
 +      * makefile.w32-in: Remove picture.texi.
 +
 +      * text.texi (Text): Xref to Picture Mode in emacs-xtra.
 +      * abbrevs.texi (Abbrevs):
 +      * sending.texi (Sending Mail): Picture node removed.
 +
 +      * emacs.texi (Top): Update node listings.
 +
 +2006-03-12  Richard Stallman  <rms@gnu.org>
 +
 +      * calendar.texi: Various cleanups.
 +
 +2006-03-11  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * search.texi (Regexps): Use @samp for regexp that is not in Lisp
 +      syntax.
 +
 +2006-03-08  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * search.texi (Regexps): More accurately describe which characters
 +      are special in which situations.  Recommend _not_ to quote `]' or
 +      `-' when they are not special.
 +
 +2006-02-28  Andre Spiegel  <spiegel@gnu.org>
 +
 +      * files.texi (Old Versions): Clarify operation of C-x v =.
 +
 +2006-02-21  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Watch Expressions): Update and describe
 +      gdb-speedbar-auto-raise.
 +
 +2006-02-19  Richard M. Stallman  <rms@gnu.org>
 +
 +      * emacs.texi: Use @smallbook.
 +      (Top): Update ref to Emacs paper, delete ref to Cookbook.
 +      Update subnode menu.
 +
 +      * building.texi (Lisp Interaction): Minor addition.
 +
 +2006-02-18  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Watch Expressions): Update and be more precise.
 +
 +2006-02-15  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 +
 +      * maintaining.texi (Create Tags Table): Explain why the
 +      exception when etags writes to files under the /dev tree.
 +
 +2006-02-14  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Safe File Variables): Lots of clarification.
 +      Renamed from Unsafe File Variables.
 +
 +2006-02-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.texi (Unsafe File Variables): File variable confirmation
 +      assumed denied in batch mode.
 +
 +2006-02-14  Richard M. Stallman  <rms@gnu.org>
 +
 +      * building.texi (GDB User Interface Layout): Don't say `inferior'
 +      for program being debugged.
 +
 +2006-02-15  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB Graphical Interface):
 +      Replace gdb-use-inferior-io-buffer with gdb-use-separate-io-buffer.
 +
 +2006-02-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.texi (Specifying File Variables, Unsafe File Variables):
 +      New nodes, split from File Variables.  Document new file local
 +      variable behavior.
 +
 +2006-02-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * display.texi (Standard Faces):
 +      * files.texi (Visiting):
 +      * frames.texi (Clipboard):
 +      * glossary.texi (Glossary) <Clipboard>:
 +      * xresources.texi (X Resources): Mention Mac OS port.
 +
 +2006-02-12  Richard M. Stallman  <rms@gnu.org>
 +
 +      * building.texi (Building): Clarify topic in intro.
 +
 +      * maintaining.texi (Maintaining): Change title; clarify topic.
 +      Delete duplicate index entries.
 +
 +      * building.texi (Other GDB User Interface Buffers): Clarifications.
 +
 +      * text.texi (Cell Commands): Clarifications.
 +
 +      * programs.texi (Defuns): Delete duplicate explanation of
 +      left-margin paren convention.
 +      (Hungry Delete): Minor cleanup.
 +
 +2006-02-11  Mathias Dahl  <mathias.dahl@gmail.com>
 +
 +      * dired.texi (Tumme): More tumme documentation.
 +
 +2006-02-11  Alan Mackenzie  <acm@muc.de>
 +
 +      * programs.texi ("Hungry Delete"): Correct the appellation of the
 +      backspace and delete keys to @kbd{DEL} and @kbd{DELETE}.
 +
 +2006-02-11  Mathias Dahl  <mathias.dahl@gmail.com>
 +
 +      * dired.texi (Tumme): Fix small bug.
 +
 +2006-02-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * macos.texi (Mac International): Rename "fontset-mac" to
 +      "fontset-standard".
 +
 +2006-02-09  Mathias Dahl  <mathias.dah@gmail.com>
 +
 +      * dired.texi (Tumme): Basic documentation for Tumme added.
 +
 +2006-02-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * mule.texi (International):
 +      * programs.texi (Basic Indent): Fix typos.
 +
 +      * custom.texi (Minor Modes):
 +      * display.texi (Text Display):
 +      * commands.texi (Text Characters): Update xrefs.
 +
 +2006-02-07  Richard M. Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Top): Update subnode menu.
 +      Update info on old Emacs papers.
 +      (Intro): "Graphical display", not window system.
 +
 +      * xresources.texi (GTK styles): Minor clarifications.
 +
 +      * trouble.texi: "Graphical display", not window system.
 +      (Stuck Recursive): Minor clarification.
 +
 +      * text.texi: Minor clarifications.
 +      (Sentences): Explain why two-space convention is better.
 +      Explain sentence-end-without-period here.
 +      (Fill Commands): Not here.
 +      (Refill): Node moved down.
 +      (Filling): Update menu.
 +      (Table Creation, Cell Justification, Column Commands): Clarify.
 +
 +      * sending.texi: Minor clarifications.
 +
 +      * search.texi (Regexp Backslash): Clarification.
 +
 +      * rmail.texi: Minor cleanups.
 +      (Rmail): Delete digression about `rmail-mode'.
 +      (Rmail Inbox): Delete false advice wrt rmail-primary-inbox-list.
 +      (Rmail Files): Mention C-u M-x rmail.
 +      (Rmail Reply): Mention References.
 +      (Rmail Display): Mention rmail-nonignored-headers.
 +
 +      * programs.texi: Minor cleanups.
 +      (Comment Commands): Mention momentary Transient Mark mode.
 +      (Matching): Be more specific about customizing show-paren-mode.
 +      (Info Lookup): Don't list the modes that support C-h S.
 +      Just say what it does in an unsupported mode.
 +      (Man Page): Delete excessive info on customizing woman.
 +      (Motion in C): Don't mention c-for/backward-into-nomenclature.
 +
 +      * abbrevs.texi: Minor clarifications.
 +      (Dabbrev Customization): Talk about "dynamic abbrev expansion",
 +      not "dynamic abbrevs" as if they were a kind of abbrev.
 +
 +      * picture.texi (Picture): Minor cleanup.
 +
 +      * mule.texi (Communication Coding): Say "other applications".
 +      (Fontsets): Not specific to X.  Add xref to X Resources.
 +      (Unibyte Mode): Rename from Single-Byte Character Support.
 +      "Graphical display", not window system.
 +      (International): Update menu.
 +
 +      * maintaining.texi (Format of ChangeLog):
 +      New node, split out from ChangeLog.
 +      (ChangeLog): Clarifications in the remaining text.
 +      (Create Tags Table, Etags Regexps, Select Tags Table): Cleanups.
 +      (Find Tag): Add @w.
 +      (Tags Search): Explain tag table order here.  Simplify grep ref.
 +      (List Tags): tags-tag-face is a variable, not a face.
 +      (Emerge): Cleanups.
 +
 +      * kmacro.texi (Keyboard Macro Counter): Rewrite for clarity.
 +      (Keyboard Macros): Avoid "the user".
 +
 +      * killing.texi: "Graphical display", not window system.
 +
 +      * help.texi (Help Echo): "Graphical display", not window system.
 +
 +      * glossary.texi: Say "you", not "the user".  Say "graphical display".
 +
 +      * frames.texi: Minor cleanups.  "Graphical display", not window system.
 +
 +      * files.texi (Visiting): Make drag-and-drop not X-specific.
 +
 +      * custom.texi: Minor cleanups.  "Graphical display", not window system.
 +
 +      * cmdargs.texi: Minor cleanups.
 +
 +      * building.texi (Compilation): Move and split kill-compilation para.
 +      Add para about multiple compilers.
 +      (Compilation Mode): Commands also available in grep mode and others.
 +      Mention C-u C-x ` more tutorially.  Clarify C-x `.
 +      (Compilation Shell): Clarify.  Put Bash example first.
 +      (Grep Searching): Minor cleanups; add @w.
 +      (Debuggers): Minor cleanups.
 +      (Starting GUD): Make GDB xgraphical mode issue clearer.
 +      (Debugger Operation): Lots of clarifications including
 +      GDB tooltip side-effect issue.
 +      (Commands of GUD): Clarify.
 +      (GUD Customization): Add bashdb-mode-hook.
 +      (GDB Graphical Interface): Rewrite for clarity.
 +      (GDB User Interface Layout): Rewrite for clarity.
 +      (Stack Buffer, Watch Expressions): Likewise.
 +      (Other GDB User Interface Buffers): Cleanups.
 +      (Lisp Libraries, External Lisp): Cleanup.
 +
 +      * basic.texi (Position Info): "Graphical displays", rather than
 +      window systems.
 +
 +      * anti.texi: Minor cleanup.
 +
 +2006-02-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * custom.texi (Init File, Find Init): Add cross-references to
 +      where $HOME is described.
 +
 +2006-02-01  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi (Frame Parameters): Remove @item for S-Mouse-1; it
 +      is not inside the @table.
 +
 +      * emacs.texi (Top): Correct node name.
 +
 +      * files.texi (File Names): Fix @xref.
 +      (Reverting): Fix typo.
 +
 +      * mule.texi (International): Correct node name.
 +
 +      * kmacro.texi (Save Keyboard Macro): Add missing @kbd to @table.
 +
 +2006-02-01  Richard M. Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Top): Update subnode menu.
 +
 +      * mule.texi: Minor clarifications.
 +      Reduce the specific references to X Windows.
 +      Refer to "graphical" terminals, rather than window systems.
 +      (Text Coding): Rename from Specify Coding.
 +      (Communication Coding, File Name Coding, Terminal Coding):
 +      New nodes split out from Text Coding.
 +
 +      * kmacro.texi: Minor clarifications.
 +      (Keyboard Macro Ring): Comment out some excessive commands.
 +      (Basic Keyboard Macro): Split up the table, putting part in each node.
 +
 +      * major.texi: Minor clarifications.
 +
 +      * misc.texi (Single Shell, Interactive Shell): Fix xrefs.
 +
 +      * windows.texi: Minor clarifications.
 +      (Change Window): Don't describe mode-line mouse cmds here.
 +      Add xref to Mode Line Mouse.
 +
 +      * msdog.texi (Text and Binary, MS-DOS and MULE): Fix xrefs.
 +
 +      * macos.texi (Mac International): Fix xref.
 +
 +      * indent.texi: Minor clarifications.
 +
 +      * frames.texi: Minor clarifications.
 +      Reduce the specific references to X Windows.
 +      Refer to "graphical" terminals, rather than window systems.
 +      (Frame Parameters): Don't mention commands like
 +      set-foreground-color.  Just say to customize a face.
 +      (Drag and Drop): Lisp-level stuff moved to Emacs Lisp manual.
 +
 +      * files.texi: Minor clarifications.
 +      (Numbered Backups): New node, split out from Backup Names.
 +
 +      * display.texi (Font Lock): C mode no longer depends on (-in-col-0.
 +
 +      * cmdargs.texi (General Variables): Fix xref.
 +
 +      * buffers.texi: Minor clarifications.
 +
 +2006-01-31  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Scrolling, Horizontal Scrolling, Follow Mode):
 +      Nodes moved to top.
 +
 +      * display.texi: Minor clarifications.
 +      (Display): Rearrange menu.
 +      (Standard Faces): Mention query-replace face.
 +      (Faces): Simplify.
 +      (Font Lock): Simplify face customization info.
 +      (Highlight Changes): Node merged into Highlight Interactively.
 +      (Highlight Interactively): Much rewriting and cleanup.
 +      (Optional Mode Line): Narrowed line number not good for goto-line.
 +      Simplify face customization advice.
 +      (Text Display): Mention use of escape-glyph face.
 +      Move ctl-arrow and tab-width here.
 +      (Display Custom): Move no-redraw-on-reenter to end of node.
 +
 +      * search.texi: Minor clarifications.
 +      (Isearch Scroll): Simplify.
 +      (Other Repeating Search): Document multi-occur-in-matching-buffers.
 +
 +      * regs.texi (Registers): Mention bookmarks here.
 +
 +      * mark.texi: Minor clarifications.
 +      (Selective Undo): Node deleted.
 +
 +      * m-x.texi: Minor clarifications.
 +
 +      * killing.texi: Minor clarifications.
 +      Refer to "graphical" terminals, rather than window systems.
 +
 +      * help.texi: Clarifications.
 +      (Help): Don't describe C-h F and C-h K here.
 +      (Key Help): Describe C-h K here.
 +      (Name Help): Mention Emacs Lisp Intro.
 +      Describe C-h F here.
 +      (Misc Help): Mention C-h F and C-h K only briefly.
 +
 +      * fixit.texi (Undo): New node, mostly copied from basic.texi.
 +      Selective undo text merged in.
 +      (Spelling): Mention Aspell along with Ispell.
 +
 +      * emacs.texi (Top): Update subnode menus.
 +
 +      * basic.texi (Basic Undo): Rename from Undo.  Most of text
 +      moved to new Undo node.
 +
 +2006-01-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * basic.texi (Continuation Lines, Inserting Text):
 +      Mention longlines mode.
 +
 +2006-01-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * screen.texi: Minor cleaups.
 +      (Screen): Clean up the intro paragraphs.
 +      (Mode Line): Lots of rewriting.  Handle frame-name better.
 +      eol-mnemonic-... vars moved out.
 +
 +      * emacs.texi (Top): Change menu item for MS-DOS node.
 +      Update subnode menu.
 +
 +      * msdog.texi (MS-DOS): Rewrite intro to explain how this
 +      chapter relates to Windows.  Title changed.
 +
 +      * mini.texi: Minor cleanups.
 +
 +      * mark.texi (Selective Undo): New node, text moved from basic.texi.
 +      (Mark): Put it in the menu.
 +
 +      * entering.texi: Minor cleanups.
 +
 +      * emacs.texi (Top): Add xref to Mac chapter; explain Windows better.
 +      (Intro): Refer to "graphical" terminals, rather than X.
 +
 +      * display.texi (Display Custom): Add xref to Variables.
 +      (Optional Mode Line): eol-mnemonic-... vars moved here.
 +
 +      * commands.texi: Minor cleanups.  Refer to "graphical" terminals,
 +      rather than X.
 +
 +      * basic.texi: Minor cleanups.
 +      (Undo): selective-undo moved.
 +
 +2006-01-25  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * anti.texi (Antinews): Various corrections and additions.
 +
 +2006-01-23  Juri Linkov  <juri@jurta.org>
 +
 +      * custom.texi (Easy Customization, Customization Groups)
 +      (Browsing Custom): Mention links along with buttons.
 +
 +2006-01-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * text.texi (TeX Print): Use @key for TAB.
 +
 +      * kmacro.texi (Keyboard Macro Step-Edit): Use @key for TAB.
 +
 +2006-01-15  Sven Joachim  <svenjoac@gmx.de>  (tiny change)
 +
 +      * files.texi (File Aliases): Don't claim that usually separate
 +      buffers are created for two file names that name the same data.
 +      Mention additional situations where different names mean the same
 +      file on disk.
 +
 +2006-01-19  Richard M. Stallman  <rms@gnu.org>
 +
 +      * killing.texi (Deletion): Upcase @key argument.
 +
 +      * custom.texi (Custom Themes): Minor cleanup.
 +
 +      * programs.texi (Hungry Delete): Upcase @key argument.
 +
 +2006-01-16  Juri Linkov  <juri@jurta.org>
 +
 +      * display.texi (Standard Faces): Add `mode-line-buffer-id'.
 +      Move `mode-line-highlight' before `mode-line-buffer-id'.
 +
 +2006-01-14  Richard M. Stallman  <rms@gnu.org>
 +
 +      * basic.texi (Inserting Text): Minor cleanup.
 +
 +2006-01-11  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * custom.texi (Changing a Variable, Face Customization):
 +      Update for changes in Custom menus.
 +
 +2006-01-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * macos.texi (Mac International): Undo last change.
 +
 +2006-01-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.texi (Custom Themes): Describe the new
 +      customize-create-theme interface.
 +
 +2005-12-30  Juri Linkov  <juri@jurta.org>
 +
 +      * basic.texi (Position Info): Update example.
 +
 +2005-12-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Dialog Boxes): Add x-gtk-show-hidden-files.
 +
 +2005-12-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.texi (Custom Themes): `load-theme' always loads.
 +
 +2005-12-23  Juri Linkov  <juri@jurta.org>
 +
 +      * display.texi (Highlight Interactively): Use double space to
 +      separate sentences.  Replace C-p with M-p, and C-n with M-n.
 +
 +2005-12-22  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Easy Customization and subnodes):
 +      Replace "active field" with "button".
 +      Use "user option" only for variables.
 +      Use "setting" for variable-or-face.
 +
 +2005-12-22  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * buffers.texi (Select Buffer): Change order in table to make
 +      "Similar" refer to the correct item.
 +      (Indirect Buffers): Minor rewording.
 +
 +2005-12-20  Juri Linkov  <juri@jurta.org>
 +
 +      * files.texi (VC Status): Put P and N near p and n.
 +
 +2005-12-19  Richard M. Stallman  <rms@gnu.org>
 +
 +      * programs.texi (Electric C): Delete the info about newline control.
 +      (Other C Commands): Minor cleanup.
 +      (Left Margin Paren): Minor cleanup.
 +
 +2005-12-19  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * custom.texi (Easy Customization): Add "Browsing Custom" to menu.
 +      (Customization Groups): Delete text moved to "Browsing Custom".
 +      (Browsing Custom): New node.
 +      (Specific Customization): Clarify which commands only work for
 +      loaded options.
 +
 +2005-12-18  Bill Wohler  <wohler@newt.com>
 +
 +      * frames.texi (Tool Bars): Shorten text of previous change.
 +
 +2005-12-18  Aaron S. Hawley  <Aaron.Hawley@uvm.edu>
 +
 +      * files.texi (VC Status): Document log-view mode.
 +
 +2005-12-18  Bill Wohler  <wohler@newt.com>
 +
 +      * frames.texi (Tool Bars): Mention that you can turn off tool bars
 +      permanently via the customize interface.
 +
 +2005-12-16  Ralf Angeli  <angeli@iwi.uni-sb.de>
 +
 +      * killing.texi (Killing by Lines): Document `kill-whole-line'
 +      function.
 +
 +2005-12-16  L\e$,1 q\e(Brentey K\e,Aa\e(Broly  <lorentey@elte.hu>
 +
 +      * buffers.texi (Select Buffer): Change `prev-buffer' to
 +      `previous-buffer'.  Indicate that these functions use a frame
 +      local buffer list.
 +
 +2005-12-12  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Easy Customization): Change menu comment.
 +      (Prefix Keymaps): Fix spelling of Control-X-prefix.
 +
 +      * help.texi (Apropos): Rewrite.  Talk about "apropos patterns".
 +      (Help): Among the Apropos commands, describe only C-h a here.
 +
 +2005-12-11  Richard M. Stallman  <rms@gnu.org>
 +
 +      * programs.texi (Options for Comments): Comment-end starts with space.
 +
 +      * glossary.texi (Glossary): Minor cleanup.
 +
 +      * files.texi (Old Versions): Use @table.
 +
 +2005-12-10  David Koppelman  <koppel@ece.lsu.edu>
 +
 +      * display.texi (Highlight Interactively): Include
 +      global-hi-lock-mode.  Add miscellaneous details and elaborations.
 +
 +2005-12-09  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Font Lock): Delete the Global FL menu item.
 +
 +2005-12-09  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * custom.texi (Minibuffer Maps): Mention the maps for file name
 +      completion.
 +
 +2005-12-09  Kim F. Storm  <storm@cua.dk>
 +
 +      * killing.texi (CUA Bindings): Describe how to use C-x and C-c as
 +      prefix keys even when mark is active.  Decribe that RET moves
 +      cursor to next corner in rectangle; clarify insert around rectangle.
 +
 +2005-12-08  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * custom.texi (Customization): Use xref to elisp manual for
 +      non-TeX output.
 +      (Minor Modes): Update.
 +      (Customization Groups, Changing a Variable, Face Customization):
 +      Update for new appearance of Custom buffers.
 +      (Changing a Variable): `custom-buffer-done-function' has been
 +      replaced by `custom-buffer-done-kill'.
 +      (Specific Customization): In the `customize-group' buffer, a
 +      subgroup's contents are not "hidden".  They are not included at
 +      all.  They have no [Show] button.
 +      (Mouse Buttons): Add pxref to description of mouse event lists in
 +      Elisp manual.  Add `menu-bar' and `header-line' dummy prefix keys.
 +      (Find Init): Emacs now looks for ~/.emacs.d/init.el instead of
 +      ~/.emacs.d/.emacs, if it can not find ~/.emacs(.el).
 +
 +2005-12-08  Richard M. Stallman  <rms@gnu.org>
 +
 +      * mini.texi (Completion Commands, Completion):
 +      In file name input, SPC does not do completion.
 +
 +2005-12-08  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB Graphical Interface): Explain screen size
 +      setting.
 +      (Other GDB User Interface Buffers): Describe features specific to
 +      GDB 6.4.
 +
 +2005-12-01  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB User Interface Layout): Describe how to
 +      kill associated buffers.
 +      (Breakpoints Buffer): Use D instead of d for gdb-delete-breakpoint.
 +      (Watch Expressions): Be more precise.
 +      (Other GDB User Interface Buffers): Describe how to change a
 +      register value.
 +
 +2005-11-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * macos.texi (Mac Input): Remove description of
 +      mac-command-key-is-meta.  Add descriptions of
 +      mac-control-modifier, mac-command-modifier, and
 +      mac-option-modifier.
 +      (Mac International): Fix description of conversion of clipboard data.
 +      (Mac Font Specs): Add example of font customization by face attributes.
 +
 +2005-11-22  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Watch Expressions): Expand description.
 +      (Other GDB User Interface Buffers): Describe local map for
 +      gud-watch.
 +
 +2005-11-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Font Lock): Font lock is enabled by default now.
 +
 +2005-11-20  Juri Linkov  <juri@jurta.org>
 +
 +      * basic.texi (Position Info): Update examples of the output.
 +      Remove the fact that examples are produced in the TeXinfo buffer,
 +      because in the Info reader users will get a different output from
 +      `C-x ='.
 +
 +      * building.texi (Compilation Mode): Remove paragraph duplicated
 +      from the node `Compilation'.  Add `compilation-skip-threshold'.
 +
 +      * display.texi (Font Lock): Suggest more user-friendly method of
 +      finding all Font Lock faces (M-x customize-group RET font-lock-faces).
 +
 +2005-11-18  Richard M. Stallman  <rms@gnu.org>
 +
 +      * files.texi (Registering): Mention @@ in mode line.
 +
 +      * mini.texi (Minibuffer File): Clarify previous change.  Add @findex.
 +
 +2005-11-08  Aaron S. Hawley  <Aaron.Hawley@uvm.edu>
 +
 +      * files.texi (Renaming and VC): Some back-ends don't
 +      handle renaming.
 +
 +2005-11-17  Juri Linkov  <juri@jurta.org>
 +
 +      * emacs.texi (Top):
 +      * display.texi (Highlight Interactively): Put this font-lock based
 +      mode near Font Lock node.
 +
 +2005-11-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ack.texi (Acknowledgments): Acknowledge Andrew Zhilin for Emacs
 +      icons.
 +
 +2005-11-12  Kim F. Storm  <storm@cua.dk>
 +
 +      * help.texi (Help): Fix C-h a entry.  Add C-h d entry.
 +      (Help Summary): Add C-h d and C-h e.
 +      (Apropos): Clarify that all apropos commands may search for either
 +      list of words or a regexp.  Add C-h d for apropos-documentation.
 +      Describe apropos-documentation-sort-by-scores user option.
 +
 +2005-11-09  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * killing.texi (CUA Bindings): Add @section.
 +
 +2005-11-10  Kim F. Storm  <storm@cua.dk>
 +
 +      * emacs.texi (Top): Add CUA Bindings entry to menu.
 +
 +      * killing.texi (CUA Bindings): New node.  Moved here from
 +      misc.texi and extended with info on rectangle commands and
 +      rectangle highlighting, interface to registers, and the global
 +      mark feature.
 +
 +      * misc.texi (Emulation): Move CUA bindings item to killing.texi.
 +
 +      * regs.texi: Prev link points to CUA Bindings node.
 +
 +2005-11-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * help.texi (Help Echo): By default, help echos are only shown on
 +      mouse-over, not on point-over.
 +
 +2005-11-04  J\e,Ai\e(Br\e,At\e(Bme Marant  <jerome@marant.org>
 +
 +      * misc.texi (Shell Mode): Describe how to activate password echoing.
 +
 +2005-11-04  Romain Francoise  <romain@orebokech.com>
 +
 +      * mark.texi (Mark Ring): Fix typo.
 +
 +2005-11-03  Richard M. Stallman  <rms@gnu.org>
 +
 +      * mark.texi (Mark Ring): Mention set-mark-command-repeat-pop.
 +
 +2005-11-01  Bill Wohler  <wohler@newt.com>
 +
 +      * help.texi (Help Mode): Fix typo.
 +
 +2005-11-01  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Other GDB User Interface Buffers): Describe
 +      the command gdb-use-inferior-io-buffer.
 +
 +2005-10-31  Romain Francoise  <romain@orebokech.com>
 +
 +      * files.texi (Compressed Files): Fix typo.
 +
 +      * buffers.texi (Misc Buffer): Downcase `*shell*'.
 +
 +      * windows.texi (Force Same Window): Likewise.
 +
 +2005-10-30  Bill Wohler  <wohler@newt.com>
 +
 +      * help.texi (Help Mode): URLs viewed with browse-url.
 +
 +2005-10-31  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB Graphical Interface): Don't reference
 +      gdb-mouse-set-clear-breakpoint.  Explain gdb-mouse-until
 +      must stay in same frame.
 +
 +2005-10-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.texi (Init File): Document ~/.emacs.d/init.el.
 +
 +      * anti.texi (Antinews): Likewise.
 +
 +2005-10-28  Bill Wohler  <wohler@newt.com>
 +
 +      * help.texi (Help): Help mode now creates hyperlinks for URLs.
 +
 +2005-10-28  Richard M. Stallman  <rms@gnu.org>
 +
 +      * files.texi (Visiting): Explain how to enter ? in a file name.
 +
 +      * trouble.texi (Memory Full): Mention !MEM FULL! in mode line.
 +
 +2005-10-25  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB Graphical Interface): Describe
 +      gdb-mouse-until.
 +
 +2005-10-23  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Init File): Recommend when to use site-start.el.
 +
 +2005-10-21  Juri Linkov  <juri@jurta.org>
 +
 +      * custom.texi (Examining): Mention accessing the old variable
 +      value via M-n in set-variable.
 +
 +2005-10-18  Romain Francoise  <romain@orebokech.com>
 +
 +      * files.texi (Version Systems): Capitalize GNU.
 +
 +2005-10-18  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Compilation Mode): Remove redundant paragraph.
 +      (Watch Expressions): Remove paragraph to reflect code change.
 +
 +2005-10-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * building.texi (Compilation Mode, Compilation): Clarified.
 +
 +2005-10-15  Richard M. Stallman  <rms@gnu.org>
 +
 +      * misc.texi (Saving Emacs Sessions): Mention savehist library.
 +
 +2005-10-13  Kenichi Handa  <handa@m17n.org>
 +
 +      * basic.texi (Position Info): Fix previous change.
 +
 +2005-10-12  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * cmdargs.texi (Icons X): Fix typo.
 +
 +2005-10-12  Kenichi Handa  <handa@m17n.org>
 +
 +      * basic.texi (Position Info): Describe the case that Emacs shows
 +      "part of display ...".
 +
 +2005-10-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * cmdargs.texi (Icons X): -nb => -nbi.
 +
 +2005-10-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frames.texi (Speedbar): A couple more clarifications.
 +
 +2005-10-11  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB User Interface Layout): Improve diagram.
 +      (Watch Expressions): Explain how to make speedbar global.
 +      (Other GDB User Interface Buffers): Make references more precise.
 +
 +2005-10-09  Richard M. Stallman  <rms@gnu.org>
 +
 +      * frames.texi (Speedbar): Clarify the text.
 +
 +2005-10-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frames.texi (Speedbar): Add information on keybindings,
 +      dismissing the speedbar, and buffer display mode.  Link to
 +      speedbar manual.
 +
 +2005-10-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * cmdargs.texi (Icons X): Removed options -i, -itype, --icon-type,
 +      added -nb, --no-bitmap-icon.
 +
 +2005-10-07  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB Graphical Interface): Add variables and
 +      functions to indices.  Be more precise.
 +
 +2005-10-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Drag and Drop): Remove the x- from
 +      x-dnd-open-file-other-window and xdnd-protocol-alist.
 +
 +2005-09-30  Romain Francoise  <romain@orebokech.com>
 +
 +      * mini.texi (Minibuffer): The default value now appears before the
 +      colon in minibuffer prompts.
 +
 +2005-09-25  Richard M. Stallman  <rms@gnu.org>
 +
 +      * search.texi (Regexp Search): Doc search-whitespace-regexp.
 +
 +2005-09-20  Emanuele Giaquinta  <emanuele.giaquinta@gmail.com>  (tiny change)
 +
 +      * text.texi (Paragraphs): Correction about Paragraph-Indent Text mode.
 +
 +2005-09-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * emacs.texi (Top): Update submenus from macos.texi.
 +
 +      * macos.texi: Change `Mac OS 8 or 9' to `Mac OS Classic'.
 +      (Mac OS): Update feature support status.
 +      (Mac Input): List supported input scripts.  Remove description
 +      about `mac-keyboard-text-encoding'.  Mention mouse button
 +      emulation and related variables.
 +      (Mac International): Mention Central European and Cyrillic
 +      support.  Now `keyboard-coding-system' is dynamically changed.
 +      Add description about coding system for selection.  Add
 +      description about language environment.
 +      (Mac Environment Variables): Mention
 +      `~/.MacOSX/environment.plist'.  Give example of command line
 +      arguments.  Add Preferences support.
 +      (Mac Directories): Explicitly state that this node is for Mac OS
 +      Classic only.
 +      (Mac Font Specs): Mention specification for scalable fonts.  List
 +      supported charsets.  Add preferred way of creating fontsets.  Add
 +      description about `mac-allow-anti-aliasing'.
 +      (Mac Functions): Add descriptions about `mac-set-file-creator',
 +      `mac-get-file-creator', `mac-set-file-type', `mac-get-file-type',
 +      and `mac-get-preference'.
 +
 +2005-09-16  Romain Francoise  <romain@orebokech.com>
 +
 +      Update all files to specify GFDL version 1.2.
 +
 +      * doclicense.texi (GNU Free Documentation License): Update to
 +      version 1.2.
 +
 +2005-09-15  Richard M. Stallman  <rms@gnu.org>
 +
 +      * buffers.texi (List Buffers): Fix xref.
 +
 +      * rmail.texi (Rmail Basics): Fix xref.
 +
 +      * emacs.texi (Top): Update subnode menus.
 +
 +      * files.texi (Saving Commands): New node, broken out of Saving.
 +      (Customize Save): New node, broken out of Saving.
 +      Clarify effect of write-region-inhibit-fsync.
 +      (Misc File Ops): Say write-region-inhibit-fsync affects write-region.
 +
 +2005-09-14  Romain Francoise  <romain@orebokech.com>
 +
 +      * files.texi (Saving): Mention write-region-inhibit-fsync.
 +
 +2005-09-05  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.texi (Custom Themes): New node.
 +
 +2005-09-03  Richard M. Stallman  <rms@gnu.org>
 +
 +      * search.texi (Search Case): Mention vars that control
 +      case-fold-search for various operations.
 +
 +2005-08-22  Juri Linkov  <juri@jurta.org>
 +
 +      * display.texi (Standard Faces): Merge the text from
 +      `(elisp)Standard Faces' into this node.
 +
 +2005-08-18  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * emacs.texi (Top): Delete menu item for deleted node
 +      Keyboard Translations.
 +
 +2005-08-18  Richard M. Stallman  <rms@gnu.org>
 +
 +      * trouble.texi (Unasked-for Search):
 +      Delete xref to Keyboard Translations.
 +
 +      * glossary.texi (Glossary): Delete xref.
 +
 +      * custom.texi (Minor Modes): Say that the list here is not complete.
 +      (Keyboard Translations): Node deleted.
 +      (Disabling): Delete xref to it.
 +      (Customization Groups): Fix Custom buffer example.
 +      (Hooks): Mention remove-hooks.
 +
 +2005-08-17  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * building.texi (GDB Graphical Interface): Improve filling of menu
 +      item.
 +
 +2005-08-18  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (GDB Graphical Interface): Use better node names.
 +
 +2005-08-14  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Sentences): Fix xref.
 +
 +2005-08-14  Juri Linkov  <juri@jurta.org>
 +
 +      * building.texi (Compilation, Grep Searching): Move grep command
 +      headings from `Compilation' to `Grep Searching'.
 +
 +      * dired.texi (Dired and Find):
 +      * maintaining.texi (Tags Search): Replace grep xref to
 +      `Compilation' node with `Grep Searching'.
 +
 +      * files.texi (Comparing Files): Replace xref to `Compilation' with
 +      `Compilation Mode'.
 +
 +2005-08-13  Alan Mackenzie  <acm@muc.de>
 +
 +      * search.texi (Non-ASCII Isearch): Correct a typo.
 +      (Replacement Commands): Mention query-replace key binding.
 +
 +2005-08-11  Richard M. Stallman  <rms@gnu.org>
 +
 +      * programs.texi (Options for Comments): Fix xref.
 +
 +      * search.texi (Regexp Backslash, Regexp Example): New nodes split
 +      out of Regexps.
 +
 +2005-08-09  Juri Linkov  <juri@jurta.org>
 +
 +      * building.texi (Compilation): Use `itemx' instead of `item'.
 +      (Grep Searching): Simplify phrase.
 +
 +      * display.texi (Standard Faces): Describe vertical-border on
 +      window systems.
 +
 +      * windows.texi (Split Window): Simplify phrase and mention
 +      vertical-border face.
 +
 +2005-08-09  Richard M. Stallman  <rms@gnu.org>
 +
 +      * files.texi (Comparing Files): Clarify compare-windows.
 +
 +      * calendar.texi (Scroll Calendar): Document < and > in calendar.
 +
 +2005-08-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mule.texi (Coding Systems): Rephrase the paragraph about
 +      codepages: no need for "M-x codepage-setup" anymore, except on
 +      MS-DOS.
 +
 +      * msdog.texi (MS-DOS and MULE): Clarify that this section is for
 +      the MS-DOS port only.
 +
 +2005-07-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (info): Don't run multi-install-info.bat.
 +      ($(infodir)/dir): New target, produced by running
 +      multi-install-info.bat.
 +
 +2005-07-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.texi (Quoted File Names): Add index entry.
 +
 +2005-07-19  Juri Linkov  <juri@jurta.org>
 +
 +      * files.texi (Comparing Files): Mention resync for `compare-windows'.
 +
 +2005-07-18  Juri Linkov  <juri@jurta.org>
 +
 +      * custom.texi (Easy Customization):
 +      * files.texi (Old Versions):
 +      * frames.texi (Wheeled Mice):
 +      * mule.texi (Specify Coding):
 +      * text.texi (Cell Justification):
 +      * trouble.texi (After a Crash):
 +      * xresources.texi (GTK styles):
 +      Delete duplicate duplicate words.
 +
 +2005-07-17  Richard M. Stallman  <rms@gnu.org>
 +
 +      * frames.texi (Creating Frames): Fix foreground color example.
 +
 +      * custom.texi (Init Examples): Clean up text about conditionals.
 +
 +2005-07-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * mini.texi (Completion Commands): Fix command name for ?.
 +
 +2005-07-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * display.texi (Standard Faces): Explain that customization of
 +      `menu' face has no effect on w32 and with GTK.  Add
 +      cross-references.
 +
 +      * cmdargs.texi (General Variables): Clarify the default location
 +      of $HOME on w32 systems.
 +
 +2005-07-15  Jason Rumney  <jasonr@gnu.org>
 +
 +      * cmdargs.texi (General Variables): Default HOME on MS Windows has
 +      changed.
 +
 +2005-07-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * mule.texi (Recognize Coding): Recommend
 +      revert-buffer-with-coding-system instead of revert-buffer.
 +
 +2005-07-07  Richard M. Stallman  <rms@gnu.org>
 +
 +      * anti.texi (Antinews): Mention mode-line-inverse-video.
 +
 +      * files.texi (Saving): Minor correction about C-x C-w.
 +
 +      * display.texi (Display Custom): Don't mention mode-line-inverse-video.
 +
 +2005-07-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * search.texi (Isearch Scroll): Add example of using the
 +      `isearch-scroll' property.
 +      (Slow Isearch): Reference anchor for `baud-rate' instead of entire
 +      `Display Custom' node.
 +      (Regexp Replace): Put text that requires Emacs Lisp knowledge last
 +      and de-emphasize it.
 +      (Other Repeating Search): `occur' currently can not correctly
 +      handle multiline matches.  Correct, clarify and update description
 +      of `flush-lines' and `keep-lines'.
 +
 +      * display.texi (Display Custom): Add anchor for `baud-rate'.
 +
 +2005-07-07  Richard M. Stallman  <rms@gnu.org>
 +
 +      * gnu.texi: Update where to get GNU status; add refs for how to help.
 +      Add footnotes 6 and 7.
 +
 +2005-07-04  Lute Kamstra  <lute@gnu.org>
 +
 +      Update FSF's address in GPL notices.
 +
 +      * doclicense.texi (GNU Free Documentation License):
 +      * trouble.texi (Checklist): Update FSF's address.
 +
 +2005-06-24  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Text Display): Change index entries.
 +
 +2005-06-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (MAKEINFO): Use --force.
 +      (INFO_TARGETS, DVI_TARGETS): Make identical to the lists in
 +      Makefile.in.
 +
 +2005-06-23  Richard M. Stallman  <rms@gnu.org>
 +
 +      * anti.texi (Antinews): Renamed show-nonbreak-escape to
 +      nobreak-char-display.
 +
 +      * emacs.texi (Top): Update detailed node listing.
 +
 +      * display.texi (Text Display): Renamed show-nonbreak-escape
 +      to nobreak-char-display and no-break-space to nobreak-space.
 +      (Standard Faces): Split up the list of standard faces
 +      and put it in a separate node.  Add nobreak-space and
 +      escape-glyph.
 +
 +2005-06-23  Lute Kamstra  <lute@gnu.org>
 +
 +      * mule.texi (Select Input Method): Fix typo.
 +
 +2005-06-23  Kenichi Handa  <handa@m17n.org>
 +
 +      * mule.texi (International): List all supported scripts.  Adjust
 +      text for that leim is now included in the normal Emacs
 +      distribution.
 +      (Language Environments): List all language environments.
 +      Intlfonts contains fonts for most supported scripts, not all..
 +      (Select Input Method): Refer to C-u C-x = to see how to type to
 +      input a specifc character.
 +      (Recognize Coding): Fix typo, china-iso-8bit -> chinese-iso-8bit.
 +
 +2005-06-23  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * building.texi (Grep Searching): Texinfo usage fix.
 +
 +2005-06-22  Miles Bader  <miles@gnu.org>
 +
 +      * display.texi (Faces): Change `vertical-divider' to `vertical-border'.
 +
 +2005-06-20  Miles Bader  <miles@gnu.org>
 +
 +      * display.texi (Faces): Add `vertical-divider'.
 +
 +2005-06-17  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Adaptive Fill): Minor clarification.
 +
 +2005-06-10  Lute Kamstra  <lute@gnu.org>
 +
 +      * emacs.texi (Top): Correct version number.
 +      * anti.texi (Antinews): Correct version number.  Use EMACSVER to
 +      refer to the current version of Emacs.
 +
 +2005-06-08  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * files.texi (Log Buffer): Document when there can be more than
 +      one file to be committed.
 +
 +2005-06-08  Juri Linkov  <juri@jurta.org>
 +
 +      * display.texi (Faces): Add `shadow' face.
 +
 +2005-06-07  Masatake YAMATO  <jet@gyve.org>
 +
 +      * display.texi (Faces): Write about mode-line-highlight.
 +
 +2005-06-06  Richard M. Stallman  <rms@gnu.org>
 +
 +      * misc.texi (Printing Package): Explain how to initialize
 +      printing package.
 +
 +      * cmdargs.texi (Action Arguments): Clarify directory default for -l.
 +
 +2005-06-05  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs.texi: Rename Hardcopy to Printing.
 +      Make PostScript and PostScript Variables subnodes of it.
 +
 +      * misc.texi (Printing): Rename node from Hardcopy.
 +      Mention menu bar options.
 +      Move PostScript and PostScript Variables to submenu.
 +      (Printing package): New node.
 +
 +      * mark.texi (Using Region): Change Hardcopy xref to Printing.
 +
 +      * dired.texi (Operating on Files): Likewise.
 +
 +      * calendar.texi (Displaying the Diary): Likewise.
 +
 +      * msdog.texi (MS-DOS Printing, MS-DOS Processes): Likewise.
 +
 +      * glossary.texi (Glossary): Likewise.
 +
 +      * frames.texi (Mode Line Mouse): Mention mode-line-highlight
 +      effect.
 +
 +2005-06-04  Richard M. Stallman  <rms@gnu.org>
 +
 +      * trouble.texi (After a Crash): Polish previous change.
 +
 +2005-05-30  Noah Friedman  <friedman@splode.com>
 +
 +      * trouble.texi (After a Crash): Mention emacs-buffer.gdb as a
 +      recovery mechanism.
 +
 +2005-05-28  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Other Buffers): SPC toggles display of
 +      floating point registers.
 +
 +2005-05-27  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * files.texi (Log Buffer): Merge in description of Log Edit
 +      mode from pcl-cvs.texi.
 +
 +2005-05-26  Richard M. Stallman  <rms@gnu.org>
 +
 +      * building.texi (Lisp Eval): C-M-x with arg runs Edebug.
 +
 +2005-05-24  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * fixit.texi (Spelling): Delete confusing sentence; flyspell is
 +      not enabled by default.
 +      When not on a word, `ispell-word' by default checks the word
 +      before point.
 +
 +2005-05-24  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Debugger Operation): Simplify last sentence.
 +
 +2005-05-23  Lute Kamstra  <lute@gnu.org>
 +
 +      * emacs.texi: Update FSF's address throughout.
 +      (Preface): Use @cite.
 +      (Distrib): Add cross reference to the node "Copying".  Mention the
 +      FDL.  Don't refer to etc/{FTP,ORDERS}.  Mention the sale of
 +      printed manuals.
 +      (Intro): Use @xref for the Emacs Lisp Intro.
 +
 +2005-05-18  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * buffers.texi (Select Buffer): Document `C-u M-g M-g'.
 +
 +      * basic.texi (Moving Point): Mention default for `goto-line'.
 +
 +      * programs.texi (Lisp Doc): Eldoc mode shows only the first line
 +      of a variable's docstring.
 +
 +2005-05-18  Lute Kamstra  <lute@gnu.org>
 +
 +      * maintaining.texi (Overview of Emerge): Add cross reference.
 +      Remove duplication.
 +
 +      * emacs.texi (Top): Update to the current structure of the manual.
 +      * misc.texi (Emacs Server): Add menu description.
 +      * files.texi (Saving): Fix menu.
 +      * custom.texi (Customization): Fix menu.
 +      * mule.texi (International): Fix menu.
 +      * kmacro.texi (Keyboard Macros): Fix menu.
 +
 +2005-05-16  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi: Various minor changes.
 +      (Faces): Delete text that is repeated in the next section.
 +
 +2005-05-16  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Debugger Operation): Mention GUD tooltips are
 +      disabled with GDB in text command mode.
 +
 +2005-05-16  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi: Replace toolbar with "tool bar" for consistency.
 +      (Compilation Mode): Describe compilation-context-lines
 +      and use of arrow in compilation buffer.
 +      (Debugger Operation): Replace help text with variable's value.
 +
 +      * frames.texi (Tooltips): Replace toolbar with "tool bar" for
 +      consistency.
 +
 +2005-05-15  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * major.texi (Choosing Modes): normal-mode processes the -*- line.
 +      Add xref.
 +
 +2005-05-14  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * basic.texi (Moving Point): Mention `M-g g' binding for `goto-line'.
 +      (Position Info): Delete discussion of `goto-line'.  It is already
 +      described in `Moving point'.
 +
 +      * mini.texi (Completion Commands): Correct reference.
 +      (Completion Options): Fix typo.
 +
 +      * killing.texi (Deletion): Complete description of `C-x C-o'.
 +
 +2005-05-10  Richard M. Stallman  <rms@gnu.org>
 +
 +      * building.texi (Compilation): Clarify recompile's directory choice.
 +
 +      * frames.texi (Tooltips): Cleanups.
 +
 +      * basic.texi (Arguments): Fix punctuation.
 +
 +2005-05-09  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * screen.texi (Menu Bar): The up and down (not left and right)
 +      arrow keys move through a keyboard menu.
 +
 +2005-05-08  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * basic.texi: Various typo and grammar fixes.
 +      (Moving Point): C-a now runs move-beginning-of-line.
 +
 +2005-05-08  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Debugger Operation): Describe gud-tooltip-echo-area.
 +
 +      * frames.texi (Tooltips): Describe help tooltips and GUD tooltips
 +      as different animals.
 +
 +2005-05-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi (Mouse References): Clarify `mouse-1-click-follows-link'.
 +      Correct index entry.
 +
 +2005-05-07  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Debugger Operation): Update to reflect changes
 +      in GUD tooltips.
 +
 +2005-04-30  Richard M. Stallman  <rms@gnu.org>
 +
 +      * files.texi (Compressed Files): Auto Compression normally enabled.
 +
 +      * building.texi (Debugger Operation): Clarify previous change.
 +
 +2005-04-28  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Debugger Operation): Add description for
 +      GUD tooltips when program is not running.
 +
 +2005-04-26  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * misc.texi (Shell): Add `Shell Prompts' to menu.
 +      (Shell Mode): Add xref to `Shell Prompts'.  Clarify `C-c C-u'
 +      description.  Delete remarks moved to new node.
 +      (Shell Prompts): New node.
 +      (History References): Replace remarks moved to `Shell Prompts'
 +      with xref to that node.
 +      (Remote Host): Clarify how to specify the terminal type when
 +      logging in to a different machine.
 +
 +2005-04-26  Richard M. Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Top): Update submenus from files.texi.
 +
 +      * files.texi (Filesets): Clarify previous change.
 +
 +      * dired.texi (Misc Dired Features): Clarify previous change.
 +
 +2005-04-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ack.texi (Acknowledgments): Delete info about iso-acc.el.
 +
 +      * dired.texi (Misc Dired Features): Document
 +      dired-compare-directories.
 +
 +      * files.texi (Filesets): New node.
 +      (File Conveniences): Document Image mode.
 +
 +      * text.texi (TeX Print): Document tex-compile.
 +
 +2005-04-25  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi (Tooltips): Tooltip mode is enabled by default.
 +      Delete redundant reference to tooltip Custom group.  It is
 +      referred too again in the next paragraph.
 +
 +2005-04-24  Richard M. Stallman  <rms@gnu.org>
 +
 +      * ack.texi: Delete info about lazy-lock.el and fast-lock.el.
 +
 +2005-04-19  Kim F. Storm  <storm@cua.dk>
 +
 +      * building.texi (Compilation Mode): Add M-g M-n and M-g M-p bindings.
 +
 +2005-04-18  Lars Hansen  <larsh@math.ku.dk>
 +
 +      * misc.texi (Saving Emacs Sessions): Add that "--no-desktop" now
 +      turns off desktop-save-mode.
 +
 +2005-04-17  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi (XTerm Mouse): Xterm Mouse mode is no longer enabled
 +      by default in terminals compatible with xterm.  Mention that
 +      xterm-mouse-mode is a minor mode and put in pxref to Minor Modes
 +      node.
 +
 +2005-04-12  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi (XTerm Mouse): Xterm Mouse mode is now enabled by default.
 +
 +2005-04-12  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * xresources.texi (Table of Resources): Add cursorBlink.
 +
 +2005-04-11  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * rmail.texi (Rmail Summary Edit): Explain numeric arguments to
 +      `d', `C-d' and `u'.
 +
 +2005-04-11  Richard M. Stallman  <rms@gnu.org>
 +
 +      * cmdargs.texi (Initial Options): -Q is now --quick, and does less.
 +      (Misc X): Add -D, --basic-display.
 +
 +      * maintaining.texi (Change Log): Correct the description of
 +      the example.
 +
 +      * major.texi (Choosing Modes): Document magic-mode-alist.
 +
 +2005-04-10  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * rmail.texi (Rmail Basics): Clarify description of `q' and `b'.
 +      (Rmail Deletion): `C-d' in RMAIL buffer does not accept a numeric arg.
 +      (Rmail Inbox): Give full name of `rmail-primary-inbox-list'.
 +      (Rmail Output): Clarify which statements apply to `o', `C-o' and
 +      `w', respectively.
 +      (Rmail Labels): Mention `l'.
 +      (Rmail Attributes): Correct pxref.  Mention `stored' attribute.
 +      (Rmail Summary Edit): Describe `j' and RET.
 +
 +2005-04-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * xresources.texi (Lucid Resources): Add fontSet resource.
 +
 +2005-04-09  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi (Useless Whitespace): `indicate-unused-lines' is
 +      now called `indicate-empty-lines'.
 +
 +2005-04-06  Kim F. Storm  <storm@cua.dk>
 +
 +      * cmdargs.texi (Initial Options): Add --bare-bones alias for -Q.
 +
 +2005-04-04  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * dired.texi (Dired Visiting): `dired-view-command-alist' has been
 +      deleted.
 +      (Marks vs Flags): Add some convenient key bindings.
 +      (Hiding Subdirectories): Delete redundant and inaccurate sentence.
 +      (Misc Dired Features): Correct and expand description of `w' command.
 +
 +      * frames.texi (XTerm Mouse): Delete apparently false info.
 +      The GNU/Linux console currently does not appear to support
 +      `xterm-mouse-mode'.
 +
 +2005-04-03  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * calendar.texi (Diary): Mention shell utility `calendar'.
 +
 +2005-04-01  Richard M. Stallman  <rms@gnu.org>
 +
 +      * cmdargs.texi (Misc X): Explain horizontal scroll bars don't exist.
 +
 +2005-04-01  Lute Kamstra  <lute@gnu.org>
 +
 +      * maintaining.texi (Change Log): add-change-log-entry uses
 +      add-log-mailing-address.
 +
 +2005-03-31  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * files.texi (Reverting): Move `auto-revert-check-vc-info' to
 +      `VC Mode Line' and put in an xref to that node.
 +      (VC Mode Line): Move `auto-revert-check-vc-info' here and clarify
 +      its description.
 +
 +2005-03-31  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * calendar.texi (Calendar Systems): Say that the Persian calendar
 +      implemented here is the arithmetical one championed by Birashk.
 +
 +2005-03-30  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * programs.texi (Fortran Motion): Fix previous change.
 +
 +2005-03-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * mule.texi (Single-Byte Character Support): Reinstall the C-x 8 info.
 +
 +2005-03-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * text.texi (Refill): Refer to Long Lines Mode.
 +      (Longlines): New node.
 +      (Auto Fill): Don't index "word wrap" here.
 +      (Filling): Add Longlines to menu.
 +
 +2005-03-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * xresources.texi: Minor fixes.
 +
 +      * misc.texi (Emacs Server): Fix Texinfo usage.
 +
 +      * emacs.texi (Top): Don't use a real section heading for
 +      "Detailed Node Listing".  Fake it instead.
 +
 +      * basic.texi (Position Info): Minor cleanup.
 +
 +      * mule.texi (Input Methods): Minor cleanup.
 +
 +2005-03-29  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * programs.texi (ForIndent Vars): `fortran-if-indent' does other
 +      constructs as well.
 +      (Fortran Motion): Add fortran-end-of-block, fortran-beginning-of-block.
 +
 +2005-03-29  Kenichi Handa  <handa@m17n.org>
 +
 +      * mule.texi (Input Methods): Refer to the command C-u C-x =.
 +
 +      * basic.texi (Position Info): Update the description about the
 +      command C-u C-x =.
 +
 +2005-03-28  Richard M. Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Top): Use @section for the detailed node listing.
 +
 +      * calendar.texi: Minor fixes to previous change.
 +
 +      * programs.texi (Fortran): Small fixes to previous changes.
 +
 +      * emacs.texi (Top): Update list of subnodes of Dired.
 +      Likewise for building.texi.
 +
 +      * files.texi (File Conveniences): Delete Auto Image File mode.
 +
 +2005-03-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * building.texi (Flymake): New node.
 +
 +      * custom.texi (Function Keys): Document kp- event types and
 +      keypad-setup package.
 +
 +      * dired.texi (Wdired): New node.
 +
 +      * files.texi (File Conveniences): Reorder entries.
 +      Explain how to turn on Auto-image-file mode.
 +      Document Thumbs mode.
 +
 +      * mule.texi (Specify Coding): Document recode-region and
 +      recode-file-name.
 +
 +      * programs.texi (Program Modes): Add Conf mode and DNS mode.
 +
 +2005-03-27  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * commands.texi (Keys): M-o is now a prefix key.
 +
 +2005-03-27  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * programs.texi: Reformat and update copyright years.
 +      (Fortran): Update section.
 +
 +2005-03-26  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * files.texi: Several small changes in addition to:
 +      (Visiting): Change xref for Dialog Boxes to ref.
 +      (Version Headers): Replace references to obsolete var
 +      `vc-header-alist' with `vc-BACKEND-header'.
 +      (Customizing VC): Update value of `vc-handled-backends'.
 +
 +2005-03-26  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * emacs-xtra.texi (Advanced Calendar/Diary Usage): New section;
 +      move here from Emacs Lisp Reference Manual.
 +      * calendar.texi (Calendar/Diary, Diary Commands)
 +      (Special Diary Entries, Importing Diary): Change some xrefs to
 +      point to emacs-xtra rather than elisp.
 +
 +      * emacs-xtra.texi (Calendar Customizing):
 +      Move view-diary-entries-initially, view-calendar-holidays-initially,
 +      mark-diary-entries-in-calendar, mark-holidays-in-calendar to main
 +      Emacs Manual.
 +      (Appt Customizing): Merge entire section into main Emacs Manual.
 +      * calendar.texi (Holidays): Move view-calendar-holidays-initially,
 +      mark-holidays-in-calendar here from emacs-xtra.
 +      (Displaying the Diary): Move view-diary-entries-initially,
 +      mark-diary-entries-in-calendar here from emacs-xtra.
 +      (Appointments): Move appt-display-mode-line,
 +      appt-display-duration, appt-disp-window-function,
 +      appt-delete-window-function here from emacs-xtra.
 +
 +      * calendar.texi: Update and reformat copyright.
 +      Change all @xrefs to the non-printing emacs-xtra to @inforefs.
 +      (Calendar/Diary): Menu now only on Mouse-3, not C-Mouse-3.
 +      (Diary): Refer to `diary-file' rather than ~/diary.
 +      (Diary Commands): Rename node to "Displaying the Diary".
 +      * emacs.texi (Top): Rename "Diary Commands" section.
 +      * misc.texi (Hardcopy): Rename "Diary Commands" xref.
 +
 +2005-03-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * misc.texi (Emacs Server): Fix the command for setting
 +      server-name.  Add an xref to Invoking emacsclient.
 +
 +      * help.texi (Help Summary): Clarify when "C-h ." will do something
 +      nontrivial.
 +      (Apropos): Add cindex entry for apropos-sort-by-scores.
 +
 +      * display.texi (Text Display): Add index entries for how no-break
 +      characters are displayed.
 +
 +2005-03-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.texi (Visiting): Fix cross-references introduced with the
 +      last change.
 +
 +      * xresources.texi (GTK resources): Fix last change.
 +
 +2005-03-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xresources.texi (X Resources): GTK options documented too.
 +      (Resources): Clarify meaning of program name.
 +      (Table of Resources): Add visualClass.
 +      (GTK resources): Rewrite.
 +      (GTK widget names, GTK Names in Emacs, GTK styles): Cleanups.
 +
 +      * display.texi (Text Display): Mention non-breaking spaces.
 +
 +      * files.texi (Reverting): Document auto-revert-check-vc-info.
 +
 +      * frames.texi (Mouse Commands): Document
 +      x-mouse-click-focus-ignore-position and mouse-drag-copy-region.
 +
 +      * help.texi (Help Summary): Add `C-h .'.
 +      (Apropos): Apropos accepts a list of search terms.
 +      Document apropos-sort-by-scores.
 +      (Help Echo): Document display-local-help.
 +
 +      * misc.texi (Emacs Server): Document server-name.
 +      (Invoking emacsclient): Document -s option for server names.
 +
 +      * text.texi (Outline Visibility): Introduce "current heading
 +      line" (commands can be called with point on a body line).
 +      Re-order table to follow the sequence of discussion.
 +      hide-body won't hide lines before first header line.
 +      (TeX Mode): Add DocTeX mode.
 +
 +2005-03-24  Richard M. Stallman  <rms@gnu.org>
 +
 +      * mule.texi (Single-Byte Character Support): Delete mention
 +      of iso-acc.el and iso-transl.el.
 +
 +2005-03-23  Lute Kamstra  <lute@gnu.org>
 +
 +      * search.texi (Non-ASCII Isearch): Rename from Non-Ascii Isearch.
 +
 +2005-03-23  Richard M. Stallman  <rms@gnu.org>
 +
 +      * search.texi: Delete explicit node pointers.
 +      (Incremental Search): New menu.
 +      (Basic Isearch, Repeat Isearch, Error in Isearch)
 +      (Non-Ascii Isearch, Isearch Yank, Highlight Isearch, Isearch Scroll)
 +      (Slow Isearch): New subnodes.
 +      (Configuring Scrolling): Node deleted.
 +      (Search Case): Doc default-case-fold-search.
 +      (Regexp Replace): Move replace-regexp doc here.
 +
 +      * rmail.texi (Movemail): Put commas inside closequotes.
 +
 +      * picture.texi (Insert in Picture): Document C-c arrow combos.
 +      (Basic Picture): Clarify erasure.
 +
 +      * display.texi (Font Lock): Put commas inside closequotes.
 +
 +      * cmdargs.texi (General Variables): Put commas inside closequotes.
 +
 +2005-03-23  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Stack Buffer): Mention reverse contrast for
 +      *selected* frame (might not be current frame).
 +
 +2005-03-21  Richard M. Stallman  <rms@gnu.org>
 +
 +      * building.texi (Starting GUD): Add bashdb.
 +
 +2005-03-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * basic.texi (Moving Point): Add M-g M-g binding.
 +      (Undo): Document undo-only.
 +      (Position Info): Document M-g M-g and C-u M-g M-g.
 +
 +      * building.texi (Building): Put Grep Searching after Compilation
 +      Shell.
 +      (Compilation Mode): Document M-n, M-p, M-}, M-{, and C-c C-f bindings.
 +      Document next-error-highlight.
 +      (Grep Searching): Document grep-highlight-matches.
 +      (Lisp Eval): Typing C-x C-e twice prints integers specially.
 +
 +      * calendar.texi (Importing Diary): Rename node from iCalendar.
 +      Document diary-from-outlook.
 +
 +      * dired.texi (Misc Dired Features): Rename node from Misc Dired
 +      Commands.
 +      Mention effect of X drag and drop on Dired buffers.
 +
 +      * files.texi (Visiting): Document large-file-warning-threshold.
 +      Move paragraph on file-selection dialog.
 +      Mention visiting files using X drag and drop.
 +      (Reverting): Mention using Auto-Revert mode to tail files.
 +      Document auto-revert-tail-mode.
 +      (Version Systems): Minor correction.
 +      (Comparing Files): Diff-mode is no longer based on Compilation
 +      mode.
 +      Document compare-ignore-whitespace.
 +      (Misc File Ops): Explain passing a directory to rename-file.
 +      Likewise for copy-file and make-symbolic-link.
 +
 +      * frames.texi (Wheeled Mice): Mouse wheel support on by default.
 +      Document mouse-wheel-progressive speed.
 +
 +      * help.texi (Misc Help): Document numeric argument for C-h i.
 +      Correctly explain the effect of just C-u as argument.
 +
 +      * killing.texi (Deletion): Document numeric argument for
 +      just-one-space.
 +
 +      * mini.texi (Completion): Completion acts on text before point.
 +
 +      * misc.texi (Saving Emacs Sessions): Document desktop-restore-eager.
 +      (Emulation): CUA mode replaces pc-bindings-mode,
 +      pc-selection-mode, and s-region.
 +
 +      * mule.texi (Input Methods): Leim is now built-in.
 +      (Select Input Method): Document quail-show-key.
 +      (Specify Coding): Document revert-buffer-with-coding-system.
 +
 +      * programs.texi (Fortran Motion): Document f90-next-statement,
 +      f90-previous-statement, f90-next-block, f90-previous-block,
 +      f90-end-of-block, and f90-beginning-of-block.
 +
 +      * text.texi (Format Faces): Replace old M-g key prefix with M-o.
 +
 +      * emacs.texi (Acknowledgments): Updated.
 +
 +      * anti.texi: Total rewrite.
 +
 +2005-03-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ack.texi (Acknowledgments): Update.
 +
 +2005-03-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * anti.texi (Antinews): Refer to Emacs 21.4, not 21.3.  Update
 +      copyright years.
 +
 +2005-03-14  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Commands of GUD): Move paragraph on setting
 +      breakpoints with mouse to the GDB Graphical Interface node.
 +
 +2005-03-07  Richard M. Stallman  <rms@gnu.org>
 +
 +      * misc.texi (Single Shell, Shell Options): Fix previous change.
 +
 +      * building.texi (Debugger Operation): Update GUD tooltip enable info.
 +
 +2005-03-06  Richard M. Stallman  <rms@gnu.org>
 +
 +      * building.texi (Starting GUD): Don't explain text vs graphical
 +      GDB here.  Just mention it and xref.
 +      Delete "just one debugger process".
 +      (Debugger Operation): Move GUD tooltip info here.
 +      (GUD Tooltips): Node deleted.
 +      (GDB Graphical Interface): Explain the two GDB modes here.
 +
 +      * sending.texi (Sending Mail): Minor cleanup.
 +      (Mail Aliases): Explain quoting conventions.
 +      Update key rebinding example.
 +      (Header Editing): C-M-i is like M-TAB.
 +      (Mail Mode Misc): mail-attach-file does not do MIME.
 +
 +      * rmail.texi (Rmail Inbox): Move text from Remote Mailboxes
 +      that really belongs here.
 +      (Remote Mailboxes): Text moved to Rmail Inbox.
 +      (Rmail Display): Mention Mouse-1.
 +      (Movemail): Clarify two movemail versions.
 +      Clarify rmail-movemail-program.
 +
 +      * misc.texi (Single Shell): Replace uudecode example with gpg example.
 +      Document async shell commands.
 +      (Shell History): Clarify.
 +      (Shell Ring): Mention C-UP an C-DOWN.
 +      (Shell Options): Add comint-prompt-read-only.
 +      (Invoking emacsclient): Set EDITOR to run Emacs.
 +      (Sorting): No need to explain what region is.
 +      (Saving Emacs Sessions): Fix typo.
 +      (Recursive Edit): Fix punctuation.
 +      (Emulation): Don't mention "PC bindings" which are standard.
 +      (Hyperlinking): Explain Mouse-1 convention here.
 +      (Find Func): Node deleted.
 +
 +      * help.texi (Name Help): Xref to Hyperlinking.
 +
 +      * glossary.texi (Glossary):
 +      Rename "Balance Parentheses" to "Balancing...".
 +      Add "Byte Compilation".  Correct "Copyleft".
 +      New xref in "Customization".
 +      Clarify "Current Line", "Echoing", "Fringe", "Frame", "Speedbar".
 +      Add "Graphical Terminal" "Keybinding", "Margin", "Window System".
 +      Rename "Registers" to "Register".
 +      Replace "Selecting" with "Selected Frame",
 +      "Selected Window", and "Selecting a Buffer".
 +
 +      * files.texi (Types of Log File): Explain how projects'
 +      methods can vary.
 +
 +      * display.texi (Faces): Delete "Emacs 21".
 +
 +      * custom.texi (Changing a Variable): C-M-i like M-TAB.
 +      * fixit.texi (Spelling): C-M-i like M-TAB.
 +      * mini.texi (Completion Options): C-M-i like M-TAB.
 +      * programs.texi (Symbol Completion): C-M-i like M-TAB.
 +      * text.texi (Text Mode): C-M-i like M-TAB.
 +
 +      * commands.texi (Keys): Mention F1 and F2 in list of prefixes.
 +
 +      * calendar.texi (Specified Dates): Mention `g w'.
 +      (Appointments): appt-activate toggles with no arg.
 +
 +2005-03-05  Juri Linkov  <juri@jurta.org>
 +
 +      * cmdargs.texi (Emacs Invocation): Add cindex
 +      "invocation (command line arguments)"
 +      (Misc X): Add -nbc, --no-blinking-cursor.
 +
 +2005-03-04  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * calendar.texi (iCalendar): No need to require it now.
 +
 +2005-03-03  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * trouble.texi (Contributing): Mention Savannah.  Direct users to
 +      emacs-devel.
 +
 +2005-03-01  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * calendar.texi (Adding to Diary): Mention redrawing of calendar
 +      window.
 +
 +2005-02-27  Richard M. Stallman  <rms@gnu.org>
 +
 +      * building.texi (Compilation): Update mode line status info.
 +
 +2005-02-27  Matt Hodges  <MPHodges@member.fsf.org>
 +
 +      * calendar.texi (General Calendar): Document binding of
 +      scroll-other-window-down.
 +      (Mayan Calendar): Fix earliest date.
 +      (Time Intervals): Document timeclock-change.
 +      Fix timeclock-ask-before-exiting documentation.
 +
 +2005-02-26  Kim F. Storm  <storm@cua.dk>
 +
 +      * frames.texi (Mouse References):
 +      Add mouse-1-click-in-non-selected-windows.
 +
 +2005-02-25  Richard M. Stallman  <rms@gnu.org>
 +
 +      * screen.texi (Screen): Explain better about cursors and mode lines;
 +      don't presuppose text terminals.
 +      (Point): Don't assume just one cursor.
 +      Clarify explanation of cursors.
 +      (Echo Area, Menu Bar): Cleanups.
 +
 +      * mini.texi (Minibuffer): Prompts are highlighted.
 +      (Minibuffer Edit): Newline = C-j only on text terminals.
 +      Clarify resize-mini-windows values.
 +      Mention M-PAGEUP and M-PAGEDOWN.
 +      (Completion Commands): Mouse-1 like Mouse-2.
 +      (Minibuffer History): Explain history commands better.
 +      (Repetition): Add xref to Incremental Search.
 +
 +      * mark.texi (Setting Mark): Clarify info about displaying mark.
 +      Clarify explanation of C-@ and C-SPC.
 +      (Transient Mark): Mention Delete Selection mode.
 +      (Marking Objects): Clean up text about extending the region.
 +
 +      * m-x.texi (M-x): One C-g doesn't always go to top level.
 +      No delay before suggest-key-bindings output.
 +
 +      * fixit.texi (Fixit): Mention C-/ for undo.
 +      (Spelling): Mention ESC TAB like M-TAB.
 +      Replacement words with r and R are rechecked.
 +      Say where C-g leaves point.  Mention ? as input.
 +
 +2005-02-23  Lute Kamstra  <lute@gnu.org>
 +
 +      * cmdargs.texi (Initial Options): Add cross reference.
 +
 +2005-02-16  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * emacs.texi (Top): Update menu for splitting of node in
 +      msdog.texi.
 +      * frames.texi (Frames): Update xref for splitting of node in
 +      msdog.texi.
 +      * trouble.texi (Quitting): Ditto.
 +
 +2005-02-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Split Window): Simplify line truncation info
 +      and xref to Display Custom.
 +
 +      * trouble.texi (Quitting): Emergency escape only for text terminal.
 +      (Screen Garbled): C-l for ungarbling is only for text terminal.
 +
 +      * text.texi (Text Mode): ESC TAB alternative for M-TAB.
 +
 +      * sending.texi (Header Editing): ESC TAB alternative for M-TAB.
 +
 +      * programs.texi (Program Modes): Mention Python mode.
 +      (Moving by Defuns): Repeating C-M-h extends region.
 +      (Basic Indent): Clarify.
 +      (Custom C Indent): Clarify.
 +      (Expressions): Repeating C-M-@ extends region.
 +      (Info Lookup): Clarify for C-h S.
 +      (Symbol Completion): ESC TAB alternative for M-TAB.
 +      (Electric C): Clarify.
 +
 +      * emacs.texi (Top): Update display.texi and frames.texi submenu data.
 +
 +      * msdog.texi (MS-DOS Keyboard, MS-DOS Mouse): Split from
 +      MS-DOS Input node.
 +      (MS-DOS Keyboard): Start with explaining DEL and BREAK.
 +      (MS-DOS and MULE): Clarify.
 +      (MS-DOS Processes, Windows Processes): Fix typos.
 +
 +      * major.texi (Choosing Modes): Clarify.
 +
 +      * kmacro.texi (Basic Keyboard Macro): Doc F3, F4.
 +      (Keyboard Macro Step-Edit): Clarify.
 +
 +      * indent.texi (Indentation): Clarifications.
 +
 +      * help.texi (Help): Correct error about C-h in query-replace.
 +      Clarify apropos vs C-h a.  Fix how to search in FAQ.
 +      (Key Help): Describe C-h w here.
 +      (Name Help): Minor cleanup.  C-h w moved to Key Help.
 +      Clarify the "object" joke.
 +      (Apropos): Clarify.  Mouse-1 like Mouse-2.
 +      (Help Mode): Mouse-1 like Mouse-2.
 +
 +      * fixit.texi (Spelling): Mention ESC TAB as alt. for M-TAB.
 +
 +      * display.texi (Display): Reorder menu.
 +      (Faces): Cleanup.
 +      (Font Lock): Cleanup.  Mention Options menu.
 +      Delete obsolete text.
 +      (Scrolling): For C-l, don't presume text terminal.
 +      (Horizontal Scrolling): Simplify intro.
 +      (Follow Mode): Clarify.
 +      (Cursor Display): Moved before Display Custom.
 +      (Display Custom): Explain no-redraw-on-reenter is for text terminals.
 +      Doc default-tab-width.  Doc line truncation more thoroughly.
 +
 +      * dired.texi (Dired Enter): C-x C-f can run Dired.
 +      (Dired Visiting): Comment out `a' command.
 +      Mouse-1 is like Mouse-2.
 +      (Shell Commands in Dired): ? can be used more than once.
 +
 +      * basic.texi (Continuation Lines): Simplify description of truncation,
 +      and refer to Display Custom for the rest of it.
 +
 +2005-02-06  Lute Kamstra  <lute@gnu.org>
 +
 +      * basic.texi (Undo): Fix typo.
 +
 +      * cmdargs.texi (Emacs Invocation): Fix typo.
 +
 +      * custom.texi (Init Examples): Fix typo.
 +
 +      * abbrevs.texi (Expanding Abbrevs): Fix typo.
 +
 +2005-02-06  Richard M. Stallman  <rms@gnu.org>
 +
 +      * regs.texi (Registers): Registers can hold numbers, too.
 +
 +      * killing.texi (Other Kill Commands): Cleanup.
 +      Delete redundant explanation of kill in read-only buffer.
 +      (Yanking): Mention term "copying".
 +      (Accumulating Text): Fix typo.
 +
 +      * entering.texi (Entering Emacs): Update rationale at start.
 +      (Exiting): Treat iconifying on a par with suspension.
 +
 +      * custom.texi (Minor Modes): Fix typo.
 +      (Easy Customization): Fix menu style.
 +      (Variables): Add xref.
 +      (Examining): Setting for future sessions works through .emacs.
 +      (Keymaps): "Text terminals", not "Many".
 +      (Init Rebinding): Explain \C-.  Show example of \M-.
 +      Fix minor wording errors.
 +      (Function Keys): Explain vector syntax just once.
 +      (Named ASCII Chars): Clarify history of TAB/C-i connection.
 +      (Init File): Mention .emacs.d directory.
 +      (Init Examples): Add xref.
 +      (Find Init): Mention .emacs.d directory.
 +
 +      * cmdargs.texi (Emacs Invocation): +LINENUM is also an option.
 +      (Action Arguments): Explain which kinds of -l args are found how.
 +      (Initial Options): --batch does not inhibit site-start.
 +      Add xrefs.
 +      (Command Example): Use --batch, not -batch.
 +
 +      * basic.texi (Inserting Text): Cleanup wording.
 +      (Moving Point): Doc PRIOR, PAGEUP, NEXT, PAGEDOWN more systematically.
 +      C-n is not error at end of buffer.
 +      (Undo): Doc C-/ like C-_.  Add xrefs.
 +      (Arguments): META key may be labeled ALT.
 +      Peculiar arg meanings are explained in doc strings.
 +
 +      * abbrevs.texi (Expanding Abbrevs): Clarify.
 +
 +2005-02-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * frames.texi (Frame Parameters): Add an xref to the description
 +      of list-colors-display.  Add a pointer to the X docs about colors.
 +
 +      * cmdargs.texi (Colors): Mention 16-, 88- and 256-color modes.
 +      Impove docs of list-colors-display.
 +
 +2005-02-03  Lute Kamstra  <lute@gnu.org>
 +
 +      * frames.texi (Frames, Drag and Drop): Fix typos.
 +
 +2005-02-03  Richard M. Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Basic Window): Mention color-change in mode line.
 +      (Change Window): Explain dragging vertical boundaries.
 +
 +      * text.texi (Sentences): Clarify.
 +      (Paragraphs): Explain M-a and blank lines.
 +      (Outline Mode): Clarify text and menu.
 +      (Hard and Soft Newlines): Mention use-hard-newlines.
 +
 +      * frames.texi (Frames): Delete unnecessary mention of Windows.
 +      (Mouse Commands): Likewise.  Mention xterm mouse support.
 +      (Clipboard): Clarify.
 +      (Mouse References): Mention use of Mouse-1 for following links.
 +      (Menu Mouse Clicks): Clarify.
 +      (Mode Line Mouse): Clarify.
 +      (Drag and Drop): Rewrite.
 +
 +      * fixit.texi (Spelling): Fix typo.
 +
 +      * files.texi (File Names): Clarify.
 +      (Visiting): Update conditions for use of file dialog.  Clarify.
 +      (Saving): Doc d as answer in save-some-buffers.
 +      (Remote Files): Clean up the text.
 +
 +      * dired.texi (Misc Dired Commands): Delete dired-marked-files.
 +
 +      * buffers.texi (Select Buffer): Doc next-buffer and prev-buffer.
 +      (List Buffers): Clarify.
 +      (Several Buffers): Doc T command.
 +      (Buffer Convenience): Clarify menu.
 +
 +      * basic.texi (Undo): Clarify last change.
 +
 +2005-02-02  Matt Hodges  <MPHodges@member.fsf.org>
 +
 +      * fixit.texi (Spelling): Fix typo.
 +
 +2005-02-01  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * basic.texi (Undo): Update description of `undo-outer-limit'.
 +
 +2005-02-01  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi: Update documentation relating to GDB Graphical
 +      Interface.
 +
 +2005-01-30  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * custom.texi (Easy Customization): Adapt menu to node name change.
 +
 +2005-01-30  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Easy Customization): Defn of "User Option" now
 +      includes faces.  Don't say just "option" when talking about variables.
 +      Do say just "options" to mean "anything customizable".
 +      (Specific Customization): Describe `customize-variable',
 +      not `customize-option'.
 +
 +      * glossary.texi (Glossary) <Faces>: Add xref.
 +      <User Option>: Change definition--include faces.  Change xref.
 +
 +      * picture.texi (Picture): Mention artist.el.
 +
 +      * sending.texi, screen.texi, programs.texi, misc.texi:
 +      * mini.texi, major.texi, maintaining.texi, macos.texi:
 +      * help.texi, frames.texi, files.texi:
 +      Don't say just "option" when talking about variables.
 +
 +      * display.texi, mule.texi: Don't say just "option" when talking
 +      about variables.  Other minor cleanups.
 +
 +2005-01-26  Lute Kamstra  <lute@gnu.org>
 +
 +      * cmdargs.texi (Initial Options): Add a cross reference to `Init
 +      File'.  Mention the `-Q' option at the `--no-site-file' option.
 +
 +2005-01-22  David Kastrup  <dak@gnu.org>
 +
 +      * building.texi (Grep Searching): Mention alias `find-grep' for
 +      `grep-find'.
 +
 +2005-01-20  Richard M. Stallman  <rms@gnu.org>
 +
 +      * calendar.texi (Time Intervals): Delete special stuff for MS-DOS.
 +
 +2005-01-15  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 +
 +      * rmail.texi (Movemail): Explain differences
 +      between standard and mailutils versions of movemail.
 +      Describe command line and configuration options introduced
 +      with the latter.
 +      Explain the notion of mailbox URL, provide examples and
 +      cross-references to mailutils documentation.
 +      Describe various methods of specifying mailbox names,
 +      user names and user passwords for rmail.
 +      (Remote Mailboxes): New section.  Describe
 +      how movemail handles remote mailboxes.  Describe configuration
 +      options used to control its behavior.
 +      (Other Mailbox Formats): Explain handling of various mailbox
 +      formats.
 +
 +2005-01-13  Richard M. Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Commands): Clarification.
 +
 +2005-01-11  Richard M. Stallman  <rms@gnu.org>
 +
 +      * programs.texi (Multi-line Indent): Fix previous change.
 +      (Fortran Autofill): Simplify description of fortran-auto-fill-mode.
 +
 +2005-01-08  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Faces): isearch-lazy-highlight-face renamed to
 +      lazy-highlight.
 +
 +      * search.texi (Query Replace): Mention faces query-replace
 +      and lazy-highlight.
 +      (Incremental Search): Update isearch highlighting info.
 +
 +2005-01-04  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Saving Customizations): Minor improvement.
 +
 +2005-01-03  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * custom.texi (Saving Customizations): Emacs no longer loads
 +      `custom-file' after .emacs.  No longer mention customizing through
 +      Custom.
 +
 +2005-01-01  Andreas Schwab  <schwab@suse.de>
 +
 +      * killing.texi (Graphical Kill): Move up under node Killing,
 +      change @section to @subsection.
 +
 +2005-01-01  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Face Customization): Mention hex color specs.
 +
 +      * emacs.texi (Top): Update Killing submenu.
 +
 +      * killing.texi (Killing): Reorganize section.
 +      No more TeX-only text; put the node command at start of chapter.
 +      But the first section heading is used only in TeX.
 +      Rewrite the text to read better in this mode.
 +      (Graphical Kill): New subnode gets some of the text that
 +      used to be in the first section.
 +
 +2004-12-31  Richard M. Stallman  <rms@gnu.org>
 +
 +      * dired.texi (Shell Commands in Dired): Delete the ? example.
 +
 +      * display.texi (Scrolling): Correct scroll-preserve-screen-position.
 +
 +      * files.texi (Saving): Describe new require-final-newline features
 +      and mode-require-final-newline.
 +
 +2004-12-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (File Variables): Clarify previous change.
 +
 +2004-12-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Dialog Boxes): Mention Gtk+ 2.6 also, as that version is
 +      out now.
 +
 +2004-12-27  Richard M. Stallman  <rms@gnu.org>
 +
 +      * Makefile.in (MAKEINFO): Specify --force.
 +
 +      * basic.texi (Moving Point): C-e now runs move-end-of-line.
 +      (Undo): Doc undo-outer-limit.
 +
 +2004-12-15  Juri Linkov  <juri@jurta.org>
 +
 +      * mark.texi (Transient Mark, Mark Ring): M-< and other
 +      movement commands don't set mark in Transient Mark mode
 +      if mark is active.
 +
 +2004-12-12  Juri Linkov  <juri@jurta.org>
 +
 +      * misc.texi (FFAP): Add C-x C-r, C-x C-v, C-x C-d,
 +      C-x 4 r, C-x 4 d, C-x 5 r, C-x 5 d.
 +
 +      * dired.texi (Dired Navigation): Add @r{(Dired)} to M-g.
 +      (Misc Dired Commands): Add @r{(Dired)} to w.
 +
 +2004-12-12  Juri Linkov  <juri@jurta.org>
 +
 +      * mark.texi (Marking Objects): Marking commands also extend the
 +      region when mark is active in Transient Mark mode.
 +
 +2004-12-08  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * custom.texi (Saving Customizations): Emacs only loads the custom
 +      file automatically after the init file in version 22.1 or later.
 +      Adapt text and examples to this fact.
 +
 +2004-12-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi (Scroll Bars): The option `scroll-bar-mode' has to
 +      be set through Custom.  Otherwise, it has no effect.
 +
 +2004-12-05  Richard M. Stallman  <rms@gnu.org>
 +
 +      * cmdargs.texi, doclicense.texi, xresources.texi, emacs.texi:
 +      * entering.texi: Rename Command Line to Emacs Invocation.
 +
 +      * misc.texi (Term Mode): Correcty describe C-c.
 +
 +      * custom.texi (Easy Customization): Move up to section level,
 +      before Variables.  Avoid using the term "variable"; say "option".
 +      New initial explanation.
 +      (Variables): In initial explanation, connect "variable" to the
 +      already-explained "user option".
 +
 +      * emacs.texi (Top): Fix ref to Command Line.
 +      Move reference to Easy Customization.
 +
 +      * xresources.texi (X Resources): Fix From link.
 +
 +      * doclicense.texi (GNU Free Documentation License): Fix To link.
 +
 +      * entering.texi (Entering Emacs): Fix xref, now to Command Line.
 +
 +      * cmdargs.texi (Command Line): Node renamed from Command Arguments.
 +
 +2004-12-03  Richard M. Stallman  <rms@gnu.org>
 +
 +      * cmdargs.texi (Initial Options): Clarify batch mode i/o.
 +
 +2004-12-01  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * kmacro.texi: Several small changes in addition to the following.
 +      (Keyboard Macro Ring): Describe behavior of `C-x C-k C-k' when
 +      defining a keyboard macro.
 +      Mention `kmacro-ring-max'.
 +      (Keyboard Macro Counter): Clarify description of
 +      `kmacro-insert-counter', `kmacro-set-counter',
 +      `kmacro-add-counter' and `kmacro-set-format'.
 +
 +2004-11-29  Reiner Steib  <Reiner.Steib@gmx.de>
 +
 +      * custom.texi (File Variables): Add `unibyte' and make it more
 +      clear that `unibyte' and `coding' are special.  Suggested by Simon
 +      Krahnke <overlord@gmx.li>.
 +
 +      * mule.texi (Enabling Multibyte): Refer to File Variables.
 +      Suggested by Simon Krahnke <overlord@gmx.li>.
 +
 +2004-11-26  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Dialog Boxes): Rename use-old-gtk-file-dialog to
 +      x-use-old-gtk-file-dialog.
 +
 +2004-11-20  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Fill Prefix): M-q doesn't apply fill prefix to first line.
 +
 +2004-11-09  Lars Brinkhoff  <lars@nocrew.org>
 +
 +      * building.texi (Lisp Eval): Delete hyphen in section name.
 +
 +2004-11-19  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * files.texi (Old Versions):
 +      No longer document annotation as "CVS only".
 +
 +2004-11-10  Andre Spiegel  <spiegel@gnu.org>
 +
 +      * files.texi (Version Control): Rewrite the introduction about
 +      version systems, mentioning the new ones that we support.  Thanks
 +      to Alex Ott, Karl Fogel, Stefan Monnier, and David Kastrup for
 +      suggestions.
 +
 +2004-11-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Dialog Boxes): Replace non-nil with non-@code{nil}.
 +
 +2004-11-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Dialog Boxes): Document use-old-gtk-file-dialog.
 +
 +2004-10-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * text.texi (Text Based Tables, Table Definition)
 +      (Table Creation, Table Recognition, Cell Commands)
 +      (Cell Justification, Row Commands, Column Commands)
 +      (Fixed Width Mode, Table Conversion, Measuring Tables)
 +      (Table Misc): New nodes, documenting the Table Mode.
 +
 +2004-10-19  Jason Rumney  <jasonr@gnu.org>
 +
 +      * makefile.w32-in (info): Change order of arguments to makeinfo.
 +
 +2004-10-19  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * calendar.texi (iCalendar): Update for package changes.
 +
 +2004-10-09  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * files.texi (Misc File Ops): View mode is a minor mode.
 +
 +2004-10-08  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * calendar.texi (iCalendar): Style changes.
 +
 +2004-10-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * search.texi (Regexps): The regexp described in the example is no
 +      longer stored in the variable `sentence-end'.
 +
 +2004-10-06  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * building.texi (Starting GUD): Note that multiple debugging
 +      sessions requires `gdb --fullname'.
 +
 +2004-10-05  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * calendar.texi (iCalendar): New section for a new package.
 +
 +2004-10-05  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * text.texi: Various small changes in addition to the following.
 +      (Text): Replace xref for autotype with inforef.
 +      (Sentences): Explain nil value for `sentence-end'.
 +      (Paragraphs): Update default values for `paragraph-start' and
 +      `paragraph-separate'.
 +      (Text Mode): Correct description of Text mode's effect on the
 +      syntax table.
 +      (Outline Visibility): `hide-other' does not hide top level headings.
 +      `selective-display-ellipses' no longer has an effect on Outline mode.
 +      (TeX Misc): Add missing @cindex.
 +      Replace xref for RefTeX with inforef.
 +      (Requesting Formatted Text): The variable
 +      `enriched-fill-after-visiting' no longer exists.
 +      (Editing Format Info): Update names of menu items and commands.
 +      (Format Faces): Mention special effect of specifying the default face.
 +      Describe inheritance of text properties.
 +      Correct description of `fixed' face.
 +      (Format Indentation): Correct description of effect of setting
 +      margins.  Mention `set-left-margin' and `set-right-margin'.
 +      (Format Justification): Update names of menu items.
 +      `set-justification-full' is now bound to `M-j b'.
 +      Mention that `default-justification' is a per buffer variable.
 +      (Format Properties): Update name of menu item.
 +      (Forcing Enriched Mode): `format-decode-buffer' automatically
 +      turns on Enriched mode if the buffer is in text/enriched format.
 +
 +2004-10-05  Emilio C. Lopes  <eclig@gmx.net>
 +
 +      * calendar.texi (From Other Calendar): Add calendar-goto-iso-week.
 +
 +2004-09-28  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Display Custom) <indicate-buffer-boundaries>:
 +      Align with new functionality.
 +
 +2004-09-22  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi (Display Custom): Remove stray `@end defvar'.
 +
 +2004-09-23  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Display Custom): Add `overflow-newline-into-fringe',
 +      `indicate-buffer-boundaries' and `default-indicate-buffer-boundaries'.
 +
 +2004-09-20  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Hooks): Explain using setq to clear out a hook.
 +      (File Variables): Explain multiline string constants.
 +      (Non-ASCII Rebinding): Explain when you need to update
 +      non-ASCII char codes in .emacs.
 +
 +      * building.texi (Compilation): Explain how to make a silent
 +      subprocess that won't be terminated.  Explain compilation-environment.
 +
 +2004-09-13  Kim F. Storm  <storm@cua.dk>
 +
 +      * mini.texi (Repetition): Rename isearch-resume-enabled to
 +      isearch-resume-in-command-history and change default to disabled.
 +
 +2004-09-09  Kim F. Storm  <storm@cua.dk>
 +
 +      * kmacro.texi (Save Keyboard Macro): Replace `name-last-kbd-macro'
 +      with new `kmacro-name-last-macro'.
 +
 +2004-09-08  Juri Linkov  <juri@jurta.org>
 +
 +      * mini.texi (Minibuffer History): Add `history-delete-duplicates'.
 +
 +2004-09-03  Juri Linkov  <juri@jurta.org>
 +
 +      * search.texi (Incremental Search): Update wording for M-%.
 +
 +2004-09-02  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * killing.texi (Killing): Correct description of kill commands in
 +      read-only buffer.
 +
 +2004-09-02  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * building.texi (Compilation Mode): Add a paragraph about rules
 +      for finding the compilation buffer for `next-error'.
 +
 +      * search.texi (Other Repeating Search): Mention that Occur mode
 +      supports the next-error functionality.
 +
 +2004-09-02  Juri Linkov  <juri@jurta.org>
 +
 +      * search.texi (Regexp Replace): Add missing backslash to \footnote.
 +
 +2004-08-31  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * kmacro.texi (Basic Keyboard Macro):
 +      `apply-macro-to-region-lines' now operates on all lines that begin
 +      in the region, rather than on all complete lines in the region.
 +
 +2004-08-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Drag and drop): Add documentation about
 +      x-dnd-test-function and x-dnd-known-types.
 +
 +2004-08-30  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * indent.texi: Various minor changes in addition to:
 +      (Indentation Commands): Correct description of `indent-relative'.
 +      (Tab Stops): <TAB> is no longer bound to `tab-to-tab-stop' in Text
 +      mode.  The *Tab Stops* buffer uses Overwrite Mode.
 +      (Just Spaces): `tabify' converts sequences of at least two spaces
 +      to tabs.
 +
 +2004-08-27  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi (Secondary Selection): Setting the secondary
 +      selection with M-Drag-Mouse-1 does not alter the kill ring,
 +      setting it with M-Mouse-1 and M-Mouse-3 does.
 +      (Mode Line Mouse): C-Mouse-2 on scroll bar now also works for
 +      toolkit scroll bars.
 +      (Scroll Bars): Ditto.
 +
 +      * windows.texi (Basic Window): When using a window system, the value
 +      of point in a non-selected window is indicated by a hollow box.
 +      (Split Window): Side by side windows are separated by a scroll bar,
 +      if scroll bars are used.
 +      C-Mouse-2 on scroll bar now also works for toolkit scroll bars.
 +      (Change Window): Correct Mouse-2 vs Mouse-3 mess-up.
 +      (Window Convenience): Update bindings for `winner-undo' and
 +      `winner-redo'.
 +
 +      * ack.texi (Acknowledgments): Use `@unnumbered'.
 +      * misc.texi : Adapt sectioning in Info to the node structure.
 +      (Invoking emacsclient): Make "Invoking emacsclient" a subsection
 +      of "Using Emacs as a Server".
 +      * building.texi (Building): Interchange nodes (for correct numbering).
 +      * programs.texi (Programs): Interchange nodes (for correct numbering).
 +      * killing.texi, entering.texi, commands.texi: Adapt sectioning in
 +      Info to the node structure.
 +      * emacs.texi: Make "GNU GENERAL PUBLIC LICENSE" an appendix.
 +      Rearrange order of nodes and sections such that both "GNU GENERAL
 +      PUBLIC LICENSE" and "GNU Free Documentation License" appear at the
 +      end, as appropriate for appendices.
 +      (Acknowledgments): Put inside @iftex instead of @ifnotinfo.
 +      Use `@unnumberedsec'.
 +      * trouble.texi: Adapt sectioning in Info to the node structure.
 +      Adapt node pointers to change in emacs.texi.
 +      * cmdargs.texi, doclicense.texi: Adapt node pointers.
 +
 +2004-08-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * custom.texi (Non-ASCII Rebinding): Fix and simplify the
 +      description for unibyte mode.
 +
 +2004-08-23  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi (Font Lock): Correct invalid (for hardcopy) @xref.
 +
 +      * search.texi (Regexps): Correct cryptic (in hardcopy) @ref.
 +      (Configuring Scrolling): Correct invalid (for hardcopy) @xref.
 +      (Regexp Replace): Standardize reference to hardcopy Elisp Manual
 +      in @pxref.
 +
 +2004-08-22  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * kmacro.texi (Keyboard Macro Counter, Keyboard Macro Step-Edit):
 +      Change section names.
 +
 +2004-08-21  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * kmacro.texi (Keyboard Macro Ring): Rename section.
 +      Emacs treats the head of the macro ring as the `last keyboard macro'.
 +      (Keyboard Macro Counter): Minor change.
 +      (Save Keyboard Macro): Some clarifications.
 +      (Edit Keyboard Macro): Rename section.
 +
 +      * buffers.texi (Buffers): Maximum buffer size is now 256M on
 +      32-bit machines.
 +      (Several Buffers): Clarify which buffer is selected if `2' is
 +      pressed in the Buffer Menu.
 +      Auto Revert mode can be used to update the Buffer Menu
 +      automatically.
 +
 +2004-08-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * help.texi (Misc Help): Add an index entry for finding an Info
 +      manual by its file name.
 +
 +2004-08-20  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * files.texi (Backup Deletion): Correct description of
 +      `delete-old-versions'.
 +      (Time Stamps): `time-stamp' needs to be added to `before-save-hook'.
 +      (Auto Save Files): Recommend `auto-save-mode' to reenable
 +      auto-saving, rather than the abbreviation `auto-save'.
 +
 +2004-08-17  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * emacs.texi (Top): Mention "cutting" and "pasting" as synonyms
 +      for "killing" and "yanking" in main menu.
 +
 +2004-08-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * killing.texi (Yanking, Killing): Minor cleanups.
 +
 +      * mark.texi (Momentary Mark): Minor cleanups.
 +
 +2004-08-15  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * custom.texi (Non-ASCII Rebinding):
 +      C-q always inserts the right code to pass to global-set-key.
 +
 +2004-08-13  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * regs.texi (RegNumbers): Mention `C-x r i' binding for
 +      `insert-register', instead of `C-x r g' binding, for consistency.
 +
 +2004-08-12  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * fixit.texi (Spelling): Fix typo.
 +
 +2004-08-11  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * help.texi (Help): Fix Texinfo usage.
 +
 +2004-07-24  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Paragraphs): Update how paragraphs are separated
 +      and the default for paragraph-separate.
 +
 +      * search.texi (Regexp Replace): Further update text for new
 +      replacement operators.
 +
 +2004-07-18  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * emacs-xtra.texi (Subdir switches): Dired does not remember the
 +      `R' switch.
 +
 +      * dired.texi (Dired Updating): `k' only deletes inserted
 +      subdirectories from the Dired buffer if a prefix argument was given.
 +
 +      * search.texi (Regexps): Delete redundant definition of `symbol' in
 +      description of `\_>'.  It already occurs in the description of `\_<'.
 +
 +2004-07-01  Juri Linkov  <juri@jurta.org>
 +
 +      * search.texi (Incremental Search): Add C-M-w, C-M-y, M-%, C-M-%, M-e.
 +      (Regexp Search): Add M-r.
 +
 +2004-06-30  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * makefile.w32-in (EMACSSOURCES): Remove emacs-xtra.
 +
 +2004-06-29  Jesper Harder  <harder@ifa.au.dk>
 +
 +      * search.texi, calendar.texi: Markup fixes.
 +
 +2004-06-25  Richard M. Stallman  <rms@gnu.org>
 +
 +      * search.texi (Regexp Replace): Rewrite description of \# \, and \?.
 +
 +2004-06-25  David Kastrup  <dak@gnu.org>
 +
 +      * search.texi (Regexp Replace): Some typo corrections and
 +      rearrangement.
 +
 +2004-06-24  David Kastrup  <dak@gnu.org>
 +
 +      * search.texi (Unconditional Replace): Use replace-string instead
 +      of query-replace in example.
 +      (Regexp Replace): Add explanations for `\,', `\#' and `\?'
 +      sequences.
 +      (Query Replace): Correct explanation of `^' which does not use
 +      the mark stack.
 +
 +2004-06-21  Nick Roberts  <nickrob@gnu.org>
 +
 +      * misc.texi (Shell History Copying): Document comint-insert-input.
 +      (Shell Ring): Describe comint-dynamic-list-input-ring here.
 +
 +2004-06-20  Jesper Harder  <harder@ifa.au.dk>
 +
 +      * msdog.texi (Text and Binary, MS-DOS Printing): Use m-dash.
 +      * custom.texi (Customization): Do.
 +      * anti.texi (Antinews): Do.
 +      * abbrevs.texi (Defining Abbrevs): Do.
 +
 +      * programs.texi (Info Lookup): Fix keybinding for
 +      info-lookup-symbol.
 +
 +2004-06-16  Juanma Barranquero  <lektu@terra.es>
 +
 +      * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, EMACSSOURCES):
 +      Add emacs-xtra.
 +      ($(infodir)/emacs-xtra, emacs-xtra.dvi): New dependencies.
 +      (clean): Add emacs-xtra and flymake.  Remove redundancies.
 +
 +2004-06-15  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * Makefile.in (INFO_TARGETS, DVI_TARGETS, ../info/emacs-xtra):
 +      Add emacs-xtra.
 +      * emacs-xtra.texi: New file.
 +
 +2004-06-14  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * dired.texi (Dired Enter): Mention conditions on `ls' switches.
 +      (Dired and Find): Mention differences with ordinary Dired buffers.
 +
 +2004-06-13  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Init Syntax): Explain about vars that do special
 +      things when set with setq or with Custom.
 +      (Init Examples): Add line-number-mode example.
 +
 +2004-06-12  Juri Linkov  <juri@jurta.org>
 +
 +      * dired.texi (Operating on Files): Add dired-do-touch.
 +
 +2004-06-10  Juri Linkov  <juri@jurta.org>
 +
 +      * building.texi (Lisp Eval): Add C-M-x on defface.
 +
 +2004-06-08  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * files.texi (Reverting): Auto-Revert mode and
 +      Global Auto-Revert mode no longer revert remote files.
 +
 +2004-05-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * custom.texi (Init File): Two dashes start --no-site-file.
 +
 +2004-05-29  Alan Mackenzie  <acm@muc.de>
 +
 +      * programs.texi: Update for CC Mode 5.30 and incidental amendments.
 +      ("AWK"): Is consistently thus spelt throughout.
 +      (AWK, Pike): Document as "C-like modes".
 +      (@kbd{M-j}): Document as alternative to @kbd{C-M-j}.
 +      (M-x man): Supersedes M-x manual-entry.
 +      Add numerous index entries.  Correct "ESC a/e" to "M-a/e".
 +
 +      ("Comments in C"): Delete node; the info is in CC Mode manual.
 +      (c-comment-only-line-offset): Remove description.
 +
 +      (C-c ., C-c C-c): Describe new C Mode bindings.
 +
 +      (C-u TAB, indent-code-rigidly, c-indent-exp, c-tab-always-indent)
 +      (@dfn{Style}, c-default-style, comment-column, comment-padding)
 +      (c-up-conditional, c-beginning-of-statement, c-end-of-statement):
 +      Amend definitions.
 +
 +      (c-beginning-of-defun, c-end-of-defun, c-context-line-break):
 +      Describe functions.
 +
 +      (c-comment-start-regexp, c-hanging-comment-ender-p)
 +      (c-hanging-comment-starter-p): Remove obsolete definitions.
 +
 +      * emacs.texi: Remove the menu entry "Comments in C".
 +
 +2004-05-27  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * dired.texi (Dired and Find): `find-ls-option' does not apply to
 +      `M-x locate'.
 +
 +2004-05-16  Karl Berry  <karl@gnu.org>
 +
 +      * emacs.texi (ack.texi) [@ifnottex]: Change condition; with @ifinfo,
 +      makeinfo --html fails.
 +      * help.texi (Help Summary) [@ifnottex]: Likewise.
 +
 +2004-05-13  Nick Roberts  <nickrob@gnu.org>
 +
 +      * building.texi (GDB Graphical Interface): Update and describe
 +      layout first.
 +
 +2004-05-04  Jason Rumney  <jasonr@gnu.org>
 +
 +      * makefile.w32-in: Revert last change.
 +
 +2004-05-03  Jason Rumney  <jasonr@gnu.org>
 +
 +      * makefile.w32-in (MULTI_INSTALL_INFO, ENVADD): Use forward slashes.
 +
 +2004-04-23  Juanma Barranquero  <lektu@terra.es>
 +
 +      * makefile.w32-in: Add "-*- makefile -*-" mode tag.
 +
 +2004-04-18  Juri Linkov  <juri@jurta.org>
 +
 +      * fixit.texi (Spelling): Remove file extension from ispell xref.
 +
 +2004-04-15  Kim F. Storm  <storm@cua.dk>
 +
 +      * cmdargs.texi (Initial Options): Add -Q.
 +
 +2004-04-05  Kim F. Storm  <storm@cua.dk>
 +
 +      * custom.texi (File Variables): Add safe-local-eval-forms.
 +
 +2004-04-02  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * files.texi (Reverting): Correct description of revert-buffer's
 +      handling of point.
 +
 +2004-03-22  Juri Linkov  <juri@jurta.org>
 +
 +      * emacs.texi (Top): Add `Misc X'.
 +
 +      * trouble.texi: Fix help key bindings.
 +
 +      * glossary.texi: Improve references.
 +
 +      * help.texi: Sync keywords with finder.el.
 +
 +      * mini.texi (Completion): Add description for menu items.
 +
 +      * misc.texi (Browse-URL, FFAP): Add information about keywords.
 +
 +      * sending.texi (Mail Methods): Fix xref to Message manual.
 +
 +2004-03-12  Richard M. Stallman  <rms@gnu.org>
 +
 +      * buffers.texi (Misc Buffer): Add index entry for rename-uniquely.
 +
 +2004-03-04  Richard M. Stallman  <rms@gnu.org>
 +
 +      * search.texi (Regexps): Explain that ^ and $ have their
 +      special meanings only in certain contexts.
 +
 +      * programs.texi (Expressions): Doc C-M-SPC as alias for C-M-@.
 +
 +      * mule.texi (Specify Coding): Doc C-x RET F.
 +
 +      * buffers.texi (Misc Buffer): Explain use of M-x rename-uniquely
 +      for multiple compile and grep buffers.
 +      (Indirect Buffers): Don't recommand clone-indirect-buffer
 +      for multiple compile and grep buffers.
 +
 +2004-02-29  Juanma Barranquero  <lektu@terra.es>
 +
 +      * makefile.w32-in (mostlyclean, clean, maintainer-clean):
 +      Use $(DEL) instead of rm, and ignore exit code.
 +
 +2004-02-23  Nick Roberts  <nick@nick.uklinux.net>
 +
 +      * building.texi (Watch Expressions): Update.
 +
 +2004-02-21  Juri Linkov  <juri@jurta.org>
 +
 +      * cmdargs.texi (Action Arguments): Add alias --find-file.  Add
 +      --directory, --help, --version.  Move text about command-line-args
 +      to Command Arguments.
 +      (Initial Options): Add @cindex for --script.  Fix @cindex for -q.
 +      Add --no-desktop.  Add alias --no-multibyte, --no-unibyte.
 +      (Window Size X): Join -g and --geometry.  Add @cindex.
 +      (Borders X): Fix @cindex for -ib.  Add @cindex for -bw.
 +      (Title X): Remove alias -title.
 +      (Misc X): New node.
 +
 +2004-02-15  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Drag and drop): Add Motif to list of supported
 +      protocols.
 +
 +2004-02-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Drag and drop): New section.
 +
 +2004-01-24  Richard M. Stallman  <rms@gnu.org>
 +
 +      * emacs.texi (Acknowledgments): Renamed from Acknowledgements.
 +      Include it only @ifnotinfo.  Patch the preceding and following
 +      node headers to point to each other.
 +
 +2004-01-11  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * calendar.texi (Appointments): Update section.
 +
 +2003-12-29  Kevin Ryde  <user42@zip.com.au>
 +
 +      * programs.texi (C Modes): Fix the xref.
 +
 +2003-12-23  Nick Roberts  <nick@nick.uklinux.net>
 +
 +      * building.texi (Watch Expressions): Update.
 +      (Commands of GUD): Include use of toolbar + breakpoints set from
 +      fringe/margin.
 +
 +2003-12-03  Andre Spiegel  <spiegel@gnu.org>
 +
 +      * files.texi: Say how to disable VC.  Suggested by Alan Mackenzie
 +      <acm@muc.de>.
 +
 +2003-11-29  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Dialog Boxes): Add use-file-dialog.
 +
 +2003-11-22  Martin Stjernholm  <bug-cc-mode@gnu.org>
 +
 +      * ack.texi: Note that Alan Mackenzie contributed the AWK support
 +      in CC Mode.
 +
 +2003-11-02  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
 +
 +      * man/ack.texi, man/basic.texi, man/cmdargs.texi:
 +      * man/commands.texi, man/custom.texi, man/display.texi:
 +      * man/emacs.texi, man/files.texi:
 +      * man/frames.texi, man/glossary.texi, man/killing.texi:
 +      * man/macos.texi, man/mark.texi, man/misc.texi, man/msdog.texi:
 +      * man/mule.texi, man/rmail.texi, man/search.texi:
 +      * man/sending.texi, man/text.texi, man/trouble.texi:
 +      Replace @sc{ascii} and ASCII with @acronym{ASCII}.
 +
 +2003-11-01  Alan Mackenzie  <acm@muc.de>
 +
 +      * search.texi (Scrolling During Incremental Search): Document a
 +      new scrolling facility in isearch mode.
 +
 +2003-10-22  Miles Bader  <miles@gnu.org>
 +
 +      * Makefile.in (info): Move before $(top_srcdir)/info.
 +
 +2003-10-22  Nick Roberts  <nick@nick.uklinux.net>
 +
 +      * building.texi (Watch Expressions): Update section on data display
 +      to reflect code changes (GDB Graphical Interface).
 +
 +2003-10-13  Richard M. Stallman  <rms@gnu.org>
 +
 +      * xresources.texi (GTK resources): Clean up previous change.
 +
 +2003-10-12  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * xresources.texi (GTK resources): Add a note that some themes
 +      disallow customizations.  Add scroll theme example.
 +
 +2003-09-30  Richard M. Stallman  <rms@gnu.org>
 +
 +      * cmdargs.texi (General Variables): Remove MAILRC envvar.
 +
 +      * misc.texi (Saving Emacs Sessions): Shorten the section,
 +      collapsing back into one node.
 +
 +2003-09-30  Lars Hansen  <larsh@math.ku.dk>
 +
 +      * misc.texi: Section "Saving Emacs Sessions" rewritten.
 +
 +2003-09-29  Jan Dj\e,Ad\e(Brv.  <jan.h.d@swipnet.se>
 +
 +      * xresources.texi (GTK names in Emacs): Correct typo.
 +
 +2003-09-24  Luc Teirlinck  <teirllm@mail.auburn.edu>
 +
 +      * cmdargs.texi (Font X): Mention new default font.  More
 +      fully describe long font names, wildcard patterns and the
 +      problems involved.  (Result of discussion on emacs-devel.)
 +
 +2003-09-22  Luc Teirlinck  <teirllm@mail.auburn.edu>
 +
 +      * emacs.texi (Acknowledgements): Correct typo.
 +
 +2003-09-22  Richard M. Stallman  <rms@gnu.org>
 +
 +      * dired.texi (Misc Dired Commands): New node.
 +      (Dired Navigation): Add dired-goto-file.
 +
 +      * files.texi (File Aliases, Misc File Ops): Add @cindex entries.
 +
 +      * emacs.texi (Acknowledgements): New node, split from Distribution.
 +
 +      * cmdargs.texi (Action Arguments): -f reads interactive args.
 +
 +2003-09-08  Lute Kamstra  <lute@gnu.org>
 +
 +      * screen.texi (Mode Line): Say that POS comes before LINE.
 +      Mention `size-indication-mode'.
 +      * display.texi (Optional Mode Line): Document
 +      `size-indication-mode'.
 +      * basic.texi (Position Info): Mention `size-indication-mode'.
 +
 +2003-09-07  Luc Teirlinck  <teirllm@mail.auburn.edu>
 +
 +      * xresources.texi (Resources): Refer to `editres' man page.
 +      (Lucid Resources): Update defaults.  Expand description of
 +      `shadowThickness'.
 +
 +2003-09-04  Miles Bader  <miles@gnu.org>
 +
 +      * Makefile.in (top_srcdir): New variable.
 +      ($(top_srcdir)/info): New rule.
 +      (info): Depend on it.
 +
 +2003-09-03  Peter Runestig  <peter@runestig.com>
 +
 +      * makefile.w32-in: New file.
 +
 +2003-08-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * misc.texi (Saving Emacs Sessions): Correct previous change.
 +
 +2003-08-19  Luc Teirlinck  <teirllm@mail.auburn.edu>
 +
 +      * emacs.texi (Top): Update menu to reflect new Keyboard Macros chapter.
 +      (Intro): Include kmacro.texi after fixit.texi instead of after
 +      custom.texi.  (As suggested by Kim Storm.)
 +
 +2003-08-18  Luc Teirlinck  <teirllm@mail.auburn.edu>
 +
 +      * fixit.texi (Fixit): Update `Next' pointer.
 +      * files.texi (Files): Update `Previous' pointer.
 +      * kmacro.texi (Keyboard Macros): Remove redundant node and section.
 +      * emacs.texi (Intro): Include kmacro.texi after custom.texi.
 +      (Suggested by Kim Storm.)
 +      * Makefile (EMACSSOURCES): Add kmacro.texi.  (Suggested by Kim Storm.)
 +
 +2003-08-18  Kim F. Storm  <storm@cua.dk>
 +
 +      * kmacro.texi: New file describing enhanced keyboard macro
 +      functionality.  Replaces old description in custom.texi.
 +
 +      * custom.texi (Customization): Add xref to Keyboard Macros chapter.
 +      (Keyboard Macros): Move to new kmacro.texi file.
 +
 +      * emacs.texi (Keyboard Macros): Reference new keyboard macro topics.
 +
 +2003-08-17  Edward M. Reingold  <reingold@emr.cs.iit.edu>
 +
 +      * calendar.texi (Specified Dates): Add `calendar-goto-day-of-year'.
 +
 +2003-08-17  Alex Schroeder  <alex@gnu.org>
 +
 +      * misc.texi (Saving Emacs Sessions): Manual M-x desktop-save not
 +      required.
 +
 +2003-08-05  Richard M. Stallman  <rms@gnu.org>
 +
 +      * programs.texi (Lisp Indent): Don't describe
 +      lisp-indent-function property here.  Use xref to Lisp Manual.
 +
 +2003-08-03  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * calendar.texi (Date Formats): Document changed behaviour of
 +      abbreviations.
 +
 +2003-07-24  Markus Rost  <rost@math.ohio-state.edu>
 +
 +      * buffers.texi (List Buffers): Fix previous change.
 +
 +2003-07-13  Markus Rost  <rost@math.ohio-state.edu>
 +
 +      * buffers.texi (List Buffers): Adjust to new format of *Buffer
 +      List*.
 +
 +2003-07-07  Luc Teirlinck  <teirllm@mail.auburn.edu>
 +
 +      * display.texi (Font Lock): Fix typo.
 +
 +2003-07-07  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Font Lock): Add xref for format info on
 +      font-lock-remove-keywords.
 +
 +      * building.texi (Compilation): Document what happens with asynch
 +      children of compiler process.
 +
 +      * help.texi (Library Keywords): Use @multitable.
 +
 +2003-06-04  Richard M. Stallman  <rms@gnu.org>
 +
 +      * programs.texi (Expressions): Delete C-M-DEL.
 +
 +      * misc.texi (Shell Options): Clarify comint-scroll-show-maximum-output.
 +      comint-move-point-for-output renamed from
 +      comint-scroll-to-bottom-on-output.
 +
 +      * custom.texi (Init Rebinding): Replace previous change with xref.
 +      (Non-ASCII Rebinding): Explain that issue more briefly here.
 +
 +2003-05-28  Richard M. Stallman  <rms@gnu.org>
 +
 +      * indent.texi (Indentation): Condense, simplify, clarify prev change.
 +
 +2003-05-28  Nick Roberts  <nick@nick.uklinux.net>
 +
 +      * building.texi (GDB Graphical Interface): New node.
 +      (Rewritten somewhat by RMS.)
 +
 +2003-05-28  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@gmx.net>
 +
 +      * custom.texi (Init Rebinding): Xref Non-ASCII Rebinding, for
 +      non-English letters.  Explain how to set coding systems correctly
 +      and how to include the right coding cookie in the file.
 +
 +2003-05-22  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@gmx.net>
 +
 +      * indent.texi (Indentation): Explain the concepts.
 +      (Just Spaces): Explain why preventing tabs for indentation might
 +      be useful.
 +
 +2003-04-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * search.texi (Regexps): Ref to Lisp manual for more regexp features.
 +
 +2003-02-22  Alex Schroeder  <alex@emacswiki.org>
 +
 +      * cmdargs.texi (General Variables): Document SMTPSERVER.
 +
 +      * sending.texi: Remove SMTP node.
 +      (Mail Sending): Describe `send-mail-function'.  Link to SMTP
 +      library.
 +
 +2003-02-22  Alex Schroeder  <alex@emacswiki.org>
 +
 +      * sending.texi (Sending via SMTP): Explain MTA/MUA.
 +
 +2003-02-22  Simon Josefsson  <jas@extundo.com>
 +
 +      * sending.texi (Mail Methods): Add node about SMTP.
 +
 +2003-02-17  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * xresources.texi (GTK names in Emacs): Add emacs-toolbar - GtkToolbar.
 +
 +2003-02-01  Kevin Ryde  <user42@zip.com.au>
 +
 +      * glossary.texi (Glossary): Correction to cl cross reference.
 +
 +2003-01-20  Richard M. Stallman  <rms@gnu.org>
 +
 +      * killing.texi (Rectangles): Document C-x c r.
 +
 +2003-01-19  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * xresources.texi (GTK resources): New node.
 +      (GTK widget names): New node.
 +      (GTK names in Emacs): New node.
 +      (GTK styles): New node.
 +
 +2003-01-09  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 +
 +      * maintaining.texi (Create Tags Table): Add reference to the new
 +      `etags --help --lang=LANG' option.
 +
 +2002-10-02  Karl Berry  <karl@gnu.org>
 +
 +      * emacs.texi: Per rms, update all manuals to use @copying instead of
 +      @ifinfo. Also use @ifnottex instead of @ifinfo around the top node,
 +      where needed for the sake of the HTML output.
 +
 +2001-12-20  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * Makefile.in (EMACSSOURCES): Update the list of Emacs manual
 +      source files.
 +
 +2001-11-16  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * Makefile.in (emacsman): New target.
 +
 +2001-10-20  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * (Version 21.1 released.)
 +
 +2001-10-05  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * Branch for 21.1.
 +
 +2001-03-05  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * Makefile.in (mostlyclean, maintainer-clean): Delete more files.
 +
 +2000-05-31  Stefan Monnier  <monnier@cs.yale.edu>
 +
 +      * .cvsignore (*.tmp): New entry.  Seems to be used for @macro.
 +
 +1999-07-12  Richard Stallman  <rms@gnu.org>
 +
 +      * Version 20.4 released.
 +
 +1998-12-04  Markus Rost  <rost@delysid.gnu.org>
 +
 +      * Makefile.in (INFO_TARGETS): Delete customize.info.
 +      (DVI_TARGETS): Delete customize.dvi.
 +      (../info/customize, customize.dvi): Targets deleted.
 +
 +1998-08-19  Richard Stallman  <rms@psilocin.ai.mit.edu>
 +
 +      * Version 20.3 released.
 +
 +1998-05-06  Richard Stallman  <rms@psilocin.gnu.org>
 +
 +      * Makefile.in (EMACSSOURCES): Add mule.texi.
 +      Add msdog.texi, ack.texi.  Remove gnu1.texi.
 +
 +1998-04-06  Andreas Schwab  <schwab@gnu.org>
 +
 +      * Makefile.in (ENVADD): Enviroment vars to pass to texi2dvi.  Use
 +      it in dvi targets.
 +
 +1997-09-23  Paul Eggert  <eggert@twinsun.com>
 +
 +      * Makefile.in: Merge changes mistakenly made to `Makefile'.
 +      (INFO_TARGETS): Change ../info/custom to ../info/customize.
 +      (../info/customize): Rename from ../info/custom.
 +
 +1997-09-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 +
 +      * Version 20.2 released.
 +
 +1997-09-15  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 +
 +      * Version 20.1 released.
 +
 +1997-08-24  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 +
 +      * Makefile (../info/customize, customize.dvi): New targets.
 +      (INFO_TARGETS): Add ../info/customize.
 +      (DVI_TARGETS): Add customize.dvi.
 +
 +1996-08-11  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 +
 +      * Version 19.33 released.
 +
 +1996-07-31  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 +
 +      * Version 19.32 released.
 +
 +1996-06-20  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 +
 +      * Makefile.in (All info targets): cd $(srcdir) to do the work.
 +
 +1996-06-19  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 +
 +      * Makefile.in (All info targets): Specify $(srcdir) in input files.
 +      Specify -I option.
 +      (All dvi targets): Set the TEXINPUTS variable.
 +
 +1996-05-25  Karl Heuer  <kwzh@gnu.ai.mit.edu>
 +
 +      * Version 19.31 released.
 +
 +1995-11-24  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 +
 +      * Version 19.30 released.
 +
 +1995-02-07  Richard Stallman  <rms@pogo.gnu.ai.mit.edu>
 +
 +      * Makefile.in (maintainer-clean): Rename from realclean.
 +
 +1994-11-23  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 +
 +      * Makefile.in: New file.
 +      * Makefile: File deleted.
 +
 +1994-11-19  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 +
 +      * Makefile (TEXINDEX_OBJS): Variable deleted.
 +      (texindex, texindex.o, getopt.o): Rules deleted.
 +      All deps on texindex deleted.
 +      (distclean): Don't delete texindex.
 +      (mostlyclean): Don't delete *.o.
 +      * texindex.c, getopt.c: Files deleted.
 +
 +1994-09-07  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 +
 +      * Version 19.26 released.
 +
 +1994-07-02  Richard Stallman  (rms@gnu.ai.mit.edu)
 +
 +      * Makefile (EMACSSOURCES): Exclude undo.texi.
 +
 +1994-05-30  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Version 19.25 released.
 +
 +1994-05-23  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Version 19.24 released.
 +
 +1994-05-16  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Version 19.23 released.
 +
 +1994-04-17  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Makefile: Delete spurious tab.
 +
 +1994-02-16  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Makefile (.SUFFIXES): New rule.
 +
 +1993-12-04  Richard Stallman  (rms@srarc2)
 +
 +      * getopt.c: New file.
 +      * Makefile (TEXINDEX_OBJS): Use getopt.o in this dir, not ../lib-src.
 +      (getopt.o): New rule.
 +      (dvi): Don't depend on texindex.
 +      (emacs.dvi): Depend on texindex.
 +
 +1993-12-03  Richard Stallman  (rms@srarc2)
 +
 +      * Makefile (TEXI2DVI): New variable.
 +      (emacs.dvi): Add explicit command.
 +      (TEXINDEX_OBJS): Delete duplicate getopt.o.
 +
 +1993-11-27  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Version 19.22 released.
 +
 +1993-11-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Makefile (TEXINDEX_OBJS): Delete spurious period.
 +
 +1993-11-16  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Version 19.21 released.
 +
 +1993-11-14  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Makefile (realclean): Don't delete the Info files.
 +
 +1993-10-25  Brian Fox  (bfox@albert.gnu.ai.mit.edu)
 +
 +      * frames.texi (Creating Frames): Mention `C-x 5' instead of `C-x
 +      4' where appropriate.
 +
 +1993-10-20  Brian Fox  (bfox@ai.mit.edu)
 +
 +      * Makefile: Fix targets for texindex.
 +
 +      * texindex.c: Include "../src/config.h" if building in emacs.
 +
 +      * Makefile: Change all files to FILENAME.texi, force all targets
 +      to be FILENAME, not FILENAME.info.
 +      Add target to build texindex.c, defining `emacs'.
 +
 +1993-08-14  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Version 19.19 released.
 +
 +1993-08-08  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Version 19.18 released.
 +
 +1993-07-20  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Makefile: Fix source file names of the separate manuals.
 +
 +1993-07-18  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Version 19.17 released.
 +
 +1993-07-10  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * split-man: Fix typos in last change.
 +
 +1993-07-06  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
 +
 +      * Version 19.16 released.
 +
 +1993-06-19  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * version 19.15 released.
 +
 +1993-06-18  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
 +
 +      * Makefile (distclean): It's rm, not rf.
 +
 +1993-06-17  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * Version 19.14 released.
 +
 +1993-06-16  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * Makefile: New file.
 +
 +1993-06-08  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * Version 19.13 released.
 +
 +1993-05-27  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
 +
 +      * Version 19.9 released.
 +
 +1993-05-25  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * Version 19.8 released.
 +
 +1993-05-25  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * cmdargs.texi: Document the -i, -itype, and -iconic options.
 +
 +      * trouble.texi: It's `enable-flow-control-on', not
 +      `evade-flow-control-on'.
 +
 +1993-05-24  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * display.texi: Document standard-display-european.
 +
 +1993-05-22  Jim Blandy  (jimb@geech.gnu.ai.mit.edu)
 +
 +      * Version 19.7 released.
 +
 +      * emacs.texi: Add a sentence to the top menu mentioning the
 +      specific version of Emacs this manual applies to.
 +
 +1993-04-25  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
 +
 +      * basic.texi: Document next-line-add-lines variable used to
 +      implement down-arrow.
 +
 +      * killing.texi: Document kill-whole-line.
 +
 +1993-04-18  Noah Friedman  (friedman@nutrimat.gnu.ai.mit.edu)
 +
 +      * text.texi: Update unix TeX ordering information.
 +
 +1993-03-26  Eric S. Raymond  (eric@geech.gnu.ai.mit.edu)
 +
 +      * news.texi: Mention fill-rectangle in keybinding list.
 +
 +      * killing.texi: Document fill-rectangle.
 +
 +1993-03-17  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
 +
 +      * vc.texi: Bring the docs up to date with VC 5.2.
 +
 +1992-01-10  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
 +
 +      * emacs.tex: Mention blackbox and gomoku under Amusements.
 +      Assembler mode is now mentioned and appropriately indexed
 +      under Programming Modes.
 +
 +1991-02-15  Robert J. Chassell  (bob@wookumz.ai.mit.edu)
 +
 +      * emacs.tex: Update TeX ordering information.
 +
 +1990-06-26  David Lawrence  (tale@geech)
 +
 +      * emacs.tex: Note that completion-ignored-extensions is not used
 +      to filter out names when all completions are displayed in
 +      *Completions*.
 +
 +1990-05-25  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 +
 +      * texindex.tex: If USG, include sys/types.h and sys/fcntl.h.
 +
 +1990-03-21  Jim Kingdon  (kingdon@pogo.ai.mit.edu)
 +
 +      * emacs.tex: Add @findex grep.
 +
 +1988-08-16  Robert J. Chassell  (bob@frosted-flakes.ai.mit.edu)
 +
 +      * emacs.tex: Correct two typos.  No other changes before
 +      Version 19 will be made.
 +
 +1988-05-23  Robert J. Chassell  (bob@frosted-flakes.ai.mit.edu)
 +
 +      * emacs.tex: Update information for obtaining TeX distribution from the
 +      University of Washington.
 +
 +;; Local Variables:
 +;; coding: iso-2022-7bit
 +;; fill-column: 79
 +;; add-log-time-zone-rule: t
 +;; End:
 +
 +    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
 +      2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 +
 +  This file is part of GNU Emacs.
 +
 +  GNU Emacs is free software; you can redistribute it and/or modify
 +  it under the terms of the GNU General Public License as published by
 +  the Free Software Foundation; either version 3, or (at your option)
 +  any later version.
 +
 +  GNU Emacs is distributed in the hope that it will be useful,
 +  but WITHOUT ANY WARRANTY; without even the implied warranty of
 +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +  GNU General Public License for more details.
 +
 +  You should have received a copy of the GNU General Public License
 +  along with GNU Emacs; see the file COPYING.  If not, write to the
 +  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 +  Boston, MA 02110-1301, USA.
 +
 +;;; arch-tag: f1d62776-3ed5-4811-9d96-267252577dbd
index 8e2cb879754a865aa485c905a23ce2140dd2f961,0000000000000000000000000000000000000000..8e33dc5aa8c0fd7414034c1c04cf6ab5663d7baf
mode 100644,000000..100644
--- /dev/null
@@@ -1,3076 -1,0 +1,3077 @@@
-   Emacs saves all the visited files from time to time (based on counting
- your keystrokes) without being asked.  This is called @dfn{auto-saving}.
- It prevents you from losing more than a limited amount of work if the
- system crashes.
 +@c This is part of the Emacs manual.
 +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 1999, 2000,
 +@c   2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 +@c See file emacs.texi for copying conditions.
 +@node Files, Buffers, Keyboard Macros, Top
 +@chapter File Handling
 +@cindex files
 +
 +  The operating system stores data permanently in named @dfn{files}, so
 +most of the text you edit with Emacs comes from a file and is ultimately
 +stored in a file.
 +
 +  To edit a file, you must tell Emacs to read the file and prepare a
 +buffer containing a copy of the file's text.  This is called
 +@dfn{visiting} the file.  Editing commands apply directly to text in the
 +buffer; that is, to the copy inside Emacs.  Your changes appear in the
 +file itself only when you @dfn{save} the buffer back into the file.
 +
 +  In addition to visiting and saving files, Emacs can delete, copy,
 +rename, and append to files, keep multiple versions of them, and operate
 +on file directories.
 +
 +@menu
 +* File Names::          How to type and edit file-name arguments.
 +* Visiting::            Visiting a file prepares Emacs to edit the file.
 +* Saving::              Saving makes your changes permanent.
 +* Reverting::           Reverting cancels all the changes not saved.
 +@ifnottex
 +* Autorevert::          Auto Reverting non-file buffers.
 +@end ifnottex
 +* Auto Save::           Auto Save periodically protects against loss of data.
 +* File Aliases::        Handling multiple names for one file.
 +* Version Control::     Version control systems (RCS, CVS and SCCS).
 +* Directories::         Creating, deleting, and listing file directories.
 +* Comparing Files::     Finding where two files differ.
 +* Diff Mode::           Mode for editing file differences.
 +* Misc File Ops::       Other things you can do on files.
 +* Compressed Files::    Accessing compressed files.
 +* File Archives::       Operating on tar, zip, jar etc. archive files.
 +* Remote Files::        Accessing files on other sites.
 +* Quoted File Names::   Quoting special characters in file names.
 +* File Name Cache::     Completion against a list of files you often use.
 +* File Conveniences::   Convenience Features for Finding Files.
 +* Filesets::            Handling sets of files.
 +@end menu
 +
 +@node File Names
 +@section File Names
 +@cindex file names
 +
 +  Most Emacs commands that operate on a file require you to specify the
 +file name.  (Saving and reverting are exceptions; the buffer knows which
 +file name to use for them.)  You enter the file name using the
 +minibuffer (@pxref{Minibuffer}).  @dfn{Completion} is available
 +(@pxref{Completion}) to make it easier to specify long file names.  When
 +completing file names, Emacs ignores those whose file-name extensions
 +appear in the variable @code{completion-ignored-extensions}; see
 +@ref{Completion Options}.
 +
 +  For most operations, there is a @dfn{default file name} which is used
 +if you type just @key{RET} to enter an empty argument.  Normally the
 +default file name is the name of the file visited in the current buffer;
 +this makes it easy to operate on that file with any of the Emacs file
 +commands.
 +
 +@vindex default-directory
 +  Each buffer has a default directory which is normally the same as the
 +directory of the file visited in that buffer.  When you enter a file
 +name without a directory, the default directory is used.  If you specify
 +a directory in a relative fashion, with a name that does not start with
 +a slash, it is interpreted with respect to the default directory.  The
 +default directory is kept in the variable @code{default-directory},
 +which has a separate value in every buffer.
 +
 +@findex cd
 +@findex pwd
 +  The command @kbd{M-x pwd} displays the current buffer's default
 +directory, and the command @kbd{M-x cd} sets it (to a value read using
 +the minibuffer).  A buffer's default directory changes only when the
 +@code{cd} command is used.  A file-visiting buffer's default directory
 +is initialized to the directory of the file it visits.  If you create
 +a buffer with @kbd{C-x b}, its default directory is copied from that
 +of the buffer that was current at the time.
 +
 +  For example, if the default file name is @file{/u/rms/gnu/gnu.tasks}
 +then the default directory is normally @file{/u/rms/gnu/}.  If you
 +type just @samp{foo}, which does not specify a directory, it is short
 +for @file{/u/rms/gnu/foo}.  @samp{../.login} would stand for
 +@file{/u/rms/.login}.  @samp{new/foo} would stand for the file name
 +@file{/u/rms/gnu/new/foo}.
 +
 +@vindex insert-default-directory
 +  The default directory actually appears in the minibuffer when the
 +minibuffer becomes active to read a file name.  This serves two
 +purposes: it @emph{shows} you what the default is, so that you can type
 +a relative file name and know with certainty what it will mean, and it
 +allows you to @emph{edit} the default to specify a different directory.
 +This insertion of the default directory is inhibited if the variable
 +@code{insert-default-directory} is set to @code{nil}.
 +
 +  Note that it is legitimate to type an absolute file name after you
 +enter the minibuffer, ignoring the presence of the default directory
 +name as part of the text.  The final minibuffer contents may look
 +invalid, but that is not so.  For example, if the minibuffer starts out
 +with @samp{/usr/tmp/} and you add @samp{/x1/rms/foo}, you get
 +@samp{/usr/tmp//x1/rms/foo}; but Emacs ignores everything through the
 +first slash in the double slash; the result is @samp{/x1/rms/foo}.
 +@xref{Minibuffer File}.
 +
 +@cindex home directory shorthand
 +  You can use @file{~/} in a file name to mean your home directory,
 +or @file{~@var{user-id}/} to mean the home directory of a user whose
 +login name is @code{user-id}@footnote{
 +On MS-Windows and MS-DOS systems, where a user doesn't have a home
 +directory, Emacs replaces @file{~/} with the value of the
 +environment variable @code{HOME}; see @ref{General Variables}.  On
 +these systems, the @file{~@var{user-id}/} construct is supported only
 +for the current user, i.e., only if @var{user-id} is the current
 +user's login name.}.
 +
 +@cindex environment variables in file names
 +@cindex expansion of environment variables
 +@cindex @code{$} in file names
 +  @anchor{File Names with $}@samp{$} in a file name is used to
 +substitute an environment variable.  The environment variable name
 +consists of all the alphanumeric characters after the @samp{$};
 +alternatively, it can be enclosed in braces after the @samp{$}.  For
 +example, if you have used the shell command @command{export
 +FOO=rms/hacks} to set up an environment variable named @env{FOO}, then
 +you can use @file{/u/$FOO/test.c} or @file{/u/$@{FOO@}/test.c} as an
 +abbreviation for @file{/u/rms/hacks/test.c}.  If the environment
 +variable is not defined, no substitution occurs: @file{/u/$notdefined}
 +stands for itself (assuming the environment variable @env{notdefined}
 +is not defined).
 +
 +  Note that shell commands to set environment variables affect Emacs
 +only when done before Emacs is started.
 +
 +  To access a file with @samp{$} in its name, if the @samp{$} causes
 +expansion, type @samp{$$}.  This pair is converted to a single
 +@samp{$} at the same time as variable substitution is performed for a
 +single @samp{$}.  Alternatively, quote the whole file name with
 +@samp{/:} (@pxref{Quoted File Names}).  File names which begin with a
 +literal @samp{~} should also be quoted with @samp{/:}.
 +
 +@findex substitute-in-file-name
 +  The Lisp function that performs the @samp{$}-substitution is called
 +@code{substitute-in-file-name}.  The substitution is performed only on
 +file names read as such using the minibuffer.
 +
 +  You can include non-@acronym{ASCII} characters in file names if you set the
 +variable @code{file-name-coding-system} to a non-@code{nil} value.
 +@xref{File Name Coding}.
 +
 +@node Visiting
 +@section Visiting Files
 +@cindex visiting files
 +@cindex open file
 +
 +@table @kbd
 +@item C-x C-f
 +Visit a file (@code{find-file}).
 +@item C-x C-r
 +Visit a file for viewing, without allowing changes to it
 +(@code{find-file-read-only}).
 +@item C-x C-v
 +Visit a different file instead of the one visited last
 +(@code{find-alternate-file}).
 +@item C-x 4 f
 +Visit a file, in another window (@code{find-file-other-window}).  Don't
 +alter what is displayed in the selected window.
 +@item C-x 5 f
 +Visit a file, in a new frame (@code{find-file-other-frame}).  Don't
 +alter what is displayed in the selected frame.
 +@item M-x find-file-literally
 +Visit a file with no conversion of the contents.
 +@end table
 +
 +@cindex files, visiting and saving
 +@cindex saving files
 +  @dfn{Visiting} a file means reading its contents into an Emacs
 +buffer so you can edit them.  Emacs makes a new buffer for each file
 +that you visit.  We often say that this buffer ``is visiting'' that
 +file, or that the buffer's ``visited file'' is that file.  Emacs
 +constructs the buffer name from the file name by throwing away the
 +directory, keeping just the name proper.  For example, a file named
 +@file{/usr/rms/emacs.tex} would get a buffer named @samp{emacs.tex}.
 +If there is already a buffer with that name, Emacs constructs a unique
 +name---the normal method is to append @samp{<2>}, @samp{<3>}, and so
 +on, but you can select other methods (@pxref{Uniquify}).
 +
 +  Each window's mode line shows the name of the buffer that is being displayed
 +in that window, so you can always tell what buffer you are editing.
 +
 +  The changes you make with editing commands are made in the Emacs
 +buffer.  They do not take effect in the file that you visited, or any
 +permanent place, until you @dfn{save} the buffer.  Saving the buffer
 +means that Emacs writes the current contents of the buffer into its
 +visited file.  @xref{Saving}.
 +
 +@cindex modified (buffer)
 +  If a buffer contains changes that have not been saved, we say the
 +buffer is @dfn{modified}.  This is important because it implies that
 +some changes will be lost if the buffer is not saved.  The mode line
 +displays two stars near the left margin to indicate that the buffer is
 +modified.
 +
 +@kindex C-x C-f
 +@findex find-file
 +  To visit a file, use the command @kbd{C-x C-f} (@code{find-file}).  Follow
 +the command with the name of the file you wish to visit, terminated by a
 +@key{RET}.
 +
 +  The file name is read using the minibuffer (@pxref{Minibuffer}), with
 +defaulting and completion in the standard manner (@pxref{File Names}).
 +While in the minibuffer, you can abort @kbd{C-x C-f} by typing
 +@kbd{C-g}.  File-name completion ignores certain file names; for more
 +about this, see @ref{Completion Options}.
 +
 +  Your confirmation that @kbd{C-x C-f} has completed successfully is
 +the appearance of new text on the screen and a new buffer name in the
 +mode line.  If the specified file does not exist and you could not
 +create it, or exists but you can't read it, then you get an error,
 +with an error message displayed in the echo area.
 +
 +  If you visit a file that is already in Emacs, @kbd{C-x C-f} does not make
 +another copy.  It selects the existing buffer containing that file.
 +However, before doing so, it checks whether the file itself has changed
 +since you visited or saved it last.  If the file has changed, Emacs offers
 +to reread it.
 +
 +@vindex large-file-warning-threshold
 +@cindex maximum buffer size exceeded, error message
 +  If you try to visit a file larger than
 +@code{large-file-warning-threshold} (the default is 10000000, which is
 +about 10 megabytes), Emacs will ask you for confirmation first.  You
 +can answer @kbd{y} to proceed with visiting the file.  Note, however,
 +that Emacs cannot visit files that are larger than the maximum Emacs
 +buffer size, which is around 256 megabytes on 32-bit machines
 +(@pxref{Buffers}).  If you try, Emacs will display an error message
 +saying that the maximum buffer size has been exceeded.
 +
 +@cindex file selection dialog
 +  On graphical displays there are two additional methods for
 +visiting files.  Firstly, when Emacs is built with a suitable GUI
 +toolkit, commands invoked with the mouse (by clicking on the menu bar
 +or tool bar) use the toolkit's standard File Selection dialog instead
 +of prompting for the file name in the minibuffer.  On Unix and
 +GNU/Linux platforms, Emacs does that when built with GTK, LessTif, and
 +Motif toolkits; on MS-Windows and Mac, the GUI version does that by default.
 +For information on how to customize this, see @ref{Dialog Boxes}.
 +
 +  Secondly, Emacs supports ``drag and drop''; dropping a file into an
 +ordinary Emacs window visits the file using that window.  However,
 +dropping a file into a window displaying a Dired buffer moves or
 +copies the file into the displayed directory.  For details, see
 +@ref{Drag and Drop}, and @ref{Misc Dired Features}.
 +
 +@cindex creating files
 +  What if you want to create a new file?  Just visit it.  Emacs displays
 +@samp{(New file)} in the echo area, but in other respects behaves as if
 +you had visited an existing empty file.  If you make any changes and
 +save them, the file is created.
 +
 +  Emacs recognizes from the contents of a file which end-of-line
 +convention it uses to separate lines---newline (used on GNU/Linux and
 +on Unix), carriage-return linefeed (used on Microsoft systems), or
 +just carriage-return (used on the Macintosh)---and automatically
 +converts the contents to the normal Emacs convention, which is that
 +the newline character separates lines.  This is a part of the general
 +feature of coding system conversion (@pxref{Coding Systems}), and
 +makes it possible to edit files imported from different operating
 +systems with equal convenience.  If you change the text and save the
 +file, Emacs performs the inverse conversion, changing newlines back
 +into carriage-return linefeed or just carriage-return if appropriate.
 +
 +@vindex find-file-run-dired
 +  If the file you specify is actually a directory, @kbd{C-x C-f} invokes
 +Dired, the Emacs directory browser, so that you can ``edit'' the contents
 +of the directory (@pxref{Dired}).  Dired is a convenient way to view, delete,
 +or operate on the files in the directory.  However, if the variable
 +@code{find-file-run-dired} is @code{nil}, then it is an error to try
 +to visit a directory.
 +
 +  Files which are actually collections of other files, or @dfn{file
 +archives}, are visited in special modes which invoke a Dired-like
 +environment to allow operations on archive members.  @xref{File
 +Archives}, for more about these features.
 +
 +@cindex wildcard characters in file names
 +@vindex find-file-wildcards
 +  If the file name you specify contains shell-style wildcard
 +characters, Emacs visits all the files that match it.  (On
 +case-insensitive filesystems, Emacs matches the wildcards disregarding
 +the letter case.)  Wildcards include @samp{?}, @samp{*}, and
 +@samp{[@dots{}]} sequences.  To enter the wild card @samp{?} in a file
 +name in the minibuffer, you need to type @kbd{C-q ?}.  @xref{Quoted
 +File Names}, for information on how to visit a file whose name
 +actually contains wildcard characters.  You can disable the wildcard
 +feature by customizing @code{find-file-wildcards}.
 +
 +  If you visit a file that the operating system won't let you modify,
 +or that is marked read-only, Emacs makes the buffer read-only too, so
 +that you won't go ahead and make changes that you'll have trouble
 +saving afterward.  You can make the buffer writable with @kbd{C-x C-q}
 +(@code{toggle-read-only}).  @xref{Misc Buffer}.
 +
 +@kindex C-x C-r
 +@findex find-file-read-only
 +  If you want to visit a file as read-only in order to protect
 +yourself from entering changes accidentally, visit it with the command
 +@kbd{C-x C-r} (@code{find-file-read-only}) instead of @kbd{C-x C-f}.
 +
 +@kindex C-x C-v
 +@findex find-alternate-file
 +  If you visit a nonexistent file unintentionally (because you typed the
 +wrong file name), use the @kbd{C-x C-v} command
 +(@code{find-alternate-file}) to visit the file you really wanted.
 +@kbd{C-x C-v} is similar to @kbd{C-x C-f}, but it kills the current
 +buffer (after first offering to save it if it is modified).  When
 +@kbd{C-x C-v} reads the file name to visit, it inserts the entire
 +default file name in the buffer, with point just after the directory
 +part; this is convenient if you made a slight error in typing the name.
 +
 +@kindex C-x 4 f
 +@findex find-file-other-window
 +  @kbd{C-x 4 f} (@code{find-file-other-window}) is like @kbd{C-x C-f}
 +except that the buffer containing the specified file is selected in another
 +window.  The window that was selected before @kbd{C-x 4 f} continues to
 +show the same buffer it was already showing.  If this command is used when
 +only one window is being displayed, that window is split in two, with one
 +window showing the same buffer as before, and the other one showing the
 +newly requested file.  @xref{Windows}.
 +
 +@kindex C-x 5 f
 +@findex find-file-other-frame
 +  @kbd{C-x 5 f} (@code{find-file-other-frame}) is similar, but opens a
 +new frame, or makes visible any existing frame showing the file you
 +seek.  This feature is available only when you are using a window
 +system.  @xref{Frames}.
 +
 +@findex find-file-literally
 +  If you wish to edit a file as a sequence of @acronym{ASCII} characters with no special
 +encoding or conversion, use the @kbd{M-x find-file-literally} command.
 +It visits a file, like @kbd{C-x C-f}, but does not do format conversion
 +(@pxref{Formatted Text}), character code conversion (@pxref{Coding
 +Systems}), or automatic uncompression (@pxref{Compressed Files}), and
 +does not add a final newline because of @code{require-final-newline}.
 +If you already have visited the same file in the usual (non-literal)
 +manner, this command asks you whether to visit it literally instead.
 +
 +@vindex find-file-hook
 +@vindex find-file-not-found-functions
 +  Two special hook variables allow extensions to modify the operation of
 +visiting files.  Visiting a file that does not exist runs the functions
 +in the list @code{find-file-not-found-functions}; this variable holds a list
 +of functions, and the functions are called one by one (with no
 +arguments) until one of them returns non-@code{nil}.  This is not a
 +normal hook, and the name ends in @samp{-functions} rather than @samp{-hook}
 +to indicate that fact.
 +
 +  Successful visiting of any file, whether existing or not, calls the
 +functions in the list @code{find-file-hook}, with no arguments.
 +This variable is a normal hook.  In the case of a nonexistent file, the
 +@code{find-file-not-found-functions} are run first.  @xref{Hooks}.
 +
 +  There are several ways to specify automatically the major mode for
 +editing the file (@pxref{Choosing Modes}), and to specify local
 +variables defined for that file (@pxref{File Variables}).
 +
 +@node Saving
 +@section Saving Files
 +
 +  @dfn{Saving} a buffer in Emacs means writing its contents back into the file
 +that was visited in the buffer.
 +
 +@menu
 +* Save Commands::       Commands for saving files.
 +* Backup::              How Emacs saves the old version of your file.
 +* Customize Save::      Customizing the saving of files.
 +* Interlocking::        How Emacs protects against simultaneous editing
 +                          of one file by two users.
 +* Shadowing: File Shadowing.  Copying files to "shadows" automatically.
 +* Time Stamps::         Emacs can update time stamps on saved files.
 +@end menu
 +
 +@node Save Commands
 +@subsection Commands for Saving Files
 +
 +  These are the commands that relate to saving and writing files.
 +
 +@table @kbd
 +@item C-x C-s
 +Save the current buffer in its visited file on disk (@code{save-buffer}).
 +@item C-x s
 +Save any or all buffers in their visited files (@code{save-some-buffers}).
 +@item M-~
 +Forget that the current buffer has been changed (@code{not-modified}).
 +With prefix argument (@kbd{C-u}), mark the current buffer as changed.
 +@item C-x C-w
 +Save the current buffer with a specified file name (@code{write-file}).
 +@item M-x set-visited-file-name
 +Change the file name under which the current buffer will be saved.
 +@end table
 +
 +@kindex C-x C-s
 +@findex save-buffer
 +  When you wish to save the file and make your changes permanent, type
 +@kbd{C-x C-s} (@code{save-buffer}).  After saving is finished, @kbd{C-x C-s}
 +displays a message like this:
 +
 +@example
 +Wrote /u/rms/gnu/gnu.tasks
 +@end example
 +
 +@noindent
 +If the selected buffer is not modified (no changes have been made in it
 +since the buffer was created or last saved), saving is not really done,
 +because it would have no effect.  Instead, @kbd{C-x C-s} displays a message
 +like this in the echo area:
 +
 +@example
 +(No changes need to be saved)
 +@end example
 +
 +@kindex C-x s
 +@findex save-some-buffers
 +  The command @kbd{C-x s} (@code{save-some-buffers}) offers to save any
 +or all modified buffers.  It asks you what to do with each buffer.  The
 +possible responses are analogous to those of @code{query-replace}:
 +
 +@table @kbd
 +@item y
 +Save this buffer and ask about the rest of the buffers.
 +@item n
 +Don't save this buffer, but ask about the rest of the buffers.
 +@item !
 +Save this buffer and all the rest with no more questions.
 +@c following generates acceptable underfull hbox
 +@item @key{RET}
 +Terminate @code{save-some-buffers} without any more saving.
 +@item .
 +Save this buffer, then exit @code{save-some-buffers} without even asking
 +about other buffers.
 +@item C-r
 +View the buffer that you are currently being asked about.  When you exit
 +View mode, you get back to @code{save-some-buffers}, which asks the
 +question again.
 +@item d
 +Diff the buffer against its corresponding file, so you can see
 +what changes you would be saving.
 +@item C-h
 +Display a help message about these options.
 +@end table
 +
 +  @kbd{C-x C-c}, the key sequence to exit Emacs, invokes
 +@code{save-some-buffers} and therefore asks the same questions.
 +
 +@kindex M-~
 +@findex not-modified
 +  If you have changed a buffer but you do not want to save the changes,
 +you should take some action to prevent it.  Otherwise, each time you use
 +@kbd{C-x s} or @kbd{C-x C-c}, you are liable to save this buffer by
 +mistake.  One thing you can do is type @kbd{M-~} (@code{not-modified}),
 +which clears out the indication that the buffer is modified.  If you do
 +this, none of the save commands will believe that the buffer needs to be
 +saved.  (@samp{~} is often used as a mathematical symbol for `not'; thus
 +@kbd{M-~} is `not', metafied.)  You could also use
 +@code{set-visited-file-name} (see below) to mark the buffer as visiting
 +a different file name, one which is not in use for anything important.
 +Alternatively, you can cancel all the changes made since the file was
 +visited or saved, by reading the text from the file again.  This is
 +called @dfn{reverting}.  @xref{Reverting}.  (You could also undo all the
 +changes by repeating the undo command @kbd{C-x u} until you have undone
 +all the changes; but reverting is easier.)  You can also kill the buffer.
 +
 +@findex set-visited-file-name
 +  @kbd{M-x set-visited-file-name} alters the name of the file that the
 +current buffer is visiting.  It reads the new file name using the
 +minibuffer.  Then it marks the buffer as visiting that file name, and
 +changes the buffer name correspondingly.  @code{set-visited-file-name}
 +does not save the buffer in the newly visited file; it just alters the
 +records inside Emacs in case you do save later.  It also marks the
 +buffer as ``modified'' so that @kbd{C-x C-s} in that buffer
 +@emph{will} save.
 +
 +@kindex C-x C-w
 +@findex write-file
 +  If you wish to mark the buffer as visiting a different file and save it
 +right away, use @kbd{C-x C-w} (@code{write-file}).  It is
 +equivalent to @code{set-visited-file-name} followed by @kbd{C-x C-s}
 +(except that @kbd{C-x C-w} asks for confirmation if the file exists).
 +@kbd{C-x C-s} used on a buffer that is not visiting a file has the
 +same effect as @kbd{C-x C-w}; that is, it reads a file name, marks the
 +buffer as visiting that file, and saves it there.  The default file name in
 +a buffer that is not visiting a file is made by combining the buffer name
 +with the buffer's default directory (@pxref{File Names}).
 +
 +  If the new file name implies a major mode, then @kbd{C-x C-w} switches
 +to that major mode, in most cases.  The command
 +@code{set-visited-file-name} also does this.  @xref{Choosing Modes}.
 +
 +  If Emacs is about to save a file and sees that the date of the latest
 +version on disk does not match what Emacs last read or wrote, Emacs
 +notifies you of this fact, because it probably indicates a problem caused
 +by simultaneous editing and requires your immediate attention.
 +@xref{Interlocking,, Simultaneous Editing}.
 +
 +@node Backup
 +@subsection Backup Files
 +@cindex backup file
 +@vindex make-backup-files
 +@vindex vc-make-backup-files
 +
 +  On most operating systems, rewriting a file automatically destroys all
 +record of what the file used to contain.  Thus, saving a file from Emacs
 +throws away the old contents of the file---or it would, except that
 +Emacs carefully copies the old contents to another file, called the
 +@dfn{backup} file, before actually saving.
 +
 +  For most files, the variable @code{make-backup-files} determines
 +whether to make backup files.  On most operating systems, its default
 +value is @code{t}, so that Emacs does write backup files.
 +
 +  For files managed by a version control system (@pxref{Version
 +Control}), the variable @code{vc-make-backup-files} determines whether
 +to make backup files.  By default it is @code{nil}, since backup files
 +are redundant when you store all the previous versions in a version
 +control system.
 +@iftex
 +@xref{General VC Options,,,emacs-xtra, Specialized Emacs Features}.
 +@end iftex
 +@ifnottex
 +@xref{General VC Options}.
 +@end ifnottex
 +
 +
 +  At your option, Emacs can keep either a single backup for each file,
 +or make a series of numbered backup files for each file that you edit.
 +
 +@vindex backup-enable-predicate
 +@vindex temporary-file-directory
 +@vindex small-temporary-file-directory
 +  The default value of the @code{backup-enable-predicate} variable
 +prevents backup files being written for files in the directories used
 +for temporary files, specified by @code{temporary-file-directory} or
 +@code{small-temporary-file-directory}.
 +
 +  Emacs makes a backup for a file only the first time the file is saved
 +from one buffer.  No matter how many times you save a file, its backup file
 +continues to contain the contents from before the file was visited.
 +Normally this means that the backup file contains the contents from before
 +the current editing session; however, if you kill the buffer and then visit
 +the file again, a new backup file will be made by the next save.
 +
 +  You can also explicitly request making another backup file from a
 +buffer even though it has already been saved at least once.  If you save
 +the buffer with @kbd{C-u C-x C-s}, the version thus saved will be made
 +into a backup file if you save the buffer again.  @kbd{C-u C-u C-x C-s}
 +saves the buffer, but first makes the previous file contents into a new
 +backup file.  @kbd{C-u C-u C-u C-x C-s} does both things: it makes a
 +backup from the previous contents, and arranges to make another from the
 +newly saved contents if you save again.
 +
 +@menu
 +* One or Many: Numbered Backups. Whether to make one backup file or many.
 +* Names: Backup Names.                How backup files are named.
 +* Deletion: Backup Deletion.  Emacs deletes excess numbered backups.
 +* Copying: Backup Copying.    Backups can be made by copying or renaming.
 +@end menu
 +
 +@node Numbered Backups
 +@subsubsection Numbered Backups
 +
 +@vindex version-control
 +  The choice of single backup file or multiple numbered backup files
 +is controlled by the variable @code{version-control}.  Its possible
 +values are:
 +
 +@table @code
 +@item t
 +Make numbered backups.
 +@item nil
 +Make numbered backups for files that have numbered backups already.
 +Otherwise, make single backups.
 +@item never
 +Never make numbered backups; always make single backups.
 +@end table
 +
 +@noindent
 +The usual way to set this variable is globally, through your
 +@file{.emacs} file or the customization buffer.  However, you can set
 +@code{version-control} locally in an individual buffer to control the
 +making of backups for that buffer's file.  For example, Rmail mode
 +locally sets @code{version-control} to @code{never} to make sure that
 +there is only one backup for an Rmail file.  @xref{Locals}.
 +
 +@cindex @env{VERSION_CONTROL} environment variable
 +  If you set the environment variable @env{VERSION_CONTROL}, to tell
 +various GNU utilities what to do with backup files, Emacs also obeys the
 +environment variable by setting the Lisp variable @code{version-control}
 +accordingly at startup.  If the environment variable's value is @samp{t}
 +or @samp{numbered}, then @code{version-control} becomes @code{t}; if the
 +value is @samp{nil} or @samp{existing}, then @code{version-control}
 +becomes @code{nil}; if it is @samp{never} or @samp{simple}, then
 +@code{version-control} becomes @code{never}.
 +
 +@node Backup Names
 +@subsubsection Single or Numbered Backups
 +
 +  When Emacs makes a single backup file, its name is normally
 +constructed by appending @samp{~} to the file name being edited; thus,
 +the backup file for @file{eval.c} would be @file{eval.c~}.
 +
 +@vindex make-backup-file-name-function
 +@vindex backup-directory-alist
 +  You can change this behavior by defining the variable
 +@code{make-backup-file-name-function} to a suitable function.
 +Alternatively you can customize the variable
 +@code{backup-directory-alist} to specify that files matching certain
 +patterns should be backed up in specific directories.
 +
 +  A typical use is to add an element @code{("." . @var{dir})} to make
 +all backups in the directory with absolute name @var{dir}; Emacs
 +modifies the backup file names to avoid clashes between files with the
 +same names originating in different directories.  Alternatively,
 +adding, say, @code{("." . ".~")} would make backups in the invisible
 +subdirectory @file{.~} of the original file's directory.  Emacs
 +creates the directory, if necessary, to make the backup.
 +
 +  If access control stops Emacs from writing backup files under the usual
 +names, it writes the backup file as @file{%backup%~} in your home
 +directory.  Only one such file can exist, so only the most recently
 +made such backup is available.
 +
 +  If you choose to have a series of numbered backup files, backup file
 +names contain @samp{.~}, the number, and another @samp{~} after the
 +original file name.  Thus, the backup files of @file{eval.c} would be
 +called @file{eval.c.~1~}, @file{eval.c.~2~}, and so on, all the way
 +through names like @file{eval.c.~259~} and beyond.  The variable
 +@code{backup-directory-alist} applies to numbered backups just as
 +usual.
 +
 +@node Backup Deletion
 +@subsubsection Automatic Deletion of Backups
 +
 +  To prevent excessive consumption of disk space, Emacs can delete numbered
 +backup versions automatically.  Generally Emacs keeps the first few backups
 +and the latest few backups, deleting any in between.  This happens every
 +time a new backup is made.
 +
 +@vindex kept-old-versions
 +@vindex kept-new-versions
 +  The two variables @code{kept-old-versions} and
 +@code{kept-new-versions} control this deletion.  Their values are,
 +respectively, the number of oldest (lowest-numbered) backups to keep
 +and the number of newest (highest-numbered) ones to keep, each time a
 +new backup is made.  The backups in the middle (excluding those oldest
 +and newest) are the excess middle versions---those backups are
 +deleted.  These variables' values are used when it is time to delete
 +excess versions, just after a new backup version is made; the newly
 +made backup is included in the count in @code{kept-new-versions}.  By
 +default, both variables are 2.
 +
 +@vindex delete-old-versions
 +  If @code{delete-old-versions} is @code{t}, Emacs deletes the excess
 +backup files silently.  If it is @code{nil}, the default, Emacs asks
 +you whether it should delete the excess backup versions.  If it has
 +any other value, then Emacs never automatically deletes backups.
 +
 +  Dired's @kbd{.} (Period) command can also be used to delete old versions.
 +@xref{Dired Deletion}.
 +
 +@node Backup Copying
 +@subsubsection Copying vs.@: Renaming
 +
 +  Backup files can be made by copying the old file or by renaming it.
 +This makes a difference when the old file has multiple names (hard
 +links).  If the old file is renamed into the backup file, then the
 +alternate names become names for the backup file.  If the old file is
 +copied instead, then the alternate names remain names for the file
 +that you are editing, and the contents accessed by those names will be
 +the new contents.
 +
 +  The method of making a backup file may also affect the file's owner
 +and group.  If copying is used, these do not change.  If renaming is used,
 +you become the file's owner, and the file's group becomes the default
 +(different operating systems have different defaults for the group).
 +
 +  Having the owner change is usually a good idea, because then the owner
 +always shows who last edited the file.  Also, the owners of the backups
 +show who produced those versions.  Occasionally there is a file whose
 +owner should not change; it is a good idea for such files to contain
 +local variable lists to set @code{backup-by-copying-when-mismatch}
 +locally (@pxref{File Variables}).
 +
 +@vindex backup-by-copying
 +@vindex backup-by-copying-when-linked
 +@vindex backup-by-copying-when-mismatch
 +@vindex backup-by-copying-when-privileged-mismatch
 +@cindex file ownership, and backup
 +@cindex backup, and user-id
 +  The choice of renaming or copying is controlled by four variables.
 +Renaming is the default choice.  If the variable
 +@code{backup-by-copying} is non-@code{nil}, copying is used.  Otherwise,
 +if the variable @code{backup-by-copying-when-linked} is non-@code{nil},
 +then copying is used for files that have multiple names, but renaming
 +may still be used when the file being edited has only one name.  If the
 +variable @code{backup-by-copying-when-mismatch} is non-@code{nil}, then
 +copying is used if renaming would cause the file's owner or group to
 +change.  @code{backup-by-copying-when-mismatch} is @code{t} by default
 +if you start Emacs as the superuser.  The fourth variable,
 +@code{backup-by-copying-when-privileged-mismatch}, gives the highest
 +numeric user-id for which @code{backup-by-copying-when-mismatch} will be
 +forced on.  This is useful when low-numbered user-ids are assigned to
 +special system users, such as @code{root}, @code{bin}, @code{daemon},
 +etc., which must maintain ownership of files.
 +
 +  When a file is managed with a version control system (@pxref{Version
 +Control}), Emacs does not normally make backups in the usual way for
 +that file.  But check-in and check-out are similar in some ways to
 +making backups.  One unfortunate similarity is that these operations
 +typically break hard links, disconnecting the file name you visited from
 +any alternate names for the same file.  This has nothing to do with
 +Emacs---the version control system does it.
 +
 +@node Customize Save
 +@subsection Customizing Saving of Files
 +
 +@vindex require-final-newline
 +  If the value of the variable @code{require-final-newline} is
 +@code{t}, saving or writing a file silently puts a newline at the end
 +if there isn't already one there.  If the value is @code{visit}, Emacs
 +adds a newline at the end of any file that doesn't have one, just
 +after it visits the file.  (This marks the buffer as modified, and you
 +can undo it.)  If the value is @code{visit-save}, that means to add
 +newlines both on visiting and on saving.  If the value is @code{nil},
 +Emacs leaves the end of the file unchanged; if it's neither @code{nil}
 +nor @code{t}, Emacs asks you whether to add a newline.  The default is
 +@code{nil}.
 +
 +@vindex mode-require-final-newline
 +  Many major modes are designed for specific kinds of files that are
 +always supposed to end in newlines.  These major modes set the
 +variable @code{require-final-newline} according to
 +@code{mode-require-final-newline}.  By setting the latter variable,
 +you can control how these modes handle final newlines.
 +
 +@vindex write-region-inhibit-fsync
 +  When Emacs saves a file, it invokes the @code{fsync} system call to
 +force the data immediately out to disk.  This is important for safety
 +if the system crashes or in case of power outage.  However, it can be
 +disruptive on laptops using power saving, because it requires the disk
 +to spin up each time you save a file.  Setting
 +@code{write-region-inhibit-fsync} to a non-@code{nil} value disables
 +this synchronization.  Be careful---this means increased risk of data
 +loss.
 +
 +@node Interlocking
 +@subsection Protection against Simultaneous Editing
 +
 +@cindex file dates
 +@cindex simultaneous editing
 +  Simultaneous editing occurs when two users visit the same file, both
 +make changes, and then both save them.  If nobody were informed that
 +this was happening, whichever user saved first would later find that his
 +changes were lost.
 +
 +  On some systems, Emacs notices immediately when the second user starts
 +to change the file, and issues an immediate warning.  On all systems,
 +Emacs checks when you save the file, and warns if you are about to
 +overwrite another user's changes.  You can prevent loss of the other
 +user's work by taking the proper corrective action instead of saving the
 +file.
 +
 +@findex ask-user-about-lock
 +@cindex locking files
 +  When you make the first modification in an Emacs buffer that is
 +visiting a file, Emacs records that the file is @dfn{locked} by you.
 +(It does this by creating a symbolic link in the same directory with a
 +different name.)  Emacs removes the lock when you save the changes.  The
 +idea is that the file is locked whenever an Emacs buffer visiting it has
 +unsaved changes.
 +
 +@cindex collision
 +  If you begin to modify the buffer while the visited file is locked by
 +someone else, this constitutes a @dfn{collision}.  When Emacs detects a
 +collision, it asks you what to do, by calling the Lisp function
 +@code{ask-user-about-lock}.  You can redefine this function for the sake
 +of customization.  The standard definition of this function asks you a
 +question and accepts three possible answers:
 +
 +@table @kbd
 +@item s
 +Steal the lock.  Whoever was already changing the file loses the lock,
 +and you gain the lock.
 +@item p
 +Proceed.  Go ahead and edit the file despite its being locked by someone else.
 +@item q
 +Quit.  This causes an error (@code{file-locked}), and the buffer
 +contents remain unchanged---the modification you were trying to make
 +does not actually take place.
 +@end table
 +
 +  Note that locking works on the basis of a file name; if a file has
 +multiple names, Emacs does not realize that the two names are the same file
 +and cannot prevent two users from editing it simultaneously under different
 +names.  However, basing locking on names means that Emacs can interlock the
 +editing of new files that will not really exist until they are saved.
 +
 +  Some systems are not configured to allow Emacs to make locks, and
 +there are cases where lock files cannot be written.  In these cases,
 +Emacs cannot detect trouble in advance, but it still can detect the
 +collision when you try to save a file and overwrite someone else's
 +changes.
 +
 +  If Emacs or the operating system crashes, this may leave behind lock
 +files which are stale, so you may occasionally get warnings about
 +spurious collisions.  When you determine that the collision is spurious,
 +just use @kbd{p} to tell Emacs to go ahead anyway.
 +
 +  Every time Emacs saves a buffer, it first checks the last-modification
 +date of the existing file on disk to verify that it has not changed since the
 +file was last visited or saved.  If the date does not match, it implies
 +that changes were made in the file in some other way, and these changes are
 +about to be lost if Emacs actually does save.  To prevent this, Emacs
 +displays a warning message and asks for confirmation before saving.
 +Occasionally you will know why the file was changed and know that it does
 +not matter; then you can answer @kbd{yes} and proceed.  Otherwise, you should
 +cancel the save with @kbd{C-g} and investigate the situation.
 +
 +  The first thing you should do when notified that simultaneous editing
 +has already taken place is to list the directory with @kbd{C-u C-x C-d}
 +(@pxref{Directories}).  This shows the file's current author.  You
 +should attempt to contact him to warn him not to continue editing.
 +Often the next step is to save the contents of your Emacs buffer under a
 +different name, and use @code{diff} to compare the two files.@refill
 +
 +@node File Shadowing
 +@subsection Shadowing Files
 +@cindex shadow files
 +@cindex file shadows
 +@findex shadow-initialize
 +
 +@table @kbd
 +@item M-x shadow-initialize
 +Set up file shadowing.
 +@item M-x shadow-define-literal-group
 +Declare a single file to be shared between sites.
 +@item M-x shadow-define-regexp-group
 +Make all files that match each of a group of files be shared between hosts.
 +@item M-x shadow-define-cluster @key{RET} @var{name} @key{RET}
 +Define a shadow file cluster @var{name}.
 +@item M-x shadow-copy-files
 +Copy all pending shadow files.
 +@item M-x shadow-cancel
 +Cancel the instruction to shadow some files.
 +@end table
 +
 +You can arrange to keep identical @dfn{shadow} copies of certain files
 +in more than one place---possibly on different machines.  To do this,
 +first you must set up a @dfn{shadow file group}, which is a set of
 +identically-named files shared between a list of sites.  The file
 +group is permanent and applies to further Emacs sessions as well as
 +the current one.  Once the group is set up, every time you exit Emacs,
 +it will copy the file you edited to the other files in its group.  You
 +can also do the copying without exiting Emacs, by typing @kbd{M-x
 +shadow-copy-files}.
 +
 +To set up a shadow file group, use @kbd{M-x
 +shadow-define-literal-group} or @kbd{M-x shadow-define-regexp-group}.
 +See their documentation strings for further information.
 +
 +Before copying a file to its shadows, Emacs asks for confirmation.
 +You can answer ``no'' to bypass copying of this file, this time.  If
 +you want to cancel the shadowing permanently for a certain file, use
 +@kbd{M-x shadow-cancel} to eliminate or change the shadow file group.
 +
 +A @dfn{shadow cluster} is a group of hosts that share directories, so
 +that copying to or from one of them is sufficient to update the file
 +on all of them.  Each shadow cluster has a name, and specifies the
 +network address of a primary host (the one we copy files to), and a
 +regular expression that matches the host names of all the other hosts
 +in the cluster.  You can define a shadow cluster with @kbd{M-x
 +shadow-define-cluster}.
 +
 +@node Time Stamps
 +@subsection Updating Time Stamps Automatically
 +@cindex time stamps
 +@cindex modification dates
 +@cindex locale, date format
 +
 +You can arrange to put a time stamp in a file, so that it will be updated
 +automatically each time you edit and save the file.  The time stamp
 +has to be in the first eight lines of the file, and you should
 +insert it like this:
 +
 +@example
 +Time-stamp: <>
 +@end example
 +
 +@noindent
 +or like this:
 +
 +@example
 +Time-stamp: " "
 +@end example
 +
 +@findex time-stamp
 +  Then add the hook function @code{time-stamp} to the hook
 +@code{before-save-hook}; that hook function will automatically update
 +the time stamp, inserting the current date and time when you save the
 +file.  You can also use the command @kbd{M-x time-stamp} to update the
 +time stamp manually.  For other customizations, see the Custom group
 +@code{time-stamp}.  Note that non-numeric fields in the time stamp are
 +formatted according to your locale setting (@pxref{Environment}).
 +
 +@node Reverting
 +@section Reverting a Buffer
 +@findex revert-buffer
 +@cindex drastic changes
 +@cindex reread a file
 +
 +  If you have made extensive changes to a file and then change your mind
 +about them, you can get rid of them by reading in the previous version
 +of the file.  To do this, use @kbd{M-x revert-buffer}, which operates on
 +the current buffer.  Since reverting a buffer unintentionally could lose
 +a lot of work, you must confirm this command with @kbd{yes}.
 +
 +  @code{revert-buffer} tries to position point in such a way that, if
 +the file was edited only slightly, you will be at approximately the
 +same piece of text after reverting as before.  However, if you have made
 +drastic changes, point may wind up in a totally different piece of text.
 +
 +  Reverting marks the buffer as ``not modified'' until another change is
 +made.
 +
 +  Some kinds of buffers whose contents reflect data bases other than files,
 +such as Dired buffers, can also be reverted.  For them, reverting means
 +recalculating their contents from the appropriate data base.  Buffers
 +created explicitly with @kbd{C-x b} cannot be reverted; @code{revert-buffer}
 +reports an error when asked to do so.
 +
 +@vindex revert-without-query
 +  When you edit a file that changes automatically and frequently---for
 +example, a log of output from a process that continues to run---it may be
 +useful for Emacs to revert the file without querying you, whenever you
 +visit the file again with @kbd{C-x C-f}.
 +
 +  To request this behavior, set the variable @code{revert-without-query}
 +to a list of regular expressions.  When a file name matches one of these
 +regular expressions, @code{find-file} and @code{revert-buffer} will
 +revert it automatically if it has changed---provided the buffer itself
 +is not modified.  (If you have edited the text, it would be wrong to
 +discard your changes.)
 +
 +@cindex Global Auto-Revert mode
 +@cindex mode, Global Auto-Revert
 +@cindex Auto-Revert mode
 +@cindex mode, Auto-Revert
 +@findex global-auto-revert-mode
 +@findex auto-revert-mode
 +@findex auto-revert-tail-mode
 +
 +  You may find it useful to have Emacs revert files automatically when
 +they change.  Three minor modes are available to do this.
 +
 +  @kbd{M-x global-auto-revert-mode} enables Global Auto-Revert mode,
 +which periodically checks all file buffers and reverts when the
 +corresponding file has changed.  @kbd{M-x auto-revert-mode} enables a
 +local version, Auto-Revert mode, which applies only to the current
 +buffer.
 +
 +  You can use Auto-Revert mode to ``tail'' a file such as a system
 +log, so that changes made to that file by other programs are
 +continuously displayed.  To do this, just move the point to the end of
 +the buffer, and it will stay there as the file contents change.
 +However, if you are sure that the file will only change by growing at
 +the end, use Auto-Revert Tail mode instead
 +(@code{auto-revert-tail-mode}).  It is more efficient for this.
 +
 +@vindex auto-revert-interval
 +  The variable @code{auto-revert-interval} controls how often to check
 +for a changed file.  Since checking a remote file is too slow, these
 +modes do not check or revert remote files.
 +
 +  @xref{VC Mode Line}, for Auto Revert peculiarities in buffers that
 +visit files under version control.
 +
 +@ifnottex
 +@include arevert-xtra.texi
 +@end ifnottex
 +
 +@node Auto Save
 +@section Auto-Saving: Protection Against Disasters
 +@cindex Auto Save mode
 +@cindex mode, Auto Save
 +@cindex crashes
 +
++  Emacs saves all the visited files from time to time (based on
++counting your keystrokes) without being asked, in separate files so as
++not to alter the files you actually use.  This is called
++@dfn{auto-saving}.  It prevents you from losing more than a limited
++amount of work if the system crashes.
 +
 +  When Emacs determines that it is time for auto-saving, it considers
 +each buffer, and each is auto-saved if auto-saving is enabled for it
 +and it has been changed since the last time it was auto-saved.  The
 +message @samp{Auto-saving...} is displayed in the echo area during
 +auto-saving, if any files are actually auto-saved.  Errors occurring
 +during auto-saving are caught so that they do not interfere with the
 +execution of commands you have been typing.
 +
 +@menu
 +* Files: Auto Save Files.       The file where auto-saved changes are
 +                                  actually made until you save the file.
 +* Control: Auto Save Control.   Controlling when and how often to auto-save.
 +* Recover::                   Recovering text from auto-save files.
 +@end menu
 +
 +@node Auto Save Files
 +@subsection Auto-Save Files
 +
 +  Auto-saving does not normally save in the files that you visited, because
 +it can be very undesirable to save a program that is in an inconsistent
 +state when you have made half of a planned change.  Instead, auto-saving
 +is done in a different file called the @dfn{auto-save file}, and the
 +visited file is changed only when you request saving explicitly (such as
 +with @kbd{C-x C-s}).
 +
 +  Normally, the auto-save file name is made by appending @samp{#} to the
 +front and rear of the visited file name.  Thus, a buffer visiting file
 +@file{foo.c} is auto-saved in a file @file{#foo.c#}.  Most buffers that
 +are not visiting files are auto-saved only if you request it explicitly;
 +when they are auto-saved, the auto-save file name is made by appending
 +@samp{#} to the front and rear of buffer name, then
 +adding digits and letters at the end for uniqueness.  For
 +example, the @samp{*mail*} buffer in which you compose messages to be
 +sent might be auto-saved in a file named @file{#*mail*#704juu}.  Auto-save file
 +names are made this way unless you reprogram parts of Emacs to do
 +something different (the functions @code{make-auto-save-file-name} and
 +@code{auto-save-file-name-p}).  The file name to be used for auto-saving
 +in a buffer is calculated when auto-saving is turned on in that buffer.
 +
 +@cindex auto-save for remote files
 +@vindex auto-save-file-name-transforms
 +  The variable @code{auto-save-file-name-transforms} allows a degree
 +of control over the auto-save file name.  It lets you specify a series
 +of regular expressions and replacements to transform the auto save
 +file name.  The default value puts the auto-save files for remote
 +files (@pxref{Remote Files}) into the temporary file directory on the
 +local machine.
 +
 +  When you delete a substantial part of the text in a large buffer, auto
 +save turns off temporarily in that buffer.  This is because if you
 +deleted the text unintentionally, you might find the auto-save file more
 +useful if it contains the deleted text.  To reenable auto-saving after
 +this happens, save the buffer with @kbd{C-x C-s}, or use @kbd{C-u 1 M-x
 +auto-save-mode}.
 +
 +@vindex auto-save-visited-file-name
 +  If you want auto-saving to be done in the visited file rather than
 +in a separate auto-save file, set the variable
 +@code{auto-save-visited-file-name} to a non-@code{nil} value.  In this
 +mode, there is no real difference between auto-saving and explicit
 +saving.
 +
 +@vindex delete-auto-save-files
 +  A buffer's auto-save file is deleted when you save the buffer in its
 +visited file.  (You can inhibit this by setting the variable
 +@code{delete-auto-save-files} to @code{nil}.)  Changing the visited
 +file name with @kbd{C-x C-w} or @code{set-visited-file-name} renames
 +any auto-save file to go with the new visited name.
 +
 +@node Auto Save Control
 +@subsection Controlling Auto-Saving
 +
 +@vindex auto-save-default
 +@findex auto-save-mode
 +  Each time you visit a file, auto-saving is turned on for that file's
 +buffer if the variable @code{auto-save-default} is non-@code{nil} (but not
 +in batch mode; @pxref{Entering Emacs}).  The default for this variable is
 +@code{t}, so auto-saving is the usual practice for file-visiting buffers.
 +Auto-saving can be turned on or off for any existing buffer with the
 +command @kbd{M-x auto-save-mode}.  Like other minor mode commands, @kbd{M-x
 +auto-save-mode} turns auto-saving on with a positive argument, off with a
 +zero or negative argument; with no argument, it toggles.
 +
 +@vindex auto-save-interval
 +  Emacs does auto-saving periodically based on counting how many characters
 +you have typed since the last time auto-saving was done.  The variable
 +@code{auto-save-interval} specifies how many characters there are between
 +auto-saves.  By default, it is 300.  Emacs doesn't accept values that are
 +too small: if you customize @code{auto-save-interval} to a value less
 +than 20, Emacs will behave as if the value is 20.
 +
 +@vindex auto-save-timeout
 +  Auto-saving also takes place when you stop typing for a while.  The
 +variable @code{auto-save-timeout} says how many seconds Emacs should
 +wait before it does an auto save (and perhaps also a garbage
 +collection).  (The actual time period is longer if the current buffer is
 +long; this is a heuristic which aims to keep out of your way when you
 +are editing long buffers, in which auto-save takes an appreciable amount
 +of time.)  Auto-saving during idle periods accomplishes two things:
 +first, it makes sure all your work is saved if you go away from the
 +terminal for a while; second, it may avoid some auto-saving while you
 +are actually typing.
 +
 +  Emacs also does auto-saving whenever it gets a fatal error.  This
 +includes killing the Emacs job with a shell command such as @samp{kill
 +%emacs}, or disconnecting a phone line or network connection.
 +
 +@findex do-auto-save
 +  You can request an auto-save explicitly with the command @kbd{M-x
 +do-auto-save}.
 +
 +@node Recover
 +@subsection Recovering Data from Auto-Saves
 +
 +@findex recover-file
 +  You can use the contents of an auto-save file to recover from a loss
 +of data with the command @kbd{M-x recover-file @key{RET} @var{file}
 +@key{RET}}.  This visits @var{file} and then (after your confirmation)
 +restores the contents from its auto-save file @file{#@var{file}#}.
 +You can then save with @kbd{C-x C-s} to put the recovered text into
 +@var{file} itself.  For example, to recover file @file{foo.c} from its
 +auto-save file @file{#foo.c#}, do:@refill
 +
 +@example
 +M-x recover-file @key{RET} foo.c @key{RET}
 +yes @key{RET}
 +C-x C-s
 +@end example
 +
 +  Before asking for confirmation, @kbd{M-x recover-file} displays a
 +directory listing describing the specified file and the auto-save file,
 +so you can compare their sizes and dates.  If the auto-save file
 +is older, @kbd{M-x recover-file} does not offer to read it.
 +
 +@findex recover-session
 +  If Emacs or the computer crashes, you can recover all the files you
 +were editing from their auto save files with the command @kbd{M-x
 +recover-session}.  This first shows you a list of recorded interrupted
 +sessions.  Move point to the one you choose, and type @kbd{C-c C-c}.
 +
 +  Then @code{recover-session} asks about each of the files that were
 +being edited during that session, asking whether to recover that file.
 +If you answer @kbd{y}, it calls @code{recover-file}, which works in its
 +normal fashion.  It shows the dates of the original file and its
 +auto-save file, and asks once again whether to recover that file.
 +
 +  When @code{recover-session} is done, the files you've chosen to
 +recover are present in Emacs buffers.  You should then save them.  Only
 +this---saving them---updates the files themselves.
 +
 +@vindex auto-save-list-file-prefix
 +  Emacs records information about interrupted sessions for later
 +recovery in files named
 +@file{~/.emacs.d/auto-save-list/.saves-@var{pid}-@var{hostname}}.  All
 +of this name except the @file{@var{pid}-@var{hostname}} part comes
 +from the value of @code{auto-save-list-file-prefix}.  You can record
 +sessions in a different place by customizing that variable.  If you
 +set @code{auto-save-list-file-prefix} to @code{nil} in your
 +@file{.emacs} file, sessions are not recorded for recovery.
 +
 +@node File Aliases
 +@section File Name Aliases
 +@cindex symbolic links (visiting)
 +@cindex hard links (visiting)
 +
 +  Symbolic links and hard links both make it possible for several file
 +names to refer to the same file.  Hard links are alternate names that
 +refer directly to the file; all the names are equally valid, and no one
 +of them is preferred.  By contrast, a symbolic link is a kind of defined
 +alias: when @file{foo} is a symbolic link to @file{bar}, you can use
 +either name to refer to the file, but @file{bar} is the real name, while
 +@file{foo} is just an alias.  More complex cases occur when symbolic
 +links point to directories.
 +
 +@vindex find-file-existing-other-name
 +@vindex find-file-suppress-same-file-warnings
 +
 +  Normally, if you visit a file which Emacs is already visiting under
 +a different name, Emacs displays a message in the echo area and uses
 +the existing buffer visiting that file.  This can happen on systems
 +that support hard or symbolic links, or if you use a long file name on
 +a system that truncates long file names, or on a case-insensitive file
 +system.  You can suppress the message by setting the variable
 +@code{find-file-suppress-same-file-warnings} to a non-@code{nil}
 +value.  You can disable this feature entirely by setting the variable
 +@code{find-file-existing-other-name} to @code{nil}: then if you visit
 +the same file under two different names, you get a separate buffer for
 +each file name.
 +
 +@vindex find-file-visit-truename
 +@cindex truenames of files
 +@cindex file truenames
 +  If the variable @code{find-file-visit-truename} is non-@code{nil},
 +then the file name recorded for a buffer is the file's @dfn{truename}
 +(made by replacing all symbolic links with their target names), rather
 +than the name you specify.  Setting @code{find-file-visit-truename} also
 +implies the effect of @code{find-file-existing-other-name}.
 +
 +@node Version Control
 +@section Version Control
 +@cindex version control
 +
 +  @dfn{Version control systems} are packages that can record multiple
 +versions of a source file, usually storing the unchanged parts of the
 +file just once.  Version control systems also record history information
 +such as the creation time of each version, who created it, and a
 +description of what was changed in that version.
 +
 +  The Emacs version control interface is called VC.  Its commands work
 +with different version control systems---currently, it supports CVS,
 +GNU Arch, RCS, Meta-CVS, Subversion, and SCCS.  Of these, the GNU
 +project distributes CVS, GNU Arch, and RCS.  We also have free
 +software to replace SCCS, known as CSSC; if you are using SCCS and
 +don't want to make the incompatible change to RCS or CVS, you can
 +switch to CSSC.
 +
 +  VC is enabled by default in Emacs.  To disable it, set the
 +customizable variable @code{vc-handled-backends} to @code{nil}
 +@iftex
 +(@pxref{Customizing VC,,,emacs-xtra, Specialized Emacs Features}).
 +@end iftex
 +@ifnottex
 +(@pxref{Customizing VC}).
 +@end ifnottex
 +
 +
 +@menu
 +* Introduction to VC::  How version control works in general.
 +* VC Mode Line::        How the mode line shows version control status.
 +* Basic VC Editing::    How to edit a file under version control.
 +* Old Revisions::       Examining and comparing old versions.
 +* Secondary VC Commands::    The commands used a little less frequently.
 +* Branches::            Multiple lines of development.
 +@ifnottex
 +* Remote Repositories:: Efficient access to remote CVS servers.
 +* Snapshots::           Sets of file versions treated as a unit.
 +* Miscellaneous VC::    Various other commands and features of VC.
 +* Customizing VC::      Variables that change VC's behavior.
 +@end ifnottex
 +@end menu
 +
 +@node Introduction to VC
 +@subsection Introduction to Version Control
 +
 +  VC allows you to use a version control system from within Emacs,
 +integrating the version control operations smoothly with editing.
 +Though VC cannot completely bridge the gaps between version-control
 +systems with widely differing capabilities, it does provide
 +a uniform interface to many version control operations. Regardless of
 +which version control system is in use, you will be able to do basic
 +operations in much the same way.
 +
 +  This section provides a general overview of version control, and
 +describes the version control systems that VC supports.  You can skip
 +this section if you are already familiar with the version control system
 +you want to use.
 +
 +@menu
 +* Why Version Control?::    Understanding the problems it addresses
 +* Version Control Systems:: Supported version control back-end systems.
 +* VCS Concepts::            Words and concepts related to version control.
 +* Types of Log File::       The VCS log in contrast to the ChangeLog.
 +@end menu
 +
 +@node Why Version Control?
 +@subsubsection Understanding the problems it addresses
 +
 +  Version control systems provide you with three important capabilities: 
 +@dfn{reversibility}, @dfn{concurrency}, and @dfn{history}.
 +
 +  The most basic capability you get from a version-control system is
 +reversibility, the ability to back up to a saved, known-good state when
 +you discover that some modification you did was a mistake or a bad idea.
 +
 +  Version-control systems also support concurrency, the ability to
 +have many people modifying the same collection of code or documents
 +knowing that conflicting modifications can be detected and resolved.
 +
 +  Version-control systems give you the capability to attach a history
 +to your data, explanatory comments about the intention behind each 
 +change to it.  Even for a programmer working solo change histories
 +are an important aid to memory; for a multi-person project they 
 +become a vitally important form of communication among developers.
 +
 +@node Version Control Systems
 +@subsubsection Supported Version Control Systems
 +
 +@cindex back end (version control)
 +  VC currently works with six different version control systems or
 +``back ends'': SCCS, RCS, CVS, Meta-CVS, Subversion, GNU Arch,
 +git, and Mercurial.
 +@comment Omitting bzr because support is very scratchy and incomplete.
 +
 +@cindex SCCS
 +  SCCS was the first version-control system ever built, and was long ago
 +superseded by later and more advanced ones; Emacs supports it only for
 +backward compatibility and historical reasons.  VC compensates for
 +certain features missing in SCCS (snapshots, for example) by
 +implementing them itself, but some other VC features, such as multiple
 +branches, are not available with SCCS.  Since SCCS is non-free you
 +should not use it; use its free replacement CSSC instead.  But you
 +should use CSSC only if for some reason you cannot use a more 
 +recent and better-designed version-control system.
 +
 +@cindex RCS
 +  RCS is the free version control system around which VC was initially
 +built.  Almost everything you can do with RCS can be done through VC.  You
 +cannot use RCS over the network, though, and it only works at the level
 +of individual files, rather than projects.  You should use it if you
 +want a simple, yet reliable tool for handling individual files.
 +
 +@cindex CVS
 +  CVS is the free version control system that was until recently (as of
 +2007) used for the majority of free software projects, though it is now
 +being superseded by other systems.  It allows concurrent
 +multi-user development either locally or over the network.  Some of its
 +shortcomings, corrected by newer systems such as Subversion or GNU Arch,
 +are that it lacks atomic commits or support for renaming files.  VC
 +supports all basic editing operations under CVS, but for some less
 +common tasks you still need to call CVS from the command line.  Note
 +also that before using CVS you must set up a repository, which is a
 +subject too complex to treat here.
 +
 +@cindex Meta-CVS
 +  Meta-CVS uses CVS repositories, but has an enhanced client that
 +uses client-side information to solve various of the known problems
 +with CVS.  It is not widely used, having been overtaken by Subversion.
 +The Emacs support for it is rudimentary, and may be removed in a
 +future version.
 +
 +@cindex SVN
 +@cindex Subversion
 +  Subversion is a free version control system designed to be similar
 +to CVS but without CVS's problems, and is now (2007) rapidly
 +superseding CVS.  Subversion supports atomic commits of filesets, and
 +versions directories, symbolic links, meta-data, renames, copies, and
 +deletes.  It can be used via http or via its own protocol.
 +
 +@cindex GNU Arch
 +@cindex Arch
 +  GNU Arch is a new version control system that is designed for
 +distributed work.  It differs in many ways from old well-known
 +systems, such as CVS and RCS.  It supports different transports for
 +interoperating between users, offline operations, and it has good
 +branching and merging features.  It also supports atomic commits of
 +filesets, and keeps a history of file renaming and moving.  VC
 +does not support all operations provided by GNU Arch, so you must
 +sometimes invoke it from the command line, or use a specialized
 +module.
 +
 +@cindex git
 +  git is a version-control system invented by Linus Torvalds to
 +support Linux kernel development.  Like GNU Arch, it supports atomic
 +commits of filesets, and keeps a history of file renaming and
 +moving.  One significant feature of git is that it largely abolishes
 +the notion of a single centralized repository; instead, each working
 +copy of a git project is its own repository and coordination is done
 +through repository-sync operations.  VC fully supports git, except
 +that it doesn't do news merges and repository sync operations must
 +be done from the command line.
 +
 +@cindex hg
 +@cindex Mercurial
 +  Mercurial is a distributed version-control systems broadly
 +resembling GNU Arch and git, with atomic fileset commits and
 +rename/move histories.  Like git it is fully decentralized.
 +VC fully supports Mercurial, except for repository sync operations
 +which still need to be done from the command line.
 +
 +@node VCS Concepts
 +@subsubsection Concepts of Version Control
 +
 +@cindex repository
 +@cindex registered file
 +   When a file is under version control, we also say that it is
 +@dfn{registered} in the version control system.  The system has a
 +@dfn{repository} which stores both the file's present state plus its
 +change history---enough to reconstruct the current version or any
 +earlier version.  The repository will also contain a @dfn{log entry} for
 +each change to the file, describing in words what was modified in that 
 +revision.
 +
 +@cindex work file
 +@cindex checking out files
 +  A file checked out of a version-control repository is sometimes
 +called the @dfn{work file}.  You edit the work file and make changes
 +in it, as you would with an ordinary file.  After you are done with a
 +set of changes, you @dfn{check in} or @dfn{commit} the file, which
 +records the changes in the repository, along with a log entry for
 +them.
 +
 +@cindex revision
 +@cindex revision ID
 +  A copy of a file stored in a repository is called a @dfn{revision}.
 +The history of a file is a sequence of revisions.  Each revisions is
 +named by a @dfn{revision ID}.  In older VCSes (such as SCCS and RCS),
 +the simplest kind of revision ID consisted of a @dfn{dot-pair};
 +integers (the @dfn{major} and @dfn{minor} revisions) separated by a
 +dot.  Newer VCSes tend to use @dfn{monotonic} revision IDs that are
 +simple integers counting from 1.
 +
 +  To go beyond these basic concepts, you will need to understand three
 +ways in which version-control systems can differ from each other.  They
 +can be locking or merging; they can be file-based or changeset-based;
 +and they can be centralized or decentralized.  VC handles all these
 +choices, but they lead to differing behaviors which you will need
 +to understand as you use it.
 +
 +@cindex locking versus merging
 +  A version control system typically has some mechanism to coordinate
 +between users who want to change the same file.  One method is
 +@dfn{locking} (analogous to the locking that Emacs uses to detect
 +simultaneous editing of a file, but distinct from it).  In a locking
 +system, such as SCCS, you must @dfn{lock} a file before you start to
 +edit it.  The other method is @dfn{merging}; the system tries to 
 +merge your changes with other people's changes when you check them in.
 +
 +  With version control locking, work files are normally read-only so
 +that you cannot change them.  You ask the version control system to make
 +a work file writable for you by locking it; only one user can do
 +this at any given time.  When you check in your changes, that unlocks
 +the file, making the work file read-only again.  This allows other users
 +to lock the file to make further changes.
 +
 +  By contrast, a merging system lets each user check out and modify a
 +work file at any time.  When you check in a file, the system will
 +attempt to merge your changes with any others checked into the
 +repository since you checked out the file.
 +
 +  Both locking and merging systems can have problems when multiple users
 +try to modify the same file at the same time.  Locking systems have
 +@dfn{lock conflicts}; a user may try to check a file out and be unable
 +to because it is locked.  In merging systems, @dfn{merge conflicts}
 +happen when you check in a change to a file that conflicts with a change
 +checked in by someone else after your checkout.  Both kinds of conflict
 +have to be resolved by human judgment and communication.
 +
 +  SCCS always uses locking.  RCS is lock-based by default but can be
 +told to operate in a merging style.  CVS and Subversion are
 +merge-based by default but can be told to operate in a locking mode.
 +Most later version-control systems, such as GNU Arch, git, and
 +Mercurial, have been based exclusively on merging rather than locking.
 +This is because experience has shown that the merging-based approach
 +is generally superior to the locking one, both in convenience to
 +developers and in minimizing the number and severity of conflicts that
 +actually occur.
 +
 +   While it is rather unlikely that anyone will ever again build a
 +fundamentally locking-based rather than merging-based version-control
 +system in the future, merging-based version-systems sometimes have locks
 +retrofitted onto them for reasons having nothing to do with technology.
 +@footnote{Usually the control-freak instincts of managers.}  For this
 +reason, and to support older systems still in use, VC mode supports
 +both locking and merging version control and tries to hide the differences
 +between them as much as possible.
 +
 +@cindex files versus changesets.
 +  On SCCS, RCS, CVS, and other early version-control systems, checkins
 +and other operations are @dfn{file-based}; each file has its own
 +@dfn{master file} with its own comment and revision history separate
 +from that of all other files in the system.  Later systems, beginning
 +with Subversion, are @dfn{changeset-based}; a checkin under these
 +may include changes to several files and that change set is treated as
 +a unit by the system.  Any comment associated with the change belongs
 +to no single file, but is attached to the changeset itself.
 +
 +  Changeset-based version control is in general both more flexible and
 +more powerful than file-based version control; usually, when a change to
 +multiple files has to be backed out, it's good to be able to easily
 +identify and remove all of it.  But it took some years for designers to
 +figure that out, and while file-based systems are passing out of use
 +there are lots of legacy repositories still to be dealt with at time of
 +writing in 2007.
 +
 +  In fact, older versions of VC mode supported only file-based systems,
 +leading to some unhappy results when it was used to drive
 +changeset-based ones---the Subversion support, for example, used to break
 +up changesets into multiple per-file commits.  This has been fixed, but
 +it has left a legacy in VC-mode's terminology.  The terms ``checkin'' 
 +and ``checkout'' are associated with file-based and locking-based
 +systems and a bit archaic; nowadays those operations are usually called
 +``commit'' and ``update''.
 +
 +@cindex centralized vs. decentralized
 +  Early version-control systems were designed around a @dfn{centralized}
 +model in which each project has only one repository used by all
 +developers.  SCCS, RCS, CVS, and Subversion share this kind of model.
 +It has two important problems.  One is that a single repository is a
 +single point of failure---if the repository server is down all work
 +stops.  The other is that you need to be connected live to the server to
 +do checkins and checkouts; if you're offline, you can't work.
 +
 +  Newer version-control systems like GNU Arch, git, Mercurial, and Bzr
 +are @dfn{decentralized}.  A project may have several different
 +repositories, and these systems support a sort of super-merge between
 +repositories that tries to reconcile their change histories.  At the
 +limit, each developer has his/her own repository, and repository
 +merges replace checkin/commit operations.
 +
 +  VC's job is to help you manage the traffic between your personal
 +workfiles and a repository.  Whether that repository is a single master
 +or one of a network of peer repositories is not something VC has to care
 +about.  Thus, the difference between a centralized and a decentralized
 +version-control system is invisible to VC mode.
 +
 +@iftex
 +(@pxref{CVS Options,,,emacs-xtra, Specialized Emacs Features}).
 +@end iftex
 +@ifnottex
 +(@pxref{CVS Options}).
 +@end ifnottex
 +
 +
 +@node Types of Log File
 +@subsubsection Types of Log File
 +@cindex types of log file
 +@cindex log File, types of
 +@cindex version control log
 +
 +  Projects that use a revision control system can have @emph{two}
 +types of log for changes.  One is the log maintained by the
 +revision control system: each time you check in a change, you must
 +fill out a @dfn{log entry} for the change (@pxref{Log Buffer}).  This
 +kind of log is called the @dfn{version control log}, also the
 +@dfn{revision control log}, @dfn{RCS log}, or @dfn{CVS log}.
 +
 +  The other kind of log is the file @file{ChangeLog} (@pxref{Change
 +Log}).  It provides a chronological record of all changes to a large
 +portion of a program---typically one directory and its subdirectories.
 +A small program would use one @file{ChangeLog} file; a large program
 +may well merit a @file{ChangeLog} file in each major directory.
 +@xref{Change Log}.
 +
 +  Actually, the fact that both kinds of log exist is partly a legacy from
 +file-based version control.  Changelogs are a GNU convention, later 
 +more widely adopted, that help developers to get a changeset-based
 +view of a project even when its version-control system has that
 +information split up in multiple file-based logs.  
 +
 +  Changeset-based version systems, on the other hand, often maintain
 +a changeset-based modification log for the entire system that makes
 +ChangeLogs mostly redundant.  The only advantage ChangeLogs retain is that
 +it may be useful to be able to view the transaction history of a
 +single directory separately from those of other directories.
 +
 +  A project maintained with version control can use just the
 +version-control log, or it can use both kinds of logs.  It can
 +handle some files one way and some files the other way.  Each project
 +has its policy, which you should follow.
 +
 +  When the policy is to use both, you typically want to write an entry
 +for each change just once, then put it into both logs.  You can write
 +the entry in @file{ChangeLog}, then copy it to the log buffer when you
 +check in the change.  Or you can write the entry in the log buffer
 +while checking in the change, and later use the @kbd{C-x v a} command
 +to copy it to @file{ChangeLog}
 +@iftex
 +(@pxref{Change Logs and VC,,,emacs-xtra, Specialized Emacs Features}).
 +@end iftex
 +@ifnottex
 +(@pxref{Change Logs and VC}).
 +@end ifnottex
 +
 +@node VC Mode Line
 +@subsection Version Control and the Mode Line
 +
 +  When you visit a file that is under version control, Emacs indicates
 +this on the mode line.  For example, @samp{RCS-1.3} says that RCS is
 +used for that file, and the current version is 1.3.
 +
 +  The character between the back-end name and the revision ID
 +indicates the version control status of the file.  @samp{-} means that
 +the work file is not locked (if locking is in use), or not modified (if
 +locking is not in use).  @samp{:} indicates that the file is locked, or
 +that it is modified.  If the file is locked by some other user (for
 +instance, @samp{jim}), that is displayed as @samp{RCS:jim:1.3}.
 +
 +@vindex auto-revert-check-vc-info
 +  When Auto Revert mode (@pxref{Reverting}) reverts a buffer that is
 +under version control, it updates the version control information in
 +the mode line.  However, Auto Revert mode may not properly update this
 +information if the version control status changes without changes to
 +the work file, from outside the current Emacs session.  If you set
 +@code{auto-revert-check-vc-info} to @code{t}, Auto Revert mode updates
 +the version control status information every
 +@code{auto-revert-interval} seconds, even if the work file itself is
 +unchanged.  The resulting CPU usage depends on the version control
 +system, but is usually not excessive.
 +
 +@node Basic VC Editing
 +@subsection Basic Editing under Version Control
 +
 +@menu
 +* Selecting A Fileset::    Choosing a set of files to operate on 
 +* Doing The Right Thing::  Stepping forward in the development cycle
 +* VC With A Locking VCS::  RCS in its default mode, SCCS, and optionally CVS.
 +* VC With A Merging VCS::  Without locking: default mode for CVS.
 +* Advanced C-x v v::       Advanced features available with a prefix argument.
 +* Log Buffer::             Features available in log entry buffers.
 +@end menu
 +
 +@node Selecting A Fileset
 +@subsubsection Choosing the scope of your command
 +
 +@cindex filesets
 +   Most VC commands operate on @dfn{filesets}.  A fileset is a 
 +group of files that you have chosen to treat as a unit at the
 +time you perform the command.  Filesets are the way that VC
 +mode bridges the gap between file-based and changeset-based 
 +version-control systems.
 +
 +   If you are visiting a version-controlled file in the current buffer,
 +the default fileset for any command is simply that one file.  If you
 +are visiting a VC Dired buffer, and some files in it are marked,
 +your fileset is the marked files only.
 +
 +   All files in a fileset must be under the same version-control system.
 +If they are not, VC mode will fail when you attempt to execute 
 +a command on the fileset.
 +
 +   VC filesets are, essentially, a way to pass multiple file
 +arguments as a group to underlying version-control commands.  For
 +example, on Subversion a checkin with more than one file in its
 +fileset will become a joint commit, as though you had typed
 +@command{svn commit} with those file arguments at the shell command
 +line in the directory of the selected buffer.
 +
 +   If you are accustomed to earlier versions of VC, the change in behavior
 +you will notice is in VC-Dired mode. Other than @kbd{C-x v v}, most
 +VC-mode commands once operated on only one file selected by the line
 +the cursor is on.  The change in the behavior of @kbd{C-x v v} outside
 +VC-Dired mode is more subtle.  Formerly it operated in parallel on all
 +marked files, but did not pass them to the version-control backends as
 +a group.  Now it does, which enables VC to drive changeset-based
 +version-control systems.
 +
 +   Emacs uses the concept of named filesets elsewhere
 +(@pxref{Filesets}) to allow you to view and visit files in functional
 +groups.  Unlike those, VC filesets are not named and don't persist
 +across sessions.
 +
 +@node Doing The Right Thing
 +@subsubsection Performing the next operation in the development cycle
 +
 +  The principal VC command is an all-purpose command that performs
 +either locking or check-in on your current fileset, depending on 
 +the situation.
 +
 +@table @kbd
 +@itemx C-x v v
 +Perform the next logical version control operation on this file.
 +@end table
 +
 +@findex vc-next-action
 +@kindex C-x v v
 +  The precise action of this command depends on the state of the file,
 +and whether the version control system uses locking or merging.  SCCS and
 +RCS normally use locking; CVS and Subversion normally use
 +merging but can be configured to do locking.  Later systems such as 
 +GNU Arch and Mercurial always use merging.
 +
 +@findex vc-toggle-read-only
 +@kindex C-x C-q @r{(Version Control)}
 +  As a special convenience that is particularly useful for files with
 +locking, you can let Emacs check a file in or out whenever you change
 +its read-only flag.  This means, for example, that you cannot
 +accidentally edit a file without properly checking it out first.  To
 +achieve this, bind the key @kbd{C-x C-q} to @kbd{vc-toggle-read-only}
 +in your @file{~/.emacs} file.  (@xref{Init Rebinding}.)
 +
 +@node VC With A Locking VCS
 +@subsubsection Basic Version Control with Locking
 +
 +  If locking is used for the file (as with SCCS, and RCS in its default
 +mode), @kbd{C-x v v} can either lock a file or check it in:
 +
 +@itemize @bullet
 +@item
 +If the file is not locked, @kbd{C-x v v} locks it, and
 +makes it writable so that you can change it.
 +
 +@item
 +If the file is locked by you, and contains changes, @kbd{C-x v v} checks
 +in the changes.  In order to do this, it first reads the log entry
 +for the new revision.  @xref{Log Buffer}.
 +
 +@item
 +If the file is locked by you, but you have not changed it since you
 +locked it, @kbd{C-x v v} releases the lock and makes the file read-only
 +again.
 +
 +@item
 +If the file is locked by some other user, @kbd{C-x v v} asks you whether
 +you want to ``steal the lock'' from that user.  If you say yes, the file
 +becomes locked by you, but a message is sent to the person who had
 +formerly locked the file, to inform him of what has happened.
 +@end itemize
 +
 +  These rules also apply when you use CVS in locking mode, except
 +that there is no such thing as stealing a lock.
 +
 +@node VC With A Merging VCS
 +@subsubsection Basic Version Control with Merging
 +
 +  When your version-control system is merging-based rather than
 +locking-based---the default for CVS and Subversion, and the way GNU
 +Arch and more modern systems always work---work files are always
 +writable; you do not need to do anything before you begin to edit a
 +file.  The status indicator on the mode line is @samp{-} if the file
 +is unmodified; it flips to @samp{:} as soon as you save any changes in
 +the work file.
 +
 +  Here is what @kbd{C-x v v} does when using a merging-based system
 +(such as CVS or Subversion in their default merging mode):
 +
 +@itemize @bullet
 +@item
 +If some other user has checked in changes into the repository, Emacs
 +asks you whether you want to merge those changes into your own work
 +file.  You must do this before you can check in your own changes.  (To
 +pick up any recent changes from the repository @emph{without} trying
 +to commit your own changes, type @kbd{C-x v m @key{RET}}.)
 +@xref{Merging}.
 +
 +@item
 +If there are no new changes in the repository, but you have made
 +modifications in your work file, @kbd{C-x v v} checks in your changes.
 +In order to do this, it first reads the log entry for the new revision.
 +@xref{Log Buffer}.
 +
 +@item
 +If the file is not modified, the @kbd{C-x v v} does nothing.
 +@end itemize
 +
 +  These rules also apply when you use RCS in the mode that does not
 +require locking, except that automatic merging of changes from the
 +repository is not implemented.  Unfortunately, this means that nothing
 +informs you if another user has checked in changes in the same file
 +since you began editing it, and when this happens, his changes will be
 +effectively removed when you check in your revision (though they will
 +remain in the repository, so they will not be entirely lost).  You must
 +therefore verify that the current revision is unchanged, before you
 +check in your changes.
 +
 +  In addition, locking is possible with RCS even in this mode, although
 +it is not required; @kbd{C-x v v} with an unmodified file locks the
 +file, just as it does with RCS in its normal (locking) mode.
 +
 +  Later systems like CVS, Subversion and Arch will notice conflicting 
 +changes in the repository automatically and notify you when they occur.
 +
 +@node Advanced C-x v v
 +@subsubsection Advanced Control in @kbd{C-x v v}
 +
 +@cindex revision ID to check in/out
 +  When you give a prefix argument to @code{vc-next-action} (@kbd{C-u
 +C-x v v}), it still performs the next logical version control
 +operation, but accepts additional arguments to specify precisely how
 +to do the operation.
 +
 +@itemize @bullet
 +@item
 +If the file is modified (or locked), you can specify the revision ID
 +to use for the new version that you check in.  This is one way
 +to create a new branch (@pxref{Branches}).
 +
 +@item
 +If the file is not modified (and unlocked), you can specify the
 +revision to select; this lets you start working from an older
 +revision, or on another branch.  If you do not enter any revision,
 +that takes you to the highest (``head'') revision on the current
 +branch; therefore @kbd{C-u C-x v v @key{RET}} is a convenient way to
 +get the latest version of a file from the repository.
 +
 +@item
 +@cindex specific version control system
 +Instead of the revision ID, you can also specify the name of a
 +version control system.  This is useful when one file is being managed
 +with two version control systems at the same time
 +@iftex
 +(@pxref{Local Version Control,,,emacs-xtra, Specialized Emacs
 +Features}).
 +@end iftex
 +@ifnottex
 +(@pxref{Local Version Control}).
 +@end ifnottex
 +
 +@end itemize
 +
 +@node Log Buffer
 +@subsubsection Features of the Log Entry Buffer
 +
 +  When you check in changes, @kbd{C-x v v} first reads a log entry.  It
 +pops up a buffer called @samp{*VC-Log*} for you to enter the log entry.
 +
 +  Sometimes the @samp{*VC-Log*} buffer contains default text when you enter it,
 +typically the last log message entered.  If it does, mark and point
 +are set around the entire contents of the buffer so that it is easy to
 +kill the contents of the buffer with @kbd{C-w}.
 +
 +@findex log-edit-insert-changelog
 +  If you work by first writing entries in the @file{ChangeLog}
 +(@pxref{Change Log}) and afterwards committing the change under revision
 +control, you can generate the Log Edit text from the ChangeLog using
 +@kbd{C-c C-a} (@kbd{log-edit-insert-changelog}).  This looks for
 +entries for the file(s) concerned in the top entry in the ChangeLog
 +and uses those paragraphs as the log text.  This text is only inserted
 +if the top entry was made under your user name on the current date.
 +@iftex
 +@xref{Change Logs and VC,,,emacs-xtra, Specialized Emacs Features},
 +@end iftex
 +@ifnottex
 +@xref{Change Logs and VC},
 +@end ifnottex
 +for the opposite way of working---generating ChangeLog entries from
 +the revision control log.
 +
 +  In the @samp{*VC-Log*} buffer, @kbd{C-c C-f} (@kbd{M-x
 +log-edit-show-files}) shows the list of files to be committed in case
 +you need to check that.  (This can be a list of more than one file if
 +you use VC Dired mode or PCL-CVS.)
 +@iftex
 +@xref{VC Dired Mode,,,emacs-xtra, Specialized Emacs Features},
 +@end iftex
 +@ifnottex
 +@xref{VC Dired Mode},
 +@end ifnottex
 +and @ref{Top, , About PCL-CVS, pcl-cvs, PCL-CVS --- The Emacs
 +Front-End to CVS}.)
 +
 +  When you have finished editing the log message, type @kbd{C-c C-c} to
 +exit the buffer and commit the change.
 +
 +  To abort check-in, just @strong{don't} type @kbd{C-c C-c} in that
 +buffer.  You can switch buffers and do other editing.  As long as you
 +don't try to check in another file, the entry you were editing remains
 +in the @samp{*VC-Log*} buffer, and you can go back to that buffer at any
 +time to complete the check-in.
 +
 +  If you change several source files for the same reason, it is often
 +convenient to specify the same log entry for many of the files.  (This
 +is the normal way to do things on a changeset-oriented system, where
 +comments are attached to changesets rather than the history of
 +individual files.)  The most convenient way to do this is to mark all the
 +files in VC-Dired mode and check in from there; the log buffer will
 +carry the fileset information with it and do a group commit when you
 +confirm it with @kbd{C-c C-c}.
 +
 +  However, you can also browse the history of previous log entries to
 +duplicate a checkin comment. This can be useful when you want several
 +files to have checkin comments that vary only slightly from each
 +other. The commands @kbd{M-n}, @kbd{M-p}, @kbd{M-s} and @kbd{M-r} for
 +doing this work just like the minibuffer history commands (except that
 +these versions are used outside the minibuffer).
 +
 +@vindex vc-log-mode-hook
 +  Each time you check in a change, the log entry buffer is put into VC Log
 +mode, which involves running two hooks: @code{text-mode-hook} and
 +@code{vc-log-mode-hook}.  @xref{Hooks}.
 +
 +@node Old Revisions
 +@subsection Examining And Comparing Old Revisions
 +
 +  One of the convenient features of version control is the ability
 +to examine any revision of a file, or compare two revisions.
 +
 +@table @kbd
 +@item C-x v ~ @var{revision} @key{RET}
 +Examine revision @var{revision} of the visited file, in a buffer of its
 +own.
 +
 +@item C-x v =
 +Compare the buffer contents associated with the current
 +fileset with the working revision(s) from which you started editing.
 +
 +@item C-u C-x v = @key{RET} @var{oldvers} @key{RET} @var{newvers} @key{RET}
 +Compare the specified two repository revisions of the current fileset.
 +
 +@item C-x v g
 +Display the file with per-line revision information and using colors.
 +@end table
 +
 +@findex vc-revision-other-window
 +@kindex C-x v ~
 +  To examine an old revision in its entirety, visit the file and then type
 +@kbd{C-x v ~ @var{revision} @key{RET}} (@code{vc-revision-other-window}).
 +This puts the text of revision @var{revision} in a file named
 +@file{@var{filename}.~@var{revision}~}, and visits it in its own buffer
 +in a separate window.  (In RCS, you can also select an old revision
 +and create a branch from it.  @xref{Branches}.)
 +
 +@findex vc-diff
 +@kindex C-x v =
 +@kbd{C-x v =} compares the current buffer contents of each file in the
 +current fileset (saving them in the file if necessary) with the
 +repository revision from which you started editing each file (this is not
 +necessarily the latest revision of the file).  The diff will be displayed
 +in a special buffer in another window.
 +
 +@findex vc-diff
 +@kindex C-u C-x v =
 +  You can compare two repository revisions of the current fileset with
 +the command @kbd{C-u C-x v =} (@code{vc-diff}).  @kbd{C-u C-x v =} reads
 +two revision ID or tags. The diff will be displayed in a special
 +buffer in another window.
 +
 +  You can specify a checked-in revision by its ID; an empty input
 +specifies the current contents of the work file (which may be different
 +from all the checked-in revisions).  You can also specify a snapshot name
 +@iftex
 +(@pxref{Snapshots,,,emacs-xtra, Specialized Emacs Features})
 +@end iftex
 +@ifnottex
 +(@pxref{Snapshots})
 +@end ifnottex
 +instead of one or both revision ID.
 +
 +  Note that if your version-control system is file-oriented (SCCS,
 +RCS, CVS) rather than fileset-oriented (Subversion, GNU Arch, git,
 +Mercurial) specifying a revision of a multiple-file fileset by
 +revision ID (as opposed to a snapshot name or RSCCS/RCS tag) is
 +unlikely to return diffs that are connected in any meaningful way.
 +
 +  If you invoke @kbd{C-u C-x v =} or @kbd{C-u C-x v =} from a buffer
 +that is neither visiting a version-controlled file nor a VC Dired
 +buffer, these commands will generate a diff of all registered files in
 +the current directory and its subdirectories.
 +
 +@vindex vc-diff-switches
 +@vindex vc-rcs-diff-switches
 +  @kbd{C-x v =} works by running a variant of the @code{diff} utility
 +designed to work with the version control system in use.  When you
 +invoke @code{diff} this way, in addition to the options specified by
 +@code{diff-switches} (@pxref{Comparing Files}), it receives those
 +specified by @code{vc-diff-switches}, plus those specified for the
 +specific back end by @code{vc-@var{backend}-diff-switches}.  For
 +instance, when the version control back end is RCS, @code{diff} uses
 +the options in @code{vc-rcs-diff-switches}.  The
 +@samp{vc@dots{}diff-switches} variables are @code{nil} by default.
 +
 +  The buffer produced by @kbd{C-x v =} supports the commands of
 +Compilation mode (@pxref{Compilation Mode}), such as @kbd{C-x `} and
 +@kbd{C-c C-c}, in both the ``old'' and ``new'' text, and they always
 +find the corresponding locations in the current work file.  (Older
 +revisions are not, in general, present as files on your disk.)
 +
 +@findex vc-annotate
 +@kindex C-x v g
 +  For some back ends, you can display the file @dfn{annotated} with
 +per-line revision information and using colors to enhance the visual
 +appearance, with the command @kbd{M-x vc-annotate}.  This creates a new
 +buffer (the ``annotate buffer'') displaying the file's text, with each
 +part colored to show how old it is.  Text colored red is new, blue means
 +old, and intermediate colors indicate intermediate ages.  By default,
 +the color is scaled over the full range of ages, such that the oldest
 +changes are blue, and the newest changes are red.
 +
 +  When you give a prefix argument to this command, Emacs reads two
 +arguments using the minibuffer: the ID of which revision to display and
 +annotate (instead of the current file contents), and the time span in
 +days the color range should cover.  
 +
 +  From the annotate buffer, these and other color scaling options are
 +available from the @samp{VC-Annotate} menu.  In this buffer, you can
 +also use the following keys to browse the annotations of past revisions,
 +view diffs, or view log entries:
 +
 +@table @kbd
 +@item P
 +Annotate the previous revision, that is to say, the revision before
 +the one currently annotated.  A numeric prefix argument is a repeat
 +count, so @kbd{C-u 10 P} would take you back 10 revisions.
 +
 +@item N
 +Annotate the next revision---the one after the revision currently
 +annotated.  A numeric prefix argument is a repeat count.
 +
 +@item J
 +Annotate the revision indicated by the current line.
 +
 +@item A
 +Annotate the revision before the one indicated by the current line.
 +This is useful to see the state the file was in before the change on
 +the current line was made.
 +
 +@item D
 +Display the diff between the current line's revision and the previous
 +revision.  This is useful to see what the current line's revision
 +actually changed in the file.
 +
 +@item L
 +Show the log of the current line's revision.  This is useful to see
 +the author's description of the changes in the revision on the current
 +line.
 +
 +@item W
 +Annotate the working revision--the one you are editing.  If you used
 +@kbd{P} and @kbd{N} to browse to other revisions, use this key to
 +return to your working revision.
 +@end table
 +
 +@node Secondary VC Commands
 +@subsection The Secondary Commands of VC
 +
 +  This section explains the secondary commands of VC, those that you might
 +use once a day.
 +
 +@menu
 +* Registering::         Putting a file under version control.
 +* VC Status::           Viewing the VC status of files.
 +* VC Undo::             Canceling changes before or after check-in.
 +@ifnottex
 +* VC Dired Mode::       Listing files managed by version control.
 +* VC Dired Commands::   Commands to use in a VC Dired buffer.
 +@end ifnottex
 +@end menu
 +
 +@node Registering
 +@subsubsection Registering a File for Version Control
 +
 +@kindex C-x v i
 +@findex vc-register
 +  You can put any file under version control by simply visiting it, and
 +then typing @w{@kbd{C-x v i}} (@code{vc-register}).
 +
 +@table @kbd
 +@item C-x v i
 +Register the visited file for version control.
 +@end table
 +
 +  To register the file, Emacs must choose which version control system
 +to use for it.  If the file's directory already contains files
 +registered in a version control system, Emacs uses that system.  If
 +there is more than one system in use for a directory, Emacs uses the
 +one that appears first in @code{vc-handled-backends}
 +@iftex
 +(@pxref{Customizing VC,,,emacs-xtra, Specialized Emacs Features}).
 +@end iftex
 +@ifnottex
 +(@pxref{Customizing VC}).
 +@end ifnottex
 +On the other hand, if there are no files already registered, Emacs uses
 +the first system from @code{vc-handled-backends} that could register
 +the file (for example, you cannot register a file under CVS if its
 +directory is not already part of a CVS tree); with the default value
 +of @code{vc-handled-backends}, this means that Emacs uses RCS in this
 +situation.
 +
 +  If locking is in use, @kbd{C-x v i} leaves the file unlocked and
 +read-only.  Type @kbd{C-x v v} if you wish to start editing it.  After
 +registering a file with CVS, you must subsequently commit the initial
 +revision by typing @kbd{C-x v v}.  Until you do that, the revision ID
 +appears as @samp{@@@@} in the mode line.
 +
 +@vindex vc-default-init-revision
 +@cindex initial revision ID to register
 +  The default initial revision ID for a newly registered file
 +varies by what VCS you are using; normally it will be 1.1 on VCSes
 +that use dot-pair revision IDs and 1 on VCSes that use monotonic IDs.
 +You can specify a different default by setting the variable
 +@code{vc-default-init-revision}, or you can give @kbd{C-x v i} a
 +numeric argument; then it reads the initial revision ID for this
 +particular file using the minibuffer.
 +
 +@vindex vc-initial-comment
 +  If @code{vc-initial-comment} is non-@code{nil}, @kbd{C-x v i} reads an
 +initial comment to describe the purpose of this source file.  Reading
 +the initial comment works like reading a log entry (@pxref{Log Buffer}).
 +
 +@node VC Status
 +@subsubsection VC Status Commands
 +
 +@table @kbd
 +@item C-x v l
 +Display revision control state and change history.
 +@end table
 +
 +@kindex C-x v l
 +@findex vc-print-log
 +  To view the detailed revision control status and history of a file,
 +type @kbd{C-x v l} (@code{vc-print-log}).  It displays the history of
 +changes to the current file, including the text of the log entries.  The
 +output appears in a separate window.  The point is centered at the
 +revision of the file that is currently being visited.
 +
 +  In the change log buffer, you can use the following keys to move
 +between the logs of revisions and of files, to view past revisions, and
 +to view diffs:
 +
 +@table @kbd
 +@item p
 +Move to the previous revision-item in the buffer.  (Revision entries in the log
 +buffer are usually in reverse-chronological order, so the previous
 +revision-item usually corresponds to a newer revision.)  A numeric
 +prefix argument is a repeat count.
 +
 +@item n
 +Move to the next revision-item (which most often corresponds to the
 +previous revision of the file).  A numeric prefix argument is a repeat
 +count.
 +
 +@item P
 +Move to the log of the previous file, when the logs of multiple files
 +are in the log buffer
 +@iftex
 +(@pxref{VC Dired Mode,,,emacs-xtra, Specialized Emacs Features}).
 +@end iftex
 +@ifnottex
 +(@pxref{VC Dired Mode}).
 +@end ifnottex
 +Otherwise, just move to the beginning of the log.  A numeric prefix
 +argument is a repeat count, so @kbd{C-u 10 P} would move backward 10
 +files.
 +
 +@item N
 +Move to the log of the next file, when the logs of multiple files are
 +in the log buffer
 +@iftex
 +(@pxref{VC Dired Mode,,,emacs-xtra, Specialized Emacs Features}).
 +@end iftex
 +@ifnottex
 +(@pxref{VC Dired Mode}).
 +@end ifnottex
 +It also takes a numeric prefix argument as a repeat count.
 +
 +@item f
 +Visit the revision indicated at the current line, like typing @kbd{C-x
 +v ~} and specifying this revision's ID (@pxref{Old Revisions}).
 +
 +@item d
 +Display the diff (@pxref{Comparing Files}) between the revision
 +indicated at the current line and the next earlier revision.  This is
 +useful to see what actually changed when the revision indicated on the
 +current line was committed.
 +@end table
 +
 +@node VC Undo
 +@subsubsection Undoing Version Control Actions
 +
 +@table @kbd
 +@item C-x v u
 +Revert the buffer and the file to the working revision from which you started
 +editing the file.
 +
 +@item C-x v c
 +Remove the last-entered change from the master for the visited file.
 +This undoes your last check-in.
 +@end table
 +
 +@kindex C-x v u
 +@findex vc-revert-buffer
 +  If you want to discard your current set of changes and revert to the
 +working revision from which you started editing the file, use @kbd{C-x v u}
 +(@code{vc-revert-buffer}).  This leaves the file unlocked; if locking
 +is in use, you must first lock the file again before you change it
 +again.  @kbd{C-x v u} requires confirmation, unless it sees that you
 +haven't made any changes with respect to the master copy of the
 +working revision.
 +
 +  @kbd{C-x v u} is also the command to unlock a file if you lock it and
 +then decide not to change it.
 +
 +@kindex C-x v c
 +@findex vc-rollback
 +  To cancel a change that you already checked in, use @kbd{C-x v c}
 +(@code{vc-rollback}).  This command discards all record of the most
 +recent checked-in revision, but only if your work file corresponds to
 +that revision---you cannot use @kbd{C-x v c} to cancel a revision that is
 +not the latest on its branch.  Note that many version-control systems do
 +not support rollback at all; this command is something of a historical 
 +relic.
 +
 +@ifnottex
 +@c vc1-xtra.texi needs extra level of lowering.
 +@lowersections
 +@include vc1-xtra.texi
 +@raisesections
 +@end ifnottex
 +
 +@node Branches
 +@subsection Multiple Branches of a File
 +@cindex branch (version control)
 +@cindex trunk (version control)
 +
 +  One use of version control is to maintain multiple ``current''
 +revisions of a file.  For example, you might have different revisions of a
 +program in which you are gradually adding various unfinished new
 +features.  Each such independent line of development is called a
 +@dfn{branch}.  VC allows you to create branches, switch between
 +different branches, and merge changes from one branch to another.
 +Please note, however, that branches are not supported for SCCS.
 +
 +  A file's main line of development is usually called the @dfn{trunk}.
 +You can create multiple branches from the trunk.  How the difference
 +between trunk and branch is made visible is dependent on whether the
 +VCS uses dot-pair or monotonic version IDs.
 +
 +  In VCSes with dot-pair revision IDs, the revisions on the trunk are
 +normally IDed 1.1, 1.2, 1.3, etc.  At any such revision, you can
 +start an independent branch.  A branch starting at revision 1.2 would
 +have revision ID 1.2.1.1, and consecutive revisions on this branch
 +would have IDs 1.2.1.2, 1.2.1.3, 1.2.1.4, and so on.  If there is
 +a second branch also starting at revision 1.2, it would consist of
 +revisions 1.2.2.1, 1.2.2.2, 1.2.2.3, etc.
 +
 +   In VCSes with monotonic revision IDs, trunk revisions are IDed as
 +1, 2, 3, etc.  A branch from (say) revision 2 might start with 2.1 and
 +continue through 2.2, 2.3, etc.  But naming conventions for branches
 +and subbranches vary widely on these systems, and some (like
 +Mercurial) never depart from the monotonic integer sequence at all.
 +Consult the documentation of the VCS you are using.
 +
 +@cindex head revision
 +  If you omit the final component of a dot-pair revision ID, that is called a
 +@dfn{branch ID}.  It refers to the highest existing revision on that
 +branch---the @dfn{head revision} of that branch.  The branches in the
 +dot-pair example above have branch IDs 1.2.1 and 1.2.2.
 +
 +@menu
 +* Switching Branches::    How to get to another existing branch.
 +* Creating Branches::     How to start a new branch.
 +* Merging::               Transferring changes between branches.
 +* Multi-User Branching::  Multiple users working at multiple branches
 +                            in parallel.
 +@end menu
 +
 +@node Switching Branches
 +@subsubsection Switching between Branches
 +
 +  To switch between branches, type @kbd{C-u C-x v v} and specify the
 +revision ID you want to select.  On a locking-based system, this
 +version is then visited @emph{unlocked} (write-protected), so you can
 +examine it before locking it.  Switching branches in this way is allowed
 +only when the file is not locked.
 +
 +  On a VCS with dot-pair IDs, you can omit the minor part, thus giving
 +only the branch ID; this takes you to the head version on the
 +chosen branch.  If you only type @key{RET}, Emacs goes to the highest
 +version on the trunk.
 +
 +  After you have switched to any branch (including the main branch), you
 +stay on it for subsequent VC commands, until you explicitly select some
 +other branch.
 +
 +@node Creating Branches
 +@subsubsection Creating New Branches
 +
 +  To create a new branch from a head revision (one that is the latest in
 +the branch that contains it), first select that revision if necessary,
 +lock it with @kbd{C-x v v}, and make whatever changes you want.  Then,
 +when you check in the changes, use @kbd{C-u C-x v v}.  This lets you
 +specify the revision ID for the new revision.  You should specify a
 +suitable branch ID for a branch starting at the current revision.
 +For example, if the current revision is 2.5, the branch ID should be
 +2.5.1, 2.5.2, and so on, depending on the number of existing branches at
 +that point.
 +
 +  To create a new branch at an older revision (one that is no longer the
 +head of a branch), first select that revision (@pxref{Switching
 +Branches}).  Your procedure will then differ depending on whether you
 +are using a locking or merging-based VCS.
 +
 +  On a locking VCS, you will need to lock the old revision branch with
 +@kbd{C-x v v}.  You'll be asked to confirm, when you lock the old
 +revision, that you really mean to create a new branch---if you say no,
 +you'll be offered a chance to lock the latest revision instead.  On
 +a merging-based VCS you will skip this step.
 +
 +  Then make your changes and type @kbd{C-x v v} again to check in a new
 +revision.  This automatically creates a new branch starting from the
 +selected revision.  You need not specially request a new branch, because
 +that's the only way to add a new revision at a point that is not the head
 +of a branch.
 +
 +  After the branch is created, you ``stay'' on it.  That means that
 +subsequent check-ins create new revisions on that branch.  To leave the
 +branch, you must explicitly select a different revision with @kbd{C-u C-x
 +v v}.  To transfer changes from one branch to another, use the merge
 +command, described in the next section.
 +
 +@node Merging
 +@subsubsection Merging Branches
 +
 +@cindex merging changes
 +  When you have finished the changes on a certain branch, you will
 +often want to incorporate them into the file's main line of development
 +(the trunk).  This is not a trivial operation, because development might
 +also have proceeded on the trunk, so that you must @dfn{merge} the
 +changes into a file that has already been changed otherwise.  VC allows
 +you to do this (and other things) with the @code{vc-merge} command.
 +
 +@table @kbd
 +@item C-x v m (vc-merge)
 +Merge changes into the work file.
 +@end table
 +
 +@kindex C-x v m
 +@findex vc-merge
 +  @kbd{C-x v m} (@code{vc-merge}) takes a set of changes and merges it
 +into the current version of the work file.  It firsts asks you in the
 +minibuffer where the changes should come from.  If you just type
 +@key{RET}, Emacs merges any changes that were made on the same branch
 +since you checked the file out (we call this @dfn{merging the news}).
 +This is the common way to pick up recent changes from the repository,
 +regardless of whether you have already changed the file yourself.
 +
 +  You can also enter a branch ID or a pair of revision IDs in
 +the minibuffer.  Then @kbd{C-x v m} finds the changes from that
 +branch, or the differences between the two revisions you specified, and
 +merges them into the current revision of the current file.
 +
 +  As an example, suppose that you have finished a certain feature on
 +branch 1.3.1.  In the meantime, development on the trunk has proceeded
 +to revision 1.5.  To merge the changes from the branch to the trunk,
 +first go to the head revision of the trunk, by typing @kbd{C-u C-x v v
 +@key{RET}}.  Revision 1.5 is now current.  If locking is used for the file,
 +type @kbd{C-x v v} to lock revision 1.5 so that you can change it.  Next,
 +type @kbd{C-x v m 1.3.1 @key{RET}}.  This takes the entire set of changes on
 +branch 1.3.1 (relative to revision 1.3, where the branch started, up to
 +the last revision on the branch) and merges it into the current revision
 +of the work file.  You can now check in the changed file, thus creating
 +revision 1.6 containing the changes from the branch.
 +
 +  It is possible to do further editing after merging the branch, before
 +the next check-in.  But it is usually wiser to check in the merged
 +revision, then lock it and make the further changes.  This will keep
 +a better record of the history of changes.
 +
 +@cindex conflicts
 +@cindex resolving conflicts
 +  When you merge changes into a file that has itself been modified, the
 +changes might overlap.  We call this situation a @dfn{conflict}, and
 +reconciling the conflicting changes is called @dfn{resolving a
 +conflict}.
 +
 +  Whenever conflicts occur during merging, VC detects them, tells you
 +about them in the echo area, and asks whether you want help in merging.
 +If you say yes, it starts an Ediff session (@pxref{Top,
 +Ediff, Ediff, ediff, The Ediff Manual}).
 +
 +  If you say no, the conflicting changes are both inserted into the
 +file, surrounded by @dfn{conflict markers}.  The example below shows how
 +a conflict region looks; the file is called @samp{name} and the current
 +master file revision with user B's changes in it is 1.11.
 +
 +@c @w here is so CVS won't think this is a conflict.
 +@smallexample
 +@group
 +@w{<}<<<<<< name
 +  @var{User A's version}
 +=======
 +  @var{User B's version}
 +@w{>}>>>>>> 1.11
 +@end group
 +@end smallexample
 +
 +@cindex vc-resolve-conflicts
 +  Then you can resolve the conflicts by editing the file manually.  Or
 +you can type @code{M-x vc-resolve-conflicts} after visiting the file.
 +This starts an Ediff session, as described above.  Don't forget to
 +check in the merged version afterwards.
 +
 +@node Multi-User Branching
 +@subsubsection Multi-User Branching
 +
 +  It is often useful for multiple developers to work simultaneously on
 +different branches of a file.  CVS and later systems allow this by
 +default; for RCS, it is possible if you create multiple source
 +directories.  Each source directory should have a link named
 +@file{RCS} which points to a common directory of RCS master files.
 +Then each source directory can have its own choice of selected
 +revisions, but all share the same common RCS records.
 +
 +  This technique works reliably and automatically, provided that the
 +source files contain RCS version headers
 +@iftex
 +(@pxref{Version Headers,,,emacs-xtra, Specialized Emacs Features}).
 +@end iftex
 +@ifnottex
 +(@pxref{Version Headers}).
 +@end ifnottex
 +The headers enable Emacs to be sure, at all times, which revision
 +ID is present in the work file.
 +
 +  If the files do not have version headers, you must instead tell Emacs
 +explicitly in each session which branch you are working on.  To do this,
 +first find the file, then type @kbd{C-u C-x v v} and specify the correct
 +branch ID.  This ensures that Emacs knows which branch it is using
 +during this particular editing session.
 +
 +@ifnottex
 +@include vc2-xtra.texi
 +@end ifnottex
 +
 +@node Directories
 +@section File Directories
 +
 +@cindex file directory
 +@cindex directory listing
 +  The file system groups files into @dfn{directories}.  A @dfn{directory
 +listing} is a list of all the files in a directory.  Emacs provides
 +commands to create and delete directories, and to make directory
 +listings in brief format (file names only) and verbose format (sizes,
 +dates, and authors included).  Emacs also includes a directory browser
 +feature called Dired; see @ref{Dired}.
 +
 +@table @kbd
 +@item C-x C-d @var{dir-or-pattern} @key{RET}
 +Display a brief directory listing (@code{list-directory}).
 +@item C-u C-x C-d @var{dir-or-pattern} @key{RET}
 +Display a verbose directory listing.
 +@item M-x make-directory @key{RET} @var{dirname} @key{RET}
 +Create a new directory named @var{dirname}.
 +@item M-x delete-directory @key{RET} @var{dirname} @key{RET}
 +Delete the directory named @var{dirname}.  It must be empty,
 +or you get an error.
 +@end table
 +
 +@findex list-directory
 +@kindex C-x C-d
 +  The command to display a directory listing is @kbd{C-x C-d}
 +(@code{list-directory}).  It reads using the minibuffer a file name
 +which is either a directory to be listed or a wildcard-containing
 +pattern for the files to be listed.  For example,
 +
 +@example
 +C-x C-d /u2/emacs/etc @key{RET}
 +@end example
 +
 +@noindent
 +lists all the files in directory @file{/u2/emacs/etc}.  Here is an
 +example of specifying a file name pattern:
 +
 +@example
 +C-x C-d /u2/emacs/src/*.c @key{RET}
 +@end example
 +
 +  Normally, @kbd{C-x C-d} displays a brief directory listing containing
 +just file names.  A numeric argument (regardless of value) tells it to
 +make a verbose listing including sizes, dates, and owners (like
 +@samp{ls -l}).
 +
 +@vindex list-directory-brief-switches
 +@vindex list-directory-verbose-switches
 +  The text of a directory listing is mostly obtained by running
 +@code{ls} in an inferior process.  Two Emacs variables control the
 +switches passed to @code{ls}: @code{list-directory-brief-switches} is
 +a string giving the switches to use in brief listings (@code{"-CF"} by
 +default), and @code{list-directory-verbose-switches} is a string
 +giving the switches to use in a verbose listing (@code{"-l"} by
 +default).
 +
 +@vindex directory-free-space-program
 +@vindex directory-free-space-args
 +  In verbose directory listings, Emacs adds information about the
 +amount of free space on the disk that contains the directory.  To do
 +this, it runs the program specified by
 +@code{directory-free-space-program} with arguments
 +@code{directory-free-space-args}.
 +
 +@node Comparing Files
 +@section Comparing Files
 +@cindex comparing files
 +
 +@findex diff
 +@vindex diff-switches
 +  The command @kbd{M-x diff} compares two files, displaying the
 +differences in an Emacs buffer named @samp{*diff*}.  It works by
 +running the @code{diff} program, using options taken from the variable
 +@code{diff-switches}.  The value of @code{diff-switches} should be a
 +string; the default is @code{"-c"} to specify a context diff.
 +@xref{Top,, Diff, diff, Comparing and Merging Files}, for more
 +information about @command{diff} output formats.
 +
 +@findex diff-backup
 +  The command @kbd{M-x diff-backup} compares a specified file with its most
 +recent backup.  If you specify the name of a backup file,
 +@code{diff-backup} compares it with the source file that it is a backup
 +of.
 +
 +@findex compare-windows
 +  The command @kbd{M-x compare-windows} compares the text in the
 +current window with that in the next window.  (For more information
 +about windows in Emacs, @ref{Windows}.)  Comparison starts at point in
 +each window, after pushing each initial point value on the mark ring
 +in its respective buffer.  Then it moves point forward in each window,
 +one character at a time, until it reaches characters that don't match.
 +Then the command exits.
 +
 +  If point in the two windows is followed by non-matching text when
 +the command starts, @kbd{M-x compare-windows} tries heuristically to
 +advance up to matching text in the two windows, and then exits.  So if
 +you use @kbd{M-x compare-windows} repeatedly, each time it either
 +skips one matching range or finds the start of another.
 +
 +@vindex compare-ignore-case
 +@vindex compare-ignore-whitespace
 +  With a numeric argument, @code{compare-windows} ignores changes in
 +whitespace.  If the variable @code{compare-ignore-case} is
 +non-@code{nil}, the comparison ignores differences in case as well.
 +If the variable @code{compare-ignore-whitespace} is non-@code{nil},
 +@code{compare-windows} normally ignores changes in whitespace, and a
 +prefix argument turns that off.
 +
 +@cindex Smerge mode
 +@findex smerge-mode
 +@cindex failed merges
 +@cindex merges, failed
 +@cindex comparing 3 files (@code{diff3})
 +  You can use @kbd{M-x smerge-mode} to turn on Smerge mode, a minor
 +mode for editing output from the @command{diff3} program.  This is
 +typically the result of a failed merge from a version control system
 +``update'' outside VC, due to conflicting changes to a file.  Smerge
 +mode provides commands to resolve conflicts by selecting specific
 +changes.
 +
 +@iftex
 +@xref{Emerge,,, emacs-xtra, Specialized Emacs Features},
 +@end iftex
 +@ifnottex
 +@xref{Emerge},
 +@end ifnottex
 +for the Emerge facility, which provides a powerful interface for
 +merging files.
 +
 +@node Diff Mode
 +@section Diff Mode
 +@cindex Diff mode
 +@findex diff-mode
 +@cindex patches, editing
 +
 +  Diff mode is used for the output of @kbd{M-x diff}; it is also
 +useful for editing patches and comparisons produced by the
 +@command{diff} program.  To select Diff mode manually, type @kbd{M-x
 +diff-mode}.
 +
 +  One general feature of Diff mode is that manual edits to the patch
 +automatically correct line numbers, including those in the hunk
 +header, so that you can actually apply the edited patch.  Diff mode
 +treats each hunk location as an ``error message,'' so that you can use
 +commands such as @kbd{C-x '} to visit the corresponding source
 +locations.  It also provides the following commands to navigate,
 +manipulate and apply parts of patches:
 +
 +@table @kbd
 +@item M-n
 +Move to the next hunk-start (@code{diff-hunk-next}).
 +
 +@item M-p
 +Move to the previous hunk-start (@code{diff-hunk-prev}).
 +
 +@item M-@}
 +Move to the next file-start, in a multi-file patch
 +(@code{diff-file-next}).
 +
 +@item M-@{
 +Move to the previous file-start, in a multi-file patch
 +(@code{diff-file-prev}).
 +
 +@item M-k
 +Kill the hunk at point (@code{diff-hunk-kill}).
 +
 +@item M-K
 +In a multi-file patch, kill the current file part.
 +(@code{diff-file-kill}).
 +
 +@item C-c C-a
 +Apply this hunk to its target file (@code{diff-apply-hunk}).  With a
 +prefix argument of @kbd{C-u}, revert this hunk.
 +
 +@item C-c C-c
 +Go to the source corresponding to this hunk (@code{diff-goto-source}).
 +
 +@item C-c C-e
 +Start an Ediff session with the patch (@code{diff-ediff-patch}).
 +@xref{Top, Ediff, Ediff, ediff, The Ediff Manual}.
 +
 +@item C-c C-n
 +Restrict the view to the current hunk (@code{diff-restrict-view}).
 +@xref{Narrowing}.  With a prefix argument of @kbd{C-u}, restrict the
 +view to the current patch of a multiple file patch.  To widen again,
 +use @kbd{C-x n w}.
 +
 +@item C-c C-r
 +Reverse the direction of comparison for the entire buffer
 +(@code{diff-reverse-direction}).
 +
 +@item C-c C-s
 +Split the hunk at point (@code{diff-split-hunk}).  This is for
 +manually editing patches, and only works with the unified diff format.
 +
 +@item C-c C-u
 +Convert the entire buffer to unified format
 +(@code{diff-context->unified}).  With a prefix argument, convert
 +unified format to context format.  In Transient Mark mode, when the
 +mark is active, this command operates only on the region.
 +
 +@item C-c C-w
 +Refine the current hunk so that it disregards changes in whitespace
 +(@code{diff-refine-hunk}).
 +@end table
 +
 +  @kbd{C-x 4 a} in Diff mode operates on behalf of the target file,
 +but gets the function name from the patch itself.  @xref{Change Log}.
 +This is useful for making log entries for functions that are deleted
 +by the patch.
 +
 +@node Misc File Ops
 +@section Miscellaneous File Operations
 +
 +  Emacs has commands for performing many other operations on files.
 +All operate on one file; they do not accept wildcard file names.
 +
 +@findex view-file
 +@cindex viewing
 +@cindex View mode
 +@cindex mode, View
 +  @kbd{M-x view-file} allows you to scan or read a file by sequential
 +screenfuls.  It reads a file name argument using the minibuffer.  After
 +reading the file into an Emacs buffer, @code{view-file} displays the
 +beginning.  You can then type @key{SPC} to scroll forward one windowful,
 +or @key{DEL} to scroll backward.  Various other commands are provided
 +for moving around in the file, but none for changing it; type @kbd{?}
 +while viewing for a list of them.  They are mostly the same as normal
 +Emacs cursor motion commands.  To exit from viewing, type @kbd{q}.
 +The commands for viewing are defined by a special minor mode called View
 +mode.
 +
 +  A related command, @kbd{M-x view-buffer}, views a buffer already present
 +in Emacs.  @xref{Misc Buffer}.
 +
 +@kindex C-x i
 +@findex insert-file
 +  @kbd{M-x insert-file} (also @kbd{C-x i}) inserts a copy of the
 +contents of the specified file into the current buffer at point,
 +leaving point unchanged before the contents and the mark after them.
 +
 +@findex insert-file-literally
 +  @kbd{M-x insert-file-literally} is like @kbd{M-x insert-file},
 +except the file is inserted ``literally'': it is treated as a sequence
 +of @acronym{ASCII} characters with no special encoding or conversion,
 +similar to the @kbd{M-x find-file-literally} command
 +(@pxref{Visiting}).
 +
 +@findex write-region
 +  @kbd{M-x write-region} is the inverse of @kbd{M-x insert-file}; it
 +copies the contents of the region into the specified file.  @kbd{M-x
 +append-to-file} adds the text of the region to the end of the
 +specified file.  @xref{Accumulating Text}.  The variable
 +@code{write-region-inhibit-fsync} applies to these commands, as well
 +as saving files; see @ref{Customize Save}.
 +
 +@findex delete-file
 +@cindex deletion (of files)
 +  @kbd{M-x delete-file} deletes the specified file, like the @code{rm}
 +command in the shell.  If you are deleting many files in one directory, it
 +may be more convenient to use Dired (@pxref{Dired}).
 +
 +@findex rename-file
 +  @kbd{M-x rename-file} reads two file names @var{old} and @var{new} using
 +the minibuffer, then renames file @var{old} as @var{new}.  If the file name
 +@var{new} already exists, you must confirm with @kbd{yes} or renaming is not
 +done; this is because renaming causes the old meaning of the name @var{new}
 +to be lost.  If @var{old} and @var{new} are on different file systems, the
 +file @var{old} is copied and deleted.
 +
 +  If the argument @var{new} is just a directory name, the real new
 +name is in that directory, with the same non-directory component as
 +@var{old}.  For example, @kbd{M-x rename-file RET ~/foo RET /tmp RET}
 +renames @file{~/foo} to @file{/tmp/foo}.  The same rule applies to all
 +the remaining commands in this section.  All of them ask for
 +confirmation when the new file name already exists, too.
 +
 +@findex add-name-to-file
 +@cindex hard links (creation)
 +  The similar command @kbd{M-x add-name-to-file} is used to add an
 +additional name to an existing file without removing its old name.
 +The new name is created as a ``hard link'' to the existing file.
 +The new name must belong on the same file system that the file is on.
 +On MS-Windows, this command works only if the file resides in an NTFS
 +file system.  On MS-DOS, it works by copying the file.
 +
 +@findex copy-file
 +@cindex copying files
 +  @kbd{M-x copy-file} reads the file @var{old} and writes a new file
 +named @var{new} with the same contents.
 +
 +@findex make-symbolic-link
 +@cindex symbolic links (creation)
 +  @kbd{M-x make-symbolic-link} reads two file names @var{target} and
 +@var{linkname}, then creates a symbolic link named @var{linkname},
 +which points at @var{target}.  The effect is that future attempts to
 +open file @var{linkname} will refer to whatever file is named
 +@var{target} at the time the opening is done, or will get an error if
 +the name @var{target} is nonexistent at that time.  This command does
 +not expand the argument @var{target}, so that it allows you to specify
 +a relative name as the target of the link.
 +
 +  Not all systems support symbolic links; on systems that don't
 +support them, this command is not defined.
 +
 +@node Compressed Files
 +@section Accessing Compressed Files
 +@cindex compression
 +@cindex uncompression
 +@cindex Auto Compression mode
 +@cindex mode, Auto Compression
 +@pindex gzip
 +
 +  Emacs automatically uncompresses compressed files when you visit
 +them, and automatically recompresses them if you alter them and save
 +them.  Emacs recognizes compressed files by their file names.  File
 +names ending in @samp{.gz} indicate a file compressed with
 +@code{gzip}.  Other endings indicate other compression programs.
 +
 +  Automatic uncompression and compression apply to all the operations in
 +which Emacs uses the contents of a file.  This includes visiting it,
 +saving it, inserting its contents into a buffer, loading it, and byte
 +compiling it.
 +
 +@findex auto-compression-mode
 +@vindex auto-compression-mode
 +  To disable this feature, type the command @kbd{M-x
 +auto-compression-mode}.  You can disable it permanently by
 +customizing the variable @code{auto-compression-mode}.
 +
 +@node File Archives
 +@section File Archives
 +@cindex mode, tar
 +@cindex Tar mode
 +@cindex file archives
 +
 +  A file whose name ends in @samp{.tar} is normally an @dfn{archive}
 +made by the @code{tar} program.  Emacs views these files in a special
 +mode called Tar mode which provides a Dired-like list of the contents
 +(@pxref{Dired}).  You can move around through the list just as you
 +would in Dired, and visit the subfiles contained in the archive.
 +However, not all Dired commands are available in Tar mode.
 +
 +  If Auto Compression mode is enabled (@pxref{Compressed Files}), then
 +Tar mode is used also for compressed archives---files with extensions
 +@samp{.tgz}, @code{.tar.Z} and @code{.tar.gz}.
 +
 +  The keys @kbd{e}, @kbd{f} and @key{RET} all extract a component file
 +into its own buffer.  You can edit it there, and if you save the
 +buffer, the edited version will replace the version in the Tar buffer.
 +@kbd{v} extracts a file into a buffer in View mode.  @kbd{o} extracts
 +the file and displays it in another window, so you could edit the file
 +and operate on the archive simultaneously.  @kbd{d} marks a file for
 +deletion when you later use @kbd{x}, and @kbd{u} unmarks a file, as in
 +Dired.  @kbd{C} copies a file from the archive to disk and @kbd{R}
 +renames a file within the archive.  @kbd{g} reverts the buffer from
 +the archive on disk.
 +
 +  The keys @kbd{M}, @kbd{G}, and @kbd{O} change the file's permission
 +bits, group, and owner, respectively.
 +
 +  If your display supports colors and the mouse, moving the mouse
 +pointer across a file name highlights that file name, indicating that
 +you can click on it.  Clicking @kbd{Mouse-2} on the highlighted file
 +name extracts the file into a buffer and displays that buffer.
 +
 +  Saving the Tar buffer writes a new version of the archive to disk with
 +the changes you made to the components.
 +
 +  You don't need the @code{tar} program to use Tar mode---Emacs reads
 +the archives directly.  However, accessing compressed archives
 +requires the appropriate uncompression program.
 +
 +@cindex Archive mode
 +@cindex mode, archive
 +@cindex @code{arc}
 +@cindex @code{jar}
 +@cindex @code{zip}
 +@cindex @code{lzh}
 +@cindex @code{zoo}
 +@pindex arc
 +@pindex jar
 +@pindex zip
 +@pindex lzh
 +@pindex zoo
 +@cindex Java class archives
 +@cindex unzip archives
 +  A separate but similar Archive mode is used for archives produced by
 +the programs @code{arc}, @code{jar}, @code{lzh}, @code{zip}, and
 +@code{zoo}, which have extensions corresponding to the program names.
 +Archive mode also works for those @code{exe} files that are
 +self-extracting executables.
 +
 +  The key bindings of Archive mode are similar to those in Tar mode,
 +with the addition of the @kbd{m} key which marks a file for subsequent
 +operations, and @kbd{M-@key{DEL}} which unmarks all the marked files.
 +Also, the @kbd{a} key toggles the display of detailed file
 +information, for those archive types where it won't fit in a single
 +line.  Operations such as renaming a subfile, or changing its mode or
 +owner, are supported only for some of the archive formats.
 +
 +  Unlike Tar mode, Archive mode runs the archiving program to unpack
 +and repack archives.  Details of the program names and their options
 +can be set in the @samp{Archive} Customize group.  However, you don't
 +need these programs to look at the archive table of contents, only to
 +extract or manipulate the subfiles in the archive.
 +
 +@node Remote Files
 +@section Remote Files
 +
 +@cindex Tramp
 +@cindex FTP
 +@cindex remote file access
 +  You can refer to files on other machines using a special file name
 +syntax:
 +
 +@example
 +@group
 +/@var{host}:@var{filename}
 +/@var{user}@@@var{host}:@var{filename}
 +/@var{user}@@@var{host}#@var{port}:@var{filename}
 +/@var{method}:@var{user}@@@var{host}:@var{filename}
 +/@var{method}:@var{user}@@@var{host}#@var{port}:@var{filename}
 +@end group
 +@end example
 +
 +@noindent
 +To carry out this request, Emacs uses either the FTP program or a
 +remote-login program such as @command{ssh}, @command{rlogin}, or
 +@command{telnet}.  You can always specify in the file name which
 +method to use---for example,
 +@file{/ftp:@var{user}@@@var{host}:@var{filename}} uses FTP, whereas
 +@file{/ssh:@var{user}@@@var{host}:@var{filename}} uses @command{ssh}.
 +When you don't specify a method in the file name, Emacs chooses
 +the method as follows:
 +
 +@enumerate
 +@item
 +If the host name starts with @samp{ftp.} (with dot), then Emacs uses
 +FTP.
 +@item
 +If the user name is @samp{ftp} or @samp{anonymous}, then Emacs uses
 +FTP.
 +@item
 +Otherwise, Emacs uses @command{ssh}.
 +@end enumerate
 +
 +@noindent
 +Remote file access through FTP is handled by the Ange-FTP package, which
 +is documented in the following.  Remote file access through the other
 +methods is handled by the Tramp package, which has its own manual.
 +@xref{Top, The Tramp Manual,, tramp, The Tramp Manual}.
 +
 +When the Ange-FTP package is used, Emacs logs in through FTP using your
 +user name or the name @var{user}.  It may ask you for a password from
 +time to time; this is used for logging in on @var{host}.  The form using
 +@var{port} allows you to access servers running on a non-default TCP
 +port.
 +
 +@cindex backups for remote files
 +@vindex ange-ftp-make-backup-files
 +  If you want to disable backups for remote files, set the variable
 +@code{ange-ftp-make-backup-files} to @code{nil}.
 +
 +  By default, the auto-save files (@pxref{Auto Save Files}) for remote
 +files are made in the temporary file directory on the local machine.
 +This is achieved using the variable @code{auto-save-file-name-transforms}.
 +
 +@cindex ange-ftp
 +@vindex ange-ftp-default-user
 +@cindex user name for remote file access
 +  Normally, if you do not specify a user name in a remote file name,
 +that means to use your own user name.  But if you set the variable
 +@code{ange-ftp-default-user} to a string, that string is used instead.
 +
 +@cindex anonymous FTP
 +@vindex ange-ftp-generate-anonymous-password
 +  To visit files accessible by anonymous FTP, you use special user
 +names @samp{anonymous} or @samp{ftp}.  Passwords for these user names
 +are handled specially.  The variable
 +@code{ange-ftp-generate-anonymous-password} controls what happens: if
 +the value of this variable is a string, then that string is used as
 +the password; if non-@code{nil} (the default), then the value of
 +@code{user-mail-address} is used; if @code{nil}, then Emacs prompts
 +you for a password as usual.
 +
 +@cindex firewall, and accessing remote files
 +@cindex gateway, and remote file access with @code{ange-ftp}
 +@vindex ange-ftp-smart-gateway
 +@vindex ange-ftp-gateway-host
 +  Sometimes you may be unable to access files on a remote machine
 +because a @dfn{firewall} in between blocks the connection for security
 +reasons.  If you can log in on a @dfn{gateway} machine from which the
 +target files @emph{are} accessible, and whose FTP server supports
 +gatewaying features, you can still use remote file names; all you have
 +to do is specify the name of the gateway machine by setting the
 +variable @code{ange-ftp-gateway-host}, and set
 +@code{ange-ftp-smart-gateway} to @code{t}.  Otherwise you may be able
 +to make remote file names work, but the procedure is complex.  You can
 +read the instructions by typing @kbd{M-x finder-commentary @key{RET}
 +ange-ftp @key{RET}}.
 +
 +@vindex file-name-handler-alist
 +@cindex disabling remote files
 +  You can entirely turn off the FTP file name feature by removing the
 +entries @code{ange-ftp-completion-hook-function} and
 +@code{ange-ftp-hook-function} from the variable
 +@code{file-name-handler-alist}.  You can turn off the feature in
 +individual cases by quoting the file name with @samp{/:} (@pxref{Quoted
 +File Names}).
 +
 +@node Quoted File Names
 +@section Quoted File Names
 +
 +@cindex quoting file names
 +@cindex file names, quote special characters
 +  You can @dfn{quote} an absolute file name to prevent special
 +characters and syntax in it from having their special effects.
 +The way to do this is to add @samp{/:} at the beginning.
 +
 +  For example, you can quote a local file name which appears remote, to
 +prevent it from being treated as a remote file name.  Thus, if you have
 +a directory named @file{/foo:} and a file named @file{bar} in it, you
 +can refer to that file in Emacs as @samp{/:/foo:/bar}.
 +
 +  @samp{/:} can also prevent @samp{~} from being treated as a special
 +character for a user's home directory.  For example, @file{/:/tmp/~hack}
 +refers to a file whose name is @file{~hack} in directory @file{/tmp}.
 +
 +  Quoting with @samp{/:} is also a way to enter in the minibuffer a
 +file name that contains @samp{$}.  In order for this to work, the
 +@samp{/:} must be at the beginning of the minibuffer contents.  (You
 +can also double each @samp{$}; see @ref{File Names with $}.)
 +
 +  You can also quote wildcard characters with @samp{/:}, for visiting.
 +For example, @file{/:/tmp/foo*bar} visits the file
 +@file{/tmp/foo*bar}.
 +
 +  Another method of getting the same result is to enter
 +@file{/tmp/foo[*]bar}, which is a wildcard specification that matches
 +only @file{/tmp/foo*bar}.  However, in many cases there is no need to
 +quote the wildcard characters because even unquoted they give the
 +right result.  For example, if the only file name in @file{/tmp} that
 +starts with @samp{foo} and ends with @samp{bar} is @file{foo*bar},
 +then specifying @file{/tmp/foo*bar} will visit only
 +@file{/tmp/foo*bar}.
 +
 +@node File Name Cache
 +@section File Name Cache
 +
 +@cindex file name caching
 +@cindex cache of file names
 +@pindex find
 +@kindex C-@key{TAB}
 +@findex file-cache-minibuffer-complete
 +  You can use the @dfn{file name cache} to make it easy to locate a
 +file by name, without having to remember exactly where it is located.
 +When typing a file name in the minibuffer, @kbd{C-@key{tab}}
 +(@code{file-cache-minibuffer-complete}) completes it using the file
 +name cache.  If you repeat @kbd{C-@key{tab}}, that cycles through the
 +possible completions of what you had originally typed.  (However, note
 +that the @kbd{C-@key{tab}} character cannot be typed on most text-only
 +terminals.)
 +
 +  The file name cache does not fill up automatically.  Instead, you
 +load file names into the cache using these commands:
 +
 +@findex file-cache-add-directory
 +@table @kbd
 +@item M-x file-cache-add-directory @key{RET} @var{directory} @key{RET}
 +Add each file name in @var{directory} to the file name cache.
 +@item M-x file-cache-add-directory-using-find @key{RET} @var{directory} @key{RET}
 +Add each file name in @var{directory} and all of its nested
 +subdirectories to the file name cache.
 +@item M-x file-cache-add-directory-using-locate @key{RET} @var{directory} @key{RET}
 +Add each file name in @var{directory} and all of its nested
 +subdirectories to the file name cache, using @command{locate} to find
 +them all.
 +@item M-x file-cache-add-directory-list @key{RET} @var{variable} @key{RET}
 +Add each file name in each directory listed in @var{variable}
 +to the file name cache.  @var{variable} should be a Lisp variable
 +such as @code{load-path} or @code{exec-path}, whose value is a list
 +of directory names.
 +@item M-x file-cache-clear-cache @key{RET}
 +Clear the cache; that is, remove all file names from it.
 +@end table
 +
 +  The file name cache is not persistent: it is kept and maintained
 +only for the duration of the Emacs session.  You can view the contents
 +of the cache with the @code{file-cache-display} command.
 +
 +@node File Conveniences
 +@section Convenience Features for Finding Files
 +
 +  In this section, we introduce some convenient facilities for finding
 +recently-opened files, reading file names from a buffer, and viewing
 +image files.
 +
 +@findex recentf-mode
 +@vindex recentf-mode
 +@findex recentf-save-list
 +@findex recentf-edit-list
 +  If you enable Recentf mode, with @kbd{M-x recentf-mode}, the
 +@samp{File} menu includes a submenu containing a list of recently
 +opened files.  @kbd{M-x recentf-save-list} saves the current
 +@code{recent-file-list} to a file, and @kbd{M-x recentf-edit-list}
 +edits it.
 +
 +  The @kbd{M-x ffap} command generalizes @code{find-file} with more
 +powerful heuristic defaults (@pxref{FFAP}), often based on the text at
 +point.  Partial Completion mode offers other features extending
 +@code{find-file}, which can be used with @code{ffap}.
 +@xref{Completion Options}.
 +
 +@findex image-mode
 +@findex image-toggle-display
 +@cindex images, viewing
 +  Visiting image files automatically selects Image mode.  This major
 +mode allows you to toggle between displaying the file as an image in
 +the Emacs buffer, and displaying its underlying text representation,
 +using the command @kbd{C-c C-c} (@code{image-toggle-display}).  This
 +works only when Emacs can display the specific image type.  If the
 +displayed image is wider or taller than the frame, the usual point
 +motion keys (@kbd{C-f}, @kbd{C-p}, and so forth) cause different parts
 +of the image to be displayed.
 +
 +@findex thumbs-mode
 +@findex mode, thumbs
 +  See also the Image-Dired package (@pxref{Image-Dired}) for viewing
 +images as thumbnails.
 +
 +@node Filesets
 +@section Filesets
 +@cindex filesets
 +
 +@findex filesets-init
 +  If you regularly edit a certain group of files, you can define them
 +as a @dfn{fileset}.  This lets you perform certain operations, such as
 +visiting, @code{query-replace}, and shell commands on all the files
 +at once.  To make use of filesets, you must first add the expression
 +@code{(filesets-init)} to your @file{.emacs} file (@pxref{Init File}).
 +This adds a @samp{Filesets} menu to the menu bar.
 +
 +@findex filesets-add-buffer
 +@findex filesets-remove-buffer
 +  The simplest way to define a fileset is by adding files to it one
 +at a time.  To add a file to fileset @var{name}, visit the file and
 +type @kbd{M-x filesets-add-buffer @kbd{RET} @var{name} @kbd{RET}}.  If
 +there is no fileset @var{name}, this creates a new one, which
 +initially creates only the current file.  The command @kbd{M-x
 +filesets-remove-buffer} removes the current file from a fileset.
 +
 +  You can also edit the list of filesets directly, with @kbd{M-x
 +filesets-edit} (or by choosing @samp{Edit Filesets} from the
 +@samp{Filesets} menu).  The editing is performed in a Customize buffer
 +(@pxref{Easy Customization}).  Filesets need not be a simple list of
 +files---you can also define filesets using regular expression matching
 +file names.  Some examples of these more complicated filesets are
 +shown in the Customize buffer.  Remember to select @samp{Save for
 +future sessions} if you want to use the same filesets in future Emacs
 +sessions.
 +
 +  You can use the command @kbd{M-x filesets-open} to visit all the
 +files in a fileset, and @kbd{M-x filesets-close} to close them.  Use
 +@kbd{M-x filesets-run-cmd} to run a shell command on all the files in
 +a fileset.  These commands are also available from the @samp{Filesets}
 +menu, where each existing fileset is represented by a submenu.
 +
 +   Emacs uses the concept of a fileset elsewhere @pxref{Version
 +Control} to describe sets of files to be treated as a group for
 +purposes of version-control operations.  Those filesets are 
 +unnamed and do not persist across Emacs essions.
 +
 +@ignore
 +   arch-tag: 768d32cb-e15a-4cc1-b7bf-62c00ee12250
 +@end ignore
index af1b877e6a482d2c991d2d1e42ce2c923c8f5299,0000000000000000000000000000000000000000..7b77046e2f35487a9923ee84b0cc69a25da3cef0
mode 100644,000000..100644
--- /dev/null
@@@ -1,1365 -1,0 +1,1364 @@@
- @samp{bar}, not all of them, then you cannot use an ordinary
- @code{replace-string}.  Instead, use @kbd{M-%} (@code{query-replace}).
 +@c This is part of the Emacs manual.
 +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001, 2002,
 +@c   2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 +@c See file emacs.texi for copying conditions.
 +@node Search, Fixit, Display, Top
 +@chapter Searching and Replacement
 +@cindex searching
 +@cindex finding strings within text
 +
 +  Like other editors, Emacs has commands for searching for occurrences of
 +a string.  The principal search command is unusual in that it is
 +@dfn{incremental}; it begins to search before you have finished typing the
 +search string.  There are also nonincremental search commands more like
 +those of other editors.
 +
 +  Besides the usual @code{replace-string} command that finds all
 +occurrences of one string and replaces them with another, Emacs has a
 +more flexible replacement command called @code{query-replace}, which
 +asks interactively which occurrences to replace.  There are also
 +commands to find and operate on all matches for a pattern.
 +
 +  You can also search multiple files under control of a tags
 +table (@pxref{Tags Search}) or through the Dired @kbd{A} command
 +(@pxref{Operating on Files}), or ask the @code{grep} program to do it
 +(@pxref{Grep Searching}).
 +
 +
 +@menu
 +* Incremental Search::                Search happens as you type the string.
 +* Nonincremental Search::     Specify entire string and then search.
 +* Word Search::                       Search for sequence of words.
 +* Regexp Search::             Search for match for a regexp.
 +* Regexps::                   Syntax of regular expressions.
 +* Regexp Backslash::            Regular expression constructs starting with `\'.
 +* Regexp Example::              A complex regular expression explained.
 +* Search Case::                       To ignore case while searching, or not.
 +* Replace::                   Search, and replace some or all matches.
 +* Other Repeating Search::    Operating on all matches for some regexp.
 +@end menu
 +
 +@node Incremental Search
 +@section Incremental Search
 +@cindex incremental search
 +@cindex isearch
 +
 +  An incremental search begins searching as soon as you type the first
 +character of the search string.  As you type in the search string, Emacs
 +shows you where the string (as you have typed it so far) would be
 +found.  When you have typed enough characters to identify the place you
 +want, you can stop.  Depending on what you plan to do next, you may or
 +may not need to terminate the search explicitly with @key{RET}.
 +
 +@table @kbd
 +@item C-s
 +Incremental search forward (@code{isearch-forward}).
 +@item C-r
 +Incremental search backward (@code{isearch-backward}).
 +@end table
 +
 +@menu
 +* Basic Isearch::       Basic incremental search commands.
 +* Repeat Isearch::      Searching for the same string again.
 +* Error in Isearch::    When your string is not found.
 +* Special Isearch::     Special input in incremental search.
 +* Non-ASCII Isearch::   How to search for non-ASCII characters.
 +* Isearch Yank::        Commands that grab text into the search string
 +                          or else edit the search string.
 +* Highlight Isearch::   Isearch highlights the other possible matches.
 +* Isearch Scroll::      Scrolling during an incremental search.
 +* Slow Isearch::        Incremental search features for slow terminals.
 +@end menu
 +
 +@node Basic Isearch
 +@subsection Basics of Incremental Search
 +
 +@kindex C-s
 +@findex isearch-forward
 +  @kbd{C-s} starts a forward incremental search.  It reads characters
 +from the keyboard, and moves point past the next occurrence of those
 +characters.  If you type @kbd{C-s} and then @kbd{F}, that puts the
 +cursor after the first @samp{F} (the first following the starting point, since
 +this is a forward search).  Then if you type an @kbd{O}, you will see
 +the cursor move to just after the first @samp{FO} (the @samp{F} in that
 +@samp{FO} may or may not be the first @samp{F}).  After another
 +@kbd{O}, the cursor moves to just after the first @samp{FOO} after the place
 +where you started the search.  At each step, the buffer text that
 +matches the search string is highlighted, if the terminal can do that;
 +the current search string is always displayed in the echo area.
 +
 +  If you make a mistake in typing the search string, you can cancel
 +characters with @key{DEL}.  Each @key{DEL} cancels the last character of
 +search string.  This does not happen until Emacs is ready to read another
 +input character; first it must either find, or fail to find, the character
 +you want to erase.  If you do not want to wait for this to happen, use
 +@kbd{C-g} as described below.
 +
 +  When you are satisfied with the place you have reached, you can type
 +@key{RET}, which stops searching, leaving the cursor where the search
 +brought it.  Also, any command not specially meaningful in searches
 +stops the searching and is then executed.  Thus, typing @kbd{C-a}
 +would exit the search and then move to the beginning of the line.
 +@key{RET} is necessary only if the next command you want to type is a
 +printing character, @key{DEL}, @key{RET}, or another character that is
 +special within searches (@kbd{C-q}, @kbd{C-w}, @kbd{C-r}, @kbd{C-s},
 +@kbd{C-y}, @kbd{M-y}, @kbd{M-r}, @kbd{M-c}, @kbd{M-e}, and some other
 +meta-characters).
 +
 +  When you exit the incremental search, it sets the mark where point
 +@emph{was} before the search.  That is convenient for moving back
 +there.  In Transient Mark mode, incremental search sets the mark
 +without activating it, and does so only if the mark is not already
 +active.
 +
 +@node Repeat Isearch
 +@subsection Repeating Incremental Search
 +
 +  Sometimes you search for @samp{FOO} and find one, but not the one you
 +expected to find.  There was a second @samp{FOO} that you forgot
 +about, before the one you were aiming for.  In this event, type
 +another @kbd{C-s} to move to the next occurrence of the search string.
 +You can repeat this any number of times.  If you overshoot, you can
 +cancel some @kbd{C-s} characters with @key{DEL}.
 +
 +  After you exit a search, you can search for the same string again by
 +typing just @kbd{C-s C-s}: the first @kbd{C-s} is the key that invokes
 +incremental search, and the second @kbd{C-s} means ``search again.''
 +
 +  If a search is failing and you ask to repeat it by typing another
 +@kbd{C-s}, it starts again from the beginning of the buffer.
 +Repeating a failing reverse search with @kbd{C-r} starts again from
 +the end.  This is called @dfn{wrapping around}, and @samp{Wrapped}
 +appears in the search prompt once this has happened.  If you keep on
 +going past the original starting point of the search, it changes to
 +@samp{Overwrapped}, which means that you are revisiting matches that
 +you have already seen.
 +
 +  To reuse earlier search strings, use the @dfn{search ring}.  The
 +commands @kbd{M-p} and @kbd{M-n} move through the ring to pick a search
 +string to reuse.  These commands leave the selected search ring element
 +in the minibuffer, where you can edit it.  To edit the current search
 +string in the minibuffer without replacing it with items from the
 +search ring, type @kbd{M-e}.  Type @kbd{C-s} or @kbd{C-r}
 +to terminate editing the string and search for it.
 +
 +  You can change to searching backwards with @kbd{C-r}.  For instance,
 +if you are searching forward but you realize you were looking for
 +something above the starting point, you can do this.  Repeated
 +@kbd{C-r} keeps looking for more occurrences backwards.  A @kbd{C-s}
 +starts going forwards again.  @kbd{C-r} in a search can be canceled
 +with @key{DEL}.
 +
 +@kindex C-r
 +@findex isearch-backward
 +  If you know initially that you want to search backwards, you can use
 +@kbd{C-r} instead of @kbd{C-s} to start the search, because @kbd{C-r}
 +as a key runs a command (@code{isearch-backward}) to search backward.
 +A backward search finds matches that end before the starting point,
 +just as a forward search finds matches that begin after it.
 +
 +@node Error in Isearch
 +@subsection Errors in Incremental Search
 +
 +  If your string is not found at all, the echo area says @samp{Failing
 +I-Search}.  The cursor is after the place where Emacs found as much of your
 +string as it could.  Thus, if you search for @samp{FOOT}, and there is no
 +@samp{FOOT}, you might see the cursor after the @samp{FOO} in @samp{FOOL}.
 +At this point there are several things you can do.  If your string was
 +mistyped, you can rub some of it out and correct it.  If you like the place
 +you have found, you can type @key{RET} or some other Emacs command to
 +remain there.  Or you can type @kbd{C-g}, which
 +removes from the search string the characters that could not be found (the
 +@samp{T} in @samp{FOOT}), leaving those that were found (the @samp{FOO} in
 +@samp{FOOT}).  A second @kbd{C-g} at that point cancels the search
 +entirely, returning point to where it was when the search started.
 +
 +@cindex quitting (in search)
 +  The @kbd{C-g} ``quit'' character does special things during searches;
 +just what it does depends on the status of the search.  If the search has
 +found what you specified and is waiting for input, @kbd{C-g} cancels the
 +entire search.  The cursor moves back to where you started the search.  If
 +@kbd{C-g} is typed when there are characters in the search string that have
 +not been found---because Emacs is still searching for them, or because it
 +has failed to find them---then the search string characters which have not
 +been found are discarded from the search string.  With them gone, the
 +search is now successful and waiting for more input, so a second @kbd{C-g}
 +will cancel the entire search.
 +
 +@node Special Isearch
 +@subsection Special Input for Incremental Search
 +
 +  An upper-case letter in the search string makes the search
 +case-sensitive.  If you delete the upper-case character from the search
 +string, it ceases to have this effect.  @xref{Search Case}.
 +
 +  To search for a newline, type @kbd{C-j}.  To search for another
 +control character, such as control-S or carriage return, you must quote
 +it by typing @kbd{C-q} first.  This function of @kbd{C-q} is analogous
 +to its use for insertion (@pxref{Inserting Text}): it causes the
 +following character to be treated the way any ``ordinary'' character is
 +treated in the same context.  You can also specify a character by its
 +octal code: enter @kbd{C-q} followed by a sequence of octal digits.
 +
 +  @kbd{M-%} typed in incremental search invokes @code{query-replace}
 +or @code{query-replace-regexp} (depending on search mode) with the
 +current search string used as the string to replace.  @xref{Query
 +Replace}.
 +
 +  Entering @key{RET} when the search string is empty launches
 +nonincremental search (@pxref{Nonincremental Search}).
 +
 +@vindex isearch-mode-map
 +  To customize the special characters that incremental search understands,
 +alter their bindings in the keymap @code{isearch-mode-map}.  For a list
 +of bindings, look at the documentation of @code{isearch-mode} with
 +@kbd{C-h f isearch-mode @key{RET}}.
 +
 +@node Non-ASCII Isearch
 +@subsection Isearch for Non-@acronym{ASCII} Characters
 +@cindex searching for non-@acronym{ASCII} characters
 +@cindex input method, during incremental search
 +
 +  To enter non-@acronym{ASCII} characters in an incremental search,
 +you can use @kbd{C-q} (see the previous section), but it is easier to
 +use an input method (@pxref{Input Methods}).  If an input method is
 +enabled in the current buffer when you start the search, you can use
 +it in the search string also.  Emacs indicates that by including the
 +input method mnemonic in its prompt, like this:
 +
 +@example
 +I-search [@var{im}]:
 +@end example
 +
 +@noindent
 +@findex isearch-toggle-input-method
 +@findex isearch-toggle-specified-input-method
 +where @var{im} is the mnemonic of the active input method.
 +
 +  You can toggle (enable or disable) the input method while you type
 +the search string with @kbd{C-\} (@code{isearch-toggle-input-method}).
 +You can turn on a certain (non-default) input method with @kbd{C-^}
 +(@code{isearch-toggle-specified-input-method}), which prompts for the
 +name of the input method.  The input method you enable during
 +incremental search remains enabled in the current buffer afterwards.
 +
 +@node Isearch Yank
 +@subsection Isearch Yanking
 +
 +  The characters @kbd{C-w} and @kbd{C-y} can be used in incremental
 +search to grab text from the buffer into the search string.  This
 +makes it convenient to search for another occurrence of text at point.
 +@kbd{C-w} copies the character or word after point as part of the
 +search string, advancing point over it.  (The decision, whether to
 +copy a character or a word, is heuristic.)  Another @kbd{C-s} to
 +repeat the search will then search for a string including that
 +character or word.
 +
 +  @kbd{C-y} is similar to @kbd{C-w} but copies all the rest of the
 +current line into the search string.  If point is already at the end
 +of a line, it grabs the entire next line.  Both @kbd{C-y} and
 +@kbd{C-w} convert the text they copy to lower case if the search is
 +currently not case-sensitive; this is so the search remains
 +case-insensitive.
 +
 +  @kbd{C-M-w} and @kbd{C-M-y} modify the search string by only one
 +character at a time: @kbd{C-M-w} deletes the last character from the
 +search string and @kbd{C-M-y} copies the character after point to the
 +end of the search string.  An alternative method to add the character
 +after point into the search string is to enter the minibuffer by
 +@kbd{M-e} and to type @kbd{C-f} at the end of the search string in the
 +minibuffer.
 +
 +  The character @kbd{M-y} copies text from the kill ring into the search
 +string.  It uses the same text that @kbd{C-y} as a command would yank.
 +@kbd{Mouse-2} in the echo area does the same.
 +@xref{Yanking}.
 +
 +@node Highlight Isearch
 +@subsection Lazy Search Highlighting
 +@cindex lazy search highlighting
 +@vindex isearch-lazy-highlight
 +
 +  When you pause for a little while during incremental search, it
 +highlights all other possible matches for the search string.  This
 +makes it easier to anticipate where you can get to by typing @kbd{C-s}
 +or @kbd{C-r} to repeat the search.  The short delay before highlighting
 +other matches helps indicate which match is the current one.
 +If you don't like this feature, you can turn it off by setting
 +@code{isearch-lazy-highlight} to @code{nil}.
 +
 +@cindex faces for highlighting search matches
 +  You can control how this highlighting looks by customizing the faces
 +@code{isearch} (used for the current match) and @code{lazy-highlight}
 +(for all the other matches).
 +
 +@node Isearch Scroll
 +@subsection Scrolling During Incremental Search
 +
 +  You can enable the use of vertical scrolling during incremental
 +search (without exiting the search) by setting the customizable
 +variable @code{isearch-allow-scroll} to a non-@code{nil} value.  This
 +applies to using the vertical scroll-bar and to certain keyboard
 +commands such as @kbd{@key{PRIOR}} (@code{scroll-down}),
 +@kbd{@key{NEXT}} (@code{scroll-up}) and @kbd{C-l} (@code{recenter}).
 +You must run these commands via their key sequences to stay in the
 +search---typing @kbd{M-x} will terminate the search.  You can give
 +prefix arguments to these commands in the usual way.
 +
 +  This feature won't let you scroll the current match out of visibility,
 +however.
 +
 +  The feature also affects some other commands, such as @kbd{C-x 2}
 +(@code{split-window-vertically}) and @kbd{C-x ^}
 +(@code{enlarge-window}) which don't exactly scroll but do affect where
 +the text appears on the screen.  In general, it applies to any command
 +whose name has a non-@code{nil} @code{isearch-scroll} property.  So you
 +can control which commands are affected by changing these properties.
 +
 +  For example, to make @kbd{C-h l} usable within an incremental search
 +in all future Emacs sessions, use @kbd{C-h c} to find what command it
 +runs.  (You type @kbd{C-h c C-h l}; it says @code{view-lossage}.)
 +Then you can put the following line in your @file{.emacs} file
 +(@pxref{Init File}):
 +
 +@example
 +(put 'view-lossage 'isearch-scroll t)
 +@end example
 +
 +@noindent
 +This feature can be applied to any command that doesn't permanently
 +change point, the buffer contents, the match data, the current buffer,
 +or the selected window and frame.  The command must not itself attempt
 +an incremental search.
 +
 +@node Slow Isearch
 +@subsection Slow Terminal Incremental Search
 +
 +  Incremental search on a slow terminal uses a modified style of display
 +that is designed to take less time.  Instead of redisplaying the buffer at
 +each place the search gets to, it creates a new single-line window and uses
 +that to display the line that the search has found.  The single-line window
 +comes into play as soon as point moves outside of the text that is already
 +on the screen.
 +
 +  When you terminate the search, the single-line window is removed.
 +Emacs then redisplays the window in which the search was done, to show
 +its new position of point.
 +
 +@vindex search-slow-speed
 +  The slow terminal style of display is used when the terminal baud rate is
 +less than or equal to the value of the variable @code{search-slow-speed},
 +initially 1200.  See also the discussion of the variable @code{baud-rate}
 +(@pxref{baud-rate,, Customization of Display}).
 +
 +@vindex search-slow-window-lines
 +  The number of lines to use in slow terminal search display is controlled
 +by the variable @code{search-slow-window-lines}.  Its normal value is 1.
 +
 +@node Nonincremental Search
 +@section Nonincremental Search
 +@cindex nonincremental search
 +
 +  Emacs also has conventional nonincremental search commands, which require
 +you to type the entire search string before searching begins.
 +
 +@table @kbd
 +@item C-s @key{RET} @var{string} @key{RET}
 +Search for @var{string}.
 +@item C-r @key{RET} @var{string} @key{RET}
 +Search backward for @var{string}.
 +@end table
 +
 +  To do a nonincremental search, first type @kbd{C-s @key{RET}}.  This
 +enters the minibuffer to read the search string; terminate the string
 +with @key{RET}, and then the search takes place.  If the string is not
 +found, the search command signals an error.
 +
 +  When you type @kbd{C-s @key{RET}}, the @kbd{C-s} invokes incremental
 +search as usual.  That command is specially programmed to invoke
 +nonincremental search, @code{search-forward}, if the string you
 +specify is empty.  (Such an empty argument would otherwise be
 +useless.)  But it does not call @code{search-forward} right away.  First
 +it checks the next input character to see if is @kbd{C-w},
 +which specifies a word search.
 +@ifnottex
 +@xref{Word Search}.
 +@end ifnottex
 +@kbd{C-r @key{RET}} does likewise, for a reverse incremental search.
 +
 +@findex search-forward
 +@findex search-backward
 +  Forward and backward nonincremental searches are implemented by the
 +commands @code{search-forward} and @code{search-backward}.  These
 +commands may be bound to keys in the usual manner.  The feature that you
 +can get to them via the incremental search commands exists for
 +historical reasons, and to avoid the need to find separate key sequences
 +for them.
 +
 +@node Word Search
 +@section Word Search
 +@cindex word search
 +
 +  Word search searches for a sequence of words without regard to how the
 +words are separated.  More precisely, you type a string of many words,
 +using single spaces to separate them, and the string can be found even
 +if there are multiple spaces, newlines, or other punctuation characters
 +between these words.
 +
 +  Word search is useful for editing a printed document made with a text
 +formatter.  If you edit while looking at the printed, formatted version,
 +you can't tell where the line breaks are in the source file.  With word
 +search, you can search without having to know them.
 +
 +@table @kbd
 +@item C-s @key{RET} C-w @var{words} @key{RET}
 +Search for @var{words}, ignoring details of punctuation.
 +@item C-r @key{RET} C-w @var{words} @key{RET}
 +Search backward for @var{words}, ignoring details of punctuation.
 +@end table
 +
 +  Word search as a special case of nonincremental search is invoked
 +with @kbd{C-s @key{RET} C-w}.  This is followed by the search string,
 +which must always be terminated with @key{RET}.  Being nonincremental,
 +this search does not start until the argument is terminated.  It works
 +by constructing a regular expression and searching for that; see
 +@ref{Regexp Search}.
 +
 +  Use @kbd{C-r @key{RET} C-w} to do backward word search.
 +
 +  You can also invoke word search with @kbd{C-s M-e C-w} or @kbd{C-r
 +M-e C-w} followed by the search string and terminated with @key{RET},
 +@kbd{C-s} or @kbd{C-r}.  This puts word search into incremental mode
 +where you can use all keys available for incremental search.  However,
 +when you type more words in incremental word search, it will fail
 +until you type complete words.
 +
 +@findex word-search-forward
 +@findex word-search-backward
 +  Forward and backward word searches are implemented by the commands
 +@code{word-search-forward} and @code{word-search-backward}.  These
 +commands may be bound to keys in the usual manner.  They are available
 +via the incremental search commands both for historical reasons and
 +to avoid the need to find separate key sequences for them.
 +
 +@node Regexp Search
 +@section Regular Expression Search
 +@cindex regular expression
 +@cindex regexp
 +
 +  A @dfn{regular expression} (@dfn{regexp}, for short) is a pattern
 +that denotes a class of alternative strings to match, possibly
 +infinitely many.  GNU Emacs provides both incremental and
 +nonincremental ways to search for a match for a regexp.  The syntax of
 +regular expressions is explained in the following section.
 +
 +@kindex C-M-s
 +@findex isearch-forward-regexp
 +@kindex C-M-r
 +@findex isearch-backward-regexp
 +  Incremental search for a regexp is done by typing @kbd{C-M-s}
 +(@code{isearch-forward-regexp}), by invoking @kbd{C-s} with a
 +prefix argument (whose value does not matter), or by typing @kbd{M-r}
 +within a forward incremental search.  This command reads a
 +search string incrementally just like @kbd{C-s}, but it treats the
 +search string as a regexp rather than looking for an exact match
 +against the text in the buffer.  Each time you add text to the search
 +string, you make the regexp longer, and the new regexp is searched
 +for.  To search backward for a regexp, use @kbd{C-M-r}
 +(@code{isearch-backward-regexp}), @kbd{C-r} with a prefix argument,
 +or @kbd{M-r} within a backward incremental search.
 +
 +  All of the control characters that do special things within an
 +ordinary incremental search have the same function in incremental regexp
 +search.  Typing @kbd{C-s} or @kbd{C-r} immediately after starting the
 +search retrieves the last incremental search regexp used; that is to
 +say, incremental regexp and non-regexp searches have independent
 +defaults.  They also have separate search rings that you can access with
 +@kbd{M-p} and @kbd{M-n}.
 +
 +@vindex search-whitespace-regexp
 +  If you type @key{SPC} in incremental regexp search, it matches any
 +sequence of whitespace characters, including newlines.  If you want to
 +match just a space, type @kbd{C-q @key{SPC}}.  You can control what a
 +bare space matches by setting the variable
 +@code{search-whitespace-regexp} to the desired regexp.
 +
 +  In some cases, adding characters to the regexp in an incremental regexp
 +search can make the cursor move back and start again.  For example, if
 +you have searched for @samp{foo} and you add @samp{\|bar}, the cursor
 +backs up in case the first @samp{bar} precedes the first @samp{foo}.
 +
 +  Forward and backward regexp search are not symmetrical, because
 +regexp matching in Emacs always operates forward, starting with the
 +beginning of the regexp.  Thus, forward regexp search scans forward,
 +trying a forward match at each possible starting position.  Backward
 +regexp search scans backward, trying a forward match at each possible
 +starting position.  These search methods are not mirror images.
 +
 +@findex re-search-forward
 +@findex re-search-backward
 +  Nonincremental search for a regexp is done by the functions
 +@code{re-search-forward} and @code{re-search-backward}.  You can invoke
 +these with @kbd{M-x}, or bind them to keys, or invoke them by way of
 +incremental regexp search with @kbd{C-M-s @key{RET}} and @kbd{C-M-r
 +@key{RET}}.
 +
 +  If you use the incremental regexp search commands with a prefix
 +argument, they perform ordinary string search, like
 +@code{isearch-forward} and @code{isearch-backward}.  @xref{Incremental
 +Search}.
 +
 +@node Regexps
 +@section Syntax of Regular Expressions
 +@cindex syntax of regexps
 +
 +  This manual describes regular expression features that users
 +typically want to use.  There are additional features that are
 +mainly used in Lisp programs; see @ref{Regular Expressions,,,
 +elisp, The Emacs Lisp Reference Manual}.
 +
 +  Regular expressions have a syntax in which a few characters are
 +special constructs and the rest are @dfn{ordinary}.  An ordinary
 +character is a simple regular expression which matches that same
 +character and nothing else.  The special characters are @samp{$},
 +@samp{^}, @samp{.}, @samp{*}, @samp{+}, @samp{?}, @samp{[}, and
 +@samp{\}.  The character @samp{]} is special if it ends a character
 +alternative (see later).  The character @samp{-} is special inside a
 +character alternative.  Any other character appearing in a regular
 +expression is ordinary, unless a @samp{\} precedes it.  (When you use
 +regular expressions in a Lisp program, each @samp{\} must be doubled,
 +see the example near the end of this section.)
 +
 +  For example, @samp{f} is not a special character, so it is ordinary, and
 +therefore @samp{f} is a regular expression that matches the string
 +@samp{f} and no other string.  (It does @emph{not} match the string
 +@samp{ff}.)  Likewise, @samp{o} is a regular expression that matches
 +only @samp{o}.  (When case distinctions are being ignored, these regexps
 +also match @samp{F} and @samp{O}, but we consider this a generalization
 +of ``the same string,'' rather than an exception.)
 +
 +  Any two regular expressions @var{a} and @var{b} can be concatenated.  The
 +result is a regular expression which matches a string if @var{a} matches
 +some amount of the beginning of that string and @var{b} matches the rest of
 +the string.@refill
 +
 +  As a simple example, we can concatenate the regular expressions @samp{f}
 +and @samp{o} to get the regular expression @samp{fo}, which matches only
 +the string @samp{fo}.  Still trivial.  To do something nontrivial, you
 +need to use one of the special characters.  Here is a list of them.
 +
 +@table @asis
 +@item @kbd{.}@: @r{(Period)}
 +is a special character that matches any single character except a newline.
 +Using concatenation, we can make regular expressions like @samp{a.b}, which
 +matches any three-character string that begins with @samp{a} and ends with
 +@samp{b}.@refill
 +
 +@item @kbd{*}
 +is not a construct by itself; it is a postfix operator that means to
 +match the preceding regular expression repetitively as many times as
 +possible.  Thus, @samp{o*} matches any number of @samp{o}s (including no
 +@samp{o}s).
 +
 +@samp{*} always applies to the @emph{smallest} possible preceding
 +expression.  Thus, @samp{fo*} has a repeating @samp{o}, not a repeating
 +@samp{fo}.  It matches @samp{f}, @samp{fo}, @samp{foo}, and so on.
 +
 +The matcher processes a @samp{*} construct by matching, immediately,
 +as many repetitions as can be found.  Then it continues with the rest
 +of the pattern.  If that fails, backtracking occurs, discarding some
 +of the matches of the @samp{*}-modified construct in case that makes
 +it possible to match the rest of the pattern.  For example, in matching
 +@samp{ca*ar} against the string @samp{caaar}, the @samp{a*} first
 +tries to match all three @samp{a}s; but the rest of the pattern is
 +@samp{ar} and there is only @samp{r} left to match, so this try fails.
 +The next alternative is for @samp{a*} to match only two @samp{a}s.
 +With this choice, the rest of the regexp matches successfully.@refill
 +
 +@item @kbd{+}
 +is a postfix operator, similar to @samp{*} except that it must match
 +the preceding expression at least once.  So, for example, @samp{ca+r}
 +matches the strings @samp{car} and @samp{caaaar} but not the string
 +@samp{cr}, whereas @samp{ca*r} matches all three strings.
 +
 +@item @kbd{?}
 +is a postfix operator, similar to @samp{*} except that it can match the
 +preceding expression either once or not at all.  For example,
 +@samp{ca?r} matches @samp{car} or @samp{cr}; nothing else.
 +
 +@item @kbd{*?}, @kbd{+?}, @kbd{??}
 +@cindex non-greedy regexp matching
 +are non-greedy variants of the operators above.  The normal operators
 +@samp{*}, @samp{+}, @samp{?} are @dfn{greedy} in that they match as
 +much as they can, as long as the overall regexp can still match.  With
 +a following @samp{?}, they are non-greedy: they will match as little
 +as possible.
 +
 +Thus, both @samp{ab*} and @samp{ab*?} can match the string @samp{a}
 +and the string @samp{abbbb}; but if you try to match them both against
 +the text @samp{abbb}, @samp{ab*} will match it all (the longest valid
 +match), while @samp{ab*?}  will match just @samp{a} (the shortest
 +valid match).
 +
 +Non-greedy operators match the shortest possible string starting at a
 +given starting point; in a forward search, though, the earliest
 +possible starting point for match is always the one chosen.  Thus, if
 +you search for @samp{a.*?$} against the text @samp{abbab} followed by
 +a newline, it matches the whole string.  Since it @emph{can} match
 +starting at the first @samp{a}, it does.
 +
 +@item @kbd{\@{@var{n}\@}}
 +is a postfix operator that specifies repetition @var{n} times---that
 +is, the preceding regular expression must match exactly @var{n} times
 +in a row.  For example, @samp{x\@{4\@}} matches the string @samp{xxxx}
 +and nothing else.
 +
 +@item @kbd{\@{@var{n},@var{m}\@}}
 +is a postfix operator that specifies repetition between @var{n} and
 +@var{m} times---that is, the preceding regular expression must match
 +at least @var{n} times, but no more than @var{m} times.  If @var{m} is
 +omitted, then there is no upper limit, but the preceding regular
 +expression must match at least @var{n} times.@* @samp{\@{0,1\@}} is
 +equivalent to @samp{?}. @* @samp{\@{0,\@}} is equivalent to
 +@samp{*}. @* @samp{\@{1,\@}} is equivalent to @samp{+}.
 +
 +@item @kbd{[ @dots{} ]}
 +is a @dfn{character set}, which begins with @samp{[} and is terminated
 +by @samp{]}.  In the simplest case, the characters between the two
 +brackets are what this set can match.
 +
 +Thus, @samp{[ad]} matches either one @samp{a} or one @samp{d}, and
 +@samp{[ad]*} matches any string composed of just @samp{a}s and @samp{d}s
 +(including the empty string), from which it follows that @samp{c[ad]*r}
 +matches @samp{cr}, @samp{car}, @samp{cdr}, @samp{caddaar}, etc.
 +
 +You can also include character ranges in a character set, by writing the
 +starting and ending characters with a @samp{-} between them.  Thus,
 +@samp{[a-z]} matches any lower-case @acronym{ASCII} letter.  Ranges may be
 +intermixed freely with individual characters, as in @samp{[a-z$%.]},
 +which matches any lower-case @acronym{ASCII} letter or @samp{$}, @samp{%} or
 +period.
 +
 +Note that the usual regexp special characters are not special inside a
 +character set.  A completely different set of special characters exists
 +inside character sets: @samp{]}, @samp{-} and @samp{^}.
 +
 +To include a @samp{]} in a character set, you must make it the first
 +character.  For example, @samp{[]a]} matches @samp{]} or @samp{a}.  To
 +include a @samp{-}, write @samp{-} as the first or last character of the
 +set, or put it after a range.  Thus, @samp{[]-]} matches both @samp{]}
 +and @samp{-}.
 +
 +To include @samp{^} in a set, put it anywhere but at the beginning of
 +the set.  (At the beginning, it complements the set---see below.)
 +
 +When you use a range in case-insensitive search, you should write both
 +ends of the range in upper case, or both in lower case, or both should
 +be non-letters.  The behavior of a mixed-case range such as @samp{A-z}
 +is somewhat ill-defined, and it may change in future Emacs versions.
 +
 +@item @kbd{[^ @dots{} ]}
 +@samp{[^} begins a @dfn{complemented character set}, which matches any
 +character except the ones specified.  Thus, @samp{[^a-z0-9A-Z]} matches
 +all characters @emph{except} @acronym{ASCII} letters and digits.
 +
 +@samp{^} is not special in a character set unless it is the first
 +character.  The character following the @samp{^} is treated as if it
 +were first (in other words, @samp{-} and @samp{]} are not special there).
 +
 +A complemented character set can match a newline, unless newline is
 +mentioned as one of the characters not to match.  This is in contrast to
 +the handling of regexps in programs such as @code{grep}.
 +
 +@item @kbd{^}
 +is a special character that matches the empty string, but only at the
 +beginning of a line in the text being matched.  Otherwise it fails to
 +match anything.  Thus, @samp{^foo} matches a @samp{foo} that occurs at
 +the beginning of a line.
 +
 +For historical compatibility reasons, @samp{^} can be used with this
 +meaning only at the beginning of the regular expression, or after
 +@samp{\(} or @samp{\|}.
 +
 +@item @kbd{$}
 +is similar to @samp{^} but matches only at the end of a line.  Thus,
 +@samp{x+$} matches a string of one @samp{x} or more at the end of a line.
 +
 +For historical compatibility reasons, @samp{$} can be used with this
 +meaning only at the end of the regular expression, or before @samp{\)}
 +or @samp{\|}.
 +
 +@item @kbd{\}
 +has two functions: it quotes the special characters (including
 +@samp{\}), and it introduces additional special constructs.
 +
 +Because @samp{\} quotes special characters, @samp{\$} is a regular
 +expression that matches only @samp{$}, and @samp{\[} is a regular
 +expression that matches only @samp{[}, and so on.
 +
 +See the following section for the special constructs that begin
 +with @samp{\}.
 +@end table
 +
 +  Note: for historical compatibility, special characters are treated as
 +ordinary ones if they are in contexts where their special meanings make no
 +sense.  For example, @samp{*foo} treats @samp{*} as ordinary since there is
 +no preceding expression on which the @samp{*} can act.  It is poor practice
 +to depend on this behavior; it is better to quote the special character anyway,
 +regardless of where it appears.
 +
 +As a @samp{\} is not special inside a character alternative, it can
 +never remove the special meaning of @samp{-} or @samp{]}.  So you
 +should not quote these characters when they have no special meaning
 +either.  This would not clarify anything, since backslashes can
 +legitimately precede these characters where they @emph{have} special
 +meaning, as in @samp{[^\]} (@code{"[^\\]"} for Lisp string syntax),
 +which matches any single character except a backslash.
 +
 +@node Regexp Backslash
 +@section Backslash in Regular Expressions
 +
 +  For the most part, @samp{\} followed by any character matches only
 +that character.  However, there are several exceptions: two-character
 +sequences starting with @samp{\} that have special meanings.  The
 +second character in the sequence is always an ordinary character when
 +used on its own.  Here is a table of @samp{\} constructs.
 +
 +@table @kbd
 +@item \|
 +specifies an alternative.  Two regular expressions @var{a} and @var{b}
 +with @samp{\|} in between form an expression that matches some text if
 +either @var{a} matches it or @var{b} matches it.  It works by trying to
 +match @var{a}, and if that fails, by trying to match @var{b}.
 +
 +Thus, @samp{foo\|bar} matches either @samp{foo} or @samp{bar}
 +but no other string.@refill
 +
 +@samp{\|} applies to the largest possible surrounding expressions.  Only a
 +surrounding @samp{\( @dots{} \)} grouping can limit the grouping power of
 +@samp{\|}.@refill
 +
 +Full backtracking capability exists to handle multiple uses of @samp{\|}.
 +
 +@item \( @dots{} \)
 +is a grouping construct that serves three purposes:
 +
 +@enumerate
 +@item
 +To enclose a set of @samp{\|} alternatives for other operations.
 +Thus, @samp{\(foo\|bar\)x} matches either @samp{foox} or @samp{barx}.
 +
 +@item
 +To enclose a complicated expression for the postfix operators @samp{*},
 +@samp{+} and @samp{?} to operate on.  Thus, @samp{ba\(na\)*} matches
 +@samp{bananana}, etc., with any (zero or more) number of @samp{na}
 +strings.@refill
 +
 +@item
 +To record a matched substring for future reference.
 +@end enumerate
 +
 +This last application is not a consequence of the idea of a
 +parenthetical grouping; it is a separate feature that is assigned as a
 +second meaning to the same @samp{\( @dots{} \)} construct.  In practice
 +there is usually no conflict between the two meanings; when there is
 +a conflict, you can use a ``shy'' group.
 +
 +@item \(?: @dots{} \)
 +@cindex shy group, in regexp
 +specifies a ``shy'' group that does not record the matched substring;
 +you can't refer back to it with @samp{\@var{d}}.  This is useful
 +in mechanically combining regular expressions, so that you
 +can add groups for syntactic purposes without interfering with
 +the numbering of the groups that are meant to be referred to.
 +
 +@item \@var{d}
 +@cindex back reference, in regexp
 +matches the same text that matched the @var{d}th occurrence of a
 +@samp{\( @dots{} \)} construct.  This is called a @dfn{back
 +reference}.
 +
 +After the end of a @samp{\( @dots{} \)} construct, the matcher remembers
 +the beginning and end of the text matched by that construct.  Then,
 +later on in the regular expression, you can use @samp{\} followed by the
 +digit @var{d} to mean ``match the same text matched the @var{d}th time
 +by the @samp{\( @dots{} \)} construct.''
 +
 +The strings matching the first nine @samp{\( @dots{} \)} constructs
 +appearing in a regular expression are assigned numbers 1 through 9 in
 +the order that the open-parentheses appear in the regular expression.
 +So you can use @samp{\1} through @samp{\9} to refer to the text matched
 +by the corresponding @samp{\( @dots{} \)} constructs.
 +
 +For example, @samp{\(.*\)\1} matches any newline-free string that is
 +composed of two identical halves.  The @samp{\(.*\)} matches the first
 +half, which may be anything, but the @samp{\1} that follows must match
 +the same exact text.
 +
 +If a particular @samp{\( @dots{} \)} construct matches more than once
 +(which can easily happen if it is followed by @samp{*}), only the last
 +match is recorded.
 +
 +@item \`
 +matches the empty string, but only at the beginning of the string or
 +buffer (or its accessible portion) being matched against.
 +
 +@item \'
 +matches the empty string, but only at the end of the string or buffer
 +(or its accessible portion) being matched against.
 +
 +@item \=
 +matches the empty string, but only at point.
 +
 +@item \b
 +matches the empty string, but only at the beginning or
 +end of a word.  Thus, @samp{\bfoo\b} matches any occurrence of
 +@samp{foo} as a separate word.  @samp{\bballs?\b} matches
 +@samp{ball} or @samp{balls} as a separate word.@refill
 +
 +@samp{\b} matches at the beginning or end of the buffer
 +regardless of what text appears next to it.
 +
 +@item \B
 +matches the empty string, but @emph{not} at the beginning or
 +end of a word.
 +
 +@item \<
 +matches the empty string, but only at the beginning of a word.
 +@samp{\<} matches at the beginning of the buffer only if a
 +word-constituent character follows.
 +
 +@item \>
 +matches the empty string, but only at the end of a word.  @samp{\>}
 +matches at the end of the buffer only if the contents end with a
 +word-constituent character.
 +
 +@item \w
 +matches any word-constituent character.  The syntax table
 +determines which characters these are.  @xref{Syntax}.
 +
 +@item \W
 +matches any character that is not a word-constituent.
 +
 +@item \_<
 +matches the empty string, but only at the beginning of a symbol.
 +A symbol is a sequence of one or more symbol-constituent characters.
 +A symbol-constituent character is a character whose syntax is either
 +@samp{w} or @samp{_}.  @samp{\_<} matches at the beginning of the
 +buffer only if a symbol-constituent character follows.
 +
 +@item \_>
 +matches the empty string, but only at the end of a symbol.  @samp{\_>}
 +matches at the end of the buffer only if the contents end with a
 +symbol-constituent character.
 +
 +@item \s@var{c}
 +matches any character whose syntax is @var{c}.  Here @var{c} is a
 +character that designates a particular syntax class: thus, @samp{w}
 +for word constituent, @samp{-} or @samp{ } for whitespace, @samp{.}
 +for ordinary punctuation, etc.  @xref{Syntax}.
 +
 +@item \S@var{c}
 +matches any character whose syntax is not @var{c}.
 +
 +@cindex categories of characters
 +@cindex characters which belong to a specific language
 +@findex describe-categories
 +@item \c@var{c}
 +matches any character that belongs to the category @var{c}.  For
 +example, @samp{\cc} matches Chinese characters, @samp{\cg} matches
 +Greek characters, etc.  For the description of the known categories,
 +type @kbd{M-x describe-categories @key{RET}}.
 +
 +@item \C@var{c}
 +matches any character that does @emph{not} belong to category
 +@var{c}.
 +@end table
 +
 +  The constructs that pertain to words and syntax are controlled by the
 +setting of the syntax table (@pxref{Syntax}).
 +
 +@node Regexp Example
 +@section Regular Expression Example
 +
 +  Here is a complicated regexp---a simplified version of the regexp
 +that Emacs uses, by default, to recognize the end of a sentence
 +together with any whitespace that follows.  We show its Lisp syntax to
 +distinguish the spaces from the tab characters.  In Lisp syntax, the
 +string constant begins and ends with a double-quote.  @samp{\"} stands
 +for a double-quote as part of the regexp, @samp{\\} for a backslash as
 +part of the regexp, @samp{\t} for a tab, and @samp{\n} for a newline.
 +
 +@example
 +"[.?!][]\"')]*\\($\\| $\\|\t\\|  \\)[ \t\n]*"
 +@end example
 +
 +@noindent
 +This contains four parts in succession: a character set matching
 +period, @samp{?}, or @samp{!}; a character set matching
 +close-brackets, quotes, or parentheses, repeated zero or more times; a
 +set of alternatives within backslash-parentheses that matches either
 +end-of-line, a space at the end of a line, a tab, or two spaces; and a
 +character set matching whitespace characters, repeated any number of
 +times.
 +
 +  To enter the same regexp in incremental search, you would type
 +@key{TAB} to enter a tab, and @kbd{C-j} to enter a newline.  You would
 +also type single backslashes as themselves, instead of doubling them
 +for Lisp syntax.  In commands that use ordinary minibuffer input to
 +read a regexp, you would quote the @kbd{C-j} by preceding it with a
 +@kbd{C-q} to prevent @kbd{C-j} from exiting the minibuffer.
 +
 +@node Search Case
 +@section Searching and Case
 +
 +  Incremental searches in Emacs normally ignore the case of the text
 +they are searching through, if you specify the text in lower case.
 +Thus, if you specify searching for @samp{foo}, then @samp{Foo} and
 +@samp{foo} are also considered a match.  Regexps, and in particular
 +character sets, are included: @samp{[ab]} would match @samp{a} or
 +@samp{A} or @samp{b} or @samp{B}.@refill
 +
 +  An upper-case letter anywhere in the incremental search string makes
 +the search case-sensitive.  Thus, searching for @samp{Foo} does not find
 +@samp{foo} or @samp{FOO}.  This applies to regular expression search as
 +well as to string search.  The effect ceases if you delete the
 +upper-case letter from the search string.
 +
 +  Typing @kbd{M-c} within an incremental search toggles the case
 +sensitivity of that search.  The effect does not extend beyond the
 +current incremental search to the next one, but it does override the
 +effect of including an upper-case letter in the current search.
 +
 +@vindex case-fold-search
 +@vindex default-case-fold-search
 +  If you set the variable @code{case-fold-search} to @code{nil}, then
 +all letters must match exactly, including case.  This is a per-buffer
 +variable; altering the variable affects only the current buffer, but
 +there is a default value in @code{default-case-fold-search} that you
 +can also set.  @xref{Locals}.  This variable applies to nonincremental
 +searches also, including those performed by the replace commands
 +(@pxref{Replace}) and the minibuffer history matching commands
 +(@pxref{Minibuffer History}).
 +
 +  Several related variables control case-sensitivity of searching and
 +matching for specific commands or activities.  For instance,
 +@code{tags-case-fold-search} controls case sensitivity for
 +@code{find-tag}.  To find these variables, do @kbd{M-x
 +apropos-variable @key{RET} case-fold-search @key{RET}}.
 +
 +@node Replace
 +@section Replacement Commands
 +@cindex replacement
 +@cindex search-and-replace commands
 +@cindex string substitution
 +@cindex global substitution
 +
 +  Global search-and-replace operations are not needed often in Emacs,
 +but they are available.  In addition to the simple @kbd{M-x
 +replace-string} command which replaces all occurrences,
 +there is @kbd{M-%} (@code{query-replace}), which presents each occurrence
 +of the pattern and asks you whether to replace it.
 +
 +  The replace commands normally operate on the text from point to the
 +end of the buffer; however, in Transient Mark mode (@pxref{Transient
 +Mark}), when the mark is active, they operate on the region.  The
 +basic replace commands replace one string (or regexp) with one
 +replacement string.  It is possible to perform several replacements in
 +parallel using the command @code{expand-region-abbrevs}
 +(@pxref{Expanding Abbrevs}).
 +
 +@menu
 +* Unconditional Replace::     Replacing all matches for a string.
 +* Regexp Replace::            Replacing all matches for a regexp.
 +* Replacement and Case::      How replacements preserve case of letters.
 +* Query Replace::             How to use querying.
 +@end menu
 +
 +@node Unconditional Replace, Regexp Replace, Replace, Replace
 +@subsection Unconditional Replacement
 +@findex replace-string
 +
 +@table @kbd
 +@item M-x replace-string @key{RET} @var{string} @key{RET} @var{newstring} @key{RET}
 +Replace every occurrence of @var{string} with @var{newstring}.
 +@end table
 +
 +  To replace every instance of @samp{foo} after point with @samp{bar},
 +use the command @kbd{M-x replace-string} with the two arguments
 +@samp{foo} and @samp{bar}.  Replacement happens only in the text after
 +point, so if you want to cover the whole buffer you must go to the
 +beginning first.  All occurrences up to the end of the buffer are
 +replaced; to limit replacement to part of the buffer, narrow to that
 +part of the buffer before doing the replacement (@pxref{Narrowing}).
 +In Transient Mark mode, when the region is active, replacement is
 +limited to the region (@pxref{Transient Mark}).
 +
 +  When @code{replace-string} exits, it leaves point at the last
 +occurrence replaced.  It sets the mark to the prior position of point
 +(where the @code{replace-string} command was issued); use @kbd{C-u
 +C-@key{SPC}} to move back there.
 +
 +  A numeric argument restricts replacement to matches that are surrounded
 +by word boundaries.  The argument's value doesn't matter.
 +
 +  @xref{Replacement and Case}, for details about case-sensitivity in
 +replace commands.
 +
 +  What if you want to exchange @samp{x} and @samp{y}: replace every @samp{x} with a @samp{y} and vice versa?  You can do it this way:
 +
 +@example
 +M-x replace-string @key{RET} x @key{RET} @@TEMP@@ @key{RET}
 +M-< M-x replace-string @key{RET} y @key{RET} x @key{RET}
 +M-< M-x replace-string @key{RET} @@TEMP@@ @key{RET} y @key{RET}
 +@end example
 +
 +@noindent
 +This works provided the string @samp{@@TEMP@@} does not appear
 +in your text.
 +
 +@node Regexp Replace, Replacement and Case, Unconditional Replace, Replace
 +@subsection Regexp Replacement
 +@findex replace-regexp
 +
 +  The @kbd{M-x replace-string} command replaces exact matches for a
 +single string.  The similar command @kbd{M-x replace-regexp} replaces
 +any match for a specified pattern.
 +
 +@table @kbd
 +@item M-x replace-regexp @key{RET} @var{regexp} @key{RET} @var{newstring} @key{RET}
 +Replace every match for @var{regexp} with @var{newstring}.
 +@end table
 +
 +@cindex back reference, in regexp replacement
 +  In @code{replace-regexp}, the @var{newstring} need not be constant:
 +it can refer to all or part of what is matched by the @var{regexp}.
 +@samp{\&} in @var{newstring} stands for the entire match being
 +replaced.  @samp{\@var{d}} in @var{newstring}, where @var{d} is a
 +digit, stands for whatever matched the @var{d}th parenthesized
 +grouping in @var{regexp}.  (This is called a ``back reference.'')
 +@samp{\#} refers to the count of replacements already made in this
 +command, as a decimal number.  In the first replacement, @samp{\#}
 +stands for @samp{0}; in the second, for @samp{1}; and so on.  For
 +example,
 +
 +@example
 +M-x replace-regexp @key{RET} c[ad]+r @key{RET} \&-safe @key{RET}
 +@end example
 +
 +@noindent
 +replaces (for example) @samp{cadr} with @samp{cadr-safe} and @samp{cddr}
 +with @samp{cddr-safe}.
 +
 +@example
 +M-x replace-regexp @key{RET} \(c[ad]+r\)-safe @key{RET} \1 @key{RET}
 +@end example
 +
 +@noindent
 +performs the inverse transformation.  To include a @samp{\} in the
 +text to replace with, you must enter @samp{\\}.
 +
 +  If you want to enter part of the replacement string by hand each
 +time, use @samp{\?} in the replacement string.  Each replacement will
 +ask you to edit the replacement string in the minibuffer, putting
 +point where the @samp{\?} was.
 +
 +  The remainder of this subsection is intended for specialized tasks
 +and requires knowledge of Lisp.  Most readers can skip it.
 +
 +  You can use Lisp expressions to calculate parts of the
 +replacement string.  To do this, write @samp{\,} followed by the
 +expression in the replacement string.  Each replacement calculates the
 +value of the expression and converts it to text without quoting (if
 +it's a string, this means using the string's contents), and uses it in
 +the replacement string in place of the expression itself.  If the
 +expression is a symbol, one space in the replacement string after the
 +symbol name goes with the symbol name, so the value replaces them
 +both.
 +
 +  Inside such an expression, you can use some special sequences.
 +@samp{\&} and @samp{\@var{n}} refer here, as usual, to the entire
 +match as a string, and to a submatch as a string.  @var{n} may be
 +multiple digits, and the value of @samp{\@var{n}} is @code{nil} if
 +subexpression @var{n} did not match.  You can also use @samp{\#&} and
 +@samp{\#@var{n}} to refer to those matches as numbers (this is valid
 +when the match or submatch has the form of a numeral).  @samp{\#} here
 +too stands for the number of already-completed replacements.
 +
 +  Repeating our example to exchange @samp{x} and @samp{y}, we can thus
 +do it also this way:
 +
 +@example
 +M-x replace-regexp @key{RET} \(x\)\|y @key{RET}
 +\,(if \1 "y" "x") @key{RET}
 +@end example
 +
 +  For computing replacement strings for @samp{\,}, the @code{format}
 +function is often useful (@pxref{Formatting Strings,,, elisp, The Emacs
 +Lisp Reference Manual}).  For example, to add consecutively numbered
 +strings like @samp{ABC00042} to columns 73 @w{to 80} (unless they are
 +already occupied), you can use
 +
 +@example
 +M-x replace-regexp @key{RET} ^.\@{0,72\@}$ @key{RET}
 +\,(format "%-72sABC%05d" \& \#) @key{RET}
 +@end example
 +
 +@node Replacement and Case, Query Replace, Regexp Replace, Replace
 +@subsection Replace Commands and Case
 +
 +  If the first argument of a replace command is all lower case, the
 +command ignores case while searching for occurrences to
 +replace---provided @code{case-fold-search} is non-@code{nil}.  If
 +@code{case-fold-search} is set to @code{nil}, case is always significant
 +in all searches.
 +
 +@vindex case-replace
 +  In addition, when the @var{newstring} argument is all or partly lower
 +case, replacement commands try to preserve the case pattern of each
 +occurrence.  Thus, the command
 +
 +@example
 +M-x replace-string @key{RET} foo @key{RET} bar @key{RET}
 +@end example
 +
 +@noindent
 +replaces a lower case @samp{foo} with a lower case @samp{bar}, an
 +all-caps @samp{FOO} with @samp{BAR}, and a capitalized @samp{Foo} with
 +@samp{Bar}.  (These three alternatives---lower case, all caps, and
 +capitalized, are the only ones that @code{replace-string} can
 +distinguish.)
 +
 +  If upper-case letters are used in the replacement string, they remain
 +upper case every time that text is inserted.  If upper-case letters are
 +used in the first argument, the second argument is always substituted
 +exactly as given, with no case conversion.  Likewise, if either
 +@code{case-replace} or @code{case-fold-search} is set to @code{nil},
 +replacement is done without case conversion.
 +
 +@node Query Replace,, Replacement and Case, Replace
 +@subsection Query Replace
 +@cindex query replace
 +
 +@table @kbd
 +@item M-% @var{string} @key{RET} @var{newstring} @key{RET}
 +@itemx M-x query-replace @key{RET} @var{string} @key{RET} @var{newstring} @key{RET}
 +Replace some occurrences of @var{string} with @var{newstring}.
 +@item C-M-% @var{regexp} @key{RET} @var{newstring} @key{RET}
 +@itemx M-x query-replace-regexp @key{RET} @var{regexp} @key{RET} @var{newstring} @key{RET}
 +Replace some matches for @var{regexp} with @var{newstring}.
 +@end table
 +
 +@kindex M-%
 +@findex query-replace
 +  If you want to change only some of the occurrences of @samp{foo} to
- @code{query-replace} works just like @code{replace-string}.  It
- preserves case, like @code{replace-string}, provided
- @code{case-replace} is non-@code{nil}, as it normally is
++@samp{bar}, not all of them, use @kbd{M-%} (@code{query-replace}).
 +This command finds occurrences of @samp{foo} one by one, displays each
 +occurrence and asks you whether to replace it.  Aside from querying,
++@code{query-replace} works just like @code{replace-string}
++(@pxref{Unconditional Replace}).  In particular, it preserves case
++provided @code{case-replace} is non-@code{nil}, as it normally is
 +(@pxref{Replacement and Case}).  A numeric argument means consider
 +only occurrences that are bounded by word-delimiter characters.
 +
 +@kindex C-M-%
 +@findex query-replace-regexp
 +  @kbd{C-M-%} performs regexp search and replace (@code{query-replace-regexp}).
 +It works like @code{replace-regexp} except that it queries
 +like @code{query-replace}.
 +
 +@cindex faces for highlighting query replace
 +  These commands highlight the current match using the face
 +@code{query-replace}.  They highlight other matches using
 +@code{lazy-highlight} just like incremental search (@pxref{Incremental
 +Search}).  By default, @code{query-replace-regexp} will show
 +substituted replacement string for the current match in the
 +minibuffer.  If you want to keep special sequences @samp{\&} and
 +@samp{\@var{n}} unexpanded, customize
 +@code{query-replace-show-replacement} variable.
 +
 +  The characters you can type when you are shown a match for the string
 +or regexp are:
 +
 +@ignore @c Not worth it.
 +@kindex SPC @r{(query-replace)}
 +@kindex DEL @r{(query-replace)}
 +@kindex , @r{(query-replace)}
 +@kindex RET @r{(query-replace)}
 +@kindex . @r{(query-replace)}
 +@kindex ! @r{(query-replace)}
 +@kindex ^ @r{(query-replace)}
 +@kindex C-r @r{(query-replace)}
 +@kindex C-w @r{(query-replace)}
 +@kindex C-l @r{(query-replace)}
 +@end ignore
 +
 +@c WideCommands
 +@table @kbd
 +@item @key{SPC}
 +to replace the occurrence with @var{newstring}.
 +
 +@item @key{DEL}
 +to skip to the next occurrence without replacing this one.
 +
 +@item , @r{(Comma)}
 +to replace this occurrence and display the result.  You are then asked
 +for another input character to say what to do next.  Since the
 +replacement has already been made, @key{DEL} and @key{SPC} are
 +equivalent in this situation; both move to the next occurrence.
 +
 +You can type @kbd{C-r} at this point (see below) to alter the replaced
 +text.  You can also type @kbd{C-x u} to undo the replacement; this exits
 +the @code{query-replace}, so if you want to do further replacement you
 +must use @kbd{C-x @key{ESC} @key{ESC} @key{RET}} to restart
 +(@pxref{Repetition}).
 +
 +@item @key{RET}
 +to exit without doing any more replacements.
 +
 +@item .@: @r{(Period)}
 +to replace this occurrence and then exit without searching for more
 +occurrences.
 +
 +@item !
 +to replace all remaining occurrences without asking again.
 +
 +@item ^
 +to go back to the position of the previous occurrence (or what used to
 +be an occurrence), in case you changed it by mistake or want to
 +reexamine it.
 +
 +@item C-r
 +to enter a recursive editing level, in case the occurrence needs to be
 +edited rather than just replaced with @var{newstring}.  When you are
 +done, exit the recursive editing level with @kbd{C-M-c} to proceed to
 +the next occurrence.  @xref{Recursive Edit}.
 +
 +@item C-w
 +to delete the occurrence, and then enter a recursive editing level as in
 +@kbd{C-r}.  Use the recursive edit to insert text to replace the deleted
 +occurrence of @var{string}.  When done, exit the recursive editing level
 +with @kbd{C-M-c} to proceed to the next occurrence.
 +
 +@item e
 +to edit the replacement string in the minibuffer.  When you exit the
 +minibuffer by typing @key{RET}, the minibuffer contents replace the
 +current occurrence of the pattern.  They also become the new
 +replacement string for any further occurrences.
 +
 +@item C-l
 +to redisplay the screen.  Then you must type another character to
 +specify what to do with this occurrence.
 +
 +@item C-h
 +to display a message summarizing these options.  Then you must type
 +another character to specify what to do with this occurrence.
 +@end table
 +
 +  Some other characters are aliases for the ones listed above: @kbd{y},
 +@kbd{n} and @kbd{q} are equivalent to @key{SPC}, @key{DEL} and
 +@key{RET}.
 +
 +  Aside from this, any other character exits the @code{query-replace},
 +and is then reread as part of a key sequence.  Thus, if you type
 +@kbd{C-k}, it exits the @code{query-replace} and then kills to end of
 +line.
 +
 +  To restart a @code{query-replace} once it is exited, use @kbd{C-x
 +@key{ESC} @key{ESC}}, which repeats the @code{query-replace} because it
 +used the minibuffer to read its arguments.  @xref{Repetition, C-x ESC
 +ESC}.
 +
 +  @xref{Operating on Files}, for the Dired @kbd{Q} command which
 +performs query replace on selected files.  See also @ref{Transforming
 +File Names}, for Dired commands to rename, copy, or link files by
 +replacing regexp matches in file names.
 +
 +@node Other Repeating Search
 +@section Other Search-and-Loop Commands
 +
 +  Here are some other commands that find matches for a regular
 +expression.  They all ignore case in matching, if the pattern contains
 +no upper-case letters and @code{case-fold-search} is non-@code{nil}.
 +Aside from @code{occur} and its variants, all operate on the text from
 +point to the end of the buffer, or on the active region in Transient
 +Mark mode.
 +
 +@findex list-matching-lines
 +@findex occur
 +@findex multi-occur
 +@findex multi-occur-in-matching-buffers
 +@findex how-many
 +@findex delete-non-matching-lines
 +@findex delete-matching-lines
 +@findex flush-lines
 +@findex keep-lines
 +
 +@table @kbd
 +@item M-x occur @key{RET} @var{regexp} @key{RET}
 +Display a list showing each line in the buffer that contains a match
 +for @var{regexp}.  To limit the search to part of the buffer, narrow
 +to that part (@pxref{Narrowing}).  A numeric argument @var{n}
 +specifies that @var{n} lines of context are to be displayed before and
 +after each matching line.  Currently, @code{occur} can not correctly
 +handle multiline matches.
 +
 +@kindex RET @r{(Occur mode)}
 +@kindex o @r{(Occur mode)}
 +@kindex C-o @r{(Occur mode)}
 +The buffer @samp{*Occur*} containing the output serves as a menu for
 +finding the occurrences in their original context.  Click
 +@kbd{Mouse-2} on an occurrence listed in @samp{*Occur*}, or position
 +point there and type @key{RET}; this switches to the buffer that was
 +searched and moves point to the original of the chosen occurrence.
 +@kbd{o} and @kbd{C-o} display the match in another window; @kbd{C-o}
 +does not select it.
 +
 +After using @kbd{M-x occur}, you can use @code{next-error} to visit
 +the occurrences found, one by one.  @ref{Compilation Mode}.
 +
 +@item M-x list-matching-lines
 +Synonym for @kbd{M-x occur}.
 +
 +@item M-x multi-occur @key{RET} @var{buffers} @key{RET} @var{regexp} @key{RET}
 +This function is just like @code{occur}, except it is able to search
 +through multiple buffers.  It asks you to specify the buffer names one by one.
 +
 +@item M-x multi-occur-in-matching-buffers @key{RET} @var{bufregexp} @key{RET} @var{regexp} @key{RET}
 +This function is similar to @code{multi-occur}, except the buffers to
 +search are specified by a regular expression that matches visited
 +file names.  With a prefix argument, it uses the regular expression to match
 +buffer names instead.
 +
 +@item M-x how-many @key{RET} @var{regexp} @key{RET}
 +Print the number of matches for @var{regexp} that exist in the buffer
 +after point.  In Transient Mark mode, if the region is active, the
 +command operates on the region instead.
 +
 +@item M-x flush-lines @key{RET} @var{regexp} @key{RET}
 +This command deletes each line that contains a match for @var{regexp},
 +operating on the text after point; it deletes the current line
 +if it contains a match starting after point.  In Transient Mark mode,
 +if the region is active, the command operates on the region instead;
 +it deletes a line partially contained in the region if it contains a
 +match entirely contained in the region.
 +
 +If a match is split across lines, @code{flush-lines} deletes all those
 +lines.  It deletes the lines before starting to look for the next
 +match; hence, it ignores a match starting on the same line at which
 +another match ended.
 +
 +@item M-x keep-lines @key{RET} @var{regexp} @key{RET}
 +This command deletes each line that @emph{does not} contain a match for
 +@var{regexp}, operating on the text after point; if point is not at the
 +beginning of a line, it always keeps the current line.  In Transient
 +Mark mode, if the region is active, the command operates on the region
 +instead; it never deletes lines that are only partially contained in
 +the region (a newline that ends a line counts as part of that line).
 +
 +If a match is split across lines, this command keeps all those lines.
 +@end table
 +
 +@ignore
 +   arch-tag: fd9d8e77-66af-491c-b212-d80999613e3e
 +@end ignore
index c151c75e8bb66da41d681f010d2c0c74557e6900,0000000000000000000000000000000000000000..4b3bc8df0f010f4c4c21d47dc2563b90ca2f6494
mode 100644,000000..100644
--- /dev/null
@@@ -1,2902 -1,0 +1,2925 @@@
- * Other: Format Properties.     The "special" text properties submenu.
 +@c This is part of the Emacs manual.
 +@c Copyright (C) 1985, 1986, 1987, 1993, 1994, 1995, 1997, 2000, 2001,
 +@c   2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
 +@c See file emacs.texi for copying conditions.
 +@node Text, Programs, Indentation, Top
 +@chapter Commands for Human Languages
 +@cindex text
 +@cindex manipulating text
 +
 +  The term @dfn{text} has two widespread meanings in our area of the
 +computer field.  One is data that is a sequence of characters.  Any file
 +that you edit with Emacs is text, in this sense of the word.  The other
 +meaning is more restrictive: a sequence of characters in a human language
 +for humans to read (possibly after processing by a text formatter), as
 +opposed to a program or binary data.  This chapter is concerned with
 +editing text in the narrower sense.
 +
 +  Human languages have syntactic/stylistic conventions that can be
 +supported or used to advantage by editor commands: conventions involving
 +words, sentences, paragraphs, and capital letters.  This chapter
 +describes Emacs commands for all of these things.  There are also
 +commands for @dfn{filling}, which means rearranging the lines of a
 +paragraph to be approximately equal in length.  The commands for moving
 +over and killing words, sentences and paragraphs, while intended
 +primarily for editing text, are also often useful for editing programs.
 +
 +  Emacs has several major modes for editing human-language text.  If the
 +file contains text pure and simple, use Text mode, which customizes
 +Emacs in small ways for the syntactic conventions of text.  Outline mode
 +provides special commands for operating on text with an outline
 +structure.
 +@iftex
 +@xref{Outline Mode}.
 +@end iftex
 +
 +  For text which contains embedded commands for text formatters, Emacs
 +has other major modes, each for a particular formatter.  Thus, for
 +input to @TeX{}, you would use @TeX{}
 +@iftex
 +mode (@pxref{TeX Mode,,@TeX{} Mode}).
 +@end iftex
 +@ifnottex
 +mode.
 +@end ifnottex
 +For input to groff or nroff, use Nroff mode.
 +
 +  Instead of using a text formatter, you can edit formatted text in
 +WYSIWYG style (``what you see is what you get''), with Enriched mode.
 +Then the formatting appears on the screen in Emacs while you edit.
 +@iftex
 +@xref{Formatted Text}.
 +@end iftex
 +
 +@cindex ASCII art
 +  If you need to edit pictures made out of text characters (commonly
 +referred to as ``ASCII art''), use @kbd{M-x edit-picture} to enter
 +Picture mode, a special major mode for editing such pictures.
 +@iftex
 +@xref{Picture Mode,,, emacs-xtra, Specialized Emacs Features}.
 +@end iftex
 +@ifnottex
 +@xref{Picture Mode}.
 +@end ifnottex
 +
 +
 +@cindex skeletons
 +@cindex templates
 +@cindex autotyping
 +@cindex automatic typing
 +  The ``automatic typing'' features may be useful when writing text.
 +@inforef{Top,, autotype}.
 +
 +@menu
 +* Words::             Moving over and killing words.
 +* Sentences::         Moving over and killing sentences.
 +* Paragraphs::                Moving over paragraphs.
 +* Pages::             Moving over pages.
 +* Filling::           Filling or justifying text.
 +* Case::              Changing the case of text.
 +* Text Mode::         The major modes for editing text files.
 +* Outline Mode::        Editing outlines.
 +* TeX Mode::          Editing input to the formatter TeX.
 +* HTML Mode::           Editing HTML, SGML, and XML files.
 +* Nroff Mode::                Editing input to the formatter nroff.
 +* Formatted Text::      Editing formatted text directly in WYSIWYG fashion.
 +* Text Based Tables::   Editing text-based tables in WYSIWYG fashion.
 +@end menu
 +
 +@node Words
 +@section Words
 +@cindex words
 +@cindex Meta commands and words
 +
 +  Emacs has commands for moving over or operating on words.  By convention,
 +the keys for them are all Meta characters.
 +
 +@table @kbd
 +@item M-f
 +Move forward over a word (@code{forward-word}).
 +@item M-b
 +Move backward over a word (@code{backward-word}).
 +@item M-d
 +Kill up to the end of a word (@code{kill-word}).
 +@item M-@key{DEL}
 +Kill back to the beginning of a word (@code{backward-kill-word}).
 +@item M-@@
 +Mark the end of the next word (@code{mark-word}).
 +@item M-t
 +Transpose two words or drag a word across others
 +(@code{transpose-words}).
 +@end table
 +
 +  Notice how these keys form a series that parallels the character-based
 +@kbd{C-f}, @kbd{C-b}, @kbd{C-d}, @key{DEL} and @kbd{C-t}.  @kbd{M-@@} is
 +cognate to @kbd{C-@@}, which is an alias for @kbd{C-@key{SPC}}.
 +
 +@kindex M-f
 +@kindex M-b
 +@findex forward-word
 +@findex backward-word
 +  The commands @kbd{M-f} (@code{forward-word}) and @kbd{M-b}
 +(@code{backward-word}) move forward and backward over words.  These
 +Meta characters are thus analogous to the corresponding control
 +characters, @kbd{C-f} and @kbd{C-b}, which move over single characters
 +in the text.  The analogy extends to numeric arguments, which serve as
 +repeat counts.  @kbd{M-f} with a negative argument moves backward, and
 +@kbd{M-b} with a negative argument moves forward.  Forward motion
 +stops right after the last letter of the word, while backward motion
 +stops right before the first letter.
 +
 +@kindex M-d
 +@findex kill-word
 +  @kbd{M-d} (@code{kill-word}) kills the word after point.  To be
 +precise, it kills everything from point to the place @kbd{M-f} would
 +move to.  Thus, if point is in the middle of a word, @kbd{M-d} kills
 +just the part after point.  If some punctuation comes between point and the
 +next word, it is killed along with the word.  (If you wish to kill only the
 +next word but not the punctuation before it, simply do @kbd{M-f} to get
 +the end, and kill the word backwards with @kbd{M-@key{DEL}}.)
 +@kbd{M-d} takes arguments just like @kbd{M-f}.
 +
 +@findex backward-kill-word
 +@kindex M-DEL
 +  @kbd{M-@key{DEL}} (@code{backward-kill-word}) kills the word before
 +point.  It kills everything from point back to where @kbd{M-b} would
 +move to.  For instance, if point is after the space in @w{@samp{FOO,
 +BAR}}, it kills @w{@samp{FOO, }}.  If you wish to kill just
 +@samp{FOO}, and not the comma and the space, use @kbd{M-b M-d} instead
 +of @kbd{M-@key{DEL}}.
 +
 +@c Don't index M-t and transpose-words here, they are indexed in
 +@c fixit.texi, in the node "Transpose".
 +@c @kindex M-t
 +@c @findex transpose-words
 +  @kbd{M-t} (@code{transpose-words}) exchanges the word before or
 +containing point with the following word.  The delimiter characters between
 +the words do not move.  For example, @w{@samp{FOO, BAR}} transposes into
 +@w{@samp{BAR, FOO}} rather than @samp{@w{BAR FOO,}}.  @xref{Transpose}, for
 +more on transposition.
 +
 +@kindex M-@@
 +@findex mark-word
 +  To operate on the next @var{n} words with an operation which applies
 +between point and mark, you can either set the mark at point and then move
 +over the words, or you can use the command @kbd{M-@@} (@code{mark-word})
 +which does not move point, but sets the mark where @kbd{M-f} would move
 +to.  @kbd{M-@@} accepts a numeric argument that says how many words to
 +scan for the place to put the mark.  In Transient Mark mode, this command
 +activates the mark.
 +
 +  The word commands' understanding of word boundaries is controlled
 +by the syntax table.  Any character can, for example, be declared to
 +be a word delimiter.  @xref{Syntax}.
 +
 +@node Sentences
 +@section Sentences
 +@cindex sentences
 +@cindex manipulating sentences
 +
 +  The Emacs commands for manipulating sentences and paragraphs are mostly
 +on Meta keys, so as to be like the word-handling commands.
 +
 +@table @kbd
 +@item M-a
 +Move back to the beginning of the sentence (@code{backward-sentence}).
 +@item M-e
 +Move forward to the end of the sentence (@code{forward-sentence}).
 +@item M-k
 +Kill forward to the end of the sentence (@code{kill-sentence}).
 +@item C-x @key{DEL}
 +Kill back to the beginning of the sentence (@code{backward-kill-sentence}).
 +@end table
 +
 +@kindex M-a
 +@kindex M-e
 +@findex backward-sentence
 +@findex forward-sentence
 +  The commands @kbd{M-a} and @kbd{M-e} (@code{backward-sentence} and
 +@code{forward-sentence}) move to the beginning and end of the current
 +sentence, respectively.  They were chosen to resemble @kbd{C-a} and
 +@kbd{C-e}, which move to the beginning and end of a line.  Unlike
 +them, @kbd{M-a} and @kbd{M-e} move over successive sentences if
 +repeated.
 +
 +  Moving backward over a sentence places point just before the first
 +character of the sentence; moving forward places point right after the
 +punctuation that ends the sentence.  Neither one moves over the
 +whitespace at the sentence boundary.
 +
 +@kindex M-k
 +@kindex C-x DEL
 +@findex kill-sentence
 +@findex backward-kill-sentence
 +  Just as @kbd{C-a} and @kbd{C-e} have a kill command, @kbd{C-k}, to go
 +with them, so @kbd{M-a} and @kbd{M-e} have a corresponding kill command
 +@kbd{M-k} (@code{kill-sentence}) which kills from point to the end of
 +the sentence.  With minus one as an argument it kills back to the
 +beginning of the sentence.  Larger arguments serve as a repeat count.
 +There is also a command, @kbd{C-x @key{DEL}}
 +(@code{backward-kill-sentence}), for killing back to the beginning of a
 +sentence.  This command is useful when you change your mind in the
 +middle of composing text.
 +
 +  The sentence commands assume that you follow the American typist's
 +convention of putting two spaces at the end of a sentence; they consider
 +a sentence to end wherever there is a @samp{.}, @samp{?} or @samp{!}
 +followed by the end of a line or two spaces, with any number of
 +@samp{)}, @samp{]}, @samp{'}, or @samp{"} characters allowed in between.
 +A sentence also begins or ends wherever a paragraph begins or ends.
 +It is useful to follow this convention, because it makes a distinction
 +between periods that end a sentence and periods that indicate
 +abbreviations; that enables the Emacs sentence commands to distinguish,
 +too.  These commands do not stop for periods that indicate abbreviations.
 +
 +@vindex sentence-end-double-space
 +  If you want to use just one space between sentences, you can set the
 +variable @code{sentence-end-double-space} to @code{nil} to make the
 +sentence commands stop for single spaces.  However, this mode has a
 +drawback: there is no way to distinguish between periods that end
 +sentences and those that indicate abbreviations.  For convenient and
 +reliable editing, we therefore recommend you follow the two-space
 +convention.  The variable @code{sentence-end-double-space} also
 +affects filling (@pxref{Fill Commands}) in related ways.
 +
 +@vindex sentence-end
 +  The variable @code{sentence-end} controls how to recognize the end
 +of a sentence.  If non-@code{nil}, it is a regexp that matches the
 +last few characters of a sentence, together with the whitespace
 +following the sentence.  If the value is @code{nil}, the default, then
 +Emacs computes the regexp according to various criteria such as the
 +value of @code{sentence-end-double-space}.  @xref{Regexp Example}, for
 +a detailed explanation of one of the regular expressions Emacs uses
 +for this purpose.
 +
 +@vindex sentence-end-without-period
 +  Some languages do not use periods to indicate the end of a sentence.
 +For example, sentences in Thai end with a double space but without a
 +period.  Set the variable @code{sentence-end-without-period} to
 +@code{t} in such cases.
 +
 +@node Paragraphs
 +@section Paragraphs
 +@cindex paragraphs
 +@cindex manipulating paragraphs
 +@kindex M-@{
 +@kindex M-@}
 +@findex backward-paragraph
 +@findex forward-paragraph
 +
 +  The Emacs commands for manipulating paragraphs are also on Meta keys.
 +
 +@table @kbd
 +@item M-@{
 +Move back to previous paragraph beginning (@code{backward-paragraph}).
 +@item M-@}
 +Move forward to next paragraph end (@code{forward-paragraph}).
 +@item M-h
 +Put point and mark around this or next paragraph (@code{mark-paragraph}).
 +@end table
 +
 +  @kbd{M-@{} moves to the beginning of the current or previous
 +paragraph, while @kbd{M-@}} moves to the end of the current or next
 +paragraph.  Blank lines and text-formatter command lines separate
 +paragraphs and are not considered part of any paragraph.  If there is
 +a blank line before the paragraph, @kbd{M-@{} moves to the blank line,
 +because that is convenient in practice.
 +
 +  In Text mode, an indented line is not a paragraph break.  If you
 +want indented lines to have this effect, use Paragraph-Indent Text
 +mode instead.  @xref{Text Mode}.
 +
 +  In major modes for programs, paragraphs begin and end only at blank
 +lines.  This makes the paragraph commands useful, even though there
 +are no paragraphs as such in a program.
 +
 +  When you have set a fill prefix, then paragraphs are delimited by
 +all lines which don't start with the fill prefix.  @xref{Filling}.
 +
 +@kindex M-h
 +@findex mark-paragraph
 +  When you wish to operate on a paragraph, you can use the command
 +@kbd{M-h} (@code{mark-paragraph}) to set the region around it.  Thus,
 +for example, @kbd{M-h C-w} kills the paragraph around or after point.
 +The @kbd{M-h} command puts point at the beginning and mark at the end of
 +the paragraph point was in.  In Transient Mark mode, it activates the
 +mark.  If point is between paragraphs (in a run of blank lines, or at a
 +boundary), the paragraph following point is surrounded by point and
 +mark.  If there are blank lines preceding the first line of the
 +paragraph, one of these blank lines is included in the region.
 +
 +@vindex paragraph-start
 +@vindex paragraph-separate
 +  The precise definition of a paragraph boundary is controlled by the
 +variables @code{paragraph-separate} and @code{paragraph-start}.  The
 +value of @code{paragraph-start} is a regexp that should match any line
 +that either starts or separates paragraphs.  The value of
 +@code{paragraph-separate} is another regexp that should match only lines
 +that separate paragraphs without being part of any paragraph (for
 +example, blank lines).  Lines that start a new paragraph and are
 +contained in it must match only @code{paragraph-start}, not
 +@code{paragraph-separate}.  Each regular expression must match at the
 +left margin.  For example, in Fundamental mode, @code{paragraph-start}
 +is @w{@code{"\f\\|[ \t]*$"}}, and @code{paragraph-separate} is
 +@w{@code{"[ \t\f]*$"}}.
 +
 +  Normally it is desirable for page boundaries to separate paragraphs.
 +The default values of these variables recognize the usual separator for
 +pages.
 +
 +@node Pages
 +@section Pages
 +
 +@cindex pages
 +@cindex formfeed
 +  Files are often thought of as divided into @dfn{pages} by the
 +@dfn{formfeed} character (@acronym{ASCII} control-L, octal code 014).
 +When you print hardcopy for a file, this character forces a page break;
 +thus, each page of the file goes on a separate page on paper.  Most Emacs
 +commands treat the page-separator character just like any other
 +character: you can insert it with @kbd{C-q C-l}, and delete it with
 +@key{DEL}.  Thus, you are free to paginate your file or not.  However,
 +since pages are often meaningful divisions of the file, Emacs provides
 +commands to move over them and operate on them.
 +
 +@table @kbd
 +@item C-x [
 +Move point to previous page boundary (@code{backward-page}).
 +@item C-x ]
 +Move point to next page boundary (@code{forward-page}).
 +@item C-x C-p
 +Put point and mark around this page (or another page) (@code{mark-page}).
 +@item C-x l
 +Count the lines in this page (@code{count-lines-page}).
 +@end table
 +
 +@kindex C-x [
 +@kindex C-x ]
 +@findex forward-page
 +@findex backward-page
 +  The @kbd{C-x [} (@code{backward-page}) command moves point to immediately
 +after the previous page delimiter.  If point is already right after a page
 +delimiter, it skips that one and stops at the previous one.  A numeric
 +argument serves as a repeat count.  The @kbd{C-x ]} (@code{forward-page})
 +command moves forward past the next page delimiter.
 +
 +@kindex C-x C-p
 +@findex mark-page
 +  The @kbd{C-x C-p} command (@code{mark-page}) puts point at the
 +beginning of the current page and the mark at the end.  The page
 +delimiter at the end is included (the mark follows it).  The page
 +delimiter at the front is excluded (point follows it).  In Transient
 +Mark mode, this command activates the mark.
 +
 +  @kbd{C-x C-p C-w} is a handy way to kill a page to move it
 +elsewhere.  If you move to another page delimiter with @kbd{C-x [} and
 +@kbd{C-x ]}, then yank the killed page, all the pages will be properly
 +delimited once again.  The reason @kbd{C-x C-p} includes only the
 +following page delimiter in the region is to ensure that.
 +
 +  A numeric argument to @kbd{C-x C-p} is used to specify which page to go
 +to, relative to the current one.  Zero means the current page.  One means
 +the next page, and @minus{}1 means the previous one.
 +
 +@kindex C-x l
 +@findex count-lines-page
 +  The @kbd{C-x l} command (@code{count-lines-page}) is good for deciding
 +where to break a page in two.  It displays in the echo area the total number
 +of lines in the current page, and then divides it up into those preceding
 +the current line and those following, as in
 +
 +@example
 +Page has 96 (72+25) lines
 +@end example
 +
 +@noindent
 +  Notice that the sum is off by one; this is correct if point is not at the
 +beginning of a line.
 +
 +@vindex page-delimiter
 +  The variable @code{page-delimiter} controls where pages begin.  Its
 +value is a regexp that matches the beginning of a line that separates
 +pages.  The normal value of this variable is @code{"^\f"}, which
 +matches a formfeed character at the beginning of a line.
 +
 +@node Filling
 +@section Filling Text
 +@cindex filling text
 +
 +  @dfn{Filling} text means breaking it up into lines that fit a
 +specified width.  Emacs does filling in two ways.  In Auto Fill mode,
 +inserting text with self-inserting characters also automatically fills
 +it.  There are also explicit fill commands that you can use when editing
 +text leaves it unfilled.  When you edit formatted text, you can specify
 +a style of filling for each portion of the text (@pxref{Formatted
 +Text}).
 +
 +@menu
 +* Auto Fill::         Auto Fill mode breaks long lines automatically.
 +* Fill Commands::       Commands to refill paragraphs and center lines.
 +* Fill Prefix::               Filling paragraphs that are indented
 +                          or in a comment, etc.
 +* Adaptive Fill::       How Emacs can determine the fill prefix automatically.
 +* Refill::              Keeping paragraphs filled.
 +* Longlines::           Editing text with very long lines.
 +@end menu
 +
 +@node Auto Fill
 +@subsection Auto Fill Mode
 +@cindex Auto Fill mode
 +@cindex mode, Auto Fill
 +
 +  @dfn{Auto Fill} mode is a minor mode in which lines are broken
 +automatically when they become too wide.  Breaking happens only when
 +you type a @key{SPC} or @key{RET}.
 +
 +@table @kbd
 +@item M-x auto-fill-mode
 +Enable or disable Auto Fill mode.
 +@item @key{SPC}
 +@itemx @key{RET}
 +In Auto Fill mode, break lines when appropriate.
 +@end table
 +
 +@findex auto-fill-mode
 +  @kbd{M-x auto-fill-mode} turns Auto Fill mode on if it was off, or off
 +if it was on.  With a positive numeric argument it always turns Auto
 +Fill mode on, and with a negative argument always turns it off.  You can
 +see when Auto Fill mode is in effect by the presence of the word
 +@samp{Fill} in the mode line, inside the parentheses.  Auto Fill mode is
 +a minor mode which is enabled or disabled for each buffer individually.
 +@xref{Minor Modes}.
 +
 +  In Auto Fill mode, lines are broken automatically at spaces when they
 +get longer than the desired width.  Line breaking and rearrangement
 +takes place only when you type @key{SPC} or @key{RET}.  If you wish to
 +insert a space or newline without permitting line-breaking, type
 +@kbd{C-q @key{SPC}} or @kbd{C-q C-j} (recall that a newline is really a
 +control-J).  Also, @kbd{C-o} inserts a newline without line breaking.
 +
 +  Auto Fill mode works well with programming-language modes, because it
 +indents new lines with @key{TAB}.  If a line ending in a comment gets
 +too long, the text of the comment is split into two comment lines.
 +Optionally, new comment delimiters are inserted at the end of the first
 +line and the beginning of the second so that each line is a separate
 +comment; the variable @code{comment-multi-line} controls the choice
 +(@pxref{Comments}).
 +
 +  Adaptive filling (@pxref{Adaptive Fill}) works for Auto Filling as
 +well as for explicit fill commands.  It takes a fill prefix
 +automatically from the second or first line of a paragraph.
 +
 +  Auto Fill mode does not refill entire paragraphs; it can break lines but
 +cannot merge lines.  So editing in the middle of a paragraph can result in
 +a paragraph that is not correctly filled.  The easiest way to make the
 +paragraph properly filled again is usually with the explicit fill commands.
 +@ifnottex
 +@xref{Fill Commands}.
 +@end ifnottex
 +
 +  Many users like Auto Fill mode and want to use it in all text files.
 +The section on init files says how to arrange this permanently for yourself.
 +@xref{Init File}.
 +
 +@node Fill Commands
 +@subsection Explicit Fill Commands
 +
 +@table @kbd
 +@item M-q
 +Fill current paragraph (@code{fill-paragraph}).
 +@item C-x f
 +Set the fill column (@code{set-fill-column}).
 +@item M-x fill-region
 +Fill each paragraph in the region (@code{fill-region}).
 +@item M-x fill-region-as-paragraph
 +Fill the region, considering it as one paragraph.
 +@item M-s
 +Center a line.
 +@end table
 +
 +@kindex M-q
 +@findex fill-paragraph
 +  To refill a paragraph, use the command @kbd{M-q}
 +(@code{fill-paragraph}).  This operates on the paragraph that point is
 +inside, or the one after point if point is between paragraphs.
 +Refilling works by removing all the line-breaks, then inserting new ones
 +where necessary.  When the mark is active in Transient Mark mode, this
 +command operates on the active region like @code{fill-region}.
 +
 +@findex fill-region
 +  To refill many paragraphs, use @kbd{M-x fill-region}, which
 +finds the paragraphs in the region and fills each of them.
 +
 +@findex fill-region-as-paragraph
 +  @kbd{M-q} and @code{fill-region} use the same criteria as @kbd{M-h}
 +for finding paragraph boundaries (@pxref{Paragraphs}).  For more
 +control, you can use @kbd{M-x fill-region-as-paragraph}, which refills
 +everything between point and mark as a single paragraph.  This command
 +deletes any blank lines within the region, so separate blocks of text
 +end up combined into one block.
 +
 +@cindex justification
 +  A numeric argument to @kbd{M-q} tells it to @dfn{justify} the text
 +as well as filling it.  This means that extra spaces are inserted to
 +make the right margin line up exactly at the fill column.  To remove
 +the extra spaces, use @kbd{M-q} with no argument.  (Likewise for
 +@code{fill-region}.)  Another way to control justification, and choose
 +other styles of filling, is with the @code{justification} text
 +property; see @ref{Format Justification}.
 +
 +@kindex M-s @r{(Text mode)}
 +@cindex centering
 +@findex center-line
 +  The command @kbd{M-s} (@code{center-line}) centers the current line
 +within the current fill column.  With an argument @var{n}, it centers
 +@var{n} lines individually and moves past them.  This binding is
 +made by Text mode and is available only in that and related modes
 +(@pxref{Text Mode}).
 +
 +@vindex fill-column
 +@kindex C-x f
 +@findex set-fill-column
 +  The maximum line width for filling is in the variable
 +@code{fill-column}.  Altering the value of @code{fill-column} makes it
 +local to the current buffer; until that time, the default value is in
 +effect.  The default is initially 70.  @xref{Locals}.  The easiest way
 +to set @code{fill-column} is to use the command @kbd{C-x f}
 +(@code{set-fill-column}).  With a numeric argument, it uses that as the
 +new fill column.  With just @kbd{C-u} as argument, it sets
 +@code{fill-column} to the current horizontal position of point.
 +
 +  Emacs commands normally consider a period followed by two spaces or by
 +a newline as the end of a sentence; a period followed by just one space
 +indicates an abbreviation and not the end of a sentence.  To preserve
 +the distinction between these two ways of using a period, the fill
 +commands do not break a line after a period followed by just one space.
 +
 +  If the variable @code{sentence-end-double-space} is @code{nil}, the
 +fill commands expect and leave just one space at the end of a sentence.
 +Ordinarily this variable is @code{t}, so the fill commands insist on
 +two spaces for the end of a sentence, as explained above.  @xref{Sentences}.
 +
 +@vindex colon-double-space
 +  If the variable @code{colon-double-space} is non-@code{nil}, the
 +fill commands put two spaces after a colon.
 +
 +@vindex fill-nobreak-predicate
 +  The variable @code{fill-nobreak-predicate} is a hook (an abnormal
 +hook, @pxref{Hooks}) specifying additional conditions where
 +line-breaking is not allowed.  Each function is called with no
 +arguments, with point at a place where Emacs is considering breaking
 +the line.  If a function returns a non-@code{nil} value, then that's
 +a bad place to break the line.  Two standard functions you can use are
 +@code{fill-single-word-nobreak-p} (don't break after the first word of
 +a sentence or before the last) and @code{fill-french-nobreak-p} (don't
 +break after @samp{(} or before @samp{)}, @samp{:} or @samp{?}).
 +
 +@node Fill Prefix
 +@subsection The Fill Prefix
 +
 +@cindex fill prefix
 +  To fill a paragraph in which each line starts with a special marker
 +(which might be a few spaces, giving an indented paragraph), you can use
 +the @dfn{fill prefix} feature.  The fill prefix is a string that Emacs
 +expects every line to start with, and which is not included in filling.
 +You can specify a fill prefix explicitly; Emacs can also deduce the
 +fill prefix automatically (@pxref{Adaptive Fill}).
 +
 +@table @kbd
 +@item C-x .
 +Set the fill prefix (@code{set-fill-prefix}).
 +@item M-q
 +Fill a paragraph using current fill prefix (@code{fill-paragraph}).
 +@item M-x fill-individual-paragraphs
 +Fill the region, considering each change of indentation as starting a
 +new paragraph.
 +@item M-x fill-nonuniform-paragraphs
 +Fill the region, considering only paragraph-separator lines as starting
 +a new paragraph.
 +@end table
 +
 +@kindex C-x .
 +@findex set-fill-prefix
 +  To specify a fill prefix for the current buffer, move to a line that
 +starts with the desired prefix, put point at the end of the prefix,
 +and type @w{@kbd{C-x .}}@: (@code{set-fill-prefix}).  (That's a period
 +after the @kbd{C-x}.)  To turn off the fill prefix, specify an empty
 +prefix: type @w{@kbd{C-x .}}@: with point at the beginning of a line.
 +
 +  When a fill prefix is in effect, the fill commands remove the fill
 +prefix from each line of the paragraph before filling and insert it on
 +each line after filling.  (The beginning of the first line of the
 +paragraph is left unchanged, since often that is intentionally
 +different.)  Auto Fill mode also inserts the fill prefix automatically
 +when it makes a new line.  The @kbd{C-o} command inserts the fill
 +prefix on new lines it creates, when you use it at the beginning of a
 +line (@pxref{Blank Lines}).  Conversely, the command @kbd{M-^} deletes
 +the prefix (if it occurs) after the newline that it deletes
 +(@pxref{Indentation}).
 +
 +  For example, if @code{fill-column} is 40 and you set the fill prefix
 +to @samp{;; }, then @kbd{M-q} in the following text
 +
 +@example
 +;; This is an
 +;; example of a paragraph
 +;; inside a Lisp-style comment.
 +@end example
 +
 +@noindent
 +produces this:
 +
 +@example
 +;; This is an example of a paragraph
 +;; inside a Lisp-style comment.
 +@end example
 +
 +  Lines that do not start with the fill prefix are considered to start
 +paragraphs, both in @kbd{M-q} and the paragraph commands; this gives
 +good results for paragraphs with hanging indentation (every line
 +indented except the first one).  Lines which are blank or indented once
 +the prefix is removed also separate or start paragraphs; this is what
 +you want if you are writing multi-paragraph comments with a comment
 +delimiter on each line.
 +
 +@findex fill-individual-paragraphs
 +  You can use @kbd{M-x fill-individual-paragraphs} to set the fill
 +prefix for each paragraph automatically.  This command divides the
 +region into paragraphs, treating every change in the amount of
 +indentation as the start of a new paragraph, and fills each of these
 +paragraphs.  Thus, all the lines in one ``paragraph'' have the same
 +amount of indentation.  That indentation serves as the fill prefix for
 +that paragraph.
 +
 +@findex fill-nonuniform-paragraphs
 +  @kbd{M-x fill-nonuniform-paragraphs} is a similar command that divides
 +the region into paragraphs in a different way.  It considers only
 +paragraph-separating lines (as defined by @code{paragraph-separate}) as
 +starting a new paragraph.  Since this means that the lines of one
 +paragraph may have different amounts of indentation, the fill prefix
 +used is the smallest amount of indentation of any of the lines of the
 +paragraph.  This gives good results with styles that indent a paragraph's
 +first line more or less that the rest of the paragraph.
 +
 +@vindex fill-prefix
 +  The fill prefix is stored in the variable @code{fill-prefix}.  Its value
 +is a string, or @code{nil} when there is no fill prefix.  This is a
 +per-buffer variable; altering the variable affects only the current buffer,
 +but there is a default value which you can change as well.  @xref{Locals}.
 +
 +  The @code{indentation} text property provides another way to control
 +the amount of indentation paragraphs receive.  @xref{Format Indentation}.
 +
 +@node Adaptive Fill
 +@subsection Adaptive Filling
 +
 +@cindex adaptive filling
 +  The fill commands can deduce the proper fill prefix for a paragraph
 +automatically in certain cases: either whitespace or certain punctuation
 +characters at the beginning of a line are propagated to all lines of the
 +paragraph.
 +
 +  If the paragraph has two or more lines, the fill prefix is taken from
 +the paragraph's second line, but only if it appears on the first line as
 +well.
 +
 +  If a paragraph has just one line, fill commands @emph{may} take a
 +prefix from that line.  The decision is complicated because there are
 +three reasonable things to do in such a case:
 +
 +@itemize @bullet
 +@item
 +Use the first line's prefix on all the lines of the paragraph.
 +
 +@item
 +Indent subsequent lines with whitespace, so that they line up under the
 +text that follows the prefix on the first line, but don't actually copy
 +the prefix from the first line.
 +
 +@item
 +Don't do anything special with the second and following lines.
 +@end itemize
 +
 +  All three of these styles of formatting are commonly used.  So the
 +fill commands try to determine what you would like, based on the prefix
 +that appears and on the major mode.  Here is how.
 +
 +@vindex adaptive-fill-first-line-regexp
 +  If the prefix found on the first line matches
 +@code{adaptive-fill-first-line-regexp}, or if it appears to be a
 +comment-starting sequence (this depends on the major mode), then the
 +prefix found is used for filling the paragraph, provided it would not
 +act as a paragraph starter on subsequent lines.
 +
 +  Otherwise, the prefix found is converted to an equivalent number of
 +spaces, and those spaces are used as the fill prefix for the rest of the
 +lines, provided they would not act as a paragraph starter on subsequent
 +lines.
 +
 +  In Text mode, and other modes where only blank lines and page
 +delimiters separate paragraphs, the prefix chosen by adaptive filling
 +never acts as a paragraph starter, so it can always be used for filling.
 +
 +@vindex adaptive-fill-mode
 +@vindex adaptive-fill-regexp
 +  The variable @code{adaptive-fill-regexp} determines what kinds of line
 +beginnings can serve as a fill prefix: any characters at the start of
 +the line that match this regular expression are used.  If you set the
 +variable @code{adaptive-fill-mode} to @code{nil}, the fill prefix is
 +never chosen automatically.
 +
 +@vindex adaptive-fill-function
 +  You can specify more complex ways of choosing a fill prefix
 +automatically by setting the variable @code{adaptive-fill-function} to a
 +function.  This function is called with point after the left margin of a
 +line, and it should return the appropriate fill prefix based on that
 +line.  If it returns @code{nil}, @code{adaptive-fill-regexp} gets
 +a chance to find a prefix.
 +
 +@node Refill
 +@subsection Refill Mode
 +@cindex refilling text, word processor style
 +@cindex modes, Refill
 +@cindex Refill minor mode
 +
 +  Refill minor mode provides support for keeping paragraphs filled as
 +you type or modify them in other ways.  It provides an effect similar
 +to typical word processor behavior.  This works by running a
 +paragraph-filling command at suitable times.
 +
 +  To toggle the use of Refill mode in the current buffer, type
 +@kbd{M-x refill-mode}.  When you are typing text, only characters
 +which normally trigger auto filling, like the space character, will
 +trigger refilling.  This is to avoid making it too slow.  Apart from
 +self-inserting characters, other commands which modify the text cause
 +refilling.
 +
 +  The current implementation is preliminary and not robust.  You can
 +get better ``line wrapping'' behavior using Longlines mode.
 +@xref{Longlines}.  However, Longlines mode has an important
 +side-effect: the newlines that it inserts for you are not saved to
 +disk, so the files that you make with Longlines mode will appear to be
 +completely unfilled if you edit them without Longlines mode.
 +
 +@node Longlines
 +@subsection Long Lines Mode
 +@cindex refilling text, word processor style
 +@cindex modes, Long Lines
 +@cindex word wrap
 +@cindex Long Lines minor mode
 +
 +  Long Lines mode is a minor mode for @dfn{word wrapping}; it lets you
 +edit ``unfilled'' text files, which Emacs would normally display as a
 +bunch of extremely long lines.  Many text editors, such as those built
 +into many web browsers, normally do word wrapping.
 +
 +@findex longlines-mode
 +  To enable Long Lines mode, type @kbd{M-x longlines-mode}.  If the
 +text is full of long lines, this will ``wrap'' them
 +immediately---i.e., break up to fit in the window.  As you edit the
 +text, Long Lines mode automatically re-wraps lines by inserting or
 +deleting @dfn{soft newlines} as necessary (@pxref{Hard and Soft
 +Newlines}.)  These soft newlines won't show up when you save the
 +buffer into a file, or when you copy the text into the kill ring,
 +clipboard, or a register.
 +
 +@findex longlines-auto-wrap
 +  Word wrapping is @emph{not} the same as ordinary filling
 +(@pxref{Fill Commands}).  It does not contract multiple spaces into a
 +single space, recognize fill prefixes (@pxref{Fill Prefix}), or
 +perform adaptive filling (@pxref{Adaptive Fill}).  The reason for this
 +is that a wrapped line is still, conceptually, a single line.  Each
 +soft newline is equivalent to exactly one space in that long line, and
 +vice versa.  However, you can still call filling functions such as
 +@kbd{M-q}, and these will work as expected, inserting soft newlines
 +that won't show up on disk or when the text is copied.  You can even
 +rely entirely on the normal fill commands by turning off automatic
 +line wrapping, with @kbd{C-u M-x longlines-auto-wrap}.  To turn
 +automatic line wrapping back on, type @kbd{M-x longlines-auto-wrap}.
 +
 +@findex longlines-show-hard-newlines
 +  Type @kbd{RET} to insert a hard newline, one which automatic
 +refilling will not remove.  If you want to see where all the hard
 +newlines are, type @kbd{M-x longlines-show-hard-newlines}.  This will
 +mark each hard newline with a special symbol.  The same command with a
 +prefix argument turns this display off.
 +
 +  Long Lines mode does not change normal text files that are already
 +filled, since the existing newlines are considered hard newlines.
 +Before Long Lines can do anything, you need to transform each
 +paragraph into a long line.  One way is to set @code{fill-column} to a
 +large number (e.g., @kbd{C-u 9999 C-x f}), re-fill all the paragraphs,
 +and then set @code{fill-column} back to its original value.
 +
 +@node Case
 +@section Case Conversion Commands
 +@cindex case conversion
 +
 +  Emacs has commands for converting either a single word or any arbitrary
 +range of text to upper case or to lower case.
 +
 +@table @kbd
 +@item M-l
 +Convert following word to lower case (@code{downcase-word}).
 +@item M-u
 +Convert following word to upper case (@code{upcase-word}).
 +@item M-c
 +Capitalize the following word (@code{capitalize-word}).
 +@item C-x C-l
 +Convert region to lower case (@code{downcase-region}).
 +@item C-x C-u
 +Convert region to upper case (@code{upcase-region}).
 +@end table
 +
 +@kindex M-l
 +@kindex M-u
 +@kindex M-c
 +@cindex words, case conversion
 +@cindex converting text to upper or lower case
 +@cindex capitalizing words
 +@findex downcase-word
 +@findex upcase-word
 +@findex capitalize-word
 +  The word conversion commands are the most useful.  @kbd{M-l}
 +(@code{downcase-word}) converts the word after point to lower case, moving
 +past it.  Thus, repeating @kbd{M-l} converts successive words.
 +@kbd{M-u} (@code{upcase-word}) converts to all capitals instead, while
 +@kbd{M-c} (@code{capitalize-word}) puts the first letter of the word
 +into upper case and the rest into lower case.  All these commands convert
 +several words at once if given an argument.  They are especially convenient
 +for converting a large amount of text from all upper case to mixed case,
 +because you can move through the text using @kbd{M-l}, @kbd{M-u} or
 +@kbd{M-c} on each word as appropriate, occasionally using @kbd{M-f} instead
 +to skip a word.
 +
 +  When given a negative argument, the word case conversion commands apply
 +to the appropriate number of words before point, but do not move point.
 +This is convenient when you have just typed a word in the wrong case: you
 +can give the case conversion command and continue typing.
 +
 +  If a word case conversion command is given in the middle of a word,
 +it applies only to the part of the word which follows point.  (This is
 +comparable to what @kbd{M-d} (@code{kill-word}) does.)  With a
 +negative argument, case conversion applies only to the part of the
 +word before point.
 +
 +@kindex C-x C-l
 +@kindex C-x C-u
 +@findex downcase-region
 +@findex upcase-region
 +  The other case conversion commands are @kbd{C-x C-u}
 +(@code{upcase-region}) and @kbd{C-x C-l} (@code{downcase-region}), which
 +convert everything between point and mark to the specified case.  Point and
 +mark do not move.
 +
 +  The region case conversion commands @code{upcase-region} and
 +@code{downcase-region} are normally disabled.  This means that they ask
 +for confirmation if you try to use them.  When you confirm, you may
 +enable the command, which means it will not ask for confirmation again.
 +@xref{Disabling}.
 +
 +@node Text Mode
 +@section Text Mode
 +@cindex Text mode
 +@cindex mode, Text
 +@findex text-mode
 +
 +  When you edit files of text in a human language, it's more convenient
 +to use Text mode rather than Fundamental mode.  To enter Text mode, type
 +@kbd{M-x text-mode}.
 +
 +  In Text mode, only blank lines and page delimiters separate
 +paragraphs.  As a result, paragraphs can be indented, and adaptive
 +filling determines what indentation to use when filling a paragraph.
 +@xref{Adaptive Fill}.
 +
 +@kindex TAB @r{(Text mode)}
 +  Text mode defines @key{TAB} to run @code{indent-relative}
 +(@pxref{Indentation}), so that you can conveniently indent a line like
 +the previous line.
 +
 +  Text mode turns off the features concerned with comments except when
 +you explicitly invoke them.  It changes the syntax table so that
 +single-quotes are considered part of words.  However, if a word starts
 +with single-quotes, these are treated as a prefix for purposes such as
 +capitalization.  That is, @kbd{M-c} will convert @samp{'hello'} into
 +@samp{'Hello'}, as expected.
 +
 +@cindex Paragraph-Indent Text mode
 +@cindex mode, Paragraph-Indent Text
 +@findex paragraph-indent-text-mode
 +@findex paragraph-indent-minor-mode
 +  If you indent the first lines of paragraphs, then you should use
 +Paragraph-Indent Text mode rather than Text mode.  In this mode, you
 +do not need to have blank lines between paragraphs, because the
 +first-line indentation is sufficient to start a paragraph; however
 +paragraphs in which every line is indented are not supported.  Use
 +@kbd{M-x paragraph-indent-text-mode} to enter this mode.  Use @kbd{M-x
 +paragraph-indent-minor-mode} to enable an equivalent minor mode in
 +situations where you can't change the major mode---in mail
 +composition, for instance.
 +
 +@kindex M-TAB @r{(Text mode)}
 +  Text mode, and all the modes based on it, define @kbd{M-@key{TAB}}
 +as the command @code{ispell-complete-word}, which performs completion
 +of the partial word in the buffer before point, using the spelling
 +dictionary as the space of possible words.  @xref{Spelling}.  If your
 +window manager defines @kbd{M-@key{TAB}} to switch windows, you can
 +type @kbd{@key{ESC} @key{TAB}} or @kbd{C-M-i}.
 +
 +@vindex text-mode-hook
 +  Entering Text mode runs the hook @code{text-mode-hook}.  Other major
 +modes related to Text mode also run this hook, followed by hooks of
 +their own; this includes Paragraph-Indent Text mode, Nroff mode, @TeX{}
 +mode, Outline mode, and Mail mode.  Hook functions on
 +@code{text-mode-hook} can look at the value of @code{major-mode} to see
 +which of these modes is actually being entered.  @xref{Hooks}.
 +
 +@ifnottex
 +  Emacs provides two other modes for editing text that is to be passed
 +through a text formatter to produce fancy formatted printed output.
 +@xref{Nroff Mode}, for editing input to the formatter nroff.
 +@xref{TeX Mode,,@TeX{} Mode}, for editing input to the formatter TeX.
 +
 +  Another mode is used for editing outlines.  It allows you to view the
 +text at various levels of detail.  You can view either the outline
 +headings alone or both headings and text; you can also hide some of the
 +headings at lower levels from view to make the high level structure more
 +visible.  @xref{Outline Mode}.
 +@end ifnottex
 +
 +@node Outline Mode
 +@section Outline Mode
 +@cindex Outline mode
 +@cindex mode, Outline
 +@cindex invisible lines
 +
 +@findex outline-mode
 +@findex outline-minor-mode
 +@vindex outline-minor-mode-prefix
 +  Outline mode is a major mode much like Text mode but intended for
 +editing outlines.  It allows you to make parts of the text temporarily
 +invisible so that you can see the outline structure.  Type @kbd{M-x
 +outline-mode} to switch to Outline mode as the major mode of the current
 +buffer.
 +
 +  When Outline mode makes a line invisible, the line does not appear
 +on the screen.  The screen appears exactly as if the invisible line
 +were deleted, except that an ellipsis (three periods in a row) appears
 +at the end of the previous visible line.  (Multiple consecutive
 +invisible lines produce just one ellipsis.)
 +
 +  Editing commands that operate on lines, such as @kbd{C-n} and
 +@kbd{C-p}, treat the text of the invisible line as part of the previous
 +visible line.  Killing the ellipsis at the end of a visible line
 +really kills all the following invisible lines.
 +
 +  Outline minor mode provides the same commands as the major mode,
 +Outline mode, but you can use it in conjunction with other major modes.
 +Type @kbd{M-x outline-minor-mode} to enable the Outline minor mode in
 +the current buffer.  You can also specify this in the text of a file,
 +with a file local variable of the form @samp{mode: outline-minor}
 +(@pxref{File Variables}).
 +
 +@kindex C-c @@ @r{(Outline minor mode)}
 +  The major mode, Outline mode, provides special key bindings on the
 +@kbd{C-c} prefix.  Outline minor mode provides similar bindings with
 +@kbd{C-c @@} as the prefix; this is to reduce the conflicts with the
 +major mode's special commands.  (The variable
 +@code{outline-minor-mode-prefix} controls the prefix used.)
 +
 +@vindex outline-mode-hook
 +  Entering Outline mode runs the hook @code{text-mode-hook} followed by
 +the hook @code{outline-mode-hook} (@pxref{Hooks}).
 +
 +@menu
 +* Format: Outline Format.        What the text of an outline looks like.
 +* Motion: Outline Motion.        Special commands for moving through
 +                                     outlines.
 +* Visibility: Outline Visibility.  Commands to control what is visible.
 +* Views: Outline Views.            Outlines and multiple views.
 +* Foldout::                        Folding means zooming in on outlines.
 +@end menu
 +
 +@node Outline Format
 +@subsection Format of Outlines
 +
 +@cindex heading lines (Outline mode)
 +@cindex body lines (Outline mode)
 +  Outline mode assumes that the lines in the buffer are of two types:
 +@dfn{heading lines} and @dfn{body lines}.  A heading line represents a
 +topic in the outline.  Heading lines start with one or more stars; the
 +number of stars determines the depth of the heading in the outline
 +structure.  Thus, a heading line with one star is a major topic; all the
 +heading lines with two stars between it and the next one-star heading
 +are its subtopics; and so on.  Any line that is not a heading line is a
 +body line.  Body lines belong with the preceding heading line.  Here is
 +an example:
 +
 +@example
 +* Food
 +This is the body,
 +which says something about the topic of food.
 +
 +** Delicious Food
 +This is the body of the second-level header.
 +
 +** Distasteful Food
 +This could have
 +a body too, with
 +several lines.
 +
 +*** Dormitory Food
 +
 +* Shelter
 +Another first-level topic with its header line.
 +@end example
 +
 +  A heading line together with all following body lines is called
 +collectively an @dfn{entry}.  A heading line together with all following
 +deeper heading lines and their body lines is called a @dfn{subtree}.
 +
 +@vindex outline-regexp
 +  You can customize the criterion for distinguishing heading lines by
 +setting the variable @code{outline-regexp}.  (The recommended ways to
 +do this are in a major mode function or with a file local variable.)
 +Any line whose beginning has a match for this regexp is considered a
 +heading line.  Matches that start within a line (not at the left
 +margin) do not count.
 +
 +  The length of the matching text determines the level of the heading;
 +longer matches make a more deeply nested level.  Thus, for example, if
 +a text formatter has commands @samp{@@chapter}, @samp{@@section} and
 +@samp{@@subsection} to divide the document into chapters and sections,
 +you could make those lines count as heading lines by setting
 +@code{outline-regexp} to @samp{"@@chap\\|@@\\(sub\\)*section"}.  Note
 +the trick: the two words @samp{chapter} and @samp{section} are equally
 +long, but by defining the regexp to match only @samp{chap} we ensure
 +that the length of the text matched on a chapter heading is shorter,
 +so that Outline mode will know that sections are contained in
 +chapters.  This works as long as no other command starts with
 +@samp{@@chap}.
 +
 +@vindex outline-level
 +  You can explicitly specify a rule for calculating the level of a
 +heading line by setting the variable @code{outline-level}.  The value
 +of @code{outline-level} should be a function that takes no arguments
 +and returns the level of the current heading.  The recommended ways to
 +set this variable are in a major mode command or with a file local
 +variable.
 +
 +@node Outline Motion
 +@subsection Outline Motion Commands
 +
 +  Outline mode provides special motion commands that move backward and
 +forward to heading lines.
 +
 +@table @kbd
 +@item C-c C-n
 +Move point to the next visible heading line
 +(@code{outline-next-visible-heading}).
 +@item C-c C-p
 +Move point to the previous visible heading line
 +(@code{outline-previous-visible-heading}).
 +@item C-c C-f
 +Move point to the next visible heading line at the same level
 +as the one point is on (@code{outline-forward-same-level}).
 +@item C-c C-b
 +Move point to the previous visible heading line at the same level
 +(@code{outline-backward-same-level}).
 +@item C-c C-u
 +Move point up to a lower-level (more inclusive) visible heading line
 +(@code{outline-up-heading}).
 +@end table
 +
 +@findex outline-next-visible-heading
 +@findex outline-previous-visible-heading
 +@kindex C-c C-n @r{(Outline mode)}
 +@kindex C-c C-p @r{(Outline mode)}
 +  @kbd{C-c C-n} (@code{outline-next-visible-heading}) moves down to the next
 +heading line.  @kbd{C-c C-p} (@code{outline-previous-visible-heading}) moves
 +similarly backward.  Both accept numeric arguments as repeat counts.  The
 +names emphasize that invisible headings are skipped, but this is not really
 +a special feature.  All editing commands that look for lines ignore the
 +invisible lines automatically.
 +
 +@findex outline-up-heading
 +@findex outline-forward-same-level
 +@findex outline-backward-same-level
 +@kindex C-c C-f @r{(Outline mode)}
 +@kindex C-c C-b @r{(Outline mode)}
 +@kindex C-c C-u @r{(Outline mode)}
 +  More powerful motion commands understand the level structure of headings.
 +@kbd{C-c C-f} (@code{outline-forward-same-level}) and
 +@kbd{C-c C-b} (@code{outline-backward-same-level}) move from one
 +heading line to another visible heading at the same depth in
 +the outline.  @kbd{C-c C-u} (@code{outline-up-heading}) moves
 +backward to another heading that is less deeply nested.
 +
 +@node Outline Visibility
 +@subsection Outline Visibility Commands
 +
 +  The other special commands of outline mode are used to make lines visible
 +or invisible.  Their names all start with @code{hide} or @code{show}.
 +Most of them fall into pairs of opposites.  They are not undoable; instead,
 +you can undo right past them.  Making lines visible or invisible is simply
 +not recorded by the undo mechanism.
 +
 +  Many of these commands act on the ``current'' heading line.  If
 +point is on a heading line, that is the current heading line; if point
 +is on a body line, the current heading line is the nearest preceding
 +header line.
 +
 +@table @kbd
 +@item C-c C-c
 +Make the current heading line's body invisible (@code{hide-entry}).
 +@item C-c C-e
 +Make the current heading line's body visible (@code{show-entry}).
 +@item C-c C-d
 +Make everything under the current heading invisible, not including the
 +heading itself (@code{hide-subtree}).
 +@item C-c C-s
 +Make everything under the current heading visible, including body,
 +subheadings, and their bodies (@code{show-subtree}).
 +@item C-c C-l
 +Make the body of the current heading line, and of all its subheadings,
 +invisible (@code{hide-leaves}).
 +@item C-c C-k
 +Make all subheadings of the current heading line, at all levels,
 +visible (@code{show-branches}).
 +@item C-c C-i
 +Make immediate subheadings (one level down) of the current heading
 +line visible (@code{show-children}).
 +@item C-c C-t
 +Make all body lines in the buffer invisible (@code{hide-body}).
 +@item C-c C-a
 +Make all lines in the buffer visible (@code{show-all}).
 +@item C-c C-q
 +Hide everything except the top @var{n} levels of heading lines
 +(@code{hide-sublevels}).
 +@item C-c C-o
 +Hide everything except for the heading or body that point is in, plus
 +the headings leading up from there to the top level of the outline
 +(@code{hide-other}).
 +@end table
 +
 +@findex hide-entry
 +@findex show-entry
 +@kindex C-c C-c @r{(Outline mode)}
 +@kindex C-c C-e @r{(Outline mode)}
 +  Two commands that are exact opposites are @kbd{C-c C-c}
 +(@code{hide-entry}) and @kbd{C-c C-e} (@code{show-entry}).  They apply
 +to the body lines directly following the current heading line.
 +Subheadings and their bodies are not affected.
 +
 +@findex hide-subtree
 +@findex show-subtree
 +@kindex C-c C-s @r{(Outline mode)}
 +@kindex C-c C-d @r{(Outline mode)}
 +@cindex subtree (Outline mode)
 +  Two more powerful opposites are @kbd{C-c C-d} (@code{hide-subtree})
 +and @kbd{C-c C-s} (@code{show-subtree}).  Both apply to the current
 +heading line's @dfn{subtree}: its body, all its subheadings, both
 +direct and indirect, and all of their bodies.  In other words, the
 +subtree contains everything following the current heading line, up to
 +and not including the next heading of the same or higher rank.
 +
 +@findex hide-leaves
 +@findex show-branches
 +@kindex C-c C-l @r{(Outline mode)}
 +@kindex C-c C-k @r{(Outline mode)}
 +  Intermediate between a visible subtree and an invisible one is having
 +all the subheadings visible but none of the body.  There are two
 +commands for doing this, depending on whether you want to hide the
 +bodies or make the subheadings visible.  They are @kbd{C-c C-l}
 +(@code{hide-leaves}) and @kbd{C-c C-k} (@code{show-branches}).
 +
 +@kindex C-c C-i @r{(Outline mode)}
 +@findex show-children
 +  A little weaker than @code{show-branches} is @kbd{C-c C-i}
 +(@code{show-children}).  It makes just the direct subheadings
 +visible---those one level down.  Deeper subheadings remain invisible, if
 +they were invisible.
 +
 +@findex hide-body
 +@findex show-all
 +@kindex C-c C-t @r{(Outline mode)}
 +@kindex C-c C-a @r{(Outline mode)}
 +  Two commands have a blanket effect on the whole file.  @kbd{C-c C-t}
 +(@code{hide-body}) makes all body lines invisible, so that you see just
 +the outline structure (as a special exception, it will not hide lines
 +at the top of the file, preceding the first header line, even though
 +these are technically body lines).  @kbd{C-c C-a} (@code{show-all})
 +makes all lines visible.  These commands can be thought of as a pair
 +of opposites even though @kbd{C-c C-a} applies to more than just body
 +lines.
 +
 +@findex hide-sublevels
 +@kindex C-c C-q @r{(Outline mode)}
 +  The command @kbd{C-c C-q} (@code{hide-sublevels}) hides all but the
 +top level headings.  With a numeric argument @var{n}, it hides everything
 +except the top @var{n} levels of heading lines.
 +
 +@findex hide-other
 +@kindex C-c C-o @r{(Outline mode)}
 +  The command @kbd{C-c C-o} (@code{hide-other}) hides everything except
 +the heading and body text that point is in, plus its parents (the headers
 +leading up from there to top level in the outline) and the top level
 +headings.
 +
 +@findex reveal-mode
 +  When incremental search finds text that is hidden by Outline mode,
 +it makes that part of the buffer visible.  If you exit the search
 +at that position, the text remains visible.  You can also
 +automatically make text visible as you navigate in it by using
 +@kbd{M-x reveal-mode}.
 +
 +@node Outline Views
 +@subsection Viewing One Outline in Multiple Views
 +
 +@cindex multiple views of outline
 +@cindex views of an outline
 +@cindex outline with multiple views
 +@cindex indirect buffers and outlines
 +  You can display two views of a single outline at the same time, in
 +different windows.  To do this, you must create an indirect buffer using
 +@kbd{M-x make-indirect-buffer}.  The first argument of this command is
 +the existing outline buffer name, and its second argument is the name to
 +use for the new indirect buffer.  @xref{Indirect Buffers}.
 +
 +  Once the indirect buffer exists, you can display it in a window in the
 +normal fashion, with @kbd{C-x 4 b} or other Emacs commands.  The Outline
 +mode commands to show and hide parts of the text operate on each buffer
 +independently; as a result, each buffer can have its own view.  If you
 +want more than two views on the same outline, create additional indirect
 +buffers.
 +
 +@node Foldout
 +@subsection Folding Editing
 +
 +@cindex folding editing
 +  The Foldout package extends Outline mode and Outline minor mode with
 +``folding'' commands.  The idea of folding is that you zoom in on a
 +nested portion of the outline, while hiding its relatives at higher
 +levels.
 +
 +  Consider an Outline mode buffer with all the text and subheadings under
 +level-1 headings hidden.  To look at what is hidden under one of these
 +headings, you could use @kbd{C-c C-e} (@kbd{M-x show-entry}) to expose
 +the body, or @kbd{C-c C-i} to expose the child (level-2) headings.
 +
 +@kindex C-c C-z
 +@findex foldout-zoom-subtree
 +  With Foldout, you use @kbd{C-c C-z} (@kbd{M-x foldout-zoom-subtree}).
 +This exposes the body and child subheadings, and narrows the buffer so
 +that only the @w{level-1} heading, the body and the level-2 headings are
 +visible.  Now to look under one of the level-2 headings, position the
 +cursor on it and use @kbd{C-c C-z} again.  This exposes the level-2 body
 +and its level-3 child subheadings and narrows the buffer again.  Zooming
 +in on successive subheadings can be done as much as you like.  A string
 +in the mode line shows how deep you've gone.
 +
 +  When zooming in on a heading, to see only the child subheadings specify
 +a numeric argument: @kbd{C-u C-c C-z}.  The number of levels of children
 +can be specified too (compare @kbd{M-x show-children}), e.g.@: @kbd{M-2
 +C-c C-z} exposes two levels of child subheadings.  Alternatively, the
 +body can be specified with a negative argument: @kbd{M-- C-c C-z}.  The
 +whole subtree can be expanded, similarly to @kbd{C-c C-s} (@kbd{M-x
 +show-subtree}), by specifying a zero argument: @kbd{M-0 C-c C-z}.
 +
 +  While you're zoomed in, you can still use Outline mode's exposure and
 +hiding functions without disturbing Foldout.  Also, since the buffer is
 +narrowed, ``global'' editing actions will only affect text under the
 +zoomed-in heading.  This is useful for restricting changes to a
 +particular chapter or section of your document.
 +
 +@kindex C-c C-x
 +@findex foldout-exit-fold
 +  To unzoom (exit) a fold, use @kbd{C-c C-x} (@kbd{M-x foldout-exit-fold}).
 +This hides all the text and subheadings under the top-level heading and
 +returns you to the previous view of the buffer.  Specifying a numeric
 +argument exits that many levels of folds.  Specifying a zero argument
 +exits all folds.
 +
 +  To cancel the narrowing of a fold without hiding the text and
 +subheadings, specify a negative argument.  For example, @kbd{M--2 C-c
 +C-x} exits two folds and leaves the text and subheadings exposed.
 +
 +  Foldout mode also provides mouse commands for entering and exiting
 +folds, and for showing and hiding text:
 +
 +@table @asis
 +@item @kbd{C-M-Mouse-1} zooms in on the heading clicked on
 +@itemize @asis
 +@item
 +single click: expose body.
 +@item
 +double click: expose subheadings.
 +@item
 +triple click: expose body and subheadings.
 +@item
 +quad click: expose entire subtree.
 +@end itemize
 +@item @kbd{C-M-Mouse-2} exposes text under the heading clicked on
 +@itemize @asis
 +@item
 +single click: expose body.
 +@item
 +double click: expose subheadings.
 +@item
 +triple click: expose body and subheadings.
 +@item
 +quad click: expose entire subtree.
 +@end itemize
 +@item @kbd{C-M-Mouse-3} hides text under the heading clicked on or exits fold
 +@itemize @asis
 +@item
 +single click: hide subtree.
 +@item
 +double click: exit fold and hide text.
 +@item
 +triple click: exit fold without hiding text.
 +@item
 +quad click: exit all folds and hide text.
 +@end itemize
 +@end table
 +
 +@vindex foldout-mouse-modifiers
 +  You can specify different modifier keys (instead of
 +@kbd{Control-Meta-}) by setting @code{foldout-mouse-modifiers}; but if
 +you have already loaded the @file{foldout.el} library, you must reload
 +it in order for this to take effect.
 +
 +  To use the Foldout package, you can type @kbd{M-x load-library
 +@key{RET} foldout @key{RET}}; or you can arrange for to do that
 +automatically by putting this in your @file{.emacs} file:
 +
 +@example
 +(eval-after-load "outline" '(require 'foldout))
 +@end example
 +
 +@node TeX Mode
 +@section @TeX{} Mode
 +@cindex @TeX{} mode
 +@cindex La@TeX{} mode
 +@cindex Sli@TeX{} mode
 +@cindex Doc@TeX{} mode
 +@cindex mode, @TeX{}
 +@cindex mode, La@TeX{}
 +@cindex mode, Sli@TeX{}
 +@cindex mode, Doc@TeX{}
 +@findex tex-mode
 +@findex plain-tex-mode
 +@findex latex-mode
 +@findex slitex-mode
 +@findex doctex-mode
 +
 +  @TeX{} is a powerful text formatter written by Donald Knuth; it is
 +also free software, like GNU Emacs.  La@TeX{} is a simplified input
 +format for @TeX{}, implemented by @TeX{} macros; it comes with @TeX{}.
 +Sli@TeX{} is a special form of La@TeX{}.@footnote{Sli@TeX{} is
 +obsoleted by the @samp{slides} document class and other alternative
 +packages in recent La@TeX{} versions.}  Doc@TeX{} (@file{.dtx}) is a
 +special file format in which the La@TeX{} sources are written,
 +combining sources with documentation.
 +
 +  Emacs has a special @TeX{} mode for editing @TeX{} input files.
 +It provides facilities for checking the balance of delimiters and for
 +invoking @TeX{} on all or part of the file.
 +
 +@vindex tex-default-mode
 +  @TeX{} mode has four variants: Plain @TeX{} mode, La@TeX{} mode,
 +Sli@TeX{} mode, and Doc@TeX{} mode (these distinct major modes differ
 +only slightly).  They are designed for editing the four different
 +formats.  The command @kbd{M-x tex-mode} looks at the contents of the
 +buffer to determine whether the contents appear to be either La@TeX{}
 +input, Sli@TeX{}, or Doc@TeX{} input; if so, it selects the
 +appropriate mode.  If the file contents do not appear to be La@TeX{},
 +Sli@TeX{} or Doc@TeX{}, it selects Plain @TeX{} mode.  If the contents
 +are insufficient to determine this, the variable
 +@code{tex-default-mode} controls which mode is used.
 +
 +  When @kbd{M-x tex-mode} does not guess right, you can use the commands
 +@kbd{M-x plain-tex-mode}, @kbd{M-x latex-mode}, @kbd{M-x slitex-mode},
 +and @kbd{doctex-mode} to select explicitly the particular variants of
 +@TeX{} mode.
 +
 +@menu
 +* Editing: TeX Editing.   Special commands for editing in TeX mode.
 +* LaTeX: LaTeX Editing.   Additional commands for LaTeX input files.
 +* Printing: TeX Print.    Commands for printing part of a file with TeX.
 +* Misc: TeX Misc.         Customization of TeX mode, and related features.
 +@end menu
 +
 +@node TeX Editing
 +@subsection @TeX{} Editing Commands
 +
 +  Here are the special commands provided in @TeX{} mode for editing the
 +text of the file.
 +
 +@table @kbd
 +@item "
 +Insert, according to context, either @samp{``} or @samp{"} or
 +@samp{''} (@code{tex-insert-quote}).
 +@item C-j
 +Insert a paragraph break (two newlines) and check the previous
 +paragraph for unbalanced braces or dollar signs
 +(@code{tex-terminate-paragraph}).
 +@item M-x tex-validate-region
 +Check each paragraph in the region for unbalanced braces or dollar signs.
 +@item C-c @{
 +Insert @samp{@{@}} and position point between them (@code{tex-insert-braces}).
 +@item C-c @}
 +Move forward past the next unmatched close brace (@code{up-list}).
 +@end table
 +
 +@findex tex-insert-quote
 +@kindex " @r{(@TeX{} mode)}
 +  In @TeX{}, the character @samp{"} is not normally used; we use
 +@samp{``} to start a quotation and @samp{''} to end one.  To make
 +editing easier under this formatting convention, @TeX{} mode overrides
 +the normal meaning of the key @kbd{"} with a command that inserts a pair
 +of single-quotes or backquotes (@code{tex-insert-quote}).  To be
 +precise, this command inserts @samp{``} after whitespace or an open
 +brace, @samp{"} after a backslash, and @samp{''} after any other
 +character.
 +
 +  If you need the character @samp{"} itself in unusual contexts, use
 +@kbd{C-q} to insert it.  Also, @kbd{"} with a numeric argument always
 +inserts that number of @samp{"} characters.  You can turn off the
 +feature of @kbd{"} expansion by eliminating that binding in the local
 +map (@pxref{Key Bindings}).
 +
 +  In @TeX{} mode, @samp{$} has a special syntax code which attempts to
 +understand the way @TeX{} math mode delimiters match.  When you insert a
 +@samp{$} that is meant to exit math mode, the position of the matching
 +@samp{$} that entered math mode is displayed for a second.  This is the
 +same feature that displays the open brace that matches a close brace that
 +is inserted.  However, there is no way to tell whether a @samp{$} enters
 +math mode or leaves it; so when you insert a @samp{$} that enters math
 +mode, the previous @samp{$} position is shown as if it were a match, even
 +though they are actually unrelated.
 +
 +@findex tex-insert-braces
 +@kindex C-c @{ @r{(@TeX{} mode)}
 +@findex up-list
 +@kindex C-c @} @r{(@TeX{} mode)}
 +  @TeX{} uses braces as delimiters that must match.  Some users prefer
 +to keep braces balanced at all times, rather than inserting them
 +singly.  Use @kbd{C-c @{} (@code{tex-insert-braces}) to insert a pair of
 +braces.  It leaves point between the two braces so you can insert the
 +text that belongs inside.  Afterward, use the command @kbd{C-c @}}
 +(@code{up-list}) to move forward past the close brace.
 +
 +@findex tex-validate-region
 +@findex tex-terminate-paragraph
 +@kindex C-j @r{(@TeX{} mode)}
 +  There are two commands for checking the matching of braces.  @kbd{C-j}
 +(@code{tex-terminate-paragraph}) checks the paragraph before point, and
 +inserts two newlines to start a new paragraph.  It outputs a message in
 +the echo area if any mismatch is found.  @kbd{M-x tex-validate-region}
 +checks a region, paragraph by paragraph.  The errors are listed in the
 +@samp{*Occur*} buffer, and you can use @kbd{C-c C-c} or @kbd{Mouse-2} in
 +that buffer to go to a particular mismatch.
 +
 +  Note that Emacs commands count square brackets and parentheses in
 +@TeX{} mode, not just braces.  This is not strictly correct for the
 +purpose of checking @TeX{} syntax.  However, parentheses and square
 +brackets are likely to be used in text as matching delimiters and it is
 +useful for the various motion commands and automatic match display to
 +work with them.
 +
 +@node LaTeX Editing
 +@subsection La@TeX{} Editing Commands
 +
 +  La@TeX{} mode, and its variant, Sli@TeX{} mode, provide a few extra
 +features not applicable to plain @TeX{}.
 +
 +@table @kbd
 +@item C-c C-o
 +Insert @samp{\begin} and @samp{\end} for La@TeX{} block and position
 +point on a line between them (@code{tex-latex-block}).
 +@item C-c C-e
 +Close the innermost La@TeX{} block not yet closed
 +(@code{tex-close-latex-block}).
 +@end table
 +
 +@findex tex-latex-block
 +@kindex C-c C-o @r{(La@TeX{} mode)}
 +@vindex latex-block-names
 +  In La@TeX{} input, @samp{\begin} and @samp{\end} commands are used to
 +group blocks of text.  To insert a @samp{\begin} and a matching
 +@samp{\end} (on a new line following the @samp{\begin}), use @kbd{C-c
 +C-o} (@code{tex-latex-block}).  A blank line is inserted between the
 +two, and point is left there.  You can use completion when you enter the
 +block type; to specify additional block type names beyond the standard
 +list, set the variable @code{latex-block-names}.  For example, here's
 +how to add @samp{theorem}, @samp{corollary}, and @samp{proof}:
 +
 +@example
 +(setq latex-block-names '("theorem" "corollary" "proof"))
 +@end example
 +
 +@findex tex-close-latex-block
 +@kindex C-c C-e @r{(La@TeX{} mode)}
 +  In La@TeX{} input, @samp{\begin} and @samp{\end} commands must
 +balance.  You can use @kbd{C-c C-e} (@code{tex-close-latex-block}) to
 +insert automatically a matching @samp{\end} to match the last unmatched
 +@samp{\begin}.  It indents the @samp{\end} to match the corresponding
 +@samp{\begin}.  It inserts a newline after @samp{\end} if point is at
 +the beginning of a line.
 +
 +@node TeX Print
 +@subsection @TeX{} Printing Commands
 +
 +  You can invoke @TeX{} as an inferior of Emacs on either the entire
 +contents of the buffer or just a region at a time.  Running @TeX{} in
 +this way on just one chapter is a good way to see what your changes
 +look like without taking the time to format the entire file.
 +
 +@table @kbd
 +@item C-c C-r
 +Invoke @TeX{} on the current region, together with the buffer's header
 +(@code{tex-region}).
 +@item C-c C-b
 +Invoke @TeX{} on the entire current buffer (@code{tex-buffer}).
 +@item C-c @key{TAB}
 +Invoke Bib@TeX{} on the current file (@code{tex-bibtex-file}).
 +@item C-c C-f
 +Invoke @TeX{} on the current file (@code{tex-file}).
 +@item C-c C-l
 +Recenter the window showing output from the inferior @TeX{} so that
 +the last line can be seen (@code{tex-recenter-output-buffer}).
 +@item C-c C-k
 +Kill the @TeX{} subprocess (@code{tex-kill-job}).
 +@item C-c C-p
 +Print the output from the last @kbd{C-c C-r}, @kbd{C-c C-b}, or @kbd{C-c
 +C-f} command (@code{tex-print}).
 +@item C-c C-v
 +Preview the output from the last @kbd{C-c C-r}, @kbd{C-c C-b}, or @kbd{C-c
 +C-f} command (@code{tex-view}).
 +@item C-c C-q
 +Show the printer queue (@code{tex-show-print-queue}).
 +@item C-c C-c
 +Invoke some other compilation command on the entire current buffer
 +(@code{tex-compile}).
 +@end table
 +
 +@findex tex-buffer
 +@kindex C-c C-b @r{(@TeX{} mode)}
 +@findex tex-print
 +@kindex C-c C-p @r{(@TeX{} mode)}
 +@findex tex-view
 +@kindex C-c C-v @r{(@TeX{} mode)}
 +@findex tex-show-print-queue
 +@kindex C-c C-q @r{(@TeX{} mode)}
 +  You can pass the current buffer through an inferior @TeX{} by means of
 +@kbd{C-c C-b} (@code{tex-buffer}).  The formatted output appears in a
 +temporary file; to print it, type @kbd{C-c C-p} (@code{tex-print}).
 +Afterward, you can use @kbd{C-c C-q} (@code{tex-show-print-queue}) to
 +view the progress of your output towards being printed.  If your terminal
 +has the ability to display @TeX{} output files, you can preview the
 +output on the terminal with @kbd{C-c C-v} (@code{tex-view}).
 +
 +@cindex @env{TEXINPUTS} environment variable
 +@vindex tex-directory
 +  You can specify the directory to use for running @TeX{} by setting the
 +variable @code{tex-directory}.  @code{"."} is the default value.  If
 +your environment variable @env{TEXINPUTS} contains relative directory
 +names, or if your files contains @samp{\input} commands with relative
 +file names, then @code{tex-directory} @emph{must} be @code{"."} or you
 +will get the wrong results.  Otherwise, it is safe to specify some other
 +directory, such as @code{"/tmp"}.
 +
 +@vindex tex-run-command
 +@vindex latex-run-command
 +@vindex slitex-run-command
 +@vindex tex-dvi-print-command
 +@vindex tex-dvi-view-command
 +@vindex tex-show-queue-command
 +  If you want to specify which shell commands are used in the inferior @TeX{},
 +you can do so by setting the values of the variables @code{tex-run-command},
 +@code{latex-run-command}, @code{slitex-run-command},
 +@code{tex-dvi-print-command}, @code{tex-dvi-view-command}, and
 +@code{tex-show-queue-command}.  The default values may
 +(or may not) be appropriate for your system.
 +
 +  Normally, the file name given to these commands comes at the end of
 +the command string; for example, @samp{latex @var{filename}}.  In some
 +cases, however, the file name needs to be embedded in the command; an
 +example is when you need to provide the file name as an argument to one
 +command whose output is piped to another.  You can specify where to put
 +the file name with @samp{*} in the command string.  For example,
 +
 +@example
 +(setq tex-dvi-print-command "dvips -f * | lpr")
 +@end example
 +
 +@findex tex-kill-job
 +@kindex C-c C-k @r{(@TeX{} mode)}
 +@findex tex-recenter-output-buffer
 +@kindex C-c C-l @r{(@TeX{} mode)}
 +  The terminal output from @TeX{}, including any error messages, appears
 +in a buffer called @samp{*tex-shell*}.  If @TeX{} gets an error, you can
 +switch to this buffer and feed it input (this works as in Shell mode;
 +@pxref{Interactive Shell}).  Without switching to this buffer you can
 +scroll it so that its last line is visible by typing @kbd{C-c
 +C-l}.
 +
 +  Type @kbd{C-c C-k} (@code{tex-kill-job}) to kill the @TeX{} process if
 +you see that its output is no longer useful.  Using @kbd{C-c C-b} or
 +@kbd{C-c C-r} also kills any @TeX{} process still running.
 +
 +@findex tex-region
 +@kindex C-c C-r @r{(@TeX{} mode)}
 +  You can also pass an arbitrary region through an inferior @TeX{} by typing
 +@kbd{C-c C-r} (@code{tex-region}).  This is tricky, however, because most files
 +of @TeX{} input contain commands at the beginning to set parameters and
 +define macros, without which no later part of the file will format
 +correctly.  To solve this problem, @kbd{C-c C-r} allows you to designate a
 +part of the file as containing essential commands; it is included before
 +the specified region as part of the input to @TeX{}.  The designated part
 +of the file is called the @dfn{header}.
 +
 +@cindex header (@TeX{} mode)
 +  To indicate the bounds of the header in Plain @TeX{} mode, you insert two
 +special strings in the file.  Insert @samp{%**start of header} before the
 +header, and @samp{%**end of header} after it.  Each string must appear
 +entirely on one line, but there may be other text on the line before or
 +after.  The lines containing the two strings are included in the header.
 +If @samp{%**start of header} does not appear within the first 100 lines of
 +the buffer, @kbd{C-c C-r} assumes that there is no header.
 +
 +  In La@TeX{} mode, the header begins with @samp{\documentclass} or
 +@samp{\documentstyle} and ends with @samp{\begin@{document@}}.  These
 +are commands that La@TeX{} requires you to use in any case, so nothing
 +special needs to be done to identify the header.
 +
 +@findex tex-file
 +@kindex C-c C-f @r{(@TeX{} mode)}
 +  The commands (@code{tex-buffer}) and (@code{tex-region}) do all of their
 +work in a temporary directory, and do not have available any of the auxiliary
 +files needed by @TeX{} for cross-references; these commands are generally
 +not suitable for running the final copy in which all of the cross-references
 +need to be correct.
 +
 +  When you want the auxiliary files for cross references, use @kbd{C-c
 +C-f} (@code{tex-file}) which runs @TeX{} on the current buffer's file,
 +in that file's directory.  Before running @TeX{}, it offers to save any
 +modified buffers.  Generally, you need to use (@code{tex-file}) twice to
 +get the cross-references right.
 +
 +@vindex tex-start-options
 +  The value of the variable @code{tex-start-options} specifies
 +options for the @TeX{} run.
 +
 +@vindex tex-start-commands
 +  The value of the variable @code{tex-start-commands} specifies @TeX{}
 +commands for starting @TeX{}.  The default value causes @TeX{} to run
 +in nonstop mode.  To run @TeX{} interactively, set the variable to
 +@code{""}.
 +
 +@vindex tex-main-file
 +  Large @TeX{} documents are often split into several files---one main
 +file, plus subfiles.  Running @TeX{} on a subfile typically does not
 +work; you have to run it on the main file.  In order to make
 +@code{tex-file} useful when you are editing a subfile, you can set the
 +variable @code{tex-main-file} to the name of the main file.  Then
 +@code{tex-file} runs @TeX{} on that file.
 +
 +  The most convenient way to use @code{tex-main-file} is to specify it
 +in a local variable list in each of the subfiles.  @xref{File
 +Variables}.
 +
 +@findex tex-bibtex-file
 +@kindex C-c TAB @r{(@TeX{} mode)}
 +@vindex tex-bibtex-command
 +  For La@TeX{} files, you can use Bib@TeX{} to process the auxiliary
 +file for the current buffer's file.  Bib@TeX{} looks up bibliographic
 +citations in a data base and prepares the cited references for the
 +bibliography section.  The command @kbd{C-c @key{TAB}}
 +(@code{tex-bibtex-file}) runs the shell command
 +(@code{tex-bibtex-command}) to produce a @samp{.bbl} file for the
 +current buffer's file.  Generally, you need to do @kbd{C-c C-f}
 +(@code{tex-file}) once to generate the @samp{.aux} file, then do
 +@kbd{C-c @key{TAB}} (@code{tex-bibtex-file}), and then repeat @kbd{C-c C-f}
 +(@code{tex-file}) twice more to get the cross-references correct.
 +
 +@findex tex-compile
 +@kindex C-c C-c @r{(@TeX{} mode)}
 +  To invoke some other compilation program on the current @TeX{}
 +buffer, type @kbd{C-c C-c} (@code{tex-compile}).  This command knows
 +how to pass arguments to many common programs, including
 +@file{pdflatex}, @file{yap}, @file{xdvi}, and @file{dvips}.  You can
 +select your desired compilation program using the standard completion
 +keys (@pxref{Completion}).
 +
 +@node TeX Misc
 +@subsection @TeX{} Mode Miscellany
 +
 +@vindex tex-shell-hook
 +@vindex tex-mode-hook
 +@vindex latex-mode-hook
 +@vindex slitex-mode-hook
 +@vindex plain-tex-mode-hook
 +  Entering any variant of @TeX{} mode runs the hooks
 +@code{text-mode-hook} and @code{tex-mode-hook}.  Then it runs either
 +@code{plain-tex-mode-hook}, @code{latex-mode-hook}, or
 +@code{slitex-mode-hook}, whichever is appropriate.  Starting the
 +@TeX{} shell runs the hook @code{tex-shell-hook}.  @xref{Hooks}.
 +
 +@findex iso-iso2tex
 +@findex iso-tex2iso
 +@findex iso-iso2gtex
 +@findex iso-gtex2iso
 +@cindex Latin-1 @TeX{} encoding
 +@cindex @TeX{} encoding
 +  The commands @kbd{M-x iso-iso2tex}, @kbd{M-x iso-tex2iso}, @kbd{M-x
 +iso-iso2gtex} and @kbd{M-x iso-gtex2iso} can be used to convert
 +between Latin-1 encoded files and @TeX{}-encoded equivalents.
 +@ignore
 +@c Too cryptic to be useful, too cryptic for me to make it better -- rms.
 +  They
 +are included by default in the @code{format-alist} variable, so they
 +can be used with @kbd{M-x format-find-file}, for instance.
 +@end ignore
 +
 +@ignore  @c Not worth documenting if it is only for Czech -- rms.
 +@findex tildify-buffer
 +@findex tildify-region
 +@cindex ties, @TeX{}, inserting
 +@cindex hard spaces, @TeX{}, inserting
 +  The commands @kbd{M-x tildify-buffer} and @kbd{M-x tildify-region}
 +insert @samp{~} (@dfn{tie}) characters where they are conventionally
 +required.  This is set up for Czech---customize the group
 +@samp{tildify} for other languages or for other sorts of markup.
 +@end ignore
 +
 +@cindex Ref@TeX{} package
 +@cindex references, La@TeX{}
 +@cindex La@TeX{} references
 +  For managing all kinds of references for La@TeX{}, you can use
 +Ref@TeX{}.  @inforef{Top,, reftex}.
 +
 +@node HTML Mode
 +@section SGML, XML, and HTML Modes
 +
 +  The major modes for SGML and HTML include indentation support and
 +commands to operate on tags.  This section describes the special
 +commands of these modes.  (HTML mode is a slightly customized variant
 +of SGML mode.)
 +
 +@table @kbd
 +@item C-c C-n
 +@kindex C-c C-n @r{(SGML mode)}
 +@findex sgml-name-char
 +Interactively specify a special character and insert the SGML
 +@samp{&}-command for that character.
 +
 +@item C-c C-t
 +@kindex C-c C-t @r{(SGML mode)}
 +@findex sgml-tag
 +Interactively specify a tag and its attributes (@code{sgml-tag}).
 +This command asks you for a tag name and for the attribute values,
 +then inserts both the opening tag and the closing tag, leaving point
 +between them.
 +
 +With a prefix argument @var{n}, the command puts the tag around the
 +@var{n} words already present in the buffer after point.  With
 +@minus{}1 as argument, it puts the tag around the region.  (In
 +Transient Mark mode, it does this whenever a region is active.)
 +
 +@item C-c C-a
 +@kindex C-c C-a @r{(SGML mode)}
 +@findex sgml-attributes
 +Interactively insert attribute values for the current tag
 +(@code{sgml-attributes}).
 +
 +@item C-c C-f
 +@kindex C-c C-f @r{(SGML mode)}
 +@findex sgml-skip-tag-forward
 +Skip across a balanced tag group (which extends from an opening tag
 +through its corresponding closing tag) (@code{sgml-skip-tag-forward}).
 +A numeric argument acts as a repeat count.
 +
 +@item C-c C-b
 +@kindex C-c C-b @r{(SGML mode)}
 +@findex sgml-skip-tag-backward
 +Skip backward across a balanced tag group (which extends from an
 +opening tag through its corresponding closing tag)
 +(@code{sgml-skip-tag-forward}).  A numeric argument acts as a repeat
 +count.
 +
 +@item C-c C-d
 +@kindex C-c C-d @r{(SGML mode)}
 +@findex sgml-delete-tag
 +Delete the tag at or after point, and delete the matching tag too
 +(@code{sgml-delete-tag}).  If the tag at or after point is an opening
 +tag, delete the closing tag too; if it is a closing tag, delete the
 +opening tag too.
 +
 +@item C-c ? @var{tag} @key{RET}
 +@kindex C-c ? @r{(SGML mode)}
 +@findex sgml-tag-help
 +Display a description of the meaning of tag @var{tag}
 +(@code{sgml-tag-help}).  If the argument @var{tag} is empty, describe
 +the tag at point.
 +
 +@item C-c /
 +@kindex C-c / @r{(SGML mode)}
 +@findex sgml-close-tag
 +Insert a close tag for the innermost unterminated tag
 +(@code{sgml-close-tag}).  If called from within a tag or a comment,
 +close this element instead of inserting a close tag.
 +
 +@item C-c 8
 +@kindex C-c 8 @r{(SGML mode)}
 +@findex sgml-name-8bit-mode
 +Toggle a minor mode in which Latin-1 characters insert the
 +corresponding SGML commands that stand for them, instead of the
 +characters themselves (@code{sgml-name-8bit-mode}).
 +
 +@item C-c C-v
 +@kindex C-c C-v @r{(SGML mode)}
 +@findex sgml-validate
 +Run a shell command (which you must specify) to validate the current
 +buffer as SGML (@code{sgml-validate}).
 +
 +@item C-c TAB
 +@kindex C-c TAB @r{(SGML mode)}
 +@findex sgml-tags-invisible
 +Toggle the visibility of existing tags in the buffer.  This can be
 +used as a cheap preview.
 +@end table
 +
 +@vindex sgml-xml-mode
 +  SGML mode and HTML mode support XML also.  In XML, every opening tag
 +must have an explicit closing tag.  When @code{sgml-xml-mode} is
 +non-@code{nil}, SGML mode and HTML mode always insert explicit
 +closing tags.  When you visit a file, these modes determine from the
 +file contents whether it is XML or not, and set @code{sgml-xml-mode}
 +accordingly, so that they do the right thing for the file in either
 +case.
 +
 +@node Nroff Mode
 +@section Nroff Mode
 +
 +@cindex nroff
 +@findex nroff-mode
 +  Nroff mode is a mode like Text mode but modified to handle nroff commands
 +present in the text.  Invoke @kbd{M-x nroff-mode} to enter this mode.  It
 +differs from Text mode in only a few ways.  All nroff command lines are
 +considered paragraph separators, so that filling will never garble the
 +nroff commands.  Pages are separated by @samp{.bp} commands.  Comments
 +start with backslash-doublequote.  Also, three special commands are
 +provided that are not in Text mode:
 +
 +@findex forward-text-line
 +@findex backward-text-line
 +@findex count-text-lines
 +@kindex M-n @r{(Nroff mode)}
 +@kindex M-p @r{(Nroff mode)}
 +@kindex M-? @r{(Nroff mode)}
 +@table @kbd
 +@item M-n
 +Move to the beginning of the next line that isn't an nroff command
 +(@code{forward-text-line}).  An argument is a repeat count.
 +@item M-p
 +Like @kbd{M-n} but move up (@code{backward-text-line}).
 +@item M-?
 +Displays in the echo area the number of text lines (lines that are not
 +nroff commands) in the region (@code{count-text-lines}).
 +@end table
 +
 +@findex electric-nroff-mode
 +  The other feature of Nroff mode is that you can turn on Electric Nroff
 +mode.  This is a minor mode that you can turn on or off with @kbd{M-x
 +electric-nroff-mode} (@pxref{Minor Modes}).  When the mode is on, each
 +time you use @key{RET} to end a line that contains an nroff command that
 +opens a kind of grouping, the matching nroff command to close that
 +grouping is automatically inserted on the following line.  For example,
 +if you are at the beginning of a line and type @kbd{.@: ( b @key{RET}},
 +this inserts the matching command @samp{.)b} on a new line following
 +point.
 +
 +  If you use Outline minor mode with Nroff mode (@pxref{Outline Mode}),
 +heading lines are lines of the form @samp{.H} followed by a number (the
 +header level).
 +
 +@vindex nroff-mode-hook
 +  Entering Nroff mode runs the hook @code{text-mode-hook}, followed by
 +the hook @code{nroff-mode-hook} (@pxref{Hooks}).
 +
 +@node Formatted Text
 +@section Editing Formatted Text
 +
 +@cindex Enriched mode
 +@cindex mode, Enriched
 +@cindex formatted text
 +@cindex WYSIWYG
 +@cindex word processing
 +  @dfn{Enriched mode} is a minor mode for editing files that contain
 +formatted text in WYSIWYG fashion, as in a word processor.  Currently,
 +formatted text in Enriched mode can specify fonts, colors, underlining,
 +margins, and types of filling and justification.  In the future, we plan
 +to implement other formatting features as well.
 +
 +  Enriched mode is a minor mode (@pxref{Minor Modes}).  It is
 +typically used in conjunction with Text mode (@pxref{Text Mode}), but
 +you can also use it with other major modes such as Outline mode and
 +Paragraph-Indent Text mode.
 +
 +@cindex text/enriched MIME format
 +  Potentially, Emacs can store formatted text files in various file
 +formats.  Currently, only one format is implemented: @dfn{text/enriched}
 +format, which is defined by the MIME protocol.  @xref{Format
 +Conversion,, Format Conversion, elisp, the Emacs Lisp Reference Manual},
 +for details of how Emacs recognizes and converts file formats.
 +
 +  The Emacs distribution contains a formatted text file that can serve as
 +an example.  Its name is @file{etc/enriched.doc}.  It contains samples
 +illustrating all the features described in this section.  It also
 +contains a list of ideas for future enhancements.
 +
 +@menu
 +* Requesting Formatted Text::   Entering and exiting Enriched mode.
 +* Hard and Soft Newlines::      There are two different kinds of newlines.
 +* Editing Format Info::         How to edit text properties.
 +* Faces: Format Faces.          Bold, italic, underline, etc.
 +* Color: Format Colors.         Changing the color of text.
 +* Indent: Format Indentation.   Changing the left and right margins.
 +* Justification: Format Justification.
 +                                Centering, setting text flush with the
 +                                  left or right margin, etc.
-   Most of the items in the Text Properties menu lead to other submenus.
- These are described in the sections that follow.  Some items run
- commands directly:
++* Special: Format Properties.   The "special" text properties submenu.
 +* Forcing Enriched Mode::       How to force use of Enriched mode.
 +@end menu
 +
 +@node Requesting Formatted Text
 +@subsection Requesting to Edit Formatted Text
 +
 +  Whenever you visit a file that Emacs saved in the text/enriched
 +format, Emacs automatically converts the formatting information in the
 +file into Emacs's own internal format (known as @dfn{text
 +properties}), and turns on Enriched mode.
 +
 +@findex enriched-mode
 +  To create a new file of formatted text, first visit the nonexistent
 +file, then type @kbd{M-x enriched-mode} before you start inserting text.
 +This command turns on Enriched mode.  Do this before you begin inserting
 +text, to ensure that the text you insert is handled properly.
 +
 +  More generally, the command @code{enriched-mode} turns Enriched mode
 +on if it was off, and off if it was on.  With a prefix argument, this
 +command turns Enriched mode on if the argument is positive, and turns
 +the mode off otherwise.
 +
 +  When you save a buffer while Enriched mode is enabled in it, Emacs
 +automatically converts the text to text/enriched format while writing it
 +into the file.  When you visit the file again, Emacs will automatically
 +recognize the format, reconvert the text, and turn on Enriched mode
 +again.
 +
 +@vindex enriched-translations
 +  You can add annotations for saving additional text properties, which
 +Emacs normally does not save, by adding to @code{enriched-translations}.
 +Note that the text/enriched standard requires any non-standard
 +annotations to have names starting with @samp{x-}, as in
 +@samp{x-read-only}.  This ensures that they will not conflict with
 +standard annotations that may be added later.
 +
 +  @xref{Text Properties,,, elisp, the Emacs Lisp Reference Manual},
 +for more information about text properties.
 +
 +@node Hard and Soft Newlines
 +@subsection Hard and Soft Newlines
 +@cindex hard newline
 +@cindex soft newline
 +@cindex newlines, hard and soft
 +
 +@cindex use-hard-newlines
 +  In formatted text, Emacs distinguishes between two different kinds of
 +newlines, @dfn{hard} newlines and @dfn{soft} newlines.  (You can enable
 +or disable this feature separately in any  buffer with the command
 +@code{use-hard-newlines}.)
 +
 +  Hard newlines are used to separate paragraphs, or items in a list, or
 +anywhere that there should always be a line break regardless of the
 +margins.  The @key{RET} command (@code{newline}) and @kbd{C-o}
 +(@code{open-line}) insert hard newlines.
 +
 +  Soft newlines are used to make text fit between the margins.  All the
 +fill commands, including Auto Fill, insert soft newlines---and they
 +delete only soft newlines.
 +
 +  Although hard and soft newlines look the same, it is important to bear
 +the difference in mind.  Do not use @key{RET} to break lines in the
 +middle of filled paragraphs, or else you will get hard newlines that are
 +barriers to further filling.  Instead, let Auto Fill mode break lines,
 +so that if the text or the margins change, Emacs can refill the lines
 +properly.  @xref{Auto Fill}.
 +
 +  On the other hand, in tables and lists, where the lines should always
 +remain as you type them, you can use @key{RET} to end lines.  For these
 +lines, you may also want to set the justification style to
 +@code{unfilled}.  @xref{Format Justification}.
 +
 +@node Editing Format Info
 +@subsection Editing Format Information
 +
 +  There are two ways to alter the formatting information for a formatted
 +text file: with keyboard commands, and with the mouse.
 +
 +  The easiest way to add properties to your document is with the Text
 +Properties menu.  You can get to this menu in two ways: from the Edit
 +menu in the menu bar (use @kbd{@key{F10} e t} if you have no mouse),
 +or with @kbd{C-Mouse-2} (hold the @key{CTRL} key and press the middle
 +mouse button).  There are also keyboard commands described in the
 +following section.
 +
-   The Faces submenu lists various Emacs faces including @code{bold},
- @code{italic}, and @code{underline} (@pxref{Faces}).  These menu items
- operate on the region if it is active and nonempty.  Otherwise, they
- specify to use that face for an immediately following self-inserting
- character.  Instead of the menu, you can use these keyboard commands:
++  These items in the Text Properties menu run commands directly:
 +
 +@table @code
 +@findex facemenu-remove-face-props
 +@item Remove Face Properties
 +Delete from the region all face and color text properties
 +(@code{facemenu-remove-face-props}).
 +
 +@findex facemenu-remove-all
 +@item Remove Text Properties
 +Delete @emph{all} text properties from the region
 +(@code{facemenu-remove-all}).
 +
 +@findex describe-text-properties
 +@cindex text properties of characters
 +@cindex overlays at character position
 +@cindex widgets at buffer position
 +@cindex buttons at buffer position
 +@item Describe Properties
 +List all the text properties, widgets, buttons, and overlays of the
 +character following point (@code{describe-text-properties}).
 +
 +@item Display Faces
 +Display a list of all the defined faces (@code{list-faces-display}).
 +
 +@item Display Colors
 +Display a list of all the defined colors (@code{list-colors-display}).
 +@end table
 +
++@ifinfo
++  Other items in the Text Properties menu lead to submenus:
++
++@menu
++* Faces: Format Faces.          Bold, italic, underline, etc.
++* Color: Format Colors.         Changing the color of text.
++* Indent: Format Indentation.   Changing the left and right margins.
++* Justification: Format Justification.
++                                Centering, setting text flush with the
++                                  left or right margin, etc.
++* Special: Format Properties.   The "special" text properties submenu.
++@end menu
++@end ifinfo
++@ifnotinfo
++  The rest lead to submenus which are described in the following sections.
++@end ifnotinfo
++
 +@node Format Faces
 +@subsection Faces in Formatted Text
 +
- text.  There is a menu for specifying the foreground color and a menu
- for specifying the background color.  Each color menu lists all the
- colors that you have used in Enriched mode in the current Emacs session.
++  The Faces submenu under Text Properties lists various Emacs faces
++including @code{bold}, @code{italic}, and @code{underline}
++(@pxref{Faces}).  These menu items operate on the region if it is
++active and nonempty.  Otherwise, they specify to use that face for an
++immediately following self-inserting character.  There is also an item
++@samp{Other} with which you can enter a face name through the
++minibuffer (@pxref{Standard Faces}).
++
++  Instead of the Faces submenu, you can use these keyboard commands:
 +
 +@table @kbd
 +@kindex M-o d @r{(Enriched mode)}
 +@findex facemenu-set-default
 +@item M-o d
 +Remove all @code{face} properties from the region (which includes
 +specified colors), or force the following inserted character to have no
 +@code{face} property (@code{facemenu-set-default}).
 +@kindex M-o b @r{(Enriched mode)}
 +@findex facemenu-set-bold
 +@item M-o b
 +Add the face @code{bold} to the region or to the following inserted
 +character (@code{facemenu-set-bold}).
 +@kindex M-o i @r{(Enriched mode)}
 +@findex facemenu-set-italic
 +@item M-o i
 +Add the face @code{italic} to the region or to the following inserted
 +character (@code{facemenu-set-italic}).
 +@kindex M-o l @r{(Enriched mode)}
 +@findex facemenu-set-bold-italic
 +@item M-o l
 +Add the face @code{bold-italic} to the region or to the following
 +inserted character (@code{facemenu-set-bold-italic}).
 +@kindex M-o u @r{(Enriched mode)}
 +@findex facemenu-set-underline
 +@item M-o u
 +Add the face @code{underline} to the region or to the following inserted
 +character (@code{facemenu-set-underline}).
 +@kindex M-o o @r{(Enriched mode)}
 +@findex facemenu-set-face
 +@item M-o o @var{face} @key{RET}
 +Add the face @var{face} to the region or to the following inserted
 +character (@code{facemenu-set-face}).
 +@end table
 +
 +   With a prefix argument, all these commands apply to an immediately
 +following self-inserting character, disregarding the region.
 +
 +  A self-inserting character normally inherits the @code{face}
 +property (and most other text properties) from the preceding character
 +in the buffer.  If you use the above commands to specify face for the
 +next self-inserting character, or the next section's commands to
 +specify a foreground or background color for it, then it does not
 +inherit the @code{face} property from the preceding character; instead
 +it uses whatever you specified.  It will still inherit other text
 +properties, though.
 +
 +  Strictly speaking, these commands apply only to the first following
 +self-inserting character that you type.  But if you insert additional
 +characters after it, they will inherit from the first one.  So it
 +appears that these commands apply to all of them.
 +
 +  Enriched mode defines two additional faces: @code{excerpt} and
 +@code{fixed}.  These correspond to codes used in the text/enriched file
 +format.
 +
 +  The @code{excerpt} face is intended for quotations.  This face is the
 +same as @code{italic} unless you customize it (@pxref{Face Customization}).
 +
 +  The @code{fixed} face means, ``Use a fixed-width font for this part
 +of the text.''  Applying the @code{fixed} face to a part of the text
 +will cause that part of the text to appear in a fixed-width font, even
 +if the default font is variable-width.  This applies to Emacs and to
 +other systems that display text/enriched format.  So if you
 +specifically want a certain part of the text to use a fixed-width
 +font, you should specify the @code{fixed} face for that part.
 +
 +  By default, the @code{fixed} face looks the same as @code{bold}.
 +This is an attempt to distinguish it from @code{default}.  You may
 +wish to customize @code{fixed} to some other fixed-width medium font.
 +@xref{Face Customization}.
 +
 +  If your terminal cannot display different faces, you will not be
 +able to see them, but you can still edit documents containing faces,
 +and even add faces and colors to documents.  The faces you specify
 +will be visible when the file is viewed on a terminal that can display
 +them.
 +
 +@node Format Colors
 +@subsection Colors in Formatted Text
 +
 +  You can specify foreground and background colors for portions of the
-   Each color menu contains one additional item: @samp{Other}.  You can use
- this item to specify a color that is not listed in the menu; it reads
- the color name with the minibuffer.  To display a list of available colors
- and their names, use the @samp{Display Colors} menu item in the Text
- Properties menu (@pxref{Editing Format Info}).
++text.  Under Text Properties there is a submenu for specifying the
++foreground color, and a submenu for specifying the background color.
++Each one lists all the colors that you have used in Enriched mode in
++the current Emacs session.
 +
 +  If you specify a color with a prefix argument---or, in Transient
 +Mark mode, if the region is not active---then it applies to any
 +immediately following self-inserting input.  Otherwise, the command
 +applies to the region.
 +
-   The Indentation submenu provides a convenient interface for specifying
- these properties.  The submenu contains four items:
++  Each of the two color submenus contains one additional item:
++@samp{Other}.  You can use this item to specify a color that is not
++listed in the menu; it reads the color name with the minibuffer.  To
++display a list of available colors and their names, use the
++@samp{Display Colors} menu item in the Text Properties menu
++(@pxref{Editing Format Info}).
 +
 +  Any color that you specify in this way, or that is mentioned in a
 +formatted text file that you read in, is added to the corresponding
 +color menu for the duration of the Emacs session.
 +
 +@findex facemenu-set-foreground
 +@findex facemenu-set-background
 +  There are no predefined key bindings for specifying colors, but you can do so
 +with the extended commands @kbd{M-x facemenu-set-foreground} and
 +@kbd{M-x facemenu-set-background}.  Both of these commands read the name
 +of the color with the minibuffer.
 +
 +@node Format Indentation
 +@subsection Indentation in Formatted Text
 +
 +  When editing formatted text, you can specify different amounts of
 +indentation for the right or left margin of an entire paragraph or a
 +part of a paragraph.  The margins you specify automatically affect the
 +Emacs fill commands (@pxref{Filling}) and line-breaking commands.
 +
-   The Justification submenu provides a convenient interface for specifying
- the style.  The submenu contains five items:
++  The Indentation submenu of Text Properties provides a convenient
++interface for specifying these properties.  The submenu contains four
++items:
 +
 +@table @code
 +@kindex C-x TAB @r{(Enriched mode)}
 +@findex increase-left-margin
 +@item Indent More
 +Indent the region by 4 columns (@code{increase-left-margin}).  In
 +Enriched mode, this command is also available on @kbd{C-x @key{TAB}}; if
 +you supply a numeric argument, that says how many columns to add to the
 +margin (a negative argument reduces the number of columns).
 +
 +@item Indent Less
 +Remove 4 columns of indentation from the region.
 +
 +@item Indent Right More
 +Make the text narrower by indenting 4 columns at the right margin.
 +
 +@item Indent Right Less
 +Remove 4 columns of indentation from the right margin.
 +@end table
 +
 +  You can use these commands repeatedly to increase or decrease the
 +indentation.
 +
 +  The most common way to use them is to change the indentation of an
 +entire paragraph.  For other uses, the effects of refilling can be
 +hard to predict, except in some special cases like the one described
 +next.
 +
 +  The most common other use is to format paragraphs with @dfn{hanging
 +indents}, which means that the first line is indented less than
 +subsequent lines.  To set up a hanging indent, increase the
 +indentation of the region starting after the first word of the
 +paragraph and running until the end of the paragraph.
 +
 +  Indenting the first line of a paragraph is easier.  Set the margin for
 +the whole paragraph where you want it to be for the body of the
 +paragraph, then indent the first line by inserting extra spaces or tabs.
 +
 +@vindex standard-indent
 +  The variable @code{standard-indent} specifies how many columns these
 +commands should add to or subtract from the indentation.  The default
 +value is 4.  The overall default right margin for Enriched mode is
 +controlled by the variable @code{fill-column}, as usual.
 +
 +@kindex C-c [ @r{(Enriched mode)}
 +@kindex C-c ] @r{(Enriched mode)}
 +@findex set-left-margin
 +@findex set-right-margin
 +  There are also two commands for setting the left or right margin of
 +the region absolutely: @code{set-left-margin} and
 +@code{set-right-margin}.  Enriched mode binds these commands to
 +@kbd{C-c [} and @kbd{C-c ]}, respectively.  You can specify the
 +margin width either with a numeric argument or in the minibuffer.
 +
 +  Sometimes, as a result of editing, the filling of a paragraph becomes
 +messed up---parts of the paragraph may extend past the left or right
 +margins.  When this happens, use @kbd{M-q} (@code{fill-paragraph}) to
 +refill the paragraph.
 +
 +  The fill prefix, if any, works in addition to the specified paragraph
 +indentation: @kbd{C-x .} does not include the specified indentation's
 +whitespace in the new value for the fill prefix, and the fill commands
 +look for the fill prefix after the indentation on each line.  @xref{Fill
 +Prefix}.
 +
 +@node Format Justification
 +@subsection Justification in Formatted Text
 +
 +  When editing formatted text, you can specify various styles of
 +justification for a paragraph.  The style you specify automatically
 +affects the Emacs fill commands.
 +
-   The Special Properties menu lets you add or remove three other useful text
- properties: @code{read-only}, @code{invisible} and @code{intangible}.
- The @code{intangible} property disallows moving point within the text,
- the @code{invisible} text property hides text from display, and the
- @code{read-only} property disallows alteration of the text.
++  The Justification submenu of Text Properties provides a convenient
++interface for specifying the style.  The submenu contains five items:
 +
 +@table @code
 +@item Left
 +This is the most common style of justification (at least for English).
 +Lines are aligned at the left margin but left uneven at the right.
 +
 +@item Right
 +This aligns each line with the right margin.  Spaces and tabs are added
 +on the left, if necessary, to make lines line up on the right.
 +
 +@item Full
 +This justifies the text, aligning both edges of each line.  Justified
 +text looks very nice in a printed book, where the spaces can all be
 +adjusted equally, but it does not look as nice with a fixed-width font
 +on the screen.  Perhaps a future version of Emacs will be able to adjust
 +the width of spaces in a line to achieve elegant justification.
 +
 +@item Center
 +This centers every line between the current margins.
 +
 +@item Unfilled
 +This turns off filling entirely.  Each line will remain as you wrote it;
 +the fill and auto-fill functions will have no effect on text which has
 +this setting.  You can, however, still indent the left margin.  In
 +unfilled regions, all newlines are treated as hard newlines (@pxref{Hard
 +and Soft Newlines}) .
 +@end table
 +
 +  In Enriched mode, you can also specify justification from the keyboard
 +using the @kbd{M-j} prefix character:
 +
 +@table @kbd
 +@kindex M-j l @r{(Enriched mode)}
 +@findex set-justification-left
 +@item M-j l
 +Make the region left-filled (@code{set-justification-left}).
 +@kindex M-j r @r{(Enriched mode)}
 +@findex set-justification-right
 +@item M-j r
 +Make the region right-filled (@code{set-justification-right}).
 +@kindex M-j b @r{(Enriched mode)}
 +@findex set-justification-full
 +@item M-j b
 +Make the region fully justified (@code{set-justification-full}).
 +@kindex M-j c @r{(Enriched mode)}
 +@kindex M-S @r{(Enriched mode)}
 +@findex set-justification-center
 +@item M-j c
 +@itemx M-S
 +Make the region centered (@code{set-justification-center}).
 +@kindex M-j u @r{(Enriched mode)}
 +@findex set-justification-none
 +@item M-j u
 +Make the region unfilled (@code{set-justification-none}).
 +@end table
 +
 +  Justification styles apply to entire paragraphs.  All the
 +justification-changing commands operate on the paragraph containing
 +point, or, if the region is active, on all paragraphs which overlap the
 +region.
 +
 +@vindex default-justification
 +  The default justification style is specified by the variable
 +@code{default-justification}.  Its value should be one of the symbols
 +@code{left}, @code{right}, @code{full}, @code{center}, or @code{none}.
 +This is a per-buffer variable.  Setting the variable directly affects
 +only the current buffer.  However, customizing it in a Custom buffer
 +sets (as always) the default value for buffers that do not override it.
 +@xref{Locals}, and @ref{Easy Customization}.
 +
 +@node Format Properties
 +@subsection Setting Other Text Properties
 +
++  The Special Properties submenu of Text Properties can add or remove
++three other useful text properties: @code{read-only}, @code{invisible}
++and @code{intangible}.  The @code{intangible} property disallows
++moving point within the text, the @code{invisible} text property hides
++text from display, and the @code{read-only} property disallows
++alteration of the text.
 +
 +  Each of these special properties has a menu item to add it to the
 +region.  The last menu item, @samp{Remove Special}, removes all of these
 +special properties from the text in the region.
 +
 +  Currently, the @code{invisible} and @code{intangible} properties are
 +@emph{not} saved in the text/enriched format.  The @code{read-only}
 +property is saved, but it is not a standard part of the text/enriched
 +format, so other editors may not respect it.
 +
 +@node Forcing Enriched Mode
 +@subsection Forcing Enriched Mode
 +
 +  Normally, Emacs knows when you are editing formatted text because it
 +recognizes the special annotations used in the file that you visited.
 +However, sometimes you must take special actions to convert file
 +contents or turn on Enriched mode:
 +
 +@itemize @bullet
 +@item
 +When you visit a file that was created with some other editor, Emacs may
 +not recognize the file as being in the text/enriched format.  In this
 +case, when you visit the file you will see the formatting commands
 +rather than the formatted text.  Type @kbd{M-x format-decode-buffer} to
 +translate it.  This also automatically turns on Enriched mode.
 +
 +@item
 +When you @emph{insert} a file into a buffer, rather than visiting it,
 +Emacs does the necessary conversions on the text which you insert, but
 +it does not enable Enriched mode.  If you wish to do that, type @kbd{M-x
 +enriched-mode}.
 +@end itemize
 +
 +  The command @code{format-decode-buffer} translates text in various
 +formats into Emacs's internal format.  It asks you to specify the format
 +to translate from; however, normally you can type just @key{RET}, which
 +tells Emacs to guess the format.
 +
 +@findex format-find-file
 +  If you wish to look at a text/enriched file in its raw form, as a
 +sequence of characters rather than as formatted text, use the @kbd{M-x
 +find-file-literally} command.  This visits a file, like
 +@code{find-file}, but does not do format conversion.  It also inhibits
 +character code conversion (@pxref{Coding Systems}) and automatic
 +uncompression (@pxref{Compressed Files}).  To disable format conversion
 +but allow character code conversion and/or automatic uncompression if
 +appropriate, use @code{format-find-file} with suitable arguments.
 +
 +@node Text Based Tables
 +@section Editing Text-based Tables
 +@cindex table mode
 +@cindex text-based tables
 +
 +  Table mode provides an easy and intuitive way to create and edit WYSIWYG
 +text-based tables.  Here is an example of such a table:
 +
 +@smallexample
 +@group
 ++-----------------+--------------------------------+-----------------+
 +|     Command     |          Description           |   Key Binding   |
 ++-----------------+--------------------------------+-----------------+
 +|  forward-char   |Move point right N characters   |       C-f       |
 +|                 |(left if N is negative).        |                 |
 +|                 |                                |                 |
 +|                 |On reaching end of buffer, stop |                 |
 +|                 |and signal error.               |                 |
 ++-----------------+--------------------------------+-----------------+
 +|  backward-char  |Move point left N characters    |       C-b       |
 +|                 |(right if N is negative).       |                 |
 +|                 |                                |                 |
 +|                 |On attempt to pass beginning or |                 |
 +|                 |end of buffer, stop and signal  |                 |
 +|                 |error.                          |                 |
 ++-----------------+--------------------------------+-----------------+
 +@end group
 +@end smallexample
 +
 +  Table mode allows the contents of the table such as this one to be
 +easily manipulated by inserting or deleting characters inside a cell.
 +A cell is effectively a localized rectangular edit region and edits to
 +a cell do not affect the contents of the surrounding cells.  If the
 +contents do not fit into a cell, then the cell is automatically
 +expanded in the vertical and/or horizontal directions and the rest of
 +the table is restructured and reformatted in accordance with the
 +growth of the cell.
 +
 +@menu
 +* Table Definition::          What is a text based table.
 +* Table Creation::            How to create a table.
 +* Table Recognition::         How to activate and deactivate tables.
 +* Cell Commands::             Cell-oriented commands in a table.
 +* Cell Justification::        Justifying cell contents.
 +* Row Commands::              Manipulating rows of table cell.
 +* Column Commands::           Manipulating columns of table cell.
 +* Fixed Width Mode::          Fixing cell width.
 +* Table Conversion::          Converting between plain text and tables.
 +* Measuring Tables::          Analyzing table dimension.
 +* Table Misc::                Table miscellany.
 +@end menu
 +
 +@node Table Definition
 +@subsection What is a Text-based Table?
 +
 +  Keep the following examples of valid tables in mind as a reference
 +while you read this section:
 +
 +@example
 +              +--+----+---+     +-+     +--+-----+
 +              |  |    |   |     | |     |  |     |
 +              +--+----+---+     +-+     |  +--+--+
 +              |  |    |   |             |  |  |  |
 +              +--+----+---+             +--+--+  |
 +                                        |     |  |
 +                                        +-----+--+
 +@end example
 +
 +  A table consists of a rectangular frame whose inside is divided into
 +cells.  Each cell must be at least one character wide and one
 +character high, not counting its border lines.  A cell can be
 +subdivided into multiple rectangular cells, but cells cannot overlap.
 +
 +  The table frame and cell border lines are made of three special
 +characters.  These variables specify those characters:
 +
 +@table @code
 +@vindex table-cell-vertical-char
 +@item table-cell-vertical-char
 +Holds the character used for vertical lines.  The default value is
 +@samp{|}.
 +
 +@vindex table-cell-horizontal-char
 +@item table-cell-horizontal-char
 +Holds the character used for horizontal lines.  The default value is
 +@samp{-}.
 +
 +@vindex table-cell-intersection-char
 +@item table-cell-intersection-char
 +Holds the character used at where horizontal line and vertical line
 +meet.  The default value is @samp{+}.
 +@end table
 +
 +@noindent
 +Based on this definition, the following five tables are examples of invalid
 +tables:
 +
 +@example
 +   +-----+    +-----+       +--+    +-++--+    ++
 +   |     |    |     |       |  |    | ||  |    ++
 +   | +-+ |    |     |       |  |    | ||  |
 +   | | | |    +--+  |    +--+--+    +-++--+
 +   | +-+ |    |  |  |    |  |  |    +-++--+
 +   |     |    |  |  |    |  |  |    | ||  |
 +   +-----+    +--+--+    +--+--+    +-++--+
 +     a           b          c          d        e
 +@end example
 +
 +From left to right:
 +
 +@enumerate a
 +@item
 +Overlapped cells or non-rectangular cells are not allowed.
 +@item
 +Same as a.
 +@item
 +The border must be rectangular.
 +@item
 +Cells must have a minimum width/height of one character.
 +@item
 +Same as d.
 +@end enumerate
 +
 +@node Table Creation
 +@subsection How to Create a Table?
 +@cindex create a text-based table
 +@cindex table creation
 +
 +@findex table-insert
 +  The command to create a table is @code{table-insert}.  When called
 +interactively, it asks for the number of columns, number of rows, cell
 +width and cell height.  The number of columns is the number of cells
 +horizontally side by side.  The number of rows is the number of cells
 +vertically within the table's height.  The cell width is a number of
 +characters that each cell holds, left to right.  The cell height is a
 +number of lines each cell holds.  The cell width and the cell height
 +can be either an integer (when the value is constant across the table)
 +or a series of integer, separated by spaces or commas, where each
 +number corresponds to the next cell within a row from left to right,
 +or the next cell within a column from top to bottom.
 +
 +@node Table Recognition
 +@subsection Table Recognition
 +@cindex table recognition
 +
 +@findex table-recognize
 +@findex table-unrecognize
 +  Table mode maintains special text properties in the buffer to allow
 +editing in a convenient fashion.  When a buffer with tables is saved
 +to its file, these text properties are lost, so when you visit this
 +file again later, Emacs does not see a table, but just formatted text.
 +To resurrect the table text properties, issue the @kbd{M-x
 +table-recognize} command.  It scans the current buffer, recognizes
 +valid table cells, and attaches appropriate text properties to allow
 +for table editing.  The converse command, @code{table-unrecognize}, is
 +used to remove the special text properties and convert the buffer back
 +to plain text.
 +
 +  Special commands exist to enable or disable tables within a region,
 +enable or disable individual tables, and enable/disable individual
 +cells.  These commands are:
 +
 +@table @kbd
 +@findex table-recognize-region
 +@item M-x table-recognize-region
 +Recognize tables within the current region and activate them.
 +@findex table-unrecognize-region
 +@item M-x table-unrecognize-region
 +Deactivate tables within the current region.
 +@findex table-recognize-table
 +@item M-x table-recognize-table
 +Recognize the table under point and activate it.
 +@findex table-unrecognize-table
 +@item M-x table-unrecognize-table
 +Deactivate the table under point.
 +@findex table-recognize-cell
 +@item M-x table-recognize-cell
 +Recognize the cell under point and activate it.
 +@findex table-unrecognize-cell
 +@item M-x table-unrecognize-cell
 +Deactivate the cell under point.
 +@end table
 +
 +  For another way of converting text into tables, see @ref{Table
 +Conversion}.
 +
 +@node Cell Commands
 +@subsection Commands for Table Cells
 +
 +@findex table-forward-cell
 +@findex table-backward-cell
 +  The commands @code{table-forward-cell} and
 +@code{table-backward-cell} move point from the current cell to an
 +adjacent cell forward and backward respectively.  The order of the
 +cells is cyclic: when point is in the last cell of a table, typing
 +@kbd{M-x table-forward-cell} moves to the first cell in the table.
 +Likewise @kbd{M-x table-backward-cell} from the first cell in a table
 +moves to the last cell.
 +
 +@findex table-span-cell
 +  The command @code{table-span-cell} merges the current cell with the
 +adjacent cell in a specified direction---right, left, above or below.
 +You specify the direction with the minibuffer.  It does not allow
 +merges which don't result in a legitimate cell layout.
 +
 +@findex table-split-cell
 +@cindex text-based tables, split a cell
 +@cindex split table cell
 +  The command @code{table-split-cell} splits the current cell
 +vertically or horizontally.  This command is a wrapper to the
 +direction specific commands @code{table-split-cell-vertically} and
 +@code{table-split-cell-horizontally}.  You specify the direction with
 +a minibuffer argument.
 +
 +@findex table-split-cell-vertically
 +  The command @code{table-split-cell-vertically} splits the current
 +cell vertically and creates a pair of cells above and below where
 +point is located.  The content in the original cell is split as well.
 +
 +@findex table-split-cell-horizontally
 +  The command @code{table-split-cell-horizontally} splits the current
 +cell horizontally and creates a pair of cells right and left of where
 +point is located.  If the cell being split is not empty, this asks you
 +how to handle the cell contents.  The three options are: @code{split},
 +@code{left}, or @code{right}.  @code{split} splits the contents at
 +point literally, while the @code{left} and @code{right} options move
 +the entire contents into the left or right cell respectively.
 +
 +@cindex enlarge a table cell
 +@cindex shrink a table cell
 +  The next four commands enlarge or shrink a cell.  They use numeric
 +arguments (@pxref{Arguments}) to specify how many columns or rows to
 +enlarge or shrink a particular table.
 +
 +@table @kbd
 +@findex table-heighten-cell
 +@item M-x table-heighten-cell
 +Enlarge the current cell vertically.
 +@findex table-shorten-cell
 +@item M-x table-shorten-cell
 +Shrink the current cell vertically.
 +@findex table-widen-cell
 +@item M-x table-widen-cell
 +Enlarge the current cell horizontally.
 +@findex table-narrow-cell
 +@item M-x table-narrow-cell
 +Shrink the current cell horizontally.
 +@end table
 +
 +@node Cell Justification
 +@subsection Cell Justification
 +@cindex cell text justification
 +
 +  You can specify text justification for each cell.  The justification
 +is remembered independently for each cell and the subsequent editing
 +of cell contents is subject to the specified justification.
 +
 +@findex table-justify
 +  The command @code{table-justify} ask you to specify what to justify:
 +a cell, a column, or a row.  If you select cell justification, this
 +command sets the justification only for the current cell.  Selecting
 +column or row justification sets the justification for all the cells
 +within a column or row respectively.  The command then ask you which
 +kind of justification to apply: @code{left}, @code{center},
 +@code{right}, @code{top}, @code{middle}, @code{bottom}, or
 +@code{none}.  Horizontal justification and vertical justification are
 +specified independently.  The options @code{left}, @code{center}, and
 +@code{right} specify horizontal justification while the options
 +@code{top}, @code{middle}, @code{bottom}, and @code{none} specify
 +vertical justification.  The vertical justification @code{none}
 +effectively removes vertical justification.  Horizontal justification
 +must be one of @code{left}, @code{center}, or @code{right}.
 +
 +@vindex table-detect-cell-alignment
 +  Justification information is stored in the buffer as a part of text
 +property.  Therefore, this information is ephemeral and does not
 +survive through the loss of the buffer (closing the buffer and
 +revisiting the buffer erase any previous text properties).  To
 +countermand for this, the command @code{table-recognize} and other
 +recognition commands (@pxref{Table Recognition}) are equipped with a
 +convenience feature (turned on by default).  During table recognition,
 +the contents of a cell are examined to determine which justification
 +was originally applied to the cell and then applies this justification
 +to the cell.  This is a speculative algorithm and is therefore not
 +perfect, however, the justification is deduced correctly most of the
 +time.  To disable this feature, customize the variable
 +@code{table-detect-cell-alignment} and set it to @code{nil}.
 +
 +@node Row Commands
 +@subsection Commands for Table Rows
 +@cindex table row commands
 +
 +@cindex insert row in table
 +@findex table-insert-row
 +  The command @code{table-insert-row} inserts a row of cells before
 +the current row in a table.  The current row where point is located is
 +pushed down after the newly inserted row.  A numeric prefix argument
 +specifies the number of rows to insert.  Note that in order to insert
 +rows @emph{after} the last row at the bottom of a table, you must
 +place point below the table---that is, outside the table---prior to
 +invoking this command.
 +
 +@cindex delete row in table
 +@findex table-delete-row
 +  The command @code{table-delete-row} deletes a row of cells at point.
 +A numeric prefix argument specifies the number of rows to delete.
 +
 +@node Column Commands
 +@subsection Commands for Table Columns
 +@cindex table column commands
 +
 +@cindex insert column in table
 +@findex table-insert-column
 +  The command @code{table-insert-column} inserts a column of cells to
 +the left of the current row in a table.  This pushes the current
 +column to the right.  To insert a column to the right side of the
 +rightmost column, place point to the right of the rightmost column,
 +which is outside of the table, prior to invoking this command.  A
 +numeric prefix argument specifies the number of columns to insert.
 +
 +@cindex delete column in table
 +  A command @code{table-delete-column} deletes a column of cells at
 +point.  A numeric prefix argument specifies the number of columns to
 +delete.
 +
 +@node Fixed Width Mode
 +@subsection Fix Width of Cells
 +@cindex fix width of table cells
 +
 +@findex table-fixed-width-mode
 +  The command @code{table-fixed-width-mode} toggles fixed width mode
 +on and off.  When fixed width mode is turned on, editing inside a
 +cell never changes the cell width; when it is off, the cell width
 +expands automatically in order to prevent a word from being folded
 +into multiple lines.  By default, fixed width mode is disabled.
 +
 +@node Table Conversion
 +@subsection Conversion Between Plain Text and Tables
 +@cindex text to table
 +@cindex table to text
 +
 +@findex table-capture
 +  The command @code{table-capture} captures plain text in a region and
 +turns it into a table.  Unlike @code{table-recognize} (@pxref{Table
 +Recognition}), the original text does not have a table appearance but
 +may hold a logical table structure.  For example, some elements
 +separated by known patterns form a two dimensional structure which can
 +be turned into a table.
 +
 +  Here's an example of data that @code{table-capture} can operate on.
 +The numbers are horizontally separated by a comma and vertically
 +separated by a newline character.
 +
 +@example
 +1, 2, 3, 4
 +5, 6, 7, 8
 +, 9, 10
 +@end example
 +
 +@noindent
 +Invoking @kbd{M-x table-capture} on that text produces this table:
 +
 +@example
 ++-----+-----+-----+-----+
 +|1    |2    |3    |4    |
 ++-----+-----+-----+-----+
 +|5    |6    |7    |8    |
 ++-----+-----+-----+-----+
 +|     |9    |10   |     |
 ++-----+-----+-----+-----+
 +@end example
 +
 +@noindent
 +The conversion uses @samp{,} for the column delimiter and newline for
 +a row delimiter, cells are left justified, and minimum cell width is
 +5.
 +
 +@findex table-release
 +  The command @code{table-release} does the opposite of
 +@code{table-capture}.  It releases a table by removing the table frame
 +and cell borders.  This leaves the table contents as plain text.  One
 +of the useful applications of @code{table-capture} and
 +@code{table-release} is to edit a text in layout.  Look at the
 +following three paragraphs (the latter two are indented with header
 +lines):
 +
 +@example
 +@samp{table-capture} is a powerful command, but mastering its
 +power requires some practice.  Here are some things it can do:
 +
 +Parse Cell Items      By using column delimiter regular
 +                      expression and raw delimiter regular
 +                      expression, it parses the specified text
 +                      area and extracts cell items from
 +                      non-table text and then forms a table out
 +                      of them.
 +
 +Capture Text Area     When no delimiters are specified it
 +                      creates a single cell table.  The text in
 +                      the specified region is placed in that
 +                      cell.
 +@end example
 +
 +@noindent
 +Applying @code{table-capture} to a region containing the above three
 +paragraphs, with empty strings for column delimiter regexp and row
 +delimiter regexp, creates a table with a single cell like the
 +following one.
 +
 +@c The first line's right-hand frame in the following two examples
 +@c sticks out to accommodate for the removal of @samp in the
 +@c produced output!!
 +@smallexample
 +@group
 ++-----------------------------------------------------------------+
 +|@samp{table-capture} is a powerful command, but mastering its         |
 +|power requires some practice.  Here are some things it can do:   |
 +|                                                                 |
 +|Parse Cell Items      By using column delimiter regular          |
 +|                      expression and raw delimiter regular       |
 +|                      expression, it parses the specified text   |
 +|                      area and extracts cell items from          |
 +|                      non-table text and then forms a table out  |
 +|                      of them.                                   |
 +|                                                                 |
 +|Capture Text Area     When no delimiters are specified it        |
 +|                      creates a single cell table.  The text in  |
 +|                      the specified region is placed in that     |
 +|                      cell.                                      |
 ++-----------------------------------------------------------------+
 +@end group
 +@end smallexample
 +
 +@noindent
 +By splitting the cell appropriately we now have a table consisting of
 +paragraphs occupying its own cell.  Each cell can now be edited
 +independently without affecting the layout of other cells.
 +
 +@smallexample
 ++-----------------------------------------------------------------+
 +|@samp{table-capture} is a powerful command, but mastering its         |
 +|power requires some practice.  Here are some things it can do:   |
 ++---------------------+-------------------------------------------+
 +|Parse Cell Items     |By using column delimiter regular          |
 +|                     |expression and raw delimiter regular       |
 +|                     |expression, it parses the specified text   |
 +|                     |area and extracts cell items from          |
 +|                     |non-table text and then forms a table out  |
 +|                     |of them.                                   |
 ++---------------------+-------------------------------------------+
 +|Capture Text Area    |When no delimiters are specified it        |
 +|                     |creates a single cell table.  The text in  |
 +|                     |the specified region is placed in that     |
 +|                     |cell.                                      |
 ++---------------------+-------------------------------------------+
 +@end smallexample
 +
 +@noindent
 +By applying @code{table-release}, which does the opposite process, the
 +contents become once again plain text.  @code{table-release} works as
 +a companion command to @code{table-capture}.
 +
 +@node Measuring Tables
 +@subsection Analyzing Table Dimensions
 +@cindex table dimensions
 +
 +@findex table-query-dimension
 +  The command @code{table-query-dimension} analyzes a table structure
 +and reports information regarding its dimensions.  In case of the
 +above example table, the @code{table-query-dimension} command displays
 +in echo area:
 +
 +@smallexample
 +Cell: (21w, 6h), Table: (67w, 16h), Dim: (2c, 3r), Total Cells: 5
 +@end smallexample
 +
 +@noindent
 +This indicates that the current cell is 21 character wide and 6 lines
 +high, the entire table is 67 characters wide and 16 lines high.  The
 +table has 2 columns and 3 rows.  It has a total of 5 cells, since the
 +first row has a spanned cell.
 +
 +@node Table Misc
 +@subsection Table Miscellany
 +
 +@cindex insert string into table cells
 +@findex table-insert-sequence
 +  The command @code{table-insert-sequence} inserts a string into each
 +cell.  Each string is a part of a sequence i.e.@: a series of
 +increasing integer numbers.
 +
 +@cindex table in language format
 +@cindex table for HTML and LaTeX
 +@findex table-generate-source
 +  The command @code{table-generate-source} generates a table formatted
 +for a specific markup language.  It asks for a language (which must be
 +one of @code{html}, @code{latex}, or @code{cals}), a destination
 +buffer where to put the result, and the table caption (a string), and
 +then inserts the generated table in the proper syntax into the
 +destination buffer.  The default destination buffer is
 +@code{table.@var{lang}}, where @var{lang} is the language you
 +specified.
 +
 +@ignore
 +   arch-tag: 8db54ed8-2036-49ca-b0df-23811d03dc70
 +@end ignore
index bfeb88f78300815b81bb72254c3ccc8e6a1d7486,0000000000000000000000000000000000000000..50399b0120eda81f17ece76ff04b5e74c45e8c06
mode 100644,000000..100644
--- /dev/null
@@@ -1,6486 -1,0 +1,6497 @@@
++2007-12-28  Richard Stallman  <rms@gnu.org>
++
++      * frames.texi (Size Parameters): Fix typo.
++      (Basic Parameters): For `title', refer to title bar.
++      (Size and Position): Explain meaning of frame pixel width and height.
++
++2007-12-23  Richard Stallman  <rms@gnu.org>
++
++      * customize.texi (Type Keywords): Uncomment :validate and clarify it.
++      Improve some of the commented-out keywords' text too.
++
 +2007-12-14  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * nonascii.texi (Encoding and I/O): Reword to avoid saying
 +      "visit the current buffer".
 +
 +      * os.texi (System Interface): Fix typo.
 +
 +2007-12-04  Richard Stallman  <rms@gnu.org>
 +
 +      * objects.texi (Symbol Type): Fix typo.
 +
 +2007-12-03  Richard Stallman  <rms@gnu.org>
 +
 +      * hooks.texi (Standard Hooks): Add link to Hooks for Loading.
 +
 +2007-12-01  Glenn Morris  <rgm@gnu.org>
 +
 +      * functions.texi (Declaring Functions): Improve previous change.
 +
 +2007-11-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * functions.texi (Declaring Functions): Add optional fourth
 +      argument of declare-function, and setting third argument to `t'.
 +
 +2007-11-29  Richard Stallman  <rms@gnu.org>
 +
 +      * customize.texi (Composite Types): Document `group' type.
 +
 +2007-11-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * functions.texi (Declaring Functions): Add findex.  Mention
 +      `external' files.
 +
 +2007-11-26  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * functions.texi (Declaring Functions): Fix directive.
 +
 +2007-11-25  Richard Stallman  <rms@gnu.org>
 +
 +      * help.texi (Help Functions): Clean up last change.
 +
 +      * advice.texi (Preactivation, Activation of Advice): Minor cleanup.
 +
 +      * loading.texi (Named Features): Minor cleanup.
 +
 +      * macros.texi (Eval During Expansion): Minor cleanup.
 +
 +      * variables.texi (Variable Aliases): Minor cleanup.
 +
 +2007-11-24  Richard Stallman  <rms@gnu.org>
 +
 +      * functions.texi (Declaring Functions): Clarify previous change.
 +
 +      * compile.texi (Compiler Errors): Clarify previous change.
 +
 +2007-11-24  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Refresh Screen, Forcing Redisplay):
 +      Clarify the text and move items around.
 +
 +2007-11-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * functions.texi (Declaring Functions): New section.
 +      * compile.texi (Compiler Errors): Mention declaring functions,
 +      defvar with no initvalue, and byte-compile-warnings.
 +
 +2007-11-15  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * vol1.texi (Top): Remove Frame-Local Variables from Node Listing.
 +      * vol2.texi (Top): Remove Frame-Local Variables from Node Listing.
 +
 +2007-11-13  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * help.texi (Help Functions): Document new macro `with-help-window'.
 +
 +2007-11-10  Paul Pogonyshev  <pogonyshev@gmx.net>
 +
 +      * searching.texi (Replacing Match): Describe new
 +      `match-substitute-replacement'.
 +
 +2007-10-31  Richard Stallman  <rms@gnu.org>
 +
 +      * strings.texi (Creating Strings): Null strings from concat not unique.
 +
 +2007-10-26  Richard Stallman  <rms@gnu.org>
 +
 +      * objects.texi (Equality Predicates): Null strings are uniquified.
 +
 +      * minibuf.texi: Minor clarifications in previous change.
 +
 +2007-10-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * customize.texi (Variable Definitions): Add :risky and :safe keywords.
 +
 +2007-10-24  Richard Stallman  <rms@gnu.org>
 +
 +      * elisp.texi (Top): Delete Frame-Local Variables from subnode menu.
 +
 +      * variables.texi (Frame-Local Variables): Node deleted.
 +      (Variables): Delete Frame-Local Variables from menu.
 +      (Local Variables, Buffer-Local Variables, Intro to Buffer-Local)
 +      (Default Value): Don't mention frame-local vars.
 +
 +      * os.texi (Idle Timers): current-idle-time returns nil if not idle.
 +
 +      * loading.texi (Unloading): Document FEATURE-unload-function
 +      instead of FEATURE-unload-hook.
 +
 +      * frames.texi (Multiple Displays): Don't mention frame-local vars.
 +
 +2007-10-22  Juri Linkov  <juri@jurta.org>
 +
 +      * minibuf.texi (Text from Minibuffer, Minibuffer Completion)
 +      (High-Level Completion): Document a list of default value strings
 +      in the DEFAULT argument, for which minibuffer functions return the
 +      first element.
 +
 +2007-10-17  Juri Linkov  <juri@jurta.org>
 +
 +      * text.texi (Filling): Update arguments of fill-paragraph.
 +      fill-paragraph operates on the active region in Transient Mark mode.
 +      Remove fill-paragraph-or-region.
 +
 +2007-10-13  Karl Berry  <karl@gnu.org>
 +
 +      * elisp.texi (@dircategory): Move to after @copying,
 +      since we want @copying as close as possible to the beginning of
 +      the output.
 +
 +2007-10-12  Richard Stallman  <rms@gnu.org>
 +
 +      * elisp.texi (Top): Add Distinguish Interactive to subnode menu.
 +
 +      * commands.texi (Distinguish Interactive): New node,
 +      broken out from Interactive Call and rewritten.
 +      (Command Loop): Put Distinguish Interactive in menu.
 +
 +2007-10-09  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Examining Properties): Mention overlay priority.
 +
 +      * display.texi (Display Margins): Correct the description
 +      of margin display specifications.
 +      (Replacing Specs): New subnode broken out of Display Property.
 +
 +2007-10-06  Juri Linkov  <juri@jurta.org>
 +
 +      * text.texi (Filling): Document fill-paragraph-or-region.
 +
 +2007-10-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * display.texi (Auto Faces): Fix typo.
 +
 +2007-10-02  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Display Property): Explain some display specs
 +      don't let you move point in.
 +
 +      * frames.texi (Cursor Parameters): Describe
 +      cursor-in-non-selected-windows here.  Explain more values.
 +
 +      * windows.texi (Basic Windows): Don't describe
 +      cursor-in-non-selected-windows here.
 +
 +2007-10-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * processes.texi (Misc Network): Note that these functions are
 +      supported only on some systems.
 +
 +2007-10-01  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Overlay Properties): Explain nil as priority.
 +      Explain that conflicts are unpredictable if not resolved by
 +      priorities.
 +
 +2007-09-23  Richard Stallman  <rms@gnu.org>
 +
 +      * macros.texi (Backquote): Minor clarification.
 +
 +2007-09-19  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Display Property): Explain multiple display specs.
 +      Clarify when they work in parallel and when one overrides.
 +      Fix error in example.
 +
 +2007-09-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * Move from lispref/ to doc/lispref/.  Change all setfilename
 +      commands to use ../../info.
 +      * Makefile.in (infodir): Go up one more level.
 +      (usermanualdir): Change from ../man to ../emacs.
 +      (miscmanualdir): New.
 +      (dist): Use new variable miscmanualdir.
 +      * makefile.w32-in (infodir, texinputdir): Go up one more level.
 +      (usermanualdir): Change from ../man to ../emacs.
 +
 +2007-08-30  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * commands.texi (Command Loop Info): Advise against changing
 +      most variables described here.  Explain new variable
 +      last-repeatable-command.
 +
 +2007-08-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * elisp.texi (EMACSVER): Increase to 23.0.50.
 +
 +2007-08-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * frames.texi (Basic Parameters): Add display-environment-variable
 +      and term-environment-variable.
 +
 +2007-08-28  Juri Linkov  <juri@jurta.org>
 +
 +      * display.texi (Image Formats, Other Image Types): Add SVG.
 +
 +2007-08-28  Juri Linkov  <juri@jurta.org>
 +
 +      * display.texi (Images): Move formats-related text to new node
 +      "Image Formats".
 +      (Image Formats): New node.
 +
 +2007-08-27  Richard Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Window Configurations): Clarify what
 +      a window configuration saves.
 +
 +2007-08-25  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Images): Delete redundant @findex.
 +
 +2007-08-16  Richard Stallman  <rms@gnu.org>
 +
 +      * processes.texi (Asynchronous Processes): Clarify
 +      doc of start-file-process.
 +
 +2007-08-08  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * modes.texi (Example Major Modes): Fix typo.
 +
 +2007-08-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * intro.texi (nil and t): Do not use `iff' in documentation.
 +
 +      * tips.texi (Documentation Tips): Recommend against `iff'.
 +
 +2007-08-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Image Cache): Document image-refresh.
 +
 +2007-08-06  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * windows.texi (Size of Window): Document window-full-width-p.
 +
 +2007-07-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * gpl.texi (GPL): Replace license with GPLv3.
 +
 +      * Relicense all FSF files to GPLv3 or later.
 +
 +2007-07-24  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * processes.texi (Synchronous Processes):
 +      Add `process-file-shell-command'.
 +      (Asynchronous Processes): Mention restricted use of
 +      `process-filter' and `process-sentinel' in
 +      `start-file-process'.  Add `start-file-process-shell-command'.
 +
 +2007-07-17  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.texi (Magic File Names): Introduce optional parameter
 +      IDENTIFICATION for `file-remote-p'.
 +
 +2007-07-16  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Defining Faces): Fix previous change.
 +
 +2007-07-14  Richard Stallman  <rms@gnu.org>
 +
 +      * control.texi (Handling Errors): Document `debug' in handler list.
 +
 +2007-07-10  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Defining Faces): Explain C-M-x feature for defface.
 +
 +2007-07-09  Richard Stallman  <rms@gnu.org>
 +
 +      * files.texi (Magic File Names): Rewrite previous change.
 +
 +2007-07-08  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.texi (Magic File Names): Introduce optional parameter
 +      CONNECTED for `file-remote-p'.
 +
 +2007-07-07  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * processes.texi (Asynchronous Processes):
 +      * files.texi (Magic File Names): Add `start-file-process'.
 +
 +2007-06-27  Richard Stallman  <rms@gnu.org>
 +
 +      * files.texi (Format Conversion Piecemeal): Clarify
 +      `after-insert-file-functions' calling convention.
 +
 +2007-06-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.texi (Magic File Names): Remove `dired-call-process'.
 +      Add `process-file'.
 +
 +2007-06-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * text.texi (Special Properties): Fix description about
 +      `composition' property.
 +
 +2007-06-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * nonascii.texi (Default Coding Systems): Document about the
 +      return value `undecided'.
 +
 +2007-06-25  David Kastrup  <dak@gnu.org>
 +
 +      * keymaps.texi (Active Keymaps): Document new POSITION argument of
 +      `current-active-maps'.
 +
 +2007-06-24  Karl Berry  <karl@gnu.org>
 +
 +      * elisp.texi, vol1.texi, vol2.texi: New Back-Cover Text.
 +
 +2007-06-15  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * display.texi (Overlay Arrow): Doc fix.
 +
 +2007-06-14  Karl Berry  <karl@tug.org>
 +
 +      * anti.texi (Antinews): Typo.
 +
 +2007-06-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Image Cache): Document image-refresh.
 +
 +2007-06-12  Karl Berry  <karl@gnu.org>
 +
 +      * vol1.texi, vol2.texi, two-volume-cross-refs.txt: Update.
 +      * two-volume.make: New file.
 +      * .cvsignore: Ignore two-volume files.
 +
 +2007-06-12  Tom Tromey  <tromey@redhat.com>
 +
 +      * os.texi (Init File): Document user-emacs-directory.
 +
 +2007-06-03  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * commands.texi (Click Events): Describe width and height when
 +      object is nil.
 +
 +2007-05-30  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * commands.texi (Click Events): Layout more logically.  Describe
 +      width and height.
 +      (Drag Events, Motion Events): Update to new format for position.
 +
 +2007-06-02  Richard Stallman  <rms@gnu.org>
 +
 +      * frames.texi (Color Parameters): Add xref to (emacs)Standard Faces.
 +
 +2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 22.1 released.
 +
 +2007-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * text.texi (Special Properties): Correct meaning of fontified face.
 +
 +2007-05-30  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Special Properties): Add link to Adjusting Point.
 +
 +2007-05-12  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Margins): indent-to-left-margin is not the default.
 +      (Mode-Specific Indent): For indent-line-function, the default
 +      is indent-relative.
 +
 +      * modes.texi (Example Major Modes): Explain last line of text-mode
 +      is redundant.
 +
 +2007-05-10  Richard Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Scanning Keymaps): Update where-is-internal example.
 +
 +      * help.texi (Keys in Documentation): Add reference to
 +      Documentation Tips.
 +
 +      * files.texi (Format Conversion): TO-FN gets three arguments.
 +
 +      * modes.texi (Auto Major Mode): Document file-start-mode-alist.
 +
 +2007-05-10  Thien-Thi Nguyen  <ttn@gnuvola.org>
 +
 +      * elisp.texi (Top): Remove "Saving Properties" from detailed menu.
 +      * files.texi (Format Conversion): Expand intro; add menu.
 +      (Format Conversion Overview, Format Conversion Round-Trip)
 +      (Format Conversion Piecemeal): New nodes/subsections.
 +      * hooks.texi: Xref "Format Conversion" , not "Saving Properties".
 +      * text.texi (Text Properties): Remove "Saving Properties" from menu.
 +      (Saving Properties): Delete node/subsection.
 +
 +2007-05-07  Karl Berry  <karl@gnu.org>
 +
 +      * elisp.texi (EMACSVER): Back to 22.
 +
 +2007-05-06  Richard Stallman  <rms@gnu.org>
 +
 +      * processes.texi (Accepting Output): Revert most of previous change.
 +
 +2007-05-05  Richard Stallman  <rms@gnu.org>
 +
 +      * processes.texi (Accepting Output): accept-process-output
 +      uses microseconds, not milliseconds.  But that arg is obsolete.
 +
 +2007-05-04  Karl Berry  <karl@tug.org>
 +
 +      * elisp.texi (EMACSVER) [smallbook]: 22.1, not 22.
 +
 +2007-05-04  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * tips.texi (Documentation Tips): Rearrange items to place the
 +      more important ones first.  Add an index entry for hyperlinks.
 +
 +2007-05-03  Karl Berry  <karl@gnu.org>
 +
 +      * elisp.texi (\urlcolor, \linkcolor) [smallbook]: \Black for printing.
 +      (EMACSVER) [smallbook]: 22 for printed version.
 +
 +      * control.texi (Signaling Errors) <signal>: texinfo.tex is fixed,
 +      so restore anchor to normal position after defun.  Found by Kevin Ryde.
 +
 +2007-04-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * elisp.texi (EMACSVER): Increase to 22.1.50.
 +
 +2007-04-28  Karl Berry  <karl@gnu.org>
 +
 +      * elisp.texi: Improve line breaks on copyright page,
 +      similar layout to emacs manual, 8.5x11 by default.
 +
 +2007-04-24  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Special Properties): Add xref to Overlay Properties.
 +
 +      * display.texi (Overlay Properties): Add xref to Special Properties.
 +
 +2007-04-22  Richard Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Extended Menu Items): Move the info about
 +      format with cached keyboard binding.
 +
 +2007-04-21  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Special Properties): Clarify previous change.
 +
 +      * files.texi (File Name Expansion): Clarify previous change.
 +
 +      * display.texi (Attribute Functions): Fix example for
 +      face-attribute-relative-p.
 +
 +2007-04-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * text.texi (Special Properties): Document composition property.
 +
 +2007-04-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.texi (File Name Expansion): Mention "superroot".
 +
 +2007-04-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frames.texi (Multiple Displays): Add note about "multi-monitor"
 +      setups.
 +      (Display Feature Testing): Note that display refers to all
 +      physical monitors for multi-monitor setups.
 +
 +2007-04-14  Richard Stallman  <rms@gnu.org>
 +
 +      * lists.texi (Sets And Lists): Clarify `delete' examples.
 +      Remove spurious xref to same node.
 +      Clarify xref for add-to-list.
 +
 +2007-04-12  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * keymaps.texi (Format of Keymaps): Remove spurious ")" from
 +      value of lisp-mode-map.
 +
 +2007-04-11  Karl Berry  <karl@gnu.org>
 +
 +      * anti.texi (Antinews):
 +      * display.texi (Overlay Properties, Defining Images):
 +      * processes.texi (Synchronous Processes, Sentinels):
 +      * syntax.texi (Syntax Table Internals):
 +      * searching.texi (Regexp Special):
 +      * nonascii.texi (Default Coding Systems):
 +      * text.texi (Special Properties):
 +      * minibuf.texi (Basic Completion): Wording to improve breaks in
 +      8.5x11 format.
 +      * elisp.texi (smallbook): New @set to more easily switch between
 +      smallbook and 8.5x11.
 +
 +2007-04-11  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Lazy Properties): Minor fix.
 +
 +2007-04-08  Karl Berry  <karl@gnu.org>
 +
 +      * symbols.texi (Plists and Alists): Period after "vs" in index entries.
 +      * macros.texi (Backquote): Downcase Backquote in index entries for
 +      consistency.
 +
 +2007-04-08  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Adaptive Fill): Just describe default,
 +      don't show it (since it contains non-ASCII chars).
 +
 +2007-04-07  Karl Berry  <karl@gnu.org>
 +
 +      * text.texi (Adaptive Fill) [@iftex]: Omit binary characters in
 +      adaptive-fill-regexp's value, since they are not in the standard
 +      TeX fonts.
 +
 +2007-04-07  Guanpeng Xu  <herberteuler@hotmail.com>
 +
 +      * display.texi (Defining Faces): Fix example.
 +
 +2007-04-07  Karl Berry  <karl@gnu.org>
 +
 +      * display.texi (Button Buffer Commands): Improve page break.
 +
 +2007-04-07  Richard Stallman  <rms@gnu.org>
 +
 +      * advice.texi (Activation of Advice): Remove redundant index entry.
 +
 +      * backups.texi: Improve index entries.  Remove redundant ones.
 +
 +      * compile.texi (Byte Compilation): Improve index entry.
 +
 +      * hash.texi (Creating Hash): Improve index entry.
 +
 +      * symbols.texi (Definitions): Improve index entry.
 +
 +      * edebug.texi: Improve index entries.  Remove redundant/useless ones.
 +
 +      * maps.texi (Standard Keymaps): Remove useless index entry.
 +
 +      * help.texi (Documentation Basics): Remove redundant index entries.
 +
 +      * customize.texi: Improve index entries.
 +      Remove redundant/useless ones.
 +
 +      * locals.texi (Standard Buffer-Local Variables): Clarify intro text.
 +
 +      * streams.texi (Output Variables): Improve index entry.
 +
 +      * abbrevs.texi (Abbrevs): Remove useless index entry.
 +
 +      * macros.texi (Expansion): Remove useless index entry.
 +
 +      * text.texi: Improve index entries.  Remove redundant/useless ones.
 +      (Text Properties, Examining Properties)
 +      (Special Properties): Use "property category" instead of "category"
 +      to refer to the `category' property.
 +
 +      * positions.texi: Improve index entries.  Remove useless one.
 +
 +      * lists.texi: Improve index entries.  Remove redundant/useless ones.
 +
 +      * os.texi: Improve index entries.
 +      (Timers): Fix previous change.
 +
 +      * buffers.texi: Improve index entries.
 +      (Modification Time): Get rid of term "obsolete buffer".
 +
 +      * debugging.texi: Improve index entries.
 +      (Test Coverage): Add xref to other test coverage ftr.
 +
 +      * eval.texi: Improve index entry.  Remove redundant ones.
 +
 +      * numbers.texi: Improve index entries.  Remove redundant/useless ones.
 +
 +      * files.texi: Improve index entries.  Remove redundant/useless ones.
 +
 +      * objects.texi: Improve index entries.
 +
 +      * processes.texi: Improve index entries.
 +
 +      * modes.texi: Improve index entry.  Remove redundant one.
 +
 +      * nonascii.texi: Improve index entries.
 +
 +      * internals.texi: Improve index entries.
 +
 +      * syntax.texi: Improve index entries.
 +
 +      * keymaps.texi (Active Keymaps): Improve index entries.
 +
 +      * commands.texi: Improve index entries.  Remove redundant/useless ones.
 +
 +      * frames.texi: Improve index entries.  Remove redundant/useless ones.
 +
 +      * markers.texi: Improve index entries.  Remove redundant ones.
 +
 +      * tips.texi: Improve index entries.
 +
 +      * loading.texi (Unloading): Improve index entry.
 +
 +      * variables.texi: Improve index entries.  Remove redundant one.
 +
 +      * sequences.texi: Improve index entry.
 +
 +      * display.texi: Improve index entries.  Remove redundant ones.
 +
 +      * windows.texi: Improve index entries.
 +
 +      * searching.texi: Improve index entries.  Remove redundant one.
 +
 +      * strings.texi (Case Tables): Improve last change.
 +
 +2007-04-04  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * strings.texi (Case Tables): Document with-case-table and
 +      ascii-case-table.
 +
 +2007-04-03  Karl Berry  <karl@gnu.org>
 +
 +      * processes.texi (Network): Reword to improve page break.
 +
 +2007-04-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * functions.texi (Inline Functions): Describe more disadvantages
 +      of defsubst, and make advice against it stronger.
 +
 +2007-04-02  Karl Berry  <karl@gnu.org>
 +
 +      * backups.texi (Backup Names): Avoid widow words.
 +      * modes.texi (Example Major Modes): Align last comment.
 +
 +2007-04-01  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keymaps.texi (Remapping Commands): Document new arg to
 +      command-remapping.
 +
 +2007-04-01  Karl Berry  <karl@gnu.org>
 +
 +      * processes.texi (Low-Level Network): Typo.
 +      * loading.texi (Hooks for Loading): Avoid double "the".
 +      * keymaps.texi (Key Sequences): No double "and".
 +      (Changing Key Bindings): Shorten to improve line break.
 +
 +2007-03-31  Glenn Morris  <rgm@gnu.org>
 +
 +      * os.texi (Timers): Fix description of run-at-time TIME formats.
 +
 +2007-03-31  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Invisible Text): Correct buffer-invisibility-spec
 +      regarding ellipsis.
 +
 +2007-03-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * intro.texi (nil and t):
 +      * symbols.texi (Plists and Alists):
 +      * variables.texi (Variable Aliases, Constant Variables):
 +      * functions.texi (Defining Functions):
 +      * advice.texi (Advising Primitives):
 +      * debugging.texi (Syntax Errors, Compilation Errors):
 +      * minibuf.texi (Minibuffer Windows):
 +      * commands.texi (Adjusting Point):
 +      * modes.texi (Syntactic Font Lock, Faces for Font Lock)
 +      (Auto Major Mode, Major Mode Conventions):
 +      * help.texi (Describing Characters):
 +      * files.texi (Create/Delete Dirs, Information about Files)
 +      (File Locks, Writing to Files, Reading from Files)
 +      (Saving Buffers):
 +      * windows.texi (Resizing Windows, Cyclic Window Ordering):
 +      * frames.texi (Finding All Frames):
 +      * positions.texi (Buffer End, Motion):
 +      * markers.texi (The Region):
 +      * text.texi (Deletion, Near Point):
 +      * display.texi (Displaying Messages, Truncation):
 +      * os.texi (Processor Run Time):
 +      * tips.texi (Key Binding Conventions, Programming Tips)
 +      (Warning Tips, Documentation Tips, Comment Tips):
 +      * internals.texi (Memory Usage): Improve indexing.
 +
 +      * variables.texi (Frame-Local Variables):
 +      * functions.texi (Argument List):
 +      * loading.texi (Library Search):
 +      * streams.texi (Output Variables):
 +      * keymaps.texi (Translation Keymaps, Searching Keymaps):
 +      * searching.texi (Replacing Match, Search and Replace):
 +      * processes.texi (Byte Packing, Decoding Output)
 +      (Accepting Output, Network Servers, Shell Arguments):
 +      * display.texi (Abstract Display, Image Cache, Scroll Bars):
 +      * windows.texi (Window Point, Window Start):
 +      * frames.texi (Management Parameters, Frame Parameters, Frame Titles):
 +      * commands.texi (Reading Input, Keyboard Events):
 +      * minibuf.texi (Reading File Names, Minibuffer Completion)
 +      (Recursive Mini):
 +      * positions.texi (List Motion):
 +      * hash.texi (Hash Tables, Creating Hash, Defining Hash):
 +      * numbers.texi (Arithmetic Operations, Math Functions)
 +      (Predicates on Numbers, Comparison of Numbers):
 +      (Numeric Conversions):
 +      * locals.texi (Standard Buffer-Local Variables):
 +      * maps.texi (Standard Keymaps):
 +      * os.texi (User Identification, System Environment, Recording Input)
 +      (X11 Keysyms):
 +      * nonascii.texi (Non-ASCII Characters, Splitting Characters):
 +      * backups.texi (Backups and Auto-Saving):
 +      * customize.texi (Customization, Group Definitions)
 +      (Variable Definitions):
 +      * compile.texi (Byte Compilation): Improve index entries.
 +
 +2007-03-31  Karl Berry  <karl@gnu.org>
 +
 +      * macros.texi (Defining Macros): Avoid widow syllable.
 +
 +2007-03-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * elisp.texi (Top): Postscript -> PostScript.
 +
 +      * display.texi (Images, Postscript Images): Postscript -> PostScript.
 +
 +2007-03-31  Markus Triska  <markus.triska@gmx.at>
 +
 +      * internals.texi (Writing Emacs Primitives): Untabify `For'.
 +
 +2007-03-30  Karl Berry  <karl@gnu.org>
 +
 +      * lists.texi (List-related Predicates): Remove spurious @need.
 +      (Setcdr): Use @smallexample to improve page break.
 +      (Association Lists) <assoc>: Reword to improve page break.
 +
 +      * strings.texi (String Conversion): Insert blank line to improve
 +      page break.
 +
 +      * numbers.texi (Random Numbers): Use @minus{}.
 +      (Math Functions): Use @minus{}.
 +
 +      * intro.texi (Acknowledgements): Avoid line breaks before middle
 +      initials.
 +
 +2007-03-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * errors.texi (Standard Errors): Add an index entry.
 +
 +2007-03-19  Richard Stallman  <rms@gnu.org>
 +
 +      * os.texi (Recording Input): recent-keys now gives 300 keys.
 +
 +2007-03-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * os.texi: Replace "daylight savings" with "daylight saving"
 +      throughout.
 +
 +2007-03-05  Richard Stallman  <rms@gnu.org>
 +
 +      * variables.texi (File Local Variables): Update
 +      enable-local-variables values.
 +
 +2007-03-04  Richard Stallman  <rms@gnu.org>
 +
 +      * syntax.texi (Control Parsing): Minor clarification.
 +
 +      * strings.texi (Formatting Strings): Clarify width, precision, flags.
 +
 +      * sequences.texi (Sequence Functions): Move string-bytes away,
 +      add xref.
 +
 +      * nonascii.texi (Text Representations): Move string-bytes here.
 +
 +      * modes.texi (Major Mode Conventions): Fundamental mode is exception.
 +
 +      * minibuf.texi (Basic Completion): Minor clarification.
 +
 +      * markers.texi (The Mark): Clarify existence vs activation of mark.
 +      Other cleanup.
 +
 +      * display.texi (Finding Overlays): Write better example.
 +
 +      * compile.texi (Eval During Compile): Clarify putting macros
 +      in eval-when-compile.
 +
 +2007-02-25  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * loading.texi (How Programs Do Loading): Fix anchor position at
 +      load-read-function definition doc. (tiny change)
 +
 +2007-02-21  Kim F. Storm  <storm@cua.dk>
 +
 +      * strings.texi (Text Comparison): Mention that assoc-string
 +      converts symbols to strings before testing.
 +
 +2007-02-17  Kim F. Storm  <storm@cua.dk>
 +
 +      * processes.texi (Bindat Spec): Vector types can have optional
 +      element type.
 +      (Bindat Examples): Fix example.  Add vector with element type.
 +
 +2007-02-16  Andreas Schwab  <schwab@suse.de>
 +
 +      * strings.texi (Formatting Strings): Document '+' flag.
 +
 +2007-02-15  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * strings.texi (Modifying Strings): Clarify that `clear-string'
 +      always converts the string to unibyte.
 +
 +2007-02-14  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Glyphs): Add make-glyph-code, glyph-char, glyph-face.
 +      Rewrite glyph code description to refer to these functions.
 +      Remove details of encoding face number and char into integer code.
 +
 +2007-02-03  Alan Mackenzie  <acm@muc.de>
 +
 +      * loading.texi (Hooks for Loading): Make the description of
 +      `eval-after-load' more detailed, and amend the description of
 +      after-load-alist, in accordance with changes from 2006-05.
 +
 +2007-02-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * modes.texi (Defining Minor Modes): Document that a :require
 +      keyword or similar may be required to make saved customization
 +      variables work.
 +
 +2007-02-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * elisp.texi (Top): Make the detailed menu headers compliant with
 +      Texinfo guidelines and with what texnfo-upd.el expects.  Add
 +      comments to prevent people from inadvertently modifying the key
 +      parts needed by `texinfo-multiple-files-update'.
 +
 +2007-02-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * elisp.texi (Top): Update the top-level menus.
 +
 +      * syntax.texi (Categories): Add index entries.
 +
 +2007-02-01  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * display.texi (Attribute Functions): Fix name and description of
 +      the UNDERLINE arg of `set-face-underline-p'.
 +
 +2007-01-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * elisp.texi (Top): Add "Standard Errors", "Standard Buffer-Local
 +      Variables", and "Standard Keymaps" to the detailed menu.
 +
 +      * variables.texi (Future Local Variables): Add index entry.
 +
 +2007-01-28  Richard Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Clarify the tip about macros
 +      that define a function or a variable.
 +
 +      * files.texi (File Attributes): UID and GID can be floats.
 +      (Magic File Names): Explain why deferring all operations to
 +      the standard handler does not work.
 +
 +2007-01-23  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * backups.texi (Reverting): Use "buffer" instead of "file"
 +      when talking about major and minor modes.
 +
 +2007-01-21  Richard Stallman  <rms@gnu.org>
 +
 +      * help.texi (Documentation): Add xref to Documentation Tips.
 +
 +2007-01-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * tips.texi (Coding Conventions): Fix typos.
 +
 +2007-01-05  Richard Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Defining Minor Modes): Fix previous change.
 +
 +2007-01-03  Richard Stallman  <rms@gnu.org>
 +
 +      * customize.texi (Variable Definitions, Customization Types):
 +      Don't use * in doc string for defcustom.
 +
 +2007-01-02  Richard Stallman  <rms@gnu.org>
 +
 +      * variables.texi (Variable Aliases): Clarify that aliases vars
 +      always have the same value.
 +
 +      * processes.texi (Bindat Spec): Fix Texinfo usage.
 +
 +      * modes.texi (Defining Minor Modes): Explain effect of command
 +      defined with define-global-minor-mode on new buffers.
 +
 +2006-12-30  Kim F. Storm  <storm@cua.dk>
 +
 +      * keymaps.texi (Tool Bar): Describe `grow-only' value of
 +      `auto-resize-tool-bars'.
 +
 +2006-12-30  Richard Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Active Keymaps): Fix previous change.
 +
 +2006-12-30  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * keymaps.texi (Active Keymaps): Make xref to lookup-key.
 +
 +2006-12-30  Kim F. Storm  <storm@cua.dk>
 +
 +      * processes.texi (Bindat Spec): Clarify using field names in
 +      length specifications.
 +
 +2006-12-29  Kim F. Storm  <storm@cua.dk>
 +
 +      * processes.texi (Bindat Spec): Explain eval forms and lengths better.
 +      Add count and index variables for eval forms in repeat blocks.
 +
 +2006-12-24  Richard Stallman  <rms@gnu.org>
 +
 +      * customize.texi (Variable Definitions): Document
 +      new name custom-add-frequent-value.
 +
 +2006-12-19  Kim F. Storm  <storm@cua.dk>
 +
 +      * commands.texi (Misc Events): User signals now result in sigusr1
 +      and sigusr2 events which are handled through special-event-map.
 +      (Special Events): User signals and drag-n-drop are special.
 +
 +2006-12-17  Richard Stallman  <rms@gnu.org>
 +
 +      * loading.texi (Named Features): Explain subfeatures better.
 +
 +      * customize.texi: Use "option" only for user options.
 +      For the keyword values inside defcustom etc, say "keywords".
 +      For :options value's elements, say "elements".
 +      :group should not be omitted.
 +
 +      * syntax.texi (Parsing Expressions): Split up node.
 +      (Motion via Parsing, Position Parse, Parser State)
 +      (Low-Level Parsing, Control Parsing): New subnodes.
 +      (Parser State): Document syntax-ppss-toplevel-pos.
 +
 +      * positions.texi (List Motion): Punctuation fix.
 +
 +      * files.texi (File Name Completion): Document PREDICATE arg
 +      to file-name-completion.
 +
 +2006-12-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * internals.texi (Building Emacs, Writing Emacs Primitives):
 +      Add index entries.
 +
 +2006-12-11  Richard Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Font Lock Basics): Explain how nil for font-lock-defaults
 +      affects face menu.  Explain how to make it non-nil without enabling
 +      any fontification.
 +
 +2006-12-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * modes.texi (Font Lock Basics): Document nil value of
 +      font-lock-defaults.
 +
 +2006-12-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * abbrevs.texi (Defining Abbrevs): Mention `define-abbrev' 'force
 +      value for system-flag argument.  Abbrev tables may not be empty
 +      when major modes are loaded.
 +
 +2006-12-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (maintainer-clean): Partially revert last
 +      change; delete "elisp-?" and "elisp-??" instead of "elisp-*"
 +      to protect elisp-covers.texi.
 +
 +2006-12-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (maintainer-clean): Depend on `distclean'.
 +      Don't remove elisp* info files; they are already deleted by the
 +      `clean' and `distclean' targets, and they are in the $(infodir)
 +      directory, not the current one.
 +
 +2006-12-04  Kim F. Storm  <storm@cua.dk>
 +
 +      * commands.texi (Misc Events): Update signal events.
 +      (Event Examples): Add signal example.
 +
 +2006-11-29  Richard Stallman  <rms@gnu.org>
 +
 +      * frames.texi (Visibility of Frames): Explain visible windows
 +      can be covered by others.  Add xref for raise-frame.
 +
 +2006-11-28  Richard Stallman  <rms@gnu.org>
 +
 +      * searching.texi (Regexp Special): Update when ^ is special.
 +
 +2006-11-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * customize.texi (Customization, Common Keywords)
 +      (Group Definitions, Variable Definitions, Composite Types)
 +      (Type Keywords, Customization Types): Add index entries for
 +      various customization keywords.
 +
 +2006-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * modes.texi (Multiline Font Lock): Rephrase some parts for clarity.
 +
 +2006-11-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Window System Selections): Remove clipboard from
 +      description of selection-coding-system.
 +
 +2006-11-06  Richard Stallman  <rms@gnu.org>
 +
 +      * lists.texi (List Variables): Document COMPARE-FN.
 +
 +      * keymaps.texi: Avoid use of "binding" to mean a relation;
 +      use it only to refer to the meaning associated with a key.
 +      (Keymaps): Change menu node description.
 +
 +      * elisp.texi (Top): Change menu node description.
 +
 +      * display.texi (Managing Overlays): Document overlay-recenter.
 +
 +2006-10-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Makefile.in: Use relative paths to avoid advertising filesystem
 +      contents during compilation.
 +
 +2006-10-23  Kim F. Storm  <storm@cua.dk>
 +
 +      * commands.texi (Event Input Misc): Update unread-command-events.
 +
 +2006-10-23  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * lists.texi (Sets And Lists): Fix typos.
 +
 +2006-10-18  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * control.texi (Processing of Errors): Use @var for an argument,
 +      not @code.
 +
 +2006-10-16  Richard Stallman  <rms@gnu.org>
 +
 +      * edebug.texi (Edebug Recursive Edit): Minor cleanup.
 +
 +      * keymaps.texi (Format of Keymaps): Show all the keymap element
 +      patterns that result from menu items.
 +      (Key Lookup): Minor cleanups.
 +
 +      * modes.texi (Precalculated Fontification): Don't say that
 +      not setting font-lock-defaults avoids loading font-lock.
 +
 +      * help.texi (Documentation): Move xref to Emacs Manual here.
 +      (Documentation Basics): From here.
 +      Also doc emacs-lisp-docstring-fill-column.
 +
 +      * elisp.texi: Update version and ISBN.
 +
 +      * commands.texi (Interactive Call): Clarify KEYS arg to
 +      call-interactively is a vector.
 +      (Command Loop Info): Delete anchor in this-command-keys.
 +      Add anchor in this-command-keys-vector.
 +      (Recursive Editing): Document how recursive-edit
 +      handles the current buffer.
 +
 +2006-10-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frames.texi (Frame Titles): %c and %l are ignored in
 +      frame-title-format.
 +
 +2006-10-11  Richard Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Key Sequences): Clarify use of kbd.
 +
 +2006-10-10  Kim F. Storm  <storm@cua.dk>
 +
 +      * lists.texi (Sets And Lists): Add memql.
 +
 +2006-10-03  Richard Stallman  <rms@gnu.org>
 +
 +      * searching.texi (Char Classes): Document :multibyte: and :unibyte:.
 +      Clarify :ascii: and :nonascii:.
 +
 +2006-09-29  Juri Linkov  <juri@jurta.org>
 +
 +      * modes.texi (%-Constructs): Reorder coding systems in the
 +      documentation of %z to the real order displayed in the modeline.
 +
 +2006-09-25  Richard Stallman  <rms@gnu.org>
 +
 +      * os.texi (Timers): Describe timer-max-repeats.
 +
 +2006-09-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * os.texi (Timers): Mention with-local-quit.
 +
 +2006-09-24  Richard Stallman  <rms@gnu.org>
 +
 +      * searching.texi (Searching and Matching): Mention property search.
 +
 +      * commands.texi (Command Loop Info): Explain how read-event affects
 +      this-command-keys.
 +
 +2006-09-20  Richard Stallman  <rms@gnu.org>
 +
 +      * os.texi (Timers): Clarify about REPEAT when timer is delayed.
 +
 +      * windows.texi (Window Start): Minor cleanups.
 +
 +2006-09-20  Kim F. Storm  <storm@cua.dk>
 +
 +      * windows.texi (Window Start): pos-visible-in-window-p allows
 +      specifying t for position to mean "end of window".
 +      Add window-line-height.
 +
 +      * anti.texi (Antinews): Mention window-line-height.
 +
 +2006-09-19  David Kastrup  <dak@gnu.org>
 +
 +      * keymaps.texi (Searching Keymaps): Small clarification.
 +
 +2006-09-18  Richard Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Creating Keymaps): Explain that keymap prompt strings
 +      cause keyboard menus.
 +      (Menu Keymaps): Likewise.
 +      (Defining Menus, Keyboard Menus): Clarify.
 +
 +      * text.texi (Fields): Clarify explanation of constrain-to-field.
 +
 +2006-09-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * variables.texi (Tips for Defining): Fix a typo.
 +
 +2006-09-15  Richard Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Remapping Commands, Searching Keymaps)
 +      (Active Keymaps): Clean up previous change.
 +
 +2006-09-15  Jay Belanger  <belanger@truman.edu>
 +
 +      * gpl.texi: Replace "Library Public License" by "Lesser Public
 +      License" throughout.
 +
 +2006-09-15  David Kastrup  <dak@gnu.org>
 +
 +      * keymaps.texi (Active Keymaps): Adapt description to use
 +      `get-char-property' instead `get-text-property'.  Explain how
 +      mouse events change this.  Explain the new optional argument of
 +      `key-binding' and its mouse-dependent lookup.
 +      (Searching Keymaps): Adapt description similarly.
 +      (Remapping Commands): Explain the new optional argument of
 +      `command-remapping'.
 +
 +2006-09-14  Richard Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Searching Keymaps): Clarification.
 +      (Active Keymaps): Refer to Searching Keymaps instead of duplication.
 +
 +2006-09-13  Richard Stallman  <rms@gnu.org>
 +
 +      * objects.texi (Character Type): Node split.
 +      Add xref to Describing Characters.
 +      (Basic Char Syntax, General Escape Syntax)
 +      (Ctl-Char Syntax, Meta-Char Syntax): New subnodes.
 +
 +2006-09-11  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Display Table Format): Wording clarification.
 +      (Glyphs): Clarifications.
 +
 +2006-09-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keymaps.texi (Active Keymaps): Mention that key-binding checks
 +      local maps.
 +
 +2006-09-10  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Forcing Redisplay): Document return value of
 +      function redisplay.
 +
 +2006-09-09  Richard Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Window Hooks): Explain limits of
 +      window-scroll-functions.
 +
 +      * display.texi (Fringe Indicators): Update for last change in
 +      indicate-buffer-boundaries.
 +
 +2006-09-08  Richard Stallman  <rms@gnu.org>
 +
 +      * processes.texi (Bindat Spec): Suggest names ending in -bindat-spec.
 +
 +2006-09-06  Kim F. Storm  <storm@cua.dk>
 +
 +      * frames.texi (Display Feature Testing): display-mm-dimensions-alist.
 +
 +      * windows.texi (Window Start): Update pos-visible-in-window-p.
 +
 +2006-09-04  Richard Stallman  <rms@gnu.org>
 +
 +      * processes.texi (Accepting Output): Explain SECONDS=0 for
 +      accept-process-output.
 +
 +      * os.texi (Idle Timers): Explain why timer functions should not
 +      loop until (input-pending-p).
 +
 +2006-09-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (usermanualdir): New variable.
 +      (elisp.dvi): Use it.
 +
 +2006-09-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * buffers.texi (Buffer Modification): Fix last change.
 +
 +2006-09-01  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * buffers.texi (Buffer Modification): Document
 +      buffer-chars-modified-tick.
 +
 +2006-08-31  Richard Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Syntactic Font Lock): Mention specific faces once again.
 +
 +2006-08-31  Richard Bielawski  <RBielawski@moneygram.com>  (tiny change)
 +
 +      * modes.texi (Syntactic Font Lock):
 +      Mention font-lock-syntactic-face-function
 +      instead of specific faces.
 +
 +2006-08-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Images): Add xrref to display-images-p.
 +
 +2006-08-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * nonascii.texi (Lisp and Coding Systems): Fix description of
 +      detect-coding-region.
 +
 +2006-08-27  Michael Olson  <mwolson@gnu.org>
 +
 +      * processes.texi (Transaction Queues): Remove stray quote
 +      character.
 +
 +2006-08-25  Richard Stallman  <rms@gnu.org>
 +
 +      * os.texi (Idle Timers): run-with-idle-timer allows Lisp time value.
 +      Add xref.
 +
 +2006-08-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * os.texi (Timers): Avoid waiting inside timers.
 +
 +2006-08-21  Lute Kamstra  <lute@gnu.org>
 +
 +      * Makefile.in: Use ../man/texinfo.tex to build elisp.dvi.
 +
 +2006-08-20  Richard Stallman  <rms@gnu.org>
 +
 +      * os.texi (Idle Timers): New node, split out from Timers.
 +      Document current-idle-time.
 +      * commands.texi (Reading One Event): Update xref.
 +      * elisp.texi (Top): Update subnode menu.
 +
 +2006-08-16  Richard Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Extended Menu Items): Show format of cached
 +      bindings in extended menu items.
 +
 +      * customize.texi (Variable Definitions): Explain when the
 +      standard value expression is evaluated.
 +
 +2006-08-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * commands.texi (Reading One Event): Explain idleness in
 +      `read-event'.
 +
 +2006-08-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * text.texi (Near Point): Say "cursor" not "terminal cursor".
 +      (Commands for Insertion): Removed split-line since it's not
 +      relevant for Lisp programming.
 +      (Yank Commands): Rewrite introduction.
 +      (Undo): Clarify.
 +      (Maintaining Undo): Clarify.  Document undo-ask-before-discard.
 +      (Filling): Remove redundant comment.  Clarify return value of
 +      current-justification.
 +      (Margins): Minor clarifications.
 +      (Adaptive Fill): Update default value of adaptive-fill-regexp.
 +      (Sorting): Update definition of sort-lines.
 +      (Columns): Clarify behavior of sort-columns.
 +      (Indent Tabs): Link to Tab Stops in Emacs manual.
 +      (Special Properties): Clarify.
 +      (Clickable Text): Mention Buttons package.
 +
 +2006-08-12  Kevin Ryde  <user42@zip.com.au>
 +
 +      * os.texi (Time Parsing): Add %z to description of
 +      format-time-string, as per docstring.  Add cross reference to
 +      glibc manual for strftime.
 +
 +2006-08-08  Richard Stallman  <rms@gnu.org>
 +
 +      * modes.texi: Clean up wording in previous change.
 +
 +2006-08-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * modes.texi (Hooks): Clarify.
 +      (Major Mode Basics): Mention define-derived-mode explicitly.
 +      (Major Mode Conventions): Rebinding RET is OK for some modes.
 +      Mention change-major-mode-hook and after-change-major-mode-hook.
 +      (Example Major Modes): Moved to end of Modes section.
 +      (Mode Line Basics): Clarify.
 +      (Mode Line Data): Mention help-echo and local-map in strings.
 +      Explain reason for treatment of non-risky variables.
 +      (Properties in Mode): Clarify.
 +      (Faces for Font Lock): Add font-lock-negation-char-face.
 +
 +2006-08-04  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * strings.texi (Formatting Strings): Warn against arbitrary
 +      strings as first arg to `format'.
 +
 +2006-07-31  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * text.texi (Clickable Text): Mention `help-echo' text property.
 +      Update intro, examples and associated explanations.
 +
 +2006-07-31  Richard Stallman  <rms@gnu.org>
 +
 +      * commands.texi: Update xrefs.
 +      (Event Mod): New node, cut out from old Translating Input.
 +
 +      * maps.texi: Update xrefs.
 +
 +      * keymaps.texi (Translation Keymaps): New node.
 +      Update xrefs from Translating Input to Translation Keymaps.
 +
 +      * elisp.texi (Top): Update subnode menu.
 +
 +      * display.texi (Face Functions): Fix explanations of FRAME=t or nil.
 +
 +      * os.texi (System Interface): Fix menu descriptions of some nodes.
 +      (Translating Input): Node deleted.
 +
 +2006-07-31  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * modes.texi (Minor Mode Conventions): Update xref for add-to-list.
 +
 +      * lists.texi (Sets And Lists): Likewise.
 +
 +2006-07-30  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * text.texi (Fields): Mention POS
 +      requirement when narrowing is in effect.
 +
 +2006-07-28  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Face Attributes): Simplify wording.
 +      (Attribute Functions): Clarify meaning of new-frame default
 +      attribute settings.
 +
 +      * customize.texi (Common Keywords): Document how to use
 +      :package-version in a package not in Emacs.
 +
 +2006-07-28  Kim F. Storm  <storm@cua.dk>
 +
 +      * commands.texi (Reading One Event): Fix last change.
 +
 +2006-07-26  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * commands.texi (Reading One Event): Document SECONDS argument for
 +      read-event, read-char, and read-char-exclusive.
 +
 +2006-07-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * modes.texi (Multiline Font Lock): Can't use jit-lock-defer-multiline
 +      to ensure correct identification.
 +
 +2006-07-24  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Clickable Text): Clarify.
 +
 +      * sequences.texi (Vector Functions): Delete duplicate xref.
 +
 +      * objects.texi (Function Type): Clarify.
 +
 +      * modes.texi (Keymaps and Minor Modes): List punct chars for minor
 +      modes.
 +
 +      * lists.texi (List Variables): New node.
 +      Material moved from other nodes.
 +
 +      * variables.texi (Setting Variables): add-to-list and
 +      add-to-ordered-list moved to List Variables node.
 +
 +2006-07-23  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * text.texi (Links and Mouse-1):
 +      For mouse-on-link-p, expand on arg POS.
 +
 +2006-07-21  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Forcing Redisplay): Don't mention systems which
 +      don't support sub-second timers for redisplay-preemption-period.
 +
 +      * os.texi (Terminal Output): Clarify text vs graphical terminal.
 +
 +2006-07-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * frames.texi (Input Focus): Document that focus-follows-mouse has
 +      no effect on MS-Windows.
 +
 +2006-07-18  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Forcing Redisplay): Cleanups in previous change.
 +
 +      * processes.texi (Low-Level Network): Make menu more convenient.
 +
 +2006-07-18  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Forcing Redisplay): redisplay-preemption-period
 +      only used on window systems.  Add xref to Terminal Output.
 +
 +      * os.texi (Terminal Output): baud-rate only controls preemption on
 +      non-window systems.  Add xref to Forcing Redisplay.
 +
 +      * processes.texi (Low-Level Network): Rename node "Make Network"
 +      to "Network Processes".
 +
 +2006-07-18  Karl Berry  <karl@gnu.org>
 +
 +      * variables.texi, functions.texi, customize.texi, loading.texi:
 +      * edebug.texi, minibuf.texi: Fix page breaks through chapter 20.
 +
 +2006-07-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * commands.texi (Waiting): Document batch-mode sit-for behavior.
 +
 +2006-07-17  Richard Stallman  <rms@gnu.org>
 +
 +      * eval.texi, elisp.texi, text.texi: Use real doublequote inside menus.
 +      Put period and comma inside quotes.
 +
 +      * loading.texi, markers.texi: Use real doublequote inside menus.
 +
 +      * windows.texi: Put point and comma inside quotes.
 +      (Textual Scrolling): Use @samp for error message.
 +
 +      * variables.texi, tips.texi, syntax.texi, symbols.texi:
 +      * strings.texi, streams.texi, processes.texi, os.texi:
 +      * objects.texi, numbers.texi, modes.texi, minibuf.texi:
 +      * lists.texi, keymaps.texi, intro.texi, hash.texi, internals.texi:
 +      * gpl.texi, functions.texi, files.texi, frames.texi, doclicense.texi:
 +      * display.texi, control.texi, commands.texi, buffers.texi, anti.texi:
 +      Put point and comma inside quotes.
 +
 +      * control.texi (Processing of Errors): Add command-error-function.
 +
 +      * variables.texi (File Local Variables): Clarify that
 +      file local variables make buffer-local bindings.
 +
 +      * modes.texi (Syntactic Font Lock): Give default for
 +      font-lock-syntax-table.
 +
 +2006-07-17  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * text.texi (Special Properties): Clean up previous change.
 +
 +2006-07-16  Karl Berry  <karl@gnu.org>
 +
 +      * objects.texi, numbers.texi, strings.texi, lists.texi, hash.texi:
 +      * control.texi: Fix bad page breaks through chapter 10 (control).
 +
 +      * anti.texi (Antinews): Reorder face-attribute fns to avoid
 +      underfull hbox.
 +
 +2006-07-15  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * text.texi (Special Properties): Describe fontified text property
 +      in relation to a character (not text).
 +
 +2006-07-15  Kim F. Storm  <storm@cua.dk>
 +
 +      * maps.texi (Standard Keymaps): Add xref for minibuffer maps.
 +      Add apropos-mode-map, custom-mode-map, esc-map, global-map,
 +      grep-mode-map, help-map, help-mode-map, kmacro-map, and tool-bar-map.
 +
 +      * anti.texi (Antinews): Mention redisplay function.
 +      The kbd macro existed, but was not documented, before 22.x.
 +      Function pos-visible-in-window-p is not new in 22.x, just enhanced.
 +
 +2006-07-14  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * display.texi (Displaying Messages): Add anchor.
 +
 +      * frames.texi (Dialog Boxes): Use it.
 +
 +2006-07-12  Richard Stallman  <rms@gnu.org>
 +
 +      * objects.texi (Frame Type): Explain nature of frames better.
 +
 +      * frames.texi (Frames): Explain nature of frames better.
 +
 +2006-07-12  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      * tips.texi (Coding Conventions): Explain why use cl at compile time.
 +
 +2006-07-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * frames.texi (Window System Selections): Mention scrap support for Mac.
 +      Default value of x-select-enable-clipboard is t on Mac.
 +
 +      * os.texi (Getting Out): Suspending is not allowed on Mac, either.
 +
 +2006-07-11  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Forcing Redisplay): Add `redisplay' function.
 +      Don't mention (sit-for -1) -- use (redisplay t) instead.
 +
 +      * commands.texi (Waiting): (sit-for -1) is no longer special.
 +      (sit-for 0) is equivalent to (redisplay).
 +      Iconifying/deiconifying no longer makes sit-for return.
 +
 +2006-07-10  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * display.texi (Buttons): Fix typo.
 +
 +      * index.texi, elisp.texi (New Symbols): Comment node out.
 +
 +2006-07-09  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Truncation): Clean up previous change.
 +
 +2006-07-08  Richard Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Interactive Call): Use 3 as prefix in example
 +      for execute-extended-command.
 +
 +      * display.texi (Attribute Functions): Move paragraph about
 +      compatibility with Emacs < 21.
 +
 +2006-07-09  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Refresh Screen): Clarify force-window-update.
 +      (Truncation): "Normally" indicated by fringe arrows.
 +
 +2006-07-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * windows.texi (Textual Scrolling, Resizing Windows):
 +      * variables.texi (Constant Variables):
 +      * text.texi (Buffer Contents, Deletion, Changing Properties)
 +      (Property Search, Special Properties, Sticky Properties)
 +      (Links and Mouse-1, Fields, Change Hooks):
 +      * syntax.texi (Syntax Table Functions, Parsing Expressions)
 +      (Categories):
 +      * symbols.texi (Other Plists):
 +      * streams.texi (Output Variables):
 +      * processes.texi (Input to Processes, Query Before Exit):
 +      * positions.texi (Word Motion, Text Lines, List Motion):
 +      * os.texi (Init File, System Environment, Sound Output)
 +      (Session Management):
 +      * nonascii.texi (Text Representations, Character Sets)
 +      (Chars and Bytes, Locales):
 +      * modes.texi (Defining Minor Modes, Header Lines):
 +      * minibuf.texi (Minibuffer Contents):
 +      * markers.texi (Information from Markers):
 +      * lists.texi (List Elements, Building Lists, Association Lists):
 +      * keymaps.texi (Tool Bar):
 +      * hash.texi (Creating Hash, Hash Access, Defining Hash, Other Hash):
 +      * functions.texi (What Is a Function, Mapping Functions):
 +      * frames.texi (Creating Frames, Parameter Access, Pointer Shape)
 +      (Color Names, Text Terminal Colors, Display Feature Testing):
 +      * files.texi (Visiting Functions, File Name Components)
 +      (Unique File Names, Contents of Directories):
 +      * display.texi (Forcing Redisplay, Displaying Messages)
 +      (Temporary Displays, Font Selection, Auto Faces)
 +      (Font Lookup, Fringe Indicators, Display Margins)
 +      (Image Descriptors, Showing Images, Image Cache, Button Types)
 +      (Making Buttons, Manipulating Buttons, Button Buffer Commands)
 +      (Display Table Format, Glyphs):
 +      * control.texi (Iteration):
 +      * commands.texi (Command Loop Info, Adjusting Point):
 +      * backups.texi (Making Backups, Auto-Saving):
 +      Remove @tindex entries.
 +
 +2006-07-07  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Fringe Cursors): Fix typo.
 +      (Customizing Bitmaps): Fix define-fringe-bitmap entry.
 +      (Overlay Arrow): Default is overlay-arrow fringe indicator.
 +
 +2006-07-05  Richard Stallman  <rms@gnu.org>
 +
 +      * text.texi (Buffer Contents): Add example of text props
 +      in result of buffer-substring.
 +      (Text Properties): Explain better about use of specific property names.
 +      (Property Search): Some cleanups; reorder some functions.
 +
 +      * keymaps.texi (Changing Key Bindings): Cleanup.
 +      Add xref to Key Binding Conventions.
 +
 +      * display.texi (Attribute Functions): Add examples for
 +      face-attribute-relative-p.
 +
 +      * tips.texi (Coding Conventions): Cleanup last change.
 +
 +2006-07-05  Karl Berry  <karl@gnu.org>
 +
 +      * elisp.texi: Use @fonttextsize 10pt, a la emacs.texi.
 +      Remove @setchapternewpage odd.
 +      Result is 1013 pages, down from 1100.
 +
 +      * anti.texi, customize.texi, display.texi, internals.texi:
 +      * minibuf.texi, modes.texi, tips.texi:
 +      Fix overfull/underfull boxes.
 +
 +2006-07-05  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * edebug.texi (Instrumenting):
 +      Add Edebug-specific findex for eval-buffer.
 +      * loading.texi (Loading):
 +      Replace eval-current-buffer with eval-buffer.
 +
 +2006-06-30  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * locals.texi (Standard Buffer-Local Variables): Update the list
 +      of variables.
 +
 +2006-06-26  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * files.texi (File Name Completion): Point user to the node
 +      "Reading File Names".
 +
 +2006-06-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.texi (Contents of Directories): Document case-insensitive
 +      behavior on respective filesystems.
 +
 +      * objects.texi (Character Type): Document that Emacs signals an
 +      error for unsupported Unicode characters specified as \uNNNN.
 +
 +2006-06-19  Richard Stallman  <rms@gnu.org>
 +
 +      * processes.texi (Bindat Spec): Clarify previous change.
 +
 +2006-06-16  Richard Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Better explain conventions
 +      for definition constructs.
 +
 +      * text.texi (Special Properties): String value of `read-only'
 +      serves as the error message.
 +
 +      * objects.texi (Character Type): Clarify prev. change.
 +      (Non-ASCII in Strings): Mention \u and \U.
 +
 +      * commands.texi (Using Interactive): Explain problem of
 +      markers, etc., in command-history.
 +
 +2006-06-14  Kim F. Storm  <storm@cua.dk>
 +
 +      * commands.texi (Waiting): Negative arg to sit-for forces
 +      redisplay even if input is pending.
 +
 +      * display.texi (Forcing Redisplay): Use (sit-for -1) to force a
 +      redisplay.  Remove incorrect example of binding redisplay-dont-pause
 +      around (sit-for 0).
 +
 +2006-06-13  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Forcing Redisplay): Clarify previous change.
 +
 +2006-06-13  Romain Francoise  <romain@orebokech.com>
 +
 +      * display.texi (Forcing Redisplay): Fix typo.
 +
 +2006-06-13  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Forcing Redisplay): Add redisplay-preemption-period.
 +
 +2006-06-10  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * tips.texi (Coding Conventions): Add `@end itemize'.
 +
 +2006-06-10  Richard Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Explain use of coding systems
 +      to ensure one decoding for strings.
 +
 +2006-06-09  Aidan Kehoe  <kehoea@parhasard.net>
 +
 +      * objects.texi (Character Type): Describe the \uABCD and \U00ABCDEF
 +      syntax.
 +
 +2006-06-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * display.texi (Font Selection): Remove description of
 +      clear-face-cache.
 +
 +      * compile.texi (Eval During Compile): Fix a typo.  Add index
 +      entries for possible uses of eval-when-compile.
 +
 +2006-06-04  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * display.texi (Abstract Display): Fix typo.
 +
 +2006-06-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * minibuf.texi (Minibuffer History) <history-add-new-input>:
 +      Reword variable's description.
 +
 +2006-06-01  Richard Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Splitting Windows): Clarify splitting nonselected
 +      window.
 +
 +2006-05-31  Juri Linkov  <juri@jurta.org>
 +
 +      * minibuf.texi (Minibuffer History): Add history-add-new-input.
 +
 +2006-05-30  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Line Height): Fix errors in description of
 +      default line height and line-height properyty.
 +
 +      * nonascii.texi (Default Coding Systems): Further clarification.
 +
 +2006-05-29  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * internals.texi (Pure Storage): Mention that an overflow in pure
 +      space causes a memory leak.
 +      (Garbage Collection): If there was an overflow in pure space,
 +      `garbage-collect' returns nil.
 +
 +2006-05-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * nonascii.texi (Default Coding Systems): Fix it some more.
 +
 +2006-05-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * nonascii.texi (Default Coding Systems): Fix last change.
 +
 +2006-05-29  Kenichi Handa  <handa@m17n.org>
 +
 +      * nonascii.texi (find-operation-coding-system): Describe the new
 +      argument format (FILENAME . BUFFER).
 +
 +2006-05-28  Richard Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Better explain reasons not to
 +      advise other packages or use `eval-after-load'.
 +
 +2006-05-29  Kim F. Storm  <storm@cua.dk>
 +
 +      * processes.texi (Bindat Functions): Rename `pos' and `raw-data' to
 +      `bindat-idx' and `bindat-raw' for clarity.
 +
 +2006-05-27  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * processes.texi (Bindat Spec): Expand on `repeat' handler.
 +
 +      * display.texi (Display): Add "Abstract Display" to menu.
 +      (Abstract Display, Abstract Display Functions)
 +      (Abstract Display Example): New nodes.
 +      * elisp.texi (Top): Add "Abstract Display" to menu.
 +
 +2006-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keymaps.texi (Key Sequences): Link to input events definition.
 +      (Format of Keymaps): Delete material duplicated in Keymap Basics.
 +
 +      * files.texi (Changing Files): Document updated argument list for
 +      copy-file.
 +
 +2006-05-27  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * processes.texi (Bindat Functions): Explain term "total length".
 +      Use it in bindat-length and bindat-pack descriptions.
 +
 +2006-05-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Advise against using
 +      eval-after-load in packages.  Add an index entry.
 +
 +2006-05-25  Juri Linkov  <juri@jurta.org>
 +
 +      * minibuf.texi (Text from Minibuffer): Undocument keep-all.
 +
 +      * modes.texi (%-Constructs): Add %e, %z, %Z.
 +
 +2006-05-25  Richard Stallman  <rms@gnu.org>
 +
 +      * elisp.texi (Top): Update subnode menu.
 +
 +      * keymaps.texi (Keymap Basics): New node, split out of Key Sequences.
 +      (Keymaps): Update menu.
 +
 +2006-05-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keymaps.texi (Key Sequences): Some clarifications.
 +
 +2006-05-25  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * processes.texi (Bindat Functions): Say "unibyte string"
 +      explicitly for bindat-unpack and bindat-pack descriptions.
 +      (Bindat Examples): Don't call `string-make-unibyte' in example.
 +
 +2006-05-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keymaps.texi (Key Sequences): Renamed from Keymap Terminology.
 +      Explain string and vector representations of key sequences
 +
 +      * keymaps.texi (Changing Key Bindings):
 +      * commands.texi (Interactive Codes):
 +      * help.texi (Describing Characters): Refer to it.
 +
 +2006-05-23  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi (Pointer Shape): @end table -> @end defvar.
 +
 +2006-05-22  Richard Stallman  <rms@gnu.org>
 +
 +      * elisp.texi (Top): Update subnode menus.
 +
 +      * frames.texi (Pointer Shape): Node renamed from Pointer Shapes.
 +      Contents rewritten; material from old Pointer Shape node moved here.
 +
 +      * display.texi (Pointer Shape): Node deleted.
 +      (Image Descriptors): Minor cleanup.
 +
 +2006-05-21  Richard Stallman  <rms@gnu.org>
 +
 +      * syntax.texi (Parsing Expressions): Update info on which STATE
 +      elements are ignored.
 +
 +2006-05-19  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * hooks.texi (Standard Hooks): Correct typo.
 +
 +      * gpl.texi (GPL): ifinfo -> ifnottex.
 +
 +2006-05-19  Michael Ernst  <mernst@alum.mit.edu>  (tiny change)
 +
 +      * searching.texi (Simple Match Data): Warn about match data being
 +      set anew by every search.
 +
 +2006-05-17  Richard Stallman  <rms@gnu.org>
 +
 +      * minibuf.texi (Minibuffer History): Clarify.
 +
 +      * searching.texi (Regexp Special): Clarify nested regexp warning.
 +
 +2006-05-16  Kim F. Storm  <storm@cua.dk>
 +
 +      * minibuf.texi (Minibuffer History): Update add-to-history.
 +
 +2006-05-15  Oliver Scholz  <epameinondas@gmx.de>  (tiny change)
 +
 +      * nonascii.texi (Explicit Encoding): Fix
 +      typo (encoding<->decoding).
 +
 +2006-05-14  Richard Stallman  <rms@gnu.org>
 +
 +      * buffers.texi (Creating Buffers): Cleanup.
 +
 +      * files.texi (Visiting Functions): Rewrite in find-file-noselect.
 +
 +2006-05-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * buffers.texi (Current Buffer): Document that with-temp-buffer
 +      disables undo.
 +
 +      * os.texi (Terminal-Specific): More accurate description of how
 +      Emacs searches for the terminal-specific libraries.
 +
 +2006-05-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * hooks.texi (Standard Hooks) [iftex]: Convert @xref's to
 +      emacs-xtra to @inforef's.
 +
 +      * text.texi (Undo): Document that undo is turned off in buffers
 +      whose names begin with a space.
 +
 +      * buffers.texi (Buffer Names): Add index entries for buffers whose
 +      names begin with a space.
 +      (Creating Buffers): Document that undo is turned off in buffers
 +      whose names begin with a space.
 +
 +      * files.texi (Visiting Functions, Reading from Files)
 +      (Saving Buffers): Mention code and EOL conversions by file I/O
 +      primitives and subroutines.
 +
 +      * nonascii.texi (Lisp and Coding Systems): Document
 +      coding-system-eol-type.  Add index entries for eol conversion.
 +
 +      * display.texi (Defining Faces): Mention `mac', and add an xref to
 +      where window-system is described.
 +
 +2006-05-10  Richard Stallman  <rms@gnu.org>
 +
 +      * internals.texi (Writing Emacs Primitives): Clarify GCPRO rules.
 +
 +2006-05-10  Reiner Steib  <Reiner.Steib@gmx.de>
 +
 +      * variables.texi (File Local Variables): Recommend to quote lambda
 +      expressions in safe-local-variable property.
 +
 +2006-05-09  Richard Stallman  <rms@gnu.org>
 +
 +      * variables.texi (File Local Variables): Document
 +      safe-local-eval-forms and safe-local-eval-function.
 +
 +2006-05-07  Kim F. Storm  <storm@cua.dk>
 +
 +      * minibuf.texi (Minibuffer History): Remove keep-dups arg
 +      from add-to-history.
 +
 +2006-05-07  Romain Francoise  <romain@orebokech.com>
 +
 +      * commands.texi (Event Input Misc):
 +      * compile.texi (Eval During Compile):
 +      * internals.texi (Buffer Internals):
 +      * minibuf.texi (Initial Input):
 +      * nonascii.texi (Scanning Charsets):
 +      * numbers.texi (Comparison of Numbers):
 +      * windows.texi (Textual Scrolling, Vertical Scrolling):
 +      Fix various typos.
 +
 +2006-05-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * hooks.texi (Standard Hooks): Replace inforef to emacs-xtra by
 +      conditional xref's to either emacs or emacs-xtra, depending on
 +      @iftex/@ifnottex.
 +
 +      * minibuf.texi (Minibuffer History): Document add-to-history.
 +
 +2006-05-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * internals.texi (Pure Storage): Mention the pure overflow message
 +      at startup.
 +
 +2006-05-05  Johan Bockg\e,Ae\e(Brd  <bojohan@dd.chalmers.se>
 +
 +      * keymaps.texi (Active Keymaps): Fix pseudo-Lisp syntax.
 +      (Searching Keymaps): Fix pseudo-Lisp description of keymap
 +      search.
 +
 +2006-05-01  Richard Stallman  <rms@gnu.org>
 +
 +      * intro.texi (nil and t): Clarify.
 +
 +      * variables.texi (File Local Variables): Suggest using booleanp.
 +
 +2006-05-01  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * objects.texi (Type Predicates): Fix typos.
 +
 +2006-05-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * intro.texi (nil and t): Add booleanp.
 +
 +      * objects.texi (Type Predicates): Add links for booleanp and
 +      string-or-null-p.
 +
 +2006-04-29  Richard Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Multiline Font Lock): Rename from
 +      Multi line Font Lock Elements.  Much clarification.
 +      (Font Lock Multiline, Region to Fontify): Much clarification.
 +
 +2006-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * variables.texi (File Local Variables): Remove the special case t for
 +      safe-local-variable.
 +
 +2006-04-26  Richard Stallman  <rms@gnu.org>
 +
 +      * syntax.texi (Parsing Expressions): Minor cleanup.
 +
 +2006-04-18  Richard Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Explain when the package's
 +      prefix should appear later on (not at the start of the name).
 +
 +      * searching.texi (String Search): Clarify effect of NOERROR.
 +
 +      * modes.texi (Imenu): Clarify what special items do.
 +
 +      * hooks.texi (Standard Hooks): Delete text about old hook names.
 +
 +2006-04-17  Romain Francoise  <romain@orebokech.com>
 +
 +      * variables.texi (Local Variables): Update the default value of
 +      `max-specpdl-size'.
 +
 +2006-04-15  Michael Olson  <mwolson@gnu.org>
 +
 +      * processes.texi (Transaction Queues): Mention the new optional
 +      `delay-question' argument for `tq-enqueue'.
 +
 +2006-04-13  Bill Wohler  <wohler@newt.com>
 +
 +      * customize.texi (Common Keywords): Use dotted notation for
 +      :package-version value.  Specify its values.  Improve documentation
 +      for customize-package-emacs-version-alist.
 +
 +2006-04-12  Bill Wohler  <wohler@newt.com>
 +
 +      * customize.texi (Common Keywords): Move description of
 +      customize-package-emacs-version-alist to @defvar.
 +
 +2006-04-10  Bill Wohler  <wohler@newt.com>
 +
 +      * customize.texi (Common Keywords): Add :package-version.
 +
 +2006-04-10  Kim F. Storm  <storm@cua.dk>
 +
 +      * text.texi (Buffer Contents): Add NOPROPS arg to
 +      filter-buffer-substring.
 +
 +2006-04-08  Kevin Ryde  <user42@zip.com.au>
 +
 +      * os.texi (Command-Line Arguments): Update xref to emacs manual
 +      "Command Arguments" -> "Emacs Invocation", per change there.
 +
 +2006-04-08  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * display.texi (Other Display Specs): Arrange a @code{DOTTED-LIST} to
 +      be on one line to help makeinfo not render two spaces after the dot.
 +
 +2006-04-07  Reiner Steib  <Reiner.Steib@gmx.de>
 +
 +      * strings.texi (Predicates for Strings): Add string-or-null-p.
 +
 +2006-03-28  Kim F. Storm  <storm@cua.dk>
 +
 +      * processes.texi (Accepting Output): Remove obsolete (and incorrect)
 +      remarks about systems that don't support fractional seconds.
 +
 +2006-03-25  Karl Berry  <karl@gnu.org>
 +
 +      * elisp.texi: Use @copyright{} instead of (C), and do not indent
 +      the year list.
 +
 +2006-03-21  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * display.texi (Fringe Indicators): Fix typos.
 +
 +2006-03-19  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * tips.texi (Documentation Tips): One can now also write `program'
 +      in front of a quoted symbol in a docstring to prevent making a
 +      hyperlink.
 +
 +2006-03-19  Alan Mackenzie  <acm@muc.de>
 +
 +      * text.texi (Special Properties): Clarify `fontified' property.
 +
 +2006-03-16  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Defining Images): Minor cleanup.
 +
 +2006-03-16  Bill Wohler  <wohler@newt.com>
 +
 +      * display.texi (Defining Images): In image-load-path-for-library,
 +      prefer user's images.
 +
 +2006-03-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * modes.texi (Region to Fontify): Remove font-lock-lines-before.
 +
 +2006-03-15  Bill Wohler  <wohler@newt.com>
 +
 +      * display.texi (Defining Images): Fix example in
 +      image-load-path-for-library by not recommending that one binds
 +      image-load-path.  Just defvar it to placate compiler and only use
 +      it if previously defined.
 +
 +2006-03-14  Bill Wohler  <wohler@newt.com>
 +
 +      * display.texi (Defining Images): In image-load-path-for-library,
 +      always return list of directories.  Update example.
 +
 +2006-03-14  Alan Mackenzie  <acm@muc.de>
 +
 +      * modes.texi: New node, "Region to Fontify" (for Font Lock).
 +      This describes font-lock-extend-region-function.
 +      ("Other Font Lock Variables"): Move "font-lock-lines-before" to
 +      the new node "Region to Fontify".
 +
 +2006-03-13  Richard Stallman  <rms@gnu.org>
 +
 +      * display.texi (Invisible Text): The impossible position is
 +      now before the invisible text, not after.
 +      (Defining Images): Clean up last change.
 +
 +2006-03-11  Bill Wohler  <wohler@newt.com>
 +
 +      * display.texi (Defining Images): Add image-load-path-for-library.
 +
 +2006-03-11  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * text.texi (Adaptive Fill): Fix Texinfo usage.
 +
 +      * strings.texi (Creating Strings): Fix Texinfo usage.
 +
 +      * searching.texi (Regexp Special): Use @samp for regular
 +      expressions that are not in Lisp syntax.
 +
 +2006-03-08  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * searching.texi (Regexp Special): Put remark between parentheses
 +      to avoid misreading.
 +
 +2006-03-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * searching.texi (Syntax of Regexps): More accurately describe
 +      which characters are special in which situations.
 +      (Regexp Special): Recommend _not_ to quote `]' or `-' when they
 +      are not special.  Describe in detail when `[' and `]' are special.
 +      (Regexp Backslash): Plenty of regexps with unbalanced square
 +      brackets are valid, so reword that statement.
 +
 +2006-03-02  Kim F. Storm  <storm@cua.dk>
 +
 +      * keymaps.texi (Tool Bar): Add tool-bar-border.
 +
 +2006-02-28  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * loading.texi (Load Suffixes): Rephrase last paragraph.  Fix typos.
 +
 +2006-02-27  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * elisp.texi (Top): Include "Load Suffixes" in the detailed menu.
 +
 +      * files.texi (Locating Files): Suggest additional values for the
 +      SUFFIXES arg of `locate-file'.  Update pxref.
 +
 +      * loading.texi (Loading): Include new node "Load Suffixes" in menu.
 +      (How Programs Do Loading): Discuss the effects of Auto Compression
 +      mode on `load'.
 +      (Load Suffixes): New node.
 +      (Library Search): Delete description of `load-suffixes'; it was
 +      moved to "Load Suffixes".
 +      (Autoload, Named Features): Mention `load-suffixes'.
 +
 +2006-02-21  Giorgos Keramidas  <keramida@ceid.upatras.gr>  (tiny change)
 +
 +      * display.texi (Fringe Indicators, Fringe Cursors): Fix typos.
 +
 +      * windows.texi (Window Tree): Fix typo.
 +
 +2006-02-20  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Fringe Indicators): New section.
 +      Move indicate-empty-lines, indicate-buffer-boundaries, and
 +      default-indicate-buffer-boundaries here.
 +      Add fringe-indicator-alist and default-fringes-indicator-alist.
 +      Add list of logical fringe indicator symbols.
 +      Update list of standard bitmap names.
 +      (Fringe Cursors): New section.
 +      Move overflow-newline-into-fringe here.
 +      Add fringe-cursor-alist and default-fringes-cursor-alist.
 +      Add list of fringe cursor symbols.
 +
 +2006-02-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * commands.texi (Using Interactive): Fix reference to node
 +      "Minibuffers".
 +
 +2006-02-19  Richard M. Stallman  <rms@gnu.org>
 +
 +      * minibuf.texi (High-Level Completion):
 +      Add xref to read-input-method-name.
 +
 +      * files.texi (Relative File Names): Move file-relative-name here.
 +      (File Name Expansion): From here.  Minor clarifications.
 +
 +      * commands.texi (Using Interactive): Add xrefs about reading input.
 +      Clarify remarks about that moving point and mark.
 +      Put string case before list case.
 +
 +2006-02-16  Johan Bockg\e,Ae\e(Brd  <bojohan@dd.chalmers.se>
 +
 +      * display.texi (Other Display Specs, Image Descriptors):
 +      Revert erroneous changes.  The previous description of
 +      image-descriptors as `(image . PROPS)' was correct.
 +
 +2006-02-14  Richard M. Stallman  <rms@gnu.org>
 +
 +      * variables.texi (File Local Variables): Clarifications.
 +
 +2006-02-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * variables.texi (File Local Variables): Use @code for a cons
 +      cell, not @var.
 +
 +2006-02-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * variables.texi (File Local Variables): Document new file local
 +      variable behavior.
 +
 +2006-02-10  Kim F. Storm  <storm@cua.dk>
 +
 +      * eval.texi (Function Indirection): Add NOERROR to indirect-function.
 +
 +2006-02-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * modes.texi (%-Constructs): Remove obsolete info about
 +      `global-mode-string'.
 +
 +2006-02-07  Richard M. Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Prefix Command Arguments): Minor cleanup.
 +
 +      * display.texi: "Graphical display", not window system.
 +
 +      * functions.texi (What Is a Function): Fix xref.
 +
 +      * keymaps.texi (Key Lookup): Clarify wrt commands vs other functions.
 +      (Changing Key Bindings): Clarify when remapping is better than
 +      substitute-key-definition.
 +
 +2006-02-02  Richard M. Stallman  <rms@gnu.org>
 +
 +      * minibuf.texi (Basic Completion): Completion alists are risky.
 +
 +      * keymaps.texi (Active Keymaps): Clarifications.
 +      (Searching Keymaps): New node.
 +      (Keymaps): Update menu.
 +
 +      * frames.texi (Layout Parameters): Minor clarification.
 +      (Drag and Drop): New node.
 +      (Frames): Update menu.
 +
 +2006-01-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Other Display Specs, Image Descriptors):
 +      Image description is a list, not a cons cell.
 +
 +2006-01-28  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * lists.texi (Cons Cells): Minor correction (the cdr of a dotted
 +      list is not necessarily a list).
 +
 +2006-01-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * frames.texi (Layout Parameters): border-width and
 +      internal-border-width belong to the frame, not the window.
 +
 +2006-01-19  Richard M. Stallman  <rms@gnu.org>
 +
 +      * nonascii.texi (Translation of Characters): Search cmds use
 +      translation-table-for-input.  Automatically made local.
 +
 +      * markers.texi (Overview of Markers): Count insertion type
 +      as one of a marker's attributes.
 +
 +      * keymaps.texi (Controlling Active Maps): New node, split out of
 +      Active Keymaps.
 +      (Keymaps): Menu updated.
 +      (Active Keymaps): Give pseudocode to explain how the active
 +      maps are searched.  current-active-maps and key-binding moved here.
 +      (Functions for Key Lookup): current-active-maps and key-binding moved.
 +      Clarifications.
 +      (Searching the Keymaps): New subnode.
 +
 +      * elisp.texi (Top): Menu clarification.
 +
 +      * display.texi (Other Display Specs): Delete duplicate entry for
 +      just a string as display spec.  Move text about recursive display
 +      specs on such a string.
 +
 +      * commands.texi (Key Sequence Input): Clarify.
 +      Move num-nonmacro-input-events out.
 +      (Reading One Event): num-nonmacro-input-events moved here.
 +
 +2006-01-14  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * advice.texi (Simple Advice): Update example to fit argument
 +      change in previous-line.
 +
 +2006-01-05  Richard M. Stallman  <rms@gnu.org>
 +
 +      * markers.texi (The Mark): Fix in `mark'.
 +
 +2006-01-04  Richard M. Stallman  <rms@gnu.org>
 +
 +      * processes.texi (Misc Network, Make Network): Minor cleanups.
 +
 +2006-01-04  Kim F. Storm  <storm@cua.dk>
 +
 +      * processes.texi (Make Network): Add IPv6 addresses and handling.
 +      (Network Feature Testing): Mention (:family ipv6).
 +      (Misc Network): Add IPv6 formats to format-network-address.
 +
 +2005-12-30  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Changing Properties):
 +      Don't use return value of set-text-properties.
 +
 +2005-12-29  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * modes.texi (Mode Line Format): Correct typo in menu.
 +
 +2005-12-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Mode Line Top): New node.
 +      (Mode Line Data): Some text moved to new node.
 +      Explain the data structure more concretely.
 +      (Mode Line Basics): Clarifications.
 +      (Mode Line Variables): Clarify intro paragraph.
 +      (%-Constructs): Clarify intro paragraph.
 +      (Mode Line Format): Update menu.
 +
 +2005-12-28  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * minibuf.texi (Basic Completion): Update lazy-completion-table
 +      examples for removal of ARGS argument.
 +
 +2005-12-23  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Undo): Restore some explanation from the version
 +      that was deleted.
 +
 +2005-12-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * text.texi (Undo): Remove duplicate descriptions of `apply
 +      funname' and `apply delta' elements of the undo list.
 +
 +2005-12-20  Richard M. Stallman  <rms@gnu.org>
 +
 +      * help.texi (Help Functions): Update documentation of `apropos'.
 +
 +2005-12-20  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * customize.texi (Type Keywords): Delete xref to "Text help-echo",
 +      because it is confusing.  If the :help-echo keyword is a function,
 +      it is not directly used as the :help-echo overlay property, as the
 +      xref seems to suggest (it does not take the appropriate args).
 +
 +2005-12-19  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * customize.texi (Common Keywords): Fix Texinfo usage.
 +      (Group Definitions, Variable Definitions): Update for new
 +      conventions for using `*' in docstrings.
 +
 +      * tips.texi (Documentation Tips): Update for new conventions for
 +      using `*' in docstrings.
 +
 +2005-12-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * minibuf.texi (Minibuffer Contents): Minor cleanup.
 +
 +2005-12-16  Juri Linkov  <juri@jurta.org>
 +
 +      * minibuf.texi (Minibuffer Contents): Add minibuffer-completion-contents.
 +
 +2005-12-14  Romain Francoise  <romain@orebokech.com>
 +
 +      * modes.texi (Customizing Keywords): Rename `append' to `how'.
 +      Fix typo.
 +
 +2005-12-11  Juri Linkov  <juri@jurta.org>
 +
 +      * minibuf.texi (Completion Commands): Add mention of read-file-name
 +      for filename completion keymaps.
 +      (Reading File Names): Add mention of filename completion keymaps
 +      for read-file-name and xref to `Completion Commands'.
 +
 +2005-12-10  Richard M. Stallman  <rms@gnu.org>
 +
 +      * customize.texi (Common Keywords): State caveats for use of :tag.
 +
 +2005-12-08  Richard M. Stallman  <rms@gnu.org>
 +
 +      * minibuf.texi (Intro to Minibuffers): Replace list of local maps
 +      with xrefs and better explanation.
 +      (Completion Commands): Add the filename completion maps.
 +
 +      * objects.texi (Character Type): Clarify that \s is not space
 +      if a dash follows.
 +
 +2005-12-05  Richard M. Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Resizing Windows): Delete preserve-before args.
 +
 +2005-12-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keymaps.texi (Format of Keymaps): Remove mention of a quirk
 +      in full keymaps, since the quirk has been fixed.
 +
 +2005-12-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * hooks.texi (Standard Hooks): Add index entries.  Mention
 +      `compilation-finish-functions'.
 +
 +2005-11-27  Richard M. Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Resizing Windows): Add adjust-window-trailing-edge.
 +
 +2005-11-21  Juri Linkov  <juri@jurta.org>
 +
 +      * customize.texi (Common Keywords): Update links types
 +      custom-manual and url-link.  Add link types emacs-library-link,
 +      file-link, function-link, variable-link, custom-group-link.
 +
 +2005-11-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi: Revert 2005-11-20 change.
 +
 +2005-11-20  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * processes.texi (Bindat Functions):
 +      Say "third" to refer to zero-based index "2".
 +
 +2005-11-18  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * loading.texi (Library Search): Update the default value of
 +      `load-suffixes'.
 +
 +2005-11-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Attribute Functions): Mention :ignore-defface.
 +
 +2005-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * modes.texi (Minor Mode Conventions): Use custom-set-minor-mode.
 +      (Minor Mode Conventions): Mention the use of a hook.
 +
 +2005-11-06  Richard M. Stallman  <rms@gnu.org>
 +
 +      * files.texi (Magic File Names): find-file-name-handler checks the
 +      `operations' property of the handler.
 +
 +2005-11-03  Richard M. Stallman  <rms@gnu.org>
 +
 +      * variables.texi (Frame-Local Variables): Small clarification.
 +
 +2005-10-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * os.texi (Init File): Document ~/.emacs.d/init.el.
 +
 +2005-10-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * internals.texi (Garbage Collection): Document memory-full.
 +
 +2005-10-28  Bill Wohler  <wohler@newt.com>
 +
 +      * tips.texi (Documentation Tips): Help mode now creates hyperlinks
 +      for URLs.
 +
 +2005-10-28  Richard M. Stallman  <rms@gnu.org>
 +
 +      * minibuf.texi (Completion Commands): Clean up prev change.
 +
 +2005-10-26  Kevin Ryde  <user42@zip.com.au>
 +
 +      * compile.texi (Eval During Compile): Explain recommended uses
 +      of eval-when-compile and eval-and-compile.
 +
 +2005-10-27  Masatake YAMATO  <jet@gyve.org>
 +
 +      * minibuf.texi (Completion Commands):
 +      Write about new optional argument for `display-completion-list'.
 +
 +2005-10-23  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Overlay Arrow): Clarify about local bindings of
 +      overlay-arrow-position.
 +
 +2005-10-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * internals.texi (Building Emacs): Fix last change.
 +
 +2005-10-22  Richard M. Stallman  <rms@gnu.org>
 +
 +      * internals.texi (Building Emacs): Document eval-at-startup.
 +
 +2005-10-21  Richard M. Stallman  <rms@gnu.org>
 +
 +      * loading.texi (Where Defined): load-history contains abs file names.
 +      symbol-file returns abs file names.
 +
 +2005-10-19  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Showing Images): Add max-image-size integer value.
 +
 +2005-10-18  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Showing Images): Document max-image-size.
 +
 +2005-10-17  Richard M. Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Quitting): Minor clarification.
 +
 +      * processes.texi (Sentinels): Clarify about output and quitting.
 +      (Filter Functions): Mention with-local-quit.
 +
 +2005-10-17  Juri Linkov  <juri@jurta.org>
 +
 +      * buffers.texi (Current Buffer):
 +      * commands.texi (Event Input Misc):
 +      * compile.texi (Eval During Compile, Compiler Errors):
 +      * customize.texi (Group Definitions):
 +      * display.texi (Progress, Defining Faces):
 +      * files.texi (Writing to Files):
 +      * modes.texi (Mode Hooks, Defining Minor Modes):
 +      * streams.texi (Output Functions):
 +      * syntax.texi (Syntax Table Functions):
 +      * text.texi (Change Hooks):
 +      Replace `...' with `@dots{}' in `@defmac' and `@defspec'.
 +
 +      * commands.texi (Quitting): Replace arg `forms' with `body' in
 +      `with-local-quit'.
 +
 +      * positions.texi (Excursions): Replace arg `forms' with `body' in
 +      `save-excursion'.
 +
 +2005-10-08  Kim F. Storm  <storm@cua.dk>
 +
 +      * windows.texi (Window Tree): Rename window-split-tree to window-tree.
 +      Rename manual section accordingly.
 +
 +2005-10-04  Kim F. Storm  <storm@cua.dk>
 +
 +      * windows.texi (Window Split Tree): New section describing
 +      new function window-split-tree function.
 +
 +2005-10-03  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * display.texi (Fringe Size/Pos): Simplify and add detail.
 +
 +2005-09-30  Romain Francoise  <romain@orebokech.com>
 +
 +      * minibuf.texi (High-Level Completion): Explain that the prompt
 +      given to `read-buffer' should end with a colon and a space.
 +      Update usage examples.
 +
 +2005-09-29  Juri Linkov  <juri@jurta.org>
 +
 +      * display.texi (Displaying Messages): Rename argument name
 +      `string' to `format-string' in functions `message', `message-box',
 +      `message-or-box'.
 +
 +2005-09-26  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * errors.texi (Standard Errors): Correct xrefs.
 +
 +2005-09-18  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Defining Images): Update documentation for
 +      `image-load-path'.
 +
 +2005-09-17  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Defining Images): Clean up previous change.
 +
 +2005-09-16  Romain Francoise  <romain@orebokech.com>
 +
 +      * elisp.texi: Specify GFDL version 1.2.
 +
 +      * doclicense.texi (GNU Free Documentation License): Update to
 +      version 1.2.
 +
 +2005-09-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Defining Images): Document `image-load-path'.
 +
 +2005-09-15  Richard M. Stallman  <rms@gnu.org>
 +
 +      * objects.texi (Printed Representation): Minor cleanup.
 +      (Box Diagrams): Minor fix.
 +      (Cons Cell Type): Move (...) index item here.
 +      (Box Diagrams): From here.
 +      (Array Type): Minor fix.
 +      (Type Predicates): Delete index "predicates".
 +      (Hash Table Type): Clarify xref.
 +      (Dotted Pair Notation): Minor fix.
 +
 +2005-09-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * files.texi (Saving Buffers): Fix typo.
 +
 +2005-09-08  Richard M. Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Programming Tips): Correct the "default" prompt spec.
 +
 +2005-09-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * locals.texi (Standard Buffer-Local Variables): Don't include
 +      mode variables for minor modes.
 +      Fix xrefs for buffer-display-count, buffer-display-table,
 +      buffer-offer-save, buffer-saved-size, cache-long-line-scans,
 +      enable-multibyte-characters, fill-column, header-line-format,
 +      left-fringe-width, left-margin, and right-fringe-width.
 +
 +      * hooks.texi (Standard Hooks): All hooks should conform to the
 +      standard naming convention now.
 +      Fix xref for `echo-area-clear-hook'.
 +
 +      * display.texi (Usual Display): Note that indicate-empty-lines and
 +      tab-width are buffer-local.
 +
 +      * files.texi (Saving Buffers): Add xref to `Killing Buffers'.
 +
 +      * modes.texi (Mode Help): Note that major-mode is buffer-local.
 +
 +      * nonascii.texi (Encoding and I/O): Note that
 +      buffer-file-coding-system is buffer-local.
 +
 +      * positions.texi (List Motion): Note that defun-prompt-regexp is
 +      buffer-local.
 +
 +      * text.texi (Auto Filling): Note that auto-fill-function is
 +      buffer-local.
 +      (Undo): Note that buffer-undo-list is buffer-local.
 +
 +      * windows.texi (Buffers and Windows): Document
 +      buffer-display-count.
 +
 +2005-09-06  Richard M. Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Sometimes it is ok to put the
 +      package prefix elsewhere than at the start of the name.
 +
 +2005-09-03  Richard M. Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Programming Tips): Add conventions for minibuffer
 +      questions and prompts.
 +
 +2005-09-03  Joshua Varner  <jlvarner@gmail.com>  (tiny change)
 +
 +      * intro.texi (nil and t): Minor cleanup.
 +      Delete spurious mention of keyword symbols.
 +      (Evaluation Notation): Add index entry.
 +      (A Sample Function Description): Minor cleanup.
 +      (A Sample Variable Description): Not all vars can be set.
 +
 +2005-09-03  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * text.texi (Buffer Contents): Use "\n" in examples' result strings.
 +
 +      (Insertion): Document precise type of `insert-char' arg COUNT.
 +
 +2005-09-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * modes.texi (Other Font Lock Variables): Sync the default of
 +      font-lock-lines-before.
 +
 +2005-08-31  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.texi (Magic File Names): Add `make-auto-save-file-name'.
 +
 +2005-08-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * elisp.texi (Top): Update subnode menu.
 +
 +      * searching.texi (Searching and Matching): Move node.
 +      Rearrange contents and add overall explanation.
 +      (Searching and Case): Move node.
 +      (Searching and Matching): Update menu.
 +
 +2005-08-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * os.texi (Startup Summary): Fix the description of the initial
 +      startup message display.
 +
 +2005-08-25  Richard M. Stallman  <rms@gnu.org>
 +
 +      * searching.texi (Search and Replace): Add replace-regexp-in-string.
 +
 +2005-08-25  Emilio C. Lopes  <eclig@gmx.net>
 +
 +      * display.texi (Finding Overlays): Fix `find-overlay-prop' in
 +      `next-overlay-change' example.
 +
 +2005-08-22  Juri Linkov  <juri@jurta.org>
 +
 +      * display.texi (Attribute Functions): Add set-face-inverse-video-p.
 +      Fix invert-face.  Fix args of face-background.
 +
 +      * display.texi (Standard Faces): Delete node.
 +      (Faces): Add xref to `(emacs)Standard Faces'.
 +      (Displaying Faces): Fix xref to `Standard Faces'.
 +
 +      * modes.texi (Mode Line Data): Fix xref to Standard Faces.
 +
 +2005-08-20  Alan Mackenzie  <acm@muc.de>
 +
 +      * buffers.texi (The Buffer List): Clarify the manipulation of the
 +      buffer list.
 +
 +2005-08-14  Richard M. Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Auto Major Mode): interpreter-mode-alist key is not
 +      a regexp.
 +
 +2005-08-11  Richard M. Stallman  <rms@gnu.org>
 +
 +      * elisp.texi (Top): Update subnode lists.
 +
 +      * display.texi (Inverse Video): Node deleted.
 +
 +      * tips.texi (Key Binding Conventions, Programming Tips, Warning Tips):
 +      New nodes split out of Coding Conventions.
 +
 +      * searching.texi (Regular Expressions): Document re-builder.
 +
 +      * os.texi (Time Parsing): New node split out of Time Conversion.
 +
 +      * processes.texi (Misc Network, Network Feature Testing)
 +      (Network Options, Make Network): New nodes split out of
 +      Low-Level Network.
 +
 +2005-08-09  Richard M. Stallman  <rms@gnu.org>
 +
 +      * frames.texi (Geometry): New node, split from Size and Position.
 +      (Frame Parameters): Refer to Geometry.
 +
 +      * buffers.texi (The Buffer List): Fix xrefs.
 +
 +      * windows.texi (Splitting Windows): Fix xref.
 +
 +      * frames.texi (Layout Parameters): Add xref.
 +
 +      * display.texi (Line Height, Scroll Bars): Fix xrefs.
 +
 +      * keymaps.texi (Menu Bar): Fix xref.
 +
 +      * locals.texi (Standard Buffer-Local Variables): Fix xref.
 +
 +      * modes.texi (%-Constructs): Fix xref.
 +
 +      * frames.texi (Window Frame Parameters): Node split up.
 +      (Basic Parameters, Position Parameters, Size Parameters)
 +      (Layout Parameters, Buffer Parameters, Management Parameters)
 +      (Cursor Parameters, Color Parameters): New subnodes.
 +
 +2005-08-09  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * positions.texi (Screen Lines): Update xref for previous change
 +      in minibuf.texi.
 +
 +      * minibuf.texi (Intro to Minibuffers): Update pxref for previous
 +      change in minibuf.texi.
 +
 +2005-08-09  Richard M. Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Minor cleanup.
 +
 +      * modes.texi (Defining Minor Modes): Explain when init-value
 +      can be non-nil.
 +
 +      * elisp.texi (Top): Update submenu for Minibuffer.
 +
 +      * minibuf.texi (Minibuffer Misc): Node split up.
 +      (Minibuffer Commands, Minibuffer Windows, Minibuffer Contents)
 +      (Recursive Mini): New nodes split out from Minibuffer Misc.
 +      (Minibuffer Misc): Document max-mini-window-height.
 +
 +      * hash.texi (Defining Hash): Delete stray paren in example.
 +
 +      * display.texi (Echo Area Customization): Don't define
 +      max-mini-window-height here; xref instead.
 +
 +      * commands.texi (Event Input Misc): Update while-no-input.
 +
 +      * advice.texi (Advising Functions): Explain when to use advice
 +      and when to use a hook.
 +
 +2005-07-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (info): Don't run install-info.
 +      ($(infodir)/dir): New target, produced by running install-info.
 +
 +2005-07-27  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * modes.texi (Defining Minor Modes): The keyword for the initial
 +      value is :init-value, not :initial-value.
 +
 +2005-07-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * loading.texi (Autoload): Make the `doctor' example be consistent
 +      with what's in current loaddefs.el.  Describe the "fn" magic in
 +      the usage portion of the doc string.
 +
 +2005-07-22  Richard M. Stallman  <rms@gnu.org>
 +
 +      * internals.texi (Garbage Collection): Clarify previous change.
 +
 +2005-07-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * internals.texi (Garbage Collection): Add gc-cons-percentage.
 +
 +2005-07-18  Juri Linkov  <juri@jurta.org>
 +
 +      * commands.texi (Accessing Events):
 +      * frames.texi (Text Terminal Colors, Resources):
 +      * markers.texi (The Mark):
 +      * modes.texi (Defining Minor Modes):
 +      Delete duplicate duplicate words.
 +
 +2005-07-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Managing Overlays): Clarify make-overlay
 +      args for insertion types.
 +
 +2005-07-13  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * customize.texi (Variable Definitions):
 +      Add `custom-initialize-safe-set' and `custom-initialize-safe-default'.
 +      `standard-value' is a list too.
 +      (Defining New Types): Use @key{RET} instead of @key{ret}.
 +
 +2005-07-13  Francis Litterio  <franl@world.std.com>  (tiny change)
 +
 +      * os.texi (Translating Input): Fix typo.
 +
 +2005-07-08  Richard M. Stallman  <rms@gnu.org>
 +
 +      * README: Update edition number and size estimate.
 +
 +      * elisp.texi (VERSION): Set to 2.9.
 +
 +2005-07-07  Richard M. Stallman  <rms@gnu.org>
 +
 +      * book-spine.texinfo: Update Emacs version.
 +
 +      * display.texi (Inverse Video): Delete mode-line-inverse-video.
 +
 +2005-07-06  Richard M. Stallman  <rms@gnu.org>
 +
 +      * searching.texi (Regexp Search): Clarify what re-search-forward
 +      does when the search fails.
 +
 +2005-07-05  Lute Kamstra  <lute@gnu.org>
 +
 +      * Update FSF's address in GPL notices.
 +
 +      * doclicense.texi (GNU Free Documentation License):
 +      * gpl.texi (GPL):
 +      * tips.texi (Coding Conventions, Library Headers):
 +      * vol1.texi:
 +      * vol2.texi: Update FSF's address.
 +
 +2005-07-04  Richard M. Stallman  <rms@gnu.org>
 +
 +      * hooks.texi (Standard Hooks): Add occur-hook.
 +
 +2005-07-03  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi (The Echo Area): Correct menu.
 +
 +2005-07-03  Richard M. Stallman  <rms@gnu.org>
 +
 +      * elisp.texi (Top): Update subnode menu for Display.
 +
 +      * display.texi (Displaying Messages): New node, with most
 +      of what was in The Echo Area.
 +      (Progress): Moved under The Echo Area.
 +      (Logging Messages): New node with new text.
 +      (Echo Area Customization): New node, the rest of what was
 +      in The Echo Area.  Document message-truncate-lines with @defvar.
 +      (Display): Update menu.
 +
 +      * windows.texi (Textual Scrolling): Doc 3 values for
 +      scroll-preserve-screen-position.
 +
 +      * text.texi (Special Properties): Change hook functions
 +      should bind inhibit-modification-hooks around altering buffer text.
 +
 +      * keymaps.texi (Key Binding Commands): Call binding BINDING
 +      rather than DEFINITION.
 +
 +2005-06-29  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * variables.texi (Defining Variables): `user-variable-p' returns t
 +      for aliases of user options, nil for alias loops.
 +
 +2005-06-28  Richard M. Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Creating Keymaps): Put make-sparse-keymap before
 +      make-keymap.
 +
 +2005-06-27  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * variables.texi (Setting Variables): Correct and clarify
 +      description of `add-to-ordered-list'.
 +
 +2005-06-26  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Faces): Minor cleanup.
 +
 +2005-06-25  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi (Faces): `facep' returns t for strings that are
 +      face names.
 +
 +2005-06-25  Richard M. Stallman  <rms@gnu.org>
 +
 +      * objects.texi (Equality Predicates): Clarify meaning of equal.
 +
 +      * windows.texi (Selecting Windows): save-selected-window
 +      and with-selected-window save and restore the current buffer.
 +
 +2005-06-24  Richard M. Stallman  <rms@gnu.org>
 +
 +      * numbers.texi (Float Basics): Explain how to test for NaN,
 +      and printing the sign of NaNs.
 +
 +2005-06-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (MAKEINFO): Use --force.
 +
 +2005-06-23  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Face Functions): Correct Texinfo usage.
 +
 +2005-06-23  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * lists.texi (Rings): `ring-elements' now returns the elements of
 +      RING in order.
 +
 +2005-06-23  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * markers.texi (The Mark): Texinfo usage fix.
 +
 +2005-06-23  Kim F. Storm  <storm@cua.dk>
 +
 +      * searching.texi (Entire Match Data): Remove evaporate option for
 +      match-data.  Do not mention evaporate option for set-match-data.
 +
 +2005-06-22  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * display.texi (Face Functions): Mention face aliases.
 +
 +2005-06-21  Richard M. Stallman  <rms@gnu.org>
 +
 +      * anti.texi (Antinews): Texinfo usage fix.
 +
 +2005-06-21  Karl Berry  <karl@gnu.org>
 +
 +      * elisp.texi: Use @copying.
 +
 +      * elisp.texi: Put @summarycontents and @contents before the Top
 +      node, instead of the end of the file, so that the contents appear
 +      in the right place in the dvi/pdf output.
 +
 +2005-06-21  Juri Linkov  <juri@jurta.org>
 +
 +      * display.texi (Defining Faces): Add `customized-face'.
 +
 +2005-06-20  Kim F. Storm  <storm@cua.dk>
 +
 +      * variables.texi (Setting Variables): Any type of element can be
 +      given order in add-to-ordered-list.  Compare elements with eq.
 +
 +      * lists.texi (Rearrangement): Sort predicate may just return non-nil.
 +
 +2005-06-20  Karl Berry  <karl@gnu.org>
 +
 +      * syntax.texi (Syntax Flags): Make last column very slightly wider
 +      to avoid "generic comment" breaking on two lines and causing an
 +      underfull box.
 +
 +2005-06-19  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * lists.texi (Rings): Various minor clarifications and corrections.
 +
 +2005-06-18  Richard M. Stallman  <rms@gnu.org>
 +
 +      * functions.texi (Obsolete Functions): Simplify.
 +
 +      * variables.texi (Variable Aliases): Simplify.
 +
 +      * anti.texi, backups.texi, compile.texi, customization.texi:
 +      * debugging.texi, display.texi, edebug.texi, errors.texi, frames.texi:
 +      * functions.texi, help.texi, keymaps.texi, modes.texi, nonascii.texi:
 +      * os.texi, processes.texi, searching.texi, strings.texi, text.texi:
 +      * variables.texi: Fix formatting ugliness.
 +
 +      * elisp.texi: Add links to Rings and Byte Packing.
 +      Update version and copyright years.
 +
 +      * minibuf.texi: Fix formatting ugliness.
 +      (Completion Commands): Move keymap vars to the end
 +      and vars completing-read binds to the top.
 +
 +2005-06-17  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * processes.texi: Fix typos.
 +      (Bindat Spec): Correct Texinfo error.
 +      (Byte Packing): Fix ungrammatical sentence.
 +
 +2005-06-17  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * lists.texi (Rings): New node.
 +      (Lists): Add it to menu.
 +
 +      * processes.texi (Byte Packing): New node.
 +      (Processes): Add it to menu.
 +
 +2005-06-17  Richard M. Stallman  <rms@gnu.org>
 +
 +      * syntax.texi (Parsing Expressions): Fix texinfo usage.
 +
 +      * help.texi (Documentation Basics): Explain the xref to
 +      Documentation Tips.
 +
 +      * debugging.texi (Debugger Commands): Minor fix.
 +
 +2005-06-16  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * edebug.texi (Instrumenting): Eliminate duplicate link.
 +      (Specification List): Replace references to "below", referring to
 +      a later node, with one @ref to that node.
 +
 +      * os.texi (Timers): Timers should save and restore the match data
 +      if they change it.
 +
 +      * debugging.texi (Debugger Commands): Mention that the Lisp
 +      debugger can not step through primitive functions.
 +
 +2005-06-16  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * functions.texi (Obsolete Functions): Update argument names of
 +      `make-obsolete' and `define-obsolete-function-alias'.
 +
 +      * variables.texi (Variable Aliases): Update argument names of
 +      `defvaralias', `make-obsolete-variable' and
 +      `define-obsolete-variable-alias'.
 +
 +2005-06-15  Kim F. Storm  <storm@cua.dk>
 +
 +      * searching.texi (Entire Match Data): Rephrase warnings about
 +      evaporate arg to match-data and set-match-data.
 +
 +2005-06-14  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * elisp.texi (Top): Update detailed menu.
 +
 +      * edebug.texi (Edebug): Update menu.
 +      (Instrumenting): Update xrefs.
 +      (Edebug Execution Modes): Correct xref.
 +      (Jumping): Clarify description of `h' command.
 +      Eliminate redundant @ref.
 +      (Breaks): New node.
 +      (Breakpoints): Is now a subsubsection.
 +      (Global Break Condition): Mention `C-x X X'.
 +      (Edebug Views): Clarify `v' and `p'.  Mention `C-x X w'.
 +      (Trace Buffer): Clarify STRING arg of `edebug-tracing'.
 +      (Edebug Display Update): Correct pxref.
 +      (Edebug and Macros): New node.
 +      (Instrumenting Macro Calls): Is now a subsubsection.
 +      Neither arg of `def-edebug-spec' is evaluated.
 +      (Instrumenting Macro Calls): Mention `edebug-eval-macro-args'.
 +      (Specification Examples): Fix typo.
 +
 +2005-06-14  Lute Kamstra  <lute@gnu.org>
 +
 +      * debugging.texi (Function Debugging): Primitives can break on
 +      entry too.
 +
 +2005-06-14  Kim F. Storm  <storm@cua.dk>
 +
 +      * variables.texi (Setting Variables): Add add-to-ordered-list.
 +
 +2005-06-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * syntax.texi (Parsing Expressions): Document aux functions and vars of
 +      syntax-ppss: syntax-ppss-flush-cache and syntax-begin-function.
 +
 +2005-06-13  Lute Kamstra  <lute@gnu.org>
 +
 +      * text.texi (Special Properties): Fix cross reference.
 +
 +2005-06-11  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * debugging.texi (Function Debugging): Delete mention of empty
 +      string argument to `cancel-debug-on-entry'.  Delete inaccurate
 +      description of the return value of that command.
 +
 +2005-06-11  Alan Mackenzie  <acm@muc.de>
 +
 +      * text.texi (Adaptive Fill): Amplify the description of
 +      fill-context-prefix.
 +
 +2005-06-10  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * syntax.texi (Parsing Expressions): Fix Texinfo error.
 +
 +2005-06-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * syntax.texi (Parsing Expressions): Document syntax-ppss.
 +
 +2005-06-10  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * debugging.texi (Error Debugging): Minor rewording.
 +      (Function Debugging): FUNCTION-NAME arg to `cancel-debug-on-entry'
 +      is optional.
 +
 +2005-06-10  Lute Kamstra  <lute@gnu.org>
 +
 +      * elisp.texi: Use EMACSVER to refer to the current version of Emacs.
 +      (Top): Give it a title.  Correct version number.  Give the
 +      detailed node listing a more prominent header.
 +      * intro.texi: Don't set VERSION here a second time.
 +      Mention Emacs's version too.
 +      * anti.texi (Antinews): Use EMACSVER to refer to the current
 +      version of Emacs.
 +
 +2005-06-09  Kim F. Storm  <storm@cua.dk>
 +
 +      * searching.texi (Entire Match Data): Explain new `reseat' argument to
 +      match-data and set-match-data.
 +
 +2005-06-08  Richard M. Stallman  <rms@gnu.org>
 +
 +      * searching.texi (Entire Match Data): Clarify when match-data
 +      returns markers and when integers.
 +
 +      * display.texi (Defining Faces): Explain that face name should not
 +      end in `-face'.
 +
 +      * modes.texi (Mode Line Data): Minor cleanup.
 +      (Customizing Keywords): Node split out of Search-based Fontification.
 +      Add example of using font-lock-add-keywords from a hook.
 +      Clarify when MODE should be non-nil, and when nil.
 +
 +2005-06-06  Richard M. Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Mode Line Data): Explain what happens when the car
 +      of a list is a void symbol.
 +      (Search-based Fontification): Explain MODE arg to
 +      font-lock-add-keywords and warn about calls from major modes.
 +
 +2005-06-08  Juri Linkov  <juri@jurta.org>
 +
 +      * display.texi (Standard Faces): Add `shadow' face.
 +
 +2005-05-29  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * modes.texi (Major Mode Conventions): A derived mode only needs
 +      to put the call to the parent mode inside `delay-mode-hooks'.
 +
 +2005-05-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Mode Hooks): Explain that after-change-major-mode-hook is
 +      new, and what that implies.  Clarify.
 +
 +      * files.texi (Locating Files): Clean up the text.
 +
 +      * frames.texi (Window Frame Parameters): Document user-size.
 +      Shorten entry for top by referring to left.
 +
 +2005-05-26  Richard M. Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Mode Hooks): Explain that after-change-major-mode-hook
 +      is new, and what the implications are.  Other clarifications.
 +
 +2005-05-24  Richard M. Stallman  <rms@gnu.org>
 +
 +      * frames.texi (Dialog Boxes): Minor fixes.
 +
 +2005-05-25  Masatake YAMATO  <jet@gyve.org>
 +
 +      * display.texi (Standard Faces): Write about `mode-line-highlight'.
 +
 +2005-05-24  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi (Dialog Boxes): HEADER argument to `x-popup-dialog'
 +      is optional.
 +
 +2005-05-24  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * frames.texi (Dialog Boxes): Descibe new optional argument.
 +
 +2005-05-23  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Font Lock Basics, Syntactic Font Lock): Recommend
 +      syntax-begin-function over font-lock-beginning-of-syntax-function.
 +
 +2005-05-21  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * minibuf.texi (Reading File Names): Update description of
 +      `read-directory-name'.
 +
 +      * modes.texi (Derived Modes): Clarify :group keyword.
 +
 +2005-05-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.texi (Locating Files): New subsection.
 +      Describe locate-file and executable-find.
 +
 +2005-05-21  Kevin Ryde  <user42@zip.com.au>
 +
 +      * frames.texi (Initial Parameters): Update cross reference to
 +      "Emacs Invocation".
 +
 +2005-05-19  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * keymaps.texi (Active Keymaps): Add anchor.
 +
 +      * modes.texi (Hooks): Delete confusing and unnecessary sentence.
 +      (Major Mode Conventions): Refer to `Auto Major Mode' in more
 +      appropriate place.
 +      (Derived Modes): Small clarifications.
 +      (Minor Mode Conventions, Keymaps and Minor Modes):
 +      Replace references to nodes with references to anchors.
 +      (Mode Line Data): Warn that `(:eval FORM)' should not load any files.
 +      Clarify description of lists whose first element is an integer.
 +      (Mode Line Variables): Add anchor.
 +      (%-Constructs): Clarify description of integer after %.
 +      (Emulating Mode Line): Describe nil value for FACE.
 +
 +2005-05-18  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * modes.texi (Derived Modes): Correct references to non-existing
 +      variable standard-syntax-table.
 +
 +2005-05-17  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Defining Minor Modes): Mention the mode hook.
 +
 +2005-05-15  Kim F. Storm  <storm@cua.dk>
 +
 +      * processes.texi (Network): Remove open-network-stream-nowait.
 +      (Network Servers): Remove open-network-stream-server.
 +
 +2005-05-15  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * elisp.texi (Top): Update detailed menu.
 +
 +      * variables.texi: Reorder nodes.
 +      (Variables): Update menu.
 +      (File Local Variables): Do not refer to the `-*-' line as
 +      a "local variables list".  Add pxref.
 +
 +2005-05-14  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * elisp.texi (Top): Update detailed menu for node changes.
 +
 +      * modes.texi (Modes): Update Menu.
 +      (Hooks): Move to beginning of chapter.
 +      Most minor modes run mode hooks too.
 +      `add-hook' can handle void hooks or hooks whose value is a single
 +      function.
 +      (Major Modes): Update Menu.
 +      (Major Mode Basics): New node, split off from `Major Modes'.
 +      (Major Mode Conventions): Correct xref.  Explain how to handle
 +      auto-mode-alist if the major mode command has an autoload cookie.
 +      (Auto Major Mode): Major update.  Add magic-mode-alist.
 +      (Derived Modes): Major update.
 +      (Mode Line Format): Update Menu.
 +      (Mode Line Basics): New node, split off from `Mode Line Format'.
 +
 +      * loading.texi (Autoload): Mention `autoload cookie' as synonym
 +      for `magic autoload comment'.  Add index entries and anchor.
 +
 +2005-05-14  Richard M. Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Explain how important it is
 +      that just loading certain files not change Emacs behavior.
 +
 +      * modes.texi (Defining Minor Modes): Define define-global-minor-mode.
 +
 +2005-05-12  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Generic Modes): Update.
 +      (Major Modes): Refer to node "Generic Modes".
 +
 +      * elisp.texi (Top): Update to the current structure of the manual.
 +      * processes.texi (Processes): Add menu description.
 +      * customize.texi (Customization): Add menu descriptions.
 +
 +2005-05-11  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * processes.texi (Signals to Processes)
 +      (Low-Level Network): Fix typos.
 +
 +2005-05-11  Lute Kamstra  <lute@gnu.org>
 +
 +      * elisp.texi (Top): Add some nodes from the chapter "Major and
 +      Minor Modes" to the detailed node listing.
 +
 +2005-05-10  Richard M. Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Extended Menu Items): Menu item filter functions
 +      can be called at any time.
 +
 +2005-05-08  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * variables.texi (File Local Variables): `(hack-local-variables t)'
 +      now also checks whether a mode is specified in the local variables
 +      list.
 +
 +2005-05-05  Kevin Ryde  <user42@zip.com.au>
 +
 +      * display.texi (The Echo Area): Correct format function cross
 +      reference.
 +
 +2005-05-05  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * variables.texi (Variable Aliases): Change description of
 +      `define-obsolete-variable-alias'.
 +
 +      * functions.texi (Functions): Add "Obsolete Functions" to menu.
 +      (Defining Functions): Add xref.
 +      (Obsolete Functions): New node.
 +      (Function Safety): Standardize capitalization of section title.
 +
 +      * frames.texi (Pop-Up Menus): Complete description of `x-popup-menu'.
 +      (Dialog Boxes): Complete description of `x-popup-dialog'.
 +
 +2005-05-04  Richard M. Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Interactive Codes): Fix Texinfo usage.
 +      Document U more clearly.
 +
 +2005-05-01  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * variables.texi (Variable Aliases): `make-obsolete-variable' is a
 +      function and not a macro.
 +
 +      * frames.texi (Pop-Up Menus): Correct and clarify description of
 +      `x-popup-menu'.
 +      (Dialog Boxes): Clarify description of `x-popup-dialog'.
 +
 +2005-05-01  Richard M. Stallman  <rms@gnu.org>
 +
 +      * edebug.texi (Checking Whether to Stop): Fix previous change.
 +
 +2005-05-01  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi: Fix typos and Texinfo usage.
 +
 +      * edebug.texi (Checking Whether to Stop): executing-macro ->
 +      executing-kbd-macro.
 +
 +2005-05-01  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Invisible Text): Correct add-to-invisibility-spec.
 +
 +2005-04-30  Richard M. Stallman  <rms@gnu.org>
 +
 +      * files.texi (Magic File Names): Document `operations' property.
 +
 +2005-04-29  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Generic Modes): New node.
 +      (Major Modes): Add it to the menu.
 +      (Derived Modes): Add "derived mode" to concept index.
 +
 +2005-04-28  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Defining Minor Modes): Fix previous change.
 +      (Font Lock Mode): Simplify.
 +      (Font Lock Basics): Say that font-lock-defaults is buffer-local
 +      when set and that some parts are optional.  Add cross references.
 +      (Search-based Fontification): Say how to specify font-lock-keywords.
 +      Add cross references.  Add font-lock-multiline to index.
 +      Move font-lock-keywords-case-fold-search here from node "Other Font
 +      Lock Variables".  Document font-lock-add-keywords and
 +      font-lock-remove-keywords.
 +      (Other Font Lock Variables): Move font-lock-keywords-only,
 +      font-lock-syntax-table, font-lock-beginning-of-syntax-function,
 +      and font-lock-syntactic-face-function to node "Syntactic Font
 +      Lock".  Move font-lock-keywords-case-fold-search to node
 +      "Search-based Fontification".  Document font-lock-inhibit-thing-lock
 +      and font-lock-{,un}fontify-{buffer,region}-function.
 +      (Precalculated Fontification): Remove reference to deleted variable
 +      font-lock-core-only.
 +      (Faces for Font Lock): Add font-lock-comment-delimiter-face.
 +      (Syntactic Font Lock): Add intro.  Move font-lock-keywords-only,
 +      font-lock-syntax-table, font-lock-beginning-of-syntax-function,
 +      and font-lock-syntactic-face-function here from node "Other Font
 +      Lock Variables".  Move font-lock-syntactic-keywords to "Setting
 +      Syntax Properties".  Add cross references.
 +      (Setting Syntax Properties): New node.
 +      Move font-lock-syntactic-keywords here from "Syntactic Font Lock".
 +      * syntax.texi (Syntax Properties): Add cross reference.
 +      * hooks.texi (Standard Hooks): Add Font-Lock hooks.
 +
 +2005-04-26  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Defining Faces):
 +      Document `default' elements of defface spec.
 +
 +      * modes.texi (Major Mode Conventions): Explain customizing ElDoc mode.
 +
 +      * variables.texi (Variable Aliases): Clarify text.
 +
 +2005-04-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * windows.texi (Window Hooks): Remove reference to obsolete Lazy Lock.
 +
 +2005-04-25  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * hooks.texi (Standard Hooks): Most minor modes have mode hooks too.
 +
 +2005-04-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * syntax.texi (Syntax Table Internals): Elaborate documentation of
 +      syntax-after and syntax-class.
 +
 +      * files.texi (Changing Files): Fix last change's cross-reference.
 +      (Unique File Names): Don't mention "numbers" in the documentation
 +      of make-temp-file and make-temp-name.
 +
 +2005-04-23  Richard M. Stallman  <rms@gnu.org>
 +
 +      * files.texi (Changing Files): Document MUSTBENEW arg in copy-file.
 +
 +2005-04-22  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * windows.texi (Cyclic Window Ordering): Clarify window-list.
 +
 +2005-04-22  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * variables.texi (Variable Aliases): Describe make-obsolete-variable
 +      and define-obsolete-variable-alias.
 +
 +2005-04-22  Kim F. Storm  <storm@cua.dk>
 +
 +      * symbols.texi (Symbol Plists): Remove safe-get, as get is now safe.
 +      (Other Plists): Remove safe-plist-get, as plist-get is now safe.
 +
 +2005-04-21  Lute Kamstra  <lute@gnu.org>
 +
 +      * lists.texi (Association Lists): Document rassq-delete-all.
 +
 +2005-04-19  Richard M. Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Search-based Fontification): Explain that
 +      facespec is an expression to be evaluated.
 +
 +2005-04-19  Kevin Ryde  <user42@zip.com.au>
 +
 +      * streams.texi (Output Functions): Fix xref.
 +      * strings.texi (String Conversion): Fix xref.
 +
 +2005-04-19  Kim F. Storm  <storm@cua.dk>
 +
 +      * symbols.texi (Symbol Plists): Add safe-get.
 +      Mention that `get' may signal an error.
 +
 +2005-04-18  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * customize.texi (Variable Definitions): Replace tooltip-mode
 +      example with save-place.
 +
 +2005-04-17  Richard M. Stallman  <rms@gnu.org>
 +
 +      * buffers.texi (Indirect Buffers): Clarify.
 +
 +      * positions.texi (Positions): Clarify converting marker to integer.
 +
 +      * strings.texi (String Basics): Mention string-match; clarify.
 +
 +2005-04-08  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Search-based Fontification): Fix cross references.
 +      Use consistent terminology.  Document anchored highlighting.
 +
 +2005-04-05  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Defining Minor Modes): Document :group keyword
 +      argument and its default value.
 +
 +2005-04-03  Lute Kamstra  <lute@gnu.org>
 +
 +      * hooks.texi (Standard Hooks): Add some hooks.  Add cross
 +      references and/or descriptions.  Delete major mode hooks; mention
 +      them as a category instead.  Rename or delete obsolete hooks.
 +
 +2005-04-02  Richard M. Stallman  <rms@gnu.org>
 +
 +      * nonascii.texi (Coding System Basics): Another wording cleanup.
 +
 +2005-04-01  Richard M. Stallman  <rms@gnu.org>
 +
 +      * nonascii.texi (Coding System Basics): Clarify previous change.
 +
 +2005-04-01  Kenichi Handa  <handa@m17n.org>
 +
 +      * nonascii.texi (Coding System Basics): Describe about rondtrip
 +      identity of coding systems.
 +
 +2005-03-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * text.texi (Buffer Contents): Add filter-buffer-substring and
 +      buffer-substring-filters.
 +
 +2005-03-26  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * anti.texi (Antinews): Mention `G' interactive code.
 +
 +      * tips.texi (Compilation Tips): Mention benchmark.el.
 +
 +2005-03-27  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * modes.texi (Other Font Lock Variables): `font-lock-fontify-block'
 +      is now bound to M-o M-o.
 +
 +      * keymaps.texi (Prefix Keys): `facemenu-keymap' is now on M-o.
 +
 +2005-03-26  Glenn Morris  <gmorris@ast.cam.ac.uk>
 +
 +      * calendar.texi: Delete file (and move contents to emacs-xtra.texi
 +      in the Emacs Manual).
 +      * Makefile.in (srcs): Remove calendar.texi.
 +      * makefile.w32-in (srcs): Remove calendar.texi.
 +      * display.texi (Display): Change name of next node.
 +      * os.texi (System In): Change name of previous node.
 +      * elisp.texi (Top): Remove Calendar references.
 +      * vol1.texi (Top): Remove Calendar references.
 +      * vol2.texi (Top): Remove Calendar references.
 +
 +2005-03-25  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Standard Faces, Fringe Bitmaps, Customizing Bitmaps):
 +      Cleanup previous change.
 +
 +2005-03-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Face Attributes): Faces earlier in an :inherit
 +      list take precedence.
 +      (Scroll Bars): Fix description of vertical-scroll-bars.
 +      Document frame-current-scroll-bars and window-current-scroll-bars.
 +
 +      * markers.texi (The Mark): Document temporary Transient Mark mode.
 +
 +      * minibuf.texi (Reading File Names):
 +      Document read-file-name-completion-ignore-case.
 +
 +      * positions.texi (Screen Lines): Document nil for width argument
 +      to compute-motion.
 +
 +2005-03-23  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Standard Faces): Other faces used in the fringe
 +      implicitly inherits from the fringe face.
 +      (Fringe Bitmaps): FACE in right-fringe and left-fringe display
 +      properties implicitly inherits from fringe face.
 +      (Customizing Bitmaps): Likewise for set-fringe-bitmap-face.
 +
 +2005-03-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * display.texi (Invisible Text): State default value of
 +      line-move-ignore-invisible.
 +      (Managing Overlays): Document remove-overlays.
 +      (Standard Faces): Document escape-glyph face.
 +
 +      * minibuf.texi (Reading File Names): Document read-file-name-function.
 +
 +      * modes.texi (Other Font Lock Variables):
 +      Document font-lock-lines-before.
 +
 +      * positions.texi (Skipping Characters): skip-chars-forward allows
 +      character classes.
 +
 +2005-03-18  Lute Kamstra  <lute@gnu.org>
 +
 +      * edebug.texi (Instrumenting Macro Calls): Fix another typo.
 +
 +2005-03-17  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Undo): Document extensible undo entries.
 +
 +      * searching.texi (String Search, Regexp Search): Cleanups.
 +
 +      * nonascii.texi (Character Codes): Minor fix.
 +
 +      * display.texi (Display Property): Explain the significance
 +      of having text properties that are eq.
 +      (Other Display Specs): Explain string as display spec.
 +
 +      * commands.texi (Interactive Codes): Document G option.
 +
 +2005-03-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * text.texi (Filling): Add sentence-end-without-period and
 +      sentence-end-without-space.
 +      (Changing Properties): Minor fix.
 +
 +      * anti.texi: Total rewrite.
 +
 +2005-03-15  Lute Kamstra  <lute@gnu.org>
 +
 +      * edebug.texi (Instrumenting Macro Calls): Fix typos.
 +
 +2005-03-08  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Specified Space): Property :width is support on
 +      non-graphic terminals, :height is not.
 +
 +2005-03-07  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Overlay Arrow, Fringe Bitmaps, Customizing Bitmaps):
 +      Now subnodes of Fringes.
 +      (Overlay Arrow): Document overlay-arrow-variable-list.
 +      (Fringe Size/Pos): New node, broken out of Fringes.
 +      (Display): Explain clearing vs redisplay better.
 +      (Truncation): Clarify use of bitmaps.
 +      (The Echo Area): Clarify the uses of the echo area.
 +      Add max-mini-window-height.
 +      (Progress): Clarify.
 +      (Invisible Text): Explain that main loop moves point out.
 +      (Selective Display): Say "hidden", not "invisible".
 +      (Managing Overlays): Move up.  Describe relation to Undo here.
 +      (Overlay Properties): Clarify intro.
 +      (Finding Overlays): Explain return values when nothing found.
 +      (Width): truncate-string-to-width has added arg.
 +      (Displaying Faces): Clarify and update mode line face handling.
 +      (Face Functions): Minor cleanup.
 +      (Conditional Display): Merge into Other Display Specs.
 +      (Pixel Specification, Other Display Specs): Minor cleanups.
 +      (Images, Image Descriptors): Minor cleanups.
 +      (GIF Images): Patents have expired.
 +      (Showing Images): Explain default text for insert-image.
 +      (Manipulating Button Types): Merge into Manipulating Buttons.
 +      (Making Buttons): Explain return values.
 +      (Button Buffer Commands): Add xref.
 +      (Inverse Video): Update mode-line-inverse-video.
 +      (Display Table Format): Clarify.
 +      (Active Display Table): Give defaults for window-display-table.
 +
 +      * calendar.texi (Calendar Customizing): calendar-holiday-marker
 +      and calendar-today-marker are strings, not chars.
 +      (Holiday Customizing): Minor fix.
 +
 +      * internals.texi (Writing Emacs Primitives): Update `or' example.
 +      Update limit on # args of subr.
 +
 +      * edebug.texi (Using Edebug): Arrow is in fringe.
 +      (Instrumenting): Arg to eval-defun works without loading edebug.
 +      (Edebug Execution Modes): Add xref.
 +
 +      * customize.texi (Common Keywords): Clarify :require.
 +      Mention :version here.
 +      (Variable Definitions, Group Definitions): Not here.
 +      (Variable Definitions): Clarify symbol arg to :initialize and :set fns.
 +
 +2005-03-07  Chong Yidong  <cyd@stupidchicken.com>
 +      * nonascii.texi (Text Representations): Clarify position-bytes.
 +      (Character Sets): Add list-charset-chars.
 +      (Scanning Charsets): Add charset-after.
 +      (Encoding and I/O): Minor fix.
 +
 +2005-03-06  Richard M. Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Vertical Scrolling): Get rid of "Emacs 21".
 +      (Resizing Windows): Likewise.
 +
 +      * text.texi (Change Hooks): Get rid of "Emacs 21".
 +
 +      * strings.texi (Formatting Strings): Get rid of "Emacs 21".
 +
 +      * streams.texi (Output Variables): Get rid of "Emacs 21".
 +
 +      * searching.texi (Regexp Special, Char Classes): Get rid of "Emacs 21".
 +
 +      * os.texi (Translating Input): Replace flow-control example
 +      with a less obsolete example that uses `keyboard-translate'.
 +
 +      * objects.texi (Hash Table Type, Circular Objects):
 +      Get rid of "Emacs 21".
 +
 +      * modes.texi (Mode Line Format): Get rid of "Emacs 21".
 +      (Mode Line Data, Properties in Mode, Header Lines): Likewise.
 +
 +      * minibuf.texi (Minibuffer Misc): Get rid of "Emacs 21".
 +
 +      * lists.texi (List Elements, Building Lists): Get rid of "Emacs 21".
 +
 +      * keymaps.texi (Menu Separators, Tool Bar): Get rid of "Emacs 21".
 +      (Menu Bar): Fix when menu-bar-update-hook is called.
 +
 +      * hash.texi (Hash Tables): Get rid of "Emacs 21".
 +
 +      * frames.texi (Text Terminal Colors): Get rid of "Emacs 21",
 +      and make it read better.
 +
 +      * files.texi (Writing to Files): Get rid of "Emacs 21".
 +      (Unique File Names): Likewise.
 +
 +      * elisp.texi: Update Emacs version to 22.
 +
 +      * display.texi (Forcing Redisplay): Get rid of "Emacs 21".
 +      (Overlay Properties, Face Attributes): Likewise.
 +      (Managing Overlays): Fix punctuation.
 +      (Attribute Functions): Clarify set-face-font; get rid of
 +      info about old Emacs versions.
 +      (Auto Faces, Font Lookup, Display Property, Images):
 +      Get rid of "Emacs 21".
 +
 +      * calendar.texi (Calendar Customizing): Get rid of "Emacs 21".
 +
 +2005-03-05  Richard M. Stallman  <rms@gnu.org>
 +
 +      * debugging.texi (Error Debugging): Remove stack-trace-on-error.
 +
 +2005-03-04  Lute Kamstra  <lute@gnu.org>
 +
 +      * debugging.texi (Error Debugging): Document stack-trace-on-error.
 +
 +2005-03-03  Lute Kamstra  <lute@gnu.org>
 +
 +      * edebug.texi (Instrumenting Macro Calls): Fix typo.
 +
 +2005-03-01  Lute Kamstra  <lute@gnu.org>
 +
 +      * debugging.texi (Debugger Commands): Update `j'.
 +
 +2005-02-28  Lute Kamstra  <lute@gnu.org>
 +
 +      * debugging.texi (Debugging): Fix typo.
 +      (Error Debugging): Document eval-expression-debug-on-error.
 +      (Function Debugging): Update example.
 +      (Using Debugger): Mention starred stack frames.
 +      (Debugger Commands): Document `j' and `l'.
 +      (Invoking the Debugger): `d' and `j' exit recursive edit too.
 +      Update the messages that the debugger displays.
 +      (Internals of Debugger): Add cross reference.  Update example.
 +      (Excess Open): Minor improvement.
 +      (Excess Close): Minor improvement.
 +
 +2005-02-26  Richard M. Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Clarify.
 +      Put all the major mode key reservations together.
 +      Mention the Mouse-1 => Mouse-2 conventions.
 +
 +      * syntax.texi (Syntax Class Table): Clarify.
 +      (Syntax Table Functions): syntax-after moved from here.
 +      (Syntax Table Internals): syntax-after moved to here.
 +      (Parsing Expressions): Update info on number of values
 +      and what's meaningful in the STATE argument.
 +      (Categories): Fix typo.
 +
 +      * sequences.texi (Arrays): Cleanup.
 +      (Char-Tables): Clarify.
 +
 +      * processes.texi (Deleting Processes): Cleanups, add xref.
 +      (Subprocess Creation): Explain nil in exec-path.  Cleanup.
 +      (Process Information): set-process-coding-system, some args optional.
 +      (Input to Processes): Explain various types for PROCESS args.
 +      Rename them from PROCESS-NAME to PROCESS.
 +      (Signals to Processes): Likewise.
 +      (Decoding Output): Cleanup.
 +      (Query Before Exit): Clarify.
 +
 +      * os.texi (Startup Summary): Correct the options; add missing ones.
 +      (Terminal Output, Batch Mode): Clarify.
 +      (Flow Control): Node deleted.
 +
 +      * markers.texi (The Mark): Clarify.
 +
 +      * macros.texi (Expansion): Cleanup.
 +      (Indenting Macros): indent-spec allows ints, not floats.
 +
 +      * keymaps.texi (Keymaps): Clarify.
 +      (Format of Keymaps): Update lisp-mode-map example.
 +      (Active Keymaps, Key Lookup): Clarify.
 +      (Changing Key Bindings): Add xref to `kbd'.
 +      (Key Binding Commands, Simple Menu Items): Clarify.
 +      (Mouse Menus, Menu Bar): Clarify.
 +      (Menu Example): Replace print example with menu-bar-replace-menu.
 +
 +      * help.texi (Documentation Basics): Add function-documentation prop.
 +
 +      * elisp.texi (Top): Don't refer to Flow Control node.
 +
 +      * commands.texi (Command Overview): Improve xrefs.
 +      (Adjusting Point): Adjusting point applies to intangible and invis.
 +      (Key Sequence Input): Doc extra read-key-sequence args.
 +      Likewise for read-key-sequence-vector.
 +
 +      * backups.texi (Rename or Copy): Minor fix.
 +      (Numbered Backups): For version-control, say the default.
 +      (Auto-Saving): make-auto-save-file-name example is simplified.
 +
 +      * advice.texi (Advising Functions): Don't imply one part of Emacs
 +      should advise another part.  Markup changes.
 +      (Defining Advice): Move transitional para.
 +      (Activation of Advice): Cleanup.
 +      Explain if COMPILE is nil or negative.
 +
 +      * abbrevs.texi (Abbrev Expansion): Clarify, fix typo.
 +
 +2005-02-24  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Defining Minor Modes): Explain that INIT-VALUE,
 +      LIGHTER, and KEYMAP can be omitted when KEYWORD-ARGS are used.
 +
 +2005-02-23  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Defining Minor Modes): define-minor-mode can be used
 +      to define global minor modes as well.
 +
 +      * display.texi (Managing Overlays): overlay-buffer returns nil for
 +      deleted overlays.
 +
 +2005-02-22  Kim F. Storm  <storm@cua.dk>
 +
 +      * minibuf.texi (Basic Completion): Allow symbols in addition to
 +      strings in try-completion and all-completions.
 +
 +2005-02-14  Lute Kamstra  <lute@gnu.org>
 +
 +      * elisp.texi (Top): Remove reference to deleted node.
 +
 +      * lists.texi (Lists): Remove reference to deleted node.
 +      (Cons Cells): Fix typo.
 +
 +      * loading.texi (Where Defined): Fix typo.
 +
 +2005-02-14  Richard M. Stallman  <rms@gnu.org>
 +
 +      * variables.texi (Creating Buffer-Local): change-major-mode-hook
 +      is useful for discarding some minor modes.
 +
 +      * symbols.texi (Symbol Components): Reorder examples.
 +
 +      * streams.texi (Input Functions): State standard-input default.
 +      (Output Variables): State standard-output default.
 +
 +      * objects.texi (Printed Representation): Clarify read syntax vs print.
 +      (Floating Point Type): Explain meaning better.
 +      (Symbol Type): Explain uniqueness better.
 +      (Cons Cell Type): Explain empty list sooner.  CAR and CDR later.
 +      List examples sooner.
 +      (Box Diagrams): New subnode broken out.
 +      Some examples moved from old Lists as Boxes node.
 +      (Dotted Pair Notation): Clarify intro.
 +      (Array Type): Clarify.
 +      (Type Predicates): Add hash-table-p.
 +
 +      * numbers.texi (Integer Basics): Clarify radix explanation.
 +      (Predicates on Numbers): Minor clarification.
 +      (Comparison of Numbers): Minor clarification.  Clarify eql.
 +      Typos in min, max.
 +      (Math Functions): Clarify overflow in expt.
 +
 +      * minibuf.texi (Text from Minibuffer): Minor clarification.
 +      Mention arrow keys.
 +
 +      * loading.texi (Autoload): defun's doc string overrides autoload's
 +      doc string.
 +      (Repeated Loading): Modernize "add to list" examples.
 +      (Where Defined): Finish updating table of load-history elts.
 +
 +      * lists.texi (List-related Predicates): Minor wording improvement.
 +      (Lists as Boxes): Node deleted.
 +      (Building Lists): Explain trivial cases of number-sequence.
 +
 +      * hash.texi (Hash Tables): Add desc to menu items.
 +      (Creating Hash): Expain "full" means "make larger",
 +      (Hash Access): Any object can be a key.
 +      State value of maphash.
 +
 +      * functions.texi (What Is a Function): Wording cleanup.
 +      (Function Documentation): Minor cleanup.
 +      Explain purpose of calling convention at end of doc string.
 +      (Function Names): Wording cleanup.
 +      (Calling Functions): Wording cleanup.
 +      Explain better how funcall calls the function.
 +      (Function Cells): Delete example of saving and redefining function.
 +
 +      * control.texi (Combining Conditions): Wording cleanup.
 +      (Iteration): dolist and dotimes bind VAR locally.
 +      (Cleanups): Xref to Atomic Changes.
 +
 +      * compile.texi (Byte Compilation): Delete 19.29 info.
 +      (Compilation Functions): Macros' difficulties don't affect defsubst.
 +      (Docs and Compilation): Delete 19.29 info.
 +
 +2005-02-10  Richard M. Stallman  <rms@gnu.org>
 +
 +      * objects.texi (Symbol Type): Minor correction.
 +
 +2005-02-06  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Example Major Modes): Fix typos.
 +
 +2005-02-06  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Margins): fill-nobreak-predicate can be one function.
 +
 +      * strings.texi (Modifying Strings): clear-string can make unibyte.
 +      (Formatting Strings): format gives error if values missing.
 +
 +      * positions.texi (Character Motion): Mention default arg
 +      for forward-char.  backward-char refers to forward-char.
 +      (Word Motion): Mention default arg for forward-word.
 +      (Buffer End Motion): Mention default arg for beginning-of-buffer.
 +      Simplify end-of-buffer.
 +      (Text Lines): Mention default arg for forward-line.
 +      (List Motion): Mention default arg for beginning/end-of-defun.
 +      (Skipping Characters): Minor fixes in explaining character-set.
 +
 +      * modes.texi (Major Mode Conventions): Mention "system abbrevs".
 +      Mode inheritance applies only when default-major-mode is nil.
 +      Clarifications.
 +      (Example Major Modes): Update Text mode and Lisp mode examples.
 +      (Minor Mode Conventions): Mention define-minor-mode at top.
 +      (Defining Minor Modes): In Hungry example, don't define C-M-DEL.
 +      (Mode Line Format): Update mode line face display info.
 +      (Properties in Mode): Mention effect of risky vars.
 +      (Imenu): Define imenu-add-to-menubar.
 +      (Font Lock Mode): Add descriptions to menu lines.
 +      (Faces for Font Lock): Add font-lock-doc-face.
 +
 +2005-02-05  Lute Kamstra  <lute@gnu.org>
 +
 +      * text.texi (Maintaining Undo): Remove obsolete function.
 +
 +2005-02-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * frames.texi (Color Names): Add pointer to the X docs about RGB
 +      color specifications.  Improve indexing
 +      (Text Terminal Colors): Replace the description of RGB values by
 +      an xref to "Color Names".
 +
 +2005-02-03  Richard M. Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Basic Windows): Add cursor-in-non-selected-windows.
 +      Clarify.
 +      (Selecting Windows): Clarify save-selected-window.
 +      (Cyclic Window Ordering): Clarify walk-windows.
 +      (Window Point): Clarify.
 +      (Window Start): Add comment to example.
 +      (Resizing Windows): Add `interactive' specs in examples.
 +      Document fit-window-to-buffer.
 +
 +      * text.texi (User-Level Deletion): just-one-space takes numeric arg.
 +      (Undo, Maintaining Undo): Clarify last change.
 +      (Sorting): In sort-numeric-fields, explain about octal and hex.
 +      Mention sort-numeric-base.
 +      (Format Properties): Add xref for hard newlines.
 +
 +      * frames.texi (Window Frame Parameters): Explain pixel=char on tty.
 +      (Pop-Up Menus): Fix typo.
 +      (Color Names): Explain all types of color names.
 +      Explain color-values on B&W terminal.
 +      (Text Terminal Colors): Explain "rgb values" are lists.  Fix arg names.
 +
 +      * files.texi (File Locks): Not supported on MS systems.
 +      (Testing Accessibility): Clarify.
 +
 +      * edebug.texi (Printing in Edebug): Fix edebug-print-circle.
 +      (Coverage Testing): Fix typo.
 +
 +      * commands.texi (Misc Events): Remove stray space.
 +
 +      * buffers.texi (Buffer Names): Clarify generate-new-buffer-name.
 +      (Modification Time): Clarify when visited-file-modtime returns 0.
 +      (The Buffer List): Clarify bury-buffer.
 +      (Killing Buffers): Clarify.
 +      (Indirect Buffers): Add clone-indirect-buffer.
 +
 +2005-02-02  Matt Hodges  <MPHodges@member.fsf.org>
 +
 +      * edebug.texi (Printing in Edebug): Fix default value of
 +      edebug-print-circle.
 +      (Coverage Testing): Fix displayed frequency count data.
 +
 +2005-02-02  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * text.texi (Maintaining Undo): Add `undo-outer-limit'.
 +
 +2005-02-02  Kim F. Storm  <storm@cua.dk>
 +
 +      * text.texi (Undo) <buffer-undo-list>: Describe `apply' elements.
 +
 +2005-01-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * commands.texi (Misc Events): Describe the help-echo event.
 +
 +      * text.texi (Special Properties) <help-echo>: Use `pos'
 +      consistently in description of the help-echo property.
 +      Use @code{nil} instead of @var{nil}.
 +
 +      * display.texi (Overlay Properties): Fix the index entry for
 +      help-echo overlay property.
 +
 +      * customize.texi (Type Keywords): Uncomment the xref to the
 +      help-echo property documentation.
 +
 +2005-01-23  Kim F. Storm  <storm@cua.dk>
 +
 +      * windows.texi (Window Start): Fix `pos-visible-in-window-p'
 +      return value.  Third element FULLY replaced by PARTIAL which
 +      specifies number of invisible pixels if row is only partially visible.
 +      (Textual Scrolling): Mention auto-window-vscroll.
 +      (Vertical Scrolling): New defvar auto-window-vscroll.
 +
 +2005-01-16  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * keymaps.texi (Changing Key Bindings): `suppress-keymap' now uses
 +      command remapping.
 +
 +2005-01-15  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Defining Images): Mention DATA-P arg of create-image.
 +
 +2005-01-14  Kim F. Storm  <storm@cua.dk>
 +
 +      * commands.texi (Accessing Events): Add WHOLE arg to posn-at-x-y.
 +
 +      * text.texi (Links and Mouse-1): Fix string and vector item.
 +
 +2005-01-13  Richard M. Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Active Keymaps): Rewrite the text, and update the
 +      descriptions of overriding-local-map and overriding-terminal-local-map.
 +
 +      * text.texi (Links and Mouse-1): Clarify text.
 +
 +2005-01-13  Kim F. Storm  <storm@cua.dk>
 +
 +      * modes.texi (Emulating Mode Line): Update format-mode-line entry.
 +
 +2005-01-13  Francis Litterio  <franl@world.std.com>  (tiny change)
 +
 +      * keymaps.texi (Active Keymaps): Fix overriding-local-map description.
 +
 +2005-01-12  Kim F. Storm  <storm@cua.dk>
 +
 +      * text.texi (Links and Mouse-1): Rename section from Enabling
 +      Mouse-1 to Following Links.  Change xrefs.
 +      Add examples for define-button-type and define-widget.
 +
 +      * display.texi (Button Properties, Button Buffer Commands):
 +      Clarify mouse-1 and follow-link functionality.
 +
 +2005-01-12  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Enabling Mouse-1 to Follow Links): Redo prev. change.
 +
 +      * display.texi (Beeping): Fix Texinfo usage.
 +
 +      * modes.texi (Emulating Mode Line): Doc FACE arg in format-header-line.
 +
 +2005-01-11  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Button Properties, Button Buffer Commands):
 +      Mention mouse-1 binding.  Add follow-link keyword.
 +
 +      * text.texi (Text Properties): Add "Enable Mouse-1" to submenu.
 +      (Enabling Mouse-1 to Follow Links): New subsection.
 +
 +2005-01-06  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Special Properties): Minor change.
 +
 +      * os.texi (Timers): Clarify previous change.
 +
 +      * modes.texi (Emulating Mode Line): format-mode-line requires 1 arg.
 +
 +2005-01-01  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi (Face Attributes): Correct xref to renamed node.
 +
 +2005-01-01  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Face Attributes): Describe hex color specs.
 +
 +2004-12-31  Richard M. Stallman  <rms@gnu.org>
 +
 +      * os.texi (Timers): Update previous change.
 +
 +2004-12-30  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Line Height): Total line-height is now specified
 +      in line-height property of form (HEIGHT TOTAL).  Swap (FACE . RATIO)
 +      in cons cells.  (nil . RATIO) is relative to actual line height.
 +      Use line-height `t' instead of `0' to get minimum height.
 +
 +2004-12-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * os.texi (Timers): Discuss timers vs editing the buffer and undo.
 +
 +2004-12-28  Richard M. Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Quitting): Clarify value of with-local-quit.
 +
 +      * elisp.texi (Top): Fix previous change.
 +
 +      * loading.texi (Loading): Fix previous change.
 +
 +2004-12-27  Richard M. Stallman  <rms@gnu.org>
 +
 +      * Makefile.in (MAKEINFO): Specify --force.
 +
 +      * buffers.texi (Killing Buffers): Add buffer-save-without-query.
 +
 +      * modes.texi (Emulating Mode Line): Document format's BUFFER arg.
 +
 +      * display.texi (Line Height): Further clarify.
 +
 +      * elisp.texi (Top): Update Loading submenu.
 +
 +      * loading.texi (Where Defined): New node.
 +      (Unloading): load-history moved to Where Defined.
 +
 +2004-12-21  Richard M. Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Event Input Misc): Add while-no-input.
 +
 +2004-12-11  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Line Height): Rewrite text for clarity.
 +
 +2004-12-11  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Display): Add node "Line Height" to menu.
 +      (Line Height): New node.  Move full description of line-spacing
 +      and line-height text properties here from text.texi.
 +      (Scroll Bars): Add vertical-scroll-bar variable.
 +
 +      * frames.texi (Window Frame Parameters): Remove line-height defvar.
 +
 +      * locals.texi (Standard Buffer-Local Variables): Fix xref for
 +      line-spacing and vertical-scroll-bar.
 +
 +      * text.texi (Special Properties): Just mention line-spacing and
 +      line-height here, add xref to new "Line Height" node.
 +
 +2004-12-09  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * frames.texi (Window Frame Parameters): New @defvar for `line-spacing'.
 +
 +      * locals.texi (Standard Buffer-Local Variables):
 +      Add @xref for `line-spacing'.
 +
 +2004-12-05  Richard M. Stallman  <rms@gnu.org>
 +
 +      * Makefile.in (maintainer-clean): Remove the info files
 +      in $(infodir) where they are created.
 +
 +2004-12-03  Richard M. Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Selecting Windows): get-lru-window and
 +      get-largest-window don't consider dedicated windows.
 +
 +      * text.texi (Undo): Document undo-in-progress.
 +
 +2004-11-26  Richard M. Stallman  <rms@gnu.org>
 +
 +      * locals.texi (Standard Buffer-Local Variables): Undo prev change.
 +      Remove a few vars that are not always buffer-local.
 +
 +2004-11-24  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * locals.texi (Standard Buffer-Local Variables): Comment out
 +      xref's to non-existent node `Yet to be written'.
 +
 +2004-11-24  Richard M. Stallman  <rms@gnu.org>
 +
 +      * processes.texi (Synchronous Processes): Grammar fix.
 +
 +      * numbers.texi (Comparison of Numbers): Add eql.
 +
 +      * locals.texi (Standard Buffer-Local Variables): Add many vars.
 +
 +      * intro.texi (Printing Notation): Fix previous change.
 +
 +      * display.texi (Customizing Bitmaps): Move indicate-buffer-boundaries
 +      and default-indicate-buffer-boundaries from here.
 +      (Usual Display): To here.
 +      (Scroll Bars): Add scroll-bar-mode and scroll-bar-width.
 +      (Usual Display): Move tab-width up.
 +
 +      * customize.texi (Variable Definitions): Replace
 +      show-paren-mode example with tooltip-mode.
 +      (Simple Types, Composite Types, Defining New Types):
 +      Minor cleanups.
 +
 +2004-11-21  Jesper Harder  <harder@ifa.au.dk>
 +
 +      * processes.texi (Synchronous Processes, Output from Processes):
 +      Markup fix.
 +
 +2004-11-20  Richard M. Stallman  <rms@gnu.org>
 +
 +      * positions.texi (Skipping Characters): skip-chars-forward
 +      now handles char classes.
 +
 +      * intro.texi (Printing Notation): Avoid confusion of `print'
 +      when explaining @print.
 +
 +      * macros.texi (Argument Evaluation): Fix 1st `for' expansion example.
 +
 +      * display.texi (Display Table Format): Minor fix.
 +
 +      * streams.texi (Output Functions): Fix print example.
 +
 +      * Makefile.in (elisp): New target.
 +      (dist): Depend on $(infodir)/elisp, not elisp.
 +      Copy the info files from $(infodir).
 +
 +      * minibuf.texi (Text from Minibuffer): Document KEEP-ALL arg in
 +      read-from-minibuffer.
 +
 +      * searching.texi (Regexp Search): Rename that to search-spaces-regexp.
 +
 +2004-11-19  Richard M. Stallman  <rms@gnu.org>
 +
 +      * searching.texi (Regexp Search): Add search-whitespace-regexp.
 +
 +2004-11-19  CHENG Gao  <chenggao@gmail.com>  (tiny change)
 +
 +      * tips.texi (Coding Conventions): Fix typo.
 +
 +2004-11-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Separate defvar and require
 +      methods to avoid warnings.  Use require only when there are many
 +      functions and variables from that package.
 +
 +      * minibuf.texi (Minibuffer Completion): When ignoring case,
 +      predicate must not be case-sensitive.
 +
 +      * debugging.texi (Function Debugging, Explicit Debug): Clarified.
 +      (Test Coverage): Don't talk about "splotches".  Clarified.
 +
 +2004-11-16  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * frames.texi (Window Frame Parameters): Fix typo.
 +
 +2004-11-15  Kim F. Storm  <storm@cua.dk>
 +
 +      * symbols.texi (Other Plists): Note that plist-get may signal error.
 +      Add safe-plist-get.
 +
 +2004-11-15  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * modes.texi (Font Lock Basics): Fix typo.
 +
 +2004-11-08  Richard M. Stallman  <rms@gnu.org>
 +
 +      * syntax.texi (Syntax Table Functions): Add syntax-after.
 +
 +2004-11-06  Lars Brinkhoff  <lars@nocrew.org>
 +
 +      * os.texi (Processor Run Time): New section documenting
 +      get-internal-run-time.
 +
 +2004-11-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * Makefile.in (install, maintainer-clean): Don't use "elisp-*" as
 +      it nukes elisp-cover.texi.
 +      (dist): Change elisp-[0-9] to elisp-[1-9], as there could be no
 +      elisp-0 etc.
 +
 +2004-11-05  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * commands.texi (Keyboard Macros): Document `append' return value
 +      of `defining-kbd-macro'.
 +
 +2004-11-01  Richard M. Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Interactive Call): Add called-interactively-p.
 +
 +2004-10-29  Simon Josefsson  <jas@extundo.com>
 +
 +      * minibuf.texi (Reading a Password): Revert.
 +
 +2004-10-28  Richard M. Stallman  <rms@gnu.org>
 +
 +      * frames.texi (Display Feature Testing): Explain about "vendor".
 +
 +2004-10-27  Richard M. Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Interactive Codes): `N' uses numeric prefix,
 +      not raw.  Clarify `n'.
 +      (Interactive Call): Rewrite interactive-p, focusing on when
 +      and how to use it.
 +      (Misc Events): Clarify previous change.
 +
 +      * advice.texi (Simple Advice): Clarify what job the example does.
 +      (Around-Advice): Clarify ad-do-it.
 +      (Activation of Advice): An option of ad-default-compilation-action
 +      is `never', not `nil'.
 +
 +2004-10-26  Kim F. Storm  <storm@cua.dk>
 +
 +      * commands.texi (Interactive Codes): Add U code letter.
 +
 +2004-10-25  Simon Josefsson  <jas@extundo.com>
 +
 +      * minibuf.texi (Reading a Password): Add.
 +
 +2004-10-24  Jason Rumney  <jasonr@gnu.org>
 +
 +      * commands.texi (Misc Events): Remove mouse-wheel.  Add wheel-up
 +      and wheel-down.
 +
 +2004-10-24  Kai Grossjohann  <kai.grossjohann@gmx.net>
 +
 +      * processes.texi (Synchronous Processes): Document process-file.
 +
 +2004-10-22  Kenichi Handa  <handa@m17n.org>
 +
 +      * text.texi (translate-region): Document that it accepts also a
 +      char-table.
 +
 +2004-10-22  David Ponce  <david@dponce.com>
 +
 +      * windows.texi (Resizing Windows): Document the `preserve-before'
 +      argument of the functions `enlarge-window' and `shrink-window'.
 +
 +2004-10-19  Jason Rumney  <jasonr@gnu.org>
 +
 +      * makefile.w32-in (elisp): Change order of arguments to makeinfo.
 +
 +2004-10-09  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * text.texi (Filling): Add anchor for definition of
 +      `sentence-end-double-space'.
 +
 +      * searching.texi (Regexp Example): Update description of how
 +      Emacs currently recognizes the end of a sentence.
 +      (Standard Regexps): Update definition of the variable
 +      `sentence-end'.  Add definition of the function `sentence-end'.
 +
 +2004-10-08  Paul Pogonyshev  <pogonyshev@gmx.net>
 +
 +      * display.texi (Progress): New node.
 +
 +2004-10-05  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Fringe Bitmaps): Update fringe-bitmaps-at-pos.
 +
 +2004-09-29  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Fringe Bitmaps): Use symbols rather than numbers
 +      to identify bitmaps.  Remove -fringe-bitmap suffix for standard
 +      fringe bitmap symbols, as they now have their own namespace.
 +      (Customizing Bitmaps) <define-fringe-bitmap>: Clarify bit ordering
 +      vs. pixels.  Signal error if no free bitmap slots.
 +      (Pixel Specification): Change IMAGE to @var{image}.
 +
 +2004-09-28  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Special Properties): Clarify line-spacing and line-height.
 +
 +      * searching.texi (Regexp Search): Add looking-back.
 +
 +2004-09-25  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi: Correct typos.
 +      (Image Descriptors): Correct xref's.
 +
 +2004-09-25  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Special Properties): Cleanups in `cursor'.
 +      Rewrites in `line-height' and `line-spacing'; exchange them.
 +
 +      * display.texi (Fringes): Rewrite previous change.
 +      (Fringe Bitmaps): Merge text from Display Fringe Bitmaps.  Rewrite.
 +      (Display Fringe Bitmaps): Node deleted, text moved.
 +      (Customizing Bitmaps): Split off from Fringe Bitmaps.  Rewrite.
 +      (Scroll Bars): Clarify set-window-scroll-bars.
 +      (Pointer Shape): Rewrite.
 +      (Specified Space): Clarify :align-to, etc.
 +      (Pixel Specification): Use @var.  Clarify new text.
 +      (Other Display Specs): Clarify `slice'.
 +      (Image Descriptors): Cleanups.
 +      (Showing Images): Cleanups.
 +
 +2004-09-24  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * hooks.texi (Standard Hooks): Add `after-change-major-mode-hook'.
 +
 +      * modes.texi: Various minor changes in addition to:
 +      (Major Mode Conventions): Final call to `run-mode-hooks' should
 +      not be inside the `delay-mode-hooks' form.
 +      (Mode Hooks): New node.
 +      (Hooks): Delete obsolete example.
 +      Move definitions of `run-mode-hooks' and `delay-mode-hooks' to new
 +      node "Mode Hooks".
 +
 +2004-09-22  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi: Correct various typos.
 +      (Display): Rename node "Pointer Shapes" to "Pointer
 +      Shape".  (There is already a node called "Pointer Shapes" in
 +      frames.texi.)
 +      (Images): Remove non-existent node "Image Slices" from menu.
 +
 +2004-09-23  Kim F. Storm  <storm@cua.dk>
 +
 +      * text.texi (Special Properties): Add `cursor', `pointer',
 +      `line-height', and `line-spacing' properties.
 +
 +      * display.texi (Display): Add 'Fringe Bitmaps' and 'Pointer
 +      Shapes' to menu.
 +      (Standard Faces): Doc fix for fringe face.
 +      (Fringes): Add `overflow-newline-into-fringe' and
 +      'indicate-buffer-boundaries'.
 +      (Fringe Bitmaps, Pointer Shapes): New nodes.
 +      (Display Property): Add 'Pixel Specification' and 'Display Fringe
 +      Bitmaps' to menu.
 +      (Specified Space): Describe pixel width and height.
 +      (Pixel Specification): New node.
 +      (Other Display Specs): Add `slice' property.
 +      (Display Fringe Bitmaps): New node.
 +      (Images): Add 'Image Slices' to menu.
 +      (Image Descriptors): Add `:pointer' and `:map' properties.
 +      (Showing Images): Add slice arg to `insert-image'.  Add
 +      'insert-sliced-image'.
 +
 +2004-09-20  Richard M. Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Key Sequence Input):
 +      Clarify downcasing in read-key-sequence.
 +
 +2004-09-08  Juri Linkov  <juri@jurta.org>
 +
 +      * minibuf.texi (Minibuffer History): Add `history-delete-duplicates'.
 +
 +2004-09-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * locals.texi (Standard Buffer-Local Variables): Add
 +      `buffer-auto-save-file-format'.
 +      * internals.texi (Buffer Internals): Describe new
 +      auto_save_file_format field of the buffer structure.
 +      * files.texi (Format Conversion): `auto-save-file-format' has been
 +      renamed `buffer-auto-save-file-format'.
 +
 +2004-08-27  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * abbrevs.texi (Abbrev Expansion): `abbrev-start-location' can be
 +      an integer or a marker.
 +      (Abbrev Expansion): Replace example for `pre-abbrev-expand-hook'.
 +
 +2004-08-22  Richard M. Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Major Mode Conventions): Discuss rebinding of
 +      standard key bindings.
 +
 +2004-08-18  Kim F. Storm  <storm@cua.dk>
 +
 +      * processes.texi (Accepting Output): Add `just-this-one' arg to
 +      `accept-process-output'.
 +      (Output from Processes): New var `process-adaptive-read-buffering'.
 +
 +2004-08-10  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * keymaps.texi: Various changes in addition to:
 +      (Keymap Terminology): `kbd' uses same syntax as Edit Macro mode.
 +      Give more varied examples for `kbd'.
 +      (Creating Keymaps): Char tables have slots for all characters
 +      without modifiers.
 +      (Active Keymaps): `overriding-local-map' and
 +      `overriding-terminal-local-map' also override text property and
 +      overlay keymaps.
 +      (Functions for Key Lookup): Mention OLP arg to `current-active-maps'.
 +      (Scanning Keymaps): `accessible-keymaps' uses `[]' instead of `""'
 +      to denote a prefix of no events.
 +      `map-keymap' includes parent's bindings _recursively_.
 +      Clarify and correct description of `where-is-internal'.
 +      Mention BUFFER-OR-NAME arg to `describe-bindings'.
 +      (Menu Example): For menus intended for use with the keyboard, the
 +      menu items should be bound to characters or real function keys.
 +
 +2004-08-08  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * objects.texi (Character Type): Reposition `@anchor' to prevent
 +      double space inside sentence in Info.
 +
 +      * hooks.texi (Standard Hooks): `disabled-command-hook' has been
 +      renamed to `disabled-command-function'.
 +      * commands.texi (Key Sequence Input): Remove unnecessary anchor.
 +      (Command Loop Info): Replace reference to it.
 +      (Disabling Commands): `disabled-command-hook' has been renamed to
 +      `disabled-command-function'.
 +
 +2004-08-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * os.texi (Translating Input): Only non-prefix bindings in
 +      `key-translation-map' override actual key bindings.  Warn about
 +      possible indirect effect of actual key bindings on non-prefix
 +      bindings in `key-translation-map'.
 +
 +2004-08-06  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * minibuf.texi (High-Level Completion): Add anchor for definition
 +      of `read-variable'.
 +
 +      * commands.texi: Various changes in addition to:
 +      (Using Interactive): Clarify description of `interactive-form'.
 +      (Interactive Call): Mention default for KEYS argument to
 +      `call-interactively'.
 +      (Command Loop Info): Clarify description of `this-command-keys'.
 +      Mention KEEP-RECORD argument to `clear-this-command-keys'.
 +      Value of `last-event-frame' can be `macro'.
 +      (Repeat Events): `double-click-fuzz' is also used to distinguish
 +      clicks and drags.
 +      (Classifying Events): Clarify descriptions of `event-modifiers'
 +      `event-basic-type' and `event-convert-list'.
 +      (Accessing Events): `posn-timestamp' takes POSITION argument.
 +      (Quoted Character Input): Clarify description of
 +      `read-quoted-char' and fix example.
 +      (Quitting): Add `with-local-quit'.
 +      (Disabling Commands): Correct and clarify descriptions of
 +      `enable-command' and `disable-command'.
 +      Mention what happens if `disabled-command-hook' is nil.
 +      (Keyboard Macros): Mention LOOPFUNC arg to `execute-kbd-macro'.
 +      Describe `executing-kbd-macro' instead of obsolete `executing-macro'.
 +
 +2004-07-24  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi: Various changes in addition to:
 +      (Creating Frames): Expand and clarify description of `make-frame'.
 +      (Window Frame Parameters): Either none or both of the `icon-left'
 +      and `icon-top' parameters must be specified.  Put descriptions of
 +      `menu-bar-lines' and `toolbar-lines' closer together and change
 +      them accordingly.
 +      (Frame Titles): `multiple-frames' is not guaranteed to be accurate
 +      except while processing `frame-title-format' or `icon-title-format'.
 +      (Deleting Frames): Correct description of `delete-frame'.
 +      Non-nil return values of `frame-live-p' are like those of `framep'.
 +      (Frames and Windows): Mention return value of
 +      `set-frame-selected-window'.
 +      (Visibility of Frames): Mention `force' argument to
 +      `make-frame-invisible'.  `frame-visible-p' returns t for all
 +      frames on text-only terminals.
 +      (Frame Configurations): Restoring a frame configuration does not
 +      restore deleted frames.
 +      (Window System Selections): `x-set-selection' returns DATA.
 +      (Resources): Add example.
 +      (Display Feature Testing): Clarify descriptions of
 +      `display-pixel-height', `display-pixel-width', `x-server-version'
 +      and `x-server-vendor'.
 +
 +      * windows.texi (Choosing Window): Add anchor.
 +      * minibuf.texi (Minibuffer Misc): Add anchor.
 +
 +2004-07-23  John Paul Wallington  <jpw@gnu.org>
 +
 +      * macros.texi (Defining Macros): Declaration keyword for setting
 +      Edebug spec is `debug' not `edebug'.
 +
 +2004-07-19  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * windows.texi: Various small changes in addition to:
 +      (Window Point): Mention return value of `set-window-point'.
 +      (Window Start): `pos-visible-in-window-p' disregards horizontal
 +      scrolling.  Explain return value if PARTIALLY is non-nil.
 +      (Vertical Scrolling): Mention PIXELS-P argument to `window-vscroll'
 +      and `set-window-vscroll'.
 +      (Size of Window): The argument WINDOW to `window-inside-edges',
 +      `window-pixel-edges' and `window-inside-pixel-edges' is optional.
 +      (Resizing Windows): Explain return value of
 +      `shrink-window-if-larger-than-buffer'.
 +      `window-size-fixed' automatically becomes buffer local when set.
 +      (Window Configurations): Explain return value of
 +      `set-window-configuration'.
 +
 +      * minibuf.texi (Minibuffer Misc): Add anchor for
 +      `minibuffer-scroll-window'.
 +
 +      * positions.texi (Text Lines): Add anchor for `count-lines'.
 +
 +2004-07-17  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Overlay Properties): Adding `evaporate' prop
 +      deletes empty overlay immediately.
 +
 +      * abbrevs.texi (Abbrev Expansion): Clarify pre-abbrev-expand-hook,
 +      fix example.
 +
 +2004-07-16  Jim Blandy  <jimb@redhat.com>
 +
 +      * searching.texi (Regexp Backslash): Document new \_< and \_>
 +      operators.
 +
 +2004-07-16  Juanma Barranquero  <lektu@terra.es>
 +
 +      * display.texi (Images): Fix Texinfo usage.
 +
 +2004-07-14  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * buffers.texi (Modification Time): `visited-file-modtime' now
 +      returns a list of two integers, instead of a cons.
 +
 +2004-07-13  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * windows.texi: Various changes in addition to:
 +      (Splitting Windows): Add `split-window-keep-point'.
 +
 +2004-07-09  Richard M. Stallman  <rms@gnu.org>
 +
 +      * frames.texi (Input Focus): Minor fix.
 +
 +2004-07-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * frames.texi (Input Focus): Clarify descriptions of
 +      `select-frame-set-input-focus' and `select-frame'.
 +
 +2004-07-06  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * os.texi: Various small changes in addition to:
 +      (Killing Emacs): Expand and clarify description of
 +      `kill-emacs-query-functions' and `kill-emacs-hook'.
 +      (System Environment): Expand and clarify description of `getenv'
 +      and `setenv'.
 +      (Timers): Clarify description of `run-at-time'.
 +      (Translating Input): Correct description of
 +      `extra-keyboard-modifiers'.
 +      (Flow Control): Correct description of `enable-flow-control'.
 +
 +2004-07-06  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * os.texi: Update copyright.
 +      (Session Management): Grammar fix.
 +      Clarify which Emacs does the restarting.
 +      Use @samp for *scratch* buffer.
 +
 +2004-07-04  Alan Mackenzie  <acm@muc.de>
 +
 +      * frames.texi (Input Focus): Add documentation for
 +      `select-frame-set-input-focus'.  Replace refs to non-existent
 +      `switch-frame' with `select-frame'.  Minor corrections and tidying
 +      up of text-only terminal stuff.
 +
 +2004-07-02  Richard M. Stallman  <rms@gnu.org>
 +
 +      * files.texi (Saving Buffers): Cleanup write-contents-function.
 +      (Magic File Names): Cleanup file-remote-p.
 +
 +2004-07-02  Kai Grossjohann  <kai@emptydomain.de>
 +
 +      * files.texi (Magic File Names): `file-remote-p' returns an
 +      identifier of the remote system, not just t.
 +
 +2004-07-02  David Kastrup  <dak@gnu.org>
 +
 +      * searching.texi (Entire Match Data): Add explanation about new
 +      match-data behavior when @var{integers} is non-nil.
 +
 +2004-06-24  Richard M. Stallman  <rms@gnu.org>
 +
 +      * commands.texi (Misc Events): Describe usr1-signal, usr2-signal event.
 +
 +      * customize.texi (Variable Definitions): Note about doc strings
 +      and :set.
 +
 +      * keymaps.texi (Keymap Terminology): Document `kbd'.
 +      (Changing Key Bindings, Key Binding Commands): Use kbd in examples.
 +
 +      * display.texi (Invisible Text): Setting buffer-invisibility-spec
 +      makes it buffer-local.
 +
 +      * files.texi (Saving Buffers): Correct previous change.
 +
 +      * commands.texi (Accessing Events):
 +      Clarify posn-col-row and posn-actual-col-row.
 +
 +2004-06-24  David Ponce  <david.ponce@wanadoo.fr>
 +
 +      * commands.texi (Accessing Events): New functions
 +      posn-at-point and posn-at-x-y.  Add example to posn-x-y.
 +
 +2004-06-23  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * lists.texi, files.texi, processes.texi, macros.texi, hash.texi:
 +      * frames.texi, buffers.texi, backups.texi, variables.texi:
 +      * loading.texi, eval.texi, functions.texi, control.texi:
 +      * symbols.texi, minibuf.texi: Reposition @anchor's.
 +
 +      * help.texi: Various small changes in addition to the following.
 +      (Describing Characters): Describe PREFIX argument to
 +      `key-description'.  Correct and clarify definition of
 +      `text-char-description'.  Describe NEED-VECTOR argument to
 +      `read-kbd-macro'.
 +      (Help Functions): Clarify definition of `apropos'.
 +
 +2004-06-23  Lars Hansen  <larsh@math.ku.dk>
 +
 +      * files.texi (Saving Buffers): Correct description of
 +      `write-contents-functions'.
 +
 +2004-06-21  Juanma Barranquero  <lektu@terra.es>
 +
 +      * display.texi (Images): Remove redundant @vindex directives.
 +      Rewrite `image-library-alist' doc in active voice.
 +
 +2004-06-14  Juanma Barranquero  <lektu@terra.es>
 +
 +      * display.texi (Images): Document new delayed library loading,
 +      variable `image-library-alist' and (existing but undocumented)
 +      function `image-type-available-p'.
 +
 +2004-06-05  Richard M. Stallman  <rms@gnu.org>
 +
 +      * minibuf.texi (Minibuffer Completion): For INITIAL arg,
 +      refer the user to the Initial Input node.
 +      (Text from Minibuffer): Likewise.
 +      (Initial Input): New node.  Document this feature
 +      and say it is mostly deprecated.
 +
 +2004-05-30  Richard M. Stallman  <rms@gnu.org>
 +
 +      * loading.texi (Named Features): Clarify return value
 +      and meaning of NOERROR.
 +
 +      * variables.texi (File Local Variables): Minor cleanup.
 +
 +2004-05-30  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.texi (Magic File Names): Add `file-remote-p' as operation
 +      of file name handlers.
 +
 +2004-05-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Minor Mode Conventions): (-) has no special meaning
 +      as arg to a minor mode command.
 +
 +2004-05-22  Richard M. Stallman  <rms@gnu.org>
 +
 +      * syntax.texi (Syntax Class Table): Word syntax not just for English.
 +
 +      * streams.texi (Output Variables): Doc float-output-format.
 +
 +      * searching.texi (Regexp Special): Nested repetition can be infloop.
 +
 +      * eval.texi (Eval): Increasing max-lisp-eval-depth can cause
 +      real stack overflow.
 +
 +      * compile.texi: Minor cleanups.
 +
 +2004-05-22  Luc Teirlinck  <teirllm@dms.auburn.edu>
 +
 +      * lists.texi (Cons Cells): Explain dotted lists, true lists,
 +      circular lists.
 +      (List Elements): Explain handling of circular and dotted lists.
 +
 +2004-05-19  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * modes.texi (Search-based Fontification): Fix typo.
 +
 +2004-05-10  Juanma Barranquero  <lektu@terra.es>
 +
 +      * modes.texi (Mode Line Variables): Fix description of
 +      global-mode-string, which is now after which-func-mode, not the
 +      buffer name.
 +
 +2004-05-07  Lars Hansen  <larsh@math.ku.dk>
 +
 +      * modes.texi (Desktop Save Mode): Add.
 +      (Modes): Add menu entry Desktop Save Mode.
 +
 +      * hooks.texi: Add desktop-after-read-hook,
 +      desktop-no-desktop-file-hook and desktop-save-hook.
 +
 +      * locals.texi: Add desktop-save-buffer.
 +
 +2004-04-30  Jesper Harder  <harder@ifa.au.dk>
 +
 +      * display.texi: emacs -> Emacs.
 +
 +2004-04-27  Matthew Mundell  <matt@mundell.ukfsn.org>
 +
 +      * files.texi (Changing Files): Document set-file-times.
 +
 +2004-04-23  Juanma Barranquero  <lektu@terra.es>
 +
 +      * makefile.w32-in: Add "-*- makefile -*-" mode tag.
 +
 +2004-04-18  Jesper Harder  <harder@ifa.au.dk>
 +
 +      * tips.texi (Coding Conventions): defopt -> defcustom.
 +
 +2004-04-16  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * sequences.texi: Various clarifications.
 +
 +2004-04-14  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * buffers.texi (Read Only Buffers): Mention optional ARG to
 +      `toggle-read-only'.
 +
 +2004-04-14  Nick Roberts  <nick@nick.uklinux.net>
 +
 +      * windows.texi (Selecting Windows): Note that get-lru-window
 +      returns a full-width window if possible.
 +
 +2004-04-13  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * buffers.texi: Various changes in addition to:
 +      (Buffer File Name): Add `find-buffer-visiting'.
 +      (Buffer Modification): Mention optional ARG to `not-modified'.
 +      (Indirect Buffers): Mention optional CLONE argument to
 +      `make-indirect-buffer'.
 +
 +      * files.texi: Various changes in addition to:
 +      (Visiting Functions): `find-file-hook' is now a normal hook.
 +      (File Name Expansion): Explain difference between the way that
 +      `expand-file-name' and `file-truename' treat `..'.
 +      (Contents of Directories): Mention optional ID-FORMAT argument to
 +      `directory-files-and-attributes'.
 +      (Format Conversion): Mention new optional CONFIRM argument to
 +      `format-write-file'.
 +
 +2004-04-12  Miles Bader  <miles@gnu.org>
 +
 +      * macros.texi (Expansion): Add description of `macroexpand-all'.
 +
 +2004-04-05  Jesper Harder  <harder@ifa.au.dk>
 +
 +      * variables.texi (Variable Aliases): Mention
 +      cyclic-variable-indirection.
 +
 +      * errors.texi (Standard Errors): Ditto.
 +
 +2004-04-04  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * backups.texi: Various small changes in addition to:
 +      (Making Backups): Mention return value of `backup-buffer'.
 +      (Auto-Saving): Mention optional FORCE argument to
 +      `delete-auto-save-file-if-necessary'.
 +      (Reverting): Mention optional PRESERVE-MODES argument to
 +      `revert-buffer'.  Correct description of `revert-buffer-function'.
 +
 +2004-03-22  Juri Linkov  <juri@jurta.org>
 +
 +      * sequences.texi (Sequence Functions): Replace xref to `Vectors'
 +      with `Vector Functions'.
 +
 +      * text.texi (Sorting): Add missing quote.
 +
 +2004-03-14  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * intro.texi (Lisp History): Replace xref to `cl' manual with
 +      inforef.
 +
 +2004-03-12  Richard M. Stallman  <rms@gnu.org>
 +
 +      * intro.texi (Version Info): Add arg to emacs-version.
 +      (Lisp History): Change xref to CL manual.
 +
 +2004-03-09  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * minibuf.texi (Completion Commands): Add xref to Emacs manual
 +      for Partial Completion mode.
 +
 +2004-03-07  Thien-Thi Nguyen  <ttn@gnu.org>
 +
 +      * customize.texi: Fix typo.  Remove eol whitespace.
 +
 +2004-03-04  Richard M. Stallman  <rms@gnu.org>
 +
 +      * processes.texi: Fix typos.
 +
 +      * lists.texi (Building Lists): Minor clarification.
 +
 +      * hash.texi (Creating Hash): Correct the meaning of t for WEAK
 +      in make-hash-table.
 +
 +2004-02-29  Juanma Barranquero  <lektu@terra.es>
 +
 +      * makefile.w32-in (clean, maintainer-clean): Use $(DEL) instead of
 +      rm, and ignore exit code.
 +
 +2004-02-27  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * display.texi (Defining Faces): Add description for min-colors.
 +      Update example.
 +
 +2004-02-23  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * abbrevs.texi: Various corrections and clarifications in addition
 +      to the following:
 +      (Abbrev Tables): Delete add-abbrev (as suggested by RMS).
 +
 +2004-02-22  Matthew Mundell  <matt@mundell.ukfsn.org>  (tiny change)
 +
 +      * calendar.texi (Holiday Customizing): Quote arg of holiday-sexp.
 +
 +2004-02-21  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * text.texi: Various small changes in addition to the following:
 +      (User-Level Deletion): Mention optional BACKWARD-ONLY argument
 +      to delete-horizontal-space.
 +      (Kill Functions, Yanking, Low-Level Kill Ring): Clarify and correct
 +      description of yank-handler text property at various places.
 +
 +      * frames.texi (Window System Selections): Add anchor.
 +
 +      * syntax.texi (Syntax Table Functions): Clarify and correct
 +      descriptions of make-syntax-table and copy-syntax-table.
 +      (Motion and Syntax): Clarify SYNTAXES argument to
 +      skip-syntax-forward.
 +      (Parsing Expressions): Mention that the return value of
 +      parse-partial-sexp is currently a list of ten rather than nine
 +      elements.
 +      (Categories): Various corrections and clarifications.
 +
 +2004-02-17  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * markers.texi (Marker Insertion Types): Minor change.
 +
 +      * locals.texi (Standard Buffer-Local Variables):
 +      * commands.texi (Interactive Codes, Using Interactive):
 +      * functions.texi (Related Topics): Fix xrefs.
 +
 +2004-02-16  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * lists.texi (Sets And Lists): Update description of delete-dups.
 +
 +2004-02-16  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
 +
 +      * keymaps.texi (Tool Bar): tool-bar-item => tool-bar-button.
 +
 +2004-02-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * frames.texi (Parameter Access): frame-parameters arg is optional.
 +      modify-frame-parameters handles nil for FRAME.
 +      (Window Frame Parameters): menu-bar-lines and tool-bar-lines
 +      are all-or-nothing for certain toolkits.
 +      Mention parameter wait-for-wm.
 +      (Frames and Windows): In frame-first-window and frame-selected-window
 +      the arg is optional.
 +      (Input Focus): In redirect-frame-focus the second arg is optional.
 +      (Window System Selections): Mention selection type CLIPBOARD.
 +      Mention data-type UTF8_STRING.
 +      Mention numbering of cut buffers.
 +      (Resources): Describe x-resource-name.
 +
 +2004-02-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Buffers and Windows): Delete false table
 +      about all-frames.
 +
 +      * syntax.texi (Parsing Expressions): Delete old caveat
 +      about parse-sexp-ignore-comments.
 +
 +      * streams.texi (Output Variables): Add print-quoted.
 +
 +      * lists.texi (Building Lists): Minor cleanup.
 +
 +      * hash.texi (Creating Hash): Correct and clarify doc of WEAK values.
 +
 +      * display.texi (Overlays): Explain overlays use markers.
 +      (Managing Overlays): Explain front-advance and rear-advance
 +      in more detail.
 +
 +      * loading.texi (Unloading): Document unload-feature-special-hooks.
 +      Get rid of fns-NNN.el file.
 +
 +2004-02-16  Matthew Mundell  <matt@mundell.ukfsn.org>  (tiny change)
 +
 +      * help.texi (Describing Characters): Fix text-char-description
 +      example output.
 +
 +      * edebug.texi (Using Edebug): Fix example.
 +
 +      * debugging.texi (Internals of Debugger): Fix return value.
 +
 +      * files.texi (Changing Files): Fix argname.
 +
 +      * calendar.texi: Fix parens, and default values.
 +
 +      * display.texi, frames.texi, internals.texi, modes.texi: Minor fixes.
 +      * nonascii.texi, objects.texi, os.texi: Minor fixes.
 +      * searching.texi, text.texi, tips.texi, windows.text: Minor fixes.
 +
 +      * positions.texi (Text Lines): Don't add -1 in current-line.
 +
 +2004-02-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * compile.texi (Compiler Errors): if-boundp feature applies to cond.
 +
 +2004-02-16  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
 +
 +      * processes.texi (Low-Level Network): Fix a typo.
 +
 +2004-02-12  Kim F. Storm  <storm@cua.dk>
 +
 +      * display.texi (Fringes): Use consistent wording.
 +      Note that window-fringe's window arg is optional.
 +      (Scroll Bars): Use consistent wording.
 +
 +2004-02-11  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * tips.texi (Comment Tips): Document the new conventions for
 +      commenting out code.
 +
 +2004-02-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * positions.texi (Text Lines): Added missing end defun.
 +
 +2004-02-07  Kim F. Storm  <storm@cua.dk>
 +
 +      * positions.texi (Text Lines): Add line-number-at-pos.
 +
 +2004-02-06  John Paul Wallington  <jpw@gnu.org>
 +
 +      * display.texi (Button Properties, Button Buffer Commands):
 +      mouse-2 invokes button, not down-mouse-1.
 +
 +2004-02-04  Jason Rumney  <jasonr@gnu.org>
 +
 +      * makefile.w32-in: Sync with Makefile.in changes.
 +
 +2004-02-03  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * minibuf.texi (Text from Minibuffer): Various corrections and
 +      clarifications.
 +      (Object from Minibuffer): Correct Lisp description of
 +      read-minibuffer.
 +      (Minibuffer History): Clarify description of cons values for
 +      HISTORY arguments.
 +      (Basic Completion): Various corrections and clarifications.  Add
 +      completion-regexp-list.
 +      (Minibuffer Completion): Correct and clarify description of
 +      completing-read.
 +      (Completion Commands): Mention Partial Completion mode.  Various
 +      other minor changes.
 +      (High-Level Completion): Various corrections and clarifications.
 +      (Reading File Names): Ditto.
 +      (Minibuffer Misc): Ditto.
 +
 +2004-01-26  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * strings.texi (Text Comparison): assoc-string also matches
 +      elements of alists that are strings instead of conses.
 +      (Formatting Strings): Standardize Texinfo usage.  Update index
 +      entries.
 +
 +2004-01-20  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * lists.texi (Sets And Lists): Add delete-dups.
 +
 +2004-01-15  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * edebug.texi (Instrumenting Macro Calls): `declare' is not a
 +      special form.
 +      * macros.texi (Defining Macros): Update description of `declare',
 +      which now is a macro.
 +      (Wrong Time): Fix typos.
 +
 +2004-01-14  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * compile.texi (Compilation Functions): Expand descriptions of
 +      `compile-defun', `byte-compile-file', `byte-recompile-directory'
 +      and `batch-byte-compile'.  In particular, mention and describe
 +      all optional arguments.
 +      (Disassembly): Correct and clarify the description of `disassemble'.
 +
 +2004-01-11  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * searching.texi: Various small changes in addition to the
 +      following.
 +      (Regexp Example): Adapt to new value of `sentence-end'.
 +      (Regexp Functions): The PAREN argument to `regexp-opt' can be
 +      `words'.
 +      (Search and Replace): Add usage note for `perform-replace'.
 +      (Entire Match Data): Mention INTEGERS and REUSE arguments to
 +      `match-data'.
 +      (Standard Regexps): Update for new values of `paragraph-start'
 +      and `sentence-end'.
 +
 +2004-01-07  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * files.texi (Saving Buffers): Clarify descriptions of
 +      `write-contents-functions' and `before-save-hook'.
 +      Make the defvar's for `before-save-hook' and `after-save-hook'
 +      into defopt's.
 +
 +2004-01-07  Kim F. Storm  <storm@cua.dk>
 +
 +      * commands.texi (Click Events): Describe new image and
 +      width/height elements of click events.
 +      (Accessing Events): Add posn-string, posn-image, and
 +      posn-object-width-height.  Change posn-object to return either
 +      image or string object.
 +
 +2004-01-01  Simon Josefsson  <jas@extundo.com>
 +
 +      * hooks.texi (Standard Hooks): Add before-save-hook.
 +      * files.texi (Saving Buffers): Likewise.
 +
 +2004-01-03  Richard M. Stallman  <rms@gnu.org>
 +
 +      * frames.texi (Frames and Windows): Delete frame-root-window.
 +
 +2004-01-03  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * eval.texi, hash.texi, help.texi, symbols.texi: Add anchors.
 +
 +      * functions.texi: Various small changes in addition to the
 +      following.
 +      (What Is a Function): `functionp' returns nil for macros.  Clarify
 +      behavior of this and following functions for symbol arguments.
 +      (Function Documentation): Add `\' in front of (fn @var{arglist})
 +      and explain why.
 +      (Defining Functions): Mention DOCSTRING argument to `defalias'.
 +      Add anchor.
 +      (Mapping Functions): Add anchor.  Unquote nil in mapcar* example.
 +
 +2004-01-01  Miles Bader  <miles@gnu.org>
 +
 +      * display.texi (Buttons): New section.
 +
 +2003-12-31  Andreas Schwab  <schwab@suse.de>
 +
 +      * numbers.texi (Math Functions): sqrt reports a domain-error
 +      error.
 +      (Float Basics): Use `(/ 0.0 0.0)' instead of `(sqrt -1.0)'.
 +
 +2003-12-30  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * tips.texi (Documentation Tips): Update item on hyperlinks in
 +      documentation strings.
 +
 +      * errors.texi (Standard Errors): Various small corrections and
 +      additions.
 +
 +      * control.texi: Various small changes in addition to the
 +      following.
 +      (Signaling Errors): Provide some more details on how `signal'
 +      constructs the error message.  Add anchor to the definition of
 +      `signal'.
 +      (Error Symbols): Describe special treatment of `quit'.
 +      (Cleanups): Rename BODY argument of `unwind-protect' to BODY-FORM
 +      to emphasize that it has to be a single form.
 +
 +      * buffers.texi: Add anchor.
 +
 +2003-12-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Choosing Window): Add same-window-p, special-display-p.
 +      (Window Configurations): Add window-configuration-frame.
 +
 +      * variables.texi (Creating Buffer-Local): Add local-variable-if-set-p.
 +
 +      * text.texi (Examining Properties): Add get-char-property-and-overlay.
 +      Change arg name in get-char-property.
 +      (Special Properties): Update handling of keymap property.
 +
 +      * strings.texi (Modifying Strings): Add clear-string.
 +      (Text Comparison): Add assoc-string and remove
 +      assoc-ignore-case, assoc-ignore-representation.
 +
 +      * os.texi (Time of Day): Add set-time-zone-rule.
 +
 +      * numbers.texi (Math Functions): asin, acos, log, log10
 +      report domain-error errors.
 +
 +      * nonascii.texi (Converting Representations):
 +      Add multibyte-char-to-unibyte and unibyte-char-to-multibyte.
 +      (Encoding and I/O): Add file-name-coding-system.
 +
 +      * modes.texi (Search-based Fontification): Explain that
 +      face specs are symbols with face names as values.
 +
 +      * minibuf.texi (Minibuffer Misc): Add set-minibuffer-window.
 +
 +      * lists.texi (Building Lists): remq moved elsewhere.
 +      (Sets And Lists): remq moved here.
 +      (Association Lists): Refer to assoc-string.
 +
 +      * internals.texi (Garbage Collection): Add memory-use-counts.
 +
 +      * frames.texi (Frames and Windows): Add set-frame-selected-window
 +      and frame-root-window.
 +
 +      * files.texi (Contents of Directories):
 +      Add directory-files-and-attributes.
 +
 +      * display.texi (Refresh Screen): Add force-window-update.
 +      (Invisible Text): Explain about moving point out of invis text.
 +      (Overlay Properties): Add overlay-properties.
 +      (Managing Overlays): Add overlayp.
 +      (GIF Images): Invalid image number displays a hollow box.
 +
 +      * buffers.texi (Buffer Modification): Add restore-buffer-modified-p.
 +      (Killing Buffers): Add buffer-live-p.
 +
 +2003-12-25  Markus Rost  <rost@mathematik.uni-bielefeld.de>
 +
 +      * display.texi (Fringes): Fix typo "set-buffer-window".
 +
 +2003-12-24  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi, eval.texi, help.texi, internals.texi, loading.texi:
 +      * nonascii.texi, processes.texi, tips.texi, variables.texi:
 +      Add or change various xrefs and anchors.
 +
 +      * commands.texi: Replace all occurrences of @acronym{CAR} with
 +      @sc{car}, for consistency with the rest of the Elisp manual.
 +      `car' and `cdr' are historically acronyms, but are no longer
 +      widely thought of as such.
 +
 +      * internals.texi (Pure Storage): Mention that `purecopy' does not
 +      copy text properties.
 +      (Object Internals): Now 29 bits are used (in most implementations)
 +      to address Lisp objects.
 +
 +      * variables.texi (Variables with Restricted Values): New node.
 +
 +      * objects.texi (Lisp Data Types): Mention that certain variables
 +      can only take on a restricted set of values and add an xref to
 +      the new node "Variables with Restricted Values".
 +
 +      * eval.texi (Function Indirection): Describe the errors that
 +      `indirect-function' can signal.
 +      (Eval): Clarify the descriptions of `eval-region' and `values'.
 +      Describe `eval-buffer' instead of `eval-current-buffer' and
 +      mention `eval-current-buffer' as an alias for `current-buffer'.
 +      Correct the description and mention all optional arguments.
 +
 +      * nonascii.texi: Various small changes in addition to the
 +      following.
 +      (Converting Representations): Clarify behavior of
 +      `string-make-multibyte' and `string-to-multibyte' for unibyte all
 +      ASCII arguments.
 +      (Character Sets): Document the variable `charset-list' and adapt
 +      the definition of the function `charset-list' accordingly.
 +      (Translation of Characters): Clarify use of generic characters in
 +      `make-translation-table'.  Clarify and correct the description of
 +      the use of translation tables in encoding and decoding.
 +      (User-Chosen Coding Systems): Correct and clarify the description
 +      of `select-safe-coding-system'.
 +      (Default Coding Systems): Clarify description of
 +      `file-coding-system-alist'.
 +
 +2003-11-30  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * strings.texi (Text Comparison): Correctly describe when two
 +      strings are `equal'.  Combine and clarify descriptions of
 +      `assoc-ignore-case' and `assoc-ignore-representation'.
 +
 +      * objects.texi (Non-ASCII in Strings): Clarify description of
 +      when a string is unibyte or multibyte.
 +      (Bool-Vector Type): Update examples.
 +      (Equality Predicates): Correctly describe when two strings are
 +      `equal'.
 +
 +2003-11-29  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * lists.texi (Building Lists): `append' no longer accepts integer
 +      arguments.  Update the description of `number-sequence' to reflect
 +      recent changes.
 +      (Sets And Lists): Describe `member-ignore-case' after `member'.
 +
 +2003-11-27  Kim F. Storm  <storm@cua.dk>
 +
 +      * commands.texi (Click Events): Click object may be an images.
 +      Describe (dx . dy) element of click positions.
 +      (Accessing Events): Remove duplicate posn-timestamp.
 +      New functions posn-object and posn-object-x-y.
 +
 +2003-11-23  Kim F. Storm  <storm@cua.dk>
 +
 +      * commands.texi (Click Events): Describe enhancements to event
 +      position lists, including new text-pos and (col . row) items.
 +      Mention left-fringe and right-fringe area events.
 +      (Accessing Events): New functions posn-area and
 +      posn-actual-col-row.  Mention posn-timestamp.  Mention that
 +      posn-point in non-text area still returns buffer position.
 +      Clarify posn-col-row.
 +
 +2003-11-21  Lars Hansen  <larsh@math.ku.dk>
 +
 +      * files.texi (File Attributes): Describe new parameter ID-FORMAT.
 +      * anti.texi (File Attributes): Describe removed parameter
 +      ID-FORMAT.
 +
 +2003-11-20  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * positions.texi (Positions): Mention that, if a marker is used as
 +      a position, its buffer is ignored.
 +
 +      * markers.texi (Overview of Markers): Mention it here too.
 +
 +2003-11-12  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * numbers.texi (Numeric Conversions): Not just `floor', but also
 +      `truncate', `ceiling' and `round' accept optional argument DIVISOR.
 +
 +2003-11-10  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * markers.texi (Creating Markers): Specify insertion type of
 +      created markers.  Add xref to `Marker Insertion Types'.
 +      Second argument to `copy-marker' is optional.
 +      (Marker Insertion Types): Mention that most markers are created
 +      with insertion type nil.
 +      (The Mark): Correctly describe when `mark' signals an error.
 +      (The Region): Correctly describe when `region-beginning' and
 +      `region-end' signal an error.
 +
 +2003-11-08  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * hash.texi (Creating Hash): Clarify description of `eql'.
 +      `makehash' is obsolete.
 +      (Hash Access): Add Common Lisp notes for `remhash' and `clrhash'.
 +
 +      * positions.texi (Point): Change description of `buffer-end', so
 +      that it is also correct for floating point arguments.
 +      (List Motion): Correct argument lists of `beginning-of-defun' and
 +      `end-of-defun'.
 +      (Excursions): Add xref to `Marker Insertion Types'.
 +      (Narrowing): Argument to `narrow-to-page' is optional.
 +
 +2003-11-06  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * streams.texi (Output Streams): Clarify behavior of point for
 +      marker output streams.
 +
 +2003-11-04  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * variables.texi (Defining Variables): Second argument to
 +      `defconst' is not optional.
 +      (Setting Variables): Mention optional argument APPEND to
 +      `add-to-list'.
 +      (Creating Buffer-Local): Expand description of
 +      `make-variable-buffer-local'.
 +      (Frame-Local Variables): Expand description of
 +      `make-variable-frame-local'.
 +      (Variable Aliases): Correct description of optional argument
 +      DOCSTRING to `defvaralias'.  Mention return value of
 +      `defvaralias'.
 +      (File Local Variables): Add xref to `File variables' in Emacs
 +      Manual.  Correct description of `hack-local-variables'.  Mention
 +      `safe-local-variable' property.  Mention optional second argument
 +      to `risky-local-variable-p'.
 +
 +2003-11-03  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * symbols.texi (Symbol Plists): Mention return value of `setplist'.
 +
 +2003-11-02  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
 +
 +      * lispref/anti.texi, lispref/backups.texi, lispref/commands.texi
 +      lispref/customize.texi, lispref/display.texi, lispref/files.texi,
 +      lispref/internals.texi, lispref/keymaps.texi, lispref/loading.texi,
 +      lispref/modes.texi, lispref/nonascii.texi, lispref/numbers.texi,
 +      lispref/objects.texi, lispref/os.texi, lispref/positions.texi,
 +      lispref/processes.texi, lispref/searching.texi,
 +      lispref/sequences.texi, lispref/streams.texi, lispref/strings.texi,
 +      lispref/syntax.texi, lispref/text.texi: Replace @sc{foo} with
 +      @acronym{FOO}.
 +
 +2003-10-27  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * strings.texi (Creating Strings): Argument START to `substring'
 +      can not be `nil'.  Expand description of
 +      `substring-no-properties'.  Correct description of `split-string',
 +      especially with respect to empty matches.  Prevent very bad line
 +      break in definition of `split-string-default-separators'.
 +      (Text Comparison): `string=' and `string<' also accept symbols as
 +      arguments.
 +      (String Conversion): More completely describe argument BASE in
 +      `string-to-number'.
 +      (Formatting Strings): `%s' and `%S' in `format' do require
 +      corresponding object.  Clarify behavior of numeric prefix after
 +      `%' in `format'.
 +      (Case Conversion): The argument to `upcase-initials' can be a
 +      character.
 +
 +2003-10-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * display.texi (Fontsets): Fix texinfo usage.
 +
 +2003-10-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * display.texi (Fontsets): Add description of the function
 +      set-fontset-font.
 +
 +2003-10-23  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * display.texi (Temporary Displays): Add xref to `Documentation
 +      Tips'.
 +
 +      * functions.texi (Function Safety): Use inforef instead of pxref
 +      for SES.
 +
 +2003-10-23  Andreas Schwab  <schwab@suse.de>
 +
 +      * Makefile.in (TEX, texinputdir): Don't define.
 +      (TEXI2DVI): Define.
 +      (srcs): Remove $(srcdir)/index.perm and $(srcdir)/index.unperm,
 +      add $(srcdir)/index.texi.
 +      ($(infodir)/elisp): Remove index.texi dependency.
 +      (elisp.dvi): Likewise.  Use $(TEXI2DVI).
 +      (index.texi): Remove target.
 +      (dist): Don't link $(srcdir)/permute-index.
 +      (clean): Don't remove index.texi.
 +
 +      * permute-index, index.perm: Remove.
 +      * index.texi: Rename from index.unperm.
 +
 +2003-10-22  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * tips.texi (Documentation Tips): Document new behavior for face
 +      and variable hyperlinks in Help mode.
 +
 +2003-10-21  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * objects.texi (Integer Type): Update for extra bit of integer range.
 +      (Character Type): Ditto.
 +
 +2003-10-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * numbers.texi (Integer Basics): Add index entries for reading
 +      numbers in hex, octal, and binary.
 +
 +2003-10-16  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Mode Line Format): Mention force-mode-line-update's
 +      argument.
 +
 +2003-10-13  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * windows.texi (Choosing Window): Fix typo.
 +      * edebug.texi (Edebug Execution Modes): Fix typo.
 +
 +2003-10-13  Richard M. Stallman  <rms@gnu.org>
 +
 +      * windows.texi (Basic Windows): A window has fringe settings,
 +      display margins and scroll-bar settings.
 +      (Splitting Windows): Doc split-window return value.
 +      Clean up one-window-p.
 +      (Selecting Windows): Fix typo.
 +      (Cyclic Window Ordering): Explain frame as ALL-FRAMES in next-window.
 +      (Buffers and Windows): In set-window-buffer, explain effect
 +      on fringe settings and scroll bar settings.
 +      (Displaying Buffers): In pop-to-buffer, explain nil as buffer arg.
 +      (Choosing Window): Use defopt for pop-up-frame-function.
 +      For special-display-buffer-names, explain same-window and same-frame.
 +      Clarify window-dedicated-p return value.
 +      (Textual Scrolling): scroll-up and scroll-down can get an error.
 +      (Horizontal Scrolling): Clarify auto-hscroll-mode.
 +      Clarify set-window-hscroll.
 +      (Size of Window): Don't mention tool bar in window-height.
 +      (Coordinates and Windows): Explain what coordinates-in-window-p
 +      returns for fringes and display margins.
 +      (Window Configurations): Explain saving fringes, etc.
 +
 +      * tips.texi (Library Headers): Clean up Documentation.
 +
 +      * syntax.texi (Parsing Expressions): Clean up forward-comment
 +      and parse-sexp-lookup-properties.
 +
 +      * sequences.texi (Sequence Functions): sequencep accepts bool-vectors.
 +
 +      * os.texi (System Environment): Clean up text for load-average errors.
 +
 +      * modes.texi (Hooks): Don't explain local hook details at front.
 +      Clarify run-hooks and run-hook-with-args a little.
 +      Clean up add-hook and remove-hook.
 +
 +      * edebug.texi (Edebug Execution Modes): Clarify t.
 +      Document edebug-sit-for-seconds.
 +      (Coverage Testing): Document C-x X = and =.
 +      (Instrumenting Macro Calls): Fix typo.
 +      (Specification List): Don't index the specification keywords.
 +
 +2003-10-10  Kim F. Storm  <storm@cua.dk>
 +
 +      * processes.texi (Network): Introduce make-network-process.
 +
 +2003-10-09  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * tips.texi (Library Headers): Fix typo.
 +
 +2003-10-07  Juri Linkov  <juri@jurta.org>
 +
 +      * modes.texi (Imenu): Mention imenu-create-index-function's
 +      default value.  Explain submenus better.
 +
 +2003-10-07  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Faces for Font Lock): Fix typo.
 +      (Hooks): Explain how buffer-local hook variables can refer to
 +      global hook variables.
 +      Various minor clarifications.
 +
 +2003-10-06  Lute Kamstra  <lute@gnu.org>
 +
 +      * tips.texi (Coding Conventions): Mention naming conventions for
 +      hooks.
 +
 +2003-10-05  Luc Teirlinck  <teirllm@auburn.edu>
 +
 +      * loading.texi (Library Search): Correct default value of
 +      load-suffixes.
 +      (Named Features): Fix typo.
 +
 +2003-10-05  Richard M. Stallman  <rms@gnu.org>
 +
 +      * loading.texi (Named Features): In `provide',
 +      say how to test for subfeatures.
 +      (Unloading): In unload-feature, use new var name
 +      unload-feature-special-hooks.
 +
 +2003-10-03  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Major Mode Conventions): Mention third way to set up
 +      Imenu.
 +      (Imenu): A number of small fixes.
 +      Delete documentation of internal variable imenu--index-alist.
 +      Document the return value format of imenu-create-index-function
 +      functions.
 +
 +2003-09-30  Richard M. Stallman  <rms@gnu.org>
 +
 +      * processes.texi (Network): Say what stopped datagram connections do.
 +
 +      * lists.texi (Association Lists): Clarify `assq-delete-all'.
 +
 +      * display.texi (Overlay Properties): Clarify `evaporate' property.
 +
 +2003-09-29  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Mode Line Data): Explain when symbols in mode-line
 +      constructs should be marked as risky.
 +      Change cons cell into proper list.
 +      (Mode Line Variables): Change cons cell into proper list.
 +
 +2003-09-26  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (Mode Line Data): Document the :propertize construct.
 +      (Mode Line Variables): Reorder the descriptions of the variables
 +      to match their order in the default mode-line-format.
 +      Describe the new variables mode-line-position and mode-line-modes.
 +      Update the default values of mode-line-frame-identification,
 +      minor-mode-alist, and default-mode-line-format.
 +      (Properties in Mode): Mention the :propertize construct.
 +
 +2003-09-26  Richard M. Stallman  <rms@gnu.org>
 +
 +      * buffers.texi, commands.texi, debugging.texi, eval.texi:
 +      * loading.texi, minibuf.texi, text.texi, variables.texi:
 +      Avoid @strong{Note:}.
 +
 +2003-09-26  Richard M. Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi (Remapping Commands): Fix typo.
 +
 +2003-09-23  Luc Teirlinck  <teirllm@mail.auburn.edu>
 +
 +      * processes.texi (Low-Level Network): Fix typo.
 +
 +2003-09-23  Kim F. Storm  <storm@cua.dk>
 +
 +      * processes.texi (Network, Network Servers): Fix typos.
 +      (Low-Level Network): Add timeout value for :server keyword.
 +      Add new option keywords to make-network-process.
 +      Add set-network-process-options.
 +      Explain how to test availability of network options.
 +
 +2003-09-19  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Motion by Indent): Arg to
 +      backward-to-indentation and forward-to-indentation is optional.
 +
 +      * strings.texi (Creating Strings): Add substring-no-properties.
 +
 +      * processes.texi
 +      (Process Information): Add list-processes arg QUERY-ONLY.
 +      Delete process-contact from here.
 +      Add new status values for process-status.
 +      Add process-get, process-put, process-plist, set-process-plist.
 +      (Synchronous Processes): Add call-process-shell-command.
 +      (Signals to Processes): signal-process allows process objects.
 +      (Network): Complete rewrite.
 +      (Network Servers, Datagrams, Low-Level Network): New nodes.
 +
 +      * positions.texi (Word Motion): forward-word, backward-word
 +      arg is optional.  Reword.
 +
 +      * abbrevs.texi (Defining Abbrevs): Index no-self-insert.
 +
 +      * variables.texi (Creating Buffer-Local):
 +      Delete duplicate definition of buffer-local-value.
 +      (File Local Variables): Explain about discarding text props.
 +
 +2003-09-11  Richard M. Stallman  <rms@gnu.org>
 +
 +      * minibuf.texi (Intro to Minibuffers): Explain that the minibuffer
 +      changes variables that record input events.
 +      (Minibuffer Misc): Add minibuffer-selected-window.
 +
 +      * lists.texi (Building Lists): Add copy-tree.
 +
 +      * display.texi (Fontsets): Add char-displayable-p.
 +      (Scroll Bars): New node.
 +
 +2003-09-08  Lute Kamstra  <lute@gnu.org>
 +
 +      * modes.texi (%-Constructs): Document new `%i' and `%I'
 +      constructs.
 +
 +2003-09-03  Peter Runestig  <peter@runestig.com>
 +
 +      * makefile.w32-in: New file.
 +
 +2003-08-29  Richard M. Stallman  <rms@gnu.org>
 +
 +      * display.texi (Overlay Properties): Clarify how priorities
 +      affect use of the properties.
 +
 +2003-08-19  Luc Teirlinck  <teirllm@mail.auburn.edu>
 +
 +      * customize.texi (Type Keywords): Correct the description of
 +      `:help-echo' in the case where `motion-doc' is a function.
 +
 +2003-08-14  John Paul Wallington  <jpw@gnu.org>
 +
 +      * modes.texi (Emulating Mode Line): Subsection, not section.
 +
 +2003-08-13  Richard M. Stallman  <rms@gnu.org>
 +
 +      * elisp.texi (Top): Update subnode lists in menu.
 +
 +      * text.texi (Insertion): Add insert-buffer-substring-no-properties.
 +      (Kill Functions): kill-region has new arg yank-handler.
 +      (Yanking): New node.
 +      (Yank Commands): Add yank-undo-function.
 +      (Low-Level Kill Ring):
 +      kill-new and kill-append have new arg yank-handler.
 +      (Changing Properties): Add remove-list-of-text-properties.
 +      (Atomic Changes): New node.
 +
 +      * symbols.texi (Other Plists): Add lax-plist-get, lax-plist-put.
 +
 +      * streams.texi (Output Variables): Add eval-expression-print-length
 +      and eval-expression-print-level.
 +
 +      * os.texi (Time Conversion): For encode-time, explain limits on year.
 +
 +      * objects.texi (Character Type): Define anchor "modifier bits".
 +
 +      * modes.texi (Emulating Mode Line): New node.
 +      (Search-based Fontification): Font Lock uses font-lock-face property.
 +      (Other Font Lock Variables): Likewise.
 +
 +      * keymaps.texi (Format of Keymaps): Keymaps contain char tables,
 +      not vectors.
 +      (Active Keymaps): Add emulation-mode-map-alists.
 +      (Functions for Key Lookup): key-binding has new arg no-remap.
 +      (Remapping Commands): New node.
 +      (Scanning Keymaps): where-is-internal has new arg no-remap.
 +      (Tool Bar): Add tool-bar-local-item-from-menu.
 +      Clarify when to use tool-bar-add-item-from-menu.
 +
 +      * commands.texi (Interactive Call): commandp has new arg.
 +      (Command Loop Info): Add this-original-command.
 +
 +2003-08-06  John Paul Wallington  <jpw@gnu.org>
 +
 +      * compile.texi (Compiler Errors): Say `@end defmac' after `@defmac'.
 +
 +      * display.texi (Warning Basics): Fix typo.
 +      (Fringes): Add closing curly bracket and fix typo.
 +
 +      * elisp.texi (Top): Fix typo.
 +
 +2003-08-05  Richard M. Stallman  <rms@gnu.org>
 +
 +      * elisp.texi: Update lists of subnodes.
 +
 +      * windows.texi (Buffers and Windows): set-window-buffer has new arg.
 +
 +      * variables.texi (Local Variables): Use lc for example variable names.
 +
 +      * tips.texi (Library Headers): Explain where to put -*-.
 +
 +      * strings.texi (Creating Strings): Fix xref for vconcat.
 +
 +      * sequences.texi (Vector Functions):
 +      vconcat no longer allows integer args.
 +
 +      * 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'
 +      (Indenting Macros): New node.
 +
 +      * frames.texi (Parameter Access): Add modify-all-frames-parameters.
 +      (Window Frame Parameters): Make separate table of parameters
 +      that are coupled with specific face attributes.
 +      (Deleting Frames): delete-frame-hooks renamed to
 +      delete-frame-functions.
 +
 +      * files.texi (Magic File Names): Add file-remote-p.
 +      Clarify file-local-copy.
 +
 +      * edebug.texi (Instrumenting Macro Calls): Don't define `declare'
 +      here; instead xref Defining Macros.
 +
 +      * display.texi (Warnings): New node, and subnodes.
 +      (Fringes): New node.
 +
 +      * debugging.texi (Test Coverage): New node.
 +
 +      * compile.texi (Compiler Errors): Explain with-no-warnings
 +      and other ways to suppress warnings.
 +
 +      * commands.texi (Interactive Call): Minor clarification.
 +
 +      * buffers.texi (Buffer File Name): set-visited-file-name
 +      renames the buffer too.
 +
 +      * abbrevs.texi (Abbrev Tables): Add copy-abbrev-table.
 +
 +2003-07-24  Markus Rost  <rost@math.ohio-state.edu>
 +
 +      * abbrevs.texi (Abbrev Expansion): Use \s syntax in example.
 +
 +2003-07-22  Markus Rost  <rost@math.ohio-state.edu>
 +
 +      * internals.texi (Garbage Collection): Fix previous change.
 +
 +2003-07-22  Richard M. Stallman  <rms@gnu.org>
 +
 +      * files.texi (Truenames): Add LIMIT arg to file-chase-links.
 +
 +      * display.texi (Width): Use \s syntax in example.
 +      (Font Selection): Add face-font-rescale-alist.
 +
 +      * modes.texi (Imenu): Add xref to Emacs Manual node on Imenu.
 +      Remove spurious indent in example.
 +
 +      * lists.texi (Building Lists): Add number-sequence.
 +
 +      * internals.texi (Garbage Collection): Add gcs-done, gc-elapsed.
 +
 +      * functions.texi (Function Documentation): Explain how to
 +      show calling convention explicitly in the doc string.
 +
 +      * windows.texi (Selecting Windows): save-selected-window saves
 +      selected window of each frame.
 +      (Window Configurations): Minor change.
 +
 +      * syntax.texi (Syntax Table Functions): Use \s syntax in examples.
 +
 +      * streams.texi (Output Variables): Add print-continuous-numbering
 +      and print-number-table.
 +
 +      * processes.texi (Decoding Output): New node.
 +
 +      * os.texi (Time Conversion): decode-time arg is optional.
 +
 +      * objects.texi (Character Type): Don't use space as example for \.
 +      Make list of char names and \-sequences correspond.
 +      Explain that \s is not used in strings.  `\ ' needs space after.
 +
 +      * nonascii.texi (Converting Representations): Add string-to-multibyte.
 +      (Translation of Characters): Add translation-table-for-input.
 +      (Default Coding Systems): Add auto-coding-functions.
 +      (Explicit Encoding): Add decode-coding-inserted-region.
 +      (Locales): Add locale-info.
 +
 +      * minibuf.texi (Basic Completion): Describe test-completion.
 +      Collections can be lists of strings.
 +      Clean up lazy-completion-table.
 +      (Programmed Completion): Mention test-completion.
 +      Clarify why lambda expressions are not accepted.
 +      (Minibuffer Misc): Describe minibufferp.
 +
 +2003-07-14  Richard M. Stallman  <rms@gnu.org>
 +
 +      * buffers.texi (Killing Buffers): kill-buffer-hook is perm local.
 +
 +      * windows.texi (Selecting Windows): New arg to select-window.
 +      (Selecting Windows): Add with-selected-window.
 +      (Size of Window): Add window-inside-edges, etc.
 +
 +      * internals.texi (Garbage Collection): Add post-gc-hook.
 +
 +      * processes.texi (Subprocess Creation): Add exec-suffixes.
 +
 +      * keymaps.texi (Functions for Key Lookup): Add current-active-maps.
 +      (Scanning Keymaps): Add map-keymaps.
 +      (Defining Menus): Add keymap-prompt.
 +
 +      * numbers.texi (Integer Basics): Add most-positive-fixnum,
 +      most-negative-fixnum.
 +
 +      * compile.texi (Byte Compilation): Explain no-byte-compile
 +      (Compiler Errors): New node.
 +
 +      * os.texi (User Identification): user-uid, user-real-uid
 +      can return float.
 +
 +      * modes.texi (Major Mode Conventions): Explain about run-mode-hooks
 +      and about derived modes.
 +      (Minor Modes): Add minor-mode-list.
 +      (Defining Minor Modes): Keyword args for define-minor-mode.
 +      (Search-based Fontification): Explain managing other properties.
 +      (Other Font Lock Variables): Add font-lock-extra-managed-props.
 +      (Faces for Font Lock): Add font-locl-preprocessor-face.
 +      (Hooks): Add run-mode-hooks and delay-mode-hooks.
 +
 +      * variables.texi (Creating Buffer-Local): Add buffer-local-value.
 +      (Variable Aliases): Clarify defvaralias.
 +
 +      * loading.texi (Library Search): Add load-suffixes.
 +
 +      * minibuf.texi (Basic Completion): Add lazy-completion-table.
 +      (Programmed Completion): Add dynamic-completion-table.
 +
 +      * files.texi (Changing Files): copy-file allows dir as NEWNAME.
 +      (Magic File Names): Specify precedence order of handlers.
 +
 +      * commands.texi (Command Overview): Emacs server runs pre-command-hook
 +      and post-command-hook.
 +      (Waiting): New calling convention for sit-for.
 +
 +      * text.texi (Special Properties): local-map and keymap properties
 +      apply based on their stickiness.
 +
 +2003-07-07  Richard M. Stallman  <rms@gnu.org>
 +
 +      * modes.texi (Minor Mode Conventions): Specify only some kinds
 +      of list values as args to minor modes.
 +
 +      * files.texi (File Name Expansion): Warn about iterative use
 +      of substitute-in-file-name.
 +
 +      * advice.texi (Activation of Advice): Clean up previous change.
 +
 +2003-07-06  Markus Rost  <rost@math.ohio-state.edu>
 +
 +      * advice.texi (Activation of Advice): Note that ad-start-advice is
 +      turned on by default.
 +
 +2003-06-30  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Buffer Contents): Document current-word.
 +      (Change Hooks): Not called for *Messages*.
 +
 +      * functions.texi (Defining Functions): Explain about redefining
 +      primitives.
 +      (Function Safety): Renamed.  Minor changes.
 +      Comment out the detailed criteria for what is safe.
 +
 +2003-06-22  Andreas Schwab  <schwab@suse.de>
 +
 +      * objects.texi (Symbol Type): Fix description of examples.
 +
 +2003-06-16  Andreas Schwab  <schwab@suse.de>
 +
 +      * hash.texi (Creating Hash): Fix description of :weakness.
 +
 +2003-06-13  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@gmx.net>
 +
 +      * files.texi (Changing Files): copy-file copies file modes, too.
 +
 +2003-05-28  Richard M. Stallman  <rms@gnu.org>
 +
 +      * strings.texi (Creating Strings): Clarify split-string.
 +
 +2003-05-22  Stephen J. Turnbull  <stephen@xemacs.org>
 +
 +      * strings.texi (Creating Strings): Update split-string specification
 +      and examples.
 +
 +2003-05-19  Richard M. Stallman  <rms@gnu.org>
 +
 +      * elisp.texi: Correct invariant section names.
 +
 +2003-04-20  Richard M. Stallman  <rms@gnu.org>
 +
 +      * os.texi (Timers): Explain about timers and quitting.
 +
 +2003-04-19  Richard M. Stallman  <rms@gnu.org>
 +
 +      * internals.texi (Writing Emacs Primitives): Strings are
 +      no longer special for GCPROs.  Mention GCPRO5, GCPRO6.
 +      Explain GCPRO convention for varargs function args.
 +
 +2003-04-16  Richard M. Stallman  <rms@gnu.org>
 +
 +      * minibuf.texi (Minibuffer Misc): Document fn minibuffer-message.
 +
 +2003-04-08  Richard M. Stallman  <rms@gnu.org>
 +
 +      * files.texi (Kinds of Files): Correct return value of file-symlink-p.
 +
 +2003-02-13  Kim F. Storm  <storm@cua.dk>
 +
 +      * objects.texi (Character Type): New \s escape for space.
 +
 +2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
 +
 +      * os.texi (System Environment): Added cygwin system-type.
 +
 +2003-01-25  Richard M. Stallman  <rms@gnu.org>
 +
 +      * keymaps.texi: Document that a symbol can act as a keymap.
 +
 +2003-01-13  Richard M. Stallman  <rms@gnu.org>
 +
 +      * text.texi (Changing Properties): Say string indices are origin-0.
 +
 +      * positions.texi (Screen Lines) <compute-motion>:
 +      Correct order of elts in return value.
 +
 +      * keymaps.texi (Changing Key Bindings) <define-key>: Mention
 +      how to define a default binding.
 +
 +2002-12-07  Markus Rost  <rost@math.ohio-state.edu>
 +
 +      * loading.texi (Unloading): Fix recent change for load-history.
 +
 +      * customize.texi (Simple Types): Clarify description of custom
 +      type 'number.  Describe new custom type 'float.
 +
 +2002-12-04  Markus Rost  <rost@math.ohio-state.edu>
 +
 +      * variables.texi (File Local Variables): Fix typo.
 +
 +2002-10-23  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@uni-duisburg.de>
 +
 +      From Michael Albinus <Michael.Albinus@alcatel.de>.
 +
 +      * README: Target for Info file is `make info'.
 +
 +      * files.texi (File Name Components): Fixed typos in
 +      `file-name-sans-extension'.
 +      (Magic File Names): Complete list of operations for magic file
 +      name handlers.
 +
 +2002-09-16  Jonathan Yavner  <jyavner@engineer.com>
 +
 +      * variables.texi (File Local Variables): New function
 +      risky-local-variable-p.
 +
 +2002-09-15  Jonathan Yavner  <jyavner@engineer.com>
 +
 +      * functions.texi (Function safety): New node about unsafep.
 +
 +2002-08-05  Per Abrahamsen  <abraham@dina.kvl.dk>
 +
 +      * customize.texi (Splicing into Lists): Fixed example.
 +      Reported by Fabrice Bauzac <fabrice.bauzac@wanadoo.fr>
 +
 +2002-06-17  Juanma Barranquero  <lektu@terra.es>
 +
 +      * frames.texi (Display Feature Testing): Fix typo.
 +
 +2002-06-12  Andreas Schwab  <schwab@suse.de>
 +
 +      * frames.texi (Initial Parameters, Resources): Fix references to
 +      the Emacs manual.
 +
 +2002-05-13  Kim F. Storm  <storm@cua.dk>
 +
 +      * variables.texi (Intro to Buffer-Local): Updated warning and
 +      example relating to changing buffer inside let.
 +
 +2002-03-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * os.texi (Session Management): New node about X Session management.
 +
 +2002-01-18  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * elisp.texi (VERSION): Set to 2.9.  Update the version of Emacs
 +      to which the manual corresponds, and the copyright years.
 +
 +      * Makefile.in (VERSION): Set to 2.9.
 +
 +2001-11-29  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * elisp.texi: Change the category in @dircategory to "Emacs", to
 +      make it consistent with info/dir.
 +
 +2001-11-25  Miles Bader  <miles@gnu.org>
 +
 +      * text.texi (Fields): Describe new `limit' arg in
 +      field-beginning/field-end.
 +
 +2001-11-17  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * permute-index: Don't depend on csh-specific features.  Replace
 +      the interpreter name with /bin/sh.
 +
 +      * two-volume-cross-refs.txt: New file.
 +      * two.el: New file.
 +      * spellfile: New file.
 +
 +2001-11-16  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * permute-index: New file.
 +
 +      * vol1.texi, vol2.texi: Renamed from elisp-vol1.texi and
 +      elisp-vol2.texi, respectively, to avoid file-name clashes in DOS
 +      8+3 restricted namespace.
 +
 +      * Makefile.in (infodir): Define relative to $(srcdir).
 +      ($(infodir)/elisp): Don't chdir into $(srcdir), but add it to the
 +      include directories list via -I switch to makeinfo.
 +      (index.texi): Use cp if both hard and symbolic links fail.
 +
 +2001-11-10  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * Makefile.in (distclean): Add.
 +
 +      The following changes make ELisp manual part of the Emacs
 +      distribution:
 +
 +      * Makefile.in: Add Copyright notice.
 +      (prefix): Remove.
 +      (infodir): Change value to "../info".
 +      (VPATH): New variable.
 +      (MAKE): Don't define.
 +      (texmacrodir): Don't define.
 +      (texinputdir): Append the existing value of TEXINPUTS.
 +      ($(infodir)/elisp): Instead of just "elisp".  Reformat the
 +      command to be compatible with man/Makefile.in, and to put the
 +      output into ../info.
 +      (info): Add target.
 +      (installall): Target removed.
 +
 +2001-10-31  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +
 +      * tips.texi (Coding Conventions): Fix typo.
 +
 +2001-10-23  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * Makefile.in (srcs): Add gpl.texi and doclicense.texi.
 +
 +2001-10-22  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * files.texi (File Name Components): Update the description of
 +      file-name-sans-extension and file-name-extension, as they now
 +      ignore leading dots.
 +
 +2001-10-20  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * (Version 21.1 released.)
 +
 +2001-10-19  Miles Bader  <miles@gnu.org>
 +
 +      * positions.texi (Text Lines): Describe behavior of
 +      `beginning-of-line'/`end-of-line' in the presence of field properties.
 +
 +2001-10-17  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * Makefile.in (VERSION): Set to 2.8.
 +      (manual): Use `manual-21'.
 +
 +      * elisp.texi (VERSION): Add and use it where the version
 +      number was used.  Set it to 2.8.
 +
 +      * intro.texi: Likewise.
 +
 +2001-10-13  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * files.texi (File Name Completion): Document the significance of
 +      a trailing slash in elements of completion-ignored-extensions.
 +
 +2001-10-06  Miles Bader  <miles@gnu.org>
 +
 +      * variables.texi (Variable Aliases): It's `@defmac', not `@defmacro'.
 +
 +2001-10-04  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * variables.texi (Variable Aliases): New node.
 +
 +2001-10-04  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * Branch for 21.1.
 +
 +2001-10-02  Miles Bader  <miles@gnu.org>
 +
 +      * minibuf.texi (Minibuffer Misc): Add entries for
 +      `minibuffer-contents', `minibuffer-contents-no-properties', and
 +      `delete-minibuffer-contents'.
 +      Correct description for `minibuffer-prompt-end'.
 +
 +      * text.texi (Property Search): Correct descriptions of
 +      `next-char-property-change' and `previous-char-property-change'.
 +      Add entries for `next-single-char-property-change' and
 +      `previous-single-char-property-change'.
 +      Make operand names a bit more consistent.
 +
 +2001-09-30  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * frames.texi (Finding All Frames): Document that next-frame and
 +      previous-frame are local to current terminal.
 +
 +2001-09-26  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * keymaps.texi (Creating Keymaps): Fix the description of the
 +      result of make-keymap.
 +
 +2001-09-23  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * display.texi (Font Lookup, Attribute Functions)
 +      (Image Descriptors): Add cross-references to the definition of
 +      selected frame.
 +
 +      * buffers.texi (The Buffer List): Add cross-references to the
 +      definition of selected frame.
 +
 +      * frames.texi (Input Focus): Clarify which frame is _the_ selected
 +      frame at any given time.
 +      (Multiple Displays, Size and Position): Add a cross-reference to
 +      the definition of the selected frame.
 +
 +2001-09-08  Eli Zaretskii  <eliz@is.elta.co.il>
 +
 +      * strings.texi (String Conversion) <string-to-number>: Document
 +      that a float is returned for integers that are too large.
 +
 +      * frames.texi (Mouse Position): Document mouse-position-function.
 +      (Display Feature Testing): Document display-images-p.
 +      (Window Frame Parameters): Document the cursor-type variable.
 +
 +      * numbers.texi (Integer Basics): Document CL style read syntax for
 +      integers in bases other than 10.
 +
 +      * positions.texi (List Motion): Document
 +      open-paren-in-column-0-is-defun-start.
 +
 +      * lists.texi (Sets And Lists): Document member-ignore-case.
 +
 +      * internals.texi (Garbage Collection): Document the used and free
 +      strings report.
 +      (Memory Usage): Document strings-consed.
 +
 +      * os.texi (Time of Day): Document float-time.
 +      (Recording Input): Document that clear-this-command-keys clears
 +      the vector to be returned by recent-keys.
 +
 +      * keymaps.texi (Scanning Keymaps) <where-is-internal>: The
 +      argument keymap can be a list.
 +
 +      * nonascii.texi (User-Chosen Coding Systems)
 +      <select-safe-coding-system>: Document the new argument
 +      accept-default-p and the variable
 +      select-safe-coding-system-accept-default-p.  Tell what happens if
 +      buffer-file-coding-system is undecided.
 +      (Default Coding Systems): Document auto-coding-regexp-alist.
 +
 +      * display.texi (The Echo Area) <message>: Document
 +      message-truncate-lines.
 +      (Glyphs): Document that the glyph table is unused on windowed
 +      displays.
 +
 +      * help.texi (Describing Characters) <single-key-description>:
 +      Document the new argument no-angles.
 +      (Accessing Documentation) <documentation-property>: Document that
 +      a non-string property is evaluated.
 +      <documentation>: Document that the function-documentation property
 +      is looked for.
 +
 +      * windows.texi (Selecting Windows): Document some-window.
 +
 +      * text.texi (MD5 Checksum): New node, documents the md5 primitive.
 +
 +      * hooks.texi (Standard Hooks): Add kbd-macro-termination-hook and
 +      apropos-mode-hook.
 +
 +      * commands.texi (Using Interactive): Document interactive-form.
 +      (Keyboard Macros): Document kbd-macro-termination-hook.
 +      (Command Loop Info): Document that clear-this-command-keys clears
 +      the vector to be returned by recent-keys.
 +
 +2001-09-04  Werner LEMBERG  <wl@gnu.org>
 +
 +      * Makefile.in (srcdir, texinputdir): New variables.
 +      (srcs, index.texi, install): Use $(srcdir).
 +      (.PHONY): Remove elisp.dvi.
 +      (elisp): Use -I switch for makeinfo.
 +      (elisp.dvi): Use $(srcdir) and $(texinputdir).
 +      (installall, dist): Use $(srcdir).
 +      Fix path to texinfo.tex.
 +      (maintainer-clean): Add elisp.dvi and elisp.oaux.
 +
 +2001-08-30  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * display.texi (Conditional Display): Adjust to API change.
 +
 +      * configure: New file.
 +
 +2001-07-30  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * commands.texi (Repeat Events): Add description of
 +      double-click-fuzz.
 +
 +2001-05-08  Stefan Monnier  <monnier@cs.yale.edu>
 +
 +      * syntax.texi (Syntax Class Table): Add the missing designator for
 +      comment and string fences.
 +      (Syntax Properties): Add a xref to syntax table internals.
 +      (Syntax Table Internals): Document string-to-syntax.
 +
 +2001-05-07  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * Makefile.in (install): Use install-info command line options
 +      like in Emacs' Makefile.in.
 +
 +2000-12-09  Miles Bader  <miles@gnu.org>
 +
 +      * windows.texi (Window Start): Update documentation for
 +      `pos-visible-in-window-p'.
 +
 +2000-11-12  Stefan Monnier  <monnier@cs.yale.edu>
 +
 +      * lists.texi (Building Lists): Add footnote to explain how to add
 +      to the end of a list.
 +
 +2000-10-25  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * files.texi (Visiting Functions): Typos.
 +
 +2000-10-25  Kenichi Handa  <handa@etl.go.jp>
 +
 +      * files.texi (Visiting Functions): Return value of
 +      find-file-noselect may be a list of buffers if wildcards are used.
 +
 +2000-10-24  Miles Bader  <miles@lsi.nec.co.jp>
 +
 +      * display.texi (Defining Faces): Document `graphic' display type
 +      in face specs.
 +
 +2000-10-18  Kai Grossjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 +
 +      * hooks.texi (Standard Hooks): Replace obsolete
 +      `after-make-frame-hook' with `after-make-frame-functions'.
 +
 +      * frames.texi (Creating Frames): Ditto.
 +
 +      * variables.texi (Future Local Variables): Ditto.
 +
 +2000-10-16  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * display.texi (Other Image Types): Add description of :foreground
 +      and :background properties of mono PBM images.
 +
 +2000-08-17  Werner LEMBERG  <wl@gnu.org>
 +
 +      * .cvsignore: New file.
 +
 +2000-01-05  Gerd Moellmann  <gerd@gnu.org>
 +
 +      * tindex.pl: New script.
 +
 +1999-12-03  Dave Love  <fx@gnu.org>
 +
 +      * Makefile.in (MAKEINFO): New parameter.
 +
 +1999-09-17  Richard Stallman  <rms@gnu.org>
 +
 +      * Makefile.in (srcs): Add hash.texi.
 +      (VERSION): Update to 20.6.
 +
 +1999-09-13  Richard Stallman  <rms@gnu.org>
 +
 +      * Makefile.in (index.texi): If cannot make a symlink, make a hard link.
 +
 +1998-08-29  Karl Heuer  <kwzh@gnu.org>
 +
 +      * configure.in: New file.
 +      * Makefile.in: Renamed from Makefile.
 +      (prefix, infodir): Use value obtained from configure.
 +      (emacslibdir): Obsolete variable deleted.
 +      (dist): Distribute configure.in, configure, Makefile.in.
 +
 +1998-06-12  Richard Stallman  <rms@psilocin.ai.mit.edu>
 +
 +      * Makefile (INSTALL_INFO): New variable.
 +      (install): Run install-info.
 +
 +1998-05-09  Richard Stallman  <rms@psilocin.ai.mit.edu>
 +
 +      * Makefile (elisp.dvi): Add missing backslash.
 +
 +1998-05-02  Richard Stallman  <rms@psilocin.gnu.org>
 +
 +      * Makefile (elisp.dvi): Don't depend on texindex or on elisp.tps.
 +      Run texindex without `./'.  Always run texindex on elisp.tp.
 +      (elisp.tps): Target deleted.
 +
 +1998-04-05  Richard Stallman  <rms@psilocin.gnu.org>
 +
 +      * Makefile (srcs): Add nonascii.texi and customize.texi.
 +      (dist): Start by deleting `temp'.
 +
 +1998-02-17  Richard Stallman  <rms@psilocin.gnu.org>
 +
 +      * Makefile (makeinfo, texindex): Targets deleted.
 +      (makeinfo.o, texindex.o): Targets deleted.
 +      (clean, dist): Don't do anything with them or with getopt*.
 +
 +1998-01-30  Richard Stallman  <rms@psilocin.gnu.org>
 +
 +      * Makefile (SHELL): Defined.
 +
 +1998-01-27  Richard Stallman  <rms@psilocin.gnu.org>
 +
 +      * Makefile (elisp.tps): New target.
 +      (elisp.dvi): Depend on elisp.tps.
 +
 +Wed Apr  3 15:24:25 1996  Karl Heuer  <kwzh@gnu.ai.mit.edu>
 +
 +      * README: Update phone number.
 +
 +      * Makefile (elisp): Make this be the default target.
 +      Depend on makeinfo.c instead of makeinfo.
 +      (install): Don't depend on elisp.dvi, since we don't install that.
 +      Use mkinstalldirs.
 +      (dist): Add mkinstalldirs.
 +
 +Mon Jun 19 14:35:26 1995  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 +
 +      * Makefile (VERSION): Update version number.
 +      (maintainer-clean): Renamed from realclean.
 +
 +Wed Jun  7 17:04:59 1995  Karl Heuer  <kwzh@nutrimat.gnu.ai.mit.edu>
 +
 +      * Makefile (realclean): New target.
 +      (elisp): Remove any old elisp-* files first.
 +
 +Tue Nov 23 19:59:40 1993  Noah Friedman  (friedman@nutrimat.gnu.ai.mit.edu)
 +
 +      * Makefile (VERSION): New variable.
 +      (dist): Make packaged directory name `elisp-manual-19-$(VERSION)'.
 +      Compressed file suffix should be `.gz', not `.z'.
 +
 +Mon Nov 22 15:06:19 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Makefile (elisp): Depend on makeinfo.
 +
 +Fri Nov 19 02:29:33 1993  Noah Friedman  (friedman@gnu.ai.mit.edu)
 +
 +      * Makefile (srcs): Add anti.texi.
 +
 +Fri May 28 18:04:53 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Makefile (infodir, prefix): New vars.
 +      (install): Use infodir.
 +      (emacsinfodir): Deleted.
 +
 +Thu May 27 02:11:25 1993  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Makefile (srcs): Add calendar.texi.
 +
 +      * Makefile (dist): Copy texindex.c and makeinfo.c.
 +      Limit elisp-* files to those with one or two digits.
 +
 +Sun May 16 17:58:21 1993  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * Makefile (dist): Changed to use Gzip instead of compress.
 +
 +Fri Apr 23 01:05:23 1993  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
 +
 +      * loading.texi (Unloading): define-function changed back to
 +      defalias.  It may not stay this way, but at least it's
 +      consistent with the known-good version of the code patch.
 +
 +Fri Mar 26 21:14:54 1993  Eric S. Raymond  (eric@geech.gnu.ai.mit.edu)
 +
 +      * modes.texi (Hooks): Document new optional arg of add-hook.
 +
 +Wed Mar 17 08:48:24 1993  Eric S. Raymond  (eric@mole.gnu.ai.mit.edu)
 +
 +      * variables.texi: Document nil initial value of buffer-local variables.
 +
 +      * tips.texi: Add new section on standard library headers.
 +
 +Sat Feb 27 18:00:25 1993  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * Makefile (srcs): Add frame.texi to the list of sources.
 +
 +Tue Feb 23 10:50:25 1993  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * Makefile (dist): Don't bother excluding autosave files; they'll
 +      never make it into the temp directory anyway, and the hash marks
 +      in the name are problematic for make and the Bourne shell.
 +      (srcs):
 +
 +Fri Feb 12 16:54:38 1993  Jim Blandy  (jimb@wookumz.gnu.ai.mit.edu)
 +
 +      * Makefile (dist): Don't include backup files or autosave files in
 +      the distribution tar file.
 +
 +Tue Nov 26 21:10:34 1991  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
 +
 +      * Makefile (srcs): Added index.perm.
 +      (elisp.dvi): Remove erroneous shell comment.
 +      Expect output of permute-index in permuted.fns.
 +      Save old elisp.aux in elisp.oaux.
 +      (clean): Added index.texi to be deleted.
 +
 +Sat Aug 11 17:39:10 1990  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 +
 +      * Makefile (elisp.dvi, index.texi): Use shell if instead of ifdef.
 +
 +Tue Jun 26 09:57:26 1990  David Lawrence  (tale@geech)
 +
 +      * files.texi: Noted that completion-ignored-extensions is ignored
 +      when making *Completions*.
 +
 +Fri Jun  8 16:44:44 EDT 1990 Jay Fenlason (hack@ai.mit.edu)
 +
 +      * Makefile  make dist now depends on elisp.dvi, since it tries
 +      to include it in the dist file.
 +
 +Wed Mar 28 22:57:35 1990  Jim Kingdon  (kingdon@mole.ai.mit.edu)
 +
 +      * functions.texinfo (Mapping Functions): Add missing quote
 +
 +Mon Jun 19 18:09:24 1989  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 +
 +      * texinfo.tex (frenchspacing): Use decimal codes for char to be set.
 +      (defunargs): Turn off \hyphenchar of \sl font temporarily.
 +
 +Wed May 10 18:01:17 1989  Robert J. Chassell  (bob@rice-chex.ai.mit.edu)
 +
 +      * @result{}, @expansion{}, @print{}, @quiv{}, @point{},
 +      and @error{} are the terms now being used.  The files in the
 +      directory have been changed to reflect this.
 +
 +      * All instances of @indentedresultt{} have been changed to
 +      `     @result{}', using 5 spaces at the begining of the line.
 +
 +Mon Apr 24 21:02:55 1989  Robert J. Chassell  (bob@rice-chex.ai.mit.edu)
 +
 +      * @result{}, @expandsto{}, @prints{}, @quiv{}, @error{}, and the
 +      experimental @indentedresult{}, @indentedexpandsto{} are part of
 +      the texinfo.tex in this directory.  These TeX macros are not
 +      stable yet.
 +
 +Mon Apr 17 18:56:50 1989  Robert J. Chassell  (bob@rice-chex.ai.mit.edu)
 +
 +      * texinfo.tex: Temporarily added
 +              \let\result=\dblarrow
 +              \def\error{{\it ERROR} \longdblarrow}
 +      We need to do this better soon.
 +
 +Tue Apr 11 12:23:28 1989  Robert J. Chassell  (bob@rice-chex.ai.mit.edu)
 +
 +      * Applied Karl Berry's patches to *.texinfo files, but not to
 +      texinfo.tex; those diffs are in `berry-texinfo-tex-diffs'.  (Karl's
 +      new title page format is also not applied, since it requires
 +      texinfo.tex changes.)
 +
 +      * Cleaned up `Makefile' and defined the `emacslibdir' directory
 +      for the Project GNU development environment.
 +
 +;; Local Variables:
 +;; coding: iso-2022-7bit
 +;; add-log-time-zone-rule: t
 +;; End:
 +
 +    Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 +      2005, 2006, 2007 Free Software Foundation, Inc.
 +
 +  This file is part of GNU Emacs.
 +
 +  GNU Emacs is free software; you can redistribute it and/or modify
 +  it under the terms of the GNU General Public License as published by
 +  the Free Software Foundation; either version 3, or (at your option)
 +  any later version.
 +
 +  GNU Emacs is distributed in the hope that it will be useful,
 +  but WITHOUT ANY WARRANTY; without even the implied warranty of
 +  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +  GNU General Public License for more details.
 +
 +  You should have received a copy of the GNU General Public License
 +  along with GNU Emacs; see the file COPYING.  If not, write to the
 +  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 +  Boston, MA 02110-1301, USA.
 +
 +;;; arch-tag: 985ae0ce-df29-475b-b3f8-4bbcbf6f7fda
index b97ce20fc228609d006078c37c13a9e4c5b7d0da,0000000000000000000000000000000000000000..d971d5b6db2bd0258cec8bea8107ee0d2eadc143
mode 100644,000000..100644
--- /dev/null
@@@ -1,1266 -1,0 +1,1268 @@@
- @item :offset @var{columns}
- An integer indicating how many extra spaces to indent the subitems of
- this item.  By default, subitems are indented the same as their parent.
 +@c -*-texinfo-*-
 +@c This is part of the GNU Emacs Lisp Reference Manual.
 +@c Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 +@c   2005, 2006, 2007  Free Software Foundation, Inc.
 +@c See the file elisp.texi for copying conditions.
 +@setfilename ../../info/customize
 +@node Customization, Loading, Macros, Top
 +@chapter Writing Customization Definitions
 +
 +@cindex customization definitions
 +  This chapter describes how to declare user options for customization,
 +and also customization groups for classifying them.  We use the term
 +@dfn{customization item} to include both kinds of customization
 +definitions---as well as face definitions (@pxref{Defining Faces}).
 +
 +@menu
 +* Common Keywords::      Common keyword arguments for all kinds of
 +                           customization declarations.
 +* Group Definitions::    Writing customization group definitions.
 +* Variable Definitions:: Declaring user options.
 +* Customization Types::  Specifying the type of a user option.
 +@end menu
 +
 +@node Common Keywords
 +@section Common Item Keywords
 +
 +@cindex customization keywords
 +  All kinds of customization declarations (for variables and groups, and
 +for faces) accept keyword arguments for specifying various information.
 +This section describes some keywords that apply to all kinds.
 +
 +  All of these keywords, except @code{:tag}, can be used more than once
 +in a given item.  Each use of the keyword has an independent effect.
 +The keyword @code{:tag} is an exception because any given item can only
 +display one name.
 +
 +@table @code
 +@item :tag @var{label}
 +@kindex tag@r{, customization keyword}
 +Use @var{label}, a string, instead of the item's name, to label the
 +item in customization menus and buffers.  @strong{Don't use a tag
 +which is substantially different from the item's real name; that would
 +cause confusion.}  One legitimate case for use of @code{:tag} is to
 +specify a dash where normally a hyphen would be converted to a space:
 +
 +@example
 +(defcustom cursor-in-non-selected-windows @dots{}
 +  :tag "Cursor In Non-selected Windows"
 +@end example
 +
 +@kindex group@r{, customization keyword}
 +@item :group @var{group}
 +Put this customization item in group @var{group}.  When you use
 +@code{:group} in a @code{defgroup}, it makes the new group a subgroup of
 +@var{group}.
 +
 +If you use this keyword more than once, you can put a single item into
 +more than one group.  Displaying any of those groups will show this
 +item.  Please don't overdo this, since the result would be annoying.
 +
 +@item :link @var{link-data}
 +@kindex link@r{, customization keyword}
 +Include an external link after the documentation string for this item.
 +This is a sentence containing an active field which references some
 +other documentation.
 +
 +There are several alternatives you can use for @var{link-data}:
 +
 +@table @code
 +@item (custom-manual @var{info-node})
 +Link to an Info node; @var{info-node} is a string which specifies the
 +node name, as in @code{"(emacs)Top"}.  The link appears as
 +@samp{[Manual]} in the customization buffer and enters the built-in
 +Info reader on @var{info-node}.
 +
 +@item (info-link @var{info-node})
 +Like @code{custom-manual} except that the link appears
 +in the customization buffer with the Info node name.
 +
 +@item (url-link @var{url})
 +Link to a web page; @var{url} is a string which specifies the
 +@acronym{URL}.  The link appears in the customization buffer as
 +@var{url} and invokes the WWW browser specified by
 +@code{browse-url-browser-function}.
 +
 +@item (emacs-commentary-link @var{library})
 +Link to the commentary section of a library; @var{library} is a string
 +which specifies the library name.
 +
 +@item (emacs-library-link @var{library})
 +Link to an Emacs Lisp library file; @var{library} is a string which
 +specifies the library name.
 +
 +@item (file-link @var{file})
 +Link to a file; @var{file} is a string which specifies the name of the
 +file to visit with @code{find-file} when the user invokes this link.
 +
 +@item (function-link @var{function})
 +Link to the documentation of a function; @var{function} is a string
 +which specifies the name of the function to describe with
 +@code{describe-function} when the user invokes this link.
 +
 +@item (variable-link @var{variable})
 +Link to the documentation of a variable; @var{variable} is a string
 +which specifies the name of the variable to describe with
 +@code{describe-variable} when the user invokes this link.
 +
 +@item (custom-group-link @var{group})
 +Link to another customization group.  Invoking it creates a new
 +customization buffer for @var{group}.
 +@end table
 +
 +You can specify the text to use in the customization buffer by adding
 +@code{:tag @var{name}} after the first element of the @var{link-data};
 +for example, @code{(info-link :tag "foo" "(emacs)Top")} makes a link to
 +the Emacs manual which appears in the buffer as @samp{foo}.
 +
 +An item can have more than one external link; however, most items have
 +none at all.
 +
 +@item :load @var{file}
 +@kindex load@r{, customization keyword}
 +Load file @var{file} (a string) before displaying this customization
 +item.  Loading is done with @code{load-library}, and only if the file is
 +not already loaded.
 +
 +@item :require @var{feature}
 +@kindex require@r{, customization keyword}
 +Execute @code{(require '@var{feature})} when your saved customizations
 +set the value of this item.  @var{feature} should be a symbol.
 +
 +The most common reason to use @code{:require} is when a variable enables
 +a feature such as a minor mode, and just setting the variable won't have
 +any effect unless the code which implements the mode is loaded.
 +
 +@item :version @var{version}
 +@kindex version@r{, customization keyword}
 +This keyword specifies that the item was first introduced in Emacs
 +version @var{version}, or that its default value was changed in that
 +version.  The value @var{version} must be a string.
 +
 +@item :package-version '(@var{package} . @var{version})
 +@kindex package-version@r{, customization keyword}
 +This keyword specifies that the item was first introduced in
 +@var{package} version @var{version}, or that its meaning or default
 +value was changed in that version.  The value of @var{package} is a
 +symbol and @var{version} is a string.
 +
 +This keyword takes priority over @code{:version}.
 +
 +@var{package} should be the official name of the package, such as MH-E
 +or Gnus.  If the package @var{package} is released as part of Emacs,
 +@var{package} and @var{version} should appear in the value of
 +@code{customize-package-emacs-version-alist}.
 +@end table
 +
 +Packages distributed as part of Emacs that use the
 +@code{:package-version} keyword must also update the
 +@code{customize-package-emacs-version-alist} variable.
 +
 +@defvar customize-package-emacs-version-alist
 +This alist provides a mapping for the versions of Emacs that are
 +associated with versions of a package listed in the
 +@code{:package-version} keyword.  Its elements look like this:
 +
 +@example
 +(@var{package} (@var{pversion} . @var{eversion})@dots{})
 +@end example
 +
 +For each @var{package}, which is a symbol, there are one or more
 +elements that contain a package version @var{pversion} with an
 +associated Emacs version @var{eversion}.  These versions are strings.
 +For example, the MH-E package updates this alist with the following:
 +
 +@smallexample
 +(add-to-list 'customize-package-emacs-version-alist
 +             '(MH-E ("6.0" . "22.1") ("6.1" . "22.1") ("7.0" . "22.1")
 +                    ("7.1" . "22.1") ("7.2" . "22.1") ("7.3" . "22.1")
 +                    ("7.4" . "22.1") ("8.0" . "22.1")))
 +@end smallexample
 +
 +The value of @var{package} needs to be unique and it needs to match
 +the @var{package} value appearing in the @code{:package-version}
 +keyword.  Since the user might see the value in a error message, a good
 +choice is the official name of the package, such as MH-E or Gnus.
 +@end defvar
 +
 +@node Group Definitions
 +@section Defining Customization Groups
 +@cindex define customization group
 +@cindex customization groups, defining
 +
 +  Each Emacs Lisp package should have one main customization group which
 +contains all the options, faces and other groups in the package.  If the
 +package has a small number of options and faces, use just one group and
 +put everything in it.  When there are more than twelve or so options and
 +faces, then you should structure them into subgroups, and put the
 +subgroups under the package's main customization group.  It is OK to
 +put some of the options and faces in the package's main group alongside
 +the subgroups.
 +
 +  The package's main or only group should be a member of one or more of
 +the standard customization groups.  (To display the full list of them,
 +use @kbd{M-x customize}.)  Choose one or more of them (but not too
 +many), and add your group to each of them using the @code{:group}
 +keyword.
 +
 +  The way to declare new customization groups is with @code{defgroup}.
 +
 +@defmac defgroup group members doc [keyword value]@dots{}
 +Declare @var{group} as a customization group containing @var{members}.
 +Do not quote the symbol @var{group}.  The argument @var{doc} specifies
 +the documentation string for the group.
 +
 +The argument @var{members} is a list specifying an initial set of
 +customization items to be members of the group.  However, most often
 +@var{members} is @code{nil}, and you specify the group's members by
 +using the @code{:group} keyword when defining those members.
 +
 +If you want to specify group members through @var{members}, each element
 +should have the form @code{(@var{name} @var{widget})}.  Here @var{name}
 +is a symbol, and @var{widget} is a widget type for editing that symbol.
 +Useful widgets are @code{custom-variable} for a variable,
 +@code{custom-face} for a face, and @code{custom-group} for a group.
 +
 +When you introduce a new group into Emacs, use the @code{:version}
 +keyword in the @code{defgroup}; then you need not use it for
 +the individual members of the group.
 +
 +In addition to the common keywords (@pxref{Common Keywords}), you can
 +also use this keyword in @code{defgroup}:
 +
 +@table @code
 +@item :prefix @var{prefix}
 +@kindex prefix@r{, @code{defgroup} keyword}
 +If the name of an item in the group starts with @var{prefix}, then the
 +tag for that item is constructed (by default) by omitting @var{prefix}.
 +
 +One group can have any number of prefixes.
 +@end table
 +@end defmac
 +
 +  The prefix-discarding feature is currently turned off, which means
 +that @code{:prefix} currently has no effect.  We did this because we
 +found that discarding the specified prefixes often led to confusing
 +names for options.  This happened because the people who wrote the
 +@code{defgroup} definitions for various groups added @code{:prefix}
 +keywords whenever they make logical sense---that is, whenever the
 +variables in the library have a common prefix.
 +
 +  In order to obtain good results with @code{:prefix}, it would be
 +necessary to check the specific effects of discarding a particular
 +prefix, given the specific items in a group and their names and
 +documentation.  If the resulting text is not clear, then @code{:prefix}
 +should not be used in that case.
 +
 +  It should be possible to recheck all the customization groups, delete
 +the @code{:prefix} specifications which give unclear results, and then
 +turn this feature back on, if someone would like to do the work.
 +
 +@node Variable Definitions
 +@section Defining Customization Variables
 +@cindex define customization options
 +@cindex customization variables, how to define
 +
 +  Use @code{defcustom} to declare user-customizable variables.
 +
 +@defmac defcustom option standard doc [keyword value]@dots{}
 +This construct declares @var{option} as a customizable user option
 +variable.  You should not quote @var{option}.  The argument @var{doc}
 +specifies the documentation string for the variable.  There is no need
 +to start it with a @samp{*}, because @code{defcustom} automatically
 +marks @var{option} as a @dfn{user option} (@pxref{Defining
 +Variables}).
 +
 +The argument @var{standard} is an expression that specifies the
 +standard value for @var{option}.  Evaluating the @code{defcustom} form
 +evaluates @var{standard}, but does not necessarily install the
 +standard value.  If @var{option} already has a default value,
 +@code{defcustom} does not change it.  If the user has saved a
 +customization for @var{option}, @code{defcustom} installs the user's
 +customized value as @var{option}'s default value.  If neither of those
 +cases applies, @code{defcustom} installs the result of evaluating
 +@var{standard} as the default value.
 +
 +The expression @var{standard} can be evaluated at various other times,
 +too---whenever the customization facility needs to know @var{option}'s
 +standard value.  So be sure to use an expression which is harmless to
 +evaluate at any time.  We recommend avoiding backquotes in
 +@var{standard}, because they are not expanded when editing the value,
 +so list values will appear to have the wrong structure.
 +
 +Every @code{defcustom} should specify @code{:group} at least once.
 +
 +If you specify the @code{:set} keyword, to make the variable take other
 +special actions when set through the customization buffer, the
 +variable's documentation string should tell the user specifically how
 +to do the same job in hand-written Lisp code.
 +
 +When you evaluate a @code{defcustom} form with @kbd{C-M-x} in Emacs Lisp
 +mode (@code{eval-defun}), a special feature of @code{eval-defun}
 +arranges to set the variable unconditionally, without testing whether
 +its value is void.  (The same feature applies to @code{defvar}.)
 +@xref{Defining Variables}.
 +@end defmac
 +
 +  @code{defcustom} accepts the following additional keywords:
 +
 +@table @code
 +@item :type @var{type}
 +Use @var{type} as the data type for this option.  It specifies which
 +values are legitimate, and how to display the value.
 +@xref{Customization Types}, for more information.
 +
 +@item :options @var{value-list}
 +@kindex options@r{, @code{defcustom} keyword}
 +Specify the list of reasonable values for use in this
 +option.  The user is not restricted to using only these values, but they
 +are offered as convenient alternatives.
 +
 +This is meaningful only for certain types, currently including
 +@code{hook}, @code{plist} and @code{alist}.  See the definition of the
 +individual types for a description of how to use @code{:options}.
 +
 +@item :set @var{setfunction}
 +@kindex set@r{, @code{defcustom} keyword}
 +Specify @var{setfunction} as the way to change the value of this
 +option.  The function @var{setfunction} should take two arguments, a
 +symbol (the option name) and the new value, and should do whatever is
 +necessary to update the value properly for this option (which may not
 +mean simply setting the option as a Lisp variable).  The default for
 +@var{setfunction} is @code{set-default}.
 +
 +@item :get @var{getfunction}
 +@kindex get@r{, @code{defcustom} keyword}
 +Specify @var{getfunction} as the way to extract the value of this
 +option.  The function @var{getfunction} should take one argument, a
 +symbol, and should return whatever customize should use as the
 +``current value'' for that symbol (which need not be the symbol's Lisp
 +value).  The default is @code{default-value}.
 +
 +You have to really understand the workings of Custom to use
 +@code{:get} correctly.  It is meant for values that are treated in
 +Custom as variables but are not actually stored in Lisp variables.  It
 +is almost surely a mistake to specify @code{getfunction} for a value
 +that really is stored in a Lisp variable.
 +
 +@item :initialize @var{function}
 +@kindex initialize@r{, @code{defcustom} keyword}
 +@var{function} should be a function used to initialize the variable
 +when the @code{defcustom} is evaluated.  It should take two arguments,
 +the option name (a symbol) and the value.  Here are some predefined
 +functions meant for use in this way:
 +
 +@table @code
 +@item custom-initialize-set
 +Use the variable's @code{:set} function to initialize the variable, but
 +do not reinitialize it if it is already non-void.
 +
 +@item custom-initialize-default
 +Like @code{custom-initialize-set}, but use the function
 +@code{set-default} to set the variable, instead of the variable's
 +@code{:set} function.  This is the usual choice for a variable whose
 +@code{:set} function enables or disables a minor mode; with this choice,
 +defining the variable will not call the minor mode function, but
 +customizing the variable will do so.
 +
 +@item custom-initialize-reset
 +Always use the @code{:set} function to initialize the variable.  If
 +the variable is already non-void, reset it by calling the @code{:set}
 +function using the current value (returned by the @code{:get} method).
 +This is the default @code{:initialize} function.
 +
 +@item custom-initialize-changed
 +Use the @code{:set} function to initialize the variable, if it is
 +already set or has been customized; otherwise, just use
 +@code{set-default}.
 +
 +@item custom-initialize-safe-set
 +@itemx custom-initialize-safe-default
 +These functions behave like @code{custom-initialize-set}
 +(@code{custom-initialize-default}, respectively), but catch errors.
 +If an error occurs during initialization, they set the variable to
 +@code{nil} using @code{set-default}, and throw no error.
 +
 +These two functions are only meant for options defined in pre-loaded
 +files, where some variables or functions used to compute the option's
 +value may not yet be defined.  The option normally gets updated in
 +@file{startup.el}, ignoring the previously computed value.  Because of
 +this typical usage, the value which these two functions compute
 +normally only matters when, after startup, one unsets the option's
 +value and then reevaluates the defcustom.  By that time, the necessary
 +variables and functions will be defined, so there will not be an error.
 +@end table
 +
 +@item :risky @var{value}
 +@kindex risky@r{, @code{defcustom} keyword}
 +Set this variable's @code{risky-local-variable} property to @var{value}.
 +
 +@item :safe @var{function}
 +@kindex safe@r{, @code{defcustom} keyword}
 +Set this variable's @code{safe-local-variable} property to @var{function}.
 +
 +@item :set-after @var{variables}
 +@kindex set-after@r{, @code{defcustom} keyword}
 +When setting variables according to saved customizations, make sure to
 +set the variables @var{variables} before this one; in other words, delay
 +setting this variable until after those others have been handled.  Use
 +@code{:set-after} if setting this variable won't work properly unless
 +those other variables already have their intended values.
 +@end table
 +
 +  The @code{:require} keyword is useful for an option that turns on the
 +operation of a certain feature.  Assuming that the package is coded to
 +check the value of the option, you still need to arrange for the package
 +to be loaded.  You can do that with @code{:require}.  @xref{Common
 +Keywords}.  Here is an example, from the library @file{saveplace.el}:
 +
 +@example
 +(defcustom save-place nil
 +  "Non-nil means automatically save place in each file..."
 +  :type 'boolean
 +  :require 'saveplace
 +  :group 'save-place)
 +@end example
 +
 +If a customization item has a type such as @code{hook} or
 +@code{alist}, which supports @code{:options}, you can add additional
 +values to the list from outside the @code{defcustom} declaration by
 +calling @code{custom-add-frequent-value}.  For example, if you define a
 +function @code{my-lisp-mode-initialization} intended to be called from
 +@code{emacs-lisp-mode-hook}, you might want to add that to the list of
 +reasonable values for @code{emacs-lisp-mode-hook}, but not by editing
 +its definition.  You can do it thus:
 +
 +@example
 +(custom-add-frequent-value 'emacs-lisp-mode-hook
 +   'my-lisp-mode-initialization)
 +@end example
 +
 +@defun custom-add-frequent-value symbol value
 +For the customization option @var{symbol}, add @var{value} to the
 +list of reasonable values.
 +
 +The precise effect of adding a value depends on the customization type
 +of @var{symbol}.
 +@end defun
 +
 +Internally, @code{defcustom} uses the symbol property
 +@code{standard-value} to record the expression for the standard value,
 +and @code{saved-value} to record the value saved by the user with the
 +customization buffer.  Both properties are actually lists whose car is
 +an expression which evaluates to the value.
 +
 +@node Customization Types
 +@section Customization Types
 +
 +@cindex customization types
 +  When you define a user option with @code{defcustom}, you must specify
 +its @dfn{customization type}.  That is a Lisp object which describes (1)
 +which values are legitimate and (2) how to display the value in the
 +customization buffer for editing.
 +
 +@kindex type@r{, @code{defcustom} keyword}
 +  You specify the customization type in @code{defcustom} with the
 +@code{:type} keyword.  The argument of @code{:type} is evaluated, but
 +only once when the @code{defcustom} is executed, so it isn't useful
 +for the value to vary.  Normally we use a quoted constant.  For
 +example:
 +
 +@example
 +(defcustom diff-command "diff"
 +  "The command to use to run diff."
 +  :type '(string)
 +  :group 'diff)
 +@end example
 +
 +  In general, a customization type is a list whose first element is a
 +symbol, one of the customization type names defined in the following
 +sections.  After this symbol come a number of arguments, depending on
 +the symbol.  Between the type symbol and its arguments, you can
 +optionally write keyword-value pairs (@pxref{Type Keywords}).
 +
 +  Some of the type symbols do not use any arguments; those are called
 +@dfn{simple types}.  For a simple type, if you do not use any
 +keyword-value pairs, you can omit the parentheses around the type
 +symbol.  For example just @code{string} as a customization type is
 +equivalent to @code{(string)}.
 +
 +@menu
 +* Simple Types::
 +* Composite Types::
 +* Splicing into Lists::
 +* Type Keywords::
 +* Defining New Types::
 +@end menu
 +
 +All customization types are implemented as widgets; see @ref{Top, ,
 +Introduction, widget, The Emacs Widget Library}, for details.
 +
 +@node Simple Types
 +@subsection Simple Types
 +
 +  This section describes all the simple customization types.
 +
 +@table @code
 +@item sexp
 +The value may be any Lisp object that can be printed and read back.  You
 +can use @code{sexp} as a fall-back for any option, if you don't want to
 +take the time to work out a more specific type to use.
 +
 +@item integer
 +The value must be an integer, and is represented textually
 +in the customization buffer.
 +
 +@item number
 +The value must be a number (floating point or integer), and is
 +represented textually in the customization buffer.
 +
 +@item float
 +The value must be a floating point number, and is represented
 +textually in the customization buffer.
 +
 +@item string
 +The value must be a string, and the customization buffer shows just the
 +contents, with no delimiting @samp{"} characters and no quoting with
 +@samp{\}.
 +
 +@item regexp
 +Like @code{string} except that the string must be a valid regular
 +expression.
 +
 +@item character
 +The value must be a character code.  A character code is actually an
 +integer, but this type shows the value by inserting the character in the
 +buffer, rather than by showing the number.
 +
 +@item file
 +The value must be a file name, and you can do completion with
 +@kbd{M-@key{TAB}}.
 +
 +@item (file :must-match t)
 +The value must be a file name for an existing file, and you can do
 +completion with @kbd{M-@key{TAB}}.
 +
 +@item directory
 +The value must be a directory name, and you can do completion with
 +@kbd{M-@key{TAB}}.
 +
 +@item hook
 +The value must be a list of functions (or a single function, but that is
 +obsolete usage).  This customization type is used for hook variables.
 +You can use the @code{:options} keyword in a hook variable's
 +@code{defcustom} to specify a list of functions recommended for use in
 +the hook; see @ref{Variable Definitions}.
 +
 +@item alist
 +The value must be a list of cons-cells, the @sc{car} of each cell
 +representing a key, and the @sc{cdr} of the same cell representing an
 +associated value.  The user can add and delete key/value pairs, and
 +edit both the key and the value of each pair.
 +
 +You can specify the key and value types like this:
 +
 +@smallexample
 +(alist :key-type @var{key-type} :value-type @var{value-type})
 +@end smallexample
 +
 +@noindent
 +where @var{key-type} and @var{value-type} are customization type
 +specifications.  The default key type is @code{sexp}, and the default
 +value type is @code{sexp}.
 +
 +The user can add any key matching the specified key type, but you can
 +give some keys a preferential treatment by specifying them with the
 +@code{:options} (see @ref{Variable Definitions}).  The specified keys
 +will always be shown in the customize buffer (together with a suitable
 +value), with a checkbox to include or exclude or disable the key/value
 +pair from the alist.  The user will not be able to edit the keys
 +specified by the @code{:options} keyword argument.
 +
 +The argument to the @code{:options} keywords should be a list of
 +specifications for reasonable keys in the alist.  Ordinarily, they are
 +simply atoms, which stand for themselves as.  For example:
 +
 +@smallexample
 +:options '("foo" "bar" "baz")
 +@end smallexample
 +
 +@noindent
 +specifies that there are three ``known'' keys, namely @code{"foo"},
 +@code{"bar"} and @code{"baz"}, which will always be shown first.
 +
 +You may want to restrict the value type for specific keys, for
 +example, the value associated with the @code{"bar"} key can only be an
 +integer.  You can specify this by using a list instead of an atom in
 +the list.  The first element will specify the key, like before, while
 +the second element will specify the value type.  For example:
 +
 +@smallexample
 +:options '("foo" ("bar" integer) "baz")
 +@end smallexample
 +
 +Finally, you may want to change how the key is presented.  By default,
 +the key is simply shown as a @code{const}, since the user cannot change
 +the special keys specified with the @code{:options} keyword.  However,
 +you may want to use a more specialized type for presenting the key, like
 +@code{function-item} if you know it is a symbol with a function binding.
 +This is done by using a customization type specification instead of a
 +symbol for the key.
 +
 +@smallexample
 +:options '("foo" ((function-item some-function) integer)
 +           "baz")
 +@end smallexample
 +
 +Many alists use lists with two elements, instead of cons cells.  For
 +example,
 +
 +@smallexample
 +(defcustom list-alist '(("foo" 1) ("bar" 2) ("baz" 3))
 +  "Each element is a list of the form (KEY VALUE).")
 +@end smallexample
 +
 +@noindent
 +instead of
 +
 +@smallexample
 +(defcustom cons-alist '(("foo" . 1) ("bar" . 2) ("baz" . 3))
 +  "Each element is a cons-cell (KEY . VALUE).")
 +@end smallexample
 +
 +Because of the way lists are implemented on top of cons cells, you can
 +treat @code{list-alist} in the example above as a cons cell alist, where
 +the value type is a list with a single element containing the real
 +value.
 +
 +@smallexample
 +(defcustom list-alist '(("foo" 1) ("bar" 2) ("baz" 3))
 +  "Each element is a list of the form (KEY VALUE)."
 +  :type '(alist :value-type (group integer)))
 +@end smallexample
 +
 +The @code{group} widget is used here instead of @code{list} only because
 +the formatting is better suited for the purpose.
 +
 +Similarly, you can have alists with more values associated with each
 +key, using variations of this trick:
 +
 +@smallexample
 +(defcustom person-data '(("brian"  50 t)
 +                         ("dorith" 55 nil)
 +                         ("ken"    52 t))
 +  "Alist of basic info about people.
 +Each element has the form (NAME AGE MALE-FLAG)."
 +  :type '(alist :value-type (group integer boolean)))
 +
 +(defcustom pets '(("brian")
 +                  ("dorith" "dog" "guppy")
 +                  ("ken" "cat"))
 +  "Alist of people's pets.
 +In an element (KEY . VALUE), KEY is the person's name,
 +and the VALUE is a list of that person's pets."
 +  :type '(alist :value-type (repeat string)))
 +@end smallexample
 +
 +@item plist
 +The @code{plist} custom type is similar to the @code{alist} (see above),
 +except that the information is stored as a property list, i.e. a list of
 +this form:
 +
 +@smallexample
 +(@var{key} @var{value} @var{key} @var{value} @var{key} @var{value} @dots{})
 +@end smallexample
 +
 +The default @code{:key-type} for @code{plist} is @code{symbol},
 +rather than @code{sexp}.
 +
 +@item symbol
 +The value must be a symbol.  It appears in the customization buffer as
 +the name of the symbol.
 +
 +@item function
 +The value must be either a lambda expression or a function name.  When
 +it is a function name, you can do completion with @kbd{M-@key{TAB}}.
 +
 +@item variable
 +The value must be a variable name, and you can do completion with
 +@kbd{M-@key{TAB}}.
 +
 +@item face
 +The value must be a symbol which is a face name, and you can do
 +completion with @kbd{M-@key{TAB}}.
 +
 +@item boolean
 +The value is boolean---either @code{nil} or @code{t}.  Note that by
 +using @code{choice} and @code{const} together (see the next section),
 +you can specify that the value must be @code{nil} or @code{t}, but also
 +specify the text to describe each value in a way that fits the specific
 +meaning of the alternative.
 +
 +@item coding-system
 +The value must be a coding-system name, and you can do completion with
 +@kbd{M-@key{TAB}}.
 +
 +@item color
 +The value must be a valid color name, and you can do completion with
 +@kbd{M-@key{TAB}}.  A sample is provided.
 +@end table
 +
 +@node Composite Types
 +@subsection Composite Types
 +@cindex Composite Types (customization)
 +
 +  When none of the simple types is appropriate, you can use composite
 +types, which build new types from other types or from specified data.
 +The specified types or data are called the @dfn{arguments} of the
 +composite type.  The composite type normally looks like this:
 +
 +@example
 +(@var{constructor} @var{arguments}@dots{})
 +@end example
 +
 +@noindent
 +but you can also add keyword-value pairs before the arguments, like
 +this:
 +
 +@example
 +(@var{constructor} @r{@{}@var{keyword} @var{value}@r{@}}@dots{} @var{arguments}@dots{})
 +@end example
 +
 +  Here is a table of constructors and how to use them to write
 +composite types:
 +
 +@table @code
 +@item (cons @var{car-type} @var{cdr-type})
 +The value must be a cons cell, its @sc{car} must fit @var{car-type}, and
 +its @sc{cdr} must fit @var{cdr-type}.  For example, @code{(cons string
 +symbol)} is a customization type which matches values such as
 +@code{("foo" . foo)}.
 +
 +In the customization buffer, the @sc{car} and the @sc{cdr} are
 +displayed and edited separately, each according to the type
 +that you specify for it.
 +
 +@item (list @var{element-types}@dots{})
 +The value must be a list with exactly as many elements as the
 +@var{element-types} given; and each element must fit the
 +corresponding @var{element-type}.
 +
 +For example, @code{(list integer string function)} describes a list of
 +three elements; the first element must be an integer, the second a
 +string, and the third a function.
 +
 +In the customization buffer, each element is displayed and edited
 +separately, according to the type specified for it.
 +
 +@item (group @var{element-types}@dots{})
 +This works like @code{list} except for the formatting
 +of text in the Custom buffer.  @code{list} labels each
 +element value with its tag; @code{group} does not.
 +
 +@item (vector @var{element-types}@dots{})
 +Like @code{list} except that the value must be a vector instead of a
 +list.  The elements work the same as in @code{list}.
 +
 +@item (choice @var{alternative-types}@dots{})
 +The value must fit at least one of @var{alternative-types}.
 +For example, @code{(choice integer string)} allows either an
 +integer or a string.
 +
 +In the customization buffer, the user selects an alternative
 +using a menu, and can then edit the value in the usual way for that
 +alternative.
 +
 +Normally the strings in this menu are determined automatically from the
 +choices; however, you can specify different strings for the menu by
 +including the @code{:tag} keyword in the alternatives.  For example, if
 +an integer stands for a number of spaces, while a string is text to use
 +verbatim, you might write the customization type this way,
 +
 +@example
 +(choice (integer :tag "Number of spaces")
 +        (string :tag "Literal text"))
 +@end example
 +
 +@noindent
 +so that the menu offers @samp{Number of spaces} and @samp{Literal text}.
 +
 +In any alternative for which @code{nil} is not a valid value, other than
 +a @code{const}, you should specify a valid default for that alternative
 +using the @code{:value} keyword.  @xref{Type Keywords}.
 +
 +If some values are covered by more than one of the alternatives,
 +customize will choose the first alternative that the value fits.  This
 +means you should always list the most specific types first, and the
 +most general last.  Here's an example of proper usage:
 +
 +@example
 +(choice (const :tag "Off" nil)
 +        symbol (sexp :tag "Other"))
 +@end example
 +
 +@noindent
 +This way, the special value @code{nil} is not treated like other
 +symbols, and symbols are not treated like other Lisp expressions.
 +
 +@item (radio @var{element-types}@dots{})
 +This is similar to @code{choice}, except that the choices are displayed
 +using `radio buttons' rather than a menu.  This has the advantage of
 +displaying documentation for the choices when applicable and so is often
 +a good choice for a choice between constant functions
 +(@code{function-item} customization types).
 +
 +@item (const @var{value})
 +The value must be @var{value}---nothing else is allowed.
 +
 +The main use of @code{const} is inside of @code{choice}.  For example,
 +@code{(choice integer (const nil))} allows either an integer or
 +@code{nil}.
 +
 +@code{:tag} is often used with @code{const}, inside of @code{choice}.
 +For example,
 +
 +@example
 +(choice (const :tag "Yes" t)
 +        (const :tag "No" nil)
 +        (const :tag "Ask" foo))
 +@end example
 +
 +@noindent
 +describes a variable for which @code{t} means yes, @code{nil} means no,
 +and @code{foo} means ``ask.''
 +
 +@item (other @var{value})
 +This alternative can match any Lisp value, but if the user chooses this
 +alternative, that selects the value @var{value}.
 +
 +The main use of @code{other} is as the last element of @code{choice}.
 +For example,
 +
 +@example
 +(choice (const :tag "Yes" t)
 +        (const :tag "No" nil)
 +        (other :tag "Ask" foo))
 +@end example
 +
 +@noindent
 +describes a variable for which @code{t} means yes, @code{nil} means no,
 +and anything else means ``ask.''  If the user chooses @samp{Ask} from
 +the menu of alternatives, that specifies the value @code{foo}; but any
 +other value (not @code{t}, @code{nil} or @code{foo}) displays as
 +@samp{Ask}, just like @code{foo}.
 +
 +@item (function-item @var{function})
 +Like @code{const}, but used for values which are functions.  This
 +displays the documentation string as well as the function name.
 +The documentation string is either the one you specify with
 +@code{:doc}, or @var{function}'s own documentation string.
 +
 +@item (variable-item @var{variable})
 +Like @code{const}, but used for values which are variable names.  This
 +displays the documentation string as well as the variable name.  The
 +documentation string is either the one you specify with @code{:doc}, or
 +@var{variable}'s own documentation string.
 +
 +@item (set @var{types}@dots{})
 +The value must be a list, and each element of the list must match one of
 +the @var{types} specified.
 +
 +This appears in the customization buffer as a checklist, so that each of
 +@var{types} may have either one corresponding element or none.  It is
 +not possible to specify two different elements that match the same one
 +of @var{types}.  For example, @code{(set integer symbol)} allows one
 +integer and/or one symbol in the list; it does not allow multiple
 +integers or multiple symbols.  As a result, it is rare to use
 +nonspecific types such as @code{integer} in a @code{set}.
 +
 +Most often, the @var{types} in a @code{set} are @code{const} types, as
 +shown here:
 +
 +@example
 +(set (const :bold) (const :italic))
 +@end example
 +
 +Sometimes they describe possible elements in an alist:
 +
 +@example
 +(set (cons :tag "Height" (const height) integer)
 +     (cons :tag "Width" (const width) integer))
 +@end example
 +
 +@noindent
 +That lets the user specify a height value optionally
 +and a width value optionally.
 +
 +@item (repeat @var{element-type})
 +The value must be a list and each element of the list must fit the type
 +@var{element-type}.  This appears in the customization buffer as a
 +list of elements, with @samp{[INS]} and @samp{[DEL]} buttons for adding
 +more elements or removing elements.
 +
 +@item (restricted-sexp :match-alternatives @var{criteria})
 +This is the most general composite type construct.  The value may be
 +any Lisp object that satisfies one of @var{criteria}.  @var{criteria}
 +should be a list, and each element should be one of these
 +possibilities:
 +
 +@itemize @bullet
 +@item
 +A predicate---that is, a function of one argument that has no side
 +effects, and returns either @code{nil} or non-@code{nil} according to
 +the argument.  Using a predicate in the list says that objects for which
 +the predicate returns non-@code{nil} are acceptable.
 +
 +@item
 +A quoted constant---that is, @code{'@var{object}}.  This sort of element
 +in the list says that @var{object} itself is an acceptable value.
 +@end itemize
 +
 +For example,
 +
 +@example
 +(restricted-sexp :match-alternatives
 +                 (integerp 't 'nil))
 +@end example
 +
 +@noindent
 +allows integers, @code{t} and @code{nil} as legitimate values.
 +
 +The customization buffer shows all legitimate values using their read
 +syntax, and the user edits them textually.
 +@end table
 +
 +  Here is a table of the keywords you can use in keyword-value pairs
 +in a composite type:
 +
 +@table @code
 +@item :tag @var{tag}
 +Use @var{tag} as the name of this alternative, for user communication
 +purposes.  This is useful for a type that appears inside of a
 +@code{choice}.
 +
 +@item :match-alternatives @var{criteria}
 +@kindex match-alternatives@r{, customization keyword}
 +Use @var{criteria} to match possible values.  This is used only in
 +@code{restricted-sexp}.
 +
 +@item :args @var{argument-list}
 +@kindex args@r{, customization keyword}
 +Use the elements of @var{argument-list} as the arguments of the type
 +construct.  For instance, @code{(const :args (foo))} is equivalent to
 +@code{(const foo)}.  You rarely need to write @code{:args} explicitly,
 +because normally the arguments are recognized automatically as
 +whatever follows the last keyword-value pair.
 +@end table
 +
 +@node Splicing into Lists
 +@subsection Splicing into Lists
 +
 +  The @code{:inline} feature lets you splice a variable number of
 +elements into the middle of a list or vector.  You use it in a
 +@code{set}, @code{choice} or @code{repeat} type which appears among the
 +element-types of a @code{list} or @code{vector}.
 +
 +  Normally, each of the element-types in a @code{list} or @code{vector}
 +describes one and only one element of the list or vector.  Thus, if an
 +element-type is a @code{repeat}, that specifies a list of unspecified
 +length which appears as one element.
 +
 +  But when the element-type uses @code{:inline}, the value it matches is
 +merged directly into the containing sequence.  For example, if it
 +matches a list with three elements, those become three elements of the
 +overall sequence.  This is analogous to using @samp{,@@} in the backquote
 +construct.
 +
 +  For example, to specify a list whose first element must be @code{baz}
 +and whose remaining arguments should be zero or more of @code{foo} and
 +@code{bar}, use this customization type:
 +
 +@example
 +(list (const baz) (set :inline t (const foo) (const bar)))
 +@end example
 +
 +@noindent
 +This matches values such as @code{(baz)}, @code{(baz foo)}, @code{(baz bar)}
 +and @code{(baz foo bar)}.
 +
 +  When the element-type is a @code{choice}, you use @code{:inline} not
 +in the @code{choice} itself, but in (some of) the alternatives of the
 +@code{choice}.  For example, to match a list which must start with a
 +file name, followed either by the symbol @code{t} or two strings, use
 +this customization type:
 +
 +@example
 +(list file
 +      (choice (const t)
 +              (list :inline t string string)))
 +@end example
 +
 +@noindent
 +If the user chooses the first alternative in the choice, then the
 +overall list has two elements and the second element is @code{t}.  If
 +the user chooses the second alternative, then the overall list has three
 +elements and the second and third must be strings.
 +
 +@node Type Keywords
 +@subsection Type Keywords
 +
 +You can specify keyword-argument pairs in a customization type after the
 +type name symbol.  Here are the keywords you can use, and their
 +meanings:
 +
 +@table @code
 +@item :value @var{default}
 +This is used for a type that appears as an alternative inside of
 +@code{choice}; it specifies the default value to use, at first, if and
 +when the user selects this alternative with the menu in the
 +customization buffer.
 +
 +Of course, if the actual value of the option fits this alternative, it
 +will appear showing the actual value, not @var{default}.
 +
 +If @code{nil} is not a valid value for the alternative, then it is
 +essential to specify a valid default with @code{:value}.
 +
 +@item :format @var{format-string}
 +@kindex format@r{, customization keyword}
 +This string will be inserted in the buffer to represent the value
 +corresponding to the type.  The following @samp{%} escapes are available
 +for use in @var{format-string}:
 +
 +@table @samp
 +@item %[@var{button}%]
 +Display the text @var{button} marked as a button.  The @code{:action}
 +attribute specifies what the button will do if the user invokes it;
 +its value is a function which takes two arguments---the widget which
 +the button appears in, and the event.
 +
 +There is no way to specify two different buttons with different
 +actions.
 +
 +@item %@{@var{sample}%@}
 +Show @var{sample} in a special face specified by @code{:sample-face}.
 +
 +@item %v
 +Substitute the item's value.  How the value is represented depends on
 +the kind of item, and (for variables) on the customization type.
 +
 +@item %d
 +Substitute the item's documentation string.
 +
 +@item %h
 +Like @samp{%d}, but if the documentation string is more than one line,
 +add an active field to control whether to show all of it or just the
 +first line.
 +
 +@item %t
 +Substitute the tag here.  You specify the tag with the @code{:tag}
 +keyword.
 +
 +@item %%
 +Display a literal @samp{%}.
 +@end table
 +
 +@item :action @var{action}
 +@kindex action@r{, customization keyword}
 +Perform @var{action} if the user clicks on a button.
 +
 +@item :button-face @var{face}
 +@kindex button-face@r{, customization keyword}
 +Use the face @var{face} (a face name or a list of face names) for button
 +text displayed with @samp{%[@dots{}%]}.
 +
 +@item :button-prefix @var{prefix}
 +@itemx :button-suffix @var{suffix}
 +@kindex button-prefix@r{, customization keyword}
 +@kindex button-suffix@r{, customization keyword}
 +These specify the text to display before and after a button.
 +Each can be:
 +
 +@table @asis
 +@item @code{nil}
 +No text is inserted.
 +
 +@item a string
 +The string is inserted literally.
 +
 +@item a symbol
 +The symbol's value is used.
 +@end table
 +
 +@item :tag @var{tag}
 +Use @var{tag} (a string) as the tag for the value (or part of the value)
 +that corresponds to this type.
 +
 +@item :doc @var{doc}
 +@kindex doc@r{, customization keyword}
 +Use @var{doc} as the documentation string for this value (or part of the
 +value) that corresponds to this type.  In order for this to work, you
 +must specify a value for @code{:format}, and use @samp{%d} or @samp{%h}
 +in that value.
 +
 +The usual reason to specify a documentation string for a type is to
 +provide more information about the meanings of alternatives inside a
 +@code{:choice} type or the parts of some other composite type.
 +
 +@item :help-echo @var{motion-doc}
 +@kindex help-echo@r{, customization keyword}
 +When you move to this item with @code{widget-forward} or
 +@code{widget-backward}, it will display the string @var{motion-doc} in
 +the echo area.  In addition, @var{motion-doc} is used as the mouse
 +@code{help-echo} string and may actually be a function or form evaluated
 +to yield a help string.  If it is a function, it is called with one
 +argument, the widget.
 +
 +@item :match @var{function}
 +@kindex match@r{, customization keyword}
 +Specify how to decide whether a value matches the type.  The
 +corresponding value, @var{function}, should be a function that accepts
 +two arguments, a widget and a value; it should return non-@code{nil} if
 +the value is acceptable.
 +
++@item :validate @var{function}
++Specify a validation function for input.  @var{function} takes a
++widget as an argument, and should return @code{nil} if the widget's
++current value is valid for the widget.  Otherwise, it should return
++the widget containing the invalid data, and set that widget's
++@code{:error} property to a string explaining the error.
++
++In many cases you can use the function @code{widget-children-validate}
++for this job; it tests that all children of @var{widget} are valid.
++
 +@ignore
 +@item :indent @var{columns}
 +Indent this item by @var{columns} columns.  The indentation is used for
 +@samp{%n}, and automatically for group names, for checklists and radio
 +buttons, and for editable lists.  It affects the whole of the
 +item except for the first line.
 +
- @item :extra-offset
- An integer indicating how many extra spaces to add to this item's
- indentation, compared to its parent.
++@item :offset @var{extra}
++Indent the subitems of this item @var{extra} columns more than this
++item itself.  By default, subitems are indented the same as their
++parent.
 +
- @item :notify
- A function called each time the item or a subitem is changed.  The
- function is called with two or three arguments.  The first argument is
- the item itself, the second argument is the item that was changed, and
- the third argument is the event leading to the change, if any.
++@item :extra-offset @var{n}
++Add @var{n} extra spaces to this item's indentation, compared to its
++parent's indentation.
 +
- @item :menu-tag
- A tag used in the menu when the widget is used as an option in a
- @code{menu-choice} widget.
++@item :notify @var{function}
++Call @var{function} each time the item or a subitem is changed.  The
++function gets two or three arguments.  The first argument is the item
++itself, the second argument is the item that was changed, and the
++third argument is the event leading to the change, if any.
 +
- @item :validate
- A function which takes a widget as an argument, and return @code{nil}
- if the widget's current value is valid for the widget.  Otherwise, it
- should return the widget containing the invalid data, and set that
- widget's @code{:error} property to a string explaining the error.
- You can use the function @code{widget-children-validate} for this job;
- it tests that all children of @var{widget} are valid.
++@item :menu-tag @var{tag-string}
++Use @var{tag-string} in the menu when the widget is used as an option
++in a @code{menu-choice} widget.
 +
 +@item :menu-tag-get
 +A function used for finding the tag when the widget is used as an option
 +in a @code{menu-choice} widget.  By default, the tag used will be either the
 +@code{:menu-tag} or @code{:tag} property if present, or the @code{princ}
 +representation of the @code{:value} property if not.
 +
 +@item :tab-order
 +Specify the order in which widgets are traversed with
 +@code{widget-forward} or @code{widget-backward}.  This is only partially
 +implemented.
 +
 +@enumerate a
 +@item
 +Widgets with tabbing order @code{-1} are ignored.
 +
 +@item
 +(Unimplemented) When on a widget with tabbing order @var{n}, go to the
 +next widget in the buffer with tabbing order @var{n+1} or @code{nil},
 +whichever comes first.
 +
 +@item
 +When on a widget with no tabbing order specified, go to the next widget
 +in the buffer with a positive tabbing order, or @code{nil}
 +@end enumerate
 +
 +@item :parent
 +The parent of a nested widget (e.g., a @code{menu-choice} item or an
 +element of a @code{editable-list} widget).
 +
 +@item :sibling-args
 +This keyword is only used for members of a @code{radio-button-choice} or
 +@code{checklist}.  The value should be a list of extra keyword
 +arguments, which will be used when creating the @code{radio-button} or
 +@code{checkbox} associated with this item.
 +@end ignore
 +@end table
 +
 +@node Defining New Types
 +@subsection Defining New Types
 +
 +In the previous sections we have described how to construct elaborate
 +type specifications for @code{defcustom}.  In some cases you may want
 +to give such a type specification a name.  The obvious case is when
 +you are using the same type for many user options: rather than repeat
 +the specification for each option, you can give the type specification
 +a name, and use that name each @code{defcustom}.  The other case is
 +when a user option's value is a recursive data structure.  To make it
 +possible for a datatype to refer to itself, it needs to have a name.
 +
 +Since custom types are implemented as widgets, the way to define a new
 +customize type is to define a new widget.  We are not going to describe
 +the widget interface here in details, see @ref{Top, , Introduction,
 +widget, The Emacs Widget Library}, for that.  Instead we are going to
 +demonstrate the minimal functionality needed for defining new customize
 +types by a simple example.
 +
 +@example
 +(define-widget 'binary-tree-of-string 'lazy
 +  "A binary tree made of cons-cells and strings."
 +  :offset 4
 +  :tag "Node"
 +  :type '(choice (string :tag "Leaf" :value "")
 +                 (cons :tag "Interior"
 +                       :value ("" . "")
 +                       binary-tree-of-string
 +                       binary-tree-of-string)))
 +
 +(defcustom foo-bar ""
 +  "Sample variable holding a binary tree of strings."
 +  :type 'binary-tree-of-string)
 +@end example
 +
 +The function to define a new widget is called @code{define-widget}.  The
 +first argument is the symbol we want to make a new widget type.  The
 +second argument is a symbol representing an existing widget, the new
 +widget is going to be defined in terms of difference from the existing
 +widget.  For the purpose of defining new customization types, the
 +@code{lazy} widget is perfect, because it accepts a @code{:type} keyword
 +argument with the same syntax as the keyword argument to
 +@code{defcustom} with the same name.  The third argument is a
 +documentation string for the new widget.  You will be able to see that
 +string with the @kbd{M-x widget-browse @key{RET} binary-tree-of-string
 +@key{RET}} command.
 +
 +After these mandatory arguments follow the keyword arguments.  The most
 +important is @code{:type}, which describes the data type we want to match
 +with this widget.  Here a @code{binary-tree-of-string} is described as
 +being either a string, or a cons-cell whose car and cdr are themselves
 +both @code{binary-tree-of-string}.  Note the reference to the widget
 +type we are currently in the process of defining.  The @code{:tag}
 +attribute is a string to name the widget in the user interface, and the
 +@code{:offset} argument is there to ensure that child nodes are
 +indented four spaces relative to the parent node, making the tree
 +structure apparent in the customization buffer.
 +
 +The @code{defcustom} shows how the new widget can be used as an ordinary
 +customization type.
 +
 +The reason for the name @code{lazy} is that the other composite
 +widgets convert their inferior widgets to internal form when the
 +widget is instantiated in a buffer.  This conversion is recursive, so
 +the inferior widgets will convert @emph{their} inferior widgets.  If
 +the data structure is itself recursive, this conversion is an infinite
 +recursion.  The @code{lazy} widget prevents the recursion: it convert
 +its @code{:type} argument only when needed.
 +
 +@ignore
 +   arch-tag: d1b8fad3-f48c-4ce4-a402-f73b5ef19bd2
 +@end ignore
index cd29d44ab76c74d517d426b6027516511e330c0c,0000000000000000000000000000000000000000..ab9a6e8291c2c40732ce6dcba02426a920b69bf9
mode 100644,000000..100644
--- /dev/null
@@@ -1,2217 -1,0 +1,2223 @@@
- If a frame has a non-@code{nil} title, it appears in the window system's
- border for the frame, and also in the mode line of windows in that frame
- if @code{mode-line-frame-identification} uses @samp{%F}
- (@pxref{%-Constructs}).  This is normally the case when Emacs is not
- using a window system, and can only display one frame at a time.
- @xref{Frame Titles}.
 +@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  Free Software Foundation, Inc.
 +@c See the file elisp.texi for copying conditions.
 +@setfilename ../../info/frames
 +@node Frames, Positions, Windows, Top
 +@chapter Frames
 +@cindex frame
 +
 +  In Emacs editing, A @dfn{frame} is a screen object that contains one
 +or more Emacs windows.  It's the kind of object that is called a
 +``window'' in the terminology of graphical environments; but we can't
 +call it a ``window'' here, because Emacs uses that word in a different
 +way.
 +
 +  A frame initially contains a single main window and/or a minibuffer
 +window; you can subdivide the main window vertically or horizontally
 +into smaller windows.  In Emacs Lisp, a @dfn{frame object} is a Lisp
 +object that represents a frame on the screen.
 +
 +@cindex terminal frame
 +  When Emacs runs on a text-only terminal, it starts with one
 +@dfn{terminal frame}.  If you create additional ones, Emacs displays
 +one and only one at any given time---on the terminal screen, of course.
 +
 +@cindex window frame
 +  When Emacs communicates directly with a supported window system, such
 +as X, it does not have a terminal frame; instead, it starts with
 +a single @dfn{window frame}, but you can create more, and Emacs can
 +display several such frames at once as is usual for window systems.
 +
 +@defun framep object
 +This predicate returns a non-@code{nil} value if @var{object} is a
 +frame, and @code{nil} otherwise.  For a frame, the value indicates which
 +kind of display the frame uses:
 +
 +@table @code
 +@item x
 +The frame is displayed in an X window.
 +@item t
 +A terminal frame on a character display.
 +@item mac
 +The frame is displayed on a Macintosh.
 +@item w32
 +The frame is displayed on MS-Windows 9X/NT.
 +@item pc
 +The frame is displayed on an MS-DOS terminal.
 +@end table
 +@end defun
 +
 +@menu
 +* Creating Frames::           Creating additional frames.
 +* Multiple Displays::           Creating frames on other displays.
 +* Frame Parameters::          Controlling frame size, position, font, etc.
 +* Frame Titles::                Automatic updating of frame titles.
 +* Deleting Frames::           Frames last until explicitly deleted.
 +* Finding All Frames::                How to examine all existing frames.
 +* Frames and Windows::                A frame contains windows;
 +                                display of text always works through windows.
 +* Minibuffers and Frames::    How a frame finds the minibuffer to use.
 +* Input Focus::                       Specifying the selected frame.
 +* Visibility of Frames::      Frames may be visible or invisible, or icons.
 +* Raising and Lowering::      Raising a frame makes it hide other windows;
 +                                lowering it makes the others hide it.
 +* Frame Configurations::      Saving the state of all frames.
 +* Mouse Tracking::            Getting events that say when the mouse moves.
 +* Mouse Position::            Asking where the mouse is, or moving it.
 +* Pop-Up Menus::              Displaying a menu for the user to select from.
 +* Dialog Boxes::                Displaying a box to ask yes or no.
 +* Pointer Shape::               Specifying the shape of the mouse pointer.
 +* Window System Selections::    Transferring text to and from other X clients.
 +* Drag and Drop::               Internals of Drag-and-Drop implementation.
 +* Color Names::                       Getting the definitions of color names.
 +* Text Terminal Colors::        Defining colors for text-only terminals.
 +* Resources::                 Getting resource values from the server.
 +* Display Feature Testing::     Determining the features of a terminal.
 +@end menu
 +
 +  @xref{Display}, for information about the related topic of
 +controlling Emacs redisplay.
 +
 +@node Creating Frames
 +@section Creating Frames
 +
 +To create a new frame, call the function @code{make-frame}.
 +
 +@defun make-frame &optional alist
 +This function creates and returns a new frame, displaying the current
 +buffer.  If you are using a supported window system, it makes a window
 +frame; otherwise, it makes a terminal frame.
 +
 +The argument is an alist specifying frame parameters.  Any parameters
 +not mentioned in @var{alist} default according to the value of the
 +variable @code{default-frame-alist}; parameters not specified even there
 +default from the standard X resources or whatever is used instead on
 +your system.
 +
 +The set of possible parameters depends in principle on what kind of
 +window system Emacs uses to display its frames.  @xref{Window Frame
 +Parameters}, for documentation of individual parameters you can specify.
 +
 +This function itself does not make the new frame the selected frame.
 +@xref{Input Focus}.  The previously selected frame remains selected.
 +However, the window system may select the new frame for its own reasons,
 +for instance if the frame appears under the mouse pointer and your
 +setup is for focus to follow the pointer.
 +@end defun
 +
 +@defvar before-make-frame-hook
 +A normal hook run by @code{make-frame} before it actually creates the
 +frame.
 +@end defvar
 +
 +@defvar after-make-frame-functions
 +An abnormal hook run by @code{make-frame} after it creates the frame.
 +Each function in @code{after-make-frame-functions} receives one argument, the
 +frame just created.
 +@end defvar
 +
 +@node Multiple Displays
 +@section Multiple Displays
 +@cindex multiple X displays
 +@cindex displays, multiple
 +
 +  A single Emacs can talk to more than one X display.
 +Initially, Emacs uses just one display---the one chosen with the
 +@code{DISPLAY} environment variable or with the @samp{--display} option
 +(@pxref{Initial Options,,, emacs, The GNU Emacs Manual}).  To connect to
 +another display, use the command @code{make-frame-on-display} or specify
 +the @code{display} frame parameter when you create the frame.
 +
 +  Emacs treats each X server as a separate terminal, giving each one its
 +own selected frame and its own minibuffer windows.  However, only one of
 +those frames is ``@emph{the} selected frame'' at any given moment, see
 +@ref{Input Focus}.
 +
 +  A few Lisp variables are @dfn{terminal-local}; that is, they have a
 +separate binding for each terminal.  The binding in effect at any time
 +is the one for the terminal that the currently selected frame belongs
 +to.  These variables include @code{default-minibuffer-frame},
 +@code{defining-kbd-macro}, @code{last-kbd-macro}, and
 +@code{system-key-alist}.  They are always terminal-local, and can never
 +be buffer-local (@pxref{Buffer-Local Variables}).
 +
 +  A single X server can handle more than one screen.  A display name
 +@samp{@var{host}:@var{server}.@var{screen}} has three parts; the last
 +part specifies the screen number for a given server.  When you use two
 +screens belonging to one server, Emacs knows by the similarity in their
 +names that they share a single keyboard, and it treats them as a single
 +terminal.
 +
 +  Note that some graphical terminals can output to more than a one
 +monitor (or other output device) at the same time.  On these
 +``multi-monitor'' setups, a single @var{display} value controls the
 +output to all the physical monitors.  In this situation, there is
 +currently no platform-independent way for Emacs to distinguish between
 +the different physical monitors.
 +
 +@deffn Command make-frame-on-display display &optional parameters
 +This creates and returns a new frame on display @var{display}, taking
 +the other frame parameters from @var{parameters}.  Aside from the
 +@var{display} argument, it is like @code{make-frame} (@pxref{Creating
 +Frames}).
 +@end deffn
 +
 +@defun x-display-list
 +This returns a list that indicates which X displays Emacs has a
 +connection to.  The elements of the list are strings, and each one is
 +a display name.
 +@end defun
 +
 +@defun x-open-connection display &optional xrm-string must-succeed
 +This function opens a connection to the X display @var{display}.  It
 +does not create a frame on that display, but it permits you to check
 +that communication can be established with that display.
 +
 +The optional argument @var{xrm-string}, if not @code{nil}, is a
 +string of resource names and values, in the same format used in the
 +@file{.Xresources} file.  The values you specify override the resource
 +values recorded in the X server itself; they apply to all Emacs frames
 +created on this display.  Here's an example of what this string might
 +look like:
 +
 +@example
 +"*BorderWidth: 3\n*InternalBorder: 2\n"
 +@end example
 +
 +@xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
 +
 +If @var{must-succeed} is non-@code{nil}, failure to open the connection
 +terminates Emacs.  Otherwise, it is an ordinary Lisp error.
 +@end defun
 +
 +@defun x-close-connection display
 +This function closes the connection to display @var{display}.  Before
 +you can do this, you must first delete all the frames that were open on
 +that display (@pxref{Deleting Frames}).
 +@end defun
 +
 +@node Frame Parameters
 +@section Frame Parameters
 +@cindex frame parameters
 +
 +  A frame has many parameters that control its appearance and behavior.
 +Just what parameters a frame has depends on what display mechanism it
 +uses.
 +
 +  Frame parameters exist mostly for the sake of window systems.  A
 +terminal frame has a few parameters, mostly for compatibility's sake;
 +only the @code{height}, @code{width}, @code{name}, @code{title},
 +@code{menu-bar-lines}, @code{buffer-list} and @code{buffer-predicate}
 +parameters do something special.  If the terminal supports colors, the
 +parameters @code{foreground-color}, @code{background-color},
 +@code{background-mode} and @code{display-type} are also meaningful.
 +
 +@menu
 +* Parameter Access::       How to change a frame's parameters.
 +* Initial Parameters::           Specifying frame parameters when you make a frame.
 +* Window Frame Parameters:: List of frame parameters for window systems.
 +* Size and Position::      Changing the size and position of a frame.
 +* Geometry::               Parsing geometry specifications.
 +@end menu
 +
 +@node Parameter Access
 +@subsection Access to Frame Parameters
 +
 +These functions let you read and change the parameter values of a
 +frame.
 +
 +@defun frame-parameter frame parameter
 +This function returns the value of the parameter @var{parameter} (a
 +symbol) of @var{frame}.  If @var{frame} is @code{nil}, it returns the
 +selected frame's parameter.  If @var{frame} has no setting for
 +@var{parameter}, this function returns @code{nil}.
 +@end defun
 +
 +@defun frame-parameters &optional frame
 +The function @code{frame-parameters} returns an alist listing all the
 +parameters of @var{frame} and their values.  If @var{frame} is
 +@code{nil} or omitted, this returns the selected frame's parameters
 +@end defun
 +
 +@defun modify-frame-parameters frame alist
 +This function alters the parameters of frame @var{frame} based on the
 +elements of @var{alist}.  Each element of @var{alist} has the form
 +@code{(@var{parm} . @var{value})}, where @var{parm} is a symbol naming a
 +parameter.  If you don't mention a parameter in @var{alist}, its value
 +doesn't change.  If @var{frame} is @code{nil}, it defaults to the selected
 +frame.
 +@end defun
 +
 +@defun modify-all-frames-parameters alist
 +This function alters the frame parameters of all existing frames
 +according to @var{alist}, then modifies @code{default-frame-alist}
 +(and, if necessary, @code{initial-frame-alist}) to apply the same
 +parameter values to frames that will be created henceforth.
 +@end defun
 +
 +@node Initial Parameters
 +@subsection Initial Frame Parameters
 +
 +You can specify the parameters for the initial startup frame
 +by setting @code{initial-frame-alist} in your init file (@pxref{Init File}).
 +
 +@defvar initial-frame-alist
 +This variable's value is an alist of parameter values used when creating
 +the initial window frame.  You can set this variable to specify the
 +appearance of the initial frame without altering subsequent frames.
 +Each element has the form:
 +
 +@example
 +(@var{parameter} . @var{value})
 +@end example
 +
 +Emacs creates the initial frame before it reads your init
 +file.  After reading that file, Emacs checks @code{initial-frame-alist},
 +and applies the parameter settings in the altered value to the already
 +created initial frame.
 +
 +If these settings affect the frame geometry and appearance, you'll see
 +the frame appear with the wrong ones and then change to the specified
 +ones.  If that bothers you, you can specify the same geometry and
 +appearance with X resources; those do take effect before the frame is
 +created.  @xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
 +
 +X resource settings typically apply to all frames.  If you want to
 +specify some X resources solely for the sake of the initial frame, and
 +you don't want them to apply to subsequent frames, here's how to achieve
 +this.  Specify parameters in @code{default-frame-alist} to override the
 +X resources for subsequent frames; then, to prevent these from affecting
 +the initial frame, specify the same parameters in
 +@code{initial-frame-alist} with values that match the X resources.
 +@end defvar
 +
 +If these parameters specify a separate minibuffer-only frame with
 +@code{(minibuffer . nil)}, and you have not created one, Emacs creates
 +one for you.
 +
 +@defvar minibuffer-frame-alist
 +This variable's value is an alist of parameter values used when creating
 +an initial minibuffer-only frame---if such a frame is needed, according
 +to the parameters for the main initial frame.
 +@end defvar
 +
 +@defvar default-frame-alist
 +This is an alist specifying default values of frame parameters for all
 +Emacs frames---the first frame, and subsequent frames.  When using the X
 +Window System, you can get the same results by means of X resources
 +in many cases.
 +
 +Setting this variable does not affect existing frames.
 +@end defvar
 +
 +See also @code{special-display-frame-alist}.  @xref{Definition of
 +special-display-frame-alist}.
 +
 +If you use options that specify window appearance when you invoke Emacs,
 +they take effect by adding elements to @code{default-frame-alist}.  One
 +exception is @samp{-geometry}, which adds the specified position to
 +@code{initial-frame-alist} instead.  @xref{Emacs Invocation,, Command
 +Line Arguments for Emacs Invocation, emacs, The GNU Emacs Manual}.
 +
 +@node Window Frame Parameters
 +@subsection Window Frame Parameters
 +
 +  Just what parameters a frame has depends on what display mechanism
 +it uses.  This section describes the parameters that have special
 +meanings on some or all kinds of terminals.  Of these, @code{name},
 +@code{title}, @code{height}, @code{width}, @code{buffer-list} and
 +@code{buffer-predicate} provide meaningful information in terminal
 +frames, and @code{tty-color-mode} is meaningful @emph{only} in
 +terminal frames.
 +
 +@menu
 +* Basic Parameters::            Parameters that are fundamental.
 +* Position Parameters::         The position of the frame on the screen.
 +* Size Parameters::             Frame's size.
 +* Layout Parameters::           Size of parts of the frame, and
 +                                  enabling or disabling some parts.
 +* Buffer Parameters::           Which buffers have been or should be shown.
 +* Management Parameters::       Communicating with the window manager.
 +* Cursor Parameters::           Controlling the cursor appearance.
 +* Color Parameters::            Colors of various parts of the frame.
 +@end menu
 +
 +@node Basic Parameters
 +@subsubsection Basic Parameters
 +
 +  These frame parameters give the most basic information about the
 +frame.  @code{title} and @code{name} are meaningful on all terminals.
 +
 +@table @code
 +@item display
 +The display on which to open this frame.  It should be a string of the
 +form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the
 +@code{DISPLAY} environment variable.
 +
 +@item display-type
 +This parameter describes the range of possible colors that can be used
 +in this frame.  Its value is @code{color}, @code{grayscale} or
 +@code{mono}.
 +
 +@item title
- The width of the frame contents, in characters.  (To get the height in
++If a frame has a non-@code{nil} title, it appears in the window
++system's title bar at the top of the frame, and also in the mode line
++of windows in that frame if @code{mode-line-frame-identification} uses
++@samp{%F} (@pxref{%-Constructs}).  This is normally the case when
++Emacs is not using a window system, and can only display one frame at
++a time.  @xref{Frame Titles}.
 +
 +@item name
 +The name of the frame.  The frame name serves as a default for the frame
 +title, if the @code{title} parameter is unspecified or @code{nil}.  If
 +you don't specify a name, Emacs sets the frame name automatically
 +(@pxref{Frame Titles}).
 +
 +If you specify the frame name explicitly when you create the frame, the
 +name is also used (instead of the name of the Emacs executable) when
 +looking up X resources for the frame.
 +
 +@item display-environment-variable
 +The value of the @code{DISPLAY} environment variable for the frame. It
 +is passed to child processes.
 +
 +@item term-environment-variable
 +The value of the @code{TERM} environment variable for the frame. It
 +is passed to child processes.
 +@end table
 +
 +@node Position Parameters
 +@subsubsection Position Parameters
 +
 +  Position parameters' values are normally measured in pixels, but on
 +text-only terminals they count characters or lines instead.
 +
 +@table @code
 +@item left
 +The screen position of the left edge, in pixels, with respect to the
 +left edge of the screen.  The value may be a positive number @var{pos},
 +or a list of the form @code{(+ @var{pos})} which permits specifying a
 +negative @var{pos} value.
 +
 +A negative number @minus{}@var{pos}, or a list of the form @code{(-
 +@var{pos})}, actually specifies the position of the right edge of the
 +window with respect to the right edge of the screen.  A positive value
 +of @var{pos} counts toward the left.  @strong{Reminder:} if the
 +parameter is a negative integer @minus{}@var{pos}, then @var{pos} is
 +positive.
 +
 +Some window managers ignore program-specified positions.  If you want to
 +be sure the position you specify is not ignored, specify a
 +non-@code{nil} value for the @code{user-position} parameter as well.
 +
 +@item top
 +The screen position of the top edge, in pixels, with respect to the
 +top edge of the screen.  It works just like @code{left}, except vertically
 +instead of horizontally.
 +
 +@item icon-left
 +The screen position of the left edge @emph{of the frame's icon}, in
 +pixels, counting from the left edge of the screen.  This takes effect if
 +and when the frame is iconified.
 +
 +If you specify a value for this parameter, then you must also specify
 +a value for @code{icon-top} and vice versa.  The window manager may
 +ignore these two parameters.
 +
 +@item icon-top
 +The screen position of the top edge @emph{of the frame's icon}, in
 +pixels, counting from the top edge of the screen.  This takes effect if
 +and when the frame is iconified.
 +
 +@item user-position
 +When you create a frame and specify its screen position with the
 +@code{left} and @code{top} parameters, use this parameter to say whether
 +the specified position was user-specified (explicitly requested in some
 +way by a human user) or merely program-specified (chosen by a program).
 +A non-@code{nil} value says the position was user-specified.
 +
 +Window managers generally heed user-specified positions, and some heed
 +program-specified positions too.  But many ignore program-specified
 +positions, placing the window in a default fashion or letting the user
 +place it with the mouse.  Some window managers, including @code{twm},
 +let the user specify whether to obey program-specified positions or
 +ignore them.
 +
 +When you call @code{make-frame}, you should specify a non-@code{nil}
 +value for this parameter if the values of the @code{left} and @code{top}
 +parameters represent the user's stated preference; otherwise, use
 +@code{nil}.
 +@end table
 +
 +@node Size Parameters
 +@subsubsection Size Parameters
 +
 +  Size parameters' values are normally measured in pixels, but on
 +text-only terminals they count characters or lines instead.
 +
 +@table @code
 +@item height
 +The height of the frame contents, in characters.  (To get the height in
 +pixels, call @code{frame-pixel-height}; see @ref{Size and Position}.)
 +
 +@item width
- These functions return the height and width of @var{frame}, measured in
- pixels.  If you don't supply @var{frame}, they use the selected frame.
++The width of the frame contents, in characters.  (To get the width in
 +pixels, call @code{frame-pixel-width}; see @ref{Size and Position}.)
 +
 +@item user-size
 +This does for the size parameters @code{height} and @code{width} what
 +the @code{user-position} parameter (see above) does for the position
 +parameters @code{top} and @code{left}.
 +
 +@item fullscreen
 +Specify that width, height or both shall be set to the size of the screen.
 +The value @code{fullwidth} specifies that width shall be the size of the
 +screen.  The value @code{fullheight} specifies that height shall be the
 +size of the screen.  The value @code{fullboth} specifies that both the
 +width and the height shall be set to the size of the screen.
 +@end table
 +
 +@node Layout Parameters
 +@subsubsection Layout Parameters
 +
 +  These frame parameters enable or disable various parts of the
 +frame, or control their sizes.
 +
 +@table @code
 +@item border-width
 +The width in pixels of the frame's border.
 +
 +@item internal-border-width
 +The distance in pixels between text (or fringe) and the frame's border.
 +
 +@item vertical-scroll-bars
 +Whether the frame has scroll bars for vertical scrolling, and which side
 +of the frame they should be on.  The possible values are @code{left},
 +@code{right}, and @code{nil} for no scroll bars.
 +
 +@ignore
 +@item horizontal-scroll-bars
 +Whether the frame has scroll bars for horizontal scrolling
 +(non-@code{nil} means yes).  Horizontal scroll bars are not currently
 +implemented.
 +@end ignore
 +
 +@item scroll-bar-width
 +The width of vertical scroll bars, in pixels, or @code{nil} meaning to
 +use the default width.
 +
 +@item left-fringe
 +@itemx right-fringe
 +The default width of the left and right fringes of windows in this
 +frame (@pxref{Fringes}).  If either of these is zero, that effectively
 +removes the corresponding fringe.  A value of @code{nil} stands for
 +the standard fringe width, which is the width needed to display the
 +fringe bitmaps.
 +
 +The combined fringe widths must add up to an integral number of
 +columns, so the actual default fringe widths for the frame may be
 +larger than the specified values.  The extra width needed to reach an
 +acceptable total is distributed evenly between the left and right
 +fringe.  However, you can force one fringe or the other to a precise
 +width by specifying that width as a negative integer.  If both widths are
 +negative, only the left fringe gets the specified width.
 +
 +@item menu-bar-lines
 +The number of lines to allocate at the top of the frame for a menu
 +bar.  The default is 1.  A value of @code{nil} means don't display a
 +menu bar.  @xref{Menu Bar}.  (The X toolkit and GTK allow at most one
 +menu bar line; they treat larger values as 1.)
 +
 +@item tool-bar-lines
 +The number of lines to use for the tool bar.  A value of @code{nil}
 +means don't display a tool bar.  (GTK allows at most one tool bar line;
 +it treats larger values as 1.)
 +
 +@item line-spacing
 +Additional space to leave below each text line, in pixels (a positive
 +integer).  @xref{Line Height}, for more information.
 +@end table
 +
 +@node Buffer Parameters
 +@subsubsection Buffer Parameters
 +
 +  These frame parameters, meaningful on all kinds of terminals, deal
 +with which buffers have been, or should, be displayed in the frame.
 +
 +@table @code
 +@item minibuffer
 +Whether this frame has its own minibuffer.  The value @code{t} means
 +yes, @code{nil} means no, @code{only} means this frame is just a
 +minibuffer.  If the value is a minibuffer window (in some other frame),
 +the new frame uses that minibuffer.
 +
 +@item buffer-predicate
 +The buffer-predicate function for this frame.  The function
 +@code{other-buffer} uses this predicate (from the selected frame) to
 +decide which buffers it should consider, if the predicate is not
 +@code{nil}.  It calls the predicate with one argument, a buffer, once for
 +each buffer; if the predicate returns a non-@code{nil} value, it
 +considers that buffer.
 +
 +@item buffer-list
 +A list of buffers that have been selected in this frame,
 +ordered most-recently-selected first.
 +
 +@item unsplittable
 +If non-@code{nil}, this frame's window is never split automatically.
 +@end table
 +
 +@node Management Parameters
 +@subsubsection Window Management Parameters
 +@cindex window manager, and frame parameters
 +
 +  These frame parameters, meaningful only on window system displays,
 +interact with the window manager.
 +
 +@table @code
 +@item visibility
 +The state of visibility of the frame.  There are three possibilities:
 +@code{nil} for invisible, @code{t} for visible, and @code{icon} for
 +iconified.  @xref{Visibility of Frames}.
 +
 +@item auto-raise
 +Whether selecting the frame raises it (non-@code{nil} means yes).
 +
 +@item auto-lower
 +Whether deselecting the frame lowers it (non-@code{nil} means yes).
 +
 +@item icon-type
 +The type of icon to use for this frame when it is iconified.  If the
 +value is a string, that specifies a file containing a bitmap to use.
 +Any other non-@code{nil} value specifies the default bitmap icon (a
 +picture of a gnu); @code{nil} specifies a text icon.
 +
 +@item icon-name
 +The name to use in the icon for this frame, when and if the icon
 +appears.  If this is @code{nil}, the frame's title is used.
 +
 +@item window-id
 +The number of the window-system window used by the frame
 +to contain the actual Emacs windows.
 +
 +@item outer-window-id
 +The number of the outermost window-system window used for the whole frame.
 +
 +@item wait-for-wm
 +If non-@code{nil}, tell Xt to wait for the window manager to confirm
 +geometry changes.  Some window managers, including versions of Fvwm2
 +and KDE, fail to confirm, so Xt hangs.  Set this to @code{nil} to
 +prevent hanging with those window managers.
 +
 +@ignore
 +@item parent-id
 +@c ??? Not yet working.
 +The X window number of the window that should be the parent of this one.
 +Specifying this lets you create an Emacs window inside some other
 +application's window.  (It is not certain this will be implemented; try
 +it and see if it works.)
 +@end ignore
 +@end table
 +
 +@node Cursor Parameters
 +@subsubsection Cursor Parameters
 +
 +  This frame parameter controls the way the cursor looks.
 +
 +@table @code
 +@item cursor-type
 +How to display the cursor.  Legitimate values are:
 +
 +@table @code
 +@item box
 +Display a filled box.  (This is the default.)
 +@item hollow
 +Display a hollow box.
 +@item nil
 +Don't display a cursor.
 +@item bar
 +Display a vertical bar between characters.
 +@item (bar . @var{width})
 +Display a vertical bar @var{width} pixels wide between characters.
 +@item hbar
 +Display a horizontal bar.
 +@item (hbar . @var{height})
 +Display a horizontal bar @var{height} pixels high.
 +@end table
 +@end table
 +
 +@vindex cursor-type
 +The buffer-local variable @code{cursor-type} overrides the value of
 +the @code{cursor-type} frame parameter, but if it is @code{t}, that
 +means to use the cursor specified for the frame.
 +
 +@defvar blink-cursor-alist
 +This variable specifies how to blink the cursor.  Each element has the
 +form @code{(@var{on-state} . @var{off-state})}.  Whenever the cursor
 +type equals @var{on-state} (comparing using @code{equal}), the
 +corresponding @var{off-state} specifies what the cursor looks like
 +when it blinks ``off.''  Both @var{on-state} and @var{off-state}
 +should be suitable values for the @code{cursor-type} frame parameter.
 +
 +There are various defaults for how to blink each type of cursor, if
 +the type is not mentioned as an @var{on-state} here.  Changes in this
 +variable do not take effect immediately, only when you specify the
 +@code{cursor-type} frame parameter.
 +@end defvar
 +
 +@defvar cursor-in-non-selected-windows
 +This variable controls how the cursor looks in a window that is not
 +selected.  It supports the same values as the @code{cursor-type} frame
 +parameter; also, @code{nil} means don't display a cursor in
 +nonselected windows, and @code{t} (the default) means use a standard
 +modificatoin of the usual cursor type (solid box becomes hollow box,
 +and bar becomes a narrower bar).
 +@end defvar
 +
 +@node Color Parameters
 +@subsubsection Color Parameters
 +
 +  These frame parameters control the use of colors.
 +
 +@table @code
 +@item background-mode
 +This parameter is either @code{dark} or @code{light}, according
 +to whether the background color is a light one or a dark one.
 +
 +@item tty-color-mode
 +@cindex standard colors for character terminals
 +This parameter overrides the terminal's color support as given by the
 +system's terminal capabilities database in that this parameter's value
 +specifies the color mode to use in terminal frames.  The value can be
 +either a symbol or a number.  A number specifies the number of colors
 +to use (and, indirectly, what commands to issue to produce each
 +color).  For example, @code{(tty-color-mode . 8)} specifies use of the
 +ANSI escape sequences for 8 standard text colors.  A value of -1 turns
 +off color support.
 +
 +If the parameter's value is a symbol, it specifies a number through
 +the value of @code{tty-color-mode-alist}, and the associated number is
 +used instead.
 +
 +@item screen-gamma
 +@cindex gamma correction
 +If this is a number, Emacs performs ``gamma correction'' which adjusts
 +the brightness of all colors.  The value should be the screen gamma of
 +your display, a floating point number.
 +
 +Usual PC monitors have a screen gamma of 2.2, so color values in
 +Emacs, and in X windows generally, are calibrated to display properly
 +on a monitor with that gamma value.  If you specify 2.2 for
 +@code{screen-gamma}, that means no correction is needed.  Other values
 +request correction, designed to make the corrected colors appear on
 +your screen the way they would have appeared without correction on an
 +ordinary monitor with a gamma value of 2.2.
 +
 +If your monitor displays colors too light, you should specify a
 +@code{screen-gamma} value smaller than 2.2.  This requests correction
 +that makes colors darker.  A screen gamma value of 1.5 may give good
 +results for LCD color displays.
 +@end table
 +
 +These frame parameters are semi-obsolete in that they are automatically
 +equivalent to particular face attributes of particular faces.
 +@xref{Standard Faces,,, emacs, The Emacs Manual}.
 +
 +@table @code
 +@item font
 +The name of the font for displaying text in the frame.  This is a
 +string, either a valid font name for your system or the name of an Emacs
 +fontset (@pxref{Fontsets}).  It is equivalent to the @code{font}
 +attribute of the @code{default} face.
 +
 +@item foreground-color
 +The color to use for the image of a character.  It is equivalent to
 +the @code{:foreground} attribute of the @code{default} face.
 +
 +@item background-color
 +The color to use for the background of characters.  It is equivalent to
 +the @code{:background} attribute of the @code{default} face.
 +
 +@item mouse-color
 +The color for the mouse pointer.  It is equivalent to the @code{:background}
 +attribute of the @code{mouse} face.
 +
 +@item cursor-color
 +The color for the cursor that shows point.  It is equivalent to the
 +@code{:background} attribute of the @code{cursor} face.
 +
 +@item border-color
 +The color for the border of the frame.  It is equivalent to the
 +@code{:background} attribute of the @code{border} face.
 +
 +@item scroll-bar-foreground
 +If non-@code{nil}, the color for the foreground of scroll bars.  It is
 +equivalent to the @code{:foreground} attribute of the
 +@code{scroll-bar} face.
 +
 +@item scroll-bar-background
 +If non-@code{nil}, the color for the background of scroll bars.  It is
 +equivalent to the @code{:background} attribute of the
 +@code{scroll-bar} face.
 +@end table
 +
 +@node Size and Position
 +@subsection Frame Size And Position
 +@cindex size of frame
 +@cindex screen size
 +@cindex frame size
 +@cindex resize frame
 +
 +  You can read or change the size and position of a frame using the
 +frame parameters @code{left}, @code{top}, @code{height}, and
 +@code{width}.  Whatever geometry parameters you don't specify are chosen
 +by the window manager in its usual fashion.
 +
 +  Here are some special features for working with sizes and positions.
 +(For the precise meaning of ``selected frame'' used by these functions,
 +see @ref{Input Focus}.)
 +
 +@defun set-frame-position frame left top
 +This function sets the position of the top left corner of @var{frame} to
 +@var{left} and @var{top}.  These arguments are measured in pixels, and
 +normally count from the top left corner of the screen.
 +
 +Negative parameter values position the bottom edge of the window up from
 +the bottom edge of the screen, or the right window edge to the left of
 +the right edge of the screen.  It would probably be better if the values
 +were always counted from the left and top, so that negative arguments
 +would position the frame partly off the top or left edge of the screen,
 +but it seems inadvisable to change that now.
 +@end defun
 +
 +@defun frame-height &optional frame
 +@defunx frame-width &optional frame
 +These functions return the height and width of @var{frame}, measured in
 +lines and columns.  If you don't supply @var{frame}, they use the
 +selected frame.
 +@end defun
 +
 +@defun screen-height
 +@defunx screen-width
 +These functions are old aliases for @code{frame-height} and
 +@code{frame-width}.  When you are using a non-window terminal, the size
 +of the frame is normally the same as the size of the terminal screen.
 +@end defun
 +
 +@defun frame-pixel-height &optional frame
 +@defunx frame-pixel-width &optional frame
++These functions return the height and width of the main display area
++of @var{frame}, measured in pixels.  If you don't supply @var{frame},
++they use the selected frame.
++
++These values include the internal borders, and windows' scroll bars
++and fringes (which belong to individual windows, not to the frame
++itself), but do not include menu bars or tool bars (except when using
++X without an X toolkit).
 +@end defun
 +
 +@defun frame-char-height &optional frame
 +@defunx frame-char-width &optional frame
 +These functions return the height and width of a character in
 +@var{frame}, measured in pixels.  The values depend on the choice of
 +font.  If you don't supply @var{frame}, these functions use the selected
 +frame.
 +@end defun
 +
 +@defun set-frame-size frame cols rows
 +This function sets the size of @var{frame}, measured in characters;
 +@var{cols} and @var{rows} specify the new width and height.
 +
 +To set the size based on values measured in pixels, use
 +@code{frame-char-height} and @code{frame-char-width} to convert
 +them to units of characters.
 +@end defun
 +
 +@defun set-frame-height frame lines &optional pretend
 +This function resizes @var{frame} to a height of @var{lines} lines.  The
 +sizes of existing windows in @var{frame} are altered proportionally to
 +fit.
 +
 +If @var{pretend} is non-@code{nil}, then Emacs displays @var{lines}
 +lines of output in @var{frame}, but does not change its value for the
 +actual height of the frame.  This is only useful for a terminal frame.
 +Using a smaller height than the terminal actually implements may be
 +useful to reproduce behavior observed on a smaller screen, or if the
 +terminal malfunctions when using its whole screen.  Setting the frame
 +height ``for real'' does not always work, because knowing the correct
 +actual size may be necessary for correct cursor positioning on a
 +terminal frame.
 +@end defun
 +
 +@defun set-frame-width frame width &optional pretend
 +This function sets the width of @var{frame}, measured in characters.
 +The argument @var{pretend} has the same meaning as in
 +@code{set-frame-height}.
 +@end defun
 +
 +@findex set-screen-height
 +@findex set-screen-width
 +  The older functions @code{set-screen-height} and
 +@code{set-screen-width} were used to specify the height and width of the
 +screen, in Emacs versions that did not support multiple frames.  They
 +are semi-obsolete, but still work; they apply to the selected frame.
 +
 +@node Geometry
 +@subsection Geometry
 +
 +  Here's how to examine the data in an X-style window geometry
 +specification:
 +
 +@defun x-parse-geometry geom
 +@cindex geometry specification
 +The function @code{x-parse-geometry} converts a standard X window
 +geometry string to an alist that you can use as part of the argument to
 +@code{make-frame}.
 +
 +The alist describes which parameters were specified in @var{geom}, and
 +gives the values specified for them.  Each element looks like
 +@code{(@var{parameter} . @var{value})}.  The possible @var{parameter}
 +values are @code{left}, @code{top}, @code{width}, and @code{height}.
 +
 +For the size parameters, the value must be an integer.  The position
 +parameter names @code{left} and @code{top} are not totally accurate,
 +because some values indicate the position of the right or bottom edges
 +instead.  These are the @var{value} possibilities for the position
 +parameters:
 +
 +@table @asis
 +@item an integer
 +A positive integer relates the left edge or top edge of the window to
 +the left or top edge of the screen.  A negative integer relates the
 +right or bottom edge of the window to the right or bottom edge of the
 +screen.
 +
 +@item @code{(+ @var{position})}
 +This specifies the position of the left or top edge of the window
 +relative to the left or top edge of the screen.  The integer
 +@var{position} may be positive or negative; a negative value specifies a
 +position outside the screen.
 +
 +@item @code{(- @var{position})}
 +This specifies the position of the right or bottom edge of the window
 +relative to the right or bottom edge of the screen.  The integer
 +@var{position} may be positive or negative; a negative value specifies a
 +position outside the screen.
 +@end table
 +
 +Here is an example:
 +
 +@example
 +(x-parse-geometry "35x70+0-0")
 +     @result{} ((height . 70) (width . 35)
 +         (top - 0) (left . 0))
 +@end example
 +@end defun
 +
 +@node Frame Titles
 +@section Frame Titles
 +@cindex frame title
 +
 +  Every frame has a @code{name} parameter; this serves as the default
 +for the frame title which window systems typically display at the top of
 +the frame.  You can specify a name explicitly by setting the @code{name}
 +frame property.
 +
 +  Normally you don't specify the name explicitly, and Emacs computes the
 +frame name automatically based on a template stored in the variable
 +@code{frame-title-format}.  Emacs recomputes the name each time the
 +frame is redisplayed.
 +
 +@defvar frame-title-format
 +This variable specifies how to compute a name for a frame when you have
 +not explicitly specified one.  The variable's value is actually a mode
 +line construct, just like @code{mode-line-format}, except that the
 +@samp{%c} and @samp{%l} constructs are ignored.  @xref{Mode Line
 +Data}.
 +@end defvar
 +
 +@defvar icon-title-format
 +This variable specifies how to compute the name for an iconified frame,
 +when you have not explicitly specified the frame title.  This title
 +appears in the icon itself.
 +@end defvar
 +
 +@defvar multiple-frames
 +This variable is set automatically by Emacs.  Its value is @code{t} when
 +there are two or more frames (not counting minibuffer-only frames or
 +invisible frames).  The default value of @code{frame-title-format} uses
 +@code{multiple-frames} so as to put the buffer name in the frame title
 +only when there is more than one frame.
 +
 +The value of this variable is not guaranteed to be accurate except
 +while processing @code{frame-title-format} or
 +@code{icon-title-format}.
 +@end defvar
 +
 +@node Deleting Frames
 +@section Deleting Frames
 +@cindex deleting frames
 +
 +Frames remain potentially visible until you explicitly @dfn{delete}
 +them.  A deleted frame cannot appear on the screen, but continues to
 +exist as a Lisp object until there are no references to it.
 +
 +@deffn Command delete-frame &optional frame force
 +@vindex delete-frame-functions
 +This function deletes the frame @var{frame}.  Unless @var{frame} is a
 +tooltip, it first runs the hook @code{delete-frame-functions} (each
 +function gets one argument, @var{frame}).  By default, @var{frame} is
 +the selected frame.
 +
 +A frame cannot be deleted if its minibuffer is used by other frames.
 +Normally, you cannot delete a frame if all other frames are invisible,
 +but if the @var{force} is non-@code{nil}, then you are allowed to do so.
 +@end deffn
 +
 +@defun frame-live-p frame
 +The function @code{frame-live-p} returns non-@code{nil} if the frame
 +@var{frame} has not been deleted.  The possible non-@code{nil} return
 +values are like those of @code{framep}.  @xref{Frames}.
 +@end defun
 +
 +  Some window managers provide a command to delete a window.  These work
 +by sending a special message to the program that operates the window.
 +When Emacs gets one of these commands, it generates a
 +@code{delete-frame} event, whose normal definition is a command that
 +calls the function @code{delete-frame}.  @xref{Misc Events}.
 +
 +@node Finding All Frames
 +@section Finding All Frames
 +@cindex frames, scanning all
 +
 +@defun frame-list
 +The function @code{frame-list} returns a list of all the frames that
 +have not been deleted.  It is analogous to @code{buffer-list} for
 +buffers, and includes frames on all terminals.  The list that you get is
 +newly created, so modifying the list doesn't have any effect on the
 +internals of Emacs.
 +@end defun
 +
 +@defun visible-frame-list
 +This function returns a list of just the currently visible frames.
 +@xref{Visibility of Frames}.  (Terminal frames always count as
 +``visible,'' even though only the selected one is actually displayed.)
 +@end defun
 +
 +@defun next-frame &optional frame minibuf
 +The function @code{next-frame} lets you cycle conveniently through all
 +the frames on the current display from an arbitrary starting point.  It
 +returns the ``next'' frame after @var{frame} in the cycle.  If
 +@var{frame} is omitted or @code{nil}, it defaults to the selected frame
 +(@pxref{Input Focus}).
 +
 +The second argument, @var{minibuf}, says which frames to consider:
 +
 +@table @asis
 +@item @code{nil}
 +Exclude minibuffer-only frames.
 +@item @code{visible}
 +Consider all visible frames.
 +@item 0
 +Consider all visible or iconified frames.
 +@item a window
 +Consider only the frames using that particular window as their
 +minibuffer.
 +@item anything else
 +Consider all frames.
 +@end table
 +@end defun
 +
 +@defun previous-frame &optional frame minibuf
 +Like @code{next-frame}, but cycles through all frames in the opposite
 +direction.
 +@end defun
 +
 +  See also @code{next-window} and @code{previous-window}, in @ref{Cyclic
 +Window Ordering}.
 +
 +@node Frames and Windows
 +@section Frames and Windows
 +
 +  Each window is part of one and only one frame; you can get the frame
 +with @code{window-frame}.
 +
 +@defun window-frame window
 +This function returns the frame that @var{window} is on.
 +@end defun
 +
 +  All the non-minibuffer windows in a frame are arranged in a cyclic
 +order.  The order runs from the frame's top window, which is at the
 +upper left corner, down and to the right, until it reaches the window at
 +the lower right corner (always the minibuffer window, if the frame has
 +one), and then it moves back to the top.  @xref{Cyclic Window Ordering}.
 +
 +@defun frame-first-window &optional frame
 +This returns the topmost, leftmost window of frame @var{frame}.
 +If omitted or @code{nil}, @var{frame} defaults to the selected frame.
 +@end defun
 +
 +At any time, exactly one window on any frame is @dfn{selected within the
 +frame}.  The significance of this designation is that selecting the
 +frame also selects this window.  You can get the frame's current
 +selected window with @code{frame-selected-window}.
 +
 +@defun frame-selected-window  &optional frame
 +This function returns the window on @var{frame} that is selected
 +within @var{frame}.  If omitted or @code{nil}, @var{frame} defaults to
 +the selected frame.
 +@end defun
 +
 +@defun set-frame-selected-window frame window
 +This sets the selected window of frame @var{frame} to @var{window}.
 +If @var{frame} is @code{nil}, it operates on the selected frame.  If
 +@var{frame} is the selected frame, this makes @var{window} the
 +selected window.  This function returns @var{window}.
 +@end defun
 +
 +  Conversely, selecting a window for Emacs with @code{select-window} also
 +makes that window selected within its frame.  @xref{Selecting Windows}.
 +
 +  Another function that (usually) returns one of the windows in a given
 +frame is @code{minibuffer-window}.  @xref{Definition of minibuffer-window}.
 +
 +@node Minibuffers and Frames
 +@section Minibuffers and Frames
 +
 +Normally, each frame has its own minibuffer window at the bottom, which
 +is used whenever that frame is selected.  If the frame has a minibuffer,
 +you can get it with @code{minibuffer-window} (@pxref{Definition of
 +minibuffer-window}).
 +
 +However, you can also create a frame with no minibuffer.  Such a frame
 +must use the minibuffer window of some other frame.  When you create the
 +frame, you can specify explicitly the minibuffer window to use (in some
 +other frame).  If you don't, then the minibuffer is found in the frame
 +which is the value of the variable @code{default-minibuffer-frame}.  Its
 +value should be a frame that does have a minibuffer.
 +
 +If you use a minibuffer-only frame, you might want that frame to raise
 +when you enter the minibuffer.  If so, set the variable
 +@code{minibuffer-auto-raise} to @code{t}.  @xref{Raising and Lowering}.
 +
 +@defvar default-minibuffer-frame
 +This variable specifies the frame to use for the minibuffer window, by
 +default.  It does not affect existing frames.  It is always local to
 +the current terminal and cannot be buffer-local.  @xref{Multiple
 +Displays}.
 +@end defvar
 +
 +@node Input Focus
 +@section Input Focus
 +@cindex input focus
 +@c @cindex selected frame    Duplicates selected-frame
 +
 +At any time, one frame in Emacs is the @dfn{selected frame}.  The selected
 +window always resides on the selected frame.
 +
 +When Emacs displays its frames on several terminals (@pxref{Multiple
 +Displays}), each terminal has its own selected frame.  But only one of
 +these is ``@emph{the} selected frame'': it's the frame that belongs to
 +the terminal from which the most recent input came.  That is, when Emacs
 +runs a command that came from a certain terminal, the selected frame is
 +the one of that terminal.  Since Emacs runs only a single command at any
 +given time, it needs to consider only one selected frame at a time; this
 +frame is what we call @dfn{the selected frame} in this manual.  The
 +display on which the selected frame is displayed is the @dfn{selected
 +frame's display}.
 +
 +@defun selected-frame
 +This function returns the selected frame.
 +@end defun
 +
 +Some window systems and window managers direct keyboard input to the
 +window object that the mouse is in; others require explicit clicks or
 +commands to @dfn{shift the focus} to various window objects.  Either
 +way, Emacs automatically keeps track of which frame has the focus.  To
 +switch to a different frame from a Lisp function, call
 +@code{select-frame-set-input-focus}.
 +
 +Lisp programs can also switch frames ``temporarily'' by calling the
 +function @code{select-frame}.  This does not alter the window system's
 +concept of focus; rather, it escapes from the window manager's control
 +until that control is somehow reasserted.
 +
 +When using a text-only terminal, only one frame can be displayed at a
 +time on the terminal, so after a call to @code{select-frame}, the next
 +redisplay actually displays the newly selected frame.  This frame
 +remains selected until a subsequent call to @code{select-frame} or
 +@code{select-frame-set-input-focus}.  Each terminal frame has a number
 +which appears in the mode line before the buffer name (@pxref{Mode
 +Line Variables}).
 +
 +@defun select-frame-set-input-focus frame
 +This function makes @var{frame} the selected frame, raises it (should
 +it happen to be obscured by other frames) and tries to give it the X
 +server's focus.  On a text-only terminal, the next redisplay displays
 +the new frame on the entire terminal screen.  The return value of this
 +function is not significant.
 +@end defun
 +
 +@c ??? This is not yet implemented properly.
 +@defun select-frame frame
 +This function selects frame @var{frame}, temporarily disregarding the
 +focus of the X server if any.  The selection of @var{frame} lasts until
 +the next time the user does something to select a different frame, or
 +until the next time this function is called.  (If you are using a
 +window system, the previously selected frame may be restored as the
 +selected frame after return to the command loop, because it still may
 +have the window system's input focus.)  The specified @var{frame}
 +becomes the selected frame, as explained above, and the terminal that
 +@var{frame} is on becomes the selected terminal.  This function
 +returns @var{frame}, or @code{nil} if @var{frame} has been deleted.
 +
 +In general, you should never use @code{select-frame} in a way that could
 +switch to a different terminal without switching back when you're done.
 +@end defun
 +
 +Emacs cooperates with the window system by arranging to select frames as
 +the server and window manager request.  It does so by generating a
 +special kind of input event, called a @dfn{focus} event, when
 +appropriate.  The command loop handles a focus event by calling
 +@code{handle-switch-frame}.  @xref{Focus Events}.
 +
 +@deffn Command handle-switch-frame frame
 +This function handles a focus event by selecting frame @var{frame}.
 +
 +Focus events normally do their job by invoking this command.
 +Don't call it for any other reason.
 +@end deffn
 +
 +@defun redirect-frame-focus frame &optional focus-frame
 +This function redirects focus from @var{frame} to @var{focus-frame}.
 +This means that @var{focus-frame} will receive subsequent keystrokes and
 +events intended for @var{frame}.  After such an event, the value of
 +@code{last-event-frame} will be @var{focus-frame}.  Also, switch-frame
 +events specifying @var{frame} will instead select @var{focus-frame}.
 +
 +If @var{focus-frame} is omitted or @code{nil}, that cancels any existing
 +redirection for @var{frame}, which therefore once again receives its own
 +events.
 +
 +One use of focus redirection is for frames that don't have minibuffers.
 +These frames use minibuffers on other frames.  Activating a minibuffer
 +on another frame redirects focus to that frame.  This puts the focus on
 +the minibuffer's frame, where it belongs, even though the mouse remains
 +in the frame that activated the minibuffer.
 +
 +Selecting a frame can also change focus redirections.  Selecting frame
 +@code{bar}, when @code{foo} had been selected, changes any redirections
 +pointing to @code{foo} so that they point to @code{bar} instead.  This
 +allows focus redirection to work properly when the user switches from
 +one frame to another using @code{select-window}.
 +
 +This means that a frame whose focus is redirected to itself is treated
 +differently from a frame whose focus is not redirected.
 +@code{select-frame} affects the former but not the latter.
 +
 +The redirection lasts until @code{redirect-frame-focus} is called to
 +change it.
 +@end defun
 +
 +@defopt focus-follows-mouse
 +This option is how you inform Emacs whether the window manager transfers
 +focus when the user moves the mouse.  Non-@code{nil} says that it does.
 +When this is so, the command @code{other-frame} moves the mouse to a
 +position consistent with the new selected frame.  (This option has no
 +effect on MS-Windows, where the mouse pointer is always automatically
 +moved by the OS to the selected frame.)
 +@end defopt
 +
 +@node Visibility of Frames
 +@section Visibility of Frames
 +@cindex visible frame
 +@cindex invisible frame
 +@cindex iconified frame
 +@cindex frame visibility
 +
 +A window frame may be @dfn{visible}, @dfn{invisible}, or
 +@dfn{iconified}.  If it is visible, you can see its contents, unless
 +other windows cover it.  If it is iconified, the frame's contents do
 +not appear on the screen, but an icon does.  If the frame is
 +invisible, it doesn't show on the screen, not even as an icon.
 +
 +Visibility is meaningless for terminal frames, since only the selected
 +one is actually displayed in any case.
 +
 +@deffn Command make-frame-visible &optional frame
 +This function makes frame @var{frame} visible.  If you omit
 +@var{frame}, it makes the selected frame visible.  This does not raise
 +the frame, but you can do that with @code{raise-frame} if you wish
 +(@pxref{Raising and Lowering}).
 +@end deffn
 +
 +@deffn Command make-frame-invisible &optional frame force
 +This function makes frame @var{frame} invisible.  If you omit
 +@var{frame}, it makes the selected frame invisible.
 +
 +Unless @var{force} is non-@code{nil}, this function refuses to make
 +@var{frame} invisible if all other frames are invisible..
 +@end deffn
 +
 +@deffn Command iconify-frame &optional frame
 +This function iconifies frame @var{frame}.  If you omit @var{frame}, it
 +iconifies the selected frame.
 +@end deffn
 +
 +@defun frame-visible-p frame
 +This returns the visibility status of frame @var{frame}.  The value is
 +@code{t} if @var{frame} is visible, @code{nil} if it is invisible, and
 +@code{icon} if it is iconified.
 +
 +On a text-only terminal, all frames are considered visible, whether
 +they are currently being displayed or not, and this function returns
 +@code{t} for all frames.
 +@end defun
 +
 +  The visibility status of a frame is also available as a frame
 +parameter.  You can read or change it as such.  @xref{Management
 +Parameters}.
 +
 +  The user can iconify and deiconify frames with the window manager.
 +This happens below the level at which Emacs can exert any control, but
 +Emacs does provide events that you can use to keep track of such
 +changes.  @xref{Misc Events}.
 +
 +@node Raising and Lowering
 +@section Raising and Lowering Frames
 +
 +  Most window systems use a desktop metaphor.  Part of this metaphor is
 +the idea that windows are stacked in a notional third dimension
 +perpendicular to the screen surface, and thus ordered from ``highest''
 +to ``lowest.''  Where two windows overlap, the one higher up covers
 +the one underneath.  Even a window at the bottom of the stack can be
 +seen if no other window overlaps it.
 +
 +@c @cindex raising a frame  redundant with raise-frame
 +@cindex lowering a frame
 +  A window's place in this ordering is not fixed; in fact, users tend
 +to change the order frequently.  @dfn{Raising} a window means moving
 +it ``up,'' to the top of the stack.  @dfn{Lowering} a window means
 +moving it to the bottom of the stack.  This motion is in the notional
 +third dimension only, and does not change the position of the window
 +on the screen.
 +
 +  You can raise and lower Emacs frame Windows with these functions:
 +
 +@deffn Command raise-frame &optional frame
 +This function raises frame @var{frame} (default, the selected frame).
 +If @var{frame} is invisible or iconified, this makes it visible.
 +@end deffn
 +
 +@deffn Command lower-frame &optional frame
 +This function lowers frame @var{frame} (default, the selected frame).
 +@end deffn
 +
 +@defopt minibuffer-auto-raise
 +If this is non-@code{nil}, activation of the minibuffer raises the frame
 +that the minibuffer window is in.
 +@end defopt
 +
 +You can also enable auto-raise (raising automatically when a frame is
 +selected) or auto-lower (lowering automatically when it is deselected)
 +for any frame using frame parameters.  @xref{Management Parameters}.
 +
 +@node Frame Configurations
 +@section Frame Configurations
 +@cindex frame configuration
 +
 +  A @dfn{frame configuration} records the current arrangement of frames,
 +all their properties, and the window configuration of each one.
 +(@xref{Window Configurations}.)
 +
 +@defun current-frame-configuration
 +This function returns a frame configuration list that describes
 +the current arrangement of frames and their contents.
 +@end defun
 +
 +@defun set-frame-configuration configuration &optional nodelete
 +This function restores the state of frames described in
 +@var{configuration}.  However, this function does not restore deleted
 +frames.
 +
 +Ordinarily, this function deletes all existing frames not listed in
 +@var{configuration}.  But if @var{nodelete} is non-@code{nil}, the
 +unwanted frames are iconified instead.
 +@end defun
 +
 +@node Mouse Tracking
 +@section Mouse Tracking
 +@cindex mouse tracking
 +@c @cindex tracking the mouse   Duplicates track-mouse
 +
 +  Sometimes it is useful to @dfn{track} the mouse, which means to display
 +something to indicate where the mouse is and move the indicator as the
 +mouse moves.  For efficient mouse tracking, you need a way to wait until
 +the mouse actually moves.
 +
 +  The convenient way to track the mouse is to ask for events to represent
 +mouse motion.  Then you can wait for motion by waiting for an event.  In
 +addition, you can easily handle any other sorts of events that may
 +occur.  That is useful, because normally you don't want to track the
 +mouse forever---only until some other event, such as the release of a
 +button.
 +
 +@defspec track-mouse body@dots{}
 +This special form executes @var{body}, with generation of mouse motion
 +events enabled.  Typically @var{body} would use @code{read-event} to
 +read the motion events and modify the display accordingly.  @xref{Motion
 +Events}, for the format of mouse motion events.
 +
 +The value of @code{track-mouse} is that of the last form in @var{body}.
 +You should design @var{body} to return when it sees the up-event that
 +indicates the release of the button, or whatever kind of event means
 +it is time to stop tracking.
 +@end defspec
 +
 +The usual purpose of tracking mouse motion is to indicate on the screen
 +the consequences of pushing or releasing a button at the current
 +position.
 +
 +In many cases, you can avoid the need to track the mouse by using
 +the @code{mouse-face} text property (@pxref{Special Properties}).
 +That works at a much lower level and runs more smoothly than
 +Lisp-level mouse tracking.
 +
 +@ignore
 +@c These are not implemented yet.
 +
 +These functions change the screen appearance instantaneously.  The
 +effect is transient, only until the next ordinary Emacs redisplay.  That
 +is OK for mouse tracking, since it doesn't make sense for mouse tracking
 +to change the text, and the body of @code{track-mouse} normally reads
 +the events itself and does not do redisplay.
 +
 +@defun x-contour-region window beg end
 +This function draws lines to make a box around the text from @var{beg}
 +to @var{end}, in window @var{window}.
 +@end defun
 +
 +@defun x-uncontour-region window beg end
 +This function erases the lines that would make a box around the text
 +from @var{beg} to @var{end}, in window @var{window}.  Use it to remove
 +a contour that you previously made by calling @code{x-contour-region}.
 +@end defun
 +
 +@defun x-draw-rectangle frame left top right bottom
 +This function draws a hollow rectangle on frame @var{frame} with the
 +specified edge coordinates, all measured in pixels from the inside top
 +left corner.  It uses the cursor color, the one used for indicating the
 +location of point.
 +@end defun
 +
 +@defun x-erase-rectangle frame left top right bottom
 +This function erases a hollow rectangle on frame @var{frame} with the
 +specified edge coordinates, all measured in pixels from the inside top
 +left corner.  Erasure means redrawing the text and background that
 +normally belong in the specified rectangle.
 +@end defun
 +@end ignore
 +
 +@node Mouse Position
 +@section Mouse Position
 +@cindex mouse position
 +@cindex position of mouse
 +
 +  The functions @code{mouse-position} and @code{set-mouse-position}
 +give access to the current position of the mouse.
 +
 +@defun mouse-position
 +This function returns a description of the position of the mouse.  The
 +value looks like @code{(@var{frame} @var{x} . @var{y})}, where @var{x}
 +and @var{y} are integers giving the position in characters relative to
 +the top left corner of the inside of @var{frame}.
 +@end defun
 +
 +@defvar mouse-position-function
 +If non-@code{nil}, the value of this variable is a function for
 +@code{mouse-position} to call.  @code{mouse-position} calls this
 +function just before returning, with its normal return value as the
 +sole argument, and it returns whatever this function returns to it.
 +
 +This abnormal hook exists for the benefit of packages like
 +@file{xt-mouse.el} that need to do mouse handling at the Lisp level.
 +@end defvar
 +
 +@defun set-mouse-position frame x y
 +This function @dfn{warps the mouse} to position @var{x}, @var{y} in
 +frame @var{frame}.  The arguments @var{x} and @var{y} are integers,
 +giving the position in characters relative to the top left corner of the
 +inside of @var{frame}.  If @var{frame} is not visible, this function
 +does nothing.  The return value is not significant.
 +@end defun
 +
 +@defun mouse-pixel-position
 +This function is like @code{mouse-position} except that it returns
 +coordinates in units of pixels rather than units of characters.
 +@end defun
 +
 +@defun set-mouse-pixel-position frame x y
 +This function warps the mouse like @code{set-mouse-position} except that
 +@var{x} and @var{y} are in units of pixels rather than units of
 +characters.  These coordinates are not required to be within the frame.
 +
 +If @var{frame} is not visible, this function does nothing.  The return
 +value is not significant.
 +@end defun
 +
 +@need 3000
 +
 +@node Pop-Up Menus
 +@section Pop-Up Menus
 +
 +  When using a window system, a Lisp program can pop up a menu so that
 +the user can choose an alternative with the mouse.
 +
 +@defun x-popup-menu position menu
 +This function displays a pop-up menu and returns an indication of
 +what selection the user makes.
 +
 +The argument @var{position} specifies where on the screen to put the
 +top left corner of the menu.  It can be either a mouse button event
 +(which says to put the menu where the user actuated the button) or a
 +list of this form:
 +
 +@example
 +((@var{xoffset} @var{yoffset}) @var{window})
 +@end example
 +
 +@noindent
 +where @var{xoffset} and @var{yoffset} are coordinates, measured in
 +pixels, counting from the top left corner of @var{window}.  @var{window}
 +may be a window or a frame.
 +
 +If @var{position} is @code{t}, it means to use the current mouse
 +position.  If @var{position} is @code{nil}, it means to precompute the
 +key binding equivalents for the keymaps specified in @var{menu},
 +without actually displaying or popping up the menu.
 +
 +The argument @var{menu} says what to display in the menu.  It can be a
 +keymap or a list of keymaps (@pxref{Menu Keymaps}).  In this case, the
 +return value is the list of events corresponding to the user's choice.
 +(This list has more than one element if the choice occurred in a
 +submenu.)  Note that @code{x-popup-menu} does not actually execute the
 +command bound to that sequence of events.
 +
 +Alternatively, @var{menu} can have the following form:
 +
 +@example
 +(@var{title} @var{pane1} @var{pane2}...)
 +@end example
 +
 +@noindent
 +where each pane is a list of form
 +
 +@example
 +(@var{title} @var{item1} @var{item2}...)
 +@end example
 +
 +Each item should normally be a cons cell @code{(@var{line} . @var{value})},
 +where @var{line} is a string, and @var{value} is the value to return if
 +that @var{line} is chosen.  An item can also be a string; this makes a
 +non-selectable line in the menu.
 +
 +If the user gets rid of the menu without making a valid choice, for
 +instance by clicking the mouse away from a valid choice or by typing
 +keyboard input, then this normally results in a quit and
 +@code{x-popup-menu} does not return.  But if @var{position} is a mouse
 +button event (indicating that the user invoked the menu with the
 +mouse) then no quit occurs and @code{x-popup-menu} returns @code{nil}.
 +@end defun
 +
 +  @strong{Usage note:} Don't use @code{x-popup-menu} to display a menu
 +if you could do the job with a prefix key defined with a menu keymap.
 +If you use a menu keymap to implement a menu, @kbd{C-h c} and @kbd{C-h
 +a} can see the individual items in that menu and provide help for them.
 +If instead you implement the menu by defining a command that calls
 +@code{x-popup-menu}, the help facilities cannot know what happens inside
 +that command, so they cannot give any help for the menu's items.
 +
 +  The menu bar mechanism, which lets you switch between submenus by
 +moving the mouse, cannot look within the definition of a command to see
 +that it calls @code{x-popup-menu}.  Therefore, if you try to implement a
 +submenu using @code{x-popup-menu}, it cannot work with the menu bar in
 +an integrated fashion.  This is why all menu bar submenus are
 +implemented with menu keymaps within the parent menu, and never with
 +@code{x-popup-menu}.  @xref{Menu Bar}.
 +
 +  If you want a menu bar submenu to have contents that vary, you should
 +still use a menu keymap to implement it.  To make the contents vary, add
 +a hook function to @code{menu-bar-update-hook} to update the contents of
 +the menu keymap as necessary.
 +
 +@node Dialog Boxes
 +@section Dialog Boxes
 +@cindex dialog boxes
 +
 +  A dialog box is a variant of a pop-up menu---it looks a little
 +different, it always appears in the center of a frame, and it has just
 +one level and one or more buttons.  The main use of dialog boxes is
 +for asking questions that the user can answer with ``yes,'' ``no,''
 +and a few other alternatives.  With a single button, they can also
 +force the user to acknowledge important information.  The functions
 +@code{y-or-n-p} and @code{yes-or-no-p} use dialog boxes instead of the
 +keyboard, when called from commands invoked by mouse clicks.
 +
 +@defun x-popup-dialog position contents &optional header
 +This function displays a pop-up dialog box and returns an indication of
 +what selection the user makes.  The argument @var{contents} specifies
 +the alternatives to offer; it has this format:
 +
 +@example
 +(@var{title} (@var{string} . @var{value})@dots{})
 +@end example
 +
 +@noindent
 +which looks like the list that specifies a single pane for
 +@code{x-popup-menu}.
 +
 +The return value is @var{value} from the chosen alternative.
 +
 +As for @code{x-popup-menu}, an element of the list may be just a
 +string instead of a cons cell @code{(@var{string} . @var{value})}.
 +That makes a box that cannot be selected.
 +
 +If @code{nil} appears in the list, it separates the left-hand items from
 +the right-hand items; items that precede the @code{nil} appear on the
 +left, and items that follow the @code{nil} appear on the right.  If you
 +don't include a @code{nil} in the list, then approximately half the
 +items appear on each side.
 +
 +Dialog boxes always appear in the center of a frame; the argument
 +@var{position} specifies which frame.  The possible values are as in
 +@code{x-popup-menu}, but the precise coordinates or the individual
 +window don't matter; only the frame matters.
 +
 +If @var{header} is non-@code{nil}, the frame title for the box is
 +@samp{Information}, otherwise it is @samp{Question}.  The former is used
 +for @code{message-box} (@pxref{message-box}).
 +
 +In some configurations, Emacs cannot display a real dialog box; so
 +instead it displays the same items in a pop-up menu in the center of the
 +frame.
 +
 +If the user gets rid of the dialog box without making a valid choice,
 +for instance using the window manager, then this produces a quit and
 +@code{x-popup-dialog} does not return.
 +@end defun
 +
 +@node Pointer Shape
 +@section Pointer Shape
 +@cindex pointer shape
 +@cindex mouse pointer shape
 +
 +  You can specify the mouse pointer style for particular text or
 +images using the @code{pointer} text property, and for images with the
 +@code{:pointer} and @code{:map} image properties.  The values you can
 +use in these properties are @code{text} (or @code{nil}), @code{arrow},
 +@code{hand}, @code{vdrag}, @code{hdrag}, @code{modeline}, and
 +@code{hourglass}.  @code{text} stands for the usual mouse pointer
 +style used over text.
 +
 +  Over void parts of the window (parts that do not correspond to any
 +of the buffer contents), the mouse pointer usually uses the
 +@code{arrow} style, but you can specify a different style (one of
 +those above) by setting @code{void-text-area-pointer}.
 +
 +@defvar void-text-area-pointer
 +This variable specifies the mouse pointer style for void text areas.
 +These include the areas after the end of a line or below the last line
 +in the buffer.  The default is to use the @code{arrow} (non-text)
 +pointer style.
 +@end defvar
 +
 +  You can specify what the @code{text} pointer style really looks like
 +by setting the variable @code{x-pointer-shape}.
 +
 +@defvar x-pointer-shape
 +This variable specifies the pointer shape to use ordinarily in the
 +Emacs frame, for the @code{text} pointer style.
 +@end defvar
 +
 +@defvar x-sensitive-text-pointer-shape
 +This variable specifies the pointer shape to use when the mouse
 +is over mouse-sensitive text.
 +@end defvar
 +
 +  These variables affect newly created frames.  They do not normally
 +affect existing frames; however, if you set the mouse color of a
 +frame, that also installs the current value of those two variables.
 +@xref{Color Parameters}.
 +
 +  The values you can use, to specify either of these pointer shapes, are
 +defined in the file @file{lisp/term/x-win.el}.  Use @kbd{M-x apropos
 +@key{RET} x-pointer @key{RET}} to see a list of them.
 +
 +@node Window System Selections
 +@section Window System Selections
 +@cindex selection (for window systems)
 +
 +The X server records a set of @dfn{selections} which permit transfer of
 +data between application programs.  The various selections are
 +distinguished by @dfn{selection types}, represented in Emacs by
 +symbols.  X clients including Emacs can read or set the selection for
 +any given type.
 +
 +@deffn Command x-set-selection type data
 +This function sets a ``selection'' in the X server.  It takes two
 +arguments: a selection type @var{type}, and the value to assign to it,
 +@var{data}.  If @var{data} is @code{nil}, it means to clear out the
 +selection.  Otherwise, @var{data} may be a string, a symbol, an integer
 +(or a cons of two integers or list of two integers), an overlay, or a
 +cons of two markers pointing to the same buffer.  An overlay or a pair
 +of markers stands for text in the overlay or between the markers.
 +
 +The argument @var{data} may also be a vector of valid non-vector
 +selection values.
 +
 +Each possible @var{type} has its own selection value, which changes
 +independently.  The usual values of @var{type} are @code{PRIMARY},
 +@code{SECONDARY} and @code{CLIPBOARD}; these are symbols with upper-case
 +names, in accord with X Window System conventions.  If @var{type} is
 +@code{nil}, that stands for @code{PRIMARY}.
 +
 +This function returns @var{data}.
 +@end deffn
 +
 +@defun x-get-selection &optional type data-type
 +This function accesses selections set up by Emacs or by other X
 +clients.  It takes two optional arguments, @var{type} and
 +@var{data-type}.  The default for @var{type}, the selection type, is
 +@code{PRIMARY}.
 +
 +The @var{data-type} argument specifies the form of data conversion to
 +use, to convert the raw data obtained from another X client into Lisp
 +data.  Meaningful values include @code{TEXT}, @code{STRING},
 +@code{UTF8_STRING}, @code{TARGETS}, @code{LENGTH}, @code{DELETE},
 +@code{FILE_NAME}, @code{CHARACTER_POSITION}, @code{NAME},
 +@code{LINE_NUMBER}, @code{COLUMN_NUMBER}, @code{OWNER_OS},
 +@code{HOST_NAME}, @code{USER}, @code{CLASS}, @code{ATOM}, and
 +@code{INTEGER}.  (These are symbols with upper-case names in accord
 +with X conventions.)  The default for @var{data-type} is
 +@code{STRING}.
 +@end defun
 +
 +@cindex cut buffer
 +The X server also has a set of eight numbered @dfn{cut buffers} which can
 +store text or other data being moved between applications.  Cut buffers
 +are considered obsolete, but Emacs supports them for the sake of X
 +clients that still use them.  Cut buffers are numbered from 0 to 7.
 +
 +@defun x-get-cut-buffer &optional n
 +This function returns the contents of cut buffer number @var{n}.
 +If omitted @var{n} defaults to 0.
 +@end defun
 +
 +@defun x-set-cut-buffer string &optional push
 +@anchor{Definition of x-set-cut-buffer}
 +This function stores @var{string} into the first cut buffer (cut buffer
 +0).  If @var{push} is @code{nil}, only the first cut buffer is changed.
 +If @var{push} is non-@code{nil}, that says to move the values down
 +through the series of cut buffers, much like the way successive kills in
 +Emacs move down the kill ring.  In other words, the previous value of
 +the first cut buffer moves into the second cut buffer, and the second to
 +the third, and so on through all eight cut buffers.
 +@end defun
 +
 +@defvar selection-coding-system
 +This variable specifies the coding system to use when reading and
 +writing selections or the clipboard.  @xref{Coding
 +Systems}.  The default is @code{compound-text-with-extensions}, which
 +converts to the text representation that X11 normally uses.
 +@end defvar
 +
 +@cindex clipboard support (for MS-Windows)
 +When Emacs runs on MS-Windows, it does not implement X selections in
 +general, but it does support the clipboard.  @code{x-get-selection}
 +and @code{x-set-selection} on MS-Windows support the text data type
 +only; if the clipboard holds other types of data, Emacs treats the
 +clipboard as empty.
 +
 +@cindex scrap support (for Mac OS)
 +On Mac OS, selection-like data transfer between applications is
 +performed through a mechanism called @dfn{scraps}.  The clipboard is a
 +particular scrap named @code{com.apple.scrap.clipboard}.  Types of scrap
 +data are called @dfn{scrap flavor types}, which are identified by
 +four-char codes such as @code{TEXT}.  Emacs associates a selection with
 +a scrap, and a selection type with a scrap flavor type via
 +@code{mac-scrap-name} and @code{mac-ostype} properties, respectively.
 +
 +@example
 +(get 'CLIPBOARD 'mac-scrap-name)
 +     @result{} "com.apple.scrap.clipboard"
 +(get 'com.apple.traditional-mac-plain-text 'mac-ostype)
 +     @result{} "TEXT"
 +@end example
 +
 +Conventionally, selection types for scrap flavor types on Mac OS have
 +the form of @acronym{UTI, Uniform Type Identifier} such as
 +@code{com.apple.traditional-mac-plain-text},
 +@code{public.utf16-plain-text}, and @code{public.file-url}.
 +
 +@defopt x-select-enable-clipboard
 +If this is non-@code{nil}, the Emacs yank functions consult the
 +clipboard before the primary selection, and the kill functions store in
 +the clipboard as well as the primary selection.  Otherwise they do not
 +access the clipboard at all.  The default is @code{nil} on most systems,
 +but @code{t} on MS-Windows and Mac.
 +@end defopt
 +
 +@node Drag and Drop
 +@section Drag and Drop
 +
 +@vindex x-dnd-test-function
 +@vindex x-dnd-known-types
 +  When a user drags something from another application over Emacs, that other
 +application expects Emacs to tell it if Emacs can handle the data that is
 +dragged.  The variable @code{x-dnd-test-function} is used by Emacs to determine
 +what to reply.  The default value is @code{x-dnd-default-test-function}
 +which accepts drops if the type of the data to be dropped is present in
 +@code{x-dnd-known-types}.  You can customize @code{x-dnd-test-function} and/or
 +@code{x-dnd-known-types} if you want Emacs to accept or reject drops based
 +on some other criteria.
 +
 +@vindex x-dnd-types-alist
 +  If you want to change the way Emacs handles drop of different types
 +or add a new type, customize @code{x-dnd-types-alist}.  This requires
 +detailed knowledge of what types other applications use for drag and
 +drop.
 +
 +@vindex dnd-protocol-alist
 +  When an URL is dropped on Emacs it may be a file, but it may also be
 +another URL type (ftp, http, etc.).  Emacs first checks
 +@code{dnd-protocol-alist} to determine what to do with the URL.  If
 +there is no match there and if @code{browse-url-browser-function} is
 +an alist, Emacs looks for a match there.  If no match is found the
 +text for the URL is inserted.  If you want to alter Emacs behavior,
 +you can customize these variables.
 +
 +@node Color Names
 +@section Color Names
 +
 +@cindex color names
 +@cindex specify color
 +@cindex numerical RGB color specification
 +  A color name is text (usually in a string) that specifies a color.
 +Symbolic names such as @samp{black}, @samp{white}, @samp{red}, etc.,
 +are allowed; use @kbd{M-x list-colors-display} to see a list of
 +defined names.  You can also specify colors numerically in forms such
 +as @samp{#@var{rgb}} and @samp{RGB:@var{r}/@var{g}/@var{b}}, where
 +@var{r} specifies the red level, @var{g} specifies the green level,
 +and @var{b} specifies the blue level.  You can use either one, two,
 +three, or four hex digits for @var{r}; then you must use the same
 +number of hex digits for all @var{g} and @var{b} as well, making
 +either 3, 6, 9 or 12 hex digits in all.  (See the documentation of the
 +X Window System for more details about numerical RGB specification of
 +colors.)
 +
 +  These functions provide a way to determine which color names are
 +valid, and what they look like.  In some cases, the value depends on the
 +@dfn{selected frame}, as described below; see @ref{Input Focus}, for the
 +meaning of the term ``selected frame.''
 +
 +@defun color-defined-p color &optional frame
 +This function reports whether a color name is meaningful.  It returns
 +@code{t} if so; otherwise, @code{nil}.  The argument @var{frame} says
 +which frame's display to ask about; if @var{frame} is omitted or
 +@code{nil}, the selected frame is used.
 +
 +Note that this does not tell you whether the display you are using
 +really supports that color.  When using X, you can ask for any defined
 +color on any kind of display, and you will get some result---typically,
 +the closest it can do.  To determine whether a frame can really display
 +a certain color, use @code{color-supported-p} (see below).
 +
 +@findex x-color-defined-p
 +This function used to be called @code{x-color-defined-p},
 +and that name is still supported as an alias.
 +@end defun
 +
 +@defun defined-colors &optional frame
 +This function returns a list of the color names that are defined
 +and supported on frame @var{frame} (default, the selected frame).
 +If @var{frame} does not support colors, the value is @code{nil}.
 +
 +@findex x-defined-colors
 +This function used to be called @code{x-defined-colors},
 +and that name is still supported as an alias.
 +@end defun
 +
 +@defun color-supported-p color &optional frame background-p
 +This returns @code{t} if @var{frame} can really display the color
 +@var{color} (or at least something close to it).  If @var{frame} is
 +omitted or @code{nil}, the question applies to the selected frame.
 +
 +Some terminals support a different set of colors for foreground and
 +background.  If @var{background-p} is non-@code{nil}, that means you are
 +asking whether @var{color} can be used as a background; otherwise you
 +are asking whether it can be used as a foreground.
 +
 +The argument @var{color} must be a valid color name.
 +@end defun
 +
 +@defun color-gray-p color &optional frame
 +This returns @code{t} if @var{color} is a shade of gray, as defined on
 +@var{frame}'s display.  If @var{frame} is omitted or @code{nil}, the
 +question applies to the selected frame.  If @var{color} is not a valid
 +color name, this function returns @code{nil}.
 +@end defun
 +
 +@defun color-values color &optional frame
 +@cindex rgb value
 +This function returns a value that describes what @var{color} should
 +ideally look like on @var{frame}.  If @var{color} is defined, the
 +value is a list of three integers, which give the amount of red, the
 +amount of green, and the amount of blue.  Each integer ranges in
 +principle from 0 to 65535, but some displays may not use the full
 +range.  This three-element list is called the @dfn{rgb values} of the
 +color.
 +
 +If @var{color} is not defined, the value is @code{nil}.
 +
 +@example
 +(color-values "black")
 +     @result{} (0 0 0)
 +(color-values "white")
 +     @result{} (65280 65280 65280)
 +(color-values "red")
 +     @result{} (65280 0 0)
 +(color-values "pink")
 +     @result{} (65280 49152 51968)
 +(color-values "hungry")
 +     @result{} nil
 +@end example
 +
 +The color values are returned for @var{frame}'s display.  If
 +@var{frame} is omitted or @code{nil}, the information is returned for
 +the selected frame's display.  If the frame cannot display colors, the
 +value is @code{nil}.
 +
 +@findex x-color-values
 +This function used to be called @code{x-color-values},
 +and that name is still supported as an alias.
 +@end defun
 +
 +@node Text Terminal Colors
 +@section Text Terminal Colors
 +@cindex colors on text-only terminals
 +
 +  Text-only terminals usually support only a small number of colors,
 +and the computer uses small integers to select colors on the terminal.
 +This means that the computer cannot reliably tell what the selected
 +color looks like; instead, you have to inform your application which
 +small integers correspond to which colors.  However, Emacs does know
 +the standard set of colors and will try to use them automatically.
 +
 +  The functions described in this section control how terminal colors
 +are used by Emacs.
 +
 +  Several of these functions use or return @dfn{rgb values}, described
 +in @ref{Color Names}.
 +
 +  These functions accept a display (either a frame or the name of a
 +terminal) as an optional argument.  We hope in the future to make Emacs
 +support more than one text-only terminal at one time; then this argument
 +will specify which terminal to operate on (the default being the
 +selected frame's terminal; @pxref{Input Focus}).  At present, though,
 +the @var{frame} argument has no effect.
 +
 +@defun tty-color-define name number &optional rgb frame
 +This function associates the color name @var{name} with
 +color number @var{number} on the terminal.
 +
 +The optional argument @var{rgb}, if specified, is an rgb value, a list
 +of three numbers that specify what the color actually looks like.
 +If you do not specify @var{rgb}, then this color cannot be used by
 +@code{tty-color-approximate} to approximate other colors, because
 +Emacs will not know what it looks like.
 +@end defun
 +
 +@defun tty-color-clear &optional frame
 +This function clears the table of defined colors for a text-only terminal.
 +@end defun
 +
 +@defun tty-color-alist &optional frame
 +This function returns an alist recording the known colors supported by a
 +text-only terminal.
 +
 +Each element has the form @code{(@var{name} @var{number} . @var{rgb})}
 +or @code{(@var{name} @var{number})}.  Here, @var{name} is the color
 +name, @var{number} is the number used to specify it to the terminal.
 +If present, @var{rgb} is a list of three color values (for red, green,
 +and blue) that says what the color actually looks like.
 +@end defun
 +
 +@defun tty-color-approximate rgb &optional frame
 +This function finds the closest color, among the known colors
 +supported for @var{display}, to that described by the rgb value
 +@var{rgb} (a list of color values).  The return value is an element of
 +@code{tty-color-alist}.
 +@end defun
 +
 +@defun tty-color-translate color &optional frame
 +This function finds the closest color to @var{color} among the known
 +colors supported for @var{display} and returns its index (an integer).
 +If the name @var{color} is not defined, the value is @code{nil}.
 +@end defun
 +
 +@node Resources
 +@section X Resources
 +
 +@defun x-get-resource attribute class &optional component subclass
 +The function @code{x-get-resource} retrieves a resource value from the X
 +Window defaults database.
 +
 +Resources are indexed by a combination of a @dfn{key} and a @dfn{class}.
 +This function searches using a key of the form
 +@samp{@var{instance}.@var{attribute}} (where @var{instance} is the name
 +under which Emacs was invoked), and using @samp{Emacs.@var{class}} as
 +the class.
 +
 +The optional arguments @var{component} and @var{subclass} add to the key
 +and the class, respectively.  You must specify both of them or neither.
 +If you specify them, the key is
 +@samp{@var{instance}.@var{component}.@var{attribute}}, and the class is
 +@samp{Emacs.@var{class}.@var{subclass}}.
 +@end defun
 +
 +@defvar x-resource-class
 +This variable specifies the application name that @code{x-get-resource}
 +should look up.  The default value is @code{"Emacs"}.  You can examine X
 +resources for application names other than ``Emacs'' by binding this
 +variable to some other string, around a call to @code{x-get-resource}.
 +@end defvar
 +
 +@defvar x-resource-name
 +This variable specifies the instance name that @code{x-get-resource}
 +should look up.  The default value is the name Emacs was invoked with,
 +or the value specified with the @samp{-name} or @samp{-rn} switches.
 +@end defvar
 +
 +To illustrate some of the above, suppose that you have the line:
 +
 +@example
 +xterm.vt100.background: yellow
 +@end example
 +
 +@noindent
 +in your X resources file (whose name is usually @file{~/.Xdefaults}
 +or @file{~/.Xresources}).  Then:
 +
 +@example
 +@group
 +(let ((x-resource-class "XTerm") (x-resource-name "xterm"))
 +  (x-get-resource "vt100.background" "VT100.Background"))
 +     @result{} "yellow"
 +@end group
 +@group
 +(let ((x-resource-class "XTerm") (x-resource-name "xterm"))
 +  (x-get-resource "background" "VT100" "vt100" "Background"))
 +     @result{} "yellow"
 +@end group
 +@end example
 +
 +  @xref{X Resources,, X Resources, emacs, The GNU Emacs Manual}.
 +
 +@node Display Feature Testing
 +@section Display Feature Testing
 +@cindex display feature testing
 +
 +  The functions in this section describe the basic capabilities of a
 +particular display.  Lisp programs can use them to adapt their behavior
 +to what the display can do.  For example, a program that ordinarily uses
 +a popup menu could use the minibuffer if popup menus are not supported.
 +
 +  The optional argument @var{display} in these functions specifies which
 +display to ask the question about.  It can be a display name, a frame
 +(which designates the display that frame is on), or @code{nil} (which
 +refers to the selected frame's display, @pxref{Input Focus}).
 +
 +  @xref{Color Names}, @ref{Text Terminal Colors}, for other functions to
 +obtain information about displays.
 +
 +@defun display-popup-menus-p &optional display
 +This function returns @code{t} if popup menus are supported on
 +@var{display}, @code{nil} if not.  Support for popup menus requires that
 +the mouse be available, since the user cannot choose menu items without
 +a mouse.
 +@end defun
 +
 +@defun display-graphic-p &optional display
 +This function returns @code{t} if @var{display} is a graphic display
 +capable of displaying several frames and several different fonts at
 +once.  This is true for displays that use a window system such as X, and
 +false for text-only terminals.
 +@end defun
 +
 +@defun display-mouse-p &optional display
 +@cindex mouse, availability
 +This function returns @code{t} if @var{display} has a mouse available,
 +@code{nil} if not.
 +@end defun
 +
 +@defun display-color-p &optional display
 +@findex x-display-color-p
 +This function returns @code{t} if the screen is a color screen.
 +It used to be called @code{x-display-color-p}, and that name
 +is still supported as an alias.
 +@end defun
 +
 +@defun display-grayscale-p &optional display
 +This function returns @code{t} if the screen can display shades of gray.
 +(All color displays can do this.)
 +@end defun
 +
 +@defun display-supports-face-attributes-p attributes &optional display
 +@anchor{Display Face Attribute Testing}
 +This function returns non-@code{nil} if all the face attributes in
 +@var{attributes} are supported (@pxref{Face Attributes}).
 +
 +The definition of `supported' is somewhat heuristic, but basically
 +means that a face containing all the attributes in @var{attributes},
 +when merged with the default face for display, can be represented in a
 +way that's
 +
 +@enumerate
 +@item
 +different in appearance than the default face, and
 +
 +@item
 +`close in spirit' to what the attributes specify, if not exact.
 +@end enumerate
 +
 +Point (2) implies that a @code{:weight black} attribute will be
 +satisfied by any display that can display bold, as will
 +@code{:foreground "yellow"} as long as some yellowish color can be
 +displayed, but @code{:slant italic} will @emph{not} be satisfied by
 +the tty display code's automatic substitution of a `dim' face for
 +italic.
 +@end defun
 +
 +@defun display-selections-p &optional display
 +This function returns @code{t} if @var{display} supports selections.
 +Windowed displays normally support selections, but they may also be
 +supported in some other cases.
 +@end defun
 +
 +@defun display-images-p &optional display
 +This function returns @code{t} if @var{display} can display images.
 +Windowed displays ought in principle to handle images, but some
 +systems lack the support for that.  On a display that does not support
 +images, Emacs cannot display a tool bar.
 +@end defun
 +
 +@defun display-screens &optional display
 +This function returns the number of screens associated with the display.
 +@end defun
 +
 +@defun display-pixel-height &optional display
 +This function returns the height of the screen in pixels.
 +On a character terminal, it gives the height in characters.
 +
 +For graphical terminals, note that on ``multi-monitor'' setups this
 +refers to the pixel width for all physical monitors associated with
 +@var{display}.  @xref{Multiple Displays}.
 +@end defun
 +
 +@defun display-pixel-width &optional display
 +This function returns the width of the screen in pixels.
 +On a character terminal, it gives the width in characters.
 +
 +For graphical terminals, note that on ``multi-monitor'' setups this
 +refers to the pixel width for all physical monitors associated with
 +@var{display}.  @xref{Multiple Displays}.
 +@end defun
 +
 +@defun display-mm-height &optional display
 +This function returns the height of the screen in millimeters,
 +or @code{nil} if Emacs cannot get that information.
 +@end defun
 +
 +@defun display-mm-width &optional display
 +This function returns the width of the screen in millimeters,
 +or @code{nil} if Emacs cannot get that information.
 +@end defun
 +
 +@defvar display-mm-dimensions-alist
 +This variable allows the user to specify the dimensions of graphical
 +displays returned by @code{display-mm-height} and
 +@code{display-mm-width} in case the system provides incorrect values.
 +@end defvar
 +
 +@defun display-backing-store &optional display
 +This function returns the backing store capability of the display.
 +Backing store means recording the pixels of windows (and parts of
 +windows) that are not exposed, so that when exposed they can be
 +displayed very quickly.
 +
 +Values can be the symbols @code{always}, @code{when-mapped}, or
 +@code{not-useful}.  The function can also return @code{nil}
 +when the question is inapplicable to a certain kind of display.
 +@end defun
 +
 +@defun display-save-under &optional display
 +This function returns non-@code{nil} if the display supports the
 +SaveUnder feature.  That feature is used by pop-up windows
 +to save the pixels they obscure, so that they can pop down
 +quickly.
 +@end defun
 +
 +@defun display-planes &optional display
 +This function returns the number of planes the display supports.
 +This is typically the number of bits per pixel.
 +For a tty display, it is log to base two of the number of colors supported.
 +@end defun
 +
 +@defun display-visual-class &optional display
 +This function returns the visual class for the screen.  The value is one
 +of the symbols @code{static-gray}, @code{gray-scale},
 +@code{static-color}, @code{pseudo-color}, @code{true-color}, and
 +@code{direct-color}.
 +@end defun
 +
 +@defun display-color-cells &optional display
 +This function returns the number of color cells the screen supports.
 +@end defun
 +
 +  These functions obtain additional information specifically
 +about X displays.
 +
 +@defun x-server-version &optional display
 +This function returns the list of version numbers of the X server
 +running the display.  The value is a list of three integers: the major
 +and minor version numbers of the X protocol, and the
 +distributor-specific release number of the X server software itself.
 +@end defun
 +
 +@defun x-server-vendor &optional display
 +This function returns the ``vendor'' that provided the X server
 +software (as a string).  Really this means whoever distributes the X
 +server.
 +
 +When the developers of X labelled software distributors as
 +``vendors,'' they showed their false assumption that no system could
 +ever be developed and distributed noncommercially.
 +@end defun
 +
 +@ignore
 +@defvar x-no-window-manager
 +This variable's value is @code{t} if no X window manager is in use.
 +@end defvar
 +@end ignore
 +
 +@ignore
 +@item
 +The functions @code{x-pixel-width} and @code{x-pixel-height} return the
 +width and height of an X Window frame, measured in pixels.
 +@end ignore
 +
 +@ignore
 +   arch-tag: 94977df6-3dca-4730-b57b-c6329e9282ba
 +@end ignore
index 7c9a2ac1f1bb99babb63f679b1b15808b4134d1a,0000000000000000000000000000000000000000..80c9332996ab309cea3c9e3e413b49b05063cf57
mode 100644,000000..100644
--- /dev/null
@@@ -1,6998 -1,0 +1,6998 @@@
- You should probably start by skimming through the entire chapter
- @ref{Commands} to get an overview of @ccmode{}'s capabilities.
 +\input texinfo
 +@c Notes to self regarding line handling:
 +@c
 +@c Empty lines are often significant before @end directives; avoid them.
 +@c
 +@c Empty lines before and after @example directives are significant in
 +@c info output but not in TeX.  Empty lines inside @example directives
 +@c are significant.
 +
 +@c Conventions for formatting examples:
 +@c o  If the example contains empty lines then put the surrounding empty
 +@c    lines inside the @example directives.  Put them outside otherwise.
 +@c o  Use @group inside the example only if it shows indentation where
 +@c    the relation between lines inside is relevant.
 +@c o  Format line number columns like this:
 +@c     1: foo
 +@c     2: bar
 +@c       ^ one space
 +@c    ^^ two columns, right alignment
 +@c o  Check line lengths in TeX output; they can typically be no longer
 +@c    than 70 chars, 60 if the paragraph is indented.
 +
 +@comment TBD: Document the finer details of statement anchoring?
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@comment %**start of header (This is for running Texinfo on a region)
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@comment How to make the various output formats:
 +@comment (Thanks to Robert Chassell for supplying this information.)
 +@comment Note that Texinfo 4.7 (or later) is needed.
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@ignore
 +In each of the following pairs of commands, the first generates a
 +version with cross references pointing to the GNU Emacs manuals,
 +the second with them pointing to the XEmacs manuals.
 +    ## Info output
 +    makeinfo cc-mode.texi
 +    makeinfo -DXEMACS cc-mode.texi
 +
 +    ## DVI output
 +    ## You may need to set up the environment variable TEXINPUTS so
 +    ## that tex can find the file texinfo.tex - See the tex
 +    ## manpage.
 +    texi2dvi cc-mode.texi
 +    texi2dvi -t "@set XEMACS " cc-mode.texi
 +
 +    ## HTML output.  (The --no-split parameter is optional)
 +    makeinfo --html --no-split cc-mode.texi
 +    makeinfo --html --no-split -DXEMACS cc-mode.texi
 +
 +    ## Plain text output
 +    makeinfo --fill-column=70 --no-split --paragraph-indent=0 \
 +      --no-headers --output=cc-mode.txt cc-mode.texi
 +    makeinfo --fill-column=70 --no-split --paragraph-indent=0 \
 +      --no-headers --output=cc-mode.txt -DXEMACS cc-mode.texi
 +
 +    ## DocBook output
 +    makeinfo --docbook --no-split --paragraph-indent=0 \
 +      cc-mode.texi
 +    makeinfo --docbook --no-split --paragraph-indent=0 \
 +      -DXEMACS cc-mode.texi
 +
 +    ## XML output
 +    makeinfo --xml --no-split --paragraph-indent=0 \
 +      cc-mode.texi
 +    makeinfo --xml --no-split --paragraph-indent=0 \
 +      -DXEMACS cc-mode.texi
 +
 +    #### (You must be in the same directory as the viewed file.)
 +
 +      ## View DVI output
 +      xdvi cc-mode.dvi &
 +
 +      ## View HTML output
 +      mozilla cc-mode.html
 +@end ignore
 +
 +@comment No overfull hbox marks in the dvi file.
 +@finalout
 +
 +@setfilename  ../../info/ccmode
 +@settitle     CC Mode Manual
 +@footnotestyle end
 +
 +@c The following four macros generate the filenames and titles of the
 +@c main (X)Emacs manual and the Elisp/Lispref manual.  Leave the
 +@c Texinfo variable `XEMACS' unset to generate a GNU Emacs version, set it
 +@c to generate an XEmacs version, e.g. with
 +@c "makeinfo -DXEMACS cc-mode.texi".
 +@ifset XEMACS
 +@macro emacsman
 +xemacs
 +@end macro
 +@macro emacsmantitle
 +XEmacs User's Manual
 +@end macro
 +@macro lispref
 +lispref
 +@end macro
 +@macro lispreftitle
 +XEmacs Lisp Reference Manual
 +@end macro
 +@end ifset
 +
 +@ifclear XEMACS
 +@macro emacsman
 +emacs
 +@end macro
 +@macro emacsmantitle
 +GNU Emacs Manual
 +@end macro
 +@macro lispref
 +elisp
 +@end macro
 +@macro lispreftitle
 +GNU Emacs Lisp Reference Manual
 +@end macro
 +@end ifclear
 +
 +
 +@macro ccmode
 +CC Mode
 +@end macro
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@comment @setchapternewpage odd !! we don't want blank pages !!
 +@comment %**end of header (This is for running Texinfo on a region)
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@comment
 +@comment Texinfo manual for CC Mode
 +@comment Generated from the original README file by Krishna Padmasola
 +@comment <krishna@earth-gw.njit.edu>
 +@comment
 +@comment Authors:
 +@comment Barry A. Warsaw
 +@comment Martin Stjernholm
 +@comment Alan Mackenzie
 +@comment
 +@comment Maintained by Martin Stjernholm and Alan Mackenzie <bug-cc-mode@gnu.org>
 +@comment
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@comment Define an index for syntactic symbols.
 +@ifnottex @c In texi2dvi, the @defindex would create an empty cc-mode.ss
 +          @c For Info, unlike tex, @syncodeindex needs a matching @defindex.
 +@defindex ss
 +@end ifnottex
 +
 +@comment Combine key, syntactic symbol and concept indices into one.
 +@syncodeindex ss cp
 +@syncodeindex ky cp
 +
 +@copying
 +This manual is for CC Mode in Emacs.
 +
 +Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 +2003, 2004, 2005, 2006, 2007  Free Software Foundation, Inc.
 +
 +@quotation
 +Permission is granted to copy, distribute and/or modify this document
 +under the terms of the GNU Free Documentation License, Version 1.2 or
 +any later version published by the Free Software Foundation; with the
 +Invariant Sections being ``The GNU Manifesto'', ``Distribution'' and
 +``GNU GENERAL PUBLIC LICENSE'', with the Front-Cover texts being ``A GNU
 +Manual'', and with the Back-Cover Texts as in (a) below.  A copy of the
 +license is included in the section entitled ``GNU Free Documentation
 +License'' in the Emacs manual.
 +
 +(a) The FSF's Back-Cover Text is: ``You have freedom to copy and modify
 +this GNU Manual, like GNU software.  Copies published by the Free
 +Software Foundation raise funds for GNU development.''
 +
 +This document is part of a collection distributed under the GNU Free
 +Documentation License.  If you want to distribute this document
 +separately from the collection, you can do so by adding a copy of the
 +license to the document, as described in section 6 of the license.
 +@end quotation
 +@end copying
 +
 +@comment Info directory entry for use by install-info. The indentation
 +@comment here is by request from the FSF folks.
 +@dircategory Emacs
 +@direntry
 +* CC Mode: (ccmode).    Emacs mode for editing C, C++, Objective-C,
 +                        Java, Pike, AWK, and CORBA IDL code.
 +@end direntry
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@comment TeX title page
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@titlepage
 +@sp 10
 +
 +@center @titlefont{CC Mode 5.31}
 +@sp 2
 +@center @subtitlefont{A GNU Emacs mode for editing C and C-like languages}
 +@sp 2
 +@center Barry A. Warsaw, Martin Stjernholm, Alan Mackenzie
 +
 +@page
 +@vskip 0pt plus 1filll
 +@insertcopying
 +
 +This manual was generated from cc-mode.texi, which can be downloaded
 +from
 +@url{http://cvs.savannah.gnu.org/viewcvs/emacs/emacs/doc/misc/cc-mode.texi}.
 +@end titlepage
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@comment The Top node contains the master menu for the Info file.
 +@comment This appears only in the Info file, not the printed manual.
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@node    Top, Introduction, (dir), (dir)
 +@comment node-name, next, previous, up
 +
 +@ifinfo
 +@top @ccmode{}
 +
 +@ccmode{} is a GNU Emacs mode for editing files containing C, C++,
 +Objective-C, Java, CORBA IDL (and the variants PSDL and CIDL), Pike
 +and AWK code.  It provides syntax-based indentation, font locking, and
 +has several handy commands and some minor modes to make the editing
 +easier.  It does not provide tools to look up and navigate between
 +functions, classes etc - there are other packages for that.
 +@end ifinfo
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@menu
 +* Introduction::
 +* Overview::
 +* Getting Started::
 +* Commands::
 +* Font Locking::
 +* Config Basics::
 +* Custom Filling and Breaking::
 +* Custom Auto-newlines::
 +* Clean-ups::
 +* Indentation Engine Basics::
 +* Customizing Indentation::
 +* Custom Macros::
 +* Odds and Ends::
 +* Sample .emacs File::
 +* Performance Issues::
 +* Limitations and Known Bugs::
 +* FAQ::
 +* Updating CC Mode::
 +* Mailing Lists and Bug Reports::
 +* GNU Free Documentation License::
 +* Command and Function Index::
 +* Variable Index::
 +* Concept and Key Index::
 +
 +@detailmenu
 + --- The Detailed Node Listing ---
 +
 +Commands
 +
 +* Indentation Commands::
 +* Comment Commands::
 +* Movement Commands::
 +* Filling and Breaking::
 +* Minor Modes::
 +* Electric Keys::
 +* Auto-newlines::
 +* Hungry WS Deletion::
 +* Subword Movement::
 +* Other Commands::
 +
 +Font Locking
 +
 +* Font Locking Preliminaries::
 +* Faces::
 +* Doc Comments::
 +* AWK Mode Font Locking::
 +
 +Configuration Basics
 +
 +* CC Hooks::
 +* Style Variables::
 +* Styles::
 +
 +Styles
 +
 +* Built-in Styles::
 +* Choosing a Style::
 +* Adding Styles::
 +* File Styles::
 +
 +Customizing Auto-newlines
 +
 +* Hanging Braces::
 +* Hanging Colons::
 +* Hanging Semicolons and Commas::
 +
 +Hanging Braces
 +
 +* Custom Braces::
 +
 +Indentation Engine Basics
 +
 +* Syntactic Analysis::
 +* Syntactic Symbols::
 +* Indentation Calculation::
 +
 +Syntactic Symbols
 +
 +* Function Symbols::
 +* Class Symbols::
 +* Conditional Construct Symbols::
 +* Switch Statement Symbols::
 +* Brace List Symbols::
 +* External Scope Symbols::
 +* Paren List Symbols::
 +* Literal Symbols::
 +* Multiline Macro Symbols::
 +* Objective-C Method Symbols::
 +* Anonymous Class Symbol::
 +* Statement Block Symbols::
 +* K&R Symbols::
 +
 +Customizing Indentation
 +
 +* c-offsets-alist::
 +* Interactive Customization::
 +* Line-Up Functions::
 +* Custom Line-Up::
 +* Other Indentation::
 +
 +Line-Up Functions
 +
 +* Brace/Paren Line-Up::
 +* List Line-Up::
 +* Operator Line-Up::
 +* Comment Line-Up::
 +* Misc Line-Up::
 +
 +@end detailmenu
 +@end menu
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Introduction, Overview, Top, Top
 +@comment node-name, next, previous, up
 +@chapter Introduction
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex BOCM
 +@cindex history
 +@cindex awk-mode.el
 +@cindex c-mode.el
 +@cindex c++-mode.el
 +
 +Welcome to @ccmode{}, a GNU Emacs mode for editing files containing C,
 +C++, Objective-C, Java, CORBA IDL (and the variants CORBA PSDL and
 +CIDL), Pike and AWK code.  This incarnation of the mode is descended
 +from @file{c-mode.el} (also called ``Boring Old C Mode'' or BOCM
 +@t{:-)}, @file{c++-mode.el} version 2, which Barry Warsaw had been
 +maintaining since 1992, and @file{awk-mode.el}, a long neglected mode
 +in the (X)Emacs base.
 +
 +Late in 1997, Martin Stjernholm joined Barry on the @ccmode{}
 +Maintainers Team, and implemented the Pike support.  In 2000 Martin
 +took over as the sole maintainer.  In 2001 Alan Mackenzie joined the
 +team, implementing AWK support in version 5.30.  @ccmode{} did not
 +originally contain the font lock support for its languages --- that
 +was added in version 5.30.
 +
 +This manual describes @ccmode{}
 +@comment The following line must appear on its own, so that the
 +version 5.31.
 +@comment Release.py script can update the version number automatically
 +
 +@ccmode{} supports the editing of K&R and ANSI C, C++, Objective-C,
 +Java, CORBA's Interface Definition Language, Pike@footnote{A C-like
 +scripting language with its roots in the LPC language used in some MUD
 +engines.  See @uref{http://pike.ida.liu.se/}.} and AWK files.  In this
 +way, you can easily set up consistent font locking and coding styles for
 +use in editing all of these languages, although AWK is not yet as
 +uniformly integrated as the other languages.
 +
 +@findex c-mode
 +@findex c++-mode
 +@findex objc-mode
 +@findex java-mode
 +@findex idl-mode
 +@findex pike-mode
 +@findex awk-mode
 +Note that the name of this package is ``@ccmode{}'', but there is no top
 +level @code{cc-mode} entry point.  All of the variables, commands, and
 +functions in @ccmode{} are prefixed with @code{c-@var{thing}}, and
 +@code{c-mode}, @code{c++-mode}, @code{objc-mode}, @code{java-mode},
 +@code{idl-mode}, @code{pike-mode}, and @code{awk-mode} entry points are
 +provided.  This package is intended to be a replacement for
 +@file{c-mode.el}, @file{c++-mode.el} and @file{awk-mode.el}.
 +
 +A special word of thanks goes to Krishna Padmasola for his work in
 +converting the original @file{README} file to Texinfo format.  I'd
 +also like to thank all the @ccmode{} victims who help enormously
 +during the early beta stages of @ccmode{}'s development.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Overview, Getting Started, Introduction, Top
 +@comment  node-name,  next,  previous,  up@cindex organization of the manual
 +@chapter Overview of the Manual
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@noindent
 +The manual starts with several introductory chapters (including this
 +one).
 +
 +@noindent
 +The next chunk of the manual describes the day to day @emph{use} of
 +@ccmode{} (as contrasted with how to customize it).
 +
 +@itemize @bullet
 +@item
 +The chapter ``Commands'' describes in detail how to use (nearly) all
 +of @ccmode{}'s features.  There are extensive cross-references from
 +here to the corresponding sections later in the manual which tell you
 +how to customize these features.
 +
 +@item
 +``Font Locking'' describes how ``syntax highlighting'' is applied to
 +your buffers.  It is mainly background information and can be skipped
 +over at a first reading.
 +@end itemize
 +
 +@noindent
 +The next chunk of the manual describes how to @emph{customize}
 +@ccmode{}.  Typically, an overview of a topic is given at the chapter
 +level, then the sections and subsections describe the material in
 +increasing detail.
 +
 +@itemize @bullet
 +@item
 +The chapter ``Configuration Basics'' tells you @emph{how} to write
 +customizations - whether in hooks, in styles, in both, or in neither,
 +depending on your needs.  It describes the @ccmode{} style system and
 +lists the standard styles that @ccmode{} supplies.
 +
 +@item
 +The next few chapters describe in detail how to customize the various
 +features of @ccmode{}.
 +
 +@item
 +Finally, there is a sample @file{.emacs} fragment, which might help you
 +in creating your own customization.
 +@end itemize
 +
 +@noindent
 +The manual ends with ``this and that'', things that don't fit cleanly
 +into any of the previous chunks.
 +
 +@itemize @bullet
 +@item
 +Two chapters discuss the performance of @ccmode{} and known
 +bugs/limitations.
 +
 +@item
 +The FAQ contains a list of common problems and questions.
 +
 +@item
 +The next two chapters tell you how to get in touch with the @ccmode{}
 +project - whether for updating @ccmode{} or submitting bug reports.
 +@end itemize
 +
 +@noindent
 +Finally, there are the customary indices.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Getting Started, Commands, Overview, Top
 +@comment node-name, next, previous, up
 +@chapter Getting Started
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +If you got this version of @ccmode{} with Emacs or XEmacs, it should
 +work just fine right out of the box.  Note however that you might not
 +have the latest @ccmode{} release and might want to upgrade your copy
 +(see below).
 +
++You should probably start by skimming through the entire Commands chapter
++(@pxref{Commands}) to get an overview of @ccmode{}'s capabilities.
 +
 +After trying out some commands, you may dislike some aspects of
 +@ccmode{}'s default configuration.  Here is an outline of how to
 +change some of the settings that newcomers to @ccmode{} most often
 +want to change:
 +
 +@table @asis
 +@item c-basic-offset
 +This Lisp variable holds an integer, the number of columns @ccmode{}
 +indents nested code.  To set this value to 6, customize
 +@code{c-basic-offset} or put this into your @file{.emacs}:
 +
 +@example
 +(setq c-basic-offset 6)
 +@end example
 +
 +@item The (indentation) style
 +The basic ``shape'' of indentation created by @ccmode{}---by default,
 +this is @code{gnu} style (except for Java and AWK buffers).  A list of
 +the available styles and their descriptions can be found in
 +@ref{Built-in Styles}.  A complete specification of the @ccmode{}
 +style system, including how to create your own style, can be found in
 +the chapter @ref{Styles}.  To set your style to @code{linux}, either
 +customize @code{c-default-style} or put this into your @file{.emacs}:
 +
 +@example
 +(setq c-default-style '((java-mode . "java")
 +                        (awk-mode . "awk")
 +                        (other . "linux")))
 +@end example
 +
 +@item Electric Indentation
 +Normally, when you type ``punctuation'' characters such as @samp{;} or
 +@samp{@{}, @ccmode{} instantly reindents the current line.  This can
 +be disconcerting until you get used to it.  To disable @dfn{electric
 +indentation} in the current buffer, type @kbd{C-c C-l}.  Type the same
 +thing to enable it again.  To have electric indentation disabled by
 +default, put the following into your @file{.emacs} file@footnote{There
 +is no ``easy customization'' facility for making this change.}:
 +
 +@example
 +(setq-default c-electric-flag nil)
 +@end example
 +
 +@noindent
 +Details of this and other similar ``Minor Modes'' appear in the
 +section @ref{Minor Modes}.
 +
 +@item Making the @key{RET} key indent the new line
 +The standard Emacs binding for @key{RET} just adds a new line.  If you
 +want it to reindent the new line as well, rebind the key.  Note that
 +the action of rebinding would fail if the pertinent keymap didn't yet
 +exist---we thus need to delay the action until after @ccmode{} has
 +been loaded.  Put the following code into your @file{.emacs}:
 +
 +@example
 +(defun my-make-CR-do-indent ()
 +  (define-key c-mode-base-map "\C-m" 'c-context-line-break))
 +(add-hook 'c-initialization-hook 'my-make-CR-do-indent)
 +@end example
 +
 +@noindent
 +This example demonstrates the use of a very powerful @ccmode{} (and
 +Emacs) facility, the hook.  The use of @ccmode{}'s hooks is described
 +in @ref{CC Hooks}.
 +@end table
 +
 +All these settings should occur in your @file{.emacs} @emph{before}
 +any @ccmode{} buffers get loaded---in particular, before any call of
 +@code{desktop-read}.
 +
 +As you get to know the mode better, you may want to make more
 +ambitious changes to your configuration.  For this, you should start
 +reading the chapter @ref{Config Basics}.
 +
 +If you are upgrading an existing @ccmode{} installation, please see
 +the @file{README} file for installation details.  In particular, if
 +you are going to be editing AWK files, @file{README} describes how to
 +configure your (X)Emacs so that @ccmode{} will supersede the obsolete
 +@code{awk-mode.el} which might have been supplied with your (X)Emacs.
 +@ccmode{} might not work with older versions of Emacs or XEmacs.  See
 +the @ccmode{} release notes at @uref{http://cc-mode.sourceforge.net}
 +for the latest information on Emacs version and package compatibility
 +(@pxref{Updating CC Mode}).
 +
 +@deffn Command c-version
 +@findex version (c-)
 +You can find out what version of @ccmode{} you are using by visiting a C
 +file and entering @kbd{M-x c-version RET}.  You should see this message in
 +the echo area:
 +
 +@example
 +Using CC Mode version 5.XX
 +@end example
 +
 +@noindent
 +where @samp{XX} is the minor release number.
 +@end deffn
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Commands, Font Locking, Getting Started, Top
 +@comment node-name, next, previous, up
 +@chapter Commands
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +This chapter specifies all of CC Mode's commands, and thus contains
 +nearly everything you need to know to @emph{use} @ccmode{} (as
 +contrasted with configuring it).  @dfn{Commands} here means both
 +control key sequences and @dfn{electric keys}, these being characters
 +such as @samp{;} which, as well as inserting themselves into the
 +buffer, also do other things.
 +
 +You might well want to review
 +@ifset XEMACS
 +@ref{Lists,,,@emacsman{}, @emacsmantitle{}},
 +@end ifset
 +@ifclear XEMACS
 +@ref{Moving by Parens,,,@emacsman{}, @emacsmantitle{}},
 +@end ifclear
 +which describes commands for moving around brace and parenthesis
 +structures.
 +
 +
 +@menu
 +* Indentation Commands::
 +* Comment Commands::
 +* Movement Commands::
 +* Filling and Breaking::
 +* Minor Modes::
 +* Electric Keys::
 +* Auto-newlines::
 +* Hungry WS Deletion::
 +* Subword Movement::
 +* Other Commands::
 +@end menu
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Indentation Commands, Comment Commands, Commands, Commands
 +@comment node-name, next, previous,up
 +@section Indentation Commands
 +@cindex indentation
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The following commands reindent C constructs.  Note that when you
 +change your coding style, either interactively or through some other
 +means, your file does @emph{not} automatically get reindented.  You
 +will need to execute one of the following commands to see the effects
 +of your changes.
 +
 +@cindex GNU indent program
 +Also, variables like @code{c-hanging-*} and @code{c-cleanup-list}
 +(@pxref{Custom Auto-newlines}) only affect how on-the-fly code is
 +formatted.  Changing the ``hanginess'' of a brace and then
 +reindenting, will not move the brace to a different line.  For this,
 +you're better off getting an external program like GNU @code{indent},
 +which will rearrange brace location, amongst other things.
 +
 +Preprocessor directives are handled as syntactic whitespace from other
 +code, i.e. they can be interspersed anywhere without affecting the
 +indentation of the surrounding code, just like comments.
 +
 +The code inside macro definitions is, by default, still analyzed
 +syntactically so that you get relative indentation there just as you'd
 +get if the same code was outside a macro.  However, since there is no
 +hint about the syntactic context, i.e. whether the macro expands to an
 +expression, to some statements, or perhaps to whole functions, the
 +syntactic recognition can be wrong.  @ccmode{} manages to figure it
 +out correctly most of the time, though.
 +
 +Reindenting large sections of code can take a long time.  When
 +@ccmode{} reindents a region of code, it is essentially equivalent to
 +hitting @key{TAB} on every line of the region.
 +
 +These commands indent code:
 +
 +@table @asis
 +@item @kbd{@key{TAB}} (@code{c-indent-command})
 +@kindex TAB
 +@findex c-indent-command
 +@findex indent-command (c-)
 +This command indents the current line.  That is all you need to know
 +about it for normal use.
 +
 +@code{c-indent-command} does different things, depending on the
 +setting of @code{c-syntactic-indentation} (@pxref{Indentation Engine
 +Basics}):
 +
 +@itemize @bullet
 +@item
 +When it's non-@code{nil} (which it normally is), the command indents
 +the line according to its syntactic context.  With a prefix argument
 +(@kbd{C-u @key{TAB}}), it will re-indent the entire
 +expression@footnote{this is only useful for a line starting with a
 +comment opener or an opening brace, parenthesis, or string quote.}
 +that begins at the line's left margin.
 +
 +@item
 +When it's @code{nil}, the command indents the line by an extra
 +@code{c-basic-offset} columns.  A prefix argument acts as a
 +multiplier.  A bare prefix (@kbd{C-u @key{TAB}}) is equivalent to -1,
 +removing @code{c-basic-offset} columns from the indentation.
 +@end itemize
 +
 +The precise behavior is modified by several variables: With
 +@code{c-tab-always-indent}, you can make @key{TAB} insert whitespace
 +in some circumstances---@code{c-insert-tab-function} then defines
 +precisely what sort of ``whitespace'' this will be.  Set the standard
 +Emacs variable @code{indent-tabs-mode} to @code{t} if you want real
 +@samp{tab} characters to be used in the indentation, to @code{nil} if
 +you want only spaces.  @xref{Just Spaces,,, @emacsman{},
 +@emacsmantitle{}}.
 +
 +@defopt c-tab-always-indent
 +@vindex tab-always-indent (c-)
 +@cindex literal
 +This variable modifies how @key{TAB} operates.
 +@itemize @bullet
 +@item
 +When it is @code{t} (the default), @key{TAB} simply indents the
 +current line.
 +@item
 +When it is @code{nil}, @key{TAB} (re)indents the line only if point is
 +to the left of the first non-whitespace character on the line.
 +Otherwise it inserts some whitespace (a tab or an equivalent number of
 +spaces - see below) at point.
 +@item
 +With some other value, the line is reindented.  Additionally, if point
 +is within a string or comment, some whitespace is inserted.
 +@end itemize
 +@end defopt
 +
 +@defopt c-insert-tab-function
 +@vindex insert-tab-function (c-)
 +@findex tab-to-tab-stop
 +When ``some whitespace'' is inserted as described above, what actually
 +happens is that the function stored in @code{c-insert-tab-function} is
 +called.  Normally, this is @code{insert-tab}, which inserts a real tab
 +character or the equivalent number of spaces (depending on
 +@code{indent-tabs-mode}).  Some people, however, set
 +@code{c-insert-tab-function} to @code{tab-to-tab-stop} so as to get
 +hard tab stops when indenting.
 +@end defopt
 +@end table
 +
 +@noindent
 +The kind of indentation the next five commands do depends on the
 +setting of @code{c-syntactic-indentation} (@pxref{Indentation Engine
 +Basics}):
 +@itemize @bullet
 +@item
 +when it is non-@code{nil} (the default), the commands indent lines
 +according to their syntactic context;
 +@item
 +when it is @code{nil}, they just indent each line the same amount as
 +the previous non-blank line.  The commands that indent a region aren't
 +very useful in this case.
 +@end itemize
 +
 +@table @asis
 +@item @kbd{C-j} (@code{newline-and-indent})
 +@kindex C-j
 +@findex newline-and-indent
 +Inserts a newline and indents the new blank line, ready to start
 +typing.  This is a standard (X)Emacs command.
 +
 +@item @kbd{C-M-q} (@code{c-indent-exp})
 +@kindex C-M-q
 +@findex c-indent-exp
 +@findex indent-exp (c-)
 +Indents an entire balanced brace or parenthesis expression.  Note that
 +point must be on the opening brace or parenthesis of the expression
 +you want to indent.
 +
 +@item @kbd{C-c C-q} (@code{c-indent-defun})
 +@kindex C-c C-q
 +@findex c-indent-defun
 +@findex indent-defun (c-)
 +Indents the entire top-level function, class or macro definition
 +encompassing point.  It leaves point unchanged.  This function can't be
 +used to reindent a nested brace construct, such as a nested class or
 +function, or a Java method.  The top-level construct being reindented
 +must be complete, i.e. it must have both a beginning brace and an ending
 +brace.
 +
 +@item @kbd{C-M-\} (@code{indent-region})
 +@kindex C-M-\
 +@findex indent-region
 +Indents an arbitrary region of code.  This is a standard Emacs command,
 +tailored for C code in a @ccmode{} buffer.  Note, of course, that point
 +and mark must delineate the region you want to indent.
 +
 +@item @kbd{C-M-h} (@code{c-mark-function})
 +@kindex C-M-h
 +@findex c-mark-function
 +@findex mark-function (c-)
 +While not strictly an indentation command, this is useful for marking
 +the current top-level function or class definition as the current
 +region.  As with @code{c-indent-defun}, this command operates on
 +top-level constructs, and can't be used to mark say, a Java method.
 +@end table
 +
 +These variables are also useful when indenting code:
 +
 +@defopt indent-tabs-mode
 +This is a standard Emacs variable that controls how line indentation
 +is composed.  When it's non-@code{nil}, tabs can be used in a line's
 +indentation, otherwise only spaces are used.
 +@end defopt
 +
 +@defopt c-progress-interval
 +@vindex progress-interval (c-)
 +When indenting large regions of code, this variable controls how often a
 +progress message is displayed.  Set this variable to @code{nil} to
 +inhibit the progress messages, or set it to an integer which is how
 +often (in seconds) progress messages are to be displayed.
 +@end defopt
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Comment Commands, Movement Commands, Indentation Commands, Commands
 +@comment node-name, next, previous, up
 +@section Comment Commands
 +@cindex comments (insertion of)
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@table @asis
 +@item @kbd{C-c C-c} (@code{comment-region})
 +@kindex C-c C-c
 +@findex comment-region
 +This command comments out the lines that start in the region.  With a
 +negative argument, it does the opposite - it deletes the comment
 +delimiters from these lines.  @xref{Multi-Line Comments,,, emacs, GNU
 +Emacs Manual}, for fuller details.  @code{comment-region} isn't
 +actually part of @ccmode{} - it is given a @ccmode{} binding for
 +convenience.
 +
 +@item @kbd{M-;} (@code{comment-dwim} or @code{indent-for-comment} @footnote{The name of this command varies between (X)Emacs versions.})
 +@kindex M-;
 +@findex comment-dwim
 +@findex indent-for-comment
 +Insert a comment at the end of the current line, if none is there
 +already.  Then reindent the comment according to @code{comment-column}
 +@ifclear XEMACS
 +(@pxref{Options for Comments,,, emacs, GNU Emacs Manual})
 +@end ifclear
 +@ifset XEMACS
 +(@pxref{Comments,,, xemacs, XEmacs User's Manual})
 +@end ifset
 +and the variables below.  Finally, position the point after the
 +comment starter.  @kbd{C-u M-;} kills any comment on the current line,
 +together with any whitespace before it.  This is a standard Emacs
 +command, but @ccmode{} enhances it a bit with two variables:
 +
 +@defopt c-indent-comment-alist
 +@vindex indent-comment-alist (c-)
 +@vindex comment-column
 +This style variable allows you to vary the column that @kbd{M-;} puts
 +the comment at, depending on what sort of code is on the line, and
 +possibly the indentation of any similar comment on the preceding line.
 +It is an association list that maps different types of lines to
 +actions describing how they should be handled.  If a certain line type
 +isn't present on the list then the line is indented to the column
 +specified by @code{comment-column}.
 +
 +See the documentation string for a full description of this
 +variable (use @kbd{C-h v c-indent-comment-alist}).
 +@end defopt
 +
 +@defopt c-indent-comments-syntactically-p
 +@vindex indent-comments-syntactically-p (c-)
 +Normally, when this style variable is @code{nil}, @kbd{M-;} will
 +indent comment-only lines according to @code{c-indent-comment-alist},
 +just as it does with lines where other code precede the comments.
 +However, if you want it to act just like @key{TAB} for comment-only
 +lines you can get that by setting
 +@code{c-indent-comments-syntactically-p} to non-@code{nil}.
 +
 +If @code{c-indent-comments-syntactically-p} is non-@code{nil} then
 +@code{c-indent-comment-alist} won't be consulted at all for comment-only
 +lines.
 +@end defopt
 +@end table
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Movement Commands, Filling and Breaking, Comment Commands, Commands
 +@comment node-name, next, previous, up
 +@section Movement Commands
 +@cindex movement
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@ccmode{} contains some useful commands for moving around in C code.
 +
 +@table @asis
 +@item @kbd{C-M-a} (@code{c-beginning-of-defun})
 +@itemx @kbd{C-M-e} (@code{c-end-of-defun})
 +@findex c-beginning-of-defun
 +@findex c-end-of-defun
 +
 +Move to the beginning or end of the current or next function.  Other
 +constructs (such as a structs or classes) which have a brace block
 +also count as ``functions'' here.  To move over several functions, you
 +can give these commands a repeat count.
 +
 +The start of a function is at its header.  The end of the function is
 +after its closing brace, or after the semicolon of a construct (such
 +as a @code{struct}) which doesn't end at the brace.  These two
 +commands try to leave point at the beginning of a line near the actual
 +start or end of the function.  This occasionally causes point not to
 +move at all.
 +
 +These functions are analogous to the Emacs built-in commands
 +@code{beginning-of-defun} and @code{end-of-defun}, except they
 +eliminate the constraint that the top-level opening brace of the defun
 +must be in column zero.  See @ref{Defuns,,,@emacsman{},
 +@emacsmantitle{}}, for more information.
 +
 +@item @kbd{C-M-a} (AWK Mode) (@code{c-awk-beginning-of-defun})
 +@itemx @kbd{C-M-e} (AWK Mode) (@code{c-awk-end-of-defun})
 +@kindex C-M-a (AWK Mode)
 +@kindex C-M-e (AWK Mode)
 +@findex c-awk-beginning-of-defun
 +@findex awk-beginning-of-defun (c-)
 +@findex c-awk-end-of-defun
 +@findex awk-end-of-defun (c-)
 +Move to the beginning or end of the current or next AWK defun.  These
 +commands can take prefix-arguments, their functionality being entirely
 +equivalent to @code{beginning-of-defun} and @code{end-of-defun}.
 +
 +AWK Mode @dfn{defuns} are either pattern/action pairs (either of which
 +might be implicit) or user defined functions.  Having the @samp{@{} and
 +@samp{@}} (if there are any) in column zero, as is suggested for some
 +modes, is neither necessary nor helpful in AWK mode.
 +
 +@item @kbd{M-a} (@code{c-beginning-of-statement})
 +@itemx @kbd{M-e} (@code{c-end-of-statement})
 +@kindex M-a
 +@kindex M-e
 +@findex c-beginning-of-statement
 +@findex c-end-of-statement
 +@findex beginning-of-statement (c-)
 +@findex end-of-statement (c-)
 +Move to the beginning or end of the innermost C statement.  If point
 +is already there, move to the next beginning or end of a statement,
 +even if that means moving into a block.  (Use @kbd{C-M-b} or
 +@kbd{C-M-f} to move over a balanced block.)  A prefix argument @var{n}
 +means move over @var{n} statements.
 +
 +If point is within or next to a comment or a string which spans more
 +than one line, these commands move by sentences instead of statements.
 +
 +When called from a program, these functions take three optional
 +arguments: the repetition count, a buffer position limit which is the
 +farthest back to search for the syntactic context, and a flag saying
 +whether to do sentence motion in or near comments and multiline
 +strings.
 +
 +@item @kbd{C-c C-u} (@code{c-up-conditional})
 +@kindex C-c C-u
 +@findex c-up-conditional
 +@findex up-conditional (c-)
 +Move back to the containing preprocessor conditional, leaving the mark
 +behind.  A prefix argument acts as a repeat count.  With a negative
 +argument, move forward to the end of the containing preprocessor
 +conditional.
 +
 +@samp{#elif} is treated like @samp{#else} followed by @samp{#if}, so the
 +function stops at them when going backward, but not when going
 +forward.
 +
 +This key sequence is not bound in AWK Mode, which doesn't have
 +preprocessor statements.
 +
 +@item @kbd{M-x c-up-conditional-with-else}
 +@findex c-up-conditional-with-else
 +@findex up-conditional-with-else (c-)
 +A variety of @code{c-up-conditional} that also stops at @samp{#else}
 +lines.  Normally those lines are ignored.
 +
 +@item @kbd{M-x c-down-conditional}
 +@findex c-down-conditional
 +@findex down-conditional (c-)
 +Move forward into the next nested preprocessor conditional, leaving
 +the mark behind.  A prefix argument acts as a repeat count.  With a
 +negative argument, move backward into the previous nested preprocessor
 +conditional.
 +
 +@samp{#elif} is treated like @samp{#else} followed by @samp{#if}, so the
 +function stops at them when going forward, but not when going backward.
 +
 +@item @kbd{M-x c-down-conditional-with-else}
 +@findex c-down-conditional-with-else
 +@findex down-conditional-with-else (c-)
 +A variety of @code{c-down-conditional} that also stops at @samp{#else}
 +lines.  Normally those lines are ignored.
 +
 +@item @kbd{C-c C-p} (@code{c-backward-conditional})
 +@itemx @kbd{C-c C-n} (@code{c-forward-conditional})
 +@kindex C-c C-p
 +@kindex C-c C-n
 +@findex c-backward-conditional
 +@findex c-forward-conditional
 +@findex backward-conditional (c-)
 +@findex forward-conditional (c-)
 +Move backward or forward across a preprocessor conditional, leaving
 +the mark behind.  A prefix argument acts as a repeat count.  With a
 +negative argument, move in the opposite direction.
 +
 +These key sequences are not bound in AWK Mode, which doesn't have
 +preprocessor statements.
 +
 +@item @kbd{M-x c-backward-into-nomenclature}
 +@itemx @kbd{M-x c-forward-into-nomenclature}
 +@findex c-backward-into-nomenclature
 +@findex c-forward-into-nomenclature
 +@findex backward-into-nomenclature (c-)
 +@findex forward-into-nomenclature (c-)
 +A popular programming style, especially for object-oriented languages
 +such as C++ is to write symbols in a mixed case format, where the
 +first letter of each word is capitalized, and not separated by
 +underscores.  E.g. @samp{SymbolsWithMixedCaseAndNoUnderlines}.
 +
 +These commands move backward or forward to the beginning of the next
 +capitalized word.  With prefix argument @var{n}, move @var{n} times.
 +If @var{n} is negative, move in the opposite direction.
 +
 +Note that these two commands have been superseded by
 +@code{c-subword-mode}, which you should use instead.  @xref{Subword
 +Movement}.  They might be removed from a future release of @ccmode{}.
 +@end table
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Filling and Breaking, Minor Modes, Movement Commands, Commands
 +@comment  node-name,  next,  previous,  up
 +@section Filling and Line Breaking Commands
 +@cindex text filling
 +@cindex line breaking
 +@cindex comment handling
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Since there's a lot of normal text in comments and string literals,
 +@ccmode{} provides features to edit these like in text mode.  The goal
 +is to do it seamlessly, i.e. you can use auto fill mode, sentence and
 +paragraph movement, paragraph filling, adaptive filling etc. wherever
 +there's a piece of normal text without having to think much about it.
 +@ccmode{} keeps the indentation, fixes suitable comment line prefixes,
 +and so on.
 +
 +You can configure the exact way comments get filled and broken, and
 +where Emacs does auto-filling (see @pxref{Custom Filling and
 +Breaking}).  Typically, the style system (@pxref{Styles}) will have
 +set this up for you, so you probably won't have to bother.
 +
 +@findex auto-fill-mode
 +@cindex Auto Fill mode
 +@cindex paragraph filling
 +Line breaks are by default handled (almost) the same regardless of
 +whether they are made by auto fill mode (@pxref{Auto Fill,,,
 +@emacsman{}, @emacsmantitle{}}), by paragraph filling (e.g. with
 +@kbd{M-q}), or explicitly with @kbd{M-j} or similar methods.  In
 +string literals, the new line gets the same indentation as the
 +previous nonempty line.@footnote{You can change this default by
 +setting the @code{string} syntactic symbol (@pxref{Syntactic Symbols}
 +and @pxref{Customizing Indentation})}.
 +
 +@table @asis
 +@item @kbd{M-q} (@code{c-fill-paragraph})
 +@kindex M-q
 +@findex c-fill-paragraph
 +@findex fill-paragraph (c-)
 +@cindex Javadoc markup
 +@cindex Pike autodoc markup
 +This command fills multiline string literals and both block
 +and line style comments.  In Java buffers, the Javadoc markup words
 +are recognized as paragraph starters.  The line oriented Pike autodoc
 +markup words are recognized in the same way in Pike mode.
 +
 +The formatting of the starters (@code{/*}) and enders (@code{*/}) of
 +block comments are kept as they were before the filling.  I.e., if
 +either the starter or ender were on a line of its own, then it stays
 +on its own line; conversely, if the delimiter has comment text on its
 +line, it keeps at least one word of that text with it on the line.
 +
 +This command is the replacement for @code{fill-paragraph} in @ccmode{}
 +buffers.
 +
 +@item @kbd{M-j} (@code{c-indent-new-comment-line})
 +@kindex M-j
 +@findex c-indent-new-comment-line
 +@findex indent-new-comment-line (c-)
 +This breaks the current line at point and indents the new line.  If
 +point was in a comment, the new line gets the proper comment line
 +prefix.  If point was inside a macro, a backslash is inserted before
 +the line break.  It is the replacement for
 +@code{indent-new-comment-line}.
 +
 +@item @kbd{M-x c-context-line-break}
 +@findex c-context-line-break
 +@findex context-line-break (c-)
 +Insert a line break suitable to the context: If the point is inside a
 +comment, the new line gets the suitable indentation and comment line
 +prefix like @code{c-indent-new-comment-line}.  In normal code it's
 +indented like @code{newline-and-indent} would do.  In macros it acts
 +like @code{newline-and-indent} but additionally inserts and optionally
 +aligns the line ending backslash so that the macro remains unbroken.
 +@xref{Custom Macros}, for details about the backslash alignment.  In a
 +string, a backslash is inserted only if the string is within a
 +macro@footnote{In GCC, unescaped line breaks within strings are
 +valid.}.
 +
 +This function is not bound to a key by default, but it's intended to be
 +used on the @kbd{RET} key.  If you like the behavior of
 +@code{newline-and-indent} on @kbd{RET}, you should consider switching to
 +this function.  @xref{Sample .emacs File}.
 +
 +@item @kbd{M-x c-context-open-line}
 +@findex c-context-open-line
 +@findex context-open-line (c-)
 +This is to @kbd{C-o} (@kbd{M-x open-line}) as
 +@code{c-context-line-break} is to @kbd{RET}.  I.e. it works just like
 +@code{c-context-line-break} but leaves the point before the inserted
 +line break.
 +@end table
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Minor Modes, Electric Keys, Filling and Breaking, Commands
 +@comment node-name, next, previous, up
 +@section Minor Modes
 +@cindex Minor Modes
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@ccmode{} contains several minor-mode-like features that you might
 +find useful while writing new code or editing old code:
 +
 +@table @asis
 +@item electric mode
 +When this is enabled, certain visible characters cause reformatting as
 +they are typed.  This is normally helpful, but can be a nuisance when
 +editing chaotically formatted code.  It can also be disconcerting,
 +especially for users who are new to @ccmode{}.
 +@item auto-newline mode
 +This automatically inserts newlines where you'd probably want to type
 +them yourself, e.g. after typing @samp{@}}s.  Its action is suppressed
 +when electric mode is disabled.
 +@item hungry-delete mode
 +This lets you delete a contiguous block of whitespace with a single
 +key - for example, the newline and indentation just inserted by
 +auto-newline when you want to back up and write a comment after the
 +last statement.
 +@item subword mode
 +This mode makes basic word movement commands like @kbd{M-f}
 +(@code{forward-word}) and @kbd{M-b} (@code{backward-word}) treat the
 +parts of sillycapsed symbols as different words.
 +E.g. @samp{NSGraphicsContext} is treated as three words @samp{NS},
 +@samp{Graphics}, and @samp{Context}.
 +@item syntactic-indentation mode
 +When this is enabled (which it normally is), indentation commands such
 +as @kbd{C-j} indent lines of code according to their syntactic
 +structure.  Otherwise, a line is simply indented to the same level as
 +the previous one and @kbd{@key{TAB}} adjusts the indentation in steps
 +of `c-basic-offset'.
 +@end table
 +
 +Full details on how these minor modes work are at @ref{Electric Keys},
 +@ref{Auto-newlines}, @ref{Hungry WS Deletion}, @ref{Subword Movement},
 +and @ref{Indentation Engine Basics}.
 +
 +You can toggle each of these minor modes on and off, and you can
 +configure @ccmode{} so that it starts up with your favourite
 +combination of them (@pxref{Sample .emacs File}).  By default, when
 +you initialize a buffer, electric mode and syntactic-indentation mode
 +are enabled but the other two modes are disabled.
 +
 +@ccmode{} displays the current state of the first four of these minor
 +modes on the modeline by appending letters to the major mode's name,
 +one letter for each enabled minor mode - @samp{l} for electric mode,
 +@samp{a} for auto-newline mode, @samp{h} for hungry delete mode, and
 +@samp{w} for subword mode.  If all these modes were enabled, you'd see
 +@samp{C/lahw}@footnote{The @samp{C} would be replaced with the name of
 +the language in question for the other languages @ccmode{} supports.}.
 +
 +Here are the commands to toggle these modes:
 +
 +@table @asis
 +@item @kbd{C-c C-l} (@code{c-toggle-electric-state})
 +@kindex C-c C-l
 +@findex c-toggle-electric-state
 +@findex toggle-electric-state (c-)
 +Toggle electric minor mode.  When the command turns the mode off, it
 +also suppresses auto-newline mode.
 +
 +@item @kbd{C-c C-a} (@code{c-toggle-auto-newline})
 +@kindex C-c C-a
 +@findex c-toggle-auto-newline
 +@findex toggle-auto-newline (c-)
 +Toggle auto-newline minor mode.  When the command turns the mode on,
 +it also enables electric minor mode.
 +
 +@item @kbd{M-x c-toggle-hungry-state}@footnote{Prior to @ccmode{} 5.31, this command was bound to @kbd{C-c C-d}.}
 +@findex c-toggle-hungry-state
 +@findex toggle-hungry-state (c-)
 +Toggle hungry-delete minor mode.
 +
 +@item @kbd{M-x c-toggle-auto-hungry-state}@footnote{Prior to @ccmode{} 5.31, this command was bound to @kbd{C-c C-t}.}
 +@findex c-toggle-auto-hungry-state
 +@findex toggle-auto-hungry-state (c-)
 +Toggle both auto-newline and hungry delete minor modes.
 +
 +@item @kbd{C-c C-w} (@code{M-x c-subword-mode})
 +@kindex C-c C-w
 +@findex c-subword-mode
 +@findex subword-mode (c-)
 +Toggle subword mode.
 +
 +@item @kbd{M-x c-toggle-syntactic-indentation}
 +@findex c-toggle-syntactic-indentation
 +@findex toggle-syntactic-indentation (c-)
 +Toggle syntactic-indentation mode.
 +@end table
 +
 +Common to all the toggle functions above is that if they are called
 +programmatically, they take an optional numerical argument.  A
 +positive value will turn on the minor mode (or both of them in the
 +case of @code{c-toggle-auto-hungry-state}) and a negative value will
 +turn it (or them) off.
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Electric Keys, Auto-newlines, Minor Modes, Commands
 +@comment node-name, next, previous, up
 +@section Electric Keys and Keywords
 +@cindex electric characters
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Most punctuation keys provide @dfn{electric} behavior - as well as
 +inserting themselves they perform some other action, such as
 +reindenting the line.  This reindentation saves you from having to
 +reindent a line manually after typing, say, a @samp{@}}.  A few
 +keywords, such as @code{else}, also trigger electric action.
 +
 +You can inhibit the electric behavior described here by disabling
 +electric minor mode (@pxref{Minor Modes}).
 +
 +Common to all these keys is that they only behave electrically when
 +used in normal code (as contrasted with getting typed in a string
 +literal or comment).  Those which cause re-indentation do so only when
 +@code{c-syntactic-indentation} has a non-@code{nil} value (which it
 +does by default).
 +
 +These keys and keywords are:
 +@c ACM, 2004/8/24:  c-electric-pound doesn't check c-s-i: this is more
 +@c like a bug in the code than a bug in this document.  It'll get
 +@c fixed in the code sometime.
 +
 +@table @kbd
 +@item #
 +@kindex #
 +@findex c-electric-pound
 +@findex electric-pound (c-)
 +@vindex c-electric-pound-behavior
 +@vindex electric-pound-behavior (c-)
 +Pound (bound to @code{c-electric-pound}) is electric when typed as the
 +first non-whitespace character on a line and not within a macro
 +definition.  In this case, the variable @code{c-electric-pound-behavior}
 +is consulted for the electric behavior.  This variable takes a list
 +value, although the only element currently defined is @code{alignleft},
 +which tells this command to force the @samp{#} character into column
 +zero.  This is useful for entering preprocessor macro definitions.
 +
 +Pound is not electric in AWK buffers, where @samp{#} starts a comment,
 +and is bound to @code{self-insert-command} like any typical printable
 +character.
 +@c ACM, 2004/8/24:  Change this (and the code) to do AWK comment
 +@c reindentation.
 +
 +@item *
 +@kindex *
 +@itemx /
 +@kindex /
 +@findex c-electric-star
 +@findex electric-star (c-)
 +@findex c-electric-slash
 +@findex electric-slash (c-)
 +A star (bound to @code{c-electric-star}) or a slash
 +(@code{c-electric-slash}) causes reindentation when you type it as the
 +second component of a C style block comment opener (@samp{/*}) or a
 +C++ line comment opener (@samp{//}) respectively, but only if the
 +comment opener is the first thing on the line (i.e. there's only
 +whitespace before it).
 +
 +Additionally, you can configure @ccmode{} so that typing a slash at
 +the start of a line within a block comment will terminate the
 +comment.  You don't need to have electric minor mode enabled to get
 +this behavior.  @xref{Clean-ups}.
 +
 +In AWK mode, @samp{*} and @samp{/} do not delimit comments and are not
 +electric.
 +
 +@item <
 +@kindex <
 +@itemx >
 +@kindex >
 +@findex c-electric-lt-gt
 +@findex electric-lt-gt (c-)
 +A less-than or greater-than sign (bound to @code{c-electric-lt-gt}) is
 +electric in two circumstances: when it is an angle bracket in a C++
 +@samp{template} declaration (and similar constructs in other
 +languages) and when it is the second of two @kbd{<} or @kbd{>}
 +characters in a C++ style stream operator.  In either case, the line
 +is reindented.  Angle brackets in C @samp{#include} directives are not
 +electric.
 +
 +@item (
 +@kindex (
 +@itemx )
 +@kindex )
 +@findex c-electric-paren
 +@findex electric-paren (c-)
 +The normal parenthesis characters @samp{(} and @samp{)} (bound to
 +@code{c-electric-paren}) reindent the current line.  This is useful
 +for getting the closing parenthesis of an argument list aligned
 +automatically.
 +
 +You can also configure @ccmode{} to insert a space automatically
 +between a function name and the @samp{(} you've just typed, and to
 +remove it automatically after typing @samp{)}, should the argument
 +list be empty.  You don't need to have electric minor mode enabled to
 +get these actions.  @xref{Clean-ups}.
 +
 +@item @{
 +@kindex @{
 +@itemx @}
 +@kindex @}
 +@findex c-electric-brace
 +@findex electric-brace (c-)
 +Typing a brace (bound to @code{c-electric-brace}) reindents the
 +current line.  Also, one or more newlines might be inserted if
 +auto-newline minor mode is enabled.  @xref{Auto-newlines}.
 +Additionally, you can configure @ccmode{} to compact excess whitespace
 +inserted by auto-newline mode in certain circumstances.
 +@xref{Clean-ups}.
 +
 +@item :
 +@kindex :
 +@findex c-electric-colon
 +@findex electric-colon (c-)
 +Typing a colon (bound to @code{c-electric-colon}) reindents the
 +current line.  Additionally, one or more newlines might be inserted if
 +auto-newline minor mode is enabled.  @xref{Auto-newlines}.  If you
 +type a second colon immediately after such an auto-newline, by default
 +the whitespace between the two colons is removed, leaving a C++ scope
 +operator.  @xref{Clean-ups}.
 +
 +If you prefer, you can insert @samp{::} in a single operation,
 +avoiding all these spurious reindentations, newlines, and clean-ups.
 +@xref{Other Commands}.
 +
 +@item ;
 +@kindex ;
 +@itemx ,
 +@kindex ,
 +@findex c-electric-semi&comma
 +@findex electric-semi&comma (c-)
 +Typing a semicolon or comma (bound to @code{c-electric-semi&comma})
 +reindents the current line.  Also, a newline might be inserted if
 +auto-newline minor mode is enabled.  @xref{Auto-newlines}.
 +Additionally, you can configure @ccmode{} so that when auto-newline
 +has inserted whitespace after a @samp{@}}, it will be removed again
 +when you type a semicolon or comma just after it.  @xref{Clean-ups}.
 +
 +@end table
 +
 +@deffn Command c-electric-continued-statement
 +@findex electric-continued-statement (c-)
 +
 +Certain keywords are electric, causing reindentation when they are
 +preceded only by whitespace on the line.  The keywords are those that
 +continue an earlier statement instead of starting a new one:
 +@code{else}, @code{while}, @code{catch} (only in C++ and Java) and
 +@code{finally} (only in Java).
 +
 +An example:
 +
 +@example
 +@group
 +for (i = 0; i < 17; i++)
 +  if (a[i])
 +    res += a[i]->offset;
 +else
 +@end group
 +@end example
 +
 +Here, the @code{else} should be indented like the preceding @code{if},
 +since it continues that statement. @ccmode{} will automatically
 +reindent it after the @code{else} has been typed in full, since only
 +then is it possible to decide whether it's a new statement or a
 +continuation of the preceding @code{if}.
 +
 +@vindex abbrev-mode
 +@findex abbrev-mode
 +@cindex Abbrev mode
 +@ccmode{} uses Abbrev mode (@pxref{Abbrevs,,, @emacsman{}, @emacsmantitle{}})
 +to accomplish this. It's therefore turned on by default in all language
 +modes except IDL mode, since CORBA IDL doesn't have any statements.
 +@end deffn
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Auto-newlines, Hungry WS Deletion, Electric Keys, Commands
 +@comment node-name, next, previous, up
 +@section Auto-newline Insertion
 +@cindex auto-newline
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +When you have @dfn{Auto-newline minor mode} enabled (@pxref{Minor
 +Modes}), @ccmode{} inserts newlines for you automatically (in certain
 +syntactic contexts) when you type a left or right brace, a colon, a
 +semicolon, or a comma.  Sometimes a newline appears before the
 +character you type, sometimes after it, sometimes both.
 +
 +Auto-newline only triggers when the following conditions hold:
 +
 +@itemize @bullet
 +@item
 +Auto-newline minor mode is enabled, as evidenced by the indicator
 +@samp{a} after the mode name on the modeline (e.g. @samp{C/a} or
 +@samp{C/la}).
 +
 +@item
 +The character was typed at the end of a line, or with only whitespace
 +after it, and possibly a @samp{\} escaping the newline.
 +
 +@item
 +The character is not on its own line already.  (This applies only to
 +insertion of a newline @emph{before} the character.)
 +
 +@item
 +@cindex literal
 +@cindex syntactic whitespace
 +The character was not typed inside of a literal @footnote{A
 +@dfn{literal} is defined as any comment, string, or preprocessor macro
 +definition.  These constructs are also known as @dfn{syntactic
 +whitespace} since they are usually ignored when scanning C code.}.
 +
 +@item
 +No numeric argument was supplied to the command (i.e. it was typed as
 +normal, with no @kbd{C-u} prefix).
 +@end itemize
 +
 +You can configure the precise circumstances in which newlines get
 +inserted (see @pxref{Custom Auto-newlines}).  Typically, the style
 +system (@pxref{Styles}) will have set this up for you, so you probably
 +won't have to bother.
 +
 +Sometimes @ccmode{} inserts an auto-newline where you don't want one,
 +such as after a @samp{@}} when you're about to type a @samp{;}.
 +Hungry deletion can help here (@pxref{Hungry WS Deletion}), or you can
 +activate an appropriate @dfn{clean-up}, which will remove the excess
 +whitespace after you've typed the @samp{;}.  See @ref{Clean-ups} for a
 +full description.  See also @ref{Electric Keys} for a summary of
 +clean-ups listed by key.
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Hungry WS Deletion, Subword Movement, Auto-newlines, Commands
 +@comment node-name, next, previous, up
 +@section Hungry Deletion of Whitespace
 +@cindex hungry-deletion
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +If you want to delete an entire block of whitespace at point, you can
 +use @dfn{hungry deletion}.  This deletes all the contiguous whitespace
 +either before point or after point in a single operation.
 +``Whitespace'' here includes tabs and newlines, but not comments or
 +preprocessor commands.  Hungry deletion can markedly cut down on the
 +number of times you have to hit deletion keys when, for example,
 +you've made a mistake on the preceding line and have already pressed
 +@kbd{C-j}.
 +
 +Hungry deletion is a simple feature that some people find extremely
 +useful.  In fact, you might find yourself wanting it in @strong{all}
 +your editing modes!
 +
 +Loosely speaking, in what follows, @dfn{@key{DEL}} means ``the
 +backspace key'' and @dfn{@key{DELETE}} means ``the forward delete
 +key''.  This is discussed in more detail below.
 +
 +There are two different ways you can use hungry deletion:
 +
 +@table @asis
 +@item Using @dfn{Hungry Delete Mode} with @kbd{@key{DEL}} and @kbd{C-d}
 +Here you toggle Hungry Delete minor mode with @kbd{M-x
 +c-toggle-hungry-state}@footnote{Prior to @ccmode{} 5.31, this command
 +was bound to @kbd{C-c C-d}.  @kbd{C-c C-d} is now the default binding
 +for @code{c-hungry-delete-forward}.} (@pxref{Minor Modes}.)  This
 +makes @kbd{@key{DEL}} and @kbd{C-d} do backwards and forward hungry
 +deletion.
 +
 +@table @asis
 +@item @kbd{@key{DEL}} (@code{c-electric-backspace})
 +@kindex DEL
 +@findex c-electric-backspace
 +@findex electric-backspace (c-)
 +This command is run by default when you hit the @kbd{DEL} key.  When
 +hungry delete mode is enabled, it deletes any amount of whitespace in
 +the backwards direction.  Otherwise, or when used with a prefix
 +argument or in a literal (@pxref{Auto-newlines}), the command just
 +deletes backwards in the usual way.  (More precisely, it calls the
 +function contained in the variable @code{c-backspace-function},
 +passing it the prefix argument, if any.)
 +
 +@item @code{c-backspace-function}
 +@vindex c-backspace-function
 +@vindex backspace-function (c-)
 +@findex backward-delete-char-untabify
 +Hook that gets called by @code{c-electric-backspace} when it doesn't
 +do an ``electric'' deletion of the preceding whitespace.  The default
 +value is @code{backward-delete-char-untabify}
 +(@pxref{Deletion,,,@lispref{}, @lispreftitle{}}, the function which
 +deletes a single character.
 +
 +@item @kbd{C-d} (@code{c-electric-delete-forward})
 +@kindex C-d
 +@findex c-electric-delete-forward
 +@findex electric-delete-forward (c-)
 +This function, which is bound to @kbd{C-d} by default, works just like
 +@code{c-electric-backspace} but in the forward direction.  When it
 +doesn't do an ``electric'' deletion of the following whitespace, it
 +just does @code{delete-char}, more or less.  (Strictly speaking, it
 +calls the function in @code{c-delete-function} with the prefix
 +argument.)
 +
 +@item @code{c-delete-function}
 +@vindex c-delete-function
 +@vindex delete-function (c-)
 +@findex delete-char
 +Hook that gets called by @code{c-electric-delete-forward} when it
 +doesn't do an ``electric'' deletion of the following whitespace.  The
 +default value is @code{delete-char}.
 +@end table
 +
 +@item Using Distinct Bindings
 +The other (newer and recommended) way to use hungry deletion is to
 +perform @code{c-hungry-delete-backwards} and
 +@code{c-hungry-delete-forward} directly through their key sequences
 +rather than using the minor mode toggling.
 +
 +@table @asis
 +@item @kbd{C-c C-@key{DEL}}, or @kbd{C-c @key{DEL}} (@code{c-hungry-delete-backwards})@footnote{This command was formerly known as @code{c-hungry-backspace}.}
 +@kindex C-c C-<backspace>
 +@kindex C-c <backspace>
 +@kindex C-c C-DEL
 +@kindex C-c DEL
 +@findex c-hungry-delete-backwards
 +@findex hungry-delete-backwards (c-)
 +Delete any amount of whitespace in the backwards direction (regardless
 +whether hungry-delete mode is enabled or not).  This command is bound
 +to both @kbd{C-c C-@key{DEL}} and @kbd{C-c @key{DEL}}, since the more
 +natural one, @kbd{C-c C-@key{DEL}}, is sometimes difficult to type at
 +a character terminal.
 +
 +@item @kbd{C-c C-d}, @kbd{C-c C-@key{DELETE}}, or @kbd{C-c @key{DELETE}} (@code{c-hungry-delete-forward})
 +@kindex C-c C-d
 +@kindex C-c C-<DELETE>
 +@kindex C-c <DELETE>
 +@findex c-hungry-delete-forward
 +@findex hungry-delete-forward (c-)
 +Delete any amount of whitespace in the forward direction (regardless
 +whether hungry-delete mode is enabled or not).  This command is bound
 +to both @kbd{C-c C-@key{DELETE}} and @kbd{C-c @key{DELETE}} for the
 +same reason as for @key{DEL} above.
 +@end table
 +@end table
 +
 +@kindex <delete>
 +@kindex <backspace>
 +
 +When we talk about @kbd{@key{DEL}}, and @kbd{@key{DELETE}} above, we
 +actually do so without connecting them to the physical keys commonly
 +known as @key{Backspace} and @key{Delete}.  The default bindings to
 +those two keys depends on the flavor of (X)Emacs you are using.
 +
 +@findex c-electric-delete
 +@findex electric-delete (c-)
 +@findex c-hungry-delete
 +@findex hungry-delete (c-)
 +@vindex delete-key-deletes-forward
 +In XEmacs 20.3 and beyond, the @key{Backspace} key is bound to
 +@code{c-electric-backspace} and the @key{Delete} key is bound to
 +@code{c-electric-delete}.  You control the direction it deletes in by
 +setting the variable @code{delete-key-deletes-forward}, a standard
 +XEmacs variable.
 +@c This variable is encapsulated by XEmacs's (defsubst delete-forward-p ...).
 +When this variable is non-@code{nil}, @code{c-electric-delete} will do
 +forward deletion with @code{c-electric-delete-forward}, otherwise it
 +does backward deletion with @code{c-electric-backspace}.  Similarly,
 +@kbd{C-c @key{Delete}} and @kbd{C-c C-@key{Delete}} are bound to
 +@code{c-hungry-delete} which is controlled in the same way by
 +@code{delete-key-deletes-forward}.
 +
 +@findex normal-erase-is-backspace-mode
 +
 +Emacs 21 and later automatically binds @key{Backspace} and
 +@key{Delete} to @kbd{DEL} and @kbd{C-d} according to your environment,
 +and @ccmode{} extends those bindings to @kbd{C-c C-@key{Backspace}}
 +etc.  If you need to change the bindings through
 +@code{normal-erase-is-backspace-mode} then @ccmode{} will also adapt
 +its extended bindings accordingly.
 +
 +In earlier (X)Emacs versions, @ccmode{} doesn't bind either
 +@key{Backspace} or @key{Delete} directly.  Only the key codes
 +@kbd{DEL} and @kbd{C-d} are bound, and it's up to the default bindings
 +to map the physical keys to them.  You might need to modify this
 +yourself if the defaults are unsuitable.
 +
 +Getting your @key{Backspace} and @key{Delete} keys properly set up can
 +sometimes be tricky.  The information in @ref{DEL Does Not
 +Delete,,,emacs, GNU Emacs Manual}, might be helpful if you're having
 +trouble with this in GNU Emacs.
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Subword Movement, Other Commands, Hungry WS Deletion, Commands
 +@comment node-name, next, previous, up
 +@section Subword Movement and Editing
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex nomenclature
 +@cindex subword
 +In spite of the GNU Coding Standards, it is popular to name a symbol
 +by mixing uppercase and lowercase letters, e.g. @samp{GtkWidget},
 +@samp{EmacsFrameClass}, or @samp{NSGraphicsContext}.  Here we call
 +these mixed case symbols @dfn{nomenclatures}.  Also, each capitalized
 +(or completely uppercase) part of a nomenclature is called a
 +@dfn{subword}.  Here are some examples:
 +
 +@multitable {@samp{NSGraphicsContext}} {@samp{NS}, @samp{Graphics}, and @samp{Context}}
 +@c This could be converted to @headitem when we require Texinfo 4.7
 +@iftex
 +@item @b{Nomenclature}
 +  @tab @b{Subwords}
 +@end iftex
 +@ifnottex
 +@item Nomenclature
 +  @tab Subwords
 +@item ---------------------------------------------------------
 +@end ifnottex
 +@item @samp{GtkWindow}
 +  @tab @samp{Gtk} and @samp{Window}
 +@item @samp{EmacsFrameClass}
 +  @tab @samp{Emacs}, @samp{Frame}, and @samp{Class}
 +@item @samp{NSGraphicsContext}
 +  @tab @samp{NS}, @samp{Graphics}, and @samp{Context}
 +@end multitable
 +
 +The subword minor mode replaces the basic word oriented movement and
 +editing commands with variants that recognize subwords in a
 +nomenclature and treat them as separate words:
 +
 +@findex c-forward-subword
 +@findex forward-subword (c-)
 +@findex c-backward-subword
 +@findex backward-subword (c-)
 +@findex c-mark-subword
 +@findex mark-subword (c-)
 +@findex c-kill-subword
 +@findex kill-subword (c-)
 +@findex c-backward-kill-subword
 +@findex backward-kill-subword (c-)
 +@findex c-transpose-subwords
 +@findex transpose-subwords (c-)
 +@findex c-capitalize-subword
 +@findex capitalize-subword (c-)
 +@findex c-upcase-subword
 +@findex upcase-subword (c-)
 +@findex c-downcase-subword
 +@findex downcase-subword (c-)
 +@multitable @columnfractions .20 .40 .40
 +@c This could be converted to @headitem when we require Texinfo 4.7
 +@iftex
 +@item     @b{Key}     @tab @b{Word oriented command} @tab @b{Subword oriented command}
 +@end iftex
 +@ifnottex
 +@item     Key         @tab Word oriented command     @tab Subword oriented command
 +@item ----------------------------------------------------------------------------
 +@end ifnottex
 +@item     @kbd{M-f}   @tab @code{forward-word}       @tab @code{c-forward-subword}
 +@item     @kbd{M-b}   @tab @code{backward-word}      @tab @code{c-backward-subword}
 +@item     @kbd{M-@@}  @tab @code{mark-word}          @tab @code{c-mark-subword}
 +@item     @kbd{M-d}   @tab @code{kill-word}          @tab @code{c-kill-subword}
 +@item     @kbd{M-DEL} @tab @code{backward-kill-word} @tab @code{c-backward-kill-subword}
 +@item     @kbd{M-t}   @tab @code{transpose-words}    @tab @code{c-transpose-subwords}
 +@item     @kbd{M-c}   @tab @code{capitalize-word}    @tab @code{c-capitalize-subword}
 +@item     @kbd{M-u}   @tab @code{upcase-word}        @tab @code{c-upcase-subword}
 +@item     @kbd{M-l}   @tab @code{downcase-word}      @tab @code{c-downcase-subword}
 +@end multitable
 +
 +Note that if you have changed the key bindings for the word oriented
 +commands in your @file{.emacs} or a similar place, the keys you have
 +configured are also used for the corresponding subword oriented
 +commands.
 +
 +Type @kbd{C-c C-w} to toggle subword mode on and off.  To make the
 +mode turn on automatically, put the following code in your
 +@file{.emacs}:
 +
 +@example
 +(add-hook 'c-mode-common-hook
 +          (lambda () (c-subword-mode 1)))
 +@end example
 +
 +As a bonus, you can also use @code{c-subword-mode} in non-@ccmode{}
 +buffers by typing @kbd{M-x c-subword-mode}.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Other Commands,  , Subword Movement, Commands
 +@comment node-name, next, previous, up
 +@section Other Commands
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Here are the various other commands that didn't fit anywhere else:
 +
 +@table @asis
 +@item @kbd{C-c .} (@code{c-set-style})
 +@kindex C-c .
 +@findex c-set-style
 +@findex set-style (c-)
 +Switch to the specified style in the current buffer.  Use like this:
 +
 +@example
 +@kbd{C-c . @var{style-name} @key{RET}}
 +@end example
 +
 +You can use the @key{TAB} in the normal way to do completion on the
 +style name.  Note that all style names are case insensitive, even the
 +ones you define yourself.
 +
 +Setting a style in this way does @emph{not} automatically reindent your
 +file.  For commands that you can use to view the effect of your changes,
 +see @ref{Indentation Commands} and @ref{Filling and Breaking}.
 +
 +For details of the @ccmode{} style system, see @ref{Styles}.
 +@item @kbd{C-c :} (@code{c-scope-operator})
 +@kindex C-c :
 +@findex c-scope-operator
 +@findex scope-operator (c-)
 +In C++, it is also sometimes desirable to insert the double-colon scope
 +operator without performing the electric behavior of colon insertion.
 +@kbd{C-c :} does just this.
 +
 +@item @kbd{C-c C-\} (@code{c-backslash-region})
 +@kindex C-c C-\
 +@findex c-backslash-region
 +@findex backslash-region (c-)
 +This function inserts and aligns or deletes end-of-line backslashes in
 +the current region.  These are typically used in multi-line macros.
 +
 +With no prefix argument, it inserts any missing backslashes and aligns
 +them according to the @code{c-backslash-column} and
 +@code{c-backslash-max-column} variables.  With a prefix argument, it
 +deletes any backslashes.
 +
 +The function does not modify blank lines at the start of the region.  If
 +the region ends at the start of a line, it always deletes the backslash
 +(if any) at the end of the previous line.
 +
 +To customize the precise workings of this command, @ref{Custom Macros}.
 +@end table
 +
 +@noindent
 +The recommended line breaking function, @code{c-context-line-break}
 +(@pxref{Filling and Breaking}), is especially nice if you edit
 +multiline macros frequently.  When used inside a macro, it
 +automatically inserts and adjusts the mandatory backslash at the end
 +of the line to keep the macro together, and it leaves the point at the
 +right indentation column for the code.  Thus you can write code inside
 +macros almost exactly as you can elsewhere, without having to bother
 +with the trailing backslashes.
 +
 +@table @asis
 +@item @kbd{C-c C-e} (@code{c-macro-expand})
 +@kindex C-c C-e
 +@findex c-macro-expand
 +@findex macro-expand (c-)
 +This command expands C, C++, Objective C or Pike macros in the region,
 +using an appropriate external preprocessor program.  Normally it
 +displays its output in a temporary buffer, but if you give it a prefix
 +arg (with @kbd{C-u C-c C-e}) it will overwrite the original region
 +with the expansion.
 +
 +The command does not work in any of the other modes, and the key
 +sequence is not bound in these other modes.
 +
 +@code{c-macro-expand} isn't actually part of @ccmode{}, even though it
 +is bound to a @ccmode{} key sequence.  If you need help setting it up
 +or have other problems with it, you can either read its source code or
 +ask for help in the standard (X)Emacs forums.
 +@end table
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Font Locking, Config Basics, Commands, Top
 +@comment node-name, next, previous, up
 +@chapter Font Locking
 +@cindex font locking
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex Font Lock mode
 +
 +@ccmode{} provides font locking for its supported languages by
 +supplying patterns for use with Font Lock mode.  This means that you
 +get distinct faces on the various syntactic parts such as comments,
 +strings, keywords and types, which is very helpful in telling them
 +apart at a glance and discovering syntactic errors.  @xref{Font
 +Lock,,, emacs, GNU Emacs Manual}, for ways to enable font locking in
 +@ccmode{} buffers.
 +
 +@strong{Please note:} The font locking in AWK mode is currently not
 +integrated with the rest of @ccmode{}.  Only the last section of this
 +chapter, @ref{AWK Mode Font Locking}, applies to AWK.  The other
 +sections apply to the other languages.
 +
 +@menu
 +* Font Locking Preliminaries::
 +* Faces::
 +* Doc Comments::
 +* AWK Mode Font Locking::
 +@end menu
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Font Locking Preliminaries, Faces, Font Locking, Font Locking
 +@comment node-name, next, previous, up
 +@section Font Locking Preliminaries
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The font locking for most of the @ccmode{} languages were provided
 +directly by the Font Lock package prior to version 5.30 of @ccmode{}.
 +In the transition to @ccmode{} the patterns have been reworked
 +completely and are applied uniformly across all the languages except AWK
 +mode, just like the indentation rules (although each language still has
 +some peculiarities of its own, of course).  Since the languages
 +previously had completely separate font locking patterns, this means
 +that it's a bit different in most languages now.
 +
 +The main goal for the font locking in @ccmode{} is accuracy, to provide
 +a dependable aid in recognizing the various constructs.  Some, like
 +strings and comments, are easy to recognize while others, like
 +declarations and types, can be very tricky.  @ccmode{} can go to great
 +lengths to recognize declarations and casts correctly, especially when
 +the types aren't recognized by standard patterns.  This is a fairly
 +demanding analysis which can be slow on older hardware, and it can
 +therefore be disabled by choosing a lower decoration level with the
 +variable @code{font-lock-maximum-decoration} (@pxref{Font Lock,,,
 +emacs, GNU Emacs Manual}).
 +
 +@vindex font-lock-maximum-decoration
 +
 +The decoration levels are used as follows:
 +
 +@enumerate
 +@comment 1
 +@item
 +Minimal font locking: Fontify only comments, strings and preprocessor
 +directives (in the languages that use cpp).
 +
 +@comment 2
 +@item
 +Fast font locking: In addition to level 1, fontify keywords, simple
 +types and declarations that are easy to recognize.  The variables
 +@code{*-font-lock-extra-types} (where @samp{*} is the name of the
 +language) are used to recognize types (see below).  Documentation
 +comments like Javadoc are fontified according to
 +@code{c-doc-comment-style} (@pxref{Doc Comments}).
 +
 +Use this if you think the font locking is too slow.  It's the closest
 +corresponding level to level 3 in the old font lock patterns.
 +
 +@comment 3
 +@item
 +Accurate font locking: Like level 2 but uses a different approach that
 +can recognize types and declarations much more accurately.  The
 +@code{*-font-lock-extra-types} variables are still used, but user
 +defined types are recognized correctly anyway in most cases.  Therefore
 +those variables should be fairly restrictive and not contain patterns
 +that are uncertain.
 +
 +@cindex Lazy Lock mode
 +@cindex Just-in-time Lock mode
 +
 +This level is designed for fairly modern hardware and a font lock
 +support mode like Lazy Lock or Just-in-time Lock mode that only
 +fontifies the parts that are actually shown.  Fontifying the whole
 +buffer at once can easily get bothersomely slow even on contemporary
 +hardware. @xref{Font Lock,,,@emacsman{}, @emacsmantitle{}}.
 +@end enumerate
 +
 +@cindex user defined types
 +@cindex types, user defined
 +
 +Since user defined types are hard to recognize you can provide
 +additional regexps to match those you use:
 +
 +@defopt c-font-lock-extra-types
 +@defoptx c++-font-lock-extra-types
 +@defoptx objc-font-lock-extra-types
 +@defoptx java-font-lock-extra-types
 +@defoptx idl-font-lock-extra-types
 +@defoptx pike-font-lock-extra-types
 +For each language there's a variable @code{*-font-lock-extra-types},
 +where @samp{*} stands for the language in question.  It contains a list
 +of regexps that matches identifiers that should be recognized as types,
 +e.g. @samp{\\sw+_t} to recognize all identifiers ending with @samp{_t}
 +as is customary in C code.  Each regexp should not match more than a
 +single identifier.
 +
 +The default values contain regexps for many types in standard runtime
 +libraries that are otherwise difficult to recognize, and patterns for
 +standard type naming conventions like the @samp{_t} suffix in C and C++.
 +Java, Objective-C and Pike have as a convention to start class names
 +with capitals, so there are patterns for that in those languages.
 +
 +Despite the names of these variables, they are not only used for
 +fontification but in other places as well where @ccmode{} needs to
 +recognize types.
 +@end defopt
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Faces, Doc Comments, Font Locking Preliminaries, Font Locking
 +@comment node-name, next, previous, up
 +@section Faces
 +@cindex faces
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@ccmode{} attempts to use the standard faces for programming languages
 +in accordance with their intended purposes as far as possible.  No extra
 +faces are currently provided, with the exception of a replacement face
 +@code{c-invalid-face} for emacsen that don't provide
 +@code{font-lock-warning-face}.
 +
 +@itemize @bullet
 +@item
 +@vindex font-lock-comment-face
 +Normal comments are fontified in @code{font-lock-comment-face}.
 +
 +@item
 +@vindex font-lock-doc-face
 +@vindex font-lock-doc-string-face
 +@vindex font-lock-comment-face
 +Comments that are recognized as documentation (@pxref{Doc Comments})
 +get @code{font-lock-doc-face} (Emacs) or
 +@code{font-lock-doc-string-face} (XEmacs) if those faces exist.  If
 +they don't then @code{font-lock-comment-face} is used.
 +
 +@item
 +@vindex font-lock-string-face
 +String and character literals are fontified in
 +@code{font-lock-string-face}.
 +
 +@item
 +@vindex font-lock-keyword-face
 +Keywords are fontified with @code{font-lock-keyword-face}.
 +
 +@item
 +@vindex font-lock-function-name-face
 +@code{font-lock-function-name-face} is used for function names in
 +declarations and definitions, and classes in those contexts.  It's also
 +used for preprocessor defines with arguments.
 +
 +@item
 +@vindex font-lock-variable-name-face
 +Variables in declarations and definitions, and other identifiers in such
 +variable contexts, get @code{font-lock-variable-name-face}.  It's also
 +used for preprocessor defines without arguments.
 +
 +@item
 +@vindex font-lock-constant-face
 +@vindex font-lock-reference-face
 +Builtin constants are fontified in @code{font-lock-constant-face} if it
 +exists, @code{font-lock-reference-face} otherwise.  As opposed to the
 +preceding two faces, this is used on the names in expressions, and it's
 +not used in declarations, even if there happen to be a @samp{const} in
 +them somewhere.
 +
 +@item
 +@vindex font-lock-type-face
 +@code{font-lock-type-face} is put on types (both predefined and user
 +defined) and classes in type contexts.
 +
 +@item
 +@vindex font-lock-constant-face
 +@vindex font-lock-reference-face
 +Label identifiers get @code{font-lock-constant-face} if it exists,
 +@code{font-lock-reference-face} otherwise.
 +
 +@item
 +Name qualifiers and identifiers for scope constructs are fontified like
 +labels.
 +
 +@item
 +Special markup inside documentation comments are also fontified like
 +labels.
 +
 +@item
 +@vindex font-lock-preprocessor-face
 +@vindex font-lock-builtin-face
 +@vindex font-lock-reference-face
 +Preprocessor directives get @code{font-lock-preprocessor-face} if it
 +exists (i.e. XEmacs).  In Emacs they get @code{font-lock-builtin-face}
 +or @code{font-lock-reference-face}, for lack of a closer equivalent.
 +
 +@item
 +@vindex font-lock-warning-face
 +@vindex c-invalid-face
 +@vindex invalid-face (c-)
 +Some kinds of syntactic errors are fontified with
 +@code{font-lock-warning-face} in Emacs.  In older XEmacs versions
 +there's no corresponding standard face, so there a special
 +@code{c-invalid-face} is used, which is defined to stand out sharply by
 +default.
 +
 +Note that it's not used for @samp{#error} or @samp{#warning} directives,
 +since those aren't syntactic errors in themselves.
 +@end itemize
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Doc Comments, AWK Mode Font Locking, Faces, Font Locking
 +@comment node-name, next, previous, up
 +@section Documentation Comments
 +@cindex documentation comments
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +There are various tools to supply documentation in the source as
 +specially structured comments, e.g. the standard Javadoc tool in Java.
 +@ccmode{} provides an extensible mechanism to fontify such comments and
 +the special markup inside them.
 +
 +@defopt c-doc-comment-style
 +@vindex doc-comment-style (c-)
 +This is a style variable that specifies which documentation comment
 +style to recognize, e.g. @code{javadoc} for Javadoc comments.
 +
 +The value may also be a list of styles, in which case all of them are
 +recognized simultaneously (presumably with markup cues that don't
 +conflict).
 +
 +The value may also be an association list to specify different comment
 +styles for different languages.  The symbol for the major mode is then
 +looked up in the alist, and the value of that element is interpreted as
 +above if found.  If it isn't found then the symbol `other' is looked up
 +and its value is used instead.
 +
 +The default value for @code{c-doc-comment-style} is
 +@w{@code{((java-mode . javadoc) (pike-mode . autodoc) (c-mode . gtkdoc))}}.
 +
 +Note that @ccmode{} uses this variable to set other variables that
 +handle fontification etc.  That's done at mode initialization or when
 +you switch to a style which sets this variable.  Thus, if you change it
 +in some other way, e.g. interactively in a CC Mode buffer, you will need
 +to do @kbd{M-x java-mode} (or whatever mode you're currently using) to
 +reinitialize.
 +
 +@findex c-setup-doc-comment-style
 +@findex setup-doc-comment-style (c-)
 +Note also that when @ccmode{} starts up, the other variables are
 +modified before the mode hooks are run.  If you change this variable in
 +a mode hook, you'll have to call @code{c-setup-doc-comment-style}
 +afterwards to redo that work.
 +@end defopt
 +
 +@ccmode{} currently provides handing of the following doc comment
 +styles:
 +
 +@table @code
 +@item javadoc
 +@cindex Javadoc markup
 +Javadoc comments, the standard tool in Java.
 +
 +@item autodoc
 +@cindex Pike autodoc markup
 +For Pike autodoc markup, the standard in Pike.
 +
 +@item gtkdoc
 +@cindex GtkDoc markup
 +For GtkDoc markup, widely used in the Gnome community.
 +@end table
 +
 +The above is by no means complete.  If you'd like to see support for
 +other doc comment styles, please let us know (@pxref{Mailing Lists and
 +Bug Reports}).
 +
 +You can also write your own doc comment fontification support to use
 +with @code{c-doc-comment-style}: Supply a variable or function
 +@code{*-font-lock-keywords} where @samp{*} is the name you want to use
 +in @code{c-doc-comment-style}.  If it's a variable, it's prepended to
 +@code{font-lock-keywords}.  If it's a function, it's called at mode
 +initialization and the result is prepended.  For an example, see
 +@code{javadoc-font-lock-keywords} in @file{cc-fonts.el}.
 +
 +If you add support for another doc comment style, please consider
 +contributing it - send a note to @email{bug-cc-mode@@gnu.org}.
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    AWK Mode Font Locking,  , Doc Comments, Font Locking
 +@comment  node-name,  next,  previous,  up
 +@section AWK Mode Font Locking
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The general appearance of font-locking in AWK mode is much like in any
 +other programming mode.  @xref{Faces For Font Lock,,,elisp, GNU Emacs
 +Lisp Reference Manual}.
 +
 +The following faces are, however, used in a non-standard fashion in
 +AWK mode:
 +
 +@table @asis
 +@item @code{font-lock-variable-name-face}
 +This face was intended for variable declarations.  Since variables are
 +not declared in AWK, this face is used instead for AWK system
 +variables (such as @code{NF}) and ``Special File Names'' (such as
 +@code{"/dev/stderr"}).
 +
 +@item @code{font-lock-builtin-face} (Emacs)/@code{font-lock-preprocessor-face} (XEmacs)
 +This face is normally used for preprocessor directives in @ccmode{}.
 +There are no such things in AWK, so this face is used instead for
 +standard functions (such as @code{match}).
 +
 +@item @code{font-lock-string-face}
 +As well as being used for strings, including localizable strings,
 +(delimited by @samp{"} and @samp{_"}), this face is also used for AWK
 +regular expressions (delimited by @samp{/}).
 +
 +@item @code{font-lock-warning-face} (Emacs)/@code{c-invalid-face} (XEmacs)
 +This face highlights the following syntactically invalid AWK
 +constructs:
 +
 +@itemize @bullet
 +@item
 +An unterminated string or regular expression.  Here the opening
 +delimiter (@samp{"} or @samp{/} or @samp{_"}) is displayed in
 +@code{font-lock-warning-face}.  This is most noticeable when typing in a
 +new string/regular expression into a buffer, when the warning-face
 +serves as a continual reminder to terminate the construct.
 +
 +AWK mode fontifies unterminated strings/regular expressions
 +differently from other modes: Only the text up to the end of the line
 +is fontified as a string (escaped newlines being handled correctly),
 +rather than the text up to the next string quote.
 +
 +@item
 +A space between the function name and opening parenthesis when calling
 +a user function.  The last character of the function name and the
 +opening parenthesis are highlighted.  This font-locking rule will
 +spuriously highlight a valid concatenation expression where an
 +identifier precedes a parenthesised expression.  Unfortunately.
 +
 +@item
 +Whitespace following the @samp{\} in what otherwise looks like an
 +escaped newline.  The @samp{\} is highlighted.
 +@end itemize
 +@end table
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Config Basics, Custom Filling and Breaking, Font Locking, Top
 +@comment  node-name,  next,  previous,  up
 +@chapter Configuration Basics
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex Emacs Initialization File
 +@cindex Configuration
 +You configure @ccmode{} by setting Lisp variables and calling (and
 +perhaps writing) Lisp functions@footnote{DON'T PANIC!!!  This isn't
 +difficult.}, which is usually done by adding code to an Emacs
 +initialization file.  This file might be @file{site-start.el} or
 +@file{.emacs} or @file{init.el} or @file{default.el} or perhaps some
 +other file.  @xref{Init File,,,@emacsman{}, @emacsmantitle{}}.  For
 +the sake of conciseness, we just call this file ``your @file{.emacs}''
 +throughout the rest of the manual.
 +
 +Several of these variables (currently 16), are known collectively as
 +@dfn{style variables}.  @ccmode{} provides a special mechanism, known
 +as @dfn{styles} to make it easier to set these variables as a group,
 +to ``inherit'' settings from one style into another, and so on.  Style
 +variables remain ordinary Lisp variables, whose values can be read and
 +changed independently of the style system.  @xref{Style Variables}.
 +
 +There are several ways you can write the code, depending on the
 +precise effect you want---they are described further down on this page.
 +If you are new to @ccmode{}, we suggest you begin with the simplest
 +method, ``Top-level commands or the customization interface''.
 +
 +If you make conflicting settings in several of these ways, the way
 +that takes precedence is the one that appears latest in this list:
 +@itemize @asis
 +@item
 +@table @asis
 +@item Style
 +@itemx Top-level command or ``customization interface''
 +@itemx Hook
 +@itemx File Style
 +@end table
 +@end itemize
 +
 +Here is a summary of the different ways of writing your configuration
 +settings:
 +
 +@table @asis
 +@item Top-level commands or the ``customization interface''
 +Most simply, you can write @code{setq} and similar commands at the top
 +level of your @file{.emacs} file.  When you load a @ccmode{} buffer,
 +it initializes its configuration from these global values (at least,
 +for those settings you have given values to), so it makes sense to
 +have these @code{setq} commands run @emph{before} @ccmode{} is first
 +initialized---in particular, before any call to @code{desktop-read}
 +(@pxref{Saving Emacs Sessions,,, emacs, GNU Emacs Manual}).  For
 +example, you might set c-basic-offset thus:
 +
 +@example
 +(setq c-basic-offset 4)
 +@end example
 +
 +You can use the more user friendly Customization interface instead,
 +but this manual does not cover in detail how that works.  To do this,
 +start by typing @kbd{M-x customize-group @key{RET} c @key{RET}}.
 +@xref{Easy Customization,,,@emacsman{}, @emacsmantitle{}}.
 +@c The following note really belongs in the Emacs manual.
 +Emacs normally writes the customizations at the end of your
 +@file{.emacs} file.  If you use @code{desktop-read}, you should edit
 +your @file{.emacs} to place the call to @code{desktop-read} @emph{after}
 +the customizations.
 +
 +The first initialization of @ccmode{} puts a snapshot of the
 +configuration settings into the special style @code{user}.
 +@xref{Built-in Styles}.
 +
 +For basic use of Emacs, either of these ways of configuring is
 +adequate.  However, the settings are then the same in all @ccmode{}
 +buffers and it can be clumsy to communicate them between programmers.
 +For more flexibility, you'll want to use one (or both) of @ccmode{}'s
 +more sophisticated facilities, hooks and styles.
 +
 +@item Hooks
 +An Emacs @dfn{hook} is a place to put Lisp functions that you want
 +Emacs to execute later in specific circumstances.
 +@xref{Hooks,,,@lispref{}, @lispreftitle{}}.  @ccmode{} supplies a main
 +hook and a language-specific hook for each language it supports - any
 +functions you put onto these hooks get executed as the last part of a
 +buffer's initialization.  Typically you put most of your customization
 +within the main hook, and use the language-specific hooks to vary the
 +customization settings between language modes.  For example, if you
 +wanted different (non-standard) values of @code{c-basic-offset} in C
 +Mode and Java Mode buffers, you could do it like this:
 +
 +@example
 +@group
 +(defun my-c-mode-hook ()
 +  (setq c-basic-offset 3))
 +(add-hook 'c-mode-hook 'my-c-mode-hook)
 +
 +(defun my-java-mode-hook ()
 +  (setq c-basic-offset 6))
 +(add-hook 'java-mode-hook 'my-java-mode-hook)
 +@end group
 +@end example
 +
 +See @ref{CC Hooks} for more details on the use of @ccmode{} hooks.
 +
 +@item Styles
 +A @ccmode{} @dfn{style} is a coherent collection of customizations
 +with a name.  At any time, exactly one style is active in each
 +@ccmode{} buffer, either the one you have selected or a default.
 +@ccmode{} is delivered with several existing styles.  Additionally,
 +you can create your own styles, possibly based on these existing
 +styles.  If you worked in a programming team called the ``Free
 +Group'', which had its own coding standards, you might well have this
 +in your @file{.emacs} file:
 +
 +@example
 +(setq c-default-style '((java-mode . "java")
 +                        (awk-mode . "awk")
 +                        (other . "free-group-style")))
 +@end example
 +
 +See @ref{Styles} for fuller details on using @ccmode{} styles and how
 +to create them.
 +
 +@item File Styles
 +A @dfn{file style} is a rarely used variant of the ``style'' mechanism
 +described above, which applies to an individual source file.  To use
 +it, you set certain Emacs local variables in a special block at the
 +end of the source file.  @xref{File Styles}.
 +
 +@item Hooks with Styles
 +For ultimate flexibility, you can use hooks and styles together.  For
 +example, if your team were developing a product which required a
 +Linux driver, you'd probably want to use the ``linux'' style for the
 +driver, and your own team's style for the rest of the code.  You
 +could achieve this with code like this in your @file{.emacs}:
 +
 +@example
 +@group
 +(defun my-c-mode-hook ()
 +  (c-set-style
 +   (if (and (buffer-file-name)
 +            (string-match "/usr/src/linux" (buffer-file-name)))
 +       "linux"
 +     "free-group-style")))
 +(add-hook 'c-mode-hook 'my-c-mode-hook)
 +@end group
 +@end example
 +
 +In a programming team, a hook is a also a good place for each member
 +to put his own personal preferences.  For example, you might be the
 +only person in your team who likes Auto-newline minor mode.  You could
 +have it enabled by default by placing the following in your
 +@file{.emacs}:
 +
 +@example
 +@group
 +(defun my-turn-on-auto-newline ()
 +  (c-toggle-auto-newline 1))
 +(add-hook 'c-mode-common-hook 'my-turn-on-auto-newline)
 +@end group
 +@end example
 +@end table
 +
 +@menu
 +* CC Hooks::
 +* Style Variables::
 +* Styles::
 +@end menu
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    CC Hooks, Style Variables, Config Basics, Config Basics
 +@comment node-name, next, previous, up
 +@section Hooks
 +@cindex mode hooks
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@c The node name is "CC Hooks" rather than "Hooks" because of a bug in
 +@c some older versions of Info, e.g. the info.el in GNU Emacs 21.3.
 +@c If you go to "Config Basics" and hit <CR> on the xref to "CC
 +@c Hooks" the function Info-follow-reference searches for "*Note: CC
 +@c Hooks" from the beginning of the page.  If this node were instead
 +@c named "Hooks", that search would spuriously find "*Note:
 +@c Hooks(elisp)" and go to the wrong node.
 +
 +@ccmode{} provides several hooks that you can use to customize the
 +mode for your coding style.  The main hook is
 +@code{c-mode-common-hook}; typically, you'll put the bulk of your
 +customizations here.  In addition, each language mode has its own
 +hook, allowing you to fine tune your settings individually for the
 +different @ccmode{} languages, and there is a package initialization
 +hook.  Finally, there is @code{c-special-indent-hook}, which enables
 +you to solve anomalous indentation problems.  It is described in
 +@ref{Other Indentation}, not here.  All these hooks adhere to the
 +standard Emacs conventions.
 +
 +When you open a buffer, @ccmode{} first initializes it with the
 +currently active style (@pxref{Styles}).  Then it calls
 +@code{c-mode-common-hook}, and finally it calls the language-specific
 +hook.  Thus, any style settings done in these hooks will override
 +those set by @code{c-default-style}.
 +
 +@defvar c-initialization-hook
 +@vindex initialization-hook (c-)
 +Hook run only once per Emacs session, when @ccmode{} is initialized.
 +This is a good place to change key bindings (or add new ones) in any
 +of the @ccmode{} key maps.  @xref{Sample .emacs File}.
 +@end defvar
 +
 +@defvar c-mode-common-hook
 +@vindex mode-common-hook (c-)
 +Common hook across all languages.  It's run immediately before the
 +language specific hook.
 +@end defvar
 +
 +@defvar c-mode-hook
 +@defvarx c++-mode-hook
 +@defvarx objc-mode-hook
 +@defvarx java-mode-hook
 +@defvarx idl-mode-hook
 +@defvarx pike-mode-hook
 +@defvarx awk-mode-hook
 +The language specific mode hooks.  The appropriate one is run as the
 +last thing when you enter that language mode.
 +@end defvar
 +
 +Although these hooks are variables defined in @ccmode{}, you can give
 +them values before @ccmode{}'s code is loaded---indeed, this is the
 +only way to use @code{c-initialization-hook}.  Their values aren't
 +overwritten when @ccmode{} gets loaded.
 +
 +Here's a simplified example of what you can add to your @file{.emacs}
 +file to do things whenever any @ccmode{} language is edited.  See the
 +Emacs manuals for more information on customizing Emacs via hooks.
 +@xref{Sample .emacs File}, for a more complete sample @file{.emacs}
 +file.
 +
 +@example
 +(defun my-c-mode-common-hook ()
 +  ;; my customizations for all of c-mode and related modes
 +  (no-case-fold-search)
 +  )
 +(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
 +@end example
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Style Variables, Styles, CC Hooks, Config Basics
 +@comment node-name, next, previous, up
 +@section Style Variables
 +@cindex styles
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex style variables
 +The variables that @ccmode{}'s style system control are called
 +@dfn{style variables}.  Note that style variables are ordinary Lisp
 +variables, which the style system initializes; you can change their
 +values at any time (e.g. in a hook function).  The style system can
 +also set other variables, to some extent.  @xref{Styles}.
 +
 +@dfn{Style variables} are handled specially in several ways:
 +
 +@itemize @bullet
 +@item
 +Style variables are by default buffer-local variables.  However, they
 +can instead be made global by setting
 +@code{c-style-variables-are-local-p} to @code{nil} before @ccmode{} is
 +initialized.
 +
 +@item
 +@vindex c-old-style-variable-behavior
 +@vindex old-style-variable-behavior (c-)
 +The default global binding of any style variable (with two exceptions
 +- see below) is the special symbol @code{set-from-style}.  When the
 +style system initializes a buffer-local copy of a style variable for a
 +@ccmode{} buffer, if its global binding is still that symbol then it
 +will be set from the current style.  Otherwise it will retain its
 +global default@footnote{This is a big change from versions of
 +@ccmode{} earlier than 5.26, where such settings would get overridden
 +by the style system unless special precautions were taken.  That was
 +changed since it was counterintuitive and confusing, especially to
 +novice users.  If your configuration depends on the old overriding
 +behavior, you can set the variable
 +@code{c-old-style-variable-behavior} to non-@code{nil}.}.  This
 +``otherwise'' happens, for example, when you've set the variable with
 +@code{setq} at the top level of your @file{.emacs} (@pxref{Config
 +Basics}).
 +
 +@item
 +The style variable @code{c-offsets-alist} (@pxref{c-offsets-alist}) is
 +an association list with an element for each syntactic symbol.  It's
 +handled a little differently from the other style variables.  It's
 +default global binding is the empty list @code{nil}, rather than
 +@code{set-from-style}.  Before the style system is initialized, you
 +can add individual elements to @code{c-offsets-alist} by calling
 +@code{c-set-offset}(@pxref{c-offsets-alist}) just like you would set
 +other style variables with @code{setq}.  Those elements will then
 +prevail when the style system later initializes a buffer-local copy of
 +@code{c-offsets-alist}.
 +
 +@item
 +The style variable @code{c-special-indent-hook} is also handled in a
 +special way.  Styles can only add functions to this hook, not remove
 +them, so any global settings you put on it are always
 +preserved@footnote{This did not change in version 5.26.}.  The value
 +you give this variable in a style definition can be either a function
 +or a list of functions.
 +
 +@item
 +The global bindings of the style variables get captured in the special
 +@code{user} style when the style system is first initialized.
 +@xref{Built-in Styles}, for details.
 +@end itemize
 +
 +The style variables are:@*
 +@code{c-indent-comment-alist},
 +@code{c-indent-comments-syntactically-p} (@pxref{Indentation
 +Commands});@*
 +@code{c-doc-comment-style} (@pxref{Doc Comments});@*
 +@code{c-block-comment-prefix}, @code{c-comment-prefix-regexp}
 +(@pxref{Custom Filling and Breaking});@*
 +@code{c-hanging-braces-alist} (@pxref{Hanging Braces});@*
 +@code{c-hanging-colons-alist} (@pxref{Hanging Colons});@*
 +@code{c-hanging-semi&comma-criteria} (@pxref{Hanging Semicolons and
 +Commas});@*
 +@code{c-cleanup-list} (@pxref{Clean-ups});@*
 +@code{c-basic-offset} (@pxref{Customizing Indentation});@*
 +@code{c-offsets-alist} (@pxref{c-offsets-alist});@*
 +@code{c-comment-only-line-offset} (@pxref{Comment Line-Up});@*
 +@code{c-special-indent-hook}, @code{c-label-minimum-indentation}
 +(@pxref{Other Indentation});@*
 +@code{c-backslash-column}, @code{c-backslash-max-column}
 +(@pxref{Custom Macros}).
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Styles,  , Style Variables, Config Basics
 +@comment node-name, next, previous, up
 +@section Styles
 +@cindex styles
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +By @dfn{style} we mean the layout of the code---things like how many
 +columns to indent a block of code, whether an opening brace gets
 +indented to the level of the code it encloses, or of the construct
 +that introduces it, or ``hangs'' at the end of a line.
 +
 +Most people only need to edit code formatted in just a few well-defined
 +and consistent styles.  For example, their organization might impose a
 +``blessed'' style that all its programmers must conform to.  Similarly,
 +people who work on GNU software will have to use the GNU coding style.
 +Some shops are more lenient, allowing a variety of coding styles, and as
 +programmers come and go, there could be a number of styles in use.  For
 +this reason, @ccmode{} makes it convenient for you to set up logical
 +groupings of customizations called @dfn{styles}, associate a single name
 +for any particular style, and pretty easily start editing new or
 +existing code using these styles.
 +
 +@menu
 +* Built-in Styles::
 +* Choosing a Style::
 +* Adding Styles::
 +* File Styles::
 +@end menu
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Built-in Styles, Choosing a Style, Styles, Styles
 +@comment node-name, next, previous, up
 +@subsection Built-in Styles
 +@cindex styles, built-in
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +If you're lucky, one of @ccmode{}'s built-in styles might be just
 +what you're looking for.  These are:
 +
 +@table @code
 +@item gnu
 +@cindex GNU style
 +Coding style blessed by the Free Software Foundation
 +for C code in GNU programs.
 +
 +@item k&r
 +@cindex K&R style
 +The classic Kernighan and Ritchie style for C code.
 +
 +@item bsd
 +@cindex BSD style
 +Also known as ``Allman style'' after Eric Allman.
 +
 +@item whitesmith
 +@cindex Whitesmith style
 +Popularized by the examples that came with Whitesmiths C, an early
 +commercial C compiler.
 +
 +@item stroustrup
 +@cindex Stroustrup style
 +The classic Stroustrup style for C++ code.
 +
 +@item ellemtel
 +@cindex Ellemtel style
 +Popular C++ coding standards as defined by ``Programming in C++, Rules
 +and Recommendations,'' Erik Nyquist and Mats Henricson,
 +Ellemtel@footnote{This document is available at
 +@uref{http://www.doc.ic.ac.uk/lab/cplus/c++.rules/} among other
 +places.}.
 +@c N.B.  This URL was still valid at 2005/8/28  (ACM).
 +
 +@item linux
 +@cindex Linux style
 +C coding standard for Linux (the kernel).
 +
 +@item python
 +@cindex Python style
 +C coding standard for Python extension modules@footnote{Python is a
 +high level scripting language with a C/C++ foreign function interface.
 +For more information, see @uref{http://www.python.org/}.}.
 +
 +@item java
 +@cindex Java style
 +The style for editing Java code.  Note that the default
 +value for @code{c-default-style} installs this style when you enter
 +@code{java-mode}.
 +
 +@item awk
 +@cindex AWK style
 +The style for editing AWK code.  Note that the default value for
 +@code{c-default-style} installs this style when you enter
 +@code{awk-mode}.
 +
 +@item user
 +@cindex User style
 +This is a special style created by you.  It consists of the factory
 +defaults for all the style variables as modified by the customizations
 +you do either with the Customization interface or by writing
 +@code{setq}s and @code{c-set-offset}s at the top level of your
 +@file{.emacs} file (@pxref{Config Basics}).  The style system creates
 +this style as part of its initialization and doesn't modify it
 +afterwards.
 +@end table
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Choosing a Style, Adding Styles, Built-in Styles, Styles
 +@comment node-name, next, previous, up
 +@subsection Choosing a Style
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +When you create a new buffer, its style will be set from
 +@code{c-default-style}.  The factory default is the style @code{gnu},
 +except in Java and AWK modes where it's @code{java} and @code{awk}.
 +
 +Remember that if you set a style variable with the Customization
 +interface or at the top level of your @file{.emacs} file before the
 +style system is initialised (@pxref{Config Basics}), this setting will
 +override the one that the style system would have given the variable.
 +
 +To set a buffer's style interactively, use the command @kbd{C-c .}
 +(@pxref{Other Commands}).  To set it from a file's local variable
 +list, @ref{File Styles}.
 +
 +@defopt c-default-style
 +@vindex default-style (c-)
 +This variable specifies which style to install by default in new
 +buffers.  It takes either a style name string, or an association list
 +of major mode symbols to style names:
 +
 +@enumerate
 +@item
 +When @code{c-default-style} is a string, it must be an existing style
 +name.  This style is then used for all modes.
 +
 +@item
 +When @code{c-default-style} is an association list, the mode language
 +is looked up to find a style name string.
 +
 +@item
 +If @code{c-default-style} is an association list where the mode
 +language mode isn't found then the special symbol @samp{other} is
 +looked up.  If it's found then the associated style is used.
 +
 +@item
 +If @samp{other} is not found then the @samp{gnu} style is used.
 +@end enumerate
 +
 +In all cases, the style described in @code{c-default-style} is installed
 +@emph{before} the language hooks are run, so you can always override
 +this setting by including an explicit call to @code{c-set-style} in your
 +language mode hook, or in @code{c-mode-common-hook}.
 +
 +The standard value of @code{c-default-style} is @w{@code{((java-mode
 +. "java") (awk-mode . "awk") (other . "gnu"))}}.
 +@end defopt
 +
 +@defvar c-indentation-style
 +@vindex indentation-style (c-)
 +This variable always contains the buffer's current style name, as a
 +string.
 +@end defvar
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Adding Styles, File Styles, Choosing a Style, Styles
 +@comment node-name, next, previous, up
 +@subsection Adding and Amending Styles
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +If none of the built-in styles is appropriate, you'll probably want to
 +create a new @dfn{style definition}, possibly based on an existing
 +style.  To do this, put the new style's settings into a list with the
 +following format - the list can then be passed as an argument to the
 +function @code{c-add-style}.  You can see an example of a style
 +definition in @ref{Sample .emacs File}.
 +
 +@cindex style definition
 +@c @defvr {List} style definition
 +@table @asis
 +@item Structure of a Style Definition List
 +([@var{base-style}] [(@var{variable} . @var{value}) @dots{}])
 +
 +Optional @var{base-style}, if present, must be a string which is the
 +name of the @dfn{base style} from which this style inherits.  At most
 +one @var{base-style} is allowed in a style definition.  If
 +@var{base-style} is not specified, the style inherits from the table
 +of factory default values@footnote{This table is stored internally in
 +the variable c-fallback-style.} instead.  All styles eventually
 +inherit from this internal table.  Style loops generate errors.  The
 +list of pre-existing styles can be seen in @ref{Built-in Styles}.
 +
 +The dotted pairs (@var{variable} . @var{value}) each consist of a
 +variable and the value it is to be set to when the style is later
 +activated.@footnote{Note that if the variable has been given a value
 +by the Customization interface or a @code{setq} at the top level of
 +your @file{.emacs}, this value will override the one the style system
 +tries to give it. @xref{Config Basics}.} The variable can be either a
 +@ccmode{} style variable or an arbitrary Emacs variable.  In the
 +latter case, it is @emph{not} made buffer-local by the @ccmode{} style
 +system.
 +@c @end defvr
 +
 +Two variables are treated specially in the dotted pair list:
 +
 +@table @code
 +@item c-offsets-alist
 +The value is in turn a list of dotted pairs of the form
 +
 +@example
 +(@r{@var{syntactic-symbol}} . @r{@var{offset}})
 +@end example
 +
 +as described in @ref{c-offsets-alist}.  These are passed to
 +@code{c-set-offset} so there is no need to set every syntactic symbol
 +in your style, only those that are different from the inherited style.
 +
 +@item c-special-indent-hook
 +The value is added to @code{c-special-indent-hook} using
 +@code{add-hook}, so any functions already on it are kept.  If the value
 +is a list, each element of the list is added with @code{add-hook}.
 +@end table
 +@end table
 +
 +Styles are kept in the @code{c-style-alist} variable, but you
 +should never modify this variable directly.  Instead, @ccmode{}
 +provides the function @code{c-add-style} for this purpose.
 +
 +@defun c-add-style stylename description &optional set-p
 +@findex add-style (c-)
 +Add or update a style called @var{stylename}, a string.
 +@var{description} is the new style definition in the form described
 +above.  If @var{stylename} already exists in @code{c-style-alist} then
 +it is replaced by @var{description}.  (Note, this replacement is
 +total.  The old style is @emph{not} merged into the new one.)
 +Otherwise, a new style is added.
 +
 +If the optional @var{set-p} is non-@code{nil} then the new style is
 +applied to the current buffer as well.  The use of this facility is
 +deprecated and it might be removed from @ccmode{} in a future release.
 +You should use @code{c-set-style} instead.
 +
 +The sample @file{.emacs} file provides a concrete example of how a new
 +style can be added and automatically set.  @xref{Sample .emacs File}.
 +@end defun
 +
 +@defvar c-style-alist
 +@vindex style-alist (c-)
 +This is the variable that holds the definitions for the styles.  It
 +should not be changed directly; use @code{c-add-style} instead.
 +@end defvar
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    File Styles,  , Adding Styles, Styles
 +@comment node-name, next, previous, up
 +@subsection File Styles
 +@cindex styles, file local
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex file local variables
 +
 +The Emacs manual describes how you can customize certain variables on a
 +per-file basis by including a @dfn{file local variable} block at the end
 +of the file (@pxref{File Variables,, Local Variables in Files, @emacsman{},
 +@emacsmantitle{}}).
 +
 +So far, you've only seen a functional interface for setting styles in
 +@ccmode{}, and this can't be used here.  @ccmode{} fills the gap by
 +providing two variables for use in a file's local variable list.
 +Don't use them anywhere else!  These allow you to customize the style
 +on a per-file basis:
 +
 +@defvar c-file-style
 +@vindex file-style (c-)
 +Set this variable to a style name string in the Local Variables list.
 +From now on, when you visit the file, @ccmode{} will automatically set
 +the file's style to this one using @code{c-set-style}.
 +@end defvar
 +
 +@defvar c-file-offsets
 +@vindex file-offsets (c-)
 +Set this variable (in the Local Variables list) to an association list
 +of the same format as @code{c-offsets-alist}.  From now on, when you
 +visit the file, @ccmode{} will automatically institute these offsets
 +using @code{c-set-offset}.
 +@end defvar
 +
 +Note that file style settings (i.e. @code{c-file-style}) are applied
 +before file offset settings
 +(i.e. @code{c-file-offsets})@footnote{Also, if either of these are set
 +in a file's local variable section, all the style variable values are
 +made local to that buffer, even if
 +@code{c-style-variables-are-local-p} is @code{nil}.  Since this
 +variable is virtually always non-@code{nil} anyhow, you're unlikely to
 +notice this effect.}.
 +
 +If you set any variables, including style variables, by the file local
 +variables mechanism, these settings take priority over all other
 +settings, even those in your mode hooks (@pxref{CC Hooks}).  If you
 +use @code{c-file-style} or @code{c-file-offsets} and also explicitly
 +set a style variable in a local variable block, the explicit setting
 +will take priority.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Custom Filling and Breaking, Custom Auto-newlines, Config Basics, Top
 +@comment node-name, next, previous, up
 +@chapter Customizing Filling and Line Breaking
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Since there's a lot of normal text in comments and string literals,
 +@ccmode{} provides features to edit these like in text mode.  It does
 +this by hooking in on the different line breaking functions and tuning
 +relevant variables as necessary.
 +
 +@vindex c-comment-prefix-regexp
 +@vindex comment-prefix-regexp (c-)
 +@cindex comment line prefix
 +@vindex comment-start
 +@vindex comment-end
 +@vindex comment-start-skip
 +@vindex paragraph-start
 +@vindex paragraph-separate
 +@vindex paragraph-ignore-fill-prefix
 +@vindex adaptive-fill-mode
 +@vindex adaptive-fill-regexp
 +@vindex adaptive-fill-first-line-regexp
 +To make Emacs recognize comments and treat text in them as normal
 +paragraphs, @ccmode{} makes several standard
 +variables@footnote{@code{comment-start}, @code{comment-end},
 +@code{comment-start-skip}, @code{paragraph-start},
 +@code{paragraph-separate}, @code{paragraph-ignore-fill-prefix},
 +@code{adaptive-fill-mode}, @code{adaptive-fill-regexp}, and
 +@code{adaptive-fill-first-line-regexp}.} buffer-local and modifies them
 +according to the language syntax and the comment line prefix.
 +
 +@defopt c-comment-prefix-regexp
 +@vindex comment-prefix-regexp (c-)
 +This style variable contains the regexp used to recognize the
 +@dfn{comment line prefix}, which is the line decoration that starts
 +every line in a comment.  The variable is either the comment line
 +prefix itself, or (more usually) an association list with different
 +values for different languages.  The symbol for the major mode is
 +looked up in the alist to get the regexp for the language, and if it
 +isn't found then the special symbol @samp{other} is looked up instead.
 +
 +When a comment line gets divided by @kbd{M-j} or the like, @ccmode{}
 +inserts the comment line prefix from a neighbouring line at the start
 +of the new line.  The default value of c-comment-prefix-regexp is
 +@samp{//+\\|\\**}, which matches C++ style line comments like
 +
 +@example
 +// blah blah
 +@end example
 +
 +@noindent
 +with two or more slashes in front of them, and the second and
 +subsequent lines of C style block comments like
 +
 +@example
 +@group
 +/*
 + * blah blah
 + */
 +@end group
 +@end example
 +
 +@noindent
 +with zero or more stars at the beginning of every line.  If you change
 +this variable, please make sure it still matches the comment starter
 +(i.e. @code{//}) of line comments @emph{and} the line prefix inside
 +block comments.
 +
 +@findex c-setup-paragraph-variables
 +@findex setup-paragraph-variables (c-)
 +Also note that since @ccmode{} uses the value of
 +@code{c-comment-prefix-regexp} to set up several other variables at
 +mode initialization, there won't be any effect if you just change it
 +inside a @ccmode{} buffer.  You need to call the command
 +@code{c-setup-paragraph-variables} too, to update those other
 +variables.  That's also the case if you modify
 +@code{c-comment-prefix-regexp} in a mode hook, since @ccmode{} will
 +already have set up these variables before calling the hook.
 +@end defopt
 +
 +In comments, @ccmode{} uses @code{c-comment-prefix-regexp} to adapt
 +the line prefix from the other lines in the comment.
 +
 +@vindex adaptive-fill-mode
 +@cindex Adaptive Fill mode
 +@ccmode{} uses adaptive fill mode (@pxref{Adaptive Fill,,, emacs, GNU
 +Emacs Manual}) to make Emacs correctly keep the line prefix when
 +filling paragraphs.  That also makes Emacs preserve the text
 +indentation @emph{inside} the comment line prefix.  E.g. in the
 +following comment, both paragraphs will be filled with the left
 +margins of the texts kept intact:
 +
 +@example
 +@group
 +/* Make a balanced b-tree of the nodes in the incoming
 + * stream.  But, to quote the famous words of Donald E.
 + * Knuth,
 + *
 + *     Beware of bugs in the above code; I have only
 + *     proved it correct, not tried it.
 + */
 +@end group
 +@end example
 +
 +@findex c-setup-filladapt
 +@findex setup-filladapt (c-)
 +@findex filladapt-mode
 +@vindex filladapt-mode
 +@cindex Filladapt mode
 +It's also possible to use other adaptive filling packages, notably Kyle
 +E. Jones' Filladapt package@footnote{It's available from
 +@uref{http://www.wonderworks.com/}.  As of version 2.12, it does however
 +lack a feature that makes it work suboptimally when
 +@code{c-comment-prefix-regexp} matches the empty string (which it does
 +by default).  A patch for that is available from
 +@uref{http://cc-mode.sourceforge.net/,, the CC Mode web site}.},
 +@c 2005/11/22:  The above is still believed to be the case.
 +which handles things like bulleted lists nicely.  There's a convenience
 +function @code{c-setup-filladapt} that tunes the relevant variables in
 +Filladapt for use in @ccmode{}.  Call it from a mode hook, e.g. with
 +something like this in your @file{.emacs}:
 +
 +@example
 +(defun my-c-mode-common-hook ()
 +  (c-setup-filladapt)
 +  (filladapt-mode 1))
 +(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
 +@end example
 +
 +@defopt c-block-comment-prefix
 +@vindex block-comment-prefix (c-)
 +@vindex c-comment-continuation-stars
 +@vindex comment-continuation-stars (c-)
 +Normally the comment line prefix inserted for a new line inside a
 +comment is deduced from other lines in it.  However there's one
 +situation when there's no hint about what the prefix should look like,
 +namely when a block comment is broken for the first time.  This style
 +variable@footnote{In versions before 5.26, this variable was called
 +@code{c-comment-continuation-stars}.  As a compatibility measure,
 +@ccmode{} still uses the value on that variable if it's set.} is used
 +then as the comment prefix.  It defaults to @samp{*
 +}@footnote{Actually, this default setting of
 +@code{c-block-comment-prefix} typically gets overridden by the default
 +style @code{gnu}, which sets it to blank.  You can see the line
 +splitting effect described here by setting a different style,
 +e.g. @code{k&r} @xref{Choosing a Style}.}, which makes a comment
 +
 +@example
 +/* Got O(n^2) here, which is a Bad Thing. */
 +@end example
 +
 +@noindent
 +break into
 +
 +@example
 +@group
 +/* Got O(n^2) here, which
 + * is a Bad Thing. */
 +@end group
 +@end example
 +
 +Note that it won't work to adjust the indentation by putting leading
 +spaces in @code{c-block-comment-prefix}, since @ccmode{} still uses the
 +normal indentation engine to indent the line.  Thus, the right way to
 +fix the indentation is by customizing the @code{c} syntactic symbol.  It
 +defaults to @code{c-lineup-C-comments}, which handles the indentation of
 +most common comment styles, see @ref{Line-Up Functions}.
 +@end defopt
 +
 +@defopt c-ignore-auto-fill
 +@vindex ignore-auto-fill (c-)
 +When auto fill mode is enabled, @ccmode{} can selectively ignore it
 +depending on the context the line break would occur in, e.g. to never
 +break a line automatically inside a string literal.  This variable
 +takes a list of symbols for the different contexts where auto-filling
 +never should occur:
 +
 +@table @code
 +@item string
 +Inside a string or character literal.
 +@item c
 +Inside a C style block comment.
 +@item c++
 +Inside a C++ style line comment.
 +@item cpp
 +Inside a preprocessor directive.
 +@item code
 +Anywhere else, i.e. in normal code.
 +@end table
 +
 +By default, @code{c-ignore-auto-fill} is set to @code{(string cpp
 +code)}, which means that when auto-fill mode is activated,
 +auto-filling only occurs in comments.  In literals, it's often
 +desirable to have explicit control over newlines.  In preprocessor
 +directives, the necessary @samp{\} escape character before the newline
 +is not automatically inserted, so an automatic line break would
 +produce invalid code.  In normal code, line breaks are normally
 +dictated by some logical structure in the code rather than the last
 +whitespace character, so automatic line breaks there will produce poor
 +results in the current implementation.
 +@end defopt
 +
 +@vindex comment-multi-line
 +If inside a comment and @code{comment-multi-line} (@pxref{Auto Fill,,,
 +@emacsman{}, @emacsmantitle{}} is non-@code{nil}, the indentation and
 +line prefix are preserved.  If inside a comment and
 +@code{comment-multi-line} is @code{nil}, a new comment of the same
 +type is started on the next line and indented as appropriate for
 +comments.
 +
 +Note that @ccmode{} sets @code{comment-multi-line} to @code{t} at
 +startup.  The reason is that @kbd{M-j} could otherwise produce sequences
 +of single line block comments for texts that should logically be treated
 +as one comment, and the rest of the paragraph handling code
 +(e.g. @kbd{M-q} and @kbd{M-a}) can't cope with that, which would lead to
 +inconsistent behavior.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Custom Auto-newlines, Clean-ups, Custom Filling and Breaking, Top
 +@comment node-name, next, previous, up
 +@chapter Customizing Auto-newlines
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@ccmode{} determines whether to insert auto-newlines in two basically
 +different ways, depending on the character just typed:
 +
 +@table @asis
 +@item Braces and Colons
 +@ccmode{} first determines the syntactic context of the brace or colon
 +(@pxref{Syntactic Symbols}), then looks for a corresponding element in
 +an alist.  This element specifies where to put newlines - this is any
 +combination of before and after the brace or colon.  If no alist
 +element is found, newlines are inserted both before and after a brace,
 +but none are inserted around a colon.  See @ref{Hanging Braces} and
 +@ref{Hanging Colons}.
 +
 +@item Semicolons and Commas
 +The variable @code{c-hanging-semi&comma-criteria} contains a list of
 +functions which determine whether to insert a newline after a newly
 +typed semicolon or comma.  @xref{Hanging Semicolons and Commas}.
 +@end table
 +
 +The names of these configuration variables contain @samp{hanging}
 +because they let you @dfn{hang} the pertinent characters.  A character
 +which introduces a C construct is said to @dfn{hang on the right} when
 +it appears at the end of a line after other code, being separated by a
 +line break from the construct it introduces, like the opening brace in:
 +
 +@example
 +@group
 +while (i < MAX) @{
 +    total += entry[i];
 +    entry [i++] = 0;
 +@}
 +@end group
 +@end example
 +
 +@noindent
 +A character @dfn{hangs on the left} when it appears at the start of
 +the line after the construct it closes off, like the above closing
 +brace.
 +
 +The next chapter, ``Clean-ups'', describes how to configure @ccmode{}
 +to remove these automatically added newlines in certain specific
 +circumstances.  @xref{Clean-ups}.
 +
 +@menu
 +* Hanging Braces::
 +* Hanging Colons::
 +* Hanging Semicolons and Commas::
 +@end menu
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Hanging Braces, Hanging Colons, Custom Auto-newlines, Custom Auto-newlines
 +@comment node-name, next, previous, up
 +@section Hanging Braces
 +@cindex hanging braces
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +To specify which kinds of braces you want auto-newlines put around,
 +you set the style variable @code{c-hanging-braces-alist}.  Its
 +structure and semantics are described in this section.  Details of how
 +to set it up, and its relationship to CC Mode's style system are given
 +in @ref{Style Variables}.
 +
 +Say you wanted an auto-newline after (but not before) the following
 +@samp{@{}:
 +
 +@example
 +if (foo < 17) @{
 +@end example
 +
 +@noindent
 +First you need to find the @dfn{syntactic context} of the brace---type
 +a @key{RET} before the brace to get it on a line of its
 +own@footnote{Also insert a @samp{\} at the end of the previous line if
 +you're in AWK Mode.}, then type @kbd{C-c C-s}.  That will tell you
 +something like:
 +
 +@example
 +((substatement-open 1061))
 +@end example
 +
 +@noindent
 +So here you need to put the entry @code{(substatement-open . (after))}
 +into @code{c-hanging-braces-alist}.
 +
 +If you don't want any auto-newlines for a particular syntactic symbol,
 +put this into @code{c-hanging-braces-alist}:
 +
 +@example
 +(brace-entry-open)
 +@end example
 +
 +If some brace syntactic symbol is not in @code{c-hanging-brace-alist},
 +its entry is taken by default as @code{(before after)}---insert a
 +newline both before and after the brace.  In place of a
 +``before/after'' list you can specify a function in this alist---this
 +is useful when the auto newlines depend on the code around the brace.
 +
 +@defopt c-hanging-braces-alist
 +@vindex hanging-braces-alist (c-)
 +
 +This variable is an association list which maps syntactic symbols to
 +lists of places to insert a newline.  @xref{Association
 +Lists,,,@lispref{}, @lispreftitle{}}.  The key of each element is the
 +syntactic symbol, the associated value is either @code{nil}, a list,
 +or a function.
 +
 +@table @asis
 +@item The Key - the syntactic symbol
 +The syntactic symbols that are useful as keys in this list are
 +@code{brace-list-intro}, @code{statement-cont},
 +@code{inexpr-class-open}, @code{inexpr-class-close}, and all the
 +@code{*-open} and @code{*-close} symbols.  @xref{Syntactic Symbols},
 +for a more detailed description of these syntactic symbols, except for
 +@code{inexpr-class-open} and @code{inexpr-class-close}, which aren't
 +actual syntactic symbols.  Elements with any other value as a key get
 +ignored.
 +
 +The braces of anonymous inner classes in Java are given the special
 +symbols @code{inexpr-class-open} and @code{inexpr-class-close}, so that
 +they can be distinguished from the braces of normal classes@footnote{The
 +braces of anonymous classes produce a combination of
 +@code{inexpr-class}, and @code{class-open} or @code{class-close} in
 +normal indentation analysis.}.
 +
 +Note that the aggregate constructs in Pike mode, @samp{(@{}, @samp{@})},
 +@samp{([}, @samp{])}, and @samp{(<}, @samp{>)}, do not count as brace
 +lists in this regard, even though they do for normal indentation
 +purposes.  It's currently not possible to set automatic newlines on
 +these constructs.
 +
 +@item The associated value - the ``ACTION'' list or function
 +The value associated with each syntactic symbol in this association
 +list is called an @var{action}, which can be either a list or a
 +function which returns a list.  @xref{Custom Braces}, for how to use
 +a function as a brace hanging @var{action}.
 +
 +The list @var{action} (or the list returned by @var{action} when it's
 +a function) contains some combination of the symbols @code{before} and
 +@code{after}, directing @ccmode{} where to put newlines in
 +relationship to the brace being inserted.  Thus, if the list contains
 +only the symbol @code{after}, then the brace hangs on the right side
 +of the line, as in:
 +
 +@example
 +// here, open braces always `hang'
 +void spam( int i ) @{
 +    if( i == 7 ) @{
 +        dosomething(i);
 +    @}
 +@}
 +@end example
 +
 +When the list contains both @code{after} and @code{before}, the braces
 +will appear on a line by themselves, as shown by the close braces in
 +the above example.  The list can also be empty, in which case newlines
 +are added neither before nor after the brace.
 +@end table
 +
 +If a syntactic symbol is missing entirely from
 +@code{c-hanging-braces-alist}, it's treated in the same way as an
 +@var{action} with a list containing @code{before} and @code{after}, so
 +that braces by default end up on their own line.
 +
 +For example, the default value of @code{c-hanging-braces-alist} is:
 +
 +@example
 +((brace-list-open)
 + (brace-entry-open)
 + (statement-cont)
 + (substatement-open after)
 + (block-close . c-snug-do-while)
 + (extern-lang-open after)
 + (namespace-open after)
 + (module-open after)
 + (composition-open after)
 + (inexpr-class-open after)
 + (inexpr-class-close before))
 +@end example
 +
 +@noindent which says that @code{brace-list-open},
 +@code{brace-entry-open} and @code{statement-cont}@footnote{Brace lists
 +inside statements, such as initializers for static array variables
 +inside functions in C, are recognized as @code{statement-cont}.  All
 +normal substatement blocks are recognized with other symbols.} braces
 +should both hang on the right side and allow subsequent text to follow
 +on the same line as the brace.  Also, @code{substatement-open},
 +@code{extern-lang-open}, and @code{inexpr-class-open} braces should hang
 +on the right side, but subsequent text should follow on the next line.
 +The opposite holds for @code{inexpr-class-close} braces; they won't
 +hang, but the following text continues on the same line.  Here, in the
 +@code{block-close} entry, you also see an example of using a function as
 +an @var{action}.  In all other cases, braces are put on a line by
 +themselves.
 +@end defopt
 +
 +@menu
 +* Custom Braces::
 +@end menu
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Custom Braces,  , Hanging Braces, Hanging Braces
 +@comment node-name, next, previous, up
 +@subsection Custom Brace Hanging
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@vindex c-hanging-braces-alist
 +@vindex hanging-braces-alist (c-)
 +@cindex action functions
 +Syntactic symbols aren't the only place where you can customize
 +@ccmode{} with the lisp equivalent of callback functions.  Remember
 +that @var{action}s are usually a list containing some combination of
 +the symbols @code{before} and @code{after} (@pxref{Hanging Braces}).
 +For more flexibility, you can instead specify brace ``hanginess'' by
 +giving a syntactic symbol an @dfn{action function} in
 +@code{c-hanging-braces-alist}; this function determines the
 +``hanginess'' of a brace, usually by looking at the code near it.
 +
 +@cindex customization, brace hanging
 +An action function is called with two arguments: the syntactic symbol
 +for the brace (e.g. @code{substatement-open}), and the buffer position
 +where the brace has been inserted.  Point is undefined on entry to an
 +action function, but the function must preserve it (e.g. by using
 +@code{save-excursion}).  The return value should be a list containing
 +some combination of @code{before} and @code{after}, including neither
 +of them (i.e. @code{nil}).
 +
 +@defvar c-syntactic-context
 +@vindex syntactic-context (c-)
 +During the call to the indentation or brace hanging @var{action}
 +function, this variable is bound to the full syntactic analysis list.
 +This might be, for example, @samp{((block-close 73))}.  Don't ever
 +give @code{c-syntactic-context} a value yourself---this would disrupt
 +the proper functioning of @ccmode{}.
 +
 +This variable is also bound in three other circumstances:
 +(i)@w{ }when calling a c-hanging-semi&comma-criteria function
 +(@pxref{Hanging Semicolons and Commas}); (ii)@w{ }when calling a
 +line-up function (@pxref{Custom Line-Up}); (iii)@w{ }when calling a
 +c-special-indent-hook function (@pxref{Other Indentation}).
 +@end defvar
 +
 +As an example, @ccmode{} itself uses this feature to dynamically
 +determine the hanginess of braces which close ``do-while''
 +constructs:
 +
 +@example
 +void do_list( int count, char** atleast_one_string )
 +@{
 +    int i=0;
 +    do @{
 +        handle_string( atleast_one_string[i] );
 +        i++;
 +    @} while( i < count );
 +@}
 +@end example
 +
 +@ccmode{} assigns the @code{block-close} syntactic symbol to the
 +brace that closes the @code{do} construct, and normally we'd like the
 +line that follows a @code{block-close} brace to begin on a separate
 +line.  However, with ``do-while'' constructs, we want the
 +@code{while} clause to follow the closing brace.  To do this, we
 +associate the @code{block-close} symbol with the @var{action} function
 +@code{c-snug-do-while}:
 +
 +@example
 +(defun c-snug-do-while (syntax pos)
 +  "Dynamically calculate brace hanginess for do-while statements."
 +  (save-excursion
 +    (let (langelem)
 +      (if (and (eq syntax 'block-close)
 +               (setq langelem (assq 'block-close c-syntactic-context))
 +               (progn (goto-char (cdr langelem))
 +                      (if (= (following-char) ?@{)
 +                          (forward-sexp -1))
 +                      (looking-at "\\<do\\>[^_]")))
 +          '(before)
 +        '(before after)))))
 +@end example
 +
 +@findex c-snug-do-while
 +@findex snug-do-while (c-)
 +This function simply looks to see if the brace closes a ``do-while''
 +clause and if so, returns the list @samp{(before)} indicating
 +that a newline should be inserted before the brace, but not after it.
 +In all other cases, it returns the list @samp{(before after)} so
 +that the brace appears on a line by itself.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Hanging Colons, Hanging Semicolons and Commas, Hanging Braces, Custom Auto-newlines
 +@comment node-name, next, previous, up
 +@section Hanging Colons
 +@cindex hanging colons
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex customization, colon hanging
 +@vindex c-hanging-colons-alist
 +@vindex hanging-colons-alist (c-)
 +
 +Using a mechanism similar to brace hanging (@pxref{Hanging Braces}),
 +colons can also be made to hang using the style variable
 +@code{c-hanging-colons-alist} - When a colon is typed, @ccmode
 +determines its syntactic context, looks this up in the alist
 +@code{c-changing-colons-alist} and inserts up to two newlines
 +accordingly.  Here, however, If @ccmode fails to find an entry for a
 +syntactic symbol in the alist, no newlines are inserted around the
 +newly typed colon.
 +
 +@defopt c-hanging-colons-alist
 +@vindex hanging-colons-alist (c-)
 +
 +@table @asis
 +@item The Key - the syntactic symbol
 +The syntactic symbols appropriate as keys in this association list
 +are: @code{case-label}, @code{label}, @code{access-label},
 +@code{member-init-intro}, and @code{inher-intro}.  @xref{Syntactic
 +Symbols}.  Elements with any other value as a key get ignored.
 +
 +@item The associate value - the ``ACTION'' list
 +The @var{action} here is simply a list containing a combination of the
 +symbols @code{before} and @code{after}.  Unlike in
 +@code{c-hanging-braces-alist}, functions as @var{actions} are not
 +supported - there doesn't seem to be any need for them.
 +@end table
 +@end defopt
 +
 +In C++, double-colons are used as a scope operator but because these
 +colons always appear right next to each other, newlines before and after
 +them are controlled by a different mechanism, called @dfn{clean-ups} in
 +@ccmode{}.  @xref{Clean-ups}, for details.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Hanging Semicolons and Commas,  , Hanging Colons, Custom Auto-newlines
 +@comment node-name, next, previous, up
 +@section Hanging Semicolons and Commas
 +@cindex hanging semicolons
 +@cindex hanging commas
 +@cindex customization, semicolon newlines
 +@cindex customization, comma newlines
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@defopt c-hanging-semi&comma-criteria
 +@vindex hanging-semi&comma-criteria (c-)
 +This style variable takes a list of functions; these get called when
 +you type a semicolon or comma.  The functions are called in order
 +without arguments.  When these functions are entered, point is just
 +after the newly inserted @samp{;} or @samp{,} and they must preserve
 +point (e.g., by using @code{save-excursion}).  During the call, the
 +variable @code{c-syntactic-context} is bound to the syntactic context
 +of the current line@footnote{This was first introduced in @ccmode{}
 +5.31.} @pxref{Custom Braces}.  These functions don't insert newlines
 +themselves, rather they direct @ccmode{} whether or not to do so.
 +They should return one of the following values:
 +
 +@table @code
 +@item t
 +A newline is to be inserted after the @samp{;} or @samp{,}, and no
 +more functions from the list are to be called.
 +@item stop
 +No more functions from the list are to be called, and no newline is to
 +be inserted.
 +@item nil
 +No determination has been made, and the next function in the list is
 +to be called.
 +@end table
 +
 +Note that auto-newlines are never inserted @emph{before} a semicolon
 +or comma.  If every function in the list is called without a
 +determination being made, then no newline is added.
 +
 +In AWK mode, this variable is set by default to @code{nil}.  In the
 +other modes, the default value is a list containing a single function,
 +@code{c-semi&comma-inside-parenlist}.  This inserts newlines after all
 +semicolons, apart from those separating @code{for}-clause statements.
 +@end defopt
 +
 +@defun c-semi&comma-no-newlines-before-nonblanks
 +@findex semi&comma-no-newlines-before-nonblanks (c-)
 +This is an example of a criteria function, provided by @ccmode{}.  It
 +prevents newlines from being inserted after semicolons when there is a
 +non-blank following line.  Otherwise, it makes no determination.  To
 +use, add this function to the front of the
 +@code{c-hanging-semi&comma-criteria} list.
 +
 +@example
 +(defun c-semi&comma-no-newlines-before-nonblanks ()
 +  (save-excursion
 +    (if (and (eq last-command-char ?\;)
 +             (zerop (forward-line 1))
 +             (not (looking-at "^[ \t]*$")))
 +        'stop
 +      nil)))
 +@end example
 +@end defun
 +
 +@defun c-semi&comma-inside-parenlist
 +@findex semi&comma-inside-parenlist (c-)
 +@defunx c-semi&comma-no-newlines-for-oneline-inliners
 +@findex semi&comma-no-newlines-for-oneline-inliners (c-)
 +The function @code{c-semi&comma-inside-parenlist} is what prevents
 +newlines from being inserted inside the parenthesis list of @code{for}
 +statements.  In addition to
 +@code{c-semi&comma-no-newlines-before-nonblanks} described above,
 +@ccmode{} also comes with the criteria function
 +@code{c-semi&comma-no-newlines-for-oneline-inliners}, which suppresses
 +newlines after semicolons inside one-line inline method definitions
 +(e.g. in C++ or Java).
 +@end defun
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Clean-ups, Indentation Engine Basics, Custom Auto-newlines, Top
 +@comment node-name, next, previous, up
 +@chapter Clean-ups
 +@cindex clean-ups
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@dfn{Clean-ups} are mechanisms which remove (or exceptionally, add)
 +whitespace in specific circumstances and are complementary to colon
 +and brace hanging.  You enable a clean-up by adding its symbol into
 +@code{c-cleanup-list}, e.g. like this:
 +
 +@example
 +(add-to-list 'c-cleanup-list 'space-before-funcall)
 +@end example
 +
 +On the surface, it would seem that clean-ups overlap the functionality
 +provided by the @code{c-hanging-*-alist} variables.  Clean-ups,
 +however, are used to adjust code ``after-the-fact'', i.e. to adjust
 +the whitespace in constructs later than when they were typed.
 +
 +Most of the clean-ups remove automatically inserted newlines, and are
 +only active when auto-newline minor mode is turned on.  Others will
 +work all the time.  Note that clean-ups are only performed when there
 +is nothing but whitespace appearing between the individual components
 +of the construct, and (apart from @code{comment-close-slash}) when the
 +construct does not occur within a literal (@pxref{Auto-newlines}).
 +
 +@defopt c-cleanup-list
 +@vindex cleanup-list (c-)
 +@cindex literal
 +
 +You configure @ccmode{}'s clean-ups by setting the style variable
 +@code{c-cleanup-list}, which is a list of clean-up symbols.  By
 +default, @ccmode{} cleans up only the @code{scope-operator} construct,
 +which is necessary for proper C++ support.
 +@end defopt
 +
 +These are the clean-ups that are only active when electric and
 +auto-newline minor modes are enabled:
 +
 +@c TBD: Would like to use some sort of @deffoo here; @table indents a
 +@c bit too much in dvi output.
 +@table @code
 +@item brace-else-brace
 +Clean up @samp{@} else @{} constructs by placing the entire construct on
 +a single line.  Clean up occurs when the open brace after the
 +@samp{else} is typed.  So for example, this:
 +
 +@example
 +@group
 +void spam(int i)
 +@{
 +    if( i==7 ) @{
 +        dosomething();
 +    @}
 +    else
 +    @{
 +@end group
 +@end example
 +
 +@noindent
 +appears like this after the last open brace is typed:
 +
 +@example
 +@group
 +void spam(int i)
 +@{
 +    if( i==7 ) @{
 +        dosomething();
 +    @} else @{
 +@end group
 +@end example
 +
 +@item brace-elseif-brace
 +Similar to the @code{brace-else-brace} clean-up, but this cleans up
 +@samp{@} else if (...) @{} constructs.  For example:
 +
 +@example
 +@group
 +void spam(int i)
 +@{
 +    if( i==7 ) @{
 +        dosomething();
 +    @}
 +    else if( i==3 )
 +    @{
 +@end group
 +@end example
 +
 +@noindent
 +appears like this after the last open parenthesis is typed:
 +
 +@example
 +@group
 +void spam(int i)
 +@{
 +    if( i==7 ) @{
 +        dosomething();
 +    @} else if(
 +@end group
 +@end example
 +
 +@noindent
 +and like this after the last open brace is typed:
 +
 +@example
 +@group
 +void spam(int i)
 +@{
 +    if( i==7 ) @{
 +        dosomething();
 +    @} else if( i==3 ) @{
 +@end group
 +@end example
 +
 +@item brace-catch-brace
 +Analogous to @code{brace-elseif-brace}, but cleans up @samp{@} catch
 +(...) @{} in C++ and Java mode.
 +
 +@item empty-defun-braces
 +Clean up braces following a top-level function or class definition that
 +contains no body.  Clean up occurs when the closing brace is typed.
 +Thus the following:
 +
 +@example
 +@group
 +class Spam
 +@{
 +@}
 +@end group
 +@end example
 +
 +@noindent
 +is transformed into this when the close brace is typed:
 +
 +@example
 +@group
 +class Spam
 +@{@}
 +@end group
 +@end example
 +
 +@item defun-close-semi
 +Clean up the terminating semicolon on top-level function or class
 +definitions when they follow a close brace.  Clean up occurs when the
 +semicolon is typed.  So for example, the following:
 +
 +@example
 +@group
 +class Spam
 +@{
 +...
 +@}
 +;
 +@end group
 +@end example
 +
 +@noindent
 +is transformed into this when the semicolon is typed:
 +
 +@example
 +@group
 +class Spam
 +@{
 +...
 +@};
 +@end group
 +@end example
 +
 +@item list-close-comma
 +Clean up commas following braces in array and aggregate initializers.
 +Clean up occurs when the comma is typed.  The space before the comma
 +is zapped just like the space before the semicolon in
 +@code{defun-close-semi}.
 +
 +@item scope-operator
 +Clean up double colons which might designate a C++ scope operator split
 +across multiple lines@footnote{Certain C++ constructs introduce
 +ambiguous situations, so @code{scope-operator} clean-ups might not
 +always be correct.  This usually only occurs when scoped identifiers
 +appear in switch label tags.}.  Clean up occurs when the second colon is
 +typed.  You will always want @code{scope-operator} in the
 +@code{c-cleanup-list} when you are editing C++ code.
 +
 +@item one-liner-defun
 +Clean up a single line of code enclosed by defun braces by removing
 +the whitespace before and after the code.  The clean-up happens when
 +the closing brace is typed.  If the variable
 +@code{c-max-one-liner-length} is set, the cleanup is only done if the
 +resulting line would be no longer than the value of that variable.
 +
 +For example, consider this AWK code:
 +
 +@example
 +@group
 +BEGIN @{
 +    FS = "\t" # use <TAB> as a field separator
 +@}
 +@end group
 +@end example
 +
 +@noindent
 +It gets compacted to the following when the closing brace is typed:
 +
 +@example
 +@group
 +BEGIN @{FS = "\t"@} # use <TAB> as a field separator
 +@end group
 +@end example
 +
 +@defopt c-max-one-liner-length
 +@vindex max-one-liner-length (c-)
 +The maximum length of the resulting line for which the clean-up
 +@code{one-liner-defun} will be triggered.  This length is that of the entire
 +line, including any leading whitespace and any trailing comment.  Its
 +default value is 80.  If the value is zero or @code{nil}, no limit
 +applies.
 +@end defopt
 +@end table
 +
 +The following clean-ups are always active when they occur on
 +@code{c-cleanup-list}, regardless of whether Electric minor mode or
 +Auto-newline minor mode are enabled:
 +
 +@table @code
 +@item space-before-funcall
 +Insert a space between the function name and the opening parenthesis
 +of a function call.  This produces function calls in the style
 +mandated by the GNU coding standards, e.g. @samp{signal@w{ }(SIGINT,
 +SIG_IGN)} and @samp{abort@w{ }()}.  Clean up occurs when the opening
 +parenthesis is typed.  This clean-up should never be active in AWK
 +Mode, since such a space is syntactically invalid for user defined
 +functions.
 +
 +@item compact-empty-funcall
 +Clean up any space between the function name and the opening parenthesis
 +of a function call that has no arguments.  This is typically used
 +together with @code{space-before-funcall} if you prefer the GNU function
 +call style for functions with arguments but think it looks ugly when
 +it's only an empty parenthesis pair.  I.e. you will get @samp{signal
 +(SIGINT, SIG_IGN)}, but @samp{abort()}.  Clean up occurs when the
 +closing parenthesis is typed.
 +
 +@item comment-close-slash
 +When inside a block comment, terminate the comment when you type a slash
 +at the beginning of a line (i.e. immediately after the comment prefix).
 +This clean-up removes whitespace preceding the slash and if needed,
 +inserts a star to complete the token @samp{*/}.  Type @kbd{C-q /} in this
 +situation if you just want a literal @samp{/} inserted.
 +@end table
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Indentation Engine Basics, Customizing Indentation, Clean-ups, Top
 +@comment node-name, next, previous, up
 +@chapter Indentation Engine Basics
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +This chapter will briefly cover how @ccmode{} indents lines of code.
 +It is helpful to understand the indentation model being used so that
 +you will know how to customize @ccmode{} for your personal coding
 +style.  All the details are in @ref{Customizing Indentation}.
 +
 +@ccmode{} has an indentation engine that provides a flexible and
 +general mechanism for customizing indentation.  When @ccmode{} indents
 +a line of code, it separates its calculations into two steps:
 +
 +@enumerate
 +@item
 +@cindex syntactic symbol
 +@cindex anchor position
 +It analyzes the line to determine its @dfn{syntactic symbol(s)} (the
 +kind of language construct it's looking at) and its @dfn{anchor
 +position} (the position earlier in the file that @ccmode{} will indent
 +the line relative to).  The anchor position might be the location of
 +an opening brace in the previous line, for example.  @xref{Syntactic
 +Analysis}.
 +@item
 +@cindex offsets
 +@cindex indentation offset specifications
 +It looks up the syntactic symbol(s) in the configuration to get the
 +corresponding @dfn{offset(s)}.  The symbol @code{+}, which means
 +``indent this line one more level'' is a typical offset.  @ccmode{}
 +then applies these offset(s) to the anchor position, giving the
 +indentation for the line.  The different sorts of offsets are
 +described in @ref{c-offsets-alist}.
 +@end enumerate
 +
 +In exceptional circumstances, the syntax directed indentation
 +described here may be a nuisance rather than a help.  You can disable
 +it by setting @code{c-syntactic-indentation} to @code{nil}.  (To set
 +the variable interactively, @ref{Minor Modes}).
 +
 +@defopt c-syntactic-indentation
 +@vindex syntactic-indentation (c-)
 +When this is non-@code{nil} (which it is by default), the indentation
 +of code is done according to its syntactic structure.  When it's
 +@code{nil}, every line is just indented to the same level as the
 +previous one, and @kbd{TAB} (@code{c-indent-command}) adjusts the
 +indentation in steps of @code{c-basic-offset}.  The current style
 +(@pxref{Config Basics}) then has no effect on indentation, nor do any
 +of the variables associated with indentation, not even
 +@code{c-special-indent-hook}.
 +@end defopt
 +
 +@menu
 +* Syntactic Analysis::
 +* Syntactic Symbols::
 +* Indentation Calculation::
 +@end menu
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Syntactic Analysis, Syntactic Symbols, Indentation Engine Basics, Indentation Engine Basics
 +@comment node-name, next, previous, up
 +@section Syntactic Analysis
 +@cindex syntactic analysis
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex syntactic element
 +@cindex syntactic context
 +The first thing @ccmode{} does when indenting a line of code, is to
 +analyze the line, determining the @dfn{syntactic context} of the
 +(first) construct on that line.  It's a list of @dfn{syntactic
 +elements}, where each syntactic element in turn is a list@footnote{In
 +@ccmode 5.28 and earlier, a syntactic element was a dotted pair; the
 +cons was the syntactic symbol and the cdr was the anchor position.
 +For compatibility's sake, the parameter passed to a line-up function
 +still has this dotted pair form (@pxref{Custom Line-Up}).}  Here is a
 +brief and typical example:
 +
 +@example
 +((defun-block-intro 1959))
 +@end example
 +
 +@cindex syntactic symbol
 +@noindent
 +The first thing inside each syntactic element is always a
 +@dfn{syntactic symbol}.  It describes the kind of construct that was
 +recognized, e.g. @code{statement}, @code{substatement},
 +@code{class-open}, @code{class-close}, etc.  @xref{Syntactic Symbols},
 +for a complete list of currently recognized syntactic symbols and
 +their semantics.  The remaining entries are various data associated
 +with the recognized construct - there might be zero or more.
 +
 +@cindex anchor position
 +Conceptually, a line of code is always indented relative to some
 +position higher up in the buffer (typically the indentation of the
 +previous line).  That position is the @dfn{anchor position} in the
 +syntactic element.  If there is an entry after the syntactic symbol in
 +the syntactic element list then it's either nil or that anchor position.
 +
 +Here is an example.  Suppose we had the following code as the only thing
 +in a C++ buffer @footnote{The line numbers in this and future examples
 +don't actually appear in the buffer, of course!}:
 +
 +@example
 + 1: void swap( int& a, int& b )
 + 2: @{
 + 3:     int tmp = a;
 + 4:     a = b;
 + 5:     b = tmp;
 + 6: @}
 +@end example
 +
 +@noindent
 +We can use @kbd{C-c C-s} (@code{c-show-syntactic-information}) to
 +report what the syntactic analysis is for the current line:
 +
 +@table @asis
 +@item @kbd{C-c C-s} (@code{c-show-syntactic-information})
 +@kindex C-c C-s
 +@findex c-show-syntactic-information
 +@findex show-syntactic-information (c-)
 +This command calculates the syntactic analysis of the current line and
 +displays it in the minibuffer.  The command also highlights the anchor
 +position(s).
 +@end table
 +
 +  Running this command on line 4 of this example, we'd see in the echo
 +area@footnote{With a universal argument (i.e. @kbd{C-u C-c C-s}) the
 +analysis is inserted into the buffer as a comment on the current
 +line.}:
 +
 +@example
 +((statement 35))
 +@end example
 +
 +@noindent
 +and the @samp{i} of @code{int} on line 3 would be highlighted.  This
 +tells us that the line is a statement and it is indented relative to
 +buffer position 35, the highlighted position.  If you were to move
 +point to line 3 and hit @kbd{C-c C-s}, you would see:
 +
 +@example
 +((defun-block-intro 29))
 +@end example
 +
 +@noindent
 +This indicates that the @samp{int} line is the first statement in a top
 +level function block, and is indented relative to buffer position 29,
 +which is the brace just after the function header.
 +
 +Here's another example:
 +
 +@example
 + 1: int add( int val, int incr, int doit )
 + 2: @{
 + 3:     if( doit )
 + 4:         @{
 + 5:             return( val + incr );
 + 6:         @}
 + 7:     return( val );
 + 8: @}
 +@end example
 +
 +@noindent
 +Hitting @kbd{C-c C-s} on line 4 gives us:
 +
 +@example
 +((substatement-open 46))
 +@end example
 +
 +@cindex substatement
 +@cindex substatement block
 +@noindent
 +which tells us that this is a brace that @emph{opens} a substatement
 +block. @footnote{A @dfn{substatement} is the line after a
 +conditional statement, such as @code{if}, @code{else}, @code{while},
 +@code{do}, @code{switch}, etc.  A @dfn{substatement
 +block} is a brace block following one of these conditional statements.}
 +
 +@cindex comment-only line
 +Syntactic contexts can contain more than one element, and syntactic
 +elements need not have anchor positions.  The most common example of
 +this is a @dfn{comment-only line}:
 +
 +@example
 + 1: void draw_list( List<Drawables>& drawables )
 + 2: @{
 + 3:         // call the virtual draw() method on each element in list
 + 4:     for( int i=0; i < drawables.count(), ++i )
 + 5:     @{
 + 6:         drawables[i].draw();
 + 7:     @}
 + 8: @}
 +@end example
 +
 +@noindent
 +Hitting @kbd{C-c C-s} on line 3 of this example gives:
 +
 +@example
 +((comment-intro) (defun-block-intro 46))
 +@end example
 +
 +@noindent
 +and you can see that the syntactic context contains two syntactic
 +elements.  Notice that the first element, @samp{(comment-intro)}, has no
 +anchor position.
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Syntactic Symbols, Indentation Calculation, Syntactic Analysis, Indentation Engine Basics
 +@comment node-name, next, previous, up
 +@section Syntactic Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex syntactic symbols, brief list
 +@vindex c-offsets-alist
 +@vindex offsets-alist (c-)
 +This section is a complete list of the syntactic symbols which appear
 +in the @code{c-offsets-alist} style variable, along with brief
 +descriptions.  The previous section (@pxref{Syntactic Analysis})
 +states what syntactic symbols are and how the indentation engine uses
 +them.
 +
 +More detailed descriptions of these symbols, together with snippets of
 +source code to which they apply, appear in the examples in the
 +subsections below.  Note that, in the interests of brevity, the anchor
 +position associated with most syntactic symbols is @emph{not}
 +specified.  In cases of doubt, type @kbd{C-c C-s} on a pertinent
 +line---this highlights the anchor position.
 +
 +@ssindex -open symbols
 +@ssindex -close symbols
 +@ssindex -block-intro symbols
 +The syntactic symbols which indicate brace constructs follow a general
 +naming convention.  When a line begins with an open or close brace,
 +its syntactic symbol will contain the suffix @code{-open} or
 +@code{-close} respectively.  The first line within the brace block
 +construct will contain the suffix @code{-block-intro}.
 +
 +@ssindex -intro symbols
 +@ssindex -cont symbols
 +In constructs which can span several lines, a distinction is usually
 +made between the first line that introduces the construct and the
 +lines that continue it.  The syntactic symbols that indicate these
 +lines will contain the suffixes @code{-intro} or @code{-cont}
 +respectively.
 +
 +The best way to understand how all this works is by looking at some
 +examples.  Remember that you can see the syntax of any source code
 +line by using @kbd{C-c C-s}.
 +
 +@table @code
 +@item string
 +Inside a multiline string.  @ref{Literal Symbols}.
 +@item c
 +Inside a multiline C style block comment.  @ref{Literal Symbols}.
 +@item defun-open
 +Brace that opens a top-level function definition.  @ref{Function
 +Symbols}.
 +@item defun-close
 +Brace that closes a top-level function definition.  @ref{Function
 +Symbols}.
 +@item defun-block-intro
 +The first line in a top-level defun.  @ref{Function Symbols}.
 +@item class-open
 +Brace that opens a class definition.  @ref{Class Symbols}.
 +@item class-close
 +Brace that closes a class definition.  @ref{Class Symbols}.
 +@item inline-open
 +Brace that opens an in-class inline method.  @ref{Class Symbols}.
 +@item inline-close
 +Brace that closes an in-class inline method.  @ref{Class Symbols}.
 +@item func-decl-cont
 +The region between a function definition's argument list and the
 +function opening brace (excluding K&R argument declarations).  In C,
 +you cannot put anything but whitespace and comments in this region,
 +however in C++ and Java, @code{throws} declarations and other things
 +can appear here.  @ref{Literal Symbols}. @c @emph{FIXME!!!  Can it not
 +@c go somewhere better?}
 +@item knr-argdecl-intro
 +First line of a K&R C argument declaration.  @ref{K&R Symbols}.
 +@item knr-argdecl
 +Subsequent lines in a K&R C argument declaration.  @ref{K&R Symbols}.
 +@item topmost-intro
 +The first line in a ``topmost'' definition.  @ref{Function Symbols}.
 +@item topmost-intro-cont
 +Topmost definition continuation lines.  This is only used in the parts
 +that aren't covered by other symbols such as @code{func-decl-cont} and
 +@code{knr-argdecl}.  @ref{Function Symbols}.
 +@item member-init-intro
 +First line in a member initialization list.  @ref{Class Symbols}.
 +@item member-init-cont
 +Subsequent member initialization list lines.  @ref{Class Symbols}.
 +@item inher-intro
 +First line of a multiple inheritance list.  @ref{Class Symbols}.
 +@item inher-cont
 +Subsequent multiple inheritance lines.  @ref{Class Symbols}.
 +@item block-open
 +Statement block open brace.  @ref{Literal Symbols}.
 +@item block-close
 +Statement block close brace.  @ref{Conditional Construct Symbols}.
 +@item brace-list-open
 +Open brace of an enum or static array list.  @ref{Brace List Symbols}.
 +@item brace-list-close
 +Close brace of an enum or static array list.  @ref{Brace List Symbols}.
 +@item brace-list-intro
 +First line in an enum or static array list.  @ref{Brace List Symbols}.
 +@item brace-list-entry
 +Subsequent lines in an enum or static array list.  @ref{Brace List
 +Symbols}.
 +@item brace-entry-open
 +Subsequent lines in an enum or static array list where the line begins
 +with an open brace.  @ref{Brace List Symbols}.
 +@item statement
 +A statement.  @ref{Function Symbols}.
 +@item statement-cont
 +A continuation of a statement.  @ref{Function Symbols}.
 +@item statement-block-intro
 +The first line in a new statement block.  @ref{Conditional Construct
 +Symbols}.
 +@item statement-case-intro
 +The first line in a case block.  @ref{Switch Statement Symbols}.
 +@item statement-case-open
 +The first line in a case block that starts with a brace.  @ref{Switch
 +Statement Symbols}.
 +@item substatement
 +The first line after a conditional or loop construct.
 +@ref{Conditional Construct Symbols}.
 +@item substatement-open
 +The brace that opens a substatement block.  @ref{Conditional Construct
 +Symbols}.
 +@item substatement-label
 +The first line after a conditional or loop construct if it's a label.
 +@ref{Conditional Construct Symbols}.
 +@item case-label
 +A label in a @code{switch} block.  @ref{Switch Statement Symbols}.
 +@item access-label
 +C++ access control label.  @ref{Class Symbols}.
 +@item label
 +Any other label.  @ref{Literal Symbols}.
 +@item do-while-closure
 +The @code{while} line that ends a @code{do}-@code{while} construct.
 +@ref{Conditional Construct Symbols}.
 +@item else-clause
 +The @code{else} line of an @code{if}-@code{else} construct.
 +@ref{Conditional Construct Symbols}.
 +@item catch-clause
 +The @code{catch} or @code{finally} (in Java) line of a
 +@code{try}-@code{catch} construct.  @ref{Conditional Construct
 +Symbols}.
 +@item comment-intro
 +A line containing only a comment introduction.  @ref{Literal Symbols}.
 +@item arglist-intro
 +The first line in an argument list.  @ref{Paren List Symbols}.
 +@item arglist-cont
 +Subsequent argument list lines when no arguments follow on the same
 +line as the arglist opening paren.  @ref{Paren List Symbols}.
 +@item arglist-cont-nonempty
 +Subsequent argument list lines when at least one argument follows on
 +the same line as the arglist opening paren.  @ref{Paren List Symbols}.
 +@item arglist-close
 +The solo close paren of an argument list.  @ref{Paren List Symbols}.
 +@item stream-op
 +Lines continuing a stream operator (C++ only).  @ref{Literal
 +Symbols}. @c @emph{FIXME!!!  Can this not be moved somewhere better?}
 +@item inclass
 +The line is nested inside a class definition.  @ref{Class Symbols}.
 +@item cpp-macro
 +The start of a preprocessor macro definition.  @ref{Literal Symbols}.
 +@item cpp-define-intro
 +The first line inside a multiline preprocessor macro if
 +@code{c-syntactic-indentation-in-macros} is set.  @ref{Multiline Macro
 +Symbols}.
 +@item cpp-macro-cont
 +All lines inside multiline preprocessor macros if
 +@code{c-syntactic-indentation-in-macros} is @code{nil}.
 +@ref{Multiline Macro Symbols}.
 +@item friend
 +A C++ friend declaration.  @ref{Class Symbols}.
 +@item objc-method-intro
 +The first line of an Objective-C method definition.  @ref{Objective-C
 +Method Symbols}.
 +@item objc-method-args-cont
 +Lines continuing an Objective-C method definition.  @ref{Objective-C
 +Method Symbols}.
 +@item objc-method-call-cont
 +Lines continuing an Objective-C method call.  @ref{Objective-C Method
 +Symbols}.
 +@item extern-lang-open
 +Brace that opens an @code{extern} block (e.g. @code{extern "C"
 +@{...@}}).  @ref{External Scope Symbols}.
 +@item extern-lang-close
 +Brace that closes an @code{extern} block.  @ref{External Scope
 +Symbols}.
 +@item inextern-lang
 +Analogous to @code{inclass} syntactic symbol, but used inside
 +@code{extern} blocks.  @ref{External Scope Symbols}.
 +@item namespace-open
 +@itemx namespace-close
 +@itemx innamespace
 +These are analogous to the three @code{extern-lang} symbols above, but
 +are returned for C++ namespace blocks.  @ref{External Scope Symbols}.
 +@item module-open
 +@itemx module-close
 +@itemx inmodule
 +Analogous to the above, but for CORBA IDL @code{module} blocks.
 +@ref{External Scope Symbols}.
 +@item composition-open
 +@itemx composition-close
 +@itemx incomposition
 +Analogous to the above, but for CORBA CIDL @code{composition} blocks.
 +@ref{External Scope Symbols}.
 +@item template-args-cont
 +C++ template argument list continuations.  @ref{Class Symbols}.
 +@item inlambda
 +Analogous to @code{inclass} syntactic symbol, but used inside lambda
 +(i.e. anonymous) functions.  Only used in Pike mode.  @ref{Statement
 +Block Symbols}.
 +@item lambda-intro-cont
 +Lines continuing the header of a lambda function, i.e. between the
 +@code{lambda} keyword and the function body.  Only used in Pike mode.
 +@ref{Statement Block Symbols}.
 +@item inexpr-statement
 +A statement block inside an expression.  The gcc C and C++ extension
 +for this is recognized.  It's also used for the special functions that
 +take a statement block as an argument in Pike.  @ref{Statement Block
 +Symbols}.
 +@item inexpr-class
 +A class definition inside an expression.  This is used for anonymous
 +classes in Java.  It's also used for anonymous array initializers in
 +Java.  @ref{Anonymous Class Symbol}.
 +@end table
 +
 +@menu
 +* Function Symbols::
 +* Class Symbols::
 +* Conditional Construct Symbols::
 +* Switch Statement Symbols::
 +* Brace List Symbols::
 +* External Scope Symbols::
 +* Paren List Symbols::
 +* Literal Symbols::
 +* Multiline Macro Symbols::
 +* Objective-C Method Symbols::
 +* Anonymous Class Symbol::
 +* Statement Block Symbols::
 +* K&R Symbols::
 +@end menu
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Function Symbols, Class Symbols, Syntactic Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Function Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +This example shows a typical function declaration.
 +
 +@example
 + 1: void
 + 2: swap( int& a, int& b )
 + 3: @{
 + 4:     int tmp = a;
 + 5:     a = b;
 + 6:     b = tmp;
 + 7:     int ignored =
 + 8:         a + b;
 + 9: @}
 +@end example
 +
 +@ssindex topmost-intro
 +@ssindex topmost-intro-cont
 +@ssindex defun-open
 +@ssindex defun-close
 +@ssindex defun-block-intro
 +Line 1 shows a @code{topmost-intro} since it is the first line that
 +introduces a top-level construct.  Line 2 is a continuation of the
 +top-level construct introduction so it has the syntax
 +@code{topmost-intro-cont}.  Line 3 shows a @code{defun-open} since it is
 +the brace that opens a top-level function definition.  Line 9 is the
 +corresponding
 +@code{defun-close} since it contains the brace that closes the top-level
 +function definition.  Line 4 is a @code{defun-block-intro}, i.e. it is
 +the first line of a brace-block, enclosed in a
 +top-level function definition.
 +
 +@ssindex statement
 +@ssindex statement-cont
 +Lines 5, 6, and 7 are all given @code{statement} syntax since there
 +isn't much special about them.  Note however that line 8 is given
 +@code{statement-cont} syntax since it continues the statement begun
 +on the previous line.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Class Symbols, Conditional Construct Symbols, Function Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Class related Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Here's an example which illustrates some C++ class syntactic symbols:
 +
 +@example
 + 1: class Bass
 + 2:     : public Guitar,
 + 3:       public Amplifiable
 + 4: @{
 + 5: public:
 + 6:     Bass()
 + 7:         : eString( new BassString( 0.105 )),
 + 8:           aString( new BassString( 0.085 )),
 + 9:           dString( new BassString( 0.065 )),
 +10:           gString( new BassString( 0.045 ))
 +11:     @{
 +12:         eString.tune( 'E' );
 +13:         aString.tune( 'A' );
 +14:         dString.tune( 'D' );
 +15:         gString.tune( 'G' );
 +16:     @}
 +17:     friend class Luthier;
 +18: @};
 +@end example
 +
 +@ssindex class-open
 +@ssindex class-close
 +As in the previous example, line 1 has the @code{topmost-intro} syntax.
 +Here however, the brace that opens a C++ class definition on line 4 is
 +assigned the @code{class-open} syntax.  Note that in C++, classes,
 +structs, and unions are essentially equivalent syntactically (and are
 +very similar semantically), so replacing the @code{class} keyword in the
 +example above with @code{struct} or @code{union} would still result in a
 +syntax of @code{class-open} for line 4 @footnote{This is the case even
 +for C and Objective-C.  For consistency, structs in all supported
 +languages are syntactically equivalent to classes.  Note however that
 +the keyword @code{class} is meaningless in C and Objective-C.}.
 +Similarly, line 18 is assigned @code{class-close} syntax.
 +
 +@ssindex inher-intro
 +@ssindex inher-cont
 +Line 2 introduces the inheritance list for the class so it is assigned
 +the @code{inher-intro} syntax, and line 3, which continues the
 +inheritance list is given @code{inher-cont} syntax.
 +
 +@ssindex access-label
 +@ssindex inclass
 +Hitting @kbd{C-c C-s} on line 5 shows the following analysis:
 +
 +@example
 +((inclass 58) (access-label 58))
 +@end example
 +
 +@noindent
 +The primary syntactic symbol for this line is @code{access-label} as
 +this a label keyword that specifies access protection in C++.  However,
 +because this line is also a top-level construct inside a class
 +definition, the analysis actually shows two syntactic symbols.  The
 +other syntactic symbol assigned to this line is @code{inclass}.
 +Similarly, line 6 is given both @code{inclass} and @code{topmost-intro}
 +syntax:
 +
 +@example
 +((inclass 58) (topmost-intro 60))
 +@end example
 +
 +@ssindex member-init-intro
 +@ssindex member-init-cont
 +Line 7 introduces a C++ member initialization list and as such is given
 +@code{member-init-intro} syntax.  Note that in this case it is
 +@emph{not} assigned @code{inclass} since this is not considered a
 +top-level construct.  Lines 8 through 10 are all assigned
 +@code{member-init-cont} since they continue the member initialization
 +list started on line 7.
 +
 +@cindex in-class inline methods
 +@ssindex inline-open
 +@ssindex inline-close
 +Line 11's analysis is a bit more complicated:
 +
 +@example
 +((inclass 58) (inline-open))
 +@end example
 +
 +This line is assigned a syntax of both @code{inline-open} and
 +@code{inclass} because it opens an @dfn{in-class} C++ inline method
 +definition.  This is distinct from, but related to, the C++ notion of an
 +inline function in that its definition occurs inside an enclosing class
 +definition, which in C++ implies that the function should be inlined.
 +However, if the definition of the @code{Bass} constructor appeared
 +outside the class definition, the construct would be given the
 +@code{defun-open} syntax, even if the keyword @code{inline} appeared
 +before the method name, as in:
 +
 +@example
 + 1: class Bass
 + 2:     : public Guitar,
 + 3:       public Amplifiable
 + 4: @{
 + 5: public:
 + 6:     Bass();
 + 7: @};
 + 8:
 + 9: inline
 +10: Bass::Bass()
 +11:     : eString( new BassString( 0.105 )),
 +12:       aString( new BassString( 0.085 )),
 +13:       dString( new BassString( 0.065 )),
 +14:       gString( new BassString( 0.045 ))
 +15: @{
 +16:     eString.tune( 'E' );
 +17:     aString.tune( 'A' );
 +18:     dString.tune( 'D' );
 +19:     gString.tune( 'G' );
 +20: @}
 +@end example
 +
 +@ssindex friend
 +Returning to the previous example, line 16 is given @code{inline-close}
 +syntax, while line 12 is given @code{defun-block-open} syntax, and lines
 +13 through 15 are all given @code{statement} syntax.  Line 17 is
 +interesting in that its syntactic analysis list contains three
 +elements:
 +
 +@example
 +((inclass 58) (topmost-intro 380) (friend))
 +@end example
 +
 +The @code{friend} and @code{inline-open} syntactic symbols are
 +modifiers that do not have anchor positions.
 +
 +@ssindex template-args-cont
 +Template definitions introduce yet another syntactic symbol:
 +
 +@example
 + 1: ThingManager <int,
 + 2:    Framework::Callback *,
 + 3:    Mutex> framework_callbacks;
 +@end example
 +
 +Here, line 1 is analyzed as a @code{topmost-intro}, but lines 2 and 3
 +are both analyzed as @code{template-args-cont} lines.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Conditional Construct Symbols, Switch Statement Symbols, Class Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Conditional Construct Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Here is a (totally contrived) example which illustrates how syntax is
 +assigned to various conditional constructs:
 +
 +@example
 + 1: void spam( int index )
 + 2: @{
 + 3:     for( int i=0; i<index; i++ )
 + 4:     @{
 + 5:         if( i == 10 )
 + 6:             do_something_special();
 + 7:         else
 + 8:           silly_label:
 + 9:             do_something( i );
 +10:     @}
 +11:     do @{
 +12:         another_thing( i-- );
 +13:     @}
 +14:     while( i > 0 );
 +15: @}
 +@end example
 +
 +Only the lines that illustrate new syntactic symbols will be discussed.
 +
 +@ssindex substatement-open
 +@ssindex statement-block-intro
 +@ssindex block-close
 +Line 4 has a brace which opens a conditional's substatement block.  It
 +is thus assigned @code{substatement-open} syntax, and since line 5 is
 +the first line in the substatement block, it is assigned
 +@code{statement-block-intro} syntax.  Line 10 contains the brace
 +that closes the inner substatement block, and is therefore given the
 +syntax @code{block-close}@footnote{@code{block-open} is used only for
 +``free-standing'' blocks, and is somewhat rare (@pxref{Literal
 +Symbols} for an example.)}.  Line 13 is treated the same way.
 +
 +@ssindex substatement
 +Lines 6 and 9 are also substatements of conditionals, but since they
 +don't start blocks they are given @code{substatement} syntax
 +instead of @code{substatement-open}.
 +
 +@ssindex substatement-label
 +Line 8 contains a label, which is normally given @code{label} syntax.
 +This one is however a bit special since it's between a conditional and
 +its substatement.  It's analyzed as @code{substatement-label} to let you
 +handle this rather odd case differently from normal labels.
 +
 +@ssindex else-clause
 +@ssindex catch-clause
 +Line 7 start with an @code{else} that matches the @code{if} statement on
 +line 5.  It is therefore given the @code{else-clause} syntax and is
 +anchored on the matching @code{if}.  The @code{try}-@code{catch}
 +constructs in C++ and Java are treated this way too, except that
 +@code{catch} and (in Java) @code{finally}, are marked with
 +@code{catch-clause}.
 +
 +@ssindex do-while-closure
 +The @code{while} construct on line 14 that closes a @code{do}
 +conditional is given the special syntax @code{do-while-closure} if it
 +appears on a line by itself.  Note that if the @code{while} appeared on
 +the same line as the preceding close brace, that line would still have
 +@code{block-close} syntax.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Switch Statement Symbols, Brace List Symbols, Conditional Construct Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Switch Statement Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Switch statements have their own set of syntactic symbols.  Here's an
 +example:
 +
 +@example
 + 1: void spam( enum Ingredient i )
 + 2: @{
 + 3:     switch( i ) @{
 + 4:     case Ham:
 + 5:         be_a_pig();
 + 6:         break;
 + 7:     case Salt:
 + 8:         drink_some_water();
 + 9:         break;
 +10:     default:
 +11:         @{
 +12:             what_is_it();
 +13:             break;
 +14:         @}
 +15:     @}
 +14: @}
 +@end example
 +
 +@ssindex case-label
 +@ssindex statement-case-intro
 +@ssindex statement-case-open
 +Here, lines 4, 7, and 10 are all assigned @code{case-label} syntax,
 +while lines 5 and 8 are assigned @code{statement-case-intro}.  Line 11
 +is treated slightly differently since it contains a brace that opens a
 +block --- it is given @code{statement-case-open} syntax.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Brace List Symbols, External Scope Symbols, Switch Statement Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Brace List Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex brace lists
 +There are a set of syntactic symbols that are used to recognize
 +constructs inside of brace lists.  A brace list is defined as an
 +@code{enum} or aggregate initializer list, such as might statically
 +initialize an array of structs.  The three special aggregate constructs
 +in Pike, @code{(@{ @})}, @code{([ ])} and @code{(< >)}, are treated as
 +brace lists too.  An example:
 +
 +@example
 + 1: static char* ingredients[] =
 + 2: @{
 + 3:     "Ham",
 + 4:     "Salt",
 + 5:     NULL
 + 6: @};
 +@end example
 +
 +@ssindex brace-list-open
 +@ssindex brace-list-intro
 +@ssindex brace-list-close
 +@ssindex brace-list-entry
 +Following convention, line 2 in this example is assigned
 +@code{brace-list-open} syntax, and line 3 is assigned
 +@code{brace-list-intro} syntax.  Likewise, line 6 is assigned
 +@code{brace-list-close} syntax.  Lines 4 and 5 however, are assigned
 +@code{brace-list-entry} syntax, as would all subsequent lines in this
 +initializer list.
 +
 +@ssindex brace-entry-open
 +Your static initializer might be initializing nested structures, for
 +example:
 +
 +@example
 + 1: struct intpairs[] =
 + 2: @{
 + 3:     @{ 1, 2 @},
 + 4:     @{
 + 5:         3,
 + 6:         4
 + 7:     @}
 + 8:     @{ 1,
 + 9:       2 @},
 +10:     @{ 3, 4 @}
 +11: @};
 +@end example
 +
 +Here, you've already seen the analysis of lines 1, 2, 3, and 11.  On
 +line 4, things get interesting; this line is assigned
 +@code{brace-entry-open} syntactic symbol because it's a bracelist entry
 +line that starts with an open brace.  Lines 5 and 6 (and line 9) are
 +pretty standard, and line 7 is a @code{brace-list-close} as you'd
 +expect.  Once again, line 8 is assigned as @code{brace-entry-open} as is
 +line 10.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    External Scope Symbols, Paren List Symbols, Brace List Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection External Scope Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +External language definition blocks also have their own syntactic
 +symbols.  In this example:
 +
 +@example
 + 1: extern "C"
 + 2: @{
 + 3:     int thing_one( int );
 + 4:     int thing_two( double );
 + 5: @}
 +@end example
 +
 +@ssindex extern-lang-open
 +@ssindex extern-lang-close
 +@ssindex inextern-lang
 +@ssindex inclass
 +@noindent
 +line 2 is given the @code{extern-lang-open} syntax, while line 5 is given
 +the @code{extern-lang-close} syntax.  The analysis for line 3 yields:
 +
 +@example
 +((inextern-lang) (topmost-intro 14))
 +@end example
 +
 +@noindent
 +where @code{inextern-lang} is a modifier similar in purpose to
 +@code{inclass}.
 +
 +There are various other top level blocks like @code{extern}, and they
 +are all treated in the same way except that the symbols are named after
 +the keyword that introduces the block.  E.g. C++ namespace blocks get
 +the three symbols @code{namespace-open}, @code{namespace-close} and
 +@code{innamespace}.  The currently recognized top level blocks are:
 +
 +@table @asis
 +@item @code{extern-lang-open}, @code{extern-lang-close}, @code{inextern-lang}
 +@code{extern} blocks in C and C++.@footnote{These should logically be
 +named @code{extern-open}, @code{extern-close} and @code{inextern}, but
 +that isn't the case for historical reasons.}
 +
 +@item @code{namespace-open}, @code{namespace-close}, @code{innamespace}
 +@ssindex namespace-open
 +@ssindex namespace-close
 +@ssindex innamespace
 +@code{namespace} blocks in C++.
 +
 +@item @code{module-open}, @code{module-close}, @code{inmodule}
 +@ssindex module-open
 +@ssindex module-close
 +@ssindex inmodule
 +@code{module} blocks in CORBA IDL.
 +
 +@item @code{composition-open}, @code{composition-close}, @code{incomposition}
 +@ssindex composition-open
 +@ssindex composition-close
 +@ssindex incomposition
 +@code{composition} blocks in CORBA CIDL.
 +@end table
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Paren List Symbols, Literal Symbols, External Scope Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Parenthesis (Argument) List Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +A number of syntactic symbols are associated with parenthesis lists,
 +a.k.a argument lists, as found in function declarations and function
 +calls.  This example illustrates these:
 +
 +@example
 + 1: void a_function( int line1,
 + 2:                  int line2 );
 + 3:
 + 4: void a_longer_function(
 + 5:     int line1,
 + 6:     int line2
 + 7:     );
 + 8:
 + 9: void call_them( int line1, int line2 )
 +10: @{
 +11:     a_function(
 +12:         line1,
 +13:         line2
 +14:         );
 +15:
 +16:     a_longer_function( line1,
 +17:                        line2 );
 +18: @}
 +@end example
 +
 +@ssindex arglist-intro
 +@ssindex arglist-close
 +Lines 5 and 12 are assigned @code{arglist-intro} syntax since they are
 +the first line following the open parenthesis, and lines 7 and 14 are
 +assigned @code{arglist-close} syntax since they contain the parenthesis
 +that closes the argument list.
 +
 +@ssindex arglist-cont-nonempty
 +@ssindex arglist-cont
 +Lines that continue argument lists can be assigned one of two syntactic
 +symbols.  For example, Lines 2 and 17
 +are assigned @code{arglist-cont-nonempty} syntax.  What this means
 +is that they continue an argument list, but that the line containing the
 +parenthesis that opens the list is @emph{not empty} following the open
 +parenthesis.  Contrast this against lines 6 and 13 which are assigned
 +@code{arglist-cont} syntax.  This is because the parenthesis that opens
 +their argument lists is the last character on that line.
 +
 +Syntactic elements with @code{arglist-intro},
 +@code{arglist-cont-nonempty}, and @code{arglist-close} contain two
 +buffer positions: the anchor position (the beginning of the
 +declaration or statement) and the position of the open parenthesis.
 +The latter position can be used in a line-up function (@pxref{Line-Up
 +Functions}).
 +
 +Note that there is no @code{arglist-open} syntax.  This is because any
 +parenthesis that opens an argument list, appearing on a separate line,
 +is assigned the @code{statement-cont} syntax instead.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Literal Symbols, Multiline Macro Symbols, Paren List Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Comment String Label and Macro Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +A few miscellaneous syntactic symbols that haven't been previously
 +covered are illustrated by this C++ example:
 +
 +@example
 + 1: void Bass::play( int volume )
 + 2: const
 + 3: @{
 + 4:     /* this line starts a multiline
 + 5:      * comment.  This line should get `c' syntax */
 + 6:
 + 7:     char* a_multiline_string = "This line starts a multiline \
 + 8: string.  This line should get `string' syntax.";
 + 9:
 +10:   note:
 +11:     @{
 +12: #ifdef LOCK
 +13:         Lock acquire();
 +14: #endif // LOCK
 +15:         slap_pop();
 +16:         cout << "I played "
 +17:              << "a note\n";
 +18:     @}
 +19: @}
 +@end example
 +
 +The lines to note in this example include:
 +
 +@itemize @bullet
 +@item
 +@ssindex func-decl-cont
 +Line 2 is assigned the @code{func-decl-cont} syntax.
 +
 +@item
 +@ssindex comment-intro
 +Line 4 is assigned both @code{defun-block-intro} @emph{and}
 +@code{comment-intro} syntax.  A syntactic element with
 +@code{comment-intro} has no anchor point --- It is always accompanied
 +by another syntactic element which does have one.
 +
 +@item
 +@ssindex c
 +Line 5 is assigned @code{c} syntax.
 +
 +@item
 +@cindex syntactic whitespace
 +Line 6 which, even though it contains nothing but whitespace, is
 +assigned @code{defun-block-intro}.  Note that the appearance of the
 +comment on lines 4 and 5 do not cause line 6 to be assigned
 +@code{statement} syntax because comments are considered to be
 +@dfn{syntactic whitespace}, which are ignored when analyzing
 +code.
 +
 +@item
 +@ssindex string
 +Line 8 is assigned @code{string} syntax.
 +
 +@item
 +@ssindex label
 +Line 10 is assigned @code{label} syntax.
 +
 +@item
 +@ssindex block-open
 +Line 11 is assigned @code{block-open} as well as @code{statement}
 +syntax.  A @code{block-open} syntactic element doesn't have an anchor
 +position, since it always appears with another syntactic element which
 +does have one.
 +
 +@item
 +@ssindex cpp-macro
 +Lines 12 and 14 are assigned @code{cpp-macro} syntax in addition to the
 +normal syntactic symbols (@code{statement-block-intro} and
 +@code{statement}, respectively).  Normally @code{cpp-macro} is
 +configured to cancel out the normal syntactic context to make all
 +preprocessor directives stick to the first column, but that's easily
 +changed if you want preprocessor directives to be indented like the rest
 +of the code.  Like @code{comment-intro}, a syntactic element with
 +@code{cpp-macro} doesn't contain an anchor position.
 +
 +@item
 +@ssindex stream-op
 +Line 17 is assigned @code{stream-op} syntax.
 +@end itemize
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Multiline Macro Symbols, Objective-C Method Symbols, Literal Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Multiline Macro Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex multiline macros
 +@cindex syntactic whitespace
 +@ssindex cpp-define-intro
 +@ssindex cpp-macro-cont
 +Multiline preprocessor macro definitions are normally handled just like
 +other code, i.e. the lines inside them are indented according to the
 +syntactic analysis of the preceding lines inside the macro.  The first
 +line inside a macro definition (i.e. the line after the starting line of
 +the cpp directive itself) gets @code{cpp-define-intro}.  In this example:
 +
 +@example
 + 1: #define LIST_LOOP(cons, listp)                         \
 + 2:   for (cons = listp; !NILP (cons); cons = XCDR (cons)) \
 + 3:     if (!CONSP (cons))                                 \
 + 4:       signal_error ("Invalid list format", listp);     \
 + 5:     else
 +@end example
 +
 +@noindent
 +line 1 is given the syntactic symbol @code{cpp-macro}.  The first line
 +of a cpp directive is always given that symbol.  Line 2 is given
 +@code{cpp-define-intro}, so that you can give the macro body as a whole
 +some extra indentation.  Lines 3 through 5 are then analyzed as normal
 +code, i.e. @code{substatement} on lines 3 and 4, and @code{else-clause}
 +on line 5.
 +
 +The syntactic analysis inside macros can be turned off with
 +@code{c-syntactic-indentation-in-macros} (@pxref{Custom Macros}).  In
 +that case, lines 2 through 5 would all be given @code{cpp-macro-cont}
 +with an anchor position pointing to the @code{#} which starts the cpp
 +directive@footnote{This is how @ccmode{} 5.28 and earlier analyzed
 +macros.}.
 +
 +@xref{Custom Macros}, for more info about the treatment of macros.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Objective-C Method Symbols, Anonymous Class Symbol, Multiline Macro Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Objective-C Method Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +In Objective-C buffers, there are three additional syntactic symbols
 +assigned to various message calling constructs.  Here's an example
 +illustrating these:
 +
 +@example
 + 1: - (void)setDelegate:anObject
 + 2:           withStuff:stuff
 + 3: @{
 + 4:     [delegate masterWillRebind:self
 + 5:               toDelegate:anObject
 + 6:               withExtraStuff:stuff];
 + 7: @}
 +@end example
 +
 +@ssindex objc-method-intro
 +@ssindex objc-method-args-cont
 +@ssindex objc-method-call-cont
 +Here, line 1 is assigned @code{objc-method-intro} syntax, and line 2 is
 +assigned @code{objc-method-args-cont} syntax.  Lines 5 and 6 are both
 +assigned @code{objc-method-call-cont} syntax.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Anonymous Class Symbol, Statement Block Symbols, Objective-C Method Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Anonymous Class Symbol (Java)
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Java has a concept of anonymous classes which can look something like
 +this:
 +
 +@example
 + 1: public void watch(Observable o) @{
 + 2:     o.addObserver(new Observer() @{
 + 3:             public void update(Observable o, Object arg) @{
 + 4:                 history.addElement(arg);
 + 5:             @}
 + 6:         @});
 + 7: @}
 +@end example
 +
 +@ssindex inexpr-class
 +The brace following the @code{new} operator opens the anonymous class.
 +Lines 3 and 6 are assigned the @code{inexpr-class} syntax, besides the
 +@code{inclass} symbol used in normal classes.  Thus, the class will be
 +indented just like a normal class, with the added indentation given to
 +@code{inexpr-class}.  An @code{inexpr-class} syntactic element doesn't
 +have an anchor position.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Statement Block Symbols, K&R Symbols, Anonymous Class Symbol, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection Statement Block Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +There are a few occasions where a statement block might be used inside
 +an expression.  One is in C or C++ code using the gcc extension for
 +this, e.g:
 +
 +@example
 + 1: int res = (@{
 + 2:         int y = foo (); int z;
 + 3:         if (y > 0) z = y; else z = - y;
 + 4:         z;
 + 5:     @});
 +@end example
 +
 +@ssindex inexpr-statement
 +Lines 2 and 5 get the @code{inexpr-statement} syntax, besides the
 +symbols they'd get in a normal block.  Therefore, the indentation put on
 +@code{inexpr-statement} is added to the normal statement block
 +indentation.  An @code{inexpr-statement} syntactic element doesn't
 +contain an anchor position.
 +
 +In Pike code, there are a few other situations where blocks occur inside
 +statements, as illustrated here:
 +
 +@example
 + 1: array itgob()
 + 2: @{
 + 3:     string s = map (backtrace()[-2][3..],
 + 4:                     lambda
 + 5:                         (mixed arg)
 + 6:                     @{
 + 7:                         return sprintf ("%t", arg);
 + 8:                     @}) * ", " + "\n";
 + 9:     return catch @{
 +10:             write (s + "\n");
 +11:         @};
 +12: @}
 +@end example
 +
 +@ssindex inlambda
 +@ssindex lambda-intro-cont
 +Lines 4 through 8 contain a lambda function, which @ccmode{} recognizes
 +by the @code{lambda} keyword.  If the function argument list is put
 +on a line of its own, as in line 5, it gets the @code{lambda-intro-cont}
 +syntax.  The function body is handled as an inline method body, with the
 +addition of the @code{inlambda} syntactic symbol.  This means that line
 +6 gets @code{inlambda} and @code{inline-open}, and line 8 gets
 +@code{inline-close}@footnote{You might wonder why it doesn't get
 +@code{inlambda} too.  It's because the closing brace is relative to the
 +opening brace, which stands on its own line in this example.  If the
 +opening brace was hanging on the previous line, then the closing brace
 +would get the @code{inlambda} syntax too to be indented correctly.}.
 +
 +@ssindex inexpr-statement
 +On line 9, @code{catch} is a special function taking a statement block
 +as its argument.  The block is handled as an in-expression statement
 +with the @code{inexpr-statement} syntax, just like the gcc extended C
 +example above.  The other similar special function, @code{gauge}, is
 +handled like this too.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    K&R Symbols,  , Statement Block Symbols, Syntactic Symbols
 +@comment node-name, next, previous, up
 +@subsection K&R Symbols
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@ssindex knr-argdecl-intro
 +@ssindex knr-argdecl
 +Two other syntactic symbols can appear in old style, non-prototyped C
 +code @footnote{a.k.a. K&R C, or Kernighan & Ritchie C}:
 +
 +@example
 + 1: int add_three_integers(a, b, c)
 + 2:      int a;
 + 3:      int b;
 + 4:      int c;
 + 5: @{
 + 6:     return a + b + c;
 + 7: @}
 +@end example
 +
 +Here, line 2 is the first line in an argument declaration list and so is
 +given the @code{knr-argdecl-intro} syntactic symbol.  Subsequent lines
 +(i.e. lines 3 and 4 in this example), are given @code{knr-argdecl}
 +syntax.
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Indentation Calculation,  , Syntactic Symbols, Indentation Engine Basics
 +@comment node-name, next, previous, up
 +@section Indentation Calculation
 +@cindex indentation
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Indentation for a line is calculated from the syntactic context
 +(@pxref{Syntactic Analysis}).
 +
 +First, a buffer position is found whose column will be the base for the
 +indentation calculation.  It's the anchor position in the first
 +syntactic element that provides one that is used.  If no syntactic
 +element has an anchor position then column zero is used.
 +
 +Second, the syntactic symbols in each syntactic element are looked up
 +in the @code{c-offsets-alist} style variable
 +(@pxref{c-offsets-alist}), which is an association list of syntactic
 +symbols and the offsets to apply for those symbols.  These offsets are
 +added together with the base column to produce the new indentation
 +column.
 +
 +Let's use our two code examples above to see how this works.  Here is
 +our first example again:
 +
 +@example
 + 1: void swap( int& a, int& b )
 + 2: @{
 + 3:     int tmp = a;
 + 4:     a = b;
 + 5:     b = tmp;
 + 6: @}
 +@end example
 +
 +Let's say point is on line 3 and we hit the @key{TAB} key to reindent
 +the line.  The syntactic context for that line is:
 +
 +@example
 +((defun-block-intro 29))
 +@end example
 +
 +@noindent
 +Since buffer position 29 is the first and only anchor position in the
 +list, @ccmode{} goes there and asks for the current column.  This brace
 +is in column zero, so @ccmode{} uses @samp{0} as the base column.
 +
 +Next, @ccmode{} looks up @code{defun-block-intro} in the
 +@code{c-offsets-alist} style variable.  Let's say it finds the value
 +@samp{4}; it adds this to the base column @samp{0}, yielding a running
 +total indentation of 4 spaces.
 +
 +Since there is only one syntactic element on the list for this line,
 +indentation calculation is complete, and the total indentation for the
 +line is 4 spaces.
 +
 +Here's another example:
 +
 +@example
 + 1: int add( int val, int incr, int doit )
 + 2: @{
 + 3:     if( doit )
 + 4:         @{
 + 5:             return( val + incr );
 + 6:         @}
 + 7:     return( val );
 + 8: @}
 +@end example
 +
 +If we were to hit @kbd{TAB} on line 4 in the above example, the same
 +basic process is performed, despite the differences in the syntactic
 +context.  The context for this line is:
 +
 +@example
 +((substatement-open 46))
 +@end example
 +
 +Here, @ccmode{} goes to buffer position 46, which is the @samp{i} in
 +@code{if} on line 3.  This character is in the fourth column on that
 +line so the base column is @samp{4}.  Then @ccmode{} looks up the
 +@code{substatement-open} symbol in @code{c-offsets-alist}.  Let's say it
 +finds the value @samp{4}.  It's added with the base column and yields an
 +indentation for the line of 8 spaces.
 +
 +Simple, huh?
 +
 +Actually, it's a bit more complicated than that since the entries on
 +@code{c-offsets-alist} can be much more than plain offsets.
 +@xref{c-offsets-alist}, for the full story.
 +
 +Anyway, the mode usually just does The Right Thing without you having to
 +think about it in this much detail.  But when customizing indentation,
 +it's helpful to understand the general indentation model being used.
 +
 +As you configure @ccmode{}, you might want to set the variable
 +@code{c-echo-syntactic-information-p} to non-@code{nil} so that the
 +syntactic context and calculated offset always is echoed in the
 +minibuffer when you hit @kbd{TAB}.
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Customizing Indentation, Custom Macros, Indentation Engine Basics, Top
 +@comment node-name, next, previous, up
 +@chapter Customizing Indentation
 +@cindex customization, indentation
 +@cindex indentation
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The principal variable for customizing indentation is the style
 +variable @code{c-offsets-alist}, which gives an @dfn{offset} (an
 +indentation rule) for each syntactic symbol.  Its structure and
 +semantics are completely described in @ref{c-offsets-alist}.  The
 +various ways you can set the variable, including the use of the
 +@ccmode{} style system, are described in @ref{Config Basics} and its
 +sections, in particular @ref{Style Variables}.
 +
 +The simplest and most used kind of ``offset'' setting in
 +@code{c-offsets-alist} is in terms of multiples of
 +@code{c-basic-offset}:
 +
 +@defopt c-basic-offset
 +@vindex basic-offset (c-)
 +This style variable holds the basic offset between indentation levels.
 +It's factory default is 4, but all the built-in styles set it
 +themselves, to some value between 2 (for @code{gnu} style) and 8 (for
 +@code{bsd}, @code{linux}, and @code{python} styles).
 +@end defopt
 +
 +The most flexible ``offset'' setting you can make in
 +@code{c-offsets-alist} is a line-up function (or even a list of them),
 +either one supplied by @ccmode{} (@pxref{Line-Up Functions}) or one
 +you write yourself (@pxref{Custom Line-Up}).
 +
 +Finally, in @ref{Other Indentation} you'll find the tool of last
 +resort: a hook which is called after a line has been indented.  You
 +can install functions here to make ad-hoc adjustments to any line's
 +indentation.
 +
 +@menu
 +* c-offsets-alist::
 +* Interactive Customization::
 +* Line-Up Functions::
 +* Custom Line-Up::
 +* Other Indentation::
 +@end menu
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    c-offsets-alist, Interactive Customization, Customizing Indentation, Customizing Indentation
 +@comment node-name, next, previous, up
 +@section c-offsets-alist
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +This section explains the structure and semantics of the style
 +variable @code{c-offset-alist}, the principal variable for configuring
 +indentation.  Details of how to set it up, and its relationship to
 +@ccmode{}'s style system are given in @ref{Style Variables}.
 +
 +@defopt c-offsets-alist
 +@vindex offsets-alist (c-)
 +This is an alist which associates an offset with each syntactic
 +symbol.  This @dfn{offset} is a rule specifying how to indent a line
 +whose syntactic context matches the symbol.  @xref{Syntactic
 +Analysis}.
 +
 +Note that the buffer-local binding of this alist in a @ccmode{} buffer
 +contains an entry for @emph{every} syntactic symbol.  Its global
 +binding and its settings within style specifications usually contain
 +only a few entries.  @xref{Style Variables}.
 +
 +The offset specification associated with any particular syntactic
 +symbol can be an integer, a variable name, a vector, a function or
 +lambda expression, a list, or one of the following special symbols:
 +@code{+}, @code{-}, @code{++}, @code{--}, @code{*}, or @code{/}.  The
 +meanings of these values are described in detail below.
 +
 +Here is an example fragment of a @code{c-offsets-alist}, showing some
 +of these kinds of offsets:
 +
 +@example
 +((statement . 0)
 + (substatement . +)
 + (cpp-macro . [0])
 + (topmost-intro-cont . c-lineup-topmost-intro-cont)
 + (statement-block-intro . (add c-lineup-whitesmith-in-block
 +                               c-indent-multi-line-block))
 + @dots{}
 +@*)
 +@end example
 +@end defopt
 +
 +@deffn Command c-set-offset (@kbd{C-c C-o})
 +@findex set-offset (c-)
 +@kindex C-c C-o
 +This command changes the entry for a syntactic symbol in the current
 +binding of @code{c-offsets-alist}, or it inserts a new entry if there
 +isn't already one for that syntactic symbol.
 +
 +You can use @code{c-set-offsets} interactively within a @ccmode{}
 +buffer to make experimental changes to your indentation settings.
 +@kbd{C-c C-o} prompts you for the syntactic symbol to change
 +(defaulting to that of the current line) and the new offset
 +(defaulting to the current offset).
 +
 +@code{c-set-offsets} takes two arguments when used programmatically:
 +@var{symbol}, the syntactic element symbol to change and @var{offset},
 +the new offset for that syntactic element.  You can call the command
 +in your @file{.emacs} to change the global binding of
 +@code{c-offsets-alist} (@pxref{Style Variables}); you can use it in a
 +hook function to make changes from the current style.  @ccmode{}
 +itself uses this function when initializing styles.
 +@end deffn
 +
 +@cindex offset specification
 +The ``offset specifications'' in @code{c-offsets-alist} can be any of
 +the following:
 +
 +@table @asis
 +@item An integer
 +The integer specifies a relative offset.  All relative
 +offsets@footnote{The syntactic context @code{@w{((defun-block-intro
 +2724) (comment-intro))}} would likely have two relative offsets.} will
 +be added together and used to calculate the indentation relative to an
 +anchor position earlier in the buffer.  @xref{Indentation
 +Calculation}, for details.  Most of the time, it's probably better to
 +use one of the special symbols like @code{+} than an integer (apart
 +from zero).
 +
 +@item One of the symbols @code{+}, @code{-}, @code{++}, @code{--}, @code{*}, or @code{/}
 +These special symbols describe a relative offset in multiples of
 +@code{c-basic-offset}:
 +
 +By defining a style's indentation in terms of @code{c-basic-offset},
 +you can change the amount of whitespace given to an indentation level
 +while maintaining the same basic shape of your code.  Here are the
 +values that the special symbols correspond to:
 +
 +@table @code
 +@item +
 +@code{c-basic-offset} times 1
 +@item -
 +@code{c-basic-offset} times -1
 +@item ++
 +@code{c-basic-offset} times 2
 +@item --
 +@code{c-basic-offset} times -2
 +@item *
 +@code{c-basic-offset} times 0.5
 +@item /
 +@code{c-basic-offset} times -0.5
 +@end table
 +
 +@item A vector
 +The first element of the vector, an integer, sets the absolute
 +indentation column.  This will override any previously calculated
 +indentation, but won't override relative indentation calculated from
 +syntactic elements later on in the syntactic context of the line being
 +indented.  @xref{Indentation Calculation}.  Any elements in the vector
 +beyond the first will be ignored.
 +
 +@item A function or lambda expression
 +The function will be called and its return value will in turn be
 +evaluated as an offset specification.  Functions are useful when more
 +context than just the syntactic symbol is needed to get the desired
 +indentation.  @xref{Line-Up Functions}, and @ref{Custom Line-Up}, for
 +details about them.
 +
 +@item A symbol with a variable binding
 +If the symbol also has a function binding, the function takes
 +precedence over the variable.  Otherwise the value of the variable is
 +used.  It must be an integer (which is used as relative offset) or a
 +vector (an absolute offset).
 +
 +@item A list
 +The offset can also be a list containing several offset
 +specifications; these are evaluated recursively and combined.  A list
 +is typically only useful when some of the offsets are line-up
 +functions.  A common strategy is calling a sequence of functions in
 +turn until one of them recognizes that it is appropriate for the
 +source line and returns a non-@code{nil} value.
 +
 +@code{nil} values are always ignored when the offsets are combined.
 +The first element of the list specifies the method of combining the
 +non-@code{nil} offsets from the remaining elements:
 +
 +@table @code
 +@item first
 +Use the first offset that doesn't evaluate to @code{nil}.  Subsequent
 +elements of the list don't get evaluated.
 +@item min
 +Use the minimum of all the offsets.  All must be either relative or
 +absolute - they can't be mixed.
 +@item max
 +Use the maximum of all the offsets.  All must be either relative or
 +absolute - they can't be mixed.
 +@item add
 +Add all the evaluated offsets together.  Exactly one of them may be
 +absolute, in which case the result is absolute.  Any relative offsets
 +that preceded the absolute one in the list will be ignored in that case.
 +@end table
 +
 +As a compatibility measure, if the first element is none of the above
 +then it too will be taken as an offset specification and the whole list
 +will be combined according to the method @code{first}.
 +@end table
 +
 +@vindex c-strict-syntax-p
 +@vindex strict-syntax-p (c-)
 +If an offset specification evaluates to @code{nil}, then a relative
 +offset of 0 (zero) is used@footnote{There is however a variable
 +@code{c-strict-syntax-p} that when set to non-@code{nil} will cause an
 +error to be signaled in that case.  It's now considered obsolete since
 +it doesn't work well with some of the alignment functions that return
 +@code{nil} instead of zero.  You should therefore leave
 +@code{c-strict-syntax-p} set to @code{nil}.}.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Interactive Customization, Line-Up Functions, c-offsets-alist, Customizing Indentation
 +@comment node-name, next, previous, up
 +@section Interactive Customization
 +@cindex customization, interactive
 +@cindex interactive customization
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +As an example of how to customize indentation, let's change the
 +style of this example@footnote{In this and subsequent examples, the
 +original code is formatted using the @samp{gnu} style unless otherwise
 +indicated.  @xref{Styles}.}:
 +
 +@example
 +@group
 + 1: int add( int val, int incr, int doit )
 + 2: @{
 + 3:   if( doit )
 + 4:     @{
 + 5:       return( val + incr );
 + 6:     @}
 + 7:   return( val );
 + 8: @}
 +@end group
 +@end example
 +
 +@noindent
 +to:
 +
 +@example
 +@group
 + 1: int add( int val, int incr, int doit )
 + 2: @{
 + 3:   if( doit )
 + 4:   @{
 + 5:     return( val + incr );
 + 6:   @}
 + 7:   return( val );
 + 8: @}
 +@end group
 +@end example
 +
 +In other words, we want to change the indentation of braces that open a
 +block following a condition so that the braces line up under the
 +conditional, instead of being indented.  Notice that the construct we
 +want to change starts on line 4.  To change the indentation of a line,
 +we need to see which syntactic symbols affect the offset calculations
 +for that line.  Hitting @kbd{C-c C-s} on line 4 yields:
 +
 +@example
 +((substatement-open 44))
 +@end example
 +
 +@noindent
 +so we know that to change the offset of the open brace, we need to
 +change the indentation for the @code{substatement-open} syntactic
 +symbol.
 +
 +To do this interactively, just hit @kbd{C-c C-o}.  This prompts
 +you for the syntactic symbol to change, providing a reasonable default.
 +In this case, the default is @code{substatement-open}, which is just the
 +syntactic symbol we want to change!
 +
 +After you hit return, @ccmode{} will then prompt you for the new
 +offset value, with the old value as the default.  The default in this
 +case is @samp{+}, but we want no extra indentation so enter
 +@samp{0} and @kbd{RET}.  This will associate the offset 0 with the
 +syntactic symbol @code{substatement-open}.
 +
 +To check your changes quickly, just hit @kbd{C-c C-q}
 +(@code{c-indent-defun}) to reindent the entire function.  The example
 +should now look like:
 +
 +@example
 +@group
 + 1: int add( int val, int incr, int doit )
 + 2: @{
 + 3:   if( doit )
 + 4:   @{
 + 5:     return( val + incr );
 + 6:   @}
 + 7:   return( val );
 + 8: @}
 +@end group
 +@end example
 +
 +Notice how just changing the open brace offset on line 4 is all we
 +needed to do.  Since the other affected lines are indented relative to
 +line 4, they are automatically indented the way you'd expect.  For more
 +complicated examples, this might not always work.  The general approach
 +to take is to always start adjusting offsets for lines higher up in the
 +file, then reindent and see if any following lines need further
 +adjustments.
 +
 +@c Move this bit to "Styles" (2005/10/7)
 +@deffn Command c-set-offset symbol offset
 +@findex set-offset (c-)
 +@kindex C-c C-o
 +This is the command bound to @kbd{C-c C-o}.  It provides a convenient
 +way to set offsets on @code{c-offsets-alist} both interactively (see
 +the example above) and from your mode hook.
 +
 +It takes two arguments when used programmatically: @var{symbol} is the
 +syntactic element symbol to change and @var{offset} is the new offset
 +for that syntactic element.
 +@end deffn
 +@c End of MOVE THIS BIT.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Line-Up Functions, Custom Line-Up, Interactive Customization, Customizing Indentation
 +@comment node-name, next, previous, up
 +@section Line-Up Functions
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@cindex line-up function
 +@cindex indentation function
 +Often there are cases when a simple offset setting on a syntactic
 +symbol isn't enough to get the desired indentation---for example, you
 +might want to line up a closing parenthesis with the matching opening
 +one rather than indenting relative to its ``anchor point''.  @ccmode{}
 +provides this flexibility with @dfn{line-up functions}.
 +
 +The way you associate a line-up function with a syntactic symbol is
 +described in @ref{c-offsets-alist}.  @ccmode{} comes with many
 +predefined line-up functions for common situations.  If none of these
 +does what you want, you can write your own.  @xref{Custom Line-Up}.
 +Sometimes, it is easier to tweak the standard indentation by adding a
 +function to @code{c-special-indent-hook} (@pxref{Other Indentation}).
 +
 +The line-up functions haven't been adapted for AWK buffers or tested
 +with them.  Some of them might work serendipitously.  There shouldn't be
 +any problems writing custom line-up functions for AWK mode.
 +
 +The calling convention for line-up functions is described fully in
 +@ref{Custom Line-Up}.  Roughly speaking, the return value is either an
 +offset itself (such as @code{+} or @code{[0]}) or it's @code{nil},
 +meaning ``this function is inappropriate in this case - try a
 +different one''.  @xref{c-offsets-alist}.
 +
 +The subsections below describe all the standard line-up functions,
 +categorized by the sort of token the lining-up centers around.  For
 +each of these functions there is a ``works with'' list that indicates
 +which syntactic symbols the function is intended to be used with.
 +
 +@macro workswith
 +@emph{Works with:@ }
 +@end macro
 +@ifinfo
 +@unmacro workswith
 +@macro workswith
 +Works with:
 +@end macro
 +@end ifinfo
 +
 +@macro sssTBasicOffset
 +<--> @i{c-basic-offset}@c
 +@end macro
 +
 +@macro sssTsssTBasicOffset
 +<--><--> @i{c-basic-offset}@c
 +@end macro
 +
 +@macro hereFn{func}
 +<- @i{\func\}@c
 +@end macro
 +
 +@c The TeX backend seems to insert extra spaces around the argument. :P
 +@iftex
 +@unmacro hereFn
 +@macro hereFn{func}
 +<-@i{\func\}@c
 +@end macro
 +@end iftex
 +
 +@menu
 +* Brace/Paren Line-Up::
 +* List Line-Up::
 +* Operator Line-Up::
 +* Comment Line-Up::
 +* Misc Line-Up::
 +@end menu
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Brace/Paren Line-Up, List Line-Up, Line-Up Functions, Line-Up Functions
 +@comment node-name, next, previous, up
 +@subsection Brace and Parenthesis Line-Up Functions
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The line-up functions here calculate the indentation for braces,
 +parentheses and statements within brace blocks.
 +
 +@defun c-lineup-close-paren
 +@findex lineup-close-paren (c-)
 +Line up the closing paren under its corresponding open paren if the
 +open paren is followed by code.  If the open paren ends its line, no
 +indentation is added.  E.g:
 +
 +@example
 +@group
 +main (int,
 +      char **
 +     )                @hereFn{c-lineup-close-paren}
 +@end group
 +@end example
 +
 +@noindent
 +and
 +
 +@example
 +@group
 +main (
 +    int, char **
 +)                     @hereFn{c-lineup-close-paren}
 +@end group
 +@end example
 +
 +As a special case, if a brace block is opened at the same line as the
 +open parenthesis of the argument list, the indentation is
 +@code{c-basic-offset} instead of the open paren column.  See
 +@code{c-lineup-arglist} for further discussion of this ``DWIM'' measure.
 +
 +@workswith All @code{*-close} symbols.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@anchor{c-lineup-arglist-close-under-paren}
 +@defun c-lineup-arglist-close-under-paren
 +@findex lineup-arglist-close-under-paren (c-)
 +Set your @code{arglist-close} syntactic symbol to this line-up function
 +so that parentheses that close argument lists will line up under the
 +parenthesis that opened the argument list.  It can also be used with
 +@code{arglist-cont} and @code{arglist-cont-nonempty} to line up all
 +lines inside a parenthesis under the open paren.
 +
 +As a special case, if a brace block is opened at the same line as the
 +open parenthesis of the argument list, the indentation is
 +@code{c-basic-offset} only.  See @code{c-lineup-arglist} for further
 +discussion of this ``DWIM'' measure.
 +
 +@workswith Almost all symbols, but are typically most useful on
 +@code{arglist-close}, @code{brace-list-close}, @code{arglist-cont} and
 +@code{arglist-cont-nonempty}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-indent-one-line-block
 +@findex indent-one-line-block (c-)
 +Indent a one line block @code{c-basic-offset} extra.  E.g:
 +
 +@example
 +@group
 +if (n > 0)
 +    @{m+=n; n=0;@}      @hereFn{c-indent-one-line-block}
 +@sssTBasicOffset{}
 +@end group
 +@end example
 +
 +@noindent
 +and
 +
 +@example
 +@group
 +if (n > 0)
 +@{                     @hereFn{c-indent-one-line-block}
 +    m+=n; n=0;
 +@}
 +@end group
 +@end example
 +
 +The block may be surrounded by any kind of parenthesis characters.
 +@code{nil} is returned if the line doesn't start with a one line block,
 +which makes the function usable in list expressions.
 +
 +@workswith Almost all syntactic symbols, but most useful on the
 +@code{-open} symbols.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-indent-multi-line-block
 +@findex indent-multi-line-block (c-)
 +Indent a multiline block @code{c-basic-offset} extra.  E.g:
 +
 +@example
 +@group
 +int *foo[] = @{
 +    NULL,
 +    @{17@},             @hereFn{c-indent-multi-line-block}
 +@end group
 +@end example
 +
 +@noindent
 +and
 +
 +@example
 +@group
 +int *foo[] = @{
 +    NULL,
 +        @{             @hereFn{c-indent-multi-line-block}
 +        17
 +        @},
 +    @sssTBasicOffset{}
 +@end group
 +@end example
 +
 +The block may be surrounded by any kind of parenthesis characters.
 +@code{nil} is returned if the line doesn't start with a multiline
 +block, which makes the function usable in list expressions.
 +
 +@workswith Almost all syntactic symbols, but most useful on the
 +@code{-open} symbols.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-runin-statements
 +@findex lineup-runin-statements (c-)
 +Line up statements for coding standards which place the first statement
 +in a block on the same line as the block opening brace@footnote{Run-in
 +style doesn't really work too well.  You might need to write your own
 +custom line-up functions to better support this style.}.  E.g:
 +
 +@example
 +@group
 +int main()
 +@{ puts ("Hello!");
 +  return 0;           @hereFn{c-lineup-runin-statements}
 +@}
 +@end group
 +@end example
 +
 +If there is no statement after the opening brace to align with,
 +@code{nil} is returned.  This makes the function usable in list
 +expressions.
 +
 +@workswith The @code{statement} syntactic symbol.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-inexpr-block
 +@findex lineup-inexpr-block (c-)
 +This can be used with the in-expression block symbols to indent the
 +whole block to the column where the construct is started.  E.g. for Java
 +anonymous classes, this lines up the class under the @samp{new} keyword,
 +and in Pike it lines up the lambda function body under the @samp{lambda}
 +keyword.  Returns @code{nil} if the block isn't part of such a
 +construct.
 +
 +@workswith @code{inlambda}, @code{inexpr-statement},
 +@code{inexpr-class}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-after-whitesmith-blocks
 +@findex lineup-after-whitesmith-blocks (c-)
 +Compensate for Whitesmith style indentation of blocks.  Due to the way
 +@ccmode{} calculates anchor positions for normal lines inside blocks,
 +this function is necessary for those lines to get correct Whitesmith
 +style indentation.  Consider the following examples:
 +
 +@example
 +@group
 +int foo()
 +    @{
 +    a;
 +    x;                 @hereFn{c-lineup-after-whitesmith-blocks}
 +@end group
 +@end example
 +
 +@example
 +@group
 +int foo()
 +    @{
 +        @{
 +        a;
 +        @}
 +    x;                 @hereFn{c-lineup-after-whitesmith-blocks}
 +@end group
 +@end example
 +
 +The fact that the line with @code{x} is preceded by a Whitesmith style
 +indented block in the latter case and not the first should not affect
 +its indentation.  But since CC Mode in cases like this uses the
 +indentation of the preceding statement as anchor position, the @code{x}
 +would in the second case be indented too much if the offset for
 +@code{statement} was set simply to zero.
 +
 +This lineup function corrects for this situation by detecting if the
 +anchor position is at an open paren character.  In that case, it instead
 +indents relative to the surrounding block just like
 +@code{c-lineup-whitesmith-in-block}.
 +
 +@workswith @code{brace-list-entry}, @code{brace-entry-open},
 +@code{statement}, @code{arglist-cont}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-whitesmith-in-block
 +@findex lineup-whitesmith-in-block (c-)
 +Line up lines inside a block in Whitesmith style.  It's done in a way
 +that works both when the opening brace hangs and when it doesn't.  E.g:
 +
 +@example
 +@group
 +something
 +    @{
 +    foo;              @hereFn{c-lineup-whitesmith-in-block}
 +    @}
 +@end group
 +@end example
 +
 +@noindent
 +and
 +
 +@example
 +@group
 +something @{
 +    foo;              @hereFn{c-lineup-whitesmith-in-block}
 +    @}
 +@sssTBasicOffset{}
 +@end group
 +@end example
 +
 +In the first case the indentation is kept unchanged, in the second
 +@code{c-basic-offset} is added.
 +
 +@workswith @code{defun-close}, @code{defun-block-intro},
 +@code{inline-close}, @code{block-close}, @code{brace-list-close},
 +@code{brace-list-intro}, @code{statement-block-intro},
 +@code{arglist-intro}, @code{arglist-cont-nonempty},
 +@code{arglist-close}, and all @code{in*} symbols, e.g. @code{inclass}
 +and @code{inextern-lang}.
 +@end defun
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    List Line-Up, Operator Line-Up, Brace/Paren Line-Up, Line-Up Functions
 +@comment node-name, next, previous, up
 +@subsection List Line-Up Functions
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The line-up functions here calculate the indentation for lines which
 +form lists of items, usually separated by commas.
 +
 +The function @ref{c-lineup-arglist-close-under-paren}, which is mainly
 +for indenting a close parenthesis, is also useful for the lines
 +contained within parentheses.
 +
 +@defun c-lineup-arglist
 +@findex lineup-arglist (c-)
 +Line up the current argument line under the first argument.
 +
 +As a special case, if an argument on the same line as the open
 +parenthesis starts with a brace block opener, the indentation is
 +@code{c-basic-offset} only.  This is intended as a ``DWIM'' measure in
 +cases like macros that contain statement blocks, e.g:
 +
 +@example
 +@group
 +A_VERY_LONG_MACRO_NAME (@{
 +        some (code, with + long, lines * in[it]);
 +    @});
 +@sssTBasicOffset{}
 +@end group
 +@end example
 +
 +This is motivated partly because it's more in line with how code
 +blocks are handled, and partly since it approximates the behavior of
 +earlier CC Mode versions, which due to inaccurate analysis tended to
 +indent such cases this way.
 +
 +@workswith @code{arglist-cont-nonempty}, @code{arglist-close}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-arglist-intro-after-paren
 +@findex lineup-arglist-intro-after-paren (c-)
 +Line up a line to just after the open paren of the surrounding paren or
 +brace block.
 +
 +@workswith @code{defun-block-intro}, @code{brace-list-intro},
 +@code{statement-block-intro}, @code{statement-case-intro},
 +@code{arglist-intro}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-multi-inher
 +@findex lineup-multi-inher (c-)
 +Line up the classes in C++ multiple inheritance clauses and member
 +initializers under each other.  E.g:
 +
 +@example
 +@group
 +Foo::Foo (int a, int b):
 +    Cyphr (a),
 +    Bar (b)           @hereFn{c-lineup-multi-inher}
 +@end group
 +@end example
 +
 +@noindent
 +and
 +
 +@example
 +@group
 +class Foo
 +    : public Cyphr,
 +      public Bar      @hereFn{c-lineup-multi-inher}
 +@end group
 +@end example
 +
 +@noindent
 +and
 +
 +@example
 +@group
 +Foo::Foo (int a, int b)
 +    : Cyphr (a)
 +    , Bar (b)         @hereFn{c-lineup-multi-inher}
 +@end group
 +@end example
 +
 +@workswith @code{inher-cont}, @code{member-init-cont}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-java-inher
 +@findex lineup-java-inher (c-)
 +Line up Java implements and extends declarations.  If class names
 +follow on the same line as the @samp{implements}/@samp{extends}
 +keyword, they are lined up under each other.  Otherwise, they are
 +indented by adding @code{c-basic-offset} to the column of the keyword.
 +E.g:
 +
 +@example
 +@group
 +class Foo
 +    extends
 +        Bar           @hereFn{c-lineup-java-inher}
 +    @sssTBasicOffset{}
 +@end group
 +@end example
 +
 +@noindent
 +and
 +
 +@example
 +@group
 +class Foo
 +    extends Cyphr,
 +            Bar       @hereFn{c-lineup-java-inher}
 +@end group
 +@end example
 +
 +@workswith @code{inher-cont}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-java-throws
 +@findex lineup-java-throws (c-)
 +Line up Java throws declarations.  If exception names follow on the
 +same line as the throws keyword, they are lined up under each other.
 +Otherwise, they are indented by adding @code{c-basic-offset} to the
 +column of the @samp{throws} keyword.  The @samp{throws} keyword itself
 +is also indented by @code{c-basic-offset} from the function declaration
 +start if it doesn't hang.  E.g:
 +
 +@example
 +@group
 +int foo()
 +    throws            @hereFn{c-lineup-java-throws}
 +        Bar           @hereFn{c-lineup-java-throws}
 +@sssTsssTBasicOffset{}
 +@end group
 +@end example
 +
 +@noindent
 +and
 +
 +@example
 +@group
 +int foo() throws Cyphr,
 +                 Bar,    @hereFn{c-lineup-java-throws}
 +                 Vlod    @hereFn{c-lineup-java-throws}
 +@end group
 +@end example
 +
 +@workswith @code{func-decl-cont}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-template-args
 +@findex lineup-template-args (c-)
 +Line up the arguments of a template argument list under each other, but
 +only in the case where the first argument is on the same line as the
 +opening @samp{<}.
 +
 +To allow this function to be used in a list expression, @code{nil} is
 +returned if there's no template argument on the first line.
 +
 +@workswith @code{template-args-cont}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-ObjC-method-call
 +@findex lineup-ObjC-method-call (c-)
 +For Objective-C code, line up selector args as Emacs Lisp mode does
 +with function args: go to the position right after the message receiver,
 +and if you are at the end of the line, indent the current line
 +c-basic-offset columns from the opening bracket; otherwise you are
 +looking at the first character of the first method call argument, so
 +lineup the current line with it.
 +
 +@workswith @code{objc-method-call-cont}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-ObjC-method-args
 +@findex lineup-ObjC-method-args (c-)
 +For Objective-C code, line up the colons that separate args.  The colon
 +on the current line is aligned with the one on the first line.
 +
 +@workswith @code{objc-method-args-cont}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-ObjC-method-args-2
 +@findex lineup-ObjC-method-args-2 (c-)
 +Similar to @code{c-lineup-ObjC-method-args} but lines up the colon on
 +the current line with the colon on the previous line.
 +
 +@workswith @code{objc-method-args-cont}.
 +@end defun
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Operator Line-Up, Comment Line-Up, List Line-Up, Line-Up Functions
 +@comment node-name, next, previous, up
 +@subsection Operator Line-Up Functions
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The line-up functions here calculate the indentation for lines which
 +start with an operator, by lining it up with something on the previous
 +line.
 +
 +@defun c-lineup-argcont
 +@findex lineup-argcont (c-)
 +Line up a continued argument.  E.g:
 +
 +@example
 +@group
 +foo (xyz, aaa + bbb + ccc
 +          + ddd + eee + fff);  @hereFn{c-lineup-argcont}
 +@end group
 +@end example
 +
 +Only continuation lines like this are touched, @code{nil} is returned on
 +lines which are the start of an argument.
 +
 +Within a gcc @code{asm} block, @code{:} is recognised as an argument
 +separator, but of course only between operand specifications, not in the
 +expressions for the operands.
 +
 +@workswith @code{arglist-cont}, @code{arglist-cont-nonempty}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-arglist-operators
 +@findex lineup-arglist-operators (c-)
 +Line up lines starting with an infix operator under the open paren.
 +Return @code{nil} on lines that don't start with an operator, to leave
 +those cases to other line-up functions.  Example:
 +
 +@example
 +@group
 +if (  x < 10
 +   || at_limit (x,     @hereFn{c-lineup-arglist-operators}
 +                list)  @hereFn{c-lineup-arglist-operators@r{ returns nil}}
 +   )
 +@end group
 +@end example
 +
 +Since this function doesn't do anything for lines without an infix
 +operator you typically want to use it together with some other lineup
 +settings, e.g. as follows (the @code{arglist-close} setting is just a
 +suggestion to get a consistent style):
 +
 +@example
 +(c-set-offset 'arglist-cont
 +              '(c-lineup-arglist-operators 0))
 +(c-set-offset 'arglist-cont-nonempty
 +              '(c-lineup-arglist-operators c-lineup-arglist))
 +(c-set-offset 'arglist-close
 +              '(c-lineup-arglist-close-under-paren))
 +@end example
 +
 +@workswith @code{arglist-cont}, @code{arglist-cont-nonempty}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-assignments
 +@findex lineup-assignments (c-)
 +Line up the current line after the assignment operator on the first line
 +in the statement.  If there isn't any, return nil to allow stacking with
 +other line-up functions.  If the current line contains an assignment
 +operator too, try to align it with the first one.
 +
 +@workswith @code{topmost-intro-cont}, @code{statement-cont},
 +@code{arglist-cont}, @code{arglist-cont-nonempty}.
 +
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-math
 +@findex lineup-math (c-)
 +Like @code{c-lineup-assignments} but indent with @code{c-basic-offset}
 +if no assignment operator was found on the first line.  I.e. this
 +function is the same as specifying a list @code{(c-lineup-assignments
 ++)}.  It's provided for compatibility with old configurations.
 +
 +@workswith @code{topmost-intro-cont}, @code{statement-cont},
 +@code{arglist-cont}, @code{arglist-cont-nonempty}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-cascaded-calls
 +@findex lineup-cascaded-calls (c-)
 +Line up ``cascaded calls'' under each other.  If the line begins with
 +@code{->} or @code{.} and the preceding line ends with one or more
 +function calls preceded by the same token, then the arrow is lined up
 +with the first of those tokens.  E.g:
 +
 +@example
 +@group
 +r = proc->add(17)->add(18)
 +        ->add(19) +         @hereFn{c-lineup-cascaded-calls}
 +  offset;                   @hereFn{c-lineup-cascaded-calls@r{ (inactive)}}
 +@end group
 +@end example
 +
 +In any other situation @code{nil} is returned to allow use in list
 +expressions.
 +
 +@workswith @code{topmost-intro-cont}, @code{statement-cont},
 +@code{arglist-cont}, @code{arglist-cont-nonempty}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-streamop
 +@findex lineup-streamop (c-)
 +Line up C++ stream operators (i.e. @samp{<<} and @samp{>>}).
 +
 +@workswith @code{stream-op}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-string-cont
 +@findex lineup-string-cont (c-)
 +Line up a continued string under the one it continues.  A continued
 +string in this sense is where a string literal follows directly after
 +another one.  E.g:
 +
 +@example
 +@group
 +result = prefix + "A message "
 +                  "string.";    @hereFn{c-lineup-string-cont}
 +@end group
 +@end example
 +
 +@code{nil} is returned in other situations, to allow stacking with other
 +lineup functions.
 +
 +@workswith @code{topmost-intro-cont}, @code{statement-cont},
 +@code{arglist-cont}, @code{arglist-cont-nonempty}.
 +@end defun
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Comment Line-Up, Misc Line-Up, Operator Line-Up, Line-Up Functions
 +@comment node-name, next, previous, up
 +@subsection Comment Line-Up Functions
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The lineup functions here calculate the indentation for several types
 +of comment structure.
 +
 +@defun c-lineup-C-comments
 +@findex lineup-C-comments (c-)
 +Line up C block comment continuation lines.  Various heuristics are used
 +to handle most of the common comment styles.  Some examples:
 +
 +@example
 +@group
 +/*                 /**               /*
 + * text             * text             text
 + */                 */               */
 +@end group
 +@end example
 +
 +@example
 +@group
 +/* text            /*                /**
 +   text            ** text            ** text
 +*/                 */                 */
 +@end group
 +@end example
 +
 +@example
 +@group
 +/**************************************************
 + * text
 + *************************************************/
 +@end group
 +@end example
 +
 +@vindex comment-start-skip
 +@example
 +@group
 +/**************************************************
 +    Free form text comments:
 + In comments with a long delimiter line at the
 + start, the indentation is kept unchanged for lines
 + that start with an empty comment line prefix.  The
 + delimiter line is whatever matches the
 + @code{comment-start-skip} regexp.
 +**************************************************/
 +@end group
 +@end example
 +
 +The style variable @code{c-comment-prefix-regexp} is used to recognize
 +the comment line prefix, e.g. the @samp{*} that usually starts every
 +line inside a comment.
 +
 +@workswith The @code{c} syntactic symbol.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-comment
 +@findex lineup-comment (c-)
 +Line up a comment-only line according to the style variable
 +@code{c-comment-only-line-offset}.  If the comment is lined up with a
 +comment starter on the previous line, that alignment is preserved.
 +
 +@defopt c-comment-only-line-offset
 +@vindex comment-only-line-offset (c-)
 +This style variable specifies the extra offset for the line.  It can
 +contain an integer or a cons cell of the form
 +
 +@example
 +(@r{@var{non-anchored-offset}} . @r{@var{anchored-offset}})
 +@end example
 +
 +@noindent
 +where @var{non-anchored-offset} is the amount of offset given to
 +non-column-zero anchored lines, and @var{anchored-offset} is the amount
 +of offset to give column-zero anchored lines.  Just an integer as value
 +is equivalent to @code{(@r{@var{value}} . -1000)}.
 +@end defopt
 +
 +@workswith @code{comment-intro}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-knr-region-comment
 +@findex lineup-knr-region-comment (c-)
 +Line up a comment in the ``K&R region'' with the declaration.  That is
 +the region between the function or class header and the beginning of the
 +block.  E.g:
 +
 +@example
 +@group
 +int main()
 +/* Called at startup. */  @hereFn{c-lineup-knr-region-comment}
 +@{
 +  return 0;
 +@}
 +@end group
 +@end example
 +
 +Return @code{nil} if called in any other situation, to be useful in list
 +expressions.
 +
 +@workswith @code{comment-intro}.
 +@end defun
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Misc Line-Up,  , Comment Line-Up, Line-Up Functions
 +@comment node-name, next, previous, up
 +@subsection Miscellaneous Line-Up Functions
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The line-up functions here are the odds and ends which didn't fit into
 +any earlier category.
 +
 +@defun c-lineup-dont-change
 +@findex lineup-dont-change (c-)
 +This lineup function makes the line stay at whatever indentation it
 +already has; think of it as an identity function for lineups.
 +
 +@workswith Any syntactic symbol.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-cpp-define
 +@findex lineup-cpp-define (c-)
 +Line up macro continuation lines according to the indentation of the
 +construct preceding the macro.  E.g:
 +
 +@example
 +@group
 +const char msg[] =    @hereFn{@r{The beginning of the preceding construct.}}
 +  \"Some text.\";
 +
 +#define X(A, B)  \
 +do @{             \    @hereFn{c-lineup-cpp-define}
 +  printf (A, B); \
 +@} while (0)
 +@end group
 +@end example
 +
 +@noindent
 +and:
 +
 +@example
 +@group
 +int dribble() @{
 +  if (!running)       @hereFn{@r{The beginning of the preceding construct.}}
 +    error(\"Not running!\");
 +
 +#define X(A, B)    \
 +  do @{             \  @hereFn{c-lineup-cpp-define}
 +    printf (A, B); \
 +  @} while (0)
 +@end group
 +@end example
 +
 +If @code{c-syntactic-indentation-in-macros} is non-@code{nil}, the
 +function returns the relative indentation to the macro start line to
 +allow accumulation with other offsets.  E.g. in the following cases,
 +@code{cpp-define-intro} is combined with the
 +@code{statement-block-intro} that comes from the @samp{do @{} that hangs
 +on the @samp{#define} line:
 +
 +@example
 +@group
 +const char msg[] =
 +  \"Some text.\";
 +
 +#define X(A, B) do @{ \
 +  printf (A, B);     \  @hereFn{c-lineup-cpp-define}
 +  this->refs++;      \
 +@} while (0)             @hereFn{c-lineup-cpp-define}
 +@end group
 +@end example
 +
 +@noindent
 +and:
 +
 +@example
 +@group
 +int dribble() @{
 +  if (!running)
 +    error(\"Not running!\");
 +
 +#define X(A, B) do @{ \
 +    printf (A, B);   \  @hereFn{c-lineup-cpp-define}
 +    this->refs++;    \
 +  @} while (0)           @hereFn{c-lineup-cpp-define}
 +@end group
 +@end example
 +
 +The relative indentation returned by @code{c-lineup-cpp-define} is zero
 +and two, respectively, on the two lines in each of these examples.  They
 +are then added to the two column indentation that
 +@code{statement-block-intro} gives in both cases here.
 +
 +If the relative indentation is zero, then @code{nil} is returned
 +instead.  That is useful in a list expression to specify the default
 +indentation on the top level.
 +
 +If @code{c-syntactic-indentation-in-macros} is @code{nil} then this
 +function keeps the current indentation, except for empty lines (ignoring
 +the ending backslash) where it takes the indentation from the closest
 +preceding nonempty line in the macro.  If there's no such line in the
 +macro then the indentation is taken from the construct preceding it, as
 +described above.
 +
 +@workswith @code{cpp-define-intro}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-gcc-asm-reg
 +@findex lineup-gcc-asm-reg (c-)
 +Line up a gcc asm register under one on a previous line.
 +
 +@example
 +@group
 +    asm ("foo %1, %0\n"
 +         "bar %0, %1"
 +         : "=r" (w),
 +           "=r" (x)
 +         :  "0" (y),
 +            "1" (z));
 +@end group
 +@end example
 +
 +The @samp{x} line is aligned to the text after the @samp{:} on the
 +@samp{w} line, and similarly @samp{z} under @samp{y}.
 +
 +This is done only in an @samp{asm} or @samp{__asm__} block, and only to
 +those lines mentioned.  Anywhere else @code{nil} is returned.  The usual
 +arrangement is to have this routine as an extra feature at the start of
 +arglist lineups, e.g.
 +
 +@example
 +(c-lineup-gcc-asm-reg c-lineup-arglist)
 +@end example
 +
 +@workswith @code{arglist-cont}, @code{arglist-cont-nonempty}.
 +@end defun
 +
 +@comment ------------------------------------------------------------
 +
 +@defun c-lineup-topmost-intro-cont
 +@findex lineup-topmost-intro-cont (c-)
 +Line up declaration continuation lines zero or one indentation
 +step@footnote{This function is mainly provided to mimic the behavior of
 +CC Mode 5.28 and earlier where this case wasn't handled consistently so
 +that those lines could be analyzed as either topmost-intro-cont or
 +statement-cont.  It's used for @code{topmost-intro-cont} by default, but
 +you might consider using @code{+} instead.}.  For lines preceding a
 +definition, zero is used.  For other lines, @code{c-basic-offset} is
 +added to the indentation.  E.g:
 +
 +@example
 +@group
 +int
 +neg (int i)           @hereFn{c-lineup-topmost-intro-cont}
 +@{
 +    return -i;
 +@}
 +@end group
 +@end example
 +
 +@noindent
 +and
 +
 +@example
 +@group
 +struct
 +larch                 @hereFn{c-lineup-topmost-intro-cont}
 +@{
 +    double height;
 +@}
 +    the_larch,        @hereFn{c-lineup-topmost-intro-cont}
 +    another_larch;    @hereFn{c-lineup-topmost-intro-cont}
 +@sssTBasicOffset{}
 +@end group
 +@end example
 +
 +@noindent
 +and
 +
 +@example
 +@group
 +struct larch
 +the_larch,            @hereFn{c-lineup-topmost-intro-cont}
 +    another_larch;    @hereFn{c-lineup-topmost-intro-cont}
 +@end group
 +@end example
 +
 +@workswith @code{topmost-intro-cont}.
 +@end defun
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Custom Line-Up, Other Indentation, Line-Up Functions, Customizing Indentation
 +@comment node-name, next, previous, up
 +@section Custom Line-Up Functions
 +@cindex customization, indentation functions
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The most flexible way to customize indentation is by writing custom
 +line-up functions, and associating them with specific syntactic
 +symbols (@pxref{c-offsets-alist}).  Depending on the effect you want,
 +it might be better to write a @code{c-special-indent-hook} function
 +rather than a line-up function (@pxref{Other Indentation}).
 +
 +@ccmode{} comes with an extensive set of predefined line-up functions,
 +not all of which are used by the default styles.  So there's a good
 +chance the function you want already exists.  @xref{Line-Up
 +Functions}, for a list of them.  If you write your own line-up
 +function, it's probably a good idea to start working from one of these
 +predefined functions, which can be found in the file
 +@file{cc-align.el}.  If you have written a line-up function that you
 +think is generally useful, you're very welcome to contribute it;
 +please contact @email{bug-cc-mode@@gnu.org}.
 +
 +   Line-up functions are passed a single argument, the syntactic
 +element (see below).  The return value is a @code{c-offsets-alist}
 +offset specification: for example, an integer, a symbol such as
 +@code{+}, a vector, @code{nil}@footnote{Returning @code{nil} is useful
 +when the offset specification for a syntactic element is a list
 +containing the line-up function (@pxref{c-offsets-alist}).}, or even
 +another line-up function.  Full details of these are in
 +@ref{c-offsets-alist}.
 +
 +Line-up functions must not move point or change the content of the
 +buffer (except temporarily).  They are however allowed to do
 +@dfn{hidden buffer changes}, i.e. setting text properties for caching
 +purposes etc.  Buffer undo recording is disabled while they run.
 +
 +The syntactic element passed as the parameter to a line-up function is
 +a cons cell of the form
 +
 +@example
 +(@r{@var{syntactic-symbol}} . @r{@var{anchor-position}})
 +@end example
 +
 +@noindent
 +@c FIXME!!! The following sentence might be better omitted, since the
 +@c information is in the cross reference "Syntactic Analysis".  2005/10/2.
 +where @var{syntactic-symbol} is the symbol that the function was
 +called for, and @var{anchor-position} is the anchor position (if any)
 +for the construct that triggered the syntactic symbol
 +(@pxref{Syntactic Analysis}).  This cons cell is how the syntactic
 +element of a line used to be represented in @ccmode{} 5.28 and
 +earlier.  Line-up functions are still passed this cons cell, so as to
 +preserve compatibility with older configurations.  In the future, we
 +may decide to convert to using the full list format---you can prepare
 +your setup for this by using the access functions
 +(@code{c-langelem-sym}, etc.)  described below.
 +
 +@vindex c-syntactic-element
 +@vindex syntactic-element (c-)
 +@vindex c-syntactic-context
 +@vindex syntactic-context (c-)
 +Some syntactic symbols, e.g. @code{arglist-cont-nonempty}, have more
 +info in the syntactic element - typically other positions that can be
 +interesting besides the anchor position.  That info can't be accessed
 +through the passed argument, which is a cons cell.  Instead, you can
 +get this information from the variable @code{c-syntactic-element},
 +which is dynamically bound to the complete syntactic element.  The
 +variable @code{c-syntactic-context} might also be useful - it gets
 +dynamically bound to the complete syntactic context.  @xref{Custom
 +Braces}.
 +
 +@ccmode{} provides a few functions to access parts of syntactic
 +elements in a more abstract way.  Besides making the code easier to
 +read, they also hide the difference between the old cons cell form
 +used in the line-up function argument and the new list form used in
 +@code{c-syntactic-element} and everywhere else.  The functions are:
 +
 +@defun c-langelem-sym langelem
 +@findex langelem-sym (c-)
 +Return the syntactic symbol in @var{langelem}.
 +@end defun
 +
 +@defun c-langelem-pos langelem
 +@findex langelem-pos (c-)
 +Return the anchor position in @var{langelem}, or nil if there is none.
 +@end defun
 +
 +@defun c-langelem-col langelem &optional preserve-point
 +@findex langelem-col (c-)
 +Return the column of the anchor position in @var{langelem}.  Also move
 +the point to that position unless @var{preserve-point} is
 +non-@code{nil}.
 +@end defun
 +
 +@defun c-langelem-2nd-pos langelem
 +@findex langelem-2nd-pos (c-)
 +Return the secondary position in @var{langelem}, or @code{nil} if there
 +is none.
 +
 +Note that the return value of this function is always @code{nil} if
 +@var{langelem} is in the old cons cell form.  Thus this function is
 +only meaningful when used on syntactic elements taken from
 +@code{c-syntactic-element} or @code{c-syntactic-context}.
 +@end defun
 +
 +Custom line-up functions can be as simple or as complex as you like, and
 +any syntactic symbol that appears in @code{c-offsets-alist} can have a
 +custom line-up function associated with it.
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Other Indentation,  , Custom Line-Up, Customizing Indentation
 +@comment node-name, next, previous, up
 +@section Other Special Indentations
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Here are the remaining odds and ends regarding indentation:
 +
 +@defopt c-label-minimum-indentation
 +@vindex label-minimum-indentation (c-)
 +In @samp{gnu} style (@pxref{Built-in Styles}), a minimum indentation is
 +imposed on lines inside code blocks.  This minimum indentation is
 +controlled by this style variable.  The default value is 1.
 +
 +@findex c-gnu-impose-minimum
 +@findex gnu-impose-minimum (c-)
 +It's the function @code{c-gnu-impose-minimum} that enforces this minimum
 +indentation.  It must be present on @code{c-special-indent-hook} to
 +work.
 +@end defopt
 +
 +@defopt c-special-indent-hook
 +@vindex special-indent-hook (c-)
 +This style variable is a standard hook variable that is called after
 +every line is indented by @ccmode{}.  It is called only if
 +@code{c-syntactic-indentation} is non-@code{nil} (which it is by
 +default (@pxref{Indentation Engine Basics})).  You can put a function
 +on this hook to do any special indentation or ad hoc line adjustments
 +your style dictates, such as adding extra indentation to constructors
 +or destructor declarations in a class definition, etc.  Sometimes it
 +is better to write a custom Line-up Function instead (@pxref{Custom
 +Line-Up}).
 +
 +When the indentation engine calls this hook, the variable
 +@code{c-syntactic-context} is bound to the current syntactic context
 +(i.e. what you would get by typing @kbd{C-c C-s} on the source line.
 +@xref{Custom Braces}.).  Note that you should not change point or mark
 +inside a @code{c-special-indent-hook} function, i.e. you'll probably
 +want to wrap your function in a @code{save-excursion}@footnote{The
 +numerical value returned by @code{point} will change if you change the
 +indentation of the line within a @code{save-excursion} form, but point
 +itself will still be over the same piece of text.}.
 +
 +Setting @code{c-special-indent-hook} in style definitions is handled
 +slightly differently from other variables---A style can only add
 +functions to this hook, not remove them.  @xref{Style Variables}.
 +@end defopt
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Custom Macros, Odds and Ends, Customizing Indentation, Top
 +@comment node-name, next, previous, up
 +@chapter Customizing Macros
 +@cindex macros
 +@cindex preprocessor directives
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Normally, the lines in a multi-line macro are indented relative to
 +each other as though they were code.  You can suppress this behavior
 +by setting the following user option:
 +
 +@defopt c-syntactic-indentation-in-macros
 +@vindex syntactic-indentation-in-macros (c-)
 +Enable syntactic analysis inside macros, which is the default.  If this
 +is @code{nil}, all lines inside macro definitions are analyzed as
 +@code{cpp-macro-cont}.
 +@end defopt
 +
 +@ccmode{} provides some tools to help keep the line continuation
 +backslashes in macros neat and tidy.  Their precise action is
 +customized with these variables:
 +
 +@defopt c-backslash-column
 +@vindex backslash-column (c-)
 +@defoptx c-backslash-max-column
 +@vindex backslash-max-column (c-)
 +These variables control the alignment columns for line continuation
 +backslashes in multiline macros.  They are used by the functions that
 +automatically insert or align such backslashes,
 +e.g. @code{c-backslash-region} and @code{c-context-line-break}.
 +
 +@code{c-backslash-column} specifies the minimum column for the
 +backslashes.  If any line in the macro goes past this column, then the
 +next tab stop (i.e. next multiple of @code{tab-width}) in that line is
 +used as the alignment column for all the backslashes, so that they
 +remain in a single column.  However, if any lines go past
 +@code{c-backslash-max-column} then the backslashes in the rest of the
 +macro will be kept at that column, so that the lines which are too
 +long ``stick out'' instead.
 +
 +Don't ever set these variables to @code{nil}.  If you want to disable
 +the automatic alignment of backslashes, use
 +@code{c-auto-align-backslashes}.
 +@end defopt
 +
 +@defopt c-auto-align-backslashes
 +@vindex auto-align-backslashes (c-)
 +Align automatically inserted line continuation backslashes if
 +non-@code{nil}.  When line continuation backslashes are inserted
 +automatically for line breaks in multiline macros, e.g. by
 +@code{c-context-line-break}, they are aligned with the other
 +backslashes in the same macro if this flag is set.
 +
 +If @code{c-auto-align-backslashes} is @code{nil}, automatically
 +inserted backslashes are preceded by a single space, and backslashes
 +get aligned only when you explicitly invoke the command
 +@code{c-backslash-region} (@kbd{C-c C-\}).
 +@end defopt
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Odds and Ends, Sample .emacs File, Custom Macros, Top
 +@comment node-name, next, previous, up
 +@chapter Odds and Ends
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +The stuff that didn't fit in anywhere else is documented here.
 +
 +@defopt c-require-final-newline
 +@vindex require-final-newline (c-)
 +Controls whether a final newline is enforced when the file is saved.
 +The value is an association list that for each language mode specifies
 +the value to give to @code{require-final-newline} (@pxref{Saving
 +Buffers,,, @lispref{}, @lispreftitle{}}) at mode initialization.  If a
 +language isn't present on the association list, CC Mode won't touch
 +@code{require-final-newline} in buffers for that language.
 +
 +The default is to set @code{require-final-newline} to @code{t} in the
 +languages that mandate that source files should end with newlines.
 +These are C, C++ and Objective-C.
 +@end defopt
 +
 +@defopt c-echo-syntactic-information-p
 +@vindex echo-syntactic-information-p (c-)
 +If non-@code{nil}, the syntactic analysis for the current line is shown
 +in the echo area when it's indented (unless
 +@code{c-syntactic-indentation} is @code{nil}).  That's useful when
 +finding out which syntactic symbols to modify to get the indentation you
 +want.
 +@end defopt
 +
 +@defopt c-report-syntactic-errors
 +@vindex report-syntactic-errors (c-)
 +If non-@code{nil}, certain syntactic errors are reported with a ding and
 +a message, for example when an @code{else} is indented for which there
 +is no corresponding @code{if}.
 +
 +Note however that @ccmode{} doesn't make any special effort to check for
 +syntactic errors; that's the job of the compiler.  The reason it can
 +report cases like the one above is that it can't find the correct
 +anchoring position to indent the line in that case.
 +@end defopt
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Sample .emacs File, Performance Issues, Odds and Ends, Top
 +@comment node-name, next, previous, up
 +@appendix Sample .emacs File
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Here's a sample .emacs file fragment that might help you along the way.
 +Just copy this region and paste it into your .emacs file.  You might want
 +to change some of the actual values.
 +
 +@verbatim
 +;; Make a non-standard key binding.  We can put this in
 +;; c-mode-base-map because c-mode-map, c++-mode-map, and so on,
 +;; inherit from it.
 +(defun my-c-initialization-hook ()
 +  (define-key c-mode-base-map "\C-m" 'c-context-line-break))
 +(add-hook 'c-initialization-hook 'my-c-initialization-hook)
 +
 +;; offset customizations not in my-c-style
 +;; This will take precedence over any setting of the syntactic symbol
 +;; made by a style.
 +(setq c-offsets-alist '((member-init-intro . ++)))
 +
 +;; Create my personal style.
 +(defconst my-c-style
 +  '((c-tab-always-indent        . t)
 +    (c-comment-only-line-offset . 4)
 +    (c-hanging-braces-alist     . ((substatement-open after)
 +                                   (brace-list-open)))
 +    (c-hanging-colons-alist     . ((member-init-intro before)
 +                                   (inher-intro)
 +                                   (case-label after)
 +                                   (label after)
 +                                   (access-label after)))
 +    (c-cleanup-list             . (scope-operator
 +                                   empty-defun-braces
 +                                   defun-close-semi))
 +    (c-offsets-alist            . ((arglist-close . c-lineup-arglist)
 +                                   (substatement-open . 0)
 +                                   (case-label        . 4)
 +                                   (block-open        . 0)
 +                                   (knr-argdecl-intro . -)))
 +    (c-echo-syntactic-information-p . t))
 +  "My C Programming Style")
 +(c-add-style "PERSONAL" my-c-style)
 +
 +;; Customizations for all modes in CC Mode.
 +(defun my-c-mode-common-hook ()
 +  ;; set my personal style for the current buffer
 +  (c-set-style "PERSONAL")
 +  ;; other customizations
 +  (setq tab-width 8
 +        ;; this will make sure spaces are used instead of tabs
 +        indent-tabs-mode nil)
 +  ;; we like auto-newline, but not hungry-delete
 +  (c-toggle-auto-newline 1))
 +(add-hook 'c-mode-common-hook 'my-c-mode-common-hook)
 +@end verbatim
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Performance Issues, Limitations and Known Bugs, Sample .emacs File, Top
 +@comment node-name, next, previous, up
 +@chapter Performance Issues
 +@cindex performance
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@comment FIXME: (ACM, 2003/5/24).  Check whether AWK needs mentioning here.
 +
 +C and its derivative languages are highly complex creatures.  Often,
 +ambiguous code situations arise that require @ccmode{} to scan large
 +portions of the buffer to determine syntactic context.  Such
 +pathological code can cause @ccmode{} to perform fairly badly.  This
 +section gives some insight in how @ccmode{} operates, how that interacts
 +with some coding styles, and what you can use to improve performance.
 +
 +The overall goal is that @ccmode{} shouldn't be overly slow (i.e. take
 +more than a fraction of a second) in any interactive operation.
 +I.e. it's tuned to limit the maximum response time in single operations,
 +which is sometimes at the expense of batch-like operations like
 +reindenting whole blocks.  If you find that @ccmode{} gradually gets
 +slower and slower in certain situations, perhaps as the file grows in
 +size or as the macro or comment you're editing gets bigger, then chances
 +are that something isn't working right.  You should consider reporting
 +it, unless it's something that's mentioned in this section.
 +
 +Because @ccmode{} has to scan the buffer backwards from the current
 +insertion point, and because C's syntax is fairly difficult to parse in
 +the backwards direction, @ccmode{} often tries to find the nearest
 +position higher up in the buffer from which to begin a forward scan
 +(it's typically an opening or closing parenthesis of some kind).  The
 +farther this position is from the current insertion point, the slower it
 +gets.
 +
 +@findex beginning-of-defun
 +In earlier versions of @ccmode{}, we used to recommend putting the
 +opening brace of a top-level construct@footnote{E.g. a function in C,
 +or outermost class definition in C++ or Java.} into the leftmost
 +column.  Earlier still, this used to be a rigid Emacs constraint, as
 +embodied in the @code{beginning-of-defun} function.  @ccmode now
 +caches syntactic information much better, so that the delay caused by
 +searching for such a brace when it's not in column 0 is minimal,
 +except perhaps when you've just moved a long way inside the file.
 +
 +@findex defun-prompt-regexp
 +@vindex c-Java-defun-prompt-regexp
 +@vindex Java-defun-prompt-regexp (c-)
 +A special note about @code{defun-prompt-regexp} in Java mode: The common
 +style is to hang the opening braces of functions and classes on the
 +right side of the line, and that doesn't work well with the Emacs
 +approach.  @ccmode{} comes with a constant
 +@code{c-Java-defun-prompt-regexp} which tries to define a regular
 +expression usable for this style, but there are problems with it.  In
 +some cases it can cause @code{beginning-of-defun} to hang@footnote{This
 +has been observed in Emacs 19.34 and XEmacs 19.15.}.  For this reason,
 +it is not used by default, but if you feel adventurous, you can set
 +@code{defun-prompt-regexp} to it in your mode hook.  In any event,
 +setting and relying on @code{defun-prompt-regexp} will definitely slow
 +things down because (X)Emacs will be doing regular expression searches a
 +lot, so you'll probably be taking a hit either way!
 +
 +@ccmode{} maintains a cache of the opening parentheses of the blocks
 +surrounding the point, and it adapts that cache as the point is moved
 +around.  That means that in bad cases it can take noticeable time to
 +indent a line in a new surrounding, but after that it gets fast as long
 +as the point isn't moved far off.  The farther the point is moved, the
 +less useful is the cache.  Since editing typically is done in ``chunks''
 +rather than on single lines far apart from each other, the cache
 +typically gives good performance even when the code doesn't fit the
 +Emacs approach to finding the defun starts.
 +
 +@vindex c-enable-xemacs-performance-kludge-p
 +@vindex enable-xemacs-performance-kludge-p (c-)
 +XEmacs users can set the variable
 +@code{c-enable-xemacs-performance-kludge-p} to non-@code{nil}.  This
 +tells @ccmode{} to use XEmacs-specific built-in functions which, in some
 +circumstances, can locate the top-most opening brace much more quickly than
 +@code{beginning-of-defun}.  Preliminary testing has shown that for
 +styles where these braces are hung (e.g. most JDK-derived Java styles),
 +this hack can improve performance of the core syntax parsing routines
 +from 3 to 60 times.  However, for styles which @emph{do} conform to
 +Emacs' recommended style of putting top-level braces in column zero,
 +this hack can degrade performance by about as much.  Thus this variable
 +is set to @code{nil} by default, since the Emacs-friendly styles should
 +be more common (and encouraged!).  Note that this variable has no effect
 +in Emacs since the necessary built-in functions don't exist (in Emacs
 +22.1 as of this writing in February 2007).
 +
 +Text properties are used to speed up skipping over syntactic whitespace,
 +i.e. comments and preprocessor directives.  Indenting a line after a
 +huge macro definition can be slow the first time, but after that the
 +text properties are in place and it should be fast (even after you've
 +edited other parts of the file and then moved back).
 +
 +Font locking can be a CPU hog, especially the font locking done on
 +decoration level 3 which tries to be very accurate.  Note that that
 +level is designed to be used with a font lock support mode that only
 +fontifies the text that's actually shown, i.e. Lazy Lock or Just-in-time
 +Lock mode, so make sure you use one of them.  Fontification of a whole
 +buffer with some thousand lines can often take over a minute.  That is
 +a known weakness; the idea is that it never should happen.
 +
 +The most effective way to speed up font locking is to reduce the
 +decoration level to 2 by setting @code{font-lock-maximum-decoration}
 +appropriately.  That level is designed to be as pretty as possible
 +without sacrificing performance.  @xref{Font Locking Preliminaries}, for
 +more info.
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Limitations and Known Bugs, FAQ, Performance Issues, Top
 +@comment node-name, next, previous, up
 +@chapter Limitations and Known Bugs
 +@cindex limitations
 +@cindex bugs
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@itemize @bullet
 +@item
 +@ccmode{} doesn't support trigraphs.  (These are character sequences
 +such as @samp{??(}, which represents @samp{[}.  They date from a time
 +when some character sets didn't have all the characters that C needs,
 +and are now utterly obsolete.)
 +
 +@item
 +There is no way to apply auto newline settings (@pxref{Auto-newlines})
 +on already typed lines.  That's only a feature to ease interactive
 +editing.
 +
 +To generalize this issue a bit: @ccmode{} is not intended to be used as
 +a reformatter for old code in some more or less batch-like way.  With
 +the exception of some functions like @code{c-indent-region}, it's only
 +geared to be used interactively to edit new code.  There's currently no
 +intention to change this goal.
 +
 +If you want to reformat old code, you're probably better off using some
 +other tool instead, e.g. @ref{Top, , GNU indent, indent, The `indent'
 +Manual}, which has more powerful reformatting capabilities than
 +@ccmode{}.
 +
 +@item
 +The support for C++ templates (in angle brackets) is not yet complete.
 +When a non-nested template is used in a declaration, @ccmode{} indents
 +it and font-locks it OK.  Templates used in expressions, and nested
 +templates do not fare so well.  Sometimes a workaround is to refontify
 +the expression after typing the closing @samp{>}.
 +
 +@item
 +On loading @ccmode{}, sometimes this error message appears:
 +
 +@example
 +File mode specification error: (void-variable c-font-lock-keywords-3)
 +@end example
 +
 +This is due to a bug in the function @code{eval-after-load} in some
 +versions of (X)Emacs.  It can manifest itself when there is a symbolic
 +link in the path of the directory which contains (X)Emacs.  As a
 +workaround, put the following into your @file{.emacs} file, fairly
 +early on:
 +
 +@example
 +(defun my-load-cc-fonts ()
 +  (require "cc-fonts"))
 +(add-hook 'c-initialization-hook 'my-load-cc-fonts)
 +@end example
 +@end itemize
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    FAQ, Updating CC Mode, Limitations and Known Bugs, Top
 +@comment node-name, next, previous, up
 +@appendix Frequently Asked Questions
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@itemize @bullet
 +@item
 +@emph{How can I change the indent level from 4 spaces to 2 spaces?}
 +
 +Set the variable @code{c-basic-offset}.  @xref{Getting Started}.
 +
 +@item
 +@kindex RET
 +@kindex C-j
 +@emph{Why doesn't the @kbd{RET} key indent the new line?}
 +
 +Emacs' convention is that @kbd{RET} just adds a newline, and that
 +@kbd{C-j} adds a newline and indents it.  You can make @kbd{RET} do this
 +too by adding this to your @code{c-initialization-hook}:
 +
 +@example
 +(define-key c-mode-base-map "\C-m" 'c-context-line-break)
 +@end example
 +
 +@xref{Getting Started}.  This is a very common question.  If you want
 +this to be the default behavior, don't lobby us, lobby RMS!  @t{:-)}
 +
 +@item
 +@emph{How do I stop my code jumping all over the place when I type?}
 +
 +Deactivate ``electric minor mode'' with @kbd{C-c C-l}.  @xref{Getting
 +Started}.
 +
 +@item
 +@kindex C-x h
 +@kindex C-M-\
 +@emph{How do I reindent the whole file?}
 +
 +Visit the file and hit @kbd{C-x h} to mark the whole buffer. Then hit
 +@kbd{C-M-\}.  @xref{Indentation Commands}.
 +
 +@item
 +@kindex C-M-q
 +@kindex C-M-u
 +@emph{How do I reindent the current block?}
 +
 +First move to the brace which opens the block with @kbd{C-M-u}, then
 +reindent that expression with @kbd{C-M-q}.  @xref{Indentation
 +Commands}.
 +
 +@item
 +@emph{I put @code{(c-set-offset 'substatement-open 0)} in my
 +@file{.emacs} file but I get an error saying that @code{c-set-offset}'s
 +function definition is void.  What's wrong?}
 +
 +This means that @ccmode{} hasn't yet been loaded into your Emacs
 +session by the time the @code{c-set-offset} call is reached, most
 +likely because @ccmode{} is being autoloaded.  Instead of putting the
 +@code{c-set-offset} line in your top-level @file{.emacs} file, put it
 +in your @code{c-initialization-hook} (@pxref{CC Hooks}), or simply
 +modify @code{c-offsets-alist} directly:
 +
 +@example
 +(setq c-offsets-alist '((substatement-open . 0)))
 +@end example
 +
 +@item
 +@cindex open paren in column zero
 +@emph{I have an open paren character at column zero inside a comment or
 +multiline string literal, and it causes the fontification and/or
 +indentation to go haywire.  What gives?}
 +
 +It's due to the ad-hoc rule in (X)Emacs that such open parens always
 +start defuns (which translates to functions, classes, namespaces or any
 +other top-level block constructs in the @ccmode{} languages).
 +@ifset XEMACS
 +@xref{Defuns,,, xemacs, XEmacs User's Manual}, for details.
 +@end ifset
 +@ifclear XEMACS
 +@xref{Left Margin Paren,,, emacs, GNU Emacs Manual}, for details
 +(@xref{Defuns,,, emacs, GNU Emacs Manual}, in the Emacs 20 manual).
 +@end ifclear
 +
 +This heuristic is built into the core syntax analysis routines in
 +(X)Emacs, so it's not really a @ccmode{} issue.  However, in Emacs
 +21.1 it became possible to turn it off@footnote{Using the variable
 +@code{open-paren-in-column-0-is-defun-start}.} and @ccmode{} does so
 +there since it's got its own system to keep track of blocks.
 +
 +@end itemize
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Updating CC Mode, Mailing Lists and Bug Reports, FAQ, Top
 +@comment node-name, next, previous, up
 +@appendix Getting the Latest CC Mode Release
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@ccmode{} has been standard with all versions of Emacs since 19.34 and
 +of XEmacs since 19.16.
 +
 +@cindex web site
 +Due to release schedule skew, it is likely that all of these Emacsen
 +have old versions of @ccmode{} and so should be upgraded.  Access to the
 +@ccmode{} source code, as well as more detailed information on Emacsen
 +compatibility, etc. are all available on the web site:
 +
 +@quotation
 +@uref{http://cc-mode.sourceforge.net/}
 +@end quotation
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Mailing Lists and Bug Reports, GNU Free Documentation License, Updating CC Mode, Top
 +@comment node-name, next, previous, up
 +@appendix Mailing Lists and Submitting Bug Reports
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@kindex C-c C-b
 +@findex c-submit-bug-report
 +@findex submit-bug-report (c-)
 +To report bugs, use the @kbd{C-c C-b} (bound to
 +@code{c-submit-bug-report}) command.  This provides vital information
 +we need to reproduce your problem.  Make sure you include a concise,
 +but complete code example.  Please try to boil your example down to
 +just the essential code needed to reproduce the problem, and include
 +an exact recipe of steps needed to expose the bug.  Be especially sure
 +to include any code that appears @emph{before} your bug example, if
 +you think it might affect our ability to reproduce it.
 +
 +Please try to produce the problem in an Emacs instance without any
 +customizations loaded (i.e. start it with the @samp{-q --no-site-file}
 +arguments).  If it works correctly there, the problem might be caused
 +by faulty customizations in either your own or your site
 +configuration.  In that case, we'd appreciate it if you isolate the
 +Emacs Lisp code that triggers the bug and include it in your report.
 +
 +@cindex bug report mailing list
 +Bug reports should be sent to @email{bug-cc-mode@@gnu.org}.  You can
 +also send other questions and suggestions (kudos? @t{;-)} to that
 +address.  It's a mailing list which you can join or browse an archive
 +of; see the web site at @uref{http://cc-mode.sourceforge.net/} for
 +further details.
 +
 +@cindex announcement mailing list
 +If you want to get announcements of new @ccmode{} releases, send the
 +word @emph{subscribe} in the body of a message to
 +@email{cc-mode-announce-request@@lists.sourceforge.net}.  It's possible
 +to subscribe from the web site too.  Announcements will also be posted
 +to the Usenet newsgroups @code{gnu.emacs.sources}, @code{comp.emacs},
 +@code{comp.emacs.xemacs}, @code{comp.lang.c}, @code{comp.lang.c++},
 +@code{comp.lang.objective-c}, @code{comp.lang.java.softwaretools},
 +@code{comp.lang.idl}, and @code{comp.lang.awk}.
 +@c There is no newsgroup for Pike.  :-(
 +
 +
 +@node GNU Free Documentation License, Command and Function Index, Mailing Lists and Bug Reports, Top
 +@appendix GNU Free Documentation License
 +@include doclicense.texi
 +
 +
 +@c Removed the tentative node "Mode Initialization" from here, 2005/8/27.
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Command and Function Index, Variable Index, GNU Free Documentation License, Top
 +@comment node-name, next, previous, up
 +@unnumbered Command and Function Index
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Since most @ccmode{} commands are prepended with the string
 +@samp{c-}, each appears under its @code{c-@var{thing}} name and its
 +@code{@var{thing} (c-)} name.
 +@iftex
 +@sp 2
 +@end iftex
 +@printindex fn
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Variable Index, Concept and Key Index, Command and Function Index, Top
 +@comment node-name, next, previous, up
 +@unnumbered Variable Index
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +Since most @ccmode{} variables are prepended with the string
 +@samp{c-}, each appears under its @code{c-@var{thing}} name and its
 +@code{@var{thing} (c-)} name.
 +@iftex
 +@sp 2
 +@end iftex
 +@printindex vr
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@node    Concept and Key Index,  , Variable Index, Top
 +@comment node-name, next, previous, up
 +@unnumbered Concept and Key Index
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@printindex cp
 +
 +
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +@comment Epilogue.
 +@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 +
 +@iftex
 +@page
 +@summarycontents
 +@contents
 +@end iftex
 +
 +@bye
 +
 +@ignore
 +   arch-tag: c4cab162-5e57-4366-bdce-4a9db2fc97f0
 +@end ignore
diff --cc etc/NEWS.22
index ccabf7d4faf9ca40382407e44f5a2be3e24b2e14,0000000000000000000000000000000000000000..824da8932edbcae157b14ea7639e636e45093776
mode 100644,000000..100644
--- /dev/null
@@@ -1,5509 -1,0 +1,5514 @@@
 +GNU Emacs NEWS -- history of user-visible changes.
 +
 +Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007
 +          Free Software Foundation, Inc.
 +See the end of the file for license conditions.
 +
 +Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
 +If possible, use M-x report-emacs-bug.
 +
 +This file is about changes in Emacs version 22.
 +
 +See files NEWS.21, NEWS.20, NEWS.19, NEWS.18, and NEWS.1-17 for changes
 +in older Emacs versions.
 +
 +You can narrow news to a specific version by calling `view-emacs-news'
 +with a prefix argument or by typing C-u C-h C-n.
 +\f
 +* About external Lisp packages
 +
 +When you upgrade to Emacs 22 from a previous version, some older
 +versions of external Lisp packages are known to behave badly.
 +So in general, it is recommended that you upgrade to the latest
 +versions of any external Lisp packages that you are using.
 +
 +You should also be aware that many Lisp packages have been included
 +with Emacs 22 (see the extensive list below), and you should remove
 +any older versions of these packages to ensure that the Emacs 22
 +version is used.  You can use M-x list-load-path-shadows to find such
 +older packages.
 +
 +Some specific packages that are known to cause problems are given
 +below.  Emacs tries to warn you about these through `bad-packages-alist'.
 +
 +** Semantic (used by CEDET, ECB, JDEE): upgrade to latest version.
 +
 +** cua.el, cua-mode.el: remove old versions.
 +
 +\f
 +* Installation Changes in Emacs 22.2
 +
 +** Emacs is now licensed under the GNU GPL version 3 (or later).
 +
 +** Support for GNU/kFreeBSD (GNU userland and FreeBSD kernel) was added.
 +
 +* Changes in Emacs 22.2
 +
++** `find-name-dired' now uses -iname rather than -name
++for case-insensitive filesystems.  The default behavior is determined
++by the value of `read-file-name-completion-ignore-case'; if you don't
++like that, customize the value of the new option `find-name-arg'.
++
 +** In Image mode, whenever the displayed image is wider and/or higher
 +than the window, the usual keys for moving the cursor cause the image
 +to be scrolled horizontally or vertically instead.
 +
 +** Scrollbars follow the system theme on Windows XP and later.
 +Windows XP introduced themed scrollbars, but applications have to take
 +special steps to use them. Emacs now has the appropriate resources linked
 +in to make it use the scrollbars from the system theme.
 +
 +** focus-follows-mouse defaults to nil on MS Windows.
 +Previously this variable was incorrectly documented as having no effect
 +on MS Windows, and the default was inappropriate for the majority of
 +Windows installations. Users of software which modifies the behaviour of
 +Windows to cause focus to follow the mouse will now need to explicitly set
 +this variable.
 +
 +** `bad-packages-alist' will warn about external packages that are known
 +to cause problems in this version of Emacs.
 +
 +** The values of `dired-recursive-deletes' and `dired-recursive-copies'
 +have been changed to `top'.  This means that the user is asked once,
 +before deleting/copying the indicated directory recursively.
 +
 +** `browse-url-emacs' loads a URL into an Emacs buffer.  Handy for *.el URLs.
 +
 +** The command gdba has been removed as gdb works now for those cases where it
 +was needed.  In text command mode, if you have problems before execution has
 +started, use M-x gud-gdb.
 +
 +** desktop.el now detects conflicting uses of the desktop file.
 +When loading the desktop, desktop.el can now detect that the file is already
 +in use.  The default behavior is to ask the user what to do, but you can
 +customize it with the new option `desktop-load-locked-desktop'.  When saving,
 +desktop.el warns about attempts to overwrite a desktop file if it determines
 +that the desktop being saved is not an update of the one on disk.
 +
 +* New Modes and Packages in Emacs 22.2
 +
 +** bibtex-style-mode helps you write BibTeX's *.bst files.
 +
 +** The new package css-mode.el provides a major mode for editing CSS files.
 +
 +** The new package vera-mode.el provides a major mode for editing Vera files.
 +
 +** The new package verilog-mode.el provides a major mode for editing Verilog files.
 +
 +** The new package socks.el implements the SOCKS v5 protocol.
 +
 +** VC
 +
 +*** VC backends can provide completion of revision names.
 +
 +*** VC backends can provide extra menu entries to be added to the "Version Control" menu.
 +This can be used to add menu entries for backend specific functions.
 +
 +*** VC has some support for Mercurial (Hg).
 +
 +*** VC has some support for Monotone (Mtn).
 +
 +*** VC has some support for Bazaar (Bzr).
 +
 +*** VC has some support for Git.
 +
 +* Lisp Changes in Emacs 22.2.
 +
 +** Frame-local variables are deprecated and are slated for removal.
 +Use frame parameters instead.
 +
 +** The function invisible-p returns non-nil if the character
 +after a specified position is invisible.
 +
 ++++
 +** inhibit-modification-hooks is bound to t while running modification hooks.
 +As a happy consequence, after-change-functions and before-change-functions
 +are not bound to nil any more while running an (after|before)-change-function.
 +
 +** New function `window-full-width-p' returns t if a window is as wide
 +as its frame.
 +
 +** The new function `image-refresh' refreshes all images associated
 +with a given image specification.
 +
 +** The new function `combine-and-quote-strings' concatenates a list of strings
 +using a specified separator.  If a string contains double quotes, they
 +are escaped in the output.
 +
 +** The new function `split-string-and-unquote' performs the inverse operation to
 +`combine-and-quote-strings', i.e. splits a single string into a list
 +of strings, undoing any quoting added by `combine-and-quote-strings'.
 +(For some separator/string combinations, the original strings cannot
 +be recovered.)
 +
 +\f
 +* Installation Changes in Emacs 22.1
 +
 +** You can build Emacs with Gtk+ widgets by specifying `--with-x-toolkit=gtk'
 +when you run configure.  This requires Gtk+ 2.4 or newer.  This port
 +provides a way to display multilingual text in menus (with some caveats).
 +
 +** The Emacs Lisp Reference Manual is now part of the distribution.
 +
 +The Emacs Lisp Reference Manual in Info format is built as part of the
 +Emacs build procedure and installed together with the Emacs User
 +Manual.  A menu item was added to the menu bar to make it easily
 +accessible (Help->More Manuals->Emacs Lisp Reference).
 +
 +** The Introduction to Programming in Emacs Lisp manual is now part of
 +the distribution.
 +
 +This manual is now part of the standard distribution and is installed,
 +together with the Emacs User Manual, into the Info directory.  A menu
 +item was added to the menu bar to make it easily accessible
 +(Help->More Manuals->Introduction to Emacs Lisp).
 +
 +** Leim is now part of the Emacs distribution.
 +You no longer need to download a separate tarball in order to build
 +Emacs with Leim.
 +
 +** Support for MacOS X was added.
 +See the files mac/README and mac/INSTALL for build instructions.
 +
 +** Mac OS 9 port now uses the Carbon API by default.  You can also
 +create a non-Carbon build by specifying `NonCarbon' as a target.  See
 +the files mac/README and mac/INSTALL for build instructions.
 +
 +** Support for a Cygwin build of Emacs was added.
 +
 +** Support for GNU/Linux systems on X86-64 machines was added.
 +
 +** Support for GNU/Linux systems on S390 machines was added.
 +
 +** Support for GNU/Linux systems on Tensilica Xtensa machines was added.
 +
 +** Support for FreeBSD/Alpha has been added.
 +
 +** New translations of the Emacs Tutorial are available in the
 +following languages: Brasilian Portuguese, Bulgarian, Chinese (both
 +with simplified and traditional characters), French, Russian, and
 +Italian.  Type `C-u C-h t' to choose one of them in case your language
 +setup doesn't automatically select the right one.
 +
 +** New translations of the Emacs reference card are available in the
 +Brasilian Portuguese and Russian.  The corresponding PostScript files
 +are also included.
 +
 +** A French translation of the `Emacs Survival Guide' is available.
 +
 +** Emacs now supports new configure options `--program-prefix',
 +`--program-suffix' and `--program-transform-name' that affect the names of
 +installed programs.
 +
 +** By default, Emacs now uses a setgid helper program to update game
 +scores.  The directory ${localstatedir}/games/emacs is the normal
 +place for game scores to be stored.  You can control this with the
 +configure option `--with-game-dir'.  The specific user that Emacs uses
 +to own the game scores is controlled by `--with-game-user'.  If access
 +to a game user is not available, then scores will be stored separately
 +in each user's home directory.
 +
 +** Emacs now includes support for loading image libraries on demand.
 +(Currently this feature is only used on MS Windows.)  You can configure
 +the supported image types and their associated dynamic libraries by
 +setting the variable `image-library-alist'.
 +
 +** Emacs can now be built without sound support.
 +
 +** Emacs Lisp source files are compressed by default if `gzip' is available.
 +
 +** All images used in Emacs have been consolidated in etc/images and subdirs.
 +See also the changes to `find-image', documented below.
 +
 +** Emacs comes with a new set of icons.
 +These icons are displayed on the taskbar and/or titlebar when Emacs
 +runs in a graphical environment.  Source files for these icons can be
 +found in etc/images/icons.  (You can't change the icons displayed by
 +Emacs by changing these files directly.  On X, the icon is compiled
 +into the Emacs executable; see gnu.h in the source tree.  On MS
 +Windows, see nt/icons/emacs.ico.)
 +
 +** The `emacsserver' program has been removed, replaced with Lisp code.
 +
 +** The `yow' program has been removed.
 +Use the corresponding Emacs feature instead.
 +
 +** The Emacs terminal emulation in term.el uses a different terminfo name.
 +The Emacs terminal emulation in term.el now uses "eterm-color" as its
 +terminfo name, since term.el now supports color.
 +
 +** The script etc/emacs-buffer.gdb can be used with gdb to retrieve the
 +contents of buffers from a core dump and save them to files easily, should
 +Emacs crash.
 +
 +** Building with -DENABLE_CHECKING does not automatically build with union
 +types any more.  Add -DUSE_LISP_UNION_TYPE if you want union types.
 +
 +** When pure storage overflows while dumping, Emacs now prints how
 +much pure storage it will approximately need.
 +
 +\f
 +* Startup Changes in Emacs 22.1
 +
 +** Init file changes
 +If the init file ~/.emacs does not exist, Emacs will try
 +~/.emacs.d/init.el or ~/.emacs.d/init.elc.  Likewise, if the shell init file
 +~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh.
 +
 +** Emacs can now be invoked in full-screen mode on a windowed display.
 +When Emacs is invoked on a window system, the new command-line options
 +`--fullwidth', `--fullheight', and `--fullscreen' produce a frame
 +whose width, height, or both width and height take up the entire
 +screen size.  (For now, this does not work with some window managers.)
 +
 +** Emacs now displays a splash screen by default even if command-line
 +arguments were given.  The new command-line option --no-splash
 +disables the splash screen; see also the variable
 +`inhibit-splash-screen' (which is also aliased as
 +`inhibit-startup-message').
 +
 +** New user option `inhibit-startup-buffer-menu'.
 +When loading many files, for instance with `emacs *', Emacs normally
 +displays a buffer menu.  This option turns the buffer menu off.
 +
 +** New command line option -nbc or --no-blinking-cursor disables
 +the blinking cursor on graphical terminals.
 +
 +** The option --script FILE runs Emacs in batch mode and loads FILE.
 +It is useful for writing Emacs Lisp shell script files, because they
 +can start with this line:
 +
 +   #!/usr/bin/emacs --script
 +
 +** The -f option, used from the command line to call a function,
 +now reads arguments for the function interactively if it is
 +an interactively callable function.
 +
 +** The option --directory DIR now modifies `load-path' immediately.
 +Directories are added to the front of `load-path' in the order they
 +appear on the command line.  For example, with this command line:
 +
 +  emacs -batch -L .. -L /tmp --eval "(require 'foo)"
 +
 +Emacs looks for library `foo' in the parent directory, then in /tmp, then
 +in the other directories in `load-path'.  (-L is short for --directory.)
 +
 +** When you specify a frame size with --geometry, the size applies to
 +all frames you create.  A position specified with --geometry only
 +affects the initial frame.
 +
 +** Emacs built for MS-Windows now behaves like Emacs on X does,
 +with respect to its frame position: if you don't specify a position
 +(in your .emacs init file, in the Registry, or with the --geometry
 +command-line option), Emacs leaves the frame position to the Windows'
 +window manager.
 +
 +** The command line option --no-windows has been changed to
 +--no-window-system.  The old one still works, but is deprecated.
 +
 +** If the environment variable DISPLAY specifies an unreachable X display,
 +Emacs will now startup as if invoked with the --no-window-system option.
 +
 +** Emacs now reads the standard abbrevs file ~/.abbrev_defs
 +automatically at startup, if it exists.  When Emacs offers to save
 +modified buffers, it saves the abbrevs too if they have changed.  It
 +can do this either silently or asking for confirmation first,
 +according to the value of `save-abbrevs'.
 +
 +** New command line option -Q or --quick.
 +This is like using -q --no-site-file, but in addition it also disables
 +the fancy startup screen.
 +
 +** New command line option -D or --basic-display.
 +Disables the menu-bar, the tool-bar, the scroll-bars, tool tips, and
 +the blinking cursor.
 +
 +** The default is now to use a bitmap as the icon.
 +The command-line options --icon-type, -i have been replaced with
 +options --no-bitmap-icon, -nbi to turn the bitmap icon off.
 +
 +** If the environment variable EMAIL is defined, Emacs now uses its value
 +to compute the default value of `user-mail-address', in preference to
 +concatenation of `user-login-name' with the name of your host machine.
 +
 +\f
 +* Incompatible Editing Changes in Emacs 22.1
 +
 +** You can now follow links by clicking Mouse-1 on the link.
 +
 +See below for more details.
 +
 +** When the undo information of the current command gets really large
 +(beyond the value of `undo-outer-limit'), Emacs discards it and warns
 +you about it.
 +
 +** When Emacs prompts for file names, SPC no longer completes the file name.
 +This is so filenames with embedded spaces could be input without the
 +need to quote the space with a C-q.  The underlying changes in the
 +keymaps that are active in the minibuffer are described below under
 +"New keymaps for typing file names".
 +
 +If you want the old behavior back, add these two key bindings to your
 +~/.emacs init file:
 +
 +  (define-key minibuffer-local-filename-completion-map
 +            " " 'minibuffer-complete-word)
 +  (define-key minibuffer-local-must-match-filename-map
 +            " " 'minibuffer-complete-word)
 +
 +** The completion commands TAB, SPC and ? in the minibuffer apply only
 +to the text before point.  If there is text in the buffer after point,
 +it remains unchanged.
 +
 +** In incremental search, C-w is changed.  M-%, C-M-w and C-M-y are special.
 +
 +See below under "incremental search changes".
 +
 +** M-g is now a prefix key.
 +M-g g and M-g M-g run goto-line.
 +M-g n and M-g M-n run next-error (like C-x `).
 +M-g p and M-g M-p run previous-error.
 +
 +** C-u M-g M-g switches to the most recent previous buffer,
 +and goes to the specified line in that buffer.
 +
 +When goto-line starts to execute, if there's a number in the buffer at
 +point then it acts as the default argument for the minibuffer.
 +
 +** M-o now is the prefix key for setting text properties;
 +M-o M-o requests refontification.
 +
 +** C-x C-f RET (find-file), typing nothing in the minibuffer, is no longer
 +a special case.
 +
 +Since the default input is the current directory, this has the effect
 +of specifying the current directory.  Normally that means to visit the
 +directory with Dired.
 +
 +You can get the old behavior by typing C-x C-f M-n RET, which fetches
 +the actual file name into the minibuffer.
 +
 +** In Dired's ! command (dired-do-shell-command), `*' and `?' now
 +control substitution of the file names only when they are surrounded
 +by whitespace.  This means you can now use them as shell wildcards
 +too.  If you want to use just plain `*' as a wildcard, type `*""'; the
 +doublequotes make no difference in the shell, but they prevent
 +special treatment in `dired-do-shell-command'.
 +
 +** The info-search bindings on C-h C-f, C-h C-k and C-h C-i
 +have been moved to C-h F, C-h K and C-h S.
 +
 +** `apply-macro-to-region-lines' now operates on all lines that begin
 +in the region, rather than on all complete lines in the region.
 +
 +** line-move-ignore-invisible now defaults to t.
 +
 +** Adaptive filling misfeature removed.
 +It no longer treats `NNN.' or `(NNN)' as a prefix.
 +
 +** The old bindings C-M-delete and C-M-backspace have been deleted,
 +since there are situations where one or the other will shut down
 +the operating system or your X server.
 +
 +** The register compatibility key bindings (deprecated since Emacs 19)
 +have been removed:
 +  C-x /   point-to-register (Use: C-x r SPC)
 +  C-x j   jump-to-register  (Use: C-x r j)
 +  C-x x   copy-to-register  (Use: C-x r s)
 +  C-x g   insert-register   (Use: C-x r i)
 +
 +\f
 +* Editing Changes in Emacs 22.1
 +
 +** The max size of buffers and integers has been doubled.
 +On 32bit machines, it is now 256M (i.e. 268435455).
 +
 +** !MEM FULL! at the start of the mode line indicates that Emacs
 +cannot get any more memory for Lisp data.  This often means it could
 +crash soon if you do things that use more memory.  On most systems,
 +killing buffers will get out of this state.  If killing buffers does
 +not make !MEM FULL! disappear, you should save your work and start
 +a new Emacs.
 +
 +** `undo-only' does an undo which does not redo any previous undo.
 +
 +** Yanking text now discards certain text properties that can
 +be inconvenient when you did not expect them.  The variable
 +`yank-excluded-properties' specifies which ones.  Insertion
 +of register contents and rectangles also discards these properties.
 +
 +** New command `kill-whole-line' kills an entire line at once.
 +By default, it is bound to C-S-<backspace>.
 +
 +** M-SPC (just-one-space) when given a numeric argument N
 +converts whitespace around point to N spaces.
 +
 +** You can now switch buffers in a cyclic order with C-x C-left
 +(previous-buffer) and C-x C-right (next-buffer).  C-x left and
 +C-x right can be used as well.  The functions keep a different buffer
 +cycle for each frame, using the frame-local buffer list.
 +
 +** C-x 5 C-o displays a specified buffer in another frame
 +but does not switch to that frame.  It's the multi-frame
 +analogue of C-x 4 C-o.
 +
 +** `special-display-buffer-names' and `special-display-regexps' now
 +understand two new boolean pseudo-frame-parameters `same-frame' and
 +`same-window'.
 +
 +** New commands to operate on pairs of open and close characters:
 +`insert-pair', `delete-pair', `raise-sexp'.
 +
 +** M-x setenv now expands environment variable references.
 +
 +Substrings of the form `$foo' and `${foo}' in the specified new value
 +now refer to the value of environment variable foo.  To include a `$'
 +in the value, use `$$'.
 +
 +** The default values of paragraph-start and indent-line-function have
 +been changed to reflect those used in Text mode rather than those used
 +in Paragraph-Indent Text mode.
 +
 +** The default for the paper size (variable ps-paper-type) is taken
 +from the locale.
 +
 +** Help command changes:
 +
 +*** Changes in C-h bindings:
 +
 +C-h e displays the *Messages* buffer.
 +
 +C-h d runs apropos-documentation.
 +
 +C-h r visits the Emacs Manual in Info.
 +
 +C-h followed by a control character is used for displaying files
 +    that do not change:
 +
 +C-h C-f displays the FAQ.
 +C-h C-e displays the PROBLEMS file.
 +
 +The info-search bindings on C-h C-f, C-h C-k and C-h C-i
 +have been moved to C-h F, C-h K and C-h S.
 +
 +C-h c, C-h k, C-h w, and C-h f now handle remapped interactive commands.
 +- C-h c and C-h k report the actual command (after possible remapping)
 +  run by the key sequence.
 +- C-h w and C-h f on a command which has been remapped now report the
 +  command it is remapped to, and the keys which can be used to run
 +  that command.
 +
 +For example, if C-k is bound to kill-line, and kill-line is remapped
 +to new-kill-line, these commands now report:
 +- C-h c and C-h k C-k reports:
 +  C-k runs the command new-kill-line
 +- C-h w and C-h f kill-line reports:
 +  kill-line is remapped to new-kill-line which is on C-k, <deleteline>
 +- C-h w and C-h f new-kill-line reports:
 +  new-kill-line is on C-k
 +
 +*** The apropos commands now accept a list of words to match.
 +When more than one word is specified, at least two of those words must
 +be present for an item to match.  Regular expression matching is still
 +available.
 +
 +*** The new option `apropos-sort-by-scores' causes the matching items
 +to be sorted according to their score.  The score for an item is a
 +number calculated to indicate how well the item matches the words or
 +regular expression that you entered to the apropos command.  The best
 +match is listed first, and the calculated score is shown for each
 +matching item.
 +
 +*** Help commands `describe-function' and `describe-key' now show function
 +arguments in lowercase italics on displays that support it.  To change the
 +default, customize face `help-argument-name' or redefine the function
 +`help-default-arg-highlight'.
 +
 +*** C-h v and C-h f commands now include a hyperlink to the C source for
 +variables and functions defined in C (if the C source is available).
 +
 +*** Help mode now only makes hyperlinks for faces when the face name is
 +preceded or followed by the word `face'.  It no longer makes
 +hyperlinks for variables without variable documentation, unless
 +preceded by one of the words `variable' or `option'.  It now makes
 +hyperlinks to Info anchors (or nodes) if the anchor (or node) name is
 +enclosed in single quotes and preceded by `info anchor' or `Info
 +anchor' (in addition to earlier `info node' and `Info node').  In
 +addition, it now makes hyperlinks to URLs as well if the URL is
 +enclosed in single quotes and preceded by `URL'.
 +
 +*** The new command `describe-char' (C-u C-x =) pops up a buffer with
 +description various information about a character, including its
 +encodings and syntax, its text properties, how to input, overlays, and
 +widgets at point.  You can get more information about some of them, by
 +clicking on mouse-sensitive areas or moving there and pressing RET.
 +
 +*** The command `list-text-properties-at' has been deleted because
 +C-u C-x = gives the same information and more.
 +
 +*** New command `display-local-help' displays any local help at point
 +in the echo area.  It is bound to `C-h .'.  It normally displays the
 +same string that would be displayed on mouse-over using the
 +`help-echo' property, but, in certain cases, it can display a more
 +keyboard oriented alternative.
 +
 +*** New user option `help-at-pt-display-when-idle' allows you to
 +automatically show the help provided by `display-local-help' on
 +point-over, after suitable idle time.  The amount of idle time is
 +determined by the user option `help-at-pt-timer-delay' and defaults
 +to one second.  This feature is turned off by default.
 +
 +** Mark command changes:
 +
 +*** A prefix argument is no longer required to repeat a jump to a
 +previous mark if you set `set-mark-command-repeat-pop' to t.  I.e. C-u
 +C-SPC C-SPC C-SPC ... cycles through the mark ring.  Use C-u C-u C-SPC
 +to set the mark immediately after a jump.
 +
 +*** Marking commands extend the region when invoked multiple times.
 +
 +If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h
 +(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region
 +extends each time, so you can mark the next two sexps with M-C-SPC
 +M-C-SPC, for example.  This feature also works for
 +mark-end-of-sentence, if you bind that to a key.  It also extends the
 +region when the mark is active in Transient Mark mode, regardless of
 +the last command.  To start a new region with one of marking commands
 +in Transient Mark mode, you can deactivate the active region with C-g,
 +or set the new mark with C-SPC.
 +
 +*** Some commands do something special in Transient Mark mode when the
 +mark is active--for instance, they limit their operation to the
 +region.  Even if you don't normally use Transient Mark mode, you might
 +want to get this behavior from a particular command.  There are two
 +ways you can enable Transient Mark mode and activate the mark, for one
 +command only.
 +
 +One method is to type C-SPC C-SPC; this enables Transient Mark mode
 +and sets the mark at point.  The other method is to type C-u C-x C-x.
 +This enables Transient Mark mode temporarily but does not alter the
 +mark or the region.
 +
 +After these commands, Transient Mark mode remains enabled until you
 +deactivate the mark.  That typically happens when you type a command
 +that alters the buffer, but you can also deactivate the mark by typing
 +C-g.
 +
 +*** Movement commands `beginning-of-buffer', `end-of-buffer',
 +`beginning-of-defun', `end-of-defun' do not set the mark if the mark
 +is already active in Transient Mark mode.
 +
 +*** M-h (mark-paragraph) now accepts a prefix arg.
 +
 +With positive arg, M-h marks the current and the following paragraphs;
 +if the arg is negative, it marks the current and the preceding
 +paragraphs.
 +
 +** Incremental Search changes:
 +
 +*** M-% typed in isearch mode invokes `query-replace' or
 +`query-replace-regexp' (depending on search mode) with the current
 +search string used as the string to replace.
 +
 +*** C-w in incremental search now grabs either a character or a word,
 +making the decision in a heuristic way.  This new job is done by the
 +command `isearch-yank-word-or-char'.  To restore the old behavior,
 +bind C-w to `isearch-yank-word' in `isearch-mode-map'.
 +
 +*** C-y in incremental search now grabs the next line if point is already
 +at the end of a line.
 +
 +*** C-M-w deletes and C-M-y grabs a character in isearch mode.
 +Another method to grab a character is to enter the minibuffer by `M-e'
 +and to type `C-f' at the end of the search string in the minibuffer.
 +
 +*** Vertical scrolling is now possible within incremental search.
 +To enable this feature, customize the new user option
 +`isearch-allow-scroll'.  User written commands which satisfy stringent
 +constraints can be marked as "scrolling commands".  See the Emacs manual
 +for details.
 +
 +*** Isearch no longer adds `isearch-resume' commands to the command
 +history by default.  To enable this feature, customize the new
 +user option `isearch-resume-in-command-history'.
 +
 +** Replace command changes:
 +
 +*** When used interactively, the commands `query-replace-regexp' and
 +`replace-regexp' allow \,expr to be used in a replacement string,
 +where expr is an arbitrary Lisp expression evaluated at replacement
 +time.  `\#' in a replacement string now refers to the count of
 +replacements already made by the replacement command.  All regular
 +expression replacement commands now allow `\?' in the replacement
 +string to specify a position where the replacement string can be
 +edited for each replacement.  `query-replace-regexp-eval' is now
 +deprecated since it offers no additional functionality.
 +
 +*** query-replace uses isearch lazy highlighting when the new user option
 +`query-replace-lazy-highlight' is non-nil.
 +
 +*** The current match in query-replace is highlighted in new face
 +`query-replace' which by default inherits from isearch face.
 +
 +*** New user option `query-replace-skip-read-only': when non-nil,
 +`query-replace' and related functions simply ignore
 +a match if part of it has a read-only property.
 +
 +** Local variables lists:
 +
 +*** If the local variables list contains any variable-value pairs that
 +are not known to be safe, Emacs shows a prompt asking whether to apply
 +the local variables list as a whole.  In earlier versions, a prompt
 +was only issued for variables explicitly marked as risky (for the
 +definition of risky variables, see `risky-local-variable-p').
 +
 +At the prompt, you can choose to save the contents of this local
 +variables list to `safe-local-variable-values'.  This new customizable
 +option is a list of variable-value pairs that are known to be safe.
 +Variables can also be marked as safe with the existing
 +`safe-local-variable' property (see `safe-local-variable-p').
 +However, risky variables will not be added to
 +`safe-local-variable-values' in this way.
 +
 +*** The variable `enable-local-variables' controls how local variable
 +lists are handled.  t, the default, specifies the standard querying
 +behavior.  :safe means use only safe values, and ignore the rest.
 +:all means set all variables, whether or not they are safe.
 +nil means ignore them all.  Anything else means always query.
 +
 +*** The variable `safe-local-eval-forms' specifies a list of forms that
 +are ok to evaluate when they appear in an `eval' local variables
 +specification.  Normally Emacs asks for confirmation before evaluating
 +such a form, but if the form appears in this list, no confirmation is
 +needed.
 +
 +*** If a function has a non-nil `safe-local-eval-function' property,
 +that means it is ok to evaluate some calls to that function when it
 +appears in an `eval' local variables specification.  If the property
 +is t, then any form calling that function with constant arguments is
 +ok.  If the property is a function or list of functions, they are called
 +with the form as argument, and if any returns t, the form is ok to call.
 +
 +If the form is not "ok to call", that means Emacs asks for
 +confirmation as before.
 +
 +*** In processing a local variables list, Emacs strips the prefix and
 +suffix from every line before processing all the lines.
 +
 +*** Text properties in local variables.
 +
 +A file local variables list cannot specify a string with text
 +properties--any specified text properties are discarded.
 +
 +** File operation changes:
 +
 +*** Unquoted `$' in file names do not signal an error any more when
 +the corresponding environment variable does not exist.
 +Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
 +is only rarely needed.
 +
 +*** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case.
 +
 +Since the default input is the current directory, this has the effect
 +of specifying the current directory.  Normally that means to visit the
 +directory with Dired.
 +
 +*** C-x s (save-some-buffers) now offers an option `d' to diff a buffer
 +against its file, so you can see what changes you would be saving.
 +
 +*** Auto Compression mode is now enabled by default.
 +
 +*** If the user visits a file larger than `large-file-warning-threshold',
 +Emacs asks for confirmation.
 +
 +*** The commands copy-file, rename-file, make-symbolic-link and
 +add-name-to-file, when given a directory as the "new name" argument,
 +convert it to a file name by merging in the within-directory part of
 +the existing file's name.  (This is the same convention that shell
 +commands cp, mv, and ln follow.)  Thus, M-x copy-file RET ~/foo RET
 +/tmp RET copies ~/foo to /tmp/foo.
 +
 +*** require-final-newline now has two new possible values:
 +
 +`visit' means add a newline (as an undoable change) if it's needed
 +when visiting the file.
 +
 +`visit-save' means add a newline (as an undoable change) if it's
 +needed when visiting the file, and also add a newline if it's needed
 +when saving the file.
 +
 +*** The new option mode-require-final-newline controls how certain
 +major modes enable require-final-newline.  Any major mode that's
 +designed for a kind of file that should normally end in a newline
 +sets require-final-newline based on mode-require-final-newline.
 +So you can customize mode-require-final-newline to control what these
 +modes do.
 +
 +*** When you are root, and you visit a file whose modes specify
 +read-only, the Emacs buffer is now read-only too.  Type C-x C-q if you
 +want to make the buffer writable.  (As root, you can in fact alter the
 +file.)
 +
 +*** find-file-read-only visits multiple files in read-only mode,
 +when the file name contains wildcard characters.
 +
 +*** find-alternate-file replaces the current file with multiple files,
 +when the file name contains wildcard characters.  It now asks if you
 +wish save your changes and not just offer to kill the buffer.
 +
 +*** When used interactively, `format-write-file' now asks for confirmation
 +before overwriting an existing file, unless a prefix argument is
 +supplied.  This behavior is analogous to `write-file'.
 +
 +*** The variable `auto-save-file-name-transforms' now has a third element that
 +controls whether or not the function `make-auto-save-file-name' will
 +attempt to construct a unique auto-save name (e.g. for remote files).
 +
 +*** The new option `write-region-inhibit-fsync' disables calls to fsync
 +in `write-region'.  This can be useful on laptops to avoid spinning up
 +the hard drive upon each file save.  Enabling this variable may result
 +in data loss, use with care.
 +
 +** Minibuffer changes:
 +
 +*** The completion commands TAB, SPC and ? in the minibuffer apply only
 +to the text before point.  If there is text in the buffer after point,
 +it remains unchanged.
 +
 +*** The new file-name-shadow-mode is turned ON by default, so that when
 +entering a file name, any prefix which Emacs will ignore is dimmed.
 +
 +*** There's a new face `minibuffer-prompt'.
 +Emacs adds this face to the list of text properties stored in the
 +variable `minibuffer-prompt-properties', which is used to display the
 +prompt string.
 +
 +*** Enhanced visual feedback in `*Completions*' buffer.
 +
 +Completions lists use faces to highlight what all completions
 +have in common and where they begin to differ.
 +
 +The common prefix shared by all possible completions uses the face
 +`completions-common-part', while the first character that isn't the
 +same uses the face `completions-first-difference'.  By default,
 +`completions-common-part' inherits from `default', and
 +`completions-first-difference' inherits from `bold'.  The idea of
 +`completions-common-part' is that you can use it to make the common
 +parts less visible than normal, so that the rest of the differing
 +parts is, by contrast, slightly highlighted.
 +
 +Above fontification is always done when listing completions is
 +triggered at minibuffer.  If you want to fontify completions whose
 +listing is triggered at the other normal buffer, you have to pass
 +the common prefix of completions to `display-completion-list' as
 +its second argument.
 +
 +*** File-name completion can now ignore specified directories.
 +If an element of the list in `completion-ignored-extensions' ends in a
 +slash `/', it indicates a subdirectory that should be ignored when
 +completing file names.  Elements of `completion-ignored-extensions'
 +which do not end in a slash are never considered when a completion
 +candidate is a directory.
 +
 +*** New user option `history-delete-duplicates'.
 +If set to t when adding a new history element, all previous identical
 +elements are deleted from the history list.
 +
 +** Redisplay changes:
 +
 +*** The new face `mode-line-inactive' is used to display the mode line
 +of non-selected windows.  The `mode-line' face is now used to display
 +the mode line of the currently selected window.
 +
 +The new variable `mode-line-in-non-selected-windows' controls whether
 +the `mode-line-inactive' face is used.
 +
 +*** The mode line position information now comes before the major mode.
 +When the file is maintained under version control, that information
 +appears between the position information and the major mode.
 +
 +*** You can now customize the use of window fringes.  To control this
 +for all frames, use M-x fringe-mode or the Show/Hide submenu of the
 +top-level Options menu, or customize the `fringe-mode' variable.  To
 +control this for a specific frame, use the command M-x
 +set-fringe-style.
 +
 +*** Angle icons in the fringes can indicate the buffer boundaries.  In
 +addition, up and down arrow bitmaps in the fringe indicate which ways
 +the window can be scrolled.
 +
 +This behavior is activated by setting the buffer-local variable
 +`indicate-buffer-boundaries' to a non-nil value.  The default value of
 +this variable is found in `default-indicate-buffer-boundaries'.
 +
 +If value is `left' or `right', both angle and arrow bitmaps are
 +displayed in the left or right fringe, resp.
 +
 +The value can also be an alist which specifies the presence and
 +position of each bitmap individually.
 +
 +For example, ((top . left) (t .  right)) places the top angle bitmap
 +in left fringe, the bottom angle bitmap in right fringe, and both
 +arrow bitmaps in right fringe.  To show just the angle bitmaps in the
 +left fringe, but no arrow bitmaps, use ((top . left) (bottom . left)).
 +
 +*** On window systems, lines which are exactly as wide as the window
 +(not counting the final newline character) are no longer broken into
 +two lines on the display (with just the newline on the second line).
 +Instead, the newline now "overflows" into the right fringe, and the
 +cursor will be displayed in the fringe when positioned on that newline.
 +
 +The new user option 'overflow-newline-into-fringe' can be set to nil to
 +revert to the old behavior of continuing such lines.
 +
 +*** A window can now have individual fringe and scroll-bar settings,
 +in addition to the individual display margin settings.
 +
 +Such individual settings are now preserved when windows are split
 +horizontally or vertically, a saved window configuration is restored,
 +or when the frame is resized.
 +
 +*** When a window has display margin areas, the fringes are now
 +displayed between the margins and the buffer's text area, rather than
 +outside those margins.
 +
 +*** New face `escape-glyph' highlights control characters and escape glyphs.
 +
 +*** Non-breaking space and hyphens are now displayed with a special
 +face, either nobreak-space or escape-glyph.  You can turn this off or
 +specify a different mode by setting the variable `nobreak-char-display'.
 +
 +*** The parameters of automatic hscrolling can now be customized.
 +The variable `hscroll-margin' determines how many columns away from
 +the window edge point is allowed to get before automatic hscrolling
 +will horizontally scroll the window.  The default value is 5.
 +
 +The variable `hscroll-step' determines how many columns automatic
 +hscrolling scrolls the window when point gets too close to the
 +window edge.  If its value is zero, the default, Emacs scrolls the
 +window so as to center point.  If its value is an integer, it says how
 +many columns to scroll.  If the value is a floating-point number, it
 +gives the fraction of the window's width to scroll the window.
 +
 +The variable `automatic-hscrolling' was renamed to
 +`auto-hscroll-mode'.  The old name is still available as an alias.
 +
 +*** Moving or scrolling through images (and other lines) taller than
 +the window now works sensibly, by automatically adjusting the window's
 +vscroll property.
 +
 +*** Preemptive redisplay now adapts to current load and bandwidth.
 +
 +To avoid preempting redisplay on fast computers, networks, and displays,
 +the arrival of new input is now performed at regular intervals during
 +redisplay.  The new variable `redisplay-preemption-period' specifies
 +the period; the default is to check for input every 0.1 seconds.
 +
 +*** The %c and %l constructs are now ignored in frame-title-format.
 +Due to technical limitations in how Emacs interacts with windowing
 +systems, these constructs often failed to render properly, and could
 +even cause Emacs to crash.
 +
 +*** If value of `auto-resize-tool-bars' is `grow-only', the tool bar
 +will expand as needed, but not contract automatically.  To contract
 +the tool bar, you must type C-l.
 +
 +*** New customize option `overline-margin' controls the space between
 +overline and text.
 +
 +*** New variable `x-underline-at-descent-line' controls the relative
 +position of the underline.  When set, it overrides the
 +`x-use-underline-position-properties' variables.
 +
 +** New faces:
 +
 +*** `mode-line-highlight' is the standard face indicating mouse sensitive
 +elements on mode-line (and header-line) like `highlight' face on text
 +areas.
 +
 +*** `mode-line-buffer-id' is the standard face for buffer identification
 +parts of the mode line.
 +
 +*** `shadow' face defines the appearance of the "shadowed" text, i.e.
 +the text which should be less noticeable than the surrounding text.
 +This can be achieved by using shades of grey in contrast with either
 +black or white default foreground color.  This generic shadow face
 +allows customization of the appearance of shadowed text in one place,
 +so package-specific faces can inherit from it.
 +
 +*** `vertical-border' face is used for the vertical divider between windows.
 +
 +** Font-Lock (syntax highlighting) changes:
 +
 +*** All modes now support using M-x font-lock-mode to toggle
 +fontification, even those such as Occur, Info, and comint-derived
 +modes that do their own fontification in a special way.
 +
 +The variable `Info-fontify' is no longer applicable; to disable
 +fontification in Info, remove `turn-on-font-lock' from
 +`Info-mode-hook'.
 +
 +*** New standard font-lock face `font-lock-comment-delimiter-face'.
 +
 +*** New standard font-lock face `font-lock-preprocessor-face'.
 +
 +*** Easy to overlook single character negation can now be font-locked.
 +You can use the new variable `font-lock-negation-char-face' and the face of
 +the same name to customize this.  Currently the cc-modes, sh-script-mode,
 +cperl-mode and make-mode support this.
 +
 +*** Font-Lock mode: in major modes such as Lisp mode, where some Emacs
 +features assume that an open-paren in column 0 is always outside of
 +any string or comment, Font-Lock now highlights any such open-paren in
 +bold-red if it is inside a string or a comment, to indicate that it
 +can cause trouble.  You should rewrite the string or comment so that
 +the open-paren is not in column 0.
 +
 +*** M-o now is the prefix key for setting text properties;
 +M-o M-o requests refontification.
 +
 +*** The default settings for JIT stealth lock parameters are changed.
 +The default value for the user option jit-lock-stealth-time is now nil
 +instead of 3.  This setting of jit-lock-stealth-time disables stealth
 +fontification: on today's machines, it may be a bug in font lock
 +patterns if fontification otherwise noticeably degrades interactivity.
 +If you find movement in infrequently visited buffers sluggish (and the
 +major mode maintainer has no better idea), customizing
 +jit-lock-stealth-time to a non-nil value will let Emacs fontify
 +buffers in the background when it considers the system to be idle.
 +jit-lock-stealth-nice is now 0.5 instead of 0.125 which is supposed to
 +cause less load than the old defaults.
 +
 +*** jit-lock can now be delayed with `jit-lock-defer-time'.
 +
 +If this variable is non-nil, its value should be the amount of Emacs
 +idle time in seconds to wait before starting fontification.  For
 +example, if you set `jit-lock-defer-time' to 0.25, fontification will
 +only happen after 0.25s of idle time.
 +
 +*** contextual refontification is now separate from stealth fontification.
 +
 +jit-lock-defer-contextually is renamed jit-lock-contextually and
 +jit-lock-context-time determines the delay after which contextual
 +refontification takes place.
 +
 +*** lazy-lock is considered obsolete.
 +
 +The `lazy-lock' package is superseded by `jit-lock' and is considered
 +obsolete.  `jit-lock' is activated by default; if you wish to continue
 +using `lazy-lock', activate it in your ~/.emacs like this:
 +  (setq font-lock-support-mode 'lazy-lock-mode)
 +
 +If you invoke `lazy-lock-mode' directly rather than through
 +`font-lock-support-mode', it now issues a warning:
 +  "Use font-lock-support-mode rather than calling lazy-lock-mode"
 +
 +** Menu support:
 +
 +*** A menu item "Show/Hide" was added to the top-level menu "Options".
 +This menu allows you to turn various display features on and off (such
 +as the fringes, the tool bar, the speedbar, and the menu bar itself).
 +You can also move the vertical scroll bar to either side here or turn
 +it off completely.  There is also a menu-item to toggle displaying of
 +current date and time, current line and column number in the mode-line.
 +
 +*** Speedbar has moved from the "Tools" top level menu to "Show/Hide".
 +
 +*** The menu item "Open File..." has been split into two items, "New File..."
 +and "Open File...".  "Open File..." now opens only existing files.  This is
 +to support existing GUI file selection dialogs better.
 +
 +*** The file selection dialog for Gtk+, Mac, W32 and Motif/LessTif can be
 +disabled by customizing the variable `use-file-dialog'.
 +
 +*** The pop up menus for Lucid now stay up if you do a fast click and can
 +be navigated with the arrow keys (like Gtk+, Mac and W32).
 +
 +*** The menu bar for Motif/LessTif/Lucid/Gtk+ can be navigated with keys.
 +Pressing F10 shows the first menu in the menu bar.  Navigation is done with
 +the arrow keys, select with the return key and cancel with the escape keys.
 +
 +*** The Lucid menus can display multilingual text in your locale.  You have
 +to explicitly specify a fontSet resource for this to work, for example
 +`-xrm "Emacs*fontSet:  -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'.
 +
 +*** Dialogs for Lucid/Athena and LessTif/Motif now pop down on pressing
 +ESC, like they do for Gtk+, Mac and W32.
 +
 +*** For the Gtk+ version, you can make Emacs use the old file dialog
 +by setting the variable `x-gtk-use-old-file-dialog' to t.  Default is to use
 +the new dialog.
 +
 +*** You can exit dialog windows and menus by typing C-g.
 +
 +** Buffer Menu changes:
 +
 +*** The new options `buffers-menu-show-directories' and
 +`buffers-menu-show-status' let you control how buffers are displayed
 +in the menu dropped down when you click "Buffers" from the menu bar.
 +
 +`buffers-menu-show-directories' controls whether the menu displays
 +leading directories as part of the file name visited by the buffer.
 +If its value is `unless-uniquify', the default, directories are
 +shown unless uniquify-buffer-name-style' is non-nil.  The value of nil
 +and t turn the display of directories off and on, respectively.
 +
 +`buffers-menu-show-status' controls whether the Buffers menu includes
 +the modified and read-only status of the buffers.  By default it is
 +t, and the status is shown.
 +
 +Setting these variables directly does not take effect until next time
 +the Buffers menu is regenerated.
 +
 +*** New command `Buffer-menu-toggle-files-only' toggles display of file
 +buffers only in the Buffer Menu.  It is bound to T in Buffer Menu
 +mode.
 +
 +*** `buffer-menu' and `list-buffers' now list buffers whose names begin
 +with a space, when those buffers are visiting files.  Normally buffers
 +whose names begin with space are omitted.
 +
 +** Mouse changes:
 +
 +*** You can now follow links by clicking Mouse-1 on the link.
 +
 +Traditionally, Emacs uses a Mouse-1 click to set point and a Mouse-2
 +click to follow a link, whereas most other applications use a Mouse-1
 +click for both purposes, depending on whether you click outside or
 +inside a link.  Now the behavior of a Mouse-1 click has been changed
 +to match this context-sensitive dual behavior.  (If you prefer the old
 +behavior, set the user option `mouse-1-click-follows-link' to nil.)
 +
 +Depending on the current mode, a Mouse-2 click in Emacs can do much
 +more than just follow a link, so the new Mouse-1 behavior is only
 +activated for modes which explicitly mark a clickable text as a "link"
 +(see the new function `mouse-on-link-p' for details).  The Lisp
 +packages that are included in release 22.1 have been adapted to do
 +this, but external packages may not yet support this.  However, there
 +is no risk in using such packages, as the worst thing that could
 +happen is that you get the original Mouse-1 behavior when you click
 +on a link, which typically means that you set point where you click.
 +
 +If you want to get the original Mouse-1 action also inside a link, you
 +just need to press the Mouse-1 button a little longer than a normal
 +click (i.e. press and hold the Mouse-1 button for half a second before
 +you release it).
 +
 +Dragging the Mouse-1 inside a link still performs the original
 +drag-mouse-1 action, typically copy the text.
 +
 +You can customize the new Mouse-1 behavior via the new user options
 +`mouse-1-click-follows-link' and `mouse-1-click-in-non-selected-windows'.
 +
 +*** If you set the new variable `mouse-autoselect-window' to a non-nil
 +value, windows are automatically selected as you move the mouse from
 +one Emacs window to another, even within a frame.  A minibuffer window
 +can be selected only when it is active.
 +
 +*** On X, when the window manager requires that you click on a frame to
 +select it (give it focus), the selected window and cursor position
 +normally changes according to the mouse click position.  If you set
 +the variable x-mouse-click-focus-ignore-position to t, the selected
 +window and cursor position do not change when you click on a frame
 +to give it focus.
 +
 +*** Emacs normally highlights mouse sensitive text whenever the mouse
 +is over the text.  By setting the new variable `mouse-highlight', you
 +can optionally enable mouse highlighting only after you move the
 +mouse, so that highlighting disappears when you press a key.  You can
 +also disable mouse highlighting.
 +
 +*** You can now customize if selecting a region by dragging the mouse
 +shall not copy the selected text to the kill-ring by setting the new
 +variable mouse-drag-copy-region to nil.
 +
 +*** Under X, mouse-wheel-mode is turned on by default.
 +
 +*** Emacs ignores mouse-2 clicks while the mouse wheel is being moved.
 +
 +People tend to push the mouse wheel (which counts as a mouse-2 click)
 +unintentionally while turning the wheel, so these clicks are now
 +ignored.  You can customize this with the mouse-wheel-click-event and
 +mouse-wheel-inhibit-click-time variables.
 +
 +*** mouse-wheels can now scroll a specific fraction of the window
 +(rather than a fixed number of lines) and the scrolling is `progressive'.
 +
 +** Multilingual Environment (Mule) changes:
 +
 +*** You can disable character translation for a file using the -*-
 +construct.  Include `enable-character-translation: nil' inside the
 +-*-...-*- to disable any character translation that may happen by
 +various global and per-coding-system translation tables.  You can also
 +specify it in a local variable list at the end of the file.  For
 +shortcut, instead of using this long variable name, you can append the
 +character "!" at the end of coding-system name specified in -*-
 +construct or in a local variable list.  For example, if a file has the
 +following header, it is decoded by the coding system `iso-latin-1'
 +without any character translation:
 +;; -*- coding: iso-latin-1!; -*-
 +
 +*** Language environment and various default coding systems are setup
 +more correctly according to the current locale name.  If the locale
 +name doesn't specify a charset, the default is what glibc defines.
 +This change can result in using the different coding systems as
 +default in some locale (e.g. vi_VN).
 +
 +*** The keyboard-coding-system is now automatically set based on your
 +current locale settings if you are not using a window system.  This
 +can mean that the META key doesn't work but generates non-ASCII
 +characters instead, depending on how the terminal (or terminal
 +emulator) works.  Use `set-keyboard-coding-system' (or customize
 +keyboard-coding-system) if you prefer META to work (the old default)
 +or if the locale doesn't describe the character set actually generated
 +by the keyboard.  See Info node `Unibyte Mode'.
 +
 +*** The new command `set-file-name-coding-system' (C-x RET F) sets
 +coding system for encoding and decoding file names.  A new menu item
 +(Options->Mule->Set Coding Systems->For File Name) invokes this
 +command.
 +
 +*** The new command `revert-buffer-with-coding-system' (C-x RET r)
 +revisits the current file using a coding system that you specify.
 +
 +*** New command `recode-region' decodes the region again by a specified
 +coding system.
 +
 +*** The new command `recode-file-name' changes the encoding of the name
 +of a file.
 +
 +*** New command `ucs-insert' inserts a character specified by its
 +unicode.
 +
 +*** New command quail-show-key shows what key (or key sequence) to type
 +in the current input method to input a character at point.
 +
 +*** Limited support for character `unification' has been added.
 +Emacs now knows how to translate between different representations of
 +the same characters in various Emacs charsets according to standard
 +Unicode mappings.  This applies mainly to characters in the ISO 8859
 +sets plus some other 8-bit sets, but can be extended.  For instance,
 +translation works amongst the Emacs ...-iso8859-... charsets and the
 +mule-unicode-... ones.
 +
 +By default this translation happens automatically on encoding.
 +Self-inserting characters are translated to make the input conformant
 +with the encoding of the buffer in which it's being used, where
 +possible.
 +
 +You can force a more complete unification with the user option
 +unify-8859-on-decoding-mode.  That maps all the Latin-N character sets
 +into Unicode characters (from the latin-iso8859-1 and
 +mule-unicode-0100-24ff charsets) on decoding.  Note that this mode
 +will often effectively clobber data with an iso-2022 encoding.
 +
 +*** New language environments (set up automatically according to the
 +locale): Belarusian, Bulgarian, Chinese-EUC-TW, Croatian, Esperanto,
 +French, Georgian, Italian, Latin-7, Latvian, Lithuanian, Malayalam,
 +Russian, Russian, Slovenian, Swedish, Tajik, Tamil, UTF-8,Ukrainian,
 +Welsh,Latin-6, Windows-1255.
 +
 +*** New input methods: latin-alt-postfix, latin-postfix, latin-prefix,
 +belarusian, bulgarian-bds, bulgarian-phonetic, chinese-sisheng (for
 +Chinese Pinyin characters), croatian, dutch, georgian, latvian-keyboard,
 +lithuanian-numeric, lithuanian-keyboard, malayalam-inscript, rfc1345,
 +russian-computer, sgml, slovenian, tamil-inscript, ukrainian-computer,
 +ucs, vietnamese-telex, welsh.
 +
 +*** There is support for decoding Greek and Cyrillic characters into
 +either Unicode (the mule-unicode charsets) or the iso-8859 charsets,
 +when possible.  The latter are more space-efficient.
 +  This is controlled by user option utf-fragment-on-decoding.
 +
 +*** Improved Thai support.  A new minor mode `thai-word-mode' (which is
 +automatically activated if you select Thai as a language
 +environment) changes key bindings of most word-oriented commands to
 +versions which recognize Thai words.  Affected commands are
 +    M-f     (forward-word)
 +    M-b     (backward-word)
 +    M-d     (kill-word)
 +    M-DEL   (backward-kill-word)
 +    M-t     (transpose-words)
 +    M-q     (fill-paragraph)
 +
 +*** Indian support has been updated.
 +The in-is13194 coding system is now Unicode-based.  CDAC fonts are
 +assumed.  There is a framework for supporting various Indian scripts,
 +but currently only Devanagari, Malayalam and Tamil are supported.
 +
 +*** The utf-8/16 coding systems have been enhanced.
 +By default, untranslatable utf-8 sequences are simply composed into
 +single quasi-characters.  User option `utf-translate-cjk-mode' (it is
 +turned on by default) arranges to translate many utf-8 CJK character
 +sequences into real Emacs characters in a similar way to the Mule-UCS
 +system.  As this loads a fairly big data on demand, people who are not
 +interested in CJK characters may want to customize it to nil.
 +You can augment/amend the CJK translation via hash tables
 +`ucs-mule-cjk-to-unicode' and `ucs-unicode-to-mule-cjk'.  The utf-8
 +coding system now also encodes characters from most of Emacs's
 +one-dimensional internal charsets, specifically the ISO-8859 ones.
 +The utf-16 coding system is affected similarly.
 +
 +*** A UTF-7 coding system is available in the library `utf-7'.
 +
 +*** A new coding system `euc-tw' has been added for traditional Chinese
 +in CNS encoding; it accepts both Big 5 and CNS as input; on saving,
 +Big 5 is then converted to CNS.
 +
 +*** Many new coding systems are available in the `code-pages' library.
 +These include complete versions of most of those in codepage.el, based
 +on Unicode mappings.  `codepage-setup' is now obsolete and is used
 +only in the MS-DOS port of Emacs.  All coding systems defined in
 +`code-pages' are auto-loaded.
 +
 +*** New variable `utf-translate-cjk-unicode-range' controls which
 +Unicode characters to translate in `utf-translate-cjk-mode'.
 +
 +*** iso-10646-1 (`Unicode') fonts can be used to display any range of
 +characters encodable by the utf-8 coding system.  Just specify the
 +fontset appropriately.
 +
 +** Customize changes:
 +
 +*** Custom themes are collections of customize options.  Create a
 +custom theme with M-x customize-create-theme.  Use M-x load-theme to
 +load and enable a theme, and M-x disable-theme to disable it.  Use M-x
 +enable-theme to enable a disabled theme.
 +
 +*** The commands M-x customize-face and M-x customize-face-other-window
 +now look at the character after point.  If a face or faces are
 +specified for that character, the commands by default customize those
 +faces.
 +
 +*** The face-customization widget has been reworked to be less confusing.
 +In particular, when you enable a face attribute using the corresponding
 +check-box, there's no longer a redundant `*' option in value selection
 +for that attribute; the values you can choose are only those which make
 +sense for the attribute.  When an attribute is de-selected by unchecking
 +its check-box, then the (now ignored, but still present temporarily in
 +case you re-select the attribute) value is hidden.
 +
 +*** When you set or reset a variable's value in a Customize buffer,
 +the previous value becomes the "backup value" of the variable.
 +You can go back to that backup value by selecting "Use Backup Value"
 +under the "[State]" button.
 +
 +** Dired mode:
 +
 +*** In Dired's ! command (dired-do-shell-command), `*' and `?' now
 +control substitution of the file names only when they are surrounded
 +by whitespace.  This means you can now use them as shell wildcards
 +too.  If you want to use just plain `*' as a wildcard, type `*""'; the
 +double quotes make no difference in the shell, but they prevent
 +special treatment in `dired-do-shell-command'.
 +
 +*** The Dired command `dired-goto-file' is now bound to j, not M-g.
 +This is to avoid hiding the global key binding of M-g.
 +
 +*** New faces dired-header, dired-mark, dired-marked, dired-flagged,
 +dired-ignored, dired-directory, dired-symlink, dired-warning
 +introduced for Dired mode instead of font-lock faces.
 +
 +*** New Dired command `dired-compare-directories' marks files
 +with different file attributes in two dired buffers.
 +
 +*** New Dired command `dired-do-touch' (bound to T) changes timestamps
 +of marked files with the value entered in the minibuffer.
 +
 +*** In Dired, the w command now stores the current line's file name
 +into the kill ring.  With a zero prefix arg, it stores the absolute file name.
 +
 +*** In Dired-x, Omitting files is now a minor mode, dired-omit-mode.
 +
 +The mode toggling command is bound to M-o.  A new command
 +dired-mark-omitted, bound to * O, marks omitted files.  The variable
 +dired-omit-files-p is obsoleted, use the mode toggling function
 +instead.
 +
 +*** The variables dired-free-space-program and dired-free-space-args
 +have been renamed to directory-free-space-program and
 +directory-free-space-args, and they now apply whenever Emacs puts a
 +directory listing into a buffer.
 +
 +** Comint changes:
 +
 +*** The new INSIDE_EMACS environment variable is set to "t" in subshells
 +running inside Emacs.  This supersedes the EMACS environment variable,
 +which will be removed in a future Emacs release.  Programs that need
 +to know whether they are started inside Emacs should check INSIDE_EMACS
 +instead of EMACS.
 +
 +*** The comint prompt can now be made read-only, using the new user
 +option `comint-prompt-read-only'.  This is not enabled by default,
 +except in IELM buffers.  The read-only status of IELM prompts can be
 +controlled with the new user option `ielm-prompt-read-only', which
 +overrides `comint-prompt-read-only'.
 +
 +The new commands `comint-kill-whole-line' and `comint-kill-region'
 +support editing comint buffers with read-only prompts.
 +
 +`comint-kill-whole-line' is like `kill-whole-line', but ignores both
 +read-only and field properties.  Hence, it always kill entire
 +lines, including any prompts.
 +
 +`comint-kill-region' is like `kill-region', except that it ignores
 +read-only properties, if it is safe to do so.  This means that if any
 +part of a prompt is deleted, then the entire prompt must be deleted
 +and that all prompts must stay at the beginning of a line.  If this is
 +not the case, then `comint-kill-region' behaves just like
 +`kill-region' if read-only properties are involved: it copies the text
 +to the kill-ring, but does not delete it.
 +
 +*** The new command `comint-insert-previous-argument' in comint-derived
 +modes (shell-mode, etc.) inserts arguments from previous command lines,
 +like bash's `ESC .' binding.  It is bound by default to `C-c .', but
 +otherwise behaves quite similarly to the bash version.
 +
 +*** `comint-use-prompt-regexp-instead-of-fields' has been renamed
 +`comint-use-prompt-regexp'.  The old name has been kept as an alias,
 +but declared obsolete.
 +
 +** M-x Compile changes:
 +
 +*** M-x compile has become more robust and reliable
 +
 +Quite a few more kinds of messages are recognized.  Messages that are
 +recognized as warnings or informational come in orange or green, instead of
 +red.  Informational messages are by default skipped with `next-error'
 +(controlled by `compilation-skip-threshold').
 +
 +Location data is collected on the fly as the *compilation* buffer changes.
 +This means you could modify messages to make them point to different files.
 +This also means you can not go to locations of messages you may have deleted.
 +
 +The variable `compilation-error-regexp-alist' has now become customizable.  If
 +you had added your own regexps to this, you'll probably need to include a
 +leading `^', otherwise they'll match anywhere on a line.  There is now also a
 +`compilation-mode-font-lock-keywords' and it nicely handles all the checks
 +that configure outputs and -o options so you see at a glance where you are.
 +
 +The new file etc/compilation.txt gives examples of each type of message.
 +
 +*** New user option `compilation-environment'.
 +This option allows you to specify environment variables for inferior
 +compilation processes without affecting the environment that all
 +subprocesses inherit.
 +
 +*** New user option `compilation-disable-input'.
 +If this is non-nil, send end-of-file as compilation process input.
 +
 +*** New options `next-error-highlight' and `next-error-highlight-no-select'
 +specify the method of highlighting of the corresponding source line
 +in new face `next-error'.
 +
 +*** A new minor mode `next-error-follow-minor-mode' can be used in
 +compilation-mode, grep-mode, occur-mode, and diff-mode (i.e. all the
 +modes that can use `next-error').  In this mode, cursor motion in the
 +buffer causes automatic display in another window of the corresponding
 +matches, compilation errors, etc.  This minor mode can be toggled with
 +C-c C-f.
 +
 +*** When the left fringe is displayed, an arrow points to current message in
 +the compilation buffer.
 +
 +*** The new variable `compilation-context-lines' controls lines of leading
 +context before the current message.  If nil and the left fringe is displayed,
 +it doesn't scroll the compilation output window.  If there is no left fringe,
 +no arrow is displayed and a value of nil means display the message at the top
 +of the window.
 +
 +** Occur mode changes:
 +
 +*** The new command `multi-occur' is just like `occur', except it can
 +search multiple buffers.  There is also a new command
 +`multi-occur-in-matching-buffers' which allows you to specify the
 +buffers to search by their filenames or buffer names.  Internally,
 +Occur mode has been rewritten, and now uses font-lock, among other
 +changes.
 +
 +*** You can now use next-error (C-x `) and previous-error to advance to
 +the next/previous matching line found by M-x occur.
 +
 +*** In the *Occur* buffer, `o' switches to it in another window, and
 +C-o displays the current line's occurrence in another window without
 +switching to it.
 +
 +** Grep changes:
 +
 +*** Grep has been decoupled from compilation mode setup.
 +
 +There's a new separate package grep.el, with its own submenu and
 +customization group.
 +
 +*** `grep-find' is now also available under the name `find-grep' where
 +people knowing `find-grep-dired' would probably expect it.
 +
 +*** New commands `lgrep' (local grep) and `rgrep' (recursive grep) are
 +more user-friendly versions of `grep' and `grep-find', which prompt
 +separately for the regular expression to match, the files to search,
 +and the base directory for the search.  Case sensitivity of the
 +search is controlled by the current value of `case-fold-search'.
 +
 +These commands build the shell commands based on the new variables
 +`grep-template' (lgrep) and `grep-find-template' (rgrep).
 +
 +The files to search can use aliases defined in `grep-files-aliases'.
 +
 +Subdirectories listed in `grep-find-ignored-directories' such as those
 +typically used by various version control systems, like CVS and arch,
 +are automatically skipped by `rgrep'.
 +
 +*** The grep commands provide highlighting support.
 +
 +Hits are fontified in green, and hits in binary files in orange.  Grep buffers
 +can be saved and automatically revisited.
 +
 +*** New option `grep-highlight-matches' highlights matches in *grep*
 +buffer.  It uses a special feature of some grep programs which accept
 +--color option to output markers around matches.  When going to the next
 +match with `next-error' the exact match is highlighted in the source
 +buffer.  Otherwise, if `grep-highlight-matches' is nil, the whole
 +source line is highlighted.
 +
 +*** New key bindings in grep output window:
 +SPC and DEL scrolls window up and down.  C-n and C-p moves to next and
 +previous match in the grep window.  RET jumps to the source line of
 +the current match.  `n' and `p' shows next and previous match in
 +other window, but does not switch buffer.  `{' and `}' jumps to the
 +previous or next file in the grep output.  TAB also jumps to the next
 +file.
 +
 +*** M-x grep now tries to avoid appending `/dev/null' to the command line
 +by using GNU grep `-H' option instead.  M-x grep automatically
 +detects whether this is possible or not the first time it is invoked.
 +When `-H' is used, the grep command line supplied by the user is passed
 +unchanged to the system to execute, which allows more complicated
 +command lines to be used than was possible before.
 +
 +*** The new variables `grep-window-height' and `grep-scroll-output' override
 +the corresponding compilation mode settings, for grep commands only.
 +
 +** Cursor display changes:
 +
 +*** Emacs can produce an underscore-like (horizontal bar) cursor.
 +The underscore cursor is set by putting `(cursor-type . hbar)' in
 +default-frame-alist.  It supports variable heights, like the `bar'
 +cursor does.
 +
 +*** The variable `cursor-in-non-selected-windows' can now be set to any
 +of the recognized cursor types.
 +
 +*** Display of hollow cursors now obeys the buffer-local value (if any)
 +of `cursor-in-non-selected-windows' in the buffer that the cursor
 +appears in.
 +
 +*** On text terminals, the variable `visible-cursor' controls whether Emacs
 +uses the "very visible" cursor (the default) or the normal cursor.
 +
 +*** The X resource cursorBlink can be used to turn off cursor blinking.
 +
 +*** On X, MS Windows, and Mac OS, the blinking cursor's "off" state is
 +now controlled by the variable `blink-cursor-alist'.
 +
 +** X Windows Support:
 +
 +*** Emacs now supports drag and drop for X.  Dropping a file on a window
 +opens it, dropping text inserts the text.  Dropping a file on a dired
 +buffer copies or moves the file to that directory.
 +
 +*** Under X11, it is possible to swap Alt and Meta (and Super and Hyper).
 +The new variables `x-alt-keysym', `x-hyper-keysym', `x-meta-keysym',
 +and `x-super-keysym' can be used to choose which keysyms Emacs should
 +use for the modifiers.  For example, the following two lines swap
 +Meta and Alt:
 +    (setq x-alt-keysym 'meta)
 +    (setq x-meta-keysym 'alt)
 +
 +*** The X resource useXIM can be used to turn off use of XIM, which can
 +speed up Emacs with slow networking to the X server.
 +
 +If the configure option `--without-xim' was used to turn off use of
 +XIM by default, the X resource useXIM can be used to turn it on.
 +
 +*** The new variable `x-select-request-type' controls how Emacs
 +requests X selection.  The default value is nil, which means that
 +Emacs requests X selection with types COMPOUND_TEXT and UTF8_STRING,
 +and use the more appropriately result.
 +
 +*** The scrollbar under LessTif or Motif has a smoother drag-scrolling.
 +On the other hand, the size of the thumb does not represent the actual
 +amount of text shown any more (only a crude approximation of it).
 +
 +** Xterm support:
 +
 +*** If you enable Xterm Mouse mode, Emacs will respond to mouse clicks
 +on the mode line, header line and display margin, when run in an xterm.
 +
 +*** Improved key bindings support when running in an xterm.
 +When Emacs is running in an xterm more key bindings are available.
 +The following should work:
 +{C,S,C-S,A}-{right,left,up,down,prior,next,delete,insert,F1-12}.
 +These key bindings work on xterm from X.org 6.8 (and later versions),
 +they might not work on some older versions of xterm, or on some
 +proprietary versions.
 +The various keys generated by xterm when the "modifyOtherKeys"
 +resource is set are also supported.
 +
 +** Character terminal color support changes:
 +
 +*** The new command-line option --color=MODE lets you specify a standard
 +mode for a tty color support.  It is meant to be used on character
 +terminals whose capabilities are not set correctly in the terminal
 +database, or with terminal emulators which support colors, but don't
 +set the TERM environment variable to a name of a color-capable
 +terminal.  "emacs --color" uses the same color commands as GNU `ls'
 +when invoked with "ls --color", so if your terminal can support colors
 +in "ls --color", it will support "emacs --color" as well.  See the
 +user manual for the possible values of the MODE parameter.
 +
 +*** Emacs now supports several character terminals which provide more
 +than 8 colors.  For example, for `xterm', 16-color, 88-color, and
 +256-color modes are supported.  Emacs automatically notes at startup
 +the extended number of colors, and defines the appropriate entries for
 +all of these colors.
 +
 +*** Emacs now uses the full range of available colors for the default
 +faces when running on a color terminal, including 16-, 88-, and
 +256-color xterms.  This means that when you run "emacs -nw" on an
 +88-color or 256-color xterm, you will see essentially the same face
 +colors as on X.
 +
 +*** There's a new support for colors on `rxvt' terminal emulator.
 +
 +** ebnf2ps changes:
 +
 +*** New option `ebnf-arrow-extra-width' which specify extra width for arrow
 +shape drawing.
 +The extra width is used to avoid that the arrowhead and the terminal border
 +overlap.  It depends on `ebnf-arrow-shape' and `ebnf-line-width'.
 +
 +*** New option `ebnf-arrow-scale' which specify the arrow scale.
 +Values lower than 1.0, shrink the arrow.
 +Values greater than 1.0, expand the arrow.
 +\f
 +* New Modes and Packages in Emacs 22.1
 +
 +** CUA mode is now part of the Emacs distribution.
 +
 +The new cua package provides CUA-like keybindings using C-x for
 +cut (kill), C-c for copy, C-v for paste (yank), and C-z for undo.
 +With cua, the region can be set and extended using shifted movement
 +keys (like pc-selection-mode) and typed text replaces the active
 +region (like delete-selection-mode).  Do not enable these modes with
 +cua-mode.  Customize the variable `cua-mode' to enable cua.
 +
 +The cua-selection-mode enables the CUA keybindings for the region but
 +does not change the bindings for C-z/C-x/C-c/C-v. It can be used as a
 +replacement for pc-selection-mode.
 +
 +In addition, cua provides unified rectangle support with visible
 +rectangle highlighting: Use C-return to start a rectangle, extend it
 +using the movement commands (or mouse-3), and cut or copy it using C-x
 +or C-c (using C-w and M-w also works).
 +
 +Use M-o and M-c to `open' or `close' the rectangle, use M-b or M-f, to
 +fill it with blanks or another character, use M-u or M-l to upcase or
 +downcase the rectangle, use M-i to increment the numbers in the
 +rectangle, use M-n to fill the rectangle with a numeric sequence (such
 +as 10 20 30...), use M-r to replace a regexp in the rectangle, and use
 +M-' or M-/ to restrict command on the rectangle to a subset of the
 +rows.  See the commentary in cua-base.el for more rectangle commands.
 +
 +Cua also provides unified support for registers:  Use a numeric
 +prefix argument between 0 and 9, i.e. M-0 .. M-9, for C-x, C-c, and
 +C-v to cut or copy into register 0-9, or paste from register 0-9.
 +
 +The last text deleted (not killed) is automatically stored in
 +register 0.  This includes text deleted by typing text.
 +
 +Finally, cua provides a global mark which is set using S-C-space.
 +When the global mark is active, any text which is cut or copied is
 +automatically inserted at the global mark position.  See the
 +commentary in cua-base.el for more global mark related commands.
 +
 +The features of cua also works with the standard Emacs bindings for
 +kill, copy, yank, and undo.  If you want to use cua mode, but don't
 +want the C-x, C-c, C-v, and C-z bindings, you can customize the
 +`cua-enable-cua-keys' variable.
 +
 +Note: This version of cua mode is not backwards compatible with older
 +versions of cua.el and cua-mode.el.  To ensure proper operation, you
 +must remove older versions of cua.el or cua-mode.el as well as the
 +loading and customization of those packages from the .emacs file.
 +
 +** Tramp is now part of the distribution.
 +
 +This package is similar to Ange-FTP: it allows you to edit remote
 +files.  But whereas Ange-FTP uses FTP to access the remote host,
 +Tramp uses a shell connection.  The shell connection is always used
 +for filename completion and directory listings and suchlike, but for
 +the actual file transfer, you can choose between the so-called
 +`inline' methods (which transfer the files through the shell
 +connection using base64 or uu encoding) and the `out-of-band' methods
 +(which invoke an external copying program such as `rcp' or `scp' or
 +`rsync' to do the copying).
 +
 +Shell connections can be acquired via `rsh', `ssh', `telnet' and also
 +`su' and `sudo'.  Ange-FTP is still supported via the `ftp' method.
 +
 +If you want to disable Tramp you should set
 +
 +  (setq tramp-default-method "ftp")
 +
 +Removing Tramp, and re-enabling Ange-FTP, can be achieved by M-x
 +tramp-unload-tramp.
 +
 +** The image-dired.el package allows you to easily view, tag and in
 +other ways manipulate image files and their thumbnails, using dired as
 +the main interface.  Image-Dired provides functionality to generate
 +simple image galleries.
 +
 +** Image files are normally visited in Image mode, which lets you toggle
 +between viewing the image and viewing the text using C-c C-c.
 +
 +** The new python.el package is used to edit Python and Jython programs.
 +
 +** The URL package (which had been part of W3) is now part of Emacs.
 +
 +** Calc is now part of the Emacs distribution.
 +
 +Calc is an advanced desk calculator and mathematical tool written in
 +Emacs Lisp.  The prefix for Calc has been changed to `C-x *' and Calc
 +can be started with `C-x * *'.  The Calc manual is separate from the
 +Emacs manual; within Emacs, type "C-h i m calc RET" to read the
 +manual.  A reference card is available in `etc/calccard.tex' and
 +`etc/calccard.ps'.
 +
 +** Org mode is now part of the Emacs distribution
 +
 +Org mode is a mode for keeping notes, maintaining ToDo lists, and
 +doing project planning with a fast and effective plain-text system.
 +It also contains a plain-text table editor with spreadsheet-like
 +capabilities.
 +
 +The Org mode table editor can be integrated into any major mode by
 +activating the minor mode, Orgtbl mode.
 +
 +The documentation for org-mode is in a separate manual; within Emacs,
 +type "C-h i m org RET" to read that manual.  A reference card is
 +available in `etc/orgcard.tex' and `etc/orgcard.ps'.
 +
 +** ERC is now part of the Emacs distribution.
 +
 +ERC is a powerful, modular, and extensible IRC client for Emacs.
 +
 +To see what modules are available, type
 +M-x customize-option erc-modules RET.
 +
 +To start an IRC session with ERC, type M-x erc, and follow the prompts
 +for server, port, and nick.
 +
 +** Rcirc is now part of the Emacs distribution.
 +
 +Rcirc is an Internet relay chat (IRC) client.  It supports
 +simultaneous connections to multiple IRC servers.  Each discussion
 +takes place in its own buffer.  For each connection you can join
 +several channels (many-to-many) and participate in private
 +(one-to-one) chats.  Both channel and private chats are contained in
 +separate buffers.
 +
 +To start an IRC session using the default parameters, type M-x irc.
 +If you type C-u M-x irc, it prompts you for the server, nick, port and
 +startup channel parameters before connecting.
 +
 +** The new package ibuffer provides a powerful, completely
 +customizable replacement for buff-menu.el.
 +
 +** Newsticker is now part of the Emacs distribution.
 +
 +Newsticker asynchronously retrieves headlines (RSS) from a list of news
 +sites, prepares these headlines for reading, and allows for loading the
 +corresponding articles in a web browser.  Its documentation is in a
 +separate manual.
 +
 +** The wdired.el package allows you to use normal editing commands on Dired
 +buffers to change filenames, permissions, etc...
 +
 +** Ido mode is now part of the Emacs distribution.
 +
 +The ido (interactively do) package is an extension of the iswitchb
 +package to do interactive opening of files and directories in addition
 +to interactive buffer switching.  Ido is a superset of iswitchb (with
 +a few exceptions), so don't enable both packages.
 +
 +** The new global minor mode `file-name-shadow-mode' modifies the way
 +filenames being entered by the user in the minibuffer are displayed, so
 +that it's clear when part of the entered filename will be ignored due to
 +Emacs' filename parsing rules.  The ignored portion can be made dim,
 +invisible, or otherwise less visually noticeable.  The display method can
 +be displayed by customizing the variable `file-name-shadow-properties'.
 +
 +** Emacs' keyboard macro facilities have been enhanced by the new
 +kmacro package.
 +
 +Keyboard macros are now defined and executed via the F3 and F4 keys:
 +F3 starts a macro, F4 ends the macro, and pressing F4 again executes
 +the last macro.  While defining the macro, F3 inserts a counter value
 +which automatically increments every time the macro is executed.
 +
 +There is now a keyboard macro ring which stores the most recently
 +defined macros.
 +
 +The C-x C-k sequence is now a prefix for the kmacro keymap which
 +defines bindings for moving through the keyboard macro ring,
 +C-x C-k C-p and C-x C-k C-n, editing the last macro C-x C-k C-e,
 +manipulating the macro counter and format via C-x C-k C-c,
 +C-x C-k C-a, and C-x C-k C-f.  See the commentary in kmacro.el
 +for more commands.
 +
 +The original macro bindings C-x (, C-x ), and C-x e are still
 +available, but they now interface to the keyboard macro ring too.
 +
 +The C-x e command now automatically terminates the current macro
 +before calling it, if used while defining a macro.
 +
 +In addition, when ending or calling a macro with C-x e, the macro can
 +be repeated immediately by typing just the `e'.  You can customize
 +this behavior via the variables kmacro-call-repeat-key and
 +kmacro-call-repeat-with-arg.
 +
 +Keyboard macros can now be debugged and edited interactively.
 +C-x C-k SPC steps through the last keyboard macro one key sequence
 +at a time, prompting for the actions to take.
 +
 +** The new keypad setup package provides several common bindings for
 +the numeric keypad which is available on most keyboards.  The numeric
 +keypad typically has the digits 0 to 9, a decimal point, keys marked
 ++, -, /, and *, an Enter key, and a NumLock toggle key.  The keypad
 +package only controls the use of the digit and decimal keys.
 +
 +By customizing the variables `keypad-setup', `keypad-shifted-setup',
 +`keypad-numlock-setup', and `keypad-numlock-shifted-setup', or by
 +using the function `keypad-setup', you can rebind all digit keys and
 +the decimal key of the keypad in one step for each of the four
 +possible combinations of the Shift key state (not pressed/pressed) and
 +the NumLock toggle state (off/on).
 +
 +The choices for the keypad keys in each of the above states are:
 +`Plain numeric keypad' where the keys generates plain digits,
 +`Numeric keypad with decimal key' where the character produced by the
 +decimal key can be customized individually (for internationalization),
 +`Numeric Prefix Arg' where the keypad keys produce numeric prefix args
 +for Emacs editing commands, `Cursor keys' and `Shifted Cursor keys'
 +where the keys work like (shifted) arrow keys, home/end, etc., and
 +`Unspecified/User-defined' where the keypad keys (kp-0, kp-1, etc.)
 +are left unspecified and can be bound individually through the global
 +or local keymaps.
 +
 +** The printing package is now part of the Emacs distribution.
 +
 +If you enable the printing package by including (require 'printing) in
 +the .emacs file, the normal Print item on the File menu is replaced
 +with a Print sub-menu which allows you to preview output through
 +ghostview, use ghostscript to print (if you don't have a PostScript
 +printer) or send directly to printer a PostScript code generated by
 +`ps-print' package.  Use M-x pr-help for more information.
 +
 +** The new package longlines.el provides a minor mode for editing text
 +files composed of long lines, based on the `use-hard-newlines'
 +mechanism.  The long lines are broken up by inserting soft newlines,
 +which are automatically removed when saving the file to disk or
 +copying into the kill ring, clipboard, etc.  By default, Longlines
 +mode inserts soft newlines automatically during editing, a behavior
 +referred to as "soft word wrap" in other text editors.  This is
 +similar to Refill mode, but more reliable.  To turn the word wrap
 +feature off, set `longlines-auto-wrap' to nil.
 +
 +** SES mode (ses-mode) is a new major mode for creating and editing
 +spreadsheet files.  Besides the usual Emacs features (intuitive command
 +letters, undo, cell formulas in Lisp, plaintext files, etc.) it also offers
 +viral immunity and import/export of tab-separated values.
 +
 +** The new package table.el implements editable, WYSIWYG, embedded
 +`text tables' in Emacs buffers.  It simulates the effect of putting
 +these tables in a special major mode.  The package emulates WYSIWYG
 +table editing available in modern word processors.  The package also
 +can generate a table source in typesetting and markup languages such
 +as latex and html from the visually laid out text table.
 +
 +** Filesets are collections of files.  You can define a fileset in
 +various ways, such as based on a directory tree or based on
 +program files that include other program files.
 +
 +Once you have defined a fileset, you can perform various operations on
 +all the files in it, such as visiting them or searching and replacing
 +in them.
 +
 +** The minor mode Reveal mode makes text visible on the fly as you
 +move your cursor into hidden regions of the buffer.
 +It should work with any package that uses overlays to hide parts
 +of a buffer, such as outline-minor-mode, hs-minor-mode, hide-ifdef-mode, ...
 +
 +There is also Global Reveal mode which affects all buffers.
 +
 +** New minor mode, Visible mode, toggles invisibility in the current buffer.
 +When enabled, it makes all invisible text visible.  When disabled, it
 +restores the previous value of `buffer-invisibility-spec'.
 +
 +** The new package flymake.el does on-the-fly syntax checking of program
 +source files.  See the Flymake's Info manual for more details.
 +
 +** savehist saves minibuffer histories between sessions.
 +To use this feature, turn on savehist-mode in your `.emacs' file.
 +
 +** The ruler-mode.el library provides a minor mode for displaying an
 +"active" ruler in the header line.  You can use the mouse to visually
 +change the `fill-column', `window-margins' and `tab-stop-list'
 +settings.
 +
 +** The file t-mouse.el is now part of Emacs and provides access to mouse
 +events from the console.  It still requires gpm to work but has been updated
 +for Emacs 22.  In particular, the mode-line is now position sensitive.
 +
 +** The new package scroll-lock.el provides the Scroll Lock minor mode
 +for pager-like scrolling.  Keys which normally move point by line or
 +paragraph will scroll the buffer by the respective amount of lines
 +instead and point will be kept vertically fixed relative to window
 +boundaries during scrolling.
 +
 +** The new global minor mode `size-indication-mode' (off by default)
 +shows the size of accessible part of the buffer on the mode line.
 +
 +** The new package conf-mode.el handles thousands of configuration files, with
 +varying syntaxes for comments (;, #, //, /* */ or !), assignment (var = value,
 +var : value, var value or keyword var value) and sections ([section] or
 +section { }).  Many files under /etc/, or with suffixes like .cf through
 +.config, .properties (Java), .desktop (KDE/Gnome), .ini and many others are
 +recognized.
 +
 +** GDB-Script-mode is used for files like .gdbinit.
 +
 +** The new package dns-mode.el adds syntax highlighting of DNS master files.
 +It is a modern replacement for zone-mode.el, which is now obsolete.
 +
 +** `cfengine-mode' is a major mode for editing GNU Cfengine
 +configuration files.
 +
 +** The TCL package tcl-mode.el was replaced by tcl.el.
 +This was actually done in Emacs-21.1, and was not documented.
 +\f
 +* Changes in Specialized Modes and Packages in Emacs 22.1:
 +
 +** Changes in Dired
 +
 +*** Bindings for Image-Dired added.
 +Several new keybindings, all starting with the C-t prefix, have been
 +added to Dired.  They are all bound to commands in Image-Dired.  As a
 +starting point, mark some image files in a dired buffer and do C-t d
 +to display thumbnails of them in a separate buffer.
 +
 +** Info mode changes
 +
 +*** Images in Info pages are supported.
 +
 +Info pages show embedded images, in Emacs frames with image support.
 +Info documentation that includes images, processed with makeinfo
 +version 4.7 or newer, compiles to Info pages with embedded images.
 +
 +*** `Info-index' offers completion.
 +
 +*** http and ftp links in Info are now operational: they look like cross
 +references and following them calls `browse-url'.
 +
 +*** isearch in Info uses Info-search and searches through multiple nodes.
 +
 +Before leaving the initial Info node isearch fails once with the error
 +message [initial node], and with subsequent C-s/C-r continues through
 +other nodes.  When isearch fails for the rest of the manual, it wraps
 +around the whole manual to the top/final node.  The user option
 +`Info-isearch-search' controls whether to use Info-search for isearch,
 +or the default isearch search function that wraps around the current
 +Info node.
 +
 +*** New search commands: `Info-search-case-sensitively' (bound to S),
 +`Info-search-backward', and `Info-search-next' which repeats the last
 +search without prompting for a new search string.
 +
 +*** New command `info-apropos' searches the indices of the known
 +Info files on your system for a string, and builds a menu of the
 +possible matches.
 +
 +*** New command `Info-history-forward' (bound to r and new toolbar icon)
 +moves forward in history to the node you returned from after using
 +`Info-history-back' (renamed from `Info-last').
 +
 +*** New command `Info-history' (bound to L) displays a menu of visited nodes.
 +
 +*** New command `Info-toc' (bound to T) creates a node with table of contents
 +from the tree structure of menus of the current Info file.
 +
 +*** New command `Info-copy-current-node-name' (bound to w) copies
 +the current Info node name into the kill ring.  With a zero prefix
 +arg, puts the node name inside the `info' function call.
 +
 +*** New face `info-xref-visited' distinguishes visited nodes from unvisited
 +and a new option `Info-fontify-visited-nodes' to control this.
 +
 +*** A numeric prefix argument of `info' selects an Info buffer
 +with the number appended to the `*info*' buffer name (e.g. "*info*<2>").
 +
 +*** Info now hides node names in menus and cross references by default.
 +
 +If you prefer the old behavior, you can set the new user option
 +`Info-hide-note-references' to nil.
 +
 +*** The default value for `Info-scroll-prefer-subnodes' is now nil.
 +
 +** Emacs server changes
 +
 +*** You can have several Emacs servers on the same machine.
 +
 +      % emacs --eval '(setq server-name "foo")' -f server-start &
 +      % emacs --eval '(setq server-name "bar")' -f server-start &
 +      % emacsclient -s foo file1
 +      % emacsclient -s bar file2
 +
 +*** The `emacsclient' command understands the options `--eval' and
 +`--display' which tell Emacs respectively to evaluate the given Lisp
 +expression and to use the given display when visiting files.
 +
 +*** User option `server-mode' can be used to start a server process.
 +
 +** Locate changes
 +
 +*** By default, reverting the *Locate* buffer now just runs the last
 +`locate' command back over again without offering to update the locate
 +database (which normally only works if you have root privileges).  If
 +you prefer the old behavior, set the new customizable option
 +`locate-update-when-revert' to t.
 +
 +** Desktop package
 +
 +*** Desktop saving is now a minor mode, `desktop-save-mode'.
 +
 +*** The variable `desktop-enable' is obsolete.
 +
 +Customize `desktop-save-mode' to enable desktop saving.
 +
 +*** Buffers are saved in the desktop file in the same order as that in the
 +buffer list.
 +
 +*** The desktop package can be customized to restore only some buffers
 +immediately, remaining buffers are restored lazily (when Emacs is
 +idle).
 +
 +*** New command line option --no-desktop
 +
 +*** New commands:
 +  - desktop-revert reverts to the last loaded desktop.
 +  - desktop-change-dir kills current desktop and loads a new.
 +  - desktop-save-in-desktop-dir saves desktop in the directory from which
 +    it was loaded.
 +  - desktop-lazy-complete runs the desktop load to completion.
 +  - desktop-lazy-abort aborts lazy loading of the desktop.
 +
 +*** New customizable variables:
 +  - desktop-save. Determines whether the desktop should be saved when it is
 +    killed.
 +  - desktop-file-name-format. Format in which desktop file names should be saved.
 +  - desktop-path. List of directories in which to lookup the desktop file.
 +  - desktop-locals-to-save. List of local variables to save.
 +  - desktop-globals-to-clear. List of global variables that `desktop-clear' will clear.
 +  - desktop-clear-preserve-buffers-regexp. Regexp identifying buffers that `desktop-clear'
 +    should not delete.
 +  - desktop-restore-eager. Number of buffers to restore immediately. Remaining buffers are
 +    restored lazily (when Emacs is idle).
 +  - desktop-lazy-verbose. Verbose reporting of lazily created buffers.
 +  - desktop-lazy-idle-delay. Idle delay before starting to create buffers.
 +
 +*** New hooks:
 +  - desktop-after-read-hook run after a desktop is loaded.
 +  - desktop-no-desktop-file-hook run when no desktop file is found.
 +
 +** Recentf changes
 +
 +The recent file list is now automatically cleaned up when recentf mode is
 +enabled.  The new option `recentf-auto-cleanup' controls when to do
 +automatic cleanup.
 +
 +The ten most recent files can be quickly opened by using the shortcut
 +keys 1 to 9, and 0, when the recent list is displayed in a buffer via
 +the `recentf-open-files', or `recentf-open-more-files' commands.
 +
 +The `recentf-keep' option replaces `recentf-keep-non-readable-files-p'
 +and provides a more general mechanism to customize which file names to
 +keep in the recent list.
 +
 +With the more advanced option `recentf-filename-handlers', you can
 +specify functions that successively transform recent file names.  For
 +example, if set to `file-truename' plus `abbreviate-file-name', the
 +same file will not be in the recent list with different symbolic
 +links, and the file name will be abbreviated.
 +
 +To follow naming convention, `recentf-menu-append-commands-flag'
 +replaces the misnamed option `recentf-menu-append-commands-p'.  The
 +old name remains available as alias, but has been marked obsolete.
 +
 +** Auto-Revert changes
 +
 +*** You can now use Auto Revert mode to `tail' a file.
 +
 +If point is at the end of a file buffer before reverting, Auto Revert
 +mode keeps it at the end after reverting.  Similarly if point is
 +displayed at the end of a file buffer in any window, it stays at the end
 +of the buffer in that window.  This allows you to "tail" a file: just
 +put point at the end of the buffer and it stays there.  This rule
 +applies to file buffers.  For non-file buffers, the behavior can be mode
 +dependent.
 +
 +If you are sure that the file will only change by growing at the end,
 +then you can tail the file more efficiently by using the new minor
 +mode Auto Revert Tail mode.  The function `auto-revert-tail-mode'
 +toggles this mode.
 +
 +*** Auto Revert mode is now more careful to avoid excessive reverts and
 +other potential problems when deciding which non-file buffers to
 +revert.  This matters especially if Global Auto Revert mode is enabled
 +and `global-auto-revert-non-file-buffers' is non-nil.  Auto Revert
 +mode only reverts a non-file buffer if the buffer has a non-nil
 +`revert-buffer-function' and a non-nil `buffer-stale-function', which
 +decides whether the buffer should be reverted.  Currently, this means
 +that auto reverting works for Dired buffers (although this may not
 +work properly on all operating systems) and for the Buffer Menu.
 +
 +*** If the new user option `auto-revert-check-vc-info' is non-nil, Auto
 +Revert mode reliably updates version control info (such as the version
 +control number in the mode line), in all version controlled buffers in
 +which it is active.  If the option is nil, the default, then this info
 +only gets updated whenever the buffer gets reverted.
 +
 +** Changes in Shell Mode
 +
 +*** Shell output normally scrolls so that the input line is at the
 +bottom of the window -- thus showing the maximum possible text.  (This
 +is similar to the way sequential output to a terminal works.)
 +
 +** Changes in Hi Lock
 +
 +*** hi-lock-mode now only affects a single buffer, and a new function
 +`global-hi-lock-mode' enables Hi Lock in all buffers.  By default, if
 +hi-lock-mode is used in what appears to be the initialization file, a
 +warning message suggests to use global-hi-lock-mode instead.  However,
 +if the new variable `hi-lock-archaic-interface-deduce' is non-nil,
 +using hi-lock-mode in an initialization file will turn on Hi Lock in all
 +buffers and no warning will be issued (for compatibility with the
 +behavior in older versions of Emacs).
 +
 +** Changes in Allout
 +
 +*** Topic cryptography added, enabling easy gpg topic encryption and
 +decryption.  Per-topic basis enables interspersing encrypted-text and
 +clear-text within a single file to your heart's content, using symmetric
 +and/or public key modes.  Time-limited key caching, user-provided
 +symmetric key hinting and consistency verification, auto-encryption of
 +pending topics on save, and more, make it easy to use encryption in
 +powerful ways.  Encryption behavior customization is collected in the
 +allout-encryption customization group.
 +
 +*** Default command prefix was changed to "\C-c " (control-c space), to
 +avoid intruding on user's keybinding space.  Customize the
 +`allout-command-prefix' variable to your preference.
 +
 +*** Some previously rough topic-header format edge cases are reconciled.
 +Level 1 topics use the mode's comment format, and lines starting with the
 +asterisk - for instance, the comment close of some languages (eg, c's "*/"
 +or mathematica's "*)") - at the beginning of line are no longer are
 +interpreted as level 1 topics in those modes.
 +
 +*** Many or most commonly occurring "accidental" topics are disqualified.
 +Text in item bodies that looks like a low-depth topic is no longer mistaken
 +for one unless its first offspring (or that of its next sibling with
 +offspring) is only one level deeper.
 +
 +For example, pasting some text with a bunch of leading asterisks into a
 +topic that's followed by a level 3 or deeper topic will not cause the
 +pasted text to be mistaken for outline structure.
 +
 +The same constraint is applied to any level 2 or 3 topics.
 +
 +This settles an old issue where typed or pasted text needed to be carefully
 +reviewed, and sometimes doctored, to avoid accidentally disrupting the
 +outline structure.  Now that should be generally unnecessary, as the most
 +prone-to-occur accidents are disqualified.
 +
 +*** Allout now refuses to create "containment discontinuities", where a
 +topic is shifted deeper than the offspring-depth of its container.  On the
 +other hand, allout now operates gracefully with existing containment
 +discontinuities, revealing excessively contained topics rather than either
 +leaving them hidden or raising an error.
 +
 +*** Navigation within an item is easier.  Repeated beginning-of-line and
 +end-of-line key commands (usually, ^A and ^E) cycle through the
 +beginning/end-of-line and then beginning/end of topic, etc.  See new
 +customization vars `allout-beginning-of-line-cycles' and
 +`allout-end-of-line-cycles'.
 +
 +*** New or revised allout-mode activity hooks enable creation of
 +cooperative enhancements to allout mode without changes to the mode,
 +itself.
 +
 +See `allout-exposure-change-hook', `allout-structure-added-hook',
 +`allout-structure-deleted-hook', and `allout-structure-shifted-hook'.
 +
 +`allout-exposure-change-hook' replaces the existing
 +`allout-view-change-hook', which is being deprecated.  Both are still
 +invoked, but `allout-view-change-hook' will eventually be ignored.
 +`allout-exposure-change-hook' is called with explicit arguments detailing
 +the specifics of each change (as are the other new hooks), making it easier
 +to use than the old version.
 +
 +There is a new mode deactivation hook, `allout-mode-deactivate-hook', for
 +coordinating with deactivation of allout-mode.  Both that and the mode
 +activation hook, `allout-mode-hook' are now run after the `allout-mode'
 +variable is changed, rather than before.
 +
 +*** Allout now uses text overlay's `invisible' property for concealed text,
 +instead of selective-display.  This simplifies the code, in particular
 +avoiding the need for kludges for isearch dynamic-display, discretionary
 +handling of edits of concealed text, undo concerns, etc.
 +
 +*** There are many other fixes and refinements, including:
 +
 +   - repaired inhibition of inadvertent edits to concealed text, without
 +     inhibiting undo; we now reveal undo changes within concealed text.
 +   - auto-fill-mode is now left inactive when allout-mode starts, if it
 +     already was inactive.  also, `allout-inhibit-auto-fill' custom
 +     configuration variable makes it easy to disable auto fill in allout
 +     outlines in general or on a per-buffer basis.
 +   - allout now tolerates fielded text in outlines without disruption.
 +   - hot-spot navigation now is modularized with a new function,
 +     `allout-hotspot-key-handler', enabling easier use and enhancement of
 +     the functionality in allout addons.
 +   - repaired retention of topic body hanging indent upon topic depth shifts
 +   - bulleting variation is simpler and more accommodating, both in the
 +     default behavior and in ability to vary when creating new topics
 +   - mode deactivation now does cleans up effectively, more properly
 +     restoring affected variables and hooks to former state, removing
 +     overlays, etc.  see `allout-add-resumptions' and
 +     `allout-do-resumptions', which replace the old `allout-resumptions'.
 +   - included a few unit-tests for interior functionality.  developers can
 +     have them automatically run at the end of module load by customizing
 +     the option `allout-run-unit-tests-on-load'.
 +   - many, many other, more minor tweaks, fixes, and refinements.
 +   - version number incremented to 2.2
 +
 +** Hideshow mode changes
 +
 +*** New variable `hs-set-up-overlay' allows customization of the overlay
 +used to effect hiding for hideshow minor mode.  Integration with isearch
 +handles the overlay property `display' specially, preserving it during
 +temporary overlay showing in the course of an isearch operation.
 +
 +*** New variable `hs-allow-nesting' non-nil means that hiding a block does
 +not discard the hidden state of any "internal" blocks; when the parent
 +block is later shown, the internal blocks remain hidden.  Default is nil.
 +
 +** FFAP changes
 +
 +*** New ffap commands and keybindings:
 +
 +C-x C-r (`ffap-read-only'),
 +C-x C-v (`ffap-alternate-file'), C-x C-d (`ffap-list-directory'),
 +C-x 4 r (`ffap-read-only-other-window'), C-x 4 d (`ffap-dired-other-window'),
 +C-x 5 r (`ffap-read-only-other-frame'), C-x 5 d (`ffap-dired-other-frame').
 +
 +*** FFAP accepts wildcards in a file name by default.
 +
 +C-x C-f passes the file name to `find-file' with non-nil WILDCARDS
 +argument, which visits multiple files, and C-x d passes it to `dired'.
 +
 +** Changes in Skeleton
 +
 +*** In skeleton.el, `-' marks the `skeleton-point' without interregion interaction.
 +
 +`@' has reverted to only setting `skeleton-positions' and no longer
 +sets `skeleton-point'.  Skeletons which used @ to mark
 +`skeleton-point' independent of `_' should now use `-' instead.  The
 +updated `skeleton-insert' docstring explains these new features along
 +with other details of skeleton construction.
 +
 +*** The variables `skeleton-transformation', `skeleton-filter', and
 +`skeleton-pair-filter' have been renamed to
 +`skeleton-transformation-function', `skeleton-filter-function', and
 +`skeleton-pair-filter-function'.  The old names are still available
 +as aliases.
 +
 +** HTML/SGML changes
 +
 +*** Emacs now tries to set up buffer coding systems for HTML/XML files
 +automatically.
 +
 +*** SGML mode has indentation and supports XML syntax.
 +The new variable `sgml-xml-mode' tells SGML mode to use XML syntax.
 +When this option is enabled, SGML tags are inserted in XML style,
 +i.e., there is always a closing tag.
 +By default, its setting is inferred on a buffer-by-buffer basis
 +from the file name or buffer contents.
 +
 +*** The variable `sgml-transformation' has been renamed to
 +`sgml-transformation-function'.  The old name is still available as
 +alias.
 +
 +*** `xml-mode' is now an alias for `sgml-mode', which has XML support.
 +
 +** TeX modes
 +
 +*** New major mode Doctex mode, for *.dtx files.
 +
 +*** C-c C-c prompts for a command to run, and tries to offer a good default.
 +
 +*** The user option `tex-start-options-string' has been replaced
 +by two new user options: `tex-start-options', which should hold
 +command-line options to feed to TeX, and `tex-start-commands' which should hold
 +TeX commands to use at startup.
 +
 +*** verbatim environments are now highlighted in courier by font-lock
 +and super/sub-scripts are made into super/sub-scripts.
 +
 +** RefTeX mode changes
 +
 +*** Changes to RefTeX's table of contents
 +
 +The new command keys "<" and ">" in the TOC buffer promote/demote the
 +section at point or all sections in the current region, with full
 +support for multifile documents.
 +
 +The new command `reftex-toc-recenter' (`C-c -') shows the current
 +section in the TOC buffer without selecting the TOC window.
 +Recentering can happen automatically in idle time when the option
 +`reftex-auto-recenter-toc' is turned on.  The highlight in the TOC
 +buffer stays when the focus moves to a different window.  A dedicated
 +frame can show the TOC with the current section always automatically
 +highlighted.  The frame is created and deleted from the toc buffer
 +with the `d' key.
 +
 +The toc window can be split off horizontally instead of vertically.
 +See new option `reftex-toc-split-windows-horizontally'.
 +
 +Labels can be renamed globally from the table of contents using the
 +key `M-%'.
 +
 +The new command `reftex-goto-label' jumps directly to a label
 +location.
 +
 +*** Changes related to citations and BibTeX database files
 +
 +Commands that insert a citation now prompt for optional arguments when
 +called with a prefix argument.  Related new options are
 +`reftex-cite-prompt-optional-args' and `reftex-cite-cleanup-optional-args'.
 +
 +The new command `reftex-create-bibtex-file' creates a BibTeX database
 +with all entries referenced in the current document.  The keys "e" and
 +"E" allow to produce a BibTeX database file from entries marked in a
 +citation selection buffer.
 +
 +The command `reftex-citation' uses the word in the buffer before the
 +cursor as a default search string.
 +
 +The support for chapterbib has been improved.  Different chapters can
 +now use BibTeX or an explicit `thebibliography' environment.
 +
 +The macros which specify the bibliography file (like \bibliography)
 +can be configured with the new option `reftex-bibliography-commands'.
 +
 +Support for jurabib has been added.
 +
 +*** Global index matched may be verified with a user function.
 +
 +During global indexing, a user function can verify an index match.
 +See new option `reftex-index-verify-function'.
 +
 +*** Parsing documents with many labels can be sped up.
 +
 +Operating in a document with thousands of labels can be sped up
 +considerably by allowing RefTeX to derive the type of a label directly
 +from the label prefix like `eq:' or `fig:'.  The option
 +`reftex-trust-label-prefix' needs to be configured in order to enable
 +this feature.  While the speed-up is significant, this may reduce the
 +quality of the context offered by RefTeX to describe a label.
 +
 +*** Miscellaneous changes
 +
 +The macros which input a file in LaTeX (like \input, \include) can be
 +configured in the new option `reftex-include-file-commands'.
 +
 +RefTeX supports global incremental search.
 +
 +** BibTeX mode
 +
 +*** The new command `bibtex-url' browses a URL for the BibTeX entry at
 +point (bound to C-c C-l and mouse-2, RET on clickable fields).
 +
 +*** The new command `bibtex-entry-update' (bound to C-c C-u) updates
 +an existing BibTeX entry by inserting fields that may occur but are not
 +present.
 +
 +*** New `bibtex-entry-format' option `required-fields', enabled by default.
 +
 +*** `bibtex-maintain-sorted-entries' can take values `plain',
 +`crossref', and `entry-class' which control the sorting scheme used
 +for BibTeX entries.  `bibtex-sort-entry-class' controls the sorting
 +scheme `entry-class'.  TAB completion for reference keys and
 +automatic detection of duplicates does not require anymore that
 +`bibtex-maintain-sorted-entries' is non-nil.
 +
 +*** The new command `bibtex-complete' completes word fragment before
 +point according to context (bound to M-tab).
 +
 +*** In BibTeX mode the command `fill-paragraph' (M-q) fills
 +individual fields of a BibTeX entry.
 +
 +*** The new variable `bibtex-autofill-types' contains a list of entry
 +types for which fields are filled automatically (if possible).
 +
 +*** The new commands `bibtex-find-entry' and `bibtex-find-crossref'
 +locate entries and crossref'd entries (bound to C-c C-s and C-c C-x).
 +Crossref fields are clickable (bound to mouse-2, RET).
 +
 +*** The new variables `bibtex-files' and `bibtex-file-path' define a set
 +of BibTeX files that are searched for entry keys.
 +
 +*** The new command `bibtex-validate-globally' checks for duplicate keys
 +in multiple BibTeX files.
 +
 +*** If the new variable `bibtex-autoadd-commas' is non-nil,
 +automatically add missing commas at end of BibTeX fields.
 +
 +*** The new command `bibtex-copy-summary-as-kill' pushes summary
 +of BibTeX entry to kill ring (bound to C-c C-t).
 +
 +*** If the new variable `bibtex-parse-keys-fast' is non-nil,
 +use fast but simplified algorithm for parsing BibTeX keys.
 +
 +*** The new variables bibtex-expand-strings and
 +bibtex-autokey-expand-strings control the expansion of strings when
 +extracting the content of a BibTeX field.
 +
 +*** The variables `bibtex-autokey-name-case-convert' and
 +`bibtex-autokey-titleword-case-convert' have been renamed to
 +`bibtex-autokey-name-case-convert-function' and
 +`bibtex-autokey-titleword-case-convert-function'.  The old names are
 +still available as aliases.
 +
 +** GUD changes
 +
 +*** The new package gdb-ui.el provides an enhanced graphical interface to
 +GDB.  You can interact with GDB through the GUD buffer in the usual way, but
 +there are also further buffers which control the execution and describe the
 +state of your program.  It can separate the input/output of your program from
 +that of GDB and watches expressions in the speedbar.  It also uses features of
 +Emacs 21/22 such as the toolbar, and bitmaps in the fringe to indicate
 +breakpoints.
 +
 +To use this package just type M-x gdb.  See the Emacs manual if you want the
 +old behaviour.
 +
 +*** GUD mode has its own tool bar for controlling execution of the inferior
 +and other common debugger commands.
 +
 +*** In GUD mode, when talking to GDB, C-x C-a C-j "jumps" the program
 +counter to the specified source line (the one where point is).
 +
 +*** The variable tooltip-gud-tips-p has been removed.  GUD tooltips can now be
 +toggled independently of normal tooltips with the minor mode
 +`gud-tooltip-mode'.
 +
 +*** In graphical mode, with a C program, GUD Tooltips have been extended to
 +display the #define directive associated with an identifier when program is
 +not executing.
 +
 +*** GUD mode improvements for jdb:
 +
 +**** Search for source files using jdb classpath and class information.
 +Fast startup since there is no need to scan all source files up front.
 +There is also no need to create and maintain lists of source
 +directories to scan.  Look at `gud-jdb-use-classpath' and
 +`gud-jdb-classpath' customization variables documentation.
 +
 +**** The previous method of searching for source files has been
 +preserved in case someone still wants/needs to use it.
 +Set `gud-jdb-use-classpath' to nil.
 +
 +**** Supports the standard breakpoint (gud-break, gud-clear)
 +set/clear operations from Java source files under the classpath, stack
 +traversal (gud-up, gud-down), and run until current stack finish
 +(gud-finish).
 +
 +**** Supports new jdb (Java 1.2 and later) in addition to oldjdb
 +(Java 1.1 jdb).
 +
 +*** Added jdb Customization Variables
 +
 +**** `gud-jdb-command-name'.  What command line to use to invoke jdb.
 +
 +**** `gud-jdb-use-classpath'.  Allows selection of java source file searching
 +method: set to t for new method, nil to scan `gud-jdb-directories' for
 +java sources (previous method).
 +
 +**** `gud-jdb-directories'.  List of directories to scan and search for Java
 +classes using the original gud-jdb method (if `gud-jdb-use-classpath'
 +is nil).
 +
 +*** Minor Improvements
 +
 +**** The STARTTLS wrapper (starttls.el) can now use GNUTLS
 +instead of the OpenSSL based `starttls' tool.  For backwards
 +compatibility, it prefers `starttls', but you can toggle
 +`starttls-use-gnutls' to switch to GNUTLS (or simply remove the
 +`starttls' tool).
 +
 +**** Do not allow debugger output history variable to grow without bounds.
 +
 +** Lisp mode changes
 +
 +*** Lisp mode now uses `font-lock-doc-face' for doc strings.
 +
 +*** C-u C-M-q in Emacs Lisp mode pretty-prints the list after point.
 +
 +*** New features in evaluation commands
 +
 +**** The function `eval-defun' (C-M-x) called on defface reinitializes
 +the face to the value specified in the defface expression.
 +
 +**** Typing C-x C-e twice prints the value of the integer result
 +in additional formats (octal, hexadecimal, character) specified
 +by the new function `eval-expression-print-format'.  The same
 +function also defines the result format for `eval-expression' (M-:),
 +`eval-print-last-sexp' (C-j) and some edebug evaluation functions.
 +
 +** Changes to cmuscheme
 +
 +*** Emacs now offers to start Scheme if the user tries to
 +evaluate a Scheme expression but no Scheme subprocess is running.
 +
 +*** If the file ~/.emacs_NAME or ~/.emacs.d/init_NAME.scm (where NAME
 +is the name of the Scheme interpreter) exists, its contents are sent
 +to the Scheme subprocess upon startup.
 +
 +*** There are new commands to instruct the Scheme interpreter to trace
 +procedure calls (`scheme-trace-procedure') and to expand syntactic forms
 +(`scheme-expand-current-form').  The commands actually sent to the Scheme
 +subprocess are controlled by the user options `scheme-trace-command',
 +`scheme-untrace-command' and `scheme-expand-current-form'.
 +
 +** Ewoc changes
 +
 +*** The new function `ewoc-delete' deletes specified nodes.
 +
 +*** `ewoc-create' now takes optional arg NOSEP, which inhibits insertion of
 +a newline after each pretty-printed entry and after the header and footer.
 +This allows you to create multiple-entry ewocs on a single line and to
 +effect "invisible" nodes by arranging for the pretty-printer to not print
 +anything for those nodes.
 +
 +For example, these two sequences of expressions behave identically:
 +
 +;; NOSEP nil
 +(defun PP (data) (insert (format "%S" data)))
 +(ewoc-create 'PP "start\n")
 +
 +;; NOSEP t
 +(defun PP (data) (insert (format "%S\n" data)))
 +(ewoc-create 'PP "start\n\n" "\n" t)
 +
 +** CC mode changes
 +
 +*** The CC Mode manual has been extensively revised.
 +The information about using CC Mode has been separated from the larger
 +and more difficult chapters about configuration.
 +
 +*** New Minor Modes
 +**** Electric Minor Mode toggles the electric action of non-alphabetic keys.
 +The new command c-toggle-electric-mode is bound to C-c C-l.  Turning the
 +mode off can be helpful for editing chaotically indented code and for
 +users new to CC Mode, who sometimes find electric indentation
 +disconcerting.  Its current state is displayed in the mode line with an
 +'l', e.g. "C/al".
 +
 +**** Subword Minor Mode makes Emacs recognize word boundaries at upper case
 +letters in StudlyCapsIdentifiers.  You enable this feature by C-c C-w.  It can
 +also be used in non-CC Mode buffers.  :-) Contributed by Masatake YAMATO.
 +
 +*** Support for the AWK language.
 +Support for the AWK language has been introduced.  The implementation is
 +based around GNU AWK version 3.1, but it should work pretty well with
 +any AWK.  As yet, not all features of CC Mode have been adapted for AWK.
 +Here is a summary:
 +
 +**** Indentation Engine
 +The CC Mode indentation engine fully supports AWK mode.
 +
 +AWK mode handles code formatted in the conventional AWK fashion: `{'s
 +which start actions, user-defined functions, or compound statements are
 +placed on the same line as the associated construct; the matching `}'s
 +are normally placed under the start of the respective pattern, function
 +definition, or structured statement.
 +
 +The predefined line-up functions haven't yet been adapted for AWK
 +mode, though some of them may work serendipitously.  There shouldn't
 +be any problems writing custom indentation functions for AWK mode.
 +
 +**** Font Locking
 +There is a single level of font locking in AWK mode, rather than the
 +three distinct levels the other modes have.  There are several
 +idiosyncrasies in AWK mode's font-locking due to the peculiarities of
 +the AWK language itself.
 +
 +**** Comment and Movement Commands
 +These commands all work for AWK buffers.  The notion of "defun" has
 +been augmented to include AWK pattern-action pairs - the standard
 +"defun" commands on key sequences C-M-a, C-M-e, and C-M-h use this
 +extended definition.
 +
 +**** "awk" style, Auto-newline Insertion and Clean-ups
 +A new style, "awk" has been introduced, and this is now the default
 +style for AWK code.  With auto-newline enabled, the clean-up
 +c-one-liner-defun (see above) is useful.
 +
 +*** Font lock support.
 +CC Mode now provides font lock support for all its languages.  This
 +supersedes the font lock patterns that have been in the core font lock
 +package for C, C++, Java and Objective-C.  Like indentation, font
 +locking is done in a uniform way across all languages (except the new
 +AWK mode - see below).  That means that the new font locking will be
 +different from the old patterns in various details for most languages.
 +
 +The main goal of the font locking in CC Mode is accuracy, to provide a
 +dependable aid in recognizing the various constructs.  Some, like
 +strings and comments, are easy to recognize while others like
 +declarations and types can be very tricky.  CC Mode can go to great
 +lengths to recognize declarations and casts correctly, especially when
 +the types aren't recognized by standard patterns.  This is a fairly
 +demanding analysis which can be slow on older hardware, and it can
 +therefore be disabled by choosing a lower decoration level with the
 +variable font-lock-maximum-decoration.
 +
 +Note that the most demanding font lock level has been tuned with lazy
 +fontification in mind; Just-In-Time-Lock mode should be enabled for
 +the highest font lock level (by default, it is).  Fontifying a file
 +with several thousand lines in one go can take the better part of a
 +minute.
 +
 +**** The (c|c++|objc|java|idl|pike)-font-lock-extra-types variables
 +are now used by CC Mode to recognize identifiers that are certain to
 +be types.  (They are also used in cases that aren't related to font
 +locking.)  At the maximum decoration level, types are often recognized
 +properly anyway, so these variables should be fairly restrictive and
 +not contain patterns for uncertain types.
 +
 +**** Support for documentation comments.
 +There is a "plugin" system to fontify documentation comments like
 +Javadoc and the markup within them.  It's independent of the host
 +language, so it's possible to e.g. turn on Javadoc font locking in C
 +buffers.  See the variable c-doc-comment-style for details.
 +
 +Currently three kinds of doc comment styles are recognized: Sun's
 +Javadoc, Autodoc (which is used in Pike) and GtkDoc (used in C).  (The
 +last was contributed by Masatake YAMATO).  This is by no means a
 +complete list of the most common tools; if your doc comment extractor
 +of choice is missing then please drop a note to bug-cc-mode@gnu.org.
 +
 +**** Better handling of C++ templates.
 +As a side effect of the more accurate font locking, C++ templates are
 +now handled much better.  The angle brackets that delimit them are
 +given parenthesis syntax so that they can be navigated like other
 +parens.
 +
 +This also improves indentation of templates, although there still is
 +work to be done in that area.  E.g. it's required that multiline
 +template clauses are written in full and then refontified to be
 +recognized, and the indentation of nested templates is a bit odd and
 +not as configurable as it ought to be.
 +
 +**** Improved handling of Objective-C and CORBA IDL.
 +Especially the support for Objective-C and IDL has gotten an overhaul.
 +The special "@" declarations in Objective-C are handled correctly.
 +All the keywords used in CORBA IDL, PSDL, and CIDL are recognized and
 +handled correctly, also wrt indentation.
 +
 +*** Changes in Key Sequences
 +**** c-toggle-auto-hungry-state is no longer bound to C-c C-t.
 +
 +**** c-toggle-hungry-state is no longer bound to C-c C-d.
 +This binding has been taken over by c-hungry-delete-forwards.
 +
 +**** c-toggle-auto-state (C-c C-t) has been renamed to c-toggle-auto-newline.
 +c-toggle-auto-state remains as an alias.
 +
 +**** The new commands c-hungry-backspace and c-hungry-delete-forwards
 +have key bindings C-c C-DEL (or C-c DEL, for the benefit of TTYs) and
 +C-c C-d (or C-c C-<delete> or C-c <delete>) respectively.  These
 +commands delete entire blocks of whitespace with a single
 +key-sequence.  [N.B. "DEL" is the <backspace> key.]
 +
 +**** The new command c-toggle-electric-mode is bound to C-c C-l.
 +
 +**** The new command c-subword-mode is bound to C-c C-w.
 +
 +*** C-c C-s (`c-show-syntactic-information') now highlights the anchor
 +position(s).
 +
 +*** New syntactic symbols in IDL mode.
 +The top level constructs "module" and "composition" (from CIDL) are
 +now handled like "namespace" in C++: They are given syntactic symbols
 +module-open, module-close, inmodule, composition-open,
 +composition-close, and incomposition.
 +
 +*** New functions to do hungry delete without enabling hungry delete mode.
 +The new functions `c-hungry-backspace' and `c-hungry-delete-forward'
 +provide hungry deletion without having to toggle a mode.  They are
 +bound to C-c C-DEL and C-c C-d (and several variants, for the benefit
 +of different keyboard setups.  See "Changes in key sequences" above).
 +
 +*** Better control over `require-final-newline'.
 +
 +The variable `c-require-final-newline' specifies which of the modes
 +implemented by CC mode should insert final newlines.  Its value is a
 +list of modes, and only those modes should do it.  By default the list
 +includes C, C++ and Objective-C modes.
 +
 +Whichever modes are in this list will set `require-final-newline'
 +based on `mode-require-final-newline'.
 +
 +*** Format change for syntactic context elements.
 +
 +The elements in the syntactic context returned by `c-guess-basic-syntax'
 +and stored in `c-syntactic-context' has been changed somewhat to allow
 +attaching more information.  They are now lists instead of single cons
 +cells.  E.g. a line that previously had the syntactic analysis
 +
 +((inclass . 11) (topmost-intro . 13))
 +
 +is now analyzed as
 +
 +((inclass 11) (topmost-intro 13))
 +
 +In some cases there are more than one position given for a syntactic
 +symbol.
 +
 +This change might affect code that calls `c-guess-basic-syntax'
 +directly, and custom lineup functions if they use
 +`c-syntactic-context'.  However, the argument given to lineup
 +functions is still a single cons cell with nil or an integer in the
 +cdr.
 +
 +*** API changes for derived modes.
 +
 +There have been extensive changes "under the hood" which can affect
 +derived mode writers.  Some of these changes are likely to cause
 +incompatibilities with existing derived modes, but on the other hand
 +care has now been taken to make it possible to extend and modify CC
 +Mode with less risk of such problems in the future.
 +
 +**** New language variable system.
 +These are variables whose values vary between CC Mode's different
 +languages.  See the comment blurb near the top of cc-langs.el.
 +
 +**** New initialization functions.
 +The initialization procedure has been split up into more functions to
 +give better control: `c-basic-common-init', `c-font-lock-init', and
 +`c-init-language-vars'.
 +
 +*** Changes in analysis of nested syntactic constructs.
 +The syntactic analysis engine has better handling of cases where
 +several syntactic constructs appear nested on the same line.  They are
 +now handled as if each construct started on a line of its own.
 +
 +This means that CC Mode now indents some cases differently, and
 +although it's more consistent there might be cases where the old way
 +gave results that's more to one's liking.  So if you find a situation
 +where you think that the indentation has become worse, please report
 +it to bug-cc-mode@gnu.org.
 +
 +**** New syntactic symbol substatement-label.
 +This symbol is used when a label is inserted between a statement and
 +its substatement.  E.g:
 +
 +    if (x)
 +      x_is_true:
 +        do_stuff();
 +
 +*** Better handling of multiline macros.
 +
 +**** Syntactic indentation inside macros.
 +The contents of multiline #define's are now analyzed and indented
 +syntactically just like other code.  This can be disabled by the new
 +variable `c-syntactic-indentation-in-macros'.  A new syntactic symbol
 +`cpp-define-intro' has been added to control the initial indentation
 +inside `#define's.
 +
 +**** New lineup function `c-lineup-cpp-define'.
 +
 +Now used by default to line up macro continuation lines.  The behavior
 +of this function closely mimics the indentation one gets if the macro
 +is indented while the line continuation backslashes are temporarily
 +removed.  If syntactic indentation in macros is turned off, it works
 +much line `c-lineup-dont-change', which was used earlier, but handles
 +empty lines within the macro better.
 +
 +**** Automatically inserted newlines continues the macro if used within one.
 +This applies to the newlines inserted by the auto-newline mode, and to
 +`c-context-line-break' and `c-context-open-line'.
 +
 +**** Better alignment of line continuation backslashes.
 +`c-backslash-region' tries to adapt to surrounding backslashes.  New
 +variable `c-backslash-max-column' puts a limit on how far out
 +backslashes can be moved.
 +
 +**** Automatic alignment of line continuation backslashes.
 +This is controlled by the new variable `c-auto-align-backslashes'.  It
 +affects `c-context-line-break', `c-context-open-line' and newlines
 +inserted in Auto-Newline mode.
 +
 +**** Line indentation works better inside macros.
 +Regardless whether syntactic indentation and syntactic indentation
 +inside macros are enabled or not, line indentation now ignores the
 +line continuation backslashes.  This is most noticeable when syntactic
 +indentation is turned off and there are empty lines (save for the
 +backslash) in the macro.
 +
 +*** indent-for-comment is more customizable.
 +The behavior of M-; (indent-for-comment) is now configurable through
 +the variable `c-indent-comment-alist'.  The indentation behavior is
 +based on the preceding code on the line, e.g. to get two spaces after
 +#else and #endif but indentation to `comment-column' in most other
 +cases (something which was hardcoded earlier).
 +
 +*** New function `c-context-open-line'.
 +It's the open-line equivalent of `c-context-line-break'.
 +
 +*** New clean-ups
 +
 +**** `comment-close-slash'.
 +With this clean-up, a block (i.e. c-style) comment can be terminated by
 +typing a slash at the start of a line.
 +
 +**** `c-one-liner-defun'
 +This clean-up compresses a short enough defun (for example, an AWK
 +pattern/action pair) onto a single line.  "Short enough" is configurable.
 +
 +*** New lineup functions
 +
 +**** `c-lineup-string-cont'
 +This lineup function lines up a continued string under the one it
 +continues.  E.g:
 +
 +result = prefix + "A message "
 +                  "string.";      <- c-lineup-string-cont
 +
 +**** `c-lineup-cascaded-calls'
 +Lines up series of calls separated by "->" or ".".
 +
 +**** `c-lineup-knr-region-comment'
 +Gives (what most people think is) better indentation of comments in
 +the "K&R region" between the function header and its body.
 +
 +**** `c-lineup-gcc-asm-reg'
 +Provides better indentation inside asm blocks.
 +
 +**** `c-lineup-argcont'
 +Lines up continued function arguments after the preceding comma.
 +
 +*** Added toggle for syntactic indentation.
 +The function `c-toggle-syntactic-indentation' can be used to toggle
 +syntactic indentation.
 +
 +*** Better caching of the syntactic context.
 +CC Mode caches the positions of the opening parentheses (of any kind)
 +of the lists surrounding the point.  Those positions are used in many
 +places as anchor points for various searches.  The cache is now
 +improved so that it can be reused to a large extent when the point is
 +moved.  The less it moves, the less needs to be recalculated.
 +
 +The effect is that CC Mode should be fast most of the time even when
 +opening parens are hung (i.e. aren't in column zero).  It's typically
 +only the first time after the point is moved far down in a complex
 +file that it'll take noticeable time to find out the syntactic
 +context.
 +
 +*** Statements are recognized in a more robust way.
 +Statements are recognized most of the time even when they occur in an
 +"invalid" context, e.g. in a function argument.  In practice that can
 +happen when macros are involved.
 +
 +*** Improved the way `c-indent-exp' chooses the block to indent.
 +It now indents the block for the closest sexp following the point
 +whose closing paren ends on a different line.  This means that the
 +point doesn't have to be immediately before the block to indent.
 +Also, only the block and the closing line is indented; the current
 +line is left untouched.
 +
 +** Changes in Makefile mode
 +
 +*** Makefile mode has submodes for automake, gmake, makepp, BSD make and imake.
 +
 +The former two couldn't be differentiated before, and the latter three
 +are new.  Font-locking is robust now and offers new customizable
 +faces.
 +
 +*** The variable `makefile-query-one-target-method' has been renamed
 +to `makefile-query-one-target-method-function'.  The old name is still
 +available as alias.
 +
 +** Sql changes
 +
 +*** The variable `sql-product' controls the highlighting of different
 +SQL dialects.  This variable can be set globally via Customize, on a
 +buffer-specific basis via local variable settings, or for the current
 +session using the new SQL->Product submenu.  (This menu replaces the
 +SQL->Highlighting submenu.)
 +
 +The following values are supported:
 +
 +    ansi      ANSI Standard (default)
 +    db2               DB2
 +    informix    Informix
 +    ingres      Ingres
 +    interbase Interbase
 +    linter    Linter
 +    ms                Microsoft
 +    mysql     MySQL
 +    oracle    Oracle
 +    postgres  Postgres
 +    solid       Solid
 +    sqlite      SQLite
 +    sybase      Sybase
 +
 +The current product name will be shown on the mode line following the
 +SQL mode indicator.
 +
 +The technique of setting `sql-mode-font-lock-defaults' directly in
 +your `.emacs' will no longer establish the default highlighting -- Use
 +`sql-product' to accomplish this.
 +
 +ANSI keywords are always highlighted.
 +
 +*** The function `sql-add-product-keywords' can be used to add
 +font-lock rules to the product specific rules.  For example, to have
 +all identifiers ending in `_t' under MS SQLServer treated as a type,
 +you would use the following line in your .emacs file:
 +
 +  (sql-add-product-keywords 'ms
 +             '(("\\<\\w+_t\\>" . font-lock-type-face)))
 +
 +*** Oracle support includes keyword highlighting for Oracle 9i.
 +
 +Most SQL and PL/SQL keywords are implemented.  SQL*Plus commands are
 +highlighted in `font-lock-doc-face'.
 +
 +*** Microsoft SQLServer support has been significantly improved.
 +
 +Keyword highlighting for SqlServer 2000 is implemented.
 +sql-interactive-mode defaults to use osql, rather than isql, because
 +osql flushes its error stream more frequently.  Thus error messages
 +are displayed when they occur rather than when the session is
 +terminated.
 +
 +If the username and password are not provided to `sql-ms', osql is
 +called with the `-E' command line argument to use the operating system
 +credentials to authenticate the user.
 +
 +*** Postgres support is enhanced.
 +Keyword highlighting of Postgres 7.3 is implemented.  Prompting for
 +the username and the pgsql `-U' option is added.
 +
 +*** MySQL support is enhanced.
 +Keyword highlighting of MySql 4.0 is implemented.
 +
 +*** Imenu support has been enhanced to locate tables, views, indexes,
 +packages, procedures, functions, triggers, sequences, rules, and
 +defaults.
 +
 +*** Added SQL->Start SQLi Session menu entry which calls the
 +appropriate `sql-interactive-mode' wrapper for the current setting of
 +`sql-product'.
 +
 +*** sql.el supports the SQLite interpreter--call 'sql-sqlite'.
 +
 +** Fortran mode changes
 +
 +*** F90 mode and Fortran mode have support for `hs-minor-mode' (hideshow).
 +It cannot deal with every code format, but ought to handle a sizeable
 +majority.
 +
 +*** F90 mode and Fortran mode have new navigation commands
 +`f90-end-of-block', `f90-beginning-of-block', `f90-next-block',
 +`f90-previous-block', `fortran-end-of-block',
 +`fortran-beginning-of-block'.
 +
 +*** Fortran mode does more font-locking by default.  Use level 3
 +highlighting for the old default.
 +
 +*** Fortran mode has a new variable `fortran-directive-re'.
 +Adapt this to match the format of any compiler directives you use.
 +Lines that match are never indented, and are given distinctive font-locking.
 +
 +*** The new function `f90-backslash-not-special' can be used to change
 +the syntax of backslashes in F90 buffers.
 +
 +** Miscellaneous programming mode changes
 +
 +*** In sh-script, a continuation line is only indented if the backslash was
 +preceded by a SPC or a TAB.
 +
 +*** Perl mode has a new variable `perl-indent-continued-arguments'.
 +
 +*** The old Octave mode bindings C-c f and C-c i have been changed
 +to C-c C-f and C-c C-i.  The C-c C-i subcommands now have duplicate
 +bindings on control characters--thus, C-c C-i C-b is the same as
 +C-c C-i b, and so on.
 +
 +*** Prolog mode has a new variable `prolog-font-lock-keywords'
 +to support use of font-lock.
 +
 +** VC Changes
 +
 +*** New backends for Subversion and Meta-CVS.
 +
 +*** The new variable `vc-cvs-global-switches' specifies switches that
 +are passed to any CVS command invoked by VC.
 +
 +These switches are used as "global options" for CVS, which means they
 +are inserted before the command name.  For example, this allows you to
 +specify a compression level using the `-z#' option for CVS.
 +
 +*** The key C-x C-q only changes the read-only state of the buffer
 +(toggle-read-only).  It no longer checks files in or out.
 +
 +We made this change because we held a poll and found that many users
 +were unhappy with the previous behavior.  If you do prefer this
 +behavior, you can bind `vc-toggle-read-only' to C-x C-q in your
 +`.emacs' file:
 +
 +    (global-set-key "\C-x\C-q" 'vc-toggle-read-only)
 +
 +The function `vc-toggle-read-only' will continue to exist.
 +
 +*** VC-Annotate mode enhancements
 +
 +In VC-Annotate mode, you can now use the following key bindings for
 +enhanced functionality to browse the annotations of past revisions, or
 +to view diffs or log entries directly from vc-annotate-mode:
 +
 +    P:  annotates the previous revision
 +    N:  annotates the next revision
 +    J:  annotates the revision at line
 +    A:  annotates the revision previous to line
 +    D:  shows the diff of the revision at line with its previous revision
 +    L:  shows the log of the revision at line
 +    W:  annotates the workfile (most up to date) version
 +
 +** pcl-cvs changes
 +
 +*** In pcl-cvs mode, there is a new `d y' command to view the diffs
 +between the local version of the file and yesterday's head revision
 +in the repository.
 +
 +*** In pcl-cvs mode, there is a new `d r' command to view the changes
 +anyone has committed to the repository since you last executed
 +`checkout', `update' or `commit'.  That means using cvs diff options
 +-rBASE -rHEAD.
 +
 +** Diff changes
 +
 +*** M-x diff uses Diff mode instead of Compilation mode.
 +
 +*** Diff mode key bindings changed.
 +
 +These are the new bindings:
 +
 +C-c C-e   diff-ediff-patch  (old M-A)
 +C-c C-n   diff-restrict-view   (old M-r)
 +C-c C-r   diff-reverse-direction  (old M-R)
 +C-c C-u   diff-context->unified   (old M-U)
 +C-c C-w   diff-refine-hunk  (old C-c C-r)
 +
 +To convert unified to context format, use C-u C-c C-u.
 +In addition, C-c C-u now operates on the region
 +in Transient Mark mode when the mark is active.
 +
 +** EDiff changes.
 +
 +***  When comparing directories.
 +Typing D brings up a buffer that lists the differences between the contents of
 +directories.  Now it is possible to use this buffer to copy the missing files
 +from one directory to another.
 +
 +*** When comparing files or buffers.
 +Typing the = key now offers to perform the word-by-word comparison of the
 +currently highlighted regions in an inferior Ediff session.  If you answer 'n'
 +then it reverts to the old behavior and asks the user to select regions for
 +comparison.
 +
 +*** The new command `ediff-backup' compares a file with its most recent
 +backup using `ediff'.  If you specify the name of a backup file,
 +`ediff-backup' compares it with the file of which it is a backup.
 +
 +** Etags changes.
 +
 +*** New regular expressions features
 +
 +**** New syntax for regular expressions, multi-line regular expressions.
 +
 +The syntax --ignore-case-regexp=/regex/ is now undocumented and retained
 +only for backward compatibility.  The new equivalent syntax is
 +--regex=/regex/i.  More generally, it is --regex=/TAGREGEX/TAGNAME/MODS,
 +where `/TAGNAME' is optional, as usual, and MODS is a string of 0 or
 +more characters among `i' (ignore case), `m' (multi-line) and `s'
 +(single-line).  The `m' and `s' modifiers behave as in Perl regular
 +expressions: `m' allows regexps to match more than one line, while `s'
 +(which implies `m') means that `.' matches newlines.  The ability to
 +span newlines allows writing of much more powerful regular expressions
 +and rapid prototyping for tagging new languages.
 +
 +**** Regular expressions can use char escape sequences as in GCC.
 +
 +The escaped character sequence \a, \b, \d, \e, \f, \n, \r, \t, \v,
 +respectively, stand for the ASCII characters BEL, BS, DEL, ESC, FF, NL,
 +CR, TAB, VT.
 +
 +**** Regular expressions can be bound to a given language.
 +
 +The syntax --regex={LANGUAGE}REGEX means that REGEX is used to make tags
 +only for files of language LANGUAGE, and ignored otherwise.  This is
 +particularly useful when storing regexps in a file.
 +
 +**** Regular expressions can be read from a file.
 +
 +The --regex=@regexfile option means read the regexps from a file, one
 +per line.  Lines beginning with space or tab are ignored.
 +
 +*** New language parsing features
 +
 +**** New language HTML.
 +
 +Tags are generated for `title' as well as `h1', `h2', and `h3'.  Also,
 +when `name=' is used inside an anchor and whenever `id=' is used.
 +
 +**** New language PHP.
 +
 +Functions, classes and defines are tags.  If the --members option is
 +specified to etags, variables are tags also.
 +
 +**** New language Lua.
 +
 +All functions are tagged.
 +
 +**** The `::' qualifier triggers C++ parsing in C file.
 +
 +Previously, only the `template' and `class' keywords had this effect.
 +
 +**** The GCC __attribute__ keyword is now recognized and ignored.
 +
 +**** In C and derived languages, etags creates tags for #undef
 +
 +**** In Makefiles, constants are tagged.
 +
 +If you want the old behavior instead, thus avoiding to increase the
 +size of the tags file, use the --no-globals option.
 +
 +**** In Perl, packages are tags.
 +
 +Subroutine tags are named from their package.  You can jump to sub tags
 +as you did before, by the sub name, or additionally by looking for
 +package::sub.
 +
 +**** In Prolog, etags creates tags for rules in addition to predicates.
 +
 +**** New default keywords for TeX.
 +
 +The new keywords are def, newcommand, renewcommand, newenvironment and
 +renewenvironment.
 +
 +*** Honor #line directives.
 +
 +When Etags parses an input file that contains C preprocessor's #line
 +directives, it creates tags using the file name and line number
 +specified in those directives.  This is useful when dealing with code
 +created from Cweb source files.  When Etags tags the generated file, it
 +writes tags pointing to the source file.
 +
 +*** New option --parse-stdin=FILE.
 +
 +This option is mostly useful when calling etags from programs.  It can
 +be used (only once) in place of a file name on the command line.  Etags
 +reads from standard input and marks the produced tags as belonging to
 +the file FILE.
 +
 +** Ctags changes.
 +
 +*** Ctags now allows duplicate tags
 +
 +** Rmail changes
 +
 +*** Support for `movemail' from GNU mailutils was added to Rmail.
 +
 +This version of `movemail' allows you to read mail from a wide range of
 +mailbox formats, including remote POP3 and IMAP4 mailboxes with or
 +without TLS encryption.  If GNU mailutils is installed on the system
 +and its version of `movemail' can be found in exec-path, it will be
 +used instead of the native one.
 +
 +*** The new commands rmail-end-of-message and rmail-summary end-of-message,
 +by default bound to `/', go to the end of the current mail message in
 +Rmail and Rmail summary buffers.
 +
 +*** Rmail now displays 5-digit message ids in its summary buffer.
 +
 +** Gnus package
 +
 +*** Gnus now includes Sieve and PGG
 +
 +Sieve is a library for managing Sieve scripts.  PGG is a library to handle
 +PGP/MIME.
 +
 +*** There are many news features, bug fixes and improvements.
 +
 +See the file GNUS-NEWS or the node "Oort Gnus" in the Gnus manual for details.
 +
 +** MH-E changes.
 +
 +Upgraded to MH-E version 8.0.3.  There have been major changes since
 +version 5.0.2; see MH-E-NEWS for details.
 +
 +** Miscellaneous mail changes
 +
 +*** The new variable `mail-default-directory' specifies
 +`default-directory' for mail buffers.  This directory is used for
 +auto-save files of mail buffers.  It defaults to "~/".
 +
 +*** The mode line can indicate new mail in a directory or file.
 +
 +See the documentation of the user option `display-time-mail-directory'.
 +
 +** Calendar changes
 +
 +*** There is a new calendar package, icalendar.el, that can be used to
 +convert Emacs diary entries to/from the iCalendar format.
 +
 +*** The new package cal-html.el writes HTML files with calendar and
 +diary entries.
 +
 +*** The new functions `diary-from-outlook', `diary-from-outlook-gnus',
 +and `diary-from-outlook-rmail' can be used to import diary entries
 +from Outlook-format appointments in mail messages.  The variable
 +`diary-outlook-formats' can be customized to recognize additional
 +formats.
 +
 +*** The procedure for activating appointment reminders has changed:
 +use the new function `appt-activate'.  The new variable
 +`appt-display-format' controls how reminders are displayed, replacing
 +`appt-issue-message', `appt-visible', and `appt-msg-window'.
 +
 +*** The function `simple-diary-display' now by default sets a header line.
 +This can be controlled through the variables `diary-header-line-flag'
 +and `diary-header-line-format'.
 +
 +*** Diary sexp entries can have custom marking in the calendar.
 +Diary sexp functions which only apply to certain days (such as
 +`diary-block' or `diary-cyclic') now take an optional parameter MARK,
 +which is the name of a face or a single-character string indicating
 +how to highlight the day in the calendar display.  Specifying a
 +single-character string as @var{mark} places the character next to the
 +day in the calendar.  Specifying a face highlights the day with that
 +face.  This lets you have different colors or markings for vacations,
 +appointments, paydays or anything else using a sexp.
 +
 +*** The meanings of C-x < and C-x > have been interchanged.
 +< means to scroll backward in time, and > means to scroll forward.
 +
 +*** You can now use < and >, instead of C-x < and C-x >, to scroll
 +the calendar left or right.
 +
 +*** The new function `calendar-goto-day-of-year' (g D) prompts for a
 +year and day number, and moves to that date.  Negative day numbers
 +count backward from the end of the year.
 +
 +*** The new Calendar function `calendar-goto-iso-week' (g w)
 +prompts for a year and a week number, and moves to the first
 +day of that ISO week.
 +
 +*** The functions `holiday-easter-etc' and `holiday-advent' now take
 +optional arguments, in order to only report on the specified holiday
 +rather than all.  This makes customization of variables such as
 +`christian-holidays' simpler.
 +
 +*** The new variable `calendar-minimum-window-height' affects the
 +window generated by the function `generate-calendar-window'.
 +
 +** Speedbar changes
 +
 +*** Speedbar items can now be selected by clicking mouse-1, based on
 +the `mouse-1-click-follows-link' mechanism.
 +
 +*** The new command `speedbar-toggle-line-expansion', bound to SPC,
 +contracts or expands the line under the cursor.
 +
 +*** New command `speedbar-create-directory', bound to `M'.
 +
 +*** The new commands `speedbar-expand-line-descendants' and
 +`speedbar-contract-line-descendants', bound to `[' and `]'
 +respectively, expand and contract the line under cursor with all of
 +its descendents.
 +
 +*** The new user option `speedbar-use-tool-tips-flag', if non-nil,
 +means to display tool-tips for speedbar items.
 +
 +*** The new user option `speedbar-query-confirmation-method' controls
 +how querying is performed for file operations.  A value of 'always
 +means to always query before file operations; 'none-but-delete means
 +to not query before any file operations, except before a file
 +deletion.
 +
 +*** The new user option `speedbar-select-frame-method' specifies how
 +to select a frame for displaying a file opened with the speedbar.  A
 +value of 'attached means to use the attached frame (the frame that
 +speedbar was started from.)  A number such as 1 or -1 means to pass
 +that number to `other-frame'.
 +
 +*** SPC and DEL are no longer bound to scroll up/down in the speedbar
 +keymap.
 +
 +*** The frame management code in speedbar.el has been split into a new
 +`dframe' library.  Emacs Lisp code that makes use of the speedbar
 +should use `dframe-attached-frame' instead of
 +`speedbar-attached-frame', `dframe-timer' instead of `speedbar-timer',
 +`dframe-close-frame' instead of `speedbar-close-frame', and
 +`dframe-activity-change-focus-flag' instead of
 +`speedbar-activity-change-focus-flag'.  The variables
 +`speedbar-update-speed' and `speedbar-navigating-speed' are also
 +obsolete; use `dframe-update-speed' instead.
 +
 +** battery.el changes
 +
 +*** display-battery-mode replaces display-battery.
 +
 +*** battery.el now works on recent versions of OS X.
 +
 +** Games
 +
 +*** The game `mpuz' is enhanced.
 +
 +`mpuz' now allows the 2nd factor not to have two identical digits.  By
 +default, all trivial operations involving whole lines are performed
 +automatically.  The game uses faces for better visual feedback.
 +
 +** Obsolete and deleted packages
 +
 +*** fast-lock.el and lazy-lock.el are obsolete.  Use jit-lock.el instead.
 +
 +*** iso-acc.el is now obsolete.  Use one of the latin input methods instead.
 +
 +*** zone-mode.el is now obsolete.  Use dns-mode.el instead.
 +
 +*** cplus-md.el has been deleted.
 +
 +** Miscellaneous
 +
 +*** The variable `woman-topic-at-point' is renamed
 +to `woman-use-topic-at-point' and behaves differently: if this
 +variable is non-nil, the `woman' command uses the word at point
 +automatically, without asking for a confirmation.  Otherwise, the word
 +at point is suggested as default, but not inserted at the prompt.
 +
 +*** You can now customize `fill-nobreak-predicate' to control where
 +filling can break lines.  The value is now normally a list of
 +functions, but it can also be a single function, for compatibility.
 +
 +Emacs provide two predicates, `fill-single-word-nobreak-p' and
 +`fill-french-nobreak-p', for use as the value of
 +`fill-nobreak-predicate'.
 +
 +*** M-x view-file and commands that use it now avoid interfering
 +with special modes such as Tar mode.
 +
 +*** `global-whitespace-mode' is a new alias for `whitespace-global-mode'.
 +
 +*** The saveplace.el package now filters out unreadable files.
 +
 +When you exit Emacs, the saved positions in visited files no longer
 +include files that aren't readable, e.g. files that don't exist.
 +Customize the new option `save-place-forget-unreadable-files' to nil
 +to get the old behavior.  The new options `save-place-save-skipped'
 +and `save-place-skip-check-regexp' allow further fine-tuning of this
 +feature.
 +
 +*** Commands `winner-redo' and `winner-undo', from winner.el, are now
 +bound to C-c <left> and C-c <right>, respectively.  This is an
 +incompatible change.
 +
 +*** The type-break package now allows `type-break-file-name' to be nil
 +and if so, doesn't store any data across sessions.  This is handy if
 +you don't want the `.type-break' file in your home directory or are
 +annoyed by the need for interaction when you kill Emacs.
 +
 +*** `ps-print' can now print characters from the mule-unicode charsets.
 +
 +Printing text with characters from the mule-unicode-* sets works with
 +`ps-print', provided that you have installed the appropriate BDF
 +fonts.  See the file INSTALL for URLs where you can find these fonts.
 +
 +*** New command `strokes-global-set-stroke-string'.
 +This is like `strokes-global-set-stroke', but it allows you to bind
 +the stroke directly to a string to insert.  This is convenient for
 +using strokes as an input method.
 +
 +*** In Outline mode, `hide-body' no longer hides lines at the top
 +of the file that precede the first header line.
 +
 +*** `hide-ifdef-mode' now uses overlays rather than selective-display
 +to hide its text.  This should be mostly transparent but slightly
 +changes the behavior of motion commands like C-e and C-p.
 +
 +*** In Artist mode the variable `artist-text-renderer' has been
 +renamed to `artist-text-renderer-function'.  The old name is still
 +available as alias.
 +
 +*** In Enriched mode, `set-left-margin' and `set-right-margin' are now
 +by default bound to `C-c [' and `C-c ]' instead of the former `C-c C-l'
 +and `C-c C-r'.
 +
 +*** `partial-completion-mode' now handles partial completion on directory names.
 +
 +*** You can now disable pc-selection-mode after enabling it.
 +
 +M-x pc-selection-mode behaves like a proper minor mode, and with no
 +argument it toggles the mode.  Turning off PC-Selection mode restores
 +the global key bindings that were replaced by turning on the mode.
 +
 +*** `uniquify-strip-common-suffix' tells uniquify to prefer
 +`file|dir1' and `file|dir2' to `file|dir1/subdir' and `file|dir2/subdir'.
 +
 +*** New user option `add-log-always-start-new-record'.
 +
 +When this option is enabled, M-x add-change-log-entry always
 +starts a new record regardless of when the last record is.
 +
 +*** M-x compare-windows now can automatically skip non-matching text to
 +resync points in both windows.
 +
 +*** PO translation files are decoded according to their MIME headers
 +when Emacs visits them.
 +
 +*** Telnet now prompts you for a port number with C-u M-x telnet.
 +
 +*** calculator.el now has radix grouping mode.
 +
 +To enable this, set `calculator-output-radix' non-nil.  In this mode a
 +separator character is used every few digits, making it easier to see
 +byte boundaries etc.  For more info, see the documentation of the
 +variable `calculator-radix-grouping-mode'.
 +
 +*** LDAP support now defaults to ldapsearch from OpenLDAP version 2.
 +
 +*** The terminal emulation code in term.el has been improved; it can
 +run most curses applications now.
 +
 +*** Support for `magic cookie' standout modes has been removed.
 +
 +Emacs still works on terminals that require magic cookies in order to
 +use standout mode, but they can no longer display mode-lines in
 +inverse-video.
 +
 +\f
 +* Changes in Emacs 22.1 on non-free operating systems
 +
 +** The HOME directory defaults to Application Data under the user profile.
 +
 +If you used a previous version of Emacs without setting the HOME
 +environment variable and a `.emacs' was saved, then Emacs will continue
 +using C:/ as the default HOME.  But if you are installing Emacs afresh,
 +the default location will be the "Application Data" (or similar
 +localized name) subdirectory of your user profile.  A typical location
 +of this directory is "C:\Documents and Settings\USERNAME\Application Data",
 +where USERNAME is your user name.
 +
 +This change means that users can now have their own `.emacs' files on
 +shared computers, and the default HOME directory is less likely to be
 +read-only on computers that are administered by someone else.
 +
 +** Images are now supported on MS Windows.
 +
 +PBM and XBM images are supported out of the box.  Other image formats
 +depend on external libraries.  All of these libraries have been ported
 +to Windows, and can be found in both source and binary form at
 +http://gnuwin32.sourceforge.net/.  Note that libpng also depends on
 +zlib, and tiff depends on the version of jpeg that it was compiled
 +against.  For additional information, see nt/INSTALL.
 +
 +** Sound is now supported on MS Windows.
 +
 +WAV format is supported on all versions of Windows, other formats such
 +as AU, AIFF and MP3 may be supported in the more recent versions of
 +Windows, or when other software provides hooks into the system level
 +sound support for those formats.
 +
 +** Tooltips now work on MS Windows.
 +
 +See the Emacs 21.1 NEWS entry for tooltips for details.
 +
 +** Pointing devices with more than 3 buttons are now supported on MS Windows.
 +
 +The new variable `w32-pass-extra-mouse-buttons-to-system' controls
 +whether Emacs should handle the extra buttons itself (the default), or
 +pass them to Windows to be handled with system-wide functions.
 +
 +** Passing resources on the command line now works on MS Windows.
 +
 +You can use --xrm to pass resource settings to Emacs, overriding any
 +existing values.  For example:
 +
 +  emacs --xrm "Emacs.Background:red" --xrm "Emacs.Geometry:100x20"
 +
 +will start up Emacs on an initial frame of 100x20 with red background,
 +irrespective of geometry or background setting on the Windows registry.
 +
 +** Emacs takes note of colors defined in Control Panel on MS-Windows.
 +
 +The Control Panel defines some default colors for applications in much
 +the same way as wildcard X Resources do on X.  Emacs now adds these
 +colors to the colormap prefixed by System (eg SystemMenu for the
 +default Menu background, SystemMenuText for the foreground), and uses
 +some of them to initialize some of the default faces.
 +`list-colors-display' shows the list of System color names, in case
 +you wish to use them in other faces.
 +
 +** Running in a console window in Windows now uses the console size.
 +
 +Previous versions of Emacs erred on the side of having a usable Emacs
 +through telnet, even though that was inconvenient if you use Emacs in
 +a local console window with a scrollback buffer.  The default value of
 +w32-use-full-screen-buffer is now nil, which favors local console
 +windows.  Recent versions of Windows telnet also work well with this
 +setting.  If you are using an older telnet server then Emacs detects
 +that the console window dimensions that are reported are not sane, and
 +defaults to 80x25.  If you use such a telnet server regularly at a size
 +other than 80x25, you can still manually set
 +w32-use-full-screen-buffer to t.
 +
 +** Different shaped mouse pointers are supported on MS Windows.
 +
 +The mouse pointer changes shape depending on what is under the pointer.
 +
 +** On MS Windows, the "system caret" now follows the cursor.
 +
 +This enables Emacs to work better with programs that need to track the
 +cursor, for example screen magnifiers and text to speech programs.
 +When such a program is in use, the system caret is made visible
 +instead of Emacs drawing its own cursor. This seems to be required by
 +some programs. The new variable w32-use-visible-system-caret allows
 +the caret visibility to be manually toggled.
 +
 +** On MS Windows NT/W2K/XP, Emacs uses Unicode for clipboard operations.
 +
 +Those systems use Unicode internally, so this allows Emacs to share
 +multilingual text with other applications.  On other versions of
 +MS Windows, Emacs now uses the appropriate locale coding-system, so
 +the clipboard should work correctly for your local language without
 +any customizations.
 +
 +** On Mac OS, `keyboard-coding-system' changes based on the keyboard script.
 +
 +** The variable `mac-keyboard-text-encoding' and the constants
 +`kTextEncodingMacRoman', `kTextEncodingISOLatin1', and
 +`kTextEncodingISOLatin2' are obsolete.
 +
 +** The variable `mac-command-key-is-meta' is obsolete.  Use
 +`mac-command-modifier' and `mac-option-modifier' instead.
 +\f
 +* Incompatible Lisp Changes in Emacs 22.1
 +
 +** Mode line display ignores text properties as well as the
 +:propertize and :eval forms in the value of a variable whose
 +`risky-local-variable' property is nil.
 +
 +The function `comint-send-input' now accepts 3 optional arguments:
 +
 +  (comint-send-input &optional no-newline artificial)
 +
 +Callers sending input not from the user should use bind the 3rd
 +argument `artificial' to a non-nil value, to prevent Emacs from
 +deleting the part of subprocess output that matches the input.
 +
 +** The `read-file-name' function now returns a null string if the
 +user just types RET.
 +
 +** The variables post-command-idle-hook and post-command-idle-delay have
 +been removed.  Use run-with-idle-timer instead.
 +
 +** A hex or octal escape in a string constant forces the string to
 +be multibyte or unibyte, respectively.
 +
 +** The explicit method of creating a display table element by
 +combining a face number and a character code into a numeric
 +glyph code is deprecated.
 +
 +Instead, the new functions `make-glyph-code', `glyph-char', and
 +`glyph-face' must be used to create and decode glyph codes in
 +display tables.
 +
 +** `suppress-keymap' now works by remapping `self-insert-command' to
 +the command `undefined'.  (In earlier Emacs versions, it used
 +`substitute-key-definition' to rebind self inserting characters to
 +`undefined'.)
 +
 +** The third argument of `accept-process-output' is now milliseconds.
 +It used to be microseconds.
 +
 +** The function find-operation-coding-system may be called with a cons
 +(FILENAME . BUFFER) in the second argument if the first argument
 +OPERATION is `insert-file-contents', and thus a function registered in
 +`file-coding-system-alist' is also called with such an argument.
 +
 +** When Emacs receives a USR1 or USR2 signal, this generates
 +input events: sigusr1 or sigusr2.  Use special-event-map to
 +handle these events.
 +
 +** The variable `memory-full' now remains t until
 +there is no longer a shortage of memory.
 +
 +** Support for Mocklisp has been removed.
 +
 +\f
 +* Lisp Changes in Emacs 22.1
 +
 +** General Lisp changes:
 +
 +*** New syntax: \s now stands for the SPACE character.
 +
 +`?\s' is a new way to write the space character.  You must make sure
 +it is not followed by a dash, since `?\s-...' indicates the "super"
 +modifier.  However, it would be strange to write a character constant
 +and a following symbol (beginning with `-') with no space between
 +them.
 +
 +`\s' stands for space in strings, too, but it is not really meant for
 +strings; it is easier and nicer just to write a space.
 +
 +*** New syntax: \uXXXX and \UXXXXXXXX specify Unicode code points in hex.
 +
 +For instance, you can use "\u0428" to specify a string consisting of
 +CYRILLIC CAPITAL LETTER SHA, or `"U0001D6E2" to specify one consisting
 +of MATHEMATICAL ITALIC CAPITAL ALPHA (the latter is greater than
 +#xFFFF and thus needs the longer syntax).
 +
 +This syntax works for both character constants and strings.
 +
 +*** New function `unsafep' determines whether a Lisp form is safe.
 +
 +It returns nil if the given Lisp form can't possibly do anything
 +dangerous; otherwise it returns a reason why the form might be unsafe
 +(calls unknown function, alters global variable, etc.).
 +
 +*** The function `eql' is now available without requiring the CL package.
 +
 +*** The new function `memql' is like `memq', but uses `eql' for comparison,
 +that is, floats are compared by value and other elements with `eq'.
 +
 +*** New functions `string-or-null-p' and `booleanp'.
 +
 +`string-or-null-p' returns non-nil if OBJECT is a string or nil.
 +`booleanp' returns non-nil if OBJECT is t or nil.
 +
 +*** `makehash' is now obsolete.  Use `make-hash-table' instead.
 +
 +*** Minor change in the function `format'.
 +
 +Some flags that were accepted but not implemented (such as "*") are no
 +longer accepted.
 +
 +*** `add-to-list' takes an optional third argument, APPEND.
 +
 +If APPEND is non-nil, the new element gets added at the end of the
 +list instead of at the beginning.  This change actually occurred in
 +Emacs 21.1, but was not documented then.
 +
 +*** New function `add-to-ordered-list' is like `add-to-list' but
 +associates a numeric ordering of each element added to the list.
 +
 +*** New function `add-to-history' adds an element to a history list.
 +
 +Lisp packages should use this function to add elements to their
 +history lists.
 +
 +If `history-delete-duplicates' is non-nil, it removes duplicates of
 +the new element from the history list it updates.
 +
 +*** New function `copy-tree' makes a copy of a tree.
 +
 +It recursively copies through both CARs and CDRs.
 +
 +*** New function `delete-dups' deletes `equal' duplicate elements from a list.
 +
 +It modifies the list destructively, like `delete'.  Of several `equal'
 +occurrences of an element in the list, the one that's kept is the
 +first one.
 +
 +*** New function `rassq-delete-all'.
 +
 +(rassq-delete-all VALUE ALIST) deletes, from ALIST, each element whose
 +CDR is `eq' to the specified value.
 +
 +*** Functions `get' and `plist-get' no longer give errors for bad plists.
 +
 +They return nil for a malformed property list or if the list is
 +cyclic.
 +
 +*** New functions `lax-plist-get' and `lax-plist-put'.
 +
 +They are like `plist-get' and `plist-put', except that they compare
 +the property name using `equal' rather than `eq'.
 +
 +*** The function `number-sequence' makes a list of equally-separated numbers.
 +
 +For instance, (number-sequence 4 9) returns (4 5 6 7 8 9).  By
 +default, the separation is 1, but you can specify a different
 +separation as the third argument.  (number-sequence 1.5 6 2) returns
 +(1.5 3.5 5.5).
 +
 +*** New variables `most-positive-fixnum' and `most-negative-fixnum'.
 +
 +They hold the largest and smallest possible integer values.
 +
 +*** The function `expt' handles negative exponents differently.
 +The value for `(expt A B)', if both A and B are integers and B is
 +negative, is now a float.  For example: (expt 2 -2) => 0.25.
 +
 +*** The function `atan' now accepts an optional second argument.
 +
 +When called with 2 arguments, as in `(atan Y X)', `atan' returns the
 +angle in radians between the vector [X, Y] and the X axis.  (This is
 +equivalent to the standard C library function `atan2'.)
 +
 +*** New macro `with-case-table'
 +
 +This executes the body with the case table temporarily set to a given
 +case table.
 +
 +*** New macro `with-local-quit' temporarily allows quitting.
 +
 +A quit inside the body of `with-local-quit' is caught by the
 +`with-local-quit' form itself, but another quit will happen later once
 +the code that has inhibited quitting exits.
 +
 +This is for use around potentially blocking or long-running code
 +inside timer functions and `post-command-hook' functions.
 +
 +*** New macro `define-obsolete-function-alias'.
 +
 +This combines `defalias' and `make-obsolete'.
 +
 +*** New macro `eval-at-startup' specifies expressions to
 +evaluate when Emacs starts up.  If this is done after startup,
 +it evaluates those expressions immediately.
 +
 +This is useful in packages that can be preloaded.
 +
 +*** New function `macroexpand-all' expands all macros in a form.
 +
 +It is similar to the Common-Lisp function of the same name.
 +One difference is that it guarantees to return the original argument
 +if no expansion is done, which can be tested using `eq'.
 +
 +*** A function or macro's doc string can now specify the calling pattern.
 +
 +You put this info in the doc string's last line.  It should be
 +formatted so as to match the regexp "\n\n(fn .*)\\'".  If you don't
 +specify this explicitly, Emacs determines it from the actual argument
 +names.  Usually that default is right, but not always.
 +
 +*** New variable `print-continuous-numbering'.
 +
 +When this is non-nil, successive calls to print functions use a single
 +numbering scheme for circular structure references.  This is only
 +relevant when `print-circle' is non-nil.
 +
 +When you bind `print-continuous-numbering' to t, you should
 +also bind `print-number-table' to nil.
 +
 +*** `list-faces-display' takes an optional argument, REGEXP.
 +
 +If it is non-nil, the function lists only faces matching this regexp.
 +
 +*** New hook `command-error-function'.
 +
 +By setting this variable to a function, you can control
 +how the editor command loop shows the user an error message.
 +
 +*** `debug-on-entry' accepts primitive functions that are not special forms.
 +
 +** Lisp code indentation features:
 +
 +*** The `defmacro' form can contain indentation and edebug declarations.
 +
 +These declarations specify how to indent the macro calls in Lisp mode
 +and how to debug them with Edebug.  You write them like this:
 +
 +   (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...)
 +
 +DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'.  The
 +possible declaration specifiers are:
 +
 +(indent INDENT)
 +      Set NAME's `lisp-indent-function' property to INDENT.
 +
 +(edebug DEBUG)
 +      Set NAME's `edebug-form-spec' property to DEBUG.  (This is
 +      equivalent to writing a `def-edebug-spec' for the macro,
 +      but this is cleaner.)
 +
 +*** cl-indent now allows customization of Indentation of backquoted forms.
 +
 +See the new user option `lisp-backquote-indentation'.
 +
 +*** cl-indent now handles indentation of simple and extended `loop' forms.
 +
 +The new user options `lisp-loop-keyword-indentation',
 +`lisp-loop-forms-indentation', and `lisp-simple-loop-indentation' can
 +be used to customize the indentation of keywords and forms in loop
 +forms.
 +
 +** Variable aliases:
 +
 +*** New function: defvaralias ALIAS-VAR BASE-VAR [DOCSTRING]
 +
 +This function defines the symbol ALIAS-VAR as a variable alias for
 +symbol BASE-VAR.  This means that retrieving the value of ALIAS-VAR
 +returns the value of BASE-VAR, and changing the value of ALIAS-VAR
 +changes the value of BASE-VAR.
 +
 +DOCSTRING, if present, is the documentation for ALIAS-VAR; else it has
 +the same documentation as BASE-VAR.
 +
 +*** The macro `define-obsolete-variable-alias' combines `defvaralias' and
 +`make-obsolete-variable'.
 +
 +*** New function: indirect-variable VARIABLE
 +
 +This function returns the variable at the end of the chain of aliases
 +of VARIABLE.  If VARIABLE is not a symbol, or if VARIABLE is not
 +defined as an alias, the function returns VARIABLE.
 +
 +It might be noteworthy that variables aliases work for all kinds of
 +variables, including buffer-local and frame-local variables.
 +
 +** defcustom changes:
 +
 +*** The package-version keyword has been added to provide
 +`customize-changed-options' functionality to packages in the future.
 +Developers who make use of this keyword must also update the new
 +variable `customize-package-emacs-version-alist'.
 +
 +*** The new customization type `float' requires a floating point number.
 +
 +** String changes:
 +
 +*** A hex escape in a string constant forces the string to be multibyte.
 +
 +*** An octal escape in a string constant forces the string to be unibyte.
 +
 +*** New function `string-to-multibyte' converts a unibyte string to a
 +multibyte string with the same individual character codes.
 +
 +*** `split-string' now includes null substrings in the returned list if
 +the optional argument SEPARATORS is non-nil and there are matches for
 +SEPARATORS at the beginning or end of the string.  If SEPARATORS is
 +nil, or if the new optional third argument OMIT-NULLS is non-nil, all
 +empty matches are omitted from the returned list.
 +
 +*** The new function `assoc-string' replaces `assoc-ignore-case' and
 +`assoc-ignore-representation', which are still available, but have
 +been declared obsolete.
 +
 +*** New function `substring-no-properties' returns a substring without
 +text properties.
 +
 +** Displaying warnings to the user.
 +
 +See the functions `warn' and `display-warning', or the Lisp Manual.
 +If you want to be sure the warning will not be overlooked, this
 +facility is much better than using `message', since it displays
 +warnings in a separate window.
 +
 +** Progress reporters.
 +
 +These provide a simple and uniform way for commands to present
 +progress messages for the user.
 +
 +See the new functions `make-progress-reporter',
 +`progress-reporter-update', `progress-reporter-force-update',
 +`progress-reporter-done', and `dotimes-with-progress-reporter'.
 +
 +** Buffer positions:
 +
 +*** Function `compute-motion' now calculates the usable window
 +width if the WIDTH argument is nil.  If the TOPOS argument is nil,
 +the usable window height and width is used.
 +
 +*** The `line-move', `scroll-up', and `scroll-down' functions will now
 +modify the window vscroll to scroll through display rows that are
 +taller that the height of the window, for example in the presence of
 +large images.  To disable this feature, bind the new variable
 +`auto-window-vscroll' to nil.
 +
 +*** The argument to `forward-word', `backward-word' is optional.
 +
 +It defaults to 1.
 +
 +*** Argument to `forward-to-indentation' and `backward-to-indentation' is optional.
 +
 +It defaults to 1.
 +
 +*** `field-beginning' and `field-end' take new optional argument, LIMIT.
 +
 +This argument tells them not to search beyond LIMIT.  Instead they
 +give up and return LIMIT.
 +
 +*** New function `window-line-height' is an efficient way to get
 +information about a specific text line in a window provided that the
 +window's display is up-to-date.
 +
 +*** New function `line-number-at-pos' returns the line number of a position.
 +
 +It an optional buffer position argument that defaults to point.
 +
 +*** Function `pos-visible-in-window-p' now returns the pixel coordinates
 +and partial visibility state of the corresponding row, if the PARTIALLY
 +arg is non-nil.
 +
 +*** New functions `posn-at-point' and `posn-at-x-y' return
 +click-event-style position information for a given visible buffer
 +position or for a given window pixel coordinate.
 +
 +*** New function `mouse-on-link-p' tests if a position is in a clickable link.
 +
 +This is the function used by the new `mouse-1-click-follows-link'
 +functionality.
 +
 +** Text modification:
 +
 +*** The new function `buffer-chars-modified-tick' returns a buffer's
 +tick counter for changes to characters.  Each time text in that buffer
 +is inserted or deleted, the character-change counter is updated to the
 +tick counter (`buffer-modified-tick').  Text property changes leave it
 +unchanged.
 +
 +*** The new function `insert-for-yank' normally works like `insert', but
 +removes the text properties in the `yank-excluded-properties' list
 +and handles the `yank-handler' text property.
 +
 +*** The new function `insert-buffer-substring-as-yank' is like
 +`insert-for-yank' except that it gets the text from another buffer as
 +in `insert-buffer-substring'.
 +
 +*** The new function `insert-buffer-substring-no-properties' is like
 +`insert-buffer-substring', but removes all text properties from the
 +inserted substring.
 +
 +*** The new function `filter-buffer-substring' extracts a buffer
 +substring, passes it through a set of filter functions, and returns
 +the filtered substring.  Use it instead of `buffer-substring' or
 +`delete-and-extract-region' when copying text into a user-accessible
 +data structure, such as the kill-ring, X clipboard, or a register.
 +
 +The list of filter function is specified by the new variable
 +`buffer-substring-filters'.  For example, Longlines mode adds to
 +`buffer-substring-filters' to remove soft newlines from the copied
 +text.
 +
 +*** Function `translate-region' accepts also a char-table as TABLE
 +argument.
 +
 +*** The new translation table `translation-table-for-input'
 +is used for customizing self-insertion.  The character to
 +be inserted is translated through it.
 +
 +*** Text clones.
 +
 +The new function `text-clone-create'.  Text clones are chunks of text
 +that are kept identical by transparently propagating changes from one
 +clone to the other.
 +
 +*** The function `insert-string' is now obsolete.
 +
 +** Filling changes.
 +
 +*** In determining an adaptive fill prefix, Emacs now tries the function in
 +`adaptive-fill-function' _before_ matching the buffer line against
 +`adaptive-fill-regexp' rather than _after_ it.
 +
 +** Atomic change groups.
 +
 +To perform some changes in the current buffer "atomically" so that
 +they either all succeed or are all undone, use `atomic-change-group'
 +around the code that makes changes.  For instance:
 +
 +  (atomic-change-group
 +    (insert foo)
 +    (delete-region x y))
 +
 +If an error (or other nonlocal exit) occurs inside the body of
 +`atomic-change-group', it unmakes all the changes in that buffer that
 +were during the execution of the body.  The change group has no effect
 +on any other buffers--any such changes remain.
 +
 +If you need something more sophisticated, you can directly call the
 +lower-level functions that `atomic-change-group' uses.  Here is how.
 +
 +To set up a change group for one buffer, call `prepare-change-group'.
 +Specify the buffer as argument; it defaults to the current buffer.
 +This function returns a "handle" for the change group.  You must save
 +the handle to activate the change group and then finish it.
 +
 +Before you change the buffer again, you must activate the change
 +group.  Pass the handle to `activate-change-group' afterward to
 +do this.
 +
 +After you make the changes, you must finish the change group.  You can
 +either accept the changes or cancel them all.  Call
 +`accept-change-group' to accept the changes in the group as final;
 +call `cancel-change-group' to undo them all.
 +
 +You should use `unwind-protect' to make sure the group is always
 +finished.  The call to `activate-change-group' should be inside the
 +`unwind-protect', in case the user types C-g just after it runs.
 +(This is one reason why `prepare-change-group' and
 +`activate-change-group' are separate functions.)  Once you finish the
 +group, don't use the handle again--don't try to finish the same group
 +twice.
 +
 +To make a multibuffer change group, call `prepare-change-group' once
 +for each buffer you want to cover, then use `nconc' to combine the
 +returned values, like this:
 +
 +  (nconc (prepare-change-group buffer-1)
 +         (prepare-change-group buffer-2))
 +
 +You can then activate the multibuffer change group with a single call
 +to `activate-change-group', and finish it with a single call to
 +`accept-change-group' or `cancel-change-group'.
 +
 +Nested use of several change groups for the same buffer works as you
 +would expect.  Non-nested use of change groups for the same buffer
 +will lead to undesirable results, so don't let it happen; the first
 +change group you start for any given buffer should be the last one
 +finished.
 +
 +** Buffer-related changes:
 +
 +*** The new function `buffer-local-value' returns the buffer-local
 +binding of VARIABLE (a symbol) in buffer BUFFER.  If VARIABLE does not
 +have a buffer-local binding in buffer BUFFER, it returns the default
 +value of VARIABLE instead.
 +
 +*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST.
 +
 +If it is non-nil, it specifies which buffers to list.
 +
 +*** `kill-buffer-hook' is now a permanent local.
 +
 +*** The function `frame-or-buffer-changed-p' now lets you maintain
 +various status records in parallel.
 +
 +It takes a variable (a symbol) as argument.  If the variable is non-nil,
 +then its value should be a vector installed previously by
 +`frame-or-buffer-changed-p'.  If the frame names, buffer names, buffer
 +order, or their read-only or modified flags have changed, since the
 +time the vector's contents were recorded by a previous call to
 +`frame-or-buffer-changed-p', then the function returns t.  Otherwise
 +it returns nil.
 +
 +On the first call to `frame-or-buffer-changed-p', the variable's
 +value should be nil.  `frame-or-buffer-changed-p' stores a suitable
 +vector into the variable and returns t.
 +
 +If the variable is itself nil, then `frame-or-buffer-changed-p' uses,
 +for compatibility, an internal variable which exists only for this
 +purpose.
 +
 +*** The function `read-buffer' follows the convention for reading from
 +the minibuffer with a default value: if DEF is non-nil, the minibuffer
 +prompt provided in PROMPT is edited to show the default value provided
 +in DEF before the terminal colon and space.
 +
 +** Searching and matching changes:
 +
 +*** New function `looking-back' checks whether a regular expression matches
 +the text before point.  Specifying the LIMIT argument bounds how far
 +back the match can start; this is a way to keep it from taking too long.
 +
 +*** The new variable `search-spaces-regexp' controls how to search
 +for spaces in a regular expression.  If it is non-nil, it should be a
 +regular expression, and any series of spaces stands for that regular
 +expression.  If it is nil, spaces stand for themselves.
 +
 +Spaces inside of constructs such as `[..]' and inside loops such as
 +`*', `+', and `?' are never replaced with `search-spaces-regexp'.
 +
 +*** New regular expression operators, `\_<' and `\_>'.
 +
 +These match the beginning and end of a symbol.  A symbol is a
 +non-empty sequence of either word or symbol constituent characters, as
 +specified by the syntax table.
 +
 +*** `skip-chars-forward' and `skip-chars-backward' now handle
 +character classes such as `[:alpha:]', along with individual
 +characters and ranges.
 +
 +*** In `replace-match', the replacement text no longer inherits
 +properties from surrounding text.
 +
 +*** The list returned by `(match-data t)' now has the buffer as a final
 +element, if the last match was on a buffer.  `set-match-data'
 +accepts such a list for restoring the match state.
 +
 +*** Functions `match-data' and `set-match-data' now have an optional
 +argument `reseat'.  When non-nil, all markers in the match data list
 +passed to these functions will be reseated to point to nowhere.
 +
 +*** rx.el has new corresponding `symbol-start' and `symbol-end' elements.
 +
 +*** The default value of `sentence-end' is now defined using the new
 +variable `sentence-end-without-space', which contains such characters
 +that end a sentence without following spaces.
 +
 +The function `sentence-end' should be used to obtain the value of the
 +variable `sentence-end'.  If the variable `sentence-end' is nil, then
 +this function returns the regexp constructed from the variables
 +`sentence-end-without-period', `sentence-end-double-space' and
 +`sentence-end-without-space'.
 +
 +** Undo changes:
 +
 +*** `buffer-undo-list' allows programmable elements.
 +
 +These elements have the form (apply FUNNAME . ARGS), where FUNNAME is
 +a symbol other than t or nil.  That stands for a high-level change
 +that should be undone by evaluating (apply FUNNAME ARGS).
 +
 +These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS)
 +which indicates that the change which took place was limited to the
 +range BEG...END and increased the buffer size by DELTA.
 +
 +*** If the buffer's undo list for the current command gets longer than
 +`undo-outer-limit', garbage collection empties it.  This is to prevent
 +it from using up the available memory and choking Emacs.
 +
 +** Killing and yanking changes:
 +
 +*** New `yank-handler' text property can be used to control how
 +previously killed text on the kill ring is reinserted.
 +
 +The value of the `yank-handler' property must be a list with one to four
 +elements with the following format:
 +  (FUNCTION PARAM NOEXCLUDE UNDO).
 +
 +The `insert-for-yank' function looks for a yank-handler property on
 +the first character on its string argument (typically the first
 +element on the kill-ring).  If a `yank-handler' property is found,
 +the normal behavior of `insert-for-yank' is modified in various ways:
 +
 +  When FUNCTION is present and non-nil, it is called instead of `insert'
 +to insert the string.  FUNCTION takes one argument--the object to insert.
 +  If PARAM is present and non-nil, it replaces STRING as the object
 +passed to FUNCTION (or `insert'); for example, if FUNCTION is
 +`yank-rectangle', PARAM should be a list of strings to insert as a
 +rectangle.
 +  If NOEXCLUDE is present and non-nil, the normal removal of the
 +`yank-excluded-properties' is not performed; instead FUNCTION is
 +responsible for removing those properties.  This may be necessary
 +if FUNCTION adjusts point before or after inserting the object.
 +  If UNDO is present and non-nil, it is a function that will be called
 +by `yank-pop' to undo the insertion of the current object.  It is
 +called with two arguments, the start and end of the current region.
 +FUNCTION can set `yank-undo-function' to override the UNDO value.
 +
 +*** The functions `kill-new', `kill-append', and `kill-region' now have an
 +optional argument to specify the `yank-handler' text property to put on
 +the killed text.
 +
 +*** The function `yank-pop' will now use a non-nil value of the variable
 +`yank-undo-function' (instead of `delete-region') to undo the previous
 +`yank' or `yank-pop' command (or a call to `insert-for-yank').  The function
 +`insert-for-yank' automatically sets that variable according to the UNDO
 +element of the string argument's `yank-handler' text property if present.
 +
 +*** The function `insert-for-yank' now supports strings where the
 +`yank-handler' property does not span the first character of the
 +string.  The old behavior is available if you call
 +`insert-for-yank-1' instead.
 +
 +** Syntax table changes:
 +
 +*** The new function `syntax-ppss' provides an efficient way to find the
 +current syntactic context at point.
 +
 +*** The new function `syntax-after' returns the syntax code
 +of the character after a specified buffer position, taking account
 +of text properties as well as the character code.
 +
 +*** `syntax-class' extracts the class of a syntax code (as returned
 +by `syntax-after').
 +
 +*** The macro `with-syntax-table' no longer copies the syntax table.
 +
 +** File operation changes:
 +
 +*** New vars `exec-suffixes' and `load-suffixes' used when
 +searching for an executable or an Emacs Lisp file.
 +
 +*** New function `locate-file' searches for a file in a list of directories.
 +`locate-file' accepts a name of a file to search (a string), and two
 +lists: a list of directories to search in and a list of suffixes to
 +try; typical usage might use `exec-path' and `load-path' for the list
 +of directories, and `exec-suffixes' and `load-suffixes' for the list
 +of suffixes.  The function also accepts a predicate argument to
 +further filter candidate files.
 +
 +One advantage of using this function is that the list of suffixes in
 +`exec-suffixes' is OS-dependant, so this function will find
 +executables without polluting Lisp code with OS dependencies.
 +
 +*** The new function `file-remote-p' tests a file name and returns
 +non-nil if it specifies a remote file (one that Emacs accesses using
 +its own special methods and not directly through the file system).
 +The value in that case is an identifier for the remote file system.
 +
 +*** The new hook `before-save-hook' is invoked by `basic-save-buffer'
 +before saving buffers.  This allows packages to perform various final
 +tasks.  For example, it can be used by the copyright package to make
 +sure saved files have the current year in any copyright headers.
 +
 +*** `file-chase-links' now takes an optional second argument LIMIT which
 +specifies the maximum number of links to chase through.  If after that
 +many iterations the file name obtained is still a symbolic link,
 +`file-chase-links' returns it anyway.
 +
 +*** Functions `file-name-sans-extension' and `file-name-extension' now
 +ignore the leading dots in file names, so that file names such as
 +`.emacs' are treated as extensionless.
 +
 +*** If `buffer-save-without-query' is non-nil in some buffer,
 +`save-some-buffers' will always save that buffer without asking (if
 +it's modified).
 +
 +*** `buffer-auto-save-file-format' is the new name for what was
 +formerly called `auto-save-file-format'.  It is now a permanent local.
 +
 +*** `visited-file-modtime' and `calendar-time-from-absolute' now return
 +a list of two integers, instead of a cons.
 +
 +*** The precedence of file name handlers has been changed.
 +
 +Instead of choosing the first handler that matches,
 +`find-file-name-handler' now gives precedence to a file name handler
 +that matches nearest the end of the file name.  More precisely, the
 +handler whose (match-beginning 0) is the largest is chosen.  In case
 +of ties, the old "first matched" rule applies.
 +
 +*** A file name handler can declare which operations it handles.
 +
 +You do this by putting an `operation' property on the handler name
 +symbol.  The property value should be a list of the operations that
 +the handler really handles.  It won't be called for any other
 +operations.
 +
 +This is useful for autoloaded handlers, to prevent them from being
 +autoloaded when not really necessary.
 +
 +*** The function `make-auto-save-file-name' is now handled by file
 +name handlers.  This will be exploited for remote files mainly.
 +
 +*** The function `file-name-completion' accepts an optional argument
 +PREDICATE, and rejects completion candidates that don't satisfy PREDICATE.
 +
 +*** The new primitive `set-file-times' sets a file's access and
 +modification times.  Magic file name handlers can handle this
 +operation.
 +
 +** Input changes:
 +
 +*** Functions `y-or-n-p', `read-char', `read-key-sequence' and the like, that
 +display a prompt but don't use the minibuffer, now display the prompt
 +using the text properties (esp. the face) of the prompt string.
 +
 +*** The functions `read-event', `read-char', and `read-char-exclusive'
 +have a new optional argument SECONDS.  If non-nil, this specifies a
 +maximum time to wait for input, in seconds.  If no input arrives after
 +this time elapses, the functions stop waiting and return nil.
 +
 +*** An interactive specification can now use the code letter `U' to get
 +the up-event that was discarded in case the last key sequence read for a
 +previous `k' or `K' argument was a down-event; otherwise nil is used.
 +
 +*** The new interactive-specification `G' reads a file name
 +much like `F', but if the input is a directory name (even defaulted),
 +it returns just the directory name.
 +
 +*** (while-no-input BODY...) runs BODY, but only so long as no input
 +arrives.  If the user types or clicks anything, BODY stops as if a
 +quit had occurred.  `while-no-input' returns the value of BODY, if BODY
 +finishes.  It returns nil if BODY was aborted by a quit, and t if
 +BODY was aborted by arrival of input.
 +
 +*** `recent-keys' now returns the last 300 keys.
 +
 +** Minibuffer changes:
 +
 +*** The new function `minibufferp' returns non-nil if its optional
 +buffer argument is a minibuffer.  If the argument is omitted, it
 +defaults to the current buffer.
 +
 +*** New function `minibuffer-selected-window' returns the window which
 +was selected when entering the minibuffer.
 +
 +*** The `read-file-name' function now takes an additional argument which
 +specifies a predicate which the file name read must satisfy.  The
 +new variable `read-file-name-predicate' contains the predicate argument
 +while reading the file name from the minibuffer; the predicate in this
 +variable is used by read-file-name-internal to filter the completion list.
 +
 +*** The new variable `read-file-name-function' can be used by Lisp code
 +to override the built-in `read-file-name' function.
 +
 +*** The new variable `read-file-name-completion-ignore-case' specifies
 +whether completion ignores case when reading a file name with the
 +`read-file-name' function.
 +
 +*** The new function `read-directory-name' is for reading a directory name.
 +
 +It is like `read-file-name' except that the defaulting works better
 +for directories, and completion inside it shows only directories.
 +
 +*** The new variable `history-add-new-input' specifies whether to add new
 +elements in history.  If set to nil, minibuffer reading functions don't
 +add new elements to the history list, so it is possible to do this
 +afterwards by calling `add-to-history' explicitly.
 +
 +** Completion changes:
 +
 +*** The new function `minibuffer-completion-contents' returns the contents
 +of the minibuffer just before point.  That is what completion commands
 +operate on.
 +
 +*** The functions `all-completions' and `try-completion' now accept lists
 +of strings as well as hash-tables additionally to alists, obarrays
 +and functions.  Furthermore, the function `test-completion' is now
 +exported to Lisp.  The keys in alists and hash tables can be either
 +strings or symbols, which are automatically converted with to strings.
 +
 +*** The new macro `dynamic-completion-table' supports using functions
 +as a dynamic completion table.
 +
 +  (dynamic-completion-table FUN)
 +
 +FUN is called with one argument, the string for which completion is required,
 +and it should return an alist containing all the intended possible
 +completions.  This alist can be a full list of possible completions so that FUN
 +can ignore the value of its argument.  If completion is performed in the
 +minibuffer, FUN will be called in the buffer from which the minibuffer was
 +entered.  `dynamic-completion-table' then computes the completion.
 +
 +*** The new macro `lazy-completion-table' initializes a variable
 +as a lazy completion table.
 +
 +  (lazy-completion-table VAR FUN)
 +
 +If the completion table VAR is used for the first time (e.g., by passing VAR
 +as an argument to `try-completion'), the function FUN is called with no
 +arguments.  FUN must return the completion table that will be stored in VAR.
 +If completion is requested in the minibuffer, FUN will be called in the buffer
 +from which the minibuffer was entered.  The return value of
 +`lazy-completion-table' must be used to initialize the value of VAR.
 +
 +** Abbrev changes:
 +
 +*** `define-abbrev' now accepts an optional argument SYSTEM-FLAG.
 +
 +If non-nil, this marks the abbrev as a "system" abbrev, which means
 +that it won't be stored in the user's abbrevs file if he saves the
 +abbrevs.  Major modes that predefine some abbrevs should always
 +specify this flag.
 +
 +*** The new function `copy-abbrev-table' copies an abbrev table.
 +
 +It returns a new abbrev table that is a copy of a given abbrev table.
 +
 +** Enhancements to keymaps.
 +
 +*** Cleaner way to enter key sequences.
 +
 +You can enter a constant key sequence in a more natural format, the
 +same one used for saving keyboard macros, using the macro `kbd'.  For
 +example,
 +
 +(kbd "C-x C-f") => "\^x\^f"
 +
 +Actually, this format has existed since Emacs 20.1.
 +
 +*** Interactive commands can be remapped through keymaps.
 +
 +This is an alternative to using `defadvice' or `substitute-key-definition'
 +to modify the behavior of a key binding using the normal keymap
 +binding and lookup functionality.
 +
 +When a key sequence is bound to a command, and that command is
 +remapped to another command, that command is run instead of the
 +original command.
 +
 +Example:
 +Suppose that minor mode `my-mode' has defined the commands
 +`my-kill-line' and `my-kill-word', and it wants C-k (and any other key
 +bound to `kill-line') to run the command `my-kill-line' instead of
 +`kill-line', and likewise it wants to run `my-kill-word' instead of
 +`kill-word'.
 +
 +Instead of rebinding C-k and the other keys in the minor mode map,
 +command remapping allows you to directly map `kill-line' into
 +`my-kill-line' and `kill-word' into `my-kill-word' using `define-key':
 +
 +   (define-key my-mode-map [remap kill-line] 'my-kill-line)
 +   (define-key my-mode-map [remap kill-word] 'my-kill-word)
 +
 +When `my-mode' is enabled, its minor mode keymap is enabled too.  So
 +when the user types C-k, that runs the command `my-kill-line'.
 +
 +Only one level of remapping is supported.  In the above example, this
 +means that if `my-kill-line' is remapped to `other-kill', then C-k still
 +runs `my-kill-line'.
 +
 +The following changes have been made to provide command remapping:
 +
 +- Command remappings are defined using `define-key' with a prefix-key
 +  `remap', i.e. `(define-key MAP [remap CMD] DEF)' remaps command CMD
 +  to definition DEF in keymap MAP.  The definition is not limited to
 +  another command; it can be anything accepted for a normal binding.
 +
 +- The new function `command-remapping' returns the binding for a
 +  remapped command in the current keymaps, or nil if not remapped.
 +
 +- `key-binding' now remaps interactive commands unless the optional
 +  third argument NO-REMAP is non-nil.
 +
 +- `where-is-internal' now returns nil for a remapped command (e.g.
 +  `kill-line', when `my-mode' is enabled), and the actual key binding for
 +  the command it is remapped to (e.g. C-k for my-kill-line).
 +  It also has a new optional fifth argument, NO-REMAP, which inhibits
 +  remapping if non-nil (e.g. it returns "C-k" for `kill-line', and
 +  "<kill-line>" for `my-kill-line').
 +
 +- The new variable `this-original-command' contains the original
 +  command before remapping.  It is equal to `this-command' when the
 +  command was not remapped.
 +
 +*** The definition of a key-binding passed to define-key can use XEmacs-style
 +key-sequences, such as [(control a)].
 +
 +*** New keymaps for typing file names
 +
 +Two new keymaps, `minibuffer-local-filename-completion-map'  and
 +`minibuffer-local-must-match-filename-map', apply whenever
 +Emacs reads a file name in the minibuffer.  These key maps override
 +the usual binding of SPC to `minibuffer-complete-word' (so that file
 +names with embedded spaces could be typed without the need to quote
 +the spaces).
 +
 +*** New function `current-active-maps' returns a list of currently
 +active keymaps.
 +
 +*** New function `describe-buffer-bindings' inserts the list of all
 +defined keys and their definitions.
 +
 +*** New function `keymap-prompt' returns the prompt string of a keymap.
 +
 +*** If text has a `keymap' property, that keymap takes precedence
 +over minor mode keymaps.
 +
 +*** The `keymap' property now also works at the ends of overlays and
 +text properties, according to their stickiness.  This also means that it
 +works with empty overlays.  The same hold for the `local-map' property.
 +
 +*** `key-binding' will now look up mouse-specific bindings.  The
 +keymaps consulted by `key-binding' will get adapted if the key
 +sequence is started with a mouse event.  Instead of letting the click
 +position be determined from the key sequence itself, it is also
 +possible to specify it with an optional argument explicitly.
 +
 +*** `define-key-after' now accepts keys longer than 1.
 +
 +*** (map-keymap FUNCTION KEYMAP) applies the function to each binding
 +in the keymap.
 +
 +*** New variable `emulation-mode-map-alists'.
 +
 +Lisp packages using many minor mode keymaps can now maintain their own
 +keymap alist separate from `minor-mode-map-alist' by adding their
 +keymap alist to this list.
 +
 +*** Dense keymaps now handle inheritance correctly.
 +
 +Previously a dense keymap would hide all of the simple-char key
 +bindings of the parent keymap.
 +
 +** Enhancements to process support
 +
 +*** Adaptive read buffering of subprocess output.
 +
 +On some systems, when Emacs reads the output from a subprocess, the
 +output data is read in very small blocks, potentially resulting in
 +very poor performance.  This behavior can be remedied to some extent
 +by setting the new variable `process-adaptive-read-buffering' to a
 +non-nil value (the default), as it will automatically delay reading
 +from such processes, allowing them to produce more output before
 +Emacs tries to read it.
 +
 +*** Processes now have an associated property list where programs can
 +maintain process state and other per-process related information.
 +
 +Use the new functions `process-get' and `process-put' to access, add,
 +and modify elements on this property list.  Use the new functions
 +`process-plist' and `set-process-plist' to access and replace the
 +entire property list of a process.
 +
 +*** Function `list-processes' now has an optional argument; if non-nil,
 +it lists only the processes whose query-on-exit flag is set.
 +
 +*** New fns `set-process-query-on-exit-flag' and `process-query-on-exit-flag'.
 +
 +These replace the old function `process-kill-without-query'.  That
 +function is still supported, but new code should use the new
 +functions.
 +
 +*** The new function `call-process-shell-command'.
 +
 +This executes a shell command synchronously in a separate process.
 +
 +*** The new function `process-file' is similar to `call-process', but
 +obeys file handlers.  The file handler is chosen based on
 +`default-directory'.
 +
 +*** Function `signal-process' now accepts a process object or process
 +name in addition to a process id to identify the signaled process.
 +
 +*** Function `accept-process-output' has a new optional fourth arg
 +JUST-THIS-ONE.  If non-nil, only output from the specified process
 +is handled, suspending output from other processes.  If value is an
 +integer, also inhibit running timers.  This feature is generally not
 +recommended, but may be necessary for specific applications, such as
 +speech synthesis.
 +
 +*** A process filter function gets the output as multibyte string
 +if the process specifies t for its filter's multibyteness.
 +
 +That multibyteness is decided by the value of
 +`default-enable-multibyte-characters' when the process is created, and
 +you can change it later with `set-process-filter-multibyte'.
 +
 +*** The new function `set-process-filter-multibyte' sets the
 +multibyteness of the strings passed to the process's filter.
 +
 +*** The new function `process-filter-multibyte-p' returns the
 +multibyteness of the strings passed to the process's filter.
 +
 +*** If a process's coding system is `raw-text' or `no-conversion' and its
 +buffer is multibyte, the output of the process is at first converted
 +to multibyte by `string-to-multibyte' then inserted in the buffer.
 +Previously, it was converted to multibyte by `string-as-multibyte',
 +which was not compatible with the behavior of file reading.
 +
 +** Enhanced networking support.
 +
 +*** The new `make-network-process' function makes network connections.
 +It allows opening of stream and datagram connections to a server, as well as
 +create a stream or datagram server inside Emacs.
 +
 +- A server is started using :server t arg.
 +- Datagram connection is selected using :type 'datagram arg.
 +- A server can open on a random port using :service t arg.
 +- Local sockets are supported using :family 'local arg.
 +- IPv6 is supported (when available).  You may explicitly select IPv6
 +  using :family 'ipv6 arg.
 +- Non-blocking connect is supported using :nowait t arg.
 +- The process' property list can be initialized using :plist PLIST arg;
 +  a copy of the server process' property list is automatically inherited
 +  by new client processes created to handle incoming connections.
 +
 +To test for the availability of a given feature, use featurep like this:
 +  (featurep 'make-network-process '(:type datagram))
 +  (featurep 'make-network-process '(:family ipv6))
 +
 +*** The old `open-network-stream' now uses `make-network-process'.
 +
 +*** `process-contact' has an optional KEY argument.
 +
 +Depending on this argument, you can get the complete list of network
 +process properties or a specific property.  Using :local or :remote as
 +the KEY, you get the address of the local or remote end-point.
 +
 +An Inet address is represented as a 5 element vector, where the first
 +4 elements contain the IP address and the fifth is the port number.
 +
 +*** New functions `stop-process' and `continue-process'.
 +
 +These functions stop and restart communication through a network
 +connection.  For a server process, no connections are accepted in the
 +stopped state.  For a client process, no input is received in the
 +stopped state.
 +
 +*** New function `format-network-address'.
 +
 +This function reformats the Lisp representation of a network address
 +to a printable string.  For example, an IP address A.B.C.D and port
 +number P is represented as a five element vector [A B C D P], and the
 +printable string returned for this vector is "A.B.C.D:P".  See the doc
 +string for other formatting options.
 +
 +*** New function `network-interface-list'.
 +
 +This function returns a list of network interface names and their
 +current network addresses.
 +
 +*** New function `network-interface-info'.
 +
 +This function returns the network address, hardware address, current
 +status, and other information about a specific network interface.
 +
 +*** New functions `process-datagram-address', `set-process-datagram-address'.
 +
 +These functions are used with datagram-based network processes to get
 +and set the current address of the remote partner.
 +
 +*** Deleting a network process with `delete-process' calls the sentinel.
 +
 +The status message passed to the sentinel for a deleted network
 +process is "deleted".  The message passed to the sentinel when the
 +connection is closed by the remote peer has been changed to
 +"connection broken by remote peer".
 +
 +** Using window objects:
 +
 +*** You can now make a window as short as one line.
 +
 +A window that is just one line tall does not display either a mode
 +line or a header line, even if the variables `mode-line-format' and
 +`header-line-format' call for them.  A window that is two lines tall
 +cannot display both a mode line and a header line at once; if the
 +variables call for both, only the mode line actually appears.
 +
 +*** The new function `window-inside-edges' returns the edges of the
 +actual text portion of the window, not including the scroll bar or
 +divider line, the fringes, the display margins, the header line and
 +the mode line.
 +
 +*** The new functions `window-pixel-edges' and `window-inside-pixel-edges'
 +return window edges in units of pixels, rather than columns and lines.
 +
 +*** New function `window-body-height'.
 +
 +This is like `window-height' but does not count the mode line or the
 +header line.
 +
 +*** The new function `adjust-window-trailing-edge' moves the right
 +or bottom edge of a window.  It does not move other window edges.
 +
 +*** The new macro `with-selected-window' temporarily switches the
 +selected window without impacting the order of `buffer-list'.
 +It saves and restores the current buffer, too.
 +
 +*** `select-window' takes an optional second argument NORECORD.
 +
 +This is like `switch-to-buffer'.
 +
 +*** `save-selected-window' now saves and restores the selected window
 +of every frame.  This way, it restores everything that can be changed
 +by calling `select-window'.  It also saves and restores the current
 +buffer.
 +
 +*** `set-window-buffer' has an optional argument KEEP-MARGINS.
 +
 +If non-nil, that says to preserve the window's current margin, fringe,
 +and scroll-bar settings.
 +
 +*** The new function `window-tree' returns a frame's window tree.
 +
 +*** The functions `get-lru-window' and `get-largest-window' take an optional
 +argument `dedicated'.  If non-nil, those functions do not ignore
 +dedicated windows.
 +
 +** Customizable fringe bitmaps
 +
 +*** There are new display properties, `left-fringe' and `right-fringe',
 +that can be used to show a specific bitmap in the left or right fringe
 +bitmap of the display line.
 +
 +Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a
 +symbol identifying a fringe bitmap, either built-in or defined with
 +`define-fringe-bitmap', and FACE is an optional face name to be used
 +for displaying the bitmap instead of the default `fringe' face.
 +When specified, FACE is automatically merged with the `fringe' face.
 +
 +*** New buffer-local variables `fringe-indicator-alist' and
 +`fringe-cursor-alist' maps between logical (internal) fringe indicator
 +and cursor symbols and the actual fringe bitmaps to be displayed.
 +This decouples the logical meaning of the fringe indicators from the
 +physical appearance, as well as allowing different fringe bitmaps to
 +be used in different windows showing different buffers.
 +
 +*** New function `define-fringe-bitmap' can now be used to create new
 +fringe bitmaps, as well as change the built-in fringe bitmaps.
 +
 +*** New function `destroy-fringe-bitmap' deletes a fringe bitmap
 +or restores a built-in one to its default value.
 +
 +*** New function `set-fringe-bitmap-face' specifies the face to be
 +used for a specific fringe bitmap.  The face is automatically merged
 +with the `fringe' face, so normally, the face should only specify the
 +foreground color of the bitmap.
 +
 +*** New function `fringe-bitmaps-at-pos' returns the current fringe
 +bitmaps in the display line at a given buffer position.
 +
 +** Other window fringe features:
 +
 +*** Controlling the default left and right fringe widths.
 +
 +The default left and right fringe widths for all windows of a frame
 +can now be controlled by setting the `left-fringe' and `right-fringe'
 +frame parameters to an integer value specifying the width in pixels.
 +Setting the width to 0 effectively removes the corresponding fringe.
 +
 +The actual default fringe widths for the frame may deviate from the
 +specified widths, since the combined fringe widths must match an
 +integral number of columns.  The extra width is distributed evenly
 +between the left and right fringe.  To force a specific fringe width,
 +specify the width as a negative integer (if both widths are negative,
 +only the left fringe gets the specified width).
 +
 +Setting the width to nil (the default), restores the default fringe
 +width which is the minimum number of pixels necessary to display any
 +of the currently defined fringe bitmaps.  The width of the built-in
 +fringe bitmaps is 8 pixels.
 +
 +*** Per-window fringe and scrollbar settings
 +
 +**** Windows can now have their own individual fringe widths and
 +position settings.
 +
 +To control the fringe widths of a window, either set the buffer-local
 +variables `left-fringe-width', `right-fringe-width', or call
 +`set-window-fringes'.
 +
 +To control the fringe position in a window, that is, whether fringes
 +are positioned between the display margins and the window's text area,
 +or at the edges of the window, either set the buffer-local variable
 +`fringes-outside-margins' or call `set-window-fringes'.
 +
 +The function `window-fringes' can be used to obtain the current
 +settings.  To make `left-fringe-width', `right-fringe-width', and
 +`fringes-outside-margins' take effect, you must set them before
 +displaying the buffer in a window, or use `set-window-buffer' to force
 +an update of the display margins.
 +
 +**** Windows can now have their own individual scroll-bar settings
 +controlling the width and position of scroll-bars.
 +
 +To control the scroll-bar of a window, either set the buffer-local
 +variables `scroll-bar-mode' and `scroll-bar-width', or call
 +`set-window-scroll-bars'.  The function `window-scroll-bars' can be
 +used to obtain the current settings.  To make `scroll-bar-mode' and
 +`scroll-bar-width' take effect, you must set them before displaying
 +the buffer in a window, or use `set-window-buffer' to force an update
 +of the display margins.
 +
 +** Redisplay features:
 +
 +*** `sit-for' can now be called with args (SECONDS &optional NODISP).
 +
 +*** Iconifying or deiconifying a frame no longer makes sit-for return.
 +
 +*** New function `redisplay' causes an immediate redisplay if no input is
 +available, equivalent to (sit-for 0).  The call (redisplay t) forces
 +an immediate redisplay even if input is pending.
 +
 +*** New function `force-window-update' can initiate a full redisplay of
 +one or all windows.  Normally, this is not needed as changes in window
 +contents are detected automatically.  However, certain implicit
 +changes to mode lines, header lines, or display properties may require
 +forcing an explicit window update.
 +
 +*** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able
 +to display CHAR.  More precisely, if the selected frame's fontset has
 +a font to display the character set that CHAR belongs to.
 +
 +Fontsets can specify a font on a per-character basis; when the fontset
 +does that, this value cannot be accurate.
 +
 +*** You can define multiple overlay arrows via the new
 +variable `overlay-arrow-variable-list'.
 +
 +It contains a list of variables which contain overlay arrow position
 +markers, including the original `overlay-arrow-position' variable.
 +
 +Each variable on this list can have individual `overlay-arrow-string'
 +and `overlay-arrow-bitmap' properties that specify an overlay arrow
 +string (for non-window terminals) or fringe bitmap (for window
 +systems) to display at the corresponding overlay arrow position.
 +If either property is not set, the default `overlay-arrow-string' or
 +'overlay-arrow-fringe-bitmap' will be used.
 +
 +*** New `line-height' and `line-spacing' properties for newline characters
 +
 +A newline can now have `line-height' and `line-spacing' text or overlay
 +properties that control the height of the corresponding display row.
 +
 +If the `line-height' property value is t, the newline does not
 +contribute to the height of the display row; instead the height of the
 +newline glyph is reduced.  Also, a `line-spacing' property on this
 +newline is ignored.  This can be used to tile small images or image
 +slices without adding blank areas between the images.
 +
 +If the `line-height' property value is a positive integer, the value
 +specifies the minimum line height in pixels.  If necessary, the line
 +height it increased by increasing the line's ascent.
 +
 +If the `line-height' property value is a float, the minimum line
 +height is calculated by multiplying the default frame line height by
 +the given value.
 +
 +If the `line-height' property value is a cons (FACE . RATIO), the
 +minimum line height is calculated as RATIO * height of named FACE.
 +RATIO is int or float.  If FACE is t, it specifies the current face.
 +
 +If the `line-height' property value is a cons (nil . RATIO), the line
 +height is calculated as RATIO * actual height of the line's contents.
 +
 +If the `line-height' value is a cons (HEIGHT . TOTAL), HEIGHT specifies
 +the line height as described above, while TOTAL is any of the forms
 +described above and specifies the total height of the line, causing a
 +varying number of pixels to be inserted after the line to make it line
 +exactly that many pixels high.
 +
 +If the `line-spacing' property value is an positive integer, the value
 +is used as additional pixels to insert after the display line; this
 +overrides the default frame `line-spacing' and any buffer local value of
 +the `line-spacing' variable.
 +
 +If the `line-spacing' property is a float or cons, the line spacing
 +is calculated as specified above for the `line-height' property.
 +
 +*** The buffer local `line-spacing' variable can now have a float value,
 +which is used as a height relative to the default frame line height.
 +
 +*** Enhancements to stretch display properties
 +
 +The display property stretch specification form `(space PROPS)', where
 +PROPS is a property list, now allows pixel based width and height
 +specifications, as well as enhanced horizontal text alignment.
 +
 +The value of these properties can now be a (primitive) expression
 +which is evaluated during redisplay.  The following expressions
 +are supported:
 +
 +EXPR ::= NUM | (NUM) | UNIT | ELEM | POS | IMAGE | FORM
 +NUM  ::= INTEGER | FLOAT | SYMBOL
 +UNIT ::= in | mm | cm | width | height
 +ELEM ::= left-fringe | right-fringe | left-margin | right-margin
 +      |  scroll-bar | text
 +POS  ::= left | center | right
 +FORM ::= (NUM . EXPR) | (OP EXPR ...)
 +OP   ::= + | -
 +
 +The form `NUM' specifies a fractional width or height of the default
 +frame font size.  The form `(NUM)' specifies an absolute number of
 +pixels.  If a symbol is specified, its buffer-local variable binding
 +is used.  The `in', `mm', and `cm' units specifies the number of
 +pixels per inch, milli-meter, and centi-meter, resp.  The `width' and
 +`height' units correspond to the width and height of the current face
 +font.  An image specification corresponds to the width or height of
 +the image.
 +
 +The `left-fringe', `right-fringe', `left-margin', `right-margin',
 +`scroll-bar', and `text' elements specify to the width of the
 +corresponding area of the window.
 +
 +The `left', `center', and `right' positions can be used with :align-to
 +to specify a position relative to the left edge, center, or right edge
 +of the text area.  One of the above window elements (except `text')
 +can also be used with :align-to to specify that the position is
 +relative to the left edge of the given area.  Once the base offset for
 +a relative position has been set (by the first occurrence of one of
 +these symbols), further occurrences of these symbols are interpreted as
 +the width of the area.
 +
 +For example, to align to the center of the left-margin, use
 +    :align-to (+ left-margin (0.5 . left-margin))
 +
 +If no specific base offset is set for alignment, it is always relative
 +to the left edge of the text area.  For example, :align-to 0 in a
 +header line aligns with the first text column in the text area.
 +
 +The value of the form `(NUM . EXPR)' is the value of NUM multiplied by
 +the value of the expression EXPR.  For example, (2 . in) specifies a
 +width of 2 inches, while (0.5 . IMAGE) specifies half the width (or
 +height) of the specified image.
 +
 +The form `(+ EXPR ...)' adds up the value of the expressions.
 +The form `(- EXPR ...)' negates or subtracts the value of the expressions.
 +
 +*** Normally, the cursor is displayed at the end of any overlay and
 +text property string that may be present at the current window
 +position.  The cursor can now be placed on any character of such
 +strings by giving that character a non-nil `cursor' text property.
 +
 +*** The display space :width and :align-to text properties are now
 +supported on text terminals.
 +
 +*** Support for displaying image slices
 +
 +**** New display property (slice X Y WIDTH HEIGHT) can be used with
 +an image property to display only a specific slice of the image.
 +
 +**** Function `insert-image' has new optional fourth arg to
 +specify image slice (X Y WIDTH HEIGHT).
 +
 +**** New function `insert-sliced-image' inserts a given image as a
 +specified number of evenly sized slices (rows x columns).
 +
 +*** Images can now have an associated image map via the :map property.
 +
 +An image map is an alist where each element has the format (AREA ID PLIST).
 +An AREA is specified as either a rectangle, a circle, or a polygon:
 +A rectangle is a cons (rect . ((X0 . Y0) . (X1 . Y1))) specifying the
 +pixel coordinates of the upper left and bottom right corners.
 +A circle is a cons (circle . ((X0 . Y0) . R)) specifying the center
 +and the radius of the circle; R can be a float or integer.
 +A polygon is a cons (poly . [X0 Y0 X1 Y1 ...]) where each pair in the
 +vector describes one corner in the polygon.
 +
 +When the mouse pointer is above a hot-spot area of an image, the
 +PLIST of that hot-spot is consulted; if it contains a `help-echo'
 +property it defines a tool-tip for the hot-spot, and if it contains
 +a `pointer' property, it defines the shape of the mouse cursor when
 +it is over the hot-spot.  See the variable `void-area-text-pointer'
 +for possible pointer shapes.
 +
 +When you click the mouse when the mouse pointer is over a hot-spot,
 +an event is composed by combining the ID of the hot-spot with the
 +mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'.
 +
 +*** The function `find-image' now searches in etc/images/ and etc/.
 +The new variable `image-load-path' is a list of locations in which to
 +search for image files.  The default is to search in etc/images, then
 +in etc/, and finally in the directories specified by `load-path'.
 +Subdirectories of etc/ and etc/images are not recursively searched; if
 +you put an image file in a subdirectory, you have to specify it
 +explicitly; for example, if an image is put in etc/images/foo/bar.xpm:
 +
 +  (defimage foo-image '((:type xpm :file "foo/bar.xpm")))
 +
 +Note that all images formerly located in the lisp directory have been
 +moved to etc/images.
 +
 +*** New function `image-load-path-for-library' returns a suitable
 +search path for images relative to library. This function is useful in
 +external packages to save users from having to update
 +`image-load-path'.
 +
 +*** The new variable `max-image-size' defines the maximum size of
 +images that Emacs will load and display.
 +
 +*** The new variable `display-mm-dimensions-alist' can be used to
 +override incorrect graphical display dimensions returned by functions
 +`display-mm-height' and `display-mm-width'.
 +
 +** Mouse pointer features:
 +
 +*** The mouse pointer shape in void text areas (i.e. after the end of a
 +line or below the last line in the buffer) of the text window is now
 +controlled by the new variable `void-text-area-pointer'.  The default
 +is to use the `arrow' (non-text) pointer.  Other choices are `text'
 +(or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'.
 +
 +*** The mouse pointer shape over an image can now be controlled by the
 +:pointer image property.
 +
 +*** The mouse pointer shape over ordinary text or images can now be
 +controlled/overridden via the `pointer' text property.
 +
 +** Mouse event enhancements:
 +
 +*** All mouse events now include a buffer position regardless of where
 +you clicked.  For mouse clicks in window margins and fringes, this is
 +a sensible buffer position corresponding to the surrounding text.
 +
 +*** Mouse events for clicks on window fringes now specify `left-fringe'
 +or `right-fringe' as the area.
 +
 +*** Mouse events include actual glyph column and row for all event types
 +and all areas.
 +
 +*** Mouse events can now indicate an image object clicked on.
 +
 +*** Mouse events include relative X and Y pixel coordinates relative to
 +the top left corner of the object (image or character) clicked on.
 +
 +*** Mouse events include the pixel width and height of the object
 +(image or character) clicked on.
 +
 +*** Function `mouse-set-point' now works for events outside text area.
 +
 +*** `posn-point' now returns buffer position for non-text area events.
 +
 +*** New function `posn-area' returns window area clicked on (nil means
 +text area).
 +
 +*** New function `posn-actual-col-row' returns the actual glyph coordinates
 +of the mouse event position.
 +
 +*** New functions 'posn-object', 'posn-object-x-y', 'posn-object-width-height'.
 +
 +These return the image or string object of a mouse click, the X and Y
 +pixel coordinates relative to the top left corner of that object, and
 +the total width and height of that object.
 +
 +** Text property and overlay changes:
 +
 +*** Arguments for `remove-overlays' are now optional, so that you can
 +remove all overlays in the buffer with just (remove-overlays).
 +
 +*** New variable `char-property-alias-alist'.
 +
 +This variable allows you to create alternative names for text
 +properties.  It works at the same level as `default-text-properties',
 +although it applies to overlays as well.  This variable was introduced
 +to implement the `font-lock-face' property.
 +
 +*** New function `get-char-property-and-overlay' accepts the same
 +arguments as `get-char-property' and returns a cons whose car is the
 +return value of `get-char-property' called with those arguments and
 +whose cdr is the overlay in which the property was found, or nil if
 +it was found as a text property or not found at all.
 +
 +*** The new function `remove-list-of-text-properties'.
 +
 +It is like `remove-text-properties' except that it takes a list of
 +property names as argument rather than a property list.
 +
 +** Face changes
 +
 +*** The variable `facemenu-unlisted-faces' has been removed.
 +Emacs has a lot more faces than in the past, and nearly all of them
 +needed to be excluded.  The new variable `facemenu-listed-faces' lists
 +the faces to include in the face menu.
 +
 +*** The new face attribute condition `min-colors' can be used to tailor
 +the face color to the number of colors supported by a display, and
 +define the foreground and background colors accordingly so that they
 +look best on a terminal that supports at least this many colors.  This
 +is now the preferred method for defining default faces in a way that
 +makes a good use of the capabilities of the display.
 +
 +*** New function `display-supports-face-attributes-p' can be used to test
 +whether a given set of face attributes is actually displayable.
 +
 +A new predicate `supports' has also been added to the `defface' face
 +specification language, which can be used to do this test for faces
 +defined with `defface'.
 +
 +*** The special treatment of faces whose names are of the form `fg:COLOR'
 +or `bg:COLOR' has been removed.  Lisp programs should use the
 +`defface' facility for defining faces with specific colors, or use
 +the feature of specifying the face attributes :foreground and :background
 +directly in the `face' property instead of using a named face.
 +
 +*** The first face specification element in a defface can specify
 +`default' instead of frame classification.  Then its attributes act as
 +defaults that apply to all the subsequent cases (and can be overridden
 +by them).
 +
 +*** The function `face-differs-from-default-p' now truly checks
 +whether the given face displays differently from the default face or
 +not (previously it did only a very cursory check).
 +
 +*** `face-attribute', `face-foreground', `face-background', `face-stipple'.
 +
 +These now accept a new optional argument, INHERIT, which controls how
 +face inheritance is used when determining the value of a face
 +attribute.
 +
 +*** New functions `face-attribute-relative-p' and `merge-face-attribute'
 +help with handling relative face attributes.
 +
 +*** The priority of faces in an :inherit attribute face list is reversed.
 +
 +If a face contains an :inherit attribute with a list of faces, earlier
 +faces in the list override later faces in the list; in previous
 +releases of Emacs, the order was the opposite.  This change was made
 +so that :inherit face lists operate identically to face lists in text
 +`face' properties.
 +
 +*** The variable `face-font-rescale-alist' specifies how much larger
 +(or smaller) font we should use.  For instance, if the value is
 +'((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10
 +point, we actually use a font of 13 point if the font matches
 +SOME-FONTNAME-PATTERN.
 +
 +*** On terminals, faces with the :inverse-video attribute are displayed
 +with swapped foreground and background colors even when one of them is
 +not specified.  In previous releases of Emacs, if either foreground
 +or background color was unspecified, colors were not swapped.  This
 +was inconsistent with the face behavior under X.
 +
 +*** `set-fontset-font', `fontset-info', `fontset-font' now operate on
 +the default fontset if the argument NAME is nil..
 +
 +** Font-Lock changes:
 +
 +*** New special text property `font-lock-face'.
 +
 +This property acts like the `face' property, but it is controlled by
 +M-x font-lock-mode.  It is not, strictly speaking, a builtin text
 +property.  Instead, it is implemented inside font-core.el, using the
 +new variable `char-property-alias-alist'.
 +
 +*** font-lock can manage arbitrary text-properties beside `face'.
 +
 +**** the FACENAME returned in `font-lock-keywords' can be a list of the
 +form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other
 +properties than `face'.
 +
 +**** `font-lock-extra-managed-props' can be set to make sure those
 +extra properties are automatically cleaned up by font-lock.
 +
 +*** jit-lock obeys a new text-property `jit-lock-defer-multiline'.
 +
 +If a piece of text with that property gets contextually refontified
 +(see `jit-lock-defer-contextually'), then all of that text will
 +be refontified.  This is useful when the syntax of a textual element
 +depends on text several lines further down (and when `font-lock-multiline'
 +is not appropriate to solve that problem).  For example in Perl:
 +
 +      s{
 +              foo
 +      }{
 +              bar
 +      }e
 +
 +Adding/removing the last `e' changes the `bar' from being a piece of
 +text to being a piece of code, so you'd put a `jit-lock-defer-multiline'
 +property over the second half of the command to force (deferred)
 +refontification of `bar' whenever the `e' is added/removed.
 +
 +*** `font-lock-extend-region-functions' makes it possible to alter the way
 +the fontification region is chosen.  This can be used to prevent rounding
 +up to whole lines, or to extend the region to include all related lines
 +of multiline constructs so that such constructs get properly recognized.
 +
 +** Major mode mechanism changes:
 +
 +*** New variable `magic-mode-alist' determines major mode for a file by
 +looking at the file contents.  It takes precedence over `auto-mode-alist'.
 +
 +*** New variable `magic-fallback-mode-alist' determines major mode for a file by
 +looking at the file contents.  It is handled after `auto-mode-alist',
 +only if `auto-mode-alist' (and `magic-mode-alist') says nothing about the file.
 +
 +*** XML or SGML major mode is selected when file starts with an `<?xml'
 +or `<!DOCTYPE' declaration.
 +
 +*** An interpreter magic line (if present) takes precedence over the
 +file name when setting the major mode.
 +
 +*** If new variable `auto-mode-case-fold' is set to a non-nil value,
 +Emacs will perform a second case-insensitive search through
 +`auto-mode-alist' if the first case-sensitive search fails.  This
 +means that a file FILE.TXT is opened in text-mode, and a file
 +PROG.HTML is opened in html-mode.  Note however, that independent of
 +this setting, *.C files are usually recognized as C++ files.  It also
 +has no effect on systems with case-insensitive file names.
 +
 +*** All major mode functions should now run the new normal hook
 +`after-change-major-mode-hook', at their very end, after the mode
 +hooks.  `run-mode-hooks' does this automatically.
 +
 +*** Major modes can define `eldoc-documentation-function'
 +locally to provide Eldoc functionality by some method appropriate to
 +the language.
 +
 +*** Use the new function `run-mode-hooks' to run the major mode's mode hook.
 +
 +*** The new function `run-mode-hooks' and the new macro `delay-mode-hooks'
 +are used by `define-derived-mode' to make sure the mode hook for the
 +parent mode is run at the end of the child mode.
 +
 +*** `define-derived-mode' by default creates a new empty abbrev table.
 +It does not copy abbrevs from the parent mode's abbrev table.
 +
 +*** If a major mode function has a non-nil `no-clone-indirect'
 +property, `clone-indirect-buffer' signals an error if you use
 +it in that buffer.
 +
 +** Minor mode changes:
 +
 +*** `define-minor-mode' now accepts arbitrary additional keyword arguments
 +and simply passes them to `defcustom', if applicable.
 +
 +*** `define-globalized-minor-mode'.
 +
 +This is a new name for what was formerly called
 +`easy-mmode-define-global-mode'.  The old name remains as an alias.
 +
 +*** `minor-mode-list' now holds a list of minor mode commands.
 +
 +** Command loop changes:
 +
 +*** The new function `called-interactively-p' does what many people
 +have mistakenly believed `interactive-p' to do: it returns t if the
 +calling function was called through `call-interactively'.
 +
 +Only use this when you cannot solve the problem by adding a new
 +INTERACTIVE argument to the command.
 +
 +*** The function `commandp' takes an additional optional argument.
 +
 +If it is non-nil, then `commandp' checks for a function that could be
 +called with `call-interactively', and does not return t for keyboard
 +macros.
 +
 +*** When a command returns, the command loop moves point out from
 +within invisible text, in the same way it moves out from within text
 +covered by an image or composition property.
 +
 +This makes it generally unnecessary to mark invisible text as intangible.
 +This is particularly good because the intangible property often has
 +unexpected side-effects since the property applies to everything
 +(including `goto-char', ...) whereas this new code is only run after
 +`post-command-hook' and thus does not care about intermediate states.
 +
 +*** If a command sets `transient-mark-mode' to `only', that
 +enables Transient Mark mode for the following command only.
 +During that following command, the value of `transient-mark-mode'
 +is `identity'.  If it is still `identity' at the end of the command,
 +the next return to the command loop changes to nil.
 +
 +*** Both the variable and the function `disabled-command-hook' have
 +been renamed to `disabled-command-function'.  The variable
 +`disabled-command-hook' has been kept as an obsolete alias.
 +
 +*** `emacsserver' now runs `pre-command-hook' and `post-command-hook'
 +when it receives a request from emacsclient.
 +
 +*** `current-idle-time' reports how long Emacs has been idle.
 +
 +** Lisp file loading changes:
 +
 +*** `load-history' can now have elements of the form (t . FUNNAME),
 +which means FUNNAME was previously defined as an autoload (before the
 +current file redefined it).
 +
 +*** `load-history' now records (defun . FUNNAME) when a function is
 +defined.  For a variable, it records just the variable name.
 +
 +*** The function `symbol-file' can now search specifically for function,
 +variable or face definitions.
 +
 +*** `provide' and `featurep' now accept an optional second argument
 +to test/provide subfeatures.  Also `provide' now checks `after-load-alist'
 +and runs any code associated with the provided feature.
 +
 +*** The variable `recursive-load-depth-limit' has been deleted.
 +Emacs now signals an error if the same file is loaded with more
 +than 3 levels of nesting.
 +
 +** Byte compiler changes:
 +
 +*** The byte compiler now displays the actual line and character
 +position of errors, where possible.  Additionally, the form of its
 +warning and error messages have been brought into line with GNU standards
 +for these.  As a result, you can use next-error and friends on the
 +compilation output buffer.
 +
 +*** The new macro `with-no-warnings' suppresses all compiler warnings
 +inside its body.  In terms of execution, it is equivalent to `progn'.
 +
 +*** You can avoid warnings for possibly-undefined symbols with a
 +simple convention that the compiler understands.  (This is mostly
 +useful in code meant to be portable to different Emacs versions.)
 +Write forms like the following, or code that macroexpands into such
 +forms:
 +
 +  (if (fboundp 'foo) <then> <else>)
 +  (if (boundp 'foo) <then> <else)
 +
 +In the first case, using `foo' as a function inside the <then> form
 +won't produce a warning if it's not defined as a function, and in the
 +second case, using `foo' as a variable won't produce a warning if it's
 +unbound.  The test must be in exactly one of the above forms (after
 +macro expansion), but such tests can be nested.  Note that `when' and
 +`unless' expand to `if', but `cond' doesn't.
 +
 +*** `(featurep 'xemacs)' is treated by the compiler as nil.  This
 +helps to avoid noisy compiler warnings in code meant to run under both
 +Emacs and XEmacs and can sometimes make the result significantly more
 +efficient.  Since byte code from recent versions of XEmacs won't
 +generally run in Emacs and vice versa, this optimization doesn't lose
 +you anything.
 +
 +*** The local variable `no-byte-compile' in Lisp files is now obeyed.
 +
 +*** When a Lisp file uses CL functions at run-time, compiling the file
 +now issues warnings about these calls, unless the file performs
 +(require 'cl) when loaded.
 +
 +** Frame operations:
 +
 +*** New functions `frame-current-scroll-bars' and `window-current-scroll-bars'.
 +
 +These functions return the current locations of the vertical and
 +horizontal scroll bars in a frame or window.
 +
 +*** The new function `modify-all-frames-parameters' modifies parameters
 +for all (existing and future) frames.
 +
 +*** The new frame parameter `tty-color-mode' specifies the mode to use
 +for color support on character terminal frames.  Its value can be a
 +number of colors to support, or a symbol.  See the Emacs Lisp
 +Reference manual for more detailed documentation.
 +
 +*** When using non-toolkit scroll bars with the default width,
 +the `scroll-bar-width' frame parameter value is nil.
 +
 +** Mode line changes:
 +
 +*** New function `format-mode-line'.
 +
 +This returns the mode line or header line of the selected (or a
 +specified) window as a string with or without text properties.
 +
 +*** The new mode-line construct `(:propertize ELT PROPS...)' can be
 +used to add text properties to mode-line elements.
 +
 +*** The new `%i' and `%I' constructs for `mode-line-format' can be used
 +to display the size of the accessible part of the buffer on the mode
 +line.
 +
 +*** Mouse-face on mode-line (and header-line) is now supported.
 +
 +** Menu manipulation changes:
 +
 +*** To manipulate the File menu using easy-menu, you must specify the
 +proper name "file".  In previous Emacs versions, you had to specify
 +"files", even though the menu item itself was changed to say "File"
 +several versions ago.
 +
 +*** The dummy function keys made by easy-menu are now always lower case.
 +If you specify the menu item name "Ada", for instance, it uses `ada'
 +as the "key" bound by that key binding.
 +
 +This is relevant only if Lisp code looks for the bindings that were
 +made with easy-menu.
 +
 +*** `easy-menu-define' now allows you to use nil for the symbol name
 +if you don't need to give the menu a name.  If you install the menu
 +into other keymaps right away (MAPS is non-nil), it usually doesn't
 +need to have a name.
 +
 +** Mule changes:
 +
 +*** Already true in Emacs 21.1, but not emphasized clearly enough:
 +
 +Multibyte buffers can now faithfully record all 256 character codes
 +from 0 to 255.  As a result, most of the past reasons to use unibyte
 +buffers no longer exist.  We only know of three reasons to use them
 +now:
 +
 +1. If you prefer to use unibyte text all of the time.
 +
 +2. For reading files into temporary buffers, when you want to avoid
 +the time it takes to convert the format.
 +
 +3. For binary files where format conversion would be pointless and
 +wasteful.
 +
 +*** The new variable `auto-coding-functions' lets you specify functions
 +to examine a file being visited and deduce the proper coding system
 +for it.  (If the coding system is detected incorrectly for a specific
 +file, you can put a `coding:' tags to override it.)
 +
 +*** The new variable `ascii-case-table' stores the case table for the
 +ascii character set.  Language environments (such as Turkish) may
 +alter the case correspondences of ASCII characters.  This variable
 +saves the original ASCII case table before any such changes.
 +
 +*** The new function `merge-coding-systems' fills in unspecified aspects
 +of one coding system from another coding system.
 +
 +*** New coding system property `mime-text-unsuitable' indicates that
 +the coding system's `mime-charset' is not suitable for MIME text
 +parts, e.g. utf-16.
 +
 +*** New function `decode-coding-inserted-region' decodes a region as if
 +it is read from a file without decoding.
 +
 +*** New CCL functions `lookup-character' and `lookup-integer' access
 +hash tables defined by the Lisp function `define-translation-hash-table'.
 +
 +*** New function `quail-find-key' returns a list of keys to type in the
 +current input method to input a character.
 +
 +*** `set-buffer-file-coding-system' now takes an additional argument,
 +NOMODIFY.  If it is non-nil, it means don't mark the buffer modified.
 +
 +** Operating system access:
 +
 +*** The new primitive `get-internal-run-time' returns the processor
 +run time used by Emacs since start-up.
 +
 +*** Functions `user-uid' and `user-real-uid' now return floats if the
 +user UID doesn't fit in a Lisp integer.  Function `user-full-name'
 +accepts a float as UID parameter.
 +
 +*** New function `locale-info' accesses locale information.
 +
 +*** On MS Windows, locale-coding-system is used to interact with the OS.
 +The Windows specific variable w32-system-coding-system, which was
 +formerly used for that purpose is now an alias for locale-coding-system.
 +
 +*** New function `redirect-debugging-output' can be used to redirect
 +debugging output on the stderr file handle to a file.
 +
 +** GC changes:
 +
 +*** New variable `gc-cons-percentage' automatically grows the GC cons threshold
 +as the heap size increases.
 +
 +*** New variables `gc-elapsed' and `gcs-done' provide extra information
 +on garbage collection.
 +
 +*** The normal hook `post-gc-hook' is run at the end of garbage collection.
 +
 +The hook is run with GC inhibited, so use it with care.
 +
 +** Miscellaneous:
 +
 +*** A number of hooks have been renamed to better follow the conventions:
 +
 +`find-file-hooks' to `find-file-hook',
 +`find-file-not-found-hooks' to `find-file-not-found-functions',
 +`write-file-hooks' to `write-file-functions',
 +`write-contents-hooks' to `write-contents-functions',
 +`x-lost-selection-hooks' to `x-lost-selection-functions',
 +`x-sent-selection-hooks' to `x-sent-selection-functions',
 +`delete-frame-hook' to `delete-frame-functions'.
 +
 +In each case the old name remains as an alias for the moment.
 +
 +*** Variable `local-write-file-hooks' is marked obsolete.
 +
 +Use the LOCAL arg of `add-hook'.
 +
 +*** New function `x-send-client-message' sends a client message when
 +running under X.
 +\f
 +* New Packages for Lisp Programming in Emacs 22.1
 +
 +** The new library button.el implements simple and fast `clickable
 +buttons' in Emacs buffers.  Buttons are much lighter-weight than the
 +`widgets' implemented by widget.el, and can be used by lisp code that
 +doesn't require the full power of widgets.  Emacs uses buttons for
 +such things as help and apropos buffers.
 +
 +** The new library tree-widget.el provides a widget to display a set
 +of hierarchical data as an outline.  For example, the tree-widget is
 +well suited to display a hierarchy of directories and files.
 +
 +** The new library bindat.el provides functions to unpack and pack
 +binary data structures, such as network packets, to and from Lisp
 +data structures.
 +
 +** master-mode.el implements a minor mode for scrolling a slave
 +buffer without leaving your current buffer, the master buffer.
 +
 +It can be used by sql.el, for example: the SQL buffer is the master
 +and its SQLi buffer is the slave.  This allows you to scroll the SQLi
 +buffer containing the output from the SQL buffer containing the
 +commands.
 +
 +This is how to use sql.el and master.el together: the variable
 +sql-buffer contains the slave buffer.  It is a local variable in the
 +SQL buffer.
 +
 +(add-hook 'sql-mode-hook
 +   (function (lambda ()
 +             (master-mode t)
 +             (master-set-slave sql-buffer))))
 +(add-hook 'sql-set-sqli-hook
 +   (function (lambda ()
 +             (master-set-slave sql-buffer))))
 +
 +** The new library benchmark.el does timing measurements on Lisp code.
 +
 +This includes measuring garbage collection time.
 +
 +** The new library testcover.el does test coverage checking.
 +
 +This is so you can tell whether you've tested all paths in your Lisp
 +code.  It works with edebug.
 +
 +The function `testcover-start' instruments all functions in a given
 +file.  Then test your code.  The function `testcover-mark-all' adds
 +overlay "splotches" to the Lisp file's buffer to show where coverage
 +is lacking.  The command `testcover-next-mark' (bind it to a key!)
 +will move point forward to the next spot that has a splotch.
 +
 +Normally, a red splotch indicates the form was never completely
 +evaluated; a brown splotch means it always evaluated to the same
 +value.  The red splotches are skipped for forms that can't possibly
 +complete their evaluation, such as `error'.  The brown splotches are
 +skipped for forms that are expected to always evaluate to the same
 +value, such as (setq x 14).
 +
 +For difficult cases, you can add do-nothing macros to your code to
 +help out the test coverage tool.  The macro `noreturn' suppresses a
 +red splotch.  It is an error if the argument to `noreturn' does
 +return.  The macro `1value' suppresses a brown splotch for its argument.
 +This macro is a no-op except during test-coverage -- then it signals
 +an error if the argument actually returns differing values.
 +
 +
 +\f
 +----------------------------------------------------------------------
 +This file is part of GNU Emacs.
 +
 +GNU Emacs is free software; you can redistribute it and/or modify
 +it under the terms of the GNU General Public License as published by
 +the Free Software Foundation; either version 3, or (at your option)
 +any later version.
 +
 +GNU Emacs is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with GNU Emacs; see the file COPYING.  If not, write to the
 +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 +Boston, MA 02110-1301, USA.
 +
 +\f
 +Local variables:
 +mode: outline
 +paragraph-separate: "[        \f]*$"
 +end:
 +
 +arch-tag: 1aca9dfa-2ac4-4d14-bebf-0007cee12793
diff --cc leim/ChangeLog
index 1c14d412ec3216b0080cac84d4d4a18db6042a82,5f118f55fc47477fb8f362c7bdd92abd31dc5138..c91ae26c1ef630552e8e49b1ee2b8fc8dbcc308d
@@@ -1,12 -1,15 +1,24 @@@
+ 2007-12-15  Richard Stallman  <rms@gnu.org>
+       * quail/latin-post.el ("scandinavian-postfix"): Doc fix.
+       * quail/latin-alt.el: Many doc fixes.
+       ("danish-alt-postfix")
+       ("esperanto-alt-postfix", "finnish-alt-postfix")
+       ("german-alt-postfix", "icelandic-alt-postfix")
+       ("norwegian-alt-postfix", "scandinavian-alt-postfix")
+       ("spanish-alt-postfix", "swedish-alt-postfix"):
+       Deleted; they were identical to the non-alt versions.
 +2007-12-07  Kenichi Handa  <handa@ni.aist.go.jp>
 +
 +      * quail/lao.el (quail-map-from-table): Allow a tone just after a
 +      consonant.
 +
 +2007-11-17  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (check-declare): New target.
 +
  2007-10-31  Glenn Morris  <rgm@gnu.org>
  
        * Makefile.in (install): Change ownership of installed files.
diff --cc lisp/ChangeLog
index 7caab1fc466709f93ba32796937e085653f8e886,a2054ecbf0fc2a5065e9e4e5b70a04bcc13ca010..37fe9fa861e6c8e9ef997507855a846240e53bf0
 -2007-12-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * progmodes/grep.el (rgrep): Fix last change.
 -
 -2007-12-27  Richard Stallman  <rms@gnu.org>
++2007-12-29  Richard Stallman  <rms@gnu.org>
+       * progmodes/compile.el (compilation-start): Set initial visible
+       point properly even when compilation buffer already current.
 -2007-12-26  Richard Stallman  <rms@gnu.org>
++2007-12-29  Richard Stallman  <rms@gnu.org>
+       * files.el (conf-mode-maybe): New function.
+       (auto-mode-alist): Use conf-mode-maybe for .conf etc.
 -2007-12-26  Martin Rudalics  <rudalics@gmx.at>
++2007-12-29  Martin Rudalics  <rudalics@gmx.at>
+       * textmodes/fill.el (fill-find-break-point): Fix doc-string typo.
 -2007-12-25  Dan Nicolaescu  <dann@ics.uci.edu>
++2007-12-29  Dan Nicolaescu  <dann@ics.uci.edu>
+       * progmodes/asm-mode.el (asm-mode-map): Add a major mode menu.
 -2007-12-25  Richard Stallman  <rms@gnu.org>
++2007-12-29  Richard Stallman  <rms@gnu.org>
+       * comint.el (comint-mode-map): Explicitly bind `delete' and `kp-delete'
+       so they never do EOF.
 -2007-12-23  Richard Stallman  <rms@gnu.org>
 -
 -      * dired-aux.el: Load dired.el at run time too.
++2007-12-29  Richard Stallman  <rms@gnu.org>
+       * faces.el (copy-face): Create the new face explicitly if it
+       does not exist already.
 -2007-12-23  Andreas Schwab  <schwab@suse.de>
 -
 -      * files.el (switch-to-buffer-other-frame): Return the buffer
 -      switched to.
 -
 -2007-12-23  Juri Linkov  <juri@jurta.org>
 -
 -      * term/mac-win.el (mac-apple-event-map): Bind About Emacs menu
 -      item to about-emacs instead of display-splash-screen.
 -
 -2007-12-22  Eli Zaretskii  <eliz@gnu.org>
++2007-12-29  Eli Zaretskii  <eliz@gnu.org>
+       * simple.el (minibuffer-history, shell-command-history)
+       (set-variable-value-history):
+       * replace.el (regexp-history):
+       * international/mule-cmds.el (input-method-history):
+       * files.el (file-name-history): Add reference to history-length in
+       the doc string.
 -2007-12-22  Richard Stallman  <rms@gnu.org>
++2007-12-29  Richard Stallman  <rms@gnu.org>
+       * comint.el (comint-password-prompt-regexp): Match `Enter Password'.
 -2007-12-21  Jason Rumney  <jasonr@gnu.org>
++2007-12-29  Jason Rumney  <jasonr@gnu.org>
+       * find-dired.el (find-name-arg): New custom variable.
+       (find-name-dired): Use it.
+       (find-dired-find-program): Remove.
+       (find-dired): Use find-program.
+       (find-grep-dired): Use grep-program.
+       * progmodes/grep.el (rgrep): Use find-name-arg.
 -2007-12-21  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * autoinsert.el (auto-insert-alist): Remove nonsensical precision
 -      specifier from format-string.  Reported by Ye Wenbin.
 -
 -2007-12-19  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * cus-start.el: Use correct group name for members of mode-line group.
 -
 -2007-12-17  Thien-Thi Nguyen  <ttn@gnuvola.org>
++2007-12-29  Thien-Thi Nguyen  <ttn@gnuvola.org>
+       * progmodes/cc-vars.el (defcustom-c-stylevar):
+       Revert to pre-2007-12-12 version.
 -2007-12-15  Richard Stallman  <rms@gnu.org>
++2007-12-29  Richard Stallman  <rms@gnu.org>
+       * emacs-lisp/find-func.el (find-function-after-hook): Add :type.
+       * info.el (Info-clone-buffer): Renamed from Info-clone-buffer-hook.
+       Use changed.
+       * startup.el (fancy-splash-help-echo): Var deleted.
+       (fancy-splash-insert): Get help-echo from (startup-echo-area-message).
+       (fancy-about-screen): Don't display fancy-splash-help-echo.
+       * menu-bar.el (menu-bar-describe-menu): Remove dots from menu text.
 +2007-12-28  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * vc-hooks.el, vc.el: Move vc-directory-exclusion-list from vc.el
 +      to vc-hooks.el so it will be available to other modes, such as
 +      speedbar.el.  Also, teach it to recognize monotone state directories.
 +
 +      * speedbar.el: Remove this mode's fragile assumptions about
 +      version-control systems.  Instead, make it use logic from
 +      vc-hooks.el so it will become smarter whenever VC mode does.
 +
 +      * vc-hooks.el: 'added is a real state, not a future hypothetical one.
 +      Fix the documentation.
 +
 +      * vc-bzr.el, vc-cvs.el, vc-git.el, vc-hg.el, vc-mcvs.el, vc-svn.el:
 +      Modify all instances of the dir-state back-end method to suppress
 +      keeping undo lists on the buffers holding status output, which
 +      can get extremely large.
 +
 +      * vc-cvs.el, vc-svn.el: Simplify backend dired-state-info functions
 +      so they don't do work that the default one can do instead.
 +
 +      * vc-hooks.el (vc-state): Document new 'ignored and 'unregistered
 +      states, and the new return-value convention.  These are not
 +      actually used yet, just set.
 +
 +      * vc-svn.el (vc-svn-parse-status): Set 'ignored and 'unregistered
 +      states when appropriate.
 +
 +      * vc-hg.el (vc-hg-state, vc-hg-dir-state): Set 'ignored and
 +      'unregistered when appropriate.
 +
 +      * vc-git.el: Document that we don't set the new states yet.
 +
 +      * vc.el (vc-dired-state-info): Display 'added, 'unregistered and
 +      'ignored states.
 +
 +      * vc-cvs.el (vc-cvs-parse-status): Set the 'ignored state when
 +      appropriate.
 +
 +      * vc-bzr.el (vc-bzr-dir-state): Set 'ignored and 'unregistered
 +      when appropriate.
 +
 +2007-12-28  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * thumbs.el (thumbs-call-convert): Use call-process directly
 +      with thumbs-conversion-program instead of through shell-file-name
 +      for better error reporting.
 +
 +2007-12-27  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-aent.el (math-remove-percentsigns):
 +      * calc/calccomp.el (math-to-percentsigns): Change placeholder
 +      for percent signs.
 +
 +2007-12-27  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * vc.el (vc-dired-ignorable-p, vc-dired-hook): Speed optimization;
 +      use completion-ignored-extensions to detect files that should be
 +      ignorted in VC-Dired listings, heading off lots of expensive calls
 +      to (vc-state).
 +
 +      * vc.el (vc-dired-hook): Show unregistered file status as "?" in
 +      non-terse mode.
 +      (vc-dired-ignorable-p): Ignore Makefile when it has a peer named
 +      Makefile.in or Makefile.am
 +
 +2007-12-27  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el (ps-mark-active-p): Fun returned back.
 +      (ps-print-preprint-region): Use `ps-mark-active-p' instead of
 +      `region-active-p' for error checking.
 +
 +2007-12-27  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * vc.el, vc-sccs.el, vc-rcs.el, vc-cs.el, vc-mcvs.el: Put
 +      new machinery in place to support editing of change comments
 +      with 'e' in a log-view buffer.  Not documented yet as this
 +      only works for SCCS, RCS, and maybe CVS if you have admin
 +      privileges.  When we have backend support for Subversion and
 +      more modern systems it will be time to write this up.
 +
 +2007-12-27  Kenichi Handa  <handa@ni.aist.go.jp>
 +
 +      * international/mule-cmds.el (select-safe-coding-system):
 +      When a buffer is modified, cancel the writing.
 +
 +2007-12-26  Eric S. Raymond  <esr@snark.thyrsus.com>
 +
 +      * log-view.el: Add Subversion and Mercurial log format samples.
 +
 +      * vc.el (vc-dired-hook): Significantly speed up by arranging for
 +      it to call the backend dir-state hook (if it exists)
 +      exactly *once*, rather than once per each subdirectory (with
 +      dired-state-info calls on all toplevel files slowing it down even
 +      further).  For this to work, backend dir-state methods have to
 +      recurse to subdirectories.  Most of them already did anyway; a few
 +      needed *non*-recursion switches removed.  This change mostly
 +      removed code that was perversely bad and should have been shot
 +      through the head years ago.
 +
 +      * vc-bzr.el (vc-bzr-dir-state):
 +      * vc-cvs.el (vc-cvs-dir-state):
 +      * vc-mcvs.el (vc-mcvs-dir-state):
 +      * vc-svn.el (vc-svn-dir-state): Recurse in subdirectories.
 +
 +      * vc-svn.el (vc-svn-print-log): svn log doesn't actually accept
 +      multiple arguments, so generate logs sequentially when we get them.
 +      * vc-hg.el (vc-hg-print-log): Gives this CVS-like "Working file:"
 +      headers so the various log bindings can do the right thing.
 +      * vc-cvs.el (vc-cvs-print-log): Fix a misleading comment.
 +
 +2007-12-26  Andreas Schwab  <schwab@suse.de>
 +
 +      * font-lock.el (save-buffer-state): Make sure the state of the
 +      buffer is always restored.
 +
 +2007-12-26  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc.el (calc-lang-allow-percentsigns): New variable.
 +
 +      * calc/calc-lang.el (calc-lang-allow-percentsigns): Declare as
 +      a variable.
 +
 +      * calc/calccomp.el (math-to-percentsigns): New function.
 +      (math-compose-var): Handle variables with percent signs.
 +      (math-compose-expr): Handle function names with percent signs.
 +
 +      * calc/calc-aent.el (math-to-percentsigns): Declare as function.
 +      (math-read-exprs): Handle percent signs in languages that
 +      allow them.
 +      (math-restore-underscores): Remove function.
 +      (math-remove-percentsigns, math-restore-placeholders):
 +      New functions.
 +
 +2007-12-26  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * ps-print.el (ps-print-preprint-region): Use `region-active-p' instead
 +      of `mark' for error checking.
 +
 +2007-12-26  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * image-mode.el (image-bookmark-make-cell, image-bookmark-jump):
 +      New functions.
 +      (image-mode): Set bookmark-make-cell-function appropriately.
 +
 +      * doc-view.el (doc-view-bookmark-jump): Correct misspelled arg name.
 +
 +      * bookmark.el (bookmark-make-cell-function): New variable.
 +      (bookmark-make): Call bookmark-make-cell-function's function
 +      instead of bookmark-make-cell.
 +      (bookmark-get-handler, bookmark-jump-internal): New functions.
 +      (bookmark-jump, bookmark-jump-other-window, bookmark-insert)
 +      (bookmark-bmenu-2-window, bookmark-bmenu-other-window):
 +      Use bookmark-jump-internal.
 +      (bookmark-make-cell-for-text-file): Renamed from bookmark-make-cell.
 +
 +      * doc-view.el (doc-view-bookmark-make-cell)
 +      (doc-view-bookmark-jump): New functions.
 +      (doc-view-mode): Set bookmark-make-cell-function buffer-locally.
 +
 +2007-12-25  Miles Bader  <miles@gnu.org>
 +
 +      * indent.el (indent-for-tab-command): Rigidly indent the following
 +      sexp along with the current line when a prefix arg is given in the
 +      non-active-region case.  Specify raw prefix in interactive spec.
 +      Simplify main indentation logic to get rid of the conditional call
 +      to `indent-according-to-mode' (it just ended up calling
 +      `indent-line-function' in all cases anyway, which can be done more
 +      simply here).  Remove unnecessary test of ARG in active region case.
 +
 +2007-12-25  Richard Stallman  <rms@gnu.org>
 +
 +      * allout.el (allout-region-active-p): Rename from my-region-active-p.
 +      Use `use-region-p'.
 +      (allout-write-file-hook-handler): Simplify code.
 +
 +      * ps-print.el (ps-mark-active-p): Function deleted.
 +      (ps-print-preprint-region): Use (mark) for the error check.
 +
 +      * tooltip.el (tooltip-region-active-p): Use `use-region-p'.
 +
 +      * winner.el (winner-active-region): Use `mark-active' if it's defined.
 +
 +      * progmodes/ada-mode.el (ada-region-selected): Use `use-region-p'.
 +
 +      * textmodes/org.el (org-region-active-p): Use `use-region-p'.
 +
 +      * progmodes/idlwave.el (idlwave-region-active-p): Use `use-region-p'.
 +
 +      * textmodes/reftex.el (reftex-region-active-p): Use `use-region-p'.
 +
 +      * progmodes/cc-defs.el (c-region-is-active-p):
 +      Use `mark-active' if it's defined.
 +
 +      * progmodes/cc-cmds.el (c-indent-line-or-region):
 +      Pass prefix arg to `c-indent-command'.  Use `use-region-p'.
 +
 +      * simple.el (select-active-regions): New option.
 +      (set-mark): Obey it.
 +      (yank-pop-change-selection): New option.
 +      (current-kill): Obey it.
 +
 +      * simple.el (use-region-p): Renamed from `region-active-p'.
 +      (region-active-p): New function.
 +
 +2007-12-25  David Golden  <david.delaharpe.golden@gmail.com>  (tiny change)
 +
 +      * term/x-win.el (x-select-enable-primary): New option.
 +      (x-select-text, x-cut-buffer-or-selection-value): Obey it.
 +
 +      * mouse.el (mouse-yank-primary): New function (almost same
 +      as mouse-yank-secondary).
 +
 +2007-12-25  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * calculator.el:
 +      * dframe.el:
 +      * iswitchb.el:
 +      * whitespace.el:
 +      * winner.el:
 +      * emacs-lisp/checkdoc.el:
 +      * mail/feedmail.el:
 +      * net/quickurl.el:
 +      * obsolete/fast-lock.el:
 +      * play/5x5.el:
 +      * progmodes/delphi.el:
 +      * progmodes/idlw-shell.el:
 +      * progmodes/idlwave.el:
 +      * textmodes/artist.el:
 +      * textmodes/ispell.el:
 +      * textmodes/texinfmt.el:
 +      * textmodes/texinfo.el: Remove obsolete definitions of backward
 +      compatibility macros for defcustom, defgroup, defface, when,
 +      unless, with-current-buffer and with-temp-message.
 +
 +2007-12-24  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      * progmodes/verilog-mode.el: Reformat parts to 80 columns.
 +
 +2007-12-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * server.el (server-save-buffers-kill-terminal): Check the `proc' is
 +      indeed a process.
 +
 +2007-12-23  Richard Stallman  <rms@gnu.org>
 +
 +      * simple.el (region-active-p): New function.
 +      (use-empty-active-region): New variable.
 +
 +      * dired-aux.el (dired): Load dired.el at run time too.
 +
 +2007-12-23  Juri Linkov  <juri@jurta.org>
 +
 +      * man.el (Man-follow-manual-reference): Fill the minibuffer's
 +      default list with a full list of references.
 +
 +      * files.el (auto-mode-alist): Add \\' to doc-view files regexp.
 +
 +2007-12-23  Andreas Schwab  <schwab@suse.de>
 +
 +      * files.el (switch-to-buffer-other-frame): Return the buffer
 +      switched to.
 +
 +2007-12-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Sync with Tramp 2.1.12.
 +
 +      * net/tramp.el: New todo item.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-insert-directory): Handle "-F"
 +      switch.  Reported by Mark T. Kennedy <mkennedy@diamondbackcap.com>.
 +
 +      * net/trampver.el: Update release number.
 +
 +2007-12-22  Richard Stallman  <rms@gnu.org>
 +
 +      * newcomment.el (comment-region-default): Don't triple the
 +      comment starter if the first region line isn't indented enough.
 +
 +2007-12-21  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * autoinsert.el (auto-insert-alist): Remove nonsensical precision
 +      specifier from format-string.  Reported by Ye Wenbin.
 +
 +2007-12-20  Jason Rumney  <jasonr@gnu.org>
 +
 +      * nxml/nxml-mode.el (nxml-faces): Rename from nxml-highlighting-faces.
 +      Parent group is font-lock-faces.
 +      (nxml-light-blue-color, nxml-dark-blue-color, nxml-green-color)
 +      (nxml-sky-blue-color, nxml-dark-green-color, nxml-light-green-color):
 +      (nxml-version): Remove.
 +      (nxml-delimited-data, nxml-name, nxml-ref, nxml-delimiter)
 +      (nxml-text, nxml-comment-content, nxml-comment-delimiter)
 +      (nxml-processing-instruction-delimiter)
 +      (nxml-processing-instruction-target)
 +      (nxml-processing-instruction-content, nxml-cdata-section-delimiter)
 +      (nxml-cdata-section-CDATA, nxml-cdata-section-content)
 +      (nxml-char-ref-number, nxml-char-ref-delimiter, nxml-entity-ref-name)
 +      (nxml-entity-ref-delimiter, nxml-tag-delimiter, nxml-tag-slash)
 +      (nxml-element-prefix, nxml-element-colon, nxml-element-local-name)
 +      (nxml-attribute-prefix, nxml-attribute-colon)
 +      (nxml-attribute-local-name, nxml-namespace-attribute-xmlns)
 +      (nxml-namespace-attribute-colon, nxml-namespace-attribute-prefix)
 +      (nxml-attribute-value, nxml-attribute-value-delimiter)
 +      (nxml-namespace-attibute-value)
 +      (nxml-namespace-attribure-value-delimiter)
 +      (nxml-prolog-literal-delimiter, nxml-prolog-literal-content)
 +      (nxml-prolog-keyword, nxml-markup-declaration-delimiter, nxml-hash)
 +      (nxml-glyph): Rename, removing -face suffix.
 +      Inherit from existing font-lock faces.
 +      (nxml-apply-fontify-rule, nxml-char-ref-display-extra):
 +      Use new face names.
 +
 +      * nxml/nxml-outln.el (nxml-heading, nxml-outline-indicator)
 +      (nxml-outline-active-indicator, nxml-outline-ellipsis):
 +      Rename, removing -face suffix.
 +      (nxml-highlighted-less-than, nxml-highlighted-greater-than)
 +      (nxml-highlighted-colon, nxml-highlighted-slash)
 +      (nxml-highlighted-ellipsis, nxml-highlighted-inactive-minus)
 +      (nxml-highlighted-active-minus, nxml-highlighted-active-plus)
 +      (nxml-highlighted-qname, nxml-outline-display-heading):
 +      Use new face names.
 +
 +      * nxml/rng-valid.el (rng-error): Rename from rng-error-face.
 +
 +      * nxml/rng-nxml.el (rng-nxml-easy-menu): Remove nxml-version.
 +
 +2007-12-19  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * cus-start.el (all): Use correct group name for members of
 +      mode-line group.
 +
 +      * man.el (Man-default-man-entry): When looking for default man
 +      entry title search text preceding point.  Use when instead of if.
 +
 +      * indent.el (indent-for-tab-command): Fix doc-string typo.
 +
 +      * vc.el (vc-ensure-vc-buffer): Avoid infinite looping when
 +      vc-parent-buffer is the current buffer.
 +
 +      * info-look.el (info-lookup, info-lookup-setup-mode)
 +      (info-lookup-make-completions): Avoid clobbering Info-history and
 +      Info-history-list.
 +
 +2007-12-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/verilog-mode.el (top-level): Don't require compile.
 +      (compilation-error-regexp-alist, compilation-last-buffer):
 +      Define for compiler.
 +      (verilog-insert-1): New function.
 +      (verilog-insert-indices, verilog-generate-numbers): Doc fixes.
 +      Use verilog-insert-1.
 +      (verilog-surelint-off): Use next-error-last-buffer if bound.
 +      Check compile buffer is live.
 +
 +2007-12-19  John J Foerch  <jjfoerch@earthlink.net>  (tiny change)
 +
 +      * progmodes/compile.el (compilation-start): Don't pass a FRAME
 +      argument to display-buffer.
 +
 +2007-12-19  Jason Rumney  <jasonr@gnu.org>
 +
 +      * nxml/rng-maint.el (rng-format-manual): Do not autoload.
 +      (rng-autoload-modules, rng-update-autoloads, rng-compile-modules)
 +      (rng-byte-compile-load, rng-write-version): Remove.
 +
 +      * nxml/rng-loc.el (rng-schema-locating-files-default)
 +      (rng-schema-locating-file-schema-file): Use files in etc/schemas.
 +      (rng-schema-loader-alist): Use rng-c-load-schema to load rnc files.
 +
 +2007-12-18  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.el (cd-absolute): Set `list-buffers-directory' in order to
 +      show correct path in buffer list.
 +
 +      * net/tramp.el (tramp-open-connection-setup-interactive-shell)
 +      (tramp-find-shell): Send only single prompt setting commands, in
 +      order to avoid double-prompt.
 +
 +      * net/tramp-compat.el (top): Require cl only when compiling.
 +      Reported by Glenn Morris <rgm@gnu.org>.
 +
 +2007-12-18  Thien-Thi Nguyen  <ttn@gnuvola.org>
 +
 +      * progmodes/cc-vars.el (defcustom-c-stylevar): Eval VAL.
 +      (c-comment-continuation-stars): No longer declare with
 +      cc-bytecomp-obsolete-var and cc-bytecomp-defvar.
 +      (c-block-comment-prefix): Use symbol-value to
 +      access c-comment-continuation-stars.
 +      * progmodes/cc-mode.el (c-initialize-cc-mode):
 +      Use symbol-value to access c-comment-continuation-stars.
 +
 +2007-12-18  Mark A. Hershberger  <mah@everybody.org>
 +
 +      * xml.el (xml-escape-string): New function.  Escape string using
 +      xml-entity-alist.
 +      (xml-debug-print-internal): Use xml-escape-string to escape
 +      characters in attributes and in text children of elements.
 +
 +2007-12-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/cc-subword.el (c-subword-mode): Drop support for
 +      systems without define-minor-mode.
 +
 +      * progmodes/cc-vars.el (defcustom-c-stylevar): Remove debugging message.
 +
 +      * progmodes/verilog-mode.el: Replace all instances of
 +      string-to-int with string-to-number, insert-string with insert,
 +      and read-input with read-string.
 +      (top-level): No need to require imenu, reporter, dinotrace, vc,
 +      font-lock when compiling.  Always require compile.  Relegate remaining
 +      compatibility cruft to XEmacs.  Don't require font-lock.
 +      (verilog-version): Remove superfluous concat.
 +      (dinotrace-unannotate-all, zmacs-activate-region)
 +      (customize-apropos): No need to define.
 +      (verilog-regexp-opt): On Emacs, just make it an alias for regexp-opt.
 +      (verilog-font-lock-keywords, verilog-font-lock-keywords-1)
 +      (verilog-font-lock-keywords-2, verilog-font-lock-keywords-3)
 +      (verilog-startup-message-displayed): These are variables, not constants.
 +      (verilog-batch-execute-func, verilog-auto-inst)
 +      (verilog-auto-inst-param): Use mapc rather than mapcar.
 +      (sigs-in, sigs-inout, sigs-out): Define for compiler rather than
 +      actually defining.
 +      (verilog-modi-get-decls, verilog-modi-get-sub-decls)
 +      (verilog-modi-get-outputs, verilog-modi-get-inouts)
 +      (verilog-modi-get-inputs, verilog-modi-get-wires)
 +      (verilog-modi-get-regs, verilog-modi-get-assigns)
 +      (verilog-modi-get-consts, verilog-modi-get-gparams)
 +      (verilog-modi-get-sub-outputs, verilog-modi-get-sub-inouts)
 +      (verilog-modi-get-sub-inputs): Move inline functions earlier in
 +      the file.
 +      (sigs-in, sigs-out): Don't declare multiple times.
 +      (got-sig, got-rvalue, uses-delayed): Define for compiler with just
 +      `defvar'.
 +      (verilog-auto): Call dinotrace-unannotate-all only if bound.
 +      (verilog-module-inside-filename-p): No need to wrap fboundp test
 +      in condition-case.
 +      (reporter-submit-bug-report): Autoload it.
 +      (verilog-mark-defun): Call zmacs-activate-region only if bound.
 +      (verilog-font-customize): Call customize-apropos only if bound.
 +      (verilog-getopt-flags, verilog-auto-reeval-locals): Use
 +      make-local-variable rather than make-variable-buffer-local.
 +      (verilog-company, verilog-project, verilog-modi-cache-list):
 +      Move make-variable-buffer-local calls to top-level.
 +      (font-lock-defaults-alist): Don't define it.
 +      (verilog-need-fld): Remove.
 +      (verilog-font-lock-init): Don't set font-lock-defaults-alist.
 +      (verilog-mode): Only call make-local-hook on XEmacs.  Set
 +      font-lock-defaults rather than using verilog-font-lock-init.
 +
 +2007-12-17  Andreas Schwab  <schwab@suse.de>
 +
 +      * progmodes/sh-script.el (sh-font-lock-syntactic-keywords):
 +      Fix comment typo.
 +
 +2007-12-16  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/dbus.el (dbus-name-owner-changed-handler):
 +      Use `dbus-unregister-signal' for removing old rules.
 +      Obey new structure of `dbus-registered-functions-table'.
 +
  2007-12-12  Thien-Thi Nguyen  <ttn@gnuvola.org>
  
        * progmodes/cc-vars.el (defcustom-c-stylevar): Rewrite.
diff --cc lisp/comint.el
Simple merge
Simple merge
diff --cc lisp/faces.el
Simple merge
diff --cc lisp/files.el
Simple merge
diff --cc lisp/info.el
Simple merge
Simple merge
Simple merge
Simple merge
index 9a7b3eb5c084f18cd60f8c8ee67cb1d4d863ca5d,8d2f3a02c00e31c1269dc491412a46d801de4924..6781862889cca9d1e22583dd0a73dcba5d962dcf
@@@ -1163,13 -1055,8 +1163,9 @@@ Returns the compilation buffer created.
                command "\n")
        (setq thisdir default-directory))
        (set-buffer-modified-p nil))
-     ;; If we're already in the compilation buffer, go to the end
-     ;; of the buffer, so point will track the compilation output.
-     (if (eq outbuf (current-buffer))
-       (goto-char (point-max)))
      ;; Pop up the compilation buffer.
 -    (setq outwin (display-buffer outbuf nil t))
 +    ;; http://lists.gnu.org/archive/html/emacs-devel/2007-11/msg01638.html
 +    (setq outwin (display-buffer outbuf))
      (with-current-buffer outbuf
        (let ((process-environment
             (append
            (funcall compilation-process-setup-function))
        (compilation-set-window-height outwin)
        ;; Start the compilation.
 -      (if (fboundp 'start-process)
 -          (let ((proc (if (eq mode t)
 -                          (get-buffer-process
 -                           (with-no-warnings
 -                            (comint-exec outbuf (downcase mode-name)
 -                                         shell-file-name nil `("-c" ,command))))
 -                        (start-process-shell-command (downcase mode-name)
 -                                                     outbuf command))))
 -            ;; Make the buffer's mode line show process state.
 -            (setq mode-line-process '(":%s"))
 -            (set-process-sentinel proc 'compilation-sentinel)
 -            (set-process-filter proc 'compilation-filter)
 -            ;; Use (point-max) here so that output comes in
 -            ;; after the initial text,
 -            ;; regardless of where the user sees point.
 -            (set-marker (process-mark proc) (point-max) outbuf)
 -            (when compilation-disable-input
 -                (condition-case nil
 -                    (process-send-eof proc)
 -                  ;; The process may have exited already.
 -                  (error nil)))
 -            (setq compilation-in-progress
 -                  (cons proc compilation-in-progress)))
 -        ;; No asynchronous processes available.
 -        (message "Executing `%s'..." command)
 -        ;; Fake modeline display as if `start-process' were run.
 -        (setq mode-line-process ":run")
 -        (force-mode-line-update)
 -        (sit-for 0)                   ; Force redisplay
 -        (save-excursion
 -          ;; Insert the output at the end, after the initial text,
 -          ;; regardless of where the user sees point.
 -          (goto-char (point-max))
 -          (let* ((buffer-read-only nil) ; call-process needs to modify outbuf
 -                 (status (call-process shell-file-name nil outbuf nil "-c"
 -                                       command)))
 -            (cond ((numberp status)
 -                   (compilation-handle-exit 'exit status
 -                                            (if (zerop status)
 -                                                "finished\n"
 -                                              (format "\
 -exited abnormally with code %d\n"
 -                                                      status))))
 -                  ((stringp status)
 -                   (compilation-handle-exit 'signal status
 -                                            (concat status "\n")))
 -                  (t
 -                   (compilation-handle-exit 'bizarre status status)))))
 -        ;; Without async subprocesses, the buffer is not yet
 -        ;; fontified, so fontify it now.
 -        (let ((font-lock-verbose nil)) ; shut up font-lock messages
 -          (font-lock-fontify-buffer))
 -        (set-buffer-modified-p nil)
 -        (message "Executing `%s'...done" command)))
 +      (let ((proc
 +             (if (eq mode t)
 +                 ;; comint uses `start-file-process'.
 +                 (get-buffer-process
 +                  (with-no-warnings
 +                    (comint-exec
 +                     outbuf (downcase mode-name)
 +                     (if (file-remote-p default-directory)
 +                         "/bin/sh"
 +                       shell-file-name)
 +                     nil `("-c" ,command))))
 +               (start-file-process-shell-command (downcase mode-name)
 +                                                 outbuf command))))
 +        ;; Make the buffer's mode line show process state.
 +        (setq mode-line-process '(":%s"))
 +        (set-process-sentinel proc 'compilation-sentinel)
 +        (set-process-filter proc 'compilation-filter)
-         (set-marker (process-mark proc) (point) outbuf)
++        ;; Use (point-max) here so that output comes in
++        ;; after the initial text,
++        ;; regardless of where the user sees point.
++        (set-marker (process-mark proc) (point-max) outbuf)
 +        (when compilation-disable-input
 +          (condition-case nil
 +              (process-send-eof proc)
 +            ;; The process may have exited already.
 +            (error nil)))
 +        (setq compilation-in-progress
 +              (cons proc compilation-in-progress))))
        ;; Now finally cd to where the shell started make/grep/...
        (setq default-directory thisdir))
      (if (buffer-local-value 'compilation-scroll-output outbuf)
Simple merge
diff --cc lisp/replace.el
Simple merge
diff --cc lisp/simple.el
Simple merge
diff --cc lisp/startup.el
Simple merge
Simple merge
diff --cc src/ChangeLog
index 952f9d7e6e8a46efa29adfc9ef887bb8780445ad,c0b86a16593bc419ce56f1222b5a5f5b8c35c005..be2c5824f51470ede9927380762a5ecc22ce5c6b
 -2007-12-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (fill_menubar) [MAC_OSX]: Add workaround for Mac OS X 10.5
 -      about not changing Help menu title.
 -
+ 2007-12-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+       * process.c (make_process): Initialize pty_flag to Qnil instead of 0
+       as it is not a bit field on Emacs 22 yet.
+       * xdisp.c (phys_cursor_in_rect_p): Check if cursor is in fringe area.
 -      * callint.c (syms_of_callint) <command-history>: Add reference to
 -      history-length in the doc string.
 -
 -2007-12-17  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_wnd_proc) <WM_KEYDOWN>: Cast char to unsigned
 -      before passing as wParam.
 -
 -2007-12-14  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_read_socket): Use MULTIBYTE_CHAR_KEYSTROKE_EVENT
 -      for characters above 127.
 -
 -2007-12-13  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_wnd_proc, Fw32_reconstruct_hot_key): Range check
 -      before dereferencing array.
 -      (lookup_vk_code): Remove zero comparison.
 -
 -2007-12-02  Magnus Henoch  <mange@freemail.hu>
 -
 -      * process.c (make_process): Initialize pty_flag to 0.
 -
 -2007-12-02  Jason Rumney  <jasonr@gnu.org>
 -
 -      * image.c (xbm_load) [WINDOWSNT]: Shuffle the bits of directly
 -      specified XBMs.
 -
 -2007-12-01  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (syms_of_xdisp) <scroll-conservatively>: Doc fix.
 -
 -2007-11-30  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (cfsockets_for_select) [MAC_OSX && SELECT_USE_CFSOCKET]:
 -      New variable.
 -      (mac_try_close_socket) [MAC_OSX]: New function.
 -      [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]:
 -      Update cfsockets_for_select.  Replace invalid CFRunLoop source.
 -
 -      * sysdep.c (emacs_close) [MAC_OSX && HAVE_CARBON]:
 -      Use mac_try_close_socket.
 -
 -2007-11-28  Petr Salinger  <Petr.Salinger@seznam.cz>  (tiny change)
 -
 -      * s/gnu-kfreebsd.h: New file.
 -
 -2007-11-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * unexmacosx.c (unrelocate): New argument BASE.  Use it instead of
 -      reloc_base.
 -      (copy_dysymtab): Compute relocation base here.
 -      (rebase_reloc_address) [__ppc64__]: New function.
 -      (copy_dysymtab) [__ppc64__]: Use it if relocation base needs to be
 -      changed.
 -
 -2007-11-26  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32proc.c (sys_spawnve): Quote args with wildcards.
 -
 -2007-11-26  Andreas Schwab  <schwab@suse.de>
 -
 -      * process.c (list_processes_1): Fix indentation level of the
 -      command column.
 -
 -2007-11-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * unexmacosx.c (copy_data_segment): Also copy __gcc_except_tab and
 -      __objc_* sections.
 -      (unrelocate) [_LP64]: Set relocation base to address of data segment.
 -
 -2007-11-23  Andreas Schwab  <schwab@suse.de>
 -
 -      * editfns.c (Fformat): Handle %c specially since it requires the
 -      argument to be of type int.
 -
 -2007-11-22  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (update_frame_tool_bar): Don't call x-gtk-map-stock if
 -        file for image is nil.
 -
 -2007-11-19  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32bdf.c (w32_init_bdf_font, w32_BDF_to_x_font): CreateFileMapping
 -      returns NULL on failure.
 -
 -2007-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * search.c (Fset_match_data): Remove the `evaporate' feature.
 -      (unwind_set_match_data): Don't use the `evaporate' feature.
 -
 -2007-11-15  Andreas Schwab  <schwab@suse.de>
 -
 -      * editfns.c (Fformat): Correctly format EMACS_INT values.
 -      Also take precision into account when formatting an integer.
 -
 -2007-11-15  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * macfns.c (Fx_create_frame, Fx_display_pixel_width)
 -      (Fx_display_pixel_height, Fx_display_planes)
 -      (Fx_display_color_cells, Fx_server_max_request_size)
 -      (Fx_server_vendor, Fx_server_version, Fx_display_backing_store)
 -      (Fx_display_visual_class, Fx_display_save_under):
 -      * w32fns.c (Fx_create_frame, Fx_display_pixel_width)
 -      (Fx_display_pixel_height, Fx_display_planes)
 -      (Fx_display_color_cells, Fx_server_max_request_size)
 -      (Fx_server_vendor, Fx_server_version, Fx_display_screens)
 -      (Fx_display_mm_height, Fx_display_mm_width)
 -      (Fx_display_backing_store, Fx_display_visual_class)
 -      (Fw32_select_font, Fx_display_save_under):
 -      * xfns.c (Fx_create_frame, Fx_display_pixel_width)
 -      (Fx_display_pixel_height, Fx_display_planes)
 -      (Fx_display_color_cells, Fx_server_max_request_size)
 -      (Fx_server_vendor, Fx_server_version, Fx_display_backing_store)
 -      (Fx_display_save_under): Fix typos in docstrings.
 -
 -2007-11-14  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (Fw32_registered_hot_keys): Don't return the nil values
 -      corresponding to deleted entries; they are an implementation detail.
 -      (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits):
 -      Remove variables.
 -      (Fw32_define_rgb_color, Fw32_load_color_file): Fix typos in docstrings.
 -      (Fx_server_version): Reflow docstring.
 -      (Fw32_shell_execute): Doc fixes.
 -
 -2007-11-13  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (Fw32_register_hot_key): Don't try to register hot key
 -      if w32_parse_hot_key returned nil.
 -
 -2007-11-10  Juri Linkov  <juri@jurta.org>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1130000.
 -
 -2007-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (load_overlay_strings): Fix copy&paste typo.
 -
 -2007-11-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispextern.h (struct it): Don't define OVERLAY_STRING_CHUNK_SIZE
 -      twice.
 -
 -      * xdisp.c (handle_face_prop): Fix last change.
 -
 -2007-11-06  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_tool_bar_menu_proxy): Handle GTK_IMAGE_ICON_NAME and
 -      abort with a message on unhandled store_type values.
 -
 -2007-11-04  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (handle_face_prop): Test for strings that came from overlays,
 -      not just for after-strings and before-strings.
 -      Call face_for_overlay_string and pass the overlay to it.
 -      (handle_display_prop): Determine whether property came from an overlay.
 -      Pass OVERLAY arg to handle_single_display_spec.
 -      (handle_single_display_spec): New arg OVERLAY sets it->from_overlay.
 -      (load_overlay_strings): Fill in it->string_overlays.
 -      (get_overlay_strings_1, push_it, pop_it): Handle it->from_overlays.
 -
 -      * xfaces.c (face_for_overlay_string): Function renamed from
 -      face_at_buffer_position_no_overlays, and add arg OVERLAY.
 -
 -      * dispextern.h (struct it): New elt string_overlays.
 -      New elt from_overlay, also in stack.
 -      Rearrange a few elements.
 -      (face_for_overlay_string): Decl renamed from
 -      face_at_buffer_position_no_overlays, and add argument.
 -
 -2007-11-03  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (handle_face_prop): Use face_at_buffer_position_no_overlays
 -      to get the base face for an overlay string.
 -
 -      * dispextern.h (face_at_buffer_position_no_overlays): Add decl.
 -
 -      * xfaces.c (face_at_buffer_position_no_overlays): New function.
 -
 -      * xdisp.c (handle_stop): Move some code out of loop.
 -
 -2007-11-01  Johan Bockg\e,Ae\e(Brd  <bojohan@gnu.org>
 -
 -      * macterm.c, w32term.c, xterm.c (x_draw_stretch_glyph_string):
 -      Don't set s->stippled_p here, since it has already been set by
 -      x_set_glyph_string_gc from x_draw_glyph_string.
 -
 -2007-10-31  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c [USE_ATSUI] (Fmac_atsu_font_face_attributes):
 -      Fix conversion from Lisp object to ATSUFontID.
 -
 -2007-10-30  Jason Rumney  <jasonr@gnu.org>
 -
 -      * xdisp.c (Fformat_mode_line): Do nothing when noninteractive.
 -
 -2007-10-30  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * unexmacosx.c (unexec_regions_recorder, unexec_regions_merge):
 -      Don't assume regions are aligned to page boundary.
 -      (print_load_command_name): Add LC_UUID if defined.
 -
 -2007-10-30  Richard Stallman  <rms@gnu.org>
 -
 -      * emacs.c (syms_of_emacs) <installation-directory>: Reflow docstring.
 -
 -2007-10-29  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * emacs.c (syms_of_emacs) <kill-emacs-hook>: Fix typo in docstring.
 -      <installation-directory>: Reflow docstring.
 -
 -2007-10-26  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (window_min_size_2): Don't count header-line.
 -
 -2007-10-25  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32.c (init_environment): Fix tiny memory leak.
 -      (w32_get_resource): Remove unused variable `ok'.
 -
 -2007-10-24  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c: Include math.h.
 -
 -2007-10-24  Richard Stallman  <rms@gnu.org>
 -
 -      * frame.c (x_figure_window_size): For fullscreen case,
 -      set USPosition | PPosition without clobbering rest of window_prompting.
 -
 -      * keyboard.c (Fcurrent_idle_time): Doc fix.
 -
 -      * print.c (Fwith_output_to_temp_buffer): Doc fix.
 -
 -2007-10-19  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * process.c (Fset_process_filter): Doc fix.
 -
 -2007-10-17  Glenn Morris  <rgm@gnu.org>
 -
 -      * minibuf.c (Qcompletion_ignore_case): New Lisp_Object.
 -      (syms_of_minibuf): Add Qcompletion_ignore_case.
 -      * dired.c (Qcompletion_ignore_case): Change to external.
 -      (syms_of_dired) [VMS]: Remove Qcompletion_ignore_case.
 -      * fileio.c (Qcompletion_ignore_case): New external Lisp_Object.
 -      (Fread_file_name): Use it rather than intern'ing.
 -
 -      * coding.c (Qcompletion_ignore_case): New external Lisp_Object.
 -      (Fread_coding_system): Ignore case of user input.
 -
 -2007-10-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (handle_display_prop): Ignore display specs after
 -      replacing one when string text is being replaced.
 -      (handle_single_display_spec): Pretend as if characters with display
 -      property haven't been consumed only when buffer text is being replaced.
 -
 -2007-10-14  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * eval.c (do_autoload): Don't save autoloads.
 -
 -      * data.c (Ffset): Save autoload of the function being set.
 -
 -2007-10-07  John Paul Wallington  <jpw@pobox.com>
 -
 -      * xfns.c (x_create_tip_frame): Set the `display-type' frame
 -      parameter before setting up faces.
 -
 -2007-10-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c (dos_rawgetc): Undo last change (there's no ``leaving
 -      selected frame'' on MSDOS).
 -
 -2007-10-12  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * frame.c (Qexplicit_name): New variable.
 -      (x_report_frame_params): Report it in parameter alist.
 -      (syms_of_frame): Intern and staticpro it.
 -
 -2007-10-09  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_set_window_size): Disable code that attempts to tell
 -      Lisp code about a size change before it actually happens.
 -
 -2007-10-09  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (handle_invisible_prop): After setting up an ellipsis,
 -      return HANDLED_RETURN.
 -
 -2007-10-06  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * keyboard.c (kbd_buffer_get_event): Break loop waiting for input
 -      when there's an unread command event.
 -
 -      * frame.c (focus_follows_mouse): Moved here from frame.el to allow
 -      window autoselection act appropriately when leaving selected frame.
 -      (syms_of_frame): Initialize focus_follows_mouse.
 -      * frame.h (focus_follows_mouse): Extern it.
 -      * macterm.c (XTread_socket): When focus_follows_mouse is nil
 -      make SELECT_WINDOW_EVENT only if we don't leave the selected
 -      frame.
 -      * msdos.c (dos_rawgetc): Likewise.
 -      * w32term.c (w32_read_socket): Likewise.
 -      * xterm.c (handle_one_xevent): Likewise.
 -      * xdisp.c (syms_of_xdisp): In doc-string of
 -      mouse-autoselect-window mention focus-follows-mouse.
 -
 -2007-10-06  Andreas Schwab  <schwab@suse.de>
 -
 -      * fileio.c (Fwrite_region): Ignore EINVAL error from fsync.
 -
 -2007-10-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_load_query_font): Fix missing return value.
 -      [USE_CG_DRAWING] (mac_define_fringe_bitmap, mac_destroy_fringe_bitmap):
 -      Add BLOCK_INPUT.
 -
 -2007-10-04  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * image.c (syms_of_image) <image-types>: Fix typo in docstring.
 -
 -2007-10-02  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (get_window_cursor_type): Implement documented behavior
 -      for cursor-in-non-selected-windows = t.
 -
 -2007-10-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * lread.c (Fload): Fix typo in docstring.
 -
 -2007-09-29  Juri Linkov  <juri@jurta.org>
 -
 -      * emacs.c (standard_args): Change priority of "--no-splash"
 -      from 40 to 3.  Add "--no-desktop" with the same priority.
 -
 -2007-09-29  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (w32_get_resource): Always close registry keys.
 -
 -2007-09-27  Jason Rumney  <jasonr@gnu.org>
 -
 -      * makefile.w32-in (LIBS): Add COMCTL32.
 -
 -      * w32fns.c (globals_of_w32fns): Init common controls.
 -
 -2007-09-21  Richard Stallman  <rms@gnu.org>
 -
 -      * image.c (our_memory_buffer): Renamed from omfib_buffer.
 -
 -2007-09-21  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32term.c (x_draw_glyph_string): Use strike_through_color, not
 -      underline_color, to draw strike-through.
 -
 -2007-09-20  Glenn Morris  <rgm@gnu.org>
 -
 -      * process.c (Fmake_network_process): Doc fix.
 -
 -2007-09-19  Richard Stallman  <rms@gnu.org>
 -
 -      * buffer.c (Foverlays_at): Doc fix.
 -
 -2007-09-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fns.c (Fplist_put): Preserve uneven tail data.
 -
 -2007-09-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_image_for_pixmap): Always create a GdkPixbuf
 -      when we have no file name for the icon.
 -      (xg_tool_bar_expose_callback): Remove.
 -      (xg_create_tool_bar): Don't connect expose signal to
 -      xg_tool_bar_expose_callback.
 -
 -2007-09-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * alloc.c (reset_malloc_hooks): Set the hooks to the previous
 -      values instead of zapping them.
 -
 -2007-09-15  Glenn Morris  <rgm@gnu.org>
 -
 -      * s/hpux.h: No longer define `static' as nothing.
 -
 -2007-09-14  Glenn Morris  <rgm@gnu.org>
 -
 -      * fringe.c (init_fringe_bitmap) <swap nibble>: Move to file scope.
 -      * gtkutil.c (xg_separator_p) <separator_names>: Move to file scope.
 -      * image.c (our_memory_fill_input_buffer) <buffer>: Move to file
 -      scope and rename to omfib_buffer for clarity.
 -      (gif_load) <interlace_start, interlace_increment>: Move to file scope.
 -
 -2007-09-14  Peter O'Gorman  <bug-gnu-emacs@mlists.thewrittenword.com>  (tiny change)
 -
 -      * gtkutil.c (xg_get_file_with_chooser): Move GCPRO1 after declarations.
 -
 -      * termhooks.h (enum event_kind): Remove trailing comma.
 -
 -      * frame.h (enum): Remove trailing comma.
 -
 -2007-09-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c, xterm.c, xfaces.c (abs): #undef before #define.
 -
 -2007-09-12  Glenn Morris  <rgm@gnu.org>
 -
 -      * gtkutil.c (cnt): Rename to menu_grab_callback_cnt for clarity.
 -      (menu_grab_callback): All uses changed.
 -
 -      * xselect.c (cnt): Rename to x_reply_selection_request_cnt for clarity.
 -      (x_reply_selection_request): All uses changed.
 -
 -2007-09-06  Pixel  <pixel@mandriva.com>  (tiny change)
 -
 -      * image.c (gif_load): Fix bug: Handle nonexistent colormap.
 -
 -2007-09-06  Glenn Morris  <rgm@gnu.org>
 -
 -      * gtkutil.c (menu_grab_callback) <cnt>:
 -      * xselect.c (x_reply_selection_request) <cnt>: Move static
 -      variable to file scope.
 -
 -2007-09-02  Dhuvra Krishnamurthy  <dhuvrakm@gmail.com>  (tiny change)
 -
 -      * w32proc.c (delete_child): Don't terminate threads of zombies.
 -
 -2007-09-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c: Qrtl is new.
 -      (parse_tool_bar_item): Handle :rtl keyword.
 -      (syms_of_keyboard): Intern :rtl keyword.
 -
 -      * dispextern.h (enum tool_bar_item_idx): Add TOOL_BAR_ITEM_RTL_IMAGE.
 -
 -      * gtkutil.c (file_for_image, find_rtl_image): New functions.
 -      (xg_get_image_for_pixmap): Use file_for_image
 -      (update_frame_tool_bar): If direction is RTL, use RTL image if
 -      defined.  Use Gtk stock images or named theme icons if defined.
 -
 -2007-08-29  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * keyboard.h (struct kboard): New elt Vlast_repeatable_command.
 -
 -      * keyboard.c (syms_of_keyboard): Set up new Lisp variable
 -      last-repeatable-command.
 -      (init_kboard): Initialize Vlast_repeatable_command.
 -      (command_loop_1): Set it to real_this_command unless that was
 -      bound to an input event.
 -      (mark_kboards): Mark it.
 -
 -2007-08-28  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * image.c (syms_of_image) <image-library-alist, cross-disabled-images>:
 -      Doc fixes.
 -
 -2007-08-28  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_tool_bar_expose_callback): Just do SET_FRAME_GARBAGED
 -      so no Lisp code is executed.
 -
 -2007-08-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (x_draw_composite_glyph_string_foreground): Draw rectangle
 -      for nonexistent or zero-width glyph in composition glyph.
 -
 -2007-08-27  Richard Stallman  <rms@gnu.org>
 -
 -      * eval.c (condition-case): Doc fix.
 -
 -2007-08-27  Masatake YAMATO  <jet@gyve.org>
 -
 -      * xfaces.c (tty_supports_face_attributes_p): Fix code
 -      for LFACE_INVERSE_INDEX and LFACE_BACKGROUND_INDEX; code
 -      was copied and not edited.
 -
 -2007-08-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (load_warn_old_style_backquotes): Fix up array size typo.
 -
 -2007-08-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (Qold_style_backquotes): New var.
 -      (syms_of_lread): Init and staticpro it.
 -      (load_warn_old_style_backquotes): New fun.
 -      (Fload): Use them to warn about old style backquotes.
 -      (end_of_file_error, Fload): Remove unused vars.
 -
 -      * lisp.h (Fclear_face_cache, Fx_send_client_event): Declare.
 -
 -      * lread.c (Vold_style_backquotes): New var.
 -      (syms_of_lread): Init and export it to Elisp.
 -      (read1): Set it when we find an old-style (back)quote.
 -
 -2007-08-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32reg.c (SYSTEM_DEFAULT_RESOURCES): Add missing NULL terminator.
 -
 -2007-08-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * insdel.c (reset_var_on_error): New fun.
 -      (signal_before_change, signal_after_change):
 -      Use it to reset (after|before)-change-functions to nil in case of error.
 -      Bind inhibit-modification-hooks to t.
 -      Don't bind (after|before)-change-functions to nil while they run.
 -
 -2007-08-19  Andreas Schwab  <schwab@suse.de>
 -
 -      * alloc.c (pure): Round PURESIZE up.
 -
 -2007-08-17  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): Remove check that mouse click is in
 -      active frame.
 -
 -2007-08-15  Philippe Waroquiers  <philippe.waroquiers@eurocontrol.int>
 -
 -      * term.c (tty_default_color_capabilities): Declare static
 -      variables in file scope, to avoid HPUX compiler problem.
 -
 -2007-08-13  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (update_frame_tool_bar): Use -1 as index
 -      to gtk_toolbar_insert.
 -
 -2007-08-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xterm.c (x_draw_image_glyph_string): Adjust stipple origin when
 -      filling pixmap with stippled background.
 -
 -2007-08-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * print.c (new_backquote_output): Rename from old_backquote_output.
 -      (print): Inverse its logic (according to its name) so as to match the
 -      behavior of new_backquote_flag in lread.c.
 -
 -2007-08-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * gmalloc.c (posix_memalign): New function.
 -
 -2007-08-08  Glenn Morris  <rgm@gnu.org>
 -
 -      * Replace `iff' in doc-strings and comments.
 -
 -2007-08-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispextern.h (struct image): New members.
 -
 -      * image.c: Sync to trunk version.
 -      (search_image_cache, uncache_image, image-refresh): New functions.
 -      Check for fg and bg colors.
 -      (lookup_image): Use search_image_cache.  Cache fg and bg colors.
 -      (pbm_load): Another check for invalid image data.
 -      (png_load): Ignore default background field.
 -
 -      * xdisp.c (move_it_by_lines): Remove incorrect optimization.
 -
 -2007-08-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gmalloc.c (__malloc_initialize): Remove pthread_once.  Not needed.
 -
 -2007-08-07  Sam Steingold  <sds@gnu.org>
 -
 -      * gmalloc.c (__morecore): Fix the declaration to comply with the
 -      definition.
 -
 -2007-08-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * emacs.c (main)
 -      [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
 -      Call malloc_enable_thread on interactive startup.
 -
 -      * gmalloc.c (_malloc_thread_enabled_p) [USE_PTHREAD]: New variable.
 -      (LOCK, UNLOCK, LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS)
 -      [USE_PTHREAD]: Conditionalize with it.
 -      (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
 -      (malloc_atfork_handler_child, malloc_enable_thread) [USE_PTHREAD]:
 -      New functions.
 -
 -2007-08-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (redisplay_window): When restoring original buffer
 -      position, make sure it is still valid.
 -
 -2007-08-06  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * window.c (window_min_size_2): New function.
 -      (window_min_size_1, size_window, Fdisplay_buffer)
 -      (Fsplit_window, adjust_window_trailing_edge): Use it to avoid
 -      windows without mode- or header-lines when window-min-height is
 -      too small.
 -      (size_window): Reset nodelete_p after testing it, following an
 -      earlier note by Kim F. Storm.
 -      (display_buffer): Do not set split_height_threshold to twice the
 -      value of window_min_height to avoid changing the value of a
 -      customizable variable.  Rather explicitly check whether the
 -      height of the window that shall be splitted is at least as large
 -      as split_height_threshold.
 -      (Fwindow_full_width_p): New defun.
 -      (syms_of_window): Defsubr it.
 -
 -      * window.h: Add EXFUN for Fwindow_full_width_p.
 -
 -2007-08-06  Andreas Schwab  <schwab@suse.de>
 -
 -      * window.c (Fdisplay_buffer): Use NILP.
 -      (Fset_window_scroll_bars): Likewise.
 -
 -2007-08-03  Richard Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Fvisited_file_modtime): Use make_time.
 -
 -2007-08-01  Ryo Yoshitake  <ryo@shiftmode.net>  (tiny change)
 -
 -      * mac.c (init_mac_osx_environment): Adjust load-path on self-contained
 -      build.
 -
 -2007-07-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * eval.c (init_eval_once): Bump max_lisp_eval_depth to 400.
 -
 -2007-07-25  Glenn Morris  <rgm@gnu.org>
 -
 -      * Relicense all FSF files to GPLv3 or later.
 -
 -      * COPYING: Switch to GPLv3.
 -
 -2007-07-24  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (x_real_positions): Get real position from OS instead of
 -      calculating it.
 -
 -2007-07-23  Jason Rumney  <jasonr@gnu.org>
 -
 -      * filelock.c (current_lock_owner): Allow for @ sign in username.
 -
 -2007-07-20  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in (clean): Don't delete *~.
 -
 -      * w32proc.c (IMAGE_NT_OPTIONAL_HDR32_MAGIC, IMAGE_OPTIONAL_HEADER32):
 -      Define if not defined.
 -
 -2007-07-18  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32proc.c (w32_executable_type): Handle 64 bit executables.
 -
 -2007-07-16  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * coding.c (Ffind_operation_coding_system):
 -      * eval.c (For, Fand, Fprogn):
 -      * keyboard.c (Ftrack_mouse):
 -      * print.c (Fwith_output_to_temp_buffer):
 -      * window.c (Fsave_window_excursion): Doc fixes (some reported
 -      by Johan Bockg\e,Ae\e(Brd).
 -
 -2007-07-15  Richard Stallman  <rms@gnu.org>
 -
 -      * data.c (Fsetq_default): Doc fix.
 -
 -      * eval.c (Fsetq): Doc fix.
 -
 -2007-07-11  Jason Rumney  <jasonr@gnu.org>
 -
 -      * makefile.w32-in (LIBS): Include OLE32.
 -
 -      * w32fns.c (w32_msg_pump) <WM_EMACS_CREATEWINDOW>: Initialize COM.
 -      (w32_msg_pump) <WM_DESTROY>: Uninitialize COM.
 -
 -2007-06-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c [USE_MAC_TSM] (mac_handle_text_input_event):
 -      Check WINDOWP before using XWINDOW.
 -
 -2007-06-27  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (syms_of_buffer) <selective-display>: Fix typo in docstring.
 -
 -2007-06-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * gmalloc.c [HAVE_GTK_AND_PTHREAD]: Check this after including config.h.
 -      (_aligned_blocks_mutex) [USE_PTHREAD]: New variable.
 -      (LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS): New macros.
 -      (_free_internal, memalign): Use them.
 -      (_malloc_mutex, _aligned_blocks_mutex) [USE_PTHREAD]:
 -      Initialize to PTHREAD_MUTEX_INITIALIZER.
 -      (malloc_initialize_1) [USE_PTHREAD]: Don't use recursive mutex.
 -      (morecore_nolock): Rename from morecore.  All uses changed.
 -      Use only nolock versions of internal allocation functions.
 -      (_malloc_internal_nolock, _realloc_internal_nolock)
 -      (_free_internal_nolock): New functions created from
 -      _malloc_internal, _realloc_internal, and _free_internal.
 -      (_malloc_internal, _realloc_internal, _free_internal): Use them.
 -      Copy hook value to automatic variable before its use.
 -      (memalign): Copy hook value to automatic variable before its use.
 -
 -2007-06-21  Jason Rumney  <jasonr@gnu.org>
 -
 -      * image.c (convert_mono_to_color_image): Swap fore and background.
 -
 -2007-06-20  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32bdf.c (w32_BDF_to_x_font): Unmap memory when finished.
 -      (w32_free_bdf_font): Unmap memory not handle.
 -
 -2007-06-20  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32.c (_wsa_errlist): Fix typo in error message.
 -      (init_environment): Ignore any environment variable from the
 -      registry having a null value.
 -
 -2007-06-17  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32menu.c (add_menu_item): Don't use multibyte string functions on
 -      unicode strings.
 -
 -2007-06-17  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xdisp.c (syms_of_xdisp) <auto-resize-tool-bars>:
 -      Fix typo in docstring.
 -
 -2007-06-16  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32menu.c (add_menu_item): Escape `&' characters in menu items
 -      and their keybindings.
 -
 -2007-06-14  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * composite.c (update_compositions): Check validity of compositions.
 -
 -2007-06-10  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fx_file_dialog): Take size from struct not pointer.
 -
 -2007-06-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * s/ms-w32.h: Don't define HAVE_TZNAME.
 -
 -2007-06-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (xpm_load): Remove spurious call to
 -      xpm_init_color_cache.
 -
 -2007-06-06  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * syntax.c (scan_words): Fix arg to UPDATE_SYNTAX_TABLE_BACKWARD.
 -
 -2007-06-05  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * xfaces.c (syms_of_xfaces): Delete stray semicolon.
 -      * xdisp.c (next_element_from_buffer):
 -      * window.c (delete_window):
 -      * term.c (term_mouse_highlight):
 -      * msdos.c (getdefdir):
 -      * macterm.c (mac_create_bitmap_from_bitmap_data)
 -      (init_font_name_table):
 -      * fns.c (Fsxhash):
 -      * data.c (Fmake_local_variable):
 -      * ccl.c (ccl_driver): Likewise.
 -
 -2007-06-04  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * window.c (Fshrink_window): Reflow docstring.
 -
 -2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * Version 22.1 released.
 -
 -      * xfns.c (x_set_name_internal): Undo last change.
 -
 -2007-06-01  Richard Stallman  <rms@gnu.org>
 -
 -      * xfns.c (x_encode_text): Add GCPRO.
 -      (x_set_name_internal): Separate USE_GTK and non-USE_GTK cases.
 -
 -2007-06-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xfns.c (x_set_name_internal): Save encoded name before
 -      x_encode_text in case string data is relocated.
 -
 -2007-05-31  Richard Stallman  <rms@gnu.org>
 -
 -      * buffer.c (syms_of_buffer): Doc fix.
 -
 -2007-05-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t
 -      around current_column call.
 -
 -2007-05-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (redisplay_window): If first window line is a
 -      continuation line, recompute the new window start instead of
 -      recentering.
 -
 -2007-05-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c [USE_CARBON_EVENTS] (mac_handle_window_event):
 -      Call mac_wakeup_from_rne on window size change.
 -
 -2007-05-22  Richard Stallman  <rms@gnu.org>
 -
 -      * xterm.c (x_connection_closed): Remove NO_RETURN.
 -
 -2007-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (skip_chars): Update syntax-table only after we checked that
 -      the new location is valid.
 -
 -2007-05-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (x_calc_absolute_position): Add BLOCK_INPUT around
 -      mac_get_window_bounds.
 -
 -2007-05-17  Glenn Morris  <rgm@gnu.org>
 -
 -      * m/macppc.h (ORDINARY_LINK): No longer define on OpenBSD.
 -
 -2007-05-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
 -      dead key repeat and up events.
 -
 -2007-05-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (XTread_socket): Revert last change.
 -
 -2007-05-12  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (pbm_load): Correctly check image size for greyscale pbm.
 -
 -      * xterm.c (XTread_socket): Yet Another Uncaught X Error Crash (YAUXEC).
 -
 -2007-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * editfns.c (Ftranspose_regions): Yet another int/Lisp_Object mixup (YAILOM)
 -
 -2007-05-06  Richard Stallman  <rms@gnu.org>
 -
 -      * process.c: Undo May 3 change.
 -
 -2007-05-03  Per Cederqvist  <ceder@lysator.liu.se>  (tiny change)
 -
 -      * process.c (Faccept_process_output): Revert 2006-03-22 change so
 -      that the third argument once again is in microseconds (not
 -      milliseconds).  This makes it compatible with Emacs 21 and
 -      earlier.  Problem found by Henrik Rindl\e,Av\e(Bw.
 -
 -2007-05-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (mac_dialog_show): Apply 2007-04-27 change for xmenu.c.
 -      (Fx_popup_dialog) [MAC_OSX]: Likewise.
 -
 -2007-04-29  Richard Stallman  <rms@gnu.org>
 -
 -      * insdel.c (replace_range): For undo, record insertion first.
 -
 -2007-04-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (try_window_reusing_current_matrix): Fix number of
 -      disabled lines.
 -
 -2007-04-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (xdialog_show): Call Fredisplay before showing the dialog.
 -
 -      * gtkutil.c (xg_update_menubar, create_menus): Create empty
 -      submenu for menu bar items.
 -
 -2007-04-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (redisplay_window): Use BEG_UNCHANGED and END_UNCHANGED
 -      values of the actual window.
 -
 -2007-04-23  Richard Stallman  <rms@gnu.org>
 -
 -      * process.c (Fstart_process): Doc fix.
 -
 -2007-04-23  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * process.c (Fstart_process): Doc fix.
 -
 -2007-04-22  Richard Stallman  <rms@gnu.org>
 -
 -      * abbrev.c (Fdefine_abbrev): Doc fix.
 -
 -      * keymap.c (Fdefine_key): Minor doc fix.
 -
 -2007-04-21  Glenn Morris  <rgm@gnu.org>
 -
 -      * keymap.c (Fdefine_key): Fix info ref in doc string.
 -
 -2007-04-20  Glenn Morris  <rgm@gnu.org>
 -
 -      * sysdep.c (init_system_name): Don't accept localhost.localdomain.
 -
 -2007-04-19  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * minibuf.c (Fminibuffer_contents, Fminibuffer_contents_no_properties)
 -      (Fminibuffer_completion_contents, Fdelete_minibuffer_contents):
 -      Doc fixes.
 -
 -2007-04-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispnew.c (adjust_frame_glyphs_for_frame_redisplay):
 -      Set garbaged flag in presence of window margins.
 -      (showing_window_margins_p): New function.
 -
 -      * xdisp.c (cursor_row_p): Only end row on newline if it's a
 -      display string.  Suggested by Lennart Borgman.
 -
 -2007-04-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * alloc.c (mem_insert): Set min_heap_address and max_heap_address
 -      if they are not yet initialized.
 -
 -2007-04-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (redisplay_window): When deciding whether or not to
 -      recenter, don't use the reset values of BEG_UNCHANGED and
 -      END_UNCHANGED.
 -
 -2007-04-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * buffer.c (Fkill_buffer): gcpro BUF during kill_buffer_processes
 -      and check that buffer is still alive upon return.
 -
 -2007-04-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c [!TARGET_API_MAC_CARBON]: Include Displays.h.
 -      (mac_screen_config_changed): New variable.
 -      (mac_handle_dm_notification, init_dm_notification_handler)
 -      (mac_get_screen_info): New functions.
 -      [MAC_OS8] (main): Call init_dm_notification_handler.
 -      (mac_initialize) [MAC_OSX]: Likewise.
 -      (XTread_socket): Call mac_get_screen_info if screen config changed.
 -      (mac_initialized): Make static.
 -      (mac_initialize_display_info): Remove function.
 -      (mac_term_init): Call mac_get_screen_info.  Add partial contents of
 -      mac_initialize_display_info.
 -
 -2007-04-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (xrm_get_preference_database, Fmac_get_preference)
 -      [TARGET_API_MAC_CARBON]: Use CFPreferencesAppSynchronize.
 -
 -      * macterm.c [TARGET_API_MAC_CARBON] (mac_post_mouse_moved_event):
 -      Use GetGlobalMouse instead of GetMouse and LocalToGlobal.
 -      (mac_initialize_display_info) [MAC_OSX]: Use CGRectZero.
 -      (mac_initialize_display_info) [!MAC_OSX]: dpyinfo->height and
 -      dpyinfo->width are those of whole screen.
 -
 -2007-04-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight): Don't decrement
 -      glyph pointer before start of glyph row.
 -
 -2007-04-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * s/darwin.h (__restrict, struct kboard): Remove outdated workarounds.
 -      (C_SWITCH_SYSTEM): Remove `-I../mac/src'.
 -
 -2007-04-09  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * indent.c (Fmove_to_column): Set next_boundary with correct start pt.
 -
 -2007-04-08  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (syms_of_xdisp) <message-log-max>: Default 100.
 -
 -2007-04-07  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * editfns.c (Ftranspose_regions): Validate interval before setting
 -      text properties.
 -
 -2007-04-03  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * emacs.c (main): Fix instructions for building Emacs for profiling.
 -
 -2007-04-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_update_menubar): Call g_list_next after moving
 -      menu bar item.
 -
 -2007-04-02  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * print.c (Fprin1_to_string): Use macro SPECPDL_INDEX.
 -
 -2007-04-01  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keymap.c (Fcommand_remapping): New optional argument.
 -      (where_is_internal): Use new keymaps argument.
 -      (Fkey_binding): Caller changed.
 -
 -      * keyboard.c (command_loop_1): Caller changed.
 -
 -2007-03-31  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * window.c (Fget_lru_window): Doc fix.
 -
 -2007-03-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * undo.c (Fprimitive_undo): Give clearer error message when trying
 -      to change text properties outside accessible part of buffer.
 -
 -2007-03-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (wait_reading_process_output) [HAVE_PTYS]:
 -      When EIO happens, clear channel from descriptor masks before raising
 -      SIGCHLD signal to avoid busy loop between read and sigchld_handler.
 -      (sigchld_handler): Remove sleep (2007-03-11 & 2007-03-26 changes).
 -
 -2007-03-29  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (Fset_buffer_major_mode): Check that BUFFER is valid.
 -
 -      * process.c (Fformat_network_address): Return nil when the
 -      argument vector contains invalid values.
 -
 -2007-03-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * gmalloc.c [HAVE_GTK_AND_PTHREAD]: Define USE_PTHREAD.
 -      [USE_PTHREAD]: Include pthread.h.
 -      (malloc_init_once_control, _malloc_mutex) [USE_PTHREAD]: New variables.
 -      (malloc_initialize_1): New function created from __malloc_initialize.
 -      (__malloc_initialize): Use it.
 -      (LOCK, UNLOCK): New macros to make malloc etc. thread safe.
 -      (_malloc_internal, _free_internal, _realloc_internal): Use them.
 -
 -      * lread.c (readchar): Extend BLOCK_INPUT block to ferror/clearerr.
 -
 -2007-03-27  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * process.c (Fformat_network_address): Make args array big enough
 -      to format IPv6 addresses.
 -
 -2007-03-27  Glenn Morris  <rgm@gnu.org>
 -
 -      * m/hp800.h: Restore HP-UX support (removed 2007-01-29).
 -
 -2007-03-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (Fx_display_mm_height, Fx_display_mm_width): Scale whole
 -      screen size in pixels by millimeters per pixel of main display.
 -
 -      * macselect.c (get_scrap_target_type_list, x_own_selection):
 -      Move assignments outside predicate macros.
 -      (Vselection_converter_alist): Doc fix.
 -
 -      * macterm.c (create_text_encoding_info_alist): Move assignments
 -      outside predicate macros.
 -      (mac_initialize_display_info) [MAC_OSX]: dpyinfo->height and
 -      dpyinfo->width are those of whole screen.
 -
 -2007-03-26  Sam Steingold  <sds@gnu.org>
 -
 -      * process.c (sigchld_handler): Delay by 1ms instead of 1s to
 -      alleviate sluggishness (the original problem is still fixed).
 -
 -2007-03-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * intervals.c (merge_properties): Use explicit loop instead of
 -      Fplist_member to avoid QUIT.  Don't use Fcdr.
 -      (intervals_equal): Likewise.  Rewrite loop to perform length check
 -      on the fly rather than calling Flength.  Don't use Fcar.
 -
 -2007-03-24  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * editfns.c (Fgoto_char): Doc fix.
 -
 -      * indent.c (Findent_to): Doc fix.
 -
 -2007-03-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * editfns.c (Ftranspose_regions): Use set_text_properties_1
 -      instead of Fset_text_properties to avoid GC.  Signal after change.
 -
 -2007-03-24  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xfns.c (Fx_show_tip): Doc fix.
 -
 -      * macfns.c (Fx_show_tip): Doc fix.
 -
 -      * w32fns.c (Fx_show_tip): Doc fix.
 -
 -2007-03-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * intervals.c (merge_properties, intervals_equal):
 -      Use Fplist_member instead of Fmemq to find properties.
 -
 -2007-03-23  Glenn Morris  <rgm@gnu.org>
 -
 -      * unexhp9k800.c: Restore file with clarified legal status.
 -      * m/sr2k.h: Restore since dependency unexhp9k800.c is restored.
 -
 -2007-03-22  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * widget.c (EmacsFrameSetCharSize): Catch X errors.
 -
 -2007-03-22  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Fcopy_file): Call barf_or_query_if_file_exists with
 -      non-encoded file name.
 -      (Frename_file): Likewise.
 -      (Fadd_name_to_file): Likewise.
 -      (Fmake_symbolic_link): Likewise.
 -
 -2007-03-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * Makefile.in (alloca.o, gtkutil.o): Depend on systime.h.
 -      (dired.o, editfns.o, fileio.o, msdos.o): Depend on atimer.h.
 -      (dosfns.o, window.o, fns.o, macselect.o): Depend on atimer.h and
 -      systime.h.
 -      (term.o, print.o, lread.o): Depend on blockinput.h, atimer.h, and
 -      systime.h.
 -      (macfns.o): Remove duplicate dependency on systime.h.
 -
 -      * dispnew.c (Fopen_termscript): Add BLOCK_INPUT around fclose.
 -      (Fsend_string_to_terminal): Add BLOCK_INPUT around fwrite.
 -
 -      * fileio.c (do_auto_save_unwind): Add BLOCK_INPUT around fclose.
 -      (Fdo_auto_save): Add BLOCK_INPUT around fwrite.
 -
 -      * keyboard.c (record_char): Add BLOCK_INPUT around fwrite.
 -      (Fopen_dribble_file): Add BLOCK_INPUT around fclose.
 -
 -      * lread.c: Include blockinput.h.
 -      (readchar, Fget_file_char): Add BLOCK_INPUT around getc.
 -      (unreadchar): Add BLOCK_INPUT around ungetc.
 -      (load_unwind): Add BLOCK_INPUT around fclose.
 -
 -      * print.c: Include blockinput.h.
 -      (Fredirect_debugging_output): Add BLOCK_INPUT around fclose.
 -
 -      * process.c (Fmake_network_process) [HAVE_GETADDRINFO]:
 -      Clear immediate_quit before calling freeaddrinfo.
 -      Add BLOCK_INPUT around freeaddrinfo.
 -
 -      * term.c: Include blockinput.h.
 -      (write_glyphs, insert_glyphs): Add BLOCK_INPUT around fwrite.
 -
 -2007-03-19  Richard Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (NUM_RECENT_KEYS): Bump up to 300.
 -
 -      * buffer.c (syms_of_buffer): Doc fix.
 -
 -2007-03-18  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (pbm_load): Signal error for invalid image size.
 -
 -2007-03-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (note_mouse_movement): Don't return immediately for
 -      LeaveNotify case.
 -
 -      * macmenu.c (popup_activated_flag): New variable.
 -      (x_activate_menubar, mac_menu_show): Set it during menu tracking.
 -      (popup_activated): New function.
 -
 -      * xdisp.c (redisplay_internal, note_mouse_highlight):
 -      Check popup_activated for MAC_OS.
 -
 -2007-03-17  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (syms_of_buffer) <buffer-display-table>: Doc fix.
 -      Reported by Nikolaj Schumacher <n_schumacher@web.de>.
 -
 -2007-03-17  Richard Stallman  <rms@gnu.org>
 -
 -      * dired.c (file_name_completion): gcpro NAME.
 -
 -2007-03-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (try_window_id): Increment matrix positions if the
 -      buffer's byte count has increased, but not the character count.
 -
 -2007-03-12  Andreas Schwab  <schwab@suse.de>
 -
 -      * lisp.h: Declare check_obarray.
 -
 -      * process.c (Fdelete_process): Properly handle deletion of first
 -      element of deleted_pid_list.
 -      (create_process): Declare pid as pid_t.
 -
 -2007-03-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (sigchld_handler): Change type of pid to pid_t.
 -      Scan deleted_pid_list explicitly to avoid using Fmember which don't
 -      know about mark bits and make_fixnum_or_float which may malloc.
 -      Reported by Andreas Schwab.
 -
 -      * keyboard.c (read_key_sequence): Store original event into keybuf
 -      when replaying sequence with local keymap(s) from string.
 -
 -2007-03-12  Glenn Morris  <rgm@gnu.org>
 -
 -      * editfns.c (Fdecode_time, Fencode_time): Doc fix ("daylight
 -      savings" to "daylight saving").
 -
 -2007-03-11  Sam Steingold  <sds@gnu.org>
 -
 -      * process.c (sigchld_handler): Sleep before wait3 to avoid a busyloop.
 -
 -2007-03-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (Fx_server_vendor): Change vendor string to "Apple Inc.".
 -
 -2007-03-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c [USE_CARBON_EVENTS] (mac_handle_mouse_event):
 -      Ignore mouse wheel movement on title bar or tool bar.
 -
 -2007-03-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (help_form_saved_window_configs): New var.
 -      (read_char_help_form_unwind): New function.
 -      (read_char): Don't restore window configuration if a mouse click
 -      arrives while the help form is being displayed.
 -
 -2007-03-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_window): Don't automatically select a new window
 -      start for a contination line during mouse-click.
 -
 -2007-03-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): Ignore buttons > 3 for the tool bar.
 -
 -2007-03-09  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * keymap.c (Fdescribe_buffer_bindings): Check that BUFFER is valid.
 -
 -2007-03-08  Richard Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (syms_of_keyboard): Doc fix.
 -
 -2007-03-08  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * minibuf.c (Ftry_completion): Don't short circuit if
 -      completion-ignore-case is non-nil.
 -
 -2007-03-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (mac_set_scroll_bar_width, mac_frame_parm_handlers):
 -      Undo 2006-03-06 changes.
 -
 -      * macterm.c (XTset_vertical_scroll_bar) [MAC_OSX]: Don't show scroll
 -      bar if its width is smaller than that of Aqua small scroll bar.
 -
 -2007-03-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * minibuf.c (read_minibuf): Bind inhibit-read-only a bit longer so as
 -      to handle correctly prompts with read-only property.
 -
 -2007-03-06  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * sound.c (wav_play): Check header->data_length to see how much we
 -      shall read.
 -      (alsa_period_size): Convert ALSA period size in frames to bytes.
 -      (alsa_write): Return if frames is zero.
 -
 -2007-03-06  Kenichi Handa  <handa@m17n.org>
 -
 -      * xselect.c (Vselection_coding_system): Documentation improved.
 -
 -2007-03-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (x_scroll_bar_create, XTread_socket): Replace #if
 -      USE_TOOLKIT_SCROLL_BARS with #ifdef USE_TOOLKIT_SCROLL_BARS.
 -      (x_set_window_size): Call SET_FRAME_GARBAGED.  Clear window if
 -      internal border width has changed.
 -
 -      * macterm.h (struct mac_output): New member `internal_border_width'.
 -
 -2007-03-04  Richard Stallman  <rms@gnu.org>
 -
 -      * window.c (Fdisplay_buffer): Doc fix.
 -
 -2007-03-03  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in: Don't clear out LIB_X11_LIB, since XFT_LIBS does
 -      not include -lX11 on Solaris.
 -
 -2007-03-02  Stuart D. Herring  <herring@lanl.gov>
 -
 -      * keymap.c (Fkey_binding): Don't consider one-element lists as events.
 -
 -2007-03-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * process.c (send_process_object): Check the process status and
 -      signal an error if something is wrong.
 -
 -2007-02-28  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * insdel.c (Fcombine_after_change_execute): Return nil if
 -      combine_after_change_buffer has been invalidated.
 -
 -2007-02-25  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * m/xtensa.h: New file.
 -
 -2007-02-24  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * .gdbinit (xprintstr): Ensure GDB (> 6.6) prints symbol name
 -      as strings and not character arrays.
 -
 -2007-02-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag)
 -      (x_set_toolkit_scroll_bar_thumb): Add bar->min_handle as margin to
 -      scroll bar handle size in order to avoid `scroll backward' problem.
 -      (x_scroll_bar_create, XTset_vertical_scroll_bar)
 -      [USE_TOOLKIT_SCROLL_BARS]: Initialize bar->min_handle.
 -
 -      * macterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
 -      New member `min_handle'.
 -
 -2007-02-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * print.c (print): Reset print_number_index if Vprint_number_table
 -      is nil.
 -
 -2007-02-23  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (stat, get_long_basename, is_unc_volume): Use _mbspbrk
 -      instead of strpbrk.
 -
 -2007-02-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (mac_menu_show): Call unbind_to early.  Use variable
 -      `menu_item_selection' as in W32 version.
 -      [TARGET_API_MAC_CARBON] (mac_handle_dialog_event): Add explicit
 -      braces to avoid ambiguous `else'.
 -
 -      * macterm.c (mac_display_info_for_display): Remove function.
 -      (mac_flush_display_optional) [USE_CG_DRAWING]: New function.
 -      (x_redisplay_interface) [USE_CG_DRAWING]: Set it as handler for
 -      flush_display_optional.
 -      [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_press):
 -      New argument MOUSE_POS.  All uses changed.  Set bar->dragging to
 -      negative integer if scroll bar handle is pressed.
 -      [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_release):
 -      Negative bar->dragging means scroll bar handle is not dragged.
 -      [USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag): Get initial
 -      offset of scroll bar handle from negative bar->dragging.
 -      (XTread_socket) [USE_TOOLKIT_SCROLL_BARS]: Modifiers for scroll
 -      bar click is compared against mapped one.  Set down/up_modifier
 -      for scroll bar click event with control key.
 -
 -      * macterm.h (x_display_info_for_display): Remove extern.
 -      (SCROLL_BAR_UNPACK, SET_SCROLL_BAR_CONTROL_HANDLE): Don't limit
 -      value to be unpacked to 32-bit on LP64 model.
 -
 -2007-02-23  Kenichi Handa  <handa@m17n.org>
 -
 -      * process.c (send_process_object_unwind): New function.
 -      (send_process_object): New function.
 -      (Fprocess_send_region): Call send_process_object.
 -      (Fprocess_send_string): Likewise.
 -
 -2007-02-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32menu.c (w32_menu_show): Mark the frame's menu as inactive
 -      when popup menu finishes.
 -
 -      * w32fns.c (menubar_in_use): New flag.
 -      (w32_wnd_proc) <WM_INITMENU, WM_EXITMENULOOP, WM_TIMER, WM_COMMAND>:
 -      Use it.
 -
 -      * w32menu.c (Fx_popup_menu): Don't free menu strings here.
 -      (w32_menu_show): Do it here instead.
 -
 -      * w32fns.c (w32_wnd_proc) <WM_INITMENU>: Set menubar_active frame
 -      parameter.
 -
 -      * w32menu.c (current_popup_menu): Make available globally.
 -      (menubar_selection_callback): Free menu strings before pushing the
 -      menu event into the keyboard buffer.  Remove menu_command_in_progress.
 -
 -      * w32fns.c (current_popup_menu): Use from w32menu.c.
 -      (w32_wnd_proc) <WM_EXITMENULOOP, WM_TIMER>: Use menubar_active
 -      and current_popup_menu to determine whether a menubar menu has
 -      been cancelled.
 -
 -      * w32term.h (w32_output): Remove menu_command_in_progress.
 -
 -2007-02-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (update_frame, update_single_window): Set force_p here if
 -      redisplay_dont_pause is set or Vredisplay_preemption_period is nil...
 -      (update_window, update_frame_1): ... instead of here.
 -      (update_text_area): Clear mouse face on header lines.
 -
 -2007-02-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * minibuf.c (Fassoc_string): Doc fix.  Allow symbol for KEY too.
 -
 -2007-02-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (WINDOW_RESOURCE, TERM_WINDOW_RESOURCE): Remove macros.
 -      [USE_MAC_TSM] (mac_handle_text_input_event): Remove unused variable
 -      `mapped_modifiers'.
 -      (XTread_socket) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1020]: Use Keyboard
 -      Layout Services routines to get current Unicode keyboard layout.
 -
 -2007-02-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (x_set_screen_gamma): Apply gamma value to the frame's
 -      bgcolor.
 -
 -2007-02-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * minibuf.c (Fassoc_string): Allow symbols as keys.
 -
 -      * w32term.c (w32_set_scroll_bar_thumb): Don't resize scroll-bar
 -      handle while dragging, except when we get close to eob.
 -      Fix position and size calculations so we don't scroll backwards
 -      just by clicking on the handle.
 -
 -2007-02-17  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * Makefile.in (${emacsapp}Contents/Resources/Emacs.rsrc)
 -      [HAVE_CARBON]: Remove target.
 -      (macosx-app) [HAVE_CARBON]: Don't depend on it.
 -
 -2007-02-17  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * callproc.c (syms_of_callproc) <doc-directory>:
 -      <configure-info-directory>:
 -      (Fgetenv_internal): Fix typos in docstrings.
 -
 -      * doc.c (Fsubstitute_command_keys): Fix typo in docstring.
 -
 -2007-02-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * frame.c (Fmodify_frame_parameters): Return a value.
 -
 -      * editfns.c (Fformat): Add support for '+' flag.
 -      * doprnt.c (doprnt1): Likewise.  Fix overflow checking.
 -
 -2007-02-14  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * s/umips.h: Unused file removed.
 -
 -2007-02-14  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xfaces.c (Fcolor_distance): Don't continue checking a color for
 -      errors after it has been correctly parsed as an RGB list.
 -
 -2007-02-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (do_ewmh_fullscreen): Also check for _NET_WM_STATE_FULLSCREEN.
 -
 -2007-02-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (Fx_focus_frame): Move current process to foreground if
 -      it is not.
 -      [TARGET_API_MAC_CARBON] (Fx_file_dialog): Replace #if MAC_OSX with
 -      #ifdef MAC_OSX.
 -      (Fmac_set_font_panel_visible_p) [USE_MAC_FONT_PANEL]: Rename from
 -      Fmac_set_font_panel_visibility.  All uses changed.  Rename argument
 -      VISIBLE to FLAG.
 -
 -      * macterm.c (MakeMeTheFrontProcess) [MAC_OSX]: Remove function.
 -      (mac_initialize) [MAC_OSX]: Call SetFrontProcess instead of
 -      MakeMeTheFrontProcess.
 -
 -2007-02-12  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (x_set_screen_gamma): Clear face cache.
 -
 -2007-02-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (Fgenerate_new_buffer_name, Fbuffer_modified_tick):
 -      Reflow docstrings.
 -
 -2007-02-10  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * window.c (Fwindow_height, Fwindow_hscroll)
 -      (Fwindow_redisplay_end_trigger, Fwindow_point, Fwindow_start)
 -      (Fwindow_end, Fwindow_display_table, Fwindow_text_height):
 -      Document the effect of WINDOW arg being nil.
 -
 -2007-02-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * minibuf.c (read_minibuf): Fix 2007-01-30 change.
 -      Use Qlambda as interim value of Vminibuffer_completing_file_name.
 -      (Fcompleting_read): Use non-filename maps if value is Qlambda (or Qnil).
 -      (syms_of_minibuf) <minibuffer-completing-file-name>: Document lambda.
 -
 -2007-02-07  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * makefile.w32-in ($(TRES)): Use literal "../nt/emacs.rc" instead
 -      of $(ALL_DEPS).
 -
 -2007-02-07  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in ($(TRES)): Depend on stamp_BLD, since $(TRES) is
 -      put into $(BLD).
 -
 -2007-02-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (Fmodify_frame_parameters): Don't bind
 -      Qinhibit_default_face_x_resources, which has no effect.
 -      (Qinhibit_default_face_x_resources): Symbol deleted.
 -
 -2007-02-03  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * indent.c (Fmove_to_column): Document that the argument COLUMN is
 -      taken from prefix numeric argument.
 -
 -2007-02-03  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * lread.c (syms_of_lread) <load-history>: Doc fix.
 -
 -2007-01-29  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>  (tiny change)
 -
 -      * xterm.c [!USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_expose):
 -      Use the foreground color of the scroll-bar face when drawing
 -      the scroll-bar's border.
 -
 -2007-02-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (do_ewmh_fullscreen): Check that what != NULL before
 -      calling wm_supports.
 -
 -2007-02-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * lread.c (syms_of_lread) <user-init-file>: Doc fix.
 -      Wording by Eli Zaretskii.
 -
 -2007-01-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (update_frame_tool_bar): Initialize h/vmargin to 0.
 -
 -2007-01-30  Richard Stallman  <rms@gnu.org>
 -
 -      * minibuf.c (read_minibuf):
 -      Save and clear Vminibuffer_completing_file_name.
 -      (read_minibuf_unwind): Restore it.
 -      (Vminibuffer_completion_table, Qminibuffer_completion_table)
 -      (Vminibuffer_completion_predicate, Qminibuffer_completion_predicate)
 -      (Vminibuffer_completion_confirm, Qminibuffer_completion_confirm)
 -      (Vminibuffer_completing_file_name): Definitions moved up.
 -
 -2007-01-29  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * m/hp800.h: Restore, removing HP-UX support.
 -
 -2007-01-29  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * Makefile.in: Use a variable, XFT_LIBS, instead #define LIB_X11_LIB.
 -
 -2007-01-28  Richard Stallman  <rms@gnu.org>
 -
 -      * minibuf.c (Ftry_completion, Fall_completions)
 -      (Fcompleting_read, Ftest_completion):
 -      Rename arg ALIST or TABLE to COLLECTION.
 -
 -2007-01-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * unexhp9k800.c: Remove due to lack of legal papers.
 -
 -      * m/sr2k.h, m/hp800.h: Remove due to dependence on above.
 -
 -2007-01-27  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * keyboard.c (Fthis_command_keys, Fthis_command_keys_vector): Doc fix.
 -
 -      * minibuf.c (Fcompleting_read): Doc fix.
 -
 -2007-01-26  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_initialize): Call XftInit if HAVE_XFT.
 -
 -      * Makefile.in: Use XFT_LIBS if defined.
 -
 -2007-01-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * alloc.c (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Use
 -      BLOCK_INPUT/UNBLOCK_INPUT.
 -
 -      * blockinput.h (interrupt_input_blocked): Declare volatile.
 -
 -      * keyboard.c (interrupt_input_blocked): Declare volatile.
 -
 -      * syssignal.h (SIGNAL_THREAD_CHECK): Use pthread_equal.
 -
 -2007-01-24  Kim F. Storm  <storm@cua.dk>
 -
 -      * keymap.c (describe_map): Don't consider prefix keys to be shadowed.
 -
 -2007-01-23  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * editfns.c (Finsert_char): Doc fix.
 -      (Fget_internal_run_time, Fdecode_time): Fix typos in docstrings.
 -
 -2007-01-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macselect.c [TARGET_API_MAC_CARBON] (mac_do_receive_drag):
 -      Don't pass keyboard modifiers to mac_store_drag_event, but put
 -      them as kEventParamKeyModifiers Apple event parameter.
 -
 -2007-01-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (try_window): Revert previous change.
 -
 -      * dispnew.c (update_text_area): Revert 2006-09-17 change.
 -      Always redraw non-mode-line rows with mouse-face.
 -
 -2007-01-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (try_window): Clear mouse-face highlights first.
 -
 -      * window.c (set_window_buffer): Revert 2006-11-22 change.
 -
 -2007-01-20  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * .gdbinit (ppt, xtype, xmisctype, xint, xptr, xmarker, xframe)
 -      (xbuffer, xcons, xcar, xcdr): Fix doc strings.
 -
 -2007-01-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (read_key_sequence): Extract local map only if the
 -      given position is in an accessible buffer region.
 -
 -2007-01-19  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * .gdbinit: Reformat documentation so that first sentence
 -      displays properly with "help user-defined" (like apropos).
 -
 -2007-01-18  Bruno Haible  <bruno@clisp.org>  (tiny change)
 -
 -      * epaths.in: Move PATH_DOC from local/info to local/share/info.
 -
 -2007-01-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (create_and_show_dialog) [TARGET_API_MAC_CARBON]:
 -      Create movable modal window instead of movable alert window.
 -      (create_and_show_dialog) [!MAC_OSX]: Use DeactivateControl instead
 -      of DisableControl.
 -
 -      * macselect.c (Fmac_resume_apple_event): Set error number when
 -      descriptor type of reply is non-null.
 -
 -2007-01-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (create_and_show_dialog) [TARGET_API_MAC_CARBON]:
 -      Use DisableControl for disabled items.  Set default button to first
 -      enabled one.  Use icon of application in execution.
 -
 -2007-01-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * process.c (Fdelete_process, Fprocess_id, sigchld_handler):
 -      Copy PID into EMACS_INT to avoid GCC warnings.
 -
 -      * fns.c (maybe_resize_hash_table): Copy new size of hash table
 -      into EMACS_INT to avoid GCC warnings.
 -
 -      * editfns.c (Fuser_uid, Fuser_real_uid): Copy values returned by
 -      geteuid and getuid into EMACS_INT to avoid GCC warnings.
 -
 -      * dired.c (Ffile_attributes): Fix last change.
 -
 -2007-01-12  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (Ffile_attributes): Copy some members of `struct stat'
 -      into int's to avoid GCC warnings about limited range of short in
 -      arguments to FIXNUM_OVERFLOW_P.
 -
 -2007-01-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (HAVE_DIALOGS): Define if TARGET_API_MAC_CARBON.
 -      (mac_handle_dialog_event, install_dialog_event_handler)
 -      (create_and_show_dialog) [TARGET_API_MAC_CARBON]: New functions.
 -      (DIALOG_LEFT_MARGIN, DIALOG_TOP_MARGIN, DIALOG_RIGHT_MARGIN)
 -      (DIALOG_BOTTOM_MARGIN, DIALOG_MIN_INNER_WIDTH)
 -      (DIALOG_MAX_INNER_WIDTH, DIALOG_BUTTON_BUTTON_HORIZONTAL_SPACE)
 -      (DIALOG_BUTTON_BUTTON_VERTICAL_SPACE, DIALOG_BUTTON_MIN_WIDTH)
 -      (DIALOG_TEXT_MIN_HEIGHT, DIALOG_TEXT_BUTTONS_VERTICAL_SPACE)
 -      (DIALOG_ICON_WIDTH, DIALOG_ICON_HEIGHT, DIALOG_ICON_LEFT_MARGIN)
 -      (DIALOG_ICON_TOP_MARGIN) [TARGET_API_MAC_CARBON]: New macros.
 -      (mac_dialog) [TARGET_API_MAC_CARBON]: Remove function.
 -      (mac_dialog_show) [TARGET_API_MAC_CARBON]: Use create_and_show_dialog.
 -
 -      * macterm.c (x_free_frame_resources) [USE_CG_DRAWING]:
 -      Call mac_prepare_for_quickdraw.
 -      (quit_char, make_ctrl_char) [TARGET_API_MAC_CARBON]: Move externs
 -      outside #ifdef MAC_OSX.
 -      (mac_quit_char_key_p) [TARGET_API_MAC_CARBON]: Move function
 -      outside #ifdef MAC_OSX.
 -      (mac_check_bundle) [MAC_OSX]: Remove unused function.
 -
 -      * macterm.h (mac_quit_char_key_p): Move extern outside #ifdef MAC_OSX.
 -      (HOURGLASS_WIDTH, HOURGLASS_HEIGHT): Parenthesize definitions.
 -
 -2007-01-11  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * alloc.c (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Use pthread_equal,
 -      block/unblock SIGIO.
 -
 -2007-01-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * editfns.c (Fformat): Allow integer-format to work with floats of size
 -      larger than most-positive-fixnum (but still smaller than MAXINT).
 -
 -      * dired.c (Ffile_attributes): Use floats for large uids/gids.
 -
 -2007-01-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * emacs.c (syms_of_emacs) <path-separator>: Doc fix.
 -
 -2007-01-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * callproc.c (Fcall_process_region) [HAVE_MKSTEMP]: Add BLOCK_INPUT
 -      around mkstemp.
 -
 -      * image.c (XDrawLine) [MAC_OS]: Remove macro.
 -      (XCreateGC_pixmap) [!HAVE_NTGUI]: Likewise.
 -      (x_disable_image) [!HAVE_NTGUI]: Use XCreateGC instead of
 -      XCreateGC_pixmap.
 -
 -      * macgui.h (Display): Typedef to opaque type.
 -
 -      * macmenu.c (mac_dialog_modal_filter) [MAC_OSX]: New function.
 -      (Fx_popup_dialog) [MAC_OSX]: Use standard alert if called from
 -      Fmessage_box, Fyes_or_no_p, or Fy_or_n_p.
 -      [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030] (menu_quit_handler):
 -      Use mac_quit_char_key_p.
 -
 -      * macterm.c (XDrawLine): Rename from mac_draw_line_to_pixmap.
 -      (XCreateGC): Change type of 2nd argument to void *.
 -      (XFreeGC) [USE_CG_DRAWING && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
 -      Fix last change.
 -      (mac_to_emacs_modifiers): Change return type to int.
 -      [USE_CARBON_EVENTS] (mac_event_to_emacs_modifiers): Likewise.
 -      (mac_mapped_modifiers): New function.
 -      (XTread_socket): Use it.
 -      [USE_TSM] (mac_handle_text_input_event): Likewise.
 -      (do_window_update) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
 -      (mac_quit_char_modifiers, mac_quit_char_keycode) [MAC_OSX]:
 -      Remove variables.
 -      (mac_determine_quit_char_modifiers, init_quit_char_handler)
 -      [MAC_OSX]: Remove functions.
 -      (make_ctrl_char) [MAC_OSX]: Add extern.
 -      (mac_quit_char_key_p) [MAC_OSX]: New function.
 -      (mac_initialize) [MAC_OSX]: Don't call init_quit_char_handler.
 -
 -      * macterm.h (FONT_MAX_WIDTH): Remove unused macro.
 -      (XCreateGC): Change type in extern.
 -      (XDrawLine): Rename from mac_draw_line_to_pixmap.
 -      (mac_quit_char_key_p) [MAC_OSX]: Add extern.
 -
 -2007-01-08  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c (init_keyboard): Initialize interrupt_input_blocked and
 -      interrupt_input_pending.
 -
 -      * xterm.h (x_display_info): New: net_supported_atoms,
 -      nr_net_supported_atoms and net_supported_window.
 -
 -      * xterm.c (last_user_time): New variable.
 -      (handle_one_xevent): Set last_user_time from events that have Time.
 -      Set net_supported_window to 0 when reparented.
 -      (wm_supports): New function.
 -      (do_ewmh_fullscreen): Use wm_supports to check for _NET_WM_STATE.
 -      (x_term_init): Initialize net_supported_atoms, nr_net_supported_atoms
 -      and net_supported_window.
 -
 -2007-01-05  Kim F. Storm  <storm@cua.dk>
 -
 -      * indent.c (Fvertical_motion): Fix it overshoot check for overlay
 -      strings without embedded newlines immediately followed by newline.
 -
 -2007-01-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * editfns.c (Fformat_time_string, Fdecode_time, Fencode_time)
 -      (Fcurrent_time_string, Fcurrent_time_zone): Add BLOCK_INPUT around
 -      gmtime/localtime/emacs_memftimeu/mktime.
 -
 -      * mac.c (Fmac_set_file_creator): Use MAC_EMACS_CREATOR_CODE
 -      instead of 'EMAx'.
 -      [!MAC_OSX] (sys_open, sys_creat, sys_fopen): Likewise.
 -
 -      * macgui.h (struct _XGC) [USE_CG_DRAWING
 -      && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: New members cg_fore_color
 -      and cg_back_color.
 -
 -      * macmenu.c (Vshow_help_function) [TARGET_API_MAC_CARBON]: Add extern.
 -      (restore_show_help_function, menu_target_item_handler)
 -      [TARGET_API_MAC_CARBON]: New functions.
 -      (install_menu_target_item_handler): New function.
 -      (add_menu_item) [TARGET_API_MAC_CARBON]: Set help string as menu
 -      item property.
 -
 -      * macterm.c (CG_SET_FILL_COLOR_MAYBE_WITH_CGCOLOR)
 -      (CG_SET_FILL_COLOR_WITH_GC_FOREGROUND)
 -      (CG_SET_FILL_COLOR_WITH_GC_BACKGROUND)
 -      (CG_SET_STROKE_COLOR_MAYBE_WITH_CGCOLOR)
 -      (CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND): New macros.
 -      (mac_cg_color_space_rgb) [USE_CG_DRAWING]: New variable.
 -      (mac_cg_color_black) [USE_CG_DRAWING
 -      && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: New variable.
 -      (init_cg_color) [USE_CG_DRAWING]: New function.
 -      (mac_draw_line, mac_draw_rectangle) [USE_CG_DRAWING]: Use
 -      CG_SET_STROKE_COLOR_WITH_GC_FOREGROUND instead of CG_SET_STROKE_COLOR.
 -      (mac_erase_rectangle, mac_clear_window, mac_draw_cg_image)
 -      (mac_fill_rectangle, mac_draw_image_string_cg) [USE_CG_DRAWING]:
 -      Use CG_SET_FILL_COLOR_WITH_GC_FOREGROUND or
 -      CG_SET_FILL_COLOR_WITH_GC_BACKGROUND instead of CG_SET_FILL_COLOR.
 -      (mac_draw_string_common) [MAC_OSX && USE_ATSUI]: Likewise.
 -      (XCreateGC, XFreeGC, XSetForeground, XSetBackground) [USE_CG_DRAWING
 -      && MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: Use gc->cg_fore_color and/or
 -      gc->cg_back_color.
 -      (install_drag_handler, remove_drag_handler): Make extern.
 -      (install_menu_target_item_handler): Add extern.
 -      (install_window_handler): Call install_menu_target_item_handler.
 -      [MAC_OS8] (main): Use MAC_EMACS_CREATOR_CODE instead of 'EMAx'.
 -      (mac_initialize) [USE_CG_DRAWING]: Call init_cg_color.
 -
 -      * macterm.h (MAC_EMACS_CREATOR_CODE): New enumerator.
 -
 -2007-01-04  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * window.c (Fwindow_end): Fix use of >= operator.
 -
 -2007-01-03  Richard Stallman  <rms@gnu.org>
 -
 -      * window.c (Fwindow_end): Check BUF_OVERLAY_MODIFF like BUF_MODIFF.
 -
 -2007-01-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.h (xg_menu_item_cb_data_): Remove highlight_id and
 -      unhighlight_id.
 -
 -      * gtkutil.c (menuitem_highlight_callback): Invoked widget is the
 -      parent of the menu item.  Get menu item widget from event.
 -      (xg_create_one_menuitem, xg_update_menu_item): highlight_id and
 -      unhighlight_id has been removed.
 -      (create_menus): Connect enter/leave-notify-event to the menu instead
 -      of individual items.
 -
 -2006-12-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (update_frame_tool_bar): Connect create-menu-proxy with
 -      xg_tool_bar_menu_proxy.
 -      (xg_tool_bar_menu_proxy): New function.
 -      (xg_tool_bar_proxy_callback): New function.
 -
 -2006-12-30  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_tool_bar_button_cb): Save last modifier on widget.
 -      (xg_tool_bar_callback): Remove check for button.
 -      (update_frame_tool_bar): Put an event box in the tool bar and a button
 -      in the event box.  Attach enter/leave-notify-event to the event box.
 -
 -2006-12-30  Richard Stallman  <rms@gnu.org>
 -
 -      * keymap.c (Fdefine_key): Doc fix.
 -
 -2006-12-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * frame.h (struct frame): New member minimize_tool_bar_window_p.
 -
 -      * xdisp.c (auto_resize_tool_bars_p): Replace with ...
 -      (Vauto_resize_tool_bars): ... this.
 -      (syms_of_xdisp): DEFVAR_LISP and initialize it.  Update doc string
 -      to describe new value `grow-only', and use of C-l.
 -      (display_tool_bar_line): Only use default face for border below
 -      toolbar if not grow-only (to get acceptable visual appearence).
 -      Explicitly set visible_height for empty toolbar lines.
 -      (redisplay_tool_bar): Handle `grow-only' setting.  Check and clear
 -      minimize_tool_bar_window_p flag.
 -
 -      * window.c (Frecenter): Set minimize_tool_bar_window_p flag
 -      when called without arg to redraw with minimum toolbar height.
 -      Update doc string.
 -
 -2006-12-29  Jason Rumney  <jasonr@gnu.org>
 -
 -      * s/ms-w32.h (tzname): Do not define in msvc8.
 -      (utime): Do not define in msvc8.
 -
 -      * regex.c (regerror): Change parameter name err_code.
 -
 -2006-12-26  Richard Stallman  <rms@gnu.org>
 -
 -      * search.c (Fsearch_forward): Doc fix.
 -
 -      * callint.c (Finteractive): Doc fix.
 -
 -2006-12-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * s/ms-w32.h (BROKEN_DATAGRAM_SOCKETS): Define it.
 -
 -2006-12-23  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * keyboard.c (some_mouse_moved): Fix last change.
 -
 -2006-12-22  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * callproc.c (syms_of_callproc) <shell-file-name>: Doc fix.
 -
 -2006-12-22  Mark Davies  <mark@mcs.vuw.ac.nz>
 -
 -      * m/amdx86-64.h, m/hp800.h: Add support for NetBSD.
 -      * m/sh3el.h: New file.
 -
 -2006-12-22  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in (emacs, temacs): Depend on stamp_BLD instead of
 -      $(BLD).
 -      ($(OBJ0) $(OBJ1) $(WIN32OBJ)): New dependency on stamp_BLD.
 -      (bootstrap-temacs): Pass $(XMFLAGS) to sub-make.
 -      ($(OBJ0) $(OBJ1) $(WIN32OBJ)): Add lastfile.$(O) and firstfile.$(O).
 -      (clean): Delete stamp_BLD.
 -
 -2006-12-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (mac_update_title_bar) [TARGET_API_MAC_CARBON]:
 -      Call mac_update_proxy_icon also when buffer modification flag changed.
 -      [TARGET_API_MAC_CARBON] (mac_update_proxy_icon): Don't update alias,
 -      but compare FSRef/FSSpec of resolved alias.
 -
 -2006-12-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * w32.c (_sys_wait_accept): Fix handle leak.
 -
 -2006-12-20  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * sound.c: Include <alsa/asoundlib.h> if ALSA_SUBDIR_INCLUDE is
 -      defined.
 -
 -2006-12-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * s/ms-w32.h (BROKEN_NON_BLOCKING_CONNECT): Define it.
 -
 -2006-12-19  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * keyboard.c (syms_of_keyboard) <double-click-time>:
 -      * mac.c (Fmac_code_convert_string):
 -      * search.c (Fsearch_forward): Doc fixes.
 -
 -2006-12-19  Kim F. Storm  <storm@cua.dk>
 -
 -      Rework 2006-12-04 change.  A SIGUSR1 (SIGUSR2) signal now generates
 -      a sigusr1 event instead of [signal usr1] sequence, and signal events
 -      are now supposed to be handled via special-event-map.
 -
 -      * keyboard.c (kbd_buffer_store_event_hold): Undo 2006-12-04 change.
 -      (make_lispy_event): Don't generate Qsignal prefix for code 0.
 -      Abort if signal code is unknown.
 -      (store_user_signal_events): Don't make Qsignal prefix (code 0).
 -      (Qsignal): Move declaration back to process.c.
 -      (syms_of_keyboard): Don't intern or staticpro it here.
 -
 -      * process.c (Qsignal): Declare here.
 -      (syms_of_process): Intern or staticpro it.
 -
 -      * emacs.c (main): Rename user signals to sigusr1 and sigusr2.
 -
 -      * .gdbinit: Pass on SIGUSR1 and SIGUSR2 to Emacs.
 -
 -2006-12-19  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (syms_of_buffer) <buffer-display-table>:
 -      <scroll-up-aggressively, scroll-down-aggressively>: Doc fixes.
 -
 -2006-12-17  Richard Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Fread_file_name_internal): Pass Vread_file_name_predicate
 -      to Ffile_name_completion.
 -
 -      * dired.c (file_name_completion): New arg PREDICATE.  Some cleanup.
 -      (Ffile_name_completion): New arg PREDICATE.
 -
 -2006-12-17  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (Fkill_buffer): Doc fix.
 -      (syms_of_buffer) <kill-buffer-query-functions>: Doc fix.
 -
 -2006-12-16  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * minibuf.c (Ftry_completion): Check that obarray buckets are symbols.
 -
 -2006-12-16  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (w32-window-exists-p): New function.
 -      (syms_of_w32fns): Defsubr it.
 -
 -      * prefix-args.c [STDC_HEADERS]: Include stdlib.h.
 -
 -2006-12-16  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * minibuf.c (Ftry_completion): Use `check_obarray' if ALIST is a vector.
 -
 -2006-12-15  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * emacs.c (USAGE3): Clarify documentation of --color.
 -
 -2006-12-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (wakeup_from_rne_enabled_p) [TARGET_API_MAC_CARBON]:
 -      New variable.
 -      (ENABLE_WAKEUP_FROM_RNE, DISABLE_WAKEUP_FROM_RNE): New macros.
 -      [!MAC_OSX] (select): Use them.
 -      [MAC_OSX] (select_and_poll_event, sys_select): Likewise.
 -      (mac_wakeup_from_rne) [TARGET_API_MAC_CARBON]: New function.
 -
 -      * macfns.c (mac_atsu_font_face_attributes) [USE_ATSUI]: Add extern.
 -      (Fmac_atsu_font_face_attributes) [USE_ATSUI]: New function.
 -      (syms_of_macfns) [USE_ATSUI]: Defsubr it.
 -
 -      * macselect.c [TARGET_API_MAC_CARBON] (mac_do_receive_drag):
 -      Use mac_wakeup_from_rne instead of mac_post_mouse_moved_event.
 -
 -      * macterm.c (mac_query_char_extents) [USE_ATSUI]: Don't call
 -      ATSUGetGlyphBounds if not necessary.
 -      (Vmac_atsu_font_table) [USE_ATSUI]: Remove variable.
 -      (syms_of_macterm) [USE_ATSUI]: Don't defvar it.
 -      (fm_get_style_from_font, atsu_find_font_from_family_name)
 -      (atsu_find_font_family_name, mac_atsu_font_face_attributes)
 -      [USE_ATSUI]: New functions.
 -      (init_font_name_table) [USE_ATSUI]: Use atsu_find_font_family_name.
 -      (mac_load_query_font) [USE_ATSUI]: Use atsu_find_font_from_family_name.
 -      Don't get metrics for Latin-1 right half characters.
 -      (mac_load_query_font): Don't load font if space width is not positive.
 -      [TARGET_API_MAC_CARBON] (mac_store_event_ref_as_apple_event):
 -      Use mac_wakeup_from_rne instead of mac_post_mouse_moved_event.
 -      (XTread_socket): Call SelectWindow when unfocused frame is clicked.
 -
 -      * macterm.h (mac_wakeup_from_rne) [TARGET_API_MAC_CARBON]: Add extern.
 -
 -2006-12-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (ignore_mouse_drag_p): New global var.
 -      (some_mouse_moved): Return 0 if it is non-zero.
 -      (make_lispy_event): Generate click event on mouse up if
 -      ignore_mouse_drag_p is non-zero, even if mouse moved.
 -      Clear ignore_mouse_drag_p on mouse down/up.
 -
 -      * xdisp.c (redisplay_window): Set ignore_mouse_drag_p if tool-bar
 -      is resized to avoid generating a mouse drag event.
 -
 -2006-12-14  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (w32_wnd_proc): Force non-tooltip frames to respect the
 -      minimum tracking size.  Remove non-working old hack to do the same.
 -
 -2006-12-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * emacs.c (handle_user_signal): Move function to keyboard.c.
 -      (main): Use add_user_signal for SIGUSR1 and SIGUSR2.
 -
 -      * keyboard.c (make_lispy_event): Use find_user_signal_name.
 -      (read_avail_input): Store pending user signal events.
 -      (struct user_signal_info): New struct.
 -      (user_signals): New variable.
 -      (add_user_signal, store_user_signal_events)
 -      (find_user_signal_name): New functions.
 -      (handle_user_signal): Move function from emacs.c.  Don't store
 -      USER_SIGNAL_EVENT here, but increment number of pending signals.
 -
 -      * keyboard.h (add_user_signals): Add extern.
 -
 -2006-12-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (syms_of_buffer) <cursor-in-non-selected-windows>:
 -      <default-scroll-up-aggressively, default-scroll-down-aggressively>:
 -      <line-spacing, left-margin>: Doc fixes.
 -
 -      * xdisp.c (syms_of_xdisp) <mode-line-inverse-video>: Doc fix.
 -
 -2006-12-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (show_mouse_face): Never use text cursor in tool-bar.
 -
 -2006-12-10  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * abbrev.c (syms_of_abbrev) <last-abbrev-text>:
 -      * buffer.c (syms_of_buffer) <default-major-mode>:
 -      * keymap.c (Flookup_key):
 -      * lread.c (Feval_buffer, Feval_region):
 -      * macterm.c (syms_of_macterm) <x-use-underline-position-properties>:
 -      <x-underline-at-descent-line, mac-emulate-three-button-mouse>:
 -      * marker.c (Fmarker_insertion_type):
 -      * minibuf.c (syms_of_minibuf) <minibuffer-completion-table>:
 -      * msdos.c (syms_of_msdos) <delete-exited-processes>:
 -      * w32term.c (syms_of_w32term) <x-use-underline-position-properties>:
 -      <x-underline-at-descent-line>:
 -      * xdisp.c (format-mode-line):
 -      * xterm.c (syms_of_xterm) <x-use-underline-position-properties>:
 -      <x-underline-at-descent-line>: Doc fixes.
 -
 -2006-12-10  Andreas Schwab  <schwab@suse.de>
 -
 -      * systime.h (EMACS_GET_TIME): Remove check for
 -      HAVE_STRUCT_TIMEZONE which is never defined.
 -
 -2006-12-10  Alan Mackenzie  <acm@muc.de>
 -
 -      * syntax.c (Fpartial_parse_sexp): Correct Docco: Elt 8 of the
 -      result is now neither the last elt nor optional for OLDSTATE.
 -
 -2006-12-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * process.c (Fsignal_process): Doc fix.  Use XFLOAT_DATA to
 -      extract the process ID from a Lisp float.
 -
 -2006-12-09  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (XTframe_raise_lower): Comment out _NET_ACTIVE_WINDOW code.
 -
 -2006-12-08  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * frame.h (PIX_TYPE): Redefine as `unsigned long', for 64-bit
 -      platforms where long is 64-bit.
 -
 -      * msdos.h (PIX_TYPE): Redefine as `unsigned long'.
 -
 -2006-12-08  NAKAJI Hiroyuki  <nakaji@jp.freebsd.org>  (tiny change)
 -
 -      * m/amdx86-64.h: Add support for Solaris 10 on x86-64.
 -
 -2006-12-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_query_font): Use xstricmp instead off strcasecmp.
 -
 -2006-12-08  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * emacs.c (syms_of_emacs) <system-type>: Doc fix.
 -
 -2006-12-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (parse_signal): Use xstricmp instead of strcasecmp.
 -      (Fsignal_process): Don't use strncasecmp.
 -
 -2006-12-05  Glenn Morris  <rgm@gnu.org>
 -
 -      * abbrev.c (Qforce): New Lisp_Object.
 -      (Fdefine_abbrev): Do not overwrite non-system abbrevs with system
 -      abbrevs, unless 'force is applied.
 -      (syms_of_abbrev): Add Qforce.
 -
 -2006-12-04  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (parse_signal): Rename macro from handle_signal.
 -      (Fsignal_process): Also accept lower-case variants of signal
 -      names (to align with signal names generated by Emacs itself).
 -
 -      * emacs.c (handle_USR1_signal, handle_USR2_signal): Replace by...
 -      (handle_user_signal): ... this, which generates two USER_SIGNAL_EVENTs
 -      first with code == 0 [signal] and one with code == sig number.
 -      (main): Use it as handler for SIGUR1 and SIGUSR2.
 -
 -      * keyboard.c (kbd_buffer_store_event_hold): Don't throw-on-input
 -      if first event in [signal xxx] sequence.
 -      (lispy_user_signals, Qusr1_signal, Qusr2_signal): Remove.
 -      (syms_of_keyboard): Don't intern and staticpro them.
 -      (Qsignal): Declare here.
 -      (syms_of_keyboard): Intern and staticpro it.
 -      (make_lispy_event): Use it.  Intern symbols on the fly for other
 -      USER_SIGNAL_EVENTs events.
 -
 -      * process.c (Qsignal): Declare extern.
 -      (syms_of_process): Don't intern/staticpro it here.
 -
 -      * process.c (read_process_output): Abort if carryover < 0.
 -
 -2006-12-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * config.in: Regenerate.
 -
 -      * fileio.c [__NetBSD__]: Don't define `unix'.
 -      (Funix_sync, syms_of_fileio): Use `#ifdef HAVE_SYNC' instead of
 -      `#ifdef unix'.
 -
 -2006-12-04  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in (version): New variable, set by configure.
 -      (bootstrapclean, mostlyclean): Also remove emacs-${version}.
 -
 -2006-12-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (update_frame_tool_bar): Handle modifying a toolbar item
 -      without an image.
 -
 -2006-12-01  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (Fw32_shell_execute): Doc fix.
 -
 -2006-11-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (move_it_to): Correctly count tab glyphs for continued
 -      lines ending in tab.
 -
 -2006-11-30  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_raise_frame): Move setting of _NET_ACTIVE_WINDOW
 -      property ...
 -      (XTframe_raise_lower): ... to here.
 -
 -2006-11-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * regex.c (regex_compile): Fix previous change.
 -
 -2006-11-29  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * sound.c (Fplay_sound_internal): Remove spurious newline in docstring.
 -
 -2006-11-28  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * config.in: Regenerate.
 -
 -2006-11-28  Kenichi Handa  <handa@m17n.org>
 -
 -      * regex.c (regex_compile): Don't call SET_LIST_BIT with a
 -      multibyte character.
 -
 -2006-11-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * s/aix4-2.h: Undefine _NO_PROTO.  Suggested by Joe Buehler.
 -
 -2006-11-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (set_window_buffer): Refactor recent changes.
 -
 -2006-11-27  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_msg_worker): Declare correctly.
 -      (w32_initialize): Don't cast w32_msg_worker.
 -
 -      * w32fns.c (w32_msg_worker): Define as WINAPI and arg as void pointer.
 -
 -2006-11-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * m/amdx86-64.h: Look for standard libs in /usr/lib64 only if that
 -      directory exists.
 -
 -2006-11-25  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w16select.c (Fw16_set_clipboard_data): Fix the call to sit_for
 -      as per the calling sequence change on 2006-07-11.
 -
 -2006-11-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * window.c (set_window_buffer): Use BLOCK_INPUT.
 -
 -2006-11-24  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fns.c (substring_both): Add missing address operator.
 -
 -2006-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fns.c: Use AREF/ASIZE macros.
 -      (concat): Provide the full ANSI prototype.
 -
 -2006-11-24  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
 -
 -2006-11-23  William Smith  <William.Smith@global360.com>  (tiny change)
 -
 -      * strftime.c (HAVE_SYS__MBSTATE_T_H): Fix typo.
 -
 -2006-11-22  Alfred M. Szmidt  <ams@gnu.org>  (tiny change)
 -
 -      * s/openbsd.h (LD_SWITCH_SYSTEM): Remove /usr/pkg/lib and
 -      /usr/pkg/lib from the library search path.
 -      (LD_SWITCH_X_DEFAULT): New macro.
 -
 -2006-11-22  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * window.c (set_window_buffer): Clear mouse highlight if it is in
 -      this window.
 -
 -2006-11-21  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (realize_default_face): Check if the default font name
 -      exists on this display before trying to use it.
 -
 -2006-11-21  Richard Stallman  <rms@gnu.org>
 -
 -      * fileio.c: Break line before &&, not after.
 -
 -2006-11-20  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fns.c (concat) [!__GNUC__]: Add prototype.
 -
 -2006-11-20  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Fread_file_name_internal): Use SBYTES (not SCHARS) to
 -      check the tailing slash of a filename.
 -
 -2006-11-20  KOBAYASHI Yasuhiro  <kobayays@otsukakj.co.jp>  (tiny change)
 -
 -      * indent.c (Fvertical_motion): Include composition in the case of
 -      overshoot expected.
 -
 -2006-11-19  Andreas Schwab  <schwab@gnu.org>
 -
 -      * xfaces.c (Fdisplay_supports_face_attributes_p): Initialize supports.
 -
 -      * xmenu.c (Fx_popup_menu): Initialize selection.
 -
 -2006-11-18  Andreas Schwab  <schwab@suse.de>
 -
 -      * s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Update call to mark_memory.
 -
 -2006-11-17  Tetsurou Okazaki  <okazaki@be.to>  (tiny change)
 -
 -      * xterm.c (do_ewmh_fullscreen): Declare variable before XSETFRAME
 -      to avoid gcc 2.96 error.
 -
 -2006-11-17  NIIMI Satoshi  <sa2c@sa2c.net>  (tiny change)
 -
 -      * search.c (simple_search): In the loop of backward searching,
 -      check also the byte position against the limit.
 -
 -2006-11-14  Romain Francoise  <romain@orebokech.com>
 -
 -      * minibuf.c (Fcompleting_read): Fix typo in docstring.
 -
 -2006-11-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (code_convert_region): Initialize coding->heading_ascii.
 -      (decode_coding_string, code_convert_region): Likewise.
 -
 -2006-11-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * config.in: Regenerate.
 -
 -      * macfns.c (Fx_display_mm_height, Fx_display_mm_width)
 -      [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
 -      && MAC_OS_X_VERSION_MIN_REQUIRED == 1020]: Check if
 -      CGDisplayScreenSize is available.
 -
 -      * macmenu.c (menu_quit_handler, install_menu_quit_handler):
 -      Replace `#ifdef HAVE_CANCELMENUTRACKING' with
 -      `#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030'.
 -      (install_menu_quit_handler) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
 -      && MAC_OS_X_VERSION_MIN_REQUIRED == 1020]: Check if
 -      CancelMenuTracking is available.
 -
 -      * macterm.c [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg)
 -      [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030
 -      && MAC_OS_X_VERSION_MIN_REQUIRED == 1020]: Check if
 -      CGContextShowGlyphsWithAdvances is available.
 -
 -2006-11-13  Jason Rumney  <jasonr@gnu.org>
 -
 -      * s/ms-w32.h: Define HAVE_INET_SOCKETS.
 -
 -2006-11-13  Nozomu Ando  <nand@mac.com>
 -
 -      * alloc.c (mark_memory): New argument OFFSET.  All uses changed.
 -      Fix address calculations for case END < START.
 -      (mark_stack): Impose Lisp_Object alignment on jmp_buf.
 -
 -2006-11-12  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * coding.c (Fencode_sjis_char, Fencode_big5_char):
 -      Improve argument/docstring consistency.
 -
 -      * editfns.c (Fmessage): Doc fixes.
 -
 -      * process.c (syms_of_process) <delete-exited-processes>: Doc fix.
 -
 -2006-11-12  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xmenu.c (popup_activated): Define outside HAVE_MENUS.
 -
 -2006-11-12  Romain Francoise  <romain@orebokech.com>
 -
 -      * xselect.c (selection-coding-system): Fix docstring.
 -
 -2006-11-12  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * category.c (Fchar_category_set): Improve arg/docstring consistency.
 -
 -      * data.c (Flogxor):
 -      * fns.c (Frandom, Flength, Fsafe_length, Fstring_bytes)
 -      (Fstring_equal, Fcompare_strings, Fstring_lessp, Fcopy_sequence)
 -      (Fstring_make_unibyte): Fix typos in docstrings.
 -
 -2006-11-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h (struct x_display_info): Fix indentation.
 -
 -      * xterm.c (do_ewmh_fullscreen, XTfullscreen_hook): New functions.
 -      (x_check_fullscreen): Call do_ewmh_fullscreen.
 -      (x_initialize): Set fullscreen_hook to XTfullscreen_hook.
 -
 -      * frame.c (x_set_fullscreen): Call fullscreen_hook if set.
 -
 -      * term.c: Define fullscreen_hook.
 -      (syms_of_term): Initialize fullscreen_hook to NULL.
 -
 -      * termhooks.h: Add fullscreen_hook.
 -
 -2006-11-08  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * bytecode.c (Fbyte_code):
 -      * data.c (Fmakunbound): Use SYMBOL_CONSTANT_P macro.
 -
 -2006-11-06  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * lread.c (syms_of_lread):
 -      * xsmfns.c (syms_of_xsmfns): Fix typo in docstring.
 -
 -2006-11-06  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * macmenu.c (Fmenu_or_popup_active_p): Define outside HAVE_MENUS.
 -
 -      * w32menu.c (Fmenu_or_popup_active_p): Define outside HAVE_MENUS.
 -      Return nil if building without menus.
 -
 -      * xmenu.c (Fmenu_or_popup_active_p): Define outside HAVE_MENUS.
 -      Return nil if building without menus.
 -
 -2006-11-05  Mark Davies  <mark@mcs.vuw.ac.nz>  (tiny change)
 -
 -      * s/netbsd.h (POSIX_SIGNALS): Define.
 -
 -2006-11-05  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * macmenu.c (Fmenu_or_popup_active_p): New function.
 -      (syms_of_macmenu): Defsubr it.
 -
 -      * w32menu.c (Fmenu_or_popup_active_p): New function.
 -      (syms_of_w32menu): Defsubr it.
 -      (popup_activated_flag, popup_activated): Remove.
 -
 -      * xdisp.c (note_mouse_highlight) [HAVE_NTGUI]: Don't bother to
 -      check popup_activated.
 -
 -      * xmenu.c (Fmenu_or_popup_active_p): New function.
 -      (syms_of_xmenu): Defsubr it.
 -
 -2006-11-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * unexmacosx.c (malloc_cookie): Remove unused variable.
 -      (region_list_head, region_list_tail, lca, nlc, infile_lc_highest_addr)
 -      (text_seg_lowest_offset, mh, curr_header_offset, infd, outfd)
 -      (emacs_zone, data_segment_old_fileoff, data_segment_scp)
 -      (num_unexec_regions, unexec_regions): Make variables static.
 -      (print_regions, find_emacs_zone_regions): Make static.
 -      (unexec_region_info): New typedef.
 -      (unexec_regions): Change type from vm_range_t[] to unexec_region_info[].
 -      All uses changed.
 -      (unexec_regions_recorder): Subtract size of trailing null pages from
 -      filesize.  Show filesize.
 -      (unexec_regions_merge): Don't merge if null pages of preceding region
 -      is not too small.  Use long format in printf.
 -      (copy_segment, copy_data_segment): Show filesize.
 -      (copy_data_segment): Write filesize bytes of region data.
 -      Adjust filesize in segment command accordingly.
 -      (dump_it): Use long format in printf.
 -
 -2006-11-05  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * dosfns.c (Finsert_startup_screen):
 -      * fns.c (Ffeaturep, syms_of_fns):
 -      * frame.c (syms_of_frame): Fix typos in docstrings.
 -
 -      * unexcw.c (unexec): Fix typo in output message.
 -
 -2006-11-04  Ralf Angeli  <angeli@caeruleus.net>
 -
 -      * w32fns.c (w32_createwindow): Remove code for handling -geometry
 -      command line option and `initial-frame-alist' which is superfluous
 -      after the last change to `w32_createwindow'.
 -
 -2006-11-04  Slawomir Nowaczyk  <slawek@cs.lth.se>  (tiny change)
 -
 -      * w32proc.c (sys_wait): Only wait for processes with fd<0.
 -      Others should be handled by sys_select instead.  Fixes problems
 -      with (progn (start-process "" nil "ls") (call-process "ls")).
 -
 -2006-11-04  Giorgos Keramidas  <keramida@ceid.upatras.gr>  (tiny change)
 -
 -      * xmenu.c (Fmenu_bar_open): Declare variable before BLOCK_INPUT to
 -      avoid gcc 2.95 error.
 -
 -2006-11-04  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * gtkutil.c (update_frame_tool_bar): If icon image is invalid and
 -      wicon is null, insert an empty button.
 -
 -2006-11-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_raise_frame): Send _NET_ACTIVE_WINDOW when raising the
 -      window.
 -
 -2006-11-02  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * emacs.c (Fkill_emacs): Fix typo in docstring.
 -
 -2006-11-02  Nozomu Ando  <nand@mac.com>
 -
 -      * unexmacosx.c (mach_header, segment_command, vm_region, section)
 -      [_LP64]: New defines.
 -      (VM_REGION_BASIC_INFO_COUNT, VM_REGION_BASIC_INFO, LC_SEGMENT)
 -      (MH_MAGIC) [_LP64]: Redefine.
 -      (delta): Remove variable.
 -      (curr_file_offset, pagesize): New variables.
 -      (ROUNDUP_TO_PAGE_BOUNDARY): New macro.
 -      (data_segment_old_fileoff): Initialize explicitly.
 -      (print_region, unexec_regions_recorder, print_load_command_name)
 -      (copy_segment, copy_data_segment): Use long format in printf.
 -      (MAX_UNEXEC_REGIONS): Increase to 400.
 -      (unexec_regions_recorder): Don't warn too many regions here.
 -      (find_emacs_zone_regions): Warn too many regions here.
 -      (print_load_command_name) [_LP64]: Show correct load command name.
 -      (copy_segment, copy_data_segment): Use variable `curr_file_offset'.
 -      Show starting virtual memory address.  Don't show ending file offset.
 -      (copy_symtab, copy_dysymtab, copy_twolevelhints): New argument DELTA.
 -      (dump_it): Use new local variable `linkedit_delta' and pass to them.
 -      Error if trying to handle multiple DATA segments.
 -      (unexec): Initialize variable `pagesize'.
 -
 -2006-11-01  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * eval.c (Fcatch): Doc fix.
 -
 -2006-10-31  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c [MAC_OS] (image_load_qt_1, xpm_scan, xpm_make_color_table_v)
 -      (xpm_put_color_table_v, xpm_get_color_table_v, xpm_make_color_table_h)
 -      (xpm_put_color_table_h, xpm_get_color_table_h, xpm_str_to_color_key)
 -      (xpm_load_image): Add const qualifier to arguments.
 -      [MAC_OS] (xpm_color_key_strings): Make static const.
 -
 -      * mac.c (create_apple_event_from_event_ref)
 -      (create_apple_event_from_drag_ref, skip_white_space, parse_comment)
 -      (parse_include_file, parse_binding, parse_component)
 -      (parse_resource_name, parse_value, parse_resource_line)
 -      (xrm_merge_string_database, xrm_get_resource)
 -      (xrm_get_preference_database): Add const qualifier to arguments.
 -      [MAC_OSX] (sys_select): Make variable `context' static const.
 -
 -      * macfns.c (mac_color_map): Make static const.
 -      (mac_color_map_lookup): Add const qualifier to arguments.
 -
 -      * macmenu.c (install_menu_quit_handler): Make variable `typesList'
 -      static const.
 -      (name_is_separator): Add const qualifier to arguments.
 -
 -      * macselect.c (init_service_handler): Make variable `specs' static
 -      const.
 -
 -      * macterm.c (mac_create_bitmap_from_bitmap_data): Make variable
 -      `swap_nibbles' static const.
 -      (atsu_get_text_layout_with_text_ptr): Make variables `lengths',
 -      `tags', `sizes', `values' static const.
 -      (mac_draw_string_common): Make variables `context' static.
 -      Make variables `tags', `sizes', and `values' static const.
 -      (pcm_get_status, x_detect_focus_change, x_scroll_bar_handle_click)
 -      (xlfdpat_create, xlfdpat_block_match_1, xlfdpat_match)
 -      (mac_to_x_fontname, parse_x_font_name, add_mac_font_name)
 -      (mac_do_list_fonts, is_fully_specified_xlfd, do_grow_window)
 -      (mac_store_event_ref_as_apple_event, mac_make_rdb): Add const
 -      qualifier to arguments.
 -      (xlfd_scalable_fields, keycode_to_xkeysym_table)
 -      (fn_keycode_to_keycode_table): Make static const.
 -      (mac_load_query_font): Make variables `tags', `sizes', `values',
 -      `types', and `selectors' static const.
 -      (mac_handle_command_event, mac_handle_window_event):
 -      Make variables `names' and `types' static const.
 -      (init_command_handler, install_window_handler): Make variables
 -      `specs*' static const.
 -      (mac_handle_font_event, mac_handle_text_input_event)
 -      (mac_store_service_event): Make variables `names' and `types'
 -      const.  Make variables `names_*' and `types_*' static const.
 -
 -      * macterm.h (create_apple_event_from_event_ref)
 -      (create_apple_event_from_drag_ref, xrm_merge_string_database)
 -      (xrm_get_resource, xrm_get_preference_database): Add const
 -      qualifier to arguments in externs.
 -
 -2006-10-31  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfns.c (xic_create_xfontset): Fix previous change.
 -
 -2006-10-30  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * s/openbsd.h (LD_SWITCH_SYSTEM): Add /usr/pkg/lib and
 -      /usr/pkg/lib to library search path.
 -
 -2006-10-29  Mark Davies  <mark@mcs.vuw.ac.nz>  (tiny change)
 -
 -      * ralloc.c (relinquish): Use a long for excess space counter to
 -      handle 64-bit case correctly.
 -
 -2006-10-29  Jeramey Crawford  <jeramey@jeramey.com>
 -
 -      * m/amdx86-64.h: Add defines for OpenBSD x86-64.
 -
 -2006-10-29  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * window.c (Fdisplay_buffer): Fix typo in docstring.
 -
 -2006-10-27  Ben North  <ben@redfrontdoor.org>  (tiny change)
 -
 -      * w32term.c (x_draw_glyph_string_foreground): Set background mode
 -      to TRANSPARENT before using overstrike to simulate bold faces.
 -
 -      * xfaces.c (best_matching_font): Fix logic to decide whether to
 -      use overstriking to simulate bold-face (it was reversed).
 -
 -2006-10-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (remember_mouse_glyph): Do nothing if glyphs are not
 -      initialized.
 -
 -      * keyboard.c (read_char): Make an element (t . EVENT) in
 -      unread-command-events add EVENT to the current command's key sequence.
 -      (syms_of_keyboard) <unread-command-events>: Update doc.
 -
 -2006-10-21  Richard Stallman  <rms@gnu.org>
 -
 -      * minibuf.c (Vread_expression_map): Define here.
 -      (Qread_expression_history): New variable.
 -      (syms_of_minibuf): Initialize them.
 -      (Feval_minibuffer): Use Vread_expression_map and
 -      Qread_expression_history.
 -
 -2006-10-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfns.c (xic_create_fontsetname): If ADSTYLE field is not a wild
 -      card, change it to "*".
 -      (xic_create_xfontset): Call XCreateFontSet for each single
 -      fontname in fontsetname.
 -
 -2006-10-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * callint.c (callint_message): Convert to a Lisp string.
 -      (syms_of_callint): Initialize it.
 -      (callint_message_size): Var deleted.
 -      (Fcall_interactively): Use Fformat instead of doprnt to construct
 -      prompt string.
 -
 -2006-10-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (display_mode_line): Clear enabled_p flag on mode-line row.
 -
 -2006-10-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (Vmac_carbon_version_string) [TARGET_API_MAC_CARBON]:
 -      New variable.
 -      (syms_of_macfns) [TARGET_API_MAC_CARBON]: Defvar it.
 -
 -2006-10-19  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xselect.c (x_handle_selection_request): If the converted_selection
 -      is nil or XCDR (converted_selection) is nil, decline the request.
 -
 -2006-10-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (get_utf8_string): Remove warnings with casts.
 -      (xg_tool_bar_button_cb): Ditto.
 -      (xg_tool_bar_callback): Ditto.
 -
 -2006-10-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * dispnew.c (adjust_frame_glyphs_for_frame_redisplay): Remove unused
 -      variable ch_dim.
 -      (adjust_frame_glyphs_for_window_redisplay): Likewise.  Don't allocate
 -      menu bar window matrices on non-X systems.
 -
 -      * mac.c (Fmac_get_preference, Fmac_code_convert_string): Add GCPROs.
 -
 -      * macterm.c (mac_query_char_extents): Don't return glyph ID if layout
 -      adjustment is needed.
 -      (mac_load_query_font): Check if width and height are positive.
 -
 -2006-10-14  Richard Stallman  <rms@gnu.org>
 -
 -      * sysdep.c (init_sys_modes): Delete DEFVAR_LISP in the wrong place.
 -
 -2006-10-13  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (decode_mode_spec): Ignore %c and %l constructs in frame
 -      title.
 -
 -2006-10-12  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keymap.c (Fkey_binding): Check Lisp_Object types before doing
 -      XCAR and XINT.
 -
 -2006-10-12  Romain Francoise  <romain@orebokech.com>
 -
 -      * image.c (xbm_read_bitmap_data): Delete extra semicolon.
 -
 -2006-10-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * eval.c: Include xterm.h for x_fully_uncatch_errors and friends.
 -
 -      * dispextern.h: Declare x_create_bitmap_from_xpm_data.
 -
 -      * xterm.c (x_check_expected_move): Remove unused var `count'.
 -
 -      * xmenu.c (syms_of_xmenu): Use Ffset rather than Fdefalias, since
 -      Fdefalias is not declared in any *.h file.
 -
 -2006-10-09  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * dispnew.c (sit_for): Sit forever if TIMEOUT is t.
 -
 -      * keyboard.c (command_loop_1): Handle non-number values of
 -      `minibuffer-message-timeout'.
 -      (Fexecute_extended_command): Fix typo.
 -
 -      * minibuf.c (temp_echo_area_glyphs): Sit for
 -      `minibuffer-message-timeout' seconds.
 -
 -2006-10-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_draw_image_string, mac_draw_image_string_16):
 -      Add argument OVERSTRIKE_P.
 -      (mac_draw_string_common, mac_draw_image_string_cg): Likewise.
 -      Support overstrike.
 -      (mac_draw_string, mac_draw_string_16): Remove functions.
 -      (x_draw_glyph_string_foreground): Use overstrike when needed.
 -      (x_draw_composite_glyph_string_foreground): Likewise.
 -      Use mac_draw_image_string_16 instead of mac_draw_string_16.
 -      (mac_load_query_font): Rename from XLoadQueryFont.  Take argument
 -      F instead of DPY.  All uses changed.  Don't save/restore font.
 -
 -2006-10-07  Ralf Angeli  <angeli@caeruleus.net>
 -
 -      * w32fns.c (w32_createwindow): Honour left and top positions if
 -      supplied explicitly.
 -
 -2006-10-06  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (pos_visible_p): Fix value when EOB is visible.
 -
 -2006-10-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * frame.c (Qinhibit_face_set_after_frame_default): New var.
 -      (syms_of_frame): Initialize it.
 -      (x_set_frame_parameters): Avoid resetting :font attributes to the
 -      new-frame defaults.
 -
 -2006-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lisp.h (clear_regexp_cache): Declare.
 -
 -      * search.c (compile_pattern): Only check `cp->syntax_table' if needed.
 -      (compile_pattern_1): Remember `used_syntax' in `cp->syntax_table'.
 -      (clear_regexp_cache): Only flush those regexps which depend on
 -      a syntax-table.
 -
 -      * regex.c (regex_compile): Set the new `used_syntax' bit.
 -
 -      * regex.h: Remove file local variables.
 -      (struct re_pattern_buffer): New field `used_syntax'.
 -
 -2006-10-03  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (list_processes_1): Run sentinels before removing dead
 -      processes.  Also remove `closed' network connections.
 -
 -2006-10-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (handle_fontified_prop): Don't fontify at EOB.
 -
 -2006-09-30  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * config.in: Regenerated.
 -
 -2006-09-29  Juri Linkov  <juri@jurta.org>
 -
 -      * buffer.c (syms_of_buffer): Reorder coding systems in the
 -      docstring of %z to the real order displayed in the modeline.
 -
 -2006-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (Fdefine_key): Yet another int/Lisp_Object mixup (YAILOM).
 -
 -2006-09-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * indent.c (Fvertical_motion): Do move back if the Lisp string
 -      being displayed contains newlines.
 -
 -2006-09-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_compute_glyph_string_overhangs, XLoadQueryFont)
 -      [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw before QDTextBounds.
 -
 -2006-09-26  Kenichi Handa  <handa@m17n.org>
 -
 -      * keymap.c (Fsingle_key_description): For an invalid char, return
 -      "Invalid char code NNNNN".
 -
 -2006-09-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * callint.c (Fcall_interactively): Doc fix.
 -
 -2006-09-25  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (x_underline_at_descent_line): New variable.
 -      (syms_of_macterm): DEFVAR_BOOL it.
 -      (x_draw_glyph_string): Use it.
 -      (XLoadQueryFont): Calculate min_bounds.descent and max_bounds.descent.
 -
 -2006-09-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * keymap.c (Fsingle_key_description): Return unique names for
 -      generic characters.
 -
 -2006-09-24  Richard Stallman  <rms@gnu.org>
 -
 -      * search.c (compile_pattern_1): Don't BLOCK_INPUT.
 -
 -2006-09-24  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in ($(BLD)/fns.$(O), $(BLD)/w32proc.$(O)):
 -      Depend on nt/inc/langinfo.h and nt/inc/nl_types.h.
 -
 -      * w32proc.c (nl_langinfo): New function.
 -
 -      * w32fns.c (w32-pass-alt-to-system, w32-alt-is-meta)
 -      (w32-pass-lwindow-to-system, w32-enable-num-lock)
 -      (w32-enable-caps-lock, w32-scroll-lock-modifier)
 -      (w32-lwindow-modifier, w32-rwindow-modifier)
 -      (w32-apps-modifier, w32-mouse-button-tolerance): Doc fix.
 -
 -2006-09-23  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * minibuf.c (Finternal_complete_buffer, Fread_minibuffer)
 -      (Fdisplay_completion_list): Fix typos in docstrings.
 -
 -2006-09-23  Romain Francoise  <romain@orebokech.com>
 -
 -      * s/gnu-linux.h (MAIL_USE_FLOCK): Check for HAVE_LIBLOCKFILE too.
 -
 -2006-09-23  Kenichi Handa  <handa@m17n.org>
 -
 -      * keymap.c (Fmap_keymap): Docstring mentions about generic character.
 -
 -2006-09-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * regex.c (analyse_first): For eight-bit-control chars, mark both the
 -      char's value and its leading byte in the fastmap.
 -      (re_search_2): When fast-scanning without translation, be careful to
 -      check that we only match the leading byte of a multibyte char.
 -
 -      * charset.h (PREV_CHAR_BOUNDARY): Make it work from within a char's
 -      byte sequence.
 -      (AT_CHAR_BOUNDARY): New macro.
 -
 -2006-09-22  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (optimize_sub_char_table): Don't optimize a sub-char-table
 -      whose default value is non-nil.
 -
 -2006-09-22  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_file_with_chooser): Only show C-l help for
 -      Gtk+ versions < 2.10.
 -
 -      * xfns.c (syms_of_xfns): Fix typo in help text for
 -      x-gtk-file-dialog-help-text.
 -
 -2006-09-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * fns.c (Fmemq): Refill doc string.
 -      (Fmemql): New defun, like memq but using eql.
 -      (syms_of_fns): Defsubr it.
 -
 -2006-09-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (pos_visible_p): CHARPOS < 0 means return info for
 -      last visible glyph in window.
 -
 -      * window.c (Fset_window_hscroll, Fwindow_line_height):
 -      Doc fix.  Use "off-window" instead of "off-screen".
 -      (Fpos_visible_in_window_p): Likewise.
 -      If POS is t, return info for last visible glyph in window.
 -
 -2006-09-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * search.c (struct regexp_cache): New entry syntax_table.
 -      (compile_pattern_1): Set it.
 -      (syms_of_search): Initialize it.
 -      (compile_pattern): Require the syntax_table entry of the cache
 -      element to match the current syntax table entry.
 -
 -2006-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (Fwindow_end): Fix recent change.
 -
 -2006-09-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (Fset_window_hscroll, Fpos_visible_in_window_p):
 -      Doc fix.  Use "off-screen" instead of "invisible".
 -      (Fwindow_line_height): Make line numbers 0-based.  Make line arg
 -      optional; if nil, use current cursor row.  Handle text terminals
 -      properly.  Return nil if non-interactive or pseudo-window.
 -
 -2006-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c: Include alloca.h if available.
 -      (Fkey_binding): Only use AREF after checking it's a vector.
 -      Remove unused var `window'.
 -
 -2006-09-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * emacs.c (shut_down_emacs) [!subprocesses]: Don't set
 -      inhibit_sentinels.
 -
 -      * mac.c [!MAC_OSX] (select): Fix argument name.
 -
 -      * macmenu.c (enum mac_menu_kind, min_menu_id): New enumerator and
 -      menu ID for Apple menu.
 -      (menubar_selection_callback): Remove function.
 -      (find_and_call_menu_selection): New function from xmenu.c.
 -      (x_activate_menubar): Use it.
 -      (set_frame_menubar): Don't use f->output_data.mac->menubar_active.
 -
 -      * macterm.c (menubar_selection_callback): Remove extern.
 -      (M_APPLE): Change to 234.
 -      (do_apple_menu) [!TARGET_API_MAC_CARBON]: Make non-static.
 -      (do_menu_choice): Remove function.
 -
 -      * macterm.h (struct mac_output): Remove member menubar_active.
 -      (do_menu_choice): Remove extern.
 -      (do_apple_menu) [!TARGET_API_MAC_CARBON]: Add extern.
 -
 -2006-09-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (syms_of_xfns): Rename x_gtk_show_chooser_help_text to
 -      x_gtk_file_dialog_help_text.
 -
 -      * gtkutil.c (xg_uses_old_file_dialog): Rename x-use-old-gtk-file-dialog
 -      to x-gtk-use-old-file-dialog.
 -      (xg_get_file_with_chooser): Rename x_gtk_show_chooser_help_text to
 -      x_gtk_file_dialog_help_text.
 -
 -      * xfns.c (syms_of_xfns): Ditto.
 -
 -2006-09-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (Fwindow_line_visibility): Remove.
 -      (Fwindow_line_height): New defun replacing it.
 -      (syms_of_window): Defsubr it.
 -
 -2006-09-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (SELECT_USE_CFSOCKET) [MAC_OSX]: Set default to 1.
 -      [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]: Fix pointer type.
 -
 -2006-09-17  Jay Belanger  <belanger@truman.edu>
 -
 -      * gmalloc.c:
 -      * md5.c:
 -      * md5.h:
 -      * strftime.c: Replace "GNU Library General Public License" by "GNU
 -      General Public License" throughout.
 -
 -2006-09-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (update_text_area): Undo 2000-07-18 change.
 -      Always redrawing whole row if line has mouse-face in it causes
 -      excessive flickering of the mode line.
 -
 -2006-09-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * search.c (clear_regexp_cache): New function.
 -
 -      * syntax.c (Fmodify_syntax_entry): Clear regexp cache.
 -
 -2006-09-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_file_with_chooser):
 -      Check x-gtk-show-chooser-help-text before adding the help text.
 -
 -      * xfns.c (syms_of_xfns): New variable: x-gtk-show-chooser-help-text.
 -
 -      * gtkutil.c (get_utf8_string): Try harder to convert to UTF8.  Gtk+
 -      will simply crash if we fail.
 -
 -2006-09-16  Richard Stallman  <rms@gnu.org>
 -
 -      * regex.c (re_compile_pattern): Set gl_state.current_syntax_table.
 -
 -2006-09-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (Fwindow_line_visibility): New defun for line-move-partial.
 -      (syms_of_window): Defsubr it.
 -      (Fwindow_end): Use window's buffer rather than current buffer.
 -
 -2006-09-15  Jay Belanger  <belanger@truman.edu>
 -
 -      * COPYING: Replace "Library Public License" by "Lesser Public
 -      License" throughout.
 -
 -2006-09-15  David Kastrup  <dak@gnu.org>
 -
 -      * Makefile.in (keymap.o): Add "keymap.h" and "window.h" dependencies.
 -
 -      * keymap.c: include "window.h".
 -      (Fcommand_remapping): New optional POSITION argument.
 -      (Fkey_binding): New optional POSITION argument.  Completely rework
 -      handling of mouse clicks to get the same order of keymaps as
 -      `read-key-sequence' and heed POSITION.  Also temporarily switch
 -      buffers to location of mouse click and back.
 -
 -      * keyboard.c (command_loop_1): Adjust call of `Fcommand_remapping'
 -      for additional argument.
 -      (parse_menu_item): Adjust call of `Fkey_binding' for additional
 -      argument.
 -      (read_key_sequence): If there are both `local-map' and `keymap'
 -      text properties at some buffer position, heed both.
 -
 -      * keymap.h: Declare additional optional arguments of
 -      `Fcommand_remapping' and `Fkey_binding'.
 -
 -2006-09-15  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * indent.c (Fcurrent_column, Findent_to): Fix typos in docstring.
 -
 -2006-09-14  Andreas Schwab  <schwab@suse.de>
 -
 -      * print.c: Whitespace fixup.
 -
 -2006-09-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (produce_image_glyph): Automatically crop wide images at
 -      right window edge so we can draw the cursor on the same row to
 -      avoid confusing redisplay by placing the cursor outside the visible
 -      window area.
 -
 -2006-09-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xterm.c (x_initialize): Don't install Xt event timer here.
 -      (x_timeout_atimer_activated_flag): New var.
 -      (x_activate_timeout_atimer): New function to install Xt timer.
 -      (x_send_scroll_bar_event, x_process_timeouts): Use it.
 -
 -      * xmenu.c (x_menu_set_in_use, popup_activate_callback)
 -      (create_and_show_popup_menu, create_and_show_dialog): Use it.
 -
 -      * xterm.h (x_activate_timeout_atimer): Add prototype.
 -
 -2006-09-13  Richard Stallman  <rms@gnu.org>
 -
 -      * print.c (print_string): When printcharfun is t,
 -      copy string contents and call strout on the copy.
 -
 -      * keyboard.c (read_char): If end_time specified, don't put the
 -      event into this_command_keys.
 -      (read_key_sequence): If Voverriding_terminal_local_map is specified,
 -      don't check Voverriding_local_map at all.
 -
 -2006-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * textprop.c (Fnext_property_change, Fnext_single_property_change)
 -      (Fprevious_property_change, Fprevious_single_property_change):
 -      Avoid changing limit, so we can correctly catch the case where the
 -      property is constant up to limit.
 -
 -2006-09-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (mac_window) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
 -      * macterm.c (XTread_socket) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
 -      Undo 2006-09-08 change.
 -
 -2006-09-11  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keymap.c (Fkey_binding): Use string position for string objects.
 -
 -2006-09-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * keymap.c (Fkey_binding): Fix last change.
 -
 -      * editfns.c (Fmessage): Recommend using (message "%s" ...).
 -
 -2006-09-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keymap.c (Fkey_binding): Check for local keymap for mouse click
 -      events.
 -
 -2006-09-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (Finput_pending_p): Check Vunread_input_method_events
 -      and Vunread_post_input_method_events.
 -
 -      * dispnew.c (Fredisplay): Document return value.
 -
 -2006-09-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_close_connection): Call xg_display_close when USE_GTK.
 -
 -      * gtkutil.c (xg_display_close): Always change default display if needed,
 -      check for < Gtk+ version 2.10 before calling gdk_display_close.
 -
 -2006-09-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c [MAC_OSX] (sys_select): Check argument `nfds' more rigidly.
 -      Make variable `ofds' static.  Remove variable `maxfd'.
 -
 -      * macfns.c (Fx_file_dialog): Remove unused variable `f'.
 -      Call check_mac.
 -
 -      * macmenu.c (Vmenu_updating_frame, syms_of_macmenu):
 -      * w32menu.c (Vmenu_updating_frame, syms_of_w32menu):
 -      Apply 2006-09-08 change for xmenu.c.
 -
 -      * xfns.c (Fx_file_dialog): Call check_x.
 -
 -2006-09-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_window_cursor_type): Use hollow cursor on
 -      non-transparent images.
 -
 -2006-09-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * editfns.c (Fsystem_name): Mention "host" in the doc string.
 -      (syms_of_editfns) <system-name>: Likewise.
 -
 -2006-09-08  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * xdisp.c (mouse_autoselect_window): Remove.
 -      (Vmouse_autoselect_window): New variable.  DEFVAR_LISP it.
 -
 -      * dispextern.h (mouse_autoselect_window): Remove extern.
 -      (Vmouse_autoselect_window): Add extern.
 -
 -      * macterm.c (XTread_socket): Test Vmouse_autoselect_window
 -      instead of mouse_autoselect_window.
 -
 -      * msdos.c (dos_rawgetc): Likewise.
 -
 -      * w32term.c (w32_read_socket): Likewise.
 -
 -      * xterm.c (handle_one_xevent): Likewise.
 -
 -2006-09-08  Richard Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (Vmenu_updating_frame): Define here.
 -      (syms_of_xdisp): DEFVAR it here.
 -      (update_menu_bar): Always return hooks_run.
 -      Set Vmenu_updating_frame.
 -
 -      * xdisp.c (redisplay_internal): Test Vinhibit_redisplay
 -      before calculating SELECTED_FRAME.
 -
 -      * xmenu.c (Vmenu_updating_frame): Don't define here.
 -      (syms_of_xmenu): Don't DEFVAR it here.
 -
 -      * xterm.c (x_error_quitter): For BadName error, just return.
 -
 -      * eval.c (find_handler_clause): Give up on debugger if INPUT_BLOCKED_P.
 -
 -      * casetab.c (init_casetab_once): Call set_case_table.
 -
 -      * emacs.c (shut_down_emacs): Set inhibit_sentinels.
 -
 -      * process.c (inhibit_sentinels): New variable.
 -      (exec_sentinel): Test inhibit_sentinels.
 -      (init_process): Initialize it.
 -
 -      * process.h (inhibit_sentinels): Add decl.
 -
 -      * search.c (looking_at_1, string_match_1, search_command):
 -      Make syntax table's canon table point to eqv table.
 -
 -2006-09-08  Andreas Schwab  <schwab@suse.de>
 -
 -      * print.c (strout): Fix whitespace.
 -
 -2006-09-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (x_draw_glyph_string): Fix 2006-08-24 change.
 -
 -2006-09-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c [!MAC_OSX]: Don't include keyboard.h.
 -      [!MAC_OSX] (select): Try detect_input_pending before ReceiveNextEvent
 -      in the same BLOCK_INPUT block, in case that some input has already
 -      been read asynchronously.  Pretend to be interrupted by a signal
 -      if some input is available.
 -      [MAC_OSX] (select_and_poll_event, sys_select): Likewise.
 -      (SELECT_POLLING_PERIOD_USEC) [SELECT_USE_CFSOCKET]: Change to 100000.
 -      Now used for ReceiveNextEvent timeout instead of select timeout.
 -      (EVENT_CLASS_SOCK) [SELECT_USE_CFSOCKET]: Remove macro.
 -      [SELECT_USE_CFSOCKET] (socket_callback): Add non-blocking connect
 -      support.  Quit event loop.
 -      [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]: Add non-blocking
 -      connect support.  Reuse previously allocated CFRunLoopSource.
 -      (Fmac_process_hi_command) [TARGET_API_MAC_CARBON]: New function.
 -      (syms_of_mac) [TARGET_API_MAC_CARBON]: Defsubr it.
 -
 -      * macfns.c (mac_window) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
 -      Specify kWindowAsyncDragAttribute.
 -
 -      * macterm.c (mac_handle_origin_change, mac_handle_size_change)
 -      (mac_get_ideal_size): New functions.
 -      (x_set_offset, x_set_window_size, x_make_frame_visible)
 -      (do_zoom_window, mac_handle_window_event, XTread_socket): Use them.
 -      (install_window_handler, mac_handle_window_event)
 -      [USE_CARBON_EVENTS]: Handle kEventWindowGetIdealSize and
 -      kEventWindowBoundsChanged.
 -      (XTread_socket) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: Don't call
 -      DragWindow.
 -
 -2006-09-07  Andreas Schwab  <schwab@suse.de>
 -
 -      * m/ibms390x.h (START_FILES, LIB_STANDARD): Override to
 -      use lib64 instead of lib.
 -
 -2006-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * Makefile.in: Avoid double quotes when possible.
 -
 -2006-09-06  Kenichi Handa  <handa@m17n.org>
 -
 -      * editfns.c (Fformat_time_string): Use make_unibyte_string to make
 -      a Lisp string from the result of emacs_memftimeu call.
 -
 -2006-09-06  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (pos_visible_p): Remove exact_mode_line_heights_p arg;
 -      so calculate heights even when pos-visible-in-window-p is called
 -      with partially = t.  Don't overshoot last_visible_y in move_it_to.
 -      Return row height and row number in new rowh and vpos args.
 -      (cursor_row_fully_visible_p): First line is always "fully visible".
 -      (try_window): Don't clear matrix if vscrolled.
 -
 -      * lisp.h (pos_visible_p): Update prototype.
 -
 -      * window.c (Fpos_visible_in_window_p): Adapt to new pos_visible_p.
 -      Return row height and row number for partially visible rows.
 -      Modify return value to a 2 element list for fully visible rows and
 -      6 for partially visible row.
 -      (window_scroll_pixel_based): Use pos_visible_p directly instead of
 -      Fpos_visible_in_window_p.  Fix auto vscrolling for partially
 -      visible lines.  Only vscroll backwards if already vscrolled
 -      forwards.  Unconditionally vscroll forwards if PT is first (and
 -      only) line.  Set new window start instead of scrolling at
 -      start/end of tall line.
 -
 -2006-09-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (install_window_handler, mac_handle_window_event)
 -      [USE_CARBON_EVENTS]: Handle kEventWindowClose.
 -      [USE_MAC_TSM] (mac_handle_text_input_event): Set modifiers for
 -      ASCII keystroke event.
 -
 -2006-09-04  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_file_with_chooser): Don't mention specific keys in
 -      the file chooser message.  Only call gtk_file_chooser_set_current_name
 -      when action is SAVE.
 -
 -2006-09-04  Andreas Schwab  <schwab@suse.de>
 -
 -      * Makefile.in: Double all single and back quotes in C-style
 -      comments to help fontifier.
 -
 -2006-09-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (shutdown_handler): New function to exit cleanly on shutdown.
 -      (globals_of_w32): Register it as a signal handler.
 -
 -2006-09-02  Juri Linkov  <juri@jurta.org>
 -
 -      * marker.c (Fmarker_position): Doc fix.
 -
 -2006-09-03  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * window.c (syms_of_window) <split-height-threshold>:
 -      <window-min-height, window-min-width>: Doc fix.
 -
 -2006-09-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_file_with_chooser): Change file chooser message
 -      for writing files.  Call gtk_file_chooser_set_current_name to keep
 -      default filename.
 -
 -      * minibuf.c (Finternal_complete_buffer): Move after DEFUN:s it calls
 -
 -2006-09-02  Jindrich Makovicka  <makovick@gmail.com>  (tiny change)
 -
 -      * fns.c (concat) [__GNUC__]: Declare with
 -      `__attribute__((noinline))'.
 -
 -      * eval.c (apply1, call2) [__GNUC__]: Declare with
 -      `__attribute__((noinline))'.
 -
 -2006-09-02  Stuart D. Herring  <herring@lanl.gov>
 -
 -      * minibuf.c (Finternal_complete_buffer): New function.
 -      (syms_of_minibuf): Defsubr it.
 -      (Fread_buffer): Use it, instead of Vbuffer_alist.
 -
 -2006-09-01  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * buffer.h (struct buffer_text): New field chars_modiff.
 -      (CHARS_MODIFF, BUF_CHARS_MODIFF): New macros.
 -      * buffer.c (Fbuffer_chars_modified_tick): New function returning
 -      value of BUF_CHARS_MODIFF.
 -      (syms_of_buffer): Defsubr it.
 -      (Fget_buffer_create): Initialize BUF_CHARS_MODIFF.
 -      * insdel.c (modify_region): New argument preserve_chars_modiff.
 -      Set CHARS_MODIFF to MODIFF provided preserve_chars_modiff is zero.
 -      (insert_1_both, insert_from_string_1, insert_from_buffer_1)
 -      (adjust_after_replace, adjust_after_replace_noundo)
 -      (replace_range, replace_range_2, del_range_2): Reset CHARS_MODIFF.
 -      * lisp.h (modify_region): Add fourth argument in extern.
 -      * casefiddle.c (casify_region): Call modify_region with fourth
 -      argument zero to assert that CHARS_MODIFF is updated.
 -      * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
 -      (Ftranspose_regions): Likewise.
 -      * textprop.c (Fadd_text_properties, Fset_text_properties)
 -      (Fremove_text_properties, Fremove_list_of_text_properties):
 -      Call modify_region with fourth argument 1 to avoid that
 -      CHARS_MODIFF is updated.
 -
 -2006-08-31  Richard Stallman  <rms@gnu.org>
 -
 -      * editfns.c (Fformat): Don't sign-extend for %o or %x.
 -
 -2006-08-29  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * indent.c (Fvertical_motion): Don't move back if we were
 -      displaying a Lisp string, either.
 -
 -2006-08-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_window_cursor_type) [!HAVE_WINDOW_SYSTEM]:
 -      Don't attempt to replace cursor on image glyphs.
 -
 -2006-08-28  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Fdetect_coding_region, Fdetect_coding_string):
 -      Fix docstring about ISO-2022 control characters.
 -
 -2006-08-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_window_cursor_type): Replace BOX cursor on images
 -      with a hollow box cursor if image is larger than 32x32 (or the default
 -      frame font if that is bigger).  Replace any other cursor on images
 -      with hollow box cursor, as redisplay doesn't support bar and hbar
 -      cursors on images.
 -
 -2006-08-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * alloc.c (BLOCK_INPUT_ALLOC, UNBLOCK_INPUT_ALLOC): Undo previous
 -      change.  Move mutex lock/unlock operations inside BLOCK_INPUT.
 -
 -      * dired.c (directory_files_internal_unwind, directory_files_internal)
 -      (file_name_completion): Add BLOCK_INPUT around opendir/closedir.
 -
 -      * image.c [MAC_OS] (image_load_qt_1): Use ComponentResult instead
 -      of OSErr.
 -
 -      * keyboard.c (in_sighandler): Remove variable.
 -      (Fcurrent_idle_time): Add missing `doc:'.
 -      (input_available_signal, init_keyboard): Undo previous change.
 -
 -      * keyboard.h (in_sighandler): Remove extern.
 -
 -      * mac.c (create_apple_event_from_event_ref, select)
 -      (Fmac_get_file_creator, Fmac_get_file_type, Fmac_set_file_creator)
 -      (Fmac_set_file_type, cfstring_create_normalized)
 -      (mac_get_system_locale, select_and_poll_event, sys_select):
 -      Use OSStatus instead of OSErr.
 -
 -      * macfns.c [TARGET_API_MAC_CARBON] (mac_update_proxy_icon):
 -      Don't use FRAME_FILE_NAME.  Use (FS)UpdateAlias.
 -      (Fx_create_frame): Apply 2006-07-03 for xfns.c.
 -
 -      * macselect.c (get_scrap_from_symbol, clear_scrap, put_scrap_string)
 -      (put_scrap_private_timestamp, scrap_has_target_type, get_scrap_string)
 -      (get_scrap_private_timestamp, get_scrap_target_type_list)
 -      (x_own_selection, x_get_foreign_selection)
 -      (Fx_disown_selection_internal, Fx_selection_owner_p)
 -      (Fx_selection_exists_p): Use OSStatus instead of OSErr.
 -
 -      * macterm.c (mac_draw_string_common, mac_query_char_extents)
 -      (x_iconify_frame, XLoadQueryFont, install_window_handler)
 -      (mac_handle_command_event, init_command_handler, init_menu_bar):
 -      Use OSStatus instead of OSErr.
 -      (x_free_frame_resources) [TARGET_API_MAC_CARBON]: Don't use
 -      FRAME_FILE_NAME.
 -      (x_query_font): Apply 2006-08-04 change for xterm.c.
 -      (Qhi_command): Rename from Qhicommand.  All uses changed.
 -
 -      * macterm.h (struct mac_output) [TARGET_API_MAC_CARBON]: Remove member
 -      file_name.
 -      (FRAME_FILE_NAME): Remove macro.
 -      (install_window_handler, create_apple_event_from_event_ref):
 -      Return OSStatus instead of OSErr.
 -
 -2006-08-26  Kim F. Storm  <storm@cua.dk>
 -
 -      * buffer.c (Fset_buffer_multibyte):
 -      * editfns.c (Fcurrent_time, Fget_internal_run_time):
 -      * macfns.c (Fxw_color_values):
 -      * w32fns.c (Fxw_color_values):
 -      * xfns.c (Fxw_color_values): Simplify; use list3.
 -
 -      * fileio.c (Fmake_directory_internal, Fdelete_directory)
 -      (Fdelete_file): Simplify; use list1.
 -      (Frename_file, Fadd_name_to_file, Fmake_symbolic_link):
 -      Simplify; remove NO_ARG_ARRAY stuff, use list2.
 -
 -2006-08-25  Richard Stallman  <rms@gnu.org>
 -
 -      * buffer.c (Fswitch_to_buffer): Fix previous change.
 -
 -2006-08-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (Fcurrent_idle_time): Simplify.
 -
 -2006-08-25  Richard Stallman  <rms@gnu.org>
 -
 -      * fns.c (sxhash_string): Rotate properly; don't lose bits.
 -
 -2006-08-24  Francesc Rocher  <francesc.rocher@gmail.com>
 -
 -      * xdisp.c (overline_margin): New variable.
 -      (x_produce_glyphs): Use it.
 -      (syms_of_xdisp): DEFVAR_INT it.
 -
 -      * xterm.c (x_underline_at_descent_line): New variable.
 -      (syms_of_xterm): DEFVAR_BOOL it.
 -      (x_draw_glyph_string): Use it.
 -      Draw underline and overline up to the end of line if the face
 -      extends to the end of line.
 -
 -      * macterm.c: Likewise.
 -
 -      * w32term.c: Likewise.
 -
 -2006-08-24  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * buffer.c (Fswitch_to_buffer): Move buffer to front of
 -      buffer-alist if necessary.
 -
 -2006-08-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (update_tool_bar): Redisplay toolbar also when only
 -      number of items changes.
 -
 -2006-08-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (Fset_buffer_multibyte): Record proper undo entry.
 -
 -2006-08-21  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c: Clarify difference between in_sighandler and
 -      handling_signal.
 -
 -2006-08-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * macterm.c (x_draw_stretch_glyph_string):
 -      * w32term.c (x_draw_stretch_glyph_string):
 -      * xterm.c (x_draw_stretch_glyph_string): It is ok to draw a
 -      stretch glyph in left marginal areas on header and mode lines.
 -
 -2006-08-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * keyboard.c (syms_of_keyboard): Docstring of
 -      Vunread_post_input_method_events and Vunread_input_method_events
 -      fixed.
 -
 -2006-08-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (show_help_echo): Preserve mouse movement flag if
 -      tracking mouse.
 -
 -2006-08-20  Richard Stallman  <rms@gnu.org>
 -
 -      * xfaces.c (load_pixmap): Add quotes in error message.
 -
 -      * keyboard.c (Fcurrent_idle_time): New function.
 -      (syms_of_keyboard): defsubr it.
 -
 -2006-08-18  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * window.c (Fset_window_fringes): Do nothing on a tty.
 -      (Fwindow_fringes): Put ? operator after the line break.
 -
 -2006-08-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * print.c (debug_output_compilation_hack): Fix return type.
 -
 -2006-08-16  Richard Stallman  <rms@gnu.org>
 -
 -      * print.c (debug_output_compilation_hack): New function.
 -
 -2006-08-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (choose_write_coding_system): Use LF for end-of-line
 -      in auto-saving.
 -
 -2006-08-15  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (read_char): Don't change idle timer state at all if
 -      end_time is supplied.
 -
 -2006-08-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (ONE_MORE_BYTE_CHECK_MULTIBYTE): New arg RET.  If SRC
 -      is exhausted, return with RET.
 -      (detect_coding_emacs_mule, detect_coding_iso2022)
 -      (detect_coding_sjis, detect_coding_big5, detect_coding_utf_8)
 -      (detect_coding_utf_16, detect_coding_ccl): Adjusted for the above
 -      change.
 -
 -2006-08-14  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (read_char): Don't reset idle timers if a time limit
 -      is supplied.
 -
 -2006-08-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * .gdbinit (pitx): Print iterator position.
 -      Limit stack dump in case iterator is not initialized.
 -
 -2006-08-12  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * frame.c (Fmouse_position, Fmouse_pixel_position)
 -      (Fset_mouse_position, Fset_mouse_pixel_position): Doc fix.
 -
 -2006-08-11  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xselect.c (Fx_register_dnd_atom): New function.
 -      (syms_of_xselect): Defsubr it.
 -      (x_handle_dnd_message): Check that message_type is in
 -      dpyinfo->x_dnd_atoms before generating lisp event.
 -
 -      * xterm.h (struct x_display_info): Add x_dnd_atoms* to keep track
 -      of drag and drop Atoms.
 -
 -      * xterm.c (x_term_init): Initialize dpyinfo->x_dnd_atoms*
 -
 -2006-08-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c: Define in_sighandler.
 -      (input_available_signal): Set in_sighandler.
 -      (init_keyboard): Initialize in_sighandler.
 -
 -      * keyboard.h: Declare in_sighandler.
 -
 -      * alloc.c (UNBLOCK_INPUT_ALLOC, BLOCK_INPUT_ALLOC): Use in_sighandler
 -      to check if mutex should be locked or not.
 -
 -2006-08-09  Richard Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (keyremap_step): No-op if fkey->parent = nil.
 -      (read_key_sequence): Always start fkey.start and fkey.end at 0,
 -      and likewise for keytran.
 -
 -2006-08-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (syms_of_coding): Improve the docstring
 -      of file-coding-system-alist.
 -
 -2006-08-07  Andreas Schwab  <schwab@suse.de>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1120000.
 -
 -2006-08-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * buffer.c (Vchange_major_mode_hook, Qchange_major_mode_hook): New vars.
 -      (Fkill_all_local_variables): Use it.
 -      (syms_of_buffer): Defvar it.
 -
 -2006-08-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (w32_valid_pointer_p): New function.
 -
 -      * w32.h: Add prototype for w32_valid_pointer_p.
 -
 -      * alloc.c: Include w32.h.
 -      (valid_lisp_object_p) [WINDOWSNT]: Call w32_valid_pointer_p to do
 -      the job.
 -
 -      * keyboard.c (kbd_buffer_get_event): Return Qnil when current time
 -      is exactly equal to end_time, not only when it is past that.
 -
 -2006-08-04  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (read_char): Rebalance specpdl after receiving jump.
 -
 -      * process.c: Reapply 2006-08-01 change.
 -
 -2006-08-04  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (w32_query_font): Fix last change: use stricmp.
 -
 -2006-08-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * editfns.c (Fsubst_char_in_region): Redo the setup work after running
 -      the before-change-functions since they may have altered the buffer.
 -
 -2006-08-04  Ralf Angeli  <angeli@caeruleus.net>
 -
 -      * w32fns.c (w32_createwindow): Handle -geometry command line option
 -      and the geometry settings in the Registry.
 -
 -2006-08-04  Kenichi Handa  <handa@m17n.org>
 -
 -      * w32fns.c (w32_query_font): Compare names by ignoring case.
 -
 -      * xterm.c (x_query_font): Compare names by ignoring case.
 -
 -2006-08-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32menu.c (w32_menu_show, w32_dialog_show): Call Fsignal to quit
 -      when no option selected.
 -
 -2006-08-03  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * process.c: Revert last change.
 -
 -2006-08-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (wait_reading_process_output_unwind): New function.
 -      Restores waiting_for_user_input_p to saved value.
 -      (wait_reading_process_output): Unwind protect waiting_for_user_input_p
 -      instead of save/restore old value on stack.
 -
 -2006-07-30  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * editfns.c: Undo 2006-06-27 change.
 -
 -2006-07-29  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * coding.c (Ffind_operation_coding_system): Revert the change from
 -      2006-05-29.
 -
 -      * alloc.c [WINDOWSNT]: Include fcntl.h, to fix last change.
 -
 -2006-07-28  Richard Stallman  <rms@gnu.org>
 -
 -      * xfaces.c (lookup_named_face, Fdisplay_supports_face_attributes_p):
 -      Add conditional aborts for clarity.
 -
 -      * xdisp.c (update_menu_bar): New arg HOOKS_RUN.  Callers changed.
 -      Used to avoid running the hooks over and over for each frame.
 -      (prepare_menu_bars): Pass value from update_menu_bar
 -      as HOOKS_RUN of next call.
 -
 -      * keyboard.c (safe_run_hooks_1): Don't crash if Vrun_hooks is nil.
 -
 -2006-07-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c (valid_pointer_p): New function (from valid_lisp_object_p).
 -      (valid_lisp_object_p): Use it to check for valid SUBRP obj.
 -
 -2006-07-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keyboard.c (read_char): New arg END_TIME specifying timeout.
 -      All callers changed.  Turn off echoing if END_TIME is non-NULL.
 -      (kbd_buffer_get_event): New arg END_TIME.
 -
 -      * lread.c (read_filtered_event): New arg SECONDS to wait until.
 -      (Fread_char, Fread_event, Fread_char_exclusive): New arg SECONDS.
 -
 -      * lisp.h: Update read-char, read-event, and read_filtered_event
 -      prototypes.
 -
 -      * keyboard.h: Include systime.h.  Update read_char prototype.
 -
 -2006-07-25  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * alloc.c (find_string_data_in_pure): New function.
 -      (make_pure_string): Use it to reuse existing string data if possible.
 -
 -      * puresize.h (BASE_PURESIZE): Decrease to 1102000.
 -
 -2006-07-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (Fdefine_key): If the key binding definition looks like an
 -      XEmacs-style key sequence, convert it to Emacs's format.
 -
 -2006-07-22  Ralf Angeli  <angeli@caeruleus.net>
 -
 -      * w32fns.c (w32_createwindow): If `left' and/or `top' frame
 -      parameters are bound to some values, use that instead of
 -      CW_USEDEFAULT.
 -
 -2006-07-21  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (convert_time): Use explicit long double constants to
 -      ensure long double arithmetics is used throughout.
 -
 -2006-07-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * alloc.c (pure_bytes_used_lisp, pure_bytes_used_non_lisp): New vars.
 -      (init_alloc_once): Initialize them.
 -      (pure_alloc): Allocate non-Lisp objects from the end of pure storage
 -      without alignment.
 -
 -      * puresize.h (BASE_PURESIZE): Decrease to 1141000.
 -
 -2006-07-18  Francis Litterio  <franl@world.std.com>
 -
 -      * w32term.c (x_calc_absolute_position): Fix frame positioning
 -      with negative X/Y coordinates.
 -
 -2006-07-18  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * xterm.c (x_connection_closed, x_error_quitter): Mark as NO_RETURN.
 -
 -      * textprop.c (text_read_only): Likewise.
 -
 -      * lread.c (end_of_file_error): Likewise.
 -
 -      * lisp.h (circular_list_error, memory_full, buffer_memory_full):
 -      Likewise.
 -
 -      * eval.c (unwind_to_catch): Likewise.
 -
 -      * buffer.h (buffer_slot_type_mismatch): Likewise.
 -
 -2006-07-18  Kim F. Storm  <storm@cua.dk>
 -
 -      Cleanup Fsignal calls that never returns; now only use it for Qquit.
 -
 -      * eval.c (xsignal): New func.  Like Fsignal, but marked no-return.
 -      (xsignal0, xsignal1, xsignal2, xsignal3): New no-return functions.
 -      (signal_error): New no-return function (from xfaces.c).
 -      (Fthrow): Use xsignal2 instead of Fsignal + abort.
 -      (error): Use xsignal1 instead of Fsignal + abort.
 -      (FletX, Flet, grow_specpdl): Use signal_error.
 -      (Feval, Ffuncall, funcall_lambda): Use xsignal1, xsignal2.
 -
 -      * alloc.c (buffer_memory_full, memory_full): Use xsignal.  Remove loop.
 -      (list1): New function.
 -
 -      * lisp.h (list1): Add EXFUN.
 -      (xsignal, xsignal0, xsignal1, xsignal2, xsignal3, signal_error):
 -      Add prototypes.  Mark them as no-return.
 -
 -      * buffer.c (Fbuffer_local_value, Fbarf_if_buffer_read_only):
 -      Use xsignal1.
 -
 -      * callint.c (check_mark): Use xsignal0.
 -
 -      * casefiddle.c (casify_object): wrong_type_argument is no-return.
 -
 -      * cmds.c (Fforward_char, Fdelete_char): Use xsignal0.
 -
 -      * coding.c (Fcheck_coding_system): Use xsignal1.  Remove loop.
 -      (Fdefine_coding_system_internal): Use xsignal1.
 -
 -      * data.c (circular_list_error): Use xsignal.
 -      (wrong_type_argument): Use xsignal2.  Don't care about return value.
 -      (args_out_of_range, args_out_of_range_3): Use xsignal2, xsignal3.
 -      Remove loop around Fsignal.
 -      (indirect_variable, Fsymbol_value, set_internal, Fdefault_value)
 -      (indirect_function, Findirect_function, Fstring_to_number)
 -      (Fmakunbound, Ffmakunbound, Fsymbol_function, Ffset): Use xsignal1.
 -      (arith_driver, float_arith_driver, Frem, Fmod, arith_error):
 -      Use xsignal0.
 -
 -      * doc.c (Fdocumentation): Use xsignal1.
 -
 -      * editfns.c (region_limit, Fget_internal_run_time): Use xsignal0.
 -
 -      * fileio.c (report_file_error): Use xsignal.
 -      (barf_or_query_if_file_exists, Fcopy_file, Fdelete_file)
 -      (Finsert_file_contents): Use xsignal2.
 -      (syms_of_fileio): Use list2, list3.
 -
 -      * floatfns.c (arith_error, range_error, domain_error): Use xsignal2.
 -      (range_error2, domain_error2): Use xsignal3.
 -      (rounding_driver, fmod_float): Use xsignal0.
 -      (float_error): Use xsignal1.
 -      (matherr): Use xsignal.
 -
 -      * fns.c (Flength): wrong_type_argument is no-return.
 -      (hashfn_user_defined, Fmake_hash_table): Use signal_error.
 -      (Fmd5): Use xsignal1.
 -
 -      * frame.c (x_set_line_spacing, x_set_screen_gamma): Use signal_error.
 -
 -      * keyboard.c (recursive_edit_1): Use xsignal1.
 -
 -      * keymap.c (Fmap_keymap): Use xsignal1.
 -
 -      * lread.c (Fload): Use xsignal2, signal_error.
 -      (end_of_file_error): Use xsignal0, xsignal1.
 -      (read0): Use xsignal1.
 -      (invalid_syntax): New error function marked no-return.
 -      (read_integer, read1, read_list): Use it.
 -
 -      * macselect.c (x_get_local_selection): Use signal_error.
 -
 -      * msdos.c (Fmsdos_set_mouse_buttons): Use xsignal2.
 -
 -      * search.c (compile_pattern_1): Use xsignal1.
 -      (signal_failure): Remove (was only called once).
 -      (search_command): Use xsignal1 instead of signal_failure.
 -
 -      * syntax.c (scan_lists): Use xsignal3.
 -
 -      * textprop.c (text_read_only): Use xsignal0, xsignal1.
 -
 -      * unexsol.c (unexec): Use xsignal.
 -
 -      * window.c (window_scroll_pixel_based, window_scroll_line_based):
 -      Use xsignal0.
 -
 -      * xfaces.c (signal_error): Move to eval.c.
 -      (resolve_face_name): Use xsignal1.
 -
 -      * xfns.c (x_decode_color): Use signal_error.
 -
 -      * xselect.c (x_get_local_selection, copy_multiple_data)
 -      (x_get_window_property_as_lisp_data)
 -      (lisp_data_to_selection_data, CHECK_CUT_BUFFER)
 -      (Fx_get_cut_buffer_internal): Use signal_error.
 -
 -2006-07-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (XTread_socket): Undo previous change.
 -
 -2006-07-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (keycode_to_xkeysym): Remove function.  All uses now
 -      directly lookup keycode_to_xkeysym_table.
 -      [USE_MAC_TSM] (mac_handle_text_input_event): Don't construct
 -      ASCII_KEYSTROKE_EVENT for non-zero keycode_to_xkeysym_table entries.
 -      (XTread_socket): Use character codes to construct keypad key events.
 -      (mac_initialize_display_info) [MAC_OSX]: Use CGDisplaySamplesPerPixel.
 -      (x_delete_display): Apply 2006-07-04 change for xterm.c.
 -
 -2006-07-17  Richard Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (Vcommand_error_function): New variable.
 -      (syms_of_keyboard): Defvar it.
 -      (cmd_error_internal): Simplify, and handle Vcommand_error_function.
 -
 -      * dispnew.c (init_display): Mention DISPLAY as well as TERM in err msg.
 -
 -2006-07-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (handle_single_display_spec): Ensure the right value of
 -      it->position is saved by push_it.
 -      (pop_it): Restore it->object for GET_FROM_BUFFER and GET_FROM_STRING.
 -      (reseat_1): Don't setup it->object twice.
 -      (set_iterator_to_next): No need to set it->object after pop_it.
 -      (move_it_to): Explicitly check to see if last move reached to_charpos.
 -
 -2006-07-17  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * xdisp.c (display_mode_line): Preserve match data.
 -
 -2006-07-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * w32.c (pfn_WSACreateEvent, pfn_WSACloseEvent): New func ptrs.
 -      (init_winsock): Load them.  Use ws2_32.dll.
 -      (sys_listen): Undo last change.  Just set FILE_LISTEN flag.
 -      (sys_accept): Undo last change.  Instead, set child status to
 -      STATUS_READ_ACKNOWLEDGED and reset char_avail event so next
 -      sys_select will wakeup the reader thread.
 -      (_sys_wait_accept): New function used by reader thread to wait for
 -      an incoming connection on a server socket.
 -
 -      * w32.h (_sys_read_ahead, _sys_wait_accept): Add prototypes.
 -
 -      * w32proc.c (reader_thread): Use _sys_wait_accept to wait on a
 -      server socket (FILE_LISTEN flag).
 -
 -2006-07-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * sound.c (alsa_init): Call snd_pcm_close after successful snd_pcm_open.
 -
 -2006-07-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * w32.c: Fix high cpu load for server sockets.
 -      (pfn_WSAEventSelect): New function ptr.
 -      (init_winsock): Load it.
 -      (sys_listen): Set FILE_LISTEN flag.  Set event mask for socket's
 -      char_avail event object to FD_ACCEPT.
 -      (sys_accept): Check FILE_LISTEN flag.  Set event mask on new
 -      socket's char_avail event object to FD_READ|FD_CLOSE.
 -
 -      * w32.h (FILE_LISTEN): New filedesc flag value.
 -
 -2006-07-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * bytecode.c (Fbyte_code): Use CAR, CDR for Bcar, Bcdr.
 -      Use CAR_SAFE, CDR_SAFE for Bcar_safe, Bcdr_safe.
 -      Simplify loops and use CAR for Bnth and Belt.
 -
 -      * data.c (Findirect_function): Optimize for no indirection.
 -
 -      * eval.c (Fthrow): Remove loop around Fsignal.
 -      (Feval, Fapply, Ffuncall): Optimize for no function indirection.
 -      Use original function name in all signaled errors.
 -      Simplify Fsignal calls (no return).
 -      (funcall_lambda): Simplify Fsignal calls (no return).
 -
 -2006-07-13  Andreas Schwab  <schwab@suse.de>
 -
 -      * syntax.c (scan_sexps_forward): Use EMACS_INT for out_bytepos and
 -      out_charpos.
 -
 -2006-07-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * editfns.c (Fformat): Fix calculation of text property positions
 -      of format string.
 -
 -2006-07-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * lisp.h (CHECK_TYPE): New macro for generic type checking.
 -      (CAR_SAFE, CDR_SAFE): New macros.
 -      (ARRAYP, CHECK_ARRAY): New macros.
 -      (CHECK_VECTOR_OR_STRING, CHECK_SUBR): New macros.
 -      (CHECK_WINDOW_CONFIGURATION): New macro.
 -      (CHECK_LIST_CONS, CHECK_LIST_END): New checks for list traversal.
 -      (CHECK_STRING_OR_BUFFER, CHECK_HASH_TABLE, CHECK_LIST)
 -      (CHECK_STRING, CHECK_STRING_CAR, CHECK_CONS, CHECK_SYMBOL)
 -      (CHECK_CHAR_TABLE, CHECK_VECTOR, CHECK_VECTOR_OR_CHAR_TABLE)
 -      (CHECK_BUFFER, CHECK_WINDOW, CHECK_LIVE_WINDOW, CHECK_PROCESS)
 -      (CHECK_NUMBER, CHECK_NATNUM, CHECK_MARKER, CHECK_OVERLAY)
 -      (CHECK_NUMBER_COERCE_MARKER, CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT)
 -      (CHECK_NUMBER_OR_FLOAT_COERCE_MARKER): Use CHECK_TYPE.
 -
 -      * category.h (CHECK_CATEGORY, CHECK_CATEGORY_SET):
 -      * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Use CHECK_TYPE.
 -
 -      * callint.c (Fcall_interactively):
 -      * casefiddle.c (casify_object):
 -      * editfns.c (general_insert_function):
 -      * fns.c (Flength, Felt, Ffillarray):
 -      * data.c (Fcar, Fcdr): Remove loop around wrong_type_argument.
 -
 -      * data.c (wrong_type_argument): Remove loop around Fsignal.
 -      (Farrayp, Fsequencep): Use ARRAYP.
 -      (Fcar): Use CAR.
 -      (Fcar_safe): Use CAR_SAFE.
 -      (Fcdr): Use CDR.
 -      (Fcdr_safe): Use CDR_SAFE.
 -      (Fsetcar, Fsetcdr): Use CHECK_CONS.
 -      (Fsubr_arity, Fsubr_name): Use CHECK_SUBR.
 -      (Faset): Use CHECK_ARRAY.
 -
 -      * fns.c (Felt): Use CHECK_ARRAY.
 -      (concat): Use CHECK_NUMBER.
 -      (Fsubstring, substring_both): Use CHECK_VECTOR_OR_STRING.
 -      (Fmemq): Use CHECK_LIST.
 -      (Fassq, Fassoc, Frassq, Frassoc): Use CAR.
 -      (assq_no_quit): Use CAR_SAFE.
 -      (Fnthcdr, Fmember, Fdelq, Fdelete, Fnreverse, Fnconc):
 -      Use CHECK_LIST_CONS.
 -      (Freverse, Fplist_get, Flax_plist_get): Use CHECK_LIST_END.
 -
 -      * bytecode.c (Fbyte_code): Use CHECK_VECTOR.
 -
 -      * casetab.c (check_case_table):
 -      * category.c (check_category_table):
 -      * marker.c (Fcopy_marker):
 -      * syntax.c (check_syntax_table):
 -      * xfaces.c (load_pixmap): Use CHECK_TYPE.
 -
 -      * fns.c (Fcopy_sequence, concat):
 -      * fringe.c (Fdefine_fringe_bitmap):
 -      * lread.c (check_obarray): Cleanup wrong_type_argument use.
 -
 -      * keyboard.c (access_keymap_keyremap): Use ARRAYP.
 -
 -      * keymap.c (Fdefine_key, Flookup_key):
 -      * macros.c (Fstart_kbd_macro): Use CHECK_VECTOR_OR_STRING.
 -
 -      * mac.c (Fmac_get_preference): Use CHECK_LIST_END.
 -
 -      * search.c (Fset_match_data): Use CHECK_LIST.
 -
 -      * sunfns.c (sun_item_create): Use CHECK_LIST_CONS.
 -
 -      * window.c (Fwindow_configuration_frame, Fset_window_configuration):
 -      (compare_window_configurations): Use CHECK_WINDOW_CONFIGURATION.
 -
 -2006-07-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * Makefile.in (dired.o, editfns.o, fileio.o): Depend on blockinput.h.
 -
 -      * dired.c: Include blockinput.h.
 -      (Ffile_attributes): Add BLOCK_INPUT around getpwuid/getgrgid.
 -
 -      * editfns.c: Include blockinput.h.
 -      (Fuser_login_name, Fuser_full_name): Add BLOCK_INPUT around
 -      getpwuid/getpwnam.
 -
 -      * fileio.c: Include blockinput.h.
 -      (Fexpand_file_name, search_embedded_absfilename): Add BLOCK_INPUT
 -      around getpwnam.
 -      (search_embedded_absfilename): Remove spurious xfree.
 -
 -2006-07-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (sit_for): Reduce number of args from 5 to 3.
 -      Now just one TIMEOUT arg that can be a Lisp float or Lisp int.
 -      Combine args DISPLAY and INITIAL_DISPLAY into one arg DO_DISPLAY.
 -      Signal error if TIMEOUT is not a number.
 -      Undo 2006-06-14 change for non-preemptive display if TIMEOUT < 0.
 -      The rework of sit_for args also fixes several incorrect Qt args
 -      which should have been 1.
 -      (Fredisplay): Pass 1 instead of Qt to swallow_events and
 -      detect_input_pending_run_timers.
 -
 -      * lisp.h (sit_for): Update prototype.
 -      (Fredisplay): Add EXFUN.
 -
 -      * dispextern.h (sit_for): Remove prototype.
 -
 -      * callint.c (Fcall_interactively):
 -      * minibuf.c (temp_echo_area_glyphs):
 -      * keyboard.c (command_loop_1, read_char, Fexecute_extended_command):
 -      * fileio.c (Fdo_auto_save): Update/simplify sit_for calls.
 -
 -2006-07-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (forw_comment): Also use EMACS_INT for buffer positions.
 -
 -2006-07-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (Fredisplay): Add FORCE argument to force redisplay when
 -      input is available.  Fix test for redisplay_dont_pause non-nil.
 -      Specbind redisplay-dont-pause to t if FORCE non-nil.
 -
 -2006-07-10  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * puresize.h (BASE_PURESIZE): Increment to 1211000.
 -
 -      * dispnew.c (Fredisplay): New function, equivalent to (sit-for 0).
 -      (Fsit_for): Function deleted.
 -
 -      * keyboard.c (command_loop_1, Fexecute_extended_command):
 -      Call sit_for instead of Fsit_for.
 -
 -      * minibuf.c (temp_echo_area_glyphs): Likewise.
 -
 -2006-07-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (Fforward_comment): Revert the reversion.
 -      (back_comment, scan_lists): Also use EMACS_INT for buffer positions.
 -
 -2006-07-09  John Paul Wallington  <jpw@pobox.com>
 -
 -      * syntax.c (Fforward_comment): Revert previous change.
 -
 -2006-07-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (Fforce_window_update): Doc fix.
 -
 -2006-07-08  Stephen Gildea  <gildea@stop.mail-abuse.org>
 -
 -      * fileio.c (do_auto_save_make_dir): Make the auto-save-list-file
 -      directory unreadable for better user privacy.
 -
 -2006-07-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (Fforward_comment): Fix int-32 vs EMACS_INT-64 mixup.
 -
 -      * lread.c (read_filtered_event): Remove `register' qualifier because it
 -      causes compilation problem with gcc-4.0.2-20051125 on amd64.
 -      (readevalloop): Remove unused var `bpos'.
 -      Yet another int/Lisp_Object mixup (YAILOM).
 -
 -2006-07-07  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * keyboard.c (Fexecute_extended_command): Mention the argument
 -      PREFIXARG in the doc string.
 -
 -2006-07-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (Fdefine_fringe_bitmap): Doc fix.
 -
 -2006-07-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * insdel.c (prepare_to_modify_buffer): For an indirect buffer, do
 -      clash detection using the base buffer.
 -
 -      * puresize.h (BASE_PURESIZE): Increment to 1210500.
 -
 -2006-07-04  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (x_delete_display): Don't free or derefence NULL pointers.
 -
 -2006-07-04  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Fset_overriding_fontspec_internal): Check if we need
 -      to update Voverriding_fontspec_alist.
 -
 -2006-07-03  Richard Stallman  <rms@gnu.org>
 -
 -      * xfns.c (Fx_create_frame): Move unwind_create_frame setup down.
 -
 -      * xfaces.c (Fface_attribute_relative_p): Doc fix.
 -
 -      * textprop.c (Fget_char_property_and_overlay): Doc fix.
 -
 -      * eval.c (Fdefvaralias): Doc fix.
 -
 -2006-07-03  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (sit_for): Fix preempt condition.
 -
 -2006-07-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (read_filtered_event): Treat select-window just like
 -      switch-frame.
 -
 -2006-07-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (display_tool_bar_line): Skip glyphs which are too big
 -      to ever fit the tool-bar,
 -      (MAX_FRAME_TOOL_BAR_HEIGHT): New macro.
 -      (tool_bar_lines_needed): Use unused mode-line row as temp_row.
 -      (redisplay_tool_bar): Only clear desired matrix if we actually
 -      change the tool-bar window height.  Only try to make the tool-bar
 -      window bigger if there is actually room for it.
 -
 -2006-06-30  Ralf Angeli  <angeli@caeruleus.net>
 -
 -      * w32term.c (x_make_frame_visible): Use SystemParametersInfo with
 -      SPI_GETWORKAREA to find the dimensions of the screen work area,
 -      and adjust vertical position of the frame in order to avoid being
 -      covered by the task bar.
 -
 -      * w32fns.c (w32_createwindow): Use CW_USEDEFAULT instead of
 -      f->left_pos and SH_SHOW instead of f->top_pos in the call to
 -      CreateWindow.  Record the actual position in f->left_pos and
 -      f->top_pos.
 -
 -2006-06-30  John Paul Wallington  <jpw@pobox.com>
 -
 -      * w32console.c (syms_of_ntterm) <w32-use-full-screen-buffer>:
 -      Doc fix - default value has changed.
 -
 -2006-06-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c [!TARGET_API_MAC_CARBON]: Don't include FixMath.h or Scrap.h.
 -
 -      * macfns.c (Fx_create_frame): Apply 2006-06-24 change for xfns.c.
 -
 -      * macgui.h (USE_MAC_TSM) [TARGET_API_MAC_CARBON]: Set default to 1.
 -
 -      * macterm.c (Qeql): Add extern.
 -      (x_set_mouse_pixel_position) [MAC_OSX]: Use CGWarpMouseCursorPosition.
 -      (fm_style_face_attributes_alist) [USE_ATSUI]: New variable.
 -      (syms_of_macterm) [USE_ATSUI]: Initialize and staticpro it.
 -      Change keys of Vmac_atsu_font_table from strings to numbers.
 -      (fm_style_to_face_attributes) [USE_ATSUI]: New function.
 -      (init_font_name_table) [USE_ATSUI]: Use it.
 -      (saved_ts_script_language_on_focus) [USE_MAC_TSM]: New variable.
 -      (syms_of_macterm) [USE_MAC_TSM]: Initialize and staticpro it.
 -      [USE_MAC_TSM] (mac_tsm_resume): Restore script and language codes
 -      only when saved_ts_script_language_on_focus coincides with
 -      Vmac_ts_script_language_on_focus.
 -      [USE_MAC_TSM] (mac_tsm_suspend): Save value of
 -      Vmac_ts_script_language_on_focus to saved_ts_script_language_on_focus.
 -      (XTread_socket) [USE_MAC_TSM]: Add Mac OS Classic support.
 -      [USE_MAC_TSM] (mac_handle_text_input_event, init_tsm): Likewise.
 -
 -2006-06-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * editfns.c (Fdelete_field, Ffield_string, Ffield_beginning)
 -      (Ffield_string_no_properties, Ffield_end): Mention
 -      args-out-of-range error condition in docstring.
 -
 -2006-06-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (handle_composition_prop): Set stop_charpos before push_it.
 -
 -2006-06-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * s/gnu-linux.h (SIGNALS_VIA_CHARACTERS): Define for Linux kernel
 -      version 2.4 and later.
 -
 -2006-06-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (Fx_create_frame): Set font parameter directly instead of
 -      using x_default_parameter, since x_get_args clears the parm alist.
 -
 -2006-06-24  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (directory_files_internal) [WINDOWSNT]: Find files
 -      case-insensitively.
 -
 -2006-06-24  Aidan Kehoe  <kehoea@parhasard.net>
 -
 -      * lread.c (read_escape): When an unknown Unicode code point is
 -      encountered as a string or character escape, signal an error.
 -
 -2006-06-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * .gdbinit (pitx): Dump iterator stack.
 -
 -      * xdisp.c (handle_composition_prop): Push iterator on stack.
 -      (set_iterator_to_next): Pop iterator at end of composition.
 -
 -2006-06-23  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * fileio.c (Frename_file) [DOS_NT]: Don't try to move directory to
 -      itself on DOS_NT platforms, if the old and new names are identical
 -      but for the letter-case.
 -
 -2006-06-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (struct it): Add `position' member to iterator stack.
 -      Rename `pos' member to `current'.  Rearrange and add comments.
 -
 -      * xdisp.c (handle_stop): Set it->ignore_overlay_strings_at_pos_p
 -      if  we get any overlays.
 -      (set_cursor_from_row): Don't clobber `end' if we rescan from
 -      start_string.
 -      (push_it, pop_it): Save it->position.
 -
 -2006-06-19  Richard Stallman  <rms@gnu.org>
 -
 -      * window.c (size_window): New arg FIRST_ONLY.  All callers changed.
 -      (adjust_window_trailing_edge): Specially compute FIRST_PARALLEL
 -      for the case of a top-level window and the following minibuffer.
 -      Don't exit because of no `next' when there is a parent.
 -      Use the FIRST_ONLY feature when resizing following windows.
 -
 -      * syntax.c (init_syntax_once): Give most control chars' syntax Spunct.
 -
 -2006-06-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (update_frame): Check for input pending on entry.
 -      (update_window, update_frame_1): Break loop if input is detected.
 -
 -2006-06-16  Francis Litterio  <flitterio@gmail.com>
 -
 -      * xterm.c (x_check_expected_move, handle_one_xevent)
 -      (x_set_offset, x_check_fullscreen): Extensive changes to make
 -      frame positioning deterministic under X.
 -
 -      * xterm.h (x_output): Add members left_before_move and
 -      top_before_move.  Removed members expected_left and expected_top.
 -
 -2006-06-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (struct it): Add union to iterator stack to save
 -      image, composition, and stretch specific paramters.
 -
 -      * xdisp.c (next_overlay_string): Fix assert.
 -      (push_it, pop_it): Handle composition and stretch specific values.
 -      Only handle it->slice in image (for now).
 -      (back_to_previous_visible_line_start): Continue search if newline is
 -      part of a compisition.  Simplify.
 -      (reseat_1): Set it->object to buffer.
 -      (set_iterator_to_next): Set it->object to string or buffer, when
 -      setting it->method to GET_FROM_STRING or GET_FROM_BUFFER.
 -      (next_element_from_composition): Set it->object to buffer if not
 -      from string.
 -      (set_cursor_from_row): Only save start of string if not already
 -      done to handle multiple strings in a row.
 -
 -      * .gdbinit (pitx): Show composition parameters.
 -      (pgx, pg): New commands to print a glyph structure.
 -      (pgi, pgn): New commands to print specific/next glyph.
 -      (pgrowx, pgrow): New commands to print all glyphs in a row.
 -
 -2006-06-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (Fx_display_mm_height, Fx_display_mm_width)
 -      [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]: Use CGDisplayScreenSize.
 -
 -      * macterm.c (do_app_resume, do_app_suspend): Remove functions.
 -      (mac_tsm_resume, mac_tsm_suspend) [USE_MAC_TSM]: New functions.
 -      (mac_handle_window_event, XTread_socket) [USE_MAC_TSM]: Use them.
 -      (Vmac_ts_script_language_on_focus) [USE_MAC_TSM]: New variable.
 -      (syms_of_macterm) [USE_MAC_TSM]: Defvar it.
 -      (saved_ts_language, saved_ts_component) [USE_MAC_TSM]: New variables.
 -      (mac_initialize_display_info) [MAC_OSX]: Use Quartz Display
 -      Services functions to get size of main display in pixels.
 -
 -2006-06-14  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (back_to_previous_visible_line_start):
 -      Reset it->continuation_lines_width.
 -
 -2006-06-14  Richard Stallman  <rms@gnu.org>
 -
 -      * eval.c (Fdefconst): Mark variable as risky.
 -
 -      * callproc.c (Fcall_process): Doc fix.
 -
 -      * window.c (adjust_window_trailing_edge): Don't break out of the loop
 -      because there's no next window, if there are parallel windows.
 -      Do break out when WINDOW is nil.
 -
 -2006-06-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (IT_STACK_SIZE): New macro specifying size of
 -      iterator stack (instead of hardcoded number).  Increase from 2 to
 -      4 to make room for propertized overlay strings before and after a
 -      display string, image or composition.
 -      (struct it): Add image_id and method members to iterator stack.
 -
 -      * xdisp.c (init_from_display_pos): Don't set it->method and
 -      overlay_string_index after pop_it.  Add asserts.
 -      (handle_stop): Look for overlay strings around a display string,
 -      image, or composition.  Handle properties on those strings.
 -      (next_overlay_string): Don't set string, pos or method after pop_it.
 -      (get_overlay_strings_1): Split from get_overlay_strings; don't
 -      modify it if no overlay strings are found.
 -      (get_overlay_strings): Use get_overlay_strings_1.  Always set
 -      it->string and it->method.
 -      (push_it): Push it->image_id and it->method.  Push it->object
 -      instead of it->string if method is GET_FROM_IMAGE.
 -      (pop_it): Pop it->image_id and it->method.  Ppo it->object
 -      instead of it->string if method is GET_FROM_IMAGE.
 -      Reset it->current.string_pos if popped it->string is nil.
 -      (reseat_1): Remove comment dated 19 May 2003.  It expressed doubt
 -      whether a given change was correct; but the change is correct.
 -      Clear it->string_from_display_prop_p.
 -      (set_iterator_to_next): Rely on it->method and it->image_id from
 -      iterator stack, instead of setting them explicitly after pop_it.
 -
 -      * dispnew.c (sit_for): Undo 2006-06-01 change.  Instead, a
 -      negative time forces redisplay even when input is available.
 -      (Fsit_for): Doc fix.
 -
 -2006-06-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c: Modify preemptive redisplay to be based on periodic
 -      checks for input.
 -      (PERIODIC_PREEMPTION_CHECKING): Define to 1 iff EMACS_HAS_USECS.
 -      (Vredisplay_preemption_period): New variable.
 -      (syms_of_display): DEFVAR_LISP and initialize it.
 -      (preemption_period, preemption_next_check): New variables.
 -      (update_frame, update_single_window): Initialize them based on
 -      Vredisplay_preemption_period if !force_p.
 -      (update_window, update_frame_1): Use them to determine when to
 -      check for input.
 -
 -2006-06-03  Aidan Kehoe  <kehoea@parhasard.net>
 -
 -      * lread.c (read_escape): Provide a Unicode character escape
 -      syntax; \u followed by exactly four or \U followed by exactly
 -      eight hex digits in a comment or string is read as a Unicode
 -      character with that code point.
 -
 -2006-06-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * window.c (window_scroll_pixel_based): Signal "Beginning of
 -      buffer" when scroll-down at the beginning of an empty buffer.
 -
 -2006-06-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c [USE_MAC_TSM] (mac_handle_text_input_event):
 -      Exclude 0x7f from ASCII range.
 -
 -2006-06-05  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_set_scroll_bar_thumb, x_scroll_bar_create)
 -      (w32_set_vertical_scroll_bar, w32_scroll_bar_handle_click)
 -      (x_scroll_bar_report_motion): Remove workarounds for
 -      versions of Windows NT < 3.51.
 -      [!SIF_ALL]: Remove.
 -      (pfnSetScrollInfo, pfnGetScrollInfo): Remove.
 -      (w32_initialize): Don't dynamically load Get/SetScrollInfo.
 -
 -2006-06-04  David Kastrup  <dak@gnu.org>
 -
 -      * dispnew.c: Mention `redisplay-dont-pause' in doc string of
 -      `sit-for'.
 -
 -2006-06-03  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (x_set_icon_name): Apply 2006-06-02 change for xfns.c.
 -
 -      * macgui.h (USE_MAC_TSM): Set default to 1 on Mac OS X.
 -
 -      * macterm.c (tsm_document_id) [USE_MAC_TSM]: New variable.
 -      (Qtext_input, Qupdate_active_input_area, Qunicode_for_key_event)
 -      [USE_MAC_TSM]: Likewise.
 -      (syms_of_macterm) [USE_MAC_TSM]: Intern and staticpro them.
 -      (Qbefore_string) [USE_MAC_TSM]: Add extern.
 -      (do_app_resume, do_app_suspend) [USE_MAC_TSM]: Call
 -      ActivateTSMDocument/DeactivateTSMDocument.
 -      (mac_store_event_ref_as_apple_event): Call mac_post_mouse_moved_event.
 -      (mac_handle_window_event) [USE_MAC_TSM]: Handle
 -      kEventWindowFocusAcquired/kEventWindowFocusRelinquish.
 -      (mac_handle_text_input_event) [USE_MAC_TSM]: New function.
 -      (install_window_handler) [USE_MAC_TSM]: Install it.  Register
 -      kEventWindowFocusAcquired/kEventWindowFocusRelinquish.
 -      (keycode_to_xkeysym_table): Add entry for f16.
 -      (XTread_socket) [USE_MAC_TSM]: Set/reset read_socket_inev
 -      before/after passing keystroke event to toolbox dispatcher.
 -      (init_tsm) [USE_MAC_TSM]: New function.
 -      (mac_initialize) [USE_MAC_TSM]: Call it.
 -      (Vmac_ts_active_input_overlay) [USE_MAC_TSM]: New defvar.
 -
 -      * macterm.h (EVENT_PARAM_TEXT_INPUT_SEQUENCE_NUMBER): New enumerator.
 -
 -2006-06-02  John Paul Wallington  <jpw@gnu.org>
 -
 -      * xfns.c (x_set_name_internal): Set icon to `text', derived from
 -      name, when frame's icon_name isn't a string rather than only when
 -      it is nil.
 -
 -2006-06-03  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (x_set_icon_name): Don't use arg if it's not a string
 -      and not nil.
 -
 -2006-06-02  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (x_set_icon_name): No-op if arg is non-nil and not a
 -      string.
 -
 -2006-06-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (next_element_from_composition): Set it->object to
 -      it->string if composition is coming from string.
 -      (set_cursor_from_row): Don't return 0 unless row displays a
 -      continued line.
 -      (dump_glyph): Dump composite glyph.
 -
 -2006-06-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (menu_nav_ended): Check that menubar_widget is not NULL.
 -
 -2006-06-01  Richard Stallman  <rms@gnu.org>
 -
 -      * window.c (Fsplit_window): Doc fix.
 -
 -2006-06-01  Micha\e,Ak\e(Bl Cadilhac  <michael.cadilhac@lrde.org>
 -
 -      * process.c (deleted_pid_list): New variable to store the pids
 -      of deleted processes.  Declare it only if SIGCHLD is defined.
 -      (init_process): Initialize it.
 -      (syms_of_process): Staticpro it.
 -      (Fdelete_process): Add pid of the deleted process to it.  Check after
 -      the addition and before the kill if the process is already stopped,
 -      in which case it is deleted from the list and not killed.
 -      (sigchld_handler): Define it only if SIGCHLD is.  Search the process
 -      that signaled Emacs in `deleted_pid_list' before `Vprocess_alist'.
 -      Original idea by Stefan Monnier.
 -
 -2006-06-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (sit_for): Perform redisplay even if input is pending
 -      when redisplay-dont-pause is non-nil.
 -
 -2006-06-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_handle_visibility_change): Set buf.arg to Qnil.
 -      (XTread_socket): Remove obsolete comment.
 -
 -2006-06-01  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (syms_of_xmenu): Make accelerate-menu an alias for
 -      menu-bar-open.
 -
 -2006-06-01  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (Fmenu_bar_open, syms_of_xmenu): Change menu-bar-start to
 -      menu-bar-open.
 -
 -      * gtkutil.c (menu_nav_ended): Change x-menu-bar-start to menu-bar-open.
 -
 -2006-05-31  Juri Linkov  <juri@jurta.org>
 -
 -      * minibuf.c (Vhistory_add_new_input): New variable.
 -      (read_minibuf): Use it.
 -      (syms_of_minibuf) <history-add-new-input>: New Lisp variable.
 -      (syms_of_minibuf) <history-delete-duplicates>: Doc fix.
 -
 -2006-05-31  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (select_wrapper): Add wrapper around select to work around
 -      "incomplete backtrace" bug in gdb 5.3, when emacs is stopped inside
 -      select called from wait_reading_process_output.
 -
 -2006-05-30  Andreas Schwab  <schwab@suse.de>
 -
 -      * xmenu.c (Fmenu_bar_start): Return a value.
 -
 -2006-05-30  Richard Stallman  <rms@gnu.org>
 -
 -      * coding.c (Ffind_operation_coding_system): Doc fix.
 -
 -2006-05-30  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32term.c (x_draw_hollow_cursor): Fix last change.
 -
 -2006-05-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * w32term.c (x_draw_stretch_glyph_string): Fix last change.
 -
 -2006-05-29  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * coding.c (Ffind_operation_coding_system): Doc fix.
 -
 -2006-05-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c [USE_MAC_FONT_PANEL] (Fmac_set_font_panel_visibility):
 -      Call mac_set_font_info_for_selection if font panel is made visible.
 -
 -      * macterm.c (font_panel_shown_p) [USE_MAC_FONT_PANEL]: New variable.
 -      (mac_font_panel_visible_p, mac_show_hide_font_panel)
 -      [USE_MAC_FONT_PANEL]: New functions.
 -      [USE_MAC_FONT_PANEL] (mac_set_font_info_for_selection):
 -      Return immediately if font panel is not visible.
 -
 -      * macterm.h (mac_font_panel_visible_p, mac_show_hide_font_panel):
 -      Add externs.
 -
 -2006-05-29  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * search.c (matcher_overflow): Mark as NO_RETURN.
 -
 -      * xterm.c (x_connection_closed): Likewise.
 -
 -      * sysdep.c (croak): Likewise.
 -
 -      * sound.c (sound_perror, alsa_sound_perror): Likewise.
 -
 -      * lisp.h (die, nsberror): Likewise.
 -
 -2006-05-29  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * sound.c (alsa_open, alsa_configure, alsa_write):
 -      Move assignment to err out of if-statement.
 -
 -      * gtkutil.c (menu_nav_ended): New function.
 -      (create_menus): Connect menu_nav_ended to "selection-done" to fix
 -      grabs.
 -
 -      * xmenu.c (Fmenu_bar_start): New function for USE_GTK and USE_X_TOOLKIT.
 -
 -2006-05-28  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * charset.h (invalid_character): Mark as NO_RETURN.
 -
 -2006-05-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Ffind_operation_coding_system): Call a function by
 -      safe_call1 instead of call1.
 -
 -2006-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (struct saved_window): Add `dedicated'.
 -      (Fset_window_configuration, save_window_save): Save/restore the
 -      `dedicated' flag.
 -
 -2006-05-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (set_cursor_from_row): If cursor cannot be set in row,
 -      don't update w->cursor and return 0.  Return 1 on success.
 -      (try_cursor_movement): Repeat set_cursor_from_row on successive rows
 -      until it succeeds.
 -
 -      * dispextern.h (set_cursor_from_row): Update prototype.
 -
 -2006-05-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_phys_cursor_geometry): Return computed x and y through
 -      parameters.  Adjust x and width in case cursor in on a partially
 -      visible stretch glyph on the left edge.
 -      (erase_phys_cursor): Don't erase into left fringe/margin in case
 -      previous cursor glyph is a partially visible stretch glyph on left.
 -
 -      * dispextern.h (get_phys_cursor_geometry): Update prototype.
 -
 -      * xterm.c (x_draw_stretch_glyph_string): Fix problems with invisible
 -      cursor and erasing cursor on partially visible stretch glyph on left.
 -      (x_draw_hollow_cursor): Compute x via get_phys_cursor_geometry.
 -
 -      * macterm.c: Likewise.
 -
 -      * w32term.c: Likewise.
 -
 -2006-05-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macselect.c (mac_handle_apple_event):
 -      Return errAEEventNotHandled if key binding is not found.
 -
 -2006-05-26  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * emacs.c (main) [PROFILING]: Enable also for __MINGW32__.
 -      [__MINGW32__]: MinGW-specific declaration of `etext'.
 -
 -      * w32heap.c (etext, edata): Remove unused definitions.
 -
 -2006-05-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * fileio.c (Fcopy_file): Delete argument MUSTBENEW.
 -      Incorporate the exclusive file-opening functionality into the behavior
 -      when OK-IF-ALREADY-EXISTS is nil.
 -      (Frename_file): Call Fcopy_file without MUSTBENEW argument.
 -
 -2006-05-26  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * sound.c (alsa_configure): Move get period/buffer_size after
 -      setting hwparams.
 -
 -2006-05-26  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Ffind_operation_coding_system): Allow (FILENAME
 -      . BUFFER) in TARGET.
 -
 -2006-05-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (png_load): Don't call fclose on NULL.
 -
 -2006-05-25  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fns.c (Fyes_or_no_p):
 -      * callint.c (Fcall_interactively): Fread_from_minibuffer now takes
 -      only seven args.
 -
 -2006-05-25  Juri Linkov  <juri@jurta.org>
 -
 -      * lisp.h (Fread_from_minibuffer): Decrement number of args.
 -
 -      * minibuf.c (read_minibuf): Remove arg KEEP_ALL.  Callers changed.
 -      (Fread_from_minibuffer): Remove arg KEEP_ALL.  Callers changed.
 -
 -      * buffer.c (mode-line-format): Fix docstring.
 -
 -2006-05-25  Richard Stallman  <rms@gnu.org>
 -
 -      * emacs.c (main, Fdump_emacs): Don't test __linux or __linux__.
 -
 -2006-05-24  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1210000.
 -
 -2006-05-24  Alan Mackenzie  <acm@muc.de>
 -
 -      * lread.c (Vload_history): Enhance doc-string to say that the file
 -      is the absolute truename of the loaded file.
 -
 -      * lread.c (Vafter_load_alist): doc-string: state that an element
 -      now has a regexp to match file names, not a file name as such.
 -
 -      * lread.c (readevalloop): Call file-truename on the name for
 -      load-history, except at preloading time.
 -
 -      * lread.c (Fload): At preloading time, preserve the extension of
 -      the filename which goes into load-history.  New var hist_file_name.
 -
 -      * lread.c (Fload): Do eval-after-load stuff by calling the lisp
 -      function do-after-load-evaluation.
 -
 -2006-05-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (ae_attr_table): New variable.
 -      (syms_of_mac): Intern and staticpro its elements.
 -      (mac_aelist_to_lisp): Also convert Apple event attributes.
 -      (mac_ae_put_lisp): New function.
 -      (create_apple_event_from_event_ref) [MAC_OSX]: Use typeUTF8Text.
 -
 -      * macfns.c (Fx_server_version): Use gestaltSystemVersionMajor etc.
 -
 -      * macselect.c (Qemacs_suspension_id): New variable.
 -      (syms_of_macselect): Intern and staticpro it.
 -      (struct suspended_ae_info): New struct.
 -      (deferred_apple_events, defer_apple_events)
 -      (Fmac_process_deferred_apple_events): Use it.
 -      (suspended_apple_events): New variable.
 -      (mac_handle_apple_event_1): New function.
 -      (mac_handle_apple_event): Use it.  Don't process previously
 -      suspended events.
 -      (cleanup_suspended_apple_events, get_suspension_id)
 -      (cleanup_all_suspended_apple_events): New functions.
 -      (init_apple_event_handler): Call cleanup_all_suspended_apple_events
 -      at exit.
 -      (Fmac_cleanup_expired_apple_events, Fmac_ae_set_reply_parameter)
 -      (Fmac_resume_apple_event): New defuns.
 -      (syms_of_macselect): Defsubr them.
 -
 -      * macterm.c (fn_keycode_to_keycode_table, XTread_socket) [MAC_OSX]:
 -      Fix last change.  Don't map `fn' modifier if pressed with F1 ... F12.
 -
 -      * macterm.h (TYPE_FILE_NAME): Change from macro to enumerator.
 -      (KEY_EMACS_SUSPENSION_ID_ATTR): New enumerator.
 -      (keyReplyRequestedAttr) [MAC_OS_X_VERSION_MAX_ALLOWED < 1030]: Likewise.
 -      (gestaltSystemVersionMajor, gestaltSystemVersionMinor)
 -      (gestaltSystemVersionBugFix) [MAC_OS_X_VERSION_MAX_ALLOWED < 1040]:
 -      Likewise.
 -      (typeUTF8Text, kEventParamWindowMouseLocation)
 -      [MAC_OSX && MAC_OS_X_VERSION_MAX_ALLOWED < 1020]: Likewise.
 -      (x_get_focus_frame, mac_ae_put_lisp): Add externs.
 -
 -2006-05-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (fn_keycode_to_xkeysym_table, convert_fn_keycode): Remove.
 -      (fn_keycode_to_keycode_table) [MAC_OSX]: New variable.
 -      (mac_set_unicode_keystroke_event) [TARGET_API_MAC_CARBON]: New function.
 -      (XTread_socket) [TARGET_API_MAC_CARBON]: Use it.
 -      (XTread_socket) [MAC_OSX]: Try 'uchr' Unicode keyboard-layout
 -      resource to backtranslate key with modifiers.
 -      (XTread_socket): Don't set read_socket_inev around AEProcessAppleEvent.
 -
 -2006-05-23  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c: Remove declarations already in xterm.h
 -
 -      * xterm.h: Add extern declarations for x_clear_errors,
 -      x_fully_uncatch_errors, x_catching_errors and
 -      x_alloc_lighter_color_for_widget.  Remove duplicated declarations.
 -
 -2006-05-21  Richard Stallman  <rms@gnu.org>
 -
 -      * xfaces.c (best_matching_font): Abort for best == NULL
 -      before we start to use it.
 -
 -      * buffer.c (syms_of_buffer, Fmake_overlay): Doc fixes.
 -
 -2006-05-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * xfaces.c (best_matching_font): Fix crash in 2006-05-17 change.
 -
 -2006-05-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (convert_fn_keycode): Fix last change.
 -
 -2006-05-19  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (init_environment): Perform the processing of environment
 -      variables on a copy of default variables and their values, not on
 -      the original.  Simplify code that calls ExpandEnvironmentStrings
 -      and make buf1[] and buf2[] more visible for easier debugging.
 -
 -2006-05-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * frame.c (x_set_border_width): Remove #ifndef MAC_OS.
 -
 -      * image.c [MAC_OS] (gif_load): Allocate Lisp string first.
 -
 -      * macfns.c (Fx_focus_frame): Don't check dpyinfo->x_focus_frame.
 -
 -      * macterm.c (XTread_socket) [TARGET_API_MAC_CARBON && MAC_OSX]:
 -      Forward keyUp events to toolbox_dispatcher.
 -
 -      * window.c (foreach_window): Check WINDOWP (FRAME_ROOT_WINDOW (f)).
 -
 -2006-05-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * config.in: Regenerated (HAVE_ALSA).
 -
 -      * sound.c (alsa_sound_perror, alsa_open, alsa_period_size)
 -      (alsa_configure, alsa_close, alsa_choose_format, alsa_write)
 -      (snd_error_quiet, alsa_init): New functions.
 -      (vox_init): Return 0 if unable to open device.
 -      (Fplay_sound_internal): Test for alsa first and use vox (oss) as
 -      a fallback.
 -      (struct sound_device): Add period_size.
 -      (wav_play, au_play): Use period_size if set.
 -
 -      * Makefile.in (CFLAGS_SOUND): New flags for ALSA.
 -      (ALL_CFLAGS): Add CFLAGS_SOUND.
 -
 -2006-05-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * callproc.c (Fcall_process): Reject encoding arguments by
 -      ascii-incompatible coding systems (e.g. utf-16).
 -
 -      * coding.c (Qascii_incompatible): New variable.
 -      (syms_of_coding): Setup Qascii_incompatible.
 -      (setup_coding_system): Be sure to initialize coding->common_flags.
 -      Check `ascii-incompatible' property of the coding system.
 -
 -      * coding.h (CODING_ASCII_INCOMPATIBLE_MASK): New macro.
 -
 -2006-05-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (display_tool_bar_line): Restore entire tool-bar
 -      geometry when backtracking in case last image doesn't fit on line.
 -
 -2006-05-18  MIYOSHI Masanori  <miyoshi@meadowy.org>  (tiny change)
 -
 -      * xdisp.c (display_tool_bar_line): Don't adjust tool-bar height by
 -      more than height of one frame default line.
 -
 -2006-05-17  Richard Stallman  <rms@gnu.org>
 -
 -      * xfaces.c (better_font_p): Any font beats no font.
 -      (best_matching_font): Simplify based on above change.
 -
 -      * buffer.c (Fprevious_overlay_change, Fnext_overlay_change): Doc fixes.
 -
 -2006-05-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (handle_one_xevent): Check that f is not NULL before
 -      calling x_kill_gs_process.
 -
 -2006-05-14  Richard Stallman  <rms@gnu.org>
 -
 -      * textprop.c (Fnext_single_char_property_change)
 -      (Fprevious_single_char_property_change): Don't allow returning
 -      value beyond LIMIT in any cases.
 -      (Fnext_char_property_change, Fprevious_char_property_change): Doc fix.
 -
 -      * intervals.c (get_local_map): Abort if POSITION outside BEGV, ZV.
 -
 -2006-05-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): Check that f is not NULL before
 -      calling _XEditResCheckMessages.
 -
 -2006-05-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (handle_one_xevent): Fix crash in 2006-03-24 change.
 -
 -2006-05-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * frame.c (x_set_border_width): Fix error message to say "frame",
 -      not "window".
 -
 -      * Makefile.in (SOME_MACHINE_LISP): Add fringe.elc.
 -
 -2006-05-12  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * intervals.c (set_point_both): Fix mixup before before and after
 -      in variable names.
 -
 -      * editfns.c (Fline_beginning_position): Inhibit point-motion hooks
 -      while setting point temporarily.
 -
 -2006-05-11  Richard Stallman  <rms@gnu.org>
 -
 -      * lread.c (readevalloop): Abort if START non-nil for non-buffer input.
 -
 -2006-05-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_tool_bar): Handle large tool-bar-border values.
 -
 -2006-05-11  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): Fix for the case of IO error
 -      while handling replace operation.
 -
 -2006-05-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (realize_default_face) [HAVE_X_WINDOWS]: If the font
 -      chosen for the default face was different from the frame font,
 -      adjust the frame font.
 -
 -2006-05-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c (Qduration) [MAC_OS]: Undo previous change.
 -      (syms_of_image) [MAC_OS]: Likewise.
 -      [MAC_OS] (gif_load): Emulate Graphic Control Extension block.
 -
 -      * macfns.c (x_to_mac_color): Fix shift amount change.
 -      (mac_set_font) [USE_MAC_FONT_PANEL]: Use x_get_focus_frame.
 -      [USE_MAC_FONT_PANEL] (Fmac_set_font_panel_visibility): Doc fix.
 -
 -      * macselect.c (Vmac_service_selection) [MAC_OSX]: Rename from
 -      Vmac_services_selection.  All uses changed.
 -      (mac_store_service_event): Rename from mac_store_services_event in
 -      extern and calls.
 -
 -      * macterm.c (Qservice) [MAC_OSX]: Rename from Qservices.  All uses
 -      changed.
 -      [MAC_OSX] (mac_store_service_event): Rename from
 -      mac_store_services_event.  All callers changed.
 -      [USE_MAC_FONT_PANEL] (mac_set_font_info_for_selection): Add args
 -      FACE_ID and C.  All callers changed.
 -      (x_free_frame_resources) [USE_MAC_FONT_PANEL]: Call
 -      mac_set_font_info_for_selection when focus frame is destroyed.
 -      (XTread_socket): Revert to FrontNonFloatingWindow/FrontWindow.
 -
 -      * macterm.h (mac_set_font_info_for_selection): Add 2nd and 3rd
 -      args in extern.
 -
 -2006-05-09  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * keymap.c (describe_map): Avoid generating duplicate entries if
 -      the shadowed binding has the same definition.
 -
 -2006-05-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * keymap.c (push_key_description): Handle invalid character key.
 -
 -2006-05-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * callproc.c (Fcall_process): Use system_eol_type for encoding
 -      arguments if eol_type is not yet decided.
 -
 -      * coding.h (system_eol_type): Extern it.
 -
 -      * coding.c (setup_coding_system): For invalid coding-system, set
 -      coding->eol_type to CODING_EOL_UNDECIDED.
 -      (encode_coding): Cancel previous change.
 -      (shrink_encoding_region): Likewise.
 -      (code_convert_region1): Likewise.
 -      (code_convert_string1): Likewise.
 -      (code_convert_string_norecord): Likewise.
 -
 -      * fileio.c (choose_write_coding_system): Use system_eol_type for
 -      encoding if eol_type is not yet decided.
 -
 -      * process.c (setup_process_coding_systems): Use system_eol_type
 -      for encoding if eol_type is not yet decided.
 -      (read_process_output): Likewise.
 -      (send_process): Likewise.
 -
 -2006-05-07  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * minibuf.c (syms_of_minibuf) <history-length>: Fix typo in doc.
 -
 -2006-05-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (Fmac_clear_font_name_table): Move defun to macfns.c.
 -      (syms_of_mac): Likewise for defsubr.
 -
 -      * macfns.c (mac_set_font): New function.
 -      (mac_frame_parm_handlers, syms_of_macfns): Replace x_set_font with it.
 -      (mac_window) [TARGET_API_MAC_CARBON && MAC_OSX]: Specify
 -      kWindowToolbarButtonAttribute when creating window.
 -      (Fmac_clear_font_name_table): Move from macfns.c.
 -      (syms_of_macfns): Likewise for defsubr.
 -      [USE_MAC_FONT_PANEL] (Fmac_set_font_panel_visibility): New defun.
 -      (syms_of_macfns) [USE_MAC_FONT_PANEL]: Defsubr it.
 -
 -      * macgui.h (USE_MAC_FONT_PANEL): Define to 1 if USE_ATSUI is set
 -      and build is done on Mac OS X 10.2 and later.
 -
 -      * macselect.c (mac_do_receive_drag): Remove unused variable `index'.
 -      (mac_store_services_event): Change return type in extern.
 -
 -      * macterm.c (XLoadQueryFont) [USE_ATSUI]: Set font->mac_fontnum to
 -      FMFontFamily value.
 -      [USE_MAC_FONT_PANEL] (mac_set_font_info_for_selection): New function.
 -      (x_new_focus_frame) [USE_MAC_FONT_PANEL]: Use it.
 -      (QCfamily, QCweight, QCslant, Qnormal, Qbold, Qitalic): Add extern.
 -      (QWindow) [MAC_OSX]: Likewise.
 -      (Qfont) [USE_MAC_FONT_PANEL]: Likewise.
 -      (Vmac_atsu_font_table) [USE_ATSUI]: New variable.
 -      (syms_of_macterm) [USE_ATSUI]: Defvar it.
 -      (Qtoolbar_switch_mode) [MAC_OSX]: New variable.
 -      (Qpanel_closed, Qselection) [USE_MAC_FONT_PANEL]: Likewise.
 -      (syms_of_macterm): Intern and staticpro them.
 -      (init_font_name_table) [USE_ATSUI]: Add data to Vmac_atsu_font_table.
 -      [TARGET_API_MAC_CARBON] (mac_store_event_ref_as_apple_event):
 -      New function.
 -      [USE_CARBON_EVENTS] (mac_handle_command_event): Use it.
 -      [MAC_OSX] (mac_store_services_event): Likewise.
 -      [USE_CARBON_EVENTS] (mac_handle_window_event) [MAC_OSX]: Handle
 -      kEventWindowToolbarSwitchMode event.
 -      (install_window_handler) [USE_CARBON_EVENTS && MAC_OSX]: Register it.
 -      [MAC_OSX] (mac_store_services_event): Change return type to OSStatus.
 -      [USE_MAC_FONT_PANEL] (mac_handle_font_event): New function.
 -      (install_window_handler) [USE_MAC_FONT_PANEL]: Install it.
 -      (XTread_socket): Select window on mouse click if x_focus_frame is NULL.
 -
 -      * macterm.h (mac_set_font_info_for_selection): Add extern.
 -
 -2006-05-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c (Qduration) [MAC_OS]: New variable.
 -      (syms_of_image) [MAC_OS]: Intern and staticpro it.
 -      [MAC_OS] (gif_load): Save image extension data in img->data.lisp_val.
 -      [MAC_OSX] (image_load_quartz2d): Use cfstring_create_with_utf8_cstring
 -      instead of cfstring_create_with_string.
 -
 -2006-05-06  Kim F. Storm  <storm@cua.dk>
 -
 -      * .gdbinit (xframe): Print frame name.
 -      (xlist): New command to print a list (max 10 elements).
 -      (xpr): Print lisp object of any type.
 -      (pitx): Print it->pixel_width.
 -
 -2006-05-05  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (handle_composition_prop): Fix for the case of empty
 -      composition component.
 -
 -2006-05-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.c (make_lispy_event) [MAC_OS]: Get Apple event info
 -      from event->arg.
 -
 -      * termhooks.h (enum event_kind) [MAC_OS]: Update comment for
 -      MAC_APPLE_EVENT.
 -
 -      * macterm.h (mac_make_lispy_event_code): Remove extern.
 -      (mac_post_mouse_moved_event): Add extern.
 -      (mac_aelist_to_lisp, mac_aedesc_to_lisp): Change arg 1 to
 -      `const AEDesc *' in externs.
 -      (create_apple_event_from_drag_ref) [TARGET_API_MAC_CARBON]: New extern.
 -
 -      * mac.c (mac_aelist_to_lisp, mac_aedesc_to_lisp): Change arg 1 to
 -      `const AEDesc *'.
 -      [TARGET_API_MAC_CARBON] (create_apple_event): New function.
 -      [TARGET_API_MAC_CARBON] (create_apple_event_from_event_ref): Use it.
 -      Use xrealloc instead of repeated xmalloc/xfree.
 -      [TARGET_API_MAC_CARBON] (create_apple_event_from_drag_ref):
 -      New function.
 -
 -      * macmenu.c (restore_menu_items, cleanup_popup_menu): Return a value.
 -
 -      * macselect.c: Update copyright year.
 -      (mac_store_apple_event): Change return type to void in extern.
 -      (mac_handle_apple_event): Don't get return value from
 -      mac_store_apple_event.
 -      [TARGET_API_MAC_CARBON] (Vmac_dnd_known_types): New variable.
 -      (syms_of_macselect) [TARGET_API_MAC_CARBON]: Defvar it.
 -      [TARGET_API_MAC_CARBON] (mac_do_track_drag): Move function from
 -      macterm.c.  Use Vmac_dnd_known_types as acceptable flavors.
 -      [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise.  New
 -      implementation using create_apple_event_from_drag_ref.
 -      [TARGET_API_MAC_CARBON] (mac_do_track_dragUPP)
 -      (mac_do_receive_dragUPP): Move variables from macterm.c.
 -      (install_drag_handler, remove_drag_handler): New functions.
 -
 -      * macterm.c (XTread_socket) [TARGET_API_MAC_CARBON]: Try window
 -      path select also for proxy icon click.
 -      [TARGET_API_MAC_CARBON] (mac_post_mouse_moved_event): New function.
 -      [USE_TOOLKIT_SCROLL_BARS] (scroll_bar_timer_callback): Use it.
 -      (xlfdpat_create): Remove unused label `error' and trailing sentences.
 -      (mac_do_track_drag, mac_do_receive_drag): Move functions to macselect.c.
 -      (mac_do_track_dragUPP, mac_do_receive_dragUPP): Move variables to
 -      macselect.c.
 -      (install_drag_handler, remove_drag_handler): Add extern.
 -      (mac_store_apple_event): Change return type to void.  All uses changed.
 -      Create Lisp object from Apple event and store it into input event.
 -      (mac_make_lispy_event_code): Remove function.
 -      [TARGET_API_MAC_CARBON] (mac_store_drag_event): New function.
 -      (install_window_handler): Call install_drag_handler.
 -      (remove_window_handler): Call remove_drag_handler.
 -
 -2006-05-03  Richard Stallman  <rms@gnu.org>
 -
 -      * sound.c (Fplay_sound_internal): Dynamically allocate
 -      current_sound_device and current_sound.
 -      (sound_cleanup): Free them.
 -
 -      * minibuf.c (read_minibuf): Don't use read_minibuf_noninteractive
 -      when inside a keyboard macro.
 -
 -2006-05-02  Andreas Schwab  <schwab@suse.de>
 -
 -      * xmenu.c (restore_menu_items): Return a value.
 -
 -2006-05-01  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * syntax.c (Fforward_comment): Detect generic comment at beginning of
 -      buffer when moving backwards.
 -
 -2006-05-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * dispnew.c (update_window): Don't set changed_p when mode/header
 -      line is updated.
 -
 -      * xdisp.c (prepare_menu_bars) [MAC_OS]: Call mac_update_title_bar.
 -      (get_glyph_face_and_encoding, get_char_face_and_encoding):
 -      Don't distinguish known faces from others.
 -
 -      * mac.c (mac_coerce_file_name_ptr): Try typeFSRef if coercion
 -      through typeFileURL failed.
 -
 -      * macfns.c (mac_update_title_bar): New function.
 -      [TARGET_API_MAC_CARBON] (mac_update_proxy_icon): New function.
 -      (show_hourglass, hide_hourglass) [USE_CG_DRAWING]:
 -      Call mac_prepare_for_quickdraw.
 -
 -      * macgui.h (USE_ATSUI): Set default to 1 if MAC_OSX is defined.
 -      (USE_CG_DRAWING): Don't define if compiled on Mac OS X 10.1.
 -      (enum pcm_status): New enum.
 -      (XCHARSTRUCTROW_CHAR_VALID_P, XCHARSTRUCTROW_SET_CHAR_VALID)
 -      (XCharStructRow): Remove.  Now validity is represented by
 -      non-negativeness of sum of ascent and descent.
 -      (struct MacFontStruct): Change type of member `rows'.
 -      (struct _XGC) [USE_CG_DRAWING]: Add member `clip_rects'.
 -
 -      * macterm.c (mac_draw_line, mac_draw_line_to_pixmap):
 -      Adjust endpoints of strictly horizontal/vertical lines.
 -      (mac_set_clip_rectangles) [USE_CG_DRAWING]: Set clip_rects.
 -      (pcm_init, pcm_get_status): New functions.
 -      (x_per_char_metric, XLoadQueryFont): Use them instead of
 -      XCharStructRow and related macros.
 -      (x_draw_relief_rect): Don't adjust arguments of mac_draw_line.
 -      (x_free_frame_resources) [TARGET_API_MAC_CARBON]: Free FRAME_FILE_NAME.
 -      (XTread_socket) [TARGET_API_MAC_CARBON]: Handle proxy icon drag
 -      and window path pop-up menu on title bar.
 -      (mac_use_core_graphics) [USE_CG_DRAWING]: Set default to 1.
 -
 -      * macterm.h (mac_update_title_bar): Add extern.
 -      (struct mac_output) [TARGET_API_MAC_CARBON]: New member `file_name'.
 -      (FRAME_FILE_NAME): New macro.
 -
 -      * unexmacosx.c (unexec): Error if trying unexec from dumped executable.
 -
 -2006-04-30  Richard Stallman  <rms@gnu.org>
 -
 -      * keymap.c (Fdefine_key): Improve error message
 -      when KEY begins with a non-prefix key.
 -
 -2006-04-30  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * syntax.c (Fforward_comment): Don't forget to break out of the loop
 -      when we skipped backward over a generic comment.
 -
 -2006-04-27  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * .gdbinit (pp1, pv1): Only print value as expression is now
 -      printed out by gud-print.
 -      (pv1): Correct doc string.
 -
 -2006-04-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (store_in_keymap): Change `def' arg to not be `register'.
 -      Seems to trigger a bug in gcc-amd64 4.0.2 20051125 (Red Hat 4.0.2-8):
 -      keymap.c:895: error: address of register variable `def' requested.
 -
 -2006-04-26  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (construct_mouse_wheel): Handle negative coordinates.
 -
 -      * w32fns.c (w32_wnd_proc) <WM_LBUTTONDOWN, WM_RBUTTONDOWN>:
 -      <WM_LBUTTONUP, WM_RBUTTONUP>: Call signal_user_input in the cases
 -      where we preempt mouse_button_timer.
 -
 -2006-04-25  Miles Bader  <miles@gnu.org>
 -
 -      * editfns.c (Ffield_beginning, find_field): Undo change of 2006-04-23.
 -
 -2006-04-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * process.h: Include headers for pid_t.
 -
 -2006-04-24  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (fill_stretch_glyph_string): Set s->nchars = 1 for code which
 -      does last_glyph=s->first_glyph+s->nchars-1, e.g. if stretch has relief.
 -      (produce_stretch_glyph): Assume that face box height and width is
 -      already included in stretch glyph size so caller doesn't have to
 -      consider the extra space otherwise added (fixes problem in ses.el).
 -
 -      * frame.c (x_set_font): Clear f->n_tool_bar_rows and current frame
 -      matrices to force recalculation of tool-bar height after font change.
 -
 -      * xdisp.c (tool_bar_lines_needed): New local `temp_row' for clarity.
 -      Clear it when done, so we don't accidentally draw a second copy of
 -      the tool-bar after resetting f->n_tool_bar_rows.
 -      (redisplay_tool_bar): Update tool-bar-lines frame parameter whenever
 -      we recalculate f->n_tool_bar_rows.
 -
 -2006-04-23  Lars Hansen  <larsh@soem.dk>
 -
 -      * editfns.c (find_field): Fix comment.
 -      (Ffield_beginning): Fix bug when POS is at field beginning.
 -
 -2006-04-22  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1205000.
 -
 -2006-04-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_window): Fix last change.  Don't recenter if
 -      window start is at BEGV.
 -
 -      * dispextern.h (struct image): New member `corners'.
 -      (TOP_CORNER, LEFT_CORNER, BOT_CORNER, RIGHT_CORNER): New macros.
 -
 -      * image.c (four_corners_best): New arg CORNERS specifies what pixels
 -      to look at in case image has margin.
 -      (x_create_bitmap_mask): Pass NULL for CORNERS to four_corners_best.
 -      (image_background, image_background_transparent)
 -      (x_build_heuristic_mask): Pass img->corners to four_corners_best.
 -      (gif_load): Set img->corners according to image's margin spec.
 -      Use img->corners values directly where applicable.
 -      Save image extension data in img->data.lisp_val.
 -      (gif_clear_image): New function to free img->data.lisp_val.
 -      (gif_type): Use it instead of generic x_clear_image.
 -      (Fimage_extension_data): New defun.
 -      (syms_of_image): Defsubr it.
 -
 -2006-04-21  John Sullivan  <john@wjsullivan.net>  (tiny change)
 -
 -      * window.c (Fdisplay_buffer): Doc fix.
 -
 -2006-04-21  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Increase to 25000.
 -
 -2006-04-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c [MAC_OS] (xpm_load_image): Fill in background field
 -      while we have ximg handy.
 -
 -      * macmenu.c (restore_menu_items, save_menu_items): New functions
 -      from xmenu.c.
 -      (set_frame_menubar, digest_single_submenu): Apply 2006-04-18
 -      changes for xmenu.c.
 -
 -      * macterm.c (x_per_char_metric): Return NULL if glyph width is 0.
 -      (add_mac_font_name): New function.
 -      (init_font_name_table): Use it.  Adopt the first found font from
 -      those having the same family name.
 -
 -2006-04-21  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * xdisp.c (note_mouse_highlight): Use build_string.
 -
 -2006-04-20  Lars Hansen  <larsh@soem.dk>
 -
 -      * textprop.c (Fremove_list_of_text_properties):
 -      Ensure modify_region is called only when buffer is modified and that
 -      signal_after_change is allways called in that case.
 -
 -      * print.c (PRINTFINISH): Call signal_after_change.
 -
 -2006-04-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_window): Fix last change.
 -
 -      * xdisp.c (redisplay_window): If current window start is not at the
 -      beginning of a line, select a new window start if buffer is modified
 -      and window start is in the modified region, but the first change is
 -      before window start.
 -
 -2006-04-18  Richard Stallman  <rms@gnu.org>
 -
 -      * xmenu.c (restore_menu_items, save_menu_items): New fns.
 -      (set_frame_menubar): Use save_menu_items.  Save updated vector in
 -      the frame before unwinding it.  Don't use unuse_menu_items.
 -      Don't use discard_menu_items.
 -      (digest_single_submenu): Abort if an item is not in a pane.
 -      (init_menu_items): Put the error check at the top.
 -
 -      * keymap.c (describe_map): Make "shadowed" warning more verbose.
 -
 -      * window.c (adjust_window_trailing_edge): Correctly distinguish
 -      series vs parallel cases, even when window has no parent.
 -
 -      * abbrev.c (record_symbol): New function.
 -      (Finsert_abbrev_table_description): Sort the abbrevs alphabetically.
 -
 -2006-04-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c (x_create_bitmap_from_data) [MAC_OS]: Don't check return
 -      value of xmalloc.
 -
 -      * mac.c (mac_coerce_file_name_ptr, mac_coerce_file_name_desc)
 -      (create_apple_event_from_event_ref, xrm_get_preference_database)
 -      (cfstring_create_normalized): Don't check return value of xmalloc.
 -
 -      * macselect.c (get_scrap_target_type_list, defer_apple_events)
 -      (copy_scrap_flavor_data, mac_handle_service_event): Don't check
 -      return value of xmalloc/xrealloc.
 -
 -      * macterm.c (XCreateGC, x_per_char_metric, xlfdpat_create)
 -      (init_font_name_table, init_font_name_table, mac_do_list_fonts)
 -      (XLoadQueryFont, mac_store_apple_event): Don't check return value
 -      of xmalloc.
 -
 -2006-04-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (coordinates_in_window): On the vertical border,
 -      calculate the row number measured from the top of the window, not
 -      the top of the frame.
 -      (window_loop): Test w->dedicated with !NILP instead of EQ Qt.
 -      (window_scroll_pixel_based): Fix off-by-one bug in 2002-12-23 change.
 -
 -2006-04-16  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Reduce to 24000.
 -
 -2006-04-16  Romain Francoise  <romain@orebokech.com>
 -
 -      * puresize.h (BASE_PURESIZE): Decrement back to 1200000.
 -
 -2006-04-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * puresize.h (PURESIZE_RATIO): Reduce to 10/6.
 -
 -2006-04-15  Romain Francoise  <romain@orebokech.com>
 -
 -      * puresize.h (BASE_PURESIZE): Increment to 1210000.
 -
 -2006-04-13  Micha\e,Ak\e(Bl Cadilhac  <michael.cadilhac@lrde.org>
 -
 -      * print.c (Fprin1_to_string): Mention in the `doc' that the
 -      behavior is modified by `print-level' and `print-length'.
 -
 -2006-04-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (setup_coding_system): If eol-type is not yet decided
 -      and system_eol_type is not LF, set CODING_REQUIRE_ENCODING_MASK.
 -      If coding_system is nil, return 0.
 -      (code_convert_region1): Even if coding_system is nil, don't skip
 -      conversion if system_eol_type is not LF.
 -      (code_convert_string1): Likewise.
 -      (code_convert_string_norecord): Likewise.
 -
 -2006-04-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (setup_coding_system): Fix previous change.
 -      (encode_coding): If eol_type is not yet decided, use system_eol_type.
 -      (shrink_encoding_region): If eol_type is not yet decided and
 -      system_eol_type is not LF, don't shrink.
 -
 -2006-04-13  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * xdisp.c (note_mouse_highlight): Add help echo for dragging vertical
 -      line.
 -
 -2006-04-12  Richard Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (read_key_sequence): Explicitly avoid keybuf[-1].
 -
 -      * process.c (conv_lisp_to_sockaddr): If FAMILY unknown, just return.
 -      (Fprocess_send_eof): Abort if fail to open null device.
 -
 -2006-04-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * fns.c [HAVE_MENUS && MAC_OS]: Include macterm.h.
 -
 -      * image.c [MAC_OS] (xpm_load_image): Add parentheses around
 -      assignment used as truth value.  Add explicit braces to avoid
 -      ambiguous `else'.
 -      [MAC_OS] (gif_load): Remove unused variable `gcpro1'.
 -
 -      * lisp.h (syms_of_fontset, Fset_fontset_font): Put extern and
 -      EXFUN in #ifdef HAVE_WINDOW_SYSTEM.
 -      (syms_of_xfns, syms_of_xsmfns, syms_of_xselect, syms_of_xterm):
 -      Put externs in #ifdef HAVE_X_WINDOWS.
 -      (syms_of_macfns, syms_of_macselect, syms_of_macterm)
 -      (syms_of_macmenu, syms_of_mac) [MAC_OS]: Add externs.
 -      (init_mac_osx_environment) [MAC_OSX]: Add extern.
 -
 -      * mac.c (init_process): Remove undef.
 -      (select) [MAC_OSX]: Undefine before including sysselect.h.
 -      (posix_pathname_to_fsspec, fsspec_to_posix_pathname) [MAC_OSX]:
 -      Remove functions and prototypes.
 -      (parse_value): Add parentheses around + inside shift.
 -      (path_from_vol_dir_name): Make static.
 -      (get_temp_dir_name): Remove unused variables `cpb' and `dir_name'.
 -      [!MAC_OSX] (get_path_to_system_folder): Likewise.
 -      (Fmac_get_file_creator, Fmac_get_file_type): Remove unused
 -      variable `cCode'.
 -      (Fmac_coerce_ae_data): Remove unused variables `fref' and `fs'.
 -      (Fmac_get_preference): Add explicit braces to avoid ambiguous `else'.
 -
 -      * macfns.c (x_to_mac_color): Remove unused variable `tail'.
 -      (x_set_mouse_color): Remove unused variable `dpy'.
 -      (Fx_create_frame): Remove unused variable `x_frame_count'.
 -      (Fx_server_version): Add explicit braces to avoid ambiguous `else'.
 -      (x_sync): Move from macterm.c.
 -      (Fx_file_dialog): Remove unused variable `default_filter_index'.
 -
 -      * macmenu.c (min_menu_id): Make element type explicit.
 -
 -      * macselect.c (get_flavor_type_from_symbol): Remove unused
 -      variable `val'.
 -      (get_scrap_private_timestamp, x_get_foreign_selection)
 -      (copy_scrap_flavor_data): Add explicit braces to avoid ambiguous `else'.
 -      (Fmac_process_deferred_apple_events): Remove unused variables
 -      `keyword', `reply', `apple_event', `count', and `err'.
 -
 -      * macterm.c: Don't include gnu.h.
 -      (x_io_error_quitter, x_draw_image_foreground_1): Remove prototypes.
 -      (x_sync): Move to macfns.c.
 -      [USE_CG_DRAWING] (mac_define_fringe_bitmap): Remove unused
 -      variable `mask_bits'.
 -      (mac_compute_glyph_string_overhangs): Avoid ambiguous `else'.
 -      (x_draw_image_glyph_string): Remove unused variable `pixmap'.
 -      (x_mac_to_emacs_modifiers): Remove function.
 -      (XTset_vertical_scroll_bar, mac_handle_visibility_change)
 -      (x_make_frame_visible, xlfdpat_create, mac_handle_command_event):
 -      Add explicit braces to avoid ambiguous `else'.
 -      (x_make_frame_visible): Remove unused variables `type',
 -      `original_top', and `original_left'.
 -      (mac_do_list_fonts, XTread_socket): Add parentheses around && within ||.
 -      (x_load_font): Remove unused variables `full_name', and `value'.
 -      (do_get_menus, do_init_managers, do_check_ram_size) [!MAC_OS8]:
 -      Remove functions.
 -      (do_zoom_window): Reorganize variables with respect to conditionals.
 -      (init_command_handler): Remove unused variable `err'.
 -      [MAC_OSX] (mac_check_bundle): Remove unused variable `child'.
 -
 -      * macterm.h (x_set_mouse_position, x_set_mouse_pixel_position)
 -      (x_make_frame_invisible, x_iconify_frame, x_free_frame_resources)
 -      (x_destroy_window, x_wm_set_size_hint, x_delete_display, XFreeGC)
 -      (do_menu_choice, have_menus_p, x_real_positions)
 -      (x_set_menu_bar_lines, x_pixel_width, x_pixel_height, x_char_width)
 -      (x_char_height, x_sync, x_set_tool_bar_lines, x_activate_menubar)
 -      (free_frame_menubar): Add externs.
 -
 -      * unexmacosx.c: Include config.h before using HAVE_MALLOC_MALLOC_H.
 -      (malloc, realloc, free): Add undefs.
 -      (read_load_commands): Remove unused variable `n' and `j'.
 -      (copy_data_segment): Remove unused variable `r'.
 -
 -      * xdisp.c (get_glyph_string_clip_rects): Add parentheses around &&
 -      within ||.  Add explicit braces to avoid ambiguous `else'.
 -      (dump_glyph_row): Remove label for `inverse_p' from legend.
 -
 -      * xfaces.c (Finternal_merge_in_global_face, try_font_list):
 -      Add explicit braces to avoid ambiguous `else'.
 -
 -2006-04-11  Micha\e,Ak\e(Bl Cadilhac  <michael.cadilhac@lrde.org>
 -
 -      * dispnew.c (init_display): Don't init X display if the user asked
 -      for a non-X display.
 -
 -2006-04-12  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (setup_coding_system): Use system_eol_type for default
 -      coding->eol_type.
 -
 -2006-04-11  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * lisp.h (wrong_type_argument): Mark as NO_RETURN.
 -
 -      * data.c (wrong_type_argument): Try to avoid compiler warnings due
 -      to the fact the function is now marked as NO_RETURN.
 -
 -2006-04-10  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * s/ms-w32.h (pid_t) [_MSC_VER]: New typedef.
 -
 -2006-04-10  Romain Francoise  <romain@orebokech.com>
 -
 -      * xrdb.c (gethomedir): Use xstrdup.
 -
 -2006-04-10  Andreas Schwab  <schwab@suse.de>
 -
 -      * xrdb.c (gethomedir): Make sure to always return a pointer that
 -      can be passed to free.
 -
 -2006-04-09  Richard Stallman  <rms@gnu.org>
 -
 -      * lisp.h (Fkill_emacs): Undo previous change.
 -
 -2006-04-08  Richard Stallman  <rms@gnu.org>
 -
 -      * search.c (boyer_moore): Test ch >= 0400, not >.
 -
 -2006-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * puresize.h (pure_write_error): Mark as NO_RETURN.
 -
 -      * lisp.h (args_out_of_range, args_out_of_range_3)
 -
 -2006-04-08  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (w32_wnd_proc) <WM_MOUSEMOVE>: Ignore mouse movements
 -      if a menu is active on this frame.
 -
 -2006-04-08  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * lisp.h (report_file_error): Mark as NO_RETURN.
 -
 -2006-04-08  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * alloc.c [STDC_HEADERS]: Include stddef.h.
 -
 -      * lisp.h (PSEUDOVECSIZE): Fix last change.
 -
 -2006-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * process.h (struct Lisp_Process): Replace Lisp_Objects `pid',
 -      `raw_status_high', and `raw_status_low' with plain integers, and move
 -      them to the end of the structure.
 -
 -      * alloc.c (allocate_process): Use PSEUDOVECSIZE to initialize the
 -      pseudovector's size field so only the Lisp_Object fields get GC'd.
 -
 -      * process.c (update_status, make_process, Fdelete_process)
 -      (Fprocess_status, list_processes_1, start_process_unwind)
 -      (create_process, Fmake_network_process, server_accept_connection)
 -      (wait_reading_process_output, send_process, Fprocess_running_child_p)
 -      (process_send_signal, proc_encode_coding_system, Fprocess_send_eof)
 -      (sigchld_handler, status_notify): Adjust to new non-Lisp fields for
 -      `pid' and `raw_status'.
 -      (Fprocess_id, Fsignal_process): Same, and additionally use floats when
 -      representing PIDs that are larger than most-positive-fixnum.
 -
 -      * keymap.c (describe_map): Only use XINT if we checked INTEGERP.
 -
 -      * lisp.h (OFFSETOF, PSEUDOVECSIZE): New macros.
 -
 -2006-04-08  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (Fx_show_tip): Add 3 to the 5th arg of SetWindowPos.
 -
 -2006-04-03  Paul Eggert  <eggert@cs.ucla.edu>
 -
 -      * editfns.c (TM_YEAR_IN_ASCTIME_RANGE): New macro, identical to
 -      ../lib-src/b2m.c and ../lib-src/editfns.c.
 -      (Fcurrent_time_string): Use it.
 -      Document that the year might not consume 4 columns if it's outside
 -      the range 1000-9999.
 -      Check for asctime failure.
 -      Don't assume that the output string length is always exactly 24.
 -
 -2006-04-03  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (XTread_socket): Initialize variable `f' before its use.
 -
 -2006-04-03  Kenichi Handa  <handa@m17n.org>
 -
 -      * image.c: Include "charset.h" and "coding.h".
 -      (x_find_image_file): Return an encoded file name.
 -
 -2006-04-01  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * configure: Regenerated.
 -
 -2006-03-31  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfns.c (xg_set_icon): Delete superfluous UNGCPRO.
 -
 -2006-03-30  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * xdisp.c (syms_of_xdisp): Fix variable name.
 -
 -2006-03-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_term_init): Delete superfluous UNGCPRO.
 -
 -2006-03-29  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * keyboard.c (process_tool_bar_item): Reorder dummy args.
 -
 -2006-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (tool_bar_items): Use map_keymap.
 -      (process_tool_bar_item): Add dummy args to fit the required interface.
 -
 -2006-03-25  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * .gdbinit (pr, pp, pp1, pv, pv1): Force print_output_debug_flag
 -      to zero before calling debug_print or safe_debug_print.
 -
 -      * print.c (print_output_debug_flag): New global variable.
 -      (Fexternal_debugging_output) [WINDOWSNT]: Don't call
 -      OutputDebugString if print_output_debug_flag is zero.
 -
 -2006-03-24  Paul Eggert  <eggert@cs.ucla.edu>
 -
 -      * editfns.c (TM_YEAR_BASE): Move up, so the changes below can use it.
 -      (Fdecode_time, Fencode_time): Use TM_YEAR_BASE instead of 1900.
 -      (Fdecode_time): Cast tm_year to EMACS_INT.
 -      (Fcurrent_time_string): Report an invalid time specification if
 -      the argument is invalid.  Also, check for out-of-range time stamps.
 -
 -2006-03-24  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (handle_one_xevent):
 -      * w32term.c (w32_read_socket):
 -      * macterm.c (XTread_socket): Don't let key-press clear mouse face
 -      on in toolbar window if mouse-highlight is an integer.
 -
 -      * fns.c (sxhash_list): Include last non-nil CDR in hash.
 -
 -2006-03-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (enum mac_menu_kind): New enum.
 -      (min_menu_id): New variable.
 -      (POPUP_SUBMENU_ID, MIN_POPUP_SUBMENU_ID, MIN_MENU_ID)
 -      (MIN_SUBMENU_ID): Remove defines.  All uses are replaced with
 -      min_menu_id and enumerators in enum mac_menu_kind.
 -      (fill_menu, dispose_menus, install_menu_quit_handler): New arg KIND.
 -      All uses changed.  Add range check for menu ID.
 -      (fill_menubar): Add range check for menu ID.
 -      [HAVE_CANCELMENUTRACKING] (menu_quit_handler): Check error code of
 -      GetEventParameter.
 -      (set_frame_menubar, mac_menu_show): Call install_menu_quit_handler
 -      for each menu kind.
 -
 -2006-03-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c: Undo 2006-03-21 change.
 -
 -      * term.c: Define aliases for append_glyph and produce_stretch_glyph
 -      when `static' is defined to avoid name clash with those in xdisp.c.
 -
 -      * process.c (Faccept_process_output): Fix to comply with lisp
 -      reference.  Change arg "timeout" to "seconds" and allow both
 -      integer and float value.  Change arg "timeout-msec" to "millisec"
 -      and interpret" as milliseconds rather than microseconds.  Fix doc
 -      string accordingly.
 -
 -2006-03-21  Ken Raeburn  <raeburn@raeburn.org>
 -
 -      * xdisp.c (store_next_glyph): Rename from append_glyph.
 -      (generate_stretch_glyph): Rename from produce_stretch_glyph.
 -      All callers changed accordingly.
 -
 -2006-03-21  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c: x_session_initialized new variable.
 -      (x_term_init): Use x_session_initialized to check if
 -      x_session_initialize should be called.
 -      (x_initialize): Initialize x_session_initialized.
 -
 -2006-03-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (draw_fringe_bitmap): Don't calculate default overlay arrow
 -      bitmap here, but ...
 -      (update_window_fringes): ... here, so we can test if it has changed.
 -
 -2006-03-20  Andreas Schwab  <schwab@suse.de>
 -
 -      * dispnew.c (init_display): Check DISPLAY here.
 -
 -      * emacs.c (main): Don't check here.
 -
 -      * xterm.c (x_display_ok): Don't use DISPLAY env var.
 -
 -2006-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (window_scroll_pixel_based): Yet another int/Lisp_Object
 -      mixup (YAILOM).
 -
 -2006-03-20  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * emacs.c (main): Fix last change.
 -
 -2006-03-20  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Fwrite_region): Set visit_file to Qnil before GCPRO it.
 -
 -      * keymap.c (map_keymap): Set tail to Qnil before GCPRO it.
 -
 -      * xfns.c (xg_set_icon): Remove unnecessary GCPRO.
 -
 -      * xterm.c (x_term_init): Remove unnecessary GCPRO.
 -
 -2006-03-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (set_cursor_from_row): Fix cursor property on overlay string,
 -      so it doesn't associate overlay string with following glyph by default.
 -      Allow integer property value to specify explicit number of buffer
 -      positions associate with overlay string.
 -
 -2006-03-18  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (x_display_ok): Fix minor bug and compilation warnings.
 -
 -2006-03-18  Nozomu Ando  <nand@mac.com>
 -
 -      * m/pmax.h (BROKEN_NOCOMBRELOC) [__NetBSD__]: Define.
 -      (LIB_STANDARD, START_FILES) [__NetBSD__]: Don't define.
 -      (START_FILES, RUN_TIME_REMAP, UNEXEC) [__NetBSD__, __OpenBSD__]:
 -      Don't redefine.
 -
 -      * m/mips.h: Don't use unexmips on NetBSD.
 -      (LIBS_MACHINE): Move definition lower, so it doesn't use
 -      LD_SWITCH_MACHINE, START_FILES, LIB_STANDARD, LIBS_TERMCAP,
 -      C_SWITCH_MACHINE, and C_DEBUG_SWITCH.
 -
 -      * unexelf.c [BROKEN_NOCOMBRELOC]: Include assert.h.
 -      (unexec) [BROKEN_NOCOMBRELOC]: Handle platforms whose nocombreloc
 -      option is broken (e.g., MIPS/NetBSD).
 -
 -2006-03-18  Craig McDaniel  <craigmcd@gmail.com>  (tiny change)
 -
 -      * sheap.c (STATIC_HEAP_SIZE): Enlarge STATIC_HEAP_SIZE to 12MB.
 -      Remove the HAVE_X_WINDOWS conditional.
 -
 -2006-03-18  Vivek Dasmohapatra  <vivek@etla.org>  (tiny change)
 -
 -      * emacs.c (main): If user asks for a display that is unavailable,
 -      simulate -nw.
 -
 -      * xterm.c (x_display_ok): New function.
 -
 -      * xterm.h: Add prototype for x_display_ok.
 -
 -2006-03-18  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (Fw32_select_font): Doc fix.
 -
 -2006-03-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c [MAC_OS] (XPutPixel, XGetPixel)
 -      [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]: Don't use specialized
 -      version when depth is 32.
 -      (mac_create_cg_image_from_image) [MAC_OS && USE_CG_DRAWING]:
 -      New function.
 -      (prepare_image_for_display) [MAC_OS && USE_CG_DRAWING]: Use it.
 -      (x_clear_image_1) [MAC_OS && USE_CG_DRAWING]: Release CGImage.
 -
 -      * macterm.c (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
 -      Create GWorld in ARGB pixel format.
 -      (mac_copy_area, mac_copy_area_with_mask) [USE_CG_DRAWING]:
 -      Remove functions.
 -      (x_draw_image_foreground) [USE_CG_DRAWING]: Use mac_draw_cg_image
 -      instead of mac_copy_area/mac_copy_area_with_mask.
 -
 -2006-03-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (extend_face_to_end_of_line): Always add space glyph to
 -      empty row.  Fixes memory corruption revealed by 2006-03-02 change.
 -      (display_tool_bar_line): Skip empty tool-bar line if HEIGHT < 0.
 -      (tool_bar_lines_needed): Fix tool-bar display in case the tool-bar
 -      width is exactly the same as the window width.  Don't count a final
 -      empty tool-bar line (pass HEIGHT = -1 to display_tool_bar_line).
 -
 -2006-03-15  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fringe.c (w32_init_fringe, w32_reset_fringes): Revert to being
 -      conditional on HAVE_NTGUI, not WINDOWS_NT.
 -
 -2006-03-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * dispextern.h (mac_init_fringe) [MAC_OS]: Add prototype.
 -
 -      * fringe.c (mac_init_fringe) [MAC_OS]: New function.
 -
 -      * macterm.c (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
 -      (max_fringe_bmp, fringe_bmp) [USE_CG_DRAWING]: New variables.
 -      (mac_define_fringe_bitmap, mac_destroy_fringe_bitmap)
 -      (mac_draw_cg_image) [USE_CG_DRAWING]: New functions.
 -      (mac_draw_bitmap) [USE_CG_DRAWING]: Remove function.
 -      (x_draw_fringe_bitmap) [USE_CG_DRAWING]: Use mac_draw_cg_image
 -      instead of mac_draw_bitmap.
 -      (x_redisplay_interface) [USE_CG_DRAWING]: Set handlers for
 -      define_fringe_bitmap and destroy_fringe_bitmap.
 -
 -2006-03-14  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.c (x_uncatch_errors): Block input for entire function.
 -
 -2006-03-12  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fx_create_frame): Remove call to
 -      Qface_set_after_frame_default (from xfns.c 2003-05-26).
 -
 -      * w32menu.c (Fx_popup_menu): Call w32_free_menu_strings when
 -      finished with the menu.
 -
 -      * w32term.c: Sync 2005-10-24 xterm.c changes.
 -      (last_mouse_glyph_frame): New var.
 -      (note_mouse_movement): Say mouse moved if current frame differs
 -      from last_mouse_glyph_frame, and update last_mouse_glyph_frame.
 -      (w32_mouse_position): Set last_mouse_glyph_frame.
 -      Remove OLD_REDISPLAY_CODE block.
 -
 -2006-03-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macgui.h [USE_ATSUI && MAC_OSX]: Define USE_CG_TEXT_DRAWING to 1.
 -
 -      * macterm.h (struct mac_output) [USE_CG_DRAWING]: New member cg_context.
 -      (mac_prepare_for_quickdraw) [USE_CG_DRAWING]: Add prototype.
 -
 -      * mac.c (sys_select) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
 -
 -      * macfns.c (x_create_tip_frame): Apply 2006-03-11 change for xfns.c.
 -
 -      * macterm.c (mac_draw_rectangle, x_draw_glyph_string_foreground)
 -      (x_draw_composite_glyph_string_foreground)
 -      (x_draw_image_foreground): Undo previous changes.
 -      (x_draw_hollow_cursor): Likewise.  Subtract 1 from the last
 -      argument of mac_draw_rectangle.
 -      (CG_SET_FILL_COLOR, CG_SET_STROKE_COLOR): New macros.
 -      (mac_draw_string_common, mac_draw_image_string_cg): Use them.
 -      (FRAME_CG_CONTEXT) [USE_CG_DRAWING]: New macro.
 -      (mac_begin_cg_clip, mac_end_cg_clip, mac_prepare_for_quickdraw)
 -      [USE_CG_DRAWING]: New functions.
 -      (mac_draw_line, mac_erase_rectangle, mac_clear_window)
 -      (mac_fill_rectangle, mac_draw_rectangle, mac_draw_string_common)
 -      (mac_draw_image_string_cg) [USE_CG_DRAWING]: Add Quartz 2D drawing part.
 -      (mac_draw_bitmap, mac_invert_rectangle, mac_draw_string_common)
 -      (mac_copy_area, mac_scroll_area, x_scroll_bar_create)
 -      (x_scroll_bar_remove, XTset_vertical_scroll_bar, x_set_window_size)
 -      (XTread_socket) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
 -
 -2006-03-12  L\e$,1 q\e(Brentey K\e,Aa\e(Broly  <lorentey@elte.hu>
 -
 -      * xfns.c (x_icon): Disable redundant call to `x_wm_set_window_state'.
 -
 -2006-03-11  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (signal_user_input): New function.
 -      (post_character_message): Use it for keyboard input.
 -      (w32_msg_pump): Use it for mouse input.
 -
 -2006-03-11  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * window.c: Rename preserve_y to window_scroll_pixel_based_preserve_y.
 -      (window_scroll_pixel_based, syms_of_window): Adapt to above change.
 -
 -2006-03-11  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (w32_wnd_proc): Ignore middle and extra button events
 -      if a menu is already active (the menubar_active flag is on).
 -
 -2006-03-11  David Ponce  <david@dponce.com>
 -
 -      * xfns.c (x_create_tip_frame): Preserve received parms by copying them.
 -
 -2006-03-11  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32term.c: Add x_fully_uncatch_errors and x_catching_errors to
 -      the list of unused display error handling functions.
 -
 -      * eval.c (unwind_to_catch): Call x_fully_uncatch_errors only if
 -      HAVE_X_WINDOWS.
 -      (internal_condition_case, internal_condition_case_1)
 -      (internal_condition_case_2): Call x_catching_errors only if
 -      HAVE_X_WINDOWS.
 -
 -      * vm-limit.c [HAVE_GETRLIMIT]: Don't define unconditionally.
 -      Don't include sys/resource.h unless defined.
 -
 -2006-03-11  Richard Stallman  <rms@gnu.org>
 -
 -      * keymap.c (describe_map): Shorten string to indicate shadowed binding.
 -
 -      * vm-limit.c (get_lim_data, lim_data, data_space_start):
 -      Move from mem-limits.h.
 -      (enum warnlevel): New data type.
 -      (check_memory_limits): Rewrite the logic about warnings.
 -      Use standard `struct rlimit'.  Check return values for nonsense.
 -      (memory_warnings): Always clear lim_data.
 -
 -      * mem-limits.h (get_lim_data, lim_data, data_space_start):
 -      Move to vm-limit.c.
 -
 -      * xterm.c (x_fully_uncatch_errors, x_catching_errors): New functions.
 -
 -      * eval.c (unwind_to_catch): Call x_fully_uncatch_errors.
 -      (internal_condition_case_1, internal_condition_case_2):
 -      Abort if within unclosed x_catch_errors.
 -
 -2006-03-11  Romain Francoise  <romain@orebokech.com>
 -
 -      * process.c (Vprocess_adaptive_read_buffering): Doc fix.
 -
 -2006-03-11  Giorgos Keramidas  <keramida@ceid.upatras.gr>  (tiny change)
 -
 -      * lisp.h: Remove duplicate prototypes.  Make the prototype of
 -      getloadavg be conditioned on HAVE_GETLOADAVG being undefined.
 -
 -2006-03-11  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xterm.c (x_draw_hollow_cursor): Subtract 1 from the last
 -      argument of XDrawRectangle.
 -
 -      * xdisp.c (get_phys_cursor_geometry): Don't decrease height by 1.
 -
 -      * macterm.c (mac_draw_rectangle): Don't add 1 to width and height.
 -      (x_draw_glyph_string_foreground)
 -      (x_draw_composite_glyph_string_foreground)
 -      (x_draw_image_foreground): Don't subtract 1 from width and height
 -      arguments to mac_draw_rectangle.
 -      (x_draw_hollow_cursor): Add 1 to w->phys_cursor_width.
 -
 -2006-03-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c (USE_POSIX_MEMALIGN): Fix last change.
 -
 -2006-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c (USE_POSIX_MEMALIGN): New macro.
 -      (ABLOCKS_BASE, lisp_align_malloc, lisp_align_free): Use it.
 -
 -2006-03-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (DECODE_EMACS_MULE_COMPOSITION_CHAR): Fix decoding
 -      ASCII component of a composition.
 -
 -2006-03-08  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * window.c: Declare preserve_y as a static global variable.
 -      (window_scroll_pixel_based): No longer declare preserve_y;
 -      it is global now.
 -      (syms_of_window): Set preserve_y to -1.
 -
 -2006-03-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c [MAC_OS] (XPutPixel): Set alpha channel bits if pixmap
 -      depth is 32.
 -      [MAC_OS] (XGetPixel): Strip off alpha channel bits if pixmap
 -      depth is 32.
 -
 -2006-03-06  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (handle_invisible_prop): Don't update it->position with
 -      a buffer position if we're in a display string.
 -
 -2006-03-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.h (MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH)
 -      (MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH): New defines.
 -
 -      * macfns.c (x_default_scroll_bar_color_parameter)
 -      (x_set_scroll_bar_foreground, x_set_scroll_bar_background):
 -      Remove unnecessary prototypes.
 -      (x_set_scroll_bar_default_width):
 -      Use MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH.
 -      (mac_set_scroll_bar_width): New function.
 -      (mac_frame_parm_handlers): Set it as handler for scroll-bar-width.
 -
 -      * macterm.c (get_control_part_bounds): Fix type of return value.
 -      (x_set_toolkit_scroll_bar_thumb, x_scroll_bar_create)
 -      (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]: Don't show
 -      scroll bar if it is not tall enough to display scroll bar thumb.
 -      [USE_CARBON_EVENTS] (mac_convert_event_ref)
 -      (mac_handle_command_event, mac_handle_window_event)
 -      (mac_handle_mouse_event): Check error code of GetEventParameter.
 -      (convert_fn_keycode) [MAC_OSX]: Likewise.
 -
 -2006-03-05  Andreas Schwab  <schwab@suse.de>
 -
 -      * xselect.c (x_catch_errors_unwind): Fix missing return value.
 -
 -2006-03-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * frame.h (struct frame): New member n_tool_bar_rows.
 -
 -      * xdisp.c: Minimize the unpleasent visual impact of the requirement
 -      that non-toolkit tool-bars must occupy an integral number of screen
 -      lines, by distributing the rows evenly over the tool-bar screen area.
 -      (Vtool_bar_border): New variable.
 -      (syms_of_xdisp): DEFVAR_LISP it.
 -      (display_tool_bar_line): Add HEIGHT arg for desired row height.
 -      Make tool-bar row the desired height.  Use default face for border
 -      below tool-bar.
 -      (tool_bar_lines_needed): Add N_ROWS arg.  Use it to return number of
 -      actual tool-bar rows.
 -      (redisplay_tool_bar): Calculate f->n_tool_bar_rows initially.
 -      Adjust the height of the tool-bar rows to fill tool-bar screen area.
 -      (redisplay_tool_bar): Calculate f->n_tool_bar_rows when tool-bar area
 -      is resized.
 -
 -2006-03-01  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * search.c (Fregexp_quote): Do not precede a literal `]' with two
 -      backslashes to try to make clear that it has a literal meaning; it
 -      does not do that.  (It could close a character alternative
 -      containing a backslash.)
 -
 -2006-02-28  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xselect.c (x_catch_errors_unwind): New function.
 -      (x_reply_selection_request): Put x_uncatch_errors in an unwind.
 -      (Fx_get_atom_name): Call x_uncatch_errors earlier.
 -
 -      * window.c (Qscroll_up, Qscroll_down): New syms.
 -      (window_scroll_pixel_based): Make preserve_y static to avoid
 -      getting point stuck when scrolling 1 line.
 -
 -2006-02-26  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.h, xterm.c (x_uncatch_errors): Delete unneccessary argument.
 -
 -      * xterm.c (x_load_font, x_term_init, XTmouse_position)
 -      (handle_one_xevent, x_connection_closed, x_list_fonts):
 -      No arg for x_uncatch_errors.
 -
 -      * xselect.c (x_own_selection, x_decline_selection_request)
 -      (x_reply_selection_request, x_get_foreign_selection)
 -      (Fx_get_atom_name, Fx_send_client_event): Likewise.
 -
 -      * xfns.c (x_real_positions, x_set_mouse_color, Fx_focus_frame):
 -      Likewise.
 -
 -2006-02-26  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * lread.c: Declare Vload_file_rep_suffixes instead of
 -      deleted variable default_suffixes.
 -      (Fget_load_suffixes): New function.
 -      (Fload): Use Fget_load_suffixes and Vload_file_rep_suffixes.
 -      No longer use deleted variable default_suffixes.  Update docstring.
 -      (syms_of_lread): defsubr Sget_load_suffixes.
 -      Expand `load-suffixes' docstring.
 -      Delete default_suffixes and DEFVAR_LISP the new variable
 -      `load-file-rep-suffixes'.
 -
 -      * w32.c (check_windows_init_file): Use Fget_load_suffixes instead
 -      of Vload_suffixes.
 -
 -      * lisp.h: EXFUN Fget_load_suffixes.
 -      Extern Vload_file_rep_suffixes.
 -
 -      * eval.c (specpdl_ptr): Remove volatile qualifier for consistency
 -      with lisp.h.
 -
 -2006-02-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lisp.h (struct specbinding, specpdl_ptr): Remove the volatile
 -      qualifier which was trying to avoid the bug that was fixed by
 -      yesterday's changes to xterm.c.
 -
 -2006-02-25  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xterm.h (x_catch_errors) Return value changed to void.
 -      (x_uncatch_errors): Delete unused count argument.
 -
 -      * xterm.c (x_catch_errors): Don't use record_unwind_protect, since
 -      it can be called in a signal handler.
 -      (x_catch_errors_unwind): Function deleted.
 -      (x_uncatch_errors): Deallocate last x_error_message_stack struct.
 -      (x_check_errors): Call x_uncatch_errors before signalling error.
 -
 -      (x_load_font, x_term_init, XTmouse_position, handle_one_xevent)
 -      (x_connection_closed, x_list_fonts): Use new versions of
 -      x_catch_errors and x_uncatch_errors.
 -
 -      * xselect.c (x_own_selection, x_decline_selection_request)
 -      (x_reply_selection_request, x_get_foreign_selection)
 -      (Fx_get_atom_name, Fx_send_client_event): Likewise.
 -
 -      * xfns.c (x_real_positions, x_set_mouse_color, Fx_focus_frame):
 -      Likewise.
 -
 -      * eval.c (record_unwind_protect): Add an assertion.
 -
 -2006-02-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * process.c (Fmake_network_process): Init the process's mark.
 -
 -2006-02-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * buffer.c (modify_overlay): Force redisplay if we modify an
 -      overlay at the end of the buffer.
 -
 -2006-02-24  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_image_for_pixmap): If x_find_image_file returns
 -      nil the image file has been removed, in that case use the (cached)
 -      pixmap.
 -
 -2006-02-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): When a text is replaced
 -      partially, be sure to set point before the inserted characters.
 -
 -2006-02-23  Zhang Wei  <id.brep@gmail.com>  (tiny change)
 -
 -      * xfns.c (Fx_file_dialog): Return a decoded file name.
 -
 -2006-02-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * dispnew.c (update_text_area): Avoid needless redraw of rightmost
 -      glyph whose face is extended to the text area end.
 -
 -      * macterm.c (x_set_toolkit_scroll_bar_thumb): Don't set control
 -      values if control is not visible or values are not changed.
 -
 -2006-02-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (Fwindow_list): Check `window' before doing XWINDOW.
 -      The default `window' should not be "on a different frame".
 -
 -2006-02-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * indent.c (Fvertical_motion): Only try to move back if we can.
 -
 -2006-02-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macgui.h (struct _XGC) [!MAC_OSX || !USE_ATSUI]: New member
 -      n_clip_rects.
 -
 -      * macmenu.c (digest_single_submenu): Apply 2006-02-19 change for
 -      xmenu.c.
 -
 -      * macterm.c (GC_CLIP_REGION): Remove macro.
 -      (mac_begin_clip, mac_end_clip): Take arg GC instead of REGION.
 -      All uses changed.  Don't do clipping if n_clip_rects is zero.
 -      (mac_set_clip_rectangles): Use xassert instead of abort.
 -      Set n_clip_rects.  Don't make clip_region empty when number of
 -      clipping rectangles is zero.
 -      (mac_reset_clip_rectangles): Set n_clip_rects directly instead of
 -      calling mac_set_clip_rectangles.
 -      (x_set_toolkit_scroll_bar_thumb): Temporarily hide scroll bar to
 -      avoid multiple redraws.
 -
 -2006-02-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (draw_fringe_bitmap): Fix overlay-arrow display.
 -
 -2006-02-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (syms_of_fringe) <fringe-bitmaps>: Doc fix.
 -
 -2006-02-21  Zhang Wei  <brep@newsmth.org>
 -
 -      * xfns.c (Fx_file_dialog, Motif and GTK): DECODE_FILE before
 -      returning it.
 -
 -2006-02-21  Giorgos Keramidas  <keramida@ceid.upatras.gr>  (tiny change)
 -
 -      * fringe.c (horizontal_bar_bits): Rename from `horisontal_bar_bits'.
 -      (standard_bitmaps): Use it.
 -
 -2006-02-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_draw_string_common): Remove arg MODE.  New arg
 -      BG_WIDTH.  All uses changed.  Draw background if BG_WIDTH is not zero.
 -      (mac_draw_image_string, mac_draw_image_string_16): New arg BG_WIDTH.
 -      [USE_CG_TEXT_DRAWING] (mac_draw_image_string_cg): Rename from
 -      mac_draw_string_cg.  New arg BG_WIDTH.  All uses changed.
 -      Draw background if BG_WIDTH is not zero.  Use float constants as
 -      divisors instead of double.  Use alloca instead of xmalloc/xfree.
 -      (x_draw_glyph_string_background, x_draw_glyph_string_foreground)
 -      [!MAC_OS8 || USE_ATSUI]: Background may be drawn using
 -      mac_draw_image_string* functions.
 -      (XLoadQueryFont) [MAC_OS8 && USE_ATSUI]: Don't adjust heights of
 -      some fonts when srcCopy text transfer mode might be used.
 -      (mac_begin_clip, mac_end_clip): Check if region is empty.
 -      (mac_set_clip_rectangles): When resetting clip region, make it
 -      empty instead of disposing of it.
 -
 -2006-02-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * Makefile.in: Add fringe.elc to WINDOW_SUPPORT.
 -
 -      * buffer.h (struct buffer): New members fringe_indicator_alist and
 -      fringe_cursor_alist.
 -
 -      * buffer.c (init_buffer_once): Set dummy default values for
 -      fringe-indicator-alist and fringe-cursor-alist.  The proper
 -      default values are set by pre-loading fringe.el.
 -      (syms_of_buffer): defvar_per_buffer new fringe-indicator-alist and
 -      fringe-cursor-alist buffer-local variables and defvar_lisp_nopro
 -      corresponding default- variables.
 -
 -      * fringe.c (enum fringe_bitmap_type): Remove.  Change all uses
 -      to use `int'.
 -      (NO_FRINGE_BITMAP, UNDEF_FRINGE_BITMAP, MAX_STANDARD_FRINGE_BITMAPS):
 -      Define explicitly.
 -      (Qtruncation, Qcontinuation, Qempty_line, Qtop_bottom)
 -      (Qhollow_small): New variables.
 -      (syms_of_fringe): Intern and staticpro them.
 -      (question_mark_bits): Rename from unknown_bits.
 -      (left_curly_arrow_bits): Rename from continuation_bits.
 -      (right_curly_arrow_bits): Rename from continued_bits.
 -      (left_triangle_bits): Rename from ov_bits.
 -      (right_triangle_bits): Add.
 -      (filled_rectangle_bits): Rename from filled_box_cursor_bits.
 -      (hollow_rectangle_bits): Rename from hollow_box_cursor_bits.
 -      (filled_square_bits): Add.
 -      (vertical_bar_bits): Rename from bar_cursor_bits.
 -      (horizontal_bar_bits): Rename from hbar_cursor_bits.
 -      (empty_line_bits): Rename from zv_bits.
 -      (standard_bitmaps): Update to use new names.
 -      (draw_fringe_bitmap_1): Make static.
 -      (get_logical_cursor_bitmap, get_logical_fringe_bitmap): New functions
 -      to map from logical cursors and indicators to physical bitmaps.
 -      (draw_fringe_bitmap): Resolve fringe cursor and overlay-arrow
 -      bitmaps using symbol names instead of bitmap numbers.
 -      (update_window_fringes): Use logical indicator symbol names
 -      instead of bitmap numbers for logical.  Add bitmap cache.
 -      (LEFT_FRINGE, RIGHT_FRINGE): New helper macros.
 -
 -2006-02-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * regex.c: Revert 2006-02-19 change.
 -      (xmalloc, xrealloc): Define these when not linked to Emacs.
 -      Redefine malloc -> xmalloc, realloc -> xrealloc as in Emacs case.
 -
 -2006-02-19  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * regex.c (extend_range_table_work_area): Fix typo.
 -
 -2006-02-19  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xterm.c (x_catch_errors): Use xmalloc.
 -
 -      * regex.c (extend_range_table_work_area): Call xmalloc and xrealloc.
 -      (regex_compile): Likewise.
 -      (regcomp): Use xmalloc.
 -
 -      * gtkutil.c (malloc_widget_value): Use xmalloc.
 -
 -      * vm-limit.c [HAVE_GETRLIMIT]: Include sys/resource.h.
 -      (check_memory_limits) [HAVE_GETRLIMIT]: Use getrlimit.
 -
 -      * xmenu.c (digest_single_submenu): When pane_string is empty,
 -      do initialize save_wv.
 -
 -2006-02-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (update_menu_bar) [MAC_OS]: Don't set
 -      w->update_mode_line if arg F is not the selected frame.
 -
 -      * macmenu.c (popup_activated_flag, submenu_id)
 -      (next_menubar_widget_id): Remove variables.
 -      (initialize_frame_menubar): Remove function.
 -      (pop_down_menu, mac_menu_show): Simplify save value.
 -      (dispose_menus): New function.
 -      (pop_down_menu, fill_menubar): Use it.
 -      (fill_submenu): Remove function.  All uses changed to fill_menu.
 -      (add_menu_item): Remove args SUBMENU and FORCE_DISABLE.  New arg
 -      POS.  Don't call SetMenuItemHierarchicalID here.
 -      (fill_menu): Add arg SUBMENU_ID.  Return submenu_id that is to be
 -      used next.  Call SetMenuItemHierarchicalID here.
 -      (fill_menubar): Add arg DEEP_P.  All uses changed.  Clean up menu
 -      objects if needed.  Reuse existing menu bar titles if possible.
 -      (set_frame_menubar): Don't clean up menu objects here.
 -
 -2006-02-18  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * window.c (window_min_size_1): Ensure room for the scroll bar and
 -      fringes.
 -
 -2006-02-17  Romain Francoise  <romain@orebokech.com>
 -
 -      * puresize.h (BASE_PURESIZE): Increment to 1200000.
 -
 -2006-02-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c (Fmake_symbol): Comment-out left-over assert from before the
 -      addition of the BLOCK_INPUTs.
 -
 -2006-02-17  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * window.c (Fset_window_scroll_bars): Doc fix.
 -
 -2006-02-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (display_mode_element): Call display_string with correct
 -      PREC arg (which must be a number of characters, not column width).
 -
 -2006-02-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * frame.c (x_get_arg): Clear out PARAM in ALIST also on Mac.
 -
 -      * macfns.c (x_set_menu_bar_lines): Menu bar is always shown on Mac.
 -
 -      * macmenu.c (set_frame_menubar): Don't call DrawMenuBar.
 -
 -2006-02-14  Richard M. Stallman  <rms@gnu.org>
 -
 -      * frame.c (x_get_arg): Clear out all occurrences of PARAM in ALIST.
 -
 -      * m/ibms390x.h: New file.
 -
 -2006-02-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_tool_bar_detach_callback): Set show-arrow to the
 -      value of x-gtk-whole-detached-tool-bar.
 -      (xg_tool_bar_attach_callback): Set show-arrow to TRUE.
 -
 -      * xfns.c (syms_of_xfns): New variable: x-gtk-whole-detached-tool-bar.
 -
 -2006-02-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_x_to_emacs_modifiers): Make non-static.
 -
 -      * xterm.h: Declare x_x_to_emacs_modifiers.
 -
 -      * gtkutil.c (xg_tool_bar_button_cb): New function.
 -      (xg_tool_bar_callback): Call x_x_to_emacs_modifiers to
 -      store modifiers in event.
 -      (update_frame_tool_bar): Connect button-release-event to
 -      xg_tool_bar_button_cb.
 -
 -2006-02-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * .gdbinit (xwindow): Update the code to show the window box.
 -
 -2006-02-13  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (note_mouse_movement): Check for NULL FRAME_X_OUTPUT (frame).
 -
 -2006-02-12  Richard M. Stallman  <rms@gnu.org>
 -
 -      * cmds.c (internal_self_insert): Handle weird auto-fill-function.
 -
 -2006-02-11  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * keyboard.c (Venable_disabled_menus_and_buttons): New variable.
 -      (syms_of_keyboard): DEVFAR_LISP and initialize it.
 -      (parse_tool_bar_item, parse_menu_item): If that variable is
 -      non-nil, don't disable menu items and tool-bar buttons.
 -
 -2006-02-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * doc.c (Fsubstitute_command_keys): Doc fix.
 -
 -2006-02-10  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * data.c (Findirect_function): Rewrite docstring.
 -      Fix omission bug: Declare new arg NOERROR.
 -
 -2006-02-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (x_set_mouse_color): Don't call rif->define_frame_cursor
 -      if window_desc is not set yet.
 -      (Fx_create_frame): Remove variable x_frame_name.  Apply 2005-12-07
 -      and 2006-01-26 changes for xfns.c.  Call x_iconify_frame if frame
 -      parameter `visibility' is `icon'.
 -      (Fx_create_frame, x_create_tip_frame): Use "fontset-standard"
 -      instead of "fontset-mac".
 -      (Fx_focus_frame): New defun.
 -      (syms_of_macfns): Defsubr it.
 -
 -      * macterm.c (mac_define_frame_cursor): Don't change pointer shape
 -      for unfocused frame.
 -      (x_raise_frame): Call BringToFront instead of SelectWindow.
 -      (x_lower_frame): Use NULL instead of nil.
 -      (x_make_frame_visible): Don't call SelectWindow.
 -      (XTread_socket): Increment handling_signal at the start, decrement
 -      it at the end.
 -      [USE_CG_TEXT_DRAWING] (init_cg_text_anti_aliasing_threshold): Use
 -      CFPreferencesGetAppIntegerValue instead of Fmac_get_preference.
 -
 -2006-02-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * data.c (Findirect_function): Add NOERROR arg.  All callers changed
 -      to pass Qnil for NOERROR.
 -
 -      * keymap.c (current_minor_maps_error): Remove.
 -      (current_minor_maps): Pass Qt for NOERROR to Findirect_function
 -      instead of using internal_condition_case_1+current_minor_maps_error.
 -
 -2006-02-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): Must note mouse movement even for nil
 -      frames for GTK, in that case it is the tool bar.  This is so that
 -      highlighted text get reset properly.
 -
 -2006-02-09  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * alloc.c (Fmake_bool_vector, Fpurecopy): Doc fixes.
 -
 -2006-02-08  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * window.c (adjust_window_trailing_edge): Check that shrinking
 -      does not set a window to size zero or less.
 -
 -2006-02-08  Miles Bader  <miles@gnu.org>
 -
 -      * editfns.c (Fconstrain_to_field): Use Fget_char_property instead
 -      of Fget_text_property (other field functions work with overlays as
 -      well as text-properties).
 -
 -2006-02-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * dispextern.h (unibyte_display_via_language_environment): Extern it.
 -
 -      * xterm.h (unibyte_display_via_language_environment):
 -      * w32term.h (unibyte_display_via_language_environment):
 -      * macterm.h (unibyte_display_via_language_environment): Delete extern.
 -
 -2006-02-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * term.c (append_glyph): Refer to it->char_to_display instead of it->c.
 -      (produce_glyphs): Set the character to print in
 -      it->char_to_display.  Handle unibyte-display-via-language-environment.
 -      (produce_stretch_glyph): Set character to print in it->char_to_display.
 -
 -2006-02-06  Kenichi Handa  <handa@m17n.org>
 -
 -      * lread.c (openp): Initialize encoded_fn before GCPRO it.
 -
 -2006-02-05  Ken Raeburn  <raeburn@raeburn.org>
 -
 -      * editfns.c (Fconstrain_to_field): Fix int/Lisp_Object mixup.
 -
 -      * lisp.h (XPNTR) [!NO_UNION_TYPE && !HAVE_SHM && !DATA_SEG_BITS]:
 -      Cast bitfield value to EMACS_INT, to suppress gcc warning.
 -
 -      * xrdb.c (malloc, realloc, free) [emacs]: Undefine macros before
 -      defining.
 -
 -2006-02-03  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c: Cache last merged escape glyph face.
 -      (last_escape_glyph_frame, last_escape_glyph_face_id)
 -      (last_escape_glyph_merged_face_id): New variables.
 -      (get_next_display_element): Use/update them.
 -      (redisplay_internal): Reset them before redisplay.
 -
 -      * xdisp.c (set_iterator_to_next): Optimize 2004-12-13 fix.
 -      Only recheck faces after displaying ellipsis.
 -
 -2006-02-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_composition_emacs_mule): Fix handling of
 -      incorrect format data.
 -
 -2006-01-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (update_frame_tool_bar): Use new tool bar function
 -      gtk_toolbar_insert() so we can have tool bars of different sizes.
 -
 -2006-01-30  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * data.c (Flistp): Doc fix.
 -
 -2006-01-30  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * window.c (Fother_window, Fwindow_vscroll, Fset_window_vscroll):
 -      Fix typos in docstrings.
 -
 -2006-01-28  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * data.c (Fcar, Fcdr): Add links to Elisp manual to the docstrings.
 -
 -2006-01-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * alloc.c (make_interval, allocate_string)
 -      (allocate_string_data, make_float, Fcons, allocate_vectorlike)
 -      (Fmake_symbol, allocate_misc): Use BLOCK_INPUT when accessing
 -      global variables.
 -
 -2006-01-27  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * dired.c (DIRENTRY_NONEMPTY) [__CYGWIN__]: Don't use d_ino; use
 -      the MSDOS definition.
 -
 -2006-01-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * alloc.c (check_pure_size): Make overflow message an "error message".
 -
 -      * keymap.c (Fmap_keymap): Doc fix.
 -
 -      * xfns.c (Fx_create_frame): Put all specified parms into f->param_alist
 -      unless they were cleared out.
 -
 -      * frame.c (x_get_arg): "Clear out" the parm in ALIST if found there.
 -
 -2006-01-26  L\e$,1 q\e(Brentey K\e,Aa\e(Broly  <lorentey@elte.hu>
 -
 -      * editfns.c (Fconstrain_to_field): Fix behaviour on field boundaries.
 -      (find_field): Set before_field to after_field when pos is at BEGV.
 -      (Fline_beginning_position, Fline_end_position):
 -      Clarify confusing doc string.
 -
 -      * cmds.c (Fbeginning_of_line, Fend_of_line): Clarify confusing doc
 -      string.
 -
 -2006-01-26  Kenichi Handa  <handa@m17n.org>
 -
 -      * callproc.c (Fcall_process): GCPRO error_file.  Encode infile,
 -      current_dir, and error_file.  On reporting an error, decode them
 -      back.
 -
 -2006-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * regex.c (IMMEDIATE_QUIT_CHECK): Use it with SYNC_INPUT as well.
 -      (re_match_2_internal) <on_failure_jump, on_failure_jump_smart>:
 -      Don't check for quit, since any loop will go through fail or jump.
 -
 -2006-01-24  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * alloc.c (allocate_string_data): Update next_free immediately, to
 -      reduce risk of memory clobberage.
 -
 -2006-01-24  L\e$,1 q\e(Brentey K\e,Aa\e(Broly  <lorentey@elte.hu>
 -
 -      * xdisp.c (handle_invisible_prop): Set it->position to fix cursor
 -      display when point moves across an ellipsis.  If there are
 -      adjacent invisible texts, don't lose the second one's ellipsis.
 -      (x_produce_glyphs): Doc fix.
 -
 -2006-01-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xterm.c (x_catch_errors_unwind): Yet another int/Lisp_Object mixup.
 -
 -2006-01-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (handle_single_display_spec): Fix handling of space
 -      property on char from string: set *position rather than
 -      it->current.pos.
 -      (produce_stretch_glyph): Reduce width of stretch glyphs so they
 -      don't get wider than the window (unless truncate-lines is on).
 -
 -2006-01-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xterm.c: Avoid allocating Lisp data from a signal handler.
 -      (x_error_message): New var to replace x_error_message_string.
 -      (x_error_catcher, x_catch_errors, x_catch_errors_unwind)
 -      (x_check_errors, x_had_errors_p, x_clear_errors, x_error_handler)
 -      (syms_of_xterm): Use it instead of x_error_message_string.
 -
 -      * alloc.c (lisp_align_free): Add an assertion.
 -      (make_interval, allocate_string, make_float, Fcons, Fmake_symbol)
 -      (allocate_misc): If ENABLE_CHECKING is on, check we're not called from
 -      a signal handler.
 -
 -2006-01-21  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * dired.c (syms_of_dired) <completion-ignored-extensions>: Doc fix.
 -
 -2006-01-21  Romain Francoise  <romain@orebokech.com>
 -
 -      * xdisp.c (get_window_cursor_type): Fix last change.
 -      Update copyright year.
 -
 -2006-01-20  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * lread.c (Fload): Don't leak the file descriptor returned by
 -      openp if we are going to signal an error.
 -
 -      * w32.c (sys_close): If FD is outside [0..MAXDESC) limits, pass it
 -      directly to _close.
 -      (sys_dup): Protect against new_fd larger than fd_info[] can handle.
 -      (sys_read): If FD is outside [0..MAXDESC) limits, pass it directly
 -      to _read.
 -      (sys_write): If FD is outside [0..MAXDESC) limits, pass it
 -      directly to _write.
 -
 -      * .gdbinit: Don't dereference Vsystem_type's Lisp_Symbol pointer
 -      if it is NULL.
 -
 -2006-01-20  Kenichi Handa  <handa@m17n.org>
 -
 -      * puresize.h (BASE_PURESIZE): Increment to 1190000.
 -
 -2006-01-19  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xdisp.c (get_window_cursor_type): Use cursor type specified by
 -      the selected buffer for the echo area too.
 -
 -2006-01-19  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keymap.c (Fmap_keymap): Doc fix.
 -
 -      * s/irix6-5.h (GC_SETJMP_WORKS, GC_MARK_STACK): New definitions.
 -
 -      * keyboard.c (echo_char): Don't omit the space between first two
 -      echoed chars.
 -
 -      * minibuf.c (read_minibuf): Fix previous change.
 -
 -2006-01-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (handle_one_xevent): Handle keysyms 0x1000000..0x10000FF.
 -
 -2006-01-17  Richard M. Stallman  <rms@gnu.org>
 -
 -      * frame.c (x_frame_get_and_record_arg): Don't record Qunbound
 -      value in f->param_alist.
 -
 -2006-01-15  Andreas Schwab  <schwab@suse.de>
 -
 -      * search.c (Freplace_match): Use UPPERCASEP instead of !NOCASEP.
 -
 -2006-01-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * Makefile.in: Define new macro WINDOW_SUPPORT.
 -      (lisp): Use it.
 -      (SOME_MACHINE_LISP): Add conditionally loaded files.
 -
 -2006-01-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c [USE_ATSUI] (atsu_get_text_layout_with_text_ptr)
 -      [MAC_OS_X_VERSION_MAX_ALLOWED >= 1020]: Specify kATSLineUseQDRendering.
 -      (XLoadQueryFont) [USE_ATSUI]: Display diacritical marks in
 -      decomposed form.
 -
 -      * process.c [HAVE_INTTYPES_H]: Include inttypes.h.
 -      (ifflag_table): Fix typo (IFF_OACTIV -> IFF_OACTIVE).
 -      (Fnetwork_interface_info): Use HAVE_STRUCT_IFREQ_IFR_NETMASK
 -      macro.  Also try member ifr_addr when getting netmask.
 -
 -2006-01-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Fexpand_file_name): Remove redundant tests.
 -      Fix elimination of // so that it doesn't prevent elimination of an
 -      immediately following /. or /..
 -
 -2006-01-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_toggle_notify_cb): New function.
 -      (xg_toggle_visibility_cb): Move setting of x_gtk_show_hidden_files to
 -      xg_toggle_notify_cb.
 -      (xg_get_file_with_chooser): Add callback to xg_toggle_notify_cb when
 -      parameter value changes so the toggle button gets updated.
 -
 -2006-01-06  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * .gdbinit: Fix typo.
 -
 -2006-01-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * .gdbinit: Fix last change.
 -
 -2006-01-05  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Fmake_network_process): Use AF_INET instead of
 -      AF_UNSPEC when AF_INET6 is not defined.
 -
 -2006-01-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (mac_coerce_file_name_ptr, mac_coerce_file_name_desc):
 -      Don't check that the other type is known file-related one.
 -
 -      * macfns.c (Fx_server_version): Use gestaltSystemVersionMajor,
 -      gestaltSystemVersionMinor, and gestaltSystemVersionBugFix on Mac
 -      OS X 10.4 and later.
 -
 -2006-01-04  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_image_for_pixmap): If the image is from a file,
 -      let GTK do all image processing.  Importing Emacs own pixmaps to GTK
 -      looks bad for inactive tool bar items with some Gnome themes.
 -
 -2006-01-04  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * .gdbinit: Avoid a warning message when x_error_quitter is not
 -      compiled in.
 -
 -      * process.c [WINDOWSNT]: Undef AF_INET6 to disable IPv6 support
 -      for w32.
 -
 -2006-01-04  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c: Add IPv6 support.
 -      (Qipv4, Qipv6): New vars.
 -      (syms_of_process): Intern and staticpro them.
 -      (Fformat_network_address): Handle 9 or 8 element vector as IPv6 address
 -      with or without port number.  Handle 4 element vector as IPv4 address
 -      without port number.
 -      (conv_sockaddr_to_lisp, get_lisp_to_sockaddr_size)
 -      (conv_lisp_to_sockaddr): Handle IPv6 addresses.
 -      (Fmake_network_process): Use :family 'ipv4 and 'ipv6 to explicitly
 -      request that address family only.  :family nil or omitted means to
 -      determine address family from the specified :host and :service.
 -      (ifflag_table): Add missing OpenBSD IFF_ flags.
 -      (server_accept_connection): Handle IPv6 addresses.
 -      (init_process): Add (:family ipv4) and (:family ipv6) sub-features.
 -
 -      * .gdbinit: Undo last change.  Instead, look at Vsystem_type to
 -      determine which breakpoints to set.
 -
 -2006-01-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (describe_map_compare): Yet another int/Lisp_Object mixup.
 -
 -      * window.h (Fwindow_minibuffer_p): Declare (for use in minibuf.c).
 -
 -2006-01-03  Romain Francoise  <romain@orebokech.com>
 -
 -      * emacs.c (main): Update copyright year.
 -
 -2006-01-03  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * callproc.c (delete_temp_file): Bind file-name-handler-alist to
 -      nil for the call to internal_delete_file.
 -
 -2006-01-01  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * callproc.c (Fcall_process_region): Bind file-name-handler-alist
 -      to nil for the call to Fwrite_region.
 -
 -2005-12-31  Richard M. Stallman  <rms@gnu.org>
 -
 -      * minibuf.c (read_minibuf): Clear out all other minibuffer windows.
 -
 -2005-12-31  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * emacs.c (gdb_pvec_type): A dummy variable for GDB's sake.
 -
 -2005-12-30  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * textprop.c (set_text_properties): Reword description of return value.
 -      Return Qnil if caller wants to remove all text properties from a
 -      string and the string already has no intervals.
 -
 -2005-12-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * term.c (visible_cursor): New boolean var.
 -      (set_terminal_modes, tty_show_cursor): Use "vs" or "ve" depending on
 -      visible_cursor.
 -      (syms_of_term): Export the new var as "visible-cursor".
 -
 -2005-12-30  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * .gdbinit: Tell users not to worry about GDB warnings that some
 -      functions do not exist in the binary.
 -
 -2005-12-30  Andreas Schwab  <schwab@suse.de>
 -
 -      * process.c (Fnetwork_interface_info): Correctly terminate the
 -      loop over ifflag_table.
 -
 -2005-12-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * lread.c (readevalloop): Test for reading a whole buffer
 -      before actually reading anything.  Handle all cases, including
 -      START = END = nil and an already-narrowed buffer.
 -      Convert END to a marker if it is a number.
 -
 -      * keymap.c (describe_map): Put sparse map elements into an array,
 -      sort them, then output a sequence of identical bindings on one line.
 -      (struct describe_map_elt): New data type.
 -      (describe_map_compare): New function.
 -
 -2005-12-28  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_file_with_chooser): Change message shown
 -      in file chooser.
 -
 -2005-12-27  Richard M. Stallman  <rms@gnu.org>
 -
 -      * lread.c (readevalloop): Set PT and ZV in the proper buffer,
 -      not the current one.
 -
 -      * minibuf.c (Fminibuffer_message): Doc fix.
 -      (read_minibuf): Set current_buffer->enable_multibyte_characters sooner.
 -
 -      * eval.c (do_autoload): Ignore elements of Vautoload_queue
 -      where car is not symbol.
 -
 -2005-12-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (lisp_string_width): Check multibyteness of STRING.
 -
 -2005-12-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (x_show_hidden_files): New variable.
 -      (syms_of_xfns): Defvar it.
 -
 -      * gtkutil.c (xg_toggle_visibility_cb): New function.
 -      (xg_get_file_with_chooser): Add toggle hidden files and a message
 -      to the new file chooser dialog.  Show hidden files if
 -      x_show_hidden_files is non-zero.
 -
 -2005-12-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.h: Undo previous change.
 -
 -      * Makefile.in (undo.o): Undo previous change.
 -
 -      * undo.c: Undo previous change.
 -
 -2005-12-26  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * keyboard.h: extern last_point_position_window.
 -
 -      * undo.c: include keyboard.h.
 -
 -      * Makefile.in (undo.o): Depend on keyboard.h.
 -
 -2005-12-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * commands.h (last_point_position_window): Declare.
 -
 -      * undo.c: Depend on window.h.
 -      (record_point): Save old point from the correct window.
 -
 -      * keyboard.c (last_point_position_window): New variable.
 -      (command_loop_1): Set last_point_position_window.
 -      (syms_of_keyboard): Init it.
 -
 -      * Makefile.in (undo.o): Depend on window.h.
 -
 -2005-12-25  Richard M. Stallman  <rms@gnu.org>
 -
 -      * eval.c (un_autoload): Expect (0 . OFEATURES) in Vautoload_queue
 -      to undo a `provide'.
 -
 -      * fns.c (Fprovide): Store (0 . OFEATURES) in Vautoload_queue.
 -
 -2005-12-25  Giorgos Keramidas  <keramida@ceid.upatras.gr>
 -
 -      * m/amdx86-64.h [__FreeBSD__] (START_FILES, LIB_STANDARD):
 -      define for FreeBSD on this platform.
 -
 -2005-12-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.h (TYPE_FILE_NAME): New define.
 -      (posix_pathname_to_fsspec, fsspec_to_posix_pathname): Remove externs.
 -
 -      * mac.c (posix_pathname_to_fsspec, fsspec_to_posix_pathname):
 -      Add prototypes.  Make static.
 -      (mac_aedesc_to_lisp): Initialize err to noErr.
 -      (mac_coerce_file_name_ptr, mac_coerce_file_name_desc)
 -      (init_coercion_handler): New functions.
 -      (Fmac_coerce_ae_data): Use coercion of Apple event data for
 -      translation from/to file names.
 -
 -      * macterm.c: Don't include sys/param.h.
 -      (init_coercion_handler): Add extern.
 -      [MAC_OS8] (main): Call init_coercion_handler.
 -      (mac_initialize) [MAC_OSX]: Likewise.
 -      [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Use coercion of
 -      Apple event data for translation from/to file names.
 -
 -      * macfns.c [TARGET_API_MAC_CARBON] (Fx_file_dialog): Likewise.
 -
 -      * image.c [MAC_OS] (find_image_fsspec): Likewise.
 -
 -2005-12-23  Martin Rudalics  <rudalics@gmx.at>
 -
 -      * insdel.c (insert, insert_and_inherit, insert_before_markers)
 -      (insert_before_markers_and_inherit): Make sure FROM is correct
 -      when `after-change-functions' are called.
 -
 -2005-12-23  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_uses_old_gtk_dialog): New function.
 -
 -      * gtkutil.c (xg_uses_old_file_dialog): New function.
 -      (xg_get_file_name): Use xg_uses_old_file_dialog.
 -
 -      * gtkutil.h: Declare xg_uses_old_file_dialog.
 -
 -2005-12-22  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xmenu.c (xmenu_show): Call inhibit_garbage_collection.
 -
 -2005-12-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (Fmac_coerce_ae_data) [MAC_OSX]: Fix memory leak.
 -
 -      * macgui.h (XCharStruct): Remove member `valid_p'.
 -      (STORE_XCHARSTRUCT): Don't set member `valid_p'.
 -      (XCharStructRow): New typedef.
 -      (XCHARSTRUCTROW_CHAR_VALID_P, XCHARSTRUCTROW_SET_CHAR_VALID):
 -      New macros.
 -      (struct MacFontStruct): Add member `bounds'.  Remove member
 -      `per_char'.  All uses for QuichDraw Text fonts are changed to
 -      `bounds.per_char'.  ATSUI font bounds are represented as an array
 -      `bounds.rows' of XCharStructRow's, each of which consists of a
 -      bitmap of valid entries and an array of char bounds.
 -
 -      * macterm.c (mac_per_char_metric): Add prototype.
 -      (x_per_char_metric) [USE_CG_TEXT_DRAWING]: Remove prototype.
 -      (mac_query_char_extents): New function.
 -      (x_per_char_metric): Use it.
 -      (XLoadQueryFont): Likewise.  Consolidate min/max_bounds calculations.
 -      [USE_CG_TEXT_DRAWING] (mac_draw_string_cg):
 -      Use mac_per_char_metric instead of x_per_char_metric.
 -      (mac_text_extents_16): New function.
 -      (mac_compute_glyph_string_overhangs): Use it.
 -      (mac_unload_font): Free member `bounds' in struct MacFontStruct.
 -
 -2005-12-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * minibuf.c (Fdisplay_completion_list): Use XCAR/XCDR.
 -      (Fminibuffer_completion_help): Remove duplicates before display.
 -
 -2005-12-21  L\e$,1 q\e(Brentey K\e,Aa\e(Broly  <lorentey@elte.hu>
 -
 -      * print.c (print_preprocess): Don't lose print_depth levels while
 -      iterating.
 -
 -2005-12-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (Qmac_apple_event): Add extern.
 -      (set_frame_menubar, mac_menu_show keymp_panes)
 -      (single_keymap_panes, list_of_panes, list_of_item)
 -      (single_menu_item): Add argument types to prototypes.
 -      (mac_dialog_show) [HAVE_DIALOGS]: Likewise.
 -      (struct skp): New struct (from xmenu.c).
 -      (single_keymap_panes, single_menu_item, list_of_panes)
 -      (list_of_item): Sync with xmenu.c.
 -      (Fx_popup_menu, Fx_popup_dialog): Likewise.  Don't get window from
 -      POSITION if it is mac-apple-event event.
 -      (menubar_selection_callback): Don't use menu_command_in_progress.
 -      (set_frame_menubar): First parse all submenus, then make
 -      widget_value trees from them.  Don't allocate any widget_value
 -      objects until we are done with the parsing.
 -      (parse_single_submenu, digest_single_submenu): New functions.
 -      (single_submenu): Function deleted, replaced by those two.
 -      (install_menu_quit_handler) [HAVE_CANCELMENUTRACKING]: Don't create
 -      or dispose of EventHandlerUPP.  Install hander to all submenus.
 -      (mac_menu_show) [!HAVE_MULTILINGUAL_MENU]: Use ENCODE_MENU_STRING
 -      instead of ENCODE_SYSTEM.
 -      (free_frame_menubar, fill_submenu, fill_menu): Don't use NULL for
 -      integer values.
 -      [HAVE_DIALOGS] (mac_dialog_show): Sync with xdialog_show (in xmenu.c).
 -      (add_menu_item) [TARGET_API_MAC_CARBON]: Use CFString functions to
 -      format menu item string.  Don't use NULL for integer value.
 -
 -      * macterm.h (struct mac_output): Remove unused member
 -      menu_command_in_progress.
 -
 -2005-12-20  Juri Linkov  <juri@jurta.org>
 -
 -      * xmenu.c (Fx_popup_menu): Set Vmenu_updating_frame to f if
 -      position is non-nil, else set it to nil.
 -
 -      * macmenu.c (Fx_popup_menu): Add `else' to set
 -      Vmenu_updating_frame to nil only if position is nil.
 -
 -      * w32menu.c (Fx_popup_menu): Add `else' to set
 -      Vmenu_updating_frame to nil only if position is nil.
 -
 -2005-12-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.c (make_lispy_event): Drag-and-drop items are now
 -      stored in member `args' of struct input_event.
 -
 -      * termhooks.h (struct input_event): Fix comment for DRAG_N_DROP_EVENT.
 -
 -      * xselect.c (x_handle_dnd_message): Drag-and-drop items are now
 -      stored in member `args' of struct input_event.
 -
 -      * w32term.c (construct_drag_n_drop): Likewise.
 -
 -      * macterm.c (mac_do_receive_drag): Likewise.
 -      (x_use_underline_position_properties): Undo 2005-07-13 change.
 -      (syms_of_macterm) <x-use-underline-position-properties>: Likewise.
 -      (mac_use_core_graphics, mac_wheel_button_is_mouse_2)
 -      (mac_pass_command_to_system, mac_pass_control_to_system):
 -      New boolean variables renamed from Lisp_Object ones
 -      Vmac_use_core_graphics, Vmac_wheel_button_is_mouse_2,
 -      Vmac_pass_command_to_system, and Vmac_pass_control_to_system.
 -      All uses changed.
 -      (syms_of_macterm): DEFVAR_BOOL them.  Remove previous DEFVAR_LISPs.
 -      Make them user options.
 -      (mac_handle_command_event, mac_store_services_event):
 -      Call create_apple_event_from_event_ref without 5th argument.
 -      (backtranslate_modified_keycode): Mask off modifier keys that are
 -      mapped to some Emacs modifiers before passing it to KeyTranslate.
 -      (syms_of_macterm): Make variables `mac-emulate-three-button-mouse',
 -      `mac-wheel-button-is-mouse-2', and `mac-*-modifier' user options.
 -      Fix docstrings of `mac-*-modifier'.
 -
 -      * mac.c (create_apple_event_from_event_ref): Remove arg `types'.
 -      (do_applescript): Change argument types to Lisp_Object.
 -      All uses changed.
 -
 -      * macterm.h (create_apple_event_from_event_ref): Remove 5th
 -      argument from extern.
 -
 -2005-12-18  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * xfns.c (Fx_backspace_delete_keys_p): In case we cannot determine
 -      the answer, return `lambda', not nil.
 -
 -2005-12-17  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in (bootstrap-temacs): Warn that parts of commands
 -      enclosed in $(ARGQUOTE)s should not be split between two lines, as
 -      that will break with GNU Make >3.80, when sh.exe is used and
 -      arg quoting is with '..'.
 -
 -2005-12-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * print.c (print_preprocess): Just signal an error if print_depth
 -      is exceeded.
 -
 -2005-12-17  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * .gdbinit: Set a breakpoint on w32_abort.
 -
 -2005-12-16  Juri Linkov  <juri@jurta.org>
 -
 -      * minibuf.c (Fminibuffer_completion_contents): New Lisp function
 -      created from minibuffer_completion_contents.
 -      (minibuffer_completion_contents): Remove.
 -      (do_completion, Fminibuffer_complete_word)
 -      (Fminibuffer_completion_help): Replace minibuffer_completion_contents
 -      with Fminibuffer_completion_contents.
 -      (syms_of_minibuf): Add Sminibuffer_completion_contents.
 -      (Fdisplay_completion_list): Doc fix.
 -      (display_completion_list_1): Use `nil' for second arg of
 -      `Fdisplay_completion_list'.
 -
 -2005-12-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (compute_tip_xy): Handle negative dx and dy.
 -
 -      * w32fns.c (compute_tip_xy): Ditto.
 -
 -      * macfns.c (compute_tip_xy): Ditto.
 -
 -2005-12-14  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * print.c (print_preprocess): Go to a deeper print_depth to avoid
 -      print_object loop.
 -
 -2005-12-14  Kyotaro HORIGUCHI  <horiguti@meadowy.org>  (tiny change)
 -
 -      * coding.c (code_convert_region_unwind): GCPRO arg.
 -
 -2005-12-12  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (compute_tip_xy): Calculate root_y the same way as root_x,
 -      i.e. dy is offset from top of frame instead of bottom.
 -
 -      * macfns.c (compute_tip_xy): Ditto.
 -
 -      * w32fns.c (compute_tip_xy): Ditto.
 -
 -      * gtkutil.c (SSDATA): New macro to remove compiler warnings.
 -      (xg_get_image_for_pixmap, xg_create_frame_widgets)
 -      (xg_get_file_with_chooser): Use SSDATA instead of SDATA.
 -
 -      * xmenu.c (menubar_selection_callback): Do nothing if the callback
 -      is for an unselected radio menu item.
 -
 -2005-12-11  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (syms_of_xdisp) <blink-cursor-alist>: Doc fix.
 -
 -      * lisp.h [! NO_UNION_TYPE] (EQ): Use == so args are computed just once.
 -
 -      * keymap.c (Fset_keymap_parent, store_in_keymap): Use CHECK_IMPURE.
 -      (Flookup_key): Doc fix.
 -      (syms_of_keymap) <function-key-map>: Doc fix.
 -
 -      * fns.c (Frequire): Treat evaluating from a source file
 -      like loading the file.
 -
 -      * floatfns.c (Flog): Doc fix.
 -
 -      * fileio.c (Finsert_file_contents): Set Vdeactivate_mark
 -      when we change the buffer.
 -
 -2005-12-11  Juri Linkov  <juri@jurta.org>
 -
 -      * minibuf.c (display_completion_list_1):
 -      Call `minibuffer_completion_contents' instead of using `nil' as
 -      second arg of `Fdisplay_completion_list'.
 -      (keys_of_minibuf): Unbind SPC in
 -      Vminibuffer_local_filename_completion_map (see also related
 -      change on 2005-12-06).
 -
 -2005-12-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * emacs.c (main) [MAC_OS8]: Undo previous change.
 -
 -      * macselect.c (syms_of_macselect) <mac-apple-event-map>:
 -      Initialize to nil.  Keymap is now created in lisp/term/mac-win.el.
 -
 -2005-12-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * Makefile.in (macselect.o): Depend on keymap.h.
 -
 -      * emacs.c (main) [MAC_OS8]: Call syms_of_keymap before
 -      syms_of_macselect.
 -
 -      * image.c (init_image) [MAC_OS]: Don't call EnterMovies.
 -      [!HAVE_GIF && MAC_OS] (gif_load): Call EnterMovies.
 -
 -      * keyboard.c (Qmac_apple_event) [MAC_OS]: New variable.
 -      (syms_of_keyboard) [MAC_OS]: Initialize it.
 -      (make_lispy_event) [MAC_OS]: Build lisp event for MAC_APPLE_EVENT.
 -
 -      * mac.c (Qundecoded_file_name): New variable.
 -      (syms_of_mac): Initialize it.
 -      (mac_aelist_to_lisp, mac_aedesc_to_lisp): New functions.
 -      [TARGET_API_MAC_CARBON] (create_apple_event_from_event_ref): New fun.
 -      (Fmac_coerce_ae_data): New defun.
 -      (syms_of_mac): Defsubr it.
 -
 -      * macselect.c: Include keymap.h.
 -      (mac_ready_for_apple_events): New variable.
 -      (Vmac_apple_event_map, Qmac_apple_event_class)
 -      (Qmac_apple_event_id): New variables.
 -      (syms_of_macselect): Initialize them.
 -      (Qundefined, mac_store_apple_event): Add externs.
 -      (struct apple_event_binding): New struct.
 -      (find_event_binding_fun, find_event_binding)
 -      (mac_find_apple_event_spec, defer_apple_events)
 -      (mac_handle_apple_event, init_apple_event_handler)
 -      (copy_scrap_flavor_data): New functions.
 -      (Fmac_process_deferred_apple_events): New defun.
 -      (syms_of_macselect): Defsubr it.
 -      (mac_store_services_event): Fix extern.
 -      (mac_handle_service_event): Don't allocate Lisp objects during
 -      asynchronous input processing.  Use mac_store_services_event
 -      instead of mac_store_application_menu_event.
 -
 -      * macterm.c (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
 -      (Qpreferences): Remove variables.
 -      (syms_of_macterm) : Don't initialize them.
 -      (Qhicommand) [USE_CARBON_EVENTS]: New variable.
 -      (syms_of_macterm) [USE_CARBON_EVENTS]: Initialize it.
 -      (init_required_apple_events, do_ae_open_application)
 -      (do_ae_print_documents, do_ae_open_documents)
 -      (do_ae_quit_application): Remove functions and prototypes.
 -      (mac_ready_for_apple_events, Qundefined, init_apple_event_handler)
 -      (mac_find_apple_event_spec): Add externs.
 -      (mac_store_application_menu_event): Remove function.
 -      (mac_store_apple_event, mac_make_lispy_event_code): New functions.
 -      (mac_handle_command_event): Create Apple event from Carbon event.
 -      Use mac_store_apple_event instead of mac_store_application_menu_event.
 -      [MAC_OSX] (mac_store_services_event): Likewise.
 -      (struct SelectionRange, SelectionRange): Remove struct and typedef.
 -      [MAC_OS8] (main): Call init_apple_event_handler instead of
 -      init_required_apple_events.
 -      (mac_initialize) [MAC_OSX]: Likewise.
 -      [!USE_CARBON_EVENTS] (mac_wait_next_event):
 -      Use mac_ready_for_apple_events instead of Qmac_ready_for_drag_n_drop.
 -
 -      * macterm.h (mac_make_lispy_event_code, mac_aedesc_to_lisp):
 -      Add externs.
 -      (create_apple_event_from_event_ref) [TARGET_API_MAC_CARBON]: Likewise.
 -      (Fmac_get_preference): Add EXFUN.
 -
 -      * termhooks.h (enum event_kind) [MAC_OS]: Add new MAC_APPLE_EVENT
 -      event.
 -
 -2005-12-09  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xfns.c (Fx_create_frame): Reinstate previous change.
 -
 -2005-12-09  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (w32_abort) [__GNUC__]: Add instructions for attaching
 -      GDB to the abort dialog.
 -
 -2005-12-09  Kyotaro HORIGUCHI  <horiguti@meadowy.org>  (tiny change)
 -
 -      * indent.c (Fvertical_motion): Force move if starting on
 -      stretch glyph.
 -
 -2005-12-08  Richard M. Stallman  <rms@gnu.org>
 -
 -      * lread.c (read_escape) <\s>: Don't treat strings specially.
 -
 -      * xfns.c (Fx_create_frame): Comment out previous change.
 -
 -2005-12-07  L\e$,1 q\e(Brentey K\e,Aa\e(Broly  <lorentey@elte.hu>
 -
 -      * xfns.c (Fx_create_frame): Initialize Vdefault_minibuffer_frame,
 -      when needed.
 -
 -2005-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * minibuf.c (keys_of_minibuf): Just unbind SPC in
 -      Vminibuffer_local_filename_completion_map rather than forcing it
 -      explicitly to the same binding as the global map.
 -
 -2005-12-06  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * buffer.c (Fkill_buffer): Avoid dangerous side effects in NILP args.
 -      * bytecode.c (Fbyte_code): Likewise.
 -      * fileio.c (internal_delete_file, Fread_file_name_internal): Likewise.
 -      * minibuf.c (Fminibuffer_complete_and_exit): Likewise.
 -      * undo.c (truncate_undo_list): Likewise.
 -
 -2005-12-05  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (enlarge_window): Eliminate arg preserve_before.
 -      Assume it is 0.  All callers changed.
 -      (Fenlarge_window, Fshrink_window): Likewise.
 -
 -2005-12-02  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (compute_tip_xy): Put tip above pointer if it doesn't
 -      fit below.
 -
 -2005-12-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h: Add prototype for xg_set_icon_from_xpm_data.
 -
 -      * xfns.c (x_real_positions): int ign => unsigned int.
 -      (xg_set_icon_from_xpm_data): Remove unused variable err.
 -      (x_set_name_internal, Fx_create_frame, xg_set_icon): Add cast
 -      to remove compiler warning.
 -      (compute_tip_xy): Put tip above pointer if it doesn't fit below.
 -
 -2005-12-02  David Reitter  <david.reitter@gmail.com>
 -
 -      * minibuf.c (Fcompleting_read): If Vminibuffer_completing_file_name is
 -      non-nil, use the new keymaps Vminibuffer_local_filename_completion_map
 -      and Vminibuffer_local_must_match_filename_map keymaps.
 -      (keys_of_minibuf): Bind SPC in the new file-name completion keymaps.
 -
 -      * keymap.c (Vminibuffer_local_filename_completion_map)
 -      (Vminibuffer_local_must_match_filename_map): New variables.
 -      (syms_of_keymap): DEFVAR_LISP them, initialize them, and set their
 -      parent to be Vminibuffer_local_completion_map and
 -      Vminibuffer_local_must_match_map, respectively.
 -
 -      * commands.h (Vminibuffer_local_filename_completion_map)
 -      (Vminibuffer_local_must_match_filename_map): Declare the new keymaps.
 -
 -2005-12-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (Fset_window_configuration): Don't accidentally copy the
 -      window-point of one window to another.
 -
 -2005-11-30  L\e$,1 q\e(Brentey K\e,Aa\e(Broly  <lorentey@elte.hu>
 -
 -      * buffer.c (Fpop_to_buffer): Remove superfluous call to record_buffer.
 -
 -2005-11-30  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c: Include fcntl.h.  Define O_WRONLY if not defined.
 -      (valid_lisp_object_p) [!GC_MARK_STACK]: Validate pointer by
 -      passing it to `emacs_write'.
 -
 -2005-11-29  Ari Roponen  <arjuropo@cc.jyu.fi>  (tiny change)
 -
 -      * atimer.c (stop_other_atimers): Fix loop to correctly compute `prev'.
 -
 -2005-11-27  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (adjust_window_trailing_edge): New function.
 -      (Fadjust_window_trailing_edge): New function.
 -      (syms_of_window): Defsubr it.
 -      (window_deletion_count): New variable.
 -      (delete_window): Update window_deletion_count.
 -
 -2005-11-26  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * minibuf.c (syms_of_minibuf): Mention the extension of
 -      `completion-auto-help's meaning by complete.el.
 -
 -2005-11-26  Henrik Enberg  <henrik.enberg@telia.com>
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
 -      Handle :inherit property as a lisp expression.
 -
 -2005-11-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (Qcontrol): Rename from Qctrl.  All uses changed.
 -      (syms_of_macterm): Staticpro Qcontrol, Qmeta, Qalt, Qhyper,
 -      Qsuper, and Qmodifier_value.
 -      (Vmac_control_modifier, Vmac_option_modifier)
 -      (Vmac_command_modifier, Vmac_function_modifier)
 -      (Vmac_emulate_three_button_mouse, Vmac_wheel_button_is_mouse_2)
 -      (Vmac_pass_command_to_system, Vmac_pass_control_to_system)
 -      (Vmac_charset_info_alist): Doc fixes.
 -
 -2005-11-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * emacs.c (main) [MAC_OSX]: Change working directory to home
 -      directory if `-psn_*' option is specified.
 -
 -      * mac.c (DECODE_UTF_8): Remove macro.
 -      [TARGET_API_MAC_CARBON] (cfstring_to_lisp_nodecode): New function
 -      created from cfstring_to_lisp.
 -      [TARGET_API_MAC_CARBON] (cfstring_to_lisp): Use it.
 -      (xrm_get_preference_database) [TARGET_API_MAC_CARBON]: Likewise.
 -
 -      * macterm.h (cfstring_to_lisp_nodecode) [TARGET_API_MAC_CARBON]:
 -      Add prototype.
 -
 -2005-11-21  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * keymap.c (shadow_lookup): Use make_number to pass a number to
 -      Fsubstring.
 -
 -2005-11-21  Juri Linkov  <juri@jurta.org>
 -
 -      * puresize.h (BASE_PURESIZE): Increment to 1180000.
 -
 -2005-11-20  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute):
 -      Use :ignore-defface for new frame defaults when `unspecified' is
 -      supplied.
 -      (Finternal_get_lisp_face_attribute): Hide :ignore-defface.
 -      (merge_face_vectors): Don't do :ignore-defface overwriting here.
 -      (Finternal_merge_in_global_face): Do it here.
 -
 -2005-11-20  Juri Linkov  <juri@jurta.org>
 -
 -      * charset.c (invalid_character): Use Lisp-readable syntax
 -      for octal and hex.  Reorder decimal, octal and hex values.
 -
 -2005-11-20  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * lisp.h: Use typedef when Lisp_Object is EMACS_INT so that
 -      this type is recognised when debugging.
 -
 -2005-11-19  Andreas Schwab  <schwab@suse.de>
 -
 -      * .gdbinit (nextcons, xcdr, xfloat): Update for changes in
 -      Lisp_Cons and Lisp_Float.
 -
 -2005-11-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c [USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold):
 -      New variable.
 -      [USE_CG_TEXT_DRAWING] (init_cg_text_anti_aliasing_threshold): New fun.
 -      (init_font_name_table) [USE_ATSUI && USE_CG_TEXT_DRAWING]: Use it.
 -      [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): Don't do antialiasing if
 -      font size is smaller than or equal to cg_text_anti_aliasing_threshold.
 -
 -2005-11-17  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (x_create_bitmap_from_xpm_data): Free attributes on fail.
 -
 -      * xfaces.c (Qignore_defface): New variable.
 -      (syms_of_xfaces): Provide `:ignore-defface'.
 -      (IGNORE_DEFFACE_P): New macro.
 -      (check_lface_attrs, lface_fully_specified_p)
 -      (Finternal_set_lisp_face_attribute)
 -      (Fface_attribute_relative_p, Fmerge_face_attribute):
 -      Handle Qignore_defface as a possible value.
 -      (merge_face_vectors): The merged face is `unspecified' if the
 -      mergee specifies `:ignore-defface'.
 -
 -2005-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (readevalloop): Add missing GCPROs.
 -
 -2005-11-16  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * xfns.c (xg_set_icon_from_xpm_data): New function.
 -
 -      * gnu.h (gnu_xpm_bits): Rename from gnu_bits.
 -      (gnu_xbm_bits): Rename from gnu_bits (xbm version).
 -
 -      * xterm.c (x_bitmap_icon): Use the xpm if available.
 -
 -      * image.c (x_create_bitmap_from_xpm_data): New function.
 -      (x_create_bitmap_from_xpm_data): Initialize XpmAttributes.
 -
 -2005-11-15  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * Makefile.in (lisp, shortlisp): Add rfn-eshadow.
 -
 -2005-11-16  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * .gdbinit: Make SIGTSTP work like SIGINT normally does.
 -
 -2005-11-15  Andreas Schwab  <schwab@suse.de>
 -
 -      * lisp.h (struct Lisp_Cons): Make cdr a union.
 -      (XCDR_AS_LVALUE): Adjust.
 -      (struct Lisp_Float): Make data a union.
 -      (XFLOAT_DATA): Adjust.
 -
 -      * alloc.c (free_float): Make free list chaining aliasing-safe.
 -      (make_float): Likewise.
 -      (free_cons): Likewise.
 -      (Fcons): Likewise.
 -      (check_cons_list): Likewise.
 -      (Fmake_symbol): Likewise.
 -      (allocate_misc): Likewise.
 -      (free_misc): Likewise.
 -      (gc_sweep): Likewise.
 -
 -2005-11-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (HASHKEY_QUERY_CACHE): New define.
 -      (xrm_create_database, xrm_q_put_resource): Empty query cache.
 -      (xrm_get_resource): Use query cache.
 -
 -      * image.c (init_image) [MAC_OS]: Don't call EnterMovies if
 -      inhibit_window_system is set.
 -
 -2005-11-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macgui.h (USE_CG_TEXT_DRAWING): New define.
 -      (struct MacFontStruct) [USE_CG_TEXT_DRAWING]: New members cg_font
 -      and cg_glyphs.
 -
 -      * macterm.c [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
 -      (x_draw_glyph_string_foreground) [USE_CG_TEXT_DRAWING]: Use it.
 -      (XLoadQueryFont) [USE_CG_TEXT_DRAWING]: Set members cg_font and
 -      cg_glyphs in struct MacFontStruct if synthesized bold or italic is
 -      not used and font substitution never occurs for ASCII and Latin-1
 -      characters.
 -      (XLoadQueryFont): Maximum and minimum metrics are now those among
 -      ASCII characters.
 -      (XLoadQueryFont) [!MAC_OS8 || USE_ATSUI]: Apply WebKit-style
 -      height adjustments for Courier, Helvetica, and Times.
 -
 -      * s/darwin.h (LIBS_CARBON) [!HAVE_CARBON]: Remove `-framework Carbon'.
 -
 -2005-11-11  David Reitter  <david.reitter@gmail.com>
 -
 -      * macterm.c (syms_of_macterm): Remove macCtrlKey, macShiftKey,
 -      macMetaKey, macAltKey.  Introduce Qctrl, Qmeta,
 -      Vmac_control_modifier / mac-control-modifier,
 -      Vmac_option_modifier / mac-option-modifier,
 -      Vmac_command_modifier / mac-command-modifier.
 -      (mac_to_emacs_modifiers): Use the new style modifier
 -      variables.  Return UInt32 (modifiers are longs now.)
 -      (backtranslate_modified_keycode): New function (refactoring).
 -      (XTread_socket): Use new modifier variables and refactored function.
 -      (mac_determine_quit_char_modifiers): Remove macMetaKey (there is
 -      no dedicated meta key.  Not in use anyway.)
 -      (convert_fn_keycode): Map Fn-keys to their original keycode
 -      using a table (english keyboard only).
 -
 -2005-11-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * .gdbinit (pitx): Fix output format if n_overlay_strings > 0.
 -      Add post hook to "backtrace" to always dump lisp call stack to
 -      increase chance of people sending it to us when reporting bugs.
 -
 -      * doc.c (Fsubstitute_command_keys): Doc fix.
 -
 -      * dispextern.h (struct it): New member ignore_overlay_strings_at_pos_p.
 -
 -      * xdisp.c (handle_stop): Skip overlay string handling if
 -      ignore_overlay_strings_at_pos_p is set.
 -      (set_iterator_to_next): At end of display vector, set
 -      ignore_overlay_strings_at_pos_p if dpvec came from an overlay
 -      string, so we skip those overlay strings at current pos.
 -
 -2005-11-10  Lars Hansen  <larsh@soem.dk>
 -
 -      * fileio.c (file-regular-p): Doc fix.
 -
 -2005-11-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c (valid_lisp_object_p): New function to validate that
 -      an object is really a valid Lisp_Object.
 -
 -      * lisp.h (valid_lisp_object_p): Add prototype.
 -
 -      * print.c (safe_debug_print): New function to be called from gdb
 -      to print Lisp objects; use valid_lisp_object_p to avoid crashing
 -      if user tries to print something which is not a Lisp object.
 -
 -      * .gdbinit (pp, pp1): Use safe_debug_print.
 -      (pv, pv1): New commands to print value of a lisp variable.
 -
 -2005-11-10  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * .gdbinit (pp1): New user-defined function.
 -
 -2005-11-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c [MAC_OSX] (image_load_quartz2d): Fix memory leak.
 -
 -      * mac.c [MAC_OSX] (init_mac_osx_environment): Reinitialize locale
 -      related variables for dumped executable.
 -
 -      * unexmacosx.c (unexec_write_zero): New function.
 -      (copy_data_segment): Clear uninitialized local variables in
 -      statically linked libraries.
 -
 -      * s/darwin.h (C_SWITCH_SYSTEM): Remove -fno-common.
 -
 -2005-11-09  Juri Linkov  <juri@jurta.org>
 -
 -      * keymap.c (shadow_lookup): If Flookup_key returns a number,
 -      call it again with a sub-key-sequence, and if its return value
 -      is non-nil (sub-key is bound), return nil.
 -
 -2005-11-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Fsignal_process): Recognize signal names with and
 -      without SIG prefix, e.g. SIGHUP and HUP.
 -
 -      * search.c (search_buffer): No need to initialize base_pat.
 -
 -2005-11-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (Fget_lru_window, Fget_largest_window, window_loop):
 -      Don't abuse the `mini' arg.  Use the `obj' arg instead.
 -
 -2005-11-04  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (show_mouse_face): Clear mouse face to eol.
 -
 -2005-11-03  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * Makefile.in (lisp, shortlisp): Add emacs-lisp/syntax.elc,
 -      font-lock.elc and jit-lock.elc.
 -
 -2005-11-03  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (Fenlarge_window): Rename SIDE to HORIZONTAL.
 -      (enlarge_window): Rename WIDTHFLAG to HORIZ_FLAG.
 -      (CURBEG, CURSIZE): Use HORIZ_FLAG instead of WIDTHFLAG.
 -
 -      * sheap.c (STATIC_HEAP_SIZE): Increment both definitions.
 -
 -      * alloc.c (refill_memory_reserve): Move decl out of conditionals.
 -
 -2005-11-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (Fdisplay_buffer): Fix last change to not use
 -      a dedicated window.
 -
 -2005-11-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (update_window_fringes): Undo 2005-10-27 change.
 -      Instead, rotate the bottom angle bitmap 180 degrees to indicate
 -      that the bottom row does not end in a newline.
 -
 -2005-11-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * unexelf.c (unexec): Handle .plt section in BSS segment.
 -
 -2005-11-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lread.c (readevalloop): Yet another int/Lisp_Object mixup (YAILOM).
 -
 -      * window.c (window_loop): For LRU and LARGEST, let the `mini' argument
 -      determine whether to consider dedicated windows as well.
 -      (Fget_lru_window, Fget_largest_window): Add `dedicated' argument.
 -      (Fdisplay_buffer): Do consider dedicated windows in those cases where
 -      we will split the window rather than reuse it.
 -      Don't try to use windows on other displays.
 -
 -2005-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * puresize.h (BASE_PURESIZE): Increment to 1170000.
 -
 -2005-10-31  Romain Francoise  <romain@orebokech.com>
 -
 -      * macfns.c: Update copyright year.
 -      * m/gould.h: Likewise.
 -
 -2005-10-30  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (display_line): Restore it->current_x and call
 -      extend_face_to_end_of_line when last glyph doesn't fit on line.
 -      (set_glyph_string_background_width): Remove specific tests here
 -      to see if face background should extend to end of line.  Simplify.
 -
 -2005-10-30  Richard M. Stallman  <rms@gnu.org>
 -
 -      * alloc.c (BYTES_USED): Use uordblks, not arena.
 -      (bytes_used_when_reconsidered): New variable.
 -      (emacs_blocked_free): Set that.
 -
 -2005-10-29  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * alloc.c (emacs_blocked_free): Fix typo.
 -
 -2005-10-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * data.c (Fmake_variable_frame_local): Doc fix.
 -
 -      * xdisp.c (handle_fontified_prop): Do nothing if memory full.
 -      (format_mode_line_unwind_data): New arg SAVE_PROPTRANS
 -      controls whether to save and restore mode_line_proptrans_alist.
 -      Callers changed.
 -      (unwind_format_mode_line): Work with that feature.
 -      (redisplay_internal): Don't call prepare_menu_bars if memory full.
 -      (move_elt_to_front): New function.
 -      (display_mode_element): Use move_elt_to_front.
 -      Don't bother munging text props on a null string.
 -      Delete obsolete elts from mode_line_proptrans_alist.
 -      (decode_mode_spec): Test Vmemory_full, not spare_memory.
 -      (Fformat_mode_line): Clear mode_line_proptrans_alist after saving.
 -
 -      * lisp.h (memory_full_cons_threshold): Declare.
 -      (internal_lisp_condition_case): Declare.
 -
 -      * alloc.c (syms_of_alloc) <memory-full>: Doc fix.
 -      (Fmemory_full_p): Function deleted.
 -      (syms_of_alloc): Don't defsubr it.
 -      (memory_full_cons_threshold): New variable.
 -      (spare_memory): Now a vector of 7 elts.
 -      (buffer_memory_full): Don't set Vmemory_full here.
 -      (xfree): Don't try to refill here.
 -      (emacs_blocked_free): Record BYTES_USED in local var.
 -      (memory_full): Now free all the slots in spare_memory.
 -      (refill_memory_reserve): Allocate each slot in spare_memory.
 -      (init_alloc_once): Call refill_memory_reserve.
 -
 -      * keyboard.c (command_loop_1): Don't set Vmemory_full here.
 -
 -      * eval.c (internal_lisp_condition_case): New function.
 -      (Fcondition_case): Use internal_lisp_condition_case.
 -      (Feval): Test Vmemory_full and memory_full_cons_threshold.
 -      (Ffuncall): Likewise.
 -
 -      * bytecode.c (Fbyte_code): Use internal_lisp_condition_case.
 -
 -2005-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (Fparse_partial_sexp): Fix docstring.
 -
 -2005-10-28  Romain Francoise  <romain@orebokech.com>
 -
 -      * puresize.h (BASE_PURESIZE): Increment to 1130000.
 -
 -2005-10-28  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xfns.c (syms_of_xfns): Provide `x' as feature.
 -
 -      * xdisp.c (decode_mode_spec): Define %e to indicate memory full.
 -
 -      * editfns.c (Fformat): Don't include string padding
 -      between info[n].start and info[n].end.
 -
 -      * alloc.c (spare_memory): No longer static.
 -      (xfree) [!SYSTEM_MALLOC]: Call refill_memory_reserve.
 -
 -      * puresize.h (BASE_PURESIZE): Increment to 1120000.
 -
 -2005-10-27  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * data.c (Fmake_variable_frame_local): Add clarification to docstring.
 -
 -      * fringe.c (update_window_fringes): Handle case where buffer ends
 -      with a newline.
 -
 -2005-10-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.h (DECODE_SYSTEM): Fix argument name; name->str.
 -
 -2005-10-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.h (charset_mule_unicode_0100_24ff)
 -      (charset_mule_unicode_2500_33ff, charset_mule_unicode_e000_ffff):
 -      Extern them.
 -
 -      * charset.c (charset_mule_unicode_0100_24ff)
 -      (charset_mule_unicode_2500_33ff, charset_mule_unicode_e000_ffff):
 -      New variables.
 -      (Fsetup_special_charsets): Initialize them.
 -
 -      * xterm.c (handle_one_xevent): Handle keysyms directly mapped to
 -      supported Unicode characters.
 -
 -2005-10-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_to_x_font): Avoid forcing font widths.
 -
 -2005-10-25  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c [MAC_OS] (image_load_qt_1): Check image size.
 -      Use GraphicsImportGetImageDescription instead of
 -      GraphicsImportGetNaturalBounds.
 -      [MAC_OSX] (image_load_quartz2d): Check image size.
 -      [MAC_OS] (xpm_load_image): Likewise.
 -
 -      * macterm.c (last_mouse_glyph_frame): New var.
 -      (note_mouse_movement): Say mouse moved if current frame differs
 -      from last_mouse_glyph_frame, and update last_mouse_glyph_frame.
 -      (XTmouse_position): Set last_mouse_glyph_frame.
 -      (XTread_socket): Clear last_mouse_glyph_frame on mouse up/down event.
 -      (mac_draw_string_common) [USE_ATSUI && WORDS_BIG_ENDIAN]: Fix typo.
 -      Use EndianU16_BtoN.
 -      (mac_draw_string_common) [MAC_OSX]: Don't use ATSUClearLayoutControls.
 -      (x_per_char_metric, XLoadQueryFont)
 -      [MAC_OS_X_VERSION_MAX_ALLOWED < 1020]: Use device origins to get
 -      glyph bounds.
 -      (mac_to_x_fontname, mac_do_list_fonts)
 -      (mac_initialize_display_info): Change screen resolutions to 72dpi.
 -
 -2005-10-25  Masatake YAMATO  <jet@gyve.org>
 -
 -      * minibuf.c (Fdisplay_completion_list): Small doc fix.
 -
 -2005-10-24  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c: Undo 2005-10-23 change.
 -      (last_mouse_glyph_frame): New var.
 -      (note_mouse_movement): Say mouse moved if current frame differs
 -      from last_mouse_glyph_frame, and update last_mouse_glyph_frame.
 -      (XTmouse_position): Set last_mouse_glyph_frame.
 -      (handle_one_xevent): Clear last_mouse_glyph_frame [instead of
 -      last_mouse_glyph] on mouse up/down event.
 -
 -      * editfns.c (Fcompare_buffer_substrings): Fix last change.
 -
 -2005-10-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * editfns.c (Fcompare_buffer_substrings): Handle multibyte chars.
 -
 -2005-10-23  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (note_mouse_movement): Always call note_mouse_highlight
 -      so tool tips don't interfere with press on tool bar button.
 -
 -2005-10-23  Richard M. Stallman  <rms@gnu.org>
 -
 -      * casetab.c (Fset_case_table): Doc fix.
 -
 -      * lread.c (build_load_history): Replace STREAM arg with ENTIRE.
 -      (readevalloop): Compute ENTIRE properly.
 -      (syms_of_lread) <load-history>: Doc fix.
 -
 -2005-10-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * lread.c (Fload): Simplify gcpro structure.
 -      Gcpro FOUND as well as FILE, but not EFOUND.
 -      Unless preloading, record FOUND instead of FILE in Vload_history.
 -      Rename repeat local FILE to MSG_FILE.
 -      (syms_of_lread) <load-history>: Doc fix.
 -
 -2005-10-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * search.c (boyer_moore): Add parens to fix and/or precedence bug.
 -
 -2005-10-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * buffer.c (clone_per_buffer_values): Remove unused var tem.
 -      (init_buffer): Remove unused vars dotstat, pwdstat.
 -
 -      * ccl.c (check_ccl_update): Remove unused var vp.
 -
 -      * fileio.c (auto_save_error): Call SAFE_FREE.
 -
 -      * fns.c (Fchar_table_range): Remove unused var i.
 -
 -      * minibuf.c (display_completion_list_1): New wrapper function
 -      for Fdisplay_completion_list.
 -      (Fminibuffer_completion_help): Use it.
 -
 -      * term.c (encode_terminal_code): Remove unused var src_start.
 -
 -      * window.c (Fwindow_tree): Remove unused var alist.
 -
 -      * xterm.c (x_calc_absolute_position): Remove unused vars win_x, win_y.
 -
 -2005-10-20  Aubrey Jaffer  <agj@alum.mit.edu>  (tiny change)
 -
 -      * unexelf.c (unexec): Fix calls to `fatal' with less than 3 arguments.
 -
 -2005-10-20  Olli Savia  <ops@iki.fi>  (tiny change)
 -
 -      * syssignal.h [__Lynx__]: Undef SIGPOLL along with SIGIO.
 -
 -2005-10-20  Andreas Schwab  <schwab@suse.de>
 -
 -      * minibuf.c (Fdisplay_completion_list): Doc fix.
 -
 -2005-10-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * image.c (check_image_size): Handle integer Vmax_image_size value
 -      directly as max pixel value.  Use default frame size for null frame.
 -      (syms_of_image) <max-image-size>: Describe integer value.
 -
 -2005-10-19  Romain Francoise  <romain@orebokech.com>
 -
 -      * emacs.c (main): Update copyright year.
 -
 -2005-10-18  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (Vmax_image_size): New variable.
 -      (check_image_size): New function.
 -      (xbm_read_bitmap_data, pbm_load, png_load, jpeg_load, tiff_load)
 -      (gif_load, gs_load): Use it.
 -      (lookup_image): Try loading again if previous load failed.
 -      (xbm_read_bitmap_data): Add a new argument, a pointer to the frame
 -      to display in, NULL if none.
 -      (xbm_load_image, xbm_file_p): Pass xbm_read_bitmap_data the new
 -      argument.
 -
 -2005-10-18  Richard M. Stallman  <rms@gnu.org>
 -
 -      * search.c (Fstring_match): Doc fix.
 -
 -2005-10-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (note_mouse_movement): Use PtInRect.
 -      (XTread_socket): Also ignore mouse motion just before a button
 -      release event.  Don't process button release event when mouse is
 -      not grabbed.
 -
 -2005-10-16  Masatake YAMATO  <jet@gyve.org>
 -
 -      * minibuf.c (Fdisplay_completion_list): Add new optional
 -      argument COMMON_SUBSTRING.  Bind `completion-common-substring'
 -      to the optional argument during running `completion-setup-hook'.
 -
 -2005-10-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c [TARGET_API_MAC_CARBON] (get_cfstring_encoding_from_lisp):
 -      Allow nil as argument.
 -       [TARGET_API_MAC_CARBON] (Fmac_code_convert_string): Regard nil
 -      for encoding arguments as UTF-16 in native byte order, no BOM.
 -
 -      * macfns.c (Fx_create_frame): Add debugging code.
 -      (Fx_show_tip): Set frame pixel width and height.
 -
 -      * macterm.c (MAC_WINDOW_NORMAL_GC): Remove macro.
 -      (FRAME_NORMAL_GC): New macro.
 -      (mac_draw_line, mac_clear_area, mac_clear_window)
 -      (mac_fill_rectangle, mac_draw_string, mac_draw_string_16)
 -      (mac_draw_image_string, mac_draw_image_string_16): Rename from
 -      XDrawLine, XClearArea, XClearWindow, XFillRectangle, XDrawString,
 -      XDrawString16, XDrawImageString, and XDrawImageString16, respectively.
 -      All uses changed.
 -      (mac_draw_line, mac_erase_rectangle, mac_clear_area)
 -      (mac_clear_window, mac_draw_bitmap, mac_draw_rectangle)
 -      (mac_invert_rectangle, mac_draw_string_common, mac_draw_string)
 -      (mac_draw_string_16, mac_draw_image_string)
 -      (mac_draw_image_string_16, mac_copy_area, mac_copy_area_with_mask)
 -      (mac_scroll_area): Drawing functions now take frame as destination.
 -      All uses changed.
 -      (mac_draw_string_common): Get port height with FRAME_PIXEL_HEIGHT.
 -      (x_draw_fringe_bitmap): Set clipping area in face->gc.
 -
 -      * macterm.h (mac_clear_area): Add extern.
 -
 -2005-10-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (note_mouse_movement, XTread_socket): Apply 2005-10-14
 -      changes for xterm.c.
 -
 -      * w32term.c (note_mouse_movement, w32_read_socket): Likewise.
 -
 -2005-10-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * search.c (search_buffer): Give up BM search on case-fold-search
 -      if one of a target character has a case-equivalence of different
 -      charset even if that target charcter is an ASCII.
 -
 -      * casefiddle.c (casify_object): Fix for the case that case
 -      conversion change the byte length.
 -
 -2005-10-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (note_mouse_movement): Return 1 if mouse moved; 0 otherwise.
 -      (handle_one_xevent): Only clear help_echo_string; restore it if
 -      note_mouse_movement didn't record any mouse movement.
 -
 -      * xdisp.c (pos_visible_p): Convert w->hscroll to pixels before use.
 -      (remember_mouse_glyph): Clear RECT if mouse is over an image glyph.
 -
 -      * keyboard.c (make_lispy_position): Adjust wx for left margin if
 -      ON_TEXT.
 -      (Fposn_at_x_y): Fix calculation of x coordinate.
 -      (Fposn_at_point): Return nil if point is hscrolled out of view.
 -
 -2005-10-13  Andreas Schwab  <schwab@suse.de>
 -
 -      * sysdep.c (request_sigio, unrequest_sigio): Do nothing in
 -      non-interactive mode.
 -
 -2005-10-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xterm.c, w32term.c, macterm.c (note_mouse_movement): Undo last change.
 -
 -2005-10-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (handle_one_xevent): Clear last_mouse_glyph on mouse up/down.
 -
 -2005-10-12  Romain Francoise  <romain@orebokech.com>
 -
 -      * buffer.c (init_buffer): Rename `rc' to `len' for clarity.
 -
 -2005-10-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * xdisp.c (remember_mouse_glyph): Use MATRIX_BOTTOM_TEXT_ROW to
 -      get end of text rows.  Obtain header-line/mode-line rows directly.
 -
 -      * xterm.c, w32term.c, macterm.c (note_mouse_movement):
 -      Restore help_echo_string if mouse is moved inside last_mouse_glyph.
 -
 -2005-10-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (remember_mouse_glyph): New generic version based on
 -      glyph_rect and remember_mouse_glyph from xterm.c enhanced to
 -      properly handle all different window areas.
 -
 -      * dispextern.h (remember_mouse_glyph): Add prototype.
 -
 -      * xterm.c (glyph_rect, remember_mouse_glyph): Remove X versions.
 -      (note_mouse_movement, XTmouse_position): Use generic
 -      remember_mouse_glyph, add last_mouse_glyph arg.
 -
 -      * w32term.c (note_mouse_movement): Fix last_mouse_glyph check.
 -      (glyph_rect, remember_mouse_glyph): Remove w32 specific versions.
 -      (note_mouse_movement, w32_mouse_position): Use generic
 -      remember_mouse_glyph, add last_mouse_glyph arg.
 -
 -      * macterm.c (note_mouse_movement): Add call to remember_mouse_glyph.
 -      (glyph_rect, remember_mouse_glyph): Remove mac specific versions.
 -      (XTmouse_position): Adapt to use generic remember_mouse_glyph
 -      instead of pixel_to_glyph_coords.
 -
 -      * window.c (coordinates_in_window): Fix x position for ON_RIGHT_MARGIN.
 -      Fix x position for ON_TEXT when left margin width > 0.
 -
 -2005-10-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (coordinates_in_window): Fix y position for ON_SCROLL_BAR.
 -
 -      * keyboard.c (make_lispy_position): Fix buffer calculations for
 -      mouse click or movement in right fringe and the margins.
 -
 -2005-10-11  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * image.c (fn_jpeg_stdio_src): Don't define it.
 -      (init_jpeg_functions): Don't initialize `fn_jpeg_stdio_src'.
 -      (our_common_init_source): Rename from `our_init_source'.
 -      (our_common_term_source): Rename from `our_term_source'.
 -      (our_memory_fill_input_buffer): Rename from
 -      `our_fill_input_buffer'.
 -      (our_memory_skip_input_data): Rename from `our_skip_input_data'.
 -      (jpeg_memory_src): Use the new names.
 -      (struct jpeg_stdio_mgr): New struct.
 -      (JPEG_STDIO_BUFFER_SIZE): New constant.
 -      (our_stdio_fill_input_buffer, our_stdio_skip_input_data)
 -      (jpeg_file_src): New functions.
 -      (jpeg_load): Use `jpeg_file_src' instead of `fn_jpeg_stdio_src'.
 -
 -2005-10-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (PER_CHAR_METRIC): Remove unused macro.
 -      (fm_font_family_alist): New variable.
 -      (syms_of_macterm): Initialize and staticpro it.
 -      (decode_mac_font_name): Replace '-' in family name with '_' if it
 -      occurs just once.  Lower family name.
 -      (parse_x_font_name): Rename from x_font_name_to_mac_font_name.
 -      All uses changed.  Remove argument MF and code conversion for it.
 -      Add argument SIZE.  Rename argument MF_DECODED to FAMILY, and CS
 -      to CHARSET.  Parse font size.  Lower family name.  Return integer
 -      value for status of parsing.
 -      (init_font_name_table) [USE_ATSUI]: Use decode_mac_font_name.
 -      Don't use Fdowncase because family name is already lowered by
 -      decode_mac_font_name.
 -      (init_font_name_table): Always call decode_mac_font_name.
 -      Add pair of family name and its reference to fm_font_family_alist.
 -      (mac_clear_font_name_table): Clear fm_font_family_alist.
 -      (XLoadQueryFont): Move font size parsing part to parse_x_font_name.
 -      Lookup fm_font_family_alist to get font family reference.
 -      (XLoadQueryFont) [USE_ATSUI]: Don't use Fdowncase because family
 -      name is already lowered by parse_x_font_name.
 -
 -2005-10-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (glyph_rect): Return 0 if position is outside text area.
 -
 -      * keyboard.c (make_lispy_position): Fix buffer position calculation for
 -      mouse click or movement in fringe.
 -
 -2005-10-10  Jason Rumney  <jasonr@gnu.org>
 -
 -      * xterm.c (remember_mouse_glyph): New function.
 -      (note_mouse_movement): Use it to remember the current glyph if changed.
 -      (XTmouse_position): Fix calculation of fake glyph under mouse.
 -      Move code to calculate glyph under mouse into remember_mouse_glyph.
 -
 -2005-10-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * emacs.c (USAGE3, standard_args): -nb => -nbi.
 -
 -2005-10-10  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * frame.c (Fredirect_frame_focus): Fix typos in docstring.
 -      (next_frame, prev_frame, set_term_frame_name): Make static.
 -
 -      * window.c (Fwindow_tree): Fix spelling.
 -
 -2005-10-09  Romain Francoise  <romain@orebokech.com>
 -
 -      * window.c (Fwindow_end): Don't try to redisplay if non-interactive.
 -
 -2005-10-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * emacs.c (standard_args): Remove options -i, -itype, --icon-type.
 -      Add options -nb, --no-bitmap-icon.
 -
 -      * xfns.c (Fx_create_frame): Make bitmapIcon have default on.
 -
 -2005-10-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macgui.h (MAX_CLIP_RECTS): New define.
 -      (struct _XGC): New member clip_region.
 -      (struct _XGC) [MAC_OSX && USE_ATSUI]: New members n_clip_rects and
 -      clip_rects.
 -
 -      * macterm.c (GC_CLIP_REGION): New macro.
 -      (saved_port_clip_region): New variable.
 -      (mac_begin_clip, mac_end_clip): New functions.
 -      (XDrawLine, mac_erase_rectangle, mac_draw_bitmap, XFillRectangle)
 -      (mac_draw_rectangle, mac_draw_string_common, mac_copy_area)
 -      (mac_copy_area_with_mask, mac_scroll_area): Use them.
 -      (mac_set_clip_rectangle, mac_reset_clipping): Remove functions.
 -      [USE_ATSUI] (atsu_get_text_layout_with_text_ptr)
 -      [MAC_OS_X_VERSION_MAX_ALLOWED < 1020]: Specify kATSLineFractDisable.
 -      (mac_draw_string_common) [MAC_OSX && USE_ATSUI]: Clip to clipping
 -      rectangles stored in gc.
 -      (XFreeGC): Dispose of clipping region.
 -      (mac_set_clip_rectangles, mac_reset_clip_rectangles): New functions.
 -      (x_draw_fringe_bitmap, x_set_glyph_string_clipping)
 -      (x_draw_relief_rect, x_draw_box_rect, x_draw_stretch_glyph_string)
 -      (x_draw_glyph_string, x_clip_to_row, x_draw_hollow_cursor)
 -      (x_draw_bar_cursor): Use them.
 -      (x_set_glyph_string_clipping): Use get_glyph_string_clip_rects to
 -      get multiple clipping rectangles.
 -
 -      * macterm.h (mac_term_init): Add types to extern.
 -      (struct mac_output): Remove members mWP and pending_menu_activation.
 -      Put members scroll_bar_foreground_pixel and
 -      scroll_bar_background_pixel in #if 0.
 -      (FRAME_MAC_WINDOW, FRAME_X_WINDOW): Use window_desc.
 -
 -      * xfaces.c (x_create_gc, x_free_gc) [MAC_OS]: Add BLOCK_INPUT.
 -      Add debugging code.
 -
 -2005-10-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (window_tree, Fwindow_tree): Rename fns added 2005-10-04.
 -
 -2005-10-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (redraw_overlapped_rows, redraw_overlapping_rows)
 -      [!HAVE_WINDOW_SYSTEM]: Don't declare them...
 -      (update_window) [!HAVE_WINDOW_SYSTEM]: ...and don't call them.
 -
 -2005-10-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * dispextern.h (struct glyph_string): Rename member for_overlaps_p
 -      to for_overlaps.  Now occupy 3 bits.
 -      (OVERLAPS_PRED, OVERLAPS_SUCC, OVERLAPS_BOTH)
 -      (OVERLAPS_ERASED_CURSOR): New defines.
 -      (struct redisplay_interface): Add new OVERLAPS arg to member
 -      fix_overlapping_area.
 -      (x_fix_overlapping_area): Add new OVERLAPS arg.
 -      (get_glyph_string_clip_rects): Add extern.
 -
 -      * dispnew.c (redraw_overlapping_rows):
 -      Call rif->fix_overlapping_area with new OVERLAPS arg as redrawn part.
 -
 -      * xdisp.c: Rename member for_overlaps_p in struct glyph_string to
 -      for_overlaps.
 -      (get_glyph_string_clip_rects): New function created from
 -      get_glyph_string_clip_rect.  Set clipping rectangles according to the
 -      value of for_overlaps.  Enable to store multiple clipping rectangles.
 -      (get_glyph_string_clip_rect): Use get_glyph_string_clip_rects.
 -      (fill_composite_glyph_string, fill_glyph_string, draw_glyphs):
 -      Rename argument OVERLAPS_P to OVERLAPS.  All uses in macros changed.
 -      (x_fix_overlapping_area): Add OVERLAPS arg.  Pass it to draw_glyphs.
 -      (draw_phys_cursor_glyph): Set width of erased cursor to use it for
 -      calculating clipping rectangles later.  Call x_fix_overlapping_area
 -      with new OVERLAPS arg to draw only erased cursor area.
 -      (expose_overlaps): Call x_fix_overlapping_area with new OVERLAPS arg
 -      to draw overlaps in both preceding and succeeding rows.
 -
 -      * xterm.c, w32term.c, macterm.c: Rename member for_overlaps_p in
 -      struct glyph_string to for_overlaps.
 -
 -2005-10-04  Richard M. Stallman  <rms@gnu.org>
 -
 -      * alloc.c (refill_memory_reserve): Conditionalize the body,
 -      not the function's existence.
 -
 -2005-10-04  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (window_split_tree): New function.
 -      (Fwindow_split_tree): New defun.
 -      (syms_of_window): Defsubr it.
 -
 -2005-10-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_invert_rectangle): New function.
 -      (XTflash): Use it.
 -
 -2005-10-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * regex.h (re_char): Don't expose it in the interface.
 -      (re_set_whitespace_regexp): Adjust the arg's type to not use it.
 -
 -      * regex.c (re_char): Move it back here.
 -      (re_set_whitespace_regexp): Change the arg's type to not use it.
 -
 -      * keyboard.c (make_lispy_event): If point has moved between down and up
 -      event, make it a drag, not a click, to mirror what
 -      mouse-drag-region expects.
 -
 -2005-10-02  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * lisp.h (fatal): Undo previous change.
 -      * term.c (fatal): Undo previous change.
 -
 -2005-10-01  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xfaces.c (face_color_gray_p): Colors close to black count as gray.
 -
 -2005-10-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (try_window): Skip scroll-margin check if ZV is visible.
 -
 -2005-10-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.c (init_keyboard) [MAC_OSX]: Don't install SIGINT handler.
 -
 -      * macfns.c (start_hourglass): Apply 2005-05-07 change for xfns.c.
 -      (x_create_tip_frame) [GLYPH_DEBUG]: Uncomment debugging code.
 -      (Fx_create_frame, x_create_tip_frame) [USE_ATSUI]:
 -      Try ATSUI-compatible 12pt Monaco font first.
 -
 -      * macgui.h (struct _XCharStruct): New member valid_p.
 -      (STORE_XCHARSTRUCT): Set valid_p.
 -      (struct MacFontStruct) [USE_ATSUI]: New member mac_style.
 -
 -      * macterm.c (mac_draw_string_common, x_per_char_metric)
 -      (mac_compute_glyph_string_overhangs, init_font_name_table)
 -      (XLoadQueryFont, mac_unload_font) [USE_ATSUI]: Add ATSUI support.
 -      (atsu_get_text_layout_with_text_ptr) [USE_ATSUI]: New function.
 -      (x_draw_glyph_string_background)
 -      (x_draw_glyph_string_foreground) [MAC_OS8 && USE_ATSUI]: Don't use
 -      XDrawImageString.  Always draw background and foreground separately.
 -      (x_draw_glyph_string_foreground) [USE_ATSUI]: Don't use 8-bit
 -      functions for one-byte chars when using ATSUI-compatible fonts.
 -      (atsu_font_id_hash) [USE_ATSUI]: New variable.
 -      (syms_of_macterm) [USE_ATSUI]: Initialize and staticpro it.
 -      (XLoadQueryFont): Set min_byte1, max_byte1, min_char_or_byte2, and
 -      max_char_or_byte2 more in detail.
 -      (quit_char_comp, mac_check_for_quit_char) [MAC_OSX]: Remove functions.
 -
 -2005-09-30  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct type.
 -      * xterm.c (handle_one_xevent, handle_one_xevent): Likewise.
 -
 -      * unexelf.c (fatal): Fix prototype.
 -
 -      * term.c (fatal): Implement using varargs.
 -
 -      * regex.c (re_char): Move typedef ...
 -      * regex.h (re_char): ... here.
 -      (re_iswctype, re_wctype, re_set_whitespace_regexp): New prototypes.
 -
 -      * emacs.c (malloc_set_state): Fix return type.
 -      (endif): Fix type.
 -
 -      * lisp.h (fatal): Add argument types.
 -
 -      * dispextern.h (fatal): Delete prototype.
 -
 -      * systime.h (make_time): Prototype moved from ...
 -      * editfns.c (make_time): ... here.
 -
 -      * editfns.c: Move systime.h include after lisp.h.
 -      * dired.c:
 -      * xsmfns.c:
 -      * process.c: Likewise.
 -
 -      * alloc.c (old_malloc_hook, old_realloc_hook, old_realloc_hook):
 -      Add parameter types.
 -      (__malloc_hook, __realloc_hook, __free_hook): Fix prototypes.
 -      (emacs_blocked_free): Change definition to match __free_hook.
 -      (emacs_blocked_malloc): Change definition to match __malloc_hook.
 -      (emacs_blocked_realloc): Change definition to match __realloc_hook.
 -
 -2005-09-30  Romain Francoise  <romain@orebokech.com>
 -
 -      * minibuf.c (Fread_buffer): Follow convention for reading from the
 -      minibuffer with a default value.  Doc fix.
 -
 -2005-09-29  Juri Linkov  <juri@jurta.org>
 -
 -      * editfns.c (Fmessage, Fmessage_box, Fmessage_or_box):
 -      Rename argument name `string' to `format-string'.
 -      (Fformat): Doc fix.
 -
 -2005-09-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * image.c (gif_load): Fix size of allocated image buffer
 -      for images where a sub-image may be larger than the image's
 -      total height/width specifications.
 -
 -2005-09-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macgui.h (struct _XCharStruct): Each member now takes short value.
 -
 -2005-09-27  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * xfaces.c (lookup_derived_face): Add parameter type.
 -
 -      * xdisp.c (cursor_row_fully_visible_p): Add parameter type.
 -
 -      * marker.c (verify_bytepos): Add parameter type.
 -
 -      * process.c (get_operating_system_release): Move prototype ...
 -
 -      * systime.h (get_operating_system_release): ... here.
 -
 -      * xterm.c (handle_one_xevent): Refer to union field to match the
 -      type required by the function definition.
 -      (set_vertical_scroll_bar): Move prototype ...
 -
 -      * xterm.h: ... here.
 -
 -      * fns.c (internal_equal, seed_random): Fix prototypes.
 -      (internal_equal): Add missing parameter.
 -
 -2005-09-25  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (update_menu_bindings): Variable deleted.
 -      (syms_of_keyboard): Don't defvar it.
 -      (parse_menu_item): Don't test it.
 -
 -2005-09-23  Richard M. Stallman  <rms@gnu.org>
 -
 -      * editfns.c (Fformat): Explicitly test for end of format string
 -      and don't use `index'.
 -
 -2005-09-23  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME):
 -      Define BROKEN_GET_CURRENT_DIR_NAME.
 -
 -      * sysdep.c (get_current_dir_name): Also define if
 -      BROKEN_GET_CURRENT_DIR_NAME.
 -
 -      * m/ibmrs6000.h: Test for USG5, not USG5_4.
 -
 -2005-09-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (message_dolog): Add warning about GC and Lisp strings.
 -      (message2): Fix commentary.  Ok to use alloca'ed memory.
 -      Still not ok to use Lisp string data (because of GC).
 -      (set_message): Add comment why GC cannot happen.
 -
 -2005-09-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (xlfdpat_block_match_1): Fix assertion.
 -      (init_font_name_table) [TARGET_API_MAC_CARBON]: Don't add style
 -      variants for a scalable font multiple times.
 -
 -2005-09-21  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * process.c (create_process) [RTU || UNIPLUS || DONT_REOPEN_PTY]:
 -      Setup slave tty options before forking.
 -
 -2005-09-20  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_set_geometry): Do a gtk_window_move if program
 -      positions have been set for the frame (as is done for frames in
 -      special-display-buffer-names).
 -
 -2005-09-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * editfns.c (Fformat): Don't scan past end of format string that
 -      ends in %.  Reported by Johan Bockg\e,Ae\e(Brd.
 -
 -2005-09-18  Andreas Schwab  <schwab@suse.de>
 -
 -      * window.h (struct window): Remove height_fixed_p, no longer set.
 -
 -      * window.c (make_window): Don't initialize height_fixed_p.
 -      (window_fixed_size_p): Don't use it.
 -
 -2005-09-18  John Paul Wallington  <jpw@pobox.com>
 -
 -      * data.c (Fdefalias): Signal an error if SYMBOL is not a symbol.
 -
 -2005-09-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * Makefile.in (SOME_MACHINE_OBJECTS): Undo previous change.
 -
 -      * macfns.c (image_cache_refcount, dpyinfo_refcount) [GLYPH_DEBUG]:
 -      New variables.
 -      [TARGET_API_MAC_CARBON] (Fx_file_dialog): Don't allow multiple
 -      file selection.
 -
 -      * sysdep.c [MAC_OS8]: Don't include stdlib.h.  Include sys/param.h.
 -
 -2005-09-17  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * Makefile.in (XMENU_OBJ) [!HAVE_CARBON]: Reinstate variable.
 -      (obj): Use XMENU_OBJ, not a literal xmenu.o.
 -
 -2005-09-16  Romain Francoise  <romain@orebokech.com>
 -
 -      * fileio.c (syms_of_fileio) <write-region-inhibit-fsync>: Doc fix.
 -
 -2005-09-15  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (overlay_arrow_at_row): Add HAVE_WINDOW_SYSTEM conditional.
 -      (display_mode_element): Instead of `lisp_string' and `this',
 -      record `offset' and increment that.
 -      `last_offset' replaces `last'.
 -
 -      * Makefile.in (XMENU_OBJ): Variable deleted.
 -      (obj): Use xmenu.o unconditionally.
 -      (SOME_MACHINE_OBJECTS): Delete xmenu.o.
 -
 -      * emacs.c (main): Don't conditionalize syms_of_xmenu on HAVE_XMENU.
 -
 -2005-09-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (move_it_vertically): Don't try to fetch byte BEGV-1.
 -      (reseat_at_next_visible_line_start): Likewise (in xassert).
 -
 -2005-09-14  Romain Francoise  <romain@orebokech.com>
 -
 -      * fileio.c (write_region_inhibit_fsync): New variable.
 -      (Fwrite_region): Use it to skip call to fsync.
 -      (syms_of_fileio): Initialize it.
 -
 -2005-09-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (code_convert_region_unwind): Argument format changed.
 -      (run_pre_post_conversion_on_str): If pre-write-conversion function
 -      changed the current buffer, delete the new buffer.
 -      (run_pre_write_conversin_on_c_str): Likewise.
 -
 -      * fileio.c (Fexpand_file_name): Check multibyteness of
 -      default_directory.
 -
 -2005-09-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (compose_chars_in_text): Delete it.
 -
 -      * composite.h (compose_chars_in_text): Delete extern.
 -
 -2005-09-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * print.c (print_error_message): Fix last change.
 -
 -2005-09-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * composite.c (compose_chars_in_text): Fix setup of `pend'.
 -      Unconditionally reload `ptr' and `pend' after eval.
 -
 -      * xdisp.c (message3): Pass copy of lisp string to message_dolog.
 -
 -      * print.c (print_error_message): Pass copy of caller name to
 -      message_dolog.
 -
 -      * fileio.c (auto_save_error): Pass copy of lisp string to message2.
 -
 -2005-09-12  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (display_mode_element): Be sure to make variables THIS
 -      and LISP_STRING point into a string data of ELT.
 -
 -2005-09-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * editfns.c (Ftranslate_region_internal): Reload `tt' after
 -      signal_after_change that may have GC'ed.
 -      (Fmessage, Fmessage_box, Fmessage_or_box): Doc fix.
 -
 -      * keymap.c (Fdescribe_buffer_bindings): Reload `translate'
 -      after insert while runs signal_after_change.
 -
 -      * minibuf.c (Fminibuffer_complete_word): Move `completion_string'
 -      declaration to where it is used.
 -
 -      * w32.c (check_windows_init_file): Fix allocation of error buffer.
 -
 -      * xfns.c (x_encode_text): Declare static.  Add FREEP arg.
 -      (x_set_name_internal): Call x_encode_text with new FREEP arg to
 -      know if xfree is needed instead of guessing.
 -
 -      * xterm.h (x_encode_text): Remove prototype.
 -
 -2005-09-11  Chris Prince  <cprince@gmail.com>  (tiny change)
 -
 -      * w32term.c (x_bitmap_icon): Load small icons too.
 -
 -2005-09-10  Romain Francoise  <romain@orebokech.com>
 -
 -      * buffer.c (init_buffer): Grow buffer to add directory separator
 -      and terminal zero.  Fix typos.
 -
 -2005-09-10  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * buffer.c (init_buffer): Fix error message for failed call to
 -      get_current_dir_name.
 -      (get_current_dir_name): Remove prototype.
 -
 -      * xsmfns.c (get_current_dir_name): Remove prototype.
 -
 -      * lisp.h (get_current_dir_name) [!HAVE_GET_CURRENT_DIR_NAME]:
 -      Add prototype.
 -
 -      * sysdep.c [WINDOWSNT]: Add prototype for getwd.
 -      Don't #undef NULL after including blockinput.h.
 -
 -      * config.in: Regenerated.
 -
 -2005-09-10  Giuseppe Scrivano  <gscrivano@gmail.com>
 -
 -      Remove the MAXPATHLEN limitations:
 -
 -      * sysdep.c (get_current_dir_name) [!HAVE_GET_CURRENT_DIR_NAME]:
 -      New function.
 -
 -      * buffer.c (init_buffer): Use it.
 -
 -      * xsmfns.c (smc_save_yourself_CB): Ditto.
 -
 -2005-09-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * doc.c (Fsubstitute_command_keys): Lookup key binding for
 -      commands that are remapped from some other command.
 -
 -      * xdisp.c (try_window_reusing_current_matrix): Clear mode_line_p
 -      flag in disabled rows below the window.
 -
 -      * frame.h (struct frame): New member updated_p.
 -
 -      * xdisp.c (redisplay_internal): Mark updated frames in new updated_p
 -      member.  Remove local `updated' array and associated variables.
 -
 -2005-09-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (handle_display_prop): Respect overlay window property.
 -
 -      * xdisp.c (try_window): Remove superfluous cursor_height calculation.
 -      Fixes crash reported by YAMAMOTO Mitsuharu.
 -
 -2005-09-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (struct xlfdpat_block, struct xlfdpat): New structs.
 -      (xlfdpat_destroy, xlfdpat_create, xlfdpat_exact_p)
 -      (xlfdpat_block_match_1, xlfdpat_match): New functions.
 -      (xlfdpat_block_match): New macro.
 -      (mac_to_x_fontname): Don't use tolower for non-ASCII characters.
 -      (x_font_name_to_mac_font_name): Set coding.dst_multibyte to 0.
 -      (add_font_name_table_entry): Increase font_name_table_size more
 -      rapidly.
 -      (mac_c_string_match): Remove function.
 -      (mac_do_list_fonts): Use XLFD pattern match instead of regular
 -      expression match.
 -
 -      * xfaces.c (xstrlwr): Don't use tolower for non-ASCII characters.
 -
 -2005-09-03  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (redisplay_internal): Make UPDATED as long as needed.
 -      (move_it_in_display_line_to): Stop after last char on line even
 -      on a windowing terminal, if that's the specified stop position.
 -
 -      * fns.c (Fsort): Doc fix.
 -
 -      * editfns.c (Fpropertize): Don't insist that properties be symbols.
 -
 -2005-09-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dired.c (directory_files_internal_unwind, directory_files_internal)
 -      (file_name_completion): Use a Save_Value object rather than a cons of
 -      two 16bit ints to store the DIR*.
 -      (directory_files_internal, file_name_completion): Handle both EINTR and
 -      EAGAIN consistently after `readdir'.
 -
 -2005-09-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * intervals.c (update_interval): Add position info in error.
 -
 -      * dispnew.c (window_to_frame_hpos, update_window):
 -      Avoid gcc warning about unused variable `f'.
 -
 -2005-08-31  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32menu.c (add_menu_item): If unicode_append_menu returns an
 -      error, revert to using AppendMenu.
 -
 -2005-08-31  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c (PIX_MASK_DRAW, PIX_MASK_RETAIN): Remove argument.
 -      All uses changed.
 -      [MAC_OS] (XPutPixel, XGetPixel): Add efficient versions for common
 -      cases.
 -      (x_create_x_image_and_pixmap) [MAC_OS]: Don't call x_destroy_x_image.
 -      [MAC_OS] (find_image_fsspec) [!MAC_OSX]: Don't use FSRef.
 -      Use posix_pathname_to_fsspec.
 -      [MAC_OS] (xpm_load_image): Fill in background_transparent field
 -      while we have mask.
 -
 -      * macgui.h [!TARGET_API_MAC_CARBON] (GetPixDepth): New define.
 -
 -      * macterm.h (PIX_MASK_DRAW, PIX_MASK_RETAIN): Move defines to image.c.
 -
 -2005-08-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (update_syntax_table): Properly reproduce the special +1
 -      setting of e_property at the end of the buffer when bumping into the
 -      INTERVALS_AT_ONCE limit.
 -
 -2005-08-27  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * emacs.c (USAGE1): Fix the description of the -Q option.
 -
 -2005-08-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (pos_visible_p): Yet another int/Lisp_Object mixup (YAILOM).
 -
 -2005-08-26  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (resize_mini_window): Fix 2005-08-20 change.
 -      Don't move PT to new window start.
 -
 -2005-08-25  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.c (kbd_buffer_get_event) [MAC_OS]: Make events for
 -      ICONIFY/DEICONIFY_EVENT.
 -
 -      * macterm.c (mac_copy_area, mac_copy_area_with_mask):
 -      Restore background color.
 -      (mac_handle_visibility_change): New function.
 -      (x_make_frame_invisible, x_iconify_frame)
 -      (XTread_socket) [!USE_CARBON_EVENTS]: Use it.
 -      [USE_CARBON_EVENTS] (mac_handle_window_event)
 -      (install_window_handler): Handle visibility change events.
 -      (x_make_frame_visible): Don't reposition window if it is iconified
 -      or asked for visible before.  Select and uncollapse window when it
 -      is made visible.
 -      (x_make_frame_invisible): Don't reset x_highlight_frame.
 -      (x_iconify_frame): Likewise.  Make invisible frame visible before
 -      it is iconified.
 -      (read_socket_inev): Move variable outside #if USE_CARBON_EVENTS.
 -      (do_window_update): Don't change visibility of invisible frame.
 -
 -2005-08-22  Juri Linkov  <juri@jurta.org>
 -
 -      * term.c (turn_on_face): Check for TS_set_foreground and
 -      TS_set_background depending on standout_mode.  Simplify.
 -
 -2005-08-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (update_window_fringes): Only put TOP and BOTTOM
 -      bitmaps on fully visible rows.
 -
 -      * fringe.c (update_window_fringes): Replace FORCE_P arg with
 -      KEEP_CURRENT_P arg; if non-zero, don't update current row fringes,
 -      and return 0.
 -
 -      * xdisp.c (redisplay_window): Call update_window_fringes with
 -      KEEP_CURRENT_P non-0 if we are going to refresh fringes later.
 -
 -2005-08-20  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (display_echo_area_1): Get display start pos from w->start.
 -      (resize_mini_window): Set w->start, and PT, so as to display the tail
 -      end of the buffer, if it doesn't all fit.
 -
 -2005-08-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (calc_pixel_width_or_height): Use actual display
 -      resolution when available instead of Vdisplay_pixels_per_inch.
 -
 -2005-08-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (pos_visible_p): Adjust X value if window is hscrolled.
 -
 -      * dispnew.c (buffer_posn_from_coords): Check that target row is
 -      within matrix.
 -
 -2005-08-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_wm_set_icon_pixmap): Move GTK specific code to
 -      xg_set_frame_icon and call it.
 -
 -      * gtkutil.c (xg_set_frame_icon): New function.
 -
 -      * gtkutil.h (xg_set_frame_icon): Declare it.
 -
 -2005-08-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (increment_row_positions): Skip non-enabled rows.
 -
 -      * window.c (SAVED_WINDOW_VECTOR_SIZE): Remove dangerous define.
 -      (Fcurrent_window_configuration): Use VECSIZE macro instead.
 -
 -2005-08-15  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (message3_nolog): Clear echo_message_buffer.
 -
 -2005-08-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * lisp.h (QUIT) [!SYNC_INPUT]: Throw t to Vthrow_on_input.
 -
 -      * process.c (deactivate_process, status_notify, read_process_output)
 -      (update_status, status_convert, decode_status, allocate_pty)
 -      (make_process, remove_process, list_processes_1)
 -      (create_process_1, unwind_request_sigio, read_process_output)
 -      (send_process, keyboard_bit_set): Declare static.
 -      (Fdelete_process): Simplify.  Pass process to status_notify, so we
 -      don't try to read output from it.
 -      (status_notify): New arg deleting_process--don't try to read
 -      output from that process.
 -
 -      * lisp.h (deactivate_process, status_notify, read_process_output):
 -      Remove prototypes.
 -
 -2005-08-14  Richard M. Stallman  <rms@gnu.org>
 -
 -      * image.c (syms_of_image): Init Qxbm, Qpbm before calling
 -      define_image_type.
 -
 -2005-08-13  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_pixbuf_from_pix_and_mask): New function.
 -      (xg_get_image_for_pixmap): Move some code to
 -      xg_get_pixbuf_from_pix_and_mask, and call it.
 -
 -      * gtkutil.h (xg_get_pixbuf_from_pix_and_mask): Declare.
 -
 -      * xterm.c (x_wm_set_icon_pixmap): Call xg_get_pixbuf_from_pix_and_mask
 -      to get an GTK icon and set it with GTK functions to avoid having GTK
 -      override an icon set with just X functions.
 -
 -2005-08-11  Richard M. Stallman  <rms@gnu.org>
 -
 -      * image.c (syms_of_image): Init image_types here, and call
 -      define_image_type.
 -      (init_image): Not here.
 -
 -2005-08-09  Richard M. Stallman  <rms@gnu.org>
 -
 -      * bytecode.c (BYTE_CODE_QUIT): Throw t to Vthrow_on_input.
 -
 -      * lisp.h (QUIT): Throw t to Vthrow_on_input.
 -
 -2005-08-09  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * floatfns.c (Fexpt): Use floats for negative exponent.
 -
 -2005-08-08  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_modify_menubar_widgets): Remove semicolon that
 -      should not be there, causing menu display errors with GTK 2.6.9.
 -
 -2005-08-07  Richard M. Stallman  <rms@gnu.org>
 -
 -      * floatfns.c (Fexpt): Undo previous change.
 -
 -      * dispnew.c (Fframe_or_buffer_changed_p): Take an arg
 -      so it can be used with various state vectors.
 -
 -      * emacs.c (endif): Convert -script into -scriptload.
 -      (standard_args): Add -scriptload.  Allow -basic-display with one dash.
 -
 -      * fns.c (syms_of_fns): Add `emacs' to features.
 -
 -      * term.c (set_terminal_modes): If no TS_termcap_modes string,
 -      output newlines to scroll the old screen contents off the screen.
 -
 -2005-08-06  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * floatfns.c (Fexpt): Use floats for negative exponent.
 -      Reported by D Goel.
 -
 -2005-08-02  Richard M. Stallman  <rms@gnu.org>
 -
 -      * frame.c (Fframe_char_width): Doc fix.
 -
 -2005-07-30  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xdisp.c (syms_of_xdisp) <redisplay-end-trigger-functions>:
 -      Defvar it.
 -
 -2005-07-28  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * w32fns.c (my_set_window_pos, my_show_window): Don't declare.
 -      (my_create_window, my_create_tip_window): Make static.
 -
 -      * w32term.c (my_show_window, my_set_window_pos, my_set_focus)
 -      (my_set_foreground_window, my_destroy_window): Make static.
 -
 -2005-07-26  Paul Eggert  <eggert@cs.ucla.edu>
 -
 -      Merge gnulib getopt implementation into Emacs.
 -
 -      * s/cygwin.h (C_SWITCH_SYSTEM): Remove, since gettext.h is
 -      now part of lib-src.
 -
 -2005-07-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * eval.c (Fdefvar): Allow (defvar enable-multibyte-characters).
 -
 -2005-07-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32menu.c (w32_menu_display_help): Suppress tooltip when
 -      navigating menus with the keyboard.
 -
 -2005-07-23  Richard M. Stallman  <rms@gnu.org>
 -
 -      * insdel.c (syms_of_insdel): staticpro combine_after_change_buffer.
 -
 -      * bytecode.c (MAYBE_GC): Test gc_cons_threshold and
 -      gc_relative_threshold, one by one.
 -
 -      * keyboard.c (read_char): Test gc_cons_threshold.
 -      (syms_of_keyboard): staticpro Qecho_area_clear_hook.
 -
 -      * eval.c (Feval, Ffuncall): Test gc_cons_threshold and
 -      gc_relative_threshold, one by one.
 -
 -      * alloc.c (gc_cons_threshold): Not static.
 -      (gc_cons_combined_threshold): Var deleted.
 -      (gc_relative_threshold): New variable.
 -      (Fgarbage_collect, init_alloc_once): Compute gc_relative_threshold
 -      instead of gc_cons_combined_threshold.
 -
 -      * lisp.h (gc_cons_threshold, gc_relative_threshold): Declare.
 -      (gc_cons_combined_threshold): Declaration deleted.
 -
 -2005-07-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c: Don't include stdlib.h or string.h.
 -      (Fdo_applescript, Fmac_file_name_to_posix)
 -      (Fmac_file_name_to_posix): Doc fixes.
 -      [TARGET_API_MAC_CARBON] (Fmac_get_preference)
 -      (Fmac_code_convert_string): Likewise.
 -      [MAC_OSX] (init_mac_osx_environment): Fall back on terminal mode
 -      if the executable is not contained in a bundle.
 -
 -      * macfns.c: Don't include stdlib.h or string.h.  Include atimer.h.
 -      (gray_width, gray_height): Remove defines.
 -      (gray_bits, gray_bitmap_width, gray_bitmap_height)
 -      (gray_bitmap_bits): Remove variables.
 -      (lispy_function_keys): Remove extern.
 -      (free_frame_menubar): Add extern.
 -      (x_window_to_frame): Remove function.
 -      (unwind_create_tip_frame): Add declaration.
 -      (x_set_name_internal): New function.
 -      (x_set_name, x_set_title): Use it.
 -      (Fx_create_frame, Fx_display_grayscale_p, Fx_display_pixel_width)
 -      (Fx_display_pixel_height, Fx_display_planes)
 -      (Fx_display_color_cells, Fx_server_max_request_size)
 -      (Fx_server_vendor, Fx_server_version, Fx_display_screens)
 -      (Fx_display_mm_height, Fx_display_mm_width)
 -      (Fx_display_backing_store, Fx_display_visual_class)
 -      (Fx_display_save_under, Fx_synchronize, Fx_show_tip): Doc fixes.
 -
 -      * macmenu.c (Fx_popup_menu, Fx_popup_dialog): Doc fixes.
 -
 -      * macselect.c (Fx_own_selection_internal): Follow error conventions.
 -      (Fx_get_selection_internal, Fx_selection_owner_p)
 -      (Fx_selection_exists_p): Doc fixes.
 -      (syms_of_macselect) <selection-converter-alist>: Likewise.
 -
 -2005-07-21  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * buffer.c (syms_of_buffer) <cursor-type>: Doc fix.
 -
 -      * ccl.c (Fregister_ccl_program): Fix typos in docstring.
 -      (Fccl_execute_on_string): Likewise; add usage info.
 -
 -      * composite.c (Fcompose_region_internal)
 -      (Fcompose_string_internal):
 -      Improve argument/docstring consistency.
 -
 -      * minibuf.c (Fminibuffer_prompt_end, Feval_minibuffer):
 -      Fix typos in docstrings.
 -
 -      * textprop.c (Fnext_char_property_change)
 -      (Fprevious_char_property_change): Doc fixes.
 -
 -      * window.c (Fset_window_margins, Fset_window_fringes):
 -      Improve argument/docstring consistency.
 -
 -      * xfaces.c (Finternal_lisp_face_p): Doc fix.
 -
 -2005-07-21  Andreas Schwab  <schwab@suse.de>
 -
 -      * eval.c (restore_stack_limits): Return a value.
 -
 -2005-07-20  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * eval.c (Fdefvar): Doc fix.
 -
 -2005-07-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * fileio.c (Fdo_auto_save, do_auto_save_unwind):
 -      Use make_save_value to unwind protect stream.
 -
 -      * lread.c (Fload, load_unwind):
 -      Use make_save_value to unwind protect stream.
 -
 -2005-07-19  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * eval.c (Fprog2, Fcalled_interactively_p),
 -      (syms_of_eval) <debug-on-quit>: Doc fixes.
 -      (syms_of_eval) <max-specpdl-size>:
 -      (Finteractive_p): Fix typos in docstrings.
 -
 -2005-07-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * w32fns.c (Vx_hand_shape): Variable removed.
 -      (syms_of_w32fns): Intern and staticpro Qw32_charset_default.
 -
 -2005-07-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (Fstring_as_multibyte): Escape backslashes in the docstring.
 -
 -2005-07-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.h (Fgenerate_new_buffer_name): Declare (for use in coding.c).
 -
 -2005-07-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * frame.h (struct frame): New member already_hscrolled_p.
 -
 -      * xdisp.c (redisplay_internal): Only try to hscroll each frame once
 -      to avoid redisplay looping hscrolling back and forth ad infinitum.
 -
 -2005-07-18  Juri Linkov  <juri@jurta.org>
 -
 -      * buffer.c (scroll-up-aggressively, scroll-down-aggressively):
 -      * keymap.c (Fminor_mode_key_binding):
 -      * macterm.c (mac-emulate-three-button-mouse):
 -      Delete duplicate duplicate words.
 -
 -2005-07-18  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * minibuf.c (Ftest_completion): Fix odd syntax in test.
 -
 -2005-07-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (x_set_cursor_color): Use XSetBackground and XSetForeground.
 -
 -      * macgui.h (struct _XGC): New struct.
 -      (GC): Use it.
 -      (GCForeground, GCBackground, GCFont): Use X11 mask values.
 -      (XCreateGC, XParseGeometry): Move externs to macterm.h.
 -
 -      * macterm.c (x_bitmap_icon, x_make_frame_visible): Remove declarations.
 -      (XSetFont): Add declaration.
 -      (mac_set_forecolor, mac_set_backcolor, mac_set_colors):
 -      Remove functions.
 -      (GC_FORE_COLOR, GC_BACK_COLOR, GC_FONT, MAC_WINDOW_NORMAL_GC):
 -      New defines.
 -      (XDrawLine, mac_draw_line_to_pixmap, XClearWindow)
 -      (mac_draw_bitmap, XCreatePixmapFromBitmapData, XFillRectangle)
 -      (mac_draw_rectangle, mac_draw_string_common, mac_scroll_area):
 -      Use them.
 -      (mac_erase_rectangle): New function.
 -      (XClearArea, x_draw_fringe_bitmap, x_clear_glyph_string_rect)
 -      (x_draw_stretch_glyph_string): Use it.
 -      (XChangeGC, XCreateGC, XGetGCValues, XSetForeground)
 -      (XSetBackground, XSetFont): Adjust for new GC implementation.
 -      (x_draw_fringe_bitmap, x_draw_box_rect): Use GC to set colors.
 -      (XTset_vertical_scroll_bar): Clear area under scroll bar.
 -
 -      * macterm.h (struct mac_display_info): Change types of
 -      scratch_cursor_gc black_relief.gc, and white_relief.gc to GC.
 -      (XCreateGC, XParseGeometry): Move externs from macgui.h.
 -
 -      * xfaces.c [MAC_OS] (XCreateGC): Remove extern.
 -
 -2005-07-16  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (Fmake_overlay): Doc fix.
 -
 -2005-07-16  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32proc.c (syms_of_ntproc): staticpro Qhigh, Qlow,
 -      Vw32_valid_locale_ids, and Vw32_valid_codepages.
 -
 -2005-07-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c [TARGET_API_MAC_CARBON] (Fmac_code_convert_string):
 -      Use Fstring_as_unibyte instead of string_make_unibyte.
 -
 -2005-07-15  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (select_frame_for_redisplay): Use find_symbol_value.
 -
 -2005-07-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c: Fix redisplay loop in last change.
 -      (IT_POS_VALID_AFTER_MOVE_P): New macro.
 -      (move_it_vertically_backward, move_it_by_lines): Use it.
 -
 -2005-07-14  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (init_environment): Default HOME directory to user's
 -      appdata directory if possible.
 -
 -2005-07-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * .gdbinit (pitx): Fix output format.  Print string charpos.
 -
 -      * lread.c (syms_of_lread): Initialize seen_list.
 -
 -      * search.c (syms_of_search): Staticpro searchbuf.whitespace_regexp.
 -
 -      * syntax.c (syms_of_syntax): Staticpro lisp objects in gl_state.
 -      Staticpro re_match_object.
 -
 -2005-07-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macselect.c (get_scrap_target_type_list): Avoid NULL pointer
 -      dereference.
 -
 -      * macterm.c (mac_window_to_frame): Remove duplicate define.
 -
 -2005-07-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (code_convert_region_unwind): ARG is changed to a cons.
 -      (code_convert_region): Adjust for the above change.
 -      (set_conversion_work_buffer): If the work buffer is already in
 -      use, generate a new buffer and return it.  Otherwise return Qnil.
 -      (run_pre_post_conversion_on_str): Adjust for the above change.
 -      (run_pre_write_conversin_on_c_str): Likewise.
 -
 -2005-07-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (start_display): Don't reseat to next visible line start
 -      if current start position is in a string or image.
 -      (move_it_vertically_backward): Be sure to move out of strings and
 -      images when moving it2 forward.
 -      (move_it_by_lines): When moving forward, move to next buffer
 -      position if we end up in a string or image.  When moving backward,
 -      count rows moved over when moving to start of current row in case
 -      row starts in middle of a string or image.  Also move further
 -      backward if we end up in a string or image.
 -      (try_cursor_movement): If overlay string spans multiple lines,
 -      move backward to set cursor on start of an overlay string.
 -      (cursor_row_p): Row is ok if cursor is at newline from string, but
 -      string starts on this line (so we always position cursor at start
 -      of string).
 -
 -      * indent.c (Fvertical_motion): If start position is on an image,
 -      don't move back if we move too far (that's almost certain to happen).
 -
 -      * xdisp.c (cursor_row_fully_visible_p): Allow partially visible
 -      row in minibuffer windows.
 -      (try_window): Don't check margins in minibuffer windows.
 -
 -2005-07-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c: Don't include stdlib.h or composite.h.
 -      (x_use_underline_position_properties, last_mouse_press_frame)
 -      (x_noop_count, Qvendor_specific_keysyms): Remove unused variables.
 -      (syms_of_macterm, mac_initialize): Don't initialize them.
 -      (waiting_for_input, initial_argv, initial_argc)
 -      (Vcommand_line_args, Vx_no_window_manager, errno, window_scroll)
 -      (set_frame_menubar, path_from_vol_dir_name): Remove externs.
 -      (extra_keyboard_modifiers): Fix type in extern.
 -      (x_window_to_frame, x_window_to_scroll_bar): Remove declarations.
 -      (x_scroll_bar_report_motion): Add argument types to declaration.
 -      (mac_compute_glyph_string_overhangs): Add declaration.
 -      (disable_mouse_highlight): Remove unused variable.
 -      [USE_TOOLKIT_SCROLL_BARS] (construct_scroll_bar_click)
 -      (x_scroll_bar_handle_press, x_scroll_bar_handle_release)
 -      (x_scroll_bar_handle_drag): Remove argument `timestamp'.
 -      All callers changed.
 -      [USE_TOOLKIT_SCROLL_BARS] (construct_scroll_bar_click): Don't set
 -      timestamp.
 -      [USE_CARBON_EVENTS] (mac_handle_mouse_event): Likewise.
 -      (x_scroll_bar_create, XTset_vertical_scroll_bar): Show scroll bar
 -      only when its width is less than the height.
 -      (XTredeem_scroll_bar): Sync with xterm.c.
 -      (font_name_table, font_name_table_size, font_name_count):
 -      Make static.
 -      (drag_and_drop_file_list): Remove variable.  Previous use is now
 -      local to function.
 -      (do_ae_open_documents): Move DRAG_N_DROP event construction part
 -      from XTread_socket.
 -      (XTread_socket): Consolidate setting of event timestamp.
 -      Move DRAG_N_DROP event construction part to do_ae_open_documents.
 -      Support extra_keyboard_modifiers.
 -
 -      * xfaces.c (try_font_list) [MAC_OS]: Try font family name
 -      beginning with that for ASCII.
 -
 -2005-07-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c (gc_cons_combined_threshold, Vgc_cons_percentage): New vars.
 -      (Fgarbage_collect, init_alloc_once): Set gc_cons_combined_threshold.
 -      (syms_of_alloc): Declare gc-cons-percentage.
 -
 -      * eval.c (Feval, Ffuncall):
 -      * keyboard.c (read_char):
 -      * bytecode.c (MAYBE_GC): Use gc_cons_combined_threshold.
 -
 -      * lisp.h (gc_cons_combined_threshold): Declare.
 -
 -2005-07-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * coding.c (Qprocess_argument):
 -      * coding.h (Qprocess_argument): Remove unused var.
 -
 -      * xselect.c (intern): Remove dup. intern and staticpro for QTIMESTAMP.
 -
 -2005-07-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c [!TARGET_API_MAC_CARBON]: Include charset.h, coding.h, and
 -      Endian.h.
 -      [!MAC_OSX] (fchmod, fchown): New functions.
 -      (mac_get_code_from_arg): Don't accept Lisp integer as argument.
 -      Use SBYTES and EndianU32_BtoN.
 -      (mac_get_object_from_code): Return 4 byte string even if argument
 -      is 0.  Use make_unibyte_string and EndianU32_NtoB.
 -      (Fmac_get_file_creator, Fmac_get_file_type, Fmac_set_file_creator)
 -      (Fmac_set_file_type): Fix documents and argument declarations.
 -      Don't specify kFSCatInfoNodeFlags.  Support Mac OS Classic.
 -
 -2005-07-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (Frecenter): Yet another int/Lisp_Object mixup (YAILOM).
 -
 -2005-07-11  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfaces.c (x_update_menu_appearance): Use fontSet resource for
 -      Lucid if X_I18N, font otherwise.
 -
 -2005-07-10  Steven Tamm  <steventamm@mac.com>
 -
 -      * mac.c (Fmac_get_file_type, Fmac_get_file_creator): Add.
 -      (Fmac_set_file_type, Fmac_set_file_creator): Add.
 -      (mac_get_object_from_code, mac_get_code_from_arg): Add.
 -
 -2005-07-10  Richard M. Stallman  <rms@gnu.org>
 -
 -      * lread.c (Qeval_buffer_list, Veval_buffer_list): New vars.
 -      (syms_of_lread): Set up eval-buffer-list.
 -      (Feval_buffer, Feval_region): Bind eval-buffer-list.
 -
 -2005-07-08  Richard M. Stallman  <rms@gnu.org>
 -
 -      * eval.c (Fdefvar): Allow defvaring a constant to itself quoted.
 -
 -2005-07-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (menu_bar_items): Don't GCPRO menu_bar_items_vector here.
 -      (syms_of_keyboard): Initialize and staticpro menu_bar_items_vector.
 -
 -2005-07-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (Frecenter): Fix last change (set iarg before use).
 -
 -2005-07-06  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (Frecenter): When arg is inside the scroll margin,
 -      move it out of the margin.
 -
 -2005-07-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32console.c (initialize_w32_display): Detect when the console
 -      dimensions are insane, and default to 80x25 instead.
 -      (w32_use_full_screen_buffer): Default to nil.
 -
 -2005-07-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_draw_vertical_window_border): Use foreground of
 -      VERTICAL_BORDER_FACE_ID for vertical border line.
 -      (mac_encode_char): Call check_ccl_update in advance.
 -      (mac_to_x_fontname, x_font_name_to_mac_font_name)
 -      (init_font_name_table, mac_do_list_fonts, XLoadQueryFont):
 -      Don't assume that font family length is less than 32.
 -      (x_compute_min_glyph_bounds): Make static.
 -      (x_load_font): Never set fonts_changed_p to zero.
 -
 -2005-07-04  Lute Kamstra  <lute@gnu.org>
 -
 -      * Update FSF's address in GPL notices.
 -
 -2005-07-03  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (try_window): Fix previous change in how it handles
 -      a partially-visible line or one only partly past the margin.
 -
 -      * window.c (window_scroll_pixel_based): Take account
 -      of this_scroll_margin when finding point when scrolling up.
 -
 -2005-06-29  Ralf Angeli  <angeli@iwi.uni-sb.de>
 -
 -      * window.c (window_scroll_pixel_based, window_scroll_line_based):
 -      Handle `scroll-preserve-screen-position' non-nil, non-t specially.
 -      (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
 -
 -2005-07-02  Juri Linkov  <juri@jurta.org>
 -
 -      * w32term.c (w32_draw_vertical_window_border): Use foreground of
 -      VERTICAL_BORDER_FACE_ID for vertical border line.
 -
 -2005-07-02  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (Fcopy_file): Rearrange the code that calls fchown and
 -      fchmod so that chmod doesn't get called on MSDOS before the file
 -      is closed.
 -
 -2005-07-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (cleartype_active): New flag for enabling sub-pixel
 -      workaround.
 -      (w32_initialize): Initialize it.
 -      (w32_native_per_char_metric): Allow a couple of extra pixels when
 -      Cleartype is active.
 -
 -      * w32term.c (w32_initialize): Move check for screen reader here
 -      from syms_of_w32term.
 -
 -2005-06-30  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): bzero compose_status when nbytes
 -      is not zero.
 -
 -2005-07-01  Masatake YAMATO  <jet@gyve.org>
 -
 -      * emacs.c (main): Passing ADD_NO_RANDOMIZE to `personality'.
 -
 -2005-06-30  Juri Linkov  <juri@jurta.org>
 -
 -      * xdisp.c (x_draw_vertical_border): If left fringe is not present
 -      decrease x coord of vertical border by 1 pixel to not occupy text
 -      area of the right window.
 -
 -      * xterm.c (x_draw_vertical_window_border): Use foreground of
 -      VERTICAL_BORDER_FACE_ID for vertical border line.
 -
 -      * term.c (turn_on_face): In standout mode apply specified
 -      fg to bg, and specified bg to fg (this makes the logic of
 -      inversion on terminal consistent with X).
 -
 -2005-06-29  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * eval.c (user_variable_p_eh): New function.
 -      (Fuser_variable_p): Use it.  Clarify docstring.
 -      Return t for aliases of user options, nil for alias loops.
 -
 -2005-06-27  Richard M. Stallman  <rms@gnu.org>
 -
 -      * eval.c (Fdefvar): Improve error message.
 -
 -2005-06-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c [USE_CARBON_EVENTS] (mac_convert_event_ref): Fix last
 -      change.
 -
 -2005-06-27  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * eval.c (Fdefvar): Don't try to set constant symbols.
 -
 -2005-06-25  Richard M. Stallman  <rms@gnu.org>
 -
 -      * macfns.c (Fx_show_tip): Pass new arg to try_window.
 -
 -      * w32fns.c (Fx_show_tip): Pass new arg to try_window.
 -
 -      * xfns.c (Fx_show_tip): Pass new arg to try_window.
 -
 -      * xdisp.c (try_window): New arg CHECK_MARGINS.  Calls changed.
 -      (redisplay_window): Handle try_window reporting point in scroll margin.
 -
 -      * dispextern.h (try_window): Declare new arg.
 -
 -      * fileio.c (Fcopy_file): New arg PRESERVE_UID_GID.
 -      Use fchmod to copy the file modes.
 -      (Frename_file): Don't copy UID and GID here;
 -      instead, specify t for PRESERVE_UID_GID when calling Fcopy_file.
 -
 -      * eval.c (call_debugger): Take full care of extending stack limits
 -      to make space for the debugger, and restore the change afterward.
 -      Bind debug-on-error to nil.
 -      (restore_stack_limits): New subroutine.
 -      (Fsignal): Extend specpdl bound along with eval depth bound,
 -      for calling edebug.  Don't do either one, for calling debugger.
 -      (find_handler_clause): Don't bind debug-on-error here.
 -      Don't unbind anything either.
 -      Temporarily advance max_specpdl_size for calling
 -      internal_with_output_to_temp_buffer.
 -      (grow_specpdl): Don't alter max_specpdl_size before signaling
 -      an error.
 -      (syms_of_eval) <max-specpdl-size>: Doc fix.
 -
 -      * lread.c (read1): 0.0e+NaN should make a "positive" NaN.
 -
 -2005-06-24  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (Frename_file): Undo last change: no need to ifdef away
 -      chown on DOS_NT platforms.
 -
 -      * w32.c (sys_chown): New function.
 -
 -      * s/ms-w32.h (chown): New; define to sys_chown.
 -
 -2005-06-24  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xdisp.c (syms_of_xdisp) <nobreak-char-display>: Doc fix.
 -      (syms_of_xdisp) <void-text-area-pointer>: Doc fix.
 -
 -      * fileio.c (Frename_file)[!DOS_NT]: Don't call chown on MSDOS/Windows.
 -
 -2005-06-23  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (get_next_display_element): Finish reversing the tests of
 -      Vnobreak_char_display.
 -
 -      * xdisp.c (Vnobreak_char_display): Rename from Vshow_nonbreak_escape.
 -      All uses changed.
 -      (Qnobreak_space): Rename from Qno_break_space.  All uses changed.
 -      (syms_of_xdisp): Define nobreak-char-display and nobreak-space.
 -
 -      * fileio.c (Frename_file): Preserve owner and group, if possible,
 -      when copying.
 -
 -2005-06-23  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * abbrev.c (Funexpand_abbrev):
 -      * category.c (Fmake_category_set):
 -      * dispnew.c (Fsleep_for, Fsit_for):
 -      * editfns.c (Fsubst_char_in_region):
 -      * eval.c (Fdefvar, Fdefconst, Feval, Ffuncall):
 -      * frame.c (make_frame_without_minibuffer):
 -      * lread.c (read_vector):
 -      * macfns.c (check_x_frame):
 -      * process.c (Fstop_process, Fcontinue_process):
 -      * search.c (Freplace_match):
 -      * syntax.c (Fstring_to_syntax):
 -      * w32fns.c (check_x_frame, check_x_display_info):
 -      * xfaces.c (x_supports_face_attributes_p):
 -      * xselect.c (Fx_own_selection_internal): Follow error conventions.
 -
 -      * image.c (fn_png_init_io): Don't define it.
 -      (init_png_functions) [HAVE_NTGUI]: Don't initialize fn_png_init_io.
 -      (png_read_from_file): New function, based on png_read_from_memory.
 -      (png_load): Use it, instead of fn_png_init_io.
 -
 -2005-06-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * search.c (Fmatch_data): Remove evaporate option.
 -      (Fset_match_data): Do not mention evaporate option in doc string.
 -      Add commentary explaining evaporate arg (for internal use only).
 -      (unwind_set_match_data): Add comment on evaporate use.
 -
 -2005-06-22  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (Qvertical_border): Rename from `Qvertical_divider'.
 -      (realize_basic_faces, syms_of_xfaces): Update references to it.
 -      * dispextern.h (enum face_id): Rename `VERTICAL_DIVIDER_FACE_ID'
 -      to `VERTICAL_BORDER_FACE_ID'.
 -      * dispnew.c (build_frame_matrix_from_leaf_window): Update references.
 -
 -2005-06-21  Juri Linkov  <juri@jurta.org>
 -
 -      * dispextern.h: Add extern Qframe_set_background_mode.
 -
 -      * xfaces.c: Rename obsolete function Qframe_update_face_colors to
 -      Qframe_set_background_mode.
 -
 -      * frame.c (Fmodify_frame_parameters):
 -      Call frame-set-background-mode after changing the background color
 -      on non-window non-dos branch.
 -
 -2005-06-21  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fns.c (Fchar_table_range):
 -      * process.c (Fmake_network_process): Fix spellings.
 -
 -2005-06-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * fns.c (Fsort): Doc fix.
 -
 -2005-06-20  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (Qvertical_divider): New variable.
 -      (realize_basic_faces): Realize its face.
 -      (syms_of_xfaces): Initialize it.
 -
 -      * dispextern.h (enum face_id): Add `VERTICAL_DIVIDER_FACE_ID'.
 -
 -      * dispnew.c (build_frame_matrix_from_leaf_window): Display vertical
 -      window-separator on ttys using `vertical-divider' face by default.
 -
 -2005-06-17  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (get_next_display_element):
 -      Reverse test of Vshow_nonbreak_escape.
 -
 -      * term.c (produce_special_glyphs): Use spec_glyph_lookup_face.
 -      (Ftty_no_underline): New function.
 -      (syms_of_term): defsubr it.
 -
 -      * keyboard.c (read_char): Call restore_getcjmp after jump occurs.
 -
 -      * dispnew.c (spec_glyph_lookup_face): New function.
 -      (build_frame_matrix_from_leaf_window): Use it.
 -
 -      * dispextern.h (spec_glyph_lookup_face): Add declaration.
 -
 -      * buffer.c (syms_of_buffer) <cursor-type>: Doc fix.
 -
 -2005-06-12  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (read_char): After catching a longjmp,
 -      call restore_getcjmp.
 -
 -2005-06-17  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xselect.c (lisp_data_to_selection_data): Fix spelling.
 -
 -2005-06-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_compute_glyph_string_overhangs): Don't set
 -      overhangs unless the given glyph type is noncomposite CHAR_GLYPH.
 -      [USE_CARBON_EVENTS] (mac_convert_event_ref): Convert dead key down
 -      events.
 -      (XTread_socket): Don't pass keyboard events with the option
 -      modifier to the system when Vmac_command_key_is_meta is nil or
 -      Vmac_option_modifier is non-nil.
 -      [USE_CARBON_EVENTS] (read_socket_inev): New variable.
 -      [USE_CARBON_EVENTS] (init_command_handler): Fix argument.
 -      [USE_CARBON_EVENTS] (mac_handle_mouse_event): New Carbon event
 -      handler function.
 -      (install_window_handler) [USE_CARBON_EVENTS]: Install it.
 -      (XTread_socket) [USE_CARBON_EVENTS]: Move mouse wheel event
 -      handler part to mac_handle_mouse_event.
 -
 -2005-06-14  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * eval.c (Fdefvaralias): Rename arguments SYMBOL and ALIASED to
 -      NEW-ALIAS and BASE-VARIABLE, respectively.
 -
 -2005-06-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight): Lisp_Object/int mixup.
 -      (get_phys_cursor_geometry, format_mode_line_unwind_data)
 -      (get_line_height_property, x_produce_glyphs): Remove unused vars.
 -
 -      * coding.c (run_pre_post_conversion_on_str): Remove unused var `buf'.
 -
 -2005-06-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32term.c (x_use_underline_position_properties): New variable.
 -      (x_draw_glyph_string): Remind in a comment to change doc string of
 -      x-use-underline-position-properties if/when underline positioning
 -      is implemented.
 -      (syms_of_w32term): DEFVAR_BOOL x-use-underline-position-properties,
 -      and initialize it to nil.
 -
 -2005-06-12  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (NEWOPENFILENAME): New struct.
 -      (Fx_file_dialog): Use it to trick the system into giving us up to
 -      date dialogs on systems that are documented to support it.
 -      Do not set OFN_FILEMUSTEXIST flag if looking for a directory.
 -
 -2005-06-12  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32fns.c (w32_abort): Use the MB_YESNO dialog instead of
 -      MB_ABORTRETRYIGNORE.  Never return, even if DebugBreak does.
 -
 -2005-06-11  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * image.c (x_create_x_image_and_pixmap) [HAVE_NTGUI]: Cast 4th arg
 -      to CreateDIBSection to avoid a compiler warning.
 -      (pbm_load): Cast 3rd arg to IMAGE_BACKGROUND to avoid a compiler
 -      warning.
 -      (png_load): Cast return values of fn_png_create_read_struct and
 -      fn_png_create_info_struct, to avoid compiler warnings on W32.
 -      Cast 3rd arg to IMAGE_BACKGROUND and image_background_transparent
 -      to avoid compiler warnings.
 -      (jpeg_load): Cast return value of fn_jpeg_std_error to avoid a
 -      compiler warning on W32.  Cast 3rd arg to IMAGE_BACKGROUND to
 -      avoid a compiler warning.
 -      (tiff_load): Cast return values of fn_TIFFOpen and
 -      fn_TIFFClientOpen to avoid compiler warning on W32.  Cast 3rd arg
 -      to IMAGE_BACKGROUND to avoid a compiler warning.
 -      (gif_load): Cast return values of fn_DGifOpenFileName and
 -      fn_DGifOpen to avoid compiler warnings on W32.  Cast 3rd arg to
 -      IMAGE_BACKGROUND to avoid a compiler warning.
 -      (DrawText) [HAVE_NTGUI || MAC_OS]: If already defined, undef
 -      before redefining.
 -
 -      * w32bdf.c (create_offscreen_bitmap): Cast `bitsp' to `void **' in
 -      the call to CreateDIBSection, to avoid a compiler warning.
 -
 -2005-06-11  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fx_file_dialog): Unblock input before falling back to
 -      minibuffer.
 -      * macfns.c (Fx_file_dialog): Likewise.
 -
 -2005-06-10  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * makefile.w32-in ($(TEMACS)): Depend on addsection.exe.
 -
 -2005-06-10  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * process.c (syms_of_process) [ADAPTIVE_READ_BUFFERING]:
 -      * w32fns.c (syms_of_w32fns): Fix spellings.
 -
 -2005-06-10  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * unexw32.c (COPY_CHUNK, COPY_PROC_CHUNK): Add a new argument
 -      `verbose'; print diagnostic messages only if it is non-zero.
 -      All callers changed to pass a zero value unless DEBUG_DUMP is defined
 -      in the environment.
 -      (copy_executable_and_dump_data): Print section names with %.8s.
 -
 -2005-06-10  Masatake YAMATO  <jet@gyve.org>
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight): Call clear_mouse_face
 -      when mouse_face is not given.
 -
 -2005-06-09  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * window.c (Fselect_window): Adapt call to Fselect_frame.
 -
 -      * lisp.h: Update EXFUN of Fselect_frame.
 -
 -      * keyboard.c (command_loop_1): Adapt call to Fselect_frame.
 -
 -      * frame.c (Fhandle_switch_frame, Fselect_frame): Delete unused arg
 -      no_enter.
 -      (Fset_mouse_position, Fset_mouse_pixel_position, Ficonify_frame):
 -      Adapt to above change.
 -
 -2005-06-10  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fns.c (Fmemq, Fmaphash): Doc fixes.
 -
 -2005-06-09  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xfaces.c (Fdisplay_supports_face_attributes_p):
 -      Fix typo in docstring.
 -
 -2005-06-08  Steven Tamm  <steventamm@mac.com>
 -
 -      * unexmacosx.c (copy_data_segment): Copy __la_sym_ptr2 section
 -      used by gcc4 on intel mac.
 -
 -2005-06-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * search.c (Fmatch_data): Add optional RESEAT arg.  Unchain markers
 -      in REUSE list if non-nil; free them if equal to evaporate.
 -      (Fset_match_data): Add optional RESEAT arg.  Unchain markers in LIST
 -      if non-nil; free them if equal to evaporate.  Use XCAR/XCDR.
 -      (restore_search_regs): Rename from restore_match_data.  Uses changed.
 -      (unwind_set_match_data): New function.
 -      (record_unwind_save_match_data): New function like save-match-data.
 -
 -      * lisp.h (Fmatch_data, Fset_match_data): Fix EXFUN.
 -      (record_unwind_save_match_data): Add prototype.
 -      (restore_search_regs): Rename from restore_match_data.
 -
 -      * composite.c (compose_chars_in_text):
 -      * eval.c (do_autoload):
 -      * macmenu.c (set_frame_menubar):
 -      * process.c (read_process_output, exec_sentinel):
 -      * xmenu.c (set_frame_menubar):
 -      * xdisp.c (prepare_menu_bars, update_menu_bar, update_tool_bar):
 -      * w32menu.c (set_frame_menubar):
 -      Use record_unwind_save_match_data.
 -
 -2005-06-08  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (get_next_display_element): Alter previous change:
 -      Distinguish Vshow_nonbreak_escape = t or not t.
 -      For t, use escape_glyph once again, as before previous change.
 -      Use space or hyphen for display, instead of the non-ASCII char.
 -      (syms_of_xdisp) <show-nonbreak-escape>: Doc fix.
 -
 -      * process.c (Fstart_process): Don't touch command_channel_p slot.
 -
 -      * process.h (struct process): Delete command_channel_p.
 -
 -2005-06-07  Masatake YAMATO  <jet@gyve.org>
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight):
 -      Check the overlapping of re-rendering area to avoid flickering.
 -      (note_mouse_highlight): Call clear_mouse_face if PART
 -      is not ON_MODE_LINE nor ON_HEADER_LINE.
 -
 -2005-06-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c: Improve commentary for adaptive read buffering.
 -
 -2005-06-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xterm.c (x_create_toolkit_scroll_bar): Use XtNarrowScrollbars
 -      if available.
 -
 -2005-06-06  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * macmenu.c (menu_quit_handler, install_menu_quit_handler):
 -      New functions for popping down menus on C-g.
 -      (set_frame_menubar, mac_menu_show): Call install_menu_quit_handler.
 -
 -      * macterm.c: Make mac_quit_char_modifiers and mac_quit_char_keycode
 -      non-static.
 -
 -      * config.in: Add HAVE_CANCELMENUTRACKING.
 -
 -2005-06-06  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32heap.h (OFFSET_TO_RVA, RVA_TO_OFFSET, RVA_TO_PTR): Remove macros.
 -
 -      * unexw32.c (RVA_TO_PTR): Move here from w32heap.h.
 -
 -      * w32proc.c (RVA_TO_PTR): New macro.
 -
 -      * w32heap.c (RVA_TO_PTR): No need to #undef now.
 -
 -      * makefile.w32-in ($(BLD)/emacs.$(O), $(BLD)/w32select.$(O)):
 -      Depend on w32heap.h.
 -
 -2005-06-06  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * keyboard.c (command_loop_1): Update Vthis_original_command.
 -
 -2005-06-06  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xmenu.c (popup_get_selection): Undo previous change.
 -
 -2005-06-06  Juri Linkov  <juri@jurta.org>
 -
 -      * xdisp.c (Qno_break_space): New variable.
 -      (syms_of_xdisp): Initialize it.
 -      (get_next_display_element): Add no-break space and soft hypen
 -      codes for iso8859-2 and iso8859-5.  Don't add `\' for them.
 -      Use `no-break-space' face for no-break spaces.
 -
 -2005-06-06  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * window.c (delete_window): Handle the case where a h/vchild has
 -      a h/vchild.
 -
 -2005-06-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (sys_setsockopt): Change arg 4 to `const void *'.  In the
 -      call to pfn_setsockopt, cast optval to `const char *'.
 -
 -2005-06-04  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (gettimeofday): Use struct _timeb, not struct timeb.
 -      (open_unc_volume): Cast return value of map_w32_filename, to avoid
 -      compiler warnings.
 -
 -      * s/ms-w32.h (fileno): Don't define if already defined.
 -
 -      * emacs.c: Include w32heap.h, to avoid compiler warning about sbrk.
 -
 -      * makefile.w32-in (DOC): Define to point to the generated DOC-X.
 -
 -2005-06-04  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xmenu.c (popup_get_selection): Click not in menu deactivates menu.
 -
 -2005-06-04  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * macmenu.c (cleanup_popup_menu): New function.
 -      (Fx_popup_menu): Unwind protect cleanup_popup_menu in case
 -      mac_menu_show Quit:s.
 -      (mac_menu_show): Quit on cancel if not popped up on click (i.e.
 -      a dialog).
 -
 -2005-06-04  Kim F. Storm  <storm@cua.dk>
 -
 -      * coding.c (decode_coding_string): Handle CODING_FINISH_INTERRUPT.
 -
 -      * callproc.c (Fcall_process): Don't use alloca to gradually
 -      increase size of buf, as it effectively uses twice the necessary
 -      space on the stack.  Instead, pre-allocate buf of full size, and
 -      gradually increase the read size.
 -
 -      * bytecode.c (BYTE_CODE_QUIT): Check Vthrow_on_input.
 -
 -      * eval.c (unbind_to): Preserve value of Vquit_flag.
 -
 -      * xterm.c (handle_one_xevent): Also ignore mouse motion just
 -      before a button release event.
 -
 -2005-06-03  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * xfaces.c (Finternal_lisp_face_equal_p): Really report
 -      on faces in a frame, if the argument FRAME is non-nil.
 -      Improve argument/docstring consistency.
 -
 -2005-06-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (MODE_LINE_NOPROP_LEN): New macro.
 -      (x_consider_frame_title, Fformat_mode_line): Save offset into
 -      mode_line_noprop_buf rather than pointer, in case buffer is relocated.
 -
 -2005-06-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * fns.c (mapcar1): Maybe exit loop if original sequence was modified.
 -
 -2005-06-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_to_x_fontname, mac_do_list_fonts): Set XLFD
 -      resolution fields for scalable fonts to 0.
 -
 -      * xfaces.c (build_scalable_font_name): Round pixel size to the
 -      nearest integer.
 -
 -2005-06-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (display_mode_line): Support nested calls to redisplay
 -      and format-mode-line.  Set mode_line_target to MODE_LINE_DISPLAY.
 -
 -2005-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Finsert_file_contents):
 -      * xdisp.c (note_mode_line_or_margin_highlight): Lisp_Object/int mixup.
 -
 -2005-05-31  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (mode_line_noprop_buf, mode_line_noprop_buf_end)
 -      (mode_line_noprop_ptr): Rename from frame_title_*.
 -      (store_mode_line_noprop_char): Rename from store_frame_title_char.
 -      (store_mode_line_noprop): Rename from store_frame_title.
 -      (mode_line_target): New enum to specify current output target
 -      for mode line formatting.
 -      (display_mode_element): Test it rather than frame_title_ptr and
 -      mode_line_string_list to determine where output should go.
 -      (mode_line_proptrans_alist, mode_line_string_alist): Make static.
 -      (Vmode_line_unwind_vector): New variable.
 -      (format_mode_line_unwind_data, unwind_format_mode_line):
 -      New functions for unwind protection in mode line formatting.
 -      (x_consider_frame_title): Use them and new local var 'title_start'
 -      to support nested calls to format-mode-line and redisplay.
 -      Set mode_line_target to MODE_LINE_TITLE.
 -      (Fformat_mode_line): Use them and new local var 'string_start' to
 -      support nested calls to format-mode-line and redisplay.
 -      Set mode_line_target to MODE_LINE_NOPROP or MODE_LINE_STRING.
 -      Don't trim trailing dashes.
 -      (decode_mode_spec): Don't make infinite number of trailing dashes
 -      for MODE_LINE_NOPROP and MODE_LINE_STRING targets.
 -      (syms_of_xdisp): Initialize and staticpro mode_line_string_face,
 -      mode_line_string_face_prop, and Vmode_line_unwind_vector.
 -      (init_xdisp): Initialize mode_line_noprop_ptr to start of _buf.
 -      Initialize mode_line_target to MODE_LINE_DISPLAY.
 -
 -2005-05-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (Fbuffer_local_value): Call indirect_variable.
 -
 -2005-05-28  Masatake YAMATO  <jet@gyve.org>
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight): Change the
 -      pointer to a hand cursor when hoovering over a mouse-face.
 -
 -2005-05-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_encode_char): Call check_ccl_update in advance.
 -
 -      * ccl.c: Now an element of Vccl_program_table is a vector of
 -      length 4, not 3.
 -      (ccl_get_compiled_code): New arg idx.  Caller changed.
 -      Adjust for the change of Vccl_program_table.
 -      (setup_ccl_program): Adjust for the change of Vccl_program_table.
 -      (check_ccl_update): New function.
 -      (Fregister_ccl_program): Use ASET to set an element of a vector.
 -      Adjusted for the change of Vccl_program_table.
 -
 -      * ccl.h (struct ccl_program): New member idx.
 -      (check_ccl_update): Extern it.
 -
 -2005-05-27  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * image.c (Vimage_library_alist): Move from image.el.
 -      (syms_of_image): Defvar it.
 -      (lookup_image_type): Use it.
 -
 -      * buffer.c (Fbuffer_local_value): Make argument name match its use
 -      in docstring.
 -
 -2005-05-26  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * keyboard.c (Frecursive_edit): Fix typo in docstring.
 -      (Fposn_at_x_y): Make argument name match its use in docstring.
 -
 -2005-05-26  Lute Kamstra  <lute@gnu.org>
 -
 -      * eval.c (Frun_hooks): Mention run-mode-hooks in docstring.
 -
 -2005-05-24  Masatake YAMATO  <jet@gyve.org>
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight): Use b and e
 -      as loop sentinels.
 -
 -2005-05-24  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * xmenu.c (Fx_popup_dialog): Add a third boolean argument to
 -      select frame title ("Question"/"Information").
 -      (xdialog_show): Use it.
 -
 -      * macmenu.c (Fx_popup_dialog, mac_dialog_show): As for xmenu.c.
 -
 -      * w32menu.c (Fx_popup_dialog, w32_dialog_show): As for xmenu.c.
 -
 -      * fns.c (Fyes_or_no_p, Fy_or_n_p): Call Fx_popup_dialog with
 -      a third argument (Qnil).
 -
 -      * lisp.h: x-popup-dialog can have three arguments.
 -
 -      * editfns.c (Fmessage_box): Use "Information" for frame title.
 -
 -2005-05-23  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * termcap.c [VMS]: Include <starlet.h>.
 -
 -2005-05-23  Masatake YAMATO  <jet@gyve.org>
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight): Add code
 -      for mouse-face.  Change the type of the first argument from `window'
 -      to `Lisp_Object'.
 -      (note_mouse_highlight): Call note_mode_line_or_margin_highlight with
 -      window instead of w.
 -
 -2005-05-22  Andreas Schwab  <schwab@suse.de>
 -
 -      * process.c (send_process): Move misplaced volatile.
 -
 -2005-05-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (display_mode_element): If we're processing a list and
 -      padding is specified, put it after the last element.
 -
 -2005-05-21  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (Fexpand_file_name) [DOS_NT]: Don't try to support
 -      "superroot" on DOS_NT systems.
 -
 -2005-05-21  David Hunter  <hunterd42@comcast.net>  (tiny change)
 -
 -      * process.c (send_process): Restore the SIGPIPE handler if we
 -      catch a SIGPIPE.
 -
 -2005-05-20  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * image.c (lookup_image, png_read_from_memory): Remove hacks (and
 -      misleading comments).
 -      (DEF_IMGLIB_FN): Use C calling convention for image libraries.
 -
 -2005-05-20  KOBAYASHI Yasuhiro  <kobayays@otsukakj.co.jp>
 -
 -      * window.c (Fwindow_inside_edges, Fwindow_inside_pixel_edges):
 -      Correct the right value.
 -
 -2005-05-19  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * keyboard.c (syms_of_keyboard): Remove Lisp variables
 -      post-command-idle-hook and post-command-idle-delay.
 -      (command_loop_1): Don't try to execute post-command-idle-hook.
 -
 -2005-05-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (handle_display_prop): Handle empty replacement.
 -      (handle_single_display_spec): Return -1 for empty replacement.
 -
 -      * keyboard.c (adjust_point_for_property): Skip empty overlay string.
 -
 -      * .gdbinit (pitx): Print more info about iterator.
 -
 -2005-05-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * unexmacosx.c (unexec_realloc): Move declarations before statements.
 -
 -2005-05-14  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (message3): Call cancel_echoing.
 -
 -      * alloc.c (Fmemory_full_p): New function.
 -      (syms_of_alloc): defsubr it.
 -
 -      * process.c (send_process_trap): Unblock SIGPIPE.
 -      (send_process): Reset SIGPIPE handler before reporting error.
 -
 -2005-05-14  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * emacs.c (syms_of_emacs): Fix doc string for system-type.
 -
 -2005-05-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Ffind_file_name_handler): Handle lambda-exp as handler.
 -      (Finsert_file_contents): If we read 0 bytes from a special file,
 -      unlock the visited file if we locked it.
 -      (Fmake_symbolic_link, Frecent_auto_save_p): Doc fixes.
 -      (Ffile_exists_p, Ffile_symlink_p): Doc fixes.
 -
 -2005-05-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * emacs.c (main) [MAC_OS8]: Call init_atimer before mac_term_init.
 -
 -      * keyboard.c (readable_events) [USE_TOOLKIT_SCROLL_BARS]:
 -      Regard toolkit scroll bar thumb drag events as squeezable and prevent
 -      redisplay from being paused by them.
 -
 -      * mac.c [!MAC_OSX]: Include keyboard.h and syssignal.h.
 -      [!MAC_OSX] (target_ticks): Remove variable.
 -      [!MAC_OSX] (check_alarm, pause, index): Remove functions.
 -      [!MAC_OSX && __MRC__] (sys_strftime): Likewise.
 -      [!MAC_OSX] (select): If fd 0 is not set in rfds and some input
 -      event occurs before timeout, behave as if the function were interrupted.
 -      [!MAC_OSX] (sigblock, sigsetmask, alarm): Simulate SIGALRM
 -      handling using Time Manager routines.
 -      [!MAC_OSX] (mac_atimer_task, mac_atimer_qlink, signal_mask):
 -      New variables.
 -      [!MAC_OSX] (mac_atimer_handler, set_mac_atimer, remove_mac_atimer)
 -      (setitimer): New functions.
 -
 -      * macfns.c, macmenu.c: Don't include signal.h.
 -
 -      * macterm.c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
 -      Rename from get_control_part_bound.  All callers changed.
 -      (x_scroll_bar_clear): New function.
 -      (x_clear_frame): Use it.
 -      (XTset_vertical_scroll_bar): Don't call Draw1Control.
 -      (x_scroll_bar_handle_click): Change type of second argument from
 -      int to ControlPartCode.
 -      (check_alarm): Remove declaration.
 -      (XTread_socket) [!TARGET_API_MAC_CARBON]: Don't call it.
 -      (XTread_socket): Use ControlPartCode instead of SInt16.
 -
 -2005-05-13  Nozomu Ando  <nand@mac.com>
 -
 -      * unexmacosx.c: Include assert.h.
 -      (MACOSX_MALLOC_MULT16): New define.
 -      [MACOSX_MALLOC_MULT16] (ptr_in_unexec_regions): Determine whether
 -      ptr is in unexec regions by checking it is multiple of 16.
 -      (unexec_malloc_header_t): New typedef.
 -      (unexec_malloc, unexec_realloc, unexec_free): Store and use
 -      allocated size information in unexec_malloc_header.
 -
 -2005-05-10  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xterm.c (noinclude): Add #undef.
 -
 -      * image.c, xfns.c, xmenu.c: Don't include signal.h.
 -
 -2005-05-09  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fileio.c (Fexpand_file_name, Frename_file, Fadd_name_to_file)
 -      (Fmake_symbolic_link, Faccess_file, Frecent_auto_save_p):
 -      Doc fixes.
 -
 -      * dired.c (Ffile_name_completion): Make argument name
 -      match its use in docstring.
 -
 -2005-05-08  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * eval.c (Fdefvaralias): Remove any pre-existing
 -      variable-documentation property of the alias.
 -
 -2005-05-07  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * xfns.c (start_hourglass): Do nothing when running on a tty.
 -
 -2005-05-07  Juanma Barranquero  <lekktu@gmail.com>
 -
 -      * fns.c (Fchar_table_range): Fix typos in docstring.
 -
 -2005-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fns.c (Fchar_table_range): Yet Another Int/Lisp_Object Mixup.
 -
 -2005-05-06  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * lread.c (Flocate_file_internal): Doc fix.
 -
 -      * Makefile.in (lisp, shortlisp): Add jka-cmpr-hook.elc.
 -
 -2005-05-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macselect.c (x_own_selection): Accept Lisp string as result of
 -      selection converter function.
 -      (x_clear_frame_selections): Don't call x-lost-selection-functions
 -      if Emacs is not owner of the selection.
 -      (Vmac_services_selection): Put variable and initialization in
 -      #ifdef MAC_OSX.
 -      (syms_of_macselect) [MAC_OSX]: Set default value of
 -      Vmac_services_selection to PRIMARY.
 -
 -      * macterm.c (toolkit_scroll_bar_interaction): Remove unused variable.
 -      (mac_handle_tool_bar_click): Remove unused function and declaration.
 -      [USE_TOOLKIT_SCROLL_BARS] (scroll_bar_timer_callback)
 -      (install_scroll_bar_timer, set_scroll_bar_timer)
 -      (control_part_code_to_scroll_bar_part, construct_scroll_bar_click)
 -      (get_control_part_bound, x_scroll_bar_handle_press)
 -      (x_scroll_bar_handle_release, x_scroll_bar_handle_drag)
 -      (x_set_toolkit_scroll_bar_thumb): New functions and declarations.
 -      [USE_TOOLKIT_SCROLL_BARS] (last_scroll_bar_part, scroll_bar_timer)
 -      (scroll_bar_timer_event_posted_p): New variables.
 -      [USE_TOOLKIT_SCROLL_BARS] (SCROLL_BAR_FIRST_DELAY)
 -      (SCROLL_BAR_CONTINUOUS_DELAY): New macros.
 -      (x_scroll_bar_create): Set control reference with NewControl.
 -      (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]:
 -      Initialize track_top and track_height to nil.
 -      (x_scroll_bar_set_handle, x_scroll_bar_note_movement):
 -      Put functions in #ifndef USE_TOOLKIT_SCROLL_BARS.
 -      (XTset_vertical_scroll_bar): Don't make space between scroll bar
 -      and associated window.
 -      (XTset_vertical_scroll_bar) [MAC_OSX]: Get scroll bar area width
 -      from window config.
 -      (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
 -      Set track_top and track_height to nil when scroll bar size is changed.
 -      Recalculate them if they are nil.
 -      (XTread_socket) [MAC_OSX]: Use control kind to determine if the
 -      clicked control is a scroll bar.
 -      (XTread_socket) [USE_TOOLKIT_SCROLL_BARS]: Use toolkit scroll bar
 -      event handler functions.  Don't add modifiers to scroll bar click
 -      events.  Call scroll bar release handler when window is deactivated.
 -      (mac_initialize): Remove unused code for X toolkit.
 -      (syms_of_macterm) [!USE_TOOLKIT_SCROLL_BARS]:
 -      Initialize Vx_toolkit_scroll_bars to nil.
 -
 -      * macterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
 -      New members track_top and track_height.
 -
 -      * sysselect.h [DARWIN || MAC_OSX]: Temporarily undefine
 -      init_process when including sys/select.h.
 -
 -2005-05-05  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * eval.c (Fdefvaralias): Doc fix.
 -
 -      * xmenu.c (Fx_popup_menu, Fx_popup_dialog): Doc fixes.
 -
 -2005-05-05  Kim F. Storm  <storm@cua.dk>
 -
 -      * buffer.c (init_buffer_once): Set cursor_in_non_selected_windows
 -      default value.
 -      (syms_of_buffer): Add default-cursor-in-non-selected-windows.
 -      Fix type of cursor-in-non-selected-windows.
 -
 -2005-05-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * mac.c: #undef init_process so not to conflict with system headers.
 -
 -2005-05-02  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (syms_of_buffer): Define cursor-in-non-selected-windows.
 -
 -      * buffer.h (struct buffer): Add cursor_in_non_selected_windows slot.
 -
 -      * xdisp.c (Vcursor_in_non_selected_windows)
 -      (Qcursor_in_non_selected_windows): Vars deleted.
 -      (syms_of_xdisp): Don't initialize them.
 -      (get_window_cursor_type): Use cursor_in_non_selected_windows
 -      buffer slot.
 -
 -2005-05-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * macros.c (executing_kbd_macro_index): Rename from
 -      executing_macro_index.  All uses changed.
 -      (executing_kbd_macro_iterations): Rename from
 -      executing_macro_iterations.  All uses changed.
 -      (executing_kbd_macro): Rename from executing_macro.
 -      All uses changed.
 -      (syms_of_macros): Rename Lisp var executing-macro-index to
 -      executing-kbd-macro-index.
 -
 -      * xdisp.c (move_it_in_display_line_to): Fix last change.
 -
 -2005-05-01  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * xmenu.c (Fx_popup_menu): Doc fix.
 -
 -      * charset.c (syms_of_charset): Delete defsubr for Schars_in_region.
 -
 -2005-05-02  Jason Rumney  <jasonr@gnu.org>
 -
 -      * emacs.c (USAGE3, USAGE4): Keep strings below 2048 bytes.
 -
 -2005-05-02  Nozomu Ando  <nand@mac.com>
 -
 -      * sysselect.h: Fix typo.
 -
 -2005-05-02  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * charset.c (Fchars_in_region): Remove as obsolete.
 -
 -2005-05-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (move_it_in_display_line_to): Stop if we move beyond
 -      TO_CHARPOS.  This may happen if last glyphs was an image or stretch
 -      glyph.
 -
 -2005-05-01  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * dispnew.c (sit_for): Vexecuting_macro -> Vexecuting_kbd_macro.
 -
 -2005-05-01  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xmenu.c [not HAVE_X_TOOLKIT] (xmenu_show):
 -      If user cancels the menu, quit unless FOR_CLICK.
 -
 -      * macros.c (Vexecuting_kbd_macro): Rename from Vexecuting_macro.
 -      All uses changed.
 -      (syms_of_macros): Define only executing-kbd-macro, not executing-macro.
 -      * keyboard.c: Change Vexecuting_macro to Vexecuting_kbd_macro.
 -      * macros.h (Vexecuting_kbd_macro): Declare instead of Vexecuting_macro.
 -      * commands.h (Vexecuting_kbd_macro): Likewise.
 -
 -2005-05-01  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * sysdep.c (get_frame_size) [VMS]: Use a fresh i/o channel.
 -
 -2005-04-30  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Ffind_file_name_handler): Handle the `operations'
 -      property of the file name handler.
 -      (Qoperations): New variable.
 -      (syms_of_fileio): Initialize and staticpro it.
 -
 -      * xdisp.c (set_message_1): Delete xassert.
 -
 -2005-04-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c: Don't include time.h.  Include sysselect.h after systime.h.
 -
 -      * macfns.c (Fx_server_version): Add BLOCK_INPUT around Gestalt.
 -
 -      * macgui.h [HAVE_CARBON && MAC_OSX]: Don't undefine/define mktime
 -      before/after including Carbon.h if there is a working mktime.
 -
 -2005-04-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * xfaces.c (resolve_face_name): Add arg SIGNAL_P.  Calls changed.
 -      Fix cyclic alias check.  If alias loop is detected, signal
 -      circular-list error if SIGNAL_P, and return Qdefault if !SIGNAL_P.
 -
 -2005-04-28  Lute Kamstra  <lute@gnu.org>
 -
 -      * eval.c (do_autoload): Record only autoloads in the autoload
 -      property of symbols.
 -
 -2005-04-28  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * emacs.c (USAGE1): Add --basic-display and --quick options.
 -
 -2005-04-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * data.c (syms_of_data) Staticpro Qcyclic_variable_indirection.
 -
 -2005-04-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (Fsame_window_p, Fspecial_display_p): Doc fixes.
 -      (syms_of_window): Doc fixes.
 -
 -      * indent.c (Fvertical_motion): Undo previous change.
 -
 -2005-04-26  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (char_table_range): New function.
 -      (Fchar_table_range): Signal an error if characters in the range
 -      have inconsistent values.  Don't check the parent.
 -
 -2005-04-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_set): Fix previous change.
 -
 -2005-04-24  Richard M. Stallman  <rms@gnu.org>
 -
 -      * indent.c (Fvertical_motion): Bind fontification-functions to nil.
 -
 -2005-04-24  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * regex.c (re_search_2, re_match_2_internal): Convert second arg
 -      of RE_TRANSLATE to int, to shut up GCC warnings.
 -
 -      * fileio.c (Fcopy_file): Doc fix.
 -      [MSDOS]: Fix call to emacs_open: buffer_file_type not defined and
 -      not needed.
 -
 -2005-04-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * Makefile.in [HAVE_CARBON] (MAC_OBJ): Add macselect.o.
 -      (SOME_MACHINE_OBJECTS): Likewise.
 -      (mac.o): Depend on ccl.h.
 -      (macselect.o): New target.
 -
 -      * emacs.c (main) [MAC_OS8 || MAC_OSX && HAVE_CARBON]:
 -      Call syms_of_macselect.
 -
 -      * frame.c (Fdelete_frame) [MAC_OS]: Call x_clear_frame_selections.
 -
 -      * mac.c [!TARGET_API_MAC_CARBON]: Don't include charset.h or coding.h.
 -      (QCLIPBOARD): Remove variable.
 -      (syms_of_mac): Don't initialize it.
 -      (Fmac_paste_function, Fmac_cut_function, Fx_selection_exists_p):
 -      Remove functions.
 -      (syms_of_mac): Don't defsubr them.
 -      [TARGET_API_MAC_CARBON] (Qmime_charset, QNFD, QNFKD, QNFC, QNFKC)
 -      (QHFS_plus_D, QHFS_plus_C): New variables.
 -      (syms_of_mac) [TARGET_API_MAC_CARBON]: Initialize them.
 -      [TARGET_API_MAC_CARBON] (get_cfstring_encoding_from_lisp)
 -      (cfstring_create_normalized): New functions.
 -      [TARGET_API_MAC_CARBON] (Fmac_code_convert_string): Likewise.
 -      (syms_of_mac) [TARGET_API_MAC_CARBON]: Defsubr it.
 -
 -      * macterm.c (handling_window_update, terminate_flag):
 -      Remove variables.
 -      (do_window_update, do_ae_quit_application, XTread_socket):
 -      Don't use them.
 -      (WNE_SLEEP_AT_SUSPEND, WNE_SLEEP_AT_RESUME): Don't define.
 -      [USE_CARBON_EVENTS && MAC_OSX] (mac_handle_service_event)
 -      (init_service_handler): Move to macselect.c.  Remove declarations.
 -      [USE_CARBON_EVENTS && MAC_OSX] (init_service_handler): Add extern.
 -      (Qapplication, Qabout): New variables.
 -      (syms_of_mac): Initialize them.
 -      [USE_CARBON_EVENTS && MAC_OSX] (Qpreferences, Qservices, Qpaste)
 -      (Qperform): New variables.
 -      (syms_of_mac) [USE_CARBON_EVENTS && MAC_OSX]: Initialize them.
 -      (do_get_menus) [TARGET_API_MAC_CARBON]: Don't call AppendResMenu.
 -      (do_menu_choice): Unhighlight menu bar also when menu_id is 0.
 -      (mac_store_application_menu_event, init_menu_bar): New functions.
 -      [USE_CARBON_EVENTS] (mac_handle_command_event)
 -      (init_command_handler): New functions.
 -      (mac_handle_window_event): Return noErr on window update event.
 -      (do_ae_quit_application): Call mac_store_application_menu_event.
 -      (mac_initialize) [USE_CARBON_EVENTS]: Call init_command_handler
 -      and init_menu_bar.
 -
 -      * macterm.h (x_clear_frame_selections): Add extern.
 -
 -      * macselect.c: New file for selection processing on Mac OS.
 -
 -2005-04-23  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Fcopy_file): New arg MUSTBENEW.
 -      (Frename_file): Pass new arg to Fcopy_file.
 -
 -      * window.c (window_size_fixed): Variable deleted.
 -      (syms_of_window): Initialize window-size-fixed to nil.
 -      But don't DEFVAR window_size_fixed.
 -
 -2005-04-23  Andreas Schwab  <schwab@suse.de>
 -
 -      * m/macppc.h (LD_SWITCH_MACHINE) [LINUX]: Don't define.
 -      (START_FILES, LIB_STANDARD) [LINUX && _ARCH_PPC64]: Override to
 -      use lib64 instead of lib.
 -      (_LP64) [_ARCH_PPC64]: Define if not defined.
 -
 -2005-04-23  David Hunter  <hunterd42@comcast.net>  (tiny change)
 -
 -      * s/ms-w32.h (HAVE_PWD_H): Define.
 -
 -2005-04-22  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (copy_sub_char_table): Explicitly copy the default value
 -      of the sub-chartable.
 -
 -      * fontset.c (fontset_set): When a sub-chartable is created,
 -      explicitly sets the defalt value.
 -
 -2005-04-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * fns.c (Fplist_get): Replace by Fsafe_plist_get.
 -      (Fsafe_plist_get): Rename to Fplist_get.
 -      (Fsafe_get): Remove, as Fget now uses safe Fplist_get.
 -      (defsubr): Remove defsubr for Fsafe_plist_get and Fsafe_get.
 -
 -      * lisp.h (Fsafe_plist_get, Fsafe_get): Remove EXFUN.
 -
 -      * xdisp.c (store_mode_line_string, produce_stretch_glyph)
 -      (note_mode_line_or_margin_highlight, note_mouse_highlight):
 -      Use Fplist_get instead of Fsafe_plist_get.
 -
 -      * xfaces.c (resolve_face_name): Use Fget instead of Fsafe_get.
 -
 -2005-04-21  Miles Bader  <miles@gnu.org>
 -
 -      * xdisp.c (dump_glyph_row): Don't display overlay_arrow_p field.
 -
 -2005-04-20  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * sysdep.c: Remove reference to defunct vms-pwd.h.
 -      * dired.c: Likewise.  Also, for pwd.h, use HAVE_PWD_H, not !VMS.
 -      * editfns.c, fileio.c, filelock.c, sysdep.c, xrdb.c: Likewise.
 -
 -      * config.in: Regenerate.
 -
 -2005-04-20  Kenichi Handa  <handa@m17n.org>
 -
 -      * lisp.h (CHAR_TABLE_DEFAULT_SLOT_ASCII): New macro.
 -      (CHAR_TABLE_DEFAULT_SLOT_8_BIT_CONTROL): New macro.
 -      (CHAR_TABLE_DEFAULT_SLOT_8_BIT_GRAPHIC): New macro.
 -
 -      * alloc.c (make_sub_char_table): Argument changed to initial
 -      value of the slots.
 -
 -      * data.c (Faref): Handle special slots used as default values of
 -      ascii, eight-bit-control, eight-bit-control.  Don't ignore a
 -      default value set for a group of characters.
 -      (Faset): Signal an error if IDXVAL is not a valid character code.
 -      Make a sub-chartable with correct initial value.
 -
 -      * fns.c (Fset_char_table_range): Don't set slots used as default
 -      values for ascii, eight-bit-control, eight-bit-graphic.
 -      Don't call Faref with charset-id.
 -      (Fset_char_table_default): Document how to treat normal character
 -      argument.  Handle special slots used as default values of ascii,
 -      eight-bit-control, eight-bit-control.  Make a sub chartable if
 -      necessary.
 -
 -2005-04-20  Kenichi Handa  <handa@m17n.org>
 -
 -      * search.c (boyer_moore): Fix previous change.
 -
 -2005-04-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (setup_for_ellipsis): Reset saved_face_id to use default
 -      face unless last visible char and first invisible char have the
 -      same face.  Also use default face if saved_face_id is undefined.
 -
 -2005-04-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macgui.h (MacFontStruct): Remove member `fontname'.  Add member
 -      `full_name'.
 -      [TARGET_API_MAC_CARBON] (MacFontStruct): Use type int for
 -      mac_scriptcode member.
 -
 -      * macterm.c (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
 -      (syms_of_mac): Don't initialize them.
 -      (Vmac_charset_info_alist): New variable.
 -      (syms_of_mac): Defvar it.
 -      (create_text_encoding_info_alist): New function.
 -      (decode_mac_font_name, mac_to_x_fontname)
 -      (x_font_name_to_mac_font_name, init_font_name_table): Don't hard
 -      code the correspondence among XLFD charsets, Mac script codes, and
 -      Emacs coding systems.  Use Vmac_charset_info_alist and result of
 -      create_text_encoding_info_alist instead.
 -      (init_font_name_table) [TARGET_API_MAC_CARBON]: Use Font Manager
 -      routines also on Mac OS Classic.
 -      (init_font_name_table) [!TARGET_API_MAC_CARBON]:
 -      Use add_font_name_table_entry.
 -      (mac_do_list_fonts): Regard 0 in XLFD scaleble fields as
 -      specified.  Derive unspecified scalable fields from specified one.
 -      (x_list_fonts): Consider Valternate_fontname_alist.
 -      (kDefaultFontSize): Change value from 9 to 12.
 -      (XLoadQueryFont): Get decoded font family, font face, and charset
 -      from x_font_name_to_mac_font_name.  Set full name of loaded font.
 -      (mac_unload_font): Free `full_name' member.
 -      (x_load_font): Don't try XLoadQueryFont if x_list_fonts returns
 -      NULL.  Copy full_name member of struct MacFontStruct to that of
 -      struct font_info.
 -
 -2005-04-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (handle_stop): Set saved_face_id to current face if
 -      selective_display_ellipsis_p so ellipsis will be shown in same
 -      face as preceding text.
 -      (setup_for_ellipsis): Don't set saved_face_id here.
 -      (next_element_from_display_vector): Default to saved_face_id.
 -
 -      * fns.c (Fsafe_get): New function.
 -      (syms_of_fns): Defsubr it.
 -
 -      * lisp.h (Fsafe_get): EXFUN it.
 -
 -      * xfaces.c (resolve_face_name): Use Fsafe_get to avoid redisplay
 -      loops in case of bad face property lists.  Limit number of face
 -      alias lookups to 10 (in case of face alias loops).
 -
 -2005-04-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (struct glyph_row): New member overlay_arrow_bitmap.
 -      It replaces the corresponding member from struct window, as a
 -      window may now show multiple overlay arrows.
 -      Remove member overlay_arrow_p, superseeded by overlay_arrow_bitmap.
 -
 -      * dispnew.c (row_equal_p, update_window_line, scrolling_window):
 -      Compare overlay_arrow_bitmap than overlay_arrow_p members.
 -
 -      * fringe.c (draw_fringe_bitmap): Use overlay_arrow_bitmap from row
 -      rather than from window.
 -      (update_window_fringes): Compare overlay_arrow_bitmap rather than
 -      overlay_arrow_p members.
 -      (Ffringe_bitmaps_at_pos): Return fringe overlay_arrow_bitmap name
 -      if not default.
 -
 -      * window.h (struct window): Remove member overlay_arrow_bitmap.
 -
 -      * window.c (make_window): Don't initialize overlay_arrow_bitmap.
 -
 -      * xdisp.c (overlay_arrow_string_or_property): Remove PBITMAP arg.
 -      Calls changed.  Don't check for overlay-arrow-bitmap property here.
 -      (overlay_arrow_at_row): Remove PBITMAP arg.  Instead, if left
 -      fringe is present, return Lisp integer for bitmap (or -1 for default).
 -      Fix value of overlay-arrow-bitmap property to be a symbol, use
 -      lookup_fringe_bitmap to parse it.
 -      (display_line): Change call to overlay_arrow_at_row.  Store integer
 -      return value as overlay bitmap in row rather than window.
 -      Only show overlay arrow if row displays text, or if no other overlay
 -      arrow is seen in window (if overlay marker is at point-max).
 -
 -2005-04-18  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * xfaces.c (realize_x_face) [!HAVE_WINDOW_SYSTEM]: Return NULL.
 -
 -2005-04-18  Lute Kamstra  <lute@gnu.org>
 -
 -      * lread.c (Vloads_in_progress): Static.
 -      * fns.c (Vloads_in_progress): Remove extern.
 -      (load_in_progress): Add extern.
 -      (Frequire): Use load_in_progress instead of Vloads_in_progress.
 -
 -2005-04-18  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * xmenu.c (Fx_popup_menu): Initialize error_name to NULL.
 -
 -2005-04-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (XTread_socket): Don't beep on keyboard input even if
 -      no frame is visible.
 -
 -2005-04-16  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * term.c (struct keys): Add support for shifted keys.
 -
 -2005-04-16  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (with_echo_area_buffer): Delete WHICH < 0 case.
 -      (set_message): Call with_echo_area_buffer with WHICH = 0.
 -      (set_message_1): Erase the echo area buffer first thing.
 -      (echo_area_display): Don't clear echo_message_buffer.
 -
 -2005-04-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * Makefile.in (mac.o): Depend on charset.h and coding.h.
 -
 -      * mac.c: Include charset.h and coding.h.
 -      [TARGET_API_MAC_CARBON] (Qutf_8): Remove extern.
 -      [TARGET_API_MAC_CARBON] (cfstring_create_with_string): New function.
 -      [TARGET_API_MAC_CARBON] (Fmac_get_preference): Use it.
 -
 -      * macfns.c [TARGET_API_MAC_CARBON] (Fx_file_dialog): Likewise.
 -
 -      * image.c [MAC_OSX] (image_load_quartz2d): Likewise.
 -
 -      * macterm.c (x_autoselect_window_p): Remove variable.
 -      (last_window): New variable.
 -      (XTreassert_line_highlight, x_change_line_highlight):
 -      Remove declarations.
 -      (mac_focus_changed, x_detect_focus_change): New functions and
 -      declarations.
 -      (XTextExtents16, front_emacs_window): Remove function.
 -      (mac_focus_frame): New function.
 -      (XTmouse_position, do_menu_choice, do_zoom_window, XTread_socket)
 -      (mac_check_for_quit_char): Use it instead of front_emacs_window.
 -      (x_scroll_bar_report_motion): Obtain window from control owner.
 -      (x_make_frame_invisible): Set window manager size hint.
 -      (do_mouse_moved): Remove function.
 -      (XTread_socket): Move its contents here.  Generate select-window
 -      event on mouse movement if needed.  Use x_detect_focus_change on
 -      activate/deactivate events.  Don't deiconify frame or invalidate
 -      window rectangle when dnd items are dropped.
 -      Don't activate/deactivate root control.
 -      (frame_highlight, frame_unhighlight): Activate/deactivate root
 -      control here.
 -      (syms_of_macterm): Delete DEFVAR_BOOL for x_autoselect_window_p.
 -
 -      * macterm.h (cfstring_create_with_string) [TARGET_API_MAC_CARBON]:
 -      New extern.
 -
 -2005-04-15  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * Makefile.in: Define new macro TOOLTIP_SUPPORT.
 -      (lisp): Use it.
 -      (SOME_MACHINE_LISP): Add tooltip.
 -
 -2005-04-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c [!TARGET_API_MAC_CARBON]: Include MacLocales.h.
 -      Don't include TextEncodingConverter.h.
 -      (mac_system_script_code, Vmac_system_locale): New variables.
 -      (syms_of_mac): Defvar them.
 -      (mac_get_system_locale): New function.
 -
 -      * macfns.c (x_set_name, x_set_title) [!TARGET_API_MAC_CARBON]:
 -      Use ENCODE_SYSTEM to encode title bar string.
 -      (x_create_tip_frame): Apply 2005-03-18 change for xfns.c.
 -      (Fx_file_dialog) [TARGET_API_MAC_CARBON && !MAC_OSX]:
 -      Use CFStringGetSystemEncoding to get system default string encoding.
 -
 -      * macterm.c [!TARGET_API_MAC_CARBON]: Don't include
 -      TextEncodingConverter.h.
 -
 -2005-04-13  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (syms_of_macterm): Remove redundant definition of
 -      mac-pass-control-to-system.
 -
 -2005-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (Fset_window_configuration): Be careful when you choose
 -      among several possible points for the new_current_buffer.
 -
 -2005-04-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.c (poll_for_input) [SYNC_INPUT]: Don't call
 -      poll_for_input_1.  Set interrupt_input_pending to 1 instead.
 -      (Qlanguage_change) [MAC_OS]: New variable.
 -      (syms_of_keyboard) [MAC_OS]: Intern and staticpro it.
 -      (kbd_buffer_get_event) [MAC_OS]: Make event for LANGUAGE_CHANGE_EVENT.
 -
 -      * macterm.c (mac_keyboard_text_encoding)
 -      (current_mac_keyboard_text_encoding): Remove variables.
 -      (XTread_socket): Store language-change event if keyboard script change
 -      is detected.  Don't convert input to `mac_keyboard_text_encoding'.
 -      (syms_of_macterm): Delete DEFVAR_INT for mac-keyboard-text-encoding.
 -
 -      * termhooks.h (enum event_kind) [MAC_OS]: Add LANGUAGE_CHANGE_EVENT.
 -
 -2005-04-10  Richard M. Stallman  <rms@gnu.org>
 -
 -      * emacs.c (standard_args): Rename --bare-bones to --quick.
 -      Add -D aka --basic-display.
 -
 -      * buffer.c (Fmake_indirect_buffer): Clear out some local variables.
 -
 -2005-04-09  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keymap.c (where_is_internal): Convert a string used as event type
 -      into "(any string)".
 -
 -      * lread.c (Vloads_in_progress): Not static.
 -      * fns.c (Vloads_in_progress): Add extern.
 -      (Frequire): Don't do LOADHIST_ATTACH if Vloads_in_progress is nil.
 -
 -2005-04-09  Thien-Thi Nguyen  <ttn@surf.glug.org>
 -
 -      * dispnew.c (mirror_line_dance): Avoid crash if W2 is null.
 -
 -2005-04-09  Lute Kamstra  <lute@gnu.org>
 -
 -      * print.c (PRINTPREPARE): Check if the marker PRINTCHARFUN is
 -      within the accessible part of the buffer.
 -
 -2005-04-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * lread.c (readevalloop): Add args START and END as region in
 -      current buffer to read.  Callers changed.
 -      When specified, narrow to this region only when reading,
 -      not during eval.  Track next point to read from during eval.
 -      Also restore point to "real" buffer position before eval.
 -      (Feval_region): Don't save excursion and restriction here, and
 -      don't narrow to region.  Just pass region to readevalloop.
 -      Note: Point is now preserved even when PRINTFLAG is nil.
 -
 -2005-04-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (syms_of_xdisp): Init overlay-arrow-string to "=>".
 -
 -2005-04-06  Kim F. Storm  <storm@cua.dk>
 -
 -      * emacs.c (standard_args): Add -Q, --bare-bones, -bare-bones.
 -
 -2005-04-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (cfdate_to_lisp): Add `const' for variable `epoch_gdate'.
 -      (Fmac_get_preference): Doc fix.
 -
 -      * macfns.c (Fx_create_frame, x_create_tip_frame):
 -      Add "fontset-mac" to fallback font/fontsets.
 -
 -2005-04-04  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c (Fgarbage_collect): Call CHECK_CONS_LIST before and after gc.
 -
 -      * eval.c (Ffuncall): Always call CHECK_CONS_LIST on entry.
 -      Call it again after autoload.
 -
 -2005-04-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * alloc.c (allocate_string_data): Call BLOCK_INPUT before calling
 -      mallopt.
 -
 -      * ralloc.c (r_alloc_init): Ditto.
 -
 -2005-04-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * lisp.h (Vascii_upcase_table, Vascii_canon_table)
 -      (Vascii_eqv_table): Extern them.
 -
 -      * casetab.c (set_case_table): If standard is nonzero, setup
 -      Vascii_upcase_table, Vascii_canon_table, and Vascii_eqv_table.
 -
 -      * search.c (looking_at_1): Use current_buffer->case_canon_table,
 -      not DOWNCASE_TABLE.
 -      (string_match_1): Likewise.
 -      (fast_c_string_match_ignore_case): Use Vascii_canon_table, not
 -      Vascii_downcase_table.
 -      (fast_string_match_ignore_case): Likewise.
 -      (search_buffer): Fix checking of boyer-moore usability.
 -      (boyer_moore): Calculate translate_prev_byte1/2/3 in advance.
 -      No need of tranlating characters in PAT.  Fix calculation of
 -      simple_translate.
 -
 -2005-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xterm.c [HAVE_XAW3D]: Include ThreeD.h for XtNbeNiceToColormap.
 -      (x_create_toolkit_scroll_bar): Test XtNbeNiceToColormap before using it.
 -      Use XtNtopShadowPixel and XtNbottomShadowPixel.
 -      (x_set_toolkit_scroll_bar_thumb): Remove ugly old hack that didn't
 -      really work and that breaks with some versions of Xaw3d.
 -
 -2005-03-31  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (syms_of_coding): Fix previous change.
 -
 -2005-03-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (search_embedded_absfilename): Fix last change.
 -
 -2005-03-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (syms_of_coding): Suggest to use set-coding-category in
 -      the docstring of coding-category-list.
 -
 -2005-03-31  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (Qmouse_fixup_help_message): New var.
 -      (syms_of_keyboard): Intern and staticpro it.
 -      (show_help_echo): Apply mouse-fixup-help-message to help string.
 -
 -2005-03-30  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (display_line): Allow multiple overlay arrows in window.
 -
 -2005-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Fexpand_file_name): Use IS_DEVICE_SEP.
 -      (file_name_absolute_p): New fun, extracted from Ffile_name_absolute_p.
 -      (Ffile_name_absolute_p): Use it.
 -      (search_embedded_absfilename): New fun, extracted from
 -      Fsubstitute_in_file_name.  Use file_name_absolute_p.
 -      Free the pw data after use.
 -      (Fsubstitute_in_file_name): Use it.
 -      After cutting a prefix, re-check file-name-handler.
 -
 -2005-03-26  Lennart Borgman  <lennart.borgman.073@student.lu.se>
 -
 -      * w32term.h (x_output): Add focus_state.
 -
 -      * w32term.c (x_focus_changed, w32_detect_focus_change): New functions.
 -      (w32_read_socket) <WM_SETFOCUS>: Call w32_detect_focus_change.
 -
 -2005-03-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * minibuf.c (Fminibuffer_complete_and_exit, Fself_insert_and_exit):
 -      Use Fexit_minibuffer.
 -      (Fexit_minibuffer): Mark it as no-return, deactivate the mark.
 -
 -2005-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dired.c (Ffile_attributes): Add a missing gcpro.
 -
 -      * alloc.c (make_number): The arg can be bigger than `int'.
 -      * lisp.h (make_number): Make prototype more precise.
 -
 -      * process.c, dired.c (Vfile_name_coding_system)
 -      (Vdefault_file_name_coding_system):
 -      * callproc.c (Vdoc_file_name, Vfile_name_coding_system)
 -      (Vdefault_file_name_coding_system): Remove unused declarations.
 -
 -2005-03-24  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (create_and_show_popup_menu): Just remove menu and return
 -      if it failed to pop up (Gnome "show pointer on ctrl" option makes
 -      menus fail to pop up).
 -
 -2005-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (get_next_display_element): Also use `\ ' & `\-' for latin-9.
 -      Just prepend a backslash without replacing the NBSP by an SPC.
 -
 -2005-03-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * xfaces.c (lookup_derived_face): Add arg SIGNAL_P.
 -      * dispextern.h (lookup_derived_face): Fix prototype.
 -      * msdos.c (XMenuActivate): Fix call to lookup_derived_face.
 -
 -      * xdisp.c (handle_single_display_spec): Derive left-fringe and
 -      right-fringe face from fringe face.
 -
 -      * fringe.c (draw_fringe_bitmap_1, Fset_fringe_bitmap_face):
 -      Derive face from fringe face.
 -
 -2005-03-22  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xrdb.c (x_load_resources): Undo previous change (2005-03-18).
 -
 -2005-03-22  David Kastrup  <dak@gnu.org>
 -
 -      * textprop.c (Fnext_char_property_change)
 -      (Fprevious_char_property_change): Allow marker as limit.
 -      (Fnext_single_char_property_change)
 -      (Fprevious_single_char_property_change): Check that limit is a
 -      number in strings.
 -      (Fnext_single_char_property_change): Coerce position to integer.
 -      (Fprevious_single_char_property_change): Same here.
 -
 -2005-03-21  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * s/openbsd.h (LD_SWITCH_SYSTEM_tmp): Define if undefined.
 -
 -2005-03-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * frame.c (Fignore_event): Remove.
 -      (syms_of_frame): Don't defsubr it.
 -
 -      * keyboard.c (keys_of_keyboard): Just use `ignore' instead of the
 -      redundant `ignore-event'.
 -
 -2005-03-19  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * unexec.c (write_segment, unexec): Move these functions to avoid
 -      forward references (which cause errors with "gcc -gcoff").
 -
 -2005-03-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (x_create_tip_frame): Remove setting of Vx_resource_name so
 -      that it doesn't become "tooltip".  The specbind is enough.
 -
 -      * xrdb.c (x_load_resources): Use different char *helv when I18N
 -      is present.
 -
 -2005-03-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (syms_of_coding): Docstring of coding-category-list fixed.
 -
 -2005-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xfaces.c (x_update_menu_appearance) [HAVE_X_I18N]:
 -      Use xic_create_fontsetname even for non-Motif menus.
 -      Don't forget to free the fontsetname.
 -
 -      * xfns.c (xic_create_fontsetname): Add a final catch-all font pattern.
 -
 -2005-03-17  Richard M. Stallman  <rms@gnu.org>
 -
 -      * dispnew.c (mirror_line_dance): Set W2 according to FRAME_FROM.
 -
 -      * fileio.c (Fcopy_file, Frename_file, Fadd_name_to_file)
 -      (Fmake_symbolic_link): Use G to read the new file name.
 -
 -      * callint.c (Finteractive): Document G option.
 -      (Fcall_interactively): Implement G option.
 -
 -      * buffer.c (buffer_lisp_local_variables): New function,
 -      broken out from Fbuffer_local_variables.
 -      (clone_per_buffer_values): Use buffer_lisp_local_variables.
 -
 -2005-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xfns.c (xic_create_fontsetname): Add `motif' argument.
 -      Always return a freshly allocated string.
 -      (xic_create_xfontset): Adjust call.
 -
 -      * xfaces.c (x_update_menu_appearance) [USE_MOTIF]:
 -      Use xic_create_fontsetname to create a fontset so utf-8 locales work.
 -      (dump_realized_face): Fix warning.
 -
 -      * emacs.c (Fkill_emacs): YAILOM.
 -
 -      * frame.c (Fignore_event): Fix ancient obscure C-u handling bug.
 -
 -2005-03-17  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (HASHKEY_TERMINAL): Remove.
 -      (HASHKEY_MAX_NID): New macro.
 -      (xrm_q_get_resource_1): Rename from xrm_q_get_resource.  Add extra
 -      argument.
 -      (xrm_q_get_resource): Call xrm_q_get_resource_1 with extra argument.
 -      (xrm_create_database, xrm_q_put_resource)
 -      (xrm_merge_string_database, xrm_q_get_resource_1)
 -      (xrm_q_get_resource): Change resource database representation so
 -      that it may not use multiple hash tables for a single database.
 -      [TARGET_API_MAC_CARBON] (xrm_cfproperty_list_to_value): YAILOM.
 -
 -2005-03-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xmenu.c (ENCODE_MENU_STRING) [HAVE_X_I18N]: Use ENCODE_SYSTEM.
 -
 -      * coding.h (ENCODE_SYSTEM, DECODE_SYSTEM) [!WINDOWSNT]: Use the
 -      locale-coding-system, as was already done for WINDOWSNT.
 -
 -      * keyboard.c (read_char): Only do the 7-bit-meta -> 27-bit-meta
 -      translation for chars in the 0-255 range.
 -
 -2005-03-16  Lute Kamstra  <lute@gnu.org>
 -
 -      * floatfns.c (Ffloor): Doc fix.
 -
 -2005-03-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c: Include macterm.h instead of directly including Carbon.h.
 -      [TARGET_API_MAC_CARBON] (Qstring, Qnumber, Qboolean, Qdate, Qdata)
 -      (Qarray, Qdictionary): New variables.
 -      (syms_of_mac) [TARGET_API_MAC_CARBON]: Initialize them.
 -      [TARGET_API_MAC_CARBON] (Qutf_8): Add extern.
 -      [TARGET_API_MAC_CARBON] (DECODE_UTF_8): New macro.
 -      [TARGET_API_MAC_CARBON] (struct cfdict_context): New struct used
 -      in callback for CFDictionaryApplyFunction.
 -      [TARGET_API_MAC_CARBON] (cfdata_to_lisp, cfstring_to_lisp)
 -      (cfnumber_to_lisp, cfdate_to_lisp, cfboolean_to_lisp)
 -      (cfobject_desc_to_lisp, cfdictionary_add_to_list)
 -      (cfdictionary_puthash, cfproperty_list_to_lisp): New functions.
 -      [TARGET_API_MAC_CARBON] (Fmac_get_preference): New function.
 -      (syms_of_mac) [TARGET_API_MAC_CARBON]: Defsubr it.
 -      (P, LOOSE_BINDING, SINGLE_COMPONENT, HASHKEY_TERMINAL): New macro.
 -      (skip_white_space, parse_comment, parse_include_file)
 -      (parse_binding, parse_component, parse_resource_name, parse_value)
 -      (parse_resource_line, xrm_create_database, xrm_q_put_resource)
 -      (xrm_merge_string_database, xrm_q_get_resource, xrm_get_resource)
 -      (xrm_cfproperty_list_to_value, xrm_get_preference_database):
 -      New functions.
 -
 -      * macfns.c (mac_get_rdb_resource): Remove function.
 -      (x_get_string_resource): Use xrm_get_resource.
 -
 -      * macgui.h (XrmDatabase): Typedef to Lisp_Object.
 -
 -      * macterm.c (x_list_fonts): FONT-LIST-CACHE is now cadr part of
 -      name_list_element.
 -      (mac_make_rdb): Create resource database from preferences and
 -      argument string.
 -      (mac_term_init): Save resource database to cddr part of
 -      name_list_element.
 -
 -      * macterm.h (xrm_merge_string_database, xrm_get_resource)
 -      (xrm_get_preference_database): Add externs.
 -      [TARGET_API_MAC_CARBON] (cfdata_to_lisp, cfstring_to_lisp)
 -      (cfnumber_to_lisp, cfdate_to_lisp, cfboolean_to_lisp)
 -      (cfobject_desc_to_lisp, cfproperty_list_to_lisp): Likewise.
 -
 -      * process.c (init_process): Change `#ifdef DARWIN' to `#if
 -      defined (DARWIN) || defined (MAC_OSX)'
 -
 -      * s/darwin.h (DARWIN): Don't define.
 -
 -2005-03-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (Qhyper, Qsuper, Qmeta, Qalt, Qctrl, Qcontrol, Qshift):
 -      Remove unused variables.
 -      (syms_of_macfns): Don't initialize them.  Likewise for
 -      Qface_set_after_frame_default.  Defvar and initialize
 -      Vx_window_horizontal_drag_shape.
 -      (x_set_mouse_color): Change mouse pointer shape.
 -      (mac_window) [!MAC_OSX]: Create root control.
 -      (Fx_create_frame): Remove initializations of mouse pointer shapes.
 -      (hourglass_started): New function (from xfns.c).
 -      (start_hourglass, cancel_hourglass): Put function body in #ifdef
 -      MAC_OSX.
 -      (show_hourglass) [TARGET_API_MAC_CARBON]: Create progress
 -      indicator for each non-tooltip frame if needed, and show it.
 -      (hide_hourglass) [TARGET_API_MAC_CARBON]: Hide progress indicators.
 -
 -      * macgui.h [!TARGET_API_MAC_CARBON]: Include Appearance.h and
 -      Controls.h.  Use ThemeCursor instead of CursHandle.
 -
 -      * macterm.c (activate_scroll_bars, deactivate_scroll_bars):
 -      Remove functions and declarations.
 -      (mac_set_colors): Take argument for saving background color.
 -      All callers changed.
 -      (XDrawLine, XClearArea, mac_draw_bitmap, XFillRectangle)
 -      (mac_draw_rectangle, mac_draw_string_common): Save and Restore
 -      background color.
 -      (x_update_end, mac_do_track_drag): Don't reset background color.
 -      (mac_define_frame_cursor) [!TARGET_API_MAC_CARBON]:
 -      Use SetThemeCursor.
 -      (x_set_window_size) [TARGET_API_MAC_CARBON]: Move progress
 -      indicator control to the upper-right corner of the window.
 -      (arrow_cursor) [!TARGET_API_MAC_CARBON]: Remove variable.
 -      (do_init_managers) [!TARGET_API_MAC_CARBON]: Don't initialize it.
 -      (do_window_update): Update controls after updating content area.
 -      (mac_handle_window_event): Remove unused extern.
 -      (XTread_socket): Check both control handle and control part code
 -      to determine whether a scroll bar is clicked.  Activate/deactivate
 -      root control instead of contained scroll bar controls.
 -      (make_mac_terminal_frame): Use ThemeCursor constants.
 -
 -      * macterm.h (struct mac_output) [TARGET_API_MAC_CARBON]:
 -      New member hourglass_control.
 -      (HOURGLASS_WIDTH, HOURGLASS_HEIGHT): New defines.
 -      (activate_scroll_bars, deactivate_scroll_bars): Remove declarations.
 -
 -2005-03-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (keycode_to_xkeysym_table): Change mapping so that it
 -      coincides with that in Apple X11 except `clear', `enter' on
 -      laptops, and fn + `enter' on laptops.
 -
 -2005-03-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xmenu.c (ENCODE_MENU_STRING): Explicitly use string_make_unibyte.
 -      (list_of_panes, list_of_items, Fx_popup_menu): Use XCAR/XCDR.
 -      (digest_single_submenu, xmenu_show): Use ENCODE_MENU_STRING.
 -
 -      * xfns.c (xic_defaut_fontset): New constant.
 -      (xic_create_fontsetname): New function.
 -      Extracted from create_frame_xic.  Try to generate a slightly
 -      better fontset.
 -      (xic_create_xfontset): Use it.
 -      (create_frame_xic): Simplify.
 -
 -2005-03-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Fmake_symbolic_link): Fix last change.
 -
 -2005-03-11  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Frename_file, Fadd_name_to_file)
 -      (Fmake_symbolic_link): If NEWNAME or LINKNAME is a directory,
 -      expand the basename of FILE relative to it.
 -
 -2005-03-11  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): Call Fcheck_coding_system
 -      before calling setup_coding_system so that autoloading of a coding
 -      system work.
 -
 -2005-03-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (hourglass_started): New function.
 -
 -      * dispextern.h: Declare hourglass_started.
 -
 -      * keyboard.c (Fexecute_extended_command): Restart hourglass
 -      after call to Fcompleting_read if already started.
 -
 -      * gtkutil.c (xg_update_scrollbar_pos): Call x_sync so that the
 -      GTK main loop is entered in xterm.c, thus doing the redraw.
 -
 -2005-03-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (pos_visible_p): Fix X value in last line of buffer.
 -
 -2005-03-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * frame.c (x_set_font): Call set_default_ascii_font if an
 -      available font is found.
 -
 -      * fontset.c (set_default_ascii_font): New function.
 -      (syms_of_fontset): Don't set FONTSET_ASCII (Vdefault_fontset) here.
 -
 -      * fontset.h (set_default_ascii_font): Extern it.
 -
 -2005-03-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (CLEAR_IMAGE_CACHE_COUNT): New const.
 -      (clear_image_cache_count): New var.
 -      (redisplay_internal): Don't clear face and image caches in the
 -      middle of redisplay; do it afterwards.
 -
 -      * blockinput.h (TOTALLY_UNBLOCK_INPUT): Avoid dangling else.
 -
 -      * xdisp.c (notice_overwritten_cursor): Check that phys_cursor.vpos
 -      is valid.  If not, clear phys_cursor_on_p and return.
 -
 -2005-03-07  Andreas Schwab  <schwab@suse.de>
 -
 -      * blockinput.h (UNBLOCK_INPUT_TO): Always call UNBLOCK_INPUT.
 -
 -2005-03-06  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (Ftop_level): Let Fthrow deal with UNBLOCK_INPUT.
 -
 -      * eval.c (unwind_to_catch): Use UNBLOCK_INPUT_TO.
 -      (Feval, Ffuncall): Use CHECK_CONS_LIST.
 -
 -      * lisp.h (CHECK_CONS_LIST): New macro (two definitions).
 -
 -      * blockinput.h (UNBLOCK_INPUT_TO): New macro.
 -      (TOTALLY_UNBLOCK_INPUT): Handle a pending signal if any.
 -
 -2005-03-05  Juri Linkov  <juri@jurta.org>
 -
 -      * emacs.c (USAGE1): Replace Info node name "command arguments"
 -      with "emacs invocation".
 -      (USAGE3): Fix usage of `--color=MODE' which actually doesn't
 -      allow arguments `--color' and `MODE' to be separated by space.
 -      Add --no-blinking-cursor, -nbc.
 -      (standard_args): Add -nbc, --no-blinking-cursor.
 -
 -2005-03-04  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * s/vms.h: Define NO_HYPHENS_IN_FILENAMES.
 -      * s/vms4-4.h, s/vms5-5.h: Undefine NO_HYPHENS_IN_FILENAMES.
 -      * fileio.c (Fexpand_file_name) [VMS]:
 -      Use NO_HYPHENS_IN_FILENAMES, not VMS4_4.
 -      * doc.c (munge_doc_file_name) [VMS]: Likewise.
 -      (Fsnarf_documentation): Call munge_doc_file_name.
 -
 -2005-03-04  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * s/vms.h (FILE_SYSTEM_CASE): New macro.
 -      * fileio.c (Fexpand_file_name) [VMS]: Don't upcase the name
 -      "manually"; this is now handled generally via FILE_SYSTEM_CASE.
 -
 -2005-03-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * emacs.c (main): Change `#ifdef HAVE_CARBON' to `#if
 -      defined (MAC_OSX) && defined (HAVE_CARBON)'.
 -
 -      * image.c [!MAC_OSX && TARGET_API_MAC_CARBON]: Include QuickTime.h.
 -
 -      * mac.c [!MAC_OSX && HAVE_CARBON]: Include Carbon.h.
 -      [!MAC_OSX] (select) [TARGET_API_MAC_CARBON]: Use ReceiveNextEvent.
 -      (posix_pathname_to_fsspec, fsspec_to_posix_pathname): New functions.
 -      (mac_clear_font_name_table): Move extern to macterm.h.
 -
 -      * macfns.c (install_window_handler): Move extern to macterm.h.
 -      (Fx_file_dialog): Check STRINGP (default_filename) to see it is
 -      valid.  Don't check !NILP (dir) because it is already checked with
 -      CHECK_STRING.
 -      (Fx_file_dialog) [!MAC_OSX]: Use FSSpec instead of FSRef for
 -      specifying the default location and obtaining the selected filename.
 -
 -      * macgui.h [!MAC_OSX && HAVE_CARBON]: Include Carbon.h.
 -
 -      * macmenu.c [TARGET_API_MAC_CARBON]: Don't include headers that
 -      are included via Carbon.h.
 -
 -      * macterm.c [TARGET_API_MAC_CARBON && !MAC_OSX]:
 -      Define USE_CARBON_EVENTS to 1.
 -      (qd) [__MRC__ && TARGET_API_MAC_CARBON]: Don't declare.
 -      (x_free_frame_resources): Call remove_window_handler for
 -      non-tooltip windows.
 -      [TARGET_API_MAC_CARBON]: Don't include headers that are included
 -      via Carbon.h.
 -      [TARGET_API_MAC_CARBON] (mac_do_track_dragUPP)
 -      (mac_do_receive_dragUPP): New variables.
 -      (mac_handle_service_event, init_service_handler): Put declarations
 -      and definitions in #ifdef MAC_OSX.
 -      (install_window_handler) [TARGET_API_MAC_CARBON]: Create UPPs for
 -      drag-and-drop handler functions and register them.
 -      (remove_window_handler): New function.
 -      (do_ae_open_documents, mac_do_receive_drag) [!MAC_OSX]:
 -      Use fsspec_to_posix_pathname.
 -      (main): Change #if !TARGET_API_MAC_CARBON to #ifdef MAC_OS8.
 -      (XTread_socket) [!MAC_OSX]: Don't pass keyboard events to TSM.
 -      [MAC_OS8] (make_mac_terminal_frame) [TARGET_API_MAC_CARBON]:
 -      Set default cursors.
 -      (mac_initialize) [USE_CARBON_EVENTS && !MAC_OSX]: Don't call
 -      init_service_handler or init_quit_char_handler.
 -      (mac_initialize) [!MAC_OSX]: Don't call MakeMeTheFrontProcess.
 -
 -      * macterm.h (install_window_handler, remove_window_handler)
 -      (posix_pathname_to_fsspec, fsspec_to_posix_pathname)
 -      (mac_clear_font_name_table): New externs.
 -
 -2005-03-03  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * fileio.c (FILE_SYSTEM_CASE): Define macro if not already defined.
 -      (Ffile_name_directory): Use FILE_SYSTEM_CASE unconditionally.
 -      (Fexpand_file_name): Likewise.
 -
 -2005-03-03  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * emacs.c (Fkill_emacs): Use EXIT_SUCCESS;
 -      no longer special-case VMS.  Add bogus return value.
 -
 -2005-03-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (XASSERTS): Define to 0 if not already defined.
 -      (xassert) [!XASSERTS]: Define dummy version.
 -
 -2005-03-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_window): YABX (yet another bogus xassert).
 -      Reported by David Kastrup.
 -
 -2005-03-01  Ehud Karni  <ehud@unix.mvs.co.il>
 -
 -      * xdisp.c (get_next_display_element): Fix control and escape
 -      glyph from display vector.
 -
 -2005-03-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (Fposn_at_x_y): Check integerness of X and Y.
 -
 -2005-02-27  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (fast_find_position): Rename END to BEG.
 -      (syms_of_xdisp) <menu-bar-update-hook>: Doc fix.
 -
 -2005-02-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_resize_outer_widget): Remove unneeded call to
 -      gtk_window_resize and x_wm_set_size_hint.
 -
 -2005-02-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (OVERLAY_STRING_CHUNK_SIZE): Increase from 3 to 16.
 -
 -      * xdisp.c (init_from_display_pos): Don't read past end of
 -      it->overlay_strings array.
 -
 -2005-02-25  Stephan Stahl  <stahl@eos.franken.de>  (tiny change)
 -
 -      * buffer.c (syms_of_buffer): Fix typo.
 -
 -2005-02-23  Lute Kamstra  <lute@gnu.org>
 -
 -      * buffer.c (Foverlay_buffer): Doc fix.
 -
 -2005-02-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * minibuf.c (Ftry_completion, Fall_completions): Allow both string
 -      and symbol keys in alists and hash tables.
 -
 -      * xdisp.c (fast_find_position): Fix search for start of overlay.
 -
 -2005-02-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (window_scroll_pixel_based): When scrolling backwards,
 -      handle partial visible line at end of window even when we hit PT.
 -
 -2005-02-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.h: Declare Fcurrent_active_maps, used in doc.c.
 -
 -2005-02-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (move_it_vertically_backward): Eliminate two xasserts.
 -      I think those asserts are bogus if buffer contains invisible text
 -      or images.
 -
 -2005-02-21  David Kastrup  <dak@gnu.org>
 -
 -      * gtkutil.c (xg_create_frame_widgets): UNBLOCK_INPUT on error.
 -
 -2005-02-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (pos_visible_p): Be sure to move to the specified
 -      position.  Always get the full ascent / descent of the
 -      corresponding row, to return reliable rtop and rbot values.
 -      (back_to_previous_visible_line_start): Fix 2005-01-18 change.
 -      Must look one character back, as back_to_previous_line_start
 -      returns position after the newline.
 -      (move_it_vertically_backward): Fix heuristic for when to move further
 -      back in case line_height * 2/3 is larger than window height.
 -      (cursor_row_fully_visible_p): Rename make_cursor_line_fully_visible_p
 -      as it does not do anything anymore.  Add arg current_matrix_p to
 -      use current matrix rather than desired matrix when set.
 -      (try_cursor_movement): Don't scroll to make cursor row fully
 -      visible if cursor didn't move.  This avoids unexpected recentering
 -      in case of blinking cursor or accepting process output.
 -      Use current matrix to check cursor row visibility.
 -      (redisplay_window): Fix whether to recenter or move to top in case
 -      cursor line is taller than window height.
 -      (find_first_unchanged_at_end_row): Stop search if we reach a row
 -      which not enabled (instead of abort).
 -
 -2005-02-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute): Allow :color property
 -      to be nil in a :box attribute value list; customize prints that
 -      as lisp value when no box color is specified.
 -
 -      * .gdbinit (pitx, pit): Pretty print display iterator.
 -      (prowx, prow): Pretty print glyph row.
 -      (pcursorx, pcursor): Pretty print a window cursor.
 -      (pwinx, pwin): Pretty print struct window.
 -
 -2005-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c (BLOCK_BYTES): Harmless typo.
 -
 -2005-02-17  Andreas Schwab  <schwab@suse.de>
 -
 -      * xfns.c (hack_wm_protocols): Use correct type for last parameter
 -      of XGetWindowProperty to avoid aliasing issues.
 -      (Fx_window_property): Likewise.
 -
 -      * xselect.c (Fx_disown_selection_internal): Use union of struct
 -      input_event and struct selection_input_event to avoid aliasing issues.
 -
 -      * xterm.c (handle_one_xevent): Use union of struct input_event and
 -      struct selection_input_event to avoid aliasing issues.
 -      (SET_SAVED_MENU_EVENT): Adapt reference to inev.
 -
 -2005-02-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (enum it_method): New enum.
 -      (GET_FROM_*): Its members.
 -      (struct it): Change member method from function pointer to enum.
 -
 -      * xdisp.c (check_it, init_from_display_pos, handle_stop)
 -      (setup_for_ellipsis, handle_single_display_spec)
 -      (handle_composition_prop, next_overlay_string)
 -      (get_overlay_strings, reseat_1, reseat_to_string)
 -      (next_element_from_ellipsis, BUFFER_POS_REACHED_P)
 -      (in_display_vector_p, display_line, get_next_display_element):
 -      Change it->method from function pointer to enum.
 -      (get_next_element): New array to map it->method to function.
 -      (get_next_display_element): Use it.
 -      (set_iterator_to_next): Use switch instead of if/else chain.
 -
 -2005-02-15  Benjamin Riefenstahl  <Benjamin.Riefenstahl@epost.de>
 -
 -      * w32select.c: Summary: Thorough rework to implement Unicode
 -      clipboard operations and delayed rendering.
 -
 -      Drop last_clipboard_text and related code, keep track of
 -      ownership via clipboard_owner instead.  Drop old #if0 sections.
 -
 -      (DEFAULT_LCID, ANSICP, OEMCP, QUNICODE, QANSICP, QOEMCP)
 -      (clipboard_owner, modifying_clipboard, cfg_coding_system)
 -      (cfg_codepage, cfg_lcid, cfg_clipboard_type, current_text)
 -      (current_coding_system, current_requires_encoding)
 -      (current_num_nls, current_clipboard_type, current_lcid):
 -      New static variables.
 -
 -      (convert_to_handle_as_ascii, convert_to_handle_as_coded)
 -      (render, render_all, run_protected, lisp_error_handler)
 -      (owner_callback, create_owner, setup_config)
 -      (enum_locale_callback, cp_from_locale, coding_from_cp):
 -      New local functions.
 -
 -      (term_w32select, globals_of_w32select): New global functions.
 -
 -      (Fw32_set_clipboard_data): Ignore parameter FRAME, use
 -      clipboard_owner instead.  Use delayed rendering and provide
 -      all text formats.  Provide CF_LOCALE if necessary.
 -
 -      (Fw32_get_clipboard_data): Handle CF_UNICODETEXT and
 -      CF_LOCALE.  Fall back to CF_TEXT, if CF_UNICODETEXT is not
 -      available.  Force DOS line-ends for decoding.
 -
 -      (Fx_selection_exists_p): Handle CF_UNICODETEXT.
 -
 -      (syms_of_w32select): Init and register new variables.
 -
 -      * w32.h: Add prototypes for globals_of_w32select and
 -      term_w32select.  Make the neighboring K&R declarations into
 -      prototypes, too.
 -
 -      * emacs.c: Include w32.h to get function prototypes.
 -      (main): Call globals_of_w32select.
 -
 -      * w32.c (term_ntproc): Call term_w32select.
 -
 -      * s/ms-w32.h: Guard MSC-specific #pragmas with an #ifdef.
 -
 -2005-02-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (BUFFER_POS_REACHED_P): Return true if pos reached and
 -      at end of display vector.
 -
 -2005-02-15  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (get_next_display_element): Fix escape-glyph criterion
 -      for mode and header lines.
 -
 -      * lread.c (syms_of_lread) <user-init-file>: Doc fix.
 -
 -      * keymap.h (describe_map_tree): Change decl.
 -
 -      * keyboard.c (command_loop_1): Always use safe_run_hooks
 -      to run Qdeferred_action_function.
 -
 -      * keymap.c (describe_map_tree): New arg MENTION_SHADOW.  Calls changed.
 -      (describe_map, describe_vector): Likewise.  When it's 1,
 -      don't omit shadowed bindings, instead mark them as shadowed.
 -
 -      * doc.c (Fsubstitute_command_keys): Compute list of shadowing maps
 -      for describe_map_tree.  Pass 1 for MENTION_SHADOW.
 -
 -      * data.c (Fsetq_default): Allow no arg case.
 -
 -2005-02-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (encode_coding_string): Always return a unibyte string.
 -      If NOCOPY is nonzero and there's no need of encoding, make STR
 -      unibyte directly.
 -
 -      * xselect.c (lisp_data_to_selection_data): If OBJ is a non-ASCII
 -      multibyte string, signal an error instead of aborting.
 -
 -2005-02-12  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * keyboard.c: If HAVE_FCNTL_H include fcntl.h.
 -
 -2005-02-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (expose_window): Don't fix overlaps for mode lines.
 -
 -2005-02-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (try_window_id): Set first_unchanged_at_end_row to NULL
 -      if it moves outside window or it doesn't display text.
 -
 -2005-02-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * undo.c (Fprimitive_undo): Check that undo function does not
 -      switch buffer.
 -
 -2005-02-08  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xselect.c (selection_data_to_lisp_data): For the special case
 -      type == XA_ATOM, data contains array of int, not array of Atom.
 -      (x_property_data_to_lisp, selection_data_to_lisp_data):
 -      Comment update: data must be array of int for format == 32.
 -
 -2005-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * undo.c (Fprimitive_undo): Check veracity of delta,start,end.
 -
 -2005-02-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_change_window_property): Use long array when format is 32.
 -      (Fx_window_property): If format is 32 and long is bigger than 32 bits,
 -      convert long array returned from XGetWindowProperty to an int array.
 -      (x_set_tool_bar_lines): Check that width and height is greater than
 -      zero before clearing area.
 -
 -      * xselect.c (x_reply_selection_request): Pass long array to
 -      XChangeProperty so that 64 bit longs are handeled correctly.
 -      (x_get_window_property): If format is 32 and long is bigger than 32
 -      bits convert data from XGetWindowProperty from long array to int array.
 -      (lisp_data_to_selection_data): When the input is a vector and the
 -      format is 32, allocate a long array even if long is bigger than 32 bits.
 -      (x_fill_property_data): Use char, short and long as the man page
 -      for XChangeProperty specifies.  This way the data returned is OK for
 -      both 32 and 64 bit machines.
 -      (x_handle_dnd_message): Calculate size correctly even for 64 bit
 -      machines.
 -      (Fx_send_client_event): Undo change from 2005-02-05,
 -      x_fill_property_data now handles that case.
 -
 -      * xfns.c (Fx_backspace_delete_keys_p): Add comment about the
 -      reason for the approach in the code.
 -
 -2005-02-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * undo.c (Fprimitive_undo): Record max one dummmy apply element.
 -
 -2005-02-06  Richard M. Stallman  <rms@gnu.org>
 -
 -      * eval.c (Frun_hook_with_args)
 -      (Frun_hook_with_args_until_success)
 -      (Frun_hook_with_args_until_failure): Doc fixes.
 -
 -2005-02-05  Andreas Schwab  <schwab@suse.de>
 -
 -      * sysdep.c (sys_subshell): Properly terminate execlp argument list.
 -
 -2005-02-05  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xselect.c (Fx_send_client_event, x_handle_dnd_message): Handle
 -      the longs in a XClientMessageEvent correctly when long is 64 bits.
 -
 -2005-02-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xfaces.c (face_color_supported_p): Use HAVE_WINDOW_SYSTEM
 -      instead of HAVE_X_WINDOWS, for non-X windowed sessions.
 -
 -2005-02-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (menubar_selection_callback): Force out GTK buffered
 -      events so the menu event comes after them.  This is to prevent sit-for
 -      from exiting on buffered events directly after a menu selection,
 -      lisp code for Help => About Emacs uses sit-for.
 -
 -      * gtkutil.c (create_menus): Connect selection-done event instead of
 -      the deactivate event to deactivate_cb.  This will make the last
 -      leave event come before the call to deactivate_cb, so the leave
 -      event does not make sit-for exit after a menu selection.
 -
 -2005-02-03  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (build_frame_matrix_from_leaf_window)
 -       [!GLYPH_DEBUG]: Fix xassert.
 -
 -      * xfaces.c (x_free_gc) [!GLYPH_DEBUG]: Fix xassert.
 -
 -      * xfns.c (unwind_create_frame) [!GLYPH_DEBUG]: Fix xassert.
 -
 -2005-02-03  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c: Use MAC_OS_X_VERSION_MAX_ALLOWED to conditionalize by
 -      the compiling OS version.
 -
 -      * macfns.c (x_create_tip_frame): Likewise.
 -
 -      * macterm.c (mac_draw_string_common, x_make_frame_visible): Likewise.
 -
 -2005-02-03  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xterm.c (x_error_quitter): On GCC 3 and up, specify noinline.
 -
 -      * xdisp.c (echo_area_display): Clear echo_message_buffer.
 -
 -      * buffer.c (Fbury_buffer): Doc fix.
 -
 -2005-02-02  Steven Tamm  <steventamm@mac.com>
 -
 -      * macfns.c (unwind_create_frame): Fix compile error due to
 -      xassert being uncondition, but predicate is.
 -      * dispnew.c (update_window): Fix compile error due to
 -      xassert being uncondition, but predicate is.
 -
 -2005-02-02  Miles Bader  <miles@gnu.org>
 -
 -      * dispextern.h (xassert): Enable unconditionally.
 -
 -2005-02-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * undo.c (Fprimitive_undo): Fix dummy apply undo entry.
 -
 -2005-02-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * casefiddle.c (casify_object): Enable changing characters of
 -      different byte length.
 -      (casify_region): Fix loop condition, args to replace_range_2, and
 -      update opoint_byte.
 -
 -      * insdel.c (replace_range_2): Fix bugs in adjusting markers and point.
 -
 -2005-02-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (back_to_previous_visible_line_start): Reset iterator
 -      stack before calling handle_display_prop.
 -
 -2005-01-31  Kim F. Storm  <storm@cua.dk>
 -
 -      * undo.c (Qapply): New lisp var.
 -      (syms_of_undo): Intern and staticpro it.
 -      (Fprimitive_undo): Support formats (apply FUNNAME . ARGS) and
 -      (apply DELTA BEG END FUNNAME . ARGS) instead of (FUNNAME . ARGS).
 -
 -      * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
 -
 -2005-01-30  Jesper Harder  <harder@phys.au.dk>
 -
 -      * macterm.c (syms_of_macterm) <mac-reverse-ctrl-meta>
 -      <mac-emulate-three-button-mouse>: Fix docstring indentation.
 -
 -2005-01-29  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * undo.c (syms_of_undo) <undo-outer-limit>: Doc update.
 -      Increase value to 3 Meg.
 -
 -2005-01-29  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (show_hourglass): Use FRAME_X_WINDOW as parent for GTK,
 -      button events are not received otherwise.
 -
 -2005-01-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
 -
 -      * undo.c (Fprimitive_undo): Handle (FUNNAME . ARGS) by calling FUNNAME.
 -
 -2005-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (access_keymap): YAILOM.
 -
 -2005-01-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_phys_cursor_geometry): New function to calculate
 -      phys cursor position and size for hollow cursor.  Position is
 -      aligned with get_glyph_string_clip_rect and ensures that a hollow
 -      cursor is shown, even when the actual glyph is not visible.
 -
 -      * dispextern.h (get_phys_cursor_geometry): Add prototype.
 -
 -      * xterm.c (x_clip_to_row): Ensure y >= 0.
 -      (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
 -
 -      * w32term.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
 -
 -      * macterm.c (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
 -
 -2005-01-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xterm.c (x_error_quitter): Add a prototype.  Make it static again.
 -
 -2005-01-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_glyph_string_clip_rect): Always show a cursor
 -      glyph, even when row is only partially visible and actual cursor
 -      position is not visible.
 -
 -2005-01-24  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xterm.c (x_error_quitter): No longer static, and moved after
 -      x_error_handler.
 -
 -2005-01-24  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (move_it_by_lines): If we move forward after going too
 -      far back, cancel move if end position is same as start position.
 -
 -2005-01-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * dispextern.h (struct glyph_string): New members clip_head and
 -      clip_tail.
 -
 -      * xdisp.c (get_glyph_string_clip_rect): Restrict horizontal clip
 -      region to the area between clip_head and clip_tail.
 -      (draw_glyphs): Record the area that need to be actually redrawn to
 -      the new variables clip_head and clip_tail when there are
 -      overhangs.  Set values of these variables to the corresponding
 -      members in struct glyph_string.  Refine x coordinates for
 -      notice_overwritten_cursor using clip_head and clip_tail.
 -
 -      * macgui.h (STORE_XCHARSETSTRUCT): New macro.
 -
 -      * macterm.c (mac_compute_glyph_string_overhangs): Implement with
 -      QDTextBounds.
 -      (x_draw_glyph_string): Don't fill the background of the successor
 -      of a glyph with a right overhang if the successor will draw a cursor.
 -      (XLoadQueryFont): Obtain font metrics using QDTextBounds.
 -      (x_redisplay_interface): Add entry for compute_glyph_string_overhangs.
 -
 -2005-01-24  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (window_scroll_pixel_based): Fix scrolling in the wrong
 -      direction if window height was smaller than next-screen-context-lines.
 -      Now always scroll at least one line in the requested direction.
 -      Ensure that we actually do scroll backwards when requested to do so.
 -
 -      * xdisp.c (redisplay_window): Only try to make cursor line fully
 -      visible once (to avoid redisplay loop).
 -
 -2005-01-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (Fpos_visible_in_window_p): Simplify return value for
 -      partially visible rows.
 -      (window_scroll_pixel_based): Adapt to that change.
 -
 -      * window.c (window_scroll_pixel_based): Force moving to next line
 -      if scrolling doesn't move start point, e.g. if looking at tall image.
 -
 -      * xdisp.c (pos_visible_p): Return 0 if non-interactive.
 -      Clear last_height before calling line_bottom_y to get real height.
 -      Fix calculation of y.
 -
 -2005-01-22  Steven Tamm  <steventamm@mac.com>
 -
 -      * s/darwin.h: Removed PTY_ITERATION from here.
 -      (DARWIN): Define.
 -
 -      * process.c (init_process): Default process-connection-type to
 -      nil on darwin 6 or less, t if it is 7 or higher.  This way the
 -      broken pty behavior is still allowed on darwin 6 for interactive
 -      processes for people that know what they are doing.
 -
 -2005-01-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (auto_window_vscroll_p): New boolean.
 -      (syms_of_window): DEFVAR_BOOL it.
 -      (Fpos_visible_in_window_p): Extend return value to include RTOP
 -      and RBOT values if FULLY is nil.
 -      (window_scroll_pixel_based): Adjust vscroll for partially visible
 -      rows if auto_window_vscroll_p is set.
 -      (Fset_window_vscroll): Do nothing if vscroll is not modified.
 -
 -      * xdisp.c (pos_visible_p): Replace FULLY arg by RTOP and RBOT args
 -      to return number of partially invisible pixels at top and bottom
 -      of the dislay row at POS.
 -
 -      * lisp.h (pos_visible_p): Fix prototype.
 -
 -2005-01-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Fcopy_file): Doc fix.
 -
 -2005-01-21  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_tool_bar_detach_callback): Remove unused variable bw.
 -      (xg_get_file_name): Move declaration ofx_use_old_gtk_file_dialog to
 -      start of function for older compilers.
 -
 -2005-01-20  Richard M. Stallman  <rms@gnu.org>
 -
 -      * editfns.c (Fmessage): If arg is "", return "" (as before).
 -
 -      * keymap.c (access_keymap): Protect from bad value of meta_prefix_char.
 -
 -      * .gdbinit (xgetptr, xgetint, xgettype): Copy $arg0 into a temp
 -      variable.
 -
 -2005-01-20  Steven Tamm  <steventamm@mac.com>
 -
 -      * editfns.c (Voperating_system_release): Add.
 -      (init_editfns): Assign new variable operating-system-release
 -      based on call to uname if available.
 -      (get_operating_system_release): Add function to
 -      allow c-level access to operating system release.
 -
 -      * config.h: Regenerated.
 -
 -      * s/darwin.h (PTY_ITERATION): Don't allow PTYs on darwin 6 or less.
 -      (MIN_PTY_KERNEL_VERSION): Define minimum kernel version for
 -      using ptys as '7'.
 -
 -2005-01-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c (STRING_MARKED_P, VECTOR_MARKED_P): Return boolean.
 -
 -      * xterm.c (x_draw_glyph_string_box): Fix last_x for full width rows.
 -      Thanks to Chong Yidong <cyd@stupidchicken.com> for debugging this.
 -
 -      * macterm.c (x_draw_glyph_string_box): Likewise.
 -
 -      * w32term.c (x_draw_glyph_string_box): Likewise.
 -
 -      * indent.c (Fvertical_motion): Temporarily disable selective display.
 -
 -2005-01-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight): Fix :pointer
 -      image property.
 -
 -      * fns.c (sweep_weak_table): Advance prev pointer when we keep a pair.
 -
 -2005-01-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (fast_find_position): Backtrack to find first row if
 -      charpos is inside a display overlay that spans multiple lines.
 -
 -2005-01-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_iso2022): Translate invalid codes if
 -      translation-table is specified.
 -
 -2005-01-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (back_to_previous_visible_line_start): Undo 2004-12-28
 -      change.  If handle_display_prop indicates newline is replaced by
 -      image or text, move back to start of relevant overlay or interval
 -      and continue scan from there.  Simplify.
 -
 -2005-01-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (mode_line_string, marginal_area_string):
 -      Fix off-by-one error in search for glyph.
 -
 -2005-01-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * macterm.c (syms_of_macterm) <mac-allow-anti-aliasing>: Doc fix.
 -
 -2005-01-16  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (mac_to_x_fontname): Remove spurious argument.
 -
 -2005-01-16  Andreas Schwab  <schwab@suse.de>
 -
 -      * macterm.c (mac_draw_string_common): Fix compilation on OSX 10.1.
 -
 -2005-01-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * fringe.c (Fdefine_fringe_bitmap, init_fringe): When assigning
 -      fringe_faces, cast result from xmalloc/xrealloc to Lisp_Object *.
 -
 -2005-01-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.c (READABLE_EVENTS_DO_TIMERS_NOW)
 -      (READABLE_EVENTS_FILTER_EVENTS, READABLE_EVENTS_IGNORE_SQUEEZABLES):
 -      New flags for readable_events.
 -      (get_filtered_input_pending, readable_filtered_events): Remove.
 -      (tracking_off): Call readable_events and get_input_pending with
 -      flag READABLE_EVENTS_DO_TIMERS_NOW.
 -      (readable_events): Move code from old readable_filtered_events here,
 -      but check new READABLE_EVENTS_* in argument flags instead of previous
 -      two boolean arguments do_timers_now and filter_events.
 -      If we are doing mouse tracking and the mouse moved, return only if
 -      READABLE_EVENTS_IGNORE_SQUEEZABLES is not set in flags.
 -      (swallow_events): Call get_input_pending with flag
 -      READABLE_EVENTS_DO_TIMERS_NOW.
 -      (get_input_pending): Move code from old get_filtered_input_pending
 -      here.  Replace boolean arguments do_timers_now, filter_events with
 -      flags, and pass flags to readable_events.  Document new
 -      READABLE_EVENTS_* flags.
 -      (detect_input_pending_ignore_squeezables): New function.
 -      (detect_input_pending_run_timers): Call get_input_pending with flag
 -      READABLE_EVENTS_DO_TIMERS_NOW.
 -      (Finput_pending_p): Call get_input_pending with flags
 -      READABLE_EVENTS_DO_TIMERS_NOW and READABLE_EVENTS_FILTER_EVENTS.
 -
 -      * dispnew.c (update_window, update_frame_1): Replace calls to
 -      detect_input_pending with detect_input_pending_ignore_squeezables
 -      so that redisplay is not paused if the event queue contains only
 -      mouse movements.
 -
 -      * lisp.h: Declare detect_input_pending_ignore_squeezables.
 -
 -2005-01-15  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (Vmac_use_core_graphics): Declare variable for
 -      mac-allow-anti-aliasing.
 -      (syms_of_macterm): DEFVAR_LISP and initialize it.
 -      (mac_draw_string_common): Use core graphics text rendering if
 -      mac-allow-anti-aliasing is enabled.
 -
 -      * macfns.c (Fx_file_dialog): Save As dialog includes only the
 -      file name in the text box.
 -
 -2005-01-15  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (x_set_foreground_color, x_set_background_color):
 -      Sync with xfns.c.
 -      (mac_window, x_create_tip_frame): Use XSetWindowBackground.
 -      * macterm.c (XSetBackground, XSetWindowBackground): New functions.
 -      * macterm.h (XSetBackground, XSetWindowBackground): Add externs.
 -
 -2005-01-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (Fposn_at_x_y): Add optional arg WHOLE.
 -
 -2005-01-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keymap.c (Fcurrent_active_maps): Ignore Voverriding_local_map
 -      if Voverriding_terminal_local_map is non-nil.
 -
 -      * keyboard.c (syms_of_keyboard): Doc fix.
 -
 -2005-01-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (Fformat_mode_line): Fix last change.  Remove NO_PROPS arg
 -      (specify 0 for FACE instead).  Reorder arg list.  Doc fix.
 -
 -2005-01-12  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (Fformat_mode_line): New arg FACE specifies a default
 -      face property for characters that don't specify one.
 -
 -      * fns.c (Frequire): Record in load-history unconditionally.
 -
 -2005-01-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (merge_faces): Rename from merge_into_realized_face.
 -
 -      * xfaces.c (merge_faces): Rename from merge_into_realized_face.
 -      Callers changed.
 -      Add support to merge with lisp face id too (if face_name is t).
 -
 -      * xdisp.c (get_next_display_element, next_element_from_display_vector):
 -      Don't lookup lface_id from display table glyphs here; instead use
 -      merge_faces to merge the lisp face id into current face.
 -
 -2005-01-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (struct it): New member dpvec_face_id.
 -      (merge_into_realized_face): Add prototype.
 -
 -      * xfaces.c (merge_into_realized_face): New function.  Used to
 -      merge escape-glyph face or face from display table into current face.
 -
 -      * xdisp.c (Vshow_nonbreak_escape): New lisp var.
 -      (syms_of_xdisp): DEFVAR_LISP it.
 -      (escape_glyph_face): Remove var.
 -      (redisplay_window): Don't initialize it.
 -      (setup_for_ellipsis, get_next_display_element):
 -      Set it->dpvec_face_id to -1.
 -      (get_next_display_element): Test Vshow_nonbreak_escape.
 -      Do not setup escape_glyph_face.
 -      Properly merge escape-glyph face or face from display table with
 -      current face for escape and control characters.
 -      Set it->dpvec_face_id to relevant face id instead of adding it to each
 -      element of display vector.
 -      (next_element_from_display_vector): If it->dpvec_face_id is set,
 -      use that instead of lface_id from glyph itself.
 -
 -2005-01-08  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h (struct x_output): New member, toolbar_detached.
 -
 -      * gtkutil.c (xg_create_frame_widgets): Set initial tool bar height to
 -      38.
 -      (xg_tool_bar_detach_callback): Set toolbar_detached to 1.
 -      (xg_tool_bar_attach_callback): Set toolbar_detached to 0.
 -      (xg_create_tool_bar): Initialize toolbar_detached.
 -      (update_frame_tool_bar): Only set FRAME_TOOLBAR_HEIGHT (f) if
 -      toolbar_detached is zero.
 -
 -2005-01-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (create_and_show_popup_menu): Pass zero as button to
 -      gtk_menu_popup if not for_click, so callbacks for the menu are called.
 -
 -      * gtkutil.c (xg_gtk_scroll_destroy, xg_create_scroll_bar)
 -      (xg_tool_bar_callback, xg_tool_bar_help_callback)
 -      (update_frame_tool_bar): Cast to EMACS_INT to avoid compiler warning.
 -
 -      * xselect.c (x_get_foreign_selection, x_fill_property_data)
 -      (Fx_get_atom_name, Fx_send_client_event): Replace XFLOAT with
 -      XFLOAT_DATA to get extract number from Lisp object.
 -
 -2005-01-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (set_iterator_to_next): Fix 2004-12-13 change.
 -      Set stop_charpos to current charpos instead of 0.
 -
 -2005-01-06  Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * xdisp.c (Fformat_mode_line): First arg now required.
 -
 -2005-01-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (XLoadQueryFont): Correctly handle 0 size
 -      font widths that are returned from some Japanese fonts.
 -
 -2005-01-06  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (fringe_faces): Change to Lisp_Object pointer.
 -      (draw_fringe_bitmap_1): Lookup user defined fringe faces here.
 -      (destroy_fringe_bitmap): Set fringe_faces element to nil.
 -      (Fdefine_fringe_bitmap, init_fringe): Change allocation of
 -      fringe_faces array and init elements to nil.
 -      (Fset_fringe_bitmap_face): Set fringe_faces to face name instead of
 -      non-persistent face id.
 -      (mark_fringe_data): New function for GC.
 -
 -      * alloc.c (mark_fringe_data): Declare extern.
 -      (Fgarbage_collect): Call mark_fringe_data.
 -
 -      * alloc.c (overrun_check_free): Invalidate freed memory if
 -      XMALLOC_CLEAR_FREE_MEMORY is defined.
 -
 -2005-01-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c: Include sys/param.h.
 -      [TARGET_API_MAC_CARBON] (mac_nav_event_callback): New declaration
 -      and function.
 -      [TARGET_API_MAC_CARBON] (Fx_file_dialog): Use MAXPATHLEN for size
 -      of filename string.  Set event callback function when creating
 -      dialog boxes.  Add code conversions for filenames.  Don't dispose
 -      of apple event descriptor record if failed to create it.
 -
 -      * macterm.c: Include sys/param.h.
 -      [USE_CARBON_EVENTS] (mac_handle_window_event): Add handler for
 -      kEventWindowUpdate.
 -      (install_window_handler) [USE_CARBON_EVENTS]: Register it.
 -      (do_ae_open_documents) [TARGET_API_MAC_CARBON]: Get FSRef instead
 -      of FSSpec from apple event descriptor record.
 -      (do_ae_open_documents) [TARGET_API_MAC_CARBON]: Use MAXPATHLEN for
 -      size of filename string.
 -      [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Likewise.
 -      [TARGET_API_MAC_CARBON] (mac_do_receive_drag): Return error when a
 -      file dialog is in action.
 -      [TARGET_API_MAC_CARBON] (mac_do_track_drag): Likewise.
 -      Reject only when there are no filename items.  Set background color
 -      before (un)highlighting the window below the dragged items.
 -      (XTread_socket) [USE_CARBON_EVENTS]: Don't call do_window_update.
 -
 -2005-01-05  Romain Francoise  <romain@orebokech.com>
 -
 -      * term.c (encode_terminal_code): Fix buffer size computation.
 -
 -2005-01-04  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (Fformat_mode_line): Doc fix.
 -
 -2005-01-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c (refill_memory_reserve): Move.
 -      (emacs_blocked_free, emacs_blocked_malloc, emacs_blocked_realloc)
 -      (reset_malloc_hooks, uninterrupt_malloc) [SYNC_INPUT]: Don't define.
 -
 -2005-01-03  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (window_scroll_pixel_based): Don't correct preserve_y
 -      for CURRENT_HEADER_LINE_HEIGHT when moving backwards.
 -
 -2005-01-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32bdf.c (w32_load_bdf_font): Set fontp->average_width and
 -      fontp->space_width to FONT_WIDTH so they are valid.
 -
 -      * w32fns.c (w32_load_system_font): Set FONT_WIDTH to maximum, not
 -      average width.  Set fontp->average_width and fontp->space_width to
 -      their appropriate values.
 -
 -      * w32term.c (x_new_font): Set FRAME_COLUMN_WIDTH to
 -      fontp->average_width, not FONT_WIDTH.  Set FRAME_SPACE_WIDTH to
 -      fontp->space_width.
 -
 -2005-01-03  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
 -      (x_font_min_bounds, XLoadQueryFont): Use the correct font width
 -      metrics for max and min bounds.
 -      (x_load_font): Correctly calculate average font width metrics.
 -
 -2005-01-02  Richard M. Stallman  <rms@gnu.org>
 -
 -      * alloc.c (Fgarbage_collect): Don't truncate_undo_list on dead buffers.
 -
 -2004-12-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): Clear area in expose event for GTK.
 -
 -2004-12-31  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (setup_for_ellipsis, get_next_display_element):
 -      Set it->ellipsis_p to 1 or 0.
 -      (display_line): Record whether row ends in mid-ellipsis.
 -      (set_cursor_from_row): If ends in ellipsis, find start of it.
 -      (cursor_row_p): If PT's at the end of the ellipsis the row
 -      ends within, don't display cursor on this row.
 -
 -      * dispextern.h (struct it): New element ellipsis_p.
 -      (struct glyph_row): New element ends_in_ellipsis_p.
 -
 -      * xdisp.c (BUFFER_POS_REACHED_P): We haven't reached the specified
 -      position if we're reading from something other than the buffer.
 -
 -      * window.c (window_scroll_pixel_based): Only look at
 -      Vscroll_preserve_screen_position if the old PT can't be kept.
 -      (syms_of_window) <scroll-preserve-screen-position>: Doc fix.
 -
 -2004-12-30  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_line_height_property): New function extracted from
 -      original calc_line_height_property.
 -      (calc_line_height_property): Rework.  Handle t and (nil . ratio).
 -      (x_produce_glyphs): Use them to handle line-height and
 -      line-spacing according to new height spec.
 -      (Qtotal): Remove.
 -      (syms_of_xdisp): Remove intern and staticpro for Qtotal.
 -
 -2004-12-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Finsert_file_contents): Don't use
 -      current_buffer->buffer_file_coding_system even if REPLACE is
 -      non-nil.  Call Qafter_insert_file_set_coding with the second arg VISIT.
 -
 -      * fontset.h (struct font_info): New members space_width and
 -      average_width.
 -
 -      * frame.h (struct frame): New member space_width.
 -      (FRAME_SPACE_WIDTH): New macro.
 -
 -      * xterm.h (struct x_display_info): New member Xatom_AVERAGE_WIDTH.
 -
 -      * xterm.c (x_new_font): Set FRAME_COLUMN_WIDTH to
 -      fontp->average_width, not FONT_WIDTH.  Set FRAME_SPACE_WIDTH to
 -      fontp->space_width.
 -      (x_load_font): Calculate fontp->space_width and fontp->average_width.
 -      (x_term_init): Initialize dpyinfo->Xatom_AVERAGE_WIDTH.
 -
 -      * xdisp.c (x_produce_glyphs): Calculate tab width by
 -      FRAME_SPACE_WIDTH, not FRAME_COLUMN_WIDTH.
 -
 -2004-12-29  Sanghyuk Suh  <han9kin@mac.com>
 -
 -      * macterm.c (SelectionRange): Add Xcode position apple event struct.
 -      (do_ae_open_documents): Handle Xcode-style file position open events.
 -
 -2004-12-29  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * buffer.c (syms_of_buffer) <vertical-scroll-bar>: Correct typo.
 -
 -2004-12-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (syms_of_buffer) <vertical-scroll-bar>: Doc fix.
 -
 -2004-12-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (install_window_handler): Modify extern to return OSErr
 -      value.
 -      (mac_window): Handle return value of install_window_handler.
 -
 -      * macterm.c (reflect_byte): Remove function.
 -      (mac_create_bitmap_from_bitmap_data): Don't call reflect_byte.
 -      Lookup table instead.
 -      (mac_do_font_lists): Simplify calculation of the longest
 -      nonspecial string.
 -      (init_mac_drag_n_drop): Remove function and declaration.
 -      (mac_initialize) [TARGET_API_MAC_CARBON]: Don't call
 -      init_mac_drag_n_drop.
 -      (mac_do_track_drag): New function and declaration.
 -      (install_window_handler): Return OSErr value.
 -      (install_window_handler) [TARGET_API_MAC_CARBON]:
 -      Register handlers for tracking/receiving drag-and-drop items.
 -      (do_ae_open_documents): Generate unibyte strings for filenames.
 -      (mac_do_receive_drag) [TARGET_API_MAC_CARBON]: Likewise.
 -      Reject only non-filename items.  Set event modifiers, and return value.
 -
 -2004-12-28  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * coding.c (decode_coding): Fix previous change.
 -
 -2004-12-28  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (back_to_previous_visible_line_start):
 -      Don't call handle_display_prop.
 -
 -2004-12-28  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * coding.c (decode_coding_XXX, decode_composition_emacs_mule)
 -      (decode_coding_emacs_mule, encode_coding_emacs_mule)
 -      (decode_coding_iso2022, encode_designation_at_bol)
 -      (encode_coding_iso2022, decode_coding_sjis_big5, decode_eol)
 -      (decode_coding): Constify arguments and local vars.
 -
 -2004-12-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (popup_get_selection): Only pop down dialogs
 -      on C-g and Escape.
 -      (popup_get_selection): Remove parameter down_on_keypress.
 -      (create_and_show_popup_menu, create_and_show_dialog):
 -      Remove parameter down_on_keypress to popup_get_selection.
 -
 -2004-12-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * dispextern.h: Change HAVE_CARBON to MAC_OS.
 -      (struct glyph_string): Likewise.
 -
 -      * emacs.c (main) [MAC_OS8]: Call mac_term_init instead of
 -      mac_initialize.
 -
 -      * fileio.c (Fnext_read_file_uses_dialog_p, Fread_file_name):
 -      Change TARGET_API_MAC_CARBON to HAVE_CARBON.
 -
 -      * fns.c (vector): Change MAC_OSX to MAC_OS.
 -
 -      * frame.c (x_set_frame_parameters, x_report_frame_params)
 -      (x_set_fullscreen): Remove #ifndef HAVE_CARBON.
 -      (x_set_border_width, Vdefault_frame_scroll_bars):
 -      Change HAVE_CARBON to MAC_OS.
 -
 -      * image.c [MAC_OS]: Include sys/stat.h.
 -      [MAC_OS && !MAC_OSX]: Include sys/param.h, ImageCompression.h, and
 -      QuickTimeComponents.h.
 -
 -      * mac.c [!MAC_OSX] (mac_wait_next_event): Add extern.
 -      [!MAC_OSX] (select): Use mac_wait_next_event.
 -      [!MAC_OSX] (run_mac_command): Change EXEC_SUFFIXES to Vexec_suffixes.
 -      [!MAC_OSX] (select, run_mac_command): Change `#ifdef
 -      TARGET_API_MAC_CARBON' to `#if TARGET_API_MAC_CARBON'.
 -      (mac_clear_font_name_table): Add extern.
 -      (Fmac_clear_font_name_table): New defun.
 -      (syms_of_mac): Defsubr it.
 -      [MAC_OSX] (SELECT_POLLING_PERIOD_USEC): New define.
 -      [MAC_OSX] (select_and_poll_event): New function.
 -      [MAC_OSX] (sys_select): Use it.
 -      [MAC_OSX && SELECT_USE_CFSOCKET] (socket_callback): New function.
 -      [MAC_OSX && SELECT_USE_CFSOCKET]
 -      (SELECT_TIMEOUT_THRESHOLD_RUNLOOP, EVENT_CLASS_SOCK): New defines.
 -      [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]: Use CFSocket and
 -      RunLoop for simultaneously monitoring two kinds of inputs, window
 -      events and process outputs, without periodically polling.
 -
 -      * macfns.c (mac_initialized): Remove extern.
 -      (stricmp): Put in #if 0.  All callers changed to use xstricmp in
 -      xfaces.c.
 -      (strnicmp): Decrement `n' at the end of each loop, not the beginning.
 -      (check_mac): Use the term "Mac native windows" instead of "Mac OS".
 -      (check_x_display_info, x_display_info_for_name): Sync with xfns.c.
 -      (mac_get_rdb_resource): New function (from w32reg.c).
 -      (x_get_string_resource): Use it.
 -      (install_window_handler): Add extern.
 -      (mac_window): New function.
 -      (Fx_create_frame): Use it instead of make_mac_frame.
 -      Set parameter for Qfullscreen.  Call x_wm_set_size_hint.
 -      (Fx_open_connection, Fx_close_connection): New defuns.
 -      (syms_of_macfns): Defsubr them.
 -      (x_create_tip_frame) [TARGET_API_MAC_CARBON]:
 -      Add kWindowNoUpdatesAttribute to the window attribute.
 -      (x_create_tip_frame) [!TARGET_API_MAC_CARBON]: Use NewCWindow.
 -      (x_create_tip_frame): Don't call ShowWindow.
 -      (Fx_show_tip): Call ShowWindow.
 -      (Fx_file_dialog): Change `#ifdef TARGET_API_MAC_CARBON' to `#if
 -      TARGET_API_MAC_CARBON'.
 -      (mac_frame_parm_handlers): Set handlers for Qfullscreen.
 -      (syms_of_macfns) [MAC_OSX]: Initialize mac_in_use to 0.
 -
 -      * macgui.h [!MAC_OSX]: Don't include Controls.h.  Include Windows.h.
 -      (Window): Typedef to WindowPtr and move outside `#if
 -      TARGET_API_MAC_CARBON'.
 -      (XSizeHints): New struct.
 -
 -      * macterm.c (x_update_begin, x_update_end)
 -      [TARGET_API_MAC_CARBON]: Disable screen updates during update of a
 -      frame.
 -      (x_draw_glyph_string_background, x_draw_glyph_string_foreground)
 -      [MAC_OS8]: Use XDrawImageString/XDrawImageString16.
 -      (construct_mouse_click): Put in #if 0.
 -      (x_check_fullscreen, x_check_fullscreen_move): Remove decls.
 -      (x_scroll_bar_create, x_scroll_bar_handle_click): Change `#ifdef
 -      TARGET_API_MAC_CARBON' to `#if TARGET_API_MAC_CARBON'.
 -      (activate_scroll_bars, deactivate_scroll_bars)
 -      [!TARGET_API_MAC_CARBON]: Use ActivateControl/DeactivateControl.
 -      (x_make_frame_visible) [TARGET_API_MAC_CARBON]: Reposition window
 -      if the position is neither user-specified nor program-specified.
 -      (x_free_frame_resources): Free size_hints.
 -      (x_wm_set_size_hint): Allocate size_hints if needed.  Set size_hints.
 -      (mac_clear_font_name_table): New function.
 -      (mac_do_list_fonts): Initialize font_name_table if needed.
 -      (x_list_fonts): Don't initialize font_name_table.  Add BLOCK_INPUT
 -      around mac_do_list_fonts.
 -      (mac_unload_font): New function.
 -      (x_load_font): Add BLOCK_INPUT around XLoadQueryFont.
 -      (init_mac_drag_n_drop, mac_do_receive_drag): Enclose declarations
 -      and definitions with #if TARGET_API_MAC_CARBON.
 -      [USE_CARBON_EVENTS] (mac_handle_window_event): Add decl.
 -      (install_window_handler): Add decl.
 -      (do_window_update): Add BeginUpdate/EndUpdate for the tooltip
 -      window.  Use UpdateControls.  Get the rectangle that should be
 -      updated and restrict the target of expose_frame to it.
 -      (do_grow_window): Set minimum height/width according to size_hints.
 -      (do_grow_window) [TARGET_API_MAC_CARBON]: Use ResizeWindow.
 -      (do_zoom_window): Don't use x_set_window_size.
 -      [USE_CARBON_EVENTS] (mac_handle_window_event): New function.
 -      (install_window_handler): New function.
 -      [!USE_CARBON_EVENTS] (mouse_region): New variable.
 -      [!USE_CARBON_EVENTS] (mac_wait_next_event): New function.
 -      (XTread_socket) [USE_CARBON_EVENTS]: Move call to
 -      GetEventDispatcherTarget inside BLOCK_INPUT.
 -      (XTread_socket) [!USE_CARBON_EVENTS]: Use mac_wait_next_event.
 -      Update mouse_region when mouse is moved.
 -      (make_mac_frame): Remove.
 -      (make_mac_terminal_frame): Put in #ifdef MAC_OS8.
 -      Initialize mouse pointer shapes.  Change values of f->left_pos and
 -      f->top_pos.  Don't use make_mac_frame.  Use NewCWindow.
 -      Don't call ShowWindow.
 -      (mac_initialize_display_info) [MAC_OSX]: Create mac_id_name from
 -      Vinvocation_name and Vsystem_name.
 -      (mac_make_rdb): New function (from w32term.c).
 -      (mac_term_init): Use it.  Add BLOCK_INPUT.  Error if display has
 -      already been opened.  Don't pass argument to
 -      mac_initialize_display_info.  Don't set dpyinfo->height/width.
 -      Add entries to x_display_list and x_display_name_list.
 -      (x_delete_display): New function.
 -      (mac_initialize): Don't call mac_initialize_display_info.
 -      (syms_of_macterm) [!MAC_OSX]: Don't call Fprovide.
 -
 -      * macterm.h (check_mac): Add extern.
 -      (struct mac_output): New member size_hints.
 -      (FRAME_SIZE_HINTS): New macro.
 -      (mac_unload_font): Add extern.
 -
 -      * xdisp.c (expose_window, expose_frame): Remove kludges for Mac.
 -
 -      * xfaces.c (clear_font_table) [MAC_OS]: Call mac_unload_font.
 -
 -2004-12-27  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (Fbuffer_disable_undo): Delete (move to simple.el).
 -      (syms_of_buffer): Don't defsubr it.
 -
 -      * process.c (list_processes_1): Set undo_list instead
 -      of calling Fbuffer_disable_undo.
 -
 -      * xdisp.c (single_display_spec_string_p): Rename from
 -      single_display_prop_string_p.
 -      (single_display_spec_intangible_p): Rename from
 -      single_display_prop_intangible_p.
 -      (handle_single_display_spec): Rename from handle_single_display_prop.
 -      Rewritten to be easier to understand.
 -
 -      Change in load-history format.  Functions now get (defun . NAME),
 -      and variables get just NAME.
 -
 -      * data.c (Fdefalias): Use (defun . FN_NAME) in LOADHIST_ATTACH.
 -
 -      * eval.c (Fdefun, Fdefmacro): Use (defun . FN_NAME) in LOADHIST_ATTACH.
 -      (Fdefvaralias, Fdefvar, Fdefconst): Use just SYM in LOADHIST_ATTACH.
 -      (Qdefvar): Var deleted.
 -      (syms_of_eval): Don't initialze it.
 -
 -      * lread.c (syms_of_lread) <load-history>: Doc fix.
 -
 -2004-12-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (popup_get_selection): Pop down on C-g.
 -      (set_frame_menubar): Install translations for Lucid/Motif/Lesstif that
 -      pops down menu on C-g.
 -      (xdialog_show): If dialog popped down and no button in the dialog was
 -      pushed, call Fsignal to quit.
 -      (xmenu_show): In no toolkit version, if menu returns NO_SELECT call
 -      Fsignal to quit.
 -
 -      * xfns.c (Fx_file_dialog): Motif/Lesstif version: Pop down on C-g.
 -
 -      * gtkutil.c (xg_initialize): Install bindings for C-g so that
 -      dialogs and menus pop down.
 -
 -2004-12-27  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (code_convert_region): Fix calculation of `ratio'.
 -
 -2004-12-25  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (update_frame_tool_bar): Make the value of
 -      tool-bar-button-margin control margins of images in tool bar.
 -
 -      * alloc.c (check_depth): New variable.
 -      (overrun_check_malloc, overrun_check_realloc): Only add
 -      overhead and write check pattern if check_depth is 1 (to handle
 -      recursive calls).  Increase/decrease check_depth in entry/exit.
 -      (overrun_check_free): Only check for overhead if check_depth is 1.
 -      Increase/decrease check_depth in entry/exit.
 -
 -2004-12-23  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c (input_available_signal): Call SIGNAL_THREAD_CHECK
 -      before touching input_available_clear_time, to avoid accessing it
 -      from multiple threads.
 -
 -2004-12-23  Jason Rumney  <jasonr@gnu.org>
 -
 -      * image.c (__WIN32__) [HAVE_NTGUI]: Define for correct behaviour
 -      of JPEG library.
 -
 -2004-12-22  Richard M. Stallman  <rms@gnu.org>
 -
 -      * emacs.c (main): If batch mode, set Vundo_outer_limit to nil.
 -
 -      * lisp.h (Vundo_outer_limit): Fix decl.
 -
 -      * undo.c (Vundo_outer_limit): Replaces undo_outer_limit.
 -      Uses changed.
 -      (syms_of_undo): Initialize appropriately.
 -      (truncate_undo_list): If it's nil, there's no limit.
 -
 -2004-12-22  Kenichi Handa  <handa@m17n.org>
 -
 -      * xselect.c (Fx_get_cut_buffer_internal): Return a unibyte string.
 -
 -2004-12-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * eval.c (unwind_to_catch): Clear immediate_quit.
 -
 -      * xdisp.c (get_next_display_element): Display codes 8a0 and 8ad
 -      specially as `\ ' and `\-'.
 -
 -      * keyboard.c (kbd_buffer_store_event_hold):
 -      In the code for while-no-input, handle immediate_quit.
 -
 -      * alloc.c (Fgarbage_collect): Update call to truncate_undo_list.
 -      Call that at the very start.
 -      (undo_limit, undo_strong_limit, undo_outer_limit): Move to undo.c.
 -      (syms_of_alloc): Don't define undo-limit,
 -      undo-strong-limit and undo-outer-limit here.
 -
 -      * undo.c (truncate_undo_list): Return void.
 -      Take just one argument, the buffer.
 -      Make it current, and inhibit recursive GC.
 -      Access and update the undo list directly; return void.
 -      Refer to the undo...limit variables directly.
 -      Test undo_outer_limit only after counting the whole current command.
 -      When it's exceeded, call the function in undo-outer-limit-function.
 -      (undo_limit, undo_strong_limit, undo_outer_limit): From alloc.c.
 -      (Vundo_outer_limit_function): New variable.
 -      (syms_of_undo): Define undo-limit, undo-strong-limit
 -      and undo-outer-limit here, and undo-outer-limit-function.
 -      Doc fixes.
 -
 -      * lisp.h (truncate_undo_list): Update decl.
 -
 -2004-12-21  Piet van Oostrum  <piet@cs.uu.nl>
 -
 -      * fileio.c (Fread_file_name): Delete duplicates in
 -      file-name-history when history_delete_duplicates is true.
 -
 -2004-12-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_do_list_fonts): Fix memory leak
 -
 -2004-12-20  Richard M. Stallman  <rms@gnu.org>
 -
 -      * regex.c (re_match_2_internal) <symend, wordend>:
 -      Fix calls to UPDATE_SYNTAX_TABLE_FORWARD.
 -
 -2004-12-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (endif, x_font_name_to_mac_font_name):
 -      Use maccentraleurroman instead of maccentraleuropean
 -      (mac_c_string_match, mac_do_list_fonts): Speed up font search by
 -      quickly finding a specific font without needing regexps.
 -
 -2004-12-15  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * syssignal.h: Declare main_thread.
 -      (SIGNAL_THREAD_CHECK): New macro.
 -
 -      * keyboard.c (input_available_signal): Move thread checking code
 -      to macro SIGNAL_THREAD_CHECK and call that macro.
 -      (interrupt_signal): Call SIGNAL_THREAD_CHECK.
 -
 -      * alloc.c (uninterrupt_malloc): Move main_thread to emacs.c.
 -
 -      * emacs.c: Define main_thread.
 -      (main): Initialize main_thread.
 -      (handle_USR1_signal, handle_USR2_signal, fatal_error_signal)
 -      (memory_warning_signal): Call SIGNAL_THREAD_CHECK.
 -
 -      * floatfns.c (float_error): Call SIGNAL_THREAD_CHECK.
 -
 -      * dispnew.c (window_change_signal): Call SIGNAL_THREAD_CHECK.
 -
 -      * sysdep.c (select_alarm): Call SIGNAL_THREAD_CHECK.
 -
 -      * process.c (send_process_trap, sigchld_handler):
 -      Call SIGNAL_THREAD_CHECK.
 -
 -      * data.c (arith_error): Call SIGNAL_THREAD_CHECK.
 -
 -      * atimer.c (alarm_signal_handler): Call SIGNAL_THREAD_CHECK.
 -
 -      * xterm.c (xg_scroll_callback): Update XG_LAST_SB_DATA before
 -      returning when xg_ignore_gtk_scrollbar is true.
 -
 -2004-12-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (read_char): Save and restore echo_string when
 -      handling input method.
 -
 -2004-12-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * eval.c (syms_of_eval) <quit-flag>: Doc fix.
 -
 -      * keyboard.c (Vthrow_on_input): New variable.
 -      (syms_of_keyboard): Defvar and initialize it.
 -      (kbd_buffer_store_event_hold): Handle Vthrow_on_input.
 -
 -      * lisp.h (QUIT): Check for Vthrow_on_input.
 -      (Vthrow_on_input): Declare it.
 -
 -2004-12-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (set_iterator_to_next): Reset stop_charpos after display
 -      vector.
 -
 -2004-12-12  Richard M. Stallman  <rms@gnu.org>
 -
 -      * indent.c (Fvertical_motion): Call move_it_by_lines even if LINES = 0.
 -
 -      * minibuf.c (Fall_completions): Add var `zero' and use it in loop.
 -      (Ftry_completion): Really use outer `zero'; eliminate inner one.
 -
 -2004-12-12  Kenichi Handa  <handa@m17n.org>
 -
 -      * term.c (encode_terminal_code): Fix previous change.
 -
 -2004-12-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (handle_async_input): Remove pthread mutex handling.
 -      (input_available_signal): Move pthread thingy to !SYNC_INPUT branch.
 -
 -      * syntax.c (Fforward_word): Avoid non-idempotent side-effects
 -      in macro arguments.
 -
 -      * minibuf.c (Ftry_completion, Fall_completions): Don't use
 -      XFASTINT blindly.
 -
 -      * emacs.c (main, Fdump_emacs): Don't touch malloc hooks if SYNC_INPUT.
 -
 -2004-12-11  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * w32term.c (x_calc_absolute_position): Remove calculation of
 -      difference between inner and outer window.  Don't subtract difference
 -      for left and top calculations.
 -
 -      * xterm.c (x_calc_absolute_position): Don't subtract outer_pixel_diff
 -      for left and top calculations.  Remove call to x_real_positions.
 -      [Bug report by Drew Adams in November.]
 -      (x_check_expected_move): Do not set change_gravity to 1 when calling
 -      x_set_offset.
 -
 -2004-12-08  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (get_next_display_element): Use `escape-glyph' for
 -      control chars and escaped octal codes.
 -      (Qescape_glyph): New variable.
 -      (syms_of_xdisp): Initialize it.
 -      (escape_glyph_face): New variable.
 -      (redisplay_window): Initialize it.
 -
 -2004-12-07  Paul Eggert  <eggert@cs.ucla.edu>
 -
 -      * image.c (our_fill_input_buffer, jpeg_load, CHECK_LIB_AVAILABLE)
 -      (init_image): Use 1 rather than TRUE.  TRUE's not always defined.
 -
 -2004-12-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * emacs.c (Fdump_emacs): Add ! defined (SYSTEM_MALLOC) around
 -      reset_malloc_hooks.
 -
 -      * keyboard.c (handle_async_input, input_available_signal):
 -      Add ! defined (SYSTEM_MALLOC) around thread code.
 -
 -      * alloc.c: Add comment about the reason for (UN)BLOCK_INPUT_ALLOC.
 -
 -2004-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * eval.c (init_eval_once): Increase max_specpdl_size to 1000.
 -
 -      * config.in: Regenerate.
 -
 -2004-12-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (Fx_popup_menu): Correct documentation about position.
 -      (xmenu_show): Do not call XTranslateCoordinates.  Adjust position
 -      if not given by a mouse click to correspond with x-popup-menu
 -      documentation.
 -
 -      * config.in: Regenerate.
 -
 -      * gtkutil.c: Include signal.h and syssignal.h.
 -      (xg_get_file_name): Block and unblock __SIGRTMIN if defined.
 -
 -      * alloc.c: If HAVE_GTK_AND_PTHREAD, include pthread.h,
 -      new variables main_thread and alloc_mutex,
 -      define (UN)BLOCK_INPUT_ALLOC to use alloc_mutex to protect
 -      emacs_blocked_* calls and only do (UN)BLOCK_INPUT in the main thread.
 -      If not HAVE_GTK_AND_PTHREAD, (UN)BLOCK_INPUT_ALLOC is the same
 -      as (UN)BLOCK_INPUT.
 -      (emacs_blocked_free, emacs_blocked_malloc)
 -      (emacs_blocked_realloc): Use (UN)BLOCK_INPUT_ALLOC.
 -      (uninterrupt_malloc): Initialize main_thread and alloc_mutex.
 -      (reset_malloc_hooks): New function.
 -
 -      * lisp.h: Declare reset_malloc_hooks.
 -
 -      * emacs.c (Fdump_emacs): Call reset_malloc_hooks.
 -
 -      * keyboard.c: Conditionally include pthread.h.
 -      (handle_async_input, input_available_signalt): If not in the main
 -      thread, block signal, send signal to main thread and return.
 -
 -      * gtkutil.c (xg_get_file_with_chooser): Handle local files only.
 -      Set current folder in file chooser if default_filename is a directory.
 -
 -2004-12-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * regex.c (GET_UNSIGNED_NUMBER): Signal an error when reaching the end.
 -      Remove redundant correctness checks.
 -      (regex_compile): Fix up error codes for \{..\} expressions.
 -
 -2004-12-05  Richard M. Stallman  <rms@gnu.org>
 -
 -      * regex.c (regex_compile): Fix end-of-pattern case for space.
 -
 -2004-12-03  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.h (cfstring_create_with_utf8_cstring): Add prototype.
 -      * mac.c (cfstring_create_with_utf8_cstring): Add to prevent
 -      crashes with invalid characters.
 -      * macmenu.c (add_menu_item): Use it.
 -      * image.c (image_load_quartz2d): Likewise.
 -      * macfns.c (x_set_name, x_set_title): Likewise.
 -      (Fx_file_dialog): Likewise.  Use constant CFRefs instead of
 -      creating them each time for labels.
 -
 -2004-12-02  Richard M. Stallman  <rms@gnu.org>
 -
 -      * config.in (RE_TRANSLATE_P): If make_number is not a macro,
 -      don't use it here.
 -
 -      * eval.c (Fcalled_interactively_p): Don't check INTERACTIVE.
 -      (interactive_p): Skip Scalled_interactively_p frames
 -      like Sinteractive_p frames.
 -      (unwind_to_catch): Clear handling_signal.
 -
 -      * data.c (Fmake_variable_buffer_local): Doc fix.
 -      (Fmake_local_variable): Doc fix.
 -
 -      * insdel.c (insert_from_string_before_markers)
 -      (insert_from_string): Don't modify buffer on empty insertion.
 -
 -      * window.c (Fget_lru_window, Fget_largest_window): Doc fixes.
 -
 -2004-12-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (add_menu_item): Fallback on MacRoman if encoding
 -      menu text as UTF8 fails.
 -
 -2004-12-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c: Add commentary for last change.
 -      (XMALLOC_PUT_SIZE, XMALLOC_GET_SIZE): New macros to handle
 -      sizeof(size_t) != 4.
 -      (overrun_check_malloc, overrun_check_realloc, overrun_check_free):
 -      Use them.  Also clear header and trailer of freed memory.
 -      (GC_STRING_OVERRUN_COOKIE_SIZE): Rename from GC_STRING_EXTRA.
 -      (string_overrun_cookie): Rename from string_overrun_pattern.
 -      (GC_STRING_EXTRA): Define from GC_STRING_OVERRUN_COOKIE_SIZE.
 -
 -2004-12-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * lisp.h: Declare string_to_multibyte.
 -
 -2004-12-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * w32console.c (w32con_write_glyphs): Decide coding here.
 -      Adjusted for the change of encode_terminal_code.
 -
 -      * term.c (encode_terminal_code): Don't make it "static".
 -
 -2004-11-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * term.c (encode_terminal_buf, encode_terminal_bufsize): New variables.
 -      (encode_terminal_code): Argument changed.  Encode all
 -      characters at once, and return a pointer to the result of encoding.
 -      (write_glyphs): Decide coding here.  Adjusted for the above change.
 -      (insert_glyphs): Likewise.
 -      (term_init): Initialize encode_terminal_bufsize to 0.
 -
 -      * coding.c (Vcode_conversion_workbuf_name): New variable.
 -      (syms_of_coding): Initialize and staticpro it.
 -      (set_conversion_work_buffer): New function.
 -      (run_pre_post_conversion_on_str): Use it.
 -      (run_pre_write_conversin_on_c_str): New function.
 -
 -      * coding.h (run_pre_write_conversin_on_c_str): Extern it.
 -
 -2004-11-30  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * keyboard.c: Don't undef SIGIO
 -      * s/darwin.h (NO_SOCK_SIGIO): Define NO_SOCK_SIGIO on carbon
 -      * Makefile.in (mac.o): Depend on blockinput.h and atimer.h.
 -      (macfns.o): Don't depend on ccl.h.
 -      * macfns.c (mac_frame_parm_handlers): Set handlers for
 -      Qleft_fringe and Qright_fringe.
 -      * macterm.c (mac_fill_rectangle_to_pixmap)
 -      (mac_draw_rectangle_to_pixmap, mac_copy_area_to_pixmap)
 -      (mac_copy_area_with_mask_to_pixmap, x_draw_image_foreground_1):
 -      Put in #if 0.
 -      (mac_scroll_area) [TARGET_API_MAC_CARBON]: Use ScrollWindowRect.
 -      (x_flush) [TARGET_API_MAC_CARBON]: Don't traverse frames.
 -      (XFlush) [TARGET_API_MAC_CARBON]: Define to an empty replacement.
 -      (x_draw_glyph_string_background, x_draw_glyph_string_foreground)
 -      [!MAC_OS8]: Added ifdef'd out code for os8.  Don't use
 -      XDrawImageString.  Always draw background and foreground separately.
 -      (x_draw_image_foreground): Use clipping instead of computing the
 -      intersection rectangle.
 -      (x_draw_image_glyph_string): Don't draw an image with mask to a
 -      pixmap.
 -      (x_redisplay_interface): Set flush_display_optional member to 0.
 -      (XTread_socket): Correctly reset the TEConverter
 -      object.
 -
 -2004-11-30  Kim F. Storm  <storm@cua.dk>
 -
 -      * lisp.h: New defines to enable buffer overrun checking.
 -      (GC_CHECK_STRING_OVERRUN, GC_CHECK_STRING_FREE_LIST)
 -      (XMALLOC_OVERRUN_CHECK, GC_CHECK_CONS_LIST): Add.
 -
 -      * alloc.c: Add more checks for buffer overruns.
 -      (XMALLOC_OVERRUN_CHECK_SIZE, xmalloc_overrun_check_header)
 -      xmalloc_overrun_check_trailer, overrun_check_malloc)
 -      overrun_check_realloc, overrun_check_free): Add.
 -      (GC_STRING_EXTRA, string_overrun_pattern): Add.
 -      (check_sblock, allocate_string_data, compact_small_strings):
 -      Set and check string_overrun_pattern if GC_CHECK_STRING_OVERRUN.
 -      (check_cons_list): Condition on GC_CHECK_CONS_LIST.
 -      (check_string_free_list): Add.
 -      (allocate_string, sweep_strings): Call check_string_free_list.
 -
 -      * emacs.c (malloc_initialize_hook): Don't free malloc_state_ptr if
 -      XMALLOC_OVERRUN_CHECK to avoid crash during load.
 -
 -2004-11-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * fns.c (concat): Use SAFE_ALLOCA.
 -
 -2004-11-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * sysdep.c (emacs_write): Don't use QUIT.
 -
 -2004-11-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * buffer.c (init_buffer): Set current_buffer->directory to a
 -      multibyte string made by string_to_multibyte.
 -
 -      * emacs.c (init_cmdargs): Set unibyte strings in Vcommand_line_args.
 -
 -2004-11-27  Andreas Schwab  <schwab@suse.de>
 -
 -      * alloc.c (mark_stack): Call GC_MARK_SECONDARY_STACK if defined.
 -
 -      * s/gnu-linux.h: Enable no-op gcpros on ia64.
 -      (GC_MARK_SECONDARY_STACK) [__ia64__]: Define.
 -
 -      * filelock.c (lock_file_1): Call get_boot_time early.
 -      Increase buffer size.
 -
 -2004-11-27  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * lisp.h (DECL_ALIGN): Define non-trivially only if NO_DECL_ALIGN
 -      is not defined.
 -
 -2004-11-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * search.c (syms_of_search) <search-spaces-regexp>: Move 'doc:'
 -      marker out of doc string.
 -
 -2004-11-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * s/darwin.h (POSIX_SIGNALS): Undo the removal of 2002-08-25,
 -      which was not mentioned in the log.
 -
 -2004-11-26  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (update_window_fringes): Prefer truncation bitmaps over
 -      angle bitmaps at top/bottom line.
 -
 -      * xdisp.c: Undo recent changes for restoring saved_face_id.  Instead,
 -      set it when it->method is set to next_element_from_display_vector.
 -      (setup_for_ellipsis): Add LEN argument.  Callers changed.
 -      Set it->saved_face_id.
 -      (get_next_display_element): Use loop instead of recursion.
 -      Set it->saved_face_id.  Combine duplicate code for ctr chars.
 -      (next_element_from_display_vector): Do not set it->saved_face_id.
 -      (next_element_from_ellipsis): Use setup_for_ellipsis.
 -
 -2004-11-26  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * eval.c (Fdefvar): Declare pdl from last change as `volatile' to
 -      prevent compiler warnings.
 -
 -2004-11-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (command_loop_1): Print a message describing the key
 -      the user just pressed when this key has no binding.
 -
 -      * sysdep.c (sys_signal): Don't use SA_RESTART if SYNC_INPUT is set.
 -      (emacs_open, emacs_read, emacs_write): Check QUIT when interrupted.
 -
 -      * lread.c (readchar): Check QUIT when `getc' is interrupted.
 -
 -2004-11-24  Richard M. Stallman  <rms@gnu.org>
 -
 -      * coding.c (run_pre_post_conversion_on_str): Bind Qinhibit_read_only.
 -
 -      * buffer.c (syms_of_buffer) <indicate-buffer-boundaries>: Doc fix.
 -
 -2004-11-24  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (move_it_in_display_line_to, display_line):
 -      Restore saved_face_id also when truncate-lines or hscrolled.
 -
 -2004-11-23  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_file_name): Rename use-old-gtk-file-dialog to
 -      x-use-old-gtk-file-dialog.
 -
 -      * xfns.c: Define x_use_old_gtk_file_dialog.
 -      (syms_of_xfns): Rename use-old-gtk-file-dialog to x-...  Move it
 -      outside ifdef USE_GTK.
 -
 -2004-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * coding.h (ENCODE_FILE, DECODE_FILE, ENCODE_SYSTEM, DECODE_SYSTEM):
 -      Don't use XFASTINT blindly.
 -
 -      * config.in (RE_TRANSLATE_P): Don't use XFASTINT blindly.
 -
 -      * indent.c (skip_invisible): Avoid non-idempotent side-effects
 -      in macro arguments.
 -
 -      * keymap.c (Flookup_key): Check INTEGERP before XINT.
 -
 -      * lread.c (oblookup): Don't use XFASTINT blindly.
 -
 -      * window.c (Fset_window_scroll_bars): Don't use XINT if it isn't int.
 -      (decode_next_window_args, window_loop): Don't use XFASTINT blindly.
 -
 -2004-11-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (MATRIX_ROW_ENDS_IN_MIDDLE_OF_CHAR_P)
 -      (MATRIX_ROW_STARTS_IN_MIDDLE_OF_CHAR_P): Not if dpvec_index is zero.
 -
 -      * xfaces.c (lookup_named_face): Add signal_p arg.  Return -1 if
 -      signal_p is zero and face name is unknown.
 -      (Fx_list_fonts): Don't signal error in lookup_named_face.
 -      (Fface_font): Signal error in lookup_named_face.
 -      (ascii_face_of_lisp_face): Likewise.
 -
 -      * dispextern.h (lookup_named_face): Fix prototype.
 -
 -      * xdisp.c (handle_single_display_prop): Don't signal error in
 -      lookup_named_face for unknown fringe face name.
 -      (highlight_trailing_whitespace): Don't signal error in
 -      lookup_named_face if trailing-whitespace face unknown.
 -      (calc_line_height_property): Don't signal error in
 -      lookup_named_face if specified face name is unknown.
 -
 -      * fringe.c (update_window_fringes): Show top row indicator if
 -      window has header-line.  Don't show arrow at bob and eob
 -      if the boundary indicators are not used.
 -      (Fset_fringe_bitmap_face): Signal error in lookup_named_face.
 -
 -      * window.c (set_window_buffer): Clear display_error_modiff.
 -
 -2004-11-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (update_window_fringes): Provide sensible fall-back
 -      value for non-nil indicate-buffer-boundaries setting.
 -
 -2004-11-22  Markus Rost  <rost@ias.edu>
 -
 -      * minibuf.c (Fminibuffer_complete_and_exit): Fix previous change.
 -
 -2004-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * eval.c (Fdefvar): Warn when var is let-bound but globally void.
 -
 -2004-11-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (erase_phys_cursor): Clear hollow cursor inside TEXT_AREA.
 -
 -      * xterm.c (x_clip_to_row): Add area arg.  Callers changed.
 -      (x_draw_hollow_cursor, x_draw_bar_cursor): Clip to TEXT_AREA.
 -
 -      * w32term.c (w32_clip_to_row): Add area arg.  Callers changed.
 -      (x_draw_hollow_cursor, x_draw_bar_cursor): Clip to TEXT_AREA.
 -
 -      * macterm.c (x_clip_to_row): Add area arg.  Callers changed.
 -      (x_draw_hollow_cursor, x_draw_bar_cursor): Clip to TEXT_AREA.
 -
 -      * xdisp.c (move_it_in_display_line_to, display_line):
 -      Restore saved_face_id if overflow-newline-into-fringe is enabled and
 -      line is continued before or in middle of element from display vector.
 -
 -      * indent.c (Fvertical_motion): Fix last change.  Use another
 -      method to detect if iterator moved too far ahead after reseat.
 -
 -      * xdisp.c (IT_EXPAND_MATRIX_WIDTH): New macro.  Do not
 -      expand matrix width for overflow in zero-width area.
 -      (append_glyph, append_composite_glyph, produce_image_glyph)
 -      (append_stretch_glyph): Use it to avoid loop in redisplay.
 -      (note_mode_line_or_margin_highlight): Don't let help-echo from
 -      string override help-echo from image map.
 -
 -2004-11-20  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fns.c (Fyes_or_no_p): Call Fread_from_minibuffer with extra argument.
 -      * callint.c (Fcall_interactively): Ditto.
 -
 -2004-11-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * minibuf.c (Fminibuffer_complete_and_exit):
 -      Fixup the case of the completed value, for case-indep completion.
 -
 -2004-11-20  Richard M. Stallman  <rms@gnu.org>
 -
 -      * lisp.h (Fread_from_minibuffer): Add arg in decl.
 -
 -      * minibuf.c (read_minibuf): New arg KEEP_ALL.  Callers changed.
 -      (Fread_from_minibuffer): New arg KEEP_ALL.  Callers changed.
 -
 -      * search.c (Vsearch_spaces_regexp):
 -      Rename from Vsearch_whitespace_regexp.  All uses changed.
 -
 -2004-11-20  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * eval.c (init_eval_once): Increase `max_specpdl_size' to 650.
 -
 -2004-11-19  Richard M. Stallman  <rms@gnu.org>
 -
 -      * search.c (Vsearch_whitespace_regexp): New variable.
 -      (syms_of_search): Defvar it.
 -      (compile_pattern_1): Call re_set_whitespace_regexp with it.
 -      (search_buffer): No regexp is trivial if Vsearch_whitespace_regexp
 -      is non-nil.
 -      (struct regexp_cache): New element whitespace_regexp.
 -      (syms_of_search): Initialize whitespace_regexp elements.
 -      (compile_pattern): Compare whitespace_regexp elements.
 -      (compile_pattern_1): Set whitespace_regexp elements.
 -
 -      * regex.c (regex_compile): Substitute whitespace_regexp
 -      for spaces, if it is nonzero.
 -      (whitespace_regexp): New variable.
 -      (re_set_whitespace_regexp): New function.
 -
 -2004-11-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * indent.c (Fvertical_motion): Fix last change.
 -
 -2004-11-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * indent.c (Fvertical_motion): Undo 2004-11-16 change.
 -      Instead, move back again if reseating moves too far ahead.
 -
 -2004-11-17  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * xdisp.c (message3): Call clear_message.
 -
 -2004-11-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (erase_phys_cursor): Adjust cursor row visible height.
 -
 -2004-11-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_file_name): Typo in HAVE_GTK_FILE_SELECTION_NEW.
 -
 -      * xmenu.c (x_menu_in_use): Remove.
 -      (x_menu_set_in_use): Also set popup_activated_flag.
 -
 -      * xfns.c (Fx_file_dialog): Call popup_activated instead of
 -      x_menu_in_use.  Call x_menu_set_in_use in Motif version also.
 -
 -      * xterm.h (x_menu_in_use): Remove.
 -
 -2004-11-16  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keymap.c (Fmap_keymap): New arg SORT-FIRST.
 -      Use map-keymap-internal to implement that.
 -
 -      * indent.c (Fvertical_motion): In batch mode, use vmotion directly.
 -
 -2004-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (get_glyph_string_clip_rect, init_glyph_string): Check it's
 -      a window before using XWINDOW.
 -
 -      * window.c (make_window, Fselect_window, make_dummy_parent)
 -      (save_window_save):
 -      * frame.c (make_frame):
 -      * fns.c (concat): Avoid side-effects inside XSETFASTINT's arguments.
 -
 -      * lisp.h (NILP): Use EQ rather than XFASTINT.
 -
 -2004-11-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (Fdefine_fringe_bitmap): Always set 'h'.  Simplify.
 -
 -      * indent.c (Fvertical_motion): Fix last change.  Only reseat when
 -      moving backwards.
 -
 -2004-11-16  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * dispextern.h: Extern reseat_at_previous_visible_line_start.
 -
 -2004-11-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (display_mode_element): Fix previous change (calculate
 -      end position of substring to display correctly).
 -
 -2004-11-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (Fposn_at_point): Remove extra */ after doc string.
 -      Reported by Andrew M. Scott.
 -
 -2004-11-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * fns.c (Fsafe_plist_get): New defun.
 -      (syms_of_fns): Defsubr it.
 -
 -      * lisp.h (Fsafe_plist_get): Add EXFUN.
 -
 -      * xdisp.c (store_mode_line_string, produce_stretch_glyph):
 -      Use Fsafe_plist_get.
 -      (note_mode_line_or_margin_highlight, note_mouse_highlight):
 -      Fix image map element parsing.  Use Fsafe_plist_get.
 -
 -2004-11-15  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (get_next_display_element): Fix previous change.
 -
 -2004-11-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * window.c (shrink_windows): Handle special case of one window left
 -      when trying to shrink the final reminder.  Grow windows if
 -      total_removed is less than total_shrink.
 -
 -      * xmenu.c (pop_down_menu): Remove global variable current_menu,
 -      extract pointer from arg with XSAVE_VALUE.
 -      (create_and_show_popup_menu, create_and_show_dialog, xmenu_show):
 -      Construct arg to record_unwind_protect with make_save_value.
 -
 -2004-11-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (reseat_at_previous_visible_line_start): No longer static.
 -      (get_next_display_element): Fix previous change to apply only to \n.
 -
 -      * indent.c (Fvertical_motion): Scan to PT from start of line to
 -      make iterator consistent.
 -
 -      * minibuf.c (syms_of_minibuf) <completion-ignore-case>: Doc fix.
 -
 -2004-11-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (pop_down_file_dialog): Add BLOCK_INPUT.
 -
 -      * xfns.c (Fx_file_dialog): Call x_menu_in_use and x_menu_set_in_use.
 -      Record unwind with clean_up_file_dialog.
 -
 -      * xterm.h (x_menu_in_use, x_menu_set_in_use, x_menu_wait_for_event):
 -      Declare.
 -
 -      * xmenu.c (x_menu_in_use, x_menu_set_in_use): New functions.
 -
 -2004-11-13  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_file_sel_ok, xg_file_sel_cancel)
 -      (xg_file_sel_destroy): Remove.
 -      (xg_file_response_cb, pop_down_file_dialog)
 -      (xg_get_file_name_from_chooser, xg_get_file_name_from_selector):
 -      New functions.
 -      (xg_get_file_with_chooser, xg_get_file_with_selection):
 -      Take new arg func, set it to xg_get_file_name_from_chooser/selector.
 -      Move common code to xg_get_file_name.  Return widget created.
 -      (xg_get_file_name): Set name, transient for, modal and destroy
 -      with parent here.  Connect response signal to xg_file_response_cb,
 -      connect delete-event to gtk_true.  Record pop_down_file_dialog
 -      for unwind.  Do event loop and call x_menu_wait_for_event in loop.
 -      (xg_create_widget): Make dialogs modal.
 -
 -      * xmenu.c (unuse_menu_items, pop_down_menu): Arg is of type
 -      Lisp_Object.
 -      (popup_get_selection): Move unwind protect ...
 -      (create_and_show_popup_menu, create_and_show_dialog): ... to here.
 -      Move destroy of widget to pop_down_menu.
 -      (popup_widget_loop): Move unwind protect ...
 -      (create_and_show_popup_menu, create_and_show_dialog): ... to here.
 -      Move destroy of widget to pop_down_menu.
 -      (pop_down_menu): BLOCK_INPUT and destroy widget/window.
 -      (xmenu_show): Record unwind pop_down_menu.  Move XMenuDestroy,
 -      x_mouse_leave and grabbed = 0 to pop_down_menu.
 -
 -2004-11-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (make_cursor_line_fully_visible_p): New variable.
 -      (syms_of_xdisp): DEFVAR_BOOL it.
 -      (make_cursor_line_fully_visible, try_cursor_movement)
 -      (try_window_id): Use it.
 -
 -2004-11-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (struct glyph_row): New member extra_line_spacing.
 -      (struct it): New member max_extra_line_spacing.
 -      (MR_PARTIALLY_VISIBLE, MR_PARTIALLY_VISIBLE_AT_TOP)
 -      (MR_PARTIALLY_VISIBLE_AT_BOTTOM): New helper macros.
 -      (MATRIX_ROW_PARTIALLY_VISIBLE_P): Fix to return false if invisible
 -      part of last line is only extra line spacing (so the text on the
 -      line is fully visible).  Use helper macros.
 -      Add W arg (to use them).  All callers changed.
 -      (MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P)
 -      (MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): Use helper macros.
 -
 -      * window.c (window_scroll_pixel_based, Frecenter):
 -      Use move_it_vertically_backward directly.
 -      (Frecenter): Fix calculation of new start pos for negative arg.
 -      Before, the new start pos was sometimes chosen too far back, so
 -      the last line became only partially visible, and thus would be
 -      either only semi-visible or automatically scrolled to the middle
 -      of the window by redisplay.
 -
 -      * xdisp.c (init_iterator): Clear it.max_extra_line_spacing.
 -      (move_it_vertically_backward): Don't recure to move further back.
 -      (move_it_vertically): Remove superfluous condition.
 -      (move_it_by_lines): Clear last_height when moved 0 lines.
 -      (resize_mini_window): Use it.max_extra_line_spacing.
 -      (display_tool_bar_line): Clear row->extra_line_spacing.
 -      (try_scrolling): Use move_it_vertically_backward directly.
 -      (redisplay_window): Likewise.
 -      (compute_line_metrics): Set row->extra_line_spacing.
 -      (display_line, display_string): Likewise.
 -      (x_produce_glyphs): Update it->max_extra_line_spacing.
 -
 -      * xmenu.c (pop_down_menu): Return nil.
 -
 -2004-11-12  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (x_menu_wait_for_event): New function.
 -      (popup_get_selection, popup_widget_loop): Call x_menu_wait_for_event
 -      to handle timers.
 -      (popup_widget_loop): Add argument do_timers.
 -      (create_and_show_popup_menu, create_and_show_dialog): Pass 1 for
 -      do_timers to popup_widget_loop.
 -      (xmenu_show): Call XMenuActivateSetWaitFunction so that
 -      x_menu_wait_for_event is called by XMenuActivate.
 -      (create_and_show_popup_menu): Pass 1 for do_timers to
 -      popup_get_selection.
 -      (pop_down_menu): New function.
 -      (popup_get_selection, popup_widget_loop): Unwind protect to
 -      pop_down_menu.
 -      (popup_widget_loop): Add argument widget.
 -      (create_and_show_popup_menu, create_and_show_dialog): Pass new
 -      argument widget to popup_widget_loop.
 -
 -2004-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (Fkeymap_prompt): Accept symbol keymaps.
 -
 -2004-11-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * xselect.c: Include <sys/types.h> and <unistd.h> (for getpid).
 -      Fix various comments referring to XEvents instead of input events.
 -      (x_queue_event): Fix format strings.
 -      (x_stop_queuing_selection_requests): Likewise.
 -
 -      * xdisp.c (produce_image_glyph): Remove unused variable 'face_ascent'.
 -      (pint2hrstr): Add extra braces to silence compiler.
 -
 -      * print.c (print_object): Fix format string.
 -
 -      * lread.c (read1): Fix next_char matching.
 -
 -      * lisp.h (Fdelete): Add EXFUN.
 -      (replace_range_2): Add prototype.
 -
 -      * keyboard.c (read_avail_input): Remove unused variable 'discard'.
 -
 -      * intervals.h (NULL_INTERVAL_P): Add separate version when
 -      ENABLE_CHECKING is not defined to silence compiler.
 -      (compare_string_intervals): Add prototype.
 -
 -      * fringe.c (destroy_fringe_bitmap): Fix return type.
 -      (Ffringe_bitmaps_at_pos): Remove unused var 'old_buffer'.
 -
 -      * emacs.c (Fdump_emacs): Fix format string.
 -
 -      * doc.c: Include <ctype.h>.
 -      (Fsubstitute_command_keys): Remove unused variable 'firstkey'.
 -
 -      * data.c (store_symval_forwarding): Remove unused variables.
 -
 -      * callint.c (Fcall_interactively): Remove unused variable 'funcar'.
 -
 -2004-11-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * Makefile.in (stamp-oldxmenu): If HAVE_GTK, don't add dependencies
 -      to ${OLDXMENU}.
 -
 -2004-11-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Fmake_network_process): Remove kludge for interrupted
 -      connects on BSD.  If connect is interrupted, just close socket and
 -      start over rather than sleeping and retry with same socket.
 -
 -2004-11-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * .cvsignore: Add buildobj.lst.
 -
 -      * doc.c: New variable Vbuild_files.
 -      (Fsnarf_documentation): If Vbuild_files is nil, populate it with
 -      file names from buildobj.lst.  Only attach docstrings from files
 -      that are in Vbuild_files.
 -      (syms_of_doc): Defvar Vbuild_files.
 -
 -      * Makefile.in (SOME_MACHINE_OBJECTS): Add fringe.o, image.o
 -      and w32*.o.
 -      (temacs${EXEEXT}): Generate buildobj.lst when temacs is linked.
 -      (mostlyclean): Rm buildobj.lst
 -
 -      * makefile.w32-in ($(TEMACS)): Generate buildobj.lst when temacs
 -      is linked.
 -
 -2004-11-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (update_window_fringes): Update fringe bitmaps if
 -      cur and row ends_at_zv_p differs.  If bitmaps of a row is updated,
 -      also update previous row to get rid of misc. artifacts.
 -
 -2004-11-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (fast_find_position): Fix start pos if header line present.
 -      (note_mouse_highlight): Clear mouse face if we move out of text area.
 -
 -2004-11-08  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * editfns.c: Move #include "systime.h" before <sys/resource.h>.
 -      Don't include <sys/time.h> explicitly.
 -      Include <stdio.h> unconditionally, not just on MacOS.
 -
 -2004-11-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_pattern_regexp): Cancel my previous change;
 -      don't pay attention to '\' before '*'.
 -      (fontset_pattern_regexp): Change the meaning of the second arg.
 -      (Fnew_fontset): Call fs_query_fontset, not Fquery_fontset.
 -      (check_fontset_name): Try NAME as literal at first, and if it
 -      failes, try NAME as pattern.
 -
 -2004-11-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * emacs.c (Fdump_emacs): Only output warning on GNU/Linux.
 -
 -2004-11-07  Andreas Schwab  <schwab@suse.de>
 -
 -      * lisp.h (Fmsdos_downcase_filename): Declare.
 -      * dired.c (Fmsdos_downcase_filename): Don't declare here.
 -      * fileio.c: Likewise.
 -
 -2004-11-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * dosfns.c (Fdos_memget, Fdos_memput): Use integer variable offs in
 -      comparisons with integers instead of Lisp_Object address.
 -      (Fmsdos_set_keyboard): Declare argument allkeys.
 -
 -      * msdos.c (IT_set_frame_parameters): Use EQ, not ==, for Lisp_Object:s.
 -
 -      * dired.c (Fmsdos_downcase_filename): Declare extern on MSDOS to avoid
 -      int/Lisp_Object mixup.
 -
 -      * fileio.c: Ditto.
 -
 -2004-11-06  Steven Tamm  <steventamm@mac.com>
 -
 -      * editfns.c: Need to include sys/time.h before resource.h on darwin.
 -
 -2004-11-06  Richard M. Stallman  <rms@gnu.org>
 -
 -      * callint.c (Fcall_interactively): Avoid reusing EVENT for other data.
 -
 -      * xfaces.c (merge_named_face): GCPRO the face_name in the
 -      named_merge_point struct that we make.
 -      (merge_face_heights): Eliminate GCPRO arg.  All callers changed.
 -
 -      * keyboard.c (command_loop_1): Change Vtransient_mark_mode
 -      before deciding whether to inactivate mark.
 -
 -2004-11-06  Lars Brinkhoff  <lars@nocrew.org>
 -
 -      * config.in: Regenerate (add HAVE_GETRUSAGE).
 -      * editfns.c (Fget_internal_run_time): New function.
 -      (syms_of_data): Defsubr it.
 -      * fns.c (sxhash): As far as possible, merge calculation of
 -      hash code for symbols and strings.
 -
 -2004-11-06  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * frame.c (syms_of_frame): Fix the example in the doc string.
 -
 -2004-11-06  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * eval.c (Feval): Remove check for INPUT_BLOCKED_P.
 -
 -      * xmenu.c (popup_get_selection, create_and_show_popup_menu)
 -      (create_and_show_dialog): Revert change from 2004-10-31.
 -
 -2004-11-05  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * macros.c (syms_of_macros) <defining-kbd-macro>: Doc fix.
 -
 -2004-11-05  Kim F. Storm  <storm@cua.dk>
 -
 -      * print.c (print_object): Print Lisp_Misc_Save_Value objects.
 -
 -      * fileio.c (Ffile_modes): Doc fix.
 -      (auto_save_1): Check for Ffile_modes nil value.
 -
 -2004-11-05  Kim F. Storm  <storm@cua.dk>
 -
 -      * xselect.c (struct selection_event_queue, selection_queue)
 -      (x_queue_selection_requests, x_queue_event)
 -      (x_start_queuing_selection_requests)
 -      (x_stop_queuing_selection_requests): Add new queue for selection
 -      input events to replace previous XEvent queue in xterm.c.
 -      (queue_selection_requests_unwind): Adapt to new queue.
 -      (x_reply_selection_request): Adapt to new queue.
 -      Unexpect wait_object in case of x errors (memory leak).
 -      (x_handle_selection_request, x_handle_selection_clear): Make static.
 -      (x_handle_selection_event): New function.  May queue selection events.
 -      (wait_for_property_change_unwind): Use save_value instead of cons.
 -      Clear property_change_reply_object.
 -      (wait_for_property_change): Abort if already waiting.
 -      Use save_value instead of cons for unwind data.
 -      (x_handle_property_notify): Skip events already arrived, but don't
 -      free them, as "arrived" field is checked by wait_for_property_change,
 -      and it will be freed by unwind or explicit unexpect_property_change.
 -      (x_get_foreign_selection): Add to new queue.
 -      (receive_incremental_selection): Don't unexpect wait_object when done
 -      as it has already been freed by previous wait_for_property_change.
 -
 -      * xterm.h (x_start_queuing_selection_requests)
 -      (x_stop_queuing_selection_requests, x_handle_selection_request)
 -      (x_handle_selection_clear): Remove prototypes.
 -      (x_handle_selection_event): Add prototype.
 -
 -      * xterm.c (handle_one_xevent): Don't queue X selection events
 -      here, it may be too late if we start queuing after we have already
 -      stored some selection events into the kbd buffer.
 -      (struct selection_event_queue, queue, x_queue_selection_requests)
 -      (x_queue_event, x_unqueue_events, x_start_queuing_selection_requests)
 -      (x_stop_queuing_selection_requests): Remove/move to xselect.c.
 -      (x_catch_errors_unwind): Block input around final XSync.
 -
 -      * keyboard.h (kbd_buffer_unget_event): Add prototype.
 -
 -      * keyboard.c (kbd_buffer_store_event_hold): Remove obsolete code.
 -      (kbd_buffer_unget_event): New function.
 -      (kbd_buffer_get_event, swallow_events): Combine SELECTION events
 -      and use x_handle_selection_event.
 -      (mark_kboards): Don't mark x and y of SELECTION_CLEAR_EVENT.
 -
 -2004-11-05  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xselect.c (TRACE3): New debug macro.
 -      (x_reply_selection_request): Use it.
 -      (receive_incremental_selection): In call to TRACE0, the name of
 -      a symbol is in xname.
 -
 -2004-11-05  Kim F. Storm  <storm@cua.dk>
 -
 -      * fontset.c (fontset_pattern_regexp): Use unsigned char.
 -
 -2004-11-04  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * fileio.c (Fnext_read_file_uses_dialog_p): New function.
 -
 -      * gtkutil.h (use_old_gtk_file_dialog): Declare.
 -
 -      * gtkutil.c: Make use_old_gtk_file_dialog non-static.
 -      (xg_initialize): Move DEFVAR_BOOL for use_old_gtk_file_dialog ...
 -      * xfns.c (syms_of_xfns): ... to here.
 -
 -      * gtkutil.c (xg_get_file_with_chooser): Expand DEFAULT_FILENAME if
 -      it doesn't start with /.
 -
 -2004-11-04  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_pattern_regexp): If '*' is preceded by '\',
 -      treat it as a literal character.
 -
 -2004-11-03  Kim F. Storm  <storm@cua.dk>
 -
 -      * .gdbinit (ppt): New function.
 -
 -2004-11-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_window_to_scroll_bar): Only call
 -      xg_get_scroll_id_for_window if toolkit scroll bars are used.
 -
 -      * gtkutil.c (xg_get_file_with_chooser): Use GTK_STOCK_OK instead
 -      of save.
 -
 -2004-11-02  Andreas Schwab  <schwab@suse.de>
 -
 -      * window.c (Fscroll_right): Fix last change.
 -
 -2004-11-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * Makefile.in (callproc.o): Depend on blockinput.h, atimer.h, systime.h.
 -
 -2004-11-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * callproc.c (Fcall_process): Block input around vfork.
 -
 -2004-11-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * eval.c (Fcalled_interactively_p): Rename from Fcall_interactive_p.
 -      (syms_of_eval): Defsubr it.
 -
 -2004-11-02  Richard M. Stallman  <rms@gnu.org>
 -
 -      * insdel.c (replace_range_2): New function.
 -
 -      * casefiddle.c (casify_region): Handle changes in byte-length
 -      using replace_range_2.
 -
 -      * emacs.c (USAGE3): Delete --horizontal-scroll-bars, -hb.
 -
 -      * xdisp.c (back_to_previous_visible_line_start):
 -      Subtract 1 from pos when checking previous newline for invisibility.
 -
 -      * window.c (window_scroll_pixel_based): Update preserve_y
 -      for header line if any.
 -      (Fscroll_left, Fscroll_right): Don't call interactive_p;
 -      use a new second argument instead.
 -
 -      * eval.c (Fcall_interactive_p): New function.
 -      (interactive_p): Don't test INTERACTIVE here.
 -      (Finteractive_p): Doc fix.
 -
 -      * eval.c (Feval): Abort if INPUT_BLOCKED_P.
 -
 -2004-11-02  KOBAYASHI Yasuhiro  <kobayays@otsukakj.co.jp>
 -
 -      * w32fns.c (w32_font_match): Use fast_string_match_ignore_case for
 -      comparing font names.
 -
 -2004-11-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * fileio.c (Fread_file_name): Pass Qt as fifth parameter to
 -      Fx_file_dialog if only directories should be read.
 -
 -      * lisp.h: Fx_file_dialog takes 5 parameters.
 -
 -      * xfns.c (Fx_file_dialog): Both Motif and GTK version:
 -      Add parameter only_dir_p.
 -      In Motif version, don't put DEFAULT_FILENAME in filter part of the
 -      dialog, just text field part.  Do not add DEFAULT_FILENAME
 -      to list of files if it isn't there.
 -      In GTK version, pass only_dir_p parameter to xg_get_file_name.
 -
 -      * macfns.c (Fx_file_dialog): Add parameter only_dir_p.
 -      Check only_dir_p instead of comparing prompt to "Dired".  When using
 -      a save dialog, add option kNavDontConfirmReplacement, change title
 -      to "Enter name", change text for save button to "Ok".
 -
 -      * w32fns.c (Fx_file_dialog): Add parameter only_dir_p.
 -      Check only_dir_p instead of comparing prompt to "Dired".
 -
 -      * gtkutil.c (xg_get_file_with_chooser, xg_get_file_with_selection):
 -      New functions, only defined ifdef HAVE_GTK_FILE_CHOOSER_DIALOG_NEW
 -      and HAVE_GTK_FILE_SELECTION_NEW respectively.
 -      (xg_get_file_name): Add parameter only_dir_p.
 -      Call xg_get_file_with_chooser or xg_get_file_with_selection
 -      depending on HAVE_GTK_FILE* and the value of use_old_gtk_file_dialog.
 -      (xg_initialize): New DEFVAR_BOOL use_old_gtk_file_dialog.
 -
 -      * gtkutil.h (xg_get_file_name): Add parameter only_dir_p.
 -
 -      * config.in: Rebuild (added HAVE_GTK_FILE_*).
 -
 -2004-11-01  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (connect_wait_mask, num_pending_connects):
 -      Only declare and use them if NON_BLOCKING_CONNECT is defined.
 -      (init_process): Initialize them if NON_BLOCKING_CONNECT defined.
 -      (IF_NON_BLOCKING_CONNECT): New helper macro.
 -      (wait_reading_process_output): Only declare and use local vars
 -      Connecting and check_connect when NON_BLOCKING_CONNECT is defined.
 -
 -2004-11-01  Andy Petrusenco  <Igrek@star-sw.com>  (tiny change)
 -
 -      * w32term.c (x_scroll_run): Delete region objects after use.
 -
 -2004-10-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c: Add prototypes for forward function declarations.
 -      (popup_get_selection): Remove parameter do_timers, remove call to
 -      timer_check.
 -      (create_and_show_popup_menu, create_and_show_dialog):
 -      Remove parameter do_timers from call to popup_get_selection.
 -
 -      * xdisp.c (update_tool_bar): Pass a copy of f->tool_bar_items to
 -      tool_bar_items and assign the result to f->tool_bar_items if
 -      not equal.  Move BLOCK/UNBLOCK_INPUT from around call to
 -      tool_bar_items to assignment of result.
 -
 -      * atimer.c (alarm_signal_handler): Do not call set_alarm if
 -      pending_atimers is non-zero.
 -
 -2004-10-31  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (margin_glyphs_to_reserve): Don't use ncols_scale_factor.
 -
 -2004-10-28  Will  <will@glozer.net>
 -
 -      * macterm.c: Allow user to assign key modifiers to the Mac Option
 -      key via a 'mac-option-modifier' variable.
 -
 -2004-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xselect.c (Vx_lost_selection_functions, Vx_sent_selection_functions):
 -      Rename from Vx_lost_selection_hooks and Vx_sent_selection_hooks.
 -      (x_handle_selection_request, x_handle_selection_clear)
 -      (x_clear_frame_selections, syms_of_xselect): Adjust accordingly.
 -
 -2004-10-28  Richard M. Stallman  <rms@gnu.org>
 -
 -      * w32fns.c (Fx_server_vendor, Fx_server_version): Doc fixes.
 -
 -      * xfns.c (Fx_server_vendor, Fx_server_version): Doc fixes.
 -
 -2004-10-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (scan_sexps_forward): Give precedence to a 2-char
 -      comment-starter over a 1-char one.
 -
 -2004-10-27  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (get_next_display_element): In mode lines,
 -      treat newline and tab like other control characters.
 -
 -      * editfns.c (Fmessage): Doc fix.
 -
 -      * indent.c (vmotion): When moving up, check the newline before.
 -      Make prevline an int, not a Lisp_Object.
 -
 -2004-10-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * editfns.c (Fformat): Allocate discarded table with SAFE_ALLOCA.
 -      Only allocate info and discarded tables once.
 -
 -      * lisp.h (USE_SAFE_ALLOCA): Add and init sa_must_free integer.
 -      (SAFE_ALLOCA, SAFE_ALLOCA_LISP): Increment it when malloc is used.
 -      (SAFE_FREE): Test it to determine if we need to unwind to free.
 -      Remove size arg.  All users changed.
 -      (SAFE_FREE_LISP) Remove.  All users changed to use SAFE_FREE.
 -
 -2004-10-26  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c: Put empty line between comment and function body.
 -      (xg_destroy_widgets): Rename from remove_from_container.
 -      Just destroy all widgets in list.  Argument wcont removed.
 -      (xg_update_menubar, xg_update_submenu): Call xg_destroy_widgets
 -      instead of remove_from_container.
 -      (xg_display_close, xg_create_tool_bar, update_frame_tool_bar)
 -      (free_frame_tool_bar): Add comment.
 -
 -      * xfns.c (xic_create_xfontset): Check that FRAME_XIC_BASE_FONTNAME
 -      is not NULL before strcmp.
 -
 -2004-10-26  Kim F. Storm  <storm@cua.dk>
 -
 -      * callint.c (Fcall_interactively): Add 'U' code to get the
 -      up-event discarded by a previous 'k' or 'K' argument.
 -
 -2004-10-26  David Kastrup  <dak@gnu.org>
 -
 -      * buffer.c (syms_of_buffer): Fix a few typos.
 -
 -2004-10-26  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xsmfns.c: Put empty line between comment and function body.
 -      Use two spaces before comment end.
 -
 -2004-10-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_pattern_regexp): Optimize for the case that
 -      PATTERN is full XLFD.
 -
 -2004-10-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * regex.h (enum reg_errcode_t): New value REG_ERANGEX.
 -
 -      * regex.c (re_error_msgid): Add an entry for REG_ERANGEX.
 -      (regex_compile): Return REG_ERANGEX if appropriate.
 -
 -2004-10-22  Kenichi Handa  <handa@m17n.org>
 -
 -      * editfns.c (Ftranslate_region_internal): New function.
 -      (syms_of_editfns): Defsubr it.
 -
 -2004-10-22  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (xic_create_xfontset): Initialize missing_list to NULL.
 -
 -2004-10-21  K\e,Aa\e(Broly L\e$,1 q\e(Brentey  <lorentey@elte.hu>
 -
 -      * xterm.h (x_output): New member `xic_base_fontname'.
 -      (FRAME_XIC_BASE_FONTNAME): New macro.
 -      (xic_free_xfontset): Declare.
 -
 -      * xfns.c (xic_create_xfontset): Share fontsets between frames
 -      based on base_fontname.
 -      (xic_free_xfontset): New function.
 -      (free_frame_xic): Use it.
 -      (xic_set_xfontset): Ditto.
 -
 -      * xterm.c (xim_destroy_callback): Ditto.
 -
 -2004-10-20  B. Anyos  <banyos@freemail.hu>  (tiny change)
 -
 -      * w32term.c (x_draw_glyph_string): Use overline_color for overlines.
 -
 -2004-10-20  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h (XSync): If USE_GTK, define XSync as process_all and then
 -      XSync.
 -
 -      * emacs.c (my_heap_start, heap_bss_diff, MAX_HEAP_BSS_DIFF):
 -      New variables and constant.
 -      (main): Calculate heap_bss_diff.  If we are dumping and the
 -      heap_bss_diff is greater than MAX_HEAP_BSS_DIFF, set PER_LINUX32
 -      and exec ourself again.
 -      (Fdump_emacs): If heap_bss_diff is greater than MAX_HEAP_BSS_DIFF
 -      print a warning.
 -
 -      * lastfile.c: Make my_endbss and my_endbss_static available on all
 -      platforms.
 -
 -      * Makefile.in (RUN_TEMACS): Remove @SETARCH@.
 -      * config.in (HAVE_PERSONALITY_LINUX32): Regenerate.
 -
 -2004-10-19  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * data.c (Flocal_variable_if_set_p): Doc fix.
 -
 -2004-10-19  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (init_environment): Set emacs_dir correctly when running
 -      emacs from the build directory.
 -
 -2004-10-19  Richard M. Stallman  <rms@gnu.org>
 -
 -      * editfns.c (Fdelete_and_extract_region):
 -      If region is empty, return null string.
 -
 -2004-10-19  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.h (xg_update_scrollbar_pos): Remove arguments real_left
 -      and canon_width.
 -      (xg_frame_cleared): Remove.
 -
 -      * gtkutil.c (xg_frame_cleared, xg_fixed_handle_expose)
 -      (xg_find_top_left_in_fixed): Remove.
 -      (xg_create_scroll_bar): Put an event box widget between
 -      the scroll bar widget and the edit widget.
 -      (xg_show_scroll_bar): Show the parent widget (the event box).
 -      (xg_remove_scroll_bar): Destroy parent (the event box) also.
 -      (xg_update_scrollbar_pos): Remove arguments real_left and canon_width.
 -      Move the parent (the event box) widget inside the fixed widget.
 -      Move window clear to xterm.c.
 -
 -      * gtkutil.h (xg_frame_cleared): Remove.
 -
 -      * xterm.c (x_clear_frame): Remove call to xg_frame_cleared
 -      (x_scroll_bar_create, XTset_vertical_scroll_bar):
 -      Remove arguments left and width to xg_update_scrollbar_pos.
 -      (XTset_vertical_scroll_bar): Do x_clear_area for USE_GTK also.
 -
 -2004-10-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (display_mode_element): Fix display of wide chars.
 -
 -2004-10-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_update_scrollbar_pos): Change XClearWindow to
 -      gdk_window_clear and move gdk_window_process_all_updates after
 -      clear so events are sent to the X server in correct order.
 -
 -2004-10-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fs_load_font): Use fast_string_match_ignore_case for
 -      comparing font names.
 -      (fs_query_fontset): Use fast_string_match for comparing fontset names.
 -      (list_fontsets): Likewise.
 -
 -      * search.c (fast_string_match_ignore_case): New function.
 -
 -      * lisp.h (fast_string_match_ignore_case): Extern it.
 -
 -2004-10-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (overlay_arrow_at_row): Return overlay string rather
 -      than bitmap if there is not left fringe.
 -      (get_overlay_arrow_glyph_row): Also used on windows system.
 -      (display_line): Display overlay string if no left fringe.
 -
 -2004-10-16  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_font_match): Encode font name being matched.
 -
 -2004-10-16  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (Fspecial_display_p): Doc fix.
 -
 -2004-10-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * doc.c (Fsubstitute_command_keys): Fix remap-handling.
 -      Don't ignore menus, because where-is-internal already does it for us.
 -
 -2004-10-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_window): Only update fringes and vertical
 -      border on window frames.
 -
 -2004-10-14  Andreas Schwab  <schwab@suse.de>
 -
 -      * m/ia64.h (DATA_SEG_BITS): Don't define.
 -
 -2004-10-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.h: Include Xutil.h after keysym.h to work around bug
 -      in some X versions.
 -
 -2004-10-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fns.c (map_char_table): Add missing gcpros.
 -
 -2004-10-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (get_keymap): An autoload form is not a keymap.
 -
 -      * textprop.c (syms_of_textprop): Make `syntax-table' nonsticky.
 -
 -2004-10-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * callproc.c (Fcall_process): Simplify handling of display arg.
 -      Resume `display_on_the_fly' once a coding system is determined.
 -
 -      * xdisp.c (redisplay_preserve_echo_area): Fix last change.
 -
 -2004-10-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_preserve_echo_area): Flush display in case
 -      caller, such as call-process, is not going to poll for input.
 -      (calc_line_height_property): Handle case where it->object is nil.
 -
 -      * xterm.c (x_redisplay_interface): Fix flush_display_optional.
 -
 -2004-10-12  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (get_next_display_element):
 -      If unibyte_display_via_language_environment is zero, display 8-bit
 -      chars in octal in unibyte buffer.
 -
 -2004-10-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * doc.c (Fsubstitute_command_keys): Ignore remappings unless there
 -      are no ordinary bindings.
 -
 -2004-10-11  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (syms_of_xfns): Defsubr x-file-dialog for GTK also.
 -
 -2004-10-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow.
 -      (x_lower_frame): Add BLOCK_INPUT around SendBehind.
 -      (make_mac_frame): Add BLOCK_INPUT around the making of a
 -      terminal frame.
 -      (mac_initialize): Add BLOCK_INPUT around carbon initialization.
 -      * macgui.h (mktime): Use emacs_mktime.
 -      * macfns.c (Fx_file_dialog): Add BLOCK_INPUT around more code.
 -      Make a cancel file-open dialog be like C-g.
 -      * mac.c (mktime): Use emacs_mktime.
 -      (Fdo_applescript): Add BLOCK_INPUT around do_applescript.
 -      (Fmac_paste_function): Add better error handling for carbon cut/paste.
 -
 -2004-10-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (timer_resume_idle): New function to resume idle
 -      timer without resetting timers on the idle list.
 -      (read_char): Use timer_resume_idle.  Remove local var last_idle_start.
 -      (timer_start_idle, timer_stop_idle): Declare static.
 -      (read_key_sequence): Use timer_resume_idle instead of timer_start_idle.
 -
 -      * keyboard.h (timer_start_idle, timer_stop_idle): Remove prototypes.
 -
 -2004-10-08  Steven Tamm  <steventamm@mac.com>
 -
 -      * config.in (HAVE_MALLOC_MALLOC_H): Regenerate.
 -      * macterm.c (mac_check_for_quit_char): Remove warning for using
 -      NULL where 0 should be used.
 -      * unexmacosx.c: Use malloc/malloc.h on Tiger instead of
 -      objc/malloc.h
 -      * mac.c: Include time.h for Tiger compatibility.
 -
 -2004-10-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_window): Fix flicker on vertical line between
 -      windows.  Update vertical line after drawing window fringes, but
 -      only if actually drawing any bitmaps--or there is no fringe.
 -
 -      * xterm.c (x_update_window_end): Likewise.
 -      * macterm.c (x_update_window_end): Likewise.
 -      * w32term.c (x_update_window_end): Likewise.
 -
 -      * fringe.c (draw_window_fringes): Return value now indicates if
 -      any fringe bitmaps were redrawn (or there are no fringes).
 -
 -      * dispextern.h (draw_window_fringes): Update prototype.
 -
 -2004-10-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (mac_get_window_bounds): Add extern.
 -      (x_real_positions): Use mac_get_window_bounds.
 -
 -      * macmenu.c (update_submenu_strings): Apply 2004-09-07 change for
 -      xmenu.c (YAILOM).
 -
 -      * macterm.c [!MAC_OSX]: Include Windows.h.
 -      (front_emacs_window): Rename from mac_front_window.  All uses
 -      changed.  Return the frontmost non-tooltip emacs window.
 -      (mac_get_window_bounds): New function.
 -      (x_calc_absolute_position): Use the difference of width and height
 -      between the inner and outer window.
 -      (x_set_offset): Specify window position by the coordinae of the
 -      outer window.  Adjust the position if the title bar is completely
 -      outside the screen.
 -      (app_is_suspended, app_sleep_time): Remove unused variables.
 -      (do_app_resume, do_app_suspend): Remove their contents because
 -      window-activate/deactivate events will do the job.
 -      (do_zoom_window): Remove unused variables.  Make compliant to the
 -      standard way of zooming.  Set f->left_pos and f->top_pos.
 -      (XTread_socket): Don't use argument `expected'.  Don't use
 -      FrontWindow to determine the clicked window.  Exclude unprocessed
 -      mouseUp cases in the early stage.  Add parentheses to fix operator
 -      precedence.
 -      (XTread_socket) [TARGET_API_MAC_CARBON]: Don't specify drag area.
 -
 -2004-10-05  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * config.in: Regenerate.
 -
 -      * Makefile.in (RUN_TEMACS): Check HAVE_RANDOM_HEAPSTART instead of
 -      HAVE_EXECSHIELD.
 -
 -2004-10-05  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_find_modifier_meanings): Ignore any Super or Hyper for
 -      a row if Alt or Meta has been found for that row.  Also stop scanning
 -      for Keysyms for that row.
 -
 -2004-10-04  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (Ffringe_bitmaps_at_pos): Change return value from cons
 -      to list.  Include overlay arrow bitmap in return value.
 -
 -      * xterm.c (XTset_vertical_scroll_bar): Improve handling of scroll
 -      bars with fractional column width.  If scroll bar separates two
 -      windows, move it towards the window it belongs to.  Only update
 -      the padding area below the scroll bar widget when necessary,
 -      i.e. when scroll bar widget is created, moved, or resized.
 -
 -      * xdisp.c (define_frame_cursor1): Do not change frame cursor
 -      while tracking/dragging mouse.
 -      (x_draw_vertical_border): Do not draw line if frame has scroll bars.
 -
 -      * window.c (coordinates_in_window): Relax check for cursor
 -      on vertial border between mode lines.
 -      (Fset_window_fringes): Do not allow negative widths.
 -      (Fset_window_scroll_bars): Likewise.
 -
 -      * .gdbinit (pp): Shorthand for p ARG + pr.
 -      (ff): New command: flush frame updates (X only).
 -
 -2004-10-03  Michael Albinus  <michael.albinus@gmx.de>
 -
 -      * fileio.c (auto_save_1) Call Ffile_modes for remote files.
 -
 -2004-09-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * process.c (send_process): Free composition data.
 -
 -      * fileio.c (Finsert_file_contents): Free composition data.
 -
 -      * coding.c (code_convert_region): Don't skip ASCIIs if there are
 -      compositions to encode.
 -      (encode_coding_string): Likewise.  Free composition data.
 -
 -2004-09-30  Florian Weimer  <fw@deneb.enyo.de>
 -
 -      * coding.c (code_convert_region): Free composition data.
 -
 -2004-09-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c: Remove limit on number of bitmaps.
 -      (fringe_bitmaps, fringe_faces): Change to pointers.
 -      (max_fringe_bitmaps): New var.
 -      (Fdefine_fringe_bitmap): Expand fringe_bitmaps and fringe_faces.
 -      (init_fringe): Allocate fringe_bitmaps and fringe_faces.
 -
 -      * dispextern.h (FRINGE_ID_BITS): Increase to 16 bits (64K bitmaps).
 -      (struct glyph_row): Reorder fringe_bitmap related fields.
 -      (struct it): Likewise.
 -
 -      * w32term.c (fringe_bmp): Change to pointer.
 -      (max_fringe_bmp): New var.
 -      (w32_define_fringe_bitmap): Expand fringe_bmp.
 -      (w32_draw_fringe_bitmap): Check max_fringe_bmp.
 -      (w32_destroy_fringe_bitmap): Likewise.
 -
 -2004-09-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c: Simplify last change.
 -      (lookup_fringe_bitmap): New function.
 -      (valid_fringe_bitmap_p, resolve_fringe_bitmap): Remove.
 -      (Fdestroy_fringe_bitmap): Use lookup_fringe_bitmap.
 -      Keep standard bitmaps in Vfringe_bitmaps.
 -      (Fdefine_fringe_bitmap): Use lookup_fringe_bitmap.
 -      (Fset_fringe_bitmap_face): Likewise.
 -
 -      * dispextern.h (lookup_fringe_bitmap): Add prototype.
 -      (valid_fringe_bitmap_p): Remove prototype.
 -
 -      * xdisp.c (handle_single_display_prop): Use lookup_fringe_bitmap.
 -
 -2004-09-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c (destroy_fringe_bitmap, init_fringe_bitmap)
 -      (w32_init_fringe, w32_reset_fringes): Fix bootstrap (NULL rif).
 -
 -      * dispextern.h (valid_fringe_bitmap_p): Fix prototype.
 -
 -      * fringe.c (Vfringe_bitmaps): New variable.
 -      (syms_of_fringe): DEFVAR_LISP it.
 -      (valid_fringe_bitmap_p): Rename from valid_fringe_bitmap_id_p.
 -      Change arg to Lisp_Object and fail if not an integer.
 -      (get_fringe_bitmap_name, resolve_fringe_bitmap)
 -      (destroy_fringe_bitmap): New functions.
 -      (Fdestroy_fringe_bitmap): Change arg to bitmap symbol.
 -      Use destroy_fringe_bitmap.  Remove symbol from Vfringe_bitmaps and
 -      clear its fringe property.
 -      (init_fringe_bitmap): Use destroy_fringe_bitmap instead of
 -      Fdestroy_fringe_bitmap.
 -      (Fdefine_fringe_bitmap): Add BITMAP arg specifying new or existing
 -      bitmap symbol; remove WHICH arg.  Add symbol to Vfringe_bitmaps
 -      and set fringe property.  Signal error if no free slots.
 -      (Fset_fringe_bitmap_face): Change arg to bitmap symbol.
 -      (Ffringe_bitmaps_at_pos): Return bitmap symbols instead of numbers.
 -
 -      * xdisp.c (handle_single_display_prop): Fringe bitmaps are now
 -      symbols with a fringe property.
 -
 -2004-09-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * buffer.c (syms_of_buffer) <indicate-buffer-boundaries>:
 -      Doc fix.  Format may now be a symbol or alist, not a cons.
 -
 -      * fringe.c (update_window_fringes): Handle new formats of
 -      indicate-buffer-boundaries (symbol or alist).  No longer
 -      allow a simple cons.
 -      (Ffringe_bitmaps_at_pos): Use nil value for no bitmap.
 -
 -2004-09-25  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * config.in: Rebuild.
 -
 -2004-09-24  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * config.in: Rebuild.
 -
 -      * Makefile.in: Run setarch i386 ./temacs if exec-shield is present.
 -
 -2004-09-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xterm.c (x_term_init): Work around a bug in some X servers.
 -
 -2004-09-18  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (syms_of_buffer) <default-major-mode>: Doc fix.
 -
 -      * xdisp.c (try_window_reusing_current_matrix):
 -      Handle the case where we reach the old displayed text,
 -      out of sync with the old line boundary.
 -
 -2004-09-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Finsert_file_contents): Fix case of replacement in a
 -      narrowed buffer.
 -
 -2004-09-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * puresize.h (PURESIZE_RATIO): Define based on BITS_PER_EMACS_INT.
 -
 -      * xfaces.c (Qface_no_inherit): New var.
 -      (syms_of_xfaces): Intern and staticpro it.
 -      (Finternal_make_lisp_face, Finternal_set_lisp_face_attribute)
 -      (Finternal_copy_lisp_face, update_face_from_frame_parameter):
 -      Don't increment face_change_count when face has non-nil
 -      face-no-inherit property.
 -
 -2004-09-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * bytecode.c (BYTE_CODE_QUIT): Add missing AFTER_POTENTIAL_GC.
 -      (Fbyte_code): Remove dead code after `wrong_type_argument'.
 -
 -      * alloc.c (Fgarbage_collect): Mark keyboards, gtk data, and specpdl
 -      before doing the mark_stack_check_gcpros since they're not on the stack.
 -
 -2004-09-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * editfns.c (Fformat): Handle format strings with multiple text
 -      properties.  Reverse text property list from the format string,
 -      so the positions are in increasing order.
 -
 -2004-09-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xselect.c (x_reply_selection_request): XSync and UNBLOCK before
 -      x_uncatch_errors so that possible protocol errors are delivered.
 -
 -2004-09-10  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * Makefile.in (msdos.o): Depend on buffer.h, commands.h, and
 -      blockinput.h.
 -      (dosfns.o): Depend on blockinput.h, window.h, dispextern.h,
 -      charset.h, and coding.h
 -      (w16select.o): Depend on buffer.h, charset.h, coding.h, and composite.h.
 -      (term.o): Depend on window.h and keymap.h.
 -      (abbrev.o): Depend on syntax.h.
 -      (callint.o): Depend on keymap.h.
 -      (casefiddle.o): Depend on charset.h and keymap.h.
 -      (category.o): Depend on keymap.h.
 -      (coding.o): Depend on dispextern.h.
 -      (cmds.o): Depend on keyboard.h and keymap.h.
 -      (dispnew.o): Depend on indent.h and intervals.h.
 -      (doc.o): Depend on keymap.h.
 -      (editfns.o): Depend on frame.h.
 -      (emacs.o): Depend on dispextern.h.
 -      (fileio.o): Don't depend on ccl.h.
 -      (filelock.o): Depend on charset.h and coding.h.
 -      (frame.o): Depend on w32term.h and macterm.h.
 -      (insdel.o): Depend on region-cache.h.
 -      (keyboard.o): Depend on keymap.h, w32term.h, and macterm.h.
 -      (minibuf.o): Depend on $(INTERVALS_SRC) and keymap.h.
 -      (search.o): Depend on $(INTERVALS_SRC).
 -      (syntax.o): Depend on keymap.h, regex.h, and $(INTERVALS_SRC).
 -      (window.o): Depend on keymap.h, blockinput.h, $(INTERVALS_SRC),
 -      xterm.h, w32term.h, and macterm.h.
 -      (xdisp.o): Depend on keyboard.h, $(INTERVALS_SRC), xterm.h,
 -      w32term.h, and macterm.h.
 -      (xfaces.o): Depend on keyboard.h, $(INTERVALS_SRC),
 -      region-cache.h, xterm.h, w32term.h, and macterm.h.
 -      (bytecode.o): Depend on dispextern.h, frame.h, and xterm.h.
 -      (data.o): Depend on frame.h.
 -      (fns.o): Depend on keymap.h, xterm.h, and blockinput.h.
 -      (print.o): Depend on termchar.h and $(INTERVALS_SRC).
 -      (lread.o): Depend on $(INTERVALS_SRC), termhooks.h, and coding.h.
 -      (intervals.o): Depend on keymap.h.
 -
 -      * msdos.c (msdos_set_cursor_shape, IT_display_cursor):
 -      Add debugging print-out to termscript.
 -
 -2004-09-09  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (decode_mode_spec): Use current buffer for most purposes.
 -
 -2004-09-08  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (Fset_window_buffer): Doc fix.
 -
 -      * xdisp.c (Fformat_mode_line): New arg BUFFER says which buffer to use.
 -
 -2004-09-08  Dan Nicolaescu  <dann@ics.uci.edu>
 -
 -      * minibuf.c (history_delete_duplicates): New variable.
 -      (read_minibuf): Use it.
 -      (syms_of_minibuf): Create the corresponding lisp variable.
 -
 -2004-09-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (set_cursor_from_row): Also look at 'cursor' property in
 -      overlay just before point.
 -
 -2004-09-07  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * buffer.h (struct buffer): Add auto_save_file_format field.
 -      * buffer.c (reset_buffer, init_buffer_once):
 -      Handle auto_save_file_format field.
 -      (syms_of_buffer): Add DEFVAR_PER_BUFFER for
 -      `buffer-auto-save-file-format'.
 -      * fileio.c: Delete declaration for removed Vauto_save_file_format.
 -      (build_annotations): Adapt to replacement of
 -      `auto-save-file-format' with the new buffer-local variable
 -      `buffer-auto-save-file-format'.
 -      (syms_of_fileio): Delete DEFVAR_LISP for auto-save-file-format.
 -
 -2004-09-07  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.h (AppendMenuW_Proc): Move declaration from w32menu.c.
 -
 -      * w32fns.c (w32_wnd_proc) <WM_MEASUREITEM, WM_DRAWITEM>:
 -      Handle Unicode menu titles.
 -
 -2004-09-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (set_cursor_from_row): Fix last change.  Only use 'cursor'
 -      property from text property or overlay strings at point.
 -
 -2004-09-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xmenu.c (update_submenu_strings): YAILOM.
 -      (set_frame_menubar): Make sure last_i is initialized.
 -
 -2004-09-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32menu.c (_widget_value): Add lname and lkey.
 -      (digest_single_submenu): Set lname and lkey in widget_value
 -      instead of name and key.
 -      (update_submenu_strings): New function.
 -      (set_frame_menubar): Remove call to inhibit_garbage_collection,
 -      call update_submenu_strings.
 -
 -      * w32menu.c (globals_of_w32menu): Check for Unicode API.
 -      (digest_single_submenu, w32_menu_show): Encode menu strings as
 -      UTF-8 if Unicode API is available.
 -      (utf8to16): New function.
 -      (add_menu_item): Use it when calling Unicode API.
 -
 -2004-09-03  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (set_cursor_from_row): Look for non-nil `cursor' property
 -      in overlay or text-property strings; set cursor on corresponding
 -      glyph rather than at end of the string.
 -
 -2004-09-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c (x_real_positions): Save the current window port and
 -      set a new one before obtaining the global coordinate.
 -      Use FRAME_MAC_WINDOW.
 -      (x_set_name, x_set_title): Encode title to UTF8.
 -      Use SetWindowTitleWithCFString.
 -      (Fx_server_version): Get correct OS version.
 -
 -      * macmenu.c (add_menu_item): Remove unused variable `i'.
 -      Don't let separator items destroy refence constants of other menu items.
 -
 -      * macterm.c (x_update_end): Move SetPortWindowPort to inside
 -      BLOCK_INPUT.
 -      (x_set_offset): Use FRAME_MAC_WINDOW.
 -
 -      * xdisp.c (note_mouse_highlight): Set the mouse pointer shape to
 -      nontext_cursor if it is on a scroll bar.
 -
 -      * s/darwin.h (LIBS_CARBON): New define to specify libraries for
 -      Carbon support.
 -      (LD_SWITCH_SYSTEM_TEMACS): Don't link with unused libstdc++.
 -      Use LIBS_CARBON.
 -
 -2004-09-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (x_set_name_internal): New function.  Check if we shall call
 -      xfree before ENCODE_UTF_8.
 -      (x_set_name, x_set_title): Call x_set_name_internal.
 -
 -2004-08-31  NAKAMURA Toshikazu  <nr-tkz@nifty.com>  (tiny change)
 -
 -      * w32fns.c (w32_load_font): If a BDF font is already loaded, do not
 -      reload it.
 -
 -2004-08-30  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * macmenu.c (_widget_value): Add lname and lkey.
 -      (single_submenu): Set lname and lkey in widget_value
 -      instead of name and key.
 -      (update_submenu_strings): New function.
 -      (set_frame_menubar): Remove call to inhibit_garbage_collection,
 -      call update_submenu_strings.
 -
 -      * xmenu.c (digest_single_submenu): Set lname and lkey in widget_value
 -      instead of name and key.
 -      (update_submenu_strings): New function.
 -      (set_frame_menubar): Remove call to inhibit_garbage_collection,
 -      call update_submenu_strings.
 -
 -      * gtkutil.h (_widget_value): Added lname and lkey.
 -
 -2004-08-30  Steven Tamm  <steventamm@mac.com>
 -
 -      * macmenu.c (mac_menu_show): Remove shadowing of menu variable
 -      by using different names for inner loop variables.
 -
 -2004-08-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (set_frame_menubar): Reintroduce inhibit_garbage_collection
 -      from 2002-07-15T00:01:34Z!raeburn@raeburn.org so that strings from ENCODE_UTF_8 isn't GC:ed before used.
 -
 -      * gtkutil.c (xg_create_frame_widgets): Compensate for tool bar when
 -      tool bar items is 0.
 -
 -2004-08-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macmenu.c (ENCODE_MENU_STRING): Added to handle multibyte
 -      strings in menu items.
 -      (single_submenu): Use ENCODE_MENU_STRING
 -      (mac_menu_show): Use ENCODE_MENU_STRING.  Reset grabbed because
 -      button release isn't passed to event loop
 -      (add_menu_item): Use SetMenuItemWithCFString
 -
 -2004-08-26  Steven Tamm  <steventamm@mac.com>
 -
 -      * fileio.c (Fread_file_name): Call x_file_dialog on carbon on
 -      tool-bar/menu click.
 -      * macfns.c (Fx_file_dialog): Implement using NavServices.
 -
 -2004-08-24  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_catch_errors_unwind): Do not XSync if display has closed.
 -
 -      * xfns.c (x_window_to_frame, x_any_window_to_frame)
 -      (x_non_menubar_window_to_frame, x_menubar_window_to_frame)
 -      (x_top_window_to_frame): Return 0 if wdesc is None.
 -
 -2004-08-22  Richard M. Stallman  <rms@gnu.org>
 -
 -      * process.c (process_send_signal) [SIGNALS_VIA_CHARACTERS,
 -      HAVE_TERMIOS]: If there's no char for this signal, drop through
 -      and use system calls.
 -
 -      * bytecode.c (Fbyte_code) <unwind-protect>: Cannot GC.
 -
 -2004-08-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (wait_reading_process_output): Rename from
 -      wait_reading_process_input.  All uses changed.
 -      (wait_reading_process_output_1): Rename from
 -      wait_reading_process_input_1.  All uses changed.
 -
 -      * dispnew.c (Fsleep_for): Remove obsolete code.
 -
 -2004-08-20  Kenichi Handa  <handa@m17n.org>
 -
 -      * syntax.c (skip_chars): Fix for unibyte case.
 -
 -2004-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (char_quoted): Mixup byte/char pos.
 -      (back_comment): Fixup globals in all cases.
 -
 -2004-08-19  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (x_set_name, x_set_title): Encode title to UTF8 before
 -      passing it to gtk_window_set_title.
 -
 -2004-08-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (wait_reading_process_input): Clean up.
 -      Add wait_for_cell, wait_proc, and just_wait_proc args
 -      to avoid overloading `read_kbd' and `do_display' args.
 -      Change read_kbd arg to int.  All callers changed.
 -
 -      * process.c (process_send_signal): Use CDISABLE.
 -
 -      * sysdep.c (child_setup_tty, init_sys_modes): Use CDISABLE.
 -
 -2004-08-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Faccept_process_output): Add arg JUST-THIS-ONE;
 -      forward to wait_reading_process_input via DO_DISPLAY arg.
 -      (wait_reading_process_input): If DO_DISPLAY < 0 for a process
 -      object, only process output from that process; also inhibit
 -      running timers if DO_DISPLAY==-2.
 -
 -2004-08-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (process_send_signal): Fix last change--use
 -      _POSIX_VDISABLE instead of CVDISABLE when available.
 -
 -2004-08-16  Richard M. Stallman  <rms@gnu.org>
 -
 -      * sysdep.c (child_setup_tty) [SIGNALS_VIA_CHARACTERS]:
 -      Set VQUIT and VINTR chars to the standard ones if they are unset.
 -      [AIX]: Don't do that here.  And don't force VINTR to standard
 -      when SIGNALS_VIA_CHARACTERS.
 -
 -      * process.c (process_send_signal)
 -      [SIGNALS_VIA_CHARACTERS, HAVE_TERMIOS]: Clean up.
 -      Do nothing if the character is CVDISABLE.
 -
 -      * xfaces.c (merge_face_ref): Specifying `unspecified' is a no-op.
 -
 -      * intervals.c (move_if_not_intangible):
 -      Force POSITION to be between BEGV and ZV.
 -
 -2004-08-14  John Paul Wallington  <jpw@gnu.org>
 -
 -      * buffer.c (Frestore_buffer_modified_p): Doc fix.
 -
 -      * fileio.c (Fread_file_name): Doc fix.
 -
 -      * minibuf.c (syms_of_minibuf) <completion-ignore-case>: Doc fix.
 -
 -2004-08-09  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * keymap.c (Fmake_keymap, Fmap_keymap, Fwhere_is_internal): Doc fixes.
 -
 -2004-08-08  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * keyboard.c: Declare Qdisabled_command_function instead of
 -      Qdisabled_command_hook.
 -      (Fcommand_execute): Use Qdisabled_command_function instead of
 -      Qdisabled_command_hook.
 -      (syms_of_keyboard): Ditto.
 -
 -2004-08-07  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * keymap.c (Flocal_key_binding, Fglobal_key_binding)
 -      (syms_of_keymap) <key-translation-map>: Doc fixes.
 -
 -2004-08-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * window.c (window_list_1): YAILOM.
 -
 -      * fileio.c (make_temp_name): Handle multibyte prefixes.
 -
 -2004-08-06  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * keyboard.c (syms_of_keyboard) <overriding-terminal-local-map>:
 -      Doc fix.
 -
 -2004-08-03  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_string): Adjust coding->consumed, and
 -      etc. with shrinked_bytes.
 -
 -2004-08-03  Kim F. Storm  <storm@cua.dk>
 -
 -      * indent.c (compute_motion): Fix check for full width window
 -      in non-window case.  Do not count left truncation glyph on
 -      window systems.
 -
 -2004-08-02  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * data.c (Finteractive_form): Doc fix.
 -
 -2004-08-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * indent.c (compute_motion): Use actual window width if WIDTH is -1,
 -      properly accounting for continuation glyph on non-window systems.
 -      (Fcompute_motion): Use actual window width if WIDTH is nil, and
 -      actual window width/height if TOPOS is nil, properly accounting for
 -      continuation glyphs on non-window systems, and optional header lines.
 -      (vmotion): Let compute_motion calculate actual window width.
 -
 -      * window.c (window_scroll_line_based): Let compute_motion
 -      calculate actual window width.
 -
 -2004-08-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (read_process_output): Use whole read buffer.
 -      Don't trigger adaptive read buffering on errors.
 -
 -2004-07-31  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * keymap.c (Fset_keymap_parent, Fdefine_prefix_command): Doc fixes.
 -
 -      * keyboard.c (syms_of_keyboard) <disable-point-adjustment>: Doc fix.
 -
 -      * callint.c (Fcall_interactively): Doc fix.
 -
 -2004-07-30  Richard M. Stallman  <rms@gnu.org>
 -
 -      * abbrev.c (Fexpand_abbrev): Undo previous change.
 -
 -2004-07-30  Kim F. Storm  <storm@cua.dk>
 -
 -      * editfns.c (Fformat): Allocate extra (dummy) element in info.
 -
 -2004-07-28  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * eval.c (Fdefvar, Fdefconst): Doc fixes.
 -
 -2004-07-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (move_it_in_display_line_to): Check BUFFER_POS_REACHED_P after
 -      we have ensured that the glyph fits on the current line (or returned
 -      MOVE_LINE_CONTINUED otherwise).
 -
 -2004-07-26  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (move_it_in_display_line_to): If overflow-newline-into-fringe
 -      is enabled, return MOVE_LINE_CONTINUED rather than MOVE_POS_MATCH_OR_ZV
 -      if target position is at end of display line but char is not a newline.
 -
 -2004-07-25  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (coordinates_in_window): Return ON_SCROLL_BAR
 -      instead of ON_VERTICAL_BORDER, when on scroll bar.
 -      (Fcoordinates_in_window_p): Handle ON_SCROLL_BAR--return nil.
 -
 -      * dispextern.h (enum window_part): Add ON_SCROLL_BAR.
 -
 -      * window.c (Fcoordinates_in_window_p):
 -      Take account of FRAME_INTERNAL_BORDER_WIDTH.
 -
 -      * alloc.c (check_cons_list): New function (contents commented out).
 -
 -2004-07-24  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * xfaces.c (Fcolor_supported_p): Doc fix.
 -
 -      * frame.c (Fselect_frame, Fset_frame_selected_window)
 -      (Fframe_visible_p, Fraise_frame): Doc fixes.
 -
 -2004-07-24  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.h (not_single_kboard_state): Declare.
 -
 -      * fileio.c (Fwrite_region): Doc fix.
 -
 -      * window.c (Fwindow_at): Take account of FRAME_INTERNAL_BORDER_WIDTH.
 -
 -      * abbrev.c (Fexpand_abbrev): Run Qpre_abbrev_expand_hook
 -      only when a real abbrev is present.
 -
 -      * xfns.c (x_icon_verify): New function.
 -      (Fx_create_frame): Use it.
 -
 -2004-07-22  Barry Fishman  <barry_fishman@att.net>  (tiny change)
 -
 -      * s/gnu-linux.h: Use GC_MARK_STACK if __amd64__ is defined.
 -
 -2004-07-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.h (struct glyph_matrix): New members nrows_scale_factor
 -      and ncols_scale_factor.
 -
 -      * window.c (make_window): Initialize nrows_scale_factor and
 -      ncols_scale_factor members.
 -
 -      * dispnew.c (margin_glyphs_to_reserve): Apply ncols_scale_factor.
 -      (allocate_matrices_for_frame_redisplay): Fix left/right margin mix-up.
 -      (required_matrix_height): Apply nrows_scale_factor.
 -      (required_matrix_width): Apply ncols_scale_factor.
 -
 -      * xdisp.c (display_line): Increment nrows_scale_factor and set
 -      fonts_changed_p if past last allocated row.
 -      (append_glyph, append_composite_glyph, produce_image_glyph)
 -      (append_stretch_glyph): Increment ncols_scale_factor and set
 -      fonts_changed_p if current area is full.
 -
 -2004-07-21  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * widget.c (EmacsFrameDestroy): Don't abort if normal_gc is 0.
 -
 -2004-07-19  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * window.c (Fpos_visible_in_window_p, Fset_window_hscroll)
 -      (Fwindow_inside_pixel_edges, Fwindow_end, Fset_window_point)
 -      (Fset_window_start, Fscroll_up, Fscroll_down)
 -      (Fother_window_for_scrolling, Fscroll_other_window)
 -      (Fsave_window_excursion, Fset_window_vscroll)
 -      (syms_of_window) <window-size-fixed>: Doc fixes.
 -
 -2004-07-19  KOBAYASHI Yasuhiro  <kobayays@otsukakj.co.jp>
 -
 -      * w32fns.c (Fx_file_dialog): Use ENCODE_FILE instead of
 -      ENCODE_SYSTEM for filenames.
 -
 -2004-07-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (sys_select): Block input around call to
 -      ReceiveNextEvent to prevent breakage.  Correctly handle
 -      blocking on event queue only by calling ReceiveNextEvent
 -      instead of select (since GUI events aren't on an fd).
 -      (sys_read): Remove function
 -      * sysdep.c: Remove redefine of read to sys_read if HAVE_CARBON
 -
 -2004-07-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * mac.c (sys_select): Redo sys_select to use alarm-based
 -      polling instead of 1 sec timeouts (like solaris).
 -
 -      * macterm.c (x_make_frame_visible): Comment in polling on
 -      frame creation.
 -
 -      * keyboard.c: Undef SIGIO on Carbon
 -
 -      * atimer.c (alarm_signal_handler): Call alarm handlers after
 -      scheduling.
 -
 -      * eval.c (Feval): Remove quit_char test
 -
 -      * process.c (wait_reading_process_input): Remove clearing
 -      stdin for select call on process input.
 -
 -2004-07-18  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * xdisp.c (syms_of_xdisp) <window-scroll-functions>: Correct
 -      capitalization error in docstring.
 -
 -2004-07-17  Juanma Barranquero  <lektu@terra.es>
 -
 -      * keyboard.c (not_single_kboard_state): Do nothing unless
 -      MULTI_KBOARD is defined.
 -
 -2004-07-17  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (coordinates_in_window): Inside the window but outside
 -      its box to the L or R, return ON_VERTICAL_BORDER.
 -      (window_list_1): Rotate the list to start with WINDOW.
 -
 -      * print.c (print_preprocess): Test for print_depth at limit
 -      before entering in being_printed.
 -
 -      * keyboard.c (not_single_kboard_state): New function.
 -      (stuff_buffered_input): Now no-op only if no SIGTSTP.
 -
 -      * frame.c (Fdelete_frame): If we're in single_bboard_state on
 -      this kboard, and we delete its last frame, go to any_kboard_state.
 -
 -      * buffer.c (syms_of_buffer) <transient-mark-mode>: Doc fix.
 -
 -2004-07-15  KOBAYASHI Yasuhiro  <kobayays@otsukakj.co.jp>
 -
 -      * w32fns.c (Fx_file_dialog): Encode strings in system coding
 -      system before passing them to OS functions for display.
 -
 -2004-07-15  David Kastrup  <dak@gnu.org>
 -
 -      * search.c (syms_of_search): Staticpro `saved_last_thing_searched'.
 -      Apparently fixes an abort condition.
 -
 -2004-07-14  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fileio.c (Fvisited_file_modtime): Return a list of two integers,
 -      instead of a cons.
 -
 -2004-07-14  K\e,Aa\e(Broly L\e$,1 q\e(Brentey  <lorentey@elte.hu>
 -
 -      * keyboard.c (echo_dash): Do nothing if there already is a dash
 -      at the end of the echo string.
 -
 -2004-07-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c (mark_object): Only look at Lisp_Misc_Save_Value
 -      if GC_MARK_STACK.
 -
 -2004-07-10  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * buffer.c (Fswitch_to_buffer, Fpop_to_buffer): Doc fixes.
 -
 -      * window.c (Fwindow_buffer, Fother_window, Fget_lru_window)
 -      (Fget_largest_window, Fget_buffer_window, Fdelete_windows_on)
 -      (Freplace_buffer_in_windows, Fset_window_buffer)
 -      (Fselect-window, Fdisplay-buffer, Fsplit_window): Doc fixes.
 -      (syms_of_window): Expand docstring of `display-buffer-function'.
 -
 -2004-07-09  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * editfns.c (Ffloat_time, Fformat_time_string, Fdecode_time)
 -      (Fcurrent_time_string, Fcurrent_time_zone): Mention in docstrings
 -      that time values of the type (HIGH . LOW) are considered obsolete.
 -
 -2004-07-06  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * keyboard.c (syms_of_keyboard): Fix `keyboard-translate-table'
 -      docstring.
 -
 -      * fns.c (Fclear_string): Declare `len' before call to CHECK_STRING.
 -
 -2004-07-06  John Paul Wallington  <jpw@gnu.org>
 -
 -      * eval.c (Fdefmacro): Signal an error if NAME is not a symbol.
 -
 -      * fns.c (Fclear_string): Signal an error if STRING is not a string.
 -
 -2004-07-05  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
 -      instead of CGMainDisplayID (only in OSX 10.2 and later).
 -
 -2004-07-04  John Paul Wallington  <jpw@gnu.org>
 -
 -      * fileio.c (read_file_name_completion_ignore_case): New variable.
 -      (syms_of_fileio): Declare and initialise it.
 -      (Fread_file_name): Bind `completion-ignore-case' to respect it.
 -
 -2004-07-03  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c (dos_rawgetc): Use make_number to produce Lisp objects
 -      for event.x and event.y.
 -
 -2004-07-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * w32select.c (Fw32_set_clipboard_data): Update `nbytes' correctly
 -      after getting a new string by pre-write-conversion.
 -
 -2004-06-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xterm.c (x_detect_focus_change): Remove unused var `nr_events'.
 -      (x_calc_absolute_position): Remove unused var `child'.
 -
 -      * xfaces.c (x_supports_face_attributes_p)
 -      (Fdisplay_supports_face_attributes_p): YAILOM.
 -      (tty_supports_face_attributes_p): Remove unused var `i'.
 -
 -      * syntax.c (skip_chars): Remove unused labels fwd_unibyte_ok and
 -      back_unibyte_ok.
 -
 -      * search.c (match_limit, Fmatch_data, Fset_match_data): YAILOM.
 -
 -      * fontset.c (Fset_fontset_font): Remove unused vars `family' and
 -      `registry'.
 -
 -      * Makefile.in (${etc}DOC): Fix file name of make-docfile.
 -
 -2004-06-30  Andreas Schwab  <schwab@suse.de>
 -
 -      * image.c (CHECK_LIB_AVAILABLE): Add third parameter LIBRARIES.
 -      (Finit_image_library): Pass LIBRARIES through to
 -      CHECK_LIB_AVAILABLE.  Declare parameters.  Doc fix.
 -      (lookup_image_type): Pass Qnil as second argument to
 -      Finit_image_library.
 -
 -      * lisp.h (Finit_image_library): Declare.
 -
 -2004-06-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (do_window_activate, do_window_deactivate): Remove.
 -      (XTread_socket): Send mouse button events to the toolbox
 -      dispatcher even when the mouse is grabbed.  Don't process window
 -      activate events for non-Emacs windows.  Replace function calls to
 -      do_window_activate and do_window_deactivate with their contents.
 -      Reset mouse grabbing status when a window is deactivated.
 -
 -2004-06-29  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (mac_get_emulated_btn)
 -      (mac_event_to_emacs_modifiers): Fix emulated mouse button
 -      support to correctly mask out modifiers.
 -
 -2004-06-29  David Kastrup  <dak@gnu.org>
 -
 -      * search.c (Fset_match_data): Allow buffer before end of list
 -      which can happen if set-match-data is using a pre-consed list.
 -
 -2004-06-28  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (XTread_socket): Correctly set the frame position
 -      after the window is moved.
 -
 -2004-06-28  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_image_for_pixmap): Call g_object_unref on
 -      gpix and gmask just before return to avoid memory leak.
 -      (xg_get_image_for_pixmap): Add workaround for monochrome displays
 -      so insensitive and activated icons look ok.
 -
 -2004-06-27  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (file_dialog_callback): Disable edit control if set
 -      to directories only on CDN_INITDONE message.
 -      (Fx_file_dialog): Default to directories only when prompt starts
 -      with "Dired".
 -
 -2004-06-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c (allocate_misc): Update total_free_markers.
 -      (free_misc): New function.
 -      (safe_alloca_unwind, free_marker): Use it.
 -
 -      * lisp.h (free_misc): Add prototype.
 -
 -      * fns.c (Fmapconcat, Fmapcar): Remove superfluous GCPROs.
 -
 -2004-06-24  Richard M. Stallman  <rms@gnu.org>
 -
 -      * emacs.c (Vsignal_USR1_hook, Vsignal_USR2_hook): Definitions deleted.
 -      (syms_of_emacs): Lisp variables deleted.
 -
 -2004-06-23  David Kastrup  <dak@gnu.org>
 -
 -      * search.c (Freplace_match): Adjust the match-data more thoroughly
 -      when replacing strings in the buffer.
 -      (Fmatch_data): When INTEGERS is non-nil and the last match was in
 -      a buffer, add the buffer as last element to the match data.
 -      (Fset_match_data): If an additional element of the match-data is a
 -      buffer, restore it to last_thing_searched.
 -      (save_search_regs): Save last_thing_searched as part of the match data.
 -      (restore_match_data): Restore it again.
 -
 -2004-06-23  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * keymap.c (Ftext_char_description): Doc fix.
 -      * doc.c (Fsnarf_documentation): Doc fix.
 -
 -2004-06-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * fns.c (Fmapcar, Fmapconcat): GCPRO the args array.
 -
 -      * lisp.h (struct Lisp_Save_Value): New member dogc.
 -      (SAFE_ALLOCA_LISP): Change second arg to number of elements.
 -      Set dogc member in Lisp_Save_Value object so it will be GC'ed.
 -      (SAFE_FREE_LISP): New macro.
 -
 -      * alloc.c (safe_alloca_unwind): Clear dogc and pointer members.
 -      (make_save_value): Init new dogc member.
 -      (mark_object): Mark Lisp_Save_Value pointer array if dogc is set.
 -
 -      * fns.c (Fmapconcat, Fmapcar): Use new SAFE_ALLOCA_LISP and
 -      SAFE_FREE_LISP macros.
 -
 -2004-06-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * lisp.h (SAFE_ALLOCA_LISP): New macro to allocate Lisp_Objects.
 -      Temporarily inhibits GC if memory is xmalloc'ed, as the Lisp_Objects
 -      in that memory area are unknown to GC.  Add comments.
 -
 -      * fns.c (Fmapconcat, Fmapcar): Use SAFE_ALLOCA_LISP.
 -
 -2004-06-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * lisp.h (MAX_ALLOCA): Define here.
 -      (safe_alloca_unwind): Add prototype.
 -      (USE_SAFE_ALLOCA, SAFE_ALLOCA, SAFE_FREE): New macros.
 -
 -      * alloc.c (safe_alloca_unwind): New function.
 -
 -      * casefiddle.c (casify_object): Use SAFE_ALLOCA.
 -
 -      * charset.c (Fstring): Use SAFE_ALLOCA.
 -
 -      * coding.c (MAX_ALLOCA): Remove define.
 -
 -      * data.c (MAX_ALLOCA): Remove define.
 -      (Faset): Use SAFE_ALLOCA.
 -
 -      * editfns.c (Fformat, Ftranspose_regions): Use SAFE_ALLOCA.
 -
 -      * fns.c (string_make_multibyte, string_to_multibyte)
 -      (string_make_unibyte, Fmapconcat, Fmapcar): Use SAFE_ALLOCA.
 -      (MAX_ALLOCA): Remove define.
 -      (Fbase64_encode_region, Fbase64_encode_string)
 -      (Fbase64_decode_region, Fbase64_decode_string): Use SAFE_ALLOCA.
 -      (Fbase64_encode_region, Fbase64_encode_string): Fix potential
 -      memory leak if encoding fails.
 -
 -      * xdisp.c (add_to_log): Use SAFE_ALLOCA.
 -
 -2004-06-21  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * print.c (Fwith_output_to_temp_buffer): Doc fix.
 -
 -2004-06-20  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xfaces.c (Finternal_copy_lisp_face): Small cleanup; doc fix.
 -
 -      * search.c (match_limit): Cleaner err msg when no match data available.
 -
 -      * window.c (syms_of_window): Doc fix.
 -
 -      * keyboard.c (command_loop_1): Handle values `only' and `identity'
 -      for Vtransient_mark_mode.
 -
 -      * buffer.c (syms_of_buffer): Doc fix.
 -
 -2004-06-21  David Kastrup  <dak@gnu.org>
 -
 -      * minibuf.c (Ftry_completion, Fall_completions): Do lazy binding
 -      and unbinding of `case-fold-search' according to
 -      `completion-ignore-case' around calls of string-match and
 -      predicates, respectively.  Should give satisfactory performance
 -      in all relevant cases.
 -
 -2004-06-17  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_draw_image_foreground_1): Subtract slice.x/y from
 -      clip_x/y_origin.
 -
 -      * fns.c (string_to_multibyte): Use xmalloc/xfree instead of alloca.
 -
 -      * macfns.c (Fx_display_color_cells): Do not limit return value to 256.
 -
 -      * macterm.c (mac_initialize_display_info): Initialize n_planes correctly
 -      on Mac OSX.
 -
 -2004-06-16  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * buffer.c (syms_of_buffer): Clarify `fill-column' docstring.
 -
 -2004-06-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (Vimage_types): Remove extern.
 -
 -2004-06-16  Miles Bader  <miles@gnu.org>
 -
 -      * image.c (lookup_image_type): Initialize image type if necessary.
 -
 -2004-06-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (try_cursor_movement): Exclude header line from scroll
 -      margin at top of window.
 -      (try_window_reusing_current_matrix): Calculate proper cursor position
 -      after scrolling up with non-zero scroll margin, as the old cursor
 -      position corresponds to value of PT before executing this command.
 -      (try_window_id): Consider scroll margin at bottom of window too;
 -      otherwise we fail to scroll when hl-line-mode is enabled.
 -
 -      * syntax.c (skip_chars): Only recognize [:class:] when it has the
 -      proper format and class is a lower-case word.
 -
 -2004-06-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_get_image_for_pixmap): New function.
 -      (xg_get_gdk_pixmap_and_mask): Remove.
 -      (update_frame_tool_bar): Call xg_get_image_for_pixmap instead of
 -      xg_get_gdk_pixmap_and_mask.
 -
 -      * xterm.h (struct x_display_info): Typo in comment fixed.
 -
 -2004-06-14  Juanma Barranquero  <lektu@terra.es>
 -
 -      * dispextern.h (Vimage_types): Make it conditional on
 -      HAVE_WINDOW_SYSTEM.
 -
 -      * image.c (Vimage_types): Move from xdisp.c.
 -      (Vimage_type_cache): New variable.
 -      (define_image_type): New argument indicating whether an image
 -      library was loaded; cache loaded status and return t on success,
 -      nil otherwise.
 -      (CACHE_IMAGE_TYPE, ADD_IMAGE_TYPE): New macros.
 -      (w32_delayed_load): New function to load an image library from a
 -      list of possible filenames.
 -      (init_xpm_functions, init_png_functions, init_jpeg_functions)
 -      (init_tiff_functions, init_gif_functions): Use `w32_delayed_load'.
 -      (CHECK_LIB_AVAILABLE): Call `define_image_library' with new argument.
 -      (Finit_image_library): New function, extracted from `init_image'.
 -      Try to initialize an image library on demand and cache whether we
 -      were successful or not.
 -      (syms_of_image): Initialize `Vimage_types' and
 -      `Vimage_type_cache'.  Add recognized image types to Vimage_types.
 -      Export `init-image-library'.
 -      (init_image): Remove initialization of all image types, except xbm
 -      and pbm.
 -
 -      * xdisp.c (Vimage_types): Delete (moved to image.c).
 -
 -2004-06-14  Andreas Schwab  <schwab@suse.de>
 -
 -      * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
 -      Avoid calling specbind when completion-regexp-list is empty.
 -
 -2004-06-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * regex.h (CHAR_CLASS_MAX_LENGTH, re_wctype_t, re_wchar_t)
 -      (re_wctype, re_iswctype, re_wctype_to_bit):
 -      Non-function definitions moved here from regex.c.
 -
 -      * regex.c (re_wctype, re_iswctype): Function defs longer static.
 -      (CHAR_CLASS_MAX_LENGTH, re_wctype_t, re_wchar_t)
 -      (re_wctype, re_iswctype, re_wctype_to_bit):
 -      Non-function definitions moved to regex.h.
 -
 -      * window.c (Fselect_window): Doc fix.
 -
 -      * syntax.c: Include regex.h.
 -      (skip_chars): New arg HANDLE_ISO_CLASSES.  Callers changed.
 -      If requested, make a list of classes, then check the scanned
 -      chars for membership in them.
 -      (in_classes): New function.
 -      Doc fix.
 -
 -      * keyboard.c (cmd_error): Don't call any_kboard_state
 -      if inside a recursive edit level.
 -
 -2004-06-13  K\e,Aa\e(Broly L\e$,1 q\e(Brentey  <lorentey@elte.hu>
 -
 -      * keyboard.c (command_loop): Call any_kboard_state before
 -      command_loop_2 when at top level.
 -
 -2004-06-13  Andreas Schwab  <schwab@suse.de>
 -
 -      * print.c (print_object): Always use %ld for printing EMACS_INT.
 -
 -      * keyboard.c (cancel_hourglass_unwind): Return a value.
 -      (modify_event_symbol): Always use %ld for printing EMACS_INT.
 -      (Fexecute_extended_command): Likewise.
 -
 -      * syntax.h (SYNTAX_ENTRY_FOLLOW_PARENT): Rename local variable to
 -      avoid clashes.
 -      (SYNTAX): Likewise.
 -      (SYNTAX_WITH_FLAGS): Likewise.
 -      (SYNTAX_MATCH): Likewise.
 -
 -      * syntax.c (char_quoted): Avoid warning about undefined operation.
 -      (find_defun_start): Likewise.
 -      (scan_lists): Likewise.
 -      (INC_FROM): Likewise.
 -      (scan_sexps_forward): Likewise.
 -
 -      * image.c: Include <ctype.h>.
 -
 -      * xfaces.c (face_attr_equal_p): Declare parameters.
 -
 -2004-06-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * ccl.c (CCL_READ_CHAR): If hit EOF, set REG to -1.
 -
 -2004-06-12  Matthew Mundell  <matt@mundell.ukfsn.org>
 -
 -      * eval.c (Fdefun): Signal an error if NAME is not a symbol.
 -
 -2004-06-12  Kenichi Handa  <handa@m17n.org>
 -
 -      * ccl.c (CCL_CALL_FOR_MAP_INSTRUCTION): Save eof_ic in
 -      ccl_prog_stack_struct and update it.
 -      (CCL_INVALID_CMD): If CCL_DEBUG is defined, call ccl_debug_hook.
 -      (CCL_READ_CHAR): Get instruction counter from eof_ic, not from
 -      ccl->eof_ic on EOF.
 -      (ccl_debug_hook): New function.
 -      (struct ccl_prog_stack): New member eof_ic.
 -      (ccl_driver): Handle EOF in subrountine call correctly.
 -
 -2004-06-11  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (encode_coding_string): Check CODING_FINISH_INTERRUPT.
 -
 -2004-06-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * emacs.c (shut_down_emacs): Inhibit redisplay during shutdown.
 -
 -2004-06-11  Juanma Barranquero  <lektu@terra.es>
 -
 -      * keyboard.c (Fposn_at_point): Doc fix.
 -
 -2004-06-11  David Kastrup  <dak@gnu.org>
 -
 -      * search.c (match_limit): Don't flag an error if match-data
 -      exceeding the allocated search_regs.num_regs gets requested, just
 -      return Qnil.
 -
 -2004-06-08  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (push_named_merge_point): Return 0 when a cycle is detected.
 -
 -2004-06-07  Juanma Barranquero  <lektu@terra.es>
 -
 -      * editfns.c (Fuser_login_name, Ffloat_time, Fencode_time)
 -      (Fcurrent_time_string, Fcurrent_time_zone)
 -      (Finsert_buffer_substring, Ftranspose_regions): Doc fixes.
 -
 -2004-06-07  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (struct named_merge_point): New type.
 -      (push_named_merge_point): New function.
 -      (merge_named_face): New function.
 -      (merge_face_ref, face_at_buffer_position, face_at_string_position):
 -      Use `merge_named_face'.
 -      (merge_face_inheritance): Function removed.
 -      (merge_face_ref): Rename from `merge_face_vector_with_property'.
 -      Add new `err_msgs' and `named_merge_points' args.  Return error
 -      status.  Only print error messages if ERR_MSGS is true.  Don't try to
 -      do :inherit attribute validation.
 -      (merge_face_heights): Handle `unspecified' in both directions.
 -      (merge_face_vectors): Rename `cycle_check' arg to `named_merge_points'.
 -      Call `merge_face_ref' instead of `merge_face_inheritance'.
 -      (Fdisplay_supports_face_attributes_p, Fface_attributes_as_vector)
 -      (compute_char_face, face_at_buffer_position)
 -      (face_at_string_position): Call `merge_face_ref' instead of
 -      `merge_face_vector_with_property'.
 -
 -2004-06-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (find_safe_codings): Check NILP (safe_codings) only at
 -      the necessary places.
 -
 -2004-06-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Fdelete_process): Undo 2004-05-28 change.
 -      Instead, call status_notify also for network process.
 -      (status_message): Use process instead of status as arg.
 -      Give messages "deleted" or "connection broken by remote peer" for
 -      an exited network process.
 -      (status_notify): Change call to status_message.
 -      (read_process_output): Increase readmax to 4096.  Do not increase
 -      buffer size for datagram channels (default is now large enough).
 -
 -2004-06-06  Steven Tamm  <tamm@Steven-Tamms-Computer.local>
 -
 -      * macfns.c (x_create_tip_frame): Fix Mac OS X 10.1 compilation
 -      problem due to newly defined variable.
 -
 -2004-06-06  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (Fdisplay_supports_face_attributes_p): Give up
 -      immediately if non-interactive or not initialized.
 -
 -2004-06-05  Richard M. Stallman  <rms@gnu.org>
 -
 -      * minibuf.c (Fcompleting_read): Doc fix.
 -
 -2004-06-05  Andreas Schwab  <schwab@suse.de>
 -
 -      * macfns.c (x_create_tip_frame): Fix declaration after statement.
 -
 -2004-06-05  Juanma Barranquero  <lektu@terra.es>
 -
 -      * keymap.c (Fdescribe_vector): Fix docstring.
 -      (Fkey_description, Fglobal_key_binding): Fix typo in docstring.
 -
 -2004-06-05  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (tty_supports_face_attributes_p): Make sure the specified
 -      attributes have different values than the default face.
 -
 -2004-06-04  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * xfaces.c (x_supports_face_attributes_p): Make this function
 -      conditional on HAVE_WINDOW_SYSTEM.
 -      (Fdisplay_supports_face_attributes_p) [HAVE_WINDOW_SYSTEM]:
 -      Don't call x_supports_face_attributes_p if it was not compiled in.
 -
 -2004-06-04  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (tty_supports_face_attributes_p): New function, mostly
 -      from Ftty_supports_face_attributes_p.
 -      (x_supports_face_attributes_p): New function.
 -      (Ftty_supports_face_attributes_p): Function deleted.
 -      (Fdisplay_supports_face_attributes_p): New function.
 -      (syms_of_xfaces): Initialize Sdisplay_supports_face_attributes_p.
 -      (face_attr_equal_p): New function.
 -      (lface_equal_p): Use it.
 -
 -2004-06-03  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32fns.c (Fx_display_grayscale_p, Fw32_send_sys_command)
 -      (Vw32_color_map): Fix typo in docstring.
 -      (Fx_create_frame, Fw32_find_bdf_fonts, Fx_show_tip)
 -      (Fw32_unregister_hot_key, Fw32_reconstruct_hot_key):
 -      Make argument names match their use in docstring.
 -
 -2004-06-02  Juanma Barranquero  <lektu@terra.es>
 -
 -      Work around bugs/problems with MinGW builds of graphics libraries
 -      called from MSVC builds of Emacs.
 -
 -      * image.c (lookup_image): Make pointer to img static.
 -      (png_read_from_memory): Disable "global" optimization.
 -
 -2004-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * eval.c (Fcondition_case): Fix usage.  Simplify.
 -
 -      * mem-limits.h (EXCEEDS_LISP_PTR) [USE_LSB_TAG]: Never true.
 -
 -2004-05-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macfns.c: Don't include ccl.h.
 -      [MAC_OSX]: Don't include QuickTime/QuickTime.h.
 -      [!MAC_OSX]: Don't include alloca.h, Windows.h, Gestalt.h, or
 -      TextUtils.h.
 -      (Fx_create_frame): Sync with xfns.c.  Initialize cursor descriptors.
 -      (Fx_display_mm_height, Fx_display_mm_width): Calculate length from
 -      display height/width.
 -      (compute_tip_xy, Vx_max_tooltip_size): Declare.
 -      (unwind_create_tip_frame, compute_tip_xy): New functions.
 -      (x_create_tip_frame, Fx_show_tip, Fx_hide_tip): Sync with xfns.c.
 -      (syms_of_macfns): Initialize Qcancel_timer, Vx_max_tooltip_size,
 -      and last_show_tip_args.
 -
 -      * macgui.h [!MAC_OSX]: Include Gestalt.h.
 -      (Cursor, No_Cursor): New defines.
 -      [!TARGET_API_MAC_CARBON] (SetPortWindowPort): New compatibility macro.
 -      [!TARGET_API_MAC_CARBON] (arrow_cursor): Declare.
 -
 -      * macmenu.c (mac_menu_show, mac_dialog): Use SetPortWindowPort.
 -
 -      * macterm.c: Don't include Gestalt.h.
 -      (enum mouse_tracking_type, mouse_tracking_in_progress): Remove.
 -      (XDrawLine, XClearArea, XClearWindow, mac_draw_bitmap)
 -      (mac_set_clip_rectangle, mac_reset_clipping, XCreatePixmap)
 -      (XFillRectangle, mac_draw_rectangle, mac_draw_string_common)
 -      (mac_copy_area, mac_copy_area_with_mask, x_update_end)
 -      (construct_mouse_click, XTmouse_position)
 -      (x_scroll_bar_report_motion, x_calc_absolute_position)
 -      (do_mouse_moved, do_zoom_window, mac_do_receive_drag)
 -      (XTread_socket, make_mac_frame): Use SetPortWindowPort.
 -      (note_mouse_movement): Clear the mouse face and reset the pointer
 -      shape when the pointer goes outside the frame without grabbing.
 -      (mac_front_window): New function.
 -      (mac_window_to_frame): New macro.
 -      (XTmouse_position, x_scroll_bar_report_motion, do_window_update)
 -      (do_window_activate, do_window_deactivate, do_app_resume)
 -      (do_app_suspend, do_mouse_moved, do_menu_choice, do_grow_window)
 -      (do_zoom_window, mac_do_receive_drag, XTread_socket)
 -      (mac_check_for_quit_char): Use mac_front_window and/or
 -      mac_window_to_frame.
 -      (x_scroll_bar_handle_click): Set `(PORTION . WHOLE)' part in a
 -      scroll-bar click event.
 -      (mac_define_frame_cursor): Change the pointer shape.
 -      (x_free_frame_resources): Reset tip_window to NULL when it is
 -      disposed of.
 -      [!TARGET_API_MAC_CARBON] (arrow_cursor): New variable.
 -      [!TARGET_API_MAC_CARBON] (do_init_managers): Initialize arrow_cursor.
 -      (do_window_update): Don't do anything if the updated window is the
 -      tooltip window.
 -      (do_mouse_moved): Handle mouse movement events here (previously in
 -      XTread_socket).  Clear the mouse face if
 -      dpyinfo->mouse_face_hidden is set.
 -      (do_os_event, do_events): Remove (now in XTread_socket).
 -      (XTread_socket): Immediately return if interrupt_input_blocked.
 -      Loop until all the events in the queue are processed.
 -      Rearrange codes for mouse grabbing.  Add tooltip support.  Include the
 -      contents of do_os_event and do_events.  Remove mouse movement
 -      handling (now in do_mouse_moved).  Add the case where
 -      Vmouse_highlight has an integer value.
 -      (NewMacWindow): Remove.
 -      (make_mac_frame): Do what NewMacWindow previously did.  Don't do
 -      excess initializations.
 -      (make_mac_terminal_frame): Previous initializations in
 -      make_mac_frame are moved here.
 -      (mac_initialize_display_info):
 -      Initialize dpyinfo->mouse_face_overlay and dpyinfo->mouse_face_hidden.
 -
 -      * xdisp.c [MAC_OS] (No_Cursor): Remove variable.
 -      (define_frame_cursor1): Don't treat HAVE_CARBON as a special case.
 -
 -2004-05-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * lisp.h (truncate_undo_list): Update decl.
 -
 -      * alloc.c (undo_outer_limit): New variable.
 -      (syms_of_alloc): Defvar it.
 -      (Fgarbage_collect): Pass undo_outer_limit to truncate_undo_list.
 -
 -      * undo.c (truncate_undo_list): New arg LIMITSIZE.
 -
 -      * alloc.c (lisp_align_malloc): Check for base == 0
 -      regardless of HAVE_POSIX_MEMALIGN.
 -      Clean up HAVE_POSIX_MEMALIGN handling of `err'.
 -
 -2004-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c: Undo Kim's recent changes and fix the same bug differently.
 -      (marker_blocks_pending_free): Remove.
 -      (Fgarbage_collect): Sweep after cleaning up undo-lists.
 -      Mark the undo lists after claning them up.
 -      Don't free block in marker_blocks_pending_free.
 -      (mark_buffer): Don't mark undo_list.
 -      (gc_sweep): Sweep hash-tables and strings first.
 -      Do free marker blocks that are empty.
 -
 -2004-05-28  Jim Blandy  <jimb@redhat.com>
 -
 -      * regex.c (print_partial_compiled_pattern): Add missing 'break'
 -      after 'case wordend'.  For symbeg and symend, print to stderr,
 -      like the other cases.
 -
 -2004-05-28  Noah Friedman  <friedman@splode.com>
 -
 -      * process.c (Fdelete_process): Do not call remove_process.
 -
 -2004-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c (struct backtrace): Remove.
 -      (Fgarbage_collect): Use the new mark_backtrace.
 -
 -      * eval.c (mark_backtrace): New function.
 -
 -      * minibuf.c (run_exit_minibuf_hook): New function.
 -      (read_minibuf_unwind): Don't run exit-minibuffer-hook any more.
 -      (read_minibuf): Use separate unwind handler to run exit-minibuf-hook.
 -
 -2004-05-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (back_to_previous_visible_line_start): Skip backwards
 -      over display properties, e.g. images, that replace buffer text.
 -
 -2004-05-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c (marker_blocks_pending_free): New var.
 -      (gc_sweep): Store free marker blocks on that list.
 -      (Fgarbage_collect): Free them after undo-list cleanup.
 -
 -      * process.c (wait_reading_process_input): Check connect_wait_mask
 -      before actually accepting connection in case it has already been
 -      accepted due to recursion.
 -
 -2004-05-23  K\e,Aa\e(Broly L\e$,1 q\e(Brentey  <lorentey@elte.hu>
 -
 -      * coding.c (Fset_safe_terminal_coding_system_internal):
 -      Set suppress_error in safe_terminal_coding, not terminal_coding.
 -
 -2004-05-22  Richard M. Stallman  <rms@gnu.org>
 -
 -      * alloc.c (Fmake_string): Doc fix.
 -
 -      * buffer.c (clone_per_buffer_values): Copy the alist of local vars,
 -      and the alist pairs too.
 -
 -      * casefiddle.c (casify_object): Return OBJ unchanged if not real char.
 -
 -      * emacs.c (main): Update copyright year.
 -
 -      * fileio.c (Fread_file_name): Expand DIR if not absolute.
 -
 -      * insdel.c (del_range_2, replace_range): Don't write an anchor
 -      if the gap is empty.
 -
 -      * xdisp.c (try_scrolling): If scroll-up-aggressively or
 -      scroll-down-aggressively is small but positive, put point
 -      near the screen edge.
 -
 -2004-05-22  Juanma Barranquero  <lektu@terra.es>
 -
 -      * keymap.c (Fdefine_key): Doc fix.
 -
 -2004-05-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c (struct backtrace): Add debug_on_exit member.
 -      (Fgarbage_collect): Clear out buffer undo_list markers after gc_sweep.
 -      Identify those markers as Lisp_Misc_Free objects.  Clear car and cdr of
 -      the removed cons cells.
 -      (mark_object): Undo previous change - disallow Lisp_Misc_Free objects.
 -      (gc_sweep): Clear cons_blocks before sweeping strings, so we don't have
 -      any cons cells pointing to unallocated stings.
 -      Do not lisp_free any marker blocks, as there may still be pointers
 -      to them from buffer undo lists at this stage of GC.
 -
 -      * keyboard.c (struct backtrace): Add debug_on_exit member.
 -      (Fcommand_execute): Clear it.
 -
 -2004-05-20  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * intervals.c (lookup_char_property): Do not prematurely return nil.
 -
 -2004-05-19  Jim Blandy  <jimb@redhat.com>
 -
 -      Add support for new '\_<' and '\_>' regexp operators, matching the
 -      beginning and end of symbols.
 -
 -      * regex.c (enum syntaxcode): Add Ssymbol.
 -      (init_syntax_once): Set the syntax for '_' to Ssymbol, not Sword.
 -      (re_opcode_t): New opcodes `symbeg' and `symend'.
 -      (print_partial_compiled_pattern): Print the new opcodes properly.
 -      (regex_compile): Parse the new operators.
 -      (analyse_first): Skip sym(beg|end) (they match only the empty string).
 -      (mutually_exclusive_p): `symend' is mutually exclusive with \s_ and
 -      \sw; `symbeg' is mutually exclusive with \S_ and \Sw.
 -      (re_match_2_internal): Match symbeg and symend.
 -
 -      * search.c (trivial_regexp_p): \_ is no longer a trivial regexp.
 -
 -2004-05-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * .gdbinit (xsymbol): Fix last change.
 -
 -2004-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * .gdbinit (xprintstr): New fun.
 -      (xstring, xprintsym): Use it.
 -
 -      * w32proc.c (create_child): Use INTMASK.
 -
 -      * alloc.c (Fgarbage_collect): Do all the marking before flushing
 -      unmarked elements of the undo list.
 -
 -2004-05-18  David Ponce  <david@dponce.com>
 -
 -      * print.c (print): Reset print_depth before to call print_object.
 -
 -2004-05-18  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32console.c: Prefix RIF functions with w32con_ to avoid
 -      namespace clash with functions in term.c and w32term.c.
 -
 -      * w32menu.c (add_menu_item, w32_menu_display_help)
 -      [USE_LISP_UNION_TYPE]: Cast from Lisp_Object using i member.
 -
 -      * w32term.h (display_x_get_resource, vga_stdcolor_name): Add prototype.
 -
 -2004-05-18  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * lisp.h (DECL_ALIGN): Remove restriction on MS-DOS systems.
 -
 -      * msdos.c (syms_of_msdos): Initialize dos-unsupported-char-glyph
 -      with make_number.
 -      (IT_write_glyphs): Extract glyph from dos-unsupported-char-glyph
 -      with XINT.
 -
 -2004-05-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * blockinput.h (INPUT_BLOCKED_P): New macros.
 -
 -      * keyboard.c (Frecursive_edit): Return immediately if input blocked.
 -      (Ftop_level): Unblock input if blocked.
 -
 -      * buffer.h (GET_OVERLAYS_AT): New macro.
 -      * msdos.c (IT_note_mouse_highlight): Use it.
 -      * textprop.c (get_char_property_and_overlay): Use it.
 -      * xdisp.c (next_overlay_change, note_mouse_highlight): Use it.
 -      * xfaces.c (face_at_buffer_position): Use it.
 -
 -      * print.c (print_object): Increase buf size.
 -
 -2004-05-17  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fw32_register_hot_key, Fw32_unregister_hot_key)
 -      (Fw32_toggle_lock_key) [USE_LISP_UNION_TYPE]: Cast from
 -      Lisp_Object using i member.
 -      (w32_quit_key): Rename from Vw32_quit_key, and make an int.
 -      (syms_of_w32fns, globals_of_w32fns): Use Lisp_Object and int
 -      consistently.
 -
 -      * w32proc.c (create_child): Use make_number instead of masking pid.
 -
 -      * w32fns.c (w32_color_map_lookup): Return a Lisp_Object.
 -      (x_to_w32_charset, w32_to_x_charset, w32_to_all_x_charsets):
 -      Use EQ to compare Lisp_Objects.
 -      (w32_parse_hot_key): Use int for lisp_modifiers consistently.
 -
 -      * w32term.c (w32_num_mouse_buttons): Rename from
 -      Vw32_num_mouse_buttons and make it an int.
 -
 -      * w32.c (init_environment): Use it.
 -
 -      * w32fns.c (w32_wnd_proc): Likewise.
 -
 -      * w32proc.c (w32_pipe_read_delay): Rename from
 -      Vw32_pipe_read_delay and make it an int.
 -
 -      * w32.c (_sys_read_ahead): Use it.
 -
 -      * lisp.h (egetenv) [USE_CRT_DLL]: Remove condition.
 -
 -      * w32proc.c (create_child) [USE_LSB_TAG]: Don't try to mask pid.
 -
 -      * w32inevt.c (w32_console_mouse_position, do_mouse_event)
 -      (key_event): Don't mix Lisp_Object and int.
 -
 -      * w32heap.c (init_heap) [USE_LSB_TAG]: Don't check heap location.
 -
 -      * keyboard.c (kbd_buffer_get_event): Don't use event->code and
 -      modifiers in language change event.
 -
 -2004-05-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * alloc.c (mark_object): Ignore Lisp_Misc_Free objects.
 -      Such objects may be freed markers which still exist on an undo list.
 -
 -2004-05-16  Juanma Barranquero  <lektu@terra.es>
 -
 -      * data.c (Fset_default): Make argument names match their use in
 -      docstring.
 -
 -2004-05-15  Andreas Schwab  <schwab@suse.de>
 -
 -      * emacs.c (gdb_array_mark_flag): Define.
 -      * .gdbinit: Mask off gdb_array_mark_flag from vector sizes.
 -
 -2004-05-15  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * lisp.h (DECL_ALIGN) [MSDOS]: Don't define DECL_ALIGN to use
 -      __attribute__((__aligned__)), so that USE_LSB_TAG would not become
 -      defined for the MS-DOS build.
 -
 -2004-05-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * w32fns.c (Fw32_define_rgb_color): Avoid XSET.
 -
 -2004-05-14  Kenichi Handa  <handa@m17n.org>
 -
 -      * ccl.c (Fccl_execute_on_string): Fix setting elements of STATUS.
 -
 -2004-05-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * lisp.h (Vx_resource_name, Vx_resource_class): Move from xfns.c
 -      section to frame.c section.
 -      (Fxw_display_color_p, Fx_file_dialog): Declare if
 -      HAVE_WINDOW_SYSTEM defined.
 -
 -      * macfns.c (Fx_create_frame): Fix int/Lisp_Object mixup.
 -
 -      * macmenu.c (set_frame_menubar): Use NILP to test a lisp value.
 -
 -      * macterm.c (mac_get_emulated_btn, mac_event_to_emacs_modifiers)
 -      (mac_get_mouse_btn): Use NILP and EQ to test/compare lisp values.
 -      (XTread_socket): Fix int/Lisp_Object mixup.
 -      (mac_check_for_quit_char): Fix pointer/Lisp_Object mixup.
 -
 -      * macterm.h (struct frame, struct face, struct image)
 -      (display_x_get_resource, Fx_display_color_p)
 -      (Fx_display_grayscale_p, Fx_display_planes, x_free_gcs):
 -      Add prototypes.
 -
 -2004-05-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (wait_reading_process_input): Make reentrant.
 -      Make Available and Connecting non-static.  Save and restore value
 -      of waiting_for_user_input_p.
 -
 -2004-05-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (mark_kboards): Don't mark x and y members
 -      that are overloaded in selection request events.
 -
 -2004-05-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lisp.h (USE_LSB_TAG): Make it the default when it is known to work.
 -
 -2004-05-13  Glenn Morris  <gmorris@ast.cam.ac.uk>
 -
 -      * window.c (Fdisplay_buffer, Fsplit_window)
 -      (split-height-threshold): Doc fix.
 -
 -2004-05-13  Juanma Barranquero  <lektu@terra.es>
 -
 -      * xfaces.c (Ftty_supports_face_attributes_p)
 -      (Finternal_copy_lisp_face): Fix typo in docstring.
 -      (Finternal_get_lisp_face_attribute): Fix docstring.
 -
 -2004-05-12  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (syms_of_xfns): Provide x-toolkit also for GTK.
 -
 -2004-05-11  Steven Tamm  <steventamm@mac.com>
 -
 -      * macfns.c (Fx_create_frame): Default to using tool-bar by
 -      setting tool-bar-lines to 1 in default-frame-alist.
 -
 -2004-05-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * image.c (xpm_scan, xpm_make_color_table_v, xpm_put_color_table_v)
 -      (xpm_get_color_table_v, xpm_make_color_table_h)
 -      (xpm_put_color_table_h, xpm_get_color_table_h)
 -      (xpm_str_to_color_key, xpm_load_image, xpm_load)
 -      (syms_of_image): Support XPM on Carbon Emacs.  Does not
 -      depend on libXpm, but only supports XPM version 3 without extensions.
 -
 -2004-05-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (x_flush, XTframe_up_to_date): Use FRAME_MAC_P
 -      instead of FRAME_X_P
 -
 -2004-05-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (read_process_output): Grow decoding_buf when needed;
 -      this could cause a crash in allocate_string and compact_small_strings.
 -
 -2004-04-29  Jim Blandy  <jimb@redhat.com>
 -
 -      * regex.c (mutually_exclusive_p): In 'case wordbeg', compare op2
 -      against proper opcode.
 -
 -2004-05-10  Juanma Barranquero  <lektu@terra.es>
 -
 -      * process.c (Fstart_process): Fix docstring.
 -
 -      * charset.c (Fget_unused_iso_final_char): Fix typos in docstring.
 -      (Fchar_bytes, Fchar_width, Fstring_width, Fchar_direction)
 -      (Fsplit_char, Fchar_charset): Make argument names match their use
 -      in docstring.
 -
 -2004-05-10  Richard M. Stallman  <rms@gnu.org>
 -
 -      * print.c (print_preprocess): Use being_printed, loop_count and
 -      halftail to detect overdeep nesting and cyclic cdr chains.
 -
 -2004-05-10  Andreas Schwab  <schwab@suse.de>
 -
 -      * lisp.h (Fmake_symbolic_link): Declare.
 -
 -      * fileio.c (Frename_file): Remove extra argument in call to
 -      Fmake_symbolic_link.
 -
 -2004-05-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (calc_line_height_property): Use string position when
 -      object is a string.
 -
 -2004-05-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * print.c (temp_output_buffer_setup): Bind inhibit-read-only and
 -      inhibit-modification-hooks to t temporarily before calling
 -      Ferase_buffer.
 -
 -      * xfns.c (x_create_tip_frame): Bind inhibit-read-only and
 -      inhibit-modification-hooks to t temporarily before calling
 -      Ferase_buffer.
 -
 -      * w32fns.c (x_create_tip_frame): Bind inhibit-read-only and
 -      inhibit-modification-hooks to t temporarily before calling
 -      Ferase_buffer.
 -
 -      * fns.c (count_combining): Delete it.
 -      (concat): Don't check combining bytes.
 -
 -2004-05-09  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Vw32_ansi_code_page): New Lisp variable.
 -      (globals_of_w32fns): Set it.
 -
 -2004-05-09  Piet van Oostrum  <piet@cs.uu.nl>
 -
 -      * data.c (Fquo): Simplify.
 -
 -2004-05-08  Peter Whaite  <emacs@whaite.ca>  (tiny change)
 -
 -      * data.c (Fquo): If any argument is float, do the computation in
 -      floating point.
 -
 -2004-05-08  Juanma Barranquero  <lektu@terra.es>
 -
 -      * process.c (Fwaiting_for_user_input_p, Fmake_network_process)
 -      (Fset_process_query_on_exit_flag, Vprocess_adaptive_read_buffering):
 -      Fix spelling of Emacs on docstring.
 -      (Fset_process_coding_system, Fprocess_coding_system)
 -      (Fset_process_filter_multibyte, Fprocess_filter_multibyte_p):
 -      Make argument names match their use in docstring.
 -      (Fprocess_id, Fprocess_query_on_exit_flag, Finterrupt_process):
 -      Fix docstring.
 -
 -      * editfns.c (Finsert_buffer_substring): Make argument names match their
 -      use in docstring.
 -
 -      * syntax.c (Fmodify_syntax_entry): Fix docstring.
 -
 -2004-05-07  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
 -      around call to ReceiveEvent to avoid certain crashes.
 -
 -2004-05-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (mac_draw_line_to_pixmap, XCreatePixmapFromBitmapData)
 -      (mac_fill_rectangle_to_pixmap, mac_draw_rectangle_to_pixmap)
 -      (mac_copy_area_to_pixmap, mac_copy_area_with_mask_to_pixmap):
 -      Save/restore the current graphics port and device handle when
 -      drawing into an offscreen graphics world.
 -
 -      * image.c [MAC_OS] (XPutPixel, XGetPixel, image_load_qt_1)
 -      (gif_load): Likewise.
 -
 -2004-05-07  Juanma Barranquero  <lektu@terra.es>
 -
 -      * window.c (Fset_window_buffer): Fix docstring.
 -
 -2004-05-06  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * emacs.c (main) [VMS]: Fix var ref.
 -
 -2004-05-06  Romain Francoise  <romain@orebokech.com>
 -
 -      * data.c (Fsetq_default): Fix docstring.
 -
 -2004-05-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * image.c (Display) [HAVE_NTGUI]: Redefine while loading xpm.h
 -      to avoid name clash.
 -
 -2004-05-04  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * fileio.c (barf_or_query_if_file_exists): Use lstat.
 -      (Frename_file): Handle renaming of symlinks across file systems.
 -      (Frename_file): Put symlink handling inside #ifdef S_IFLNK.
 -
 -2004-05-04  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (Qtotal): New var.
 -      (syms_of_xdisp): Intern and staticpro it.
 -      (calc_line_height_property): New arg total.  Set it if
 -      line-spacing property has format (total . VALUE).
 -      (x_produce_glyphs): Ignore line-spacing if line-height is 0.
 -      Handle total line-spacing property.
 -
 -2004-05-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_update_scrollbar_pos): Call XClearWindow to clear
 -      "under" scroll bar when size/position changes.
 -
 -2004-05-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * makefile.nt: Remove.
 -
 -2004-05-02  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * syntax.h (SET_RAW_SYNTAX_ENTRY, SYNTAX_ENTRY_INT):
 -      Avoid compiler warnings.
 -
 -      * Makefile.in (region-cache.o): Depend on config.h.
 -
 -2004-05-02  Romain Francoise  <romain@orebokech.com>
 -
 -      * indent.c (compute_motion): Save vpos in prev_vpos when dealing
 -      with continuation lines, too.
 -
 -2004-05-02  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * syssignal.h (init_signals): Move decl outside `#ifdef POSIX_SIGNALS'.
 -
 -2004-05-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (calc_line_height_property): YAILOM (yet another
 -      int/Lisp_Object mixup).
 -
 -2004-05-01  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c (top-level): Add "#pragma pack(0)" after <dir.h>, to
 -      undo bad effect of pack(4) in some versions of system headers.
 -
 -2004-05-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_draw_hollow_cursor): Sync with xterm.c
 -
 -2004-04-30  Kim F. Storm  <storm@cua.dk>
 -
 -      * buffer.c (syms_of_buffer) <line-spacing>: Allow float value.
 -      (syms_of_buffer) <cursor-type>: Doc fix.
 -
 -      * dispextern.h (struct it): Remove member use_default_face.
 -      Add members override_ascent, override_descent, override_boff.
 -
 -      * xdisp.c (init_iterator): Handle line-spacing float value.
 -      Initialize override_ascent member.
 -      (append_space_for_newline): Reset override_ascent.
 -      Remove use_default_face.
 -      (calc_line_height_property): New function to calculate value of
 -      line-height and line-spacing properties.  Look at overlays, too.
 -      Set override_ascent, override_descent, override_boff members when
 -      using another face than the current face.  Float values are now
 -      relative to the frame default font, by default; accept a cons
 -      of ratio and face name to specify value relative to a specific face.
 -      (x_produce_glyphs): Use calc_line_height_property.
 -      Use override_ascent etc. when set to handle different face heights.
 -      A negative line-spacing property value is interpreted as a total
 -      line height, rather than inter-line spacing.
 -      (note_mouse_highlight): Allocate room for 40 overlays initially.
 -
 -2004-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * data.c (Fsubr_name): New fun.
 -      (syms_of_data): Defsubr it.
 -
 -2004-04-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (null_glyph_slice): New var.
 -      (append_glyph, append_composite_glyph, append_stretch_glyph):
 -      Use it to initialize glyph slice.
 -
 -2004-04-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xdisp.c (x_produce_glyphs): Fix the proverbial int/Lisp_Object mixup.
 -      (on_hot_spot_p): Make sure we always return a value.
 -      (Flookup_image_map): Remove unused var ix and iy.
 -      (note_mode_line_or_margin_highlight): Remove unused var `image'.
 -
 -2004-04-27  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * msdos.c (init_environment): If one of the TMP... environment
 -      variables is set to a drive letter without a trailing slash,
 -      append a slash.
 -
 -2004-04-27  Matthew Mundell  <matt@mundell.ukfsn.org>
 -
 -      * editfns.c (lisp_time_argument): Provide externally.
 -
 -      * fileio.c (Fset_file_times): New function.
 -      (syms_of_fileio): Intern and staticpro it.
 -
 -2004-04-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (x_produce_glyphs): Fix last change; handle newline in
 -      header line strings.
 -
 -      * dispextern.h (struct it): New member use_default_face.
 -
 -      * xdisp.c (Qline_height): New variable.
 -      (syms_of_xdisp): Intern and staticpro it.
 -      (append_space_for_newline): Partially undo 2004-04-25 change;
 -      add default_face_p arg, and restore callers.
 -      Clear it->use_default_face after use.
 -      (x_produce_glyphs): Set default font for ascii char if
 -      it->use_default_font is set.  Change line-spacing property to set
 -      just extra line spacing.  Handle new line-height property.
 -
 -2004-04-26  Andreas Schwab  <schwab@suse.de>
 -
 -      * print.c (print_object): Print non-ascii characters in bool
 -      vector representation as octal escapes.
 -
 -      * lisp.h (BOOL_VECTOR_BITS_PER_CHAR): Define.
 -      * print.c (print_object): Use it instead of BITS_PER_CHAR for
 -      bool vectors.
 -      * lread.c (read1): Likewise.
 -      * alloc.c (Fmake_bool_vector): Likewise.
 -      * data.c (Faref, Faset): Likewise.
 -      * fns.c (Fcopy_sequence, concat, internal_equal, Ffillarray)
 -      (mapcar1): Likewise.
 -
 -2004-04-26  Steven Tamm  <tamm@Steven-Tamms-Computer.local>
 -
 -      * lread.c (init_lread): Fix typo in HAVE_CARBON test logic.
 -
 -2004-04-26  Miles Bader  <miles@gnu.org>
 -
 -      * lisp.h (CYCLE_CHECK): Macro moved from xfaces.c.
 -
 -2004-04-26  Juanma Barranquero  <lektu@terra.es>
 -
 -      * buffer.c (Fpop_to_buffer): Fix docstring.
 -
 -2004-04-26  Steven Tamm  <steventamm@mac.com>
 -
 -      * lread.c (init_lread): Don't display missing lisp directory
 -      warnings with Carbon Emacs because self-contained bundled Emacs
 -      may be built without correct installation path.
 -
 -2004-04-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * macterm.c (x_draw_hollow_cursor): Fix height of box for narrow lines.
 -
 -      * xterm.c (x_draw_hollow_cursor): Fix height of box for narrow lines.
 -
 -      * xdisp.c (append_space_for_newline): Rename from append_space.
 -      Remove DEFAULT_FACE_P arg; always use current face.  Callers changed.
 -      (x_produce_glyphs): Handle line-spacing property on newline char.
 -      If value is t, adjust ascent and descent to fit current row height.
 -      If value is an integer or float, set extra_line_spacing to integer
 -      value, or to float value x current line height.
 -
 -2004-04-23  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Finternal_char_font): If POSITION is nil, return
 -      font for displaying CH with the default face.
 -
 -2004-04-23  Juanma Barranquero  <lektu@terra.es>
 -
 -      * makefile.w32-in: Add "-*- makefile -*-" mode tag.
 -
 -2004-04-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lisp.h (XINT) [EXPLICIT_SIGN_EXTEND && !NO_UNION_TYPE]:
 -      Don't make assumptions about the relative place of i and val.
 -      (EQ) [!NO_UNION_TYPE]: Don't forget to check the type match as well.
 -
 -2004-04-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (struct glyph_slice): New struct.
 -      (struct glyph): New member slice.
 -      (GLYPH_SLICE_EQUAL_P): New macro.
 -      (GLYPH_EQUAL_P): Use it.
 -      (struct glyph_string): New member slice.
 -      (struct it_slice): New struct.
 -      (struct it): New member slice, add member to stack too.
 -      New member constrain_row_ascent_descent_p.
 -      (image_ascent): Add prototype.
 -
 -      * dispnew.c (buffer_posn_from_coords): Return full image width
 -      and height even for image slices (posn is relative to full image).
 -      (marginal_area_string): Adjust x0,y0 for image slice.
 -
 -      * image.c (image_ascent): Add slice arg; calculate ascent for
 -      image slice (or full image).
 -
 -      * keyboard.c (Fposn_at_x_y, Fposn_at_point): New defuns.
 -      (syms_of_keyboard): Defsubr them.
 -
 -      * lisp.h (pos_visible_p): Fix prototype.
 -
 -      * macterm.c (x_draw_relief_rect): Add top_p and bot_p args.
 -      (x_draw_glyph_string_box): Fix call to x_draw_relief_rect.
 -      (x_draw_image_foreground, x_draw_image_relief)
 -      (x_draw_image_foreground_1, x_draw_image_glyph_string):
 -      Draw sliced images.
 -
 -      * w32term.c (w32_draw_relief_rect): Add top_p and bot_p args.
 -      (x_draw_glyph_string_box): Fix call to x_draw_relief_rect.
 -      (x_draw_image_foreground, x_draw_image_relief)
 -      (w32_draw_image_foreground_1, x_draw_image_glyph_string):
 -      Draw sliced images.
 -
 -      * w32term.h (image_ascent): Remove prototype.
 -
 -      * window.c (Fpos_visible_in_window_p): Return pixel position if
 -      PARTIALLY arg is non-nil.  Simplify.  Doc fix.
 -      (Fwindow_vscroll, Fset_window_vscroll): Add optional PIXEL_P arg
 -      to return/set vscroll in pixels.
 -
 -      * window.h (Fwindow_vscroll, Fset_window_vscroll): Fix EXFUN.
 -
 -      * xdisp.c (Qslice): New variable.
 -      (syms_of_xdisp): Intern and staticpro it.
 -      (pos_visible_p): Return pixel position in new x and y args.
 -      (init_iterator): Reset it->slice info.
 -      (handle_display_prop): Parse (slice ...) property.
 -      (push_it, pop_it): Save/restore slice info.
 -      (make_cursor_line_fully_visible): Fix 2004-04-14 change.  Do not
 -      force repositioning of tall row if window is vscrolled, as that
 -      would reset vscroll.
 -      (append_space): Set it->constrain_row_ascent_descent_p to avoid
 -      increasing row height if row is non-empty.
 -      (fill_image_glyph_string): Copy slice info.
 -      (take_vertical_position_into_account): Simplify.
 -      (produce_image_glyph): Handle iterator slice info, setup glyph
 -      slice info.  Do not force minimum line height.
 -      (x_produce_glyphs): If it->constrain_row_ascent_descent_p is set,
 -      do not increase height (ascent/descent) of non-empty row when
 -      adding normal character glyph; instead reduce glyph ascent/descent
 -      appropriately; if row is higher than current glyph, adjust glyph
 -      descent/ascent to reposition glyph within the existing row.
 -      Likewise, when char is newline, only set ascent/descent if row is
 -      currently empty.
 -      (note_mouse_highlight): Handle hotspots with sliced image.
 -
 -      * xterm.c (x_draw_relief_rect): Add top_p and bot_p args.
 -      (x_draw_glyph_string_box): Fix call to x_draw_relief_rect.
 -      (x_draw_image_foreground, x_draw_image_relief)
 -      (x_draw_image_foreground_1, x_draw_image_glyph_string):
 -      Draw sliced images.
 -
 -      * xterm.h (image_ascent): Remove prototype.
 -
 -2004-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (Fkey_description): Fix the usual int/Lisp_Object mixup.
 -
 -2004-04-20  John Paul Wallington  <jpw@gnu.org>
 -
 -      * fns.c (Fassoc, Feql): Fix indentation.
 -
 -      * fontset.c (regularize_fontname): Rename from regulalize_fontname.
 -
 -2004-04-19  John Paul Wallington  <jpw@gnu.org>
 -
 -      * fns.c (Feql): New function.
 -      (syms_of_fns): Defsubr it.
 -
 -2004-04-18  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32select.c (Fw32_set_clipboard_data): Get sequence number
 -      after closing the clipboard.
 -
 -2004-04-16  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * buffer.c (Fbuffer_base_buffer): Doc fix.
 -
 -2004-04-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * keymap.c (Fkey_description): Add optional PREFIX arg.
 -      Combine prefix with KEYS to make up the full key sequence to describe.
 -      Correlate meta_prefix_char and following (simple) key to describe
 -      as meta modifier.  All callers changed.
 -      (describe_map): Rename arg `keys' to `prefix'.  Remove local
 -      `elt_prefix' var.  Use Fkey_description with prefix instead of
 -      elt_prefix combined with Fsingle_key_description.
 -      (describe_vector): Declare static.  Replace arg `elt_prefix' with
 -      `prefix'.  Add KEYMAP_P arg.  Add local var `elt_prefix'; use it
 -      if !KEYMAP_P.  Use Fkey_description with prefix instead of
 -      Fsingle_key_description.
 -
 -      * keymap.h (Fkey_description): Fix prototype.
 -      (describe_vector): Remove prototype.
 -
 -      * xdisp.c (update_overlay_arrows): Fix handling of up_to_date < 0.
 -
 -      * image.c (PNG_BG_COLOR_SHIFT): Remove.
 -      (png_load): Fix calculation of transparent background color on X
 -      and W32 platforms.
 -
 -2004-04-16  Juanma Barranquero  <lektu@terra.es>
 -
 -      * xdisp.c (try_scrolling): Make sure `scroll-conservatively' is
 -      not too large before computing how much to scroll.
 -
 -2004-04-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * dired.c (Ffile_attributes): Don't pass extra nil arg to file-handler.
 -
 -2004-04-14  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fileio.c (Fverify_visited_file_modtime, Fvisited_file_modtime):
 -      Add hyperlink to Elisp manual to the docstring.
 -
 -2004-04-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * callint.c (fix_command): Use XDCR.
 -
 -2004-04-14  Nick Roberts  <nick@nick.uklinux.net>
 -
 -      * window.c (Fget_lru_window): Doc fix.
 -
 -2004-04-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * editfns.c (Fformat): Fix allocation size of precision array.
 -
 -      * dispnew.c (update_window): Only set changed_p if
 -      scrolling_window actually did scroll.
 -      (scrolling_window): Only return 1 if we actually did scroll.
 -
 -      * xdisp.c (get_glyph_string_clip_rect): Fix reduction of cursor
 -      height to glyph height when cursor row is not fully visible.
 -      (make_cursor_line_fully_visible): Add FORCE_P arg to return
 -      failure in case row is higher than window.  Callers changed.
 -      (try_scrolling): Fix loop in scrolling if last_line_misfit (from Gerd).
 -      Try to scroll partially visible, higher-than-window cursor row.
 -      (redisplay_window): Always try to scroll partially visible,
 -      higher-than-window cursor row - both initially and again with
 -      centering_position = 0.
 -      Clear desired matrix before retrying with centering_position = 0.
 -
 -2004-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * syntax.c (scan_lists): Simplify backward string scan.
 -      Fix off-by-one boundary check for string and comment fences.
 -
 -2004-04-13  Joe Buehler  <jbuehler@hekimian.com>
 -
 -      * sheap.c, unexcw.c: New files.
 -
 -2004-04-12  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * buffer.c (Fmake_indirect_buffer): Throw an error if the intended
 -      base buffer has been killed.  Correct the error message if the
 -      base buffer does not exist.
 -
 -2004-04-12  Joe Buehler  <jbuehler@hekimian.com>
 -
 -      * s/cygwin.h: Changes for Cygwin unexec() support, changes in
 -      Cygwin itself.  Add support for Xaw3d scrollbars.
 -
 -      * puresize.h: Set up PURE_P() for Cygwin unexec() support.
 -
 -      * lastfile.c: Define my_endbss[] for Cygwin unexec() support.
 -
 -      * gmalloc.c (__default_morecore): Use bss_sbrk(), not __sbrk(),
 -      before Cygwin unexec.
 -
 -      * Makefile.in: Link changes for Cygwin unexec() support.
 -
 -2004-04-12  Andreas Schwab  <schwab@suse.de>
 -
 -      * buffer.c (Fmake_indirect_buffer): Check that NAME is a string.
 -
 -2004-04-11  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * buffer.c (Fgenerate_new_buffer_name): Return NAME argument if
 -      IGNORE argument equals NAME.  Doc fix.
 -
 -2004-04-11  Masatake YAMATO  <jet@gyve.org>
 -
 -      * buffer.c (fix_start_end_in_overlays): Make overlays
 -      empty if they are backwards.
 -
 -2004-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * xfaces.c (face_color_supported_p): Fix compilation without X11.
 -
 -2004-04-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * doc.c (Fsnarf_documentation): Ignore new file name entries.
 -
 -2004-04-06  Kim F. Storm  <storm@cua.dk>
 -
 -      * msdos.c (clear_mouse_face): Only clear mouse highlight if not hidden.
 -      (dos_rawgetc): Set mouse_face_hidden after clearing highlight.
 -
 -      * w32term.c (w32_read_socket): Set mouse_face_hidden after
 -      clearing highlight.
 -
 -      * xdisp.c (clear_mouse_face): Only clear mouse highlight if not hidden.
 -
 -      * xterm.c (handle_one_xevent): Set mouse_face_hidden after
 -      clearing highlight.
 -
 -      * indent.c (vmotion): Do not reserve one column for continuation
 -      marks on window frames.
 -
 -2004-04-04  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * charset.h (SINGLE_BYTE_CHAR_P): Fix macro to avoid warnings
 -      from GCC.
 -
 -2004-04-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * .gdbinit-union: Remove.
 -
 -      * .gdbinit: Make it work for USE_LSB_TAG and !NO_LISP_UNION.
 -      (xgetptr, xgetint, xgettype): New funs.  Use them everywhere.
 -      ($nonvalbits): Remove.
 -      ($valmask): Set it by calling xreload to avoid redundancy.
 -
 -      * emacs.c (gdb_use_union, gdb_use_lsb): New vars.
 -      (gdb_emacs_intbits): Remove.
 -
 -2004-03-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * data.c (Fbyteorder): Make test work even if unsigned is not 4 bytes.
 -
 -2004-03-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * editfns.c (Fformat): Fix initialization of the array info.
 -
 -2004-03-30  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (x_mouse_click_focus_ignore_position): New var.
 -      (syms_of_xterm): DEFVAR_BOOL it.
 -      (ignore_next_mouse_click_timeout): New var.
 -      (handle_one_xevent): Clear it on KeyPress, set it on EnterNotify.
 -      Use it to filter mouse clicks following focus event.
 -
 -2004-03-29  David Ponce  <david@dponce.com>
 -
 -      * callint.c (Fcall_interactively): Fix last change.
 -
 -2004-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * eval.c (Fcommandp): Simplify.
 -
 -      * data.c (Finteractive_form): Rename from Fsubr_interactive_form.
 -      Extend to handle all kinds of functions.
 -
 -      * lisp.h (Finteractive_form): Declare.
 -
 -      * callint.c (Fcall_interactively): Use it.
 -
 -2004-03-26  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (syms_of_xdisp): Include `void-variable' in list_of_error
 -      to catch errors in calc_pixel_width_or_height during redisplay.
 -
 -2004-03-26  Masatake YAMATO  <jet@gyve.org>
 -
 -      * buffer.c (fix_start_end_in_overlays): Rename fix_overlays_in_range.
 -
 -      * lisp.h (fix_start_end_in_overlays): Likewise.
 -
 -      * insdel.c (adjust_markers_for_insert): Call fix_start_end_in_overlays.
 -
 -      * editfns.c (Ftranspose_regions): Likewise.
 -
 -2004-03-20  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): Do not pass key press events to GTK.
 -
 -2004-03-19  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/sol2-6.h: Delete previous change.
 -
 -2004-03-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (move_it_in_display_line_to): Fix MOVE_TO_POS case when
 -      to_charpos corresponds to newline in right fringe.  Use local
 -      BUFFER_POS_REACHED_P macro.
 -
 -2004-03-19  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xdisp.c (calc_pixel_width_or_height): Add ifdef HAVE_WINDOW_SYSTEM
 -      to compile on non-window system.
 -
 -2004-03-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (calc_pixel_width_or_height): Add prototype.
 -
 -      * image.c (Qcenter): Move to xdisp.c.
 -
 -      * xdisp.c (Qcenter): Declare here.
 -      (syms_of_xdisp): Intern and staticpro it.
 -      (handle_single_display_prop): Allow space display property on all
 -      platforms.
 -      (display_mode_line): Set mode_line_p before displaying line.
 -      (calc_pixel_width_or_height): Declare extern.  Add separate :align-to
 -      handling.  Remove complex cases for fringes and scroll-bars.
 -      Add left, right, and center alignment positions.  Add text (area)
 -      width/height.  Return width or height for image specs.
 -      (produce_stretch_glyph): Improve handling of :align-to.  Is now
 -      relative to left of text area by default, but other base offsets
 -      can be specified -- also for text lines.
 -
 -      * term.c (produce_glyphs): Handle IT_STRETCH.
 -      (produce_stretch_glyph): New function to handle space width and
 -      align-to display properties on non-window systems.
 -
 -2004-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * fileio.c (Fread_file_name): Set completion-ignore-case for
 -      case-insensitive systems.
 -
 -2004-03-14  Masatake YAMATO  <jet@gyve.org>
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight): Accept HEADER_LINE
 -      when keymap and cursor are setup.
 -
 -2004-03-14  Steven Tamm  <steventamm@mac.com>
 -
 -      * Makefile.in (XMENU_OBJ) [HAVE_CARBON]: Do not include xmenu.o.
 -
 -2004-03-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (x_find_image_file): Add prototype.
 -
 -      * image.c (x_find_image_file): Make extern.
 -
 -      * xfns.c (x_find_image_file): Remove prototype.
 -
 -2004-03-13  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * Makefile.in (XMENU_OBJ): Include xmenu.o if HAVE_MENUS is defined.
 -
 -      * emacs.c (main): Call syms_of_xmenu only if HAVE_MENUS is defined.
 -
 -2004-03-12  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fns.c (internal_equal): New arg PROPS controls comparing
 -      text properties.  All callers changed.
 -      (Fequal_including_properties): New function.
 -      (syms_of_fns): defsubr it.
 -
 -2004-03-12  Kim F. Storm  <storm@cua.dk>
 -
 -      Fix image support on MAC.  From YAMAMOTO Mitsuharu.
 -
 -      * dispextern.h (XImagePtr, XImagePtr_or_DC): Add typedefs.
 -      (image_background, image_background_transparent): Fix prototypes.
 -
 -      * image.c (XImagePtr, XImagePtr_or_DC): Move typedefs to dispextern.h.
 -
 -      * macfns.c (x_list_fonts, x_get_font_info, x_load_font)
 -      (x_query_font, x_find_ccl_program, x_set_window_size)
 -      (x_make_frame_visible, mac_initialize, XCreatePixmap)
 -      (XCreatePixmapFromBitmapData, XFreePixmap, XSetForeground)
 -      (mac_draw_line_to_pixmap): Move prototypes to macterm.h.
 -
 -      * macterm.h (x_list_fonts, x_get_font_info, x_load_font)
 -      (x_query_font, x_find_ccl_program, x_set_window_size)
 -      (x_make_frame_visible, mac_initialize, XCreatePixmap)
 -      (XCreatePixmapFromBitmapData, XFreePixmap, XSetForeground)
 -      (mac_draw_line_to_pixmap): Add prototypes.
 -
 -2004-03-12  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * macterm.c (XTread_socket): Fix mouse click on tool bar.
 -
 -2004-03-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h: Move image related prototypes from xfns.c section
 -      to image.c.  Condition them by HAVE_WINDOW_SYSTEM rather than
 -      HAVE_X_WINDOWS.
 -
 -      * Makefile.in (XOBJ): Consolidate into one list.  Add image.o.
 -      Move gtkutil.o to new GTK_OBJ list.
 -      (XMENU_OBJ) [HAVE_MENUS]: Move declaration to proper place.
 -      (GTK_OBJ) [USE_GTK]: New declaration.
 -      (obj): Add $(GTK_OBJ) to list.
 -
 -2004-03-11  Steven Tamm  <steventamm@mac.com>
 -
 -      * image.c [MAC_OSX]: Include sys/stat.h.
 -
 -      * macfns.c (syms_of_macfns): Remove definitions of things now
 -      defined in image.c.
 -
 -2004-03-11  Kim F. Storm  <storm@cua.dk>
 -
 -      The following changes consolidates the identical/similar image
 -      support code previously found in xfns.c, w32fns.c, and macfns.c
 -      into a new file image.c.
 -
 -      * makefile.w32-in (OBJ1): Add image.o.
 -      ($(BLD)/image.$(O)): Add dependencies.
 -
 -      * Makefile.in (XOBJ, MAC_OBJ): Add image.o.
 -      (image.o): Add dependencies.
 -
 -      * image.c: New file with consolidated image support code.
 -      (COLOR_TABLE_SUPPORT): New define to control whether
 -      color table support is available (X only).
 -      (Bitmap_Record): Common name for x_bitmap_record,
 -      w32_bitmap_record, and mac_bitmap_record.
 -      (XImagePtr): Common name for pointer to XImage or equivalent.
 -      (XImagePtr_or_DC): New type to simplify code sharing; equivalent
 -      to XImagePtr on X+MAC, and to HDC on W32.
 -      (GET_PIXEL): Wrapper for XGetPixel or equivalent.
 -      (NO_PIXMAP): Common name for "None" or equivalent.
 -      (PNG_BG_COLOR_SHIFT): Bits to shift PNG background colors.
 -      (RGB_PIXEL_COLOR): Common type for an integer "pixel color" value.
 -      (PIX_MASK_RETAIN, PIX_MASK_DRAW): Portability macros (from macfns.c).
 -      (FRAME_X_VISUAL, x_defined_color, DefaultDepthOfScreen):
 -      Define with suitable equivalents on W32 and MAC for code sharing.
 -      (XDrawLine): Define on MAC for code sharing.
 -      (Destroy_Image, Free_Pixmap): Wrappers for code sharing.
 -      (IF_LIB_AVAILABLE): Macro to simplify code sharing.
 -      (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
 -      (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
 -      (x_reference_bitmap, x_create_bitmap_from_data)
 -      (x_create_bitmap_from_file, x_destroy_bitmap)
 -      (x_destroy_all_bitmaps, x_create_bitmap_mask)
 -      (XGetImage, XPutPixel, XGetPixel, XDestroyImage)
 -      (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
 -      (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
 -      (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
 -      (define_image_type, lookup_image_type, valid_image_p)
 -      (image_error, enum image_value_type, struct image_keyword)
 -      (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
 -      (make_image, free_image, prepare_image_for_display, image_ascent)
 -      (four_corners_best, image_background, image_background_transparent)
 -      (x_clear_image_1, x_clear_image, x_alloc_image_color)
 -      (make_image_cache, free_image_cache, clear_image_cache)
 -      (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
 -      (forall_images_in_image_cache, x_create_x_image_and_pixmap)
 -      (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
 -      (find_image_fsspec, image_load_qt_1, image_load_quicktime)
 -      (init_image_func_pointer, image_load_quartz2d)
 -      (struct ct_color, init_color_table, free_color_table)
 -      (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
 -      (cross_disabled_images, x_to_xcolors, x_from_xcolors)
 -      (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
 -      (x_disable_image, x_build_heuristic_mask)
 -      (XBM support, XPM support, PBM support, PNG support, JPEG support)
 -      (TIFF support, GIF support, Ghostscript support): Consolidate image
 -      code from xfns.c, w32fns.c, and macfns.c.
 -      (syms_of_image): Consolidate image related symbol setup here.
 -      (init_image): Consolidate image related initializations here.
 -
 -      * emacs.c (main) [HAVE_WINDOW_SYSTEM]: Add calls to syms_of_image
 -      and init_image.  Remove call to init_xfns.
 -
 -      * macterm.h (struct mac_bitmap_record): Add file member.
 -      Not currently used, but simplifies code sharing.
 -
 -      * macfns.c (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
 -      (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
 -      (x_reference_bitmap, x_create_bitmap_from_data)
 -      (x_create_bitmap_from_file, x_destroy_bitmap)
 -      (x_destroy_all_bitmaps, x_create_bitmap_mask)
 -      (XGetImage, XPutPixel, XGetPixel, XDestroyImage)
 -      (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
 -      (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
 -      (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
 -      (define_image_type, lookup_image_type, valid_image_p)
 -      (image_error, enum image_value_type, struct image_keyword)
 -      (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
 -      (make_image, free_image, prepare_image_for_display, image_ascent)
 -      (four_corners_best, image_background, image_background_transparent)
 -      (x_clear_image_1, x_clear_image, x_alloc_image_color)
 -      (make_image_cache, free_image_cache, clear_image_cache)
 -      (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
 -      (forall_images_in_image_cache, x_create_x_image_and_pixmap)
 -      (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
 -      (find_image_fsspec, image_load_qt_1, image_load_quicktime)
 -      (init_image_func_pointer, image_load_quartz2d)
 -      (struct ct_color, init_color_table, free_color_table)
 -      (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
 -      (cross_disabled_images, x_to_xcolors, x_from_xcolors)
 -      (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
 -      (x_disable_image, x_build_heuristic_mask)
 -      (XBM support, XPM support, PBM support, PNG support, JPEG support)
 -      (TIFF support, GIF support, Ghostscript support): Merge with image
 -      code from xfns.c and macfns.c into image.c.
 -      (syms_of_xfns): Move image related symbols to image.c.
 -      (init_external_image_libraries, init_xfns): Remove; initialization
 -      moved to init_image in image.c.
 -
 -      * w32fns.c (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
 -      (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
 -      (x_reference_bitmap, x_create_bitmap_from_data)
 -      (x_create_bitmap_from_file, x_destroy_bitmap)
 -      (x_destroy_all_bitmaps, x_create_bitmap_mask)
 -      (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
 -      (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
 -      (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
 -      (define_image_type, lookup_image_type, valid_image_p)
 -      (image_error, enum image_value_type, struct image_keyword)
 -      (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
 -      (make_image, free_image, prepare_image_for_display, image_ascent)
 -      (four_corners_best, image_background, image_background_transparent)
 -      (x_clear_image_1, x_clear_image, x_alloc_image_color)
 -      (make_image_cache, free_image_cache, clear_image_cache)
 -      (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
 -      (forall_images_in_image_cache, x_create_x_image_and_pixmap)
 -      (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
 -      (struct ct_color, init_color_table, free_color_table)
 -      (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
 -      (cross_disabled_images, x_to_xcolors, x_from_xcolors)
 -      (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
 -      (x_disable_image, x_build_heuristic_mask)
 -      (XBM support, XPM support, PBM support, PNG support, JPEG support)
 -      (TIFF support, GIF support, Ghostscript support): Merge with image
 -      code from xfns.c and macfns.c into image.c.
 -      (syms_of_xfns): Move image related symbols to image.c.
 -      (init_external_image_libraries, init_xfns): Remove; initialization
 -      moved to init_image in image.c.
 -
 -      * xfns.c (Vx_bitmap_file_path, Vimage_cache_eviction_delay)
 -      (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
 -      (x_reference_bitmap, x_create_bitmap_from_data)
 -      (x_create_bitmap_from_file, x_destroy_bitmap)
 -      (x_destroy_all_bitmaps, x_create_bitmap_mask)
 -      (QCascent, QCmargin, QCrelief, QCconversion, QCcolor_symbols)
 -      (QCheuristic_mask, QCindex, QCmatrix, QCcolor_adjustment, QCmask)
 -      (Qlaplace, Qemboss, Qedge_detection, Qheuristic, Qcenter)
 -      (define_image_type, lookup_image_type, valid_image_p)
 -      (image_error, enum image_value_type, struct image_keyword)
 -      (parse_image_spec, image_spec_value, Fimage_size, Fimage_mask_p)
 -      (make_image, free_image, prepare_image_for_display, image_ascent)
 -      (four_corners_best, image_background, image_background_transparent)
 -      (x_clear_image_1, x_clear_image, x_alloc_image_color)
 -      (make_image_cache, free_image_cache, clear_image_cache)
 -      (Fclear_image_cache, postprocess_image, lookup_image, cache_image)
 -      (forall_images_in_image_cache, x_create_x_image_and_pixmap)
 -      (x_destroy_x_image, x_put_x_image, x_find_image_file, slurp_file)
 -      (struct ct_color, init_color_table, free_color_table)
 -      (lookup_rgb_color, lookup_pixel_color, colors_in_color_table)
 -      (cross_disabled_images, x_to_xcolors, x_from_xcolors)
 -      (x_detect_edges, x_emboss, x_laplace, x_edge_detection)
 -      (x_disable_image, x_build_heuristic_mask)
 -      (XBM support, XPM support, PBM support, PNG support, JPEG support)
 -      (TIFF support, GIF support, Ghostscript support): Merge with
 -      w32fns.c and macfns.c image code into image.c.
 -      (syms_of_xfns): Move image related symbols to image.c.
 -      (init_xfns): Remove; initialization moved to init_image in image.c.
 -
 -      * lisp.h (syms_of_image, init_image): Add protoypes.
 -      (init_xfns): Remove prototype.
 -
 -      * dispextern.h (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
 -      (x_reference_bitmap, x_create_bitmap_from_data)
 -      (x_create_bitmap_from_file, x_destroy_bitmap)
 -      (x_create_bitmap_mask): Move prototypes from dispextern.h.
 -      (gamma_correct) [MAC_OS]: Add prototype.
 -
 -      * xterm.h (x_bitmap_height, x_bitmap_width, x_bitmap_pixmap)
 -      (x_reference_bitmap, x_create_bitmap_from_data)
 -      (x_create_bitmap_from_file, x_destroy_bitmap)
 -      (x_create_bitmap_mask): Move prototypes to dispextern.h.
 -
 -2004-03-09  Kenichi Handa  <handa@etlken2>
 -
 -      * coding.c (decode_coding_emacs_mule): Handle insufficent source
 -      correctly.
 -
 -2004-03-04  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/sol2-6.h (LD_SWITCH_SYSTEM_TEMACS): New definition.
 -
 -      * window.c (Fdisplay_buffer): Doc fix.
 -
 -      * buffer.c (Fpop_to_buffer): Doc fix.
 -
 -2004-03-03  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (display_line): Fix call to get_overlay_arrow_glyph_row.
 -
 -2004-03-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * editfns.c (Ftranslate_region): Lisp_Object/int mixup.
 -
 -2004-03-02  Richard M. Stallman  <rms@gnu.org>
 -
 -      * indent.c (compute_motion): Save vpos in prev_vpos, like hpos etc.
 -
 -2004-03-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * doc.c (Fsubstitute_command_keys): Fix counding bytes.
 -
 -2004-03-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.h (struct window): New member overlay_arrow_bitmap.
 -
 -      * window.c (make_window): Initialize overlay_arrow_bitmap.
 -
 -      * xdisp.c (Voverlay_arrow_variable_list): New variable to properly
 -      implement and integrate multiple overlay arrows with redisplay.
 -      (syms_of_xdisp): DEFVAR_LISP and initialize it.
 -      (last_arrow_position, last_arrow_string): Replace by properties.
 -      (Qlast_arrow_position, Qlast_arrow_string)
 -      (Qoverlay_arrow_string, Qoverlay_arrow_bitmap): New variables.
 -      (syms_of_xdisp): Intern and staticpro them.
 -      (overlay_arrow_string_or_property, update_overlay_arrows)
 -      (overlay_arrow_in_current_buffer_p, overlay_arrows_changed_p)
 -      (overlay_arrow_at_row): New functions for multiple overlay arrows.
 -      (redisplay_internal): Use them instead of directly accessing
 -      Voverlay_arrow_position etc. for multiple overlay arrows.
 -      (mark_window_display_accurate): Use update_overlay_arrows.
 -      (try_cursor_movement): Use overlay_arrow_in_current_buffer_p.
 -      (try_window_id): Use overlay_arrows_changed_p.
 -      (get_overlay_arrow_glyph_row): Add overlay_arrow_string arg.
 -      (display_line): Use overlay_arrow_at_row to check multiple
 -      overlay arrows, and get relevant overlay-arrow-string and
 -      overlay-arrow-bitmap.  Set w->overlay_arrow_bitmap accordingly.
 -      (produce_image_glyph): Set pixel_width = 0 for fringe bitmap.
 -      (syms_of_xdisp): Remove last_arrow_position and last_arrow_string.
 -
 -      * fringe.c (draw_fringe_bitmap): Use w->overlay_arrow_bitmap if set.
 -      (update_window_fringes): Remove unused code.
 -
 -2004-03-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_read_socket): Fix last change to ButtonPress handling.
 -
 -2004-03-01  Juanma Barranquero  <lektu@terra.es>
 -
 -      * fringe.c (Fdefine_fringe_bitmap): Fix typo in docstring.
 -
 -      * makefile.w32-in ($(BLD)/fringe.$(O)): Add dependencies.
 -
 -2004-03-01  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_display_color_cells): Use number of planes to calculate
 -      how many colors can be displayed.
 -
 -2004-03-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * editfns.c (Ftranslate_region): Handle multibyte chars in TABLE
 -      correctly.
 -
 -2004-02-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (update_window): Update header line also if there are
 -      no other changes in window (move code after set_cursor label).
 -
 -      * lisp.h (mark_window_display_accurate): Remove prototype.
 -
 -      * window.c (window_loop, Fforce_window_update): Force mode line
 -      updates by setting prevent_redisplay_optimizations_p and
 -      update_mode_lines.
 -
 -2004-02-28  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (x_window): Fix indentation.
 -
 -      * xterm.c (x_calc_absolute_position): Call x_real_positions
 -      to get WM window sizes and use those to calculate position.
 -      (x_set_offset): Remove code commented out.
 -
 -2004-02-28  Miles Bader  <miles@gnu.org>
 -
 -      * keyboard.c (adjust_point_for_property): #ifdef-out dodgy xassert.
 -
 -2004-02-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (kbd_buffer_store_event_hold): New function to store
 -      an event into kbd fifo, but with special handling of quit event;
 -      a quit event is saved for later, and further events are discarded
 -      until the saved quit event has been processed.
 -      (kbd_buffer_store_event): Use kbd_buffer_store_event_hold.
 -      (gen_help_event): Store help event in kbd fifo.
 -      (NREAD_INPUT_EVENTS): Remove.
 -      (read_avail_input): Adapt to new read_socket_hook interface.
 -      Remove allocation and initialization of local input_event buffer,
 -      as read_socket_hook stores events directly in fifo.  Allocate and
 -      initialize local hold_quit event to handle postponed quit event
 -      (and store it if set by kbd_buffer_store_event_hold).
 -
 -      * keyboard.h (kbd_buffer_store_event_hold): Add prototype.
 -      (gen_help_event): Fix prototype.
 -
 -      * macterm.c (XTread_socket): Remove bufp_r and
 -      numcharsp args.  Add hold_quit arg.
 -      Rework to use just one, local, inev input_event.  Store inev
 -      directly in fifo using kbd_buffer_store_event_hold.
 -
 -      * sysdep.c (BUFFER_SIZE_FACTOR): Remove.
 -      (read_input_waiting): Adapt to new read_socket_hook interface.
 -      Remove allocation and initialization of local input_event buffer,
 -      as read_socket_hook stores events directly in fifo.  Allocate and
 -      initialize local hold_quit event to handle postponed quit event
 -      (and store it if set by kbd_buffer_store_event_hold).
 -
 -      * term.c (read_socket_hook): Fix arg list.
 -
 -      * termhooks.h (read_socket_hook): Fix prototype.
 -
 -      * w32inevt.c (w32_console_read_socket): Remove bufp_r and
 -      numcharsp args.  Add hold_quit arg.
 -      Rework to use just one, local, inev input_event.  Store inev
 -      directly in fifo using kbd_buffer_store_event_hold.
 -
 -      * w32inevt.h (w32_console_mouse_position): Fix prototype.
 -
 -      * w32term.c (w32_read_socket): Remove bufp_r and numcharsp args.
 -      Add hold_quit arg.  Rework to use just one, local, inev
 -      input_event.  Store inev directly in fifo using
 -      kbd_buffer_store_event_hold.  Update count in one place.
 -      Postpone call to gen_help_event until inev is stored; use new
 -      local do_help for this.
 -      Remove local emacs_event in handing of ButtonPress event; just use
 -      inev instead (so no reason to copy it later).
 -
 -      * xsmfns.c (x_session_check_input): Remove numchars arg.
 -
 -      * xterm.c (x_focus_changed, x_detect_focus_change):
 -      Remove numchars arg.  Always store event into bufp arg.
 -      Return nothing.  Callers changed accordingly.
 -      (glyph_rect): Simplify.
 -      (STORE_KEYSYM_FOR_DEBUG): New macro.
 -      (SET_SAVED_MENU_EVENT): Use inev instead of bufp, etc.
 -      (current_bufp, current_numcharsp) [USE_GTK]: Remove.
 -      (current_hold_quit) [USE_GTK]: Add.
 -      (event_handler_gdk): Adapt to new handle_one_xevent.
 -      (handle_one_xevent): Remove bufp_r and numcharsp args.
 -      Add hold_quit arg.  Rework to use just one, local, inev
 -      input_event.  Store inev directly in fifo using
 -      kbd_buffer_store_event_hold.  Update count in one place.
 -      Postpone call to gen_help_event until inev is stored; use new
 -      local do_help for this.
 -      Simplify handling of keysyms (consolidate common code).  Fix bug
 -      where count was updated with nchars instead of nbytes.
 -      Remove local emacs_event in handing of ButtonPress event; just use
 -      inev instead (so no reason to copy it later).
 -      Remove `out' label.  Rename label `ret' to `done'; add various
 -      `goto done' to clarify code flow in deeply nested blocks.
 -      (x_dispatch_event): Simplify as handle_one_xevent now calls
 -      kbd_buffer_store_event itself.
 -      (XTread_socket): Remove bufp_r and numcharsp args.  Add hold_quit
 -      arg.  Call handle_one_xevent with new arglist.  Store event from
 -      x_session_check_input in fifo.
 -      [USE_GTK]: Setup current_hold_quit.
 -      Decrement handling_signal before unblocking input.
 -      (x_initialize) [USE_GTK]: Initialize current_count.
 -
 -      * xterm.h (x_session_check_input): Fix prototype.
 -
 -2004-02-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * s/darwin.h (LD_SWITCH_SYSTEM_TEMACS): Add `-framework QuickTime'.
 -
 -      * dispextern.h [MAC_OSX]: Do not include Carbon/Carbon.h (now in
 -      macgui.h).
 -
 -      * emacs.c (main) [HAVE_CARBON]: Call init_xfns.
 -
 -      * macgui.h [MAC_OSX]: Include Carbon/Carbon.h.
 -      (mktime, DEBUG, Z, free, malloc, realloc, max, min)
 -      (init_process) [MAC_OSX]: Avoid conflicts with Carbon/Carbon.h.
 -      [!MAC_OSX]: Include QDOffscreen.h and Controls.h.
 -      (INFINITY) [MAC_OSX]: Avoid conflict with definition in math.h.
 -      (Bitmap): Remove typedef.
 -      (Pixmap): Change int to GWorldPtr.
 -
 -      * macmenu.c [MAC_OSX]: Don't include Carbon/Carbon.h (now in macgui.h).
 -
 -      * macterm.h [MAC_OSX]: Don't include Carbon/Carbon.h (now in macgui.h).
 -      (RED16_FROM_ULONG, GREEN16_FROM_ULONG, BLUE16_FROM_ULONG):
 -      New #define to extract 16-bit depth color components from unsigned
 -      long representation.
 -      (PIX_MASK_DRAW, PIX_MASK_RETAIN): New #define to represent pixel
 -      colors used for masks.
 -      (struct mac_display_info): Add color_p.  Remove n_cbits.
 -
 -      * macfns.c: Include sys/types.h and sys/stat.h.
 -      [MAC_OSX]: Do not include Carbon/Carbon.h (now in macgui.h).
 -      Include QuickTime/QuickTime.h.
 -      (XCreatePixmap, XCreatePixmapFromBitmapData, XFreePixmap)
 -      (XSetForeground, mac_draw_line_to_pixmap): Add externs for
 -      functions defined in macterm.c.
 -      (XImagePtr): New typedef.  Corresponds to XImage * in xfns.c.
 -      (ZPixmap): New #define for compatibility with xfns.c.
 -      (XGetImage, XPutPixel, XGetPixel, XDestroyImage)
 -      (x_create_x_image_and_pixmap, x_destroy_x_image, x_put_x_image)
 -      (find_image_fsspec, image_load_qt_1, image_load_quicktime):
 -      New functions.
 -      (four_corners_best, x_create_x_image_and_pixmap)
 -      (x_destroy_x_image, unwind_create_frame, x_disable_image)
 -      (x_edge_detection, init_color_table, colors_in_color_table)
 -      (lookup_rgb_color, lookup_pixel_color, postprocess_image)
 -      (x_put_x_image, slurp_file, xbm_scan, xbm_load, xbm_load_image)
 -      (xbm_image_p, xbm_read_bitmap_data, xbm_file_p, x_to_xcolors)
 -      (x_from_xcolors, x_detect_edges): New declarations (from xfns.c).
 -      (mac_color_map_lookup, x_to_mac_color): Fix Lisp_Object/unsigned
 -      long mixup.
 -      (mac_defined_color, x_to_x_colors): Use RED16_FROM_ULONG etc.
 -      (x_decode_color): Don't use n_cbits (in struct mac_display_info).
 -      (x_set_foreground_color, x_set_cursor_color): Sync with w32fns.c.
 -      (x_set_cursor_type, Fxw_color_values, valid_image_p)
 -      (image_value_type, parse_image_spec, image_ascent, x_clear_image)
 -      (x_alloc_image_color, clear_image_cache, lookup_image)
 -      (x_find_image_file, xbm_read_bitmap_file_data)
 -      (enum xbm_keyword_index, xbm_format, xbm_image_p, xbm_scan)
 -      (xbm_read_bitmap_data, xbm_load, pbm_image_p, pbm_scan_number)
 -      (enum pbm_keyword_index, pbm_format, enum png_keyword_index)
 -      (png_format, png_image_p, enum jpeg_keyword_index, jpeg_format)
 -      (jpeg_image_p, enum tiff_keyword_index, tiff_format, tiff_image_p)
 -      (enum gif_keyword_index, gif_format, gif_image_p): Sync with xfns.c.
 -      (x_make_gc): Sync with xfns.c.  Enclose unused `border_tile' with
 -      #if 0.
 -      (x_free_gcs): Sync with xfns.c.  Enclose unused `border_tile' with
 -      #if 0.  Free white_relief.gc and black_relief.gc.
 -      (unwind_create_frame, x_emboss, x_laplace, x_edge_detection):
 -      New functions (from xfns.c).
 -      (Fx_create_frame): Record unwind_create_frame.
 -      (Fxw_display_color_p): Use dpyinfo->color_p.
 -      (Fx_display_grayscale_p, Fx_display_planes): Don't use
 -      dpyinfo->n_cbits.
 -      (Fx_display_color_cells): Use dpyinfo->n_planes;
 -      (QCmatrix, QCcolor_adjustment, QCmask, Qemboss, Qedge_detection)
 -      (Qheuristic, cross_disabled_images, emboss_matrix)
 -      (laplace_matrix): New variables (from xfns.c).
 -      (Fimage_size, Fimage_mask_p, four_corners_best, image_background)
 -      (x_clear_image_1, postprocess_image, slurp_file, xbm_load_image)
 -      (xbm_file_p, x_to_xcolors, x_from_xcolors, x_detect_edges)
 -      (image_background_transparent): New function (from xfns.c).
 -      Use PIX_MASK_DRAW/PIX_MASK_RETAIN.
 -      (image_load_quicktime): Add declaration.
 -      [MAC_OSX] (image_load_quartz2d): Likewise.
 -      [MAC_OSX] (CGImageCreateWithPNGDataProviderProcType): New typedef.
 -      [MAC_OSX] (MyCGImageCreateWithPNGDataProvider): New variable.
 -      [MAC_OSX] (init_image_func_pointer, image_load_quartz2d): New funs.
 -      (xbm_load_image_from_file, x_laplace_read_row)
 -      (x_laplace_write_row, pbm_read_file): Remove functions.
 -      [HAVE_XPM] (enum xpm_keyword_index, xpm_format, xpm_image_p)
 -      (xpm_load): Sync with xfns.c (although XPM is not supported yet).
 -      (colors_in_color_table): Sync with xfns.c (although not used).
 -      (lookup_rgb_color): Don't lookup color table.  Just do gamma
 -      correction.
 -      (COLOR_INTENSITY): New #define (from xfns.c).
 -      (x_disable_image): New function (from xfns.c).
 -      Use PIX_MASK_DRAW/PIX_MASK_RETAIN.
 -      (x_build_heuristic_mask): Sync with xfns.c.
 -      Use PIX_MASK_DRAW/PIX_MASK_RETAIN.
 -      (HAVE_PBM): Remove #ifdef.
 -      (pbm_load): Sync with xfns.c.  Set img->width and img->height
 -      before IMAGE_BACKGROUND.
 -      (png_image_p, png_load): Don't enclose declarations with #if HAVE_PNG.
 -      (Qpng, enum png_keyword_index, png_format, png_type, png_image_p):
 -      Don't enclose with #if HAVE_PNG.
 -      [!HAVE_PNG] (png_load) [MAC_OSX]: Use image_load_quartz2d if a
 -      symbol _CGImageCreateWithPNGDataProvider is defined.
 -      Otherwise use image_load_quicktime.
 -      [!HAVE_PNG] (png_load) [!MAC_OSX]: Use image_load_quicktime.
 -      [HAVE_PNG] (png_load): Sync with xfns.c.
 -      Use PIX_MASK_DRAW/PIX_MASK_RETAIN.
 -      (jpeg_image_p, jpeg_load): Don't enclose declarations with #if
 -      HAVE_JPEG.
 -      (Qjpeg, enum jpeg_keyword_index, jpeg_format, jpeg_type)
 -      (jpeg_image_p): Don't enclose with #if HAVE_JPEG.
 -      [!HAVE_JPEG] (jpeg_load) [MAC_OSX]: Use image_load_quartz2d.
 -      [!HAVE_JPEG] (jpeg_load) [!MAC_OSX]: Use image_load_quicktime.
 -      [HAVE_JPEG] (jpeg_load): Sync with xfns.c.
 -      (tiff_image_p, tiff_load): Don't enclose declarations with #if
 -      HAVE_TIFF.
 -      (Qtiff, enum tiff_keyword_index, tiff_format, tiff_type)
 -      (tiff_image_p): Don't enclose with #if HAVE_TIFF.
 -      [!HAVE_TIFF] (tiff_load): Use image_load_quicktime.
 -      [HAVE_TIFF] (tiff_error_handler, tiff_warning_handler):
 -      New functions (from xfns.c).
 -      [HAVE_TIFF] (tiff_load): Sync with xfns.c.
 -      (gif_image_p, gif_load): Don't enclose declarations with #if HAVE_GIF.
 -      (Qgif, enum gif_keyword_index, gif_format, gif_type, gif_image_p):
 -      Don't enclose with #if HAVE_GIF.
 -      [!HAVE_GIF] (gif_load): Use Quicktime Movie Toolbox if it is
 -      animated gif.  Otherwise use image_load_quicktime.
 -      [HAVE_GIF] (gif_lib.h): Temporarily define DrawText as
 -      gif_DrawText to avoid conflict with QuickdrawText.h.
 -      [HAVE_GIF] (gif_load): Sync with xfns.c.
 -      (enum gs_keyword_index, gs_format, gs_image_p, gs_load)
 -      [HAVE_GHOSTSCRIPT] (x_kill_gs_process): Sync with xfns.c (although
 -      Ghostscript is not supported yet).
 -      (syms_of_macfns): Initialize Qemboss, Qedge_detection, Qheuristic,
 -      QCmatrix, QCcolor_adjustment, and QCmask.  Add DEFVAR_BOOL
 -      cross_disabled_images (from xfns.c).  Remove #if 0 for supported
 -      image types.  Remove #if HAVE_JPEG, HAVE_TIFF, HAVE_GIF, and
 -      HAVE_PNG.  Add defsubr for Simage_size and Simage_mask_p.
 -      (init_xfns): Remove #if HAVE_JPEG, HAVE_TIFF, HAVE_GIF, and
 -      HAVE_PNG.  Call EnterMovies to support animated gifs.
 -      Call init_image_func_pointer to bind a symbol
 -      _CGImageCreateWithPNGDataProvider if it is defined.
 -
 -      * macterm.c [MAC_OSX]: Don't include Carbon/Carbon.h (now in macgui.h).
 -      (x_draw_bar_cursor): Sync declaration with xterm.c.
 -      (XFreePixmap, mac_draw_rectangle_to_pixmap, mac_copy_area)
 -      (mac_copy_area_to_pixmap): Implementation with GWorld (offscreen
 -      graphics).
 -      (mac_set_forecolor, mac_set_backcolor): Use RED16_FROM_ULONG etc.
 -      (mac_draw_line_to_pixmap, XCreatePixmap)
 -      (XCreatePixmapFromBitmapData, mac_fill_rectangle_to_pixmap)
 -      (mac_copy_area_with_mask, mac_copy_area_with_mask_to_pixmap):
 -      New functions.
 -      (mac_draw_bitmap) [TARGET_API_MAC_CARBON]:
 -      Use GetPortBitMapForCopyBits instead of the cast to Bitmap *.
 -      Cast bits to char *.
 -      (reflect_byte): New function (from w32fns.c).
 -      (mac_create_bitmap_from_bitmap_data): Use it and don't stuff bits
 -      due to byte alignment.
 -      (mac_scroll_area) [TARGET_API_MAC_CARBON]:
 -      Use GetPortBitMapForCopyBits instead of the cast to Bitmap *.
 -      (XSetForeground): Remove static (now used in macfns.c).
 -      (HIGHLIGHT_COLOR_DARK_BOOST_LIMIT): New #define (from w32term.c).
 -      (mac_alloc_lighter_color, x_destroy_window): Sync with w32term.c.
 -      (x_setup_relief_color, x_setup_relief_colors, x_draw_box_rect)
 -      (x_draw_glyph_string_box, x_draw_image_foreground)
 -      (x_draw_image_foreground_1, x_draw_image_glyph_string)
 -      (x_draw_stretch_glyph_string, x_draw_glyph_string)
 -      (x_draw_hollow_cursor, x_draw_bar_cursor, mac_draw_window_cursor):
 -      Sync with xterm.c.
 -      (x_draw_relief_rect): Sync with xterm.c.  Make 1 pixel shorter
 -      than the xterm.c version when a strictly horizontal or vertical
 -      line is drawn.
 -      (XTset_terminal_window): Add static.
 -      (x_make_frame_visible): Add UNBLOCK_INPUT.
 -      (x_free_frame_resources): New funcion (from xterm.c).
 -      (XTread_socket): Call handle_tool_bar_click if mouse up/down event
 -      occurs in tool bar area.
 -      (mac_initialize_display_info): Remove dpyinfo->n_cbits.
 -      Set dpyinfo->color_p.  Determine dpyinfo->n_planes using HasDepth.
 -      Initialize image cache.
 -      (stricmp, wildstrieq, mac_font_pattern_match, mac_font_match):
 -      Enclose unused functions with #if 0.
 -      (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): New variables.
 -      (decode_mac_font_name): New function to apply code conversions
 -      from a mac font name to an XLFD font name according to its script code.
 -      (x_font_name_to_mac_font_name): Apply code conversion from an XLFD
 -      font name to a mac font name according to REGISTRY and ENCODING fields.
 -      (init_font_name_table) [TARGET_API_MAC_CARBON]: Don't use a font
 -      whose name starts with `.'.
 -      (init_font_name_table): Use decode_mac_font_name.  Add both
 -      jisx0208.1983-sjis and jisx0201.1976-0 entries if the script code
 -      of a font is smJapanese.
 -      (mac_do_list_fonts): New function to list fonts that match a given
 -      pattern.
 -      (x_list_fonts, XLoadQueryFont): Use it.
 -      (XLoadQueryFont): Set rbearing field for each variable width
 -      character to avoid needless redraw.
 -      (syms_of_macterm): Initialize Qbig5, Qcn_gb, Qsjis, and Qeuc_kr.
 -
 -2004-02-26  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (NREAD_INPUT_EVENTS): Temporarily increase to 512
 -      as read_socket_hook handler on X aborts if buffer is too small
 -      and W32 handler doesn't always check buffer limit.
 -
 -      * xdisp.c (handle_single_display_prop): Handle left-fringe and
 -      right-fringe similar to a display margin image.  Specifically,
 -      the characters having the fringe prop are no longer shown, and
 -      we use IT_IMAGE/next_element_from_image with image_id = -1 to
 -      do this.  Set fringe bitmap face_id in it->face_id.
 -      (produce_image_glyph): Handle image_id < 0 as "no image" case, but
 -      still realize it->face (i.e. the fringe bitmap face).
 -
 -2004-02-25  Miles Bader  <miles@gnu.org>
 -
 -      * xdisp.c (check_it): Check string/string_pos consistency.
 -      (init_iterator): Initialize string-related fields properly.
 -
 -2004-02-11  Miles Bader  <miles@gnu.org>
 -
 -      * xdisp.c (produce_image_glyph): Force negative descents to zero.
 -
 -2004-02-10  Miles Bader  <miles@gnu.org>
 -
 -      * xfns.c (lookup_image): Remove xassert(!interrupt_input_blocked);
 -      BLOCK_INPUT can be nested, so it doesn't make much sense.
 -
 -2004-02-24  Michael Mauger  <mmaug@yahoo.com>
 -
 -      * w32fns.c (slurp_file, xbm_scan, xbm_load_image)
 -      (xbm_read_bitmap_data): Use unsigned char for image data.
 -
 -2004-02-23  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * abbrev.c (Finsert_abbrev_table_description): Doc fix.
 -
 -2004-02-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_draw_fringe_bitmap): Draw overlaid bitmaps
 -      correctly over other bitmaps.
 -
 -2004-02-21  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * emacs.c (USAGE1): Split into two halves.
 -      (USAGE2): Second half of the old USAGE1.
 -      (USAGE3): Rename from USAGE2.
 -      (USAGE4): Rename from USAGE3.
 -
 -2004-02-21  Juri Linkov  <juri@jurta.org>
 -
 -      * emacs.c (USAGE1): Add --no-desktop.  Move --display from USAGE2.
 -      Fix --multibyte.  Move --help, --version to USAGE2.  Add alias
 -      --file.  Fix -f, -l.  Sort options.  Untabify.
 -      (USAGE2): Add -hb.  Fix --name, --title.  Sort options.  Untabify.
 -
 -2004-02-19  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * category.c (Fdefine_category, Fcategory_docstring)
 -      (Fget_unused_category, Fset_category_table)
 -      (Fcategory_set_mnemonics): Doc fixes.
 -
 -2004-02-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c: Undo 2004-02-16 and 2004-02-17 changes.
 -      The following changes are relative to the 2004-01-21 revision.
 -      (NREAD_INPUT_EVENTS): Define as max number of input events to read
 -      in one call to read_socket_hook.  Value is 8.
 -      (read_avail_input): Separate and rework handling of read_socket_hook
 -      and non-read_socket_hook cases.  Use smaller input_event buffer
 -      in read_socket_hook case, and repeat if full buffer is read.
 -      Use new local variable 'discard' to skip input after C-g.
 -      In non-read_socket_hook case, just use a single input_event, and
 -      call kbd_buffer_store_event on the fly for each character.
 -
 -2004-02-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lisp.h (union Lisp_Object): Give a more precise type for `type'.
 -      Remove unused `gu' alternative.
 -
 -2004-02-19  Andreas Schwab  <schwab@suse.de>
 -
 -      * fringe.c (Fdefine_fringe_bitmap): Use && instead of & to avoid
 -      warning.
 -
 -2004-02-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_window_cursor_type, display_and_set_cursor):
 -      Fix last change.
 -
 -2004-02-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (fast_find_position): Fix return value of new version;
 -      it was inverted compared to the 21.1 version.
 -      (get_window_cursor_type): Don't look at glyph if NULL.
 -      (display_and_set_cursor): Set glyph to NULL if cursor in fringe.
 -
 -      * keyboard.c: Rework previous change; it didn't consider that the
 -      buf array was allocated on the stack.
 -      (prev_read): Remove variable.
 -      (read_avail_input_buf): New static event buffer array.
 -      (in_read_avail_input): New static variable to handle re-entrancy.
 -      (read_avail_input): Change buf to pinter to read_avail_input_buf.
 -      Use in_read_avail_input to handle re-entrance; when re-entered,
 -      fully initialize and use tmp_buf array instead of read_avail_input_buf.
 -      Do not initialize read_avail_input_buf in full here; instead assume it
 -      is always cleared on entry.  To ensure that, we clear (just) the
 -      entries that were used before we return.
 -      (init_keyboard): Initialize read_avail_input_buf here.
 -
 -2004-02-16  Jesper Harder  <harder@ifa.au.dk>
 -
 -      * cmds.c (Fend_of_line): Doc fix.
 -
 -2004-02-16  Dmitry Antipov  <dmitry.antipov@mail.ru>  (tiny change)
 -
 -      * keyboard.c (prev_read): New static variable.
 -      (read_avail_input): Use it to zero out only those slots in buf[]
 -      that were used last time we were called.
 -
 -2004-02-16  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * Makefile.in (obj): Move fringe.o from here...
 -      (XOBJ, MAC_OBJ): ...to here.
 -
 -2004-02-16  Stephen Eglen  <stephen@gnu.org>
 -
 -      * fringe.c (init_fringe_bitmap): Define j in MAC_OS code.
 -
 -2004-02-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * data.c (Fbyteorder):
 -      * fringe.c (Fdefine_fringe_bitmap):
 -      * xdisp.c (handle_single_display_prop):
 -      * xselect.c (x_handle_dnd_message): Lisp_Object/int mixup.
 -
 -2004-02-16  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_draw_fringe_bitmap): Handle overlay fringe bitmaps.
 -
 -2004-02-15  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (Vmac_emulate_three_button_mouse): New variable for
 -      controlling emulation of a three button mouse with option and
 -      command keys.
 -      (Qreverse, mac_get_enumlated_btn): Handle the emulation.
 -      (mac_event_to_emacs_modifiers, XTread_socket): Ditto.
 -
 -2004-02-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * buffer.c (syms_of_buffer): Doc fix for indicate-buffer-boundaries.
 -
 -      * fringe.c (init_fringe_bitmap) [MAC_OS, WORDS_BIG_ENDIAN]:
 -      Perform byte-swapping.
 -
 -2004-02-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (struct draw_fringe_bitmap_params): Change member
 -      bits from char to short to facilitate wider bitmaps.
 -      (struct redisplay_interface): Fix prototype of define_fringe_bitmap
 -      member.
 -
 -      * fringe.c (struct fringe_bitmap): Change member bits from char to
 -      short to facilitate 16 bits wide bitmaps.  Modify all standard
 -      bitmaps accordingly.
 -      (BYTES_PER_BITMAP_ROW, STANDARD_BITMAP_HEIGHT): New macros.
 -      (FRBITS): Use STANDARD_BITMAP_HEIGHT instead of just sizeof.
 -      (draw_fringe_bitmap): Ditto.
 -      (init_fringe_bitmap) [MAC_OS]: Don't bitswap.
 -      (init_fringe_bitmap) [HAVE_X_WINDOWS]: Enhance bitswapping to
 -      handle up to 16 bits wide bitmaps.
 -      (Fdefine_fringe_bitmap): Doc fix.  Handle wider bitmaps.
 -      (Ffringe_bitmaps_at_pos): Add missing arg declarations.
 -
 -      * macterm.c (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
 -      (x_draw_fringe_bitmap): Use enhanced mac_draw_bitmap, so we no longer
 -      need to call mac_create_bitmap_from_bitmap_data and mac_free_bitmap.
 -
 -      * w32term.c (w32_define_fringe_bitmap): Bitmaps are now 16 bits wide,
 -      so it is no longer necessary to expand them here.
 -
 -      * xterm.c (x_draw_fringe_bitmap): Handle wider bitmaps (max 16 bits).
 -
 -2004-02-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (Fwindow_fringes): Doc fix.
 -
 -2004-02-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xselect.c (x_get_foreign_selection): Add new optional parameter
 -      time_stamp.
 -      (Fx_get_selection_internal): Ditto, pass time_stamp to
 -      x_get_foreign_selection.
 -
 -      * data.c (Fbyteorder): New function.
 -
 -2004-02-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * atimer.c: Move include stdio.h to same place as in other files.
 -
 -      * region-cache.c: Ditto.
 -
 -      * sysdep.c: Ditto.
 -
 -      * xfaces.c: Ditto.
 -
 -2004-02-09  Sam Steingold  <sds@gnu.org>
 -
 -      * w32term.c (w32_draw_fringe_bitmap): Fix a typo in the last patch.
 -
 -2004-02-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * fringe.c: New file.  Move original fringe related declarations
 -      and code from dispextern.h and xdisp.c here.
 -      Rework code to support user defined fringe bitmaps, redefining
 -      standard bitmaps, ability to overlay user defined bitmap with
 -      overlay arrow bitmap, and add faces to bitmaps.
 -      (Voverflow_newline_into_fringe): Declare here.
 -      (enum fringe_bitmap_align): New enum.
 -      (..._bits): All bitmaps are now defined without bitswapping; that
 -      is now done in init_fringe_once (if necessary).
 -      (standard_bitmaps): New array with specifications for the
 -      standard fringe bitmaps.
 -      (fringe_faces): New array.
 -      (valid_fringe_bitmap_id_p): New function.
 -      (draw_fringe_bitmap_1): Rename from draw_fringe_bitmap.
 -      (draw_fringe_bitmap): New function which draws fringe bitmap,
 -      possibly overlaying bitmap with cursor in right fringe or the
 -      overlay arrow in the left fringe.
 -      (update_window_fringes): Do not handle overlay arrow here.
 -      Compare and copy fringe bitmap faces.
 -      (init_fringe_bitmap): New function.
 -      (Fdefine_fringe_bitmap, Fdestroy_fringe_bitmap): New DEFUNs to
 -      define and destroy user defined fringe bitmaps.
 -      (Fset_fringe_bitmap_face): New DEFUN to set face for a fringe bitmap.
 -      (Ffringe_bitmaps_at_pos): New DEFUN to read current fringe bitmaps.
 -      (syms_of_fringe): New function.  Defsubr new DEFUNs.
 -      DEFVAR_LISP Voverflow_newline_into_fringe.
 -      (init_fringe_once, init_fringe): New functions.
 -      (w32_init_fringe, w32_reset_fringes) [WINDOWS_NT]: New functions.
 -
 -      * Makefile.in (obj): Add fringe.o.
 -      (fringe.o): New dependencies.
 -
 -      * dispextern.h (FRINGE_ID_BITS): New definition for number of
 -      bits allocated to hold a fringe number.  Increase number of bits
 -      from 4 to 8 to allow user defined fringe bitmaps.
 -      (struct glyph_row, struct it): New members left_user_fringe_bitmap,
 -      left_user_fringe_face_id, right_user_fringe_bitmap,
 -      right_user_fringe_face_id.
 -      (enum fringe_bitmap_type, struct fringe_bitmap, fringe_bitmaps):
 -      Move to new file fringe.c.
 -      (MAX_FRINGE_BITMAPS): Define here.
 -      (struct draw_fringe_bitmap_params): New members bits, cursor_p,
 -      and overlay_p.  Change member which to int.
 -      (struct redisplay_interface): New members define_fringe_bitmap
 -      and destroy_fringe_bitmap.
 -      (valid_fringe_bitmap_id_p): Add prototype.
 -      (w32_init_fringe, w32_reset_fringes) [WINDOWS_NT]: Add prototypes.
 -
 -      * dispnew.c (row_equal_p): Compare fringe bitmap faces and overlay
 -      arrows.
 -      (update_frame): Do flush_display if force_flush_display_p to
 -      ensure display (specifically fringes) are updated in a timely
 -      manner when resizing the frame by dragging the mouse.
 -      (update_window_line): Update row if overlay arrow changed.
 -      (scrolling_window): Redraw fringe bitmaps if fringe bitmap faces
 -      or overlay arrow changed.
 -
 -      * emacs.c (main) [HAVE_WINDOW_SYSTEM]: Call init_fringe_once,
 -      syms_of_fringe, and init_fringe.
 -
 -      * frame.h (struct frame): New member force_flush_display_p.
 -
 -      * lisp.h (syms_of_fringe, init_fringe, init_fringe_once):
 -      Add prototypes.
 -
 -      * macterm.c (mac_draw_bitmap): Add overlay_p arg.
 -      (x_draw_fringe_bitmap): Handle overlayed fringe bitmaps;
 -      thanks to YAMAMOTO Mitsuharu for advice on how to do this.
 -      Use cursor color for displaying cursor in fringe.
 -      (x_redisplay_interface): Add null handlers for
 -      define_fringe_bitmap and destroy_fringe_bitmap functions.
 -
 -      * w32term.c (w32_draw_fringe_bitmap): Copy unadapted code from
 -      xterm.c to handle overlayed fringe bitmaps and to use cursor color
 -      for displaying cursor in fringe.
 -      (w32_define_fringe_bitmap, w32_destroy_fringe_bitmap): New W32
 -      specific functions to define and destroy fringe bitmaps in fringe_bmp.
 -      (w32_redisplay_interface): Add them to redisplay_interface.
 -      (w32_term_init): Call w32_init_fringe instead of explicitly
 -      defining fringe bitmaps in fringe_bmp array.
 -      (x_delete_display): Call w32_reset_fringes instead of explicitly
 -      destroying fringe bitmaps in fringe_bmp array.
 -
 -      * xdisp.c (Voverflow_newline_into_fringe, syms_of_xdisp)
 -      (left_bits, right_bits, up_arrow_bits, down_arrow_bits)
 -      (continued_bits, continuation_bits, ov_bits, first_line_bits)
 -      (last_line_bits, filled_box_cursor_bits, hollow_box_cursor_bits)
 -      (bar_cursor_bits, hbar_cursor_bits, zv_bits, hollow_square_bits)
 -      (fringe_bitmaps, draw_fringe_bitmap, draw_row_fringe_bitmaps)
 -      (draw_window_fringes, compute_fringe_widths, update_window_fringes):
 -      Move fringe handling vars and code to new file fringe.c.
 -      (handle_display_prop): Handle left-fringe and right-fringe
 -      display properties; store user fringe bitmaps in iterator.
 -      (move_it_in_display_line_to): Handle cursor in fringe at eob.
 -      (clear_garbaged_frames): Set force_flush_display_p if resized.
 -      (redisplay_window): Redraw fringe bitmaps if not just_this_one_p.
 -      (display_line): Handle cursor in fringe at eob.
 -      (display_line): Set row user fringe bitmaps from iterator.
 -
 -      * xterm.c (x_draw_fringe_bitmap): Handle overlayed fringe bitmaps.
 -      Use cursor color for displaying cursor in fringe.
 -      (x_redisplay_interface): Add null handlers for
 -      define_fringe_bitmap and destroy_fringe_bitmap functions.
 -
 -2004-02-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * macfns.c (Fx_change_window_property): Make doc string and
 -      parameters same as for X version.
 -
 -      * w32fns.c (Fx_change_window_property): Ditto.
 -
 -2004-02-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (hscroll_window_tree): Position cursor near to right
 -      margin in hscrolled window when jumping to end of line (rather
 -      than centering cursor).
 -
 -      * process.c (wait_reading_process_input): Don't do adaptive read
 -      buffering if waiting for a specific process.
 -
 -2004-02-05  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * minibuf.c (Fminibufferp, Fread_from_minibuffer)
 -      (Fread_minibuffer, Feval_minibuffer)
 -      (Fread_string, Fread_no_blanks_input)
 -      (Fcompleting_read): Doc fixes.
 -      (syms_of_minibuf): Doc fixes for minibuffer-completion-table and
 -      completion-regexp-list.  Define Qcase_fold_search and staticpro it.
 -      (read_minibuf): Fix initial comment.
 -      (Ftry_completion, Fall_completions, Ftest_completion): Bind
 -      case-fold-search to the value of completion-ignore-case when
 -      checking completion-regexp-list.
 -      (Fdisplay_completion_list): Make it handle arguments that are
 -      symbols.  Doc fix.
 -
 -2004-02-05  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h: Add declaration of free_frame_menubar.
 -
 -      * xfns.c (x_create_bitmap_mask): Removed unused variable depth.
 -      (x_set_menu_bar_lines): Added ! defined USE_GTK for olines.
 -      (Fx_change_window_property): Add declaration of parameters type and
 -      format.  Remove unused variable cons.
 -
 -      * xselect.c: Include stdio.h.
 -
 -2004-02-05  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (Fset_char_table_range): Fix previous change.
 -
 -      * buffer.c (Fset_buffer_multibyte): Fix docstring.
 -
 -2004-02-04  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * editfns.c (Fchar_after, Fchar_before): Doc fixes.
 -
 -2004-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keymap.c (Vmouse_events): Rename from Vmenu_events.
 -      (syms_of_keymap): Add mouse-[45], header-line, and mode-line to it.
 -
 -2004-02-04  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (Fset_char_table_range): Handle charsets ascii,
 -      eight-bit-control, and eight-bit-graphic correctly.
 -
 -2004-02-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32select.c (Fw32_set_clipboard_data): Make coding iso2022 safe.
 -
 -      * w32fns.c (x_to_w32_font): Likewise.
 -
 -2004-02-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h: Add x_handle_dnd_message, x_check_property_data,
 -      x_fill_property_data, x_property_data_to_lisp and check_x_display_info.
 -
 -      * xterm.c (handle_one_xevent): Call x_handle_dnd_message for
 -      ClientMessages.
 -
 -      * xselect.c: Include termhooks.h and X11/Xproto.h.
 -      (x_check_property_data, x_fill_property_data)
 -      (x_property_data_to_lisp, mouse_position_for_drop)
 -      (Fx_get_atom_name, x_handle_dnd_message): New functions for DND support.
 -      (Fx_send_client_event): Move here from xfns.c.
 -      (syms_of_xselect): Add Sx_get_atom_name and Sx_send_client_message.
 -
 -      * xfns.c (x-send-client-message): Move to xselect.c.
 -      (Fx_change_window_property): Add optional arguments TYPE, FORMAT and
 -      OUTER_P.
 -      (Fx_window_property): Add optional arguments TYPE, SOURCE, DELETE_P,
 -      VECTOR_RET_P.  Handle AnyPropertyType.  Call x_property_data_to_lisp
 -      if vector_ret_p is true.
 -      (syms_of_xfns): Sx_send_client_message moved to xselect.c.
 -
 -2004-02-02  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * fileio.c (Fcopy_file): If NEWNAME is a directory, expand the
 -      basename of FILE relative to it, not FILE itself.
 -
 -2004-02-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (coding_restore_composition): Check invalid
 -      composition data more rigidly.
 -
 -2004-01-30  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fileio.c (Fread_file_name_internal): Correctly handle the case
 -      where insert-default-directory is nil.
 -      (Fread_file_name): Always return an empty string if the user exits
 -      with an empty minibuffer.  Adapt the docstring accordingly.
 -      (syms_of_fileio): Adapt the docstring of insert-default-directory
 -      to the change in Fread_file_name.
 -
 -2004-01-29  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * alloca.c [!alloca]: Fix the prototype for xfree.
 -
 -2004-01-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (string_char_to_byte): Optimize for ASCII only string.
 -      (string_byte_to_char): Likewise.
 -
 -2004-01-28  Peter Runestig  <peter@runestig.com>
 -
 -      * makefile.w32-in, w32fns.c: Add `default-printer-name' function.
 -
 -2004-01-27  Steven Tamm  <steventamm@mac.com>
 -
 -      * unexmacosx.c (unexec_copy): Do not copy more than was
 -      requested to prevent overwriting during unexec.
 -
 -2004-01-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * process.c (sigchld_handler): Add comment about not calling malloc.
 -
 -      * process.h: Add extern to synch_process_termsig.
 -
 -2004-01-27  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (make_mac_frame, make_mac_terminal_frame):
 -      Move setting of scroll bars from make_mac_frame to
 -      make_mac_terminal_frame to prevent clobbering of scroll-bar-mode.
 -
 -2004-01-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * search.c (Freplace_match): Handle nonexistent
 -      back-references properly.
 -
 -2004-01-03  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (decode_any_window): New function.
 -      (Fwindow_height, Fwindow_width, Fwindow_edges)
 -      (Fwindow_pixel_edges, Fwindow_inside_edges)
 -      (Fwindow_inside_pixel_edges): Use decode_any_window.
 -
 -2004-01-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * process.h: synch_process_termsig new variable.
 -
 -      * callproc.c: Define synch_process_termsig.
 -      (Fcall_process): Initiate synch_process_termsig to zero and
 -      check if non-zero and get signal name after subprocess has ended.
 -
 -      * process.c (sigchld_handler): Set synch_process_termsig
 -      if terminated by a signal.  synch_process_death setting removed.
 -
 -      * sysdep.c (mkdir, rmdir): Also check synch_process_termsig.
 -
 -2004-01-26  Andreas Schwab  <schwab@suse.de>
 -
 -      * print.c (print_preprocess): Declare size as EMACS_INT to not
 -      lose bits.
 -      (print_object): Likewise.
 -      * alloc.c (Fpurecopy): Likewise.
 -
 -2004-01-25  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * window.c (Fwindow_minibuffer_p): Doc fix.
 -
 -2004-01-24  Jonathan Yavner  <jyavner@member.fsf.org>
 -
 -      * editfns.c (Fformat): Make both passes accept the same set of flags.
 -
 -2004-01-23  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (Fmd5): If OBJECT is a buffer different from the current
 -      one, set buffer to OBJECT temporarily.
 -
 -2004-01-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * keyboard.c (kbd_buffer_gcpro): Remove.
 -      (kbd_buffer_store_event, clear_event, Fdiscard_input)
 -      (stuff_buffered_input, init_keyboard, syms_of_keyboard):
 -      Don't initialize and/or maintain the variable any more.  It was made
 -      redundant by my commit of 2003-06-15.
 -
 -      * lisp.h [USE_LSB_TAG && !DECL_ALIGN]: Signal an error.
 -
 -2004-01-21  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * lisp.h: Add undef DECL_ALIGN.
 -
 -2004-01-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * process.c (wait_reading_process_input) [SYNC_INPUT]:
 -      Check interrupt_input_pending explicitly.
 -
 -      * lisp.h (QUIT) [SYNC_INPUT]: Check interrupt_input_pending as well.
 -
 -      * keyboard.c (handle_async_input): New fun,
 -      extracted from input_available_signal.
 -      (input_available_signal, reinvoke_input_signal): Use it.
 -
 -2004-01-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * buffer.c (buffer_defaults, buffer_local_symbols): Use DECL_ALIGN.
 -
 -      * lisp.h [USE_LSB_TAG]: Add definitions for Lisp_Object value
 -      manipulation macros for when tags are in the lower bits.
 -      (struct Lisp_Free) [USE_LSB_TAG]: Add padding.
 -      (DECL_ALIGN): New macro.
 -      (DEFUN): Use it.
 -
 -      * lisp.h [ENABLE_CHECKING]: Don't force union type.
 -
 -      * s/darwin.h (__attribute__): Remove outdated workaround.
 -
 -      * macterm.c (main) [USE_LSB_TAG]: Don't range check the ram.
 -
 -      * alloc.c (lisp_malloc, lisp_align_malloc) [USE_LSB_TAG]:
 -      Don't check range of malloc address.
 -      (pure_alloc) [USE_LSB_TAG]: Enforce alignment.
 -
 -      * process.c (wait_reading_process_input): Lisp_Object/int mixup.
 -
 -      * dired.c (Ffile_attributes): Lisp_Object/int mixup.
 -
 -2004-01-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fontset_font_pattern): Fix previous change.
 -
 -2004-01-16  Miles Bader  <miles@gnu.ai.mit.edu>
 -
 -      * xdisp.c (Voverflow_newline_into_fringe)
 -      (move_it_in_display_line_to, redisplay_internal)
 -      (update_window_fringes, redisplay_window, display_line, window):
 -      Add `#ifdef HAVE_WINDOW_SYSTEM' around fringe-drawing stuff, so
 -      that it compiles without a window-system.
 -      * dispnew.c (direct_output_for_insert, update_window): Likewise.
 -
 -2004-01-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * buffer.h (struct buffer): New member indicate_buffer_boundaries.
 -
 -      * buffer.c (init_buffer_once): Set buffer_defaults and
 -      buffer_local_flags for indicate_buffer_boundaries.
 -      (syms_of_buffer): Defvar_per_buffer it, and defvar_lisp_nopro
 -      default- variable for it.
 -
 -      * dispextern.h (struct glyph_row): New members left_fringe_bitmap,
 -      right_fringe_bitmap, redraw_fringe_bitmaps_p for new fringe handling.
 -      New members exact_window_width_line_p and cursor_in_fringe_p for
 -      overflowing newlines into right fringe.
 -      New members indicate_bob_p, indicate_top_line_p, indicate_eob_p,
 -      and indicate_bottom_line_p for buffer boundaries and scrolling.
 -      (enum fringe_bitmap_type): Add UP_ARROW_BITMAP, DOWN_ARROW_BITMAP,
 -      FIRST_LINE_BITMAP, LAST_LINE_BITMAP, FILLED_BOX_CURSOR_BITMAP,
 -      HOLLOW_BOX_CURSOR_BITMAP, BAR_CURSOR_BITMAP, HBAR_CURSOR_BITMAP,
 -      and HOLLOW_SQUARE_BITMAP.
 -      (draw_fringe_bitmap, draw_window_fringes, update_window_fringes):
 -      Add prototypes.
 -
 -      * dispnew.c (row_equal_p, update_window_line): Compare fringe bitmaps
 -      instead of related indicator fields.
 -      Compare exact_window_width_line_p and cursor_in_mouse_face_p indicators.
 -      (direct_output_for_insert): Handle exact width lines like
 -      contined lines.  Call update_window_fringes.
 -      (update_window): Call update_window_fringes.
 -      (scrolling_window): Don't skip desired rows with changed bitmaps.
 -      Check if fringe bitmaps changes when assigning scrolled rows.
 -
 -      * xdisp.c (Voverflow_newline_into_fringe): New variable.
 -      (IT_OVERFLOW_NEWLINE_INTO_FRINGE): New macro.
 -      (move_it_in_display_line_to): Overflow newline into fringe for
 -      rows that are exactly as wide as the window.
 -      (up_arrow_bits, down_arrow_bits, first_line_bits, last_line_bits)
 -      (filled_box_cursor_bits, hollow_box_cursor_bits, bar_cursor_bits)
 -      (hbar_cursor_bits, hollow_square_bits): New fringe bitmaps.
 -      (fringe_bitmaps): Add new bitmaps.
 -      (draw_fringe_bitmap): Make extern.  Remove WHICH arg.
 -      Select proper bitmap for cursor in fringe when appropriate.
 -      Handle alignment of bitmap to top or bottom of row.
 -      (draw_row_fringe_bitmaps): Don't select bitmaps here; that is now
 -      done by update_window_fringes.
 -      (update_window_fringes, draw_window_fringes): New functions.
 -      (redisplay_internal): Call update_window_fringes in case only
 -      cursor row is updated.
 -      (redisplay_window): Call update_window_fringes.
 -      Explicitly call draw_window_fringes if redisplay was done using
 -      the current matrix or the overlay arrow is in the window.
 -      (try_window_reusing_current_matrix): Mark scrolled rows for
 -      fringe update (to update buffer-boundaries / scrolling icons).
 -      (find_last_unchanged_at_beg_row): Handle exact width lines line
 -      continued lines.
 -      (display_line): Overflow newline into fringe for rows that are
 -      exactly as wide as the window.  Don't append space for newline
 -      in this case.
 -      (notice_overwritten_cursor): Explicitly clear cursor bitmap
 -      in fringe as if it had been overwritten.
 -      (erase_phys_cursor): Erase cursor bitmap in fringe.
 -      (syms_of_xdisp): Mark show-trailing-whitespace and
 -      void-text-area-pointer as user options.
 -      DEFVAR_LISP Voverflow_newline_into_fringe.  Enable by default.
 -
 -      * xterm.c (x_update_window_end): Call draw_window_fringes.
 -      (x_after_update_window_line): Just set redraw_fringe_bitmaps_p
 -      in row instead of actually drawing fringe bitmaps.
 -      (x_draw_fringe_bitmap): Handle bottom aligned bitmaps.
 -      (x_draw_window_cursor): Draw cursor in fringe.
 -
 -      * w32term.c (x_update_window_end): Call draw_window_fringes.
 -      (x_after_update_window_line): Just set redraw_fringe_bitmaps_p
 -      in row instead of actually drawing fringe bitmaps.
 -      (w32_draw_fringe_bitmap): Handle bottom aligned bitmaps.
 -      (w32_draw_window_cursor): Draw cursor in fringe.
 -
 -      * macterm.c (x_update_window_end): Call draw_window_fringes.
 -      (x_after_update_window_line): Just set redraw_fringe_bitmaps_p
 -      in row instead of actually drawing fringe bitmaps.
 -      (x_draw_fringe_bitmap): Handle bottom aligned bitmaps.
 -      (mac_draw_window_cursor): Draw cursor in fringe.
 -
 -2004-01-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): Don't handle characters that are part
 -      of an old style (XLookupString) compose sequence.
 -
 -2004-01-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * search.c (Freplace_match): Use make_multibyte_string or
 -      make_unibyte_string according to the buffer multibyteness.
 -
 -2004-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c (struct interval_block, struct string_block)
 -      (struct symbol_block, struct marker_block, live_string_p)
 -      (live_cons_p, live_symbol_p, live_float_p, live_misc_p):
 -      Better preserve alignment for objects in blocks.
 -      (FLOAT_BLOCK_SIZE): Adjust for possible alignment padding.
 -
 -      * lread.c (defvar_per_buffer): Remove dead declaration.
 -
 -      * macterm.c (do_check_ram_size): Don't hardcode the lisp address
 -      space size.
 -
 -2004-01-12  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (popup_get_selection): Check new parameter down_on_keypress
 -      if a key press should pop down.  Only pop down if a key is pressed
 -      outside the menu/dialog.
 -      (create_and_show_popup_menu): Pass 0 for down_on_keypress to
 -      popup_get_selection.
 -      (create_and_show_dialog): Pass 1 for down_on_keypress to
 -      popup_get_selection.
 -
 -2004-01-11  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * alloc.c (allocate_vectorlike): Surround calls to mallopt with
 -      BLOCK/UNBLOCK_INPUT.
 -
 -2004-01-08  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (Fx_popup_dialog): Add an Ok button if no buttons are
 -      specified.
 -
 -2004-01-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * editfns.c (Fformat): Fix '&' to '&&'.
 -
 -2004-01-08  Andreas Schwab  <schwab@suse.de>
 -
 -      * print.c (print_preprocess) <case Lisp_Vectorlike>: Only mask
 -      size if PSEUDOVECTOR_FLAG is set.
 -
 -2004-01-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.c (Fdeclare_equiv_charset): Fix docstring.
 -
 -      * fontset.c (fontset_ref_via_base): Fix previous change.
 -
 -2004-01-07  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (read_process_output): Only activate adaptive
 -      buffering if we read less than 256 bytes at a time.
 -
 -2004-01-06  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (buffer_posn_from_coords): Return both buffer/string
 -      object and image object.  Return glyph width and height.
 -      (mode_line_string, marginal_area_string): Ditto.
 -
 -      * dispextern.h (buffer_posn_from_coords, mode_line_string)
 -      (marginal_area_string): Fix prototypes.
 -
 -      * keyboard.h (POSN_POSN, POSN_SET_POSN): Rename macros from
 -      POSN_BUFFER_POSN and POSN_SET_BUFFER_POSN.  All uses changed.
 -      (POSN_INBUFFER_P, POSN_BUFFER_POSN): New macros.
 -
 -      * keyboard.c (make_lispy_position): Use modified mode_line_string,
 -      buffer_posn_from_coords, and marginal_area_string functions to
 -      include both string object and image object in the lispy position.
 -      Also add actual glyph width and height to position.
 -      (read_key_sequence): Use real buffer position from mouse
 -      event to find keymap property even when click is in marginal area.
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight): Use modified
 -      mode_line_string and marginal_area_string functions to handle
 -      both string object and image object properties.
 -
 -2004-01-06  Andreas Schwab  <schwab@suse.de>
 -
 -      * syntax.c (skip_chars): Treat '-' at end of string as ordinary
 -      character.
 -
 -2004-01-02  Andreas Schwab  <schwab@suse.de>
 -
 -      * macterm.c (emacs_options, x_initialized, same_x_server):
 -      Remove unused (and duplicated) definitions.
 -
 -2004-01-02  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.h (struct Lisp_Process): New members for adaptive read
 -      buffering: adaptive_read_buffering, read_output_delay, and
 -      read_output_skip.
 -
 -      * process.c (ADAPTIVE_READ_BUFFERING): New conditional.
 -      (READ_OUTPUT_DELAY_INCREMENT, READ_OUTPUT_DELAY_MAX)
 -      (READ_OUTPUT_DELAY_MAX_MAX): New constants.
 -      (process_output_delay_count, process_output_skip): New vars.
 -      (Vprocess_adaptive_read_buffering): New variable.
 -      (make_process): Initialize adaptive read buffering members.
 -      (Fstart_process): Set adaptive_read_buffering member.
 -      (deactivate_process): Cleanup adaptive read buffering.
 -      (wait_reading_process_input): Temporarily omit delayed
 -      subprocesses from the set of file descriptors to read from;
 -      adjust the select timeout if we skipped any subprocesses.
 -      (read_process_output): Increase adaptive read buffering delay if
 -      we read less than a full buffer; reduce delay when we read a
 -      full buffer.
 -      (send_process): Simplify using local Lisp_Process var.
 -      Reset adaptive read buffering delay after write.
 -      (init_process): Initialize process_output_delay_count and
 -      process_output_skip.
 -      (syms_of_process): DEFVAR_LISP Vprocess_adaptive_read_buffering.
 -
 -2004-01-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_text_out): Use s->font, for consistency with callers.
 -
 -2003-12-30  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * print.c (Ferror_message_string): Add hyperlink in the docstring
 -      to the definition of `signal' in the Elisp manual.
 -      * eval.c (Fsignal): Ditto.
 -
 -2003-12-29  James Clark  <jjc@jclark.com>
 -
 -      * fns.c (internal_equal): Return t for two NaN arguments.
 -
 -2003-12-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * data.c (store_symval_forwarding): Handle setting
 -      default-fill-column, etc., by changing the value in
 -      buffers that use the default.
 -
 -      * minibuf.c (Fset_minibuffer_window): Doc fix.
 -
 -      * fileio.c (choose_write_coding_system): Ignore auto_saving
 -      if using the visited file for auto saves.
 -      (Fwrite_region): Don't update SAVE_MODIFF
 -      if auto-saving in visited file.
 -
 -2003-12-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * dispextern.h (face_font_available_p): Extern it.
 -
 -      * fontset.c (Voverriding_fontspec_alist): New variable.
 -      (lookup_overriding_fontspec): New function.
 -      (fontset_ref_via_base): Call lookup_overriding_fontspec if necessary.
 -      (fontset_font_pattern): Likewise.
 -      (regulalize_fontname): New function.
 -      (Fset_fontset_font): Call regulalize_fontname.
 -      (Fset_overriding_fontspec_internal): New function.
 -      (syms_of_fontset): Initialize and staticpro Voverriding_fontspec_alist.
 -      Defsubr Sset_overriding_fontspec_internal.
 -
 -      * xfaces.c (face_font_available_p): New function.
 -
 -2003-12-28  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (Fother_buffer): Don't crash if BUF is nil
 -      or if its name is nil.
 -
 -      * buffer.c (Fkill_buffer): Don't delete auto-save file
 -      if it's the same as the visited file.
 -
 -2003-12-28  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * coding.c (Fcheck_coding_system): Doc fix.
 -
 -2003-12-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * Makefile.in (eval.o): Depend on dispextern.h.
 -
 -      * dispnew.c (buffer_posn_from_coords): Fix calculation of dy for
 -      image glyph using image's ascent.
 -      (mode_line_string): Return image glyph as object clicked on.
 -      Adjust y0 for image glyph using image's ascent.
 -
 -      * dispextern.h (FACE_ID_BITS, MAX_FACE_ID): New defines.
 -      (struct glyph): New members, ascent and descent.  Used to save
 -      this glyph's ascent and descent, instead of having.
 -      (struct glyph): Declare member face_id using FACE_ID_BITS.
 -      (find_hot_spot): Add prototype.
 -
 -      * keyboard.c (Qimage): Remove extern (now in lisp.h).
 -      (QCmap): Declare extern.
 -      (make_lispy_position): When position is inside image hot-spot,
 -      use hot-spot element's id as posn element.
 -
 -      * lisp.h (IMAGEP): New macro to test for image object type.
 -      (Qimage): Declare extern.
 -
 -      * macfns.c (Qimage): Remove extern (now in lisp.h).
 -      (valid_image_p, parse_image_spec): Use IMAGEP macro.
 -
 -      * macterm.c (Qface, Qmouse_face): Remove unused externs.
 -
 -      * w32fns.c (Qimage): Remove extern (now in lisp.h).
 -      (valid_image_p, parse_image_spec): Use IMAGEP macro.
 -
 -      * w32menu.c (Qmouse_click, Qevent_kind): Remove unused externs.
 -
 -      * w32term.c (Qface, Qmouse_face): Remove unused externs.
 -
 -      * xdisp.c (Qarrow, Qhand, Qtext, Qpointer): New variables for
 -      pointer types.
 -      (Qrelative_width, Qalign_to): Remove unused variables.
 -      (Vvoid_text_area_pointer): Replace Vshow_text_cursor_in_void.
 -      (QCmap, QCpointer, Qrect, Qcircle, Qpoly): New variables for image
 -      maps.
 -      (x_y_to_hpos_vpos): Return glyph relative coordinates through new
 -      dx and dy args.  Remove buffer_only_p arg (always 0).  Simplify
 -      code accordingly.
 -      (get_glyph_string_clip_rect): Draw cursor using glyph's rather
 -      than row's ascent and height, to get sensible height on tall rows.
 -      (build_desired_tool_bar_string): Remove Qimage extern.
 -      (get_tool_bar_item): Fix call to x_y_to_hpos_vpos.
 -      (produce_image_glyph): Adjust it.ascent to minimum row ascent if
 -      image glyph is alone on the last line.
 -      (append_glyph, append_composite_glyph, produce_image_glyph)
 -      (append_stretch_glyph): Set glyph's ascent and descent.
 -      (on_hot_spot_p): New function to check if position is inside an
 -      rectangular, circular, or polygon-shaped image hot-spot,
 -      (find_hot_spot): New function to search for image hot-spot.
 -      (Flookup_image_map): New defun to search for image hot-spot.
 -      (define_frame_cursor1): New aux function to determine frame
 -      pointer.
 -      (note_mode_line_or_margin_highlight, note_mouse_highlight): Handle
 -      `pointer' text property and :pointer image property to control
 -      frame pointer shape.  Detect image hot-spots for pointer and
 -      help_echo properties.  Use define_frame_cursor1.
 -      (note_mouse_highlight): Use Vvoid_text_area_pointer.
 -      (syms_of_xdisp): Defsubr new defun.  Intern and staticpro new
 -      variables.  DEFVAR_LISP Vvoid_text_area_pointer instead of
 -      Vshow_text_cursor_in_void.
 -
 -      * xfaces.c (cache_face): Abort if c->size exceeds MAX_FACE_ID.
 -
 -      * xfns.c (x_set_mouse_color): Remove bogus x_check_errors call.
 -      (Qimage): Remove extern (now in lisp.h).
 -      (valid_image_p, parse_image_spec): Use IMAGEP macro.
 -
 -      * xmenu.c (show_help_event): Remove unused code.
 -
 -      * xterm.c (Qface, Qmouse_face): Remove unused externs.
 -      (x_draw_hollow_cursor): Draw cursor using glyph's rather than
 -      row's ascent and descent, to get a sensible height on tall rows.
 -
 -2003-12-25  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * minibuf.c (Fcompleting_read): Undo previous change.
 -
 -2003-12-25  Lars Hansen  <larsh@math.ku.dk>
 -
 -      * dired.c (Fdirectory_files, Fdirectory_files_and_attributes):
 -      Arguments GCPRO'ed in call to file name handler.
 -
 -2003-12-25  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * termcap.c (tgetst1): Scan for "%pN"; if all
 -      N are continuous in [1,9], remove all "%pN".
 -
 -2003-12-24  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_frame_set_char_size): Call x_wm_set_size_hint.
 -
 -      * xfaces.c (lface_fully_specified_p): Take into account that
 -      MAC OS always have unspecified stipple.
 -
 -2003-12-24  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * tparam.c (tparam1): Add handling for `%pN', which
 -      means use param N for the next substitution.
 -
 -2003-12-24  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * xfaces.c (Fcolor_gray_p): Fix omission bug:
 -      In case `frame' is nil, consult the selected frame.
 -      (Fcolor_supported_p): Likewise.
 -
 -2003-12-23  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fns.c (Frandom, Fstring_make_multibyte, Fset_char_table_range):
 -      Doc fixes.
 -
 -      * minibuf.c (read_minibuf): Allow INITIAL to be a cons of a string
 -      and an integer.  Adapt the introductory comment accordingly.
 -      (Fread_from_minibuffer): Delete code moved into read_minibuf.
 -      Doc fix.
 -      (Fread_minibuffer, Fread_no_blanks_input): Adapt to changes in
 -      read_minibuf.
 -      (Fcompleting_read): Delete code moved into read_minibuf.
 -      (Ftest_completion): Make it handle obarrays and hash tables correctly.
 -
 -2003-12-03  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_iso2022): Fix for preserving UTF-8
 -      encoding sequence.
 -
 -2003-12-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * composite.c (syms_of_composite): Don't make the compostion hash
 -      table week.
 -
 -2003-11-30  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * intervals.h: Add EXFUN for Fget_char_property_and_overlay.
 -      * textprop.c (Fget_char_property_and_overlay): New function.
 -      (syms_of_textprop): Defsubr it.
 -
 -2003-11-29  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * dispnew.c (buffer_posn_from_coords): Add ifdef HAVE_WINDOW_SYSTEM
 -      to compile on terminal configuration.
 -
 -      * fileio.c (Fread_file_name): Check use_file_dialog also before
 -      calling Fx_file_dialog.
 -
 -      * fns.c (use_file_dialog): New variable.
 -      (syms_of_fns): DEFVAR_BOOL use-file-dialog.
 -
 -2003-11-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * msdos.c (Qcursor_type, Qbar, Qhbar): Declare extern.
 -      (syms_of_msdos): Don't intern and staticpro them.
 -
 -2003-11-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (buffer_posn_from_coords): Calculate and return pixel
 -      coordinates relative to glyph at posn.  If glyph is an image,
 -      return that as object at posn.  Callers changed.
 -      (mode_line_string, marginal_area_string): Calculate and return
 -      pixel coordinates relative to glyph.  Callers changed.
 -
 -      * dispextern.h (buffer_posn_from_coords, mode_line_string)
 -      (marginal_area_string): Fix prototypes.
 -      (window_box_left_offset, window_box_right_offset): Add prototypes.
 -
 -      * frame.h (get_specified_cursor_type, get_window_cursor_type):
 -      Remove prototypes.
 -
 -      * keyboard.h (EVENT_CLICK_COUNT, POSN_SCROLLBAR_PART): Fix defines.
 -
 -      * keyboard.c (make_lispy_position): Add x and y coordinates
 -      relative to the current glyph as 7th element of position.
 -      If glyph is an image, return it in the object element.
 -      (read_key_sequence): Skip checks for keymap property in cases
 -      where POSN_STRING is not a string (e.g. an image).
 -
 -      * xdisp.c (Vdisplay_pixels_per_inch): New variable.
 -      (Vshow_text_cursor_in_void): New variable.
 -      (glyph_to_pixel_coords): Don't use negative hpos.
 -      (x_y_to_hpos_vpos): Fix for partially visible first glyph.
 -      (append_stretch_glyph): Change ascent arg to be actual value
 -      in pixels rather than ratio to height.  Callers changed.
 -      (calc_pixel_width_or_height): New aux function, implementing
 -      pixel based artihmetic for glyph widths and heights.
 -      (produce_stretch_glyph): Use calc_pixel_width_or_height for
 -      :width, :height, :align-to, and :ascent, thus allowing these to
 -      be specified in pixels as well as multiples of characters.
 -      Don't produce stretch glyphs with zero width or height.
 -      (get_specified_cursor_type): Declare static.
 -      (get_window_cursor_type): Declare static.  Add glyph arg to be
 -      able to know when cursor is on an image; always substitute
 -      hollow-box cursor for filled-box cursor on images, to avoid
 -      negative images and flicker when blinking the cursor.
 -      (display_and_set_cursor): Pass glyph to get_window_cursor_type.
 -      (note_mode_line_or_margin_highlight): Use non-text cursor rather
 -      than vertical scroll-bar cursor in display margins.
 -      (note_mouse_highlight): Use non-text cursor rather than text
 -      cursor in fringes and over images in the text area.
 -      Use non-text cursor when mouse pointer is outside editable text,
 -      i.e. in the void after end-of-line or end-of-buffer; this was
 -      already done for W32, but is now standard for all systems --
 -      user can toggle show-text-cursor-in-void to get old behaviour.
 -      (syms_of_xdisp): DEFVAR_LISP Vshow_text_cursor_in_void and
 -      Vdisplay_pixels_per_inch.
 -
 -2003-11-25  Andreas Schwab  <schwab@suse.de>
 -
 -      * fns.c (internal_equal) <case Lisp_Vectorlike>: Declare size as
 -      EMACS_INT to not lose bits.
 -      (Ffillarray): Don't set bits beyond the size of a bool vector.
 -
 -2003-11-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * print.c (Fredirect_debugging_output) [!GNU_LINUX]: Do not
 -      define this defun on systems that cannot use stderr as lvalue.
 -
 -2003-11-24  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * s/freebsd.h (LD_SWITCH_SYSTEM_TEMACS)
 -      [__FreeBSD_version >= 500042]: Define as -znocombreloc because
 -      ld's default is incompatible with unexec.
 -
 -2003-11-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (enum window_loop): Add REDISPLAY_BUFFER_WINDOWS.
 -      (window_loop): Handle REDISPLAY_BUFFER_WINDOWS.
 -      (Fforce_window_update): New defun.
 -      (syms_of_window): Defsubr it.
 -      (Fset_window_margins, Fset_window_fringes): Doc fix.
 -
 -      * print.c (Fredirect_debugging_output): New defun.
 -      (syms_of_print): Defsubr it.
 -
 -2003-11-22  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fns.c (Fset_char_table_parent): Doc fix.
 -
 -2003-11-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (buffer_posn_from_coords): Return actual row/column
 -      for glyph clicked on, rather than (unused) pixel positions.
 -      (mode_line_string, marginal_area_string): Change X and Y args to
 -      pointers for returning actual row/column for glyph clicked on.
 -      Simplify and optimize loops.
 -
 -      * dispextern.h (mode_line_string, marginal_area_string):
 -      Update prototypes.
 -
 -      * keyboard.c (make_lispy_position): New function for generating
 -      mouse click positions from frame and pixel coordinates.
 -      Enhanced to return buffer position and actual row/column for
 -      events outside the text area using updated mode_line_string and
 -      marginal_area_string functions.
 -      Return left-fringe and right-fringe clicks as such, rather than
 -      clicks in text area.
 -      (make_lispy_event) [USE_X_TOOLKIT, USE_GTK]: Don't call
 -      pixel_to_glyph_coords, as we never use the results.
 -      (make_lispy_event): Use make_lispy_position for MOUSE_CLICK_EVENT,
 -      WHEEL_EVENT, and DRAG_N_DROP_EVENT to replace redundant code.
 -      Eliminate unused code in WHEEL_EVENT handling.
 -      (make_lispy_movement): Use make_lispy_position.
 -
 -      * window.c (coordinates_in_window): Remove redundant tests.
 -      Fix returned X pixel value for left-margin.
 -
 -      * xdisp.c (note_mode_line_or_margin_highlight): Adapt to new
 -      mode_line_string and marginal_area_string parameters.
 -
 -2003-11-22  Lars Hansen  <larsh@math.ku.dk>
 -
 -      * w32.c (struct the_group, getgrgid): Add.
 -      * mac.c (struct my_group, getgrgid): Add.
 -
 -2003-11-21  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fns.c (Fassq, Fassoc, Frassq, Frassoc): Doc fixes.
 -
 -2003-11-21  Lars Hansen  <larsh@math.ku.dk>
 -
 -      * dired.c (Ffile_attributes): Add parameter ID-FORMAT and
 -      include in call to file name handler.  Optionally translate numeric
 -      UID and GID to strings.  Update docstring.
 -      (directory_files_internal): Add parameter ID-FORMAT.
 -      (Fdirectory_files_and_attributes): Add parameter ID-FORMAT and
 -      include in call to file name handler and call to
 -      directory_files_internal.  Update Docstring.
 -      (Fdirectory_files): Add dummy parameter in call to
 -      directory_files_internal.
 -      * lisp.h (Qinteger): Add.
 -      (Qinteger_or_floatp, Qinteger_or_float_or_marker_p): Remove.
 -      (Ffile_attributes): Add parameter.
 -      * data.c (Qinteger): Export.
 -
 -2003-11-21  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fns.c (Freverse, Fnreverse): Doc fixes.
 -
 -2003-11-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (init_iterator): Initialize it->start to position
 -      before reseating (in case start position is invisible).
 -      (init_to_row_start): Set it->start to row-start.
 -      (redisplay_window): Accept optional_new_start if start position
 -      is invisible (in which case IT_CHARPOS overshoots PT).
 -      (display_line): Setup row->start from it->start (rather than
 -      it->current which is wrong if first char on line is invisible).
 -      When done, reseat it->start to it->current (= start of next row).
 -      (expose_area): Fix exposure of text area when first char (e.g. TAB)
 -      is only partially visible.
 -
 -      * dispextern.h (struct it): New member start.
 -
 -2003-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * alloc.c (make_float, Fcons): Clear the markbit at init time.
 -      (make_float, Fcons, Fmake_symbol, allocate_misc): Move the increment
 -      of block_index outside of the macro call.
 -      (Fgarbage_collect): Remove null code.
 -
 -      * m/amdx86-64.h: Don't redefine XPNTR.
 -
 -      * keyboard.c (parse_modifiers, apply_modifiers): Use INTMASK instead
 -      of VALMASK.
 -
 -      * fns.c (hashfn_eq, hashfn_eql, hashfn_equal, hash_put)
 -      (sxhash_string, sxhash): Use INTMASK instead of VALMASK.
 -      (maybe_resize_hash_table): Use MOST_POSITIVE_FIXNUM.
 -
 -      * lisp.h (VALMASK): Only define for non-union type.
 -      (MARKBIT): Remove.
 -      (ARRAY_MARK_FLAG): Use previous value of MARKBIT.
 -      (XTYPE): Define unconditionally.
 -      (XSETTYPE): Remove one more remnant.
 -      (EQ): Define differently for the union and non-union cases.
 -      (INTMASK): New bit mask.
 -      (struct Lisp_Marker): Move down to prepare for upcoming patch.
 -      (GC_EQ): Delegate to EQ.
 -
 -      * coding.c (coding_restore_composition): Lisp_Object/int mixup.
 -
 -2003-11-17  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_window_to_scroll_bar): Move check of display to
 -      where window_id is compared.
 -
 -2003-11-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispextern.h (struct it): New member first_vpos.
 -
 -      * xdisp.c (start_display): Set it->first_vpos.
 -      (try_window_id): Use first_vpos to start display in first _text_
 -      line if no reusable lines at start of window with header line.
 -
 -2003-11-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * w32fns.c (XPutPixel):
 -      * w32bdf.c (w32_init_bdf_font):
 -      * sunfns.c (sel_read):
 -      * process.c (Fmake_network_process):
 -      * frame.c (store_frame_param):
 -      * fontset.c (Fset_fontset_font):
 -      * emacs.c (shut_down_emacs):
 -      * ccl.c (ccl_driver): Remove period at end of error message.
 -
 -      * config.in: Regenerate.
 -
 -      * xfns.c (x_window_to_frame, x_any_window_to_frame)
 -      (x_non_menubar_window_to_frame, x_menubar_window_to_frame)
 -      (x_top_window_to_frame): Add Display* argument to xg_win_to_widget.
 -      (x_create_bitmap_mask, xg_set_icon, create_frame_xic)
 -      (xic_set_statusarea, x_window, gif_load): Formatting adjustments.
 -
 -      * xterm.h (struct x_display_info): New field xg_cursor for GTK.
 -
 -      * xterm.c: Add Display * to x_window_to_scroll_bar declaration.
 -      (XTmouse_position, handle_one_xevent): Pass Display* to
 -      x_window_to_scroll_bar.
 -      (x_window_to_scroll_bar): Take a Display* argument.
 -      Check that display for frame is equal to Display* argument.
 -      (event_handler_gdk): Remove current_dpyinfo.  Get dpyinfo from
 -      x_display_info_for_display instead.  Use Display in xev instead
 -      of GDK_DISPLAY.
 -      (x_dispatch_event): Call x_display_info_for_display.
 -      (XTread_socket): Move GTK part out of loop.  current_dpyinfo removed.
 -      (x_connection_closed): Call xg_display_close for GTK.
 -      (x_term_init): Call xg_display_open for additional displays.
 -      Initiate dpyinfo->xg_cursor with call to xg_create_default_cursor
 -      for GTK.
 -
 -      * xmenu.c (single_menu_item, mouse_position_for_popup)
 -      (x_activate_menubar): Formatting adjustments.
 -
 -      * xdisp.c (update_tool_bar, redisplay_tool_bar): Formatting
 -      adjustments.
 -
 -      * gtkutil.c (xg_get_gdk_display, xg_set_screen, xg_display_open)
 -      (xg_display_close, xg_create_default_cursor)
 -      (xg_get_gdk_pixmap_and_mask): New functions for multiple display
 -      handling.
 -      (xg_left_ptr_cursor): Remove.
 -      (xg_set_cursor): Change cursor to GdkCursor*.  Do not create
 -      cursor here.
 -      (xg_win_to_widget): Take Display* argument, call
 -      gdk_xid_table_lookup_for_display.
 -      (xg_create_frame_widgets, xg_get_file_name, create_menus)
 -      (xg_create_widget, xg_modify_menubar_widgets): Call xg_set_screen.
 -      (xg_create_widget, xg_create_scroll_bar): Use xg_cursor
 -      in FRAME_X_DISPLAY_INFO.
 -      (xg_get_scroll_id_for_window): Take Display* argument.
 -      (update_frame_tool_bar): Call xg_get_gdk_pixmap_and_mask.
 -      (xg_initialize): Remove xg_left_ptr_cursor.
 -
 -      * gtkutil.h (xg_get_scroll_id_for_window, xg_win_to_widget): Add
 -      Display* argument.
 -      (xg_display_open, xg_display_close, xg_create_default_cursor): Declare.
 -
 -2003-11-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_detect_focus_change): Do not change focus frame for
 -      Enter/LeaveNotify if the current focus frame has explicit focus.
 -
 -2003-11-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * dispnew.c (update_text_area): Fix redisplay error when hscroll
 -      is active and first glyph is only partially visible.
 -
 -2003-11-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (select_frame_for_redisplay): New function.
 -      (redisplay_internal): Record also selected_frame for
 -      unwind_redisplay.  Call select_frame_for_redisplay before
 -      redrawing each frame.
 -      (unwind_redisplay): Argument changed to a cons.
 -
 -2003-11-12  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fns.c (Fstring_to_multibyte): Doc fix.
 -
 -2003-11-11  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_list_fonts): Fix excluding of auto-scaled fonts.
 -
 -2003-11-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (x_window): Set XtNx and XtNy in shell widget for
 -      program specified positions.
 -
 -2003-11-08  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (XAW_ARROW_SCROLLBARS): Define it for Xaw 1.5E.
 -
 -2003-11-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (lisp): Add kannada.el.
 -      (shortlisp): Likewise.
 -
 -2003-11-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (coding_allocate_composition_data):
 -      Reset coding->composing to COMPOSITION_NO.
 -      (coding_restore_composition): Detect invalid composition data.
 -      Give Fstring and Fvector a Lispy integer, not C int.
 -
 -2003-11-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * floatfns.c (Flogb): Don't use VALMASK.
 -
 -      * m/amdx86-64.h (VALBITS, XINT, XUINT): Remove.
 -      * m/ia64.h (VALBITS, XINT, XUINT): Remove.
 -
 -      * lisp.h (XINT): Move the cast to clarify what is going on.
 -      (GCTYPEMASK, XSETTYPE): Remove.
 -      (XGCTYPE): Make it an alias of XTYPE.
 -
 -2003-11-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_term_init): Fix formatting.
 -
 -2003-11-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.h (xg_have_tear_offs): Declare.
 -      (xg_keep_popup, xg_did_tearoff): Remove.
 -
 -      * gtkutil.c: Remove variable xg_did_tearoff.
 -      (xg_have_tear_offs): New function.
 -      (tearoff_remove): Just decrease xg_detached_menus.
 -      (tearoff_activate): Increase xg_detached_menus and call
 -      tearoff_remove when tearoff is removed.
 -      (xg_keep_popup): Remove function.
 -      (create_menus): Give add_tearoff_p as argument to recursive
 -      call to create_menus.
 -      (xg_create_widget): Use variables instead of multiple
 -      strcmp.  Tell create_menus to create tear off only for
 -      menu bar menus.
 -      (xg_update_menubar): Change title for a detached menu also.
 -      (xg_modify_menubar_widgets): Always call xg_update_menubar, regardless
 -      of deep_p.
 -      (xg_initialize): Initialize xg_detached_menus, remove
 -      initialization of xg_did_tearoff.
 -
 -      * xmenu.c (set_frame_menubar): For GTK, set deep_p if
 -      xg_have_tear_offs returns non-zero.
 -      (create_and_show_popup_menu): Remove setting of xg_did_tearoff and
 -      call to xg_keep_popup.
 -
 -2003-11-01  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (XTread_socket): Handle menubar selection and grow
 -      window only for mouseDown events.
 -
 -2003-10-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_term_init): For GTK part, increase x_initialized
 -      to check for more than one display.  Use error instead of return 0.
 -
 -2003-10-31  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * unexmacosx.c (unrelocate): New function (contributed by Nozomu Ando).
 -      (copy_dysymtab): Call it.
 -
 -2003-10-31  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * eval.c (Fdefvaralias): Doc fix.
 -
 -2003-10-26  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * data.c (Fsetplist): Doc fix.
 -
 -2003-10-14  Lute Kamstra  <lute@gnu.org>
 -
 -      * window.c (Fset_window_fringes): Clarify docstring.
 -
 -2003-10-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (Fset_window_margins): Simplify arg checking.
 -
 -2003-10-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * regex.c (MAX_BUF_SIZE): Reduce to 2**15.
 -      (print_partial_compiled_pattern): Replace assert with a printout.
 -      (skip_noops, mutually_exclusive_p): Change args, values to re_char *.
 -
 -      * alloc.c (lisp_align_malloc): If BASE is 0, call memory_full.
 -
 -      * window.c (Fset_window_margins): Allow only integers as args.
 -      (syms_of_window) <special-display-buffer-names,
 -      special-display-regexps>: Doc fixes.
 -
 -2003-10-13  Lute Kamstra  <lute@gnu.org>
 -
 -      * window.c (Fset_window_fringes): Elaborate docstring.
 -
 -2003-10-12  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (XTread_socket): Call DragWindow only for mouseDown events.
 -
 -      * s/darwin.h (GC_MARK_STACK): Define.
 -
 -2003-10-12  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * window.c (shrink_windows): New function.
 -      (size_window): Call shrink_windows to calculate window sizes when
 -      shrinking frame with more than one window.
 -
 -2003-10-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (compute_fringe_widths): Doc fix.
 -
 -2003-10-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Fcoding_system_p): Return t for auto-loading coding system.
 -
 -2003-10-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Qcoding_system_define_form): New variable.
 -      (syms_of_coding): Intern and staticpro it.
 -      (Fcheck_coding_system): Try to autoload the definition of
 -      CODING-SYSTEM.
 -
 -2003-10-05  Luc Teirlinck  <teirllm@auburn.edu>
 -
 -      * fns.c (Frequire): Doc fix.
 -
 -2003-10-05  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_send_client_event): New function as a base for
 -      manipulating extended window manager hints.
 -      (Fx_send_client_event): Remove unused variable s.
 -
 -      * w32term.c (w32_read_socket): Remove call to x_check_fullscreen_move,
 -      that function is removed.
 -
 -      * xterm.c (x_set_offset): Use move_offset_left/top instead of
 -      x/y_pixels_outer_diff.
 -      (x_check_expected_move): Calculate move_offset_left/top.
 -
 -      * xterm.h (struct x_output): New members: move_offset_top/left.
 -
 -      * frame.c (x_set_frame_parameters): Remove x_fullscreen_move,
 -      call x_set_offset directly.
 -
 -      * frame.h (enum): FULLSCREEN_MOVE_WAIT removed.
 -
 -      * frame.c (Fdelete_frame): Free decode_mode_spec_buffer.
 -
 -      * xterm.c (x_delete_display): Free font names and font_encoder
 -      in dpyinfo->font_table.
 -
 -      * xfns.c (Fx_close_connection): Only call XFreeFont here.
 -      Move xfree of font names to x_delete_display.
 -
 -      * xterm.h (struct x_display_info): New member, wm_type.
 -      (struct x_output): New members, expected_top/left and
 -      check_expected_move.
 -
 -      * xterm.c (handle_one_xevent): Reset wm_type when ReparentNotify
 -      is received.
 -      (handle_one_xevent): Rename x_check_expected_move from
 -      x_check_fullscreen_move.
 -      (x_set_offset): Only add WM decoration sizes to modified_top/left
 -      for X_WMTYPE_A.  Set check_expected_move when WM type is unknown.
 -      (x_check_expected_move): Rename from x_check_fullscreen_move.
 -      Removed fullscreen specific code.  Use check_expected_move,
 -      expected_left/top instead.  Also, set wm_type.
 -      (x_term_init): Initialize wm_type to unknown.
 -
 -      * frame.c (x_fullscreen_move): Remove addition of WM decoration
 -      sizes to move_x/y.
 -
 -2003-10-03  Kenichi Handa  <handa@m17n.org>
 -
 -      * macterm.c (x_load_font): Clear all members of FONTP before start
 -      filling them.
 -
 -2003-10-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (fs_load_font): Don't set fontp->font_encoder to NULL
 -      before calling find_ccl_program_func.  Call find_ccl_program_func
 -      only when fontp->font_encoder is not NULL.
 -
 -      * xterm.c (x_load_font): Clear all members of FONTP before start
 -      filling them.
 -
 -2003-10-03  John Paul Wallington  <jpw@gnu.org>
 -
 -      * keymap.c (map_keymap): Don't abort when binding is a vector.
 -
 -2003-10-02  Jason Rumney  <jasonr@gnu.org>
 -
 -      * makefile.w32-in (emacs.o, coding.o, bytecode.o):
 -      Sync dependencies with Makefile.in.
 -      (alloca.o): Remove.
 -
 -      * w32fns.c (w32_load_system_font): Clear all members of FONTP before
 -      filling them.
 -
 -      * w32bdf.c (w32_load_bdf_font): Likewise.
 -
 -2003-09-30  Richard M. Stallman  <rms@gnu.org>
 -
 -      * term.c (set_tty_color_mode): Calculate current_mode_spec
 -      regardless of value of VAL.
 -
 -      * intervals.c (graft_intervals_into_buffer):
 -      Set BUF_INTERVALS (buffer)->up_obj when appropriate.
 -      Handle over_used when splitting UNDER.
 -
 -2003-09-30  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -
 -      * regex.c (regex_compile): Free the stack when returning from function.
 -
 -2003-09-28  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (Finternal_char_font): Change return value to
 -      cons (FONT-NAME . GLYPH-CODE).
 -
 -2003-09-28  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * term.c (tty_setup_colors): Treat any negative argument as -1.
 -
 -2003-09-27  Gaute B Strokkenes  <biggaute@uwc.net>  (tiny change)
 -
 -      * process.c (send_process): Delete unused temp_buf.
 -
 -2003-09-26  Dave Love  <fx@gnu.org>
 -
 -      * xterm.c (x_bitmap_mask): Declare.
 -
 -2003-09-25  Dave Love  <fx@gnu.org>
 -
 -      * Makefile.in (fns.o): Depend on md5.h.
 -
 -2003-09-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (set_window_buffer): Fix redisplay problems when
 -      switching between buffers with different display margin widths.
 -
 -2003-09-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (set_socket_option): Fix :bindtodevice option.
 -      (Fset_network_process_option): Update process contact list when
 -      setting option succeeds.
 -      (Fmake_network_process): Doc fix.
 -
 -2003-09-23  Dave Love  <fx@gnu.org>
 -
 -      * process.c (Fnetwork_interface_info): Use HAVE_STRUCT_IFREQ... macros.
 -
 -2003-09-22  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * term.c (set_tty_color_mode): Use INTEGERP to test whether a
 -      color mode is an integer number (it could be -1).
 -
 -2003-09-22  Richard M. Stallman  <rms@gnu.org>
 -
 -      * intervals.c (graft_intervals_into_buffer): Correct the main loop
 -      in the case where OVER is longer than UNDER.
 -
 -2003-09-22  Masatake YAMATO  <jet@gyve.org>
 -
 -      * window.c (Fset_window_scroll_bars): Validate the value of
 -      `vertical_type'.
 -
 -2003-09-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * frame.c (Vdefault_frame_scroll_bars): New variable.
 -      (x_set_vertical_scroll_bars): Use it instead of hardcoded values.
 -      (syms_of_frame): DEFVAR_LISP it, and initialize according to
 -      window-system default scroll bar position.
 -
 -      * window.c (Fwindow_scroll_bars): Doc fix.
 -
 -2003-09-19  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_set_offset): Take window manager decorations into account.
 -
 -2003-09-19  Richard M. Stallman  <rms@gnu.org>
 -
 -      * atimer.h: Don't include lisp.h.
 -      (P_): Define it here (as well as elsewhere).
 -
 -      * print.c (Fprin1_to_string): Move the PRINTPREPARE
 -      later, so that PRINTFINISH won't unbind Qinhibit_modification_hooks.
 -
 -      * data.c (Fvariable_binding_locus): New function.
 -      (syms_of_data): defsubr it.
 -      (Flocal_variable_p): Delete duplicate call to indirect_variable.
 -
 -2003-09-18  Dave Love  <fx@gnu.org>
 -
 -      * alloc.c (GC_MALLOC_CHECK): Move conditional undef after lisp.h.
 -
 -      * process.c (Fnetwork_interface_info): Fix type error.
 -      (Fnetwork_interface_list): Doc fix.
 -      (read_process_output, read_process_output): Delete unused var.
 -
 -2003-09-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Fnetwork_interface_list, Fnetwork_interface_info):
 -      Require HAVE_NET_IF_H and HAVE_SYS_IOCTL_H to include these fns.
 -      (Fnetwork_interface_info): Check that ifreq struct has required
 -      fields before accessing them; this requires that those fields are
 -      defined as macros, which may be too restrictive on some platforms,
 -      but it is better than failing on other platforms.
 -      (syms_of_process): Only defsubr above fns when included.
 -
 -2003-09-17  Dave Love  <fx@gnu.org>
 -
 -      * unexalpha.c: Don't include varargs.h.
 -
 -2003-09-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Fset_process_sentinel): Add sentinel to childp plist
 -      for network process.
 -      (socket_options): Add `:' prefix to option names.  Add optbit field.
 -      (set_socket_option): Remove no_error arg and special handling of s < 0.
 -      Return 1<<optbit for known option, 0 for unknown.
 -      Do not interpret 0 as false for boolean option (only nil).
 -      Pass failed option and value to report_file_error.
 -      (Fset_network_process_options): Replace by Fset_network_process_option.
 -      (Fset_network_process_option): New function to set just one option.
 -      (Fmake_network_process): Allow :coding arg to be a cons.
 -      Allow :server arg to be an integer specifying backlog size.
 -      Remove :options arg, and allow options to be specified directly
 -      as :KEY, VALUE pairs.  Parse these options before binding socket.
 -      As before, :reuseaddr t is default for a server process, but this
 -      can now be disabled by specifying :reuseaddr nil.
 -      (Fnetwork_interface_info): Rename from Fget_network_interface_info.
 -      (init_process): Availability of network options is now checked with
 -      simpler syntax (featurep 'make-network-process :OPTION); use loop to
 -      setup features.
 -      (syms_of_process): Fix defsubr's for the replaced functions.
 -
 -2003-09-16  Dave Love  <fx@gnu.org>
 -
 -      * Makefile.in: Depend on coding.h.
 -
 -2003-09-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c [HAVE_SOCKETS]: Include sys/ioctl.h and net/if.h.
 -      (Fnetwork_interface_list, Fget_network_interface_info): New defuns.
 -      (syms_of_process): Defsubr them.
 -
 -      * config.in: Regenerate.
 -
 -2003-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * m/sr2k.h (XMARKBIT, XUNMARK): Remove.
 -      * m/news-r6.h (XUNMARK): Remove.
 -      * m/mips.h (XUNMARK): Remove.
 -      * m/mips-siemens.h (XUNMARK): Remove.
 -      * m/iris4d.h (XUNMARK): Remove.
 -      * m/hp800.h (XMARKBIT, XUNMARK): Remove.
 -
 -2003-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * lisp.h (VALBITS): Don't remove 1 for the markbit.
 -      (union Lisp_Object): Use unsigned int for types.  Remove markbit.
 -      (MARKBIT): Remove 1 from VALBITS so we still use same old val.
 -      (XTYPE): Use unsigned right-shift.
 -      (XMARKBIT, XMARK, XUNMARK): Remove.
 -
 -      * alloc.c (init_intervals, init_symbol, init_marker):
 -      Don't preallocate anything.
 -      (Fgarbage_collect, mark_object): Ignore the markbit.
 -
 -      * bytecode.c (mark_byte_stack, unmark_byte_stack): Ignore the markbit.
 -
 -2003-09-08  Lute Kamstra  <lute@gnu.org>
 -
 -      * xdisp.c (pint2hrstr): New function.
 -      (decode_mode_spec): Add `%i' and `%I' specs.
 -      * buffer.c (syms_of_buffer): Document `%i' and `%I' constructs
 -      for `mode-line-format'.
 -
 -2003-09-07  Andreas Schwab  <schwab@suse.de>
 -
 -      * alloc.c: Use long instead of int when casting ABLOCKS_BUSY to
 -      avoid warning.
 -
 -2003-09-07  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * editfns.c (region_limit): Support any non-zero value of BEGINNINGP.
 -
 -2003-09-03  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_window_cursor_type): Partially undo 2002-03-01
 -      change (superseded by 2002-08-30 change); the default blink-off
 -      cursor is now again "no cursor".
 -
 -2003-09-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * makefile.w32-in (alloca.o): Remove.
 -      (coding.o): Depend on intervals.h
 -      (emacs.o, bytecode.o): Depend on window.h
 -
 -2003-09-01  Dave Love  <fx@gnu.org>
 -
 -      * Makefile.in (alloca.o): Remove commands.
 -      (coding.o): Depend on intervals.h composite.h window.h.
 -      (emacs.o): Depend on window.h keyboard.h keymap.h.
 -      (gtkutil.o): Depend on keyboard.h charset.h coding.h.
 -      (bytecode.o): Depend on window.h.
 -
 -2003-08-31  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_per_char_metric): Allow cached metrics to be
 -      returned even when font_type is unknown.
 -
 -      * xdisp.c (init_iterator): Remove old WINDOWSNT conditional.
 -
 -2003-08-30  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_term_init): Initialize new fields in x_display_info.
 -
 -      * xterm.h (struct x_display_info): Add red/green/blue_bits and
 -      *_offset.
 -
 -      * xfns.c (lookup_rgb_color): Use new fields in x_display_info to
 -      calculate pixel value.
 -
 -2003-08-29  Gerd Moellmann  <gerd.moellmann@t-online.de>
 -
 -      * xdisp.c (redisplay_internal): Fix change of 2003-04-30.
 -      Don't tell redisplay display is accurate when it's actually been
 -      paused for pending input.
 -
 -2003-08-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * dispnew.c (adjust_glyph_matrix): Call window_box
 -      whenever W is nonzero.
 -
 -      * data.c (Fmake_variable_buffer_local, Fmake_local_variable)
 -      (Fkill_local_variable, Fmake_variable_frame_local)
 -      (Flocal_variable_p, Flocal_variable_if_set_p):
 -      Use indirect_variable to trace thru variable aliases.
 -
 -      * config.in: Updated.
 -
 -      * callint.c (Fcall_interactively): Save and restore
 -      Vthis_command, Vthis_original_command, real_this_command,
 -      and current_kboard->Vlast_command.
 -
 -      * abbrev.c (Fexpand_abbrev): Insert before deleting.
 -
 -2003-08-29  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * xfns.c (lookup_rgb_color): Handle TrueColor visuals specially.
 -
 -2003-08-28  David Abrahams  <dave@boost-consulting.com>  (tiny change)
 -
 -      * coding.c (decode_coding_iso2022): Initialize local variable c2.
 -      (decode_coding_sjis_big5): Likewise.
 -
 -2003-08-27  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (sys_pipe): Protect against file descriptor overflow.
 -
 -      * w32fns.c (syms_of_w32fns): Remove non-existent functions.
 -
 -      * w32term.c (w32_read_socket): Fix WM_MOUSEWHEEL assignment.
 -
 -2003-08-26  Terje Rosten  <terjeros@phys.ntnu.no>
 -
 -      * xfns.c (Vgtk_version_string): New variable.
 -      (syms_of_xfns): DEFVAR_LISP it.  Provide gtk.
 -
 -2003-08-24  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * term.c (term_init): Remove `const' from buffer_size's declaration.
 -
 -      * Makefile.in (msdos.o): Depend on intervals.h.
 -
 -      * msdos.c: Include intervals.h, since STRING_INTERVALS requires that.
 -
 -2003-08-21  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h (struct x_display_info): New fields: client_leader_window
 -      and Xatom_wm_client_leader.
 -
 -      * xterm.c (x_initialize): Move call to x_session_initialize to ...
 -      (x_term_init): ... here.  Initialize client_leader fields in dpyinfo.
 -
 -      * xsmfns.c (create_client_leader_window): New function.
 -      (x_session_initialize): Call create_client_leader_window, take
 -      dpyinfo as argument.
 -
 -      * xfns.c (Fx_create_frame): Set property WM_CLIENT_LEADER.
 -
 -      * Makefile.in (xsmfns.o): Add more depenedencies.
 -
 -2003-08-21  Dave Love  <fx@gnu.org>
 -
 -      * m/iris4d.h: Use _MIPS_SZLONG, not _LP64.
 -
 -2003-08-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * term.c (term_init): Fix previous change; don't rely on the
 -      length of `buffer' if TERMINFO is defined.
 -
 -2003-08-20  Dave Love  <fx@gnu.org>
 -
 -      * atimer.h: Include lisp.h.
 -
 -      * lisp.h (EMACS_LISP_H): New.
 -      (popup_activated_flag): Don't declare.
 -
 -      * alloca.c: Some merging with gnulib.  Change logic and doc
 -      concerning (x)malloc/(x)free -- no longer Emacs-specific.
 -      [DO_BLOCK_INPUT]: Don't include lisp.h.
 -      (xmalloc, xfree): Declare.
 -      (malloc): Don't declare.
 -
 -      * Makefile.in (LWLIB_OPTIONS): Remove (unused).
 -      (alloca.o): Remove obsolete stuff concerning alloca.s.  Depend on
 -      atimer.h, blockinput.h.
 -
 -      * alloc.c (lisp_align_malloc): Change type of `aligned'.
 -
 -      * alloca.s: Remove.
 -
 -2003-08-19  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * s/freebsd.h [__FreeBSD_version >= 400000]: Define TERMINFO,
 -      use -lncurses.
 -
 -      * term.c (term_init): Use a buffer of size 4096 for tgetent since
 -      FreeBSD returns something longer than 2044.  Abort if the end of
 -      the buffer is overwritten.
 -
 -2003-08-19  Miles Bader  <miles@gnu.org>
 -
 -      * xterm.c (x_term_init): Correctly use result of Ffile_readable_p.
 -
 -2003-08-19  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * alloc.c (lisp_align_malloc): Check for memory full when
 -      allocating ablocks, which also avoids freeing a pointer into an
 -      ablocks structure.
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 1100000.
 -
 -      * buffer.c (Fmove_overlay): Set overlay's next pointer unconditionally.
 -
 -2003-08-16  Richard M. Stallman  <rms@gnu.org>
 -
 -      * editfns.c (Fencode_time): Doc fix.
 -
 -2003-08-16  David Ponce  <david@dponce.com>
 -
 -      * fileio.c (Fwrite_region): Fix conditional expression to issue
 -      the right message.
 -
 -2003-08-16  Juri Linkov  <juri@jurta.org>
 -
 -      * syntax.c (Fforward_word): Argument changed to optional.
 -      Set default value to 1.
 -
 -2003-08-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (better_font_p): Prefer a real scalable font; i.e. not
 -      what autoscaled.
 -      (best_matching_font): Once we find a better scalable font, set
 -      non_scalable_has_exact_height_p to 1.
 -      (try_font_list): Call try_alternative_families to try any family
 -      with the given registry.
 -
 -2003-08-09  Andreas Schwab  <schwab@suse.de>
 -
 -      * alloc.c (mark_object): Handle Lisp_Misc_Save_Value.
 -
 -      * print.c (print_string): Fix printing of multibyte string with
 -      nontrivial printcharfun.
 -
 -2003-07-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (xg_set_icon): Rewrite to compile with GTK 2.0 and 2.2.
 -
 -      * xterm.c (x_bitmap_icon): Return if xg_set_icon succeeds.
 -
 -2003-07-31  Kenichi Handa  <handa@m17n.org>
 -
 -      * process.c (read_process_output): Return the actually read bytes
 -      instead of the result of decoding.
 -
 -2003-07-31  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.h (struct x_bitmap_record): New member have_mask.
 -
 -      * xfns.c (x_create_bitmap_from_data): Initialize have_mask member
 -      to 0.
 -      (x_create_bitmap_from_file): Likewise.
 -      (x_destroy_bitmap): Check have_mask member before freeing a mask.
 -      (x_destroy_all_bitmaps): Likewise.
 -      (x_create_bitmap_mask): Set have_mask member to 1.
 -
 -2003-07-30  Richard M. Stallman  <rms@gnu.org>
 -
 -      * Makefile.in (CFLAGS) [!OPTIMIZE]: Undo previous change.
 -
 -2003-07-29  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_mark_data): Update calls to mark_object.
 -
 -2003-07-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xterm.c (xim_open_dpy, xim_initialize, xim_close_dpy):
 -      Conditionalize XIM code on HAVE_XIM.
 -
 -      * fns.c (Fclear_string): New function.
 -      (syms_of_fns): defsubr it.
 -
 -2003-07-28  KOBAYASHI Yasuhiro  <kobayays@otsukakj.co.jp>
 -
 -      * xfns.c (xic_set_preeditarea): Add the left fringe width to spot.x.
 -
 -2003-07-22  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * xfns.c: Don't check HAVE_PNG_H: autoconf doesn't seem to find it.
 -
 -      * buffer.c (delete_all_overlays): New function.
 -      * buffer.h (delete_all_overlays): Declare.
 -      * coding.c (run_pre_post_conversion_on_str):
 -      * print.c (temp_output_buffer_setup):
 -      * fileio.c (Finsert_file_contents):
 -      * minibuf.c (get_minibuffer): Use it.
 -
 -2003-07-22  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * unexmacosx.c (unexec_regions_sort_compare):
 -      (unexec_regions_merge): New functions.  Sort and merge unexec
 -      regions before dumping them.
 -
 -2003-07-22  Dave Love  <fx@gnu.org>
 -
 -      * xfns.c [HAVE_PNG]: Consider both png.h and libpng/png.h.
 -
 -2003-07-21  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * alloc.c (MARK_STRING, UNMARK_STRING, STRING_MARKED_P)
 -      (GC_STRING_CHARS, string_bytes): Use ARRAY_MARK_FLAG rather than
 -      MARKBIT as the gcmarkbit for strings.
 -
 -2003-07-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/openbsd.h (LD_SWITCH_SYSTEM_TEMACS): Add undef.
 -
 -      * fns.c (Flocale_info): Rename from Flanginfo.  Doc fixes.
 -      (syms_of_fns): Corresponding change.
 -
 -      * alloc.c (syms_of_alloc): Doc fixes.
 -
 -2003-07-20  Han Boetes  <han@mijncomputer.nl>  (tiny change)
 -
 -      * s/netbsd.h: Use -Wl syntax.
 -
 -2003-07-17  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xterm.c (xim_initialize): Redo 6/24 change.
 -
 -2003-07-15  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * buffer.c (copy_overlays): Use EMACS_INT for positions.
 -      (Fswitch_to_buffer): Don't signal an error when switching to the same
 -      buffer in a dedicated window.
 -
 -      * alloc.c: Use bitmaps for cons, as was done for floats.
 -      (init_float, init_cons): Let the normal code allocate the first block.
 -      (CONS_BLOCK_SIZE): Redefine based on BLOCK_BYTES and bitmap size.
 -      (CONS_BLOCK, CONS_INDEX, CONS_MARKED_P, CONS_MARK, CONS_UNMARK):
 -      New macros.
 -      (struct cons_block): Move conses to the beginning.  Add gcmarkbits.
 -      (Fcons): Use lisp_align_malloc and CONS_UNMARK.
 -      (live_cons_p): Check the pointer is not past the `conses' array.
 -      (mark_maybe_object, mark_maybe_pointer): Use CONS_MARKED_P.
 -      (mark_object, mark_buffer): Use CONS_MARKED_P and CONS_MARK.
 -      (survives_gc_p): Use CONS_MARKED_P and simplify.
 -      (gc_sweep): Use CONS_MARKED_P, CONS_UNMARK, and lisp_align_free.
 -
 -2003-07-13  Paul Eggert  <eggert@twinsun.com>
 -
 -      GCC 3.3 (sparc) no longer puts "int foo = 0;" into data; it
 -      puts it into BSS instead, at least on Solaris 8 and 9.
 -      This is a valid optimization, and it may occur on other platforms,
 -      so Emacs should not assume that initializing a static variable to
 -      zero puts it into data.
 -      * alloc.c (pure, staticvec):
 -      Initialize these arrays to nonzero, so that they're not
 -      put into BSS by that optimization.
 -
 -2003-07-13  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * alloc.c (BLOCK_PADDING): Rename from ABLOCKS_PADDING.  Update users.
 -      (lisp_align_malloc): Use posix_memalign is available.
 -      (ABLOCKS_BASE): Use HAVE_POSIX_MEMALIGN as an optimization.
 -      (STRING_BLOCK_SIZE): Rename from STRINGS_IN_STRING_BLOCK
 -      for consistency.  Update users.
 -
 -2003-07-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/netbsd.h (START_FILES_1, END_FILES_1): Always define them.
 -
 -2003-07-13  Terje Rosten  <terjeros@phys.ntnu.no>
 -
 -      * xterm.c (x_bitmap_icon, x_wm_set_icon_pixmap): Modify to add mask,
 -      and use the Gtk+ function gtk_window_icon_from_file if available.
 -
 -      * xfns.c (x_bitmap_mask, x_create_bitmap_mask): New functions to
 -      handle mask of bitmaps.
 -      (x_allocate_bitmap_record, x_destroy_bitmap): Modify to handle the
 -      mask property.
 -      (xg_set_icon): New function, wrapper for gtk_window_icon_from_file.
 -
 -      * xterm.h (xg_set_icon): New function.
 -
 -2003-07-12  Paul Eggert  <eggert@twinsun.com>
 -
 -      * unexelf.c (unexec): Consider a section to precede the .bss
 -      section if its addresses overlap that of .bss.
 -
 -2003-07-12  Richard M. Stallman  <rms@gnu.org>
 -
 -      * Makefile.in (CFLAGS) [!OPTIMIZE]: Set CFLAGS to -g.
 -
 -      * config.in (HAVE_CRTIN): Add #undef.
 -      (INLINE): Really inline only if OPTIMIZE is defined.
 -
 -      * s/netbsd.h (START_FILES, LIB_STANDARD): Use START_FILES_1,
 -      END_FILES_1.
 -      (START_FILES_1, END_FILES_1): New macros (conditional).
 -      (LD_SWITCH_SYSTEM_TEMACS): Define.
 -
 -      * s/openbsd.h: Don't include bsd4-3.h.
 -      (TERMINFO): Define.
 -      (LIBS_TERMCAP): Define.
 -      (LD_SWITCH_SYSTEM): Define (two definitions).
 -
 -      * xfns.c: Include libpng/png.h instead of png.h.
 -
 -2003-07-11  Andreas Schwab  <schwab@suse.de>
 -
 -      * buffer.c (modify_overlay): Update prototype.
 -      * lisp.h (adjust_overlays_for_insert, adjust_overlays_for_delete):
 -      Likewise.
 -
 -2003-07-09  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * lisp.h (VALBITS): Define in terms of GCTYPEBITS.
 -      (struct interval): Move to intervals.h.
 -      (struct Lisp_Marker): Use EMACS_INT for position info.
 -      (forward_point): Remove prototype of defunct function.
 -      (Qmodification_hooks, Qrear_nonsticky, Fnext_property_change)
 -      (Fget_text_property, Fset_text_properties, Ftext_propertes_not_all)
 -      (syms_of_textprop, set_text_properties): Remove prototypes that are
 -      already in intervals.h.
 -
 -      * intervals.h (struct interval): Move from lisp.h.
 -      Use EMACS_INT for position and size info.
 -
 -      * coding.c: Include intervals.h for Fset_text_properties.
 -
 -      * buffer.h (struct buffer_text, struct buffer): Use EMACS_INT for
 -      position and length information.
 -
 -2003-07-09  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * buffer.h (struct buffer_text, struct buffer): Use EMACS_INT for
 -      position and length information.
 -
 -2003-07-09  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      Change overlays_after and overlays_before so the overlays themselves
 -      are linked into lists, rather than using cons cells.  After all each
 -      Lisp_Misc already occupies 5 words, so we can add a `next' field to
 -      Lisp_Overlay for free and save up one cons cell per overlay (not
 -      to mention one indirection when traversing the list of overlay).
 -
 -      * lisp.h (struct Lisp_Overlay): New field `next'.
 -
 -      * buffer.h (struct buffer): Change overlays_before and overlays_after
 -      from Lisp lists of overlays to pointers to overlays.
 -
 -      * buffer.c (overlay_strings, recenter_overlay_lists):
 -      Fix typo in eassert in last commit.
 -      (unchain_overlay): New function.
 -      (add_overlay_mod_hooklist): Use AREF.
 -      (copy_overlays, reset_buffer, overlays_at, overlays_in)
 -      (overlay_touches_p, overlay_strings, recenter_overlay_lists)
 -      (fix_overlays_in_range, fix_overlays_before, Fmake_overlay)
 -      (Fmove_overlay, Fdelete_overlay, Foverlay_lists)
 -      (report_overlay_modification, evaporate_overlays, init_buffer_once):
 -      Adjust to new type of overlays_(before|after).
 -
 -      * alloc.c (mark_object): Mark the new `next' field of overlays.
 -      (mark_buffer): Manually mark the overlays_(after|before) fields.
 -
 -      * coding.c (run_pre_post_conversion_on_str):
 -      * editfns.c (overlays_around):
 -      * xdisp.c (load_overlay_strings):
 -      * fileio.c (Finsert_file_contents):
 -      * indent.c (current_column):
 -      * insdel.c (signal_before_change, signal_after_change):
 -      * intervals.c (set_point_both):
 -      * print.c (temp_output_buffer_setup): Use new type for
 -      overlays_(before|after).
 -
 -2003-07-08  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * buffer.c (report_overlay_modification): Don't run hooks while
 -      traversing the list of overlays.
 -
 -      * buffer.h (struct buffer): Use an int for overlay_center.
 -      (overlays_at, evaporate_overlays, recenter_overlay_lists)
 -      (overlay_strings, fix_overlays_before): Use EMACS_INT for positions.
 -
 -      * buffer.c (reset_buffer, recenter_overlay_lists)
 -      (adjust_overlays_for_insert, adjust_overlays_for_delete)
 -      (fix_overlays_in_range, Fmake_overlay, Fmove_overlay)
 -      (evaporate_overlays, init_buffer_once): Update use of overlay_center.
 -      (overlays_at, evaporate_overlays, recenter_overlay_lists)
 -      (overlay_strings, fix_overlays_before): Use EMACS_INT for positions.
 -
 -      * xdisp.c (fast_find_position): Remove unused var.
 -
 -      * cmds.c (Qexpand_abbrev): New sym.
 -      (syms_of_cmds): Initialize it.
 -      (internal_self_insert): Use it to call expand-abbrev.
 -
 -2003-07-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (use_xim) [!USE_XIM]: Default to disable XIM if Emacs
 -      was configured with --without-xim.
 -      (x_term_init) [!USE_XIM]: Use `useXIM' resource to turn on XIM.
 -
 -2003-07-07  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (reseat_1): Set it->area to TEXT_AREA.
 -
 -      * alloc.c (Fgarbage_collect): Doc fix.
 -
 -2003-07-07  Nozomu Ando  <nand@mac.com>
 -
 -      * buffer.c (Fkill_buffer): Clear charpos cache if necessary.
 -
 -2003-07-06  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * minibuf.c (read_minibuf): UNGCPRO before returning.
 -      (Ftry_completion, Fall_completions): Doc fix.
 -
 -      * alloc.c (live_float_p): Check that p is not past the `floats' array,
 -      now that `floats' is not the last element of the struct any more.
 -
 -2003-07-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.h (ClipboardSequence_Proc): New type.
 -
 -      * w32fns.c (clipboard_sequence_fn): New variable.
 -      (globals_of_w32fns): Initialize it.
 -
 -      * w32select.c (last_clipboard_sequence_number): New variable.
 -      (Fw32_set_clipboard_data, Fw32_get_clipboard_data): Use sequence
 -      number if possible.
 -
 -2003-07-06  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * m/amdx86-64.h (MARKBIT):
 -      * m/ia64.h (MARKBIT): Remove definition since lisp.h does not compare
 -      MARKBIT and ARRAY_MARK_FLAG any more.
 -
 -      * m/hp800.h (XSETMARKBIT):
 -      * m/sr2k.h (XSETMARKBIT):
 -      * lisp.h (XSETMARKBIT): Remove unused macro.
 -
 -      * lisp.h (mark_object): Change prototype.
 -
 -      * alloc.c (mark_object): Change arg *Lisp_Object -> Lisp_Object.
 -      (last_marked): Change accordingly.
 -      (mark_interval, mark_maybe_object, mark_maybe_pointer)
 -      (Fgarbage_collect, mark_glyph_matrix, mark_face_cache, mark_image)
 -      (mark_buffer): Update calls to mark_object.
 -
 -      * bytecode.c (mark_byte_stack):
 -      * fns.c (sweep_weak_table):
 -      * keyboard.c (mark_kboards): Update calls to mark_object.
 -
 -2003-07-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * alloc.c (struct ablock): Only include padding when there is some.
 -
 -2003-07-04  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * alloc.c (ALIGN): Add casts to simplify usage.
 -      (BLOCK_ALIGN, BLOCK_BYTES, ABLOCKS_PADDING, ABLOCKS_SIZE)
 -      (ABLOCKS_BYTES, ABLOCK_ABASE, ABLOCKS_BUSY, ABLOCKS_BASE): New macros.
 -      (struct ablock, struct ablocks): New types.
 -      (free_ablock): New global var.
 -      (lisp_align_malloc, lisp_align_free): New functions.
 -      (FLOAT_BLOCK_SIZE): Redefine in terms of BLOCK_BYTES.
 -      (struct float_block): Reorder and add gcmarkbits.
 -      (GETMARKBIT, SETMARKBIT, UNSETMARKBIT, FLOAT_BLOCK, FLOAT_INDEX)
 -      (FLOAT_MARKED_P, FLOAT_MARK, FLOAT_UNMARK): New macros.
 -      (init_float, make_float): Use lisp_align_malloc.
 -      (free_float, live_float_p): Don't use `type' any more.
 -      (make_float): Use FLOAT_UNMARK to access to mark bit.
 -      (mark_maybe_object, mark_maybe_pointer, survives_gc_p):
 -      Use FLOAT_MARKED_P to access the mark bit.
 -      (pure_alloc): Simplify use of ALIGN.
 -      (mark_object): Use FLOAT_MARK to access the mark bit.
 -      (gc_sweep): Use new macros to access the float's mark bit.
 -      (init_alloc_once): Init free_ablock.
 -
 -      * lisp.h (struct Lisp_Float): Remove unused field `type'.
 -
 -2003-06-27  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * alloc.c (VECTOR_MARK, VECTOR_UNMARK, VECTOR_MARKED_P): New macros.
 -      (GC_STRING_BYTES): Don't mask markbit (it's only used on `size').
 -      (allocate_buffer): Move.
 -      (string_bytes): Don't mask markbit of `size_byte'.
 -      (mark_maybe_object, mark_maybe_pointer, Fgarbage_collect)
 -      (mark_object, mark_buffer, survives_gc_p, gc_sweep):
 -      Use the `size' field of buffers (rather than the `name' field) for
 -      the mark bit, as is done for all other vectorlike objects.
 -      Use the new macros to access the mark bit of vectorlike objects.
 -
 -2003-06-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * puresize.h (BASE_PURESIZE): Increment base size.
 -
 -      * xdisp.c (fast_find_position): Enable Gerd's new definition.
 -
 -      * xterm.c (xim_initialize): Undo previous change.
 -
 -2003-06-26  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * alloc.c (survives_gc_p): Simplify.
 -
 -      * buffer.c (set_buffer_internal_1): Test CONSP for lists.
 -
 -      * window.c (Fset_window_dedicated_p): Simplify.
 -      (display_buffer_1): Don't raise the win from which minibuf was entered.
 -      (temp_output_buffer_show): Don't assume BEG == 1.  Simplify.
 -      (Fminibuffer_selected_window): Simplify.
 -
 -      * buffer.h (struct buffer_text): Lisp_Object `markers' => Lisp_Marker.
 -
 -      * lisp.h (unchain_marker): Lisp_Object arg => Lisp_Marker.
 -      (struct Lisp_Marker): Lisp_Object `chain' => Lisp_Marker `next'.
 -
 -      * insdel.c (check_markers, adjust_markers_for_delete)
 -      (adjust_markers_for_insert, adjust_markers_for_replace)
 -      (prepare_to_modify_buffer, RESTORE_VALUE):
 -      * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos)
 -      (Fset_marker, set_marker_restricted, set_marker_both, unchain_marker)
 -      (set_marker_restricted_both, Fbuffer_has_markers_at, count_markers):
 -      * alloc.c (Fmake_marker, free_marker, gc_sweep):
 -      * buffer.c (Fget_buffer_create, Fkill_buffer, Fset_buffer_multibyte):
 -      * editfns.c (save_excursion_restore, transpose_markers):
 -      * window.c (delete_window):
 -      * xdisp.c (message_dolog): Update for new types.
 -
 -2003-06-26  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfaces.c (set_font_frame_param): Set default_face_done_p to zero.
 -      (realize_default_face): Use default_face_done_p for the force_p
 -      argument to set_lface_from_font_name.  Set default_face_done_p to one.
 -
 -      * frame.c (make_frame): Initialize default_face_done_p.
 -
 -      * frame.h (struct frame): Add default_face_done_p.
 -
 -      * config.in: Add XRegisterIMInstantiateCallback_arg6 so it
 -      will be defined.
 -
 -2003-06-25  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * alloc.c (make_interval, Fmake_symbol, allocate_misc):
 -      Initialize the new field `gcmarkbit'.
 -      (mark_interval, MARK_INTERVAL_TREE): Use the new `gcmarkbit' field.
 -      (mark_interval_tree): Don't mark the tree separately from the nodes.
 -      (UNMARK_BALANCE_INTERVALS): Don't unmark the tree.
 -      (mark_maybe_object, mark_maybe_pointer, Fgarbage_collect)
 -      (mark_object, survives_gc_p, gc_sweep): Use new `gcmarkbit' fields.
 -
 -      * lisp.h (struct interval, struct Lisp_Symbol, struct Lisp_Free)
 -      (struct Lisp_Marker, struct Lisp_Intfwd, struct Lisp_Boolfwd)
 -      (struct Lisp_Kboard_Objfwd, struct Lisp_Save_Value)
 -      (struct Lisp_Buffer_Local_Value, struct Lisp_Overlay)
 -      (struct Lisp_Objfwd, struct Lisp_Buffer_Objfwd): Add `gcmarkbit' field.
 -
 -2003-06-24  Dave Love  <fx@gnu.org>
 -
 -      * xterm.c (xim_initialize): Use XRegisterIMInstantiateCallback_arg6.
 -
 -      * strftime.c: Test HAVE_SYS__MBSTATE_H, not __hpux.  Merge changes
 -      from gnulib.
 -
 -2003-06-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Fwrite_region): Alternate messages
 -      for append and partial write.
 -
 -      * keyboard.c (read_key_sequence): When converting upcase fn key to
 -      downcase, update fkey and keytran so `backspace' gets translated.
 -
 -      * keyboard.c (read_avail_input): Don't signal SIGHUP in batch mode.
 -
 -      * process.c (wait_reading_process_input): Don't signal SIGIO
 -      in batch mode.
 -
 -2003-06-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (xselect.o): Don't depend on charset.h, coding.h,
 -      composite.h.
 -
 -      * xselect.c: Don't include charset.h, coding.h, composite.h.
 -      (Qforeign_selection): New variable.
 -      (syms_of_xselect): Intern and static it.
 -      (selection_data_to_lisp_data): Return a unibyte string made from
 -      data with `foreign-selection' text property.
 -
 -2003-06-15  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * termhooks.h (EVENT_INIT): New macro.
 -
 -      * keyboard.c (mark_kboards): Move from alloc.c.  Mark kbd_buffer.
 -
 -      * alloc.c (mark_kboards): Move to keyboard.c.
 -
 -      * keyboard.c (record_asynch_buffer_change, read_avail_input):
 -      * xterm.c (x_dispatch_event):
 -      * xmenu.c (find_and_call_menu_selection):
 -      * xdisp.c (handle_tool_bar_click):
 -      * w32menu.c (menubar_selection_callback):
 -      * sysdep.c (kbd_input_ast, read_input_waiting):
 -      * msdos.c (dos_rawgetc):
 -      * macterm.c (mac_check_for_quit_char):
 -      * macmenu.c (menubar_selection_callback):
 -      * gtkutil.c (xg_tool_bar_callback): Don't pass uninitialized
 -      data to kbd_buffer_store_event.
 -
 -2003-06-15  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (x_fix_overlapping_area): Always use area relative X
 -      to fix redisplay problem with tall characters (such as \e,AC\e(B).
 -
 -2003-06-13  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@gmx.net>
 -
 -      * fileio.c (Fcopy_file): Doc fix: copies file modes, too.
 -
 -2003-06-12  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Fwrite_region): Save and restore restriction.
 -
 -2003-06-12  Dave Love  <fx@gnu.org>
 -
 -      * alloca.c (alloca): Declare arg as size_t.
 -
 -      * sysdep.c: Remove redundant include of unistd.h, stdlib.h.
 -      Use HAVE_DECL_SYS_SIGLIST, not SYS_SIGLIST_DECLARED.
 -
 -2003-06-11  Dave Love  <fx@gnu.org>
 -
 -      * search.c (shrink_regexp_cache): Use xrealloc.
 -      (syms_of_search): Use xmalloc.
 -
 -2003-06-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (phys_cursor_in_rect_p): Fix 2003-05-24 change.
 -      Adjust phys_cursor.x to be relative to window box, rather than
 -      text area before checking -- to ensure cursor is redrawn when
 -      exposing window.
 -      Note: This also fixes a similar (older) bug if display margins
 -      are present.
 -
 -2003-06-06  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (encoding_buffer_size): If coding->type is
 -      coding_type_ccl, double magnification on CRLF encoding.
 -
 -2003-06-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32reg.c (SYSTEM_DEFAULT_RESOURCES): New constant.
 -      (w32_get_string_resource): Try SYSTEM_DEFAULT_RESOURCES last.
 -
 -      * xfaces.c (Finternal_face_x_get_resource): Do it on Windows and
 -      Mac too.
 -
 -2003-06-05  Dave Love  <fx@gnu.org>
 -
 -      * strftime.c: Merge changes from gnulib.
 -
 -      * mktime.c (__mktime_internal): Merge changes from gnulib
 -      involving year 69 and dst2.
 -
 -      Changes to merge with gnulib version and be consistent with the
 -      autoconf test:
 -
 -      * getloadavg.c: Set NLIST_STRUCT from HAVE_NLIST_H.
 -      Use HAVE_STRUCT_NLIST_N_UN_N_NAME, not NLIST_NAME_UNION.
 -      [HAVE_LOCALE_H]: Include locale.h.
 -      (getloadavg) [HAVE_SETLOCALE]: Run sscanf in C locale.
 -
 -2003-06-05  Kim F. Storm  <storm@cua.dk>
 -
 -      * window.c (coordinates_in_window): Convert X and Y to window
 -      relative coordinates inside mode-line and header-line parts.
 -      Convert X and Y to margin area relative coordinates inside left
 -      and right display margin parts.
 -
 -2003-06-05  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (add_system_logical_colors_to_map): New function.
 -      (Fx_open_connection): Use it.
 -
 -2003-06-04  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * process.c (allocate_pty): Revert part of the previous patch.
 -      (Faccept_process_output): Simplify.
 -
 -2003-06-04  Jason Rumney  <jasonr@gnu.org>
 -
 -      * termhooks.h (enum event_kind): Remove MOUSE_WHEEL_EVENT.
 -
 -      * keyboard.c (Qmouse_wheel, mouse_wheel_syms)
 -      (lispy_mouse_wheel_names): Remove.
 -      (syms_of_keyboard): Remove Qmouse_wheel and mouse_wheel_syms.
 -      Always define drag_and_drop_syms.
 -
 -      * macterm.c (XTread_socket): Map mouse wheel events to Emacs
 -      WHEEL_EVENT events.
 -
 -2003-06-03  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * xdisp.c (update_tool_bar): Add missing UNGCPRO.
 -
 -      * buffer.c (init_buffer_once): Make kill-buffer-hook permanent-local.
 -
 -2003-06-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (make_menu_item): Make sure we don't crash on a NULL
 -      menu item label.
 -
 -2003-06-03  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (Fwindow_edges): Doc fix.
 -      (Fwindow_pixel_edges, Fwindow_inside_edges)
 -      (Fwindow_inside_pixel_edges): New functions.
 -      (syms_of_window): defsubr them.
 -
 -      * window.h (WINDOW_LEFT_FRINGE_COLS, WINDOW_RIGHT_FRINGE_COLS)
 -      (WINDOW_MODE_LINE_LINES, WINDOW_HEADER_LINE_LINES): New macros.
 -
 -2003-06-02  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * dispnew.c (Fsit_for): Don't lie about the number of args.
 -
 -2003-06-02  Dave Love  <fx@gnu.org>
 -
 -      * callproc.c: Use HAVE_FCNTL_H, not USG5.
 -      (syms_of_callproc) <process-environment>: Doc fix.
 -
 -      * doc.c: Use HAVE_FCNTL_H, not USG5.
 -
 -      * xfaces.c (font_rescale_ratio): Fix for K&R.
 -
 -      * termcap.c: Use HAVE_FCNTL_H, not _POSIX_VERSION.
 -
 -      * mem-limits.h: Use HAVE_SYS_RESOURCE_H, HAVE_SYS_VLIMIT_H.
 -
 -      * lread.c [HAVE_FCNTL_H]: Include fcntl.h.
 -
 -      * gtkutil.c: Include keyboard.h, charset.h, coding.h.
 -      (xg_create_frame_widgets): Use ENCODE_UTF_8.
 -
 -      * xterm.c (Qutf_8): Move to coding.c
 -
 -      * xmenu.c (ENCODE_MENU_STRING): New.
 -      (list_of_panes, list_of_items, digest_single_submenu, xmenu_show):
 -      Use it.
 -
 -      * coding.h (ENCODE_UTF_8): New.
 -      (Qutf_8): Declare.
 -
 -      * coding.c (Qutf_8): New.
 -      (syms_of_coding): Intern it.
 -
 -      * fns.c: Doc fixes.
 -
 -2003-06-02  Kenichi Handa  <handa@m17n.org>
 -
 -      * buffer.c (Fset_buffer_multibyte): Fix previous change.
 -
 -2003-06-01  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * lread.c (openp): Make sure STR is a string.
 -
 -2003-06-01  David Ponce  <david@dponce.com>
 -
 -      * termhooks.h (enum event_kind): Add new WHEEL_EVENT event.
 -      Declare MOUSE_WHEEL_EVENT only if MAC_OSX defined.
 -
 -      * keyboard.c (Qmouse_wheel): Declare only if MAC_OSX defined.
 -      (mouse_wheel_syms, lispy_mouse_wheel_names): Likewise.
 -      (discard_mouse_events): Discard WHEEL_EVENT events too.
 -      (lispy_wheel_names, wheel_syms): New.
 -      (syms_of_keyboard): Init and staticpro `wheel_syms'.  Init and
 -      staticpro `Qmouse_wheel' and `mouse_wheel_syms' only if MAC_OSX defined.
 -      (make_lispy_event): Add WHEEL_EVENT handler.
 -
 -      * w32term.c (construct_mouse_wheel): Construct WHEEL_EVENT.
 -      (w32_read_socket): Map w32 WM_MOUSEWHEEL events to Emacs
 -      WHEEL_EVENT events.
 -
 -2003-05-31  John Paul Wallington  <jpw@gnu.org>
 -
 -      * Makefile.in (lisp, shortlisp): byte-run, float-sup, map-ynp, and
 -      timer are in lisp/emacs-lisp.
 -
 -2003-05-31  Kenichi Handa  <handa@m17n.org>
 -
 -      * buffer.c (Fset_buffer_multibyte): Correctly recover a narrowed
 -      region when a buffer is changed to unibyte.
 -
 -      * charset.h (VALID_LEADING_CODE_P): New macro.
 -      (UNIBYTE_STR_AS_MULTIBYTE_P): Check more rigidly.
 -
 -      * coding.c (DECODE_EMACS_MULE_COMPOSITION_CHAR): If coding->flags
 -      is nonzero, accept multibyte form of eight-bit-control chars.
 -      (decode_composition_emacs_mule): Likewise.
 -      (decode_coding_emacs_mule): Likewise.
 -      (encode_coding_emacs_mule): If coding->flags is nonzero, produce
 -      multibyte form of eight-bit-control chars.
 -
 -      * fileio.c (Qauto_save_coding, auto_save_coding): New variables.
 -      (Finsert_file_contents): If coding-system-for-read is bound to
 -      Qauto_save_coding, use the coding system emacs-mule with special
 -      setting for recovering a file.
 -      (choose_write_coding_system): On auto saving, use the coding
 -      system emacs-mule with special setting for auto saving.
 -      (syms_of_fileio) <Qauto_save_coding>: Intern and staticpro it.
 -
 -2003-05-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (ccl_coding_driver): Set ccl->eight_bit_control
 -      properly before calling ccl_driver.
 -
 -      * ccl.h (struct ccl_program) <eight_bit_control>: Comment fixed.
 -
 -      * ccl.c (CCL_WRITE_CHAR): Increment extra_bytes only when it is nonzero.
 -      (ccl_driver): Initialize extra_bytes to ccl->eight_bit_control.
 -      (setup_ccl_program): Initialize ccl->eight_bit_control to zero.
 -
 -2003-05-29  Glenn Morris  <gmorris@ast.cam.ac.uk>
 -
 -      * xfaces.c (realize_default_face): Do not abort if lface is
 -      non-existent - reverts change from 2003-05-19.
 -
 -2003-05-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_iso2022): Pay attention to the byte
 -      sequence of CTEXT extended segment, and retain those bytes as is.
 -
 -2003-05-28  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (ENCODE_UNSAFE_CHARACTER): Adjust for the name change
 -      of CODING_REPLACEMENT_CHARACTER.
 -      (decode_coding_iso2022): If CODING_FLAG_ISO_SAFE, set
 -      CODING_MODE_INHIBIT_UNENCODABLE_CHAR flag in coding->mode, and
 -      check this flag on encoding.
 -      (encode_coding_sjis_big5):
 -      Check CODING_MODE_INHIBIT_UNENCODABLE_CHAR flag of coding->mode.
 -      (Fset_terminal_coding_system_internal):
 -      Set CODING_MODE_INHIBIT_UNENCODABLE_CHAR flag in terminal_coding.mode
 -      instead of setting CODING_FLAG_ISO_SAFE flag in terminal_coding.flags.
 -
 -      * coding.h (CODING_REPLACEMENT_CHARACTER): Rename from
 -      CODING_INHIBIT_CHARACTER_SUBSTITUTION.
 -      (CODING_MODE_INHIBIT_UNENCODABLE_CHAR): New macro.
 -
 -2003-05-28  Richard M. Stallman  <rms@gnu.org>
 -
 -      * print.c (syms_of_print) <print-escape-nonascii>: Doc fix.
 -
 -      * eval.c (unbind_to): Move init of this_binding to separate statement.
 -
 -2003-05-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (expose_window): Fix error in calculation of
 -      window relative coordinates of area to redisplay.
 -
 -2003-05-27  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (GET_WHEEL_DELTA_WPARAM): New macro.
 -
 -2003-05-27  David Ponce  <david@dponce.com>
 -
 -      Handle W32 mouse wheel events as mouse click events, like in X.
 -
 -      * keyboard.c (make_lispy_event) [WINDOWSNT]: Don't handle
 -      MOUSE_WHEEL_EVENT anymore.
 -
 -      * w32term.c (construct_mouse_wheel): Result is a MOUSE_CLICK_EVENT.
 -      Scrolling down/up the mouse wheel is respectively mapped to mouse
 -      button 4 and 5.
 -      (w32_read_socket): Map w32 WM_MOUSEWHEEL events to Emacs
 -      MOUSE_CLICK_EVENT events.  Forward w32 MSH_MOUSEWHEEL events as
 -      WM_MOUSEWHEEL events.
 -
 -2003-05-27  Andreas Schwab  <schwab@suse.de>
 -
 -      * buffer.c (syms_of_buffer) <default-direction-reversed>: Doc fix.
 -
 -      * xdisp.c (try_window_id): Avoid aborting if PT is inside a
 -      partially visible line.
 -
 -      * alloc.c (Fgarbage_collect): Fix last change.
 -
 -2003-05-26  John Paul Wallington  <jpw@gnu.org>
 -
 -      * xfns.c (Fx_create_frame): Don't call Qface_set_after_frame_default.
 -
 -2003-05-25  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * window.c (Fset_window_buffer): Add type of `keep_margins'.
 -      (Fset_window_fringes, Fset_window_scroll_bars): Declare before use.
 -
 -      * window.h (window_box_text_cols): Declare.
 -
 -      * xdisp.c (window_text_bottom_y, draw_row_fringe_bitmaps)
 -      (x_draw_vertical_border): Remove unused var `f'.
 -
 -      * xfaces.c (build_scalable_font_name): Remove `unused var
 -      pixel_size' warning.
 -
 -      * xfns.c (png_load): Remove `unused vars intent, image_gamma' warning.
 -
 -      * unexelf.c (unexec): Remove `unused var n' warning.
 -
 -      * strftime.c (my_strftime_localtime_r): Remove `defined but
 -      unused' warning.
 -
 -      * process.c (allocate_pty): Remove `unused var stb' and
 -      `cp might be used uninitialized' warnings.
 -
 -      * dispnew.c (mode_line_string): Remove unused var `f'.
 -
 -      * coding.c (find_safe_codings): Remove unused var `i'.
 -
 -      * bytecode.c (Fbyte_code): Remove `unused val' warning.
 -
 -      * buffer.c (Fkill_buffer): Remove unused var `list'.
 -
 -      * alloc.c (Fgarbage_collect): Remove `unused var tail' warning.
 -
 -2003-05-25  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * frame.c (make_frame): Condition want_fullscreen with
 -      HAVE_WINDOW_SYSTEM.
 -
 -2003-05-25  Juanma Barranquero  <lektu@terra.es>
 -
 -      * window.c (Fset_window_scroll_bars): Fix typo in argument name.
 -      (Fwindow_scroll_bars): Fix typo in docstring.
 -
 -2003-05-24  Kim F. Storm  <storm@cua.dk>
 -
 -      The following changes serve several purposes:
 -
 -      1) Swap the position of fringes and display margins in windows, i.e.
 -      the fringes are now displayed between the margins and the text area
 -      (by default).
 -
 -      2) Allow fringe and scroll bar parameters to be set per-buffer and
 -      per-window (like display margins).  Such settings are now stored
 -      in window configurations, preserved when frames are resized, and
 -      copied when windows are split vertically or horizontally.
 -      Several bugs related to display margins have been fixed.
 -
 -      3) Consistently use FRAME_FONT and FRAME_FONTSET macros.
 -
 -      4) Use FRAME_COLUMN_WIDTH (f) consistently throughout the code
 -      rather than FRAME_WIDTH (FRAME_FONT (f)).
 -
 -      5) Introduce a consistent naming of variables, members and macros
 -      depending on whether their value is measured in pixels or in
 -      canonical columns/lines.  Pixel dimensions are named *_width and
 -      *_height, while canonical columns/lines are named *_cols and
 -      *_lines.  Pixel positions are named *_x and *_y, while column/line
 -      positions are named *_col and *_line.
 -
 -      6) Consolidate more of the X, W32, and MAC gui code by moving
 -      common data into struct frame, and generalize it for the non-gui
 -      case by using suitable defaults.
 -
 -      7) Cleanup and consolidate the macros controlling frame and window
 -      layout into frame.h and window.h, and generalize the use of the
 -      various window_box_* functions (enhanced to handle the new fringe
 -      position and the per-window fringe and scroll bar settings).
 -
 -      * frame.h (struct frame): Rename members height to text_lines,
 -      width to text_cols, window_height to total_lines, window_width to
 -      total_cols, new_height to new_text_lines, new_width to
 -      new_text_cols.  All uses changed.
 -      (struct frame): New members which consolidate common members of
 -      x_output, w32_output, and mac_output structures: left_pos,
 -      top_pos, pixel_height, pixel_width, x_pixels_diff, y_pixels_diff,
 -      win_gravity, size_hint_flags, border_width, internal_border_width,
 -      line_height, fringe_cols, left_fringe_width, right_fringe_width,
 -      want_fullscreen.  All uses changed.
 -      (struct frame): New member column_width contaning the canonical
 -      column width, analogue to line_height.  All uses changed.
 -      (struct frame): Rename members scroll_bar_pixel_width to
 -      config_scroll_bar_width, and scroll_bar_cols to
 -      config_scroll_bar_cols.  All uses changed.
 -      (struct frame): New member scroll_bar_actual_width which
 -      consolidates and renames the vertical_scroll_bar_extra member of
 -      x_output, w32_output, and mac_output structures.  All uses changed.
 -      (FRAME_PIXEL_HEIGHT): Rename from PIXEL_HEIGHT and moved
 -      from x/w32/macterm.h files.  All uses changed.  Also change code
 -      which referred to f->output_data...->pixel_height.
 -      (FRAME_PIXEL_WIDTH): Rename from PIXEL_WIDTH and moved
 -      from x/w32/macterm.h files.  All uses changed.  Also change code
 -      which referred to f->output_data...->pixel_width.
 -      (FRAME_LINES): Rename from FRAME_HEIGHT.  All uses changed.
 -      Also change code which referred to f->height.
 -      (FRAME_COLS): Rename from FRAME_WIDTH.  All uses changed.
 -      Also change code which referred to f->width.
 -      (FRAME_NEW_HEIGHT, FRAME_NEW_WIDTH): Remove macros; change uses
 -      to update new_text_lines and new_text_cols members directly.
 -      (FRAME_CONFIG_SCROLL_BAR_WIDTH): Rename from
 -      FRAME_SCROLL_BAR_PIXEL_WIDTH.  All uses changed.
 -      (FRAME_CONFIG_SCROLL_BAR_COLS): Rename from
 -      FRAME_SCROLL_BAR_COLS.  All uses changed.
 -      (FRAME_LEFT_SCROLL_BAR_COLS, FRAME_RIGHT_SCROLL_BAR_COLS):
 -      Rename from FRAME_LEFT_SCROLL_BAR_WIDTH and
 -      FRAME_RIGHT_SCROLL_BAR_WIDTH, resp.  All uses changed.
 -      (FRAME_SCROLL_BAR_AREA_WIDTH, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH)
 -      (FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH): New macros.
 -      (FRAME_TOTAL_COLS): Rename from FRAME_WINDOW_WIDTH.
 -      (SET_FRAME_COLS): Rename from SET_FRAME_WIDTH.
 -      (FRAME_TOTAL_COLS_ARG): Rename from FRAME_WINDOW_WIDTH_ARG.
 -      (WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Remove unused macro.
 -      (WINDOW_VERTICAL_SCROLL_BAR_HEIGHT): Remove unused macro.
 -      (FRAME_LINE_HEIGHT): Rename from CANON_Y_UNIT.
 -      Unconditionally return line_height member (it now has proper value
 -      also for non-window frames).
 -      (FRAME_COLUMN_WIDTH): Rename from CANON_X_UNIT.  Unconditionally
 -      return new column_width member (rather than the default font width).
 -      (FRAME_FRINGE_COLS, FRAME_LEFT_FRINGE_WIDTH)
 -      (FRAME_RIGHT_FRINGE_WIDTH): Rename from FRAME_X_... and moved
 -      from x/w32/macterm.h files.  Unconditionally return corresponding
 -      member of frame structure (they now have proper values also for
 -      non-window frames).
 -      (FRAME_TOTAL_FRINGE_WIDTH): Rename from FRAME_FRINGE_WIDTH.
 -      Calculate return value from left and right widths.
 -      (FRAME_INTERNAL_BORDER_WIDTH): Unconditionally return
 -      internal_border_width member (has proper value for non-window frame).
 -      (FRAME_PIXEL_X_FROM_CANON_X): Rename from PIXEL_X_FROM_CANON_X.
 -      (FRAME_PIXEL_Y_FROM_CANON_Y): Rename from PIXEL_Y_FROM_CANON_Y.
 -      (FRAME_CANON_X_FROM_PIXEL_X): Rename from CANON_X_FROM_PIXEL_X.
 -      (FRAME_CANON_Y_FROM_PIXEL_Y): Rename from CANON_Y_FROM_PIXEL_Y.
 -      (FRAME_LINE_TO_PIXEL_Y): Rename from CHAR_TO_PIXEL_ROW,
 -      consolidated from xterm.h, macterm.h, and w32term.h.
 -      (FRAME_COL_TO_PIXEL_X): Rename from CHAR_TO_PIXEL_COL,
 -      consolidated from xterm.h, macterm.h, and w32term.h.
 -      (FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Rename from
 -      CHAR_TO_PIXEL_WIDTH consolidated from x/mac/w32term.h.
 -      (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Rename from
 -      CHAR_TO_PIXEL_HEIGHT consolidated from x/mac/w32term.h.
 -      (FRAME_PIXEL_Y_TO_LINE): Rename from PIXEL_TO_CHAR_ROW
 -      consolidated from x/mac/w32term.h.
 -      (FRAME_PIXEL_X_TO_COL): Rename from PIXEL_TO_CHAR_COL
 -      consolidated from x/mac/w32term.h.
 -      (FRAME_PIXEL_WIDTH_TO_TEXT_COLS): Rename from
 -      PIXEL_TO_CHAR_WIDTH consolidated from x/mac/w32term.h.
 -      (FRAME_PIXEL_HEIGHT_TO_TEXT_LINES): Rename from
 -      PIXEL_TO_CHAR_HEIGHT consolidated from x/mac/w32term.h.
 -
 -      * window.h (struct window): Rename members left to left_col,
 -      top to top_line, height to total_lines, width to total_cols,
 -      left_margin_width to left_margin_cols, right_margin_width to
 -      right_margin_cols, orig_height to orig_total_lines, orig_top to
 -      orig_top_line.  All uses changed.
 -      (struct window): New members left_fringe_width, right_fringe_width,
 -      fringes_outside_margins, scroll_bar_width, vertical_scroll_bar_type.
 -      (WINDOW_XFRAME, WINDOW_FRAME_COLUMN_WIDTH, WINDOW_FRAME_LINE_HEIGHT):
 -      New macros primarily used to simplify other macros.
 -      (WINDOW_TOTAL_COLS): New macro.  Change relevant code that
 -      referred to XINT (w->width).
 -      (WINDOW_TOTAL_LINES): New macro.  Change relevant code that
 -      referred to XINT (w->height).
 -      (WINDOW_TOTAL_WIDTH): New macro.  Change relevant code that
 -      referred to XINT (w->width) * canon_x_unit.
 -      (WINDOW_TOTAL_HEIGHT): New macro.  Change relevant code that
 -      referred to XINT (w->height) * canon_y_unit.
 -      (WINDOW_LEFT_EDGE_COL): New macro.  Change relevant code that
 -      referred to XINT (w->left).
 -      (WINDOW_RIGHT_EDGE_COL): Rename from WINDOW_RIGHT_EDGE.  Change
 -      all uses and code that referred to XINT (w->left) + XINT (w->width).
 -      (WINDOW_TOP_EDGE_LINE): New macro.  Change relevant code that
 -      referred to XINT (w->top).
 -      (WINDOW_BOTTOM_EDGE_LINE): New macro.  Change relevant code that
 -      referred to XINT (w->top) + XINT (w->height).
 -      (WINDOW_LEFT_EDGE_X): New macro.  Change relevant code that
 -      referred to XINT (w->left) * canon_x_unit.
 -      (WINDOW_RIGHT_EDGE_X): New macro.  Change relevant code that
 -      referred to (XINT (w->left) + XINT (w->width)) * canon_x_unit.
 -      (WINDOW_TOP_EDGE_Y): New macro.  Change relevant code that
 -      referred to XINT (w->top) * canon_y_unit.
 -      (WINDOW_BOTTOM_EDGE_Y): New macro.  Change relevant code that
 -      referred to (XINT (w->top) + XINT (w->height)) * canon_y_unit.
 -      (WINDOW_LEFTMOST_P): New macro.
 -      (WINDOW_BOX_LEFT_EDGE_COL): Rename from WINDOW_LEFT_MARGIN.
 -      All uses changed.
 -      (WINDOW_BOX_RIGHT_EDGE_COL): Rename from WINDOW_RIGHT_MARGIN.
 -      All uses changed.
 -      (WINDOW_BOX_LEFT_EDGE_X): Rename from
 -      WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X, moved from dispextern.h.
 -      Do not exclude left fringe width.
 -      (WINDOW_BOX_RIGHT_EDGE_X): Rename from
 -      WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X, moved from dispextern.h.
 -      Do not exclude fringe widths.
 -      (WINDOW_LEFT_FRINGE_WIDTH, WINDOW_RIGHT_FRINGE_WIDTH)
 -      (WINDOW_FRINGE_COLS, WINDOW_TOTAL_FRINGE_WIDTH): New macros.
 -      Change relevant code that referred to FRAME_LEFT_FRINGE_WIDTH,
 -      FRAME_RIGHT_FRINGE_WIDTH, FRAME_FRINGE_COLS, and
 -      FRAME_TOTAL_FRINGE_WIDTH to allow per-window fringe settings.
 -      (WINDOW_HAS_FRINGES_OUTSIDE_MARGINS): New macro.
 -      (WINDOW_VERTICAL_SCROLL_BAR_TYPE, WINDOW_HAS_VERTICAL_SCROLL_BAR)
 -      (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_LEFT)
 -      (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT)
 -      (WINDOW_CONFIG_SCROLL_BAR_WIDTH, WINDOW_CONFIG_SCROLL_BAR_COLS):
 -      New macros.  Change code which referenced corresponding
 -      FRAME_VERTICAL_SCROLL_BAR_TYPE, FRAME_HAS_VERTICAL_SCROLL_BARS,
 -      FRAME_HAS_VERTICAL_SCROLL_BARS_ON_LEFT,
 -      FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT,
 -      FRAME_SCROLL_BAR_PIXEL_WIDTH, and FRAME_SCROLL_BAR_COLS macros to
 -      allow per-window scroll-bar settings.
 -      (WINDOW_LEFT_SCROLL_BAR_COLS, WINDOW_RIGHT_SCROLL_BAR_COLS): New macros.
 -      (WINDOW_LEFT_SCROLL_BAR_AREA_WIDTH): New macro.  Change code that
 -      referred to FRAME_LEFT_SCROLL_BAR_WIDTH.
 -      (WINDOW_RIGHT_SCROLL_BAR_AREA_WIDTH): New macro.  Change code
 -      that referred to FRAME_HAS_VERTICAL_SCROLL_BARS_ON_RIGHT and
 -      FRAME_SCROLL_BAR_WIDTH.
 -      (WINDOW_SCROLL_BAR_COLS, WINDOW_SCROLL_BAR_AREA_WIDTH)
 -      (WINDOW_SCROLL_BAR_AREA_X): New macros.
 -      (WINDOW_HEADER_LINE_HEIGHT): Rename from
 -      WINDOW_DISPLAY_HEADER_LINE_HEIGHT, moved from dispextern.h.
 -      (WINDOW_BOX_HEIGHT_NO_MODE_LINE): Rename from
 -      WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE, moved from dispextern.h.
 -      (WINDOW_BOX_TEXT_HEIGHT): Rename from
 -      WINDOW_DISPLAY_PIXEL_WIDTH, moved from dispextern.h.
 -      (WINDOW_TO_FRAME_PIXEL_X, WINDOW_TO_FRAME_PIXEL_Y)
 -      (FRAME_TO_WINDOW_PIXEL_X, FRAME_TO_WINDOW_PIXEL_Y)
 -      (WINDOW_TEXT_TO_FRAME_PIXEL_X): Move here from dispextern.h.
 -      (WINDOW_LEFT_MARGIN_WIDTH): Rename from
 -      WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH, moved from dispextern.h.
 -      (WINDOW_RIGHT_MARGIN_WIDTH): Rename from
 -      WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH, moved from dispextern.h.
 -      (window_from_coordinates): Update prototype.
 -      (Fset_window_buffer): Update EXFUN.
 -      (set_window_buffer): Update prototype.
 -
 -      * dispextern.h (struct glyph_matrix): Rename members window_left_x
 -      to window_left_col, window_top_y to window_top_line.  All uses
 -      changed.
 -      (FRAME_INTERNAL_BORDER_WIDTH_SAFE): Remove macro; can now safely
 -      use FRAME_INTERNAL_BORDER_WIDTH macro instead as
 -      internal_border_width is now set to 0 for non-window frames.
 -      (WINDOW_DISPLAY_PIXEL_WIDTH, WINDOW_DISPLAY_PIXEL_HEIGHT)
 -      (WINDOW_DISPLAY_MODE_LINE_HEIGHT, WINDOW_DISPLAY_HEADER_LINE_HEIGHT)
 -      (WINDOW_DISPLAY_HEIGHT_NO_MODE_LINE, WINDOW_DISPLAY_TEXT_HEIGHT)
 -      (WINDOW_DISPLAY_LEFT_EDGE_PIXEL_X, WINDOW_DISPLAY_RIGHT_EDGE_PIXEL_X)
 -      (WINDOW_DISPLAY_TOP_EDGE_PIXEL_Y, WINDOW_DISPLAY_BOTTOM_EDGE_PIXEL_Y)
 -      (WINDOW_TO_FRAME_PIXEL_X, WINDOW_TO_FRAME_PIXEL_Y)
 -      (FRAME_TO_WINDOW_PIXEL_X, FRAME_TO_WINDOW_PIXEL_Y)
 -      (WINDOW_DISPLAY_LEFT_AREA_PIXEL_WIDTH)
 -      (WINDOW_DISPLAY_RIGHT_AREA_PIXEL_WIDTH, WINDOW_WANTS_MODELINE_P):
 -      Move to window.h and renamed [see window.h changes].
 -      (WINDOW_AREA_TO_FRAME_PIXEL_X, WINDOW_AREA_PIXEL_WIDTH)
 -      (WINDOW_DISPLAY_TEXT_AREA_PIXEL_WIDTH): Remove macros.
 -      (WINDOW_WANTS_MODELINE_P, WINDOW_WANTS_HEADER_LINE_P):
 -      Use WINDOW_TOTAL_LINES.
 -      (frame_update_line_height): Remove prototype.
 -
 -      * buffer.h (struct buffer): Rename members measured in columns:
 -      left_margin_width to left_margin_cols, right_margin_width to
 -      right_margin_cols.  All uses changed.
 -      New members left_fringe_width, right_fringe_width,
 -      fringes_outside_margins for per-buffer fringe settings.
 -      New members scroll_bar_width and vertical_scroll_bar_type for
 -      per-buffer scroll bar settings.
 -
 -      * buffer.c (init_buffer_once): Set buffer_defaults and
 -      buffer_local_flags for new buffer-local variables
 -      left_fringe_width, right_fringe_width, fringes_outside_margins,
 -      scroll_bar_width, and vertical_scroll_bar_type.
 -      (syms_of_buffer): Defvar_per_buffer them, and defvar_lisp_nopro
 -      default-* variables for them.
 -
 -      * dispnew.c: Make (many) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -      (mode_line_string): No need to adjust width for mode lines, as it
 -      is already adjusted by the caller.
 -      (marginal_area_string): Handle fringes inside/outside margins.
 -
 -      * frame.c: Make (many) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -      (make_frame): Initialize left_fringe_width, right_fringe_width,
 -      fringe_cols, scroll_bar_actual_width, border_width,
 -      internal_border_width, column_width, line_height, x_pixels_diff,
 -      y_pixels_diff, want_fullscreen, size_hint_flags, and win_gravity
 -      members with values suitable for a non-window frames.
 -
 -      * gtkutil.c: Make (many) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * indent.c: Make (few) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * keyboard.c: Make (many) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -      (make_lispy_event): Use window positions returned from
 -      window_from_coordinates when constructing the lisp event for
 -      MOUSE_CLICK_EVENT and DRAG_N_DROP_EVENT, rather than calculating
 -      (incorrect) values locally.
 -      (make_lispy_movement): Use window positions returned from
 -      window_from_coordinates when constructing the lisp event, rather
 -      than calculating (incorrect) values locally.
 -
 -      * scroll.c: Make (some) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * sunfns.c (Fsun_menu_internal): Adapt to per-window fringes and
 -      scroll-bars.
 -
 -      * sysdep.c: Make (few) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * term.c: Make (some) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * widget.c: Make (few) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * window.c: Make (many) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -      (make_window): Initialize new members
 -      left_margin_cols, right_margin_cols, left_fringe_width,
 -      right_fringe_width, fringes_outside_margins, scroll_bar_width,
 -      and vertical_scroll_bar_type.
 -      (coordinates_in_window): Adapt to new fringe/margin positions
 -      and per-window fringes and scroll-bars.
 -      Fix bug related to incorrectly adjusting coordinates by
 -      frame's internal_border_width (the effect normally negible since
 -      the internal_border_width is typically 0 or 1 pixel, but very
 -      noticeable for an internal_border_width of e.g. 25 pixels).
 -      Upon successful return (other than ON_NOTHING), the coordinates
 -      are now always properly converted to window relative for the
 -      given display element.
 -      (window_from_coordinates): Add new parameters wx and wy to
 -      return the window relative x and y position in the returned
 -      window and part.  A null arg means, don't return the position.
 -      All callers changed.
 -      (adjust_window_margins): New function which may reduce the width
 -      of the display margins if a window's text area is too small after
 -      resizing or splitting windows.
 -      (size_window): Fix bug that did not account for display margin
 -      widths when checking the minimum width of a window; use
 -      adjust_window_margins.
 -      (set_window_buffer): Call Fset_window_fringes and
 -      Fset_window_scroll_bars to setup per-window elements.
 -      Add new arg KEEP_MARGINS_P.  Non-nil means to keep window's
 -      existing display margin, fringe widths, and scroll bar settings
 -      (e.g. after splitting a window or resizing the frame).
 -      All callers changed.
 -      (Fset_window_buffer): New arg KEEP_MARGINS.  All callers changed.
 -      (Fsplit_window): Duplicate original window's display margin,
 -      fringe, and scroll-bar settings; then call Fset_window_buffer with
 -      KEEP_MARGINS non-nil.  This fixes a bug which caused a split
 -      window to only preserve the display margins in one of the windows.
 -      When splitting horizontally, call adjust_window_margins on both
 -      windows to ensure that the text area of the new windows is non too
 -      narrow.  This fixes a bug which could cause Emacs to trap if the
 -      width of the split window was less than the width of the display
 -      margins.
 -      (window_box_text_cols): Rename from window_internal_width.
 -      All uses changed.  Adapt to per-window fringes and scroll bars.
 -      Fix bug that caused vertical separator to be subtracted also on
 -      window frames.  Fix another bug that did not reduce the returned
 -      value by the columns used for display margins.
 -      (window_scroll_line_based): Fix bug related to scrolling too much
 -      when display margins are present (implicitly fixed by the fix to
 -      window_box_text_cols).
 -      (scroll_left, scroll_right): Fix bug related to scrolling too far
 -      by default when display margins are present (implicitly fixed by
 -      the fix to window_box_text_cols).
 -      (struct saved_window): Rename members left to left_col, top to
 -      top_line, width to total_cols, height to total_lines, orig_top to
 -      orig_top_line, orig_height to orig_total_lines.  All uses changed.
 -      New members left_margin_cols, right_margin_cols,
 -      left_fringe_width, right_fringe_width, fringes_outside_margins,
 -      scroll_bar_width, and vertical_scroll_bar_type for saving
 -      per-window display elements.
 -      (Fset_window_configuration): Restore display margins, fringes,
 -      and scroll bar settings.  This fixes a bug which caused display
 -      margins to be discarded when saving and restoring a window
 -      configuration.
 -      (save_window_save): Save display margins, fringes, and scroll bar
 -      settings.  This fixes a bug which caused display margins to be
 -      discarded when saving and restoring a window configuration.
 -      (Fset_window_margins): Do nothing if display margins are not
 -      really changed.  Otherwise, call adjust_window_margins to ensure
 -      the text area doesn't get too narrow.  This fixes a bug which
 -      could cause Emacs to trap if setting display margins wider than
 -      the width of the window.
 -      (Fset_window_fringes): New defun to allow user to specifically set
 -      this window's fringe widths and position vs. display margins.
 -      (Fwindow_fringes): New defun to return window's actual fringe settings.
 -      (Fset_window_scroll_bars): New defun to allow user to specifically
 -      set this window's scroll bar width and position.
 -      (Fwindow_scroll_bars): New defun to return window's actual scroll
 -      bar settings.
 -      (compare_window_configurations): Also compare display margins,
 -      fringes, and scroll bar settings.
 -      (syms_of_window): Defsubr new defuns for fringe and scroll bars.
 -
 -      * xdisp.c: Make (many) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -      (window_box_width): Adapt to per-window fringes and scroll bars,
 -      and new fringe vs. display margin position.  Note that returned
 -      value is no longer guaranteed to be a whole multiple of the frame
 -      column width, since per-window fringes may now be any width.
 -      (window_box_left_offset): New function like window_box_left, but
 -      value is relative to left border of window (rather than frame).
 -      (window_box_right_offset): New function like window_box_right,
 -      but value is relative to left border of window.
 -      (window_box_left): Adapt to per-window fringes and scroll bars,
 -      and new fringe vs. display margin position.  Simplify by using
 -      WINDOW_LEFT_EDGE_X and window_box_left_offset.
 -      (window_box): Allow null args for unnecessary return values;
 -      change/simplify relevant callers.
 -      (x_y_to_hpos_vpos): Adapt to per-window fringes and scroll bars,
 -      and new fringe vs. display margin position.
 -      Use window_box_left_offset and window_box_right_offset
 -      (get_glyph_string_clip_rect): Adapt to per-window fringes and
 -      scroll bars, and new fringe vs. display margin position.
 -      Use WINDOW_LEFT_EDGE_X and WINDOW_TOTAL_WIDTH.
 -      (draw_fringe_bitmap): Rework to handle per-window fringes and new
 -      fringe vs. display margin position.
 -      (hscroll_window_tree): Use window_box_width instead of window_box.
 -      (redisplay_window): Adapt to per-window scroll bars.
 -      (draw_glyphs): Rework to handle per-window fringes and scroll
 -      bars, and new fringe vs. display margin position.
 -      Use WINDOW_LEFT_EDGE_X, WINDOW_TOTAL_WIDTH, and window_box_left.
 -      (x_clear_end_of_line): Adapt to per-window fringes and scroll
 -      bars, and new fringe vs. display margin position.  Fix bug which
 -      increased total width of full_width rows by width of scroll bars
 -      although window's total width already includes that.
 -      (x_fix_overlapping_area): Simplify using window_box_left_offset.
 -      (expose_area): Simplify using window_box_left_offset.
 -      (x_draw_vertical_border): Handle per-window scroll bar settings,
 -      mixing windows with left, right and no scroll bars.
 -
 -      * xfaces.c [WINDOWSNT]: Move redefinition of FONT_WIDTH macro to
 -      where it's used in x_list_fonts (for clarity).
 -      (frame_update_line_height): Remove unused function; functionality
 -      is now done directly when setting the default font in x_set_font.
 -
 -      * xfns.c: Make (many) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * xmenu.c: Make (some) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * xterm.h (struct x_output): Move members left_pos, top_pos,
 -      border_width, pixel_height, pixel_width, line_height,
 -      internal_border_width, vertical_scroll_bar_extra,
 -      left_fringe_width, right_fringe_width, fringe_cols,
 -      fringes_extra, win_gravity, size_hint_flags, want_fullscreen,
 -      x_pixels_diff, and y_pixels_diff to struct frame (frame.h).
 -      (FRAME_INTERNAL_BORDER_WIDTH, FRAME_LINE_HEIGHT): Move to frame.h.
 -      (FRAME_DEFAULT_FONT_WIDTH): Remove macro.
 -      (PIXEL_WIDTH, PIXEL_HEIGHT)
 -      (FRAME_X_FRINGE_COLS, FRAME_X_FRINGE_WIDTH)
 -      (FRAME_X_LEFT_FRINGE_WIDTH, FRAME_X_RIGHT_FRINGE_WIDTH): Move to
 -      frame.h and renamed [see frame.h changes].
 -      (CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, CHAR_TO_PIXEL_WIDTH)
 -      (CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_ROW, PIXEL_TO_CHAR_COL)
 -      (PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Move to frame.h
 -      and renamed [see frame.h changes].
 -
 -      * xterm.c: Make (several) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -      (x_draw_glyph_string_box): Adapt to per-window fringes and scroll-bars.
 -      (scroll_run): Adapt to new fringe position.
 -      (glyph_rect): Use window coordinates returned from
 -      window_from_coordinates rather than frame_to_window_pixel_xy.
 -      (XTset_vertical_scroll_bar): Adapt to per-window fringes and
 -      scroll-bars.
 -      (handle_one_xevent): Simplify a USE_GTK conditional.
 -      (x_clip_to_row): Remove superfluous whole_line_p arg and code
 -      (fringes are now inside margins, i.e. always in the clipping area).
 -      All callers changed.
 -      (x_new_font): Set FRAME_COLUMN_WIDTH and FRAME_LINE_HEIGHT
 -      directly, then call compute_fringe_widths.  Don't call
 -      frame_update_line_height.
 -
 -      * w32term.h (struct w32_output): Move members left_pos, top_pos,
 -      border_width, pixel_height, pixel_width, line_height,
 -      internal_border_width, vertical_scroll_bar_extra,
 -      left_fringe_width, right_fringe_width, fringe_cols,
 -      fringes_extra, win_gravity, size_hint_flags, want_fullscreen,
 -      x_pixels_diff, and y_pixels_diff to struct frame (frame.h).
 -      (FRAME_INTERNAL_BORDER_WIDTH, FRAME_LINE_HEIGHT): Move to frame.h.
 -      (FRAME_DEFAULT_FONT_WIDTH): Remove macro.
 -      (PIXEL_WIDTH, PIXEL_HEIGHT)
 -      (FRAME_X_FRINGE_COLS, FRAME_X_FRINGE_WIDTH)
 -      (FRAME_X_LEFT_FRINGE_WIDTH, FRAME_X_RIGHT_FRINGE_WIDTH): Move to
 -      frame.h and renamed [see frame.h changes].
 -      (CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, CHAR_TO_PIXEL_WIDTH)
 -      (CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_ROW, PIXEL_TO_CHAR_COL)
 -      (PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Move to frame.h
 -      and renamed [see frame.h changes].
 -
 -      * w32term.c: Make (several) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -      (x_draw_glyph_string_box): Adapt to per-window fringes and scroll-bars.
 -      (glyph_rect): Use window coordinates returned from
 -      window_from_coordinates rather than frame_to_window_pixel_xy.
 -      (XTset_vertical_scroll_bar): Adapt to per-window fringes and
 -      scroll-bars.
 -      (w32_clip_to_row): Remove superfluous whole_line_p arg and code
 -      (fringes are now inside margins, i.e. always in the clipping area).
 -      All callers changed.
 -      (x_new_font): Set FRAME_COLUMN_WIDTH and FRAME_LINE_HEIGHT
 -      directly, then call compute_fringe_widths.  Don't call
 -      frame_update_line_height.
 -
 -      * w32console.c: Make (few) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * w32fns.c: Make (many) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * w32menu.c: Make (few) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * macterm.h (struct mac_output): Move members left_pos, top_pos,
 -      border_width, pixel_height, pixel_width, line_height,
 -      internal_border_width, vertical_scroll_bar_extra,
 -      left_fringe_width, right_fringe_width, fringe_cols,
 -      fringes_extra, win_gravity, size_hint_flags, want_fullscreen,
 -      x_pixels_diff, y_pixels_diff to struct frame (frame.h).
 -      (FRAME_INTERNAL_BORDER_WIDTH, FRAME_LINE_HEIGHT): Move to frame.h.
 -      (FRAME_DEFAULT_FONT_WIDTH): Remove macro.
 -      (PIXEL_WIDTH, PIXEL_HEIGHT)
 -      (FRAME_X_FRINGE_COLS, FRAME_X_FRINGE_WIDTH)
 -      (FRAME_X_LEFT_FRINGE_WIDTH, FRAME_X_RIGHT_FRINGE_WIDTH): Move to
 -      frame.h and renamed [see frame.h changes].
 -      (CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, CHAR_TO_PIXEL_WIDTH)
 -      (CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_ROW, PIXEL_TO_CHAR_COL)
 -      (PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Move to frame.h
 -      and renamed [see frame.h changes].
 -
 -      * macterm.c: Make (several) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -      (x_draw_glyph_string_box): Adapt to per-window fringes and scroll-bars.
 -      (glyph_rect): Use window coordinates returned from
 -      window_from_coordinates rather than frame_to_window_pixel_xy.
 -      (XTset_vertical_scroll_bar): Adapt to per-window fringes and
 -      scroll-bars.
 -      (x_clip_to_row): Remove superfluous whole_line_p arg and code
 -      (fringes are now inside margins, i.e. always in the clipping area).
 -      All callers changed.
 -      (x_new_font): Set FRAME_COLUMN_WIDTH and FRAME_LINE_HEIGHT
 -      directly, then call compute_fringe_widths.  Don't call
 -      frame_update_line_height.
 -
 -      * macfns.c: Make (several) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -      (x_real_positions): Set f->x_pixels_diff and f->y_pixels_diff to 0.
 -
 -      * macmenu.c: Make (few) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -
 -      * msdos.h (struct x_output): Remove members left_pos, top_pos,
 -      and line_height, and use corresponding new members in struct
 -      frame.  All uses changed.
 -      (FRAME_LINE_HEIGHT, FRAME_INTERNAL_BORDER_WIDTH): Remove macros;
 -      superseeded by corresponding macros in frame.h.
 -
 -      * msdos.c: Make (several) trivial substitutions for renamed and
 -      new macros in dispextern.h, frame.h and window.h.
 -      (IT_note_mouse_highlight): Use updated window coordinates returned
 -      by window_from_coordinates, rather than adjusting them locally.
 -      (internal_terminal_init): No need to initialize line_height here;
 -      it now defaults to 1.
 -
 -2003-05-24  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (read_key_sequence): Adjust fkey and keytran when
 -      dropping `down' events.
 -
 -2003-05-24  Andreas Schwab  <schwab@suse.de>
 -
 -      * coding.c (find_safe_codings): Fix last change.
 -
 -2003-05-24  Istvan Marko  <mi@imarko.dhs.org>  (tiny change)
 -
 -      * xfns.c (x_window): Fix typo from 2003-05-21 change.
 -
 -2003-05-23  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * xdisp.c (display_mode_element): Increase max depth.
 -      Simplify the error handling code.  Use a different error string
 -      for the case where we hit the depth limit.
 -
 -      * lisp.h (Vfundamental_mode_abbrev_table): Don't declare.
 -
 -      * buffer.c (reset_buffer_local_variables): Remove redundant setting.
 -
 -2003-05-21  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * intervals.c (get_local_map): Don't get char-property of previous
 -      point any more: get_pos_property already does it and better.
 -
 -2003-05-21  Dave Love  <fx@gnu.org>
 -
 -      [Merged from unicode branch.]
 -
 -      * xfns.c (x_window, x_window): Use use_xim.
 -
 -      * xterm.c (use_xim): Initialize.
 -      (xim_open_dpy, xim_initialize, xim_close_dpy): Use use_xim.
 -      (x_term_init): Maybe set use_xim.
 -
 -      * xterm.h (use_xim) [HAVE_X_I18N]: Declare.
 -
 -2003-05-21  Jason Rumney  <jasonr@gnu.org>
 -
 -      * unexw32.c (_start): Remove _fmode initialization.
 -
 -      * emacs.c (main) [WINDOWSNT]: Move it here.
 -
 -2003-05-20  Dave Love  <fx@gnu.org>
 -
 -      * s/gnu-linux.h (MAIL_USE_FLOCK): Make it conditional.
 -
 -2003-05-19  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xfaces.c (Finternal_set_lisp_face_attribute): Handle Qunspecified
 -      as value for QCfont attribute.
 -      (realize_default_face): lface should already exist; crash if not.
 -      Specify 0 for FORCE_P when calling set_lface_from_font_name.
 -
 -      * frame.c (Fignore_event): Doc fix.
 -
 -2003-05-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (decode_coding_string): Handle post-read-conversion
 -      even if the coding doesn't require decoding.
 -
 -2003-05-18  Richard M. Stallman  <rms@gnu.org>
 -
 -      * callproc.c (Fcall_process_region): Doc fix.
 -
 -2003-05-17  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * lread.c (Fload): Print a message if package is obsolete.
 -
 -      * window.c (Fselect_window): Add optional `norecord' arg.
 -      (select_window_1): Fold into Fselect_window.
 -      (select_window_norecord): New function.
 -      (temp_output_buffer_show): Use it.  Preserve current buffer.
 -
 -      * window.h (Fselect_window): Update declaration.
 -
 -      * window.c (delete_window, Fother_window, Fset_window_configuration):
 -      * minibuf.c (read_minibuf):
 -      * macterm.c (x_new_focus_frame):
 -      * frame.c (do_switch_frame, Fset_frame_selected_window, Fdelete_frame):
 -      * callint.c (Fcall_interactively):
 -      * xterm.c (x_new_focus_frame): Pass nil as new arg to Fselect_window.
 -
 -      * buffer.c (Fpop_to_buffer): Pass norecord to Fselect_window.
 -
 -2003-05-17  David Kastrup  <dak@gnu.org>
 -
 -      * process.c (read_process_output): Back out change from 2003-03-09.
 -
 -2003-05-17  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * editfns.c (get_pos_property): Don't assume that `object' = nil.
 -
 -      * textprop.c (text_property_stickiness): New arg `buffer'.
 -
 -      * intervals.h (text_property_stickiness): New arg `buffer'.
 -      (get_pos_property): Declare.
 -
 -      * intervals.c (get_local_map): Use get_pos_property, to obey
 -      stickiness and empty overlays.
 -      (create_root_interval, graft_intervals_into_buffer): Use BEG.
 -      (merge_properties, intervals_equal, merge_properties_sticky):
 -      Use XCAR, XCDR.
 -      (adjust_for_invis_intang): Pass new arg to text_property_stickiness.
 -
 -2003-05-17  Richard M. Stallman  <rms@gnu.org>
 -
 -      * minibuf.c (read_minibuf): If buffer is empty, record the default
 -      in the history.
 -      (Fminibuffer_complete_word): When deleting the overlap, take account
 -      of its real position.
 -
 -      * fns.c (map_char_table): Fix previous change.
 -
 -      * syntax.c (find_defun_start):
 -      When open_paren_in_column_0_is_defun_start,
 -      return beginning of buffer.
 -
 -      * lisp.h (map_char_table): Declare added arg.
 -
 -      * fns.c (map_char_table): New arg TABLE gets the master table.
 -      All calls changed.
 -      Process default and inheritance, resorting to Faref if necessary.
 -
 -      * keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap)
 -      (Faccessible_keymaps): Pass new arg to map_char_table.
 -
 -      * fontset.c (Ffontset_info): Pass new arg to map_char_table.
 -
 -      * casetab.c (set_case_table): Pass new arg to map_char_table.
 -
 -      * data.c (let_shadows_buffer_binding_p): Make target of p volatile.
 -
 -      * lisp.h (specbinding_func): New typedef.
 -      (struct specbinding): Use specbinding_func, to put the `volatile'
 -      in the right place.
 -
 -      * alloc.c (Fgarbage_collect): Cast pointers into specpdl
 -      to avoid GCC warning.
 -
 -2003-05-16  Ralph Schleicher  <rs@nunatak.allgaeu.org>
 -
 -      * fileio.c (Fdelete_file): Handle symlinks pointing to directories.
 -
 -2003-05-15  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (apply_modifiers): Don't fill the other cache.
 -
 -2003-05-14  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * .gdbinit-union: New file, for USE_LISP_UNION_TYPE users.
 -
 -      * window.h (Qwindowp, Qwindow_live_p, Vwindow_list)
 -      (Fwindow_end, Fselected_window, Fdelete_window, Fwindow_buffer)
 -      (Fget_buffer_window, Fsave_window_excursion, Fsplit_window)
 -      (Fset_window_configuration, Fcurrent_window_configuration)
 -      (compare_window_configurations, Fcoordinates_in_window_p, Fwindow_at)
 -      (Fpos_visible_in_window_p, mark_window_cursors_off)
 -      (window_internal_height, window_internal_width, Frecenter)
 -      (Fscroll_other_window, Fset_window_start, temp_output_buffer_show)
 -      (replace_buffer_in_all_windows, init_window_once, init_window)
 -      (syms_of_window, keys_of_window): Move from lisp.h.
 -      * lisp.h: Move window.c declarations to window.h.
 -
 -      * bytecode.c: Include window.h.
 -      * emacs.c: Include window.h.
 -
 -      * keyboard.c (make_lispy_event): Apply modifiers to multibyte-char key.
 -      (keyremap): Add `parent' field.
 -      (keyremap_step): Use it.  Remove `parent' argument.
 -      (read_key_sequence): Setup and use the new `parent' field.
 -
 -2003-05-11  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (adjust_point_for_property): Ensure termination.
 -
 -2003-05-10  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (follow_key): Remove dead variable `did_meta'.
 -      (access_keymap_keyremap, keyremap_step): New funs, extracted from the
 -      duplicated handling of function-key-map and key-translation-map
 -      in read_key_sequence.
 -      (read_key_sequence): Use them.
 -
 -      * keyboard.c (adjust_point_for_property): Try harder to move point
 -      to the non-sticky end of an invisible property.
 -
 -      * xdisp.c (single_display_prop_intangible_p): Make `space' display
 -      property intangible as well.
 -
 -2003-05-10  Andreas Schwab  <schwab@suse.de>
 -
 -      * xmenu.c (single_menu_item): Change last parameter to void* to
 -      avoid warning.
 -
 -2003-05-09  Richard M. Stallman  <rms@gnu.org>
 -
 -      * print.c (Fprin1_to_string): Instead of gcpro, set abort_on_gc.
 -      Bind Qinhibit_modification_hooks to t so there will be no GC.
 -      Rename local `tem' to `save_deactivate_mark'.
 -
 -      * eval.c (specpdl_ptr): Declare volatile.
 -      (unbind_to): Copy the whole binding and decrement specpdl_ptr
 -      before doing the work of unbinding it.
 -
 -      * lisp.h (struct specbinding): Declare elements volatile.
 -      (specpdl_ptr): Declare volatile.
 -
 -      * Makefile.in (alloca.o): Specify -DDO_BLOCK_INPUT in compiling.
 -
 -      * alloca.c: Test DO_BLOCK_INPUT rather than `emacs'
 -      for use of BLOCK_INPUT and inclusion of lisp.h and blockinput.h.
 -
 -2003-05-08  Dave Love  <fx@gnu.org>
 -
 -      * coding.c (Vlast_coding_system_used): Doc fix.
 -
 -2003-05-07  Jason Rumney  <jasonr@gnu.org>
 -
 -      * fileio.c (Ffile_symlink_p): Let handlers handle symlinks even
 -      when system does not support them.
 -
 -2003-05-05  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * fileio.c (Qwrite_region_annotate_functions): New var.
 -      (build_annotations): Use it to process the global part of the hook.
 -      (syms_of_fileio): Init and staticpro it.
 -
 -      * keyboard.c (safe_run_hooks_error): Display a message instead of
 -      silently ignoring the error.
 -
 -2003-05-03  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (input_available_signal): Mark static.
 -      (menu_bar_items): Use map_keymap.
 -      (menu_bar_one_keymap): Remove.
 -      (menu_bar_item): Adjust arglist (for use in map_keymap).
 -      Properly hide a second binding when not both are keymaps.
 -
 -      * xmenu.c (struct skp): New struct, to pass args through map_keymap.
 -      (single_keymap_panes): Use it and map_keymap.
 -      (single_menu_item): Use skp as well.
 -
 -      * keymap.h (map_keymap_function_t): New type.
 -      (map_keymap): Declare.
 -
 -      * keymap.c (map_keymap_item, map_keymap_char_table_item, map_keymap)
 -      (map_keymap_call, Fmap_keymap): New functions.
 -      (syms_of_keymap): Defsubr map-keymap.
 -
 -2003-05-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (create_dialog, make_widget_for_menu_item)
 -      (make_menu_item, create_menus, xg_update_menu_item): Don't call
 -      ..._with_mnemonic functions for menu items.
 -
 -2003-05-01  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (coding_system_accept_latin_extra_p): Delete this
 -      function.
 -      (find_safe_codings): Pay attention to
 -      the property tranlsation-table-for-encode of each codings.
 -      (syms_of_coding): Give Qtranslation_table the extra slot number 2.
 -
 -2003-05-01  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * eval.c (Funwind_protect): Use func=Fprogn rather than symbol=Qnil.
 -
 -2003-04-30  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * eval.c (unbind_to): Don't handle symbol = Qnil any more.
 -
 -      * lisp.h (CHECK): Wrap args in parenthesis.
 -      (specbind): Fix doc: symbol = Qnil is not supported any more.
 -
 -      * bytecode.c (Fbyte_code) <unwind-protect>:
 -      Use Fprogn rather than 0 and Qnil.
 -
 -      * keyboard.c (parse_modifiers_uncached): Parse `down', `drag',
 -      `double', and `triple' modifiers as well.
 -
 -2003-04-30  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (echo_char): Don't clear out a dash that follows a space.
 -
 -      * alloc.c (abort_on_gc): New variable.
 -      (Fgarbage_collect): Abort if abort_on_gc is set.
 -
 -      * lisp.h (abort_on_gc): Add decl.
 -
 -      * eval.c (Fsignal): Clear abort_on_gc.
 -
 -      * editfns.c (Fformat): Set abort_on_gc during first scan of format.
 -      Reinit FORMAT_START and END before second scan.
 -
 -      * xdisp.c (move_it_vertically_backward): Do the final big else
 -      even if nlines is 0.
 -
 -      * xdisp.c (redisplay_internal): Finish the per-frame loop
 -      even if redisplay is suspended by input.
 -
 -2003-04-24  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (x_list_fonts): Return all fonts that match if
 -      maxnames = -1.
 -
 -2003-04-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * syntax.c (skip_chars): Fix previous change.
 -
 -2003-04-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * syntax.c (skip_chars): Make the code faster by using the common
 -      technique of *p, *stop, and *endp.
 -
 -2003-04-23  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xdisp.c (update_tool_bar): BLOCK_INPUT before calling
 -      tool_bar_items so GTK tool bar expose callback does not access items
 -      being updated.
 -
 -2003-04-19  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * eval.c (Fapply): Undo last change and add a comment about why.
 -
 -2003-04-18  Miles Bader  <miles@gnu.org>
 -
 -      * data.c (Faset): Calculate nbytes earlier, to satisfy the now
 -      pickier PARSE_MULTIBYTE_SEQ.
 -
 -2003-04-17  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * eval.c (For, Fand, Fprogn, un_autoload, do_autoload):
 -      Use XCDR, XCAR, CONSP.
 -      (Fdefmacro): Fix docstring.  Use XCAR, XCDR.
 -      (Fapply): Remove unnecessary GCPRO.
 -
 -      * doc.c (Fsubstitute_command_keys): Remove spurious casts.
 -
 -      * charset.h (PARSE_MULTIBYTE_SEQ): Pretend `length' is used.
 -
 -      * buffer.h: Don't hardcode BEG==1.
 -
 -      * abbrev.c (Fdefine_abbrev_table): Use XCAR, XCDR.
 -
 -2003-04-16  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (try_window, try_window_reusing_current_matrix):
 -      When at end of window, set window_end_pos to Z-ZV.
 -
 -      * buffer.c (Foverlay_recenter): Doc fix.
 -
 -2003-04-14  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * dispnew.c (Fsit_For): Support XEmacs-style arg list.
 -
 -2003-04-14  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (mac_check_for_quit_char): Don't check more often than
 -      once a second.
 -
 -2003-04-11  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (kbd_buffer_get_event): Don't handle SELECT_WINDOW_EVENT
 -      specially, so that they can't hide an implicit switch-frame event.
 -      (make_lispy_event): Handle SELECT_WINDOW_EVENT.
 -      (head_table): Use switch-frame as event_kind for select-window.
 -      (keys_of_keyboard): Don't bind [select-window] in special-event-map.
 -
 -      * editfns.c (Fformat): Lisp_Object/int mixup.
 -      (format2): Remove unused var numargs.
 -
 -2003-04-11  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Vafter_insert_file_adjust_coding_function): Delete.
 -      (Qafter_insert_file_set_coding): New variable.
 -      (syms_of_fileio): Initialize and staticpro it.  Delete declaration
 -      for after-insert-file-adjust-coding-function.
 -      (Finsert_file_contents): Call Qafter_insert_file_set_coding
 -      instead of Vafter_insert_file_adjust_coding_function.
 -
 -2003-04-11  Kenichi Handa  <handa@m17n.org>
 -
 -      * lisp.h (temp_echo_area_glyphs): Adjust prototype.
 -
 -      * minibuf.c (temp_echo_area_glyphs): Change the arg to Lisp
 -      string.  Callers changed.
 -
 -2003-04-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Vafter_insert_file_adjust_coding_function): New variable.
 -      (syms_of_fileio): Declare it as a lisp variable.
 -      (Finsert_file_contents):
 -      Call Vafter_insert_file_adjust_coding_function before calling
 -      decode-format.
 -
 -2003-04-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (xg_scroll_callback): Call gtk_range_get_adjustment to
 -      get GtkAdjustment as widget now is a GtkRange.
 -
 -      * gtkutil.c (xg_create_scroll_bar): Connect to value-changed on
 -      GtkRange to avoid memory leak.
 -
 -2003-04-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (Vface_font_rescale_alist): New variable.
 -      (struct font_name): New member rescale_ratio.
 -      (font_rescale_ratio): New function.
 -      (split_font_name): If NUMERIC_P is nonzero, set font->rescale_ratio.
 -      (better_font_p): On comparing point sized, pay attention to
 -      recale_ratio member of fonts.
 -      (build_scalable_font_name): Reflect font->rescale_ratio in the
 -      font name.
 -      (syms_of_xfaces): Declare Vface_font_rescale_alist as a Lisp variable.
 -
 -      * lread.c (read1): Before calling index, check if the 2nd
 -      arguemnt is in ASCII range.
 -
 -2003-04-08  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Ffile_symlink_p): Doc fix.
 -
 -      * editfns.c (Fformat): Translate positions of text properties
 -      in the format string to apply them to the result.
 -
 -      * fileio.c (Finsert_file_contents): Doc fix.
 -      (syms_of_fileio) <after-insert-file-functions>: Doc fix.
 -
 -2003-04-08  Ivan Zakharyaschev  <imz@altlinux.org>  (tiny change)
 -
 -      * lread.c (openp): Get the Qfile_exists_p handler for STRING, not FN.
 -
 -2003-04-08  Steven Tamm  <steventamm@mac.com>
 -
 -      * mac.c (init_mac_osx_environment): Switch libexec and bin so
 -      that self-contained application finds libexec files.
 -
 -2003-04-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (code_convert_region_unwind):
 -      Set Vlast_coding_system_used to the argument.
 -      (code_convert_region): If post-read-conversion function changed
 -      the value of last-coding-sytem, keep the new value in
 -      coding->symbol so that it won't be overridden.
 -      (run_pre_post_conversion_on_str): Likewise.
 -      (coding_system_accept_latin_extra_p): New function.
 -      (find_safe_codings): Pay attention to characters registered in
 -      latin-extra-code-table.
 -
 -2003-04-07  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * Makefile.in (md5.o): Add missing dependency info.
 -
 -2003-04-06  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xselect.c (x_handle_selection_request): Move UNGCPRO to very end.
 -
 -      * marker.c (verify_bytepos): New function.
 -
 -      * intervals.c (set_intervals_multibyte_1): When becoming
 -      multibyte, adjust right and left child sizes to a whole set of
 -      characters.  If an interval gets zero total-length, delete it.
 -      If an interval consists of just its children, delete one of them.
 -
 -      * intervals.h (CHECK_TOTAL_LENGTH): New macro.
 -      * intervals.c: Add many calls to CHECK_TOTAL_LENGTH.
 -
 -      * alloc.c (VALIDATE_LISP_STORAGE): Macro deleted.
 -      All calls deleted.
 -      (lisp_malloc): Do the work here directly.
 -
 -2003-04-06  Gareth Jones  <emacs@referential.org.uk>  (tiny change)
 -
 -      * fns.c (Flength): Return SUB_CHAR_TABLE_ORDINARY_SLOTS for sub
 -      char tables.
 -
 -2003-04-04  Kenichi Handa  <handa@m17n.org>
 -
 -      * editfns.c (Fformat): Use a copy of FORMAT string so that we can
 -      destructively change "%S" to "%s".
 -
 -2003-04-03  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (choose_face_font): Make sure *NEEDS_OVERSTRIKE is
 -      always set.
 -
 -2003-04-01  Dave Love  <fx@gnu.org>
 -
 -      * xfns.c (xpm_lookup_color): Grok "opaque".
 -
 -2003-03-31  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * frame.c (x_report_frame_params) [HAVE_CARBON]: Do not report
 -      parent window ID.
 -
 -      * macfns.c (syms_of_macfns): Remove call to init_x_parm_symbols.
 -
 -      * macterm.h (struct mac_output): Define x_pixels_diff and
 -      y_pixels_diff.
 -
 -2003-03-31  Juanma Barranquero  <lektu@terra.es>
 -
 -      * makefile.w32-in ($(BLD)/frame.$(O)): Add dependency on
 -      blockinput.h and files included from it.
 -
 -2003-03-31  Kim F. Storm  <storm@cua.dk>
 -
 -      The following changes consolidates the common code related to
 -      frame-parameter handling from the xfns.c, w32fns.c, and macfns.c
 -      files into frame.c.
 -
 -      * frame.c: Include blockinput.h.
 -      (Vx_resource_name, Vx_resource_class, Qx_frame_parameter)
 -      (Qx_resource_name, Qface_set_after_frame_default): Define vars here.
 -      (Qauto_raise, Qauto_lower, ...): Define all frame parameter
 -      related vars here.
 -      (struct frame_parm_table, frame_parms): New table for describing
 -      frame parameters and their associated Q-variable.
 -      The order of the parameters corresponds to the sequence of the
 -      frame_parm_handlers table in redisplay_interface.
 -      (x_fullscreen_move, x_set_frame_parameters)
 -      (x_report_frame_params, x_set_fullscreen, x_set_line_spacing)
 -      (x_set_screen_gamma, x_set_font, x_set_fringe_width)
 -      (x_set_border_width, x_set_internal_border_width, x_set_visibility)
 -      (x_set_autoraise, x_set_autolower, x_set_unsplittable)
 -      (x_set_vertical_scroll_bars, x_set_scroll_bar_width, x_icon_type):
 -      Generic functions for processing of frame parameters.
 -      (validate_x_resource_name, xrdb_get_resource, Fx_get_resource)
 -      (display_x_get_resource, x_get_resource_string): Functions for
 -      generic access to X resources.
 -      (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg)
 -      (x_default_parameter, Fx_parse_geometry): Functions for generic
 -      access to frame parameters.
 -      (x_figure_window_size): Generic calculation of frame size.
 -      Fixed to add space needed for tool bar.  Also setup size_hint_flags.
 -      (syms_of_frame): Intern and staticpro frame parameter variables.
 -      Defvar_lisp Vx_resource_class and Vx_resource_name here.
 -      Defsubr Sx_get_resource and Sx_parse_geometry.
 -
 -      * frame.h (Qauto_raise, Qauto_lower, ...): Declare extern all frame
 -      parameter related vars defined in frame.c.
 -      (EMACS_CLASS): Define here.
 -      (enum FULLSCREEN_*): Define here.
 -      (x_set_scroll_bar_default_width, x_wm_set_icon_position)
 -      (x_set_offset, x_new_font, x_new_fontset): Add prototypes.
 -      (x_fullscreen_adjust, x_set_frame_parameters, x_report_frame_params)
 -      (x_set_fullscreen, x_set_line_spacing, x_set_screen_gamma, x_set_font)
 -      (x_set_fringe_width, x_set_border_width, x_set_internal_border_width)
 -      (x_set_visibility, x_set_autoraise, x_set_autolower)
 -      (x_set_unsplittable, x_set_vertical_scroll_bars)
 -      (x_set_scroll_bar_width, x_icon_type, validate_x_resource_name)
 -      (x_figure_window_size): Add prototypes.
 -
 -      * dispextern.h (frame_parm_handler): New typedef.
 -      (struct redisplay_interface): New member frame_parm_handlers.
 -      (enum resource_types): Move declaration here.
 -      (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg)
 -      (x_default_parameter): Add prototypes.
 -
 -      * window.c: Remove extern decl for frame parameter vars.
 -      (change_window_heights): New generic function;
 -      replaces x_change_window_heights.  All users changed.
 -
 -      * window.h (change_window_heights): Add prototype.
 -
 -      * xfaces.c: Remove extern decl for frame parameter vars.
 -
 -      * xterm.h (EMACS_CLASS): Remove.  Use generic define.
 -      (struct w32_display_info): Fix type of xrdb member.
 -      (enum FULLSCREEN_*): Remove.
 -      Remove prototypes for generic functions (in frame.h).
 -
 -      * xfns.c (Qauto_raise, Qauto_lower, ...): Remove vars for frame
 -      parameters now defined in frame.h and frame.c.
 -      (Vx_resource_name): Remove.  Use generic var.
 -      (enum x_frame_parms): Remove (bogus, unused enum).
 -      (check_x_display_info): Make non-static (for frame.c).
 -      (struct x_frame_parm_table, x_frame_parms): Remove.
 -      (init_x_parm_symbols, x_set_frame_parameters, x_report_frame_params)
 -      (x_set_line_spacing, x_set_screen_gamma, x_icon_type, x_set_font)
 -      (x_set_border_width, x_set_internal_border_width, x_set_visibility)
 -      (x_change_window_heights, x_set_autoraise, x_set_autolower)
 -      (x_set_vertical_scroll_bars, x_set_scroll_bar_width)
 -      (validate_x_resource_name, Fx_get_resource, x_get_resource_string)
 -      (x_default_parameter, Fx_parse_geometry, x_figure_window_size):
 -      Remove.  Use generic functions instead.
 -      (enum resource_types): Remove.
 -      (x_set_scroll_bar_default_width): New global function (for frame.c).
 -      (Fx_create_frame): Depend on x_figure_window_size to add space for
 -      toolbar and setup size_hint_flags.
 -      (x_frame_parm_handlers): New table for redisplay_interface.
 -      (syms_of_xfns): Don't intern/staticpro removed vars.
 -
 -      * xterm.c: Remove unnecessary extern declarations.
 -      (x_fullscreen_adjust): Remove.  Use generic instead.
 -      (x_redisplay_interface): Add x_frame_parm_handlers member.
 -
 -      * w32gui.h (XrmDatabase): New (dummy) typedef.
 -
 -      * w32term.h (EMACS_CLASS): Remove.  Use generic define.
 -      (struct w32_display_info): Fix type of xrdb member.
 -      (enum FULLSCREEN_*): Remove.
 -      (x_fullscreen_adjust): Remove prototype.
 -
 -      * w32fns.c (Qauto_raise, Qauto_lower, ...): Remove vars for frame
 -      parameters now defined in frame.h and frame.c.
 -      (Vx_resource_name): Remove.  Use generic var.
 -      (enum x_frame_parms): Remove (bogus, unused enum).
 -      (check_x_display_info): Make non-static (for frame.c).
 -      (struct x_frame_parm_table, x_frame_parms): Remove.
 -      (init_x_parm_symbols, x_set_frame_parameters, x_report_frame_params)
 -      (x_set_line_spacing, x_set_screen_gamma, x_icon_type, x_set_font)
 -      (x_set_border_width, x_set_internal_border_width, x_set_visibility)
 -      (x_change_window_heights, x_set_autoraise, x_set_autolower)
 -      (x_set_vertical_scroll_bars, x_set_scroll_bar_width)
 -      (validate_x_resource_name, Fx_get_resource, x_get_resource_string)
 -      (x_default_parameter, Fx_parse_geometry, x_figure_window_size):
 -      Remove.  Use generic functions instead.
 -      (enum resource_types): Remove.
 -      (x_set_scroll_bar_default_width): New global function (for frame.c).
 -      (Fx_create_frame): Depend on x_figure_window_size to add space for
 -      toolbar and setup size_hint_flags.
 -      (w32_frame_parm_handlers): New table for redisplay_interface.
 -      (syms_of_w32fns): Don't intern/staticpro removed vars.
 -
 -      * w32term.c: Remove unnecessary extern declarations.
 -      (x_fullscreen_adjust): Remove.  Use generic instead.
 -      (x_redisplay_interface): Add w32_frame_parm_handlers member.
 -
 -      * w32reg.c (x_get_string_resource): Use XrmDatabase.
 -
 -      * macgui.h (XrmDatabase): New (dummy) typedef.
 -
 -      * macterm.h (EMACS_CLASS): Remove.
 -      (struct mac_display_info): Add xrdb member.
 -      (struct mac_output): Add want_fullscreen member.
 -
 -      * macfns.c (Qauto_raise, Qauto_lower, ...): Remove vars for frame
 -      parameters now defined in frame.h and frame.c.
 -      (Vx_resource_name): Remove.  Use generic var.
 -      (check_x_display_info): Make non-static (for frame.c).
 -      (struct x_frame_parm_table, x_frame_parms): Remove.
 -      (init_x_parm_symbols, x_set_frame_parameters, x_report_frame_params)
 -      (x_set_line_spacing, x_set_screen_gamma, x_icon_type, x_set_font)
 -      (x_set_border_width, x_set_internal_border_width, x_set_visibility)
 -      (x_change_window_heights, x_set_autoraise, x_set_autolower)
 -      (x_set_vertical_scroll_bars, x_set_scroll_bar_width)
 -      (validate_x_resource_name, Fx_get_resource, x_get_resource_string)
 -      (x_default_parameter, Fx_parse_geometry, x_figure_window_size):
 -      Remove.  Use generic functions instead.
 -      (enum resource_types): Remove.
 -      (x_set_scroll_bar_default_width): New global function (for frame.c).
 -      (mac_frame_parm_handlers): New table for redisplay_interface.
 -      (syms_of_macfns): Don't intern/staticpro removed vars.
 -
 -      * macterm.c: Remove unnecessary extern declarations.
 -      (x_redisplay_interface): Add mac_frame_parm_handlers member.
 -
 -      * Makefile.in (frame.o): Add dependency on blockinput.h and files
 -      included from it (atimer.h and systime.h).
 -
 -2003-03-30  Andreas Schwab  <schwab@suse.de>
 -
 -      * xdisp.c (x_insert_glyphs): Fix swapped width and height
 -      parameters for shift_glyphs_for_insert.
 -
 -      * macterm.c (x_redisplay_interface): Add missing entry for
 -      draw_vertical_window_border.
 -
 -2003-03-29  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@gmx.net>
 -
 -      * fileio.c (Fexpand_file_name): In the no-handler case, after
 -      expanding, look again for a handler and invoke it.  This is needed
 -      for filenames like "/foo/../user@host:/bar/../baz" -- the first
 -      expansion produces "/user@host:/bar/../baz" which needs to be
 -      expanded again for the finame result "/user@host:/baz".
 -
 -2003-03-28  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_tool_bar_item_expose_callback): Reduce size
 -      of area to be redrawn for better performance.
 -
 -2003-03-28  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * xterm.c (take_vertical_position_into_account): Remove.
 -      (xt_action_hook): Call set_vertical_scroll_bar if needed.
 -      (XM_SB_MIN, XM_SB_RANGE): Remove (min is now set to 0).
 -      (xm_scroll_callback, x_create_toolkit_scroll_bar)
 -      (x_set_toolkit_scroll_bar_thumb): Simplify.
 -      (x_scroll_bar_expose): Only compile if !USE_TOOLKIT_SCROLL_BARS.
 -      (XTread_socket): Remove unused var.
 -      (x_make_frame_invisible): Replace goto with else.
 -
 -      * xdisp.c (set_vertical_scroll_bar): New fun.
 -      (redisplay_window): Use it.
 -
 -2003-03-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (update_tool_bar): Recompute tool bar if
 -      update_mode_lines is set.  Set w->update_mode_line
 -      only if the tool bar contents actually change.
 -      (update_menu_bar): Undo previous change.
 -
 -2003-03-26  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_resize_widgets): Don't call xg_frame_cleared.
 -      (xg_frame_set_char_size): Calculate scroll bar width before frame
 -      width.  Call SET_FRAME_GARBAGED and cancel_mouse_face.
 -      (xg_separator_p): Check for all documented separator types.
 -      (xg_update_scrollbar_pos): Variable gheight not needed, use height.
 -      (update_frame_tool_bar): Don't call gdk_window_process_all_updates.
 -
 -      * xdisp.c (update_menu_bar): Set w->update_mode_line to Qt
 -      so tool bar gets updated.
 -
 -2003-03-26  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * data.c (store_symval_forwarding): Re-instate part of the code
 -      that was deleted with too much enthusiasm.
 -
 -2003-03-25  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * data.c (store_symval_forwarding): Delete special read-only
 -      hack for type == -1, since we now use ->constant instead.
 -      (Fkill_local_variable): Don't use XBUFFER if it can be nil.
 -
 -      * buffer.c (overlays_in): Declare static.
 -      (syms_of_buffer) <enable-multibyte-characters>: Use the symbol's
 -      `constant' field rather than the variable's `type' field.
 -
 -2003-03-24  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * config.in [MAC_OSX]: Do not redefine bcopy, bzero, and bcmp.
 -
 -      * dispextern.h [HAVE_CARBON]: Include Carbon.h.
 -
 -      * fns.c [MAC_OSX]: Do not redefine vector.
 -
 -      * keyboard.c [MAC_OSX]: Handle SIGINT with interrupt_signal.
 -
 -      * macgui.h: Remove definition of No_Cursor.
 -
 -      * macterm.h: Include Carbon.h.  Replace (struct Cursor *) by Cursor.
 -
 -      * xdisp.c: Define No_Cursor.
 -      (x_write_glyphs, notice_overwritten_cursor)
 -      (draw_phys_cursor_glyph, note_mode_line_or_margin_highlight)
 -      (note_mouse_highlight): Remove Mac-specific code.
 -      (note_mouse_highlight): Use bcmp instead of == to compare Cursors.
 -
 -2003-03-24  John Paul Wallington  <jpw@gnu.org>
 -
 -      * xdisp.c (redisplay_window): If mini window's buffer is not
 -      empty, then redisplay it like other windows.
 -
 -2003-03-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * w32term.c (w32_draw_window_cursor): Fix last change.
 -
 -2003-03-23  Kenichi Handa  <handa@m17n.org>
 -
 -      * alloc.c (make_string_from_bytes, make_specified_string):
 -      Add `const' for the arg CONTENTS.
 -
 -      * lisp.h (make_string_from_bytes, make_specified_string):
 -      Prototypes adjusted.
 -
 -2003-03-23  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xdisp.c (get_glyph_string_clip_rect): Remove ; at end of #endif.
 -
 -      * gtkutil.h: Take two more arguments to xg_update_scrollbar_pos.
 -      (XG_SB_RANGE): New define.
 -
 -      * gtkutil.c (xg_fixed_handle_expose): New function.
 -      (xg_create_frame_widgets): Call xg_fixed_handle_expose for
 -      expose events.
 -      (xg_update_scrollbar_pos): Take two more arguments, left and width
 -      of scroll bar including borders.
 -      Clear left and right part outside scroll bar separately as some
 -      themes have bars that are not an even number of pixels.
 -      Don't set reallocate_redraws, don't call
 -      gdk_window_process_all_updates.
 -      (xg_set_toolkit_scroll_bar_thumb): Upper value is fixed,
 -      so no need to change it.  Calculate size and value with XG_SB_RANGE.
 -
 -      * xterm.c (x_scroll_bar_create, XTset_vertical_scroll_bar):
 -      Pass left and width of scroll bar including borders to
 -      xg_update_scrollbar_pos.
 -
 -2003-03-22  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * Makefile.in: Make sure space precedes end-of-line backslashes.
 -
 -2003-03-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (pixel_to_glyph_coords, glyph_to_pixel_coords):
 -      Add generic versions here.  Remove system specific versions
 -      defined elsewhere.
 -
 -      * dispextern.h (pixel_to_glyph_coords, glyph_to_pixel_coords):
 -      Add prototypes.
 -
 -      * xterm.h (STORE_NATIVE_RECT): New macro.
 -
 -2003-03-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_glyph_string_clip_rect):
 -      Use FRAME_INTERNAL_BORDER_WIDTH.
 -
 -      * dispextern.h (struct redisplay_interface): Add active_p
 -      argument to draw_window_cursor member.  All uses changed.
 -
 -2003-03-21  Kim F. Storm  <storm@cua.dk>
 -
 -      The following changes consolidate code related to writing and
 -      inserting glyphs, exposing frame, the tool bar, the mouse face,
 -      the output cursor, and help echo from xterm.c, w32term.c and
 -      macterm.c into xdisp.c.  It also generalizes the use of the
 -      window_part enum instead of using numeric values throughout.
 -
 -      * xdisp.c: Consolidate gui-independent code here.
 -      Include keymap.h.
 -      (Qhelp_echo): Import.
 -      (mouse_autoselect_window, x_stretch_cursor_p): Declare here.
 -      (help_echo_string, help_echo_window, help_echo_object)
 -      (previous_help_echo_string, help_echo_pos): Declare here.
 -      (output_cursor, last_mouse_frame, last_tool_bar_item): Declare here.
 -      (estimate_mode_line_height): Define here.  Handle windowing
 -      systems directly (without using estimate_mode_line_height_hook).
 -      (x_y_to_hpos_vpos, get_tool_bar_item, note_tool_bar_highlight):
 -      (update_window_cursor, update_cursor_in_window_tree)
 -      (fast_find_position, fast_find_string_pos)
 -      (note_mode_line_highlight, note_mode_line_or_margin_highlight)
 -      (expose_area, expose_line, expose_overlaps, expose_window)
 -      (expose_window_tree, phys_cursor_in_rect_p): New generic versions;
 -      declared static as they are only used locally in xdisp.c.
 -      (draw_glyphs): Rename from x_draw_glyphs and make static.
 -      (tool_bar_item_info, notice_overwritten_cursor): Make static.
 -      (frame_to_window_pixel_xy, get_glyph_string_clip_rect)
 -      (set_output_cursor, x_cursor_to, handle_tool_bar_click)
 -      (x_write_glyphs, x_insert_glyphs, x_clear_end_of_line):
 -      (x_fix_overlapping_area, draw_phys_cursor_glyph, erase_phys_cursor)
 -      (display_and_set_cursor, x_update_cursor, x_clear_cursor)
 -      (show_mouse_face, clear_mouse_face, cursor_in_mouse_face_p)
 -      (note_mouse_highlight, x_clear_window_mouse_face)
 -      (cancel_mouse_face, x_draw_vertical_border, expose_frame)
 -      (x_intersect_rectangles): New generic functions for use by xdisp.c
 -      and GUI front-ends.
 -      (syms_of_xdisp): Initialize and staticpro help_echo* variables.
 -      Defvar_bool "x-streach-cursor" and "mouse-autoselect-window" here.
 -
 -      * dispextern.h (Display_Info): Generic typedef for *_display_info.
 -      (NativeRectangle): Generic typedef for rectangle type.
 -      (enum window_part): Move here from window.c.
 -      (struct redisplay_interface): New members flush_display_optional,
 -      define_frame_cursor, clear_frame_area, draw_window_cursor,
 -      draw_vertical_window_border, shift_glyphs_for_insert.
 -      Rename member clear_mouse_face to clear_window_mouse_face.
 -      (estimate_mode_line_height_hook): Remove hook.
 -      (auto_raise_tool_bar_buttons_p): Don't declare extern.
 -      (tool_bar_item_info): Remove prototype.
 -      (help_echo_string, help_echo_window, help_echo_object)
 -      (previous_help_echo_string, help_echo_pos)
 -      (last_mouse_frame, last_tool_bar_item, mouse_autoselect_window):
 -      (x_stretch_cursor_p, output_cursor): Declare extern.
 -      (x_draw_glyphs, notice_overwritten_cursor): Remove prototypes.
 -      (x_write_glyphs), x_insert_glyphs, x_clear_end_of_line)
 -      (x_fix_overlapping_area, draw_phys_cursor_glyph, erase_phys_cursor)
 -      (display_and_set_cursor, set_output_cursor, x_cursor_to)
 -      (x_update_cursor, x_clear_cursor, x_draw_vertical_border)
 -      (frame_to_window_pixel_xy, get_glyph_string_clip_rect)
 -      (note_mouse_highlight, x_clear_window_mouse_face, cancel_mouse_face)
 -      (handle_tool_bar_click, clear_mouse_face, show_mouse_face)
 -      (cursor_in_mouse_face_p, expose_frame, x_intersect_rectangles):
 -      Add prototypes.
 -      (mode_line_string, marginal_area_string): Fix prototypes.
 -
 -      * window.c (enum window_part): Move to dispextern.h.
 -      (coordinates_in_window): Use enum window_part member names
 -      instead of numbers to describe return value.
 -      (struct check_window_data): Change part member to window_part.
 -      (check_window_containing): Return window_part unaltered.
 -      (window_from_coordinates): Change part arg from int to enum
 -      window_part.  Allow part arg to be null.  All users changed.
 -
 -      * window.h (window_from_coordinates): Fix prototype.
 -
 -      * term.c (estimate_mode_line_height): Move to xdisp.c.
 -
 -      * keyboard.c (make_lispy_event): Use enum window_part.
 -
 -      * dispnew.c (mode_line_string, marginal_area_string): Use enum
 -      window_part instead of int in arg list.  Users changed.
 -
 -      * xterm.h (No_Cursor): Declare as None for X.
 -      (struct mac_output): Replace member cross_cursor by hand_cursor.
 -
 -      * xterm.c: Remove consolidated defines and code.
 -      (BETWEEN): Remove unused macro.
 -      (x_draw_vertical_window_border, x_shift_glyphs_for_insert)
 -      (x_define_frame_cursor, x_clear_frame_area)
 -      (x_draw_window_cursor): New X-specific functions for RIF.
 -      (x_redisplay_interface): Add new members.
 -
 -      * xfns.c: Setup and use hand_cursor instead of cross_cursor.
 -
 -      * w32term.h (struct w32_output): Remove cross_cursor member.
 -
 -      * w32term.c: Remove consolidated defines and code.
 -      (BETWEEN): Remove unused macro.
 -      (w32_draw_vertical_window_border, w32_shift_glyphs_for_insert)
 -      (w32_define_frame_cursor, w32_clear_frame_area)
 -      (w32_draw_window_cursor): New W32-specific functions for RIF.
 -      (w32_redisplay_interface): Add new members.
 -
 -      * w32gui.h (No_Cursor): Define as 0 for W32.
 -      (XRectangle): Add X compatible rectangle type.
 -      (NativeRectangle): Declare as RECT for W32.
 -      (CONVERT_TO_XRECT, CONVERT_FROM_XRECT, STORE_NATIVE_RECT): New macros.
 -
 -      * w32fns.c: Remove setup of cross_cursor (already has hand_cursor).
 -
 -      * w32console.c: Remove consolidated defines and code.
 -
 -      * msdos.h (Display_Info): Add generic typedef.
 -
 -      * msdos.c: Remove consolidated defines and code.
 -      (IT_note_mouse_highlight, dos_rawgetc): Use enum window_part.
 -
 -      * macterm.h (struct mac_output): Replace member cross_cursor by
 -      hand_cursor.
 -      (activate_scroll_bars, deactivate_scroll_bars): Add prototypes.
 -
 -      * macterm.c: Remove consolidated defines and code.
 -      (BETWEEN): Remove unused macro.
 -      (mac_draw_vertical_window_border, mac_shift_glyphs_for_insert)
 -      (mac_define_frame_cursor, mac_clear_frame_area)
 -      (mac_draw_window_cursor): New Mac-specific functions for RIF.
 -      (x_redisplay_interface): Add new members.
 -
 -      * macgui.h (No_Cursor): Define as 0 for Mac.
 -      (XRectangle): Add X compatible rectangle type.
 -      (NativeRectangle): Declare as Rect for Mac.
 -      (CONVERT_TO_XRECT, CONVERT_FROM_XRECT, STORE_NATIVE_RECT): New macros.
 -
 -      * macfns.c (x_set_mouse_color): Setup hand_cursor.
 -      (x_set_cursor_color): Use x_display_and_set_cursor.
 -
 -      * Makefile.in (xdisp.o): Add dependency on blockinput.h and files
 -      included from it.  Add dependency on keymap.h.
 -
 -      * makefile.w32-in (xdisp.o): Add dependency on keymap.h.
 -
 -2003-03-21  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Fexpand_file_name): Fix previous change.
 -
 -2003-03-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * fileio.c (Ffile_name_directory): Reconstruct file name by
 -      make_specified_string.
 -      (Ffile_name_nondirectory, Ffile_name_as_directory)
 -      (Fdirectory_file_name, Fexpand_file_name)
 -      (Fsubstitute_in_file_name): Likewise.
 -      (Fread_file_name): Compare decoded homedir with DIR and
 -      DEFAULT_FILENAME.
 -
 -      * alloc.c (make_specified_string): If NCHARS is negative, count
 -      the number of characters.
 -
 -2003-03-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_frame_cleared): Call gtk_widget_queue_draw for
 -      all widgets.
 -
 -      * gtkutil.h: Removed xg_ignore_next_thumb.
 -
 -2003-03-18  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Vchar_coding_system_table): Remove this variable.
 -      (Vcoding_system_safe_chars): New variable.
 -      (intersection): Remove this function.
 -      (find_safe_codings): Don't use Vchar_coding_system_table, but try
 -      all codings in SAFE_CODINGS.
 -      (Ffind_coding_systems_region_internal): Adjust for the change of
 -      find_safe_codings.  Get generic coding systems from
 -      Vcoding_system_safe_chars.
 -      (Fdefine_coding_system_internal): New function.
 -      (syms_of_coding): Defsubr Sdefine_coding_system_internal.
 -      Initialize and staticpro Vcoding_system_safe_chars.
 -
 -2003-03-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_set_toolkit_scroll_bar_thumb): Check if new values
 -      equal old values before updating.
 -
 -      * xterm.c (xg_scroll_callback): Remove xg_ignore_next_thumb.
 -
 -      * gtkutil.c (xg_initialize): Remove xg_ignore_next_thumb.
 -
 -2003-03-17  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c: Removed handle_fixed_child, struct xg_last_sb_pos.
 -      (xg_resize_widgets): Don't call foreach(handle_fixed_child).
 -      (xg_gtk_scroll_destroy): Remove free of struct xg_last_sb_pos.
 -      (scroll_bar_button_cb): Set bar->dragging to nil on button release.
 -      (xg_create_scroll_bar): Pass bar to button event callback.
 -      (xg_find_top_left_in_fixed): New function.
 -      (xg_update_scrollbar_pos): Don't call gdk_window_clear on
 -      whole scroll bar area.  Get old position with
 -      xg_find_top_left_in_fixed, calculate and only clear needed areas.
 -      (xg_set_toolkit_scroll_bar_thumb): Do not adjust scroll bar if
 -      dragging is in progress.  Calculate whole as for Motif.
 -      Remove code that saved last values.  Call gtk_range functions to
 -      set scroll bar sizes.
 -
 -      * gtkutil.h: Removed xg_ignore_next_thumb.
 -
 -2003-03-17  Juanma Barranquero  <lektu@terra.es>
 -
 -      * makefile.w32-in ($(BLD)/xdisp.$(O)): Add dependency on blockinput.h
 -      and files included from it.
 -
 -2003-03-18  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keymap.c (accessible_keymaps_1): Break cycles but without preventing
 -      multiple occurrences of the same keymap under different prefixes.
 -      (Faccessible_keymaps): Remove code redundant since 1994-08-03T07:39:00Z!rms@gnu.org.
 -
 -2003-03-16  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32gui.h: Use HDC for Display.
 -
 -      * w32term.c (w32_encode_char): Prevent double-byte chars from
 -      crashing Emacs.
 -
 -      * w32fns.c (jpeg_load, png_load, slurp_file): Read image files
 -      as binary.
 -
 -2003-03-16  Juanma Barranquero  <lektu@terra.es>
 -
 -      * xdisp.c (x_produce_glyphs): Use FRAME_BASELINE_OFFSET.
 -
 -2003-03-16  Kim F. Storm  <storm@cua.dk>
 -
 -      The following changes consolidate some of the gui-independent
 -      parts of the processing and drawing of "glyph strings" from
 -      xterm.c, w32term.c, and macterm.c into xdisp.c.
 -
 -      * dispextern.h (struct glyph): Reduce face_id member from 22 to
 -      21 bits (this reduces number of faces from 4M to 2M).
 -      Replace W32 specific w32_font_type member (2 bits) by generic
 -      font_type member (3 bits) for portability.
 -      (FONT_TYPE_UNKNOWN): New define, default for font_type member.
 -      (enum draw_glyphs_face): Define here.
 -      (struct glyph_string): Define here.  Merge W32 and X versions.
 -      (struct redisplay_interface): New members per_char_metric,
 -      encode_char, compute_glyph_string_overhangs, draw_glyph_string.
 -      (VCENTER_BASELINE_OFFSET): Define here.
 -      (dump_glyph_string, x_get_glyph_overhangs, x_produce_glyphs)
 -      (x_draw_glyphs, notice_overwritten_cursor): Declare prototypes here.
 -
 -      * xdisp.c: Consolidate gui-independent "glyph string" code here.
 -      (dump_glyph_string): Moved here.
 -      (init_glyph_string, append_glyph_string_lists, append_glyph_string)
 -      (prepend_glyph_string_lists, get_glyph_face_and_encoding)
 -      (fill_composite_glyph_string, fill_glyph_string)
 -      (fill_image_glyph_string, fill_stretch_glyph_string)
 -      (left_overwritten, left_overwriting, right_overwritten)
 -      (right_overwriting, get_char_face_and_encoding)
 -      (set_glyph_string_background_width, compute_overhangs_and_x)
 -      (append_glyph, append_composite_glyph, produce_image_glyph)
 -      (take_vertical_position_into_account, append_stretch_glyph)
 -      (produce_stretch_glyph): New generic functions (based on X version).
 -      Call platform specific functions through rif.
 -      (INIT_GLYPH_STRING): New macro, hides W32 details.
 -      (BUILD_STRETCH_GLYPH_STRING, BUILD_IMAGE_GLYPH_STRING)
 -      (BUILD_CHAR_GLYPH_STRINGS, BUILD_COMPOSITE_GLYPH_STRING)
 -      (BUILD_GLYPH_STRINGS): Generic macros (based on X version).
 -      (x_draw_glyphs, x_get_glyph_overhangs, x_produce_glyphs)
 -      (notice_overwritten_cursor):
 -      Generic functions exported to platform modules.  Users changed.
 -
 -      * xterm.h (FONT_DESCENT, FRAME_X_OUTPUT, FRAME_BASELINE_OFFSET)
 -      (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE)
 -      (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
 -      New macros for consolidated code.
 -
 -      * xterm.c: Remove consolidated defines and code.
 -      (x_per_char_metric, x_encode_char)
 -      (x_compute_glyph_string_overhangs): Adapt to RIF requirements.
 -      (x_redisplay_interface): Add new members.
 -
 -      * w32gui.h (Display): Add dummy typedef for consolidation.
 -      (XChar2b): Define alias for wchar_t for consolidation.
 -      (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): New macros.
 -
 -      * w32term.h (FRAME_X_OUTPUT, FRAME_X_WINDOW, FRAME_X_DISPLAY)
 -      (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE):
 -      New macros for consolidation.
 -
 -      * w32term.c: Remove consolidated defines and code.
 -      (BUILD_WCHAR_T, BYTE1, BYTE2): Macros removed; callers changed
 -      to use STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2 instead.
 -      (w32_per_char_metric): Change font_type arg to int for RIF.
 -      (w32_encode_char): Return int according to RIF requirements.
 -      (w32_compute_glyph_string_overhangs): Adapt to RIF.
 -      (w32_get_glyph_overhangs): New function for RIF.  Uses generic
 -      x_get_glyph_overhangs.
 -      (w32_redisplay_interface): Add new members.
 -
 -      * macgui.h (XChar2b): Move typedef here for consolidation.
 -      (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2): New macros.
 -
 -      * macterm.h (FRAME_X_OUTPUT, FRAME_X_WINDOW, FRAME_X_DISPLAY):
 -      (FONT_TYPE_FOR_UNIBYTE, FONT_TYPE_FOR_MULTIBYTE): New macros for
 -      consolidation.
 -
 -      * macterm.c: Remove consolidated defines and code.
 -      (mac_per_char_metric): New function for RIF.
 -      (mac_encode_char): Adapt to new RIF requirements.
 -      (mac_compute_glyph_string_overhangs): Adapt for RIF.
 -      (x_redisplay_interface): Add new members.
 -
 -2003-03-15  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keymap.c (Vmenu_events): New var.
 -      (syms_of_keymap): Initialize it.
 -      (where_is_internal): Check more carefully what is a menu event.
 -
 -2003-03-14  Richard M. Stallman  <rms@gnu.org>
 -
 -      * lread.c (read1): After #!, exit loop on eof.
 -
 -2003-03-14  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.h: Add declaration for xg_frame_cleared.
 -
 -      * xterm.c (x_clear_frame): Call xg_frame_cleared for GTK.
 -
 -      * gtkutil.c (struct xg_last_sb_pos): New structure.
 -      (handle_fixed_child): New function.
 -      (xg_resize_widgets): Call handle_fixed_child on all scroll bar widgets
 -      and force a redraw on them.
 -      (xg_gtk_scroll_destroy): Free struct xg_last_sb_pos also.
 -      (xg_create_scroll_bar): Add struct xg_last_sb_pos to scroll bar
 -      so we can avoid unneeded redraws.
 -      (xg_update_scrollbar_pos): Invalidate data in xg_last_sb_pos
 -      and force a redraw on the scroll bar.
 -      (xg_set_toolkit_scroll_bar_thumb): Do not change/redraw scroll bar
 -      if xg_last_sb_pos shows the positions are up to date.
 -      (xg_frame_cleared): New function.
 -
 -2003-03-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Fdetect_coding_region): Fix docstring.
 -      (Fdetect_coding_string): Fix docstring.
 -
 -2003-03-13  Andreas Schwab  <schwab@suse.de>
 -
 -      * gtkutil.c: Add prototype for create_menus.
 -
 -      * data.c (long_to_cons): Fix type of top.
 -
 -      * xselect.c (selection_data_to_lisp_data): Use int instead of
 -      long for an integer of size 4.
 -
 -      * gtkutil.c (xg_update_frame_menubar): Add missing return value.
 -      (xg_tool_bar_help_callback): Likewise.
 -
 -2003-03-12  Andreas Schwab  <schwab@suse.de>
 -
 -      * xterm.c (x_term_init) [USE_GTK]: Fix typo.
 -
 -2003-03-12  Kim F. Storm  <storm@cua.dk>
 -
 -      The following changes consolidate the fringe handling from
 -      xterm.c, w32term.c, and macterm.c into xdisp.c.
 -
 -      * xdisp.c: Consolidate fringe handling code here.
 -      (left_bits, right_bits, continued_bits, continuation_bits)
 -      (ov_bits, zv_bits): Define fringe bitmaps.
 -      (fringe_bitmaps): New array holding fringe bitmaps.
 -      (draw_fringe_bitmap): Draw a specific bitmap; call display
 -      specific drawing routine via rif->draw_fringe_bitmap.
 -      (draw_row_fringe_bitmaps): Generic replacement for
 -      x_draw_row_fringe_bitmaps; all callers changed.
 -      (compute_fringe_widths): Generic replacement for
 -      x_compute_fringe_widths; all callers changed.
 -
 -      * dispextern.h (enum fringe_bitmap_type): Define here.
 -      (struct fringe_bitmap, struct draw_fringe_bitmap_params): New.
 -      (fringe_bitmaps): Declare extern.
 -      (struct redisplay_interface): New member draw_fringe_bitmap.
 -      (draw_row_fringe_bitmaps, compute_fringe_widths): Declare extern.
 -
 -      * xterm.c: Remove generic fringe code.
 -      (x_draw_fringe_bitmap): Only perform actual fringe drawing.
 -      (x_redisplay_interface): Add x_draw_fringe_bitmap member.
 -
 -      * w32term.c: Remove generic fringe code.
 -      (w32_draw_fringe_bitmap): Only perform actual fringe drawing.
 -      (w32_redisplay_interface): Add w32_draw_fringe_bitmap member.
 -
 -      * macterm.c: Remove generic fringe code.
 -      (x_draw_fringe_bitmap): Only perform actual fringe drawing.
 -      (x_redisplay_interface): Add x_draw_fringe_bitmap member.
 -
 -2003-03-11  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * print.c (Fprin1_to_string): Return unibyte string if possible.
 -
 -2003-03-09  David Kastrup  <dak@gnu.org>
 -
 -      * process.c (read_process_output): We have allocated enough space
 -      for readmax and carryover, so actually use the alloted space.
 -
 -2003-03-09  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c (make_lispy_event): Extend mouse_syms if needed for
 -      toolkit scrollbar click.
 -
 -      * xterm.c (x_window_to_scroll_bar): Call xg_get_scroll_id_for_window
 -      for USE_GTK.
 -      (x_scroll_bar_handle_click): Use this function for toolkit scrollbars
 -      also.
 -      (handle_one_xevent): ButtonPress/Release: If event is for a toolkit
 -      scrollbar and control is pressed, call x_scroll_bar_handle_click.
 -
 -      * gtkutil.h (xg_get_scroll_id_for_window): Declare.
 -
 -      * gtkutil.c (xg_get_scroll_id_for_window): New function.
 -      (xg_tool_bar_item_expose_callback): New function.
 -      (xg_tool_bar_expose_callback): Call update_frame_tool_bar.
 -      (xg_create_tool_bar): Connect xg_tool_bar_expose_callback to expose
 -      on the tool bar widget.
 -      (update_frame_tool_bar): Connect xg_tool_bar_item_expose_callback
 -      to expose on the tool bar item widgets.
 -
 -2003-03-08  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (update_frame_tool_bar): Compare pixmap ID instead of
 -      struct image* when deciding to update (struct image* may have been
 -      deleted from the image cache).
 -
 -      * xterm.c (handle_one_xevent): Pass ReparentNotify to Xt even if
 -      the event isn't for a frame (i.e. for dialogs).
 -
 -2003-03-07  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (CODING_ADD_COMPOSITION_COMPONENT): If the number of
 -      composition components reaches the limit, terminate composing.
 -      (COMPOSITION_OK): New macro.
 -      (detect_coding_iso2022): Use it if an escape sequence for
 -      composition is found.
 -      (coding_restore_composition): Adjust the number of composition
 -      components if it is not sane.
 -
 -2003-03-06  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32term.h (struct w32_display_info): Add xrdb member to support
 -      passing resources via -xrm on Windows.
 -
 -      * w32term.c (w32_make_rdb): New function.
 -      (w32_term_init): Use it to initialize xrdb member of w32_display_info
 -      struct.  Delete leftover code.
 -
 -      * w32fns.c (Fx_get_resource, x_get_resource_string): Pass xrdb to check
 -      for resources passed on the command line.
 -
 -      * w32reg.c (w32_get_rdb_resource): New function.
 -      (x_get_string_resource): Use it, so resources passed with -xrm
 -      supercede the ones in the registry.
 -
 -2003-03-04  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_detect_focus_change): Call x_any_window_to_frame
 -      instead of x_top_window_to_frame.
 -
 -2003-03-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xsmfns.c (smc_save_yourself_CB): Add --no-splash to options
 -      when restarting Emacs.
 -
 -2003-03-03  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (Fkill_buffer): Use Frun_hook_with_args_until_failure
 -      to run kill-buffer-query-functions.
 -      (Qkill_buffer_query_functions): New var.
 -      (syms_of_buffer): Init and staticpro it.
 -
 -2003-03-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h (XSync): Define as gdk_window_process_all_updates for GTK.
 -
 -2003-02-25  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_window): Fix infinite loop in redisplay.
 -      If centering point failed to make whole line visible and vscroll
 -      is non-zero, disable vscroll and try centering point again.
 -
 -      * lread.c (read1): Accept `single space' syntax like (? x).
 -
 -2003-02-25  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c (cancel_hourglass_unwind): Surround with
 -      #ifdef HAVE_X_WINDOWS.
 -
 -2003-02-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * buffer.c (Fset_buffer_multibyte): Pay attention to the buffer
 -      process only when "subprocesses" is defined.
 -
 -2003-02-24  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * syntax.c (back_comment): Only check nestedness of 2nd char if needed.
 -
 -2003-02-24  Juanma Barranquero  <lektu@terra.es>
 -
 -      * callint.c (fix_command): Declare as static void and move before
 -      Fcall_interactively.
 -
 -      * xdisp.c (Qwhen): Declare external; it's now defined in callint.c.
 -      (syms_of_xdisp): Don't initialize Qwhen.
 -
 -2003-02-23  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c (cancel_hourglass_unwind): New function.
 -      (command_loop_1): Cancel hourglass with unwind-protect.
 -
 -2003-02-23  Richard M. Stallman  <rms@gnu.org>
 -
 -      * callint.c (fix_command): New subroutine, from Fcall_interactively.
 -      Detect (when ... (region-beginning)) etc.
 -      (Fcall_interactively): Call fix_command.
 -      (Qif, Qwhen): New variables.
 -      (syms_of_callint): Init and staticpro them.
 -
 -      * regex.c (print_partial_compiled_pattern): Output to stderr.
 -
 -2003-02-23  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@uni-duisburg.de>
 -
 -      * dired.c (directory_files_internal): Don't expand directory.
 -      (Fdirectory_files, Fdirectory_files_and_attributes): Do it here
 -      instead.  From Lars Hansen <larsh@math.ku.dk>.
 -
 -2003-02-22  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * fns.c (string_to_multibyte): Remove unused var i.
 -      (Flanginfo): Fix int/Lisp_Object mixup.
 -      (void_call2): New fun.
 -      (Fmap_char_table): Use it in place of call2.
 -
 -      * xfaces.c (x_face_list_fonts): Fix int/Lisp_Object mixup.
 -
 -      * macros.c (Fstart_kbd_macro): Remove redundant assignment.
 -
 -      * keymap.c (copy_keymap_1): Make it static.
 -
 -      * alloc.c (Fgarbage_collect): Don't use XSETFLOAT.
 -
 -2003-02-22  David Ponce  <david@dponce.com>
 -
 -      * lread.c (Fload): Don't check STRING_MULTIBYTE.
 -
 -2003-02-21  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * process.h: Removed subtty field from struct Lisp_Process.
 -
 -      * process.c (create_process): Remove setting of subtty.
 -      (emacs_get_tty_pgrp): New function.
 -      (Fprocess_running_child_p, process_send_signal):
 -      Call emacs_get_tty_pgrp instead of ioctl.
 -      (process_send_signal): Call EMACS_KILLPG if ioctl TIOCSIGSEND fails.
 -
 -2003-02-21  Kai Gro\e,A_\e(Bjohann  <kai.grossjohann@uni-duisburg.de>
 -
 -      * keymap.c (Fdefine_key): Doc fix.
 -
 -2003-02-21  Juanma Barranquero  <lektu@terra.es>
 -
 -      Port of patch for RC by Klaus Zeitler <kzeitler@lucent.com>.
 -
 -      * s/hpux10.h: Define POLL_INTERRUPTED_SYS_CALL, not
 -      POLLING_PROBLEM_IN_SELECT.
 -
 -      * s/hpux11.h: Include hpux10-20.h instead of hpux10.h.
 -      Delete #undef of POLLING_PROBLEM_IN_SELECT.
 -
 -      * s/hpux10-20.h: New file.
 -
 -      * process.c (wait_reading_process_input):
 -      Use POLL_INTERRUPTED_SYS_CALL, not POLLING_PROBLEM_IN_SELECT.
 -
 -2003-02-20  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (check_fontset_name): If NAME is nil, return the
 -      default fontset.
 -      (override_font_info): New function.
 -      (Fset_fontset_font): Document that NAME nil means the default fontset.
 -      (Ffontset_info): If FONTSET is not the default fontset, merge
 -      FONTSET onto the copy of the default fontset, and work on that
 -      copy.  Document that NAME nil means the default fontset.
 -      (Ffontset_font): Document that NAME nil means the default fontset.
 -
 -      * process.c (setup_process_coding_systems): If the process's
 -      in/out descriptor is -1, do nothing.
 -
 -2003-02-19  Andreas Schwab  <schwab@suse.de>
 -
 -      * lisp.h (Fcancel_kbd_macro_events, Fstring_to_multibyte):
 -      Add prototypes.
 -
 -2003-02-19  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfaces.c (try_alternative_families): Try all scalable fonts if
 -      Vscalable_fonts_allowed is not Qt.
 -
 -2003-02-19  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfaces.c (x_face_list_fonts): Set *pfonts to 0 if no fonts found.
 -
 -2003-02-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_list_fonts): If maxnames is less than 0, get all font
 -      names.
 -
 -      * xfaces.c (x_face_list_fonts): Allocate struct font_name here.
 -      (sorted_font_list): Move allocation of struct font_name to
 -      x_face_list_fonts.
 -      (Fx_font_family_list): Set font-list-limit to -1 to get all font names.
 -      (Fx_list_fonts): Set maxnames to -1 to get all font names.
 -
 -2003-02-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * lread.c (read1): Fix last change.
 -      "`" is not always special.  Allow "?" after a character constant.
 -
 -2003-02-18  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * unexmacosx.c (copy_data_segment): Also copy __cfstring section.
 -
 -2003-02-18  Andreas Schwab  <schwab@suse.de>
 -
 -      * window.c (window_scroll_pixel_based): Move outside a
 -      multi-glyph character before setting new window start.
 -
 -      * xdisp.c (in_display_vector_p): New function.
 -      * dispextern.h (in_display_vector_p): Declare.
 -
 -2003-02-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * lread.c (read1): Fix and relax read syntax.
 -      Recognize "[", ";", "#", and "?" after a dotted-pair dot.
 -      Only recognize "," after dotted-pair dot if inside backquote.
 -      Never include "`" or "," (inside backquote) in a symbol.
 -      Allow dotted-pair dot after a character constant.
 -      Allow "`" and "," (inside backquote) after a character constant.
 -
 -2003-02-17  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_tool_bar_expose_callback): New function.
 -      (xg_create_tool_bar): Force style of tool bar to be horizontal with
 -      icons.  Set name of tool bar to emacs-toolbar.
 -      (update_frame_tool_bar): Connect expose event to
 -      xg_tool_bar_expose_callback.
 -
 -2003-02-17  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (this_command_key_count_reset): New variable.
 -      Initiatize to 0 where this_command_key_count is set.
 -      (read_char): Save and restore this_command_key_count_reset
 -      around input method code.
 -      (read_char): If this_command_key_count_reset, echo reread commands.
 -      (Freset_this_command_lengths): Set this_command_key_count_reset to 1.
 -
 -2003-02-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (string_to_multibyte): Always return a multibyte string.
 -
 -2003-02-16  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_list_bdf_fonts, w32_list_fonts):
 -      Negative max_fonts parameter means list all.
 -
 -2003-02-14  Dave Love  <fx@gnu.org>
 -
 -      * fns.c (Flanginfo): Doc fix.
 -
 -2003-02-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * lread.c (read_escape): Interpret \s as a SPACE character, except
 -      for \s-X in a character constant which still is the super modifier.
 -      (read1): Signal an `invalid read syntax' error if a character
 -      constant is immediately followed by a digit or symbol character.
 -
 -      * search.c (Fmatch_data): Doc fix.  Explicitly state that
 -      match-data is undefined if last search failed.
 -
 -      * keymap.c (Fcommand_remapping): Rename from Fremap_command.
 -      All uses changed.
 -
 -2003-02-12  Juanma Barranquero  <lektu@terra.es>
 -
 -      * eval.c (Fdefmacro): Fix typo.
 -
 -2003-02-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * macros.c (Fstart_kbd_macro): If appending, and last keyboard
 -      macro is a string, convert meta modifiers in string when copying
 -      the string into a vector.
 -
 -2003-02-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * keymap.c (Fremap_command): Return nil if arg is not a symbol.
 -
 -2003-02-11  Kenichi Handa  <handa@m17n.org>
 -
 -      * Makefile.in (lisp, shortlisp): Add malayalam.el and tamil.el.
 -
 -2003-02-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c: Doc fixes.
 -      (syms_of_process): Add `:' prefix to QCfilter_multibyte.
 -
 -2003-02-10  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (Fstring_to_multibyte): Fix typo in the docstring.
 -
 -      * process.c (QCfilter_multibyte): New variable.
 -      (setup_process_coding_systems): New function.
 -      (Fset_process_buffer, Fset_process_filter):
 -      Call setup_process_coding_systems.
 -      (Fstart_process): Initialize the member `filter_multibyte' of
 -      struct Lisp_Process.
 -      (create_process): Call setup_process_coding_systems.
 -      (Fmake_network_process): New keyward `:filter-multibyte'.
 -      Initialize the member `filter_multibyte' of struct Lisp_Process.
 -      Call setup_process_coding_systems.
 -      (server_accept_connection): Call setup_process_coding_systems.
 -      (read_process_output): If the process has a filter, decide the
 -      multibyteness of a string to given to the filter by
 -      `filter_multibyte' member of the process.  If the process doesn't
 -      have a filter and the result of conversion is unibyte, use
 -      Fstring_to_multibyte (not Fstring_make_multibyte) to get the
 -      multibyte form.
 -      (Fset_process_coding_system): Call setup_process_coding_systems.
 -      (Fset_process_filter_multibyte): New function.
 -      (Fprocess_filter_multibyte_p): New function.
 -      (syms_of_process): Intern and staticpro QCfilter_multibyte.
 -      Defsubr Sset_process_filter_multibyte and
 -      Sprocess_filter_multibyte_p.
 -
 -      * process.h (struct Lisp_Process): New member filter_multibyte.
 -
 -      * lisp.h (setup_process_coding_systems): Add prototype.
 -
 -      * buffer.c (Fset_buffer_multibyte): If the current buffer has a
 -      process, update coding systems for the process.
 -
 -2003-02-09  Kenichi Handa  <handa@m17n.org>
 -
 -      * fns.c (string_to_multibyte): New function.
 -      (Fstring_to_multibyte): New function.
 -      (syms_of_fns): Defsubr it.
 -
 -2003-02-08  Andreas Schwab  <schwab@suse.de>
 -
 -      * Makefile.in (EXEEXT): Define to @EXEEXT@ and use this variable
 -      instead of the substitution.
 -
 -2003-02-08  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_make_frame_visible): Call gtk_window_deiconify.
 -
 -      * xmenu.c (menu_position_func): Adjust menu popup position so that
 -      the menu is fully visible.
 -
 -2003-02-07  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (x_text_icon, x_raise_frame, x_lower_frame)
 -      (x_make_frame_invisible, x_wm_set_icon_position):
 -      Use FRAME_OUTER_WINDOW instead of ifdef X_TOOLKIT/else/endif.
 -
 -      * xfns.c (x_set_name, x_set_title): Ditto.
 -
 -2003-02-04  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (echo_now): Update before_command_echo_length.
 -      (Freset_this_command_lengths): Reset this_command_key_count etc.
 -      immediately rather than arranging to do it later.
 -      (before_command_key_count_1, before_command_echo_length_1)
 -      (before_command_restore_flag): Vars deleted.
 -      (add_command_key): Don't handle before_command_restore_flag.
 -      (read_char, record_menu_key): Don't update before_command_key_count or
 -      before_command_echo_length.
 -      (read_char): Don't handle before_command_restore_flag.
 -
 -      * keyboard.c (command_loop_1): Don't call adjust_point_for_property
 -      in direct-output clauses if it wouldn't be called in the ordinary case.
 -
 -2003-02-04  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (syms_of_keyboard) <this-original-command>: Doc fix.
 -
 -2003-02-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (remove_from_container): Copying list is not needed.
 -      (xg_update_menubar, xg_update_menu_item, xg_update_submenu)
 -      (xg_modify_menubar_widgets, update_frame_tool_bar): Call g_list_free
 -      on list returned from gtk_container_get_children to avoid memory leak.
 -
 -2003-02-01  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_create_pixmap_from_bitmap_data): Use alloca for
 -      local malloc.
 -      [HAVE_XPM]: Avoid clashes with XColor, XImage and Pixel
 -      definitions in xpm.h.
 -      (init_xpm_functions): New function.
 -      (xpm_load): Sync with xfns.c.  Adapt for Windows version of libXpm.
 -      (init_external_image_libraries): Try to load libXpm.dll.
 -
 -      * fileio.c (Fcopy_file) [WINDOWSNT]: Reverse logic for setting
 -      timestamp.
 -
 -2003-01-31  Dave Love  <fx@gnu.org>
 -
 -      * syntax.c (Fskip_chars_forward)
 -      (open-paren-in-column-0-is-defun-start): Doc fix.
 -
 -2003-01-31  Joe Buehler  <jhpb@draco.hekimian.com>
 -
 -      * fileio.c: Support // at start of name for Cygwin (just added proper
 -      preprocessor tests).
 -
 -      * keyboard.c: Port to Cygwin (just added proper preprocessor tests).
 -
 -      * Makefile.in: Use @EXEEXT@ for Cygwin.
 -
 -      * mem-limits.h: Added ifdef to define BSD4_2 for Cygwin.
 -
 -      * s/cygwin.h: Added for Cygwin port.
 -
 -2003-01-31  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32fns.c (DrawText): Kludge to avoid a redefinition on Windows
 -      when including gif_lib.h.
 -      (init_gif_functions, init_tiff_functions): New functions.
 -      (gif_load, tiff_load): Sync with xfns.c version.  Adjust colors for
 -      Windows.  Disable color table lookups.  Call library functions
 -      through pointers determined at runtime.
 -      (init_external_image_libraries): Try to load libungif.dll and
 -      libtiff.dll.
 -
 -2003-01-31  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (SKIP_GLYPHS): New macro.
 -      (set_cursor_from_row): Skip all glyphs that comes from overlay string.
 -
 -2003-01-30  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (free_frame_tool_bar): Remove debug printf.
 -
 -2003-01-30  Dave Love  <fx@gnu.org>
 -
 -      * alloc.c (Vgc_elapsed, gcs_done): New variables.
 -      (Fgarbage_collect): Use them.
 -      (init_alloc, syms_of_alloc): Set them up.
 -
 -2003-01-30  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32fns.c (init_external_image_libraries): Add missing operator.
 -
 -2003-01-29  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (init_external_image_libraries): Allow jpeg-62.dll as
 -      an alternative name for jpeg.dll.
 -
 -2003-01-29  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (set_cursor_from_row): Pay attention to string display
 -      properties.
 -
 -2003-01-28  Benjamin Riefenstahl  <Benjamin.Riefenstahl@epost.de>
 -
 -      * macterm.c (keycode_to_xkeysym_table): Add <tab>, <backspace>,
 -      <escape>.
 -      (keycode_to_xkeysym_table): Reformat and add more comments.
 -      (XTread_socket): Drop special case for backspace.
 -
 -2003-01-28  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macfns.c (x_to_mac_color): Correct the order for parsing the RGB
 -      values in old-style RGB specs.
 -
 -2003-01-27  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32fns.c (init_external_image_libraries): Try alternate names for the
 -      jpeg dll.
 -
 -2003-01-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (create_dialog, xg_separator_p)
 -      (xg_item_label_same_p, xg_update_menu_item): Check for NULL string
 -      before calling strcmp or strlen.
 -
 -2003-01-26  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (update_frame_tool_bar): Call prepare_image_for_display
 -      and handle image load failure.
 -
 -2003-01-26  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (init_jpeg_functions, jpeg_resync_to_restart_wrapper):
 -      New functions.
 -      (jpeg_load): Sync with xfns.c version.  Adjust colors for Windows.
 -      Disable color table lookups.  Call jpeg library functions
 -      through pointers determined at runtime.
 -      (init_external_image_libraries): Try to load jpeg.dll.
 -
 -2003-01-25  Richard M. Stallman  <rms@gnu.org>
 -
 -      * lisp.h: Declare format2 instead of format1.
 -
 -      * fileio.c (barf_or_query_if_file_exists):
 -      Call format2 instead of format1.
 -
 -      * editfns.c (format2): New function, replaces format1
 -      but takes exactly two Lisp Objects as format args.
 -
 -      * buffer.c (Fkill_buffer): Call format2 instead of format1.
 -
 -2003-01-25  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h: Change to return value of x_dispatch_event to int.
 -
 -      * xterm.c (x_filter_event): New function.
 -      (event_handler_gdk, XTread_socket): Call x_filter_event.
 -      (x_dispatch_event): Change to return value of finish.
 -      (event_handler_gdk): Use return value from x_dispatch_event.
 -
 -      * xfns.c (x_window): Call create_frame_xic for GTK version to
 -      initialize input methods.
 -
 -      * gtkutil.h: Add (void) prototypes.
 -
 -      * gtkutil.c (create_menus): Remove code that puts the help menu to
 -      the right.
 -
 -2003-01-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (XPutPixel): Handle monochrome images; used for masks.
 -      [HAVE_PNG]: Sync with xfns.c version.
 -      (png_load): Adjust colors for Windows.  Use Windows
 -      bitmaps.  Disable color table lookups.
 -      (DEF_IMGLIB_FN, LOAD_IMGLIB_FN): New macros.
 -      (init_png_functions): New function.
 -      (png_read_from_memory, png_load): Call png library functions
 -      through pointers determined at runtime.
 -      (QCloader, QCbounding_box, QCpt_width, QCpt_height): Declare.
 -      (init_external_image_libraries): New function.
 -      (init_xfns): Call it.
 -
 -2003-01-24  Andreas Schwab  <schwab@suse.de>
 -
 -      * minibuf.c (Fminibuffer_message): Verify type of parameter.
 -
 -2003-01-24  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_initialize): Initialize id_to_widget here instead
 -      of static initializer.
 -
 -2003-01-24  Dave Love  <fx@gnu.org>
 -
 -      * s/gnu-linux.h (GC_SETJMP_WORKS, GC_MARK_STACK): Define for more
 -      architectures.
 -
 -      * alloc.c (mark_stack) [!GC_LISP_OBJECT_ALIGNMENT && __GNUC__]:
 -      Use __alignof__.
 -
 -2003-01-24  Kenichi Handa  <handa@m17n.org>
 -
 -      * keyboard.c (adjust_point_for_property): New second arg MODIFIED.
 -      It it is nonzero, don't pretend that an invisible area doesn't exist.
 -      (command_loop_1): Call adjust_point_for_property with proper
 -      second arg.
 -
 -2003-01-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      Sync changes with xterm.c and xfns.c.
 -
 -      * w32term.c (x_draw_glyph_string_foreground)
 -      (x_draw_composite_glyph_string_foreground): Implement overstriking.
 -
 -      * w32term.c (x_write_glyphs): Clear phys_cursor_on_p if current
 -      phys_cursor's hpos is overwritten.  This is still not completely
 -      correct, as it doesn't really make sense to use hpos at all to
 -      get the cursor glyph (as that is relative to the width of the
 -      characters on the line, which may have changed during the update).
 -
 -      * w32term.c (notice_overwritten_cursor): Handle the special case
 -      of the cursor being in the first blank non-text line at the
 -      end of a window.
 -
 -      * w32term.c (x_draw_hollow_cursor, x_draw_bar_cursor)
 -      (x_draw_phys_cursor_glyph): Set phys_cursor_width here.
 -      Compute from the x position returned by x_draw_glyphs.
 -
 -      (x_display_and_set_cursor): Don't set phys_cursor_width here,
 -      except for NO_CURSOR and system caret, to make phys_cursor_width
 -      contain what its name suggests.
 -      (notice_overwritten_cursor): Consider the cursor image erased if
 -      the output area intersects the cursor image in y-direction.
 -
 -      * w32term.c (note_mode_line_or_margin_highlight): Rename from
 -      note_mode_line_highlight and extend.
 -
 -      * w32term.c (last_window): New variable.
 -      (w32_read_socket) <WM_MOUSEMOVE>: Generate SELECT_WINDOW_EVENTs.
 -      (note_mouse_movement): Remove reimplemented code in #if 0.
 -
 -      * w32fns.c (x_set_cursor_type): Set cursor_type_changed,
 -      not update_mode_lines, and always set it to 1.
 -
 -2003-01-21  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (IDC_HAND): Define it if system headers don't.
 -
 -2003-01-21  KOBAYASHI Yasuhiro  <kobayays@otsukakj.co.jp>
 -
 -      * w32term.h (struct w32_output): New member hand_cursor.
 -      (WM_EMACS_SETCURSOR): New message definition.
 -
 -      * w32term.c (note_mode_line_highlight): Delete #if 0 to enable
 -      function w32_define_cursor.
 -      (note_mouse_highlight): Initialize, setup cursor accoding to mouse
 -      position, change member name output_data.x to output_data.w32 and
 -      add function w32_define_cursor.
 -      (show_mouse_face): Delete #if 0 to enable function w32_define_cursor
 -      and change member name output_data.x to output_data.w32.
 -      (w32_initialize_display_info):
 -      Setup dpyinfo->vertical_scroll_bar_cursor.
 -
 -      * w32fns.c (Vx_hand_shape): New variable.
 -      (w32_wnd_proc): Add message entries for WM_SETCURSOR and
 -      WM_EMACS_SETCURSOR.
 -      (x-create-frame): Setup Cursor types.
 -
 -2003-01-21  David Ponce  <david@dponce.com>
 -
 -      * w32term.c (w32_encode_char): For DIM=1 charset, set
 -      ccl->reg[2] to -1 before calling ccl_driver.
 -      (Sync. with xterm.c x_encode_char change by Kenichi Handa
 -      <handa@m17n.org> on 2002-09-30.)
 -      (w32_draw_relief_rect): Declare all args.
 -      (w32_define_cursor): New.
 -
 -      * w32fns.c (w32_load_cursor): New function.
 -      (w32_init_class): Use it.
 -      (x_put_x_image): Declare all args.
 -
 -2003-01-21  Richard Dawe  <rich@phekda.freeserve.co.uk>
 -
 -      * Makefile.in (ALL_CFLAGS): Include MYCPPFLAGS, not MYCPPFLAG.
 -
 -2003-01-21  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c: Must include stdio.h before termhooks.h.
 -
 -2003-01-21  Dave Love  <fx@gnu.org>
 -
 -      * alloc.c (Fgc_status): Print zombie list.
 -      (mark_maybe_object) [GC_MARK_STACK==GC_USE_GCPROS_CHECK_ZOMBIES]:
 -      Fix assignment of zombies.
 -      (Fgarbage_collect) [GC_MARK_STACK==GC_USE_GCPROS_CHECK_ZOMBIES]:
 -      Don't take car of non-cons.
 -
 -      * s/sol2-5.h (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
 -
 -      * s/sunos4-0.h (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
 -
 -2003-01-20  David Ponce  <david@dponce.com>
 -
 -      * w32menu.c (digest_single_submenu): Declare all args.
 -
 -      Sync with 2002-12-23  Richard M. Stallman  <rms@gnu.org>
 -      changes in xmenu.c:
 -
 -      (parse_single_submenu): Use individual keymap's prompt
 -      string as pane name, if there is one.
 -      (set_frame_menubar): Save menu_items_n_panes from each call to
 -      parse_single_submenu and use it when calling digest_single_submenu.
 -
 -2003-01-20  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (XTread_socket): Check for valid, visible window
 -      before sending a scroll-wheel event.
 -
 -2003-01-20  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (redisplay_window): If mini window's buffer is not
 -      a minibuffer, then redisplay it like other windows.
 -
 -2003-01-20  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * gtkutil.c (xg_create_frame_widgets): Check if there is an
 -      external tool bar before setting tool bar height.
 -
 -2003-01-19  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (handle_one_xevent): Surround popup_activated
 -      with #ifdef:s for non-toolkit version.
 -
 -      * Makefile.in (XOBJ): Add gtkutil.o if USE_GTK.
 -      (gtkutil.o): New file.
 -      (TOOLKIT_DEFINES): Set to -DUSE_GTK if HAVE_GTK.
 -      (LIBW): Set to @GTK_LIBS@ if USE_GTK.
 -
 -      * gtkutil.c: New file for GTK version.
 -
 -      * gtkutil.h: New file for GTK version.
 -
 -      * xterm.h: Add xt_or_gtk_widget.
 -      Include gtk files for USE_GTK.
 -      (struct x_output): Add toolbar_height.
 -      (struct x_output): Add GTK widgets and Gdk size_hints.
 -      (GTK_WIDGET_TO_X_WIN, FRAME_GTK_OUTER_WIDGET, FRAME_GTK_WIDGET)
 -      (FRAME_OUTER_WINDOW): New macros for USE_GTK.
 -      (FRAME_OUTER_TO_INNER_DIFF_Y): Add FRAME_TOOLBAR_HEIGHT to calculation.
 -
 -      * xterm.c: Include gtkutil.h for USE_GTK.
 -      (free_frame_menubar): Declare extern void for USE_GTK.
 -      (note_mouse_highlight): Check popup_activated for USE_GTK.
 -      (xt_action_hook): Don't compile if USE_GTK.
 -      (x_scroll_bar_to_input_event): Use CurrentTime for USE_GTK.
 -      (xg_scroll_callback): New function.
 -      (x_create_toolkit_scroll_bar): Call xg_create_scroll_bar for USE_GTK.
 -      (x_set_toolkit_scroll_bar_thumb): Call xg_set_toolkit_scroll_bar_thumb
 -      for USE_GTK.
 -      (x_scroll_bar_create): Call xg_update_scrollbar_pos and
 -      xg_show_scroll_bar for USE_GTK.
 -      (x_scroll_bar_remove): Call xg_remove_scroll_bar for USE_GTK.
 -      (XTset_vertical_scroll_bar): Call xg_update_scrollbar_pos for USE_GTK.
 -      (event_handler_gdk): New function for USE_GTK.
 -      (handle_one_xevent): Call xg_resize_widgets for USE_GTK.
 -      (handle_one_xevent): Make sure widget is mapped before
 -      calling x_real_positions for USE_GTK.
 -      (XTread_socket): Add GTK event loop for USE_GTK.
 -      (x_set_window_size): Call xg_frame_set_char_size for USE_GTK.
 -      (x_make_frame_visible): Call gtk_widget_show_all for USE_GTK.
 -      (x_make_frame_invisible): Call gtk_widget_hide for USE_GTK.
 -      (x_iconify_frame): Add code for USE_GTK.
 -      (x_free_frame_resources): Call gtk_widget_destroy for USE_GTK.
 -      (x_wm_set_size_hint): Only compile if not USE_GTK.  GTK version
 -      is in gtkutil.c.
 -      (x_term_init): Add initialization for GTK.
 -      (syms_of_xterm): Set Vx_toolkit_scroll_bars for USE_GTK.
 -
 -      * xmenu.c: Include gtkutil.h for USE_GTK.
 -      (Fx_popup_menu): Use current position if x and y are nil.
 -      (single_menu_item, single_menu_item, Fx_popup_dialog):
 -      Check for USE_GTK.
 -      (popup_widget_loop): New function for USE_GTK.
 -      (x_activate_menubar): Add code for USE_GTK.
 -      (popup_activate_callback, popup_deactivate_callback)
 -      (menu_highlight_callback, menubar_selection_callback):
 -      Add USE_GTK versions.
 -      (update_frame_menubar): Call xg_update_frame_menubar for USE_GTK.
 -      (set_frame_menubar): Call xg_modify_menubar_widgets for USE_GTK.
 -      (free_frame_menubar): Only compile if not USE_GTK.  GTK version
 -      is in gtkutil.c.
 -      (popup_selection_callback): New version for USE_GTK.
 -      (create_and_show_popup_menu): New fuction, one USE_GTK version and
 -      one USE_X_TOOLKIT version.
 -      (xmenu_show): Call create_and_show_popup_menu.
 -      (dialog_selection_callback): New version for USE_GTK.
 -      (create_and_show_dialog): New fuction, one USE_GTK version and
 -      one USE_X_TOOLKIT version.
 -      (xdialog_show): Call create_and_show_dialog.
 -
 -      * xfns.c: Include gtkutil for USE_GTK.
 -      (x_window_to_frame, x_any_window_to_frame)
 -      (x_non_menubar_window_to_frame, x_menubar_window_to_frame)
 -      (x_top_window_to_frame): Add code for USE_GTK.
 -      (x_set_background_color): Call xg_set_background_color for GTK.
 -      (x_set_menu_bar_lines): Check for USE_GTK.
 -      (x_set_tool_bar_lines): Call update_frame_tool_bar for USE_GTK.
 -      (x_set_name, x_set_title): Call gtk_window_set_title for USE_GTK.
 -      (x_window): Call xg_create_frame_widgets for USE_GTK.
 -      (Fx_create_frame): Check for USE_GTK.
 -      (Fx_file_dialog): New implementation for USE_GTK.
 -
 -      * xdisp.c: Add check for USE_GTK for extern void set_frame_menubar.
 -      (update_menu_bar): Add check for USE_GTK.
 -      (update_tool_bar): Add check for USE_GTK and external tool bar.
 -      (redisplay_tool_bar): Add check for USE_GTK and external tool bar.
 -      (redisplay_internal): Add check for USE_GTK and popup_activated.
 -      (redisplay_window): Add check for USE_GTK and FRAME_EXTERNAL_MENU_BAR.
 -      (redisplay_window): Add check for USE_GTK and FRAME_EXTERNAL_TOOL_BAR.
 -      (display_menu_bar): Add check for USE_GTK
 -
 -      * lisp.h (Vx_resource_name): Declare extern.
 -
 -      * keyboard.c (kbd_buffer_get_event): Check MENU_BAR_ACTIVATE_EVENT
 -      for USE_GTK.
 -      (make_lispy_event): Check MENU_BAR_EVENT for USE_GTK.
 -
 -      * frame.h (struct frame): Add external_tool_bar.  Check for USE_GTK.
 -      (FRAME_EXTERNAL_TOOL_BAR): New macro.
 -      (FRAME_EXTERNAL_MENU_BAR): Check for USE_GTK.
 -
 -      * fileio.c (Fread_file_name): Add check for USE_GTK.
 -
 -      * dispnew.c (adjust_frame_glyphs_for_window_redisplay):
 -      Add check for USE_GTK.
 -
 -      * config.in: Added HAVE_GTK.
 -
 -      * alloc.c (Fgarbage_collect): Call xg_mark_data for GTK.
 -
 -2003-01-18  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * charset.h (Funibyte_char_to_multibyte): Export.
 -
 -2003-01-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xmenu.c (mouse_position_for_popup): New function.
 -      (Fx_popup_menu): Call mouse_position_for_popup for X and
 -      mouse_position_hook for others.
 -
 -2003-01-17  Kim F. Storm  <storm@cua.dk>
 -
 -      * editfns.c (Finsert): Mention `string-make-multibyte' and
 -      `string-as-multibyte' in doc string.
 -
 -2003-01-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * fontset.c (syms_of_fontset): Setup Vfont_encoding_alist here.
 -
 -      * editfns.c (Fformat): Convert an unibyte char argument that is
 -      formatted by "%c" to multibyte if the total result must be a
 -      multibyte string.
 -
 -2003-01-16  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (set-process-filter): Document unibyte/multibyte-ness
 -      of string argument.
 -
 -2003-01-16  Kenichi Handa  <handa@m17n.org>
 -
 -      * charset.h (NEXT_CHAR_BOUNDARY, PREV_CHAR_BOUNDARY): New macros.
 -
 -      * regex.c (GET_CHAR_BEFORE_2): Use PREV_CHAR_BOUNDARY.
 -      (re_search_2): Likewise.
 -
 -2003-01-15  Kenichi Handa  <handa@m17n.org>
 -
 -      * xdisp.c (message_dolog): Fix bug of the case that *Message*
 -      buffer is unibyte.
 -
 -2003-01-15  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 -
 -      * fns.c (Fsubstring): Clarify doc string.
 -
 -      * textprop.c (Ftext_properties_at, Fnext_char_property_change)
 -      (Fprevious_char_property_change)
 -      (Fnext_single_char_property_change)
 -      (Fprevious_single_char_property_change, Fnext_property_change)
 -      (Fnext_single_property_change, Fprevious_property_change)
 -      (Fprevious_single_property_change, Fadd_text_properties)
 -      (Fput_text_property, Fset_text_properties)
 -      (Fremove_text_properties, Fremove_list_of_text_properties)
 -      (Ftext_property_any, Ftext_property_not_all): Clarify doc strings.
 -
 -2003-01-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.h (struct Lisp_Process): New member plist replaces old
 -      member private_vars.  All uses changed.
 -
 -      * process.c: Reworked 2003-01-12 change -- call a plist a plist!
 -      (QCplist): Rename from QCvars.  Change all uses.
 -      (Fprocess_plist): Replaces Fprocess_variable.  Simplified.
 -      (Fset_process_plist): Replaces Fset_process_variable.  Simplify.
 -      (syms_of_process): Intern, staticpro, defsubr these.
 -      (Fmake_network_process): Describe :plist arg.  Remove :vars arg.
 -
 -2003-01-14  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 -
 -      * m/delta.h: Remove (obsolete).
 -
 -2003-01-13  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 -
 -      * fileio.c (Fdelete_directory, Fdelete_file): Document the
 -      behaviour in front of symlinks.
 -      (Fdelete_file): Raise an error on directories.
 -
 -2003-01-13  Dave Love  <fx@gnu.org>
 -
 -      * fns.c (Freverse): Use QUIT.
 -
 -2003-01-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * minibuf.c (minibuffer_completion_contents):
 -      Error if point is inside prompt.
 -
 -      * keyboard.c (command_loop_1): Don't redisplay directly
 -      if there's a post-command-hook.
 -
 -      * fileio.c (syms_of_fileio) <directory-sep-char>: Doc fix.
 -      (Fdo_auto_save): Add gcpros around Ffile_name_directory.
 -
 -2003-01-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.h (struct Lisp_Process): New member private_vars.
 -
 -      * process.c (QCvars): New variable.
 -      (syms_of_process): Intern and staticpro it.
 -      (Fset_process_contact): Removed function.
 -      (Fprocess_variable, Fset_process_variable): New functions.
 -      (syms_of_process): Defsubr them.
 -      (Fstart_process): Initialize private_vars plist to nil.
 -      (Fmake_network_process): New arg :vars to setup the private
 -      variables for new network process.
 -      (server_accept_connection): Copy server's private variables to
 -      client process.
 -
 -      * alloc.c (pure_alloc): Fixed 2003-01-10 changed (caused spurious
 -      crashes).  Code rewritten and simplified.  Now directly aligns the
 -      pointer and recalculates pure_bytes_used, rather than aligning the
 -      size and adjusting the pointer.
 -
 -2003-01-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Fset_process_contact): New function.
 -      (syms_of_process): defsubr it.
 -      (make-network-process): Update doc.
 -
 -2003-01-10  Andreas Schwab  <schwab@suse.de>
 -
 -      * alloc.c (pure_alloc): Correct alignment for Lisp_Floats.
 -      Reported by Berthold Gunreben <b.gunreben@web.de>.
 -
 -2003-01-10  Dave Love  <fx@gnu.org>
 -
 -      * composite.c (syms_of_composite): Make composition_hash_table weak.
 -
 -2003-01-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Fmake_network_process): Convert new port number
 -      to host byte order for `:service t' case.  From Mario Lang.
 -
 -2003-01-08  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xfns.c (Fx_file_dialog): Call XtAppNextEvent and x_dispatch_event
 -      instead of XtAppProcessEvent.
 -
 -      * xterm.c (handle_one_xevent): New function.
 -      (x_dispatch_event): New function.
 -      (XTread_socket): Call handle_one_xevent.
 -
 -      * xterm.h (FRAME_OUTER_TO_INNER_DIFF_X/Y): New.
 -
 -      * xmenu.c (Fx_popup_menu): If popping up at mouse position,
 -      call XQueryPointer to get coordinates.
 -      (popup_get_selection): Do not set popup_activated_flag to zero,
 -      let popup_deactivate_callback do that.  Needed for Motif.
 -      Call x_dispatch_event instead of XtDispatchEvent.
 -      (xmenu_show): Calculate root coordinate from frame top/left position.
 -
 -2003-01-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (server_accept_connection): Fix recording of new
 -      connection's local address in :local property of contact info.
 -      (Fmake_network_process): Record local network address for new
 -      client processes in :local property of contact info.
 -      (format-network-address): Add arg OMIT-PORT.  Change callers.
 -
 -2003-01-07  Dave Love  <fx@gnu.org>
 -
 -      * Makefile.in (fns.o): Depend on coding.h.
 -
 -2003-01-06  Dave Love  <fx@gnu.org>
 -
 -      * fns.c: Include coding.h.  Use POINTER_TYPE*, not void*.
 -      (Vlocale_coding_system): Declare.
 -      (Qcodeset, Qdays, Qmonths, Qpaper): New.
 -      (Flanginfo): New.
 -      (syms_of_fns): Initialize new stuff.
 -
 -2003-01-07  Markus Rost  <rost@math.ohio-state.edu>
 -
 -      * minibuf.c (Fread_variable): Doc fix.
 -
 -      * eval.c (Fuser_variable_p): Doc change.  For custom variables,
 -      use the same test as for custom-variable-p.
 -
 -2003-01-05  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (try_scrolling): New arg LAST_LINE_MISFIT.
 -      Count LAST_LINE_MISFIT in scroll margin for end of window.
 -      Move label too_near_end before setting SCROLL_MARGIN_POS.
 -      Set LAST_LINE_MISFIT before jumping there.
 -
 -      * xdisp.c (try_scrolling): Calculate amount_to_scroll better in
 -      scroll_conservatively case.  If scrolling that much doesn't change
 -      STARTP, move it down one line.
 -
 -      * xdisp.c (redisplay_window): Pass last_line_misfit arg to
 -      try_scrolling.  Make it 1 after make_cursor_line_fully_visible fails.
 -
 -      * xdisp.c (setup_echo_area_for_printing): Kill Emacs if no
 -      selected frame.
 -
 -      * keymap.c (apropos_predicate, apropos_accumulate): Make them static.
 -      (syms_of_keymap): Staticpro them.
 -      (Fapropos_internal): Initialize them and clear them out.
 -      Don't GCPRO them.
 -
 -      * buffer.c (syms_of_buffer) <scroll-up|down-aggressively>: Doc fixes.
 -
 -      * lisp.h: New misc type Lisp_Save_Value.
 -      (enum Lisp_Misc_Type): Add Lisp_Misc_Save_Value.
 -      (XSAVE_VALUE): New macro.
 -      (struct Lisp_Save_Value): New data type.
 -      (union Lisp_Misc): Add u_save_value alternative.
 -      (make_save_value): Declare.
 -
 -      * alloc.c (make_save_value): New function.
 -
 -      * xterm.c (x_catch_errors): Save dpy using make_save_value.
 -      (x_catch_errors_unwind): Call XSync.
 -
 -2003-01-01  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (window_scroll_pixel_based): Partially undo last change.
 -
 -      * keyboard.c (command_loop_1): Call adjust_point_for_property
 -      in direct action cases for Qforward_char and Qbackward_char.
 -      Set already_adjusted so it won't be done twice.
 -
 -2002-12-30  Richard Dawe  <rich@phekda.freeserve.co.uk>
 -
 -      * src/config.in (!HAVE_SIZE_T): Fix order of arguments in
 -      type definition of size_t.
 -
 -2003-01-02  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (syms_of_macterm): Provide the feature "mac-carbon" to
 -      distinguish Carbon GUI builds from X11 builds on darwin.
 -
 -2002-12-30  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (syms_of_macterm): Set mac-wheel-button-is-mouse-2
 -      to default to t.
 -
 -2002-12-29  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 -
 -      * data.c (Fstring_to_number, Fminus): Better English in doc strings.
 -
 -2002-12-28  Steven Tamm  <steventamm@mac.com>
 -
 -      * Makefile.in (macosx-bundle): Fix Mac OS X/Carbon port to
 -      allow building in a different directory than source.  Uses some
 -      GNU Make extensions, but there is no other make on Mac OS X.
 -
 -2002-12-26  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 -
 -      * data.c (Fmakunbound, Ffmakunbound, Fmake_variable_buffer_local)
 -      (Fsetq_default, Fmake_local_variable, Fkill_local_variable)
 -      (Fmake_variable_frame_local, Faset, Fnumber_to_string, Fminus)
 -      (Fstring_to_number): Mention the returned value in the doc strings.
 -
 -2002-12-23  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (syms_of_buffer) <scroll-up-aggressively>
 -      <scroll-down-aggressively>: Doc fix.
 -
 -      * xmenu.c (parse_single_submenu): Use individual keymap's prompt
 -      string as pane name, if there is one.
 -      (set_frame_menubar): Save menu_items_n_panes from each call to
 -      parse_single_submenu and use it when calling digest_single_submenu.
 -
 -      * window.c (window_scroll_pixel_based): Fix check for reaching BEGV.
 -      Don't try to make last line fully visible if it is past end of window.
 -
 -2002-12-22  Steven Tamm  <steventamm@mac.com>
 -
 -      * macmenu.c (MIN_POPUP_SUBMENU_ID): Add.
 -      (mac_menu_show): Add support for hierarchical popup menus.
 -      (add_menu_item): Remove indentation support.
 -      (fill_submenu, fill_menu): Create hierarchical menus
 -      instead of using indentation.
 -
 -2002-12-22  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (try_cursor_movement): Don't call try_window here.
 -      (redisplay_window): Never redisplay minibuffer when inactive.
 -
 -      * window.c (select_window_1): Undo 9/21 change.
 -
 -2002-12-22  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (XTread_socket): Call KeyTranslate for control and
 -      meta to deal correctly shifted non-alpha characters, like C-S-5
 -      being treated like C-%.  Do not look for shift key to deal
 -      with masking off control-key with mac-reverse-ctrl-meta.
 -
 -2002-12-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xmenu.c (popup_get_selection): Now static.  New arg DO_TIMERS.
 -      If it is non-nil, run timers.  Use an unwind-protect to requeue
 -      the events that were read ahead.
 -      (popup_get_selection_unwind): New subroutine.
 -      (popup_get_selection_queue): File-scope variable now holds that queue.
 -      (xmenu_show): Pass 0 for DO_TIMERS to popup_get_selection.
 -      (xdialog_show): Pass 1 for DO_TIMERS to popup_get_selection.
 -      Use an unwind-protect to pop down the dialog box.
 -      (xdialog_show_unwind): New subroutine implements that.
 -
 -      * xdisp.c (row_containing_pos): Change exit test using last_y.
 -      (try_window_id): Abort if row_containing_pos returns null.
 -
 -      * lread.c (load_error_handler): New function.
 -      (Fload): Handle errors in Fsubstitute_in_file_name.
 -      Don't expect Fsignal to return.
 -
 -      * eval.c: Errors and throws work right with interrupt blocking.
 -      (struct catchtag): New elt interrupt_input_blocked.
 -      (unwind_to_catch): Restore interrupt_input_blocked from saved value.
 -      (internal_catch, Fcondition_case, internal_condition_case)
 -      (internal_condition_case_1, internal_condition_case_2): Save it.
 -      (Fsignal): Don't do TOTALLY_UNBLOCK_INPUT.
 -
 -      * editfns.c (Fformat): Add parens.
 -
 -      * dired.c (file_name_completion): Fix that change.
 -      Delete special quit-handling code; just use QUIT.
 -
 -2002-12-21  Tak Ota  <Takaaki.Ota@am.sony.com>
 -
 -      * dired.c (file_name_completion): Close directory on error
 -      just as in directory_files_internal.
 -
 -2002-12-19  David Kastrup  <David.Kastrup@t-online.de>
 -
 -      * window.c (Fset_window_configuration): Set old_point to correct
 -      value when new_current_buffer == current_buffer.
 -
 -2002-12-17  Ben Key  <bkey1@tampabay.rr.com>
 -
 -      Revisited my earlier fix for the following entry in etc/PROBLEMS:
 -      "Emacs built on Windows 9x/ME crashes at startup on Windows XP,
 -      or Emacs builtpart of on XP crashes at startup on Windows 9x/ME."
 -
 -      These changes were in part based upon suggestions made by Peter
 -      'Luna' Runestig [peter@runestig.com].
 -
 -      * w32.c (g_b_init_is_windows_9x, g_b_init_open_process_token)
 -      (g_b_init_get_token_information, g_b_init_lookup_account_sid)
 -      (g_b_init_get_sid_identifier_authority ): Add several static
 -      global variables.
 -
 -      * w32.c (globals_of_w32): New function.  Used to initialize those
 -      global variables that must always be initialized on startup even
 -      when the global variable initialized is non zero.  Its primary
 -      purpose at this time is to set the global variables
 -      g_b_init_is_windows_9x, g_b_init_open_process_token,
 -      g_b_init_get_token_information, g_b_init_lookup_account_sid, and
 -      g_b_init_get_sid_identifier_authority to 0 on startup.
 -      Called from main.
 -
 -      * w32.c (is_windows_9x): Perform initialization only if
 -      g_b_init_is_windows_9x is equal to 0.  On initialization set
 -      g_b_init_is_windows_9x equal to 1.
 -
 -      * w32.c (open_process_token): Perform initialization only if
 -      g_b_init_open_process_token is equal to 0.  On initialization set
 -      g_b_init_open_process_token equal to 1.
 -
 -      * w32.c (get_token_information): Perform initialization only if
 -      g_b_init_get_token_information is equal to 0.  On initialization
 -      set g_b_init_get_token_information equal to 1.
 -
 -      * w32.c (lookup_account_sid): Perform initialization only if
 -      g_b_init_lookup_account_sid is equal to 0.  On initialization
 -      set g_b_init_lookup_account_sid equal to 1.
 -
 -      * w32.c (get_sid_identifier_authority): Perform initialization
 -      only if g_b_init_get_sid_identifier_authority is equal to 0.
 -      On initialization set g_b_init_get_sid_identifier_authority equal to 1.
 -
 -      * w32fns.c (globals_of_w32fns): New function.  Used to initialize
 -      those global variables that must always be initialized on startup
 -      even when the global variable initialized is non zero.
 -      Its primary purpose at this time is to initialize the global variable
 -      track_mouse_event_fn.
 -
 -      * w32fns.c (w32_wnd_proc): Remove initialization of
 -      track_mouse_event_fn from the handler for the WM_SETFOCUS message.
 -
 -      * w32fns.c (syms_of_w32fns): Call globals_of_w32fns.
 -
 -      * w32menu.c (globals_of_w32menu): New function.  Used to
 -      initialize those global variables that must always be initialized
 -      on startup even when the global variable initialized is non zero.
 -      Its primary purpose at this time is to initialize the global
 -      variables get_menu_item_info and set_menu_item_info.
 -
 -      * w32menu.c (initialize_frame_menubar): Remove initialization of
 -      get_menu_item_info and set_menu_item_info.
 -
 -      * w32menu.c (syms_of_w32menu): Call globals_of_w32menu.
 -
 -      * w32.h (globals_of_w32, globals_of_w32fns, globals_of_w32menu):
 -      Declare them.
 -
 -      * emacs.c (main): Call globals_of_w32 prior to calling
 -      init_environment if WINDOWSNT is defined.  Call globals_of_w32fns
 -      and globals_of_w32menu if initialized is non zero and HAVE_NTGUI
 -      is defined.
 -
 -      * w32term.c (x_update_window_begin): Fix Windows API error
 -      detected by BoundsChecker.  Test to determine if
 -      w32_system_caret_hwnd is NULL prior to attempting to use
 -      SendMessage to send the WM_EMACS_HIDE_CARET message to it.
 -
 -      * w32term.c (x_update_window_end): Fix Windows API error
 -      detected by BoundsChecker.  Test to determine if
 -      w32_system_caret_hwnd is NULL prior to attempting to use
 -      SendMessage to send the WM_EMACS_SHOW_CARET message to it.
 -
 -2002-12-17  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (coding_system_require_warning): New variable.
 -      (syms_of_coding): DEFVAR it.
 -
 -      * coding.h (coding_system_require_warning): Extern it.
 -
 -      * fileio.c (choose_write_coding_system): Even if
 -      Vcoding_system_for_write is non-nil, if
 -      coding_system_require_warning is nonzero, call
 -      Vselect_safe_coding_system_function.
 -
 -2002-12-17  Markus Rost  <rost@math.ohio-state.edu>
 -
 -      * Makefile.in (lisp, shortlisp): Add cus-face and timer.
 -      (lisp): Add font-core.
 -
 -2002-12-13  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * textprop.c (text_read_only): New arg `propval'.
 -      (get_char_property_and_overlay): Remove unused var `next_overlay'.
 -      (verify_interval_modification): Use text_read_only's new arg.
 -
 -2002-12-13  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (Funencodable_char_position): Set pend correctly.
 -
 -2002-12-12  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (last_mousemove_x, last_mousemove_y): New variables.
 -      (w32_read_socket) <WM_MOUSEMOVE>: Use them to detect non-movement.
 -      Be more careful about when help_events are generated.
 -
 -2002-12-12  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (mac_check_for_quit_char): Correctly set the
 -      modifiers of the event to 0.
 -      * mac.c (sys_select): Duplicate rfds before calling select to
 -      ensure that rfds survive the while loop.
 -
 -2002-12-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (try_window_id): Don't call set_cursor_from_row if
 -      row_containing_pos returned NULL.
 -
 -2002-12-10  Steven Tamm  <steventamm@mac.com>
 -
 -      * mac.c (sys_read): Fix sys_read to not call select if IO is
 -      non-blocking.
 -      (sys_select): Fix sys_select to not use a timeout larger than
 -      the one given.
 -
 -2002-12-10  Juanma Barranquero  <lektu@terra.es>
 -
 -      * editfns.c (Fformat): Use alloca, not _alloca.
 -
 -2002-12-09  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (Fget_buffer_create): Call Qucs_set_table_for_input
 -      as the last thing.
 -
 -2002-12-09  Dave Love  <fx@gnu.org>
 -
 -      * s/sol2-8.h: Removed.  (Not necessary.)
 -
 -2002-12-09  Matthew Swift  <swift@alum.mit.edu>
 -
 -      * editfns.c (Fformat): Handle precision in string conversion
 -      specifiers like libc functions do (ie, print at most that many
 -      characters).
 -
 -2002-12-08  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (row_containing_pos): Check more carefully
 -      whether charpos is really in the row before returning it.
 -
 -2002-12-07  Steven Tamm  <steventamm@mac.com>
 -
 -      * sysdep.c (emacs_read) [HAVE_CARBON]: Have emacs_read use sys_read.
 -
 -      * eval.c (Feval) [HAVE_CARBON]: Calls mac_check_for_quit_char at
 -      each stack frame.  This may change as it could be time consuming.
 -
 -      * macterm.c (mac_check_for_quit_char, quit_char_comp)
 -      (init_quit_char_handler, mac_determine_quit_char_modifiers)
 -      (mac_initialize): Add code to check for pressing of quit_char
 -      in the OS event queue.
 -
 -      * mac.c (sys_select): Call mac_check_for_quit_char every second
 -      while blocking on select.
 -
 -      * mac.c (sys_read): Use sys_select to test for input first
 -      before calling read, to allow C-g to break.
 -
 -2002-12-07  Richard M. Stallman  <rms@gnu.org>
 -
 -      * minibuf.c (Fcompleting_read): Doc fix.
 -
 -      * lread.c (syms_of_lread) <load-history>: Doc fix.
 -
 -      * fileio.c (Fcopy_file): Set immediate_quit around emacs_open call.
 -
 -      * eval.c (Fdefun, Fdefmacro): Record in load-history redefining an
 -      autoload.
 -
 -      * data.c (Fdefalias): Record in load-history redefining an autoload.
 -
 -      * alloca.c: Undo ifdef change accidentally made on 12-04.
 -
 -2002-12-06  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 -
 -      * xfns.c (png_load): Avoid double gamma correction for PNG images.
 -
 -2002-12-04  Richard M. Stallman  <rms@gnu.org>
 -
 -      * sysdep.c (fcntl.h): Test only HAVE_FCNTL_H.
 -
 -      * fileio.c (fcntl.h): Test only HAVE_FCNTL_H.
 -
 -      * alloca.c: Don't use #error.
 -
 -2002-12-03  Dave Love  <fx@gnu.org>
 -
 -      * buffer.c (Qucs_set_table_for_input): New.
 -      (Fget_buffer_create): Use it.
 -      (Qset_buffer_major_mode_hook): Deleted.
 -      (Fset_buffer_major_mode): Revert previous change.
 -      (init_buffer_once): Intern ucs-set-table-for-input.
 -      (syms_of_buffer): Delete Qset_buffer_major_mode_hook.
 -      Add &Qucs_set_table_for_input.
 -
 -2002-12-03  Andreas Schwab  <schwab@suse.de>
 -
 -      * callint.c (Fcall_interactively): Use next_event only if less
 -      than key_count.
 -
 -2002-12-02  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macmenu.c (add_menu_item, fill_menubar): Truncate menu item
 -      names to 255 characters.
 -
 -      * macterm.c (XTread_socket): If all frames have been collapsed,
 -      expand the first one before handling drag-and-drop events.
 -
 -      * s/darwin.h (GETPGRP_NO_ARG): Delete.  Replaced by GETPGRP_VOID,
 -      which is detected by autoconf.
 -
 -2002-12-01  Steven Tamm  <steventamm@mac.com>
 -
 -      * unexmacosx.c (copy_twolevelhints, dump_it): Now corrects the
 -      offset in two hints table to allow prebinding to be redone and
 -      allow the executable to be stripped.
 -
 -2002-11-29  Dave Love  <fx@gnu.org>
 -
 -      * fns.c (Frequire): Don't call LOADHIST_ATTACH if feature was
 -      already provided.
 -
 -2002-11-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (start_display): Check more intelligently for
 -      whether the line is continued.
 -      (move_it_vertically_backward): Clear it->continuation_lines_width.
 -
 -2002-11-28  Dave Love  <fx@gnu.org>
 -
 -      * s/amdahl.h, s/unipl5-0.h, m/sgi3000.h, s/3700.h, s/alliant-2800.h:
 -      * s/alliant.h, s/altos.h: Deleted.  (Unused/empty.)
 -
 -2002-11-27  Steven Tamm  <steventamm@mac.com>
 -
 -      * fns.c (Frequire): Change nesting allowance from 2 to 3 to cause
 -      more descriptive error output from lread.c:Fload upon most require
 -      cycles during boostrapping.
 -
 -2002-11-27  Jason Rumney  <jasonr@gnu.org>
 -
 -      * fileio.c (Finsert_file_contents): Give a more appropriate error
 -      for files bigger than 2Gb when off_t is 32 bit.
 -
 -      * dired.c (Ffile_attributes): Don't return negative file sizes for
 -      files bigger than 2Gb when off_t is 32 bit.
 -
 -2002-11-27  Dave Love  <fx@gnu.org>
 -
 -      * s/irix6-0.h (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
 -
 -      * systty.h: Don't conditionally define GETPGRP_NO_ARG.
 -      Test GETPGRP_VOID instead.
 -      [BSD_TERMIOS]: Remove definitions (never used).
 -
 -      * s/osf5-0.h (WAIT_USE_INT, SYS_SIGLIST_DECLARED, sys_siglist):
 -      Don't define.
 -      (GC_SETJMP_WORKS, GC_MARK_STACK): Define.
 -
 -      * m/mips.h (WORDS_BIG_ENDIAN): Define conditionally.
 -
 -2002-11-25  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (sys_write): Avoid non-blocking mode, which is not fully
 -      supported.
 -
 -2002-11-25  Dave Love  <fx@gnu.org>
 -
 -      * unexalpha.c (update_dynamic_symbols): Cast arg of fatal_unexec.
 -
 -      * Makefile.in (TEMACS_LDFLAGS): Update last change.
 -
 -2002-11-25  Andreas Schwab  <schwab@suse.de>
 -
 -      * m/ia64.h: Restore `#ifndef NOT_C_CODE' deleted by last change.
 -
 -2002-11-24  Steven Tamm  <steventamm@mac.com>
 -
 -      * unexmacosx.c (unexec_realloc): Use malloc_default_zone to
 -      determine the size of pointers alloced in unexed space instead
 -      of using possibly invalid emacs_zone pointers.  This fixes the
 -      binary incompatibility problems caused by updates to libSystem.B.
 -
 -2002-11-24  Richard M. Stallman  <rms@gnu.org>
 -
 -      * search.c (Fstring_match): Doc fix.
 -
 -      * callint.c (Fcall_interactively): If a command fails because
 -      `*' detects a read-only buffer, but RECORD_FLAG is set,
 -      record it anyway if the args don't actually do tty input.
 -
 -2002-11-22  Dave Love  <fx@gnu.org>
 -
 -      * sysdep.c (stuff_char) [PROTOTYPES]: Provide ISO C arglist.
 -
 -      * keyboard.c (interrupt_signal): Provide forward declaration.
 -      (kbd_buffer_store_event): Don't declare interrupt_signal.
 -
 -      * xdisp.c (store_frame_title_char) [PROTOTYPES]: Provide ISO C arglist.
 -
 -2002-11-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * eval.c (interactive_p): Skip any number of bytecode
 -      and special form frames, in any order.
 -
 -2002-11-20  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (convert_mono_to_color_image): New function.
 -      (xbm_load, xbm_load_image): Use it when foreground or background
 -      is explicitly set.
 -
 -2002-11-19  Dave Love  <fx@gnu.org>
 -
 -      * s/usg5-4.h, sco4.h (bcopy, bzero, bcmp): Don't define.
 -
 -2002-11-18  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (x_build_heuristic_mask): Filter palette info from color.
 -      (XPutPixel): Swap blue and red.
 -      (xpm_format, pbm_format, png_format, jpeg_format, tiff_format)
 -      (gif_format, gs_format): Use IMAGE_ASCENT_VALUE.
 -      (xpm_image_p, pbm_image_p, png_image_p, jpeg_image_p)
 -      (tiff_image_p, gif_image_p, gs_image_p): Don't check ascent.
 -
 -2002-11-18  Dave Love  <fx@gnu.org>
 -
 -      * m/orion105.h (HAVE_ALLOCA): Don't define.
 -
 -      * m/m68k.h, m/arm.h, mtekxd88.h, m/tower32v3.h: Don't define alloca.
 -
 -      * m/intel386.h: Don't include alloca.h or define alloca.
 -
 -      * m/ia64.h: Don't include alloca.h, stdlib.h.  Don't declare
 -      malloc, realloc, calloc.
 -
 -      * m/hp800.h, m/sr2k.h, m/ns16000.h, m/wicat.h (bcopy, bzero)
 -      (bcmp): Don't define.
 -
 -      * m/delta.h (bcopy, bzero, bcmp, alloca): Don't define.
 -
 -      * m/amdahl.h: Don't define LIB_STANDARD.
 -
 -      * m/alpha.h: Move OSF1 stuff from here to s/osf1.h.
 -
 -      * s/osf1.h: Move OSF1 stuff from m/alpha.h to here.
 -
 -      * s/irix4-0.h, s/irix5-0.h, m/powerpcle.h, m/sparc.h:
 -      Don't include alloca.h.
 -
 -      * s/aix3-2.h (HAVE_FSYNC): Don't define.
 -
 -      * regex.c (_GNU_SOURCE): Don't define.
 -
 -      * process.c (_GNU_SOURCE): Don't define.
 -
 -      * fileio.c (_GNU_SOURCE, HAVE_FSYNC): Don't define.
 -
 -2002-11-18  Markus Rost  <rost@math.ohio-state.edu>
 -
 -      * s/sol2-8.h: Include sol2-6.h.
 -
 -2002-11-18  Miles Bader  <miles@gnu.org>
 -
 -      * dispextern.h (struct face): Add `overstrike' field.
 -      * xterm.c (x_draw_glyph_string_foreground)
 -      (x_draw_composite_glyph_string_foreground): Implement overstriking.
 -      * xfaces.c (load_face_font): Set `face->overstrike' based on
 -      result from choose_face_font.
 -      (best_matching_font, choose_face_font): Add `needs_overstrike'
 -      argument, and use it to return whether overstriking is desirable
 -      for this face/font combo.
 -      (set_font_frame_param: Pass new argument to choose_face_font.
 -
 -2002-11-17  Ben Key  <BKey1@tampabay.rr.com>
 -
 -      This change is my fix for the following entry in etc/PROBLEMS:
 -      "Emacs built on Windows 9x/ME crashes at startup on Windows XP,
 -      or Emacs builtpart of on XP crashes at startup on Windows 9x/ME."
 -
 -      * w32.c: Added wrapper functions around the win32 API functions
 -      OpenProcessToken, GetTokenInformation, LookupAccountSid, and
 -      GetSidIdentifierAuthority.  These wrapper functions serve two
 -      purposes:
 -      1.  They ensure that the wrapped function can never be called
 -      when Emacs is running on an operating system on which they are
 -      not supported (Microsoft Windows 95 / 98 / ME).
 -      2.  They call the wrapped functions via function pointers rather
 -      than calling them directly.  This avoids taking advantage of the
 -      undocumented fact that although these functions are not supported
 -      in the 9x branch of Microsoft Windows, the functions do exist in
 -      the version of advapi32.dll that is found in the 9x branch of
 -      Microsoft Windows.
 -
 -      * w32.c (init_user_info): Replace the calls to the win32 API
 -      functions OpenProcessToken, GetTokenInformation, LookupAccountSid,
 -      and GetSidIdentifierAuthority with calls to the newly added
 -      wrapper functions.
 -
 -      * w32.h: Added extern declarations for the following functions:
 -      syms_of_w32term, syms_of_w32fns, syms_of_w32select,
 -      syms_of_w32menu, and void syms_of_fontset.
 -
 -      * w32fns.c (w32_wnd_proc): Add code to reinitialize the
 -      function pointer track_mouse_event_fn in the handler for the
 -      WM_SETFOCUS message.
 -
 -      * w32menu.c (initialize_frame_menubar): Add code to
 -      reinitialize the function pointers set_menu_item_info and
 -      get_menu_item_info.
 -
 -2002-11-17  Ben Key  <BKey1@tampabay.rr.com>
 -
 -      * sound.c: Added a partial implementation of play-sound-internal
 -      for Microsoft Windows.  Added various #ifdef / #else / #endif
 -      code blocks to separate the code that will compile under
 -      Microsoft Windows from the code that is specific to GNU/Linux.
 -      Moved several blocks of code around to make this separation of code
 -      into Windows compatible and GNU/Linux compatible code blocks easier.
 -
 -      * makefile.w32-in: Include sound.c and link with WinMM.lib.
 -
 -      * s/ms-w32.h: Defined the symbol HAVE_SOUND so that the newly
 -      added support for play-sound-internal under Windows would be
 -      included in the build of Emacs.
 -
 -2002-11-16  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_load_system_font): Don't disable Cleartype.
 -
 -      * w32term.c (w32_get_glyph_string_clip_rect): Clip cursor tightly.
 -
 -2002-11-15  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (command_loop_1): Fix int/Lisp_Object mixup.
 -      (adjust_point_for_property): Move out of display and invisible even if
 -      we were already inside before (in case a property was added while
 -      we weren't looking).  Be more careful when handling invisible props.
 -      Skip invisible text as if it really wasn't there at all.
 -
 -2002-11-15  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_draw_image_foreground)
 -      (w32_draw_image_foreground_1): Use standard copy and invert
 -      operations to draw images.
 -
 -      * w32fns.c (x_create_x_image_and_pixmap): Fill in palette for
 -      depth of 1.
 -      (xbm_read_bitmap_data): Invert bits as xbm is read in.
 -      (XPutPixel): Don't invert bits here.
 -
 -2002-11-15  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_draw_image_foreground, x_draw_image_glyph_string)
 -      (w32_draw_image_foreground_1): Handle image masks.
 -      (x_draw_image_glyph_string): Don't BitBlt transparently.
 -
 -      * w32fns.c (w32_defined_color): Adjust RGB values for Emacs.
 -      (x_from_xcolors): Adjust RGB values for W32.
 -      (image_background, image_background_transparent)
 -      (postprocess_image, x_to_xcolors, x_disable_image)
 -      (x_build_heuristic_mask): Adapt for W32 and enable.
 -      (x_create_x_image_and_pixmap): Mark images with palettes as such.
 -      (xbm_load): Remove unused variable.
 -
 -2002-11-14  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (syms_of_buffer): Doc fix.
 -
 -2002-11-14  Dave Love  <fx@gnu.org>
 -
 -      * alloc.c (SETJMP_WILL_NOT_WORK): Add note.
 -
 -      * xterm.c (x_draw_relief_rect, x_draw_box_rect, x_update_cursor):
 -      * xmenu.c (unuse_menu_items, digest_single_submenu):
 -      * xfns.c (x_put_x_image):
 -      * xdisp.c (message2_nolog, set_message):
 -      * undo.c (record_point):
 -      * terminfo.c (tparam):
 -      * syntax.c (scan_sexps_forward):
 -      * scroll.c (calculate_scrolling, calculate_direct_scrolling):
 -      * composite.c (update_compositions):
 -      * cm.c (calccost, cmgoto):
 -      * charset.c (c_string_width): Declare all args (per C99).
 -
 -      * frame.h (get_specified_cursor_type, get_window_cursor_type): Declare.
 -
 -      * lisp.h (get_specified_cursor_type, get_window_cursor_type):
 -      Don't declare.
 -
 -      * emacs.c (main) [!VMS]: Avoid third arg.
 -
 -      * fns.c (Fcopy_sequence): Doc fix.
 -      (Fmap_char_table): Cast `call2'.
 -
 -2002-11-14  Francesco Potort\e,Al\e(B  <pot@gnu.org>
 -
 -      * s/sol2-8.h: New file.
 -
 -2002-11-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * buffer.c (syms_of_buffer) <mode-line-format>: Document symbol
 -      dependency on `risky-local-variable' and the :propertize form.
 -
 -2002-11-12  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * fns.c (Fmap_char_table): Don't use map_char_table's function arg.
 -
 -      * syntax.c (scan_sexps_forward): Undo last patch.
 -      Use a more obvious fix: check eob before updating the syntax table.
 -
 -2002-11-09  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * syntax.c (scan_sexps_forward): Update syntax table before reading
 -      a char rather than after so we don't update the table past eob.
 -
 -2002-11-09  Dave Love  <fx@gnu.org>
 -
 -      * buffer.c (Fset_buffer_major_mode): Fix last change.
 -
 -      * regex.c (regexec): Fix pmatch declaration.
 -
 -      * cmds.c (Fself_insert_command): Apply Vtranslation_table_for_input.
 -
 -      * keyboard.c (command_loop_1): Apply Vtranslation_table_for_input
 -      to self-inserting characters.
 -      (syms_of_keyboard) <keyboard-translate-table>: Doc fix.
 -
 -      * coding.c (Vtranslation_table_for_input): New.
 -      (syms_of_coding): DEFVAR it.
 -
 -2002-11-08  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32term.c (w32_draw_fringe_bitmap): Remove unused local variable
 -      window.
 -
 -2002-11-08  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * process.c (Fformat_network_address): Remove unused locals p,
 -      cp, and i.
 -
 -2002-11-06  Dave Love  <fx@gnu.org>
 -
 -      * buffer.c (Qset_buffer_major_mode_hook): New.
 -      (Fset_buffer_major_mode): Use it.
 -
 -2002-11-06  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xterm.c (x_term_init): Use turn_on_atimers, not start_polling
 -      and stop_polling.
 -
 -      * process.c (wait_reading_process_input):
 -      Test POLLING_PROBLEM_IN_SELECT, not hpux.
 -      Avoid initialization for auto Lisp_Object var.
 -
 -      * s/hpux11.h (POLLING_PROBLEM_IN_SELECT): Add #undef.
 -
 -      * s/hpux10.h (POLLING_PROBLEM_IN_SELECT): Defined.
 -
 -2002-11-05  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/sol2-5.h (BROKEN_SIGIO): Turn off the #undef.
 -
 -      * callint.c (Fcall_interactively): New local filter_specs.
 -      (Fcall_interactively): Check for progn as well as let.
 -      Add a gcpro.
 -      (Qprogn): New variable.
 -      (syms_of_callint): Staticpro and init Qprogn.
 -
 -2002-11-04  John Paul Wallington  <jpw@shootybangbang.com>
 -
 -      * lread.c (Feval_buffer): Doc fix.
 -
 -2002-11-04  Dave Love  <fx@gnu.org>
 -
 -      * keyboard.c (read_char): Always translate iff
 -      Vkeyboard_translate_table is a char table and c is valid.
 -
 -      * xterm.c (XTread_socket): Check Lisp types for Vx_keysym_table
 -      and fix C types.
 -
 -2002-11-03  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * xdisp.c (single_display_prop_intangible_p): Strings are intangible.
 -
 -      * editfns.c (get_pos_property): Don't hardcode Qfield.
 -
 -      * keyboard.c (adjust_point_for_property): Handle `display' prop on
 -      overlays.  Also handle `invisible' prop.
 -
 -2002-11-02  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * coding.c (decode_coding_emacs_mule, decode_coding_iso2022)
 -      (decode_coding_sjis_big5, decode_eol): Allow lone \r in DOS EOL.
 -
 -2002-11-01  Andreas Schwab  <schwab@suse.de>
 -
 -      * editfns.c (Fmessage): Revert last change to properly handle %%.
 -
 -2002-11-01  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * xmenu.c (unuse_menu_items): New fun.
 -      (menu_items_inuse): New var.
 -      (syms_of_xmenu): Initialize it.
 -      (init_menu_items): Use it to detect re-entrance.
 -      (Fx_popup_menu, Fx_popup_dialog, set_frame_menubar): Reset when done.
 -      (Fx_popup_menu): Remove spurious XSETFRAME.
 -
 -      * editfns.c (find_field): Make an exception for nil fields.
 -
 -2002-11-01  Dave Love  <fx@gnu.org>
 -
 -      * m/gec63.h: Deleted.
 -
 -2002-10-31  Dave Love  <fx@gnu.org>
 -
 -      * xterm.c (XTread_socket): Fix last change.
 -      (xaw_scroll_callback): Cast call_data to long to avoid warning.
 -
 -2002-10-31  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * process.c (Fformat_network_address): Fix int/Lisp_Object mixup.
 -
 -2002-10-30  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * editfns.c (overlays_around, get_pos_property): New funs.
 -      (find_field): Use them.
 -      Also be careful not to modify POS before its last use.
 -      (Fmessage): Don't Fformat if there's nothing to format.
 -
 -2002-10-30  Dave Love  <fx@gnu.org>
 -
 -      * process.c [HAVE_SYS_WAIT]: Include sys/wait.h.
 -      [HAVE_PTY_H]; Include pty.h.
 -
 -      * lread.c (Fload) <!load_dangerous_libraries>: Close fd.
 -
 -      * xterm.c (Qeql): Declare.
 -      (Vx_keysym_table): New.
 -      (syms_of_xterm): Initialize it.
 -      (XTread_socket): Use it.  Deal with ASCII keysyms.
 -      (XSetIMValues) [HAVE_X11R6]: Prototype.
 -
 -      * keyboard.c (lispy_accent_codes, lispy_accent_keys): Extended.
 -      (lispy_kana_keys): Comment out.
 -      (make_lispy_event) [XK_kana_A]: Comment out.
 -      (modify_event_symbol) <sizeof (long) == sizeof (EMACS_INT)>:
 -      Fix sprintf call.
 -
 -      * s/osf5-0.h (C_SWITCH_SYSTEM): Revert last change (fixed by
 -      regexp.h change).
 -      (TERMINFO, LIBS_TERMCAP): Define.
 -
 -      * s/usg5-4.h (bcopy, bzero): Define conditional on HAVE_BCOPY.
 -      (bcmp): Define conditional on HAVE_BCMP.
 -      (NO_SIOCTL_H): Don't define.
 -      (TIOCSIGSEND): Don't make conditional on IRIX6.
 -
 -      * s/sol2-5.h: Don't include strings.h.
 -      (bcopy, bzero, bcmp) [HAVE_BCOPY]: Don't undef.
 -
 -      * s/irix6-0.h (IRIX6): Don't define.
 -      (bcopy, bcmp, bzero): Don't undef.
 -
 -      * s/irix6-5.h: Don't include strings.h.
 -      (IRIX6): Don't define.
 -      (bcopy, bcmp, bzero): Don't undef.
 -
 -      * syntax.c (Fforward_comment): Doc fix.
 -
 -2002-10-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Fsignal_process): Allow PROCESS to be specified by
 -      name in addition to pid (as integer or string).
 -
 -2002-10-28  Harald Maier  <Harald.Maier.BW@t-online.de>  (tiny change)
 -
 -      * w32heap.c: Don't redefine _heap_init and _heap_term on MSVC 7 build
 -      environments.
 -
 -2002-10-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (note_mouse_highlight): Don't use mouse-face if hidden.
 -
 -      * w32term.c (note_mouse_highlight): Don't use mouse-face if hidden.
 -
 -      * msdos.c (IT_note_mouse_highlight): Don't use mouse-face if hidden.
 -
 -      * macterm.c (note_mouse_highlight): Don't use mouse-face if hidden.
 -
 -2002-10-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * editfns.c (Fformat): Detect invalid format letters for floats.
 -
 -2002-10-25  Kenichi Handa  <handa@m17n.org>
 -
 -      * xfns.c (x_set_name): Encode by Qcompound_text unconditionally.
 -      (x_set_title): Likewise.
 -
 -2002-10-25  Juanma Barranquero  <lektu@terra.es>
 -
 -      * macgui.h:
 -      * w32gui.h: Remove definition of XColor.
 -
 -      * dispextern.h [!HAVE_X_WINDOWS]: Define XColor.
 -
 -2002-10-24  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (get_window_cursor_type): New arg ACTIVE_CURSOR.
 -      Callers changed (supply dummy arg).
 -
 -      * lisp.h (get_window_cursor_type): Update prototype.
 -
 -      * w32term.c (x_display_and_set_cursor): Get active_cursor from
 -      get_window_cursor_type to track system caret.
 -
 -2002-10-24  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (Fformat_network_address): New function.
 -      (syms_of_process): Defsubr it.
 -      (list_processes_1): Use it to format :local/:remote address if
 -      service/host is not set; before Emacs would crash in that case.
 -      (Fmake_network_process): Don't use Ffind_operation_coding_system
 -      to setup coding system if host or service is not set.
 -
 -2002-10-23  Juanma Barranquero  <lektu@terra.es>
 -
 -      Patch suggested by Jay Finger <jay_finger@hotmail.com>.
 -
 -      * w32term.c (w32_term_init): Pass XColor to w32_define_color, not
 -      COLORREF.
 -
 -      * macgui.h:
 -      * w32gui.h: Add definition of XColor.
 -
 -      * macfns.c:
 -      * w32fns.c:
 -      * xfaces.c: Remove definition of XColor.
 -
 -2002-10-22  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * xfns.c (x_set_name, x_set_title): `icon.value' has unsigned char.
 -
 -      * window.c (window_loop): For GET_LRU_WINDOW and GET_LARGEST_WINDOW>,
 -      Only ignore truly dedicated windows.  For UNSHOW_BUFFER, delete the
 -      window if it is dedicated.
 -      (Fshrink_window): Add preserve_before as was done for enlarge_window.
 -      (Vspecial_display_function): Update docstring.
 -
 -      * buffer.c (assoc_ignore_text_properties, Fother_buffer, Fkill_buffer)
 -      (call_overlay_mod_hooks): Use CONSP and XCAR/XCDR.
 -      (Fget_buffer_create, advance_to_char_boundary): Use BEG and BEG_BYTE;
 -
 -2002-10-21  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * casefiddle.c (casify_region): Don't treat a prefix char as part
 -      of a word when at the beginning.
 -
 -2002-10-17  Juanma Barranquero  <lektu@terra.es>
 -
 -      * lread.c (syms_of_lread): Fix typos.
 -
 -2002-10-17  Dave Love  <fx@gnu.org>
 -
 -      * Makefile.in (TEMACS_LDFLAGS): Add trailing comment.
 -
 -2002-10-16  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Fcopy_file): Fix backward test of KEEP_TIME.
 -
 -2002-10-14  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w16select.c (syms_of_win16select): Fix docstring for
 -      `selection-coding-system'.
 -
 -      * w32select.c (syms_of_w32select): Likewise.
 -
 -2002-10-14  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * syntax.c (scan_lists): Don't get fooled by a symbol ending with
 -      a backslash-quoted char.
 -      (scan_lists, scan_sexps_forward): Pacify the compiler.
 -
 -2002-10-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (window_scroll): Set immediate_quit.
 -
 -      * print.c (print): When backquote form is the car of a list,
 -      output in old style.  Use old_backquote_output to output all
 -      comma forms inside it in old style too.
 -
 -      * buffer.h (struct buffer): Move `undo_list' down below `name'.
 -
 -2002-10-11  Markus Rost  <rost@math.ohio-state.edu>
 -
 -      * emacs.c (syms_of_emacs) <kill-emacs-hook>: Doc fix (not run in
 -      batch mode).
 -
 -      * lread.c (Fload): Doc fix (load-suffixes).
 -
 -2002-10-10  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (syms_of_macterm, mac_get_mouse_btn):
 -      Reverse functionality of mac-wheel-button-is-mouse-2 to be correct.
 -      Also switch the default to Qnil from Qt.
 -
 -2002-10-08  Kenichi Handa  <handa@m17n.org>
 -
 -      * coding.c (code_convert_region): When we need more GAP for
 -      conversion, pay attention to the case that coding->produced is not
 -      greater than coding->consumed.
 -
 -2002-10-07  Richard M. Stallman  <rms@gnu.org>
 -
 -      * unexelf.c (unexec): Redo 9/16 change, but only if IRIX6_5.
 -
 -2002-10-06  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macmenu.c (mac_menu_show): Add j to count menu items; match
 -      menu_item_selection to it to find selected item.
 -
 -2002-10-06  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (XTread_socket): Fix from 2002-10-03 didn't cover all
 -      cases.  The correct fix is to pass ReparentNotify to Xt.
 -      The shell widget interprets ConfigureNotify differently depending
 -      on if it has been reparented or not.
 -
 -2002-10-05  Markus Rost  <rost@math.ohio-state.edu>
 -
 -      * editfns.c (Fformat_time_string): Doc fix.
 -
 -2002-10-05  John Paul Wallington  <jpw@shootybangbang.com>
 -
 -      * fns.c (Flength): Doc fix.
 -
 -2002-10-04  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (keyremap): New struct.
 -      (read_key_sequence): Use it: globally replace keytran_foo with
 -      keytran.foo and fkey_foo with fkey.foo.  Rename temp vars
 -      keytran_next and fkey_next to just `next'.
 -
 -2002-10-04  Steven Tamm  <steventamm@mac.com>
 -
 -      * macterm.c (keycode_to_xkeysym_table): Change return to be
 -      treated like an X keysym.
 -
 -2002-10-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.c (XTread_socket): For ConfigureNotify, with x and y == 0,
 -      and USE_MOTIF, call XTranslateCoordinates to get the real x and y.
 -      This is to also handle x/y changes that occur because of a resize.
 -
 -2002-10-02  John Paul Wallington  <jpw@shootybangbang.com>
 -
 -      * frame.c (Vdelete_frame_functions): New variable.
 -      (syms_of_frame): Initialize and defvar it.
 -      (Fdelete_frame): Use it instead of delete-frame-hook.  Don't run
 -      it when frame's `tooltip' parameter is non-nil.
 -
 -      * xfns.c (x_create_tip_frame): Set `tooltip' frame parameter to t.
 -
 -      * w32fns.c (x_create_tip_frame): Likewise.
 -
 -      * macfns.c (x_create_tip_frame): Likewise.
 -
 -2002-09-30  Kenichi Handa  <handa@m17n.org>
 -
 -      * xterm.c (x_encode_char): For DIM=1 charset, set ccl->reg[2] to
 -      -1 before calling ccl_driver.
 -
 -      * coding.c (decode_coding_emacs_mule): Check coding->cmp_data.
 -      Only when it is non-nil, handle composition sequence.
 -      (setup_coding_system) <0>: Don't force composition handling.
 -
 -      * Makefile.in (lisp, shortlisp): Add utf-16.elc.
 -
 -2002-09-29  Richard M. Stallman  <rms@gnu.org>
 -
 -      * search.c (Freplace_match): Adjust match data for the substitution
 -      just made in the buffer.
 -
 -      * xdisp.c (STOP_POLLING, RESUME_POLLING): New macros.
 -      (redisplay_internal): Use them.  Do RESUME_POLLING at end of function.
 -
 -2002-09-27  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (STOP_POLLING, RESUME_POLLING): New macros.
 -      (read_char): Use them.  Do all exits thru the end of the function.
 -
 -2002-09-27  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * xfaces.c (try_font_list): Pay attention to the case that FAMILY
 -      is nil.
 -
 -2002-09-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * regex.h (__restrict_arr): Don't define if already defined.
 -
 -      * coding.c (run_pre_post_conversion_on_str):
 -      Save and restore Vdeactivate_mark.
 -
 -2002-09-26  John Paul Wallington  <jpw@shootybangbang.com>
 -
 -      * minibuf.c (Fminibufferp): Add an optional `buffer' argument.
 -
 -2002-09-26  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * xfaces.c (try_font_list): New arg PREFER_FACE_FAMILY.  If it is
 -      nonzero, try face's family at first.  Otherwise try FAMILY at first.
 -      (choose_face_font): If C is a single byte char or latin-1, call
 -      try_font_list with PREFER_FACE_FAMILY 1.
 -
 -2002-09-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (select_window_1): Don't select frame.
 -      Set frame's selected window only when frame itself is selected.
 -      (Fselect_window): Doc fix.
 -
 -2002-09-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * process.c (make-network-process): Doc fix (there is no
 -      network-server-log-function hook).
 -
 -2002-09-18  Richard M. Stallman  <rms@gnu.org>
 -
 -      * print.c (print): Clear out the unused parts of Vprint_number_table.
 -      (syms_of_print): Doc fix for `print-number-table'.
 -
 -      * unexelf.c (unexec): Undo previous change.
 -
 -2002-09-17  Andreas Schwab  <schwab@suse.de>
 -
 -      * m/alpha.h [LINUX]: Don't define DATA_START.
 -
 -2002-09-16  Dave Love  <fx@gnu.org>
 -
 -      * unexelf.c (unexec): Deal with .got, reinstating change from
 -      25-08-1999.
 -
 -2002-09-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/sol2-6.h (UNEXEC): Comment out definition.
 -
 -      * unexsol.c (unexec): Don't downcase first letter of error msg.
 -
 -      * xfaces.c (Fcolor_supported_p): Just one arg is required.
 -
 -2002-09-12  Markus Rost  <rost@math.ohio-state.edu>
 -
 -      * unexsol.c: Include buffer.h, charset.h, coding.h.
 -
 -2002-09-11  Richard M. Stallman  <rms@gnu.org>
 -
 -      * unexsol.c: Don't use report_file_error; do it by hand
 -      using dlerror.
 -
 -      * process.c (wait_reading_process_input, both versions):
 -      Before calling turn_on_atimers, call stop_polling.
 -
 -      * emacs.c (syms_of_emacs) <command-line-args>: Doc fix.
 -
 -      * xdisp.c (try_scrolling): If after make_cursor_line_fully_visible
 -      we go to too_near_end, call clear_glyph_matrix.
 -      (redisplay_window): After make_cursor_line_fully_visible,
 -      call clear_glyph_matrix and bypass `goto done'.
 -
 -      * xfns.c (x_report_frame_params): If FRAME_SCROLL_BAR_PIXEL_WIDTH is 0
 -      and we have non-toolkit scroll bars, return nil for scroll-bar-width.
 -
 -2002-09-10  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Fdo_auto_save): Catch error making directory.
 -      Only call push_message if we need to.
 -      At the same time, make an unwind-protect to pop it.
 -      Rename local message_p to old_message_p.
 -      (do_auto_save_make_dir, do_auto_save_eh): New functions.
 -      (do_auto_save_unwind): Don't call pop_message.
 -
 -      * lisp.h (pop_message_unwind): Renamed from push_message_unwind.
 -
 -      * keyboard.c (Fexecute_extended_command): Use pop_message_unwind.
 -
 -      * alloc.c (Fgarbage_collect): Use pop_message_unwind.
 -
 -      * xdisp.c (pop_message_unwind): Renamed from push_message_unwind.
 -
 -2002-09-10  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * regex.c (DISCARD_FAILURE_REG_OR_COUNT): Delete.
 -      (CHECK_INFINITE_LOOP): Don't pop anything: just set `cycle' to 1.
 -      (re_match_2_internal): Be more careful with infinite loops.
 -
 -2002-09-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * macros.c (end_kbd_macro): New function.
 -      (Fend_kbd_macro): Use it.
 -
 -      * macros.h (end_kbd_macro): Declare extern.
 -
 -      * keyboard.c (Fdiscard_input): If defining keyboard macro,
 -      end and save it instead of discarding it.
 -
 -2002-09-09  Markus Rost  <rost@math.ohio-state.edu>
 -
 -      * s/sol2-6.h: Fix typo.  Add comment.
 -
 -2002-09-09  Richard M. Stallman  <rms@gnu.org>
 -
 -      * regex.c (regnum_t): Use signed int, not unsigned int.
 -
 -      * s/sol2-6.h: New file.
 -
 -      * s/sol2-5.h (UNEXEC): Definition deleted.
 -
 -2002-09-08  Kim F. Storm  <storm@cua.dk>
 -
 -      * macros.c (executing_macro_index): Change type to EMACS_INT.
 -      (syms_of_macros): DEFVAR_INT it (needed by kmacro).
 -
 -      * macros.h (executing_macro_index): Change type to EMACS_INT.
 -
 -2002-09-06  Richard M. Stallman  <rms@gnu.org>
 -
 -      * casetab.c (set_case_table): Make canon table point to eqv table.
 -
 -2002-09-06  Juanma Barranquero  <lektu@terra.es>
 -
 -      * coding.c (syms_of_coding): Fix spacing.
 -
 -      * composite.c (Fcompose_region_internal)
 -      (Fcompose_string_internal): Likewise.
 -
 -      * data.c (Flsh): Likewise.
 -
 -      * fontset.c (Fset_fontset_font): Likewise.
 -
 -      * macfns.c (Fx_server_max_request_size): Likewise.
 -
 -      * w16select.c (syms_of_win16select): Likewise.
 -
 -      * w32select.c (syms_of_w32select): Likewise.
 -
 -      * xselect.c (syms_of_xselect): Likewise.
 -
 -2002-09-05  Richard M. Stallman  <rms@gnu.org>
 -
 -      * regex.c (set_image_of_range_1): In no-TRANSLATE case,
 -      call EXTEND_RANGE_TABLE and return a proper value.
 -      (set_image_of_range): Don't call set_image_of_range_1
 -      if no TRANSLATE or if range includes all of Latin-1.
 -      Only call it for the Latin-1 part of the range.
 -      For other cases, make two separate ranges,
 -      one for the original specified characters and one for
 -      their case-conversions.
 -
 -2002-09-04  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/sol2-5.h (UNEXEC): Use unexsol.o.
 -
 -      * window.c (displayed_window_lines): Correct for one-off bug
 -      in HEIGHT on non-window displays.
 -
 -      * regex.c (set_image_of_range_1): New function.
 -      (set_image_of_range): Use set_image_of_range_1 for Latin-1.
 -      Return a value to indicate running out of memory.
 -      (SET_RANGE_TABLE_WORK_AREA): Check value from set_image_of_range.
 -      (extend_range_table_work_area): New subroutine.
 -      (EXTEND_RANGE_TABLE): Replaces EXTEND_RANGE_TABLE_WORK_AREA.
 -      Different calling conventions, and used from set_image_of_range{,_1}.
 -      (IMMEDIATE_QUIT_CHECK): Definitions moved.
 -
 -2002-09-04  Juanma Barranquero  <lektu@terra.es>
 -
 -      * makefile.w32-in: All dependencies updated.
 -
 -2002-09-01  Richard M. Stallman  <rms@gnu.org>
 -
 -      * unexsol.c: New file.
 -
 -      * xfns.c (Qbox): Declare external, don't define.
 -
 -      * xdisp.c (redisplay_window) <force-start case>:
 -      If point is on semi-visible last line, reposition
 -      it at previous line.
 -
 -      * alloc.c (display_malloc_warning): Use display-warning.
 -      (malloc_warning_1): Function deleted.
 -
 -      * alloc.c [ALLOC_DEBUG]: #undef INLINE.
 -
 -      * lread.c (read1): Handle #! by skipping the line.
 -
 -2002-08-31  Richard M. Stallman  <rms@gnu.org>
 -
 -      * Makefile.in (TEMACS_LDFLAGS): Renamed from ALL_LDFLAGS.
 -      Don't include LDFLAGS.
 -      (temacs): Pass LDFLAGS separately, and not via YMF_PASS_LDFLAGS.
 -
 -2002-08-31  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * xdisp.c (get_window_cursor_type): Don't use x_highlight_frame
 -      member of x_display_info unless we compile for some window system.
 -
 -2002-08-31  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (Valternate_cursor_type, Qalternate_cursor_type): Removed.
 -      (get_window_cursor_type): Don't use them.
 -      (syms_of_xdisp): Remove intern, staticpro, and defvar for them.
 -
 -2002-08-30  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * xdisp.c (get_next_display_element): Fix previous change.
 -
 -2002-08-30  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (expose_overlaps): New function (merge code from xterm.c).
 -      (expose_window): Use it to fix the display of overlapping
 -      rows (merge code from xterm.c).
 -
 -      * macfns.c (Qbox): Add extern declaration.
 -
 -2002-08-30  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32fns.c (Qbox): Make extern.
 -      (syms_of_w32fns): Remove initialization of Qbox.
 -
 -2002-08-30  Rune Kleveland  <runekl@viewpoint.no>  (tiny change)
 -
 -      * xfns.c (Fx_open_connection): Fix error message.
 -
 -2002-08-30  Kim F. Storm  <storm@cua.dk>
 -
 -      The following changes consolidates the handling of the cursor
 -      type in xdisp.c, moving duplicate code and functionality from
 -      xfns.c, xterm.c, w32fns.c, w32term.c, macfns.c, and macterm.c.
 -
 -      * frame.h (enum text_cursor_kinds): Consolidated here.
 -      Added DEFAULT_CURSOR value.
 -      (struct frame) <desired_cursor, cursor_width>
 -      <blink_off_cursor, blink_off_cursor_width>: New fields.
 -      Consolidated from output_x, output_w32 and output_mac structs.
 -      (FRAME_DESIRED_CURSOR, FRAME_CURSOR_WIDTH, FRAME_BLINK_OFF_CURSOR)
 -      (FRAME_BLINK_OFF_CURSOR_WIDTH): Macros consolidated here.
 -
 -      * xdisp.c (Qbar, Qhbar, Qbox, Qhollow, Vblink_cursor_alist):
 -      Variables consolidated here.
 -      (Valternate_cursor_type, Qalternate_cursor_type): New variables.
 -      (Vcursor_in_non_selected_windows): Renamed from
 -      cursor_in_non_selected_windows and changed to Lisp_Object.
 -      (syms_of_xdisp): Define and staticpro new and moved variables.
 -      (get_specified_cursor_type): Renamed from x_specified_cursor_type;
 -      consolidated here.  Recognize Qhollow setting.
 -      (set_frame_cursor_types): New function to set frame cursor types
 -      based on the frame parameters.
 -      (get_window_cursor_type): New function to calculate new cursor
 -      type and width for the specified window.  Based on duplicated
 -      code consolidated here.
 -      Enhancements: cursor-in-non-selected-windows may be a cursor type,
 -      check buffer-local alternate-cursor-type and blink-cursor-alist
 -      before using built-in blink off methods.
 -
 -      * dispextern.h (cursor_in_non_selected_windows): Extern removed.
 -
 -      * lisp.h (Qcursor_in_non_selected_windows): Extern removed.
 -      (get_specified_cursor_type, get_window_cursor_type)
 -      (set_frame_cursor_types): Added prototypes.
 -
 -      * macfns.c (x_specified_cursor_type): Removed.
 -      (x_set_cursor_type): Use set_frame_cursor_types.
 -      (Qbar, Qbox): Removed.
 -      (syms_of_macfns): Don't intern or staticpro them.
 -
 -      * macterm.c (x_specified_cursor_type): Remove prototype.
 -      (x_draw_bar_cursor): Use FRAME_CURSOR_WIDTH.
 -      (x_display_and_set_cursor): Use get_window_cursor_type.
 -      Remove unused local variables cursor_non_selected, active_cursor.
 -      Redraw cursor if hbar cursor width changes.
 -      (make_mac_frame): Set FRAME_DESIRED_CURSOR.
 -
 -      * macterm.h (enum text_cursor_kinds): Removed.
 -      (struct output_mac) <current_cursor, desired_cursor, cursor_width>
 -      <blink_off_cursor, blink_off_cursor_width>: Members removed.
 -      (FRAME_DESIRED_CURSOR): Macro removed.
 -
 -      * w32fns.c (Vblink_cursor_alist): Removed.
 -      (Qbar, Qhbar, Qbox, Qhollow): Removed.
 -      (syms_of_w32fns): Don't intern, staticpro, or define them.
 -      (x_specified_cursor_type): Removed.
 -      (x_set_cursor_type): Use set_frame_cursor_types.
 -
 -      * w32term.c (x_specified_cursor_type): Remove prototype.
 -      (x_draw_bar_cursor): Use FRAME_CURSOR_WIDTH.
 -      (x_display_and_set_cursor): Use get_window_cursor_type.
 -      Remove unused local variables cursor_off_state.
 -      Redraw cursor if hbar cursor width changes.
 -      Changed all occurrences of w32_highlight_frame to x_highlight_frame.
 -
 -      * w32term.h (enum text_cursor_kinds): Removed.
 -      (struct output_w32) <current_cursor, desired_cursor, cursor_width>
 -      <blink_off_cursor, blink_off_cursor_width>: Members removed.
 -      (FRAME_DESIRED_CURSOR, FRAME_CURSOR_WIDTH, FRAME_BLINK_OFF_CURSOR)
 -      (FRAME_BLINK_OFF_CURSOR_WIDTH): Macros removed.
 -      (struct w32_display_info) <x_highlight_frame>: Renamed member from
 -      w32_highlight_frame.
 -
 -      * xfns.c (Vblink_cursor_alist): Removed.
 -      (Qbar, Qhbar, Qbox, Qhollow): Removed.
 -      (syms_of_xfns): Don't intern, staticpro, or define them.
 -      (x_specified_cursor_type): Removed.
 -      (x_set_cursor_type): Use set_frame_cursor_types.
 -
 -      * xterm.c (x_specified_cursor_type): Remove prototype.
 -      (x_draw_bar_cursor): Use FRAME_CURSOR_WIDTH.
 -      (x_display_and_set_cursor): Use get_window_cursor_type.
 -      Remove unused local variables cursor_off_state.
 -      Redraw cursor if hbar cursor width changes.
 -
 -      * xterm.h (enum text_cursor_kinds): Removed.
 -      (struct output_x) <current_cursor, desired_cursor, cursor_width>
 -      <blink_off_cursor, blink_off_cursor_width>: Members removed.
 -      (FRAME_DESIRED_CURSOR, FRAME_CURSOR_WIDTH, FRAME_BLINK_OFF_CURSOR)
 -      (FRAME_BLINK_OFF_CURSOR_WIDTH): Macros removed.
 -      (x_specified_cursor_type): Remove prototype.
 -
 -2002-08-28  Richard M. Stallman  <rms@gnu.org>
 -
 -      * w32fns.c (x_set_cursor_type): Set FRAME_BLINK_OFF_CURSOR and
 -      FRAME_BLINK_OFF_CURSOR_WIDTH using defaults and Vblink_cursor_alist.
 -      (Vblink_cursor_alist): New variable.
 -      (syms_of_w32fns): Initialize and defvar it.
 -      (x_specified_cursor_type): Recognize Qbox for filled box.
 -      Exceptions are hollow boxes.
 -      (Qbox, Qhollow): New variables.
 -      (syms_of_w32fns): Initialize and staticpro them.
 -
 -      * w32term.h (FRAME_BLINK_OFF_CURSOR, FRAME_BLINK_OFF_CURSOR_WIDTH):
 -      New macros.
 -      (struct w32_output): New fields blink_off_cursor,
 -      blink_off_cursor_width.
 -      (FRAME_CURSOR_WIDTH): New macro.
 -
 -      * w32term.c (x_display_and_set_cursor): Use FRAME_BLINK_OFF_CURSOR
 -      and FRAME_BLINK_OFF_CURSOR_WIDTH for blinking cursor off.
 -
 -      * w32term.c (x_display_and_set_cursor): Check FRAME_CURSOR_WIDTH
 -      for bar cursor.
 -
 -      * w32term.c (expose_overlaps): New function.
 -      (expose_window): Use it to fix the display of overlapping rows.
 -
 -2002-08-28  Simon Josefsson  <jas@extundo.com>
 -
 -      * xfns.c (Fx_open_connection): Improve help when X connection
 -      fails, xhost is insecure and xauth is better.
 -
 -2002-08-28  Juanma Barranquero  <lektu@terra.es>
 -
 -      * makefile.w32-in: Add missing dependencies on w32term.h and
 -      composite.h.
 -
 -      * emacs.c (USAGE1): Add missing newline.
 -
 -2002-08-27  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * s/darwin.h [HAVE_LIBNCURSES]: Define HAVE_TERMINFO.
 -
 -2002-08-27  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xfns.c (x_set_cursor_type): Set FRAME_BLINK_OFF_CURSOR and
 -      FRAME_BLINK_OFF_CURSOR_WIDTH using defaults and Vblink_cursor_alist.
 -      (Vblink_cursor_alist): New variable.
 -      (syms_of_xfns): Initialize and defvar it.
 -      (x_specified_cursor_type): Recognize Qbox for filled box.
 -      Exceptions are hollow boxes.
 -      (Qbox, Qhollow): New variables.
 -      (syms_of_xfns): Initialize and staticpro them.
 -
 -      * xterm.h (FRAME_BLINK_OFF_CURSOR, FRAME_BLINK_OFF_CURSOR_WIDTH):
 -      New macros.
 -      (struct x_output): New fields blink_off_cursor, blink_off_cursor_width.
 -
 -      * xterm.c (x_display_and_set_cursor): Use FRAME_BLINK_OFF_CURSOR
 -      and FRAME_BLINK_OFF_CURSOR_WIDTH for blinking cursor off.
 -
 -      * emacs.c (main): Handle --script.
 -      (USAGE1): Mention --script.
 -      (standard_args): Define sort order for --script.
 -
 -2002-08-27  Gerd Moellmann  <gerd.moellmann@t-online.de>
 -
 -      * xdisp.c (redisplay_updating_p): Variable removed.
 -      (inhibit_free_realized_faces, Qinhibit_free_realized_faces):
 -      New variables.
 -      (init_iterator): Don't free realized faces if
 -      inhibit_free_realized_faces is set.
 -      (redisplay_internal): Bind Qinhibit_free_realized_faces to nil.
 -      (syms_of_xdisp): DEFVAR_BOOL inhibit-free-realized-faces,
 -      initialize Qinhibit_free_realized_faces.
 -
 -      * dispextern.h (PRODUCE_GLYPHS): Set inhibit_free_realized_faces
 -      when iterator is adding glyphs to a glyph matrix.
 -
 -2002-08-27  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * xdisp.c (get_next_display_element): In unibyte case, don't use
 -      octal form for such eight-bit characters that can be converted to
 -      multibyte char.
 -
 -2002-08-26  Kim F. Storm  <storm@cua.dk>
 -
 -      * frame.c (make_terminal_frame) [CANNOT_DUMP]: Initialize
 -      foreground and background colors.  From Joe Buehler.
 -
 -2002-08-26  Miles Bader  <miles@gnu.org>
 -
 -      * bytecode.c (Fbyte_code): Fsub1 can GC, so protect it.
 -
 -2002-08-25  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * emacs.c (main): Call init_mac_osx_environment if HAVE_CARBON is
 -      defined instead of MAC_OSX.
 -
 -      * s/darwin.h (select): Define select to sys_select only if
 -      HAVE_CARBON is defined.
 -      (HAVE_WORKING_VFORK): #undef it.  Define vfork to fork.
 -      (DONT_REOPEN_PTY): #def it.
 -
 -      * macterm.c (XTread_socket): Remove code to call
 -      SendEventToEventTarget for keys with command modifiers when
 -      mac_command_key_is_meta is nil.
 -
 -2002-08-24  Andreas Schwab  <schwab@suse.de>
 -
 -      * eval.c (Fdefvar): Fix last change.
 -
 -2002-08-23  Richard M. Stallman  <rms@gnu.org>
 -
 -      * eval.c (Fdefvar, Fdefconst, Fdefvaralias):
 -      Record variables in load history as (defvar . VAR).
 -      (Fdefvar): Don't record in load history if no initial value.
 -      (Qdefvar): New variable.
 -      (syms_of_eval): Init and staticpro it.
 -
 -      * lread.c (syms_of_lread): Doc fix.
 -      (build_load_history): Use Fmember to see if a definition
 -      is already in the Vload_history element.
 -
 -      * process.c (Fstart_process): Remove /: from program name.
 -
 -      * emacs.c (decode_env_path): Don't add /: if file name handler
 -      has a `safe-magic' property.
 -
 -      * callproc.c (Fcall_process): Remove /: from program name.
 -
 -2002-08-23  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * regex.c (PATFETCH): Remove the translating fetch.
 -      (PATFETCH_RAW): Rename to PATFETCH.
 -      (set_image_of_range): New fun.
 -      (SET_RANGE_TABLE_WORK_AREA): Use it.
 -      (regex_compile): Don't translate the pattern chars so eagerly.
 -      Only do it when inserting an `exactn' bytecode or when handling
 -      a char-range.
 -      (mutually_exclusive_p): Avoid empty statement.
 -
 -2002-08-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_window): Do not `goto try_to_scroll' when we
 -      end up on a partially visible line; this reverts a specific part
 -      of the 2002-07-07 change by Richard M. Stallman to "fix" a nasty
 -      display error which has been reported several times now.
 -      However it introduces the problem that changes was supposed to fix.
 -      See my comments in the source if you want to debug this further.
 -
 -2002-08-20  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * abbrev.c (Fexpand_abbrev): Fix for the multibyte case.
 -
 -2002-08-19  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * msdos.c (croak): Add `void' to definition.
 -
 -      * sysdep.c (request_sigio, unrequest_sigio) [MSDOS]:
 -      Don't define them, they are defined in msdos.c.
 -
 -      * mem-limits.h [MSDOS]: Declare etext.
 -
 -      * fileio.c (Ffile_name_directory) [DOS_NT]: Don't declare `beg'
 -      `const' since CORRECT_DIR_SEPS modifies its target.
 -
 -2002-08-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (Fclear_this_command_keys): Add optional arg
 -      KEEP-RECORD to avoid clearing lossage when we just want to clear
 -      the current key sequence (kmacro needs this).
 -
 -2002-08-19  Kenichi Handa  <handa@localhost>
 -
 -      * composite.c (run_composition_function): Call FUNC if it is fboundp.
 -
 -      * composite.h (COMPOSITION_MODIFICATION_FUNC): If PROP is not a
 -      cons, return Qnil.
 -
 -2002-08-17  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/sol2-5.h (BROKEN_SIGIO): Add #undef.
 -
 -      * sysdep.c [!VMS]: Include sys/files.h.
 -
 -      * editfns.c (save_restriction_restore): Defend from unchained marker.
 -
 -      * buffer.c (overlays_at): Handle extending vec uniformly.
 -      (overlays_in): Handle extending vec from length 0 as in overlays_at.
 -
 -2002-08-15  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * mac.c (init_mac_osx_environment): New function.
 -
 -      * emacs.c (main) [MAC_OSX]: Call init_mac_osx_environment.
 -
 -2002-08-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * macros.c (Fstart_kbd_macro): Added NO-EXEC argument to inhibit
 -      executing macro before appending to it (when used from Lisp).
 -      (Fexecute_kbd_macro): Added LOOPFUNC argument to supply function
 -      which is called prior to each iteration of macro (for kmacro.el).
 -      (Fend_kbd_macro, Fcall_last_kbd_macro): Likewise.
 -
 -      * lisp.h (Fexecute_kbd_macro): Update prototype.
 -
 -      * keyboard.c (Fcommand_execute): Update call to Fexecute_kbd_macro.
 -
 -2002-08-14  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * xselect.c (QUTF8_STRING): New variable.
 -      (symbol_to_x_atom): Pay attention to QUTF8_STRING.
 -      (x_atom_to_symbol): Likewise.
 -      (x_get_local_selection): New argument local_request.  If it is
 -      nonzero, call handler_fn with the second arg nil.
 -      (x_handle_selection_request): Call x_get_local_selection with
 -      local_request 0.
 -      (lisp_data_to_selection_data): Don't encode the string here.
 -      (Fx_get_selection_internal): Call x_get_local_selection with
 -      local_request 1.
 -      (syms_of_xselect): Intern and staticpro QUTF8_STRING.
 -
 -      * xterm.c (x_term_init): Initialize dpyinfo->Xatom_UTF8_STRING.
 -
 -      * xterm.h (struct x_display_info): New member Xatom_UTF8_STRING.
 -
 -2002-08-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * minibuf.c (Fminibufferp): New function.
 -      (syms_of_minibuf): Defsubr it.
 -      (Fminibuffer_prompt_end): Handle non-minibuffers specially.
 -
 -2002-08-13  Gerd Moellmann  <gerd.moellmann@t-online.de>
 -
 -      * coding.c (Funencodable_char_position): Lisp_Object/int mixup.
 -
 -2002-08-12  Richard M. Stallman  <rms@gnu.org>
 -
 -      * syswait.h: Only the include of sys/wait.h tests HAVE_SYS_WAIT_H.
 -      [!VMS] (WCOREDUMP, WEXITSTATUS, WIFEXITED, WIFSTOPPED, WIFSIGNALED)
 -      (WSTOPSIG, WTERMSIG): Define each one independently if not defined
 -      already.
 -
 -      * buffer.c (syms_of_buffer) <fill-column>: Doc fix.
 -
 -2002-08-11  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (XTmouse_position): Check wp with is_emacs_window.
 -      (Vmac_pass_command_to_system): New variable.
 -      (Vmac_pass_control_to_system): New variable.
 -      (do_mouse_moved): Check wp with is_emacs_window.
 -      (XTread_socket): Check window_ptr with is_emacs_window.
 -      Call FrontNonFloatingWindow instead of FrontWindow.  Send keydown
 -      events back to Mac Toolbox for processing, depending on values of
 -      Vmac_pass_command_to_system and Vmac_pass_control_to_system.
 -      (syms_of_macterm): DEFVAR_LISP Vmac_pass_command_to_system and
 -      Vmac_pass_control_to_system.
 -
 -2002-08-10  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * coding.c (unencodable_char_position): New function.
 -      (Funencodable_char_position): New function.
 -      (syms_of_coding): Defsubr Funencodable_char_position.
 -
 -2002-08-10  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * mac.c (sys_select) [MAC_OSX]: New function.
 -
 -      * macterm.c (MakeMeTheFrontProcess): New function.
 -      (mac_initialize): Call MakeMeTheFrontProcess.
 -
 -      * s/darwin.h: Define select to sys_select.
 -
 -2002-08-09  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (make_lispy_event): Test WINDOWSNT, not WINDOWS_NT.
 -
 -2002-08-09  Gerd Moellmann  <gerd.moellmann@t-online.de>
 -
 -      * xdisp.c (forward_to_next_line_start): Return 0 when reaching the
 -      end of the buffer.
 -
 -2002-08-08  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * coding.c (Ffind_operation_coding_system): Fix Lisp_Object/int mixup.
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 910000.
 -
 -2002-08-08  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * coding.c (Ffind_operation_coding_system): For write-region, if
 -      VISIT is a filename, make it the target.
 -
 -2002-08-07  Richard M. Stallman  <rms@gnu.org>
 -
 -      * alloc.c (mark_object): Detect long lists for debugging.
 -      (mark_object_loop_halt): New variable.
 -
 -      * s/hpux10.h (C_SWITCH_SYSTEM): #undef it.
 -
 -      * data.c (Fmake_variable_frame_local): Doc fix.
 -
 -2002-08-01  David Ponce  <david@dponce.com>
 -
 -      * w32menu.c (local_heap, local_alloc, local_free): New macros.
 -      (malloc_widget_value, free_widget_value)
 -      (w32_free_submenu_strings): Use them.
 -
 -      (push_submenu_start, push_submenu_end, push_left_right_boundary)
 -      (push_menu_pane, push_menu_item, single_keymap_panes)
 -      (single_menu_item, Fx_popup_menu, menubar_selection_callback)
 -      (single_submenu, set_frame_menubar)
 -      (w32_menu_show, w32_dialog_show): Use AREF, ASET, ASIZE.
 -
 -      (Fx_popup_menu): Don't show pop up menu until preceding one is
 -      actually cleaned up.  Moved UNGCPRO outside #ifdef HAVE_MENUS block.
 -
 -      * w32menu.c: Changes adapted from xmenu.c
 -      (set_frame_menubar): First parse all submenus,
 -      then make widget_value trees from them.
 -      Don't allocate any widget_value objects
 -      until we are done with the parsing.
 -      (parse_single_submenu): New function.
 -      (digest_single_submenu): New function.
 -      (single_submenu): Function deleted, replaced by those two.
 -
 -2002-08-04  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (XTread_socket): Check that FrontNonFloatingWindow
 -      returns a valid window pointer before proceeding for keyDown and
 -      autoKey events.
 -
 -2002-08-03  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (USE_CARBON_EVENTS): New macro.
 -      (macCtrlKey, macShiftKey, macMetaKey, macAltKey): New macros.
 -      (x_iconify_frame): Call CollapseWindow.
 -      (Vmac_reverse_ctrl_meta): New variable.
 -      (Vmac_wheel_button_is_mouse_2): New variable.
 -      (init_mac_drag_n_drop): New function.
 -      (mac_do_receive_drag): New function.
 -      (mac_handle_service_event): New function.
 -      (init_service_handler): New function.
 -      (mac_to_emacs_modifiers): New function.
 -      (mac_event_to_emacs_modifiers): New function.
 -      (mac_get_mouse_btn): New function.
 -      (mac_convert_event_ref): New function.
 -      (XTread_socket) [USE_CARBON_EVENTS]: Call ReceiveNextEvent,
 -      SendEventToEventTarget, mac_event_to_emacs_modifiers, and
 -      mac_get_mouse_btn.
 -      (mac_initialize): Call init_mac_drag_n_drop and init_service_handler.
 -
 -      * keyboard.c: Define Qmouse_wheel, mouse_wheel_syms, and
 -      lispy_mouse_wheel_names for MAC_OSX as well as for WINDOWS_NT.
 -      (kbd_buffer_get_event): Set used_mouse_menu for MENU_BAR_EVENT and
 -      TOOL_BAR_EVENT for MAC_OS as well.
 -      (make_lispy_event): Handle MOUSE_WHEEL_EVENT for MAC_OSX as well
 -      as for WINDOWS_NT.
 -      (syms_of_keyboard): Initialize Qmouse_wheel for MAC_OSX.
 -
 -      * termhooks.h (event_kind): Define MOUSE_WHEEL_EVENT also for MAC_OSX.
 -
 -2002-08-03  Gerd Moellmann  <gerd.moellmann@t-online.de>
 -
 -      * xdisp.c (forward_to_next_line_start): Fix a condition that
 -      lead to a newline being skipped.
 -
 -2002-08-02  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * mac.c (syms_of_mac): Defsubr Sx_selection_exists_p.
 -
 -2002-08-01  Richard M. Stallman  <rms@gnu.org>
 -
 -      * Makefile.in (SOME_MACHINE_OBJECTS): Add fontset.o.
 -
 -2002-07-31  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macfns.c: #undef init_process before #define-ing it.
 -
 -      * s/darwin.h: Define MAC_OS, SYMS_SYSTEM, and OTHER_FILES only if
 -      HAVE_CARBON is defined.
 -
 -2002-07-31  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xmenu.c (set_frame_menubar): First parse all submenus,
 -      then make widget_value trees from them.
 -      Don't allocate any widget_value objects
 -      until we are done with the parsing.
 -      (parse_single_submenu): New function.
 -      (digest_single_submenu): New function.
 -      (single_submenu): Function deleted, replaced by those two.
 -
 -2002-07-30  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32proc.c (syms_of_ntproc): Fix docstring of
 -      `w32-get-true-file-attributes'.
 -
 -2002-07-28  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/hpux8.h (HPUX8): Define this before including hpux.h.
 -      (HAVE_SYS_WAIT_H): #define deleted; we let Autoconf decide.
 -
 -      * s/hpux.h (HAVE_SYS_WAIT_H): The #undef is conditional on HPUX8.
 -
 -      * keyboard.c (make_lispy_event):
 -      Use #ifdef to test USE_TOOLKIT_SCROLL_BARS.
 -      Explicitly clear up_modifier in event->modifiers.
 -
 -2002-07-27  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xterm.h (FRAME_CURSOR_WIDTH): New macro.
 -
 -      * xterm.c (x_display_and_set_cursor): Check FRAME_CURSOR_WIDTH
 -      for bar cursor.
 -
 -2002-07-26  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * coding.c (detect_coding_iso2022): While checking a byte sequence
 -      for CODING_CATEGORY_MASK_ISO_8_2, if we read one extra byte, check
 -      it in the normal loop.
 -
 -2002-07-24  Gerd Moellmann  <gerd.moellmann@t-online.de>
 -
 -      * xterm.c (expose_overlaps): New function.
 -      (expose_window): Use it to fix the display of overlapping rows.
 -
 -      * xdisp.c (unwind_redisplay): Clear redisplay_updating_p.
 -
 -2002-07-23  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * lisp.h (XPNTR): Use NO_UNION_TYPE version for union as well,
 -      since it only depends on XUINT.
 -
 -      * m/alpha.h (BITS_PER_LONG, BITS_PER_EMACS_INT, EMACS_INT,
 -      EMACS_UINT, SPECIAL_EMACS_INT, DATA_SEG_BITS,
 -      PNTR_COMPARISON_TYPE, VALBITS, MARKBIT, XINT, XUINT, XPNTR):
 -      Macros deleted.
 -
 -      * mem-limits.h (start_of_data): If DATA_START is defined, prefer
 -      its value over other approaches.
 -      * sysdep.c (start_of_data): Don't define the function if a macro
 -      form has been defined.
 -
 -2002-07-23  Gerd Moellmann  <gerd.moellmann@t-online.de>
 -
 -      * xdisp.c (redisplay_updating_p): New variable.
 -      (init_iterator): Don't free realized faces when
 -      redisplay_updating_p is set.
 -      (redisplay_internal): Set redisplay_updating_p while updating
 -      the display.
 -
 -2002-07-23  Richard M. Stallman  <rms@gnu.org>
 -
 -      * editfns.c (Fmessage): Treat "" like nil.
 -
 -2002-07-23  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * xdisp.c (face_before_or_after_it_pos):
 -      Call FETCH_MULTIBYTE_CHAR with byte postion, not char position.
 -
 -2002-07-22  Juanma Barranquero  <lektu@terra.es>
 -
 -      * callproc.c (init_callproc) [DOS_NT]:
 -      Initialize Vshared_game_score_directory to nil.
 -      (syms_of_callproc) [DOS_NT]: Likewise.
 -
 -2002-07-22  Gerd Moellmann  <gerd.moellmann@t-online.de>
 -
 -      * xdisp.c (display_line): Replace an abort with xassert.
 -
 -2002-07-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (redisplay_window): Don't test BEG_UNCHANGED
 -      and END_UNCHANGED when setting buffer_unchanged_p.
 -      Use current_matrix_up_to_date_p to decide whether to use
 -      try_cursor_movement.
 -
 -      * config.in (HAVE_SHARED_GAME_DIR): Undef deleted.
 -
 -      * epaths.in (PATH_GAME): New macro, edited by ../Makefile.in.
 -
 -      * callproc.c (init_callproc): Set up Vshared_game_score_directory.
 -      Set to nil if dir does not exist.
 -      (syms_of_callproc): Init unconditionally and simply.
 -
 -      * buffer.c (Fbuffer_list): Doc fix.
 -
 -2002-07-21  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * sysdep.c (end_of_text, end_of_data): Unused functions deleted.
 -
 -      * buffer.c (mmap_realloc): When shrinking, make sure number of
 -      pages to unmap is rounded towards zero.
 -
 -      * m/mips-siemens.h (XSETUINT, XSETPNTR): Unused macros deleted.
 -      (XSETINT): Deleted.
 -
 -      * m/att3b.h (XINT): Don't define.
 -      (VALBITS, VALMASK, XTYPE): Deleted.
 -      (DATA_SEG_BITS): Define.
 -      * m/gec63.h (VALBITS, VALAMASK, XTYPE, XSETTYPE, XPNTR, XSET,
 -      ARRAY_MARK_FLAG): Deleted.
 -      (DATA_SEG_BITS): Define.
 -      * m/pfa50.h (VALBITS, VALMASK, XTYPE): Deleted.
 -      (DATA_SEG_BITS): Define.
 -
 -2002-07-20  Richard M. Stallman  <rms@gnu.org>
 -
 -      * print.c (print_error_message): New args CONTEXT and CALLER.
 -      Calls changed.
 -
 -      * lisp.h (print_error_message): Declare new args.
 -
 -      * keyboard.c (cmd_error_internal): Pass Vsignaling_function
 -      and CONTEXT to print_error_message, don't print them here.
 -      For a Quit, don't use Vsignaling_function.
 -      Call message_log_maybe_newline.
 -
 -      * Makefile.in (xsmfns.o): Don't depend on lisp.h.
 -
 -2002-07-20  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (redisplay_window): Test MODIFF to set buffer_unchanged_p.
 -
 -2002-07-19  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * bytecode.c (struct byte_stack): Pointers into byte string now
 -      point to const.
 -      * callproc.c (Fcall_process): Make NEW_ARGV array hold pointer to
 -      const.
 -      * charset.h (BCOPY_SHORT): Source pointer now points to const.
 -      * coding.c (encode_eol, detect_coding, detect_eol):
 -      (decode_coding, encode_coding, detect_coding_system):
 -      Source strings now treated as const.
 -      (decode_coding_string, encode_coding_string): Use STRING_COPYIN to
 -      modify Lisp string contents.
 -      * coding.h (decode_coding, encode_coding, detect_coding,
 -      detect_eol): Declarations updated.
 -      * composite.c (compose_chars_in_text): Treat Lisp string contents
 -      as const.
 -      * dispnew.c (safe_bcopy): Source pointer now points to const.
 -      * lisp.h (STRING_COPYIN): New macro.
 -      (detect_coding_system, safe_bcopy, temp_output_buffer_setup):
 -      (internal_with_output_to_temp_buffer): Declarations updated.
 -      * print.c (temp_output_buffer_setup):
 -      (internal_with_output_to_temp_buffer): Buffer name argument is now
 -      pointer to const.
 -      * sound.c (struct sound_device): Function pointer field "write"
 -      buffer argument now points to const.
 -      (vox_write): Buffer argument points to const.
 -      * syntax.c (Fstring_to_syntax, skip_chars): Treat Lisp string
 -      contents as const.
 -      * sysdep.c (emacs_write): Buffer pointer now const.
 -      * term.c (encode_terminal_code): Buffer pointer now const.
 -      * xfaces.c (may_use_scalable_font_p): Argument now points to const.
 -      (x_face_list_fonts, x_update_menu_appearance):
 -      (hash_string_case_insensitive): Treat Lisp string contents as const.
 -
 -2002-07-19  Juanma Barranquero  <lektu@terra.es>
 -
 -      * xdisp.c (syms_of_xdisp): Remove redundant deprecation info.
 -
 -      * fileio.c (syms_of_fileio): Likewise.
 -      (Ffile_name_as_directory): Fix argument name in docstring.
 -      (file_name_as_directory): Use literal '/' instead of DIRECTORY_SEP.
 -
 -2002-07-18  Richard M. Stallman  <rms@gnu.org>
 -
 -      * data.c (Fdefalias): Doc fix.
 -
 -2002-07-17  Dave Love  <fx@gnu.org>
 -
 -      * intervals.h (text_property_stickiness): Use P_.
 -
 -      * ccl.c: Remove `emacs' conditionals.
 -      (ccl_backtrace_table): Fix size spec.
 -      (ccl_driver): Fix type errors.
 -
 -2002-07-16  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * alloc.c (xstrdup, make_string, make_unibyte_string)
 -      (make_multibyte_string, build_string): String pointer args now
 -      point to const.
 -      * charset.c (find_charset_in_text, c_string_width):
 -      (chars_in_text, multibyte_chars_in_text, parse_str_as_multibyte):
 -      * fileio.c (report_file_error):
 -      * insdel.c (copy_text, count_size_as_multibyte, insert_1):
 -      (count_combining_before, count_combining_after, insert_1_both):
 -      (insert, insert_and_inherit, insert_string):
 -      (insert_before_markers, insert_before_markers_and_inherit):
 -      * lread.c (intern, oblookup, hash_string):
 -      * minibuf.c (temp_echo_area_glyphs):
 -      * search.c (fast_c_string_match_ignore_case):
 -      * sysdep.c (emacs_open, set_file_times):
 -      * xfaces.c (xstricmp):
 -      * xdisp.c (store_frame_title, string_char_and_length):
 -      (message_dolog, message2, message2_nolog, set_message): Likewise.
 -      (set_message_1): Cast message string argument to const pointer.
 -      * editfns.c (general_insert_function): Insertion function now
 -      takes pointer to const for input data.
 -      * charset.h (find_charset_in_text, c_string_width):
 -      (parse_str_as_multibyte): Declarations updated.
 -      * dispextern.h (xstricmp): Declaration updated.
 -      * lisp.h (chars_in_text, multibyte_chars_in_text, copy_text):
 -      (count_size_as_multibyte, count_combining_before):
 -      (count_combining_after, insert_1, insert_1_both, message_dolog):
 -      (insert, insert_and_inherit, insert_before_markers)
 -      (insert_before_markers_and_inherit, set_message, message2):
 -      (message2_dolog, build_string, make_string, make_unibyte_string):
 -      (make_multibyte_string, intern, oblookup, report_file_error):
 -      (fast_c_string_match_ignore_case, temp_echo_area_glyphs):
 -      (emacs_open, xstrdup): Declarations updated.
 -      * systime.h (set_file_times): Declaration updated.
 -
 -      * charset.c (find_charset_in_text, lisp_string_width): Use const
 -      for pointer to lisp string data.
 -      * charset.h (FETCH_STRING_CHAR_ADVANCE):
 -      (FETCH_STRING_CHAR_ADVANCE_NO_CHECK):
 -      * coding.c (Ffind_coding_systems_region_interval):
 -      * fileio.c (Ffile_name_directory, Ffile_name_nondirectory):
 -      (Fmake_directory_internal, Fdelete_directory):
 -      (Ffile_name_absolute_p, Fwrite_region, double_dollars):
 -      * fontset.c (font_family_registry, fs_query_fontset):
 -      (list_fontsets):
 -      * frame.c (Fframe_parameter):
 -      * keyboard.c (cmd_error_internal):
 -      * keymap.c (Fdescribe_buffer_bindings):
 -      * lread.c (complete_filename_p, openp):
 -      * minibuf.c (Fminibuffer_complete_word):
 -      * xdisp.c (string_pos_nchars_ahead, init_from_display_pos):
 -      (face_before_or_after_it_pos, next_element_from_string):
 -      (get_overlay_arrow_glyph_row, display_mode_element):
 -      (decode_mode_spec_coding):
 -      * xterm.c (same_x_server): Likewise.
 -
 -      * buffer.c (reset_buffer_local_variables): Delete "#if 0"
 -      settings of non-existent fields.
 -
 -      * editfns.c (Fstring_to_char): Don't use XSTRING/XSETSTRING to
 -      copy a lisp value.
 -
 -      * lread.c (Fintern_soft): Use string macros instead of
 -      Lisp_String fields.
 -      * keyboard.c (echo_char, parse_modifiers_uncached):
 -      (parse_solitary_modifier, Fexecute_extended_command): Likewise.
 -      * textprop.c (validate_interval_range, interval_of): Likewise.
 -
 -      * fontset.c (Fset_fontset_font): Use SDATA instead of XSTRING()->data.
 -
 -      * charset.h (FETCH_STRING_CHAR_ADVANCE)
 -      (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): Use SBYTES instead of
 -      XSTRING()->size_byte.
 -
 -      * lisp.h (SDATA, SREF): Produce rvalue.
 -      (SSET): New macro.
 -      * alloc.c (make_event_array): Use SSET for storing into a string.
 -      * buffer.c (Fother_buffer): Use SREF when retrieving a byte from
 -      a string.
 -      * casefiddle.c (casify_object): Use SSET.
 -      * charset.h (FETCH_STRING_CHAR_ADVANCE)
 -      (FETCH_STRING_CHAR_ADVANCE_NO_CHECK): Use SDATA when getting
 -      address of string contents.
 -      * data.c (Faref): Use SDATA.
 -      (Faset): Use SDATA, SSET.
 -      * dired.c (directory_files_internal): Use SSET.
 -      * fileio.c (Fmake_symbolic_link, Fexpand_file_name): Use SSET.
 -      (Fread_file_name): Use SREF, SSET.
 -      * fns.c (concat): Use SSET.
 -      (concat, Fdelete): Use SDATA.
 -      * insdel.c (insert_from_string_1): Use SDATA.
 -      * keyboard.c (Fevent_convert_list): Use SREF.
 -      * lread.c (Fload): Use SDATA, SSET.
 -      * macfns.c (validate_x_resource_name): Use SSET.
 -      * process.c (status_message): Use SSET.
 -      * search.c (wordify): Use SDATA.
 -      (Freplace_match): Use SREF.
 -      * w32fns.c (validate_x_resource_name): Use SSET.
 -      * xfns.c (validate_x_resource_name): Use SSET.
 -      * xterm.c (x_catch_errors, x_clear_errors): Use SSET.
 -
 -2002-07-16  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/hpux11.h (USG_SUBTTY_WORKS): Defined.
 -
 -      * xdisp.c (reconsider_clip_changes):
 -      Don't test prevent_redisplay_optimizations_p.
 -      (redisplay_internal): Test prevent_redisplay_optimizations_p
 -      along with clip_changed in some cases.
 -      (try_window_id): Likewise.
 -      (redisplay_window): New local var buffer_unchanged_p.
 -
 -      * keyboard.c (cmd_error) [HAVE_X_WINDOWS]: Maybe call cancel_houglass.
 -
 -      * process.c (create_process): Test USG_SUBTTY_WORKS.
 -      (process_send_signal): Clean up handling of GID.
 -      Detect errors in ioctls meant to set GID.
 -
 -      * window.c (temp_output_buffer_show):
 -      Don't set prevent_redisplay_optimizations_p.
 -
 -2002-07-15  Juanma Barranquero  <lektu@terra.es>
 -
 -      * eval.c (Fdefvaralias): Add docstring argument.
 -
 -2002-07-15  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * lisp.h (STRING_INTERVALS): Produce rvalue.
 -      (STRING_SET_INTERVALS): New macro.
 -      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Use it.
 -      * fns.c (Fstring_as_multibyte): Likewise.
 -      * intervals.c (balance_possible_root_interval, delete_interval)
 -      (create_root_interval, copy_intervals_to_string): Likewise.
 -      * textprop.c (set_text_properties): Likewise.  Use NULL_INTERVAL
 -      instead of 0.
 -
 -2002-07-14  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * lisp.h (STRING_SET_CHARS): New macro.
 -      (SCHARS, SBYTES): Produce rvalues.
 -      * dired.c (directory_files_internal): Use STRING_SET_CHARS.
 -      * fns.c (concat): Likewise.
 -      * lread.c (read_vector): Likewise.
 -
 -      * lisp.h (SMBP): Delete.  All uses changed to STRING_MULTIBYTE.
 -      (STRING_SET_UNIBYTE): New macro.
 -      (SET_STRING_BYTES): Delete.  Callers (all of which supplied a
 -      length of -1) changed to use STRING_SET_UNIBYTE.
 -      * abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c,
 -      casefiddle.c, category.c, ccl.c, charset.c, charset.h, coding.c,
 -      composite.c, data.c, dired.c, dispnew.c, disptab.h, doc.c,
 -      dosfns.c, editfns.c, emacs.c, eval.c, fileio.c, filelock.c, fn.c,
 -      fontset.c, frame.c, indent.c, insdel.c, intervals.c, keyboard.c,
 -      keymap.c, lread.c, mac.c, macfns.c, macmenu.c, macterm.c,
 -      minibuf.c, msdos.c, print.c, process.c, search.c, sound.c,
 -      sunfns.c, syntax.c, syntax.h, sysdep.c, textprop.c, undo.c,
 -      w16select.c, w32.c, w32fns.c, w32menu.c, w32proc.c, w32select.c,
 -      w32term.c, window.c, xdisp.c, xfaces.c, xfns.c, xmenu.c,
 -      xselect.c, xsmfns.c, xterm.c: Most uses of XSTRING combined with
 -      STRING_BYTES or indirection changed to SCHARS, SBYTES,
 -      STRING_INTERVALS, SREF, SDATA; explicit size_byte references left
 -      unchanged for now.
 -
 -2002-07-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (command_loop_1): Invert check on Vmemory_full.
 -
 -2002-07-12  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Fwrite_region): Doc fix.
 -
 -      * print.c (print_error_message): Don't handle Vsignaling_function here.
 -
 -      * keyboard.c (cmd_error_internal): Handle Vsignaling_function here.
 -      (command_loop_1): Avoid certain actions after memory-full error.
 -
 -      * eval.c (Fsignal): Don't call cancel_hourglass.
 -      For a memory-full error, don't call Vsignal_hook_function
 -      and don't set Vsignaling_function.
 -
 -      * process.c (process_send_signal): Add abort call.
 -
 -2002-07-11  Markus Rost  <rost@math.ohio-state.edu>
 -
 -      * keymap.c (Fkey_binding): Fix typo.
 -
 -2002-07-11  Richard M. Stallman  <rms@gnu.org>
 -
 -      * alloc.c (Vmemory_full): New variable.
 -      (Vmemory_signal_data): Rename from memory_signal_data.
 -      Uses changed.
 -      (syms_of_alloc): Defvar them.
 -      (memory_full, buffer_memory_full): Set Vmemory_full.
 -
 -      * lisp.h (Vmemory_full): Add declaration.
 -      (current_column, indented_beyond_p): Change declaration.
 -
 -      * indent.c (last_known_column): Declare as double, not float.
 -      (current_column, current_column_1, string_display_width)
 -      (position_indentation): Return `double'.
 -      (indented_beyond_p): Arg `column' is `double'.  Callers changed.
 -
 -      * xdisp.c (message_dolog): Do nothing if Vmemory_full is non-nil.
 -      (back_to_previous_visible_line_start)
 -      (reseat_at_next_visible_line_start, next_element_from_buffer):
 -      Use `double', not `float', when calling indented_beyond_p.
 -
 -      * s/hpux11.h (BROKEN_SA_RESTART): Define.
 -
 -      * sysdep.c (sys_signal): Test BROKEN_SA_RESTART.
 -
 -2002-07-11  Juanma Barranquero  <lektu@terra.es>
 -
 -      * alloc.c, buffer.c, bytecode.c, callint.c, callproc.c, coding.c,
 -      * composite.c, dired.c, dispnew.c, editfns.c, emacs.c, eval.c,
 -      * fileio.c, fns.c, insdel.c, keyboard.c, keymap.c, lread.c, macfns.c,
 -      * macmenu.c, macros.c, minibuf.c, print.c, process.c, sound.c,
 -      * textprop.c, w32fns.c, w32menu.c, window.c, xfaces.c, xfns.c,
 -      * xmenu.c, xselect.c, xterm.c: Use SPECPDL_INDEX wherever makes sense.
 -
 -2002-07-10  Juanma Barranquero  <lektu@terra.es>
 -
 -      * lisp.h (SPECPDL_INDEX): Rename from BINDING_STACK_SIZE.
 -      All callers changed.
 -
 -2002-07-09  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * data.c (Fdefalias): Add an optional `docstring' argument.
 -      (set_internal, Fsetq_default): Use XCAR/XCDR.
 -
 -      * composite.c (HASH_VALUE, HASH_KEY):
 -      * ccl.c (HASH_VALUE): Remove (it's in lisp.h now).
 -
 -2002-07-09  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * callproc.c (Fcall_process): Fix previous change.
 -
 -2002-07-07  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * minibuf.c (Ftry_completion, Fall_completions, Ftest_completion):
 -      Add support for hash-tables.
 -      (Ftry_completion): Return t even if the string appears multiple times.
 -
 -      * fns.c (Fnconc): Use XCDR.
 -      (Fprovide): Use CONSP and XCDR.
 -      (HASH_KEY, HASH_VALUE, HASH_NEXT, HASH_HASH, HASH_INDEX)
 -      (HASH_TABLE_SIZE): Delete: moved to lisp.h.
 -      (Fmake_hash_table): Accept `:size nil'.
 -      (Fmakehash): Delete: moved to subr.el.
 -      (syms_of_fns): Don't defsubr makehash.
 -
 -      * lisp.h (HASH_KEY, HASH_VALUE, HASH_NEXT, HASH_HASH, HASH_INDEX)
 -      (HASH_TABLE_SIZE): Move from fns.c.
 -
 -2002-07-07  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (make_cursor_line_fully_visible): Don't try short scrolls.
 -      Instead just return 0 when there is something to be done.
 -      (try_scrolling): If make_cursor_line_fully_visible returns 0,
 -      retry scrolling as if cursor were off the bottom.
 -      (try_cursor_movement): If make_cursor_line_fully_visible returns 0,
 -      return CURSOR_MOVEMENT_MUST_SCROLL.
 -      (redisplay_window): If make_cursor_line_fully_visible returns 0,
 -      go to try_to_scroll.
 -
 -      * buffer.c (Fbuffer_local_value): Store current value into its binding
 -      so we get the up-to-date value for the binding that is loaded.
 -
 -      * eval.c (Fdefmacro): Doc fix.
 -
 -2002-07-05  Dave Love  <fx@gnu.org>
 -
 -      * keyboard.c (read_key_sequence): Set initial_idleness_start_time
 -      correctly.
 -
 -      * ccl.c (Vtranslation_hash_table_vector, GET_HASH_TABLE)
 -      (HASH_VALUE, CCL_LookupIntConstTbl, CCL_LookupCharConstTbl): New.
 -      (ccl_driver): Add cases for CCL_LookupIntConstTbl,
 -      CCL_LookupCharConstTbl.
 -      (syms_of_ccl): Defvar translation-hash-table-vector.
 -
 -2002-07-05  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * xdisp.c: Remove unused variable `face'.
 -
 -2002-07-04  Juanma Barranquero  <lektu@terra.es>
 -
 -      * keyboard.c (post_command_idle_hook): Remove redundant (and inexact)
 -      obsolescence information.
 -
 -2002-07-03  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (x_list_fonts): Fix comment.  Cache fonts matching
 -      pattern.  Search cache first.
 -      (init_font_name_table): Also add entry for jisx0201.1976-0 coding
 -      for Japanese font.
 -      (XLoadQueryFont): Use it.
 -
 -2002-07-02  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keymap.c (Fdefine_key): Doc fix.
 -
 -      * xterm.c (x_term_init): Turn off polling around XtOpenDisplay.
 -
 -2002-07-02  Juanma Barranquero  <lektu@terra.es>
 -
 -      * keymap.c (syms_of_keymap): Fix typo.
 -
 -2002-07-01  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * s/darwin.h: Define POSIX_SIGNALS.
 -
 -      * macterm.c (do_ae_open_documents) [MAC_OSX]: Call FSpMakeFSRef
 -      and FSRefMakePath to convert FSSpec returned with Apple Event to
 -      Posix pathname.
 -      (mac_initialize) [TARGET_API_MAC_CARBON]:
 -      Call init_required_apple_events and disable the `Quit' menu item
 -      provided automatically by the Carbon Toolbox.
 -
 -2002-07-01  Dave Love  <fx@gnu.org>
 -
 -      * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal decl
 -      for K&R.
 -
 -      * xterm.c: Fix prototype for K&R.
 -
 -      * term.c (costs_set): Declare static, non-initialized for pcc.
 -
 -2002-07-01  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (timer_last_idleness_start_time): New variable.
 -      (timer_start_idle): Set that.
 -      (read_key_sequence): Use that to reset timer_idleness_start_time
 -      to previous value.
 -
 -      * window.c (Frecenter): With arg, set optional_new_start.
 -
 -      * xdisp.c (redisplay_internal): Make optional_new_start really work.
 -
 -      * minibuf.c (Fminibuffer_complete_and_exit): Move to end of
 -      buffer for completion.
 -
 -2002-06-29  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * xdisp.c (store_mode_line_string): Lisp_Object/int mixup.
 -
 -2002-06-28  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * keyboard.c (readable_filtered_events): New function that filters
 -      FOCUS_IN_EVENT depending on parameter.
 -      (readable_events): Calls readable_filtered_events, not filtering
 -      FOCUS_IN_EVENT.
 -      (get_filtered_input_pending): New function, filtering parameter passed
 -      to readable_filtered_events.
 -      (get_input_pending): Calls get_filtered_input_pending, not filtering
 -      FOCUS_IN_EVENT.
 -      (Finput_pending_p): Calls get_filtered_input_pending, DO filter
 -      FOCUS_IN_EVENT.
 -
 -      * xterm.h (struct x_output): Add focus_state.
 -
 -      * xterm.c (x_focus_changed): New function.
 -      (x_detect_focus_change): New function.
 -      (XTread_socket): Call x_detect_focus_change for FocusIn/FocusOut
 -      EnterNotify and LeaveNotify to track X focus changes.
 -
 -2002-06-28  Andreas Schwab  <schwab@suse.de>
 -
 -      * lisp.h: Remove duplicate declaration of code_convert_string_norecord.
 -
 -2002-06-27  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (mode_line_string_list, mode_line_string_face)
 -      (mode_line_string_face_prop): New variables.
 -      (store_mode_line_string): New function.
 -      (display_mode_element): Use store_mode_line_string to
 -      add mode-line string elements to mode_line_string_list
 -      when mode_line_string_list is non-nil.
 -      (Fformat_mode_line): Now returns propertized string by
 -      default.  New arg NO-PROPS to ignore properties.
 -      (decode_mode_spec): Only add two dashes for %- in propertized
 -      mode-line string.
 -      (syms_of_xdisp): Init and staticpro mode_line_string_list.
 -
 -2002-06-27  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * minibuf.c (minibuffer_completion_contents): Add return type.
 -
 -2002-06-27  Juanma Barranquero  <lektu@terra.es>
 -
 -      * charset.c (Fchar_bytes): Remove obsolescence info from docstring.
 -
 -2002-06-26  Juanma Barranquero  <lektu@terra.es>
 -
 -      * fileio.c (read_file_name_cleanup): Add missing return.
 -
 -2002-06-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (Frecenter): Don't set force_start flag.
 -
 -      * minibuf.c (do_completion, Fminibuffer_complete_word)
 -      (Fminibuffer_completion_help): Complete just the text before point.
 -      (minibuffer_completion_contents): New function.
 -
 -      * buffer.c (Fbury_buffer): Use frames_discard_buffer.
 -
 -      * frame.c (frames_bury_buffer): Function deleted.
 -
 -2002-06-25  Miles Bader  <miles@gnu.org>
 -
 -      * callint.c (Fcall_interactively): When checking to see if doprnt hit
 -      the end of callint_message, allow for a terminating '\0'.
 -
 -2002-06-24  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32select.c: Include composite.h.
 -
 -      * w16select.c: Likewise.
 -
 -2002-06-24  Kenichi Handa  <handa@etl.go.jp>
 -
 -      * callproc.c (Fcall_process): If code detection is necessary,
 -      call detect_coding directly here.
 -
 -      * coding.c (detect_eol): Preserve coding->cmp_data.
 -
 -      * w16select.c (Fw16_get_clipboard_data):
 -      * w32fns.c (w32_to_x_font):
 -      * w32select.c (Fw32_get_clipboard_data):
 -      * xselect.c (selection_data_to_lisp_data):
 -      * xterm.c (XTread_socket): Disable composition handling.
 -
 -2002-06-24  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * print.c (temp_output_buffer_setup): Kill all local variables.
 -
 -2002-06-22  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * lread.c (Fread): Remove redundant and imprecise declaration.
 -
 -      * xfns.c (check_x_display_info): Use check_x_frame.
 -
 -      * .gdbinit (xprintsym): Use the new `xname' field.
 -      (xsymbol): Use it.
 -
 -2002-06-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (file_dialog_callback): New function.
 -      (Fx_file_dialog): Allow selecting directories as well as files.
 -
 -2002-06-21  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * m/pmax.h (START_FILES): Define START_FILES for NetBSD and
 -      OpenBSD.  Add support for mipseb-*-netbsd* machines.
 -
 -2002-06-17  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (mac_scroll_area): Set foreground and backcolor to
 -      black and white before scrolling.  Restore frame background and
 -      foreground color after scrolling.
 -      (do_window_update): Call XClearWindow before calling expose_frame.
 -      (make_mac_frame): Don't set FRAME_BACKGROUND_PIXEL and
 -      FRAME_FOREGROUND_PIXEL of frame.
 -
 -      * macterm.c (XTread_socket): If Vmac_command_key_is_meta is nil,
 -      test Mac command key as <ALT> key.
 -
 -2002-06-17  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * window.c (Fset_window_configuration): Lisp_Object/int mixup.
 -
 -      * keyboard.c (read_key_sequence): Be more careful with first_unbound.
 -      Lookup keys in function-key-map immediately so that key-translation-map
 -      can be applied earlier.
 -      Remove function_key_possible and key_translation_possible, replaced
 -      by checking `keytran_start < t'.
 -
 -      * .gdbinit (xsymbol): Use the new `xname' field.
 -
 -2002-06-17  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (XTread_socket): If Vmac_command_key_is_meta is nil,
 -      test Mac command key as <ALT> key.
 -
 -      * mac.c (do_applescript): Call initialize_applescript if necessary
 -      when first called.  Dispose of result_desc only when there is no error.
 -      (Fdo_applescript): Use %d format specifier instead of %ld.
 -
 -2002-06-16  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (XTread_socket): Call FrontNonFloatingWindow instead
 -      of FrontWindow for cases keyDown and autoKey.
 -
 -      * fontset.c (syms_of_fontset) [MAC_OS]: Set ASCII font of
 -      Vdefault_fontset to Monaco with mac-roman coding.
 -
 -      * mac.c, macfns.c, macmenu.c, macterm.c: Undefine and redefine
 -      init_process before and after inclusion of Carbon/Carbon.h, resp.
 -
 -      * macterm.c (x_new_font): Set font for normal_gc, reverse_gc, and
 -      cursor_gc.
 -      (add_font_name_table_entry): New function.
 -      (init_font_name_table): Use add_font_name_table_entry; add italic,
 -      bold, and bold-italic entries for truetype fonts.
 -
 -      * xfaces.c (init_frame_faces) [MAC_OS]: Call realize_basic_faces
 -      for Mac too.
 -      (try_font_list) [MAC_OS]: If no font matches given registry, try
 -      fonts with any registry matching face_family.
 -      (realize_x_face) [MAC_OS]: Remove old ad-hoc fix to load font here.
 -
 -      * s/darwin.h: If autoconf detects the Ncurses library, define
 -      LIBS_TERMCAP to -lncurses to use it.
 -
 -2002-06-16  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * strftime.c [__hpux]: Include sys/_mbstate_t.h.
 -
 -2002-06-15  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (Fset_window_configuration): Explicitly preserve
 -      the point value that new_current_buffer had at the start.
 -
 -2002-06-14  Juanma Barranquero  <lektu@terra.es>
 -
 -      * composite.c (Fcompose_region_internal, Fcompose_string_internal):
 -      Fix typos.
 -
 -2002-06-14  Kim F. Storm  <storm@cua.dk>
 -
 -      * insdel.c (insert_1_both, insert_from_string_1)
 -      (insert_from_buffer_1): Recalculate END_UNCHANGED in case the
 -      insert happened in the end_unchanged region.  Otherwise, the
 -      redisplay may be confused and duplicate the last line in the
 -      buffer [seen after save-buffer when require-final-newline==t].
 -
 -2002-06-13  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (init_environment): Remove EMACSLOCKDIR.
 -      (stat): Swap _S_IFDIR and _S_IFREG.
 -
 -2002-06-13  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * keyboard.c, macterm.c, macmenu.c, msdos.c, sysdep.c
 -      * termhooks.h, xmenu.c, xsmfns.c, xterm.h, xterm.c, w32term.c,
 -      * w32menu.c, w32inevt.c: Rename enum event_kind as follows:
 -      ascii_keystroke to ASCII_KEYSTROKE_EVENT, multibyte_char_keystroke
 -      to MULTIBYTE_CHAR_KEYSTROKE_EVENT, non_ascii_keystroke to
 -      NON_ASCII_KEYSTROKE_EVENT, timer_event to TIMER_EVENT, mouse_click
 -      to MOUSE_CLICK_EVENT, mouse_wheel to MOUSE_WHEEL_EVENT,
 -      language_change_event to LANGUAGE_CHANGE_EVENT, scroll_bar_click
 -      to SCROLL_BAR_CLICK_EVENT, w32_scroll_bar_click to
 -      W32_SCROLL_BAR_CLICK_EVENT, selection_request_event to
 -      SELECTION_REQUEST_EVENT, selection_clear_event to
 -      SELECTION_CLEAR_EVENT, buffer_switch_event to BUFFER_SWITCH_EVENT,
 -      delete_window_event to DELETE_WINDOW_EVENT, iconify_event to
 -      ICONIFY_EVENT, deiconify_event to DEICONIFY_EVENT,
 -      menu_bar_activate_event to MENU_BAR_ACTIVATE_EVENT, drag_n_drop to
 -      DRAG_N_DROP_EVENT, save_session_event to SAVE_SESSION_EVENT and
 -      no_event to NO_EVENT.
 -
 -2002-06-12  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * macmenu.c: Remove declaration of Qmouse_click and Qevent_kind.
 -
 -2002-06-12  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * intervals.c (textget): Don't forget to `return'.
 -      (lookup_char_property): Use XCAR/XCDR.
 -
 -2002-06-12  Juanma Barranquero  <lektu@terra.es>
 -
 -      * xdisp.c (Fformat_mode_line): Fix typo.
 -
 -2002-06-12  Kim F. Storm  <storm@cua.dk>
 -
 -      * xdisp.c (Fformat_mode_line): New function.
 -      (frame_title_buf, frame_title_buf_end, frame_title_ptr)
 -      (store_frame_title_char, store_frame_title): Use unconditionally.
 -      (init_xdisp): Defsubr Fformat_mode_line.
 -      Initialize frame_title_buf etc. unconditionally.
 -
 -2002-06-11  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (read_key_sequence):
 -      Remove prev_(fkey|keytran}_(map|start|end) since we don't want to pass
 -      things through those maps after downcasing events.
 -      Enforce that keytran_end <= fkey_start, i.e. that key-translation-map
 -      applies after function-key-map.
 -      Make sure that keytran can be done in the middle in the sequence.
 -      Be careful not to throw away events past the one we downcase.
 -
 -      * lread.c (read_integer): Remove unused var `tem'.
 -      (read1): Fix int/Lisp_Object mixup.
 -
 -      * xfaces.c (tty_lookup_color): Type bool/Lisp_Object mismatch fixed.
 -
 -2002-06-11  Richard M. Stallman  <rms@gnu.org>
 -
 -      * keyboard.c (readable_events): Ignore any number of
 -      FOCUS_IN_EVENT events and return 0 if nothing else in buffer.
 -
 -2002-06-09  Miles Bader  <miles@gnu.org>
 -
 -      * xfaces.c (Ftty_supports_face_attributes_p): New function.
 -      (parse_rgb_list, tty_lookup_color): New functions.
 -      (tty_defined_color): Use `tty_lookup_color' to do all the work.
 -      (color_distance, Fcolor_distance): New functions.
 -      (TTY_SAME_COLOR_THRESHOLD): New macro.
 -      (Qtty_color_standard_values): New variable.
 -      (syms_of_xfaces): Initialize new vars & functions.
 -
 -2002-06-08  Colin Walters  <walters@verbum.org>
 -
 -      * textprop.c (Vchar_property_alias_alist): New variable.
 -      (syms_of_textprop) <Vchar_property_alias_alist>: DEFVAR_LISP.
 -
 -      * intervals.c (lookup_char_property): New function for looking up
 -      overlay and text properties, created from textget.
 -      (textget): Use it.
 -
 -      * intervals.h (lookup_char_property): Declare.
 -      (Vchar_property_alias_alist): Declare.
 -
 -      * buffer.c (Foverlay_get): Use lookup_char_property.
 -
 -2002-06-07  Sam Steingold  <sds@gnu.org>
 -
 -      * xselect.c (lisp_data_to_selection_data): Fix last change:
 -      *data_ret is not a Lisp string, while unibyte_string is.
 -
 -2002-06-07  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * xselect.c (lisp_data_to_selection_data): Fix last change:
 -      set size_ret.
 -
 -2002-06-07  Andreas Schwab  <schwab@suse.de>
 -
 -      * m/amdx86-64.h: New file.
 -
 -2002-06-05  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * fns.c (Fstring_make_unibyte): Doc fix.
 -
 -      * xselect.c (lisp_data_to_selection_data): If the requested type
 -       is STRING, call string_make_unibyte to encode the selected text
 -       as a string.
 -
 -      * window.c (Fset_window_hscroll): Doc fix.
 -
 -2002-06-05  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * fileio.c (choose_write_coding_system):
 -      Call select-safe-coding-system properly.
 -
 -2002-06-03  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (message_with_string): Error if STRING is not a string.
 -
 -      * fns.c (md5): Pass FILE arg to Vselect_safe_coding_system_function.
 -
 -      * fileio.c (choose_write_coding_system): Pass FILE arg to
 -      Vselect_safe_coding_system_function.
 -
 -2002-06-03  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * buffer.c (fix_overlays_before): Fix list-walking bug in 05-19 change.
 -
 -2002-06-02  Thien-Thi Nguyen  <ttn@gnu.org>
 -
 -      * bytecode.c (Fbyte_code): Cast `current_column' return value to int.
 -      * cmds.c (Fdelete_backward_char, internal_self_insert): Likewise.
 -      * keymap.c (describe_command): Likewise.
 -      * minibuf.c (read_minibuf): Likewise.
 -
 -      * xdisp.c (redisplay_internal, redisplay_window, decode_mode_spec):
 -      Cast `current_column' return value to int.
 -      (back_to_previous_visible_line_start)
 -      (reseat_at_next_visible_line_start, next_element_from_buffer):
 -      Cast `indented_beyond_p' 3rd arg to float.
 -
 -      * indent.c (last_known_column): Now a float.
 -      (current_column_1, position_indentation, current_column)
 -      (string_display_width): Return float.
 -      (Fcurrent_column): Cast `current_column' return value to int.
 -      (Fcurrent_indentation): Cast `position_indentation' retval to int.
 -      (indented_beyond_p): Third arg now a float.
 -      (compute_motion, vmotion): Cast `indented_beyond_p' 3rd arg to float.
 -
 -      * lisp.h (current_column): Now returns float.
 -      (indented_beyond_p): 3rd arg now a float.
 -
 -2002-05-31  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * xfns.c (x_encode_text): Return stringp non-NULL if coding_system
 -      is Qcompound_text_with_extensions.
 -
 -      * xselect.c (lisp_data_to_selection_data): Always set selection
 -      type as string if x_encode_text returns streingp non-NULL.
 -
 -      * s/netbsd.h: Include /usr/pkg in the run time shared library path.
 -
 -2002-05-30  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (Fset_window_configuration): Correct the handling
 -      of point in current buffer, to work with multiple windows.
 -
 -2002-05-29  Colin Walters  <walters@verbum.org>
 -
 -      * lread.c (Fread_from_string): Don't depend on order of evaluation
 -      for C function parameters.
 -
 -2002-05-28  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xterm.c (x_display_and_set_cursor): Change the cursor in the same
 -      way for blinked-off state and for a nonselected window.
 -
 -      * window.c (window_scroll_pixel_based): Don't call Fbolp;
 -      instead, see if the new start pos is at beginning of line.
 -
 -      * fileio.c (Fwrite_region): If START is a string, don't
 -      make any annotations.
 -
 -      * eval.c (syms_of_eval): Doc fix.
 -
 -2002-05-28  Colin Walters  <walters@debian.org>
 -
 -      * emacs.c (USAGE1): Add --no-splash.
 -      (standard_args): Ditto.
 -
 -2002-05-28  Colin Walters  <walters@gnu.org>
 -
 -      * lread.c (readchar_count): New variable.
 -      (readchar): Increment it.
 -      (unreadchar): Decrement it.
 -      (read_multibyte): Decrement it.
 -      (Vread_with_symbol_positions): New variable.
 -      (Vread_symbol_positions_list): New variable.
 -      (read_internal_start): New function, created from Fread and
 -      Fread_from_string.  Handle Vread_symbol_positions_list and
 -      Vread_with_symbol_positions.
 -      (readevalloop, Fread, Fread_from_string): Use it.
 -      (read1): Use readchar_count to add symbol positions to
 -      Vread_symbol_positions_list if Vread_with_symbol_positions is non-nil.
 -      (syms_of_lread): DEFVAR_LISP and initialize them.
 -
 -      * lread.c (read0, read1, read_list, read_vector, read_multibyte)
 -      (substitute_object_recurse, substitute_object_in_subtree)
 -      (substitute_in_interval): Prototype.
 -      (read_multibyte): Return c if it's less than zero.
 -
 -2002-05-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * fileio.c (Fread_file_name_internal): Added brute-force
 -      speed up for using predicate file-directory-p.
 -
 -2002-05-28  Kim F. Storm  <storm@cua.dk>
 -
 -      * fileio.c (Vread_file_name_function, Vread_file_name_predicate):
 -      New variables.
 -      (syms_of_fileio): DEFVAR_LISP them.
 -      (read_file_name_cleanup): New unwind function.
 -      (Fread_file_name_internal): Only return completions satifying
 -      Vread_file_name_predicate.  Temporarily unwind protect and rebind
 -      default-directory while checking completions against the predicate.
 -      (Fread_file_name): Added PREDICATE argument.  Specbind it to
 -      Vread_file_name_predicate during completion.
 -      Call Vread_file_name_function to read the file name if non-nil.
 -
 -      * lisp.h (Fread_file_name): Now has 6 args.
 -
 -      * callint.c (Fcall_interactively) <"D">: Supply Qfile_directory_p
 -      predicate for Fread_file_name when reading directory name.
 -      Supply Qnil for predicate in other calls to Fread_file_name.
 -
 -2002-05-26  Miles Bader  <miles@gnu.org>
 -
 -      * term.c (tty_capable_p): New function.
 -      * dispextern.h (tty_capable_p): New function declaration.
 -      (TTY_CAP_INVERSE, TTY_CAP_UNDERLINE, TTY_CAP_BOLD, TTY_CAP_DIM)
 -      (TTY_CAP_BLINK, TTY_CAP_ALT_CHARSET): New macros.
 -
 -2002-05-23  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * fileio.c (read_non_regular, Finsert_file_contents): Use BEG_BYTE.
 -      (Finsert_file_contents, build_annotations): Use XCAR, XCDR.
 -      (Vwrite_region_annotate_functions): Docstring fix.
 -
 -2002-05-23  Kim F. Storm  <storm@cua.dk>
 -
 -      * xterm.c (x_write_glyphs): Clear phys_cursor_on_p if current
 -      phys_cursor's hpos is overwritten.  This is still not completely
 -      correct, as it doesn't really make sense to use hpos at all to
 -      get the cursor glyph (as that is relative to the width of the
 -      characters on the line, which may have changed during the update).
 -
 -2002-05-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (enumfont_t): Remove tail, make pattern a normal
 -      Lisp_Object.
 -      (enum_font_cb2, enum_font_maybe_add_to_list, w32_list_fonts):
 -      Use modified enumfont_t struct.
 -
 -      * w32term.h (text_cursor_kinds): New enumeration member HBAR_CURSOR.
 -
 -      * w32term.c (x_draw_bar_cursor): New argument KIND; callers changed.
 -      Handle the `hbar' cursor type.
 -      (x_display_and_set_cursor): Handle the HBAR_CURSOR case.
 -
 -      * w32fns.c (Qhbar): New variable.
 -      (x_specified_cursor_type): Use it.
 -
 -2002-05-21  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * w32fns.c (enum_font_maybe_add_to_list): Use XCDR_AS_LVALUE for
 -      now, when the address is needed.
 -
 -2002-05-21  Colin Walters  <walters@gnu.org>
 -
 -      * Makefile.in (shortlisp): Add font-core.el.
 -
 -2002-05-20  Richard M. Stallman  <rms@gnu.org>
 -
 -      * buffer.c (syms_of_buffer) <cursor-type>: Doc fix.
 -
 -      * keyboard.c (read_char_minibuf_menu_prompt): Don't list
 -      equivalent key bindings here.
 -
 -2002-05-20  Ken Raeburn  <raeburn@gnu.org>
 -
 -      Change symbol structure to contain a lisp object for the symbol
 -      name:
 -      * lisp.h (struct Lisp_Symbol): Replace field "name" with a lisp
 -      object field named "xname".
 -      (SYMBOL_NAME): New macro.
 -      * abbrev.c (write_abbrev): Use SYMBOL_NAME instead of XSYMBOL and
 -      name field.
 -      * alloc.c (Fmake_symbol): Set symbol xname field instead of name.
 -      (mark_object, gc_sweep): Use symbol xname field and XSTRING
 -      instead of name field.
 -      * buffer.c (buffer_slot_type_mismatch): Use XSTRING and
 -      SYMBOL_NAME instead of XSYMBOL and name field.
 -      * callint.c (Fcall_interactively): Use XSTRING and SYMBOL_NAME
 -      instead of XSYMBOL and name field.
 -      * charset.c (Fdefine_charset, Fdeclare_equiv_charset): Use XSTRING
 -      and SYMBOL_NAME instead of XSYMBOL and name field.
 -      * coding.c (Fread_coding_system, code_convert_region1)
 -      (code_convert_string1, code_convert_string_norecord)
 -      (Ffind_operation_coding_system): Use SYMBOL_NAME instead of
 -      XSYMBOL and name field.
 -      * data.c (Fkeywordp, Fsymbol_name, store_symval_forwarding)
 -      (Fmake_variable_buffer_local, Fmake_local_variable)
 -      (Fmake_variable_frame_local): Use SYMBOL_NAME and XSTRING instead
 -      of XSYMBOL and name field.
 -      * editfns.c (Fformat): Use SYMBOL_NAME and XSTRING instead of
 -      XSYMBOL and name field.
 -      * emacs.c (shut_down_emacs) [#if 0]: Use SYMBOL_NAME and XSTRING
 -      instead of XSYMBOL and name field.
 -      * eval.c (do_autoload): Use SYMBOL_NAME and XSTRING instead of
 -      XSYMBOL and name field.
 -      * fns.c (Fstring_equal, Fstring_lessp, Frequire, sxhash):
 -      Use SYMBOL_NAME and XSTRING instead of XSYMBOL and name field.
 -      * fontset.c (Fset_fontset_font): Use SYMBOL_NAME and XSTRING
 -      instead of XSYMBOL and name field.
 -      * keyboard.c (echo_char, record_char, parse_modifiers_uncached)
 -      (parse_modifiers, apply_modifiers, Fevent_convert_list)
 -      (parse_solitary_modifier, Fexecute_extended_command):
 -      Use SYMBOL_NAME and XSTRING instead of XSYMBOL and name field.
 -      * keymap.c (silly_event_symbol_error, Fsingle_key_description)
 -      (Fdescribe_buffer_bindings): Use SYMBOL_NAME and XSTRING instead
 -      of XSYMBOL and name field.
 -      (describe_command, describe_translation): Use SYMBOL_NAME and
 -      assignment instead of XSYMBOL and name field and XSETSTRING.
 -      * lread.c (Fintern_soft, oblookup): Use SYMBOL_NAME and XSTRING
 -      instead of XSYMBOL and name field.
 -      (Funintern): Use SYMBOL_NAME and assignment instead of XSYMBOL and
 -      name field and XSETSTRING.
 -      * macfns.c (parse_image_spec): Use SYMBOL_NAME and XSTRING instead
 -      of XSYMBOL and name field.
 -      * minibuf.c (Fread_command, Fread_variable): Use SYMBOL_NAME and
 -      assignment instead of XSYMBOL and name field and XSETSTRING.
 -      * print.c (print_error_message, print_object): Use SYMBOL_NAME and
 -      XSTRING instead of XSYMBOL and name field.
 -      * process.c (set_socket_options, Fsignal_process): Use SYMBOL_NAME
 -      and XSTRING instead of XSYMBOL and name field.
 -      * w32fns.c (parse_image_spec, w32_parse_hot_key): Use SYMBOL_NAME
 -      and XSTRING instead of XSYMBOL and name field.
 -      * xfaces.c (merge_face_vector_with_property): Use SYMBOL_NAME and
 -      XSTRING instead of XSYMBOL and name field.
 -      * xfns.c (parse_image_spec): Use SYMBOL_NAME and XSTRING instead
 -      of XSYMBOL and name field.
 -      * xselect.c (symbol_to_x_atom, x_get_foreign_selection):
 -      Use SYMBOL_NAME and XSTRING instead of XSYMBOL and name field.
 -
 -2002-05-19  Ken Raeburn  <raeburn@gnu.org>
 -
 -      * lisp.h (LISP_MAKE_RVALUE): Delete disabled version, making XCAR
 -      and XCDR real rvalues in most configurations.
 -
 -      * buffer.c (fix_overlays_in_range, fix_overlays_before):
 -      Don't take the address of the cdr part of a cons cell; instead, track
 -      the parent cell and call XSETCDR, or set the variable for the head
 -      of the list if we haven't started down the list yet.
 -
 -2002-05-19  Richard M. Stallman  <rms@gnu.org>
 -
 -      * doc.c (reread_doc_file): Don't ask for confirmation.
 -
 -2002-05-18  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_create_pixmap_from_bitmap_data): New function.
 -      (xbm_load_image): Use it.
 -      (xbm_load): Ditto.
 -      (xbm_read_bitmap_data): Reverted to xfns.c version.
 -      From David Ponce <david@dponce.com>.
 -
 -2002-05-17  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * msdos.c (sig_suspender, sigprocmask): Don't define for DJGPP
 -      2.02 and later.
 -
 -2002-05-16  Juanma Barranquero  <lektu@terra.es>
 -
 -      * keyboard.c (Fthis_command_keys, Fthis_command_keys_vector): Fix typo.
 -
 -2002-05-15  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (read_char_x_menu_prompt): Use an equivalent but more
 -      meaningful test.
 -      (read_char_minibuf_menu_prompt): Fix typo.
 -
 -2002-05-15  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * eval.c (Fcommandp): Doc fix.
 -
 -2002-05-13  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keymap.c (keymap_parent): New fun, extracted from Fkeymap_parent.
 -      (Fkeymap_parent, keymap_memberp, fix_submap_inheritance): Use it.
 -      (Fset_keymap_parent): Gcpro a bit more.
 -      (access_keymap): Gcpro around meta_map call and around the main loop.
 -      (get_keyelt): Gcpro when following indirect references.
 -      (copy_keymap_item): New fun, extracted from Fcopy_keymap.
 -      (copy_keymap_1, Fcopy_keymap): Use it.  Don't copy the parent map.
 -      (Fdefine_key, Flookup_key): Gcpro before calling get_keymap.
 -      Remove useless ad-hoc remap code.
 -
 -2002-05-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * search.c (search_buffer): Give up boyer moore search if inverse
 -      translation change charset_base.
 -
 -2002-05-12  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * coding.c (decode_coding) <coding_type_ccl>: If a lone CR
 -      characters is carried over from the previous block of text, adjust
 -      coding->produced to account for the extra character.
 -
 -2002-05-11  Andreas Schwab  <schwab@suse.de>
 -
 -      * coding.c (intersection): Keep the elements of the returned list
 -      in the same order as in the first list.
 -
 -2002-05-11  Kim F. Storm  <storm@cua.dk>
 -
 -      * keymap.c (current_minor_maps): Fix resizing of cmm_maps;
 -      only update cmm_size if realloc actually succeeds.
 -      Testing with initial size of 2 elements revealed that using
 -      realloc on GNU/Linux would cause a random trap in xmalloc
 -      later on, so I rewrote the code to use malloc/bcopy/free instead
 -      of realloc.
 -
 -2002-05-10  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (enum_font_cb2): Avoid DBCS raster fonts.
 -
 -2002-05-10  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * coding.c (encode_coding_sjis_big5): Enclose bitwise AND in
 -      parens, to ensure correct evaluation order.
 -
 -2002-05-10  Kim F. Storm  <storm@cua.dk>
 -
 -      * keymap.c (Vemulation_mode_map_alists): New variable.
 -      (syms_of_keymap): DEFVAR_LISP it.
 -      (current_minor_maps): Process keymap alists in that list before
 -      minor-mode-overriding-map-alist and minor-mode-map-alist.
 -
 -2002-05-09  Richard M. Stallman  <rms@gnu.org>
 -
 -      * search.c (Freplace_match): Doc fix.
 -
 -2002-05-09  Kim F. Storm  <storm@cua.dk>
 -
 -      * macterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
 -      Enlarge cursor rectangle drawn around image with non-zero relief.
 -
 -      * w32term.c (x_draw_image_foreground, w32_draw_image_foreground_1):
 -      Enlarge cursor rectangle drawn around image with non-zero relief.
 -
 -      * xterm.c (x_draw_image_foreground, x_draw_image_foreground_1):
 -      Enlarge cursor rectangle drawn around image with non-zero relief.
 -
 -2002-05-07  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * xselect.c (lisp_data_to_selection_data): Don't set selection
 -      type if comes from the Lisp object's car.  If the selection
 -      contains a pure ASCII text, always return QSTRING as its type.
 -
 -2002-05-06  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * mac.c (mac-cut-function): Doc fix.
 -
 -2002-05-05  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/gnu.h [DOUG_LEA_MALLOC] (REL_ALLOC): Undefine it.
 -
 -2002-05-04  Jason Rumney  <jasonr@gnu.org>
 -
 -      * keyboard.c (make_lispy_event) <mouse-wheel>: Set count to 1
 -      for event-click-count.
 -
 -      * process.c (init_process): Only add server subfeature if we can
 -      use non-blocking I/O.
 -
 -2002-05-04  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * macterm.c (XTread_socket): Call WaitNextEvent once instead of
 -      repeatedly.
 -
 -2002-05-03  Jason Rumney  <jasonr@gnu.org>
 -
 -      * process.c (Fmake_network_process): Only support server sockets
 -      when we can make them non-blocking.
 -
 -      * s/ms-w32.h (HAVE_SELECT): Define.
 -
 -      * w32.h (FILE_NDELAY): New flag.
 -
 -      * w32.c (sys_getpeername, fcntl): New functions.
 -      (_sys_read_ahead): Temporarily block on non-blocking sockets.
 -
 -      * w32proc.c: Include sys/file.h.
 -
 -2002-05-03  Colin Walters  <walters@verbum.org>
 -
 -      * callproc.c (Vgame_score_directory): Renamed to
 -      Vshared_game_score_directory.
 -
 -2002-04-30  Richard M. Stallman  <rms@gnu.org>
 -
 -      * s/gnu.h [emacs]: Include stdio.h.
 -      (GNU_LIBRARY_PENDING_OUTPUT_COUNT): New definition, conditional.
 -
 -      * eval.c (do_autoload): Error if called while preparing to dump.
 -
 -      * fns.c (Frequire): Error if need to load while preparing to dump.
 -
 -2002-04-28  Colin Walters  <walters@verbum.org>
 -
 -      * callproc.c (Vgame_score_directory) [!HAVE_SHARED_GAME_DIR]:
 -      Default to "~/.emacs.d/games".
 -
 -2002-04-29  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * lread.c (openp): Change arg exec_only to predicate.
 -      (build_load_history): Use XCAR/XCDR.
 -      (Flocate_file_internal): New fun.
 -      (syms_of_lread): Defsubr it.
 -      (Fload): Update call to openp.
 -
 -      * lisp.h (openp): Update prototype.
 -
 -      * xfns.c (x_create_bitmap_from_file, x_find_image_file):
 -      * w32proc.c (sys_spawnve):
 -      * w32fns.c (x_create_bitmap_from_file, x_find_image_file):
 -      * w32.c (check_windows_init_file):
 -      * sound.c (Fplay_sound_internal):
 -      * process.c (Fstart_process):
 -      * macfns.c (x_create_bitmap_from_file, x_find_image_file):
 -      * mac.c (run_mac_command):
 -      * emacs.c (init_cmdargs):
 -      * callproc.c (Fcall_process): Update call to openp.
 -
 -      * textprop.c (remove_properties): Don't use XCAR without CONSP.
 -
 -      * xterm.c (XTread_socket): Disable the Xutf8LookupString code.
 -
 -2002-04-29  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * dispextern.h (DEFAULT_TOOL_BAR_BUTTON_MARGIN)
 -      (DEFAULT_TOOL_BAR_BUTTON_RELIEF): Change default values.
 -
 -2002-04-28  Richard M. Stallman  <rms@gnu.org>
 -
 -      * minibuf.c (Fall_completions, Ftry_completion): New arg to Fcommandp.
 -
 -      * eval.c (Fcommandp): New arg for_call_interactively.
 -      * lisp.h (Fcommandp): Declare new arg.
 -
 -2002-04-28  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32proc.c (syms_of_w32proc): Get true file attributes by default.
 -
 -      * w32.c (stat, fstat): Use file index information to generate
 -      inodes for directories where available.
 -
 -2002-04-26  Andrew Choi  <akochoi@shaw.ca>
 -
 -      * Makefile.in (C_SWITCH_SYSTEM_TEMACS): Add.
 -      [HAVE_CARBON]: Include Mac object files.
 -
 -      * alloc.c, callproc.c, dispextern.h, dispnew.c, emacs.c,
 -      fontset.c, frame.c, frame.h, keyboard.c, sysdep.c, term.c,
 -      termcap.c, window.c, xdisp.c, xfaces.c: Use macros MAC_OS8,
 -      MAC_OSX, and MAC_OS instead of macintosh.
 -
 -      * editfns.c [MAC_OS8]: Include stdio.h.
 -
 -      * emacs.c [MAC_OS8]: Call mac_initialize instead of x_term_init.
 -
 -      * fontset.c [MAC_OS]: Set Vdefault_fontset to ETL Fixed instead of
 -      Apple Monaco.
 -
 -      * process.c (QCfamily, QCfilte): Declare extern.
 -      (wait_reading_process_input) [MAC_OSX]: Clear bit for stdin before
 -      calling select.
 -
 -      * termcap.c [MAC_OSX]: Don't define tgetnum, PC, tputs, and tgetent.
 -
 -      * tparam.c [MAC_OSX]: Don't define BC and UP.
 -
 -      * config.in [HAVE_CARBON]: Add.
 -
 -      * mac.c, macgui.h, macfns.c, macmenu.c, macterm.c, macterm.h:
 -      Move here from mac/src and mac/inc.
 -
 -      * s/darwin.h, m/powermac.h, unexmacosx.c: New files.
 -
 -2002-04-26  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * xterm.c (x_draw_phys_cursor_glyph): Undo last change.
 -      Compute phys_cursor_width from the x position returned
 -      by x_draw_glyhs, which is cheaper.
 -      (x_display_and_set_cursor): Compute the buffer-local value
 -      of `cursor-in-non-selected-windows' only when needed.
 -
 -2002-04-25  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * xterm.c (x_draw_phys_cursor_glyph): Take into account that a box
 -      cursor on a stretch glyph has a width that depends on
 -      x_stretch_cursor_p.
 -
 -2002-04-25  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * abbrev.c (abbrev-start-location): Doc fix.
 -
 -      * indent.c (Fvertical_motion): Fix last change.
 -
 -2002-04-25  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * indent.c (Fvertical_motion): Move to the start of the line
 -      containing PT before moving up or down.
 -
 -2002-04-24  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * dispnew.c (update_text_area): Set phys_cursor_on_p to 0 in the
 -      case of writing a whole row, more or less analogous to the case of
 -      writing only parts of a row.
 -
 -      * xterm.c (x_display_and_set_cursor): Set phys_cursor_width to
 -      0 for NO_CURSOR.
 -
 -      * xterm.c (notice_overwritten_cursor): Fix an off by 1 error.
 -
 -2002-04-23  Colin Walters  <walters@verbum.org>
 -
 -      * buffer.c (syms_of_buffer): Doc fix.
 -
 -2002-04-23  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * xterm.c (notice_overwritten_cursor): Handle the special case
 -      of the cursor being in the first blank non-text line at the
 -      end of a window.
 -
 -      * xterm.c (x_draw_hollow_cursor, x_draw_bar_cursor)
 -      (x_draw_phys_cursor_glyph): Set phys_cursor_width here.
 -      (x_display_and_set_cursor): Don't set phys_cursor_width here, for
 -      bar cursors only, to make phys_cursor_width contain what its name
 -      suggests.
 -      (notice_overwritten_cursor): Consider the cursor image erased if
 -      the output area intersects the cursor image in y-direction.
 -
 -2002-04-23  Simon Marshall  <simon@gnu.org>
 -
 -      * xfns.c (x_set_mouse_color): Change default for cross_cursor
 -      to XC_hand2.
 -
 -2002-04-23  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * xdisp.c: Remove unused global variable `minibuf_prompt_pixel_width'.
 -
 -2002-04-22  Kim F. Storm  <storm@cua.dk>
 -
 -      * textprop.c (remove_properties): Fixed trap for malformed plist.
 -
 -2002-04-22  Richard M. Stallman  <rms@gnu.org>
 -
 -      * cmds.c (Fend_of_line): Handle intangible text in mid line.
 -
 -      * window.c (make_window): Initialize height_fixed_p,
 -      last_cursor_off_p, and p->cursor_off_p slots.
 -
 -2002-04-20  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * fns.c (use-dialog-box): Doc fix.
 -
 -2002-04-19  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * xterm.c (note_mode_line_or_margin_highlight): Remove unused
 -      variables `row', `i' and `area'.
 -      (XTread_socket) <KeyPress>: Pass KeyPress events when in menu to
 -      toolkit library.
 -
 -2002-04-19  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * xfaces.c (clear_font_table): Don't free the default font of
 -      a frame even if it's on another display.
 -      (Finternal_set_lisp_face_attribute): Don't use XFRAME on something
 -      that could be Qt.
 -
 -2002-04-19  Juanma Barranquero  <lektu@terra.es>
 -
 -      * indent.c (Fmove_to_column): Remove unused local variable
 -      `next_boundary_byte'.
 -      (current_column_1): Likewise.
 -
 -2002-04-19  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * msdos.c (Qhbar): New variable.
 -      (syms_of_msdos): Intern and staticpro it.
 -      (IT_set_cursor_type, IT_set_frame_parameters): Handle the `hbar'
 -      cursor type.
 -
 -2002-04-19  Dave Lambert  <dlambert@acm.org>
 -
 -      Theses change implement an underscore-like (`hbar') cursor.
 -
 -      * xterm.h (text_cursor_kinds): New enumeration member HBAR_CURSOR.
 -
 -      * xterm.c (x_draw_bar_cursor): New argument KIND; callers changed.
 -      Handle the `hbar' cursor type.
 -      (x_display_and_set_cursor): Handle the HBAR_CURSOR case.
 -
 -      * xfns.c (Qhbar): New variable.
 -      (syms_of_xfns): Intern and staticpro it.
 -      (x_specified_cursor_type): Handle `hbar' cursor.
 -
 -      * s/sol2-5.h (bcopy, bzero, bcmp): Define only if HAVE_BCOPY is
 -      not defined.
 -
 -2002-04-18  Richard M. Stallman  <rms@gnu.org>
 -
 -      * textprop.c (remove_properties): New arg LIST allows scanning
 -      either a list or a plist.
 -      (interval_has_some_properties_list): New function, like
 -      interval_has_some_properties using list instead of plist.
 -      All callers changed.
 -      (Fremove_list_of_text_properties): New function.
 -      (syms_of_textprop): Defsubr it.
 -
 -2002-04-17  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * s/sol2.h (HAVE_LIBKSTAT): Define only if not already defined.
 -
 -2002-04-17  Juanma Barranquero  <lektu@terra.es>
 -
 -      * indent.c (Fmove_to_column): Remove unused local variable `end_byte'.
 -
 -2002-04-17  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * window.c (coordinates_in_window): Don't report on margin area
 -      if its width is zero.
 -
 -2002-04-16  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fx_file_dialog): Decode file name before using.
 -
 -      * w32term.c (construct_drag_n_drop): Likewise.
 -
 -2002-04-16  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 830000, since we now
 -      store load-history in pure space.
 -
 -      * s/msdos.h (SYSTEM_PURESIZE_EXTRA): Reduce to 50000.
 -
 -2002-04-16  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * xterm.c (Qlatin_1, Qutf_8): New vars.
 -      (syms_of_xterm): Initialize them.
 -      (XTread_socket): Eliminate incorrect optimization that tried to avoid
 -      decoding the output of X*LookupString.
 -      Always use latin-1 to decode the output of XLookupString.
 -      Try Xutf8LookupString if XmbLookupString failed.
 -
 -      * region-cache.c (new_region_cache): Use BEG.
 -
 -2002-04-16  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * buffer.c (MMAP_ALLOCATED_P): New macro to be set from system
 -      configuration files.
 -      (mmap_enlarge): Enlarge mapped regions only if MMAP_ALLOCATED_P
 -      returns 0.
 -
 -2002-04-15  Andreas Schwab  <schwab@suse.de>
 -
 -      * config.in: Regenerated using autoheader.
 -
 -      * m/7300.h, m/acorn.h, m/alliant-2800.h, m/alliant.h, m/alpha.h,
 -      m/altos.h, m/amdahl.h, m/apollo.h, m/arm.h, m/att3b.h, m/aviion.h,
 -      m/celerity.h, m/clipper.h, m/cnvrgnt.h, m/convex.h, m/cydra5.h,
 -      m/delta.h, m/delta88k.h, m/dpx2.h, m/elxsi.h, m/gec63.h,
 -      m/gould.h, m/hp800.h, m/hp9000s300.h, m/i860.h, m/ia64.h,
 -      m/ibmps2-aix.h, m/ibmrs6000.h, m/ibmrt-aix.h, m/ibmrt.h,
 -      m/ibms390.h, m/intel386.h, m/iris4d.h, m/irist.h, m/isi-ov.h,
 -      m/m68k.h, m/macppc.h, m/masscomp.h, m/mg1.h, m/mips-siemens.h,
 -      m/mips.h, m/news-r6.h, m/news.h, m/next.h, m/nh3000.h, m/nh4000.h
 -      m/ns32000.h, m/orion.h, m/pfa50.h, m/plexus.h, m/pmax.h,
 -      m/powerpcle.h, m/pyrmips.h, m/sequent-ptx.h, m/sequent.h,
 -      m/sparc.h, m/sr2k.h, m/symmetry.h, m/tad68k.h, m/tahoe.h,
 -      m/targon31.h, m/tek4300.h, m/tekxd88.h, m/template.h, m/tower32.h,
 -      m/tower32v3.h, m/ustation.h, m/vax.h, m/wicat.h, m/windowsnt.h,
 -      m/xps100.h, s/aix3-2.h, s/aix4-2.h, s/irix4-0.h, s/irix5-0.h,
 -      s/sco5.h, s/unixware.h: Don't set HAVE_ALLOCA, C_ALLOCA and
 -      STACK_DIRECTION, now set by autoconf.
 -
 -2002-04-14  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * dispnew.c (marginal_area_string): Sort arguments.
 -
 -      * dispextern.h (marginal_area_string): Add prototype.
 -
 -2002-04-13  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Finsert_file_contents):
 -      Don't call temp_output_buffer_setup--do just part, by hand.
 -
 -      * coding.c (run_pre_post_conversion_on_str):
 -      Don't call temp_output_buffer_setup--do just part, by hand.
 -
 -      * keyboard.c (command_loop_1): Don't call start_hourglass
 -      or cancel_hourglass when executing a macro.
 -
 -      * marker.c (count_markers): New function.
 -
 -      * xdisp.c (display_mode_element): Don't let mode_line_proptrans_alist
 -      grow without limit.  Move recently used elements to the front.
 -
 -2002-04-13  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * unexelf.c (unexec) [__sgi]: Undo the change from 2002-01-20.
 -
 -2002-04-12  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * xdisp.c (sync_frame_with_window_matrix_rows): Don't give frame
 -      rows marginal areas.
 -      (Fdump_frame_glyph_matrix) [GLYPH_DEBUG]: New function.
 -      (syms_of_xdisp) [GLYPH_DEBUG]: Defsubr it.
 -
 -      * dispnew.c (marginal_area_string): Check that glyph row is enabled.
 -
 -2002-04-12  Dave Love  <fx@gnu.org>
 -
 -      * dispnew.c (marginal_area_string): New.
 -
 -      * window.c (window_part): Add ON_LEFT_MARGIN, ON_RIGHT_MARGIN.
 -      (Qleft_margin, Qright_margin): Declare.
 -      (coordinates_in_window, (Fcoordinates_in_window_p): Deal with margins.
 -
 -      * xterm.c (note_mode_line_or_margin_highlight): Renamed from
 -      note_mode_line_highlight and extended.
 -
 -      * keyboard.c (Qleft_margin, Qright_margin): Declare.
 -      (make_lispy_event): Deal with mouse events in margins.
 -
 -2002-04-12  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * msdos.c (dos_rawgetc): Use a single event for HELP_EVENT.
 -
 -      * keyboard.c (command_loop_1): Turn off transient-mark-mode rather
 -      than deactivating the mark if tmm is set to `lambda'.
 -      (gen_help_event, kbd_buffer_store_help_event, kbd_buffer_get_event):
 -      Use a single event for HELP_EVENT.
 -      (Fexecute_extended_command): Save last_point_position.
 -
 -2002-04-12  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * lisp.h (Fpropertize): Add prototype.
 -
 -      * fns.c (Fy_or_n_p): Use `minibuffer-prompt' face for prompt.
 -
 -2002-04-10  Colin Walters  <walters@verbum.org>
 -
 -      * config.in: Add HAVE_SHARED_GAME_DIR.
 -
 -      * callproc.c (Vgame_score_directory): New variable.
 -      (syms_of_callproc) <Vgame_score_directory>: DEFVAR_LISP.
 -
 -2002-04-10  Richard M. Stallman  <rms@gnu.org>
 -
 -      * puresize.h (BASE_PURESIZE): Reduce again to avoid big excess.
 -
 -2002-04-09  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * minibuf.c (read_minibuf): Use empty_string.
 -      (Ftry_completion): Allow lambda forms and lists of strings for `alist'.
 -      Short-circuit the search as soon as it "failed".
 -      (Fall_completions): Allow lambda forms and lists of strings for alist.
 -      (Fcompleting_read): Set Qminibuffer_completion_confirm to nil
 -      when require_match is nil.
 -      (Ftest_completion): Rename from `test_completion' and export to elisp.
 -      Call the predicate also when alist is a list.
 -      Obey Vcompletion_regexp_list.
 -      (do_completion, Fminibuffer_complete_and_exit): Use it.
 -      (Fassoc_string): Rename from `assoc_for_completion'.
 -      Allow list of strings as well and export to elisp.
 -
 -2002-04-08  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 900KB.
 -
 -2002-04-08  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32.c (sys_accept): Don't hide variable `s'.
 -
 -2002-04-05  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * callint.c (Fcall_interactively): Use INTEGERP instead of
 -      NUMBERP for checking Vhistory_length.
 -
 -2002-04-05  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * sound.c (Fplay_sound_internal): Renamed from Fplay_sound.
 -      Doc fix to reflect it.
 -
 -2002-04-04  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (display_mode_element): New arg RISKY.
 -      Disregard text props found or specified within a variable
 -      that isn't marked risky-local-variable.
 -      (Qrisky_local_variable): New variable.
 -      (syms_of_xdisp): Init and staticpro it.
 -
 -2002-04-04  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * undo.c (record_point): New fun.
 -      (record_delete, record_insert): Use it.
 -
 -2002-04-03  Juanma Barranquero  <lektu@terra.es>
 -
 -      * doc.c (Fdocumentation): Add missing parentheses.
 -      (Fdocumentation_property): Likewise.
 -
 -2002-04-03  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * doc.c (Fdocumentation, Fdocumentation_property): When the doc
 -      data is 0, just return nil.
 -
 -2002-04-03  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * msdos.c (syms_of_msdos): Fix last change with
 -      mouse_autoselect_window.
 -
 -2002-04-03  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * w32term.c, xterm.c, msdos.c: Rename autoselect_window_p to
 -      mouse_autoselect_window.
 -
 -2002-04-02  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * keyboard.c (make_lispy_event): Handle unknown keysyms together
 -      with system-specific keysyms.  Use it also for unknown function keys.
 -
 -      * doc.c (reread_doc_file): Return whether reload was attempted.
 -      (Fdocumentation, Fdocumentation_property): Don't try to reload
 -      if the doc is 0 and only ask once.
 -
 -      * Makefile.in (lisp, shortlisp): Add ucs-tables.elc.
 -
 -2002-04-02  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * keyboard.c (read_char): If the event was Qselect_window,
 -      restore timer_idleness_start_time to its previous value.
 -
 -      * msdos.c (dos_rawgetc): Generate SELECT_WINDOW_EVENTs when required.
 -
 -2002-04-01  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * region-cache.c (new_region_cache): Use BEG.
 -
 -      * marker.c (buf_charpos_to_bytepos, buf_bytepos_to_charpos):
 -      Use BEG and BEG_BYTE.
 -
 -      * doc.c (get_doc_string): Return nil if the location is wrong.
 -      (reread_doc_file): New fun.
 -      (Fdocumentation, Fdocumentation_property):
 -      Call it if get_doc_string fails.
 -      (Fsnarf_documentation): Make it work for a dumped Emacs.
 -
 -      * charset.h (DEC_POS, BUF_DEC_POS): Use BEG_BYTE.
 -      Bound the search with MAX_MULTIBYTE_LENGTH to avoid pathological case.
 -
 -      * charset.c (Fstring): Allow 0 arguments.
 -
 -      * xterm.c (XTread_socket): Fix int/Lisp_Object confusion.
 -
 -      * process.c (DATAGRAM_CONN_P, list_processes_1)
 -      (Fprocess_datagram_address, Fset_process_datagram_address)
 -      (Fset_network_process_options, server_accept_connection):
 -      Fix some int/Lisp_Object confusions (thank you union types).
 -
 -2002-04-01  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * msdos.c: Rename x_autoselect_window_p to autoselect_window_p.
 -
 -      * w32term.c: Likewise.
 -      (note_mouse_movement): Put code for x_autoselect_window_p in #if 0.
 -
 -      * keyboard.c (Qselect_window): New symbol.
 -      (head_table): Use it.
 -      (keys_of_keyboard): Bound select-window event to handle-select-window.
 -      (kbd_buffer_get_event): Make a Lisp event from SELECT_WINDOW_EVENT.
 -
 -      * xterm.c: Rename x_autoselect_window_p to autoselect_window_p.
 -      (last_window): New variable.
 -      (XTread_socket): Generate SELECT_WINDOW_EVENTs.
 -      (note_mouse_movement): Remove reimplemented code in #if 0.
 -      (XTread_socket): Generate SELECT_WINDOW_EVENTs only for
 -      Emacs windows.
 -
 -      * termhooks.h (enum event_kind): New event type `SELECT_WINDOW_EVENT'.
 -
 -2002-03-31  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * xterm.c (x_get_char_face_and_encoding): Add parameter DISPLAY_P.
 -      Callers changed.
 -
 -2002-03-30  Richard M. Stallman  <rms@gnu.org>
 -
 -      * window.c (window_scroll_pixel_based): Exit the move_it_by_lines
 -      loop whenever it stops making progress.
 -
 -      * widget.c (set_frame_size): Don't call change_frame_size.
 -
 -2002-03-30  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * dispnew.c (direct_output_for_insert):
 -      Call mark_window_display_accurate.
 -
 -2002-03-29  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_draw_relief_rect): Fix calculations of line lengths.
 -
 -2002-03-29  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * Makefile.in (lread.o): Depend on coding.h.
 -
 -      * lread.c (openp, Fload): Encode the file name before passing it
 -      to `stat', `access', and `emacs_open'.
 -      (openp): GCPRO the encoded file name.  Don't recompute Lisp
 -      strings unnecessarily.
 -
 -2002-03-29  Kim F. Storm  <storm@cua.dk>
 -
 -      * fns.c (Flax_plist_put): Doc fix.
 -
 -2002-03-28  Miles Bader  <miles@gnu.org>
 -
 -      * process.c (DATAGRAM_CONN_P): Make sure PROC is really a process.
 -
 -2002-03-27  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * process.c (set-network-process-options): Add usage.
 -      (make-network-process): Doc fix.
 -
 -2002-03-26  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * emacs.c (Fdump_emacs): Fix a typo in "command-line-processed".
 -
 -2002-03-26  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fns.c (Fsubstring_no_properties): New function.
 -      (Flax_plist_get, Flax_plist_put): New functions.
 -      (syms_of_fns): defsubr them.
 -
 -      * xdisp.c (update_menu_bar): Test only update_mode_lines;
 -      don't test or alter w->update_mode_line.
 -
 -      * window.c (Fdisplay_buffer): Doc fix.
 -
 -2002-03-24  Richard M. Stallman  <rms@gnu.org>
 -
 -      * regex.c (GET_UNSIGNED_NUMBER): Give proper error for spaces.
 -
 -2002-03-24  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * eval.c (Qdeclare, Vmacro_declaration_function): New variables.
 -      (Fdefmacro): Handle `(declare ...)'.
 -      (syms_of_eval) <Qdeclare>: Initialize and staticpro.
 -      (syms_of_eval) <Vmacro_declaration_function>: DEFVAR_LISP.
 -
 -2002-03-24  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (xbm_scan, xbm_load_image, xbm_read_bitmap_data)
 -      (xbm_file_p): Add prototypes.
 -      (xbm_format, xbm_image_p): Sync with xfns.c.
 -      (reflect_byte): New function.
 -      (xbm_read_bitmap_data): Sync with xfns.c, adapt for Windows.
 -      (xbm_load_image): Create bitmaps with a depth of 1.
 -      (init_xfns): Enable XBM images.
 -
 -2002-03-23  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (w32_handle_tool_bar_click): Detect up and down events
 -      correctly.  Do not pass up_modifier to keyboard buffer.
 -
 -      * w32fns.c [HAVE_IMAGES, HAVE_PBM]: Remove conditionals.
 -
 -2002-03-22  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * Makefile.in (bootstrapclean): New target.
 -      (bootstrap-temacs, bootstrap-doc): Remove.
 -      (bootstrap-emacs): Use a bog-standard `temacs'.
 -      Don't bother to build a DOC file.
 -
 -      * sysdep.c (wait_for_termination): Use sigsuspend rather than sigpause.
 -
 -      * emacs.c (main): Handle --unibyte, --multibyte, and --no-loadup
 -      in temacs even if !CANNOT_DUMP.
 -      (standard_args): Keep --no-loadup even if !CANNOT_DUMP.
 -
 -      * alloc.c (check_pure_size): Only output a warning.
 -
 -2002-03-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fx_create_frame): Enable tool-bar when images are
 -      supported.
 -
 -      * w32term.c (zv_bits): Declare as short, for word alignment.
 -      (w32_read_socket) <WM_XBUTTONUP>: Fix last change.
 -      (syms_of_w32term): Define x-use-underline-position-properties.
 -
 -      * w32fns.c (x_set_cursor_color): Set cursor_gc as well.
 -      (clear_image_cache): Block input, fix logic, clear matrices in
 -      all frames that share this cache.
 -
 -2002-03-22  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * emacs.c (main): Update the Copyright year in the blurb printed
 -      by "emacs --version".
 -
 -      * xdisp.c (message_with_string): Fix syntax of a call to GCPRO2.
 -
 -      * xterm.c (XTread_socket): If XK_ISO_Lock and
 -      XK_ISO_Last_Group_Lock are defined, handle keysyms between
 -      XK_ISO_Lock and XK_ISO_Last_Group_Lock similarly to Mode_switch.
 -
 -2002-03-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * keyboard.c (menu_bar_items): Mostly undo 2002-02-20 patch, so
 -      menu-bar bindings in keymap and local-map properties _are_ used.
 -      But try keymap property first in accordance with 2002-01-03 patch.
 -      Added comment describing why this is not always reliable.
 -      (tool_bar_items): Ditto for tool-bar.
 -
 -2002-03-21  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (x_clear_image_1): Disable color table code.
 -
 -2002-03-21  Kim F. Storm  <storm@cua.dk>
 -
 -      * lisp.h (DEFUN) [USE_NONANSI_DEFUN]: The 2001-10-17 patch
 -      removed the wrong version of the DEFUN macro; fixed it.
 -
 -      * fns.c (Ffeaturep): Allow subfeature to be a list (test using
 -      Fmember rather than Fmemq).
 -      (Fprovide): Check that subfeatures is a list.
 -
 -      * process.c (QCfeature, QCdatagram): Removed variables.
 -      (QCtype, Qdatagram): New variables.
 -      (network_process_featurep): Removed function.
 -      (Fmake_network_process): Removed :feature check.
 -      Use :type 'datagram instead of :datagram t to create a datagram
 -      socket.  This allows us to add other connection types (e.g. raw
 -      sockets) later in a consistent manner.
 -      (init_process) [subprocess, HAVE_SOCKETS]: Provide list of
 -      supported subfeatures for feature make-network-process.
 -      (syms_of_process) [subprocess]: Remove QCfeature and QCdatagram.
 -      Intern and staticpro QCtype and Qdatagram.
 -      (syms_of_process) [!subprocess]: Intern and staticpro QCtype.
 -
 -      * xfns.c (QCtype): Remove duplicate declaration and
 -      initialization (is now declared in process.c).
 -
 -      * w32fns.c (QCtype): Remove duplicate declaration and
 -      initialization (is now declared in process.c).
 -
 -2002-03-21  Richard M. Stallman  <rms@gnu.org>
 -
 -      * regex.c (DISCARD_FAILURE_REG_OR_COUNT): New macro.
 -      (CHECK_INFINITE_LOOP): Use DISCARD_FAILURE_REG_OR_COUNT
 -      when jumping to `fail' to avoid undoing reg changes in the
 -      last iteration of the loop.
 -      (GET_UNSIGNED_NUMBER): Skip spaces around the number.
 -
 -      * Makefile.in (dispnew.o, sysdep.o, xdisp.o, xselect.o, alloc.o):
 -      Depend on process.h.
 -
 -2002-03-20  Jason Rumney  <jasonr@gnu.org>
 -
 -      Most of the following changes are still conditional on HAVE_IMAGES
 -      which is not set by default on Windows.
 -
 -      * emacs.c (main) [WINDOWSNT]: Call init_xfns.
 -
 -      * w32fns.c (x_set_cursor_color): Set foreground of cursor, not frame.
 -      (Fimage_size, Fimage_mask_p, XPutPixel): New functions.
 -      (four_corners_best, x_clear_image_1, x_clear_image)
 -      (x_alloc_image_color, postprocess_image)
 -      (x_create_x_image_and_pixmap, x_destroy_x_image, xbm_load_image)
 -      (x_from_x_colors, x_disable_image, pbm_load): Adapt for Windows.
 -      (init_xfns, syms_of_w32fns): Initialize image functions and constants.
 -
 -      * w32gui.h (struct XImage): Define.
 -
 -      * w32term.c (w32_read_socket) <WM_XBUTTONUP>: Use XFASTINT to
 -      extract mouse co-ordinates.
 -
 -2002-03-20  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32.c (init_winsock): Dynamically load new server and UDP
 -      socket functions.
 -      (socket_to_fd): New function.
 -      (sys_socket): Use it.
 -      (sys_setsockopt, sys_listen, sys_getsockname, sys_accept)
 -      (sys_recvfrom, sys_sendto): New wrapper functions.
 -
 -      * process.c (QCfamily, QCfilter): Remove duplicate declaration
 -      and initialization.
 -
 -      * makefile.w32-in (LIBS): Remove $(WSOCK32).
 -
 -2002-03-20  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * process.c (conv_sockaddr_to_lisp, conv_lisp_to_sockaddr):
 -      Don't use "sun" as a variable, it's a predefined constant on Sun
 -      machines.
 -
 -2002-03-20  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * bytecode.c (Fbyte_code): Revert last change.
 -
 -2002-03-19  Kim F. Storm  <storm@cua.dk>
 -
 -      * makefile.w32-in (LIBS): Add $(WSOCK32).
 -      From David Ponce <dponce@voila.fr>.
 -
 -2002-03-18  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * process.c (wait_reading_process_input): Move variables `pname'
 -      and `pnamelen' down where they are used.
 -
 -      * bytecode.c (Fbyte_code): Discard unused computed value to
 -      prevent gcc warning.
 -
 -      * lisp.h (Fplist_member): Add prototype.
 -
 -2002-03-18  Kim F. Storm  <storm@cua.dk>
 -
 -      * config.in: Add HAVE_SENDTO, HAVE_RECVFROM, HAVE_SETSOCKOPT,
 -      HAVE_GETSOCKOPT, HAVE_GETPEERNAME, HAVE_GETSOCKNAME, and HAVE_SYS_UN_H.
 -
 -      * process.c: Define HAVE_LOCAL_SOCKETS based on HAVE_SYS_UN_H.
 -      Remove explicit GNU_LINUX settings for datagram support.
 -
 -2002-03-18  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * process.c (Fmake_network_process): Remove unused variable `sa'.
 -      Doc fix.  Add usage:.
 -      (set_socket_options): Remove unused variables `optnum' and `opttype'.
 -
 -2002-03-17  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (cursor_type_changed): New variable.
 -      (redisplay_internal): Redisplay all windows if cursor_type_changed.
 -      Clear it when clearing windows_or_buffers_changed.
 -      (try_cursor_movement, redisplay_window, try_window_id)
 -      (try_window_reusing_current_matrix): Test cursor_type_changed
 -      along with windows_or_buffers_changed.
 -
 -      * window.h (cursor_type_changed): New variable.
 -
 -      * xfns.c (x_set_cursor_type): Set cursor_type_changed,
 -      not update_mode_lines, and always set it to 1.
 -
 -      * xdisp.c (clear_garbaged_frames): Don't set windows_or_buffers_changed
 -      if no frames needed redrawing.
 -
 -2002-03-17  Kim F. Storm  <storm@cua.dk>
 -
 -      The following changes add support for network server processes,
 -      datagram connections, and local (unix) sockets.
 -
 -      * process.h (struct Lisp_Process): New member log.
 -      Doc fix: Member command used to indicate stopped network process.
 -      Doc fix: Member childp contains plist for network process.
 -      Doc fix: Member kill_without_query is inverse of query-on-exit flag.
 -
 -      * process.c (Qlocal, QCname, QCbuffer, QChost, QCservice, QCfamily)
 -      (QClocal, QCremote, QCserver, QCdatagram, QCnowait, QCnoquery, QCstop)
 -      (QCcoding, QCoptions, QCfilter, QCsentinel, QClog, QCfeature): New
 -      variables.
 -      (NETCONN1_P): New macro.
 -      (DATAGRAM_SOCKETS): New conditional symbol.
 -      (datagram_address): New array.
 -      (DATAGRAM_CONN_P, DATAGRAM_CHAN_P): New macros.
 -      (status_message): Use concat3.
 -      (Fprocess_status): Add `listen' status to doc string.  Return
 -      `stop' for a stopped network process.
 -      (Fset_process_buffer): Update contact plist for network process.
 -      (Fset_process_filter): Ditto.  Don't enable input for stopped
 -      network processes.  Server must listen, even if filter is t.
 -      (Fset_process_query_on_exit_flag, Fprocess_query_on_exit_flag):
 -      New functions.
 -      (Fprocess_kill_without_query): Removed.  Now defined in simple.el.
 -      (Fprocess_contact): Added KEY argument.  Handle datagrams.
 -      (list_processes_1): Optionally show only processes with the query
 -      on exit flag set.  Dynamically adjust column widths.  Omit tty
 -      column if not needed.  Report stopped network processes.  Identify
 -      server and datagram network processes.
 -      (Flist_processes): New optional arg `query-only'.
 -      (conv_sockaddr_to_lisp, get_lisp_to_sockaddr_size)
 -      (conv_lisp_to_sockaddr, set_socket_options)
 -      (network_process_featurep, unwind_request_sigio): New helper
 -      functions.
 -      (Fprocess_datagram_address, Fset_process_datagram_address):
 -      (Fset_network_process_options): New lisp functions.
 -      (Fopen_network_stream): Removed.  Now defined in simple.el.
 -      (Fmake_network_process): New lisp function.  Code is based on
 -      previous Fopen_network_stream, but heavily reworked with new
 -      property list based argument list, support for datagrams, server
 -      processes, and local sockets in addition to old client-only
 -      functionality.
 -      (server_accept_connection): New function.
 -      (wait_reading_process_input): Use it to handle incoming connects.
 -      Do not enable input on a new connection if process is stopped.
 -      (read_process_output): Handle datagram sockets.  Use 2k buffer for
 -      them.
 -      (send_process): Handle datagram sockets.
 -      (Fstop_process, Fcontinue_process): Apply to network processes.  A
 -      stopped network process is indicated by setting command field to t.
 -      (Fprocess_send_eof): No-op if datagram connection.
 -      (Fstatus_notify): Don't read input for a stream server socket or a
 -      stopped network process.
 -      (init_process): Initialize datagram_address array.
 -      (syms_of_process): Intern and staticpro new variables, defsubr new
 -      functions.
 -
 -2002-03-16  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (w32_to_all_x_charsets): Return correct type in
 -      startup case.
 -
 -2002-03-16  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xdisp.c (redisplay_internal, redisplay_windows):
 -      Use list_of_error to call internal_condition_case_1.
 -      (safe_eval, safe_call): Pass Qt to internal_condition_case_{1,2}
 -      so as to catch all errors with no possibility of debugger redisplay.
 -      (list_of_error): New variable.
 -      (syms_of_xdisp): Init and staticpro it.
 -
 -      * print.c (print_object): Delete `\ ' from printed rep of frame.
 -
 -2002-03-15  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * msdos.c (dos_rawgetc): Disable the x-autoselect-window feature,
 -      until its implementation is fixed.
 -
 -2002-03-14  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * xfns.c (png_load): Remove unused variable `gamma_str'.
 -
 -2002-03-14  Richard M. Stallman  <rms@gnu.org>
 -
 -      * xfns.c (x_real_positions): Handle failure in XQueryTree.
 -
 -2002-03-14  Miles Bader  <miles@gnu.org>
 -
 -      * intervals.c (adjust_for_invis_intang): New function.
 -      (set_point_both): Use `adjust_for_invis_intang' to do most of the
 -      work for dealing with invisible+intangible regions.  Do so before
 -      and after both forward and backward movements, to handle both
 -      front-sticky and rear-sticky cases.
 -      * textprop.c (text_property_stickiness): Function moved here from
 -      `editfns.c'.
 -      * intervals.h (text_property_stickiness): New declaration.
 -      * editfns.c (char_property_eq): Function removed.
 -      (text_property_stickiness): Function moved to `textprop.c'.
 -
 -2002-03-13  Jason Rumney  <jasonr@gnu.org>
 -
 -      * config.in: Add STRFTIME_NO_POSIX2.
 -
 -      * strftime.c (my_strftime) [STRFTIME_NO_POSIX2]: Handle %h, %EX
 -      and %OX when underlying strftime does not.
 -
 -2002-03-13  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * xterm.c (x_set_toolkit_scroll_bar_thumb) <USE_MOTIF>:
 -      Use a fixed-size thumb (based on an ad-hoc estimate of 30 chars per
 -      line) to avoid annoying flicker.
 -      (xm_scroll_callback): Get rid of the now unnecessary kludge.
 -      (XTread_socket): Mark it static.
 -
 -      * xdisp.c (display_mode_element): Fix int/Lisp_Object mixup.
 -
 -2002-03-13  Kim F. Storm  <storm@cua.dk>
 -
 -      * puresize.h (BASE_PURESIZE): Increase to 775000.
 -
 -2002-03-12  Juanma Barranquero  <lektu@terra.es>
 -
 -      * editfns.c (syms_of_editfns): Fix typo.
 -
 -2002-03-12  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * xsmfns.c: Include stdio.h because termhooks.h needs it.
 -      Include termopt.h for interrupt_input.
 -
 -2002-03-11  Andreas Schwab  <schwab@suse.de>
 -
 -      * coding.c (syms_of_coding) <file-coding-system-alist>: Doc fix.
 -
 -2002-03-11  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * xterm.c (note_mouse_movement): Put code for
 -      x_autoselect_window_p in #if 0.
 -
 -      * lread.c (Fload): Don't assume that message_with_string uses the
 -      string it is given like a C string.
 -
 -2002-03-10  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 -
 -      * xterm.h (x_session_check_input, x_session_initialize): Declare.
 -
 -      * xterm.c (XTread_socket): Add call to x_session_check_input and
 -      x_session_have_connection.
 -      (x_initialize): Add call to x_session_initialize.
 -
 -      * termhooks.h (enum event_kind): Add save_session_event.
 -
 -      * keyboard.c: Add Emacs event save_session_event.
 -
 -      * emacs.c (main): Add call to syms_of_xsmfns.
 -
 -      * lisp.h (syms_of_xsmfns): Declare extern.
 -
 -      * config.in: Add HAVE_X_SM.
 -
 -      * Makefile.in (LIBXT): Add -lSM -lICE
 -      if HAVE_X_SM and not USE_X_TOOLKIT.
 -      (XOBJ): New file xsmfns.c added.
 -
 -      * xsmfns.c: New file for X session management.
 -
 -2002-03-09  Jason Rumney  <jasonr@gnu.org>
 -
 -      * fileio.c (Fcopy_file) [WINDOWS_NT]: Ensure file is not
 -      read-only when setting modified time.
 -
 -2002-03-08  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * xdisp.c (move_it_vertically_backward): At the end of the function,
 -      when moving forward by lines, treat terminal frames specially.
 -
 -      * keyboard.c (echo_char): Make sure to add a separator between
 -      keys even if echo_dash hasn't been called.
 -
 -      * xdisp.c: Use new string macros.
 -      (update_echo_area): Pass number of bytes to message3 instead of
 -      number of chars.
 -      (set_message_1): Don't access a string's size_byte directly.
 -      (decode_mode_spec_coding): Use number of bytes of eoltype string
 -      instead number of chars.
 -
 -      * lisp.h (SREF, SDATA, SCHARS, SBYTES, SMBP): New macros.
 -
 -2002-03-08  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32fns.c (Fx_display_color_cells): Force 24+ bit color depths to
 -      24-bit.
 -
 -2002-03-06  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32term.c (x_draw_hollow_cursor): Draw same size as block cursor.
 -
 -2002-03-06  Gerd Moellmann  <gerd@gnu.org>
 -
 -      * keyboard.c (echo_prompt, echo_char, echo_dash, echo_now)
 -      (cancel_echoing, echo_length, echo_truncate): Changed to
 -      work with new kboard definition.
 -      (echo_now): Use message3_nolog instead of message2_nolog.
 -
 -      * alloc.c (mark_kboards): Mark echo_string.
 -
 -      * keyboard.h (ECHOBUFSIZE): Removed.
 -      (struct kboard): Member echoptr removed, member echobuf renamed
 -      to echo_string.
 -
 -      * xdisp.c (message_with_string): Use Fformat instead of doprnt and
 -      message3 instead of message2 to display the message using STRING's
 -      text properties.
 -
 -2002-03-05  Andreas Schwab  <schwab@suse.de>
 -
 -      * xdisp.c (hscroll_margin): Change to EMACS_INT.
 -
 -2002-03-05  Per Abrahamsen  <abraham@dina.kvl.dk>
 -
 -      * frame.c (default-frame-alist): Explain that setting it doesn't
 -      affect existing frames.
 -
 -2002-03-05  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * indent.c (skip_invisible): Fix my brain fart.
 -
 -      * dispnew.c (sit_for): Don't wait if executing a kbd macro.
 -
 -2002-03-04  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * dosfns.c, dosfns.h, dispnew.c, dispextern.h, commands.h, charset.c,
 -      * alloc.c, abbrev.c, emacs.c, eval.c, keyboard.c, keyboard.h,
 -      * lisp.h, lread.c, sysdep.c, termcap.c, termchar.h, w32term.c,
 -      * window.c, xdisp.c, xselect.c, xterm.c: Change defvar_int definition
 -      and variables to use EMACS_INT instead of just int.
 -
 -      * buffer.c (syms_of_buffer): Allow non-string `mode-name'.
 -
 -2002-03-04  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * sysdep.c (sys_subshell) [MSDOS]: If PWD is set in the
 -      environment, pass it down with corrected value.
 -
 -2002-03-04  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * lread.c (read_filtered_event): Do not call start_hourglass
 -      before returning.
 -
 -2002-03-04  Juanma Barranquero  <lektu@terra.es>
 -
 -      * w32term.c (x_display_and_set_cursor): Fix typo.
 -
 -2002-03-03  Richard M. Stallman  <rms@gnu.org>
 -
 -      * fileio.c (Fmake_temp_name): Doc fix.
 -
 -2002-03-03  Gary Wong  <gtw@gnu.org>
 -
 -      * termcap.c [!emacs]: Replace ospeed for building standalone
 -      libtermcap, for binary compatibility.
 -
 -      * tparam.c [!emacs]: Move #define of bcopy to after string.h.
 -
 -2002-03-03  Richard M. Stallman  <rms@gnu.org>
+ 2007-12-22  Eli Zaretskii  <eliz@gnu.org>
 -      * xrdb.c (file_p): Rename arg `path' to `filename'.
++      * callint.c (syms_of_callint) <command-history>: Add reference to
++      history-length in the doc string.
 -      * abbrev.c (Fexpand_abbrev): Increment plist as use count
 -      only if it is an integer.
++2007-12-17  Jason Rumney  <jasonr@gnu.org>
 -      * xfns.c (png_load): Set screen_gamma based on f->gamma.
 -      If png_get_sRGB gives an answer, call png_set_gamma
 -      using the default image gamma value.
++      * w32fns.c (w32_wnd_proc) <WM_KEYDOWN>: Cast char to unsigned
++      before passing as wParam.
 +2007-12-22  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * lread.c (read1): When reading from a file, default string to
 -      multibyte only if it has some multibyte characters.
 +      * dbusbind.c (xd_retrieve_arg): Handle DBUS_TYPE_BYTE,
 +      DBUS_TYPE_INT16, DBUS_TYPE_UINT16, DBUS_TYPE_INT64,
 +      DBUS_TYPE_UINT64, DBUS_TYPE_DOUBLE and DBUS_TYPE_SIGNATURE.
 +      Return float when DBUS_TYPE_INT32 or DBUS_TYPE_UINT32 do not fit
 +      as number.
 +      (Fdbus_call_method): Fix docstring.
  
 -      * print.c (print_object): Output multibyte chars 128...255
 -      using \x even if ! print_escape_multibyte.
 +2007-12-21  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * xdisp.c (display_mode_element): Move the places where
 -      bytepos, charpos, this, and lisp_string are set.
 -      Use lisp_string to set bytepos.
 +      * dbusbind.c (XD_BASIC_DBUS_TYPE, XD_DBUS_TYPE_P, XD_NEXT_VALUE):
 +      New macros.
 +      (XD_SYMBOL_TO_DBUS_TYPE): Renamed from
 +      XD_LISP_SYMBOL_TO_DBUS_TYPE.
 +      (XD_OBJECT_TO_DBUS_TYPE): Renamed from
 +      XD_LISP_OBJECT_TO_DBUS_TYPE. Simplify.
 +      (xd_signature): New function.
 +      (xd_append_arg): Compute also signatures.  Major rewrite.
 +      (xd_retrieve_arg): Make debug messages friendly.
 +      (Fdbus_call_method, Fdbus_send_signal): Extend docstring.  Check
 +      for signatures of arguments.
 +
 +2007-12-19  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (QCdbus_type_byte, QCdbus_type_boolean)
 +      (QCdbus_type_int16, QCdbus_type_uint16, QCdbus_type_int32)
 +      (QCdbus_type_uint32, QCdbus_type_int64, QCdbus_type_uint64)
 +      (QCdbus_type_double, QCdbus_type_string, QCdbus_type_object_path)
 +      (QCdbus_type_signature, QCdbus_type_array, QCdbus_type_variant)
 +      (QCdbus_type_struct, QCdbus_type_dict_entry): New D-Bus type
 +      symbols.
 +      (XD_LISP_SYMBOL_TO_DBUS_TYPE): New macro.
 +      (XD_LISP_OBJECT_TO_DBUS_TYPE): Add compound types.
 +      (xd_retrieve_value): Removed. Functionality included in ...
 +      (xd_append_arg): New function.
 +      (Fdbus_call_method, Fdbus_send_signal): Apply it.
 +
 +2007-12-16  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (top): Include <stdio.h>.
 +      (Fdbus_call_method, Fdbus_send_signal): Apply type cast in
 +      dbus_message_new_method_call and dbus_message_new_signal.
 +      (Fdbus_register_signal): Rename unique_name to uname.  Check
 +      handler for FUNCTIONP instead of CHECK_SYMBOL.  Handle case of
 +      non-existing unique name.  Fix typos in matching rule.  Return an
 +      object which is useful in Fdbus_unregister_signal.
 +      (Fdbus_unregister_signal): Reimplementation, in order to remove
 +      only the corresponding entry.
 +      (Vdbus_registered_functions_table): Change the order of entries.
 +      Apply these changes in xd_read_message and Fdbus_register_signal.
 +
 +2007-12-16  Andreas Schwab  <schwab@suse.de>
 +
 +      * fileio.c (Finsert_file_contents): Fix overflow check to not
 +      depend on undefined integer overflow.
  
 -      * xdisp.c (redisplay_internal):
 -      Call clear_image_cache only if HAVE_WINDOW_SYSTEM.
 +2007-12-14  Jason Rumney  <jasonr@gnu.org>
  
 -      * xdisp.c (display_mode_element): Merge properties specified with
 -      :propertize onto those that come with the string.
 +      * w32term.c (w32_read_socket): Use MULTIBYTE_CHAR_KEYSTROKE_EVENT
 +      for characters above 127.
  
 -2002-03-03  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-12-13  Jason Rumney  <jasonr@gnu.org>
  
 -      * xdisp.c (syms_of_xdisp) <auto-hscroll-mode>: Renamed from
 -      automatic-hscrolling.  Users changed.
 -      <hscroll-margin>: Renamed from automatic-hscroll-margin.
 -      Users changed.
 -      <hscroll-step>: Renamed from automatic-hscroll-step.  Users changed.
 +      * w32fns.c (w32_wnd_proc, Fw32_reconstruct_hot_key): Range check
 +      before dereferencing array.
 +      (lookup_vk_code): Remove zero comparison.
  
 -2002-03-02  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-12-14  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * buffer.c (syms_of_buffer) <buffer-file-coding-system>: Doc fix.
 +      * dbusbind.c (xd_retrieve_value, xd_retrieve_arg)
 +      (Fdbus_call_method, Fdbus_send_signal, xd_read_message): Use
 +      `unsigned int' instead of `uint'.
 +      (xd_read_message, Fdbus_register_signal): Split expressions into
 +      multiple lines before operators "&&" and "||", according to the
 +      GNU Coding Standards.
  
 -2002-03-02  Kim F. Storm  <storm@cua.dk>
 +2007-12-14  Eli Zaretskii  <eliz@gnu.org>
  
 -      * window.c (Fminibuffer_selected_window): New function.
 -      (syms_of_window): Defsubr it.
 +      * dispextern.h (WINDOWS_NT): Fix incorrect spelling of WINDOWSNT.
  
 -2002-03-01  Kim F. Storm  <storm@cua.dk>
 +2007-12-12  Juri Linkov  <juri@jurta.org>
  
 -      * window.h (struct window): New member phys_cursor_width.
 +      * buffer.c (Frename_buffer): In interactive spec replace
 +      `read-buffer' with `read-string' that uses `buffer-name-history'
 +      as history, and the current buffer's name as default.
  
 -      * window.c (make_window, replace_window): Init phys_cursor_width.
 +2007-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * xterm.c (x_display_and_set_cursor): Blink box cursor using
 -      hollow box cursor.  Blink bar cursor using 1 pixel wide bar.
 +      * keyboard.c (Fcommand_execute): Call Qcall_interactively instead of
 +      manipulating the backtrace manually.
 +      (make_lispy_event): Merge the ASCII and MULTIBYTE cases.
 +      (struct backtrace, backtrace_list): Remove.
 +      (command_loop_1): Remove dead var `no_direct'.
  
 -      * w32term.c (x_display_and_set_cursor): Blink box cursor using
 -      hollow box cursor.  Blink bar cursor using 1 pixel wide bar.
 +      * buffer.c (reset_buffer_local_variables): If permanent_too is 0, also
 +      preserve non-built-in buffer-local variables.
 +      (Fkill_all_local_variables): Don't re-create&re-set permanent
 +      buffer-local variables.
  
 -      * lisp.h (GCPRO6): New macro.
 +2007-12-09  Juri Linkov  <juri@jurta.org>
  
 -      * process.c (Fopen_network_stream): Use GCPRO6.
 +      * buffer.c (Frename_buffer): Change interactive spec from "s" to
 +      Lisp code that uses `read-buffer' with current buffer as default.
  
 -2002-03-01  Kim F. Storm  <storm@cua.dk>
 +2007-12-08  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * process.c (Qconnect, Qfailed): New variables.
 -      (syms_of_process): Intern and staticpro them.
 -      (Fprocess_status): Document connect and failed return values.
 -      [NON_BLOCKING_CONNECT]: New conditional.
 -      (connect_wait_mask, num_pending_connects): New variables.
 -      (status_message): Convert Qfailed status.
 -      (Fopen_network_stream): Added support for non-blocking connect.
 -      New optional args: filter, sentinel, non_blocking.  Doc updated.
 -      [HAVE_GETADDRINFO, !HAVE_GETADDRINFO]: Merged common code.
 -      (deactivate_process): Handle pending non-blocking connect.
 -      (wait_reading_process_input): Poll for status of non-blocking
 -      connects.  Exec sentinel directly when connect succeeds.
 -      (status_notify): Don't read process output if not yet connected.
 +      * dbusbind.c (xd_read_message): Generate an event for every
 +      registered handler.  There might be several handlers registered
 +      for the same signal.
 +      (Fdbus_register_signal): Don't overwrite a registration for the
 +      same signal.  Add a new registration if handlers are different.
 +      (Vdbus_registered_functions_table): Rework doc string.
  
 -2002-02-28  Kim F. Storm  <storm@cua.dk>
 +2007-12-07  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * window.c (minibuf_selected_window): Renamed from
 -      Vminibuf_selected_window.  Users changed.
 -      (syms_of_window): Staticpro it.
 +      * dbusbind.c (Fdbus_get_unique_name, xd_read_message)
 +      (Fdbus_register_signal): Use DBUS_MAXIMUM_NAME_LENGTH and
 +      DBUS_MAXIMUM_MATCH_RULE_LENGTH for string lengths.
 +      (Fdbus_call_method, Fdbus_send_signal, Fdbus_register_signal):
 +      Unify argument lists.
 +      (xd_read_message, Fdbus_register_signal) Reorder and extend event
 +      arguments and hash table keys.  Use unique name for service.
 +      (Fdbus_unregister_signal): Remove checks.
 +      (Vdbus_registered_functions_table): Fix doc string.
  
 -2002-02-26  Kim F. Storm  <storm@cua.dk>
 +2007-12-05  Magnus Henoch  <mange@freemail.hu>
  
 -      The following changes add a new Vminibuf_selected_window variable
 -      which is similar to Vminibuf_scroll_window, but which is only set
 -      on entry to the minibuffer (from a non-minibuffer window):
 +      * process.c (make_process): Initialize pty_flag to 0.
  
 -      * window.c (Vminibuf_selected_window): New variable.
 -      (struct save_window_data): New member minibuf_selected_window.
 -      (Fset_window_configuration): Restore Vminibuf_selected_window.
 -      (Fcurrent_window_configuration): Save Vminibuf_selected_window.
 -      Set minibuf_scroll_window member to nil if minibuf_level is 0.
 -      (compare_window_configurations): Compare minibuf_selected_window.
 +2007-12-05  Jason Rumney  <jasonr@gnu.org>
  
 -      * window.h (Vminibuf_selected_window): Declare extern.
 +      * image.c (xbm_load) [WINDOWSNT]: Shuffle the bits of directly
 +      specified XBMs.
  
 -      * minibuf.c (read_minibuf): Set Vminibuf_selected_window on first
 -      entry to minibuffer or on entry from a non-minibuffer window.
 +2007-12-05  Richard Stallman  <rms@gnu.org>
  
 -      * dispextern.h (CURRENT_MODE_LINE_FACE_ID_3): Compare with
 -      Vminibuf_selected_window instead of Vminibuf_scroll_window.
 +      * xdisp.c (syms_of_xdisp) <scroll-conservatively>: Doc fix.
  
 -      * xdisp.c (init_iterator): Compare with Vminibuf_selected_window
 -      instead of Vminibuf_scroll_window when deciding in which window
 -      the region should be highlighted.  Consequently, the region remains
 -      highlighteded even when a completion buffer is also displayed.
 +2007-12-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2002-02-26  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * mac.c (cfsockets_for_select) [MAC_OSX && SELECT_USE_CFSOCKET]:
 +      New variable.
 +      (mac_try_close_socket) [MAC_OSX]: New function.
 +      [MAC_OSX] (sys_select) [SELECT_USE_CFSOCKET]:
 +      Update cfsockets_for_select.  Replace invalid CFRunLoop source.
  
 -      * fileio.c (Fsubstitute_in_file_name): Fix the change from 2002-02-08.
 +      * sysdep.c (emacs_close) [MAC_OSX && HAVE_CARBON]:
 +      Use mac_try_close_socket.
  
 -      * xselect.c (Qcompound_text_with_extensions): Renamed from
 -      Qcompound_text_no_extensions.
 -      (lisp_data_to_selection_data, syms_of_xselect): Use the new name.
 +2007-12-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2002-02-26  Juanma Barranquero  <lektu@terra.es>
 +      * unexmacosx.c (unrelocate): New argument BASE.  Use it instead of
 +      reloc_base.
 +      (copy_dysymtab): Compute relocation base here.
 +      (rebase_reloc_address) [__ppc64__]: New function.
 +      (copy_dysymtab) [__ppc64__]: Use it if relocation base needs to be
 +      changed.
  
 -      * w32proc.c (syms_of_ntproc): Doc fix.
 +2007-12-05  Jason Rumney  <jasonr@gnu.org>
  
 -2002-02-24  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * w32proc.c (sys_spawnve): Quote args with wildcards.
  
 -      * intervals.h: Include "dispextern.h" unconditionally.
 +2007-12-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2002-02-24  Jason Rumney  <jasonr@gnu.org>
 +      * unexmacosx.c (copy_data_segment): Also copy __gcc_except_tab and
 +      __objc_* sections.
 +      (unrelocate) [_LP64]: Set relocation base to address of data segment.
  
 -      * Makefile.in (WINNT_SUPPORT) [WINDOWSNT]: Add w32-vars.elc
 -      and disp-table.elc.
 -      (lisp): Add emacs-lisp/backquote.elc.
 +2007-12-05  Michael Albinus  <michael.albinus@gmx.de>
  
 -2002-02-24  Kim F. Storm  <storm@cua.dk>
 +      * dbusbind.c (xd_read_message): Return value is a Lisp_Object.
 +      Move check for Vdbus_registered_functions_table to
 +      xd_read_queued_messages.
 +      (xd_read_queued_messages): Protect xd_read_message calls by
 +      internal_condition_case_1.
  
 -      * keymap.c (Flookup_key): Fix problem in 2001-12-28 patch:
 -      The validation of the event type was too strict as it didn't
 -      allow string events; buffer names are used in bindings for
 -      menu-bar-select-buffer (see `menu-bar-update-buffers').
 +2007-12-04  Michael Albinus  <michael.albinus@gmx.de>
  
 -2002-02-23  Kim F. Storm  <storm@cua.dk>
 +      * dbusbind.c (QCdbus_system_bus, QCdbus_session_bus): Renamed from
 +      Qdbus_system_bus and Qdbus_session_bus, respectively.
 +      (Vdbus_intern_symbols): Removed.
 +      (Vdbus_registered_functions_table): New hash table.
 +      (XD_SYMBOL_INTERN_SYMBOL): Removed.
 +      (xd_read_message, Fdbus_register_signal, Fdbus_unregister_signal):
 +      Rewritten in order to manage registered functions by hash table
 +      Vdbus_registered_functions_table.
  
 -      The following changes rework my patch of 2002-02-06 which
 -      added command remapping by entering the commands directly into
 -      the keymaps.  Now, command remapping uses an explicit `remap'
 -      prefix in the keymaps, i.e. [remap COMMAND].
 +2007-12-03  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -      * keymap.c (Qremap, remap_command_vector): New variables.
 -      (is_command_symbol): Remove function.
 -      (Fdefine_key): No longer accept a symbol for KEY.
 -      Added validation of [remap COMMAND] argument for KEY.
 -      The DEF is no longer required to be a symbol when remapping a command.
 -      (Fremap_command): New function to remap command through keymaps.
 -      (Flookup_key): Perform command remapping initiated by
 -      Fremap_command directly for speed.
 -      (Fkey_binding): Use Fremap_command for command remapping.
 -      (where_is_internal): Handle new command remapping representation.
 -      (syms_of_keymap): Intern Qremap, initialize remap_command_vector,
 -      staticpro them.  Defsubr Fremap_command.
 +      * xterm.c: Update URL to Window Manager Specification in comment.
  
 -      * keymap.h (Fremap_command): Declare extern.
 -      (is_command_symbol): Remove extern.
 +2007-12-02  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * keyboard.c (command_loop_1): Use Fremap_command for command
 -      remapping; now try command remapping for all symbols.
 +      * config.in (HAVE_DBUS): Add.
  
 -2002-02-23  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * Makefile.in: (HAVE_DBUS): Add D-Bus definitions if defined.
 +      (ALL_CFLAGS): Add ${DBUS_CFLAGS}.
 +      (obj): Add $(DBUS_OBJ).
 +      (LIBES): Add $(DBUS_LIBS).
 +      (dbusbind.o): New target.
  
 -      * coding.h (run_pre_post_conversion_on_str): Add prototype.
 +      * dbusbind.c: New file.
  
 -2002-02-23  Jason Rumney  <jasonr@gnu.org>
 +      * emacs.c (main): Call syms_of_dbusbind when HAVE_DBUS is defined.
  
 -      * w32select.c (Fw32_set_clipboard_data): Run pre-write-conversion
 -      on the string before encoding it.
 -      (Fw32_get_clipboard_data): Run post-read-conversion on the string
 -      after decoding it.
 +      * keyboard.c: All D-Bus related code is wrapped by "#ifdef HAVE_DBUS".
 +      (Qdbus_event) New Lisp symbol.
 +      (kbd_buffer_get_event, make_lispy_event): Handle DBUS_EVENT.
 +      (gobble_input): Call xd_read_queued_messages, reading D-Bus
 +      messages.
 +      (keys_of_keyboard ): Define dbus-event.
  
 -      * w32fns.c (w32_wnd_proc) <WM_TIMER>: Fix last change.
 +      * termhooks.h (event_kind): Add DBUS_EVENT when HAVE_DBUS is defined.
  
 -2002-02-23  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-12-01  Richard Stallman  <rms@gnu.org>
  
 -      * w32term.c (enter_timestamp): Remove unused static variable to
 -      prevent warning.
 +      * search.c (syms_of_search) <inhibit-changing-match-data>: Doc fix.
  
 -      * xterm.c (enter_timestamp): Put in #if 0 to prevent warning.
 +2007-11-30  Jason Rumney  <jasonr@gnu.org>
  
 -2002-02-23  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * w32console.c (w32con_ins_del_lines, scroll_line): Clip to window.
 +      (w32con_reset_terminal_modes): Clear screen buffer.
 +      (w32_face_attributes): Don't use color indexes that are out of range.
 +      Only reverse the default colors.
  
 -      * w16select.c (Fw16_get_clipboard_data): Fix last change.
 +      * xfaces.c (map_tty_color, tty_color_name): Remove special case for
 +      WINDOWSNT.
  
 -      * xselect.c (selection_data_to_lisp_data): Fix last change.
 +      * w32console.c, w32term.h (vga_stdcolor_name): Remove.
  
 -2002-02-22  Jason Rumney  <jasonr@gnu.org>
 +2007-11-29  Jason Rumney  <jasonr@gnu.org>
  
 -      * w32term.h (struct w32_output): New member menu_command_in_progress.
 +      * w32console.c: Leave HAVE_WINDOW_SYSTEM defined.
 +      (w32_face_attributes): Use Vtty_defined_color_alist to determine
 +      if the terminal colors are initialized.
 +      (unspecified_fg, unspecified_bg): Remove unused declarations.
  
 -      * w32menu.c (menubar_selection_callback): Free the menu and
 -      clear the menu_command_in_progress flag.
 +2007-11-29  Andreas Schwab  <schwab@suse.de>
  
 -      * w32fns.c (mouse_move_timer, mouse_button_timer): Initialize.
 -      (menu_free_timer): New variable.
 -      (MENU_FREE_ID, MENU_FREE_DELAY): New constants.
 -      (w32_wnd_proc) <WM_TIMER>: Handle menu_free_timer.
 -      <WM_EXITMENULOOP>: Delay before freeing menu.  Do nothing if a
 -      menu command is in progress.
 -      <WM_COMMAND>: Set the menu_command_in_progress flag.
 -      Kill any menu_free_timer that is running.
 +      * keyboard.c (apply_modifiers): Fix typo.
  
 -      * w32term.c (w32_text_out): Renamed from W32_TEXTOUT.
 -      Call ExtTextOutA rather than ExtTextOut.
 +2007-11-29  Richard Stallman  <rms@gnu.org>
  
 -2002-02-22  Eli Zaretskii  <eliz@gnu.org>
 +      * keymap.c (Fcurrent_local_map): Doc fix.
  
 -      * puresize.h (BASE_PURESIZE): Increase to 755000.
 +2007-11-28  Petr Salinger  <Petr.Salinger@seznam.cz>  (tiny change)
  
 -2002-02-22  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * s/gnu-kfreebsd.h: New file.
  
 -      * w16select.c (Fw16_set_clipboard_data): Run pre-write-conversion
 -      on the string before encoding it.
 -      (Fw16_get_clipboard_data): Run post-read-conversion on the string
 -      after decoding it.
 +2007-11-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2002-02-22  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer):
 +      Don't cast redundantly.
  
 -      Support for ICCCM Extended Segments in X selections:
 +      * keyboard.c (KEY_TO_CHAR): New macro.
 +      (parse_modifiers, apply_modifiers): Accept integer arguments.
 +      (read_key_sequence): Use them to unify the "shift->unshift" mapping
 +      for chars and symbol keys.
 +      After doing such remapping, apply function-key-map again.
  
 -      * xselect.c <Qcompound_text_no_extensions>: New variable.
 -      (syms_of_xselect): Intern and staticpro it.
 -      (selection_data_to_lisp_data): Run post-read-conversion on decoded
 -      selection text.
 -      (lisp_data_to_selection_data): If next-selection-coding-system is
 -      compound-text-no-extensions, set the type of selection to be
 -      compound-text.
 +2007-11-27  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * xterm.h (x_encode_text): Update prototype.
 +      * Makefile.in (SOME_MACHINE_LISP): Remove VMS files, they are not
 +      compiled anymore.
  
 -      * xfns.c (x_encode_text): Accept additional arg SELECTIONP; all
 -      callers changed.  If SELECTIONP is non-zero, run the
 -      pre-write-conversion function before encoding the selection text.
 +2007-11-26  Andreas Schwab  <schwab@suse.de>
  
 -2002-02-21  Kim F. Storm  <storm@cua.dk>
 +      * process.c (list_processes_1): Fix indentation level of the
 +      command column.
  
 -      * frame.c (syms_of_frame): Change mouse-highlight default to t.
 +2007-11-23  Andreas Schwab  <schwab@suse.de>
  
 -      * keyboard.c (kbd_buffer_get_event) [WINDOWSNT]:
 -      Correct composing of language-change event.
 +      * editfns.c (Fformat): Handle %c specially since it requires the
 +      argument to be of type int.
  
 -2002-02-20  Kim F. Storm  <storm@cua.dk>
 +2007-11-23  Markus Triska  <markus.triska@gmx.at>
  
 -      * keyboard.c (menu_bar_items): Don't include keymap or local-map
 -      bindings at PT when building menu (the menu is not updated often
 -      enough for this to work reliable).
 -      (tool_bar_items): Likewise.
 -      (current_active_maps): Removed unused (and buggy) function.
 +      * emacs.c (main): Call init_editfns before init_process, since
 +      init_process sets Vprocess_connection_type depending on OS release
  
 -2002-02-20  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * xfns.c (gif_load): Use correct width and height for GIF images.
 +      * data.c (do_symval_forwarding): Use same code as in find_symbol_value.
 +      (find_symbol_value): Use do_symval_forwarding.
  
 -2002-02-19  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * data.c (set_internal): Set the value in the `cons-cell' (for
 +      Buffer_Local_values) not only for frame-local variables.
  
 -      * floatfns.c (Fatan): Accept an optional second arg and call
 -      atan2 if passed 2 args.
 +2007-11-22  Andreas Schwab  <schwab@suse.de>
  
 -2002-02-18  Jason Rumney  <jasonr@gnu.org>
 +      * data.c (Fnumber_to_string): Add cast when passing EMACS_INT
 +      values to sprintf.
 +      * keymap.c (Fsingle_key_description): Likewise.
 +      * print.c (print_object): Likewise.
  
 -      * w32term.c (glyph_rect): Determine the row and glyph more precisely.
 +2007-11-22  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -2002-02-17  Jason Rumney  <jasonr@gnu.org>
 +      * gtkutil.c (update_frame_tool_bar): Don't call x-gtk-map-stock if
 +      file for image is nil.
  
 -      * w32term.c (x_autoselect_window_p): New variable.
 -      (syms_of_w32term): DEFVAR_BOOL and initialize it.
 -      (note_mouse_movement): Use it.
 +2007-11-22  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * w32fns.c (w32_load_system_font): Never set fonts_changed_p to zero.
 +      * term.c: Include stdarg.h.
 +      (fatal): Implement using varargs.
 +      * lisp.h (fatal): Add argument types. (Restore 2005-09-30 change).
  
 -      * w32bdf.c (w32_load_bdf_font): Maybe set fonts_changed_p.
 +2007-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * w32fns.c (Qfullscreen, Qfullwidth, Qfullheight, Qfullboth):
 -      New variables.
 -      (syms_of_w32fns): Intern and staticpro them.
 -      (x_frame_parms) <"fullscreen">: New parameter.
 -      (x_fullscreen_move, x_set_fullscreen): New functions.
 -      (x_set_frame_parameters): Support Qfullscreen.
 -      (x_real_positions): Save x/y_pixels_diff frame params.
 -      (x_figure_window_size): Support full-screen frames.
 -      (Fx_create_frame): Default the fullscreen parameter.
 +      * lisp.h (struct Lisp_Buffer_Objfwd): Add a `slottype' field.
 +      * data.c (store_symval_forwarding): Get type from buffer_objfwd.
 +      Update call to buffer_slot_type_mismatch.
 +      * buffer.h (buffer_local_types, PER_BUFFER_TYPE): Remove.
 +      (buffer_slot_type_mismatch): Update.
 +      * buffer.c (buffer_local_types): Remove.
 +      (buffer_slot_type_mismatch): Get the symbol and type as arguments.
 +      (defvar_per_buffer): Set the type in the buffer_objfwd.
  
 -      * w32term.c (x_check_fullscreen, x_check_fullscreen_move)
 -      (x_fullscreen_adjust): New functions.
 -      (w32_read_socket) <WM_WINDOWPOSCHANGED>: Don't resize to
 -      fullscreen.  Call x_check_fullscreen_move, and set the
 -      want_fullscreen member of output_data.w32
 -      <WM_ACTIVATE, WM_ACTIVATEAPP>: Call x_check_fullscreen.
 +2007-11-21  Jason Rumney  <jasonr@gnu.org>
  
 -      * w32term.h: New enum for FULLSCREEN_* constants.
 -      (struct w32_output): New members want_fullscreen, x_pixels_diff,
 -      y_pixels_diff, x_pixels_outer_diff, and y_pixels_outer_diff.
 -      (x-fullscreen-adjust): New prototype.
 +      * w32bdf.c (w32_init_bdf_font, w32_BDF_to_x_font):
 +      CreateFileMapping returns NULL on failure.
  
 -2002-02-17  Kim F. Storm  <storm@cua.dk>
 +2007-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * frame.c (Vmouse_highlight): New variable.
 -      (syms_of_frame): DEFVAR_LISP it.
 +      * search.c (Fset_match_data): Remove the `evaporate' feature.
 +      (unwind_set_match_data): Don't use the `evaporate' feature.
  
 -      * frame.h (Vmouse_highlight): Declare extern.
 +2007-11-21  Jason Rumney  <jasonr@gnu.org>
  
 -      * xterm.h (struct x_display_info): Add mouse_face_hidden.
 +      * dispnew.c (init_display) [WINDOWSNT]: Hardcode terminal_type.
  
 -      * xterm.c (disable_mouse_highlight): Removed variable.
 -      (note_mouse_highlight): Don't highlight if Vmouse_highlight is nil.
 -      (show_mouse_face): Don't show highlight if mouse_face_hidden is set.
 -      (XTread_socket): Turn mouse_face_hidden off after mouse movement,
 -      and on after keyboard input.
 -      (x_term_init): Initialize mouse_face_hidden.
 +      * w32console.c (w32con_write_glyphs): Remove unused variables.
  
 -      * msdos.h (struct display_info): Add mouse_face_hidden.
 +2007-11-20  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * msdos.c (disable_mouse_highlight): Removed variable.
 -      (show_mouse_face): Don't show highlight if mouse_face_hidden is set.
 -      (IT_note_mouse_highlight): Don't highlight if Vmouse_highlight is nil.
 -      (internal_terminal_init): Initialize mouse_face_hidden.
 -      (dos_rawgetc): Turn mouse_face_hidden off after mouse movement,
 -      and on after keyboard input.
 +      * macterm.c (mac_term_init): Call add_keyboard_wait_descriptor.
  
 -      * w32term.h (struct w32_display_info): Add mouse_face_hidden.
 +      * s/darwin.h (MULTI_KBOARD): Remove.
  
 -      * w32term.c (disable_mouse_highlight): Removed variable.
 -      (note_mouse_highlight): Disable highlight if Vmouse_highlight is nil.
 -      (show_mouse_face): Don't show highlight if mouse_face_hidden is set.
 -      (w32_read_socket): Turn mouse_face_hidden off after mouse movement,
 -      and on after keyboard input.
 -      (w32_initialize_display_info): Initialize mouse_face_hidden.
 +      * macfns.c (x_create_tip_frame, Fx_create_frame)
 +      (x_create_tip_frame): Don't deal with MULTI_KBOARD.
  
 -2002-02-16  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-11-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * msdos.c (last_mouse_window): New variable.
 -      (dos_rawgetc): Fix last change--if the mouse is in the same window
 -      as recorded in last_mouse_window, don't select this window.
 +      * buffer.c (Fbuffer_local_value): Remove redundant test.
 +      (swap_out_buffer_local_variables): Swap out binding in `buffer' rather
 +      than in `current-buffer' to match the comment.
 +      Do the swap using swap_in_global_binding.
  
 -      * Makefile.in (lisp, shortlisp): Use cus-start.elc, not cus-start.el.
 +      * data.c (store_symval_forwarding, set_internal):
 +      * eval.c (specbind): Remove dead code.
  
 -      * msdos.c (x_autoselect_window_p): New variable.
 -      (syms_of_msdos): Defvar it.
 -      (dos_rawgetc): If x_autoselect_window_p is set, select the window in
 -      which the last mouse movement occured, unless it is already selected.
 +      * coding.c (detect_coding, Fupdate_coding_systems_internal):
 +      * fns.c (Fmd5): Use find_symbol_value rather than SYMBOL_VALUE
 +      Since we do not want to see internal Lisp_*fwd objects here.
  
 -      * xdisp.c (automatic_hscroll_margin, Vautomatic_hscroll_step):
 -      New variables.
 -      (syms_of_xdisp): DEVFAR them.
 -      (hscroll_window_tree): Use automatic_hscroll_margin and
 -      Vautomatic_hscroll_step to compute the amount of window scrolling.
 +2007-11-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -2002-02-16  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * sysdep.c (init_system_name): Use getaddrinfo if available.
  
 -      * xterm.c (x-autoselect-window): New variable.
 -      (note_mouse_movement): Use it.
 +      * xterm.c (x_scroll_bar_set_handle, x_scroll_bar_handle_click)
 +      (x_scroll_bar_note_movement): start, end, with, height in struct
 +      scroll_bar are integers and not Lisp_Object, so remove XINT for them.
  
 -      * keyboard.c: Do not include "systime.h" twice.
 +2007-11-17  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2002-02-15  Andreas Schwab  <schwab@suse.de>
 +      * puresize.h (BASE_PURESIZE): Increase to 1190000.
  
 -      * puresize.h (PURESIZE_RATIO): Increase to 9/5.
 +2007-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * alloc.c (NSTATICS): Increase to 1280.
 +      * buffer.h (struct buffer): Move `undo_list' back to before `name'.
 +      This undoes Richard's change of 14-Oct-2002.
 +
 +      * alloc.c (allocate_other_vector):
 +      * lisp.h (allocate_other_vector): Remove.
 +
 +      * window.c (struct save_window_data): Move non-lisp data to the end
 +      and make it `int' rather than Lisp_Object.
 +      (Fcurrent_window_configuration): Use ALLOCATE_PSEUDOVECTOR.
 +      Done wrap/unwrap integer values.
 +      (Fset_window_configuration, compare_window_configurations):
 +      Update use of fields to their new types.
 +
 +      * xterm.h (struct scroll_bar): Only use Lisp_Object for lisp data.
 +      Turn integer fields into `int'.  Merge x_window_low and x_window_high.
 +      (SCROLL_BAR_PACK, SCROLL_BAR_UNPACK, SCROLL_BAR_X_WINDOW)
 +      (SET_SCROLL_BAR_X_WINDOW): Remove.
 +      (SCROLL_BAR_X_WIDGET, SET_SCROLL_BAR_X_WIDGET):
 +      Access the new x_window field directly.
 +      * xterm.c (x_scroll_bar_create): Use a pseudovector.
 +      Don't wrap/unwrap integers into Lisp_Objects.
 +      (XTset_vertical_scroll_bar, x_scroll_bar_handle_click)
 +      (x_scroll_bar_report_motion):
 +      Don't wrap/unwrap integers into Lisp_Objects.
 +      (x_term_init): Use SDATA.
 +      (x_window_to_scroll_bar, x_create_toolkit_scroll_bar)
 +      (x_scroll_bar_set_handle, x_scroll_bar_remove)
 +      (XTset_vertical_scroll_bar, x_scroll_bar_expose)
 +      (x_scroll_bar_report_motion, x_scroll_bar_clear):
 +      * xfns.c (x_set_background_color):
 +      * gtkutil.c (xg_create_scroll_bar, xg_set_toolkit_scroll_bar_thumb):
 +      Access the new x_window field directly.
 +
 +      * alloc.c (ALLOCATE_PSEUDOVECTOR): Move to lisp.h.
 +      (allocate_pseudovector): Make non-static.
 +
 +      * lisp.h (enum pvec_type): New tag PVEC_OTHER.
 +      (allocate_pseudovector): Declare.
 +      (ALLOCATE_PSEUDOVECTOR): Move from alloc.c
  
 -2002-02-15  Kai Gro\e,A_\e(Bjohann  <Kai.Grossjohann@CS.Uni-Dortmund.DE>
 +2007-11-15  Andreas Schwab  <schwab@suse.de>
  
 -      * alloc.c (NSTATICS): Bump to 1026.
 +      * editfns.c (Fformat): Correctly format EMACS_INT values.
 +      Also take precision into account when formatting an integer.
  
 -      * xterm.c (Vx_alt_keysym, Vx_hyper_keysym, Vx_meta_keysym)
 -      (Vx_super_keysym): New variables.
 -      (syms_of_xterm): DEFVAR_LISP them.
 -      (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): Use the
 -      variables to determine which keys to use for the various modifiers.
 +      * keyboard.c (Fevent_symbol_parse_modifiers): Fix declaration.
  
 -2002-02-13  Kim F. Storm  <storm@cua.dk>
 +2007-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * window.c (Vmode_line_in_non_selected_windows): Removed.
 -      (mode_line_in_non_selected_windows): New variable.
 -      (syms_of_window): DEFVAR_BOOL it.
 +      * keyboard.c (Fevent_symbol_parse_modifiers): New function.
 +      (syms_of_keyboard): Defsubr it.
  
 -      * dispextern.h (CURRENT_MODE_LINE_FACE_ID_3):
 -      Use mode_line_in_non_selected_windows.
 -      (mode_line_in_non_selected_windows): Declare extern.
 -      (Vmode_line_in_non_selected_windows): Removed extern.
 +      * data.c (swap_in_global_binding): Fix longstanding bug where
 +      store_symval_forwarding was not called with the right second argument,
 +      thus causing objfwd-ing from being dropped.
  
 -2002-02-13  Richard M. Stallman  <rms@gnu.org>
 +2007-11-14  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * keyboard.c (Fthis_command_keys, Fthis_command_keys_vector)
 -      (Fthis_single_command_keys, Fthis_single_command_raw_keys)
 -      (Fclear_this_command_keys): Doc fixes.
 +      * macfns.c (Fx_create_frame, Fx_display_pixel_width)
 +      (Fx_display_pixel_height, Fx_display_planes)
 +      (Fx_display_color_cells, Fx_server_max_request_size)
 +      (Fx_server_vendor, Fx_server_version, Fx_display_backing_store)
 +      (Fx_display_visual_class, Fx_display_save_under):
 +      * w32fns.c (Fx_create_frame, Fx_display_pixel_width)
 +      (Fx_display_pixel_height, Fx_display_planes)
 +      (Fx_display_color_cells, Fx_server_max_request_size)
 +      (Fx_server_vendor, Fx_server_version, Fx_display_screens)
 +      (Fx_display_mm_height, Fx_display_mm_width)
 +      (Fx_display_backing_store, Fx_display_visual_class)
 +      (Fw32_select_font, Fx_display_save_under):
 +      * xfns.c (Fx_create_frame, Fx_display_pixel_width)
 +      (Fx_display_pixel_height, Fx_display_planes)
 +      (Fx_display_color_cells, Fx_server_max_request_size)
 +      (Fx_server_vendor, Fx_server_version, Fx_display_backing_store)
 +      (Fx_display_save_under): Fix typos in docstrings.
  
 -      * xfaces.c (Finternal_make_lisp_face, Finternal_copy_lisp_face)
 -      (update_face_from_frame_parameter): Increment face_change_count
 -      and windows_or_buffers_changed to force redisplay using changed faces.
 +2007-11-14  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * xdisp.c (QCpropertize): New variable.
 -      (mode_line_proptrans_alist): New variable.
 -      (display_mode_element): New arg PROPS; all calls changed.
 -      Implement this, for strings.
 -      Handle literal output of strings by sharing the
 -      main-line code for strings, using local var `literal'.
 -      Handle :propertize feature.
 -      (syms_of_xdisp): Initialze and staticpro QCpropertize and
 -      mode_line_proptrans_alist.
 +      * w32fns.c (Fw32_registered_hot_keys): Don't return the nil values
 +      corresponding to deleted entries; they are an implementation detail.
 +      (gray_bitmap_width, gray_bitmap_height, gray_bitmap_bits):
 +      Remove variables.
 +      (w32_pass_extra_mouse_buttons_to_system, w32_strict_fontnames)
 +      (w32_pass_multimedia_buttons_to_system, w32_strict_painting)
 +      (Vw32_charset_info_alist, w32_to_x_color, w32_init_class)
 +      (w32_createscrollbar, w32_createwindow, my_post_msg, w32_get_modifiers)
 +      (w32_grabbed_keys, cancel_all_deferred_msgs): Make static.
 +      (Fw32_define_rgb_color, Fw32_load_color_file)
 +      (syms_of_w32fns) <w32-pass-multimedia-buttons-to-system>:
 +      Fix typos in docstrings.
 +      (Fx_server_version): Reflow docstring.
 +      (Fw32_shell_execute): Doc fixes.
  
 -2002-02-11  Kim F. Storm  <storm@cua.dk>
 +2007-11-13  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * window.c (Vmode_line_in_non_selected_windows): New variable.
 -      (syms_of_window): DEFVAR_LISP it.
 +      * w32fns.c (Fw32_register_hot_key): Don't try to register hot key
 +      if w32_parse_hot_key returned nil.
  
 -      * dispextern.h (CURRENT_MODE_LINE_FACE_ID_3): New macro.
 -      (CURRENT_MODE_LINE_FACE_ID): Use it.
 -      (Vmode_line_in_non_selected_windows): Declare extern.
 +2007-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * xdisp.c (display_mode_lines): Use CURRENT_MODE_LINE_FACE_ID_3
 -      to get mode line face.
 +      * xdisp.c (load_overlay_strings): Fix copy&paste typo.
  
 -2002-02-11  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-11-09  Jason Rumney  <jasonr@gnu.org>
  
 -      * msdos.c (Vx_bitmap_file_path, x_stretch_cursor_p): Remove these
 -      variables; cus-start.el doesn't need them anymore.
 +      * s/ms-w32.c (USE_TOOLKIT_SCROLL_BARS): Define.
  
 -2002-02-09  Kim F. Storm  <storm@cua.dk>
 +      * w32term.c (w32_scroll_bar_handle_click): Use SCROLL_BAR_CLICK_EVENT.
  
 -      * insdel.c (make_gap_smaller): Preserve BEG_UNCHANGED during gap
 -      reduction.  This fixes a display problem where stray newlines were
 -      inserted in the window (corrected by C-l).  Clarified code (IMHO).
 +      * keyboard.c (discard_mouse_events, make_lispy_event) [WINDOWSNT]:
 +      Remove W32_SCROLL_BAR_CLICK_EVENT.
  
 -2002-02-09  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * termhooks.h (enum event_kind) [WINDOWSNT]: Likewise.
 +      Add MULTIMEDIA_KEY_EVENT.
  
 -      * dispextern.h (CURRENT_MODE_LINE_FACE_ID): Fix last change.
 +      * keyboard.c (lispy_function_keys) [WINDOWSNT]: Add more keys.
 +      (lispy_multimedia_keys) [WINDOWSNT]: New array.
 +      (make_lispy_event) [WINDOWSNT]: Use it to translate
 +      MULTIMEDIA_KEY_EVENT.
  
 -      * xdisp.c (display_mode_lines): Fix last change.
 +      * w32term.h (WM_APPCOMMAND): Define if not already.
 +      (GET_APPCOMMAND_LPARAM): Likewise.
  
 -2002-02-09  Jason Rumney  <jasonr@gnu.org>
 +      * w32term.c (w32_read_socket): Generate MULTIMEDIA_KEY_EVENT from
 +      WM_APPCOMMAND.
  
 -      * w32fns.c (enum_font_cb2): Don't let charsets unknown to Windows
 -      match each other.
 -      (w32_load_system_font): Prevent Cleartype fonts from loading.
 -      (Fx_show_tip): Ensure tip frames are above other topmost windows.
 +      * w32fns.c (w32_pass_multimedia_buttons_to_system): New user option.
 +      (syms_of_w32fns): Export and initialize it.
 +      (w32_wnd_proc): Pass WM_APPCOMMAND on to w32_read_socket.
  
 -2002-02-09  Kim F. Storm  <storm@cua.dk>
 +2007-11-09  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * dispextern.h (CURRENT_MODE_LINE_FACE_ID): New macro.
 -      (CURRENT_MODE_LINE_HEIGHT): Use it.
 -      (enum face_id): Add MODE_LINE_INACTIVE_FACE_ID.
 +      * dispextern.h (struct it): Don't define OVERLAY_STRING_CHUNK_SIZE
 +      twice.
  
 -      * xdisp.c (window_box_height): Use CURRENT_MODE_LINE_FACE_ID.
 -      (pos_visible_p, handle_face_prop): Likewise.
 -      (display_mode_lines): Likewise, but for the real selected window.
 -      (init_iterator) [row == NULL]: Handle MODE_LINE_INACTIVE_FACE_ID.
 +      * xdisp.c (handle_face_prop): Fix last change.
  
 -      * xfaces.c (Qmode_line_inactive): New face variable for mode-line
 -      in non-selected windows.
 -      (realize_basic_faces): Realize it.
 -      (syms_of_term): Intern and staticpro it.
 +2007-11-09  Richard Stallman  <rms@gnu.org>
  
 -2002-02-08  Kim F. Storm  <storm@cua.dk>
 +      * xdisp.c (handle_face_prop): Test for strings that came from overlays,
 +      not just for after-strings and before-strings.
 +      Call face_for_overlay_string and pass the overlay to it.
 +      (handle_display_prop): Determine whether property came from an overlay.
 +      Pass OVERLAY arg to handle_single_display_spec.
 +      (handle_single_display_spec): New arg OVERLAY sets it->from_overlay.
 +      (load_overlay_strings): Fill in it->string_overlays.
 +      (get_overlay_strings_1, push_it, pop_it): Handle it->from_overlays.
  
 -      * alloc.c (SETJMP_WILL_LIKELY_WORK, SETJMP_WILL_NOT_WORK):
 -      Changed mail addresses to emacs-devel@gnu.org.
 +      * xfaces.c (face_for_overlay_string): Function renamed from
 +      face_at_buffer_position_no_overlays, and add arg OVERLAY.
  
 -2002-02-08  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * dispextern.h (struct it): New elt string_overlays.
 +      New elt from_overlay, also in stack.
 +      Rearrange a few elements.
 +      (face_for_overlay_string): Decl renamed from
 +      face_at_buffer_position_no_overlays, and add argument.
  
 -      * fileio.c (Fsubstitute_in_file_name): If the file name includes
 -      ~user, and there's no such user, don't discard everything before ~user.
 +2007-11-09  Richard Stallman  <rms@gnu.org>
  
 -      * floatfns.c (Fround): Doc fix.
 +      * xdisp.c (handle_face_prop): Use face_at_buffer_position_no_overlays
 +      to get the base face for an overlay string.
  
 -2002-02-08  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * dispextern.h (face_at_buffer_position_no_overlays): Add decl.
  
 -      * sysdep.c (init_system_name): Put unused variable `p' in #if 0.
 +      * xfaces.c (face_at_buffer_position_no_overlays): New function.
  
 -2002-02-07  Stefan Monnier  <monnier@cs.yale.edu>
 +      * xdisp.c (handle_stop): Move some code out of loop.
  
 -      * lisp.h (Fx_file_dialog): Add extern decl (used in fileio.c).
 +2007-11-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2002-02-07  Kim F. Storm  <storm@cua.dk>
 +      * macfns.c [USE_ATSUI] (Fmac_atsu_font_face_attributes):
 +      Fix conversion from Lisp object to ATSUFontID.
  
 -      * keymap.c (where_is_internal): Only check whether definition is
 -      remapped if it fulfills is_command_symbol.
 +2007-11-09  Jason Rumney  <jasonr@gnu.org>
  
 -2002-02-07  Andreas Schwab  <schwab@suse.de>
 +      * xdisp.c (Fformat_mode_line): Do nothing when noninteractive.
  
 -      * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT): Define to 2 for m68k.
 +2007-11-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * alloc.c (mark_stack): Don't assume sizeof (Lisp_Object) is 4.
 +      * unexmacosx.c (unexec_regions_recorder, unexec_regions_merge):
 +      Don't assume regions are aligned to page boundary.
 +      (print_load_command_name): Add LC_UUID if defined.
  
 -2002-02-06  Kim F. Storm  <storm@cua.dk>
 +2007-11-09  Richard Stallman  <rms@gnu.org>
  
 -      * keymap.c (Fdefine_key): Allow symbol as KEY argument for
 -      defining command remapping.  Doc updated.
 -      (Flookup_key): Remap command through keymap if KEY is a symbol.
 -      (is_command_symbol): New function.
 -      (Fkey_binding): Use it.  New optional argument NO-REMAP.
 -      Doc updated.  Callers changed.  Perform command remapping via
 -      recursive call unless that arg is non-nil.
 -      (where_is_internal): New argument no_remap.  Callers changed.
 -      Call recursively to find original key bindings for a remapped
 -      comand unless that arg is non-nil.
 -      (Fwhere_is_internal): New optional argument NO-REMAP.
 -      Doc updated.  Callers changed.  Pass arg to where_is_internal.
 +      * emacs.c (syms_of_emacs) <installation-directory>: Reflow docstring.
  
 -      * keymap.h (Fkey_binding, Fwhere_is_internal): Update prototype.
 -      (is_command_symbol): Add prototype.
 +2007-11-07  Jason Rumney  <jasonr@gnu.org>
  
 -      * keyboard.c (Vthis_original_command): New variable.
 -      (syms_of_keyboard): DEFVAR_LISP it.
 -      (command_loop_1): Set it, and perform command remapping.
 +      * s/windows95.h: Remove.
  
 -2002-02-06  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-11-06  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -      * keyboard.c (recursive_edit_1): Call cancel_hourglass unconditionally.
 +      * gtkutil.c (xg_tool_bar_menu_proxy): Handle GTK_IMAGE_ICON_NAME and
 +      abort with a message on unhandled store_type values.
  
 -2002-02-06  Jason Rumney  <jasonr@gnu.org>
 +2007-11-01  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -      * w32term.c (w32_native_per_char_metric): Disable 2002-01-20 change.
 +      * xterm.c, xfns.c, xselect.c, xterm.h, s/msdos.h, s/sco4.h, s/sco5.h:
 +      Remove HAVE_X11R5 and HAVE_X11R4.
  
 -2002-02-06  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-11-01  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * charset.c (get_charset_id): Use if-else instead of ?:.
 +      * Makefile.in: Remove references to sunfns.c and sunfns.o.
  
 -2002-02-06  Richard M. Stallman  <rms@gnu.org>
 +2007-11-01  Johan Bockg\e,Ae\e(Brd  <bojohan@gnu.org>
  
 -      * filelock.c (S_ISLNK): Define if not defined.
 +      * macterm.c, w32term.c, xterm.c (x_draw_stretch_glyph_string):
 +      Don't set s->stippled_p here, since it has already been set by
 +      x_set_glyph_string_gc from x_draw_glyph_string.
  
 -2002-02-03  Richard M. Stallman  <rms@gnu.org>
 +2007-11-01  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * fileio.c (Fdo_auto_save): Improve "auto save disabled" msg.
 +      * sunfns.c: Remove file
  
 -      * lread.c (read1): Redesign strategy for force_multibyte and
 -      force_singlebyte.  Now is_multibyte records whether read_buffer
 -      is multibyte.  Encountering any multibyte character makes it so.
 +      * m/sun386.h:
 +      * m/sun2.h:
 +      * m/sparc.h: Remove Sun windows code.
  
 -2002-02-02  Stefan Monnier  <monnier@cs.yale.edu>
 +2007-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * term.c (term_get_fkeys_1): If `k0' and `k;' are both specified and
 -      with the same sequence, map that sequence to f10 rather than f0.
 +      * keyboard.c (syms_of_keyboard): Initialize the initial_kboard.
 +      (init_keyboard): Set current_kboard's window-system to nil.
 +      (tty_read_avail_input): Typo.
 +      * frame.c (make_initial_frame): Don't initialize the initial_kboard.
  
 -2002-02-03  Andreas Schwab  <schwab@suse.de>
 +2007-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * s/gnu-linux.h: Check for __mc68000__ instead of __m68k__, the
 -      latter never being defined on GNU/Linux.
 +      * s/usg5-4.h:
 +      * s/usg5-3.h:
 +      * s/ptx.h:
 +      * m/is386.h:
 +      * m/ibmps2-aix.h:
 +      * Makefile.in: Remove all mentions of X10
  
 -2002-02-02  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * dispnew.c (syms_of_display): Don't mention version 10.
  
 -      * xfaces.c (realize_default_face): Don't set the weight and slant of
 -      the default face to Qnormal, unless these attributes are unspecified.
 +2007-10-28  Juanma Barranquero  <lekktu@gmail.com>
  
 -2002-02-02  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * makefile.w32-in (OBJ1): Remove abbrev.$(O).
 +      ($(BLD)/abbrev.$(O)): Remove.
  
 -      * keyboard.c (command_loop_1) [HAVE_X_WINDOWS]:
 -      Call cancel_hourglass unconditionally.
 +2007-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * eval.c (Fsignal): Remove duplicated declaration of
 -      the variable `display_hourglass_p'.
 +      Rewrite abbrev.c in Elisp.
 +      * image.c (Qcount): Don't declare as extern.
 +      (syms_of_image): Initialize and staticpro `Qcount'.
 +      * puresize.h (BASE_PURESIZE): Increase for the new abbrev.el functions.
 +      * emacs.c (main): Don't call syms_of_abbrev.
 +      * Makefile.in (obj): Remove abbrev.o.
 +      (abbrev.o): Remove.
 +      * abbrev.c: Remove.
  
 -2002-01-31  Richard M. Stallman  <rms@gnu.org>
 +2007-10-26  Martin Rudalics  <rudalics@gmx.at>
  
 -      * editfns.c (region_limit): Nicer error message.
 +      * window.c (window_min_size_2): Don't count header-line.
  
 -      * coding.c (decode_composition_emacs_mule):
 -      Give up if NCOMPONENT gets too large to index `component'.
 +2007-10-26  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * callint.c (check_mark): New arg to specify clearer error message.
 -      Callers changed.
 +      * frame.h (struct frame): Move all bit fields after the first bit
 +      field to take advantage of the available space.  Group all the
 +      chars together to reduce wasted space due to padding.
  
 -2002-01-27  Richard M. Stallman  <rms@gnu.org>
 +2007-10-26  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * minibuf.c (Fcompleting_read): Doc fix.
 +      * minibuf.c (Fread_minibuffer, Feval_minibuffer): Reflow docstrings.
  
 -2002-01-27  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * alloc.c (spare_memory, stack_copy, stack_copy_size, ignore_warnings)
 +      (Vdead, dont_register_blocks, staticvec, staticidx, interval_block)
 +      (n_interval_blocks, init_strings, check_string_bytes, check_sblock)
 +      (init_float, free_float, n_cons_blocks, init_cons, all_vectors)
 +      (n_vectors, symbol_block, symbol_block_index, symbol_free_list)
 +      (n_symbol_blocks, init_symbol, marker_block, marker_free_list)
 +      (n_marker_blocks, init_marker, valid_pointer_p, make_pure_float)
 +      (last_marked, mark_object_loop_halt): Make static.
  
 -      * minibuf.c (Fread_from_minibuffer, Fread_command, Fread_function)
 -      (Fread_variable, Fread_buffer, minibuffer-completion-confirm):
 -      Fix doc-strings.
 +      * frame.c (syms_of_frame) <delete-frame-functions>:
 +      Fix typo in docstring.
  
 -2002-01-26  Richard M. Stallman  <rms@gnu.org>
 +2007-10-25  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * buffer.c (syms_of_buffer): Doc fixes for scroll-...-aggressively.
 +      * w32.c (init_environment): Fix tiny memory leak.
 +      (w32_get_resource): Remove unused variable `ok'.
  
 -      * xdisp.c (try_scrolling): Exchange uses of scroll_down_aggressively
 -      and scroll_up_aggressively.
 +2007-10-25  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2002-01-26  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      Make `window-system' into a keyboard-local variable (rather than
 +      frame-local as done originally by multi-tty).
  
 -      * keyboard.c (parse_tool_bar_item): Remove duplicated prototypes.
 +      * keyboard.h (struct kboard): Add Vwindow_system.
 +      * keyboard.c (init_kboard): Set a default for Vwindow_system.
 +      (mark_kboards): Mark Vwindow_system.
  
 -2002-01-25  Stefan Monnier  <monnier@cs.yale.edu>
 +      * dispnew.c (syms_of_display) <window-system>: Declare terminal-local.
 +      (init_display): Don't set the obsolete `window-system' frame-param.
  
 -      * textprop.c (Fnext_property_change, Fnext_single_property_change)
 -      (Fprevious_property_change, Fprevious_single_property_change):
 -      Stay within the narrowed-buffer boundaries.
 +      * xterm.c (x_term_init):
 +      * w32term.c (w32_create_terminal):
 +      * term.c (init_tty): Set Vwindow_system.
 +      * macterm.c (mac_create_terminal): Set a keyboard (missing piece of the
 +      multi-tty merge maybe?), copied from w32term.c.  Set Vwindow_system.
  
 -2002-01-25  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * xfns.c (Fx_create_frame, x_create_tip_frame):
 +      * w32fns.c (Fx_create_frame, x_create_tip_frame):
 +      * macfns.c (Fx_create_frame):
 +      Don't set the obsolete `window-system' frame-param.
  
 -      * term.c (Ftty_display_color_cells): New function.
 -      (syms_of_term): Defsubr it.
 -      (Ftty_display_color_cells, Ftty_display_color_p): Change the
 -      argument name to DISPLAY.  Doc fix.
 +      * frame.h (Qwindow_system): Remove.
 +      * frame.c (Qwindow_system): Remove.  In `syms_of_frame' as well.
 +      (Fmake_terminal_frame): Don't set obsolete `window-system' frame-param.
  
 -      * dispextern.h: Add prototype for set_tty_color_mode and
 -      tty_setup_colors.
 +2007-10-24  Richard Stallman  <rms@gnu.org>
  
 -2002-01-24  Jason Rumney  <jasonr@gnu.org>
 +      * frame.c (x_figure_window_size): For fullscreen case,
 +      set USPosition | PPosition without clobbering rest of window_prompting.
  
 -      * w32term.c (x_scroll_run): Use ScrollWindowEx in place of BitBlt.
 -      If region left to draw is not what was expected, mark the frame as
 -      garbaged.
 +      * keyboard.c (Fcurrent_idle_time): Doc fix.
  
 -      * w32fns.c (w32_wnd_proc) <WM_PAINT>: Initialize update_rect.
 -      Combine the regions returned by BeginPaint and GetUpdateRect.
 +      * print.c (Fwith_output_to_temp_buffer): Doc fix.
  
 -2002-01-23  Jason Rumney  <jasonr@gnu.org>
 +2007-10-23  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * w32term.c (x_update_window_begin): Only hide caret if
 -      w32_use_visible_system_caret is set.
 -      (x_update_window_end): Only show caret if
 -      w32_use_visible_system_caret is set.
 -      (syms_of_w32term): Handle SystemParametersInfo call failing.
 +      * process.c (unwind_request_sigio): Only define if __ultrix__.
  
 -      * w32fns.c (syms_of_w32fns): Initialize w32_visible_system_caret_hwnd.
 +      * callproc.c (child_setup): Remove spurious *.
  
 -2002-01-22  Richard M. Stallman  <rms@gnu.org>
 +      * lisp.h (Fget_text_property): Declare.
 +      (have_menus_p): Declare it here rather than in sys-dep header files.
 +      * macterm.h (have_menus_p):
 +      * msdos.h (have_menus_p):
 +      * xterm.h (have_menus_p): Remove.
  
 -      * unexelf.c (unexec): Define n so as to cause compilation error
 -      for the code where people have often written n instead of nn.
 +      * data.c (Fmake_variable_buffer_local, Fmake_local_variable)
 +      (Fmake_variable_frame_local): Just check the variable's const-ness
 +      rather than checking nil or t.
  
 -      * .gdbinit (hookpost-run): Defined.
 +2007-10-22  Jason Rumney  <jasonr@gnu.org>
  
 -2002-01-22  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +      * w32fns.c: Include math.h.
 +      (w32_abort): Declaration moved to nt/config.nt.
  
 -      * xfns.c (x_set_frame_parameters): Typo in previous fix corrected.
 +      * s/ms-w32.h (HAVE_STDLIB_H): Define.
 +      (abort): Redefinition moved to nt/config.nt.
  
 -2002-01-21  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +      * m/windowsnt.h: Remove.
  
 -      * xfns.c (x_set_frame_parameters): Just call x_fullscreen_adjust
 -      if fullscreen is being set.
 +2007-10-22  Juanma Barranquero  <lekktu@gmail.com>
  
 -2002-01-21  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * emacs.c (Fdump_emacs): Fix typo in message.
 +      (syms_of_emacs) <kill-emacs-hook>: Fix typo in docstring.
 +      <installation-directory>: Reflow docstring.
  
 -      * minibuf.c (Fminibuffer_contents)
 -      (Fminibuffer_contents_no_properties, Fread_from_minibuffer)
 -      (Fread_string, Fread_no_blanks_input, Fcompleting_read): Doc fixes.
 +2007-10-22  Juri Linkov  <juri@jurta.org>
  
 -2002-01-21  Richard M. Stallman  <rms@gnu.org>
 +      * minibuf.c: Allow minibuffer default to be a list of default values.
 +      With empty input use the first element of this list as returned default.
 +      (string_to_object)
 +      (read_minibuf_noninteractive): If defalt is cons, set val to its car.
 +      (read_minibuf): If defalt is cons, set histstring to its car.
 +      (Fread_string): If default_value is cons, set val to its car.
 +      (Fread_buffer): If def is cons, use its car.
 +      (Fcompleting_read): If defalt is cons, set val to its car.
  
 -      * window.c (check_frame_size): Fix minimum height calculation.
 +2007-10-21  Michael Albinus  <michael.albinus@gmx.de>
  
 -2002-01-20  Ken Raeburn  <raeburn@gnu.org>
 +      * fileio.c (Fcopy_file): Call file name handler with preserve_uid_gid.
  
 -      * dispextern.h (WINDOW_WANTS_MODELINE_P): Use XFASTINT on window
 -      height before comparison.
 -      (WINDOW_WANTS_HEADER_LINE_P): Likewise.
 +2007-10-20  Juanma Barranquero  <lekktu@gmail.com>
  
 -2002-01-20  Jason Rumney  <jasonr@gnu.org>
 +      * doc.c (Fdocumentation): Check for advice in all cases.
  
 -      * w32term.c (w32_system_caret_width): Remove.
 -      (w32_use_visible_system_caret): New user flag.
 -      (syms_of_w32term): DEFVAR_BOOL it.  Initialize based on whether
 -      Windows reports a screen reader running.
 -      (x_update_window_begin): Hide the system caret.
 -      (x_update_window_end): Show the system caret.
 -      (x_display_and_set_cursor): Don't draw a cursor when
 -      w32_use_visible_system_caret is set.  Do not adjust width.
 +2007-10-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * w32fns.c (w32_visible_system_caret_hwnd): New static variable.
 -      (w32_wnd_proc) <WM_KILL_FOCUS, WM_EMACS_DESTROY_CARET>: Set it.
 -      <WM_EMACS_TRACK_CARET>: Arrange for system caret to be visible if
 -      the user requests it.  Use system default width when creating.
 -      <WM_EMACS_HIDE_CARET, WM_EMACS_SHOW_CARET>: Handle new messages.
 +      * Makefile.in [HAVE_LIBRESOLV]: Add -lresolv to linker flags.
  
 -      * w32term.h (WM_EMACS_SHOW_CARET, WM_EMACS_HIDE_CARET):
 -      New window messages.
 +2007-10-19  Richard Stallman  <rms@gnu.org>
  
 -2002-01-20  Richard M. Stallman  <rms@gnu.org>
 +      * doc.c (Fdocumentation): Check for and handle an advised function.
  
 -      * window.c (MIN_SAFE_WINDOW_HEIGHT): Value now 1.
 +2007-10-19  Juanma Barranquero  <lekktu@gmail.com>
  
 -2002-01-20  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * process.c (Fset_process_filter): Doc fix.
  
 -      * doprnt.c (doprnt1): Fix typos in error call.
 +2007-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2002-01-20  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * keyboard.c (read_key_sequence): Undo a change introduced by multi-tty
 +      which caused key-translation-map to applied repeatedly (thus breaking
 +      double-mode).
  
 -      * unexelf.c (unexec) [__sgi]: Support the .got sections.
 +2007-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2002-01-20  Jason Rumney  <jasonr@gnu.org>
 +      * xselect.c (x_own_selection, x_handle_selection_clear)
 +      (x_clear_frame_selections):
 +      * w32menu.c (list_of_panes, list_of_items):
 +      * w32fns.c (w32_color_map_lookup, Fx_create_frame, Fx_display_list):
 +      * textprop.c (validate_plist, interval_has_all_properties)
 +      (interval_has_some_properties, interval_has_some_properties_list)
 +      (add_properties, text_property_list):
 +      * process.c (Fget_buffer_process, list_processes_1, status_notify):
 +      * minibuf.c (Fassoc_string):
 +      * macselect.c (x_own_selection, x_clear_frame_selections)
 +      (Fx_disown_selection_internal):
 +      * keymap.c (Fcommand_remapping, where_is_internal, describe_map_tree):
 +      Use CONSP rather than !NILP and XC[AD]R rather than Fc[ad]r.
  
 -      * w32term.c (w32_native_per_char_metric): Don't trust the metrics
 -      that Windows returns.  If a double check fails, try to guess how
 -      ExtTextOut is going to act.
 +2007-10-17  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * w32fns.c (w32_load_system_font, w32_to_x_charset): Use strnicmp
 -      in place of stricmp.
 -      (w32_list_synthesized_fonts): Removed.
 -      (w32_to_all_x_charsets, enum_font_maybe_add_to_list): New functions.
 -      (struct enumfont_t): New element; list.
 -      (enum_font_cb2): List all style and charset variations of a font.
 -      (Fw32_select_font): New optional argument; include_proportional.
 -      Exclude vertical fonts.  Exclude proportional fonts unless
 -      include_proportional is non-nil.
 -      (w32_enable_synthesized_fonts): Change to a boolean.
 -      (Fw32_send_sys_command): Doc fix.
 +      * process.c: Link to libs for calling res_init() if available.
 +      (Fmake_network_process): Call res_init() before getaddrinfo or
 +      gethostbyname, if possible.
  
 -2002-01-19  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * dispnew.c (update_frame): Move the variable `tem' to the block
 -      where it is used.
 +      * lread.c (read1): Set pvectype for char_tables.
  
 -2002-01-19  Jason Rumney  <jasonr@gnu.org>
 +      * lisp.h (XMISCANY, XMARKER, XINTFWD, XBOOLFWD, XOBJFWD, XOVERLAY)
 +      (XBUFFER_OBJFWD, XBUFFER_LOCAL_VALUE, XKBOARD_OBJFWD, XSAVE_VALUE):
 +      Add type checks.
 +      (SOME_BUFFER_LOCAL_VALUEP, GC_SOME_BUFFER_LOCAL_VALUEP): Remove.
  
 -      * w32fns.c (Fx_create_frame): Bind redisplay-dont-pause around
 -      call to face-set-after-frame-default.
 +      * alloc.c (free_misc): Use XMISCTYPE.
 +      (live_misc_p, gc_sweep): Use Lisp_Misc_Any.
  
 -2002-01-18  Richard M. Stallman  <rms@gnu.org>
 +2007-10-17  Glenn Morris  <rgm@gnu.org>
  
 -      * dispextern.h (WINDOW_WANTS_MODELINE_P): Check window height > 1.
 -      (WINDOW_WANTS_HEADER_LINE_P): Check window height provides room.
 +      * minibuf.c (Qcompletion_ignore_case): New Lisp_Object.
 +      (syms_of_minibuf): Add Qcompletion_ignore_case.
 +      * dired.c (Qcompletion_ignore_case): Change to external.
 +      (syms_of_dired) [VMS]: Remove Qcompletion_ignore_case.
 +      * fileio.c (Qcompletion_ignore_case): New external Lisp_Object.
 +      (Fread_file_name): Use it rather than intern'ing.
  
 -2002-01-17  Richard M. Stallman  <rms@gnu.org>
 +      * coding.c (Qcompletion_ignore_case): New external Lisp_Object.
 +      (Fread_coding_system): Ignore case of user input.
  
 -      * window.c (enlarge_window): When exceeding size of parent,
 -      directly delete all the siblings instead of trying to resize it.
 +2007-10-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2002-01-17  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * xdisp.c (handle_display_prop): Ignore display specs after
 +      replacing one when string text is being replaced.
 +      (handle_single_display_spec): Pretend as if characters with display
 +      property haven't been consumed only when buffer text is being replaced.
  
 -      * term.c (set_tty_color_mode): Remove unused variable `tem'.
 +2007-10-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * xfns.c (Fx_create_frame, Fx_display_list):
 +      * window.c (window_fixed_size_p, enlarge_window)
 +      (shrink_window_lowest_first):
 +      * macterm.c (init_font_name_table):
 +      * macfns.c (Fx_create_frame, Fx_display_list):
 +      * lread.c (close_load_descs):
 +      * keyboard.c (read_char_x_menu_prompt):
 +      * fns.c (Fmember, Fmemql, Fdelete, Fset_char_table_parent):
 +      * coding.c (code_convert_region_unwind): Test the type of an object
 +      rather than just !NILP before extracting data from it.
 +
 +      * alloc.c (Fpurecopy): Set the pvec tag on pseudo vectors.
 +
 +      * lisp.h (enum Lisp_Misc_Type): Del Lisp_Misc_Some_Buffer_Local_Value.
 +      (XMISCANY): New macro.
 +      (XMISCTYPE): Use it.
 +      (struct Lisp_Misc_Any): New type.
 +      (union Lisp_Misc): Use it.
 +      (struct Lisp_Buffer_Local_Value): Add `local_if_set' bit.
 +      * data.c (Fboundp, store_symval_forwarding, swap_in_global_binding)
 +      (find_symbol_value, set_internal, default_value, Fset_default)
 +      (Fmake_variable_buffer_local, Fmake_local_variable)
 +      (Fkill_local_variable, Fmake_variable_frame_local, Flocal_variable_p)
 +      (Flocal_variable_if_set_p, Fvariable_binding_locus):
 +      The SOME_BUFFER_LOCAL_VALUEP distinction is replaced by local_if_set.
 +      * alloc.c (allocate_buffer): Set the size and tag.
 +      (allocate_misc, mark_maybe_object, mark_object, survives_gc_p):
 +      Use XMISCANY.
 +      (die): Follow the GNU convention for error messages.
 +      * print.c (print_object): SOME_BUFFER_LOCAL_VALUEP -> local_if_set.
 +      * buffer.c (Fget_buffer_create, Fmake_indirect_buffer): Don't set the
 +      tag any more.
 +      (set_buffer_internal_1):
 +      * frame.c (store_frame_param):
 +      * eval.c (specbind):
 +      * xdisp.c (select_frame_for_redisplay): Drop SOME_BUFFER_LOCAL_VALUEP.
  
 -2002-01-16  Henrik Enberg  <henrik@enberg.org>
 +      * doc.c (Fsnarf_documentation): Simplify.
  
 -      * lread.c (init_lread): Move the installed-lisp dirs later in the path.
 +2007-10-14  Juanma Barranquero  <lekktu@gmail.com>
  
 -2002-01-16  Kim F. Storm  <storm@cua.dk>
 +      * w32term.c (w32_font_is_double_byte, my_create_scrollbar): Make static.
 +      (syms_of_w32term) <w32-enable-unicode-output>: Fix typo in docstring.
  
 -      * xterm.c (x_erase_phys_cursor): Don't erase cursor if cursor row
 -      is invisible.  This can happen if cursor is on top line of a
 -      window, and we switch to a buffer with a header line.
 +2007-10-14  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * w32term.c (x_erase_phys_cursor): Ditto.
 +      * buffer.c (Fmake_indirect_buffer): Set the buffer's tag.
  
 -2002-01-16  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-10-14  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * xterm.c (XTread_socket) [!USE_X_TOOLKIT]: Compute the value of
 -      `dont_resize' only when used.
 +      * eval.c (do_autoload): Don't save autoloads.
  
 -      * xdisp.c: Remove forgotten extern declaration of `Qimage'.
 +      * data.c (Ffset): Save autoload of the function being set.
  
 -2002-01-15  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-10-07  John Paul Wallington  <jpw@pobox.com>
  
 -      * xdisp.c (display_mode_element): When computing charpos, depend
 -      on multibyteness of elt, not the text in field.
 +      * xfns.c (x_create_tip_frame): Set the `display-type' frame
 +      parameter before setting up faces.
  
 -2002-01-15  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-10-13  Eli Zaretskii  <eliz@gnu.org>
  
 -      * buffer.c (Fkill_all_local_variables):
 -      Increment `update_mode_lines' only once.
 +      * ccl.c (Fregister_code_conversion_map):
 +      * keyboard.c (append_tool_bar_item): Reformat last change.
  
 -2002-01-14  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * lisp.h (eabs): Rename from `abs'.  All callers changed.
  
 -      * lisp.h (adjust_after_replace_noundo)
 -      (Fupdate_coding_systems_internal): Add prototypes.
 +2007-10-05  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * sound.c (Fplay_sound): Initialize header_size also for :data case.
 +      * buffer.c (add_overlay_mod_hooklist):
 +      * ccl.c (Fregister_ccl_program, Fregister_code_conversion_map):
 +      * fontset.c (make_fontset):
 +      * keyboard.c (GROW_RAW_KEYBUF, menu_bar_items, menu_bar_item)
 +      (append_tool_bar_item):
 +      * macmenu.c (grow_menu_items):
 +      * w32menu.c (grow_menu_items):
 +      * xmenu.c (grow_menu_items): Use larger_vector.
  
 -2002-01-14  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-10-13  Eli Zaretskii  <eliz@gnu.org>
  
 -      Support for the --color command-line argument and tty-color-mode
 -      frame parameter:
 +      * msdos.c (dos_rawgetc): Undo last change (there's no ``leaving
 +      selected frame'' on MSDOS).
  
 -      * term.c (tty_default_color_capabilities, tty_setup_colors)
 -      (set_tty_color_mode): New functions.
 -      (term_init): Call tty_default_color_capabilities.
 -      (Qtty_color_mode_alist): New variable.
 -      (syms_of_term): Intern and staticpro it.
 +2007-10-12  Martin Rudalics  <rudalics@gmx.at>
  
 -      * frame.c (store_frame_param): Call set_tty_color_mode for termcap
 -      frames.
 -      (do_switch_frame): For termcap frames, switch the tty
 -      color mode as specified by the frame's parameters.
 -      (Qtty_color_mode): New variable.
 +      * frame.c (Qexplicit_name): New variable.
 +      (x_report_frame_params): Report it in parameter alist.
        (syms_of_frame): Intern and staticpro it.
  
 -      * emacs.c (USAGE2): Add the --color option.
 -      (standard_args): Ditto.
 -
 -2002-01-13  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +2007-10-10  Patrick Mahan  <mahan@mahan.org>  (tiny change)
  
 -      * xterm.h (struct x_output): New members want_fullscreen,
 -      x_pixels_diff, y_pixels_diff, x_pixels_outer_diff, and
 -      y_pixels_outer_diff.
 -      New enum for FULLSCREEN_* constants.
 -      (FRAME_OUTER_WINDOW): Handle the case where output_data.x->widget
 -      is NULL.
 -      (x_fullscreen_adjust): Add prototype.
 +      * macfns.c (x_create_tip_frame): Set terminal for frame.
  
 -      * emacs.c (USAGE2): Add the new full-screen arguments.
 -      (standard_args): Ditto.
 +2007-10-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * xfns.c (Qfullscreen, Qfullwidth, Qfullheight, Qfullboth):
 -      New variables.
 -      (syms_of_xfns): Intern and staticpro them.
 -      (x_frame_parms) <"fullscreen">: New parameter.
 -      (x_fullscreen_move, x_set_fullscreen): New functions.
 -      (x_set_frame_parameters): Support for Qfullscreen.
 -      (x_real_positions): More accurate computation of the frame position.
 -      (x_figure_window_size): Support full-screen frames.
 -      (Fx_create_frame): Default the fullscreen parameter.
 +      * frame.c (Qenvironment): Remove.
 +      (syms_of_frame) <Qenvironment>: Don't initialize.
 +      (Fdelete_frame): Don't treat the `environment' param specially.
 +      * frame.h (Qenvironment): Don't declare.
 +      * callproc.c (set_initial_environment): Don't set unused frame param.
  
 -      * xterm.c (x_check_fullscreen, x_fullscreen_adjust): New functions.
 -      (XTread_socket) <Expose>: Call x_check_fullscreen.
 -      <ConfigureNotify>: Don't resize to fullscreen.
 -      Call x_check_fullscreen_move, and set the want_fullscreen member of
 -      output_data.x.
 +      * frame.c (Fframe_with_environment): Remove.
 +      (syms_of_frame) <Sframe_with_environment>: Don't declare.
  
 -2002-01-13  Jason Rumney  <jasonr@gnu.org>
 +      * lisp.h (Fframe_with_environment): Don't declare.
  
 -      * w32term.h (WM_XBUTTONDOWN, WM_XBUTTONUP): New window messages
 -      for mice with more than 3 buttons.
 +2007-10-10  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * w32term.c (parse_button): New parameter xbutton.  Callers changed.
 -      (w32_read_socket): Handle new "XBUTTON" messages.
 +      * indent.c (indent_tabs_mode, last_known_column)
 +      (last_known_column_modified): Make static.
 +      (syms_of_indent) <indent-tabs-mode>: Remove redundant info in docstring.
  
 -      * w32fns.c (w32_pass_extra_mouse_buttons_to_system): New user option.
 -      (syms_of_w32fns): DEFVAR_BOOL it.
 -      (w32_wnd_proc): Handle new "XBUTTON" messages.
 +2007-10-10  Katsumi Yamaoka  <yamaoka@jpl.org>
  
 -2002-01-13  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * puresize.h (BASE_PURESIZE): Increase to 1170000.
  
 -      * keyboard.c (read_key_sequence): Remove unused variable `extra_maps'.
 -
 -2002-01-13  Andreas Schwab  <schwab@suse.de>
 -
 -      * xterm.c (x_load_font): Never set fonts_changed_p to zero.
 -
 -2002-01-12  Andreas Schwab  <schwab@suse.de>
 -
 -      * .gdbinit (xbuffer): Remove address operator since data is now a
 -      pointer.
 -
 -2002-01-11  Richard M. Stallman  <rms@gnu.org>
 -
 -      * insdel.c (adjust_after_replace_noundo): New function.
 -
 -      * coding.c (code_convert_region): Don't copy old text if undo disabled.
 +2007-10-09  Jason Rumney  <jasonr@gnu.org>
  
 -2002-01-09  Jason Rumney  <jasonr@gnu.org>
 +      * w32term.c (x_set_window_size): Disable code that attempts to tell
 +      Lisp code about a size change before it actually happens.
  
 -      * xdisp.c (x_consider_frame_title): Don't count the tooltip frame
 -      when checking for multiple frames.
 +2007-10-09  Richard Stallman  <rms@gnu.org>
  
 -2002-01-08  Richard M. Stallman  <rms@gnu.org>
 +      * xdisp.c (handle_invisible_prop): After setting up an ellipsis,
 +      return HANDLED_RETURN.
  
 -      * window.c (delete_window): Rewrite the code for changing the
 -      selected window to handle the case where WINDOW is not a leaf.
 +2007-10-08  Martin Rudalics  <rudalics@gmx.at>
  
 -2002-01-07  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * keyboard.c (kbd_buffer_get_event): Break loop waiting for input
 +      when there's an unread command event.
  
 -      * process.c (send_process): Set src_multibyte to 1 after the call
 -      top setup_coding_system, not before the call.
 +      * frame.c (focus_follows_mouse): Move here from frame.el to allow
 +      window autoselection act appropriately when leaving selected frame.
 +      (syms_of_frame): Initialize focus_follows_mouse.
 +      * frame.h (focus_follows_mouse): Extern it.
 +      * macterm.c (XTread_socket): When focus_follows_mouse is nil
 +      make SELECT_WINDOW_EVENT only if we don't leave the selected frame.
 +      * msdos.c (dos_rawgetc): Likewise.
 +      * w32term.c (w32_read_socket): Likewise.
 +      * xterm.c (handle_one_xevent): Likewise.
 +      * xdisp.c (syms_of_xdisp): In doc-string of
 +      mouse-autoselect-window mention focus-follows-mouse.
  
 -2002-01-07  Jason Rumney  <jasonr@gnu.org>
 +2007-10-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * xmenu.c (set_frame_menubar, xmenu_show):
 -      (xdialog_show): Initialize wv->help to Qnil.
 +      * macterm.c (mac_load_query_font): Fix missing return value.
 +      [USE_CG_DRAWING] (mac_define_fringe_bitmap, mac_destroy_fringe_bitmap):
 +      Add BLOCK_INPUT.
  
 -      * w32menu.c (single_submenu, set_frame_menubar, w32_menu_show):
 -      (w32_dialog_show): Initialize wv->help to Qnil.
 +2007-10-08  Richard Stallman  <rms@gnu.org>
  
 -2002-01-06  Jason Rumney  <jasonr@gnu.org>
 +      * xdisp.c (get_window_cursor_type): Implement documented behavior
 +      for cursor-in-non-selected-windows = t.
  
 -      * xmenu.c (single_submenu): Initialize wv->help to Qnil.
 +2007-10-08  Jason Rumney  <jasonr@gnu.org>
  
 -      * w32menu.c (w32_menu_display_help): Revert last change.
 +      * w32.c (w32_get_resource): Always close registry keys.
  
 -      * xmenu.c (menu_highlight_callback): Revert last change.
 +2007-10-08  Jason Rumney  <jasonr@gnu.org>
  
 -2002-01-06  Andreas Schwab  <schwab@suse.de>
 +      * makefile.w32-in (LIBS): Add COMCTL32.
  
 -      * insdel.c (make_gap_larger): Make sure buffer size does not
 -      overflow range of int.
 +      * w32fns.c (globals_of_w32fns): Init common controls.
  
 -2002-01-05  Jason Rumney  <jasonr@gnu.org>
 +2007-10-08  Richard Stallman  <rms@gnu.org>
  
 -      * w32term.c (x_draw_glyphs): Don't call notice_overwritten_cursor if
 -      OVERLAPS_P.
 +      * image.c (our_memory_buffer): Rename from omfib_buffer.
  
 -      * w32menu.c (w32_menu_display_help): Hide any tooltip window.
 +2007-10-08  Richard Stallman  <rms@gnu.org>
  
 -      * w32fns.c (compute_tip_xy): If tooltip won't fit on the screen
 -      to the left or to the right of the pointer, put it against
 -      the left screen edge.
 -      (x_frame_parms): Add missing braces around initializer.
 +      * buffer.c (Foverlays_at): Doc fix.
  
 -      * w32term.c (x_setup_relief_colors): Don't compute an image's
 -      background color if it doesn't have a Pixmap.
 -      (notice_overwritten_cursor): Don't depend on
 -      output_cursor and updated_area.  Compare pixel coordinates with
 -      window's cursor pixel coordinates.
 -      (x_draw_glyphs, x_clear_end_of_line, show_mouse_face):
 -      Call notice_overwritten_cursor with new arg list.
 -      (show_mouse_face): Fix bug setting a row's mouse_face_p flag
 -      unconditionally.
 -      (x_draw_image_relief): Use predefined macro instead of
 -      constant when the value of `tool_bar_button_relief' is negative.
 +2007-10-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * w32term.c (x_display_and_set_cursor): Fix PostMessage arg types.
 +      * fns.c (Fplist_put): Preserve uneven tail data.
  
 -2002-01-04  Richard M. Stallman  <rms@gnu.org>
 +2007-10-08  Peter O'Gorman  <bug-gnu-emacs@mlists.thewrittenword.com>  (tiny change)
  
 -      * xmenu.c (menu_highlight_callback): Hide any tooltip window.
 +      * termhooks.h (enum event_kind): Remove trailing comma.
  
 -2002-01-03  Richard M. Stallman  <rms@gnu.org>
 +      * frame.h (enum): Remove trailing comma.
  
 -      * keymap.c (Fcurrent_active_maps): Put the `keymap' property map first.
 -      (Fkey_binding): Try the `keymap' property map first.
 -      (Fdescribe_buffer_bindings): Show `keymap' property bindings before
 -      minor mode bindings.
 +2007-10-08  Dhuvra Krishnamurthy  <dhuvrakm@gmail.com>  (tiny change)
  
 -2002-01-03  Kim F. Storm  <storm@cua.dk>
 +      * w32proc.c (delete_child): Don't terminate threads of zombies.
  
 -      * keyboard.c (read_key_sequence): Fix cast of submaps arg to bcopy.
 +2007-10-08  Martin Rudalics  <rudalics@gmx.at>
  
 -2002-01-02  Richard M. Stallman  <rms@gnu.org>
 +      * keyboard.h (struct kboard): New elt Vlast_repeatable_command.
  
 -      * keyboard.c (read_key_sequence): Handle the keymap property
 -      before minor mode maps.
 +      * keyboard.c (syms_of_keyboard): Set up new Lisp variable
 +      last-repeatable-command.
 +      (init_kboard): Initialize Vlast_repeatable_command.
 +      (command_loop_1): Set it to real_this_command unless that was
 +      bound to an input event.
 +      (mark_kboards): Mark it.
  
 -      * editfns.c (Fformat): Update thissize from field_width
 -      based on the actual width, in the string case.
 +2007-10-08  Richard Stallman  <rms@gnu.org>
  
 -2002-01-01  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * eval.c (condition-case): Doc fix.
  
 -      * charset.h (UNIBYTE_STR_AS_MULTIBYTE_P): Parenthesize assignment
 -      when used as truth value to prevent gcc warnings.
 +2007-10-08  Masatake YAMATO  <jet@gyve.org>
  
 -      * sysdep.c, unexapollo.c, w32.c, w32bdf.c, w32heap.c, w32inevt.c,
 -      * w32proc.c: Include <config.h>.
 +      * xfaces.c (tty_supports_face_attributes_p): Fix code
 +      for LFACE_INVERSE_INDEX and LFACE_BACKGROUND_INDEX; code
 +      was copied and not edited.
  
 -2002-01-01  Andreas Schwab  <schwab@suse.de>
 +2007-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Add new `input-decode-map' keymap and use it for terminal
 +      escape sequences.
 +      * keyboard.h (struct kboard): Add Vinput_decode_map.
 +      Remove Vlocal_key_translation_map.
 +      * keyboard.c (read_key_sequence): Add support for input-decode-map.
 +      (init_kboard): Init input-decode-map.
 +      Replace local-key-translation-map back with key-translation-map.
 +      (syms_of_keyboard): Declare input-decode-map.
 +      Remove local-key-translation-map.  Update docstrings.
 +      (mark_kboards): Mark Vinput_decode_map.
 +      Don't mark Vlocal_key_translation_map.
 +      * keymap.c (Fdescribe_buffer_bindings): Describe input-decode-map.
 +      Replace local-key-translation-map back with key-translation-map.
 +      * term.c (term_get_fkeys_1, CONDITIONAL_REASSIGN):
 +      Bind in input-decode-map rather than function-key-map.
 +
 +      * lisp.h (XSETPSEUDOVECTOR): Don't set the tag anymore.
 +      This was made redundant by the previous introduction of XSETPVECTYPE.
  
 -      * eval.c (max_specpdl_size, max_lisp_eval_depth): Define as int,
 -      not EMACS_INT, to make them compatible with DEFVAR_INT.
 -      * lisp.h (max_specpdl_size): Adjust declaration.
 +2007-10-09  Richard Stallman  <rms@gnu.org>
  
 -2002-01-01  Richard M. Stallman  <rms@gnu.org>
 +      * image.c (free_bitmap_record): Rename from Free_Bitmap_Record.
  
 -      * print.c (print_object): Test print_escape_nonascii only for
 -      unibyte strings.
 -      (PRINTPREPARE): Once again bind Qprint_escape_nonascii
 -      when outputting to a multibyte buffer.
 +2007-09-29  Richard Stallman  <rms@gnu.org>
  
 -2001-12-29  Richard M. Stallman  <rms@gnu.org>
 +      * eval.c (internal_condition_case_2, internal_condition_case_1)
 +      (internal_condition_case): Reenable abort if x_catching_errors ()
 +      to see if that really happens and why.
  
 -      * print.c (print_object): In multibyte string, use hex escapes.
 -      Use octal only for unibyte strings.
 -      (PRINTPREPARE): Don't ever set Qprint_escape_nonascii.
 +2007-10-06  Andreas Schwab  <schwab@suse.de>
  
 -      * lread.c (read_escape): New arg BYTEREP for reporting whether
 -      escape forces unibyte or multibyte.
 -      (read1): When reading a string, take note of that info.
 +      * fileio.c (Fwrite_region): Ignore EINVAL error from fsync.
  
 -2001-12-29  Ken Raeburn  <raeburn@gnu.org>
 +2007-10-04  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * abbrev.c (Fexpand_abbrev): Use NILP instead of implicit zero
 -      comparison to test lisp value returned by Fget.
 +      * image.c (syms_of_image) <image-types>: Fix typo in docstring.
  
 -2001-12-29  Richard M. Stallman  <rms@gnu.org>
 +2007-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * lisp.h (max_specpdl_size): Add declaration.
 +      * frame.h (struct frame): Don't try to GC-mark menu_bar_items_used.
  
 -      * fileio.c (Fdo_auto_save): If NO_MESSAGE, don't call push_message.
 +2007-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * keymap.c (silly_event_symbol_error): New subrtn, from Fdefine_key.
 -      Handle modifier bits.  Correct typo in error message.
 +      * window.h (struct window):
 +      * window.c (struct save_window_data, struct saved_window):
 +      * termhooks.h (struct terminal):
 +      * process.h (struct Lisp_Process):
 +      * frame.h (struct frame):
 +      * buffer.h (struct buffer):
 +      * lisp.h (struct Lisp_Vector, struct Lisp_Char_Table)
 +      (struct Lisp_Bool_Vector, struct Lisp_Subr, struct Lisp_Hash_Table):
 +      The size field of (pseudo)vectors is now unsigned.
 +      (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG): Simplify accordingly.
  
 -2001-12-28  Richard M. Stallman  <rms@gnu.org>
 +      * lisp.h (struct Lisp_Hash_Table): Move non-traced elements at the end.
 +      Turn `count' into an integer.
  
 -      * abbrev.c: Use the plist of an abbrev for multiple params if nec.
 -      (Fdefine_abbrev): New arg SYSTEM-FLAG for a system abbrev.
 -      (Fdefine_global_abbrev, Fdefine_mode_abbrev):
 -      Update calls to Fdefine_abbrev.
 -      (write_abbrev): Update for changed data format.
 -      Don't list "system" abbrevs.
 -      (Fexpand_abbrev): Update use count with new data format.
 -      (describe_abbrev): Update for changed data format.
 -      (Fdefine_abbrev_table): Handle the new SYSTEM-FLAG.
 +      * fns.c (make_hash_table, hash_put, hash_remove, hash_clear)
 +      (sweep_weak_table, sweep_weak_hash_tables, Fhash_table_count):
 +      * print.c (print_object) <HASH_TABLE_P>: `count' is an int.
 +      * alloc.c (allocate_hash_table): Use ALLOCATE_PSEUDOVECTOR.
 +      (mark_object) <HASH_TABLE_P>: Use mark_vectorlike.
  
 -      * config.in (HAVE_MBSINIT): Add #undef.
 +      * alloc.c (allocate_pseudovector): New fun.
 +      (ALLOCATE_PSEUDOVECTOR): New macro.
 +      (allocate_window, allocate_terminal, allocate_frame)
 +      (allocate_process): Use it.
 +      (mark_vectorlike): New function.
 +      (mark_object) <FRAMEP, WINDOWP, BOOL_VECTOR_P, VECTORP>: Use it.
 +      (mark_terminals): Use it.
 +      (Fmake_bool_vector, Fmake_char_table, make_sub_char_table)
 +      (Fmake_byte_code): Use XSETPVECTYPE.
  
 -      * strftime.c (mbsinit): Define as no-op if not available.
 +      * frame.c (Fframe_parameters): Minor simplification.
  
 -      * s/sco5.h (LIBX11_SYSTEM) [MOTIF]: Add -lgen.
 -      (sigprocmask_set): Conditionalize decl on ! NOT_C_CODE.
 +      * insdel.c (adjust_markers_for_insert): Generalize assertion checks.
  
 -      * keymap.c (Flookup_key): Error message if key has wrong data type.
 -      (Fdefine_key): Add error message for trying to bind [DEL], [RET], etc.
 -      (exclude_key): New variable.
 +      * marker.c (Fmarker_buffer): Make test for odd case into a failure.
  
 -2001-12-28  Gerd Moellmann  <gerd@gnu.org>
 +      * buffer.c (Fget_buffer_create, init_buffer_once):
 +      * lread.c (defsubr):
 +      * window.c (Fcurrent_window_configuration): Use XSETPVECTYPE.
  
 -      * xterm.c (x_setup_relief_colors): Don't compute an image's
 -      background color if it doesn't have a Pixmap.
 +      * lisp.h (ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG): Don't let them be
 +      defined differently in the m/*.h files.
 +      (XCHAR_TABLE, XBOOL_VECTOR): Add assertion checking.
 +      (XSETPVECTYPE): New macro.
 +      (XSETPSEUDOVECTOR): Use it.
  
 -      * xterm.c (notice_overwritten_cursor): Don't depend on
 -      output_cursor and updated_area.  Compare pixel coordinates with
 -      window's cursor pixel coordinates.
 -      (x_draw_glyphs, x_clear_end_of_line, show_mouse_face):
 -      Call notice_overwritten_cursor with new arg list.
 -      (show_mouse_face): Fix bug setting a row's mouse_face_p flag
 -      unconditionally.
 +      * buffer.c (syms_of_buffer) <local-abbrev-table>: Move from abbrev.c.
 +      (DEFVAR_PER_BUFFER, defvar_per_buffer): Move from lisp.h and lread.c.
  
 -      * xdisp.c (try_scrolling) <PT below scroll margin>: Add the
 -      height of the cursor line to the amount to scroll.
 +      * lisp.h (defvar_per_buffer, DEFVAR_PER_BUFFER):
 +      * lread.c (defvar_per_buffer):
 +      * abbrev.c (syms_of_abbrev) <local-abbrev-tabl>: Move to buffer.c.
  
 -2001-12-27  Richard M. Stallman  <rms@gnu.org>
 +      * window.c (candidate_window_p): Only consider as visible frames that
 +      are on the same terminal.
  
 -      * intervals.c (set_point_both): The position after an invisible,
 -      intangible character is not an acceptable stopping point.
 +      * m/ibms390x.h (MARKBIT): Remove unused macro.
  
 -2001-12-27  Ken Raeburn  <raeburn@gnu.org>
 +2007-10-01  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * window.c (enlarge_window): In new preserve_before code, convert
 -      CURBEG from lisp object to integer before doing arithmetic.
 +      * lread.c (Fload): Fix typo in docstring.
  
 -2001-12-27  Richard M. Stallman  <rms@gnu.org>
 +2007-10-01  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
  
 -      * bytecode.c (Fbyte_code): Undo previous change.
 +      * floatfns.c (Fexpt): Manually check for overflows, so that a power
 +      of a non-zero value can't yield zero.
  
 -2001-12-26  Kim F. Storm  <storm@cua.dk>
 +2007-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * keyboard.c (record_char): Ignore duplicate help-echo events only
 -      separated by mouse-movement.  When tracking mouse, only record
 -      first and last mouse-movement event in same window.
 -      Don't record mouse-movement events in keyboard macros.
 +      * term.c (term_clear_mouse_face, term_mouse_highlight)
 +      (tty_write_glyphs_with_face): Only define is HAVE_GPM.
  
 -2001-12-25  Richard M. Stallman  <rms@gnu.org>
 +      * print.c (safe_debug_print): Use XHASH.
  
 -      * window.c (enlarge_window): New arg PRESERVE_BEFORE.  Callers changed.
 -      (Fenlarge_window): New arg PRESERVE_BEFORE.
 +      * lisp.h (DECL_ALIGN, USE_LSB_TAG): Move logic to before definition of
 +      Lisp elements such as tags.
 +      (XHASH): New macro.
 +      (EQ): Use it.
 +      (SREF, SSET, STRING_COPYIN): Use SDATA.
 +      (VOID_TO_LISP, CVOID_TO_LISP, LISP_TO_VOID, LISP_TO_CVOID): Remove.
  
 -      * bytecode.c (Fbyte_code): Use Fstring_make_unibyte
 -      instead of Fstring_as_unibyte.
 +      * alloc.c (mark_terminal): Remove left-over declaration.
 +      (enum mem_type): Replace all vector subtypes -> MEM_TYPE_VECTORLIKE.
 +      (allocate_vectorlike): Remove type argument.  Adjust callers.
 +      (live_vector_p, mark_maybe_pointer, valid_lisp_object_p):
 +      Only handle the one remaining MEM_TYPE_VECTORLIKE.
  
 -2001-12-22  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * alloc.c (MALLOC_BLOCK_INPUT, MALLOC_UNBLOCK_INPUT): New macros
 +      to avoid unnecessary BLOCK_INPUTs when SYNC_INPUT is used.
 +      (xmalloc, xrealloc, xfree, lisp_malloc, lisp_free, lisp_align_malloc)
 +      (lisp_align_free, make_interval, allocate_string, allocate_string_data)
 +      (make_float, Fcons, allocate_vectorlike, Fmake_symbol, allocate_misc):
 +      Use them.
  
 -      The following changes remove mocklisp support:
 +      * xfaces.c (load_face_font, free_realized_face, clear_face_gcs):
 +      Don't let signal handlers run when a GC is freed but not yet NULL'ed.
 +      (x_free_gc): Remove BLOCK_INPUT since it's now redundant.
  
 -      * mocklisp.h, mocklisp.c: Files removed.
 +2007-09-28  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * lisp.h: Remove declarations of variables `Vmocklisp_arguments',
 -      `Qmocklisp' and `Qmocklisp_arguments'.
 -      Remove prototype of syms_of_mocklisp.
 +      * Makefile.in (lisp, shortlisp): Delete server.elc, it is not
 +      loaded by default.
  
 -      * makefile.nt, makefile.w32-in, Makefile.in: Remove mocklisp files.
 +2007-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * callint.c: Do not include mocklisp.h.
 -      (Fcall_interactively): Do not test for mocklisp case.
 +      * term.c (Fgpm_mouse_start): Don't signal an error if already activated
 +      on this tty.
 +      (Fgpm_mouse_stop): Only deactivate if it was activated on this tty.
  
 -      * eval.c: Remove variables `Qmocklisp_arguments',
 -      `Vmocklisp_arguments' and `Qmocklisp'.  Remove prototype of ml_apply.
 -      (Fprogn, Fwhile, Fcommandp, Feval, Ffuncall, funcall_lambda):
 -      Do not test for mocklisp case.
 -      (Fwhile): Remove unused variable `tem'.
 -      (syms_of_eval): Remove variable `moclisp-arguments'.
 +      * term.c (mouse_face_window): Rename from Qmouse_face_window.
 +      Update all users.
 +      (handle_one_term_event): Use Gpm_DrawPointer.
 +      (Fgpm_mouse_start): Rename from Fterm_open_connection.
 +      Signal errors instead of returning nil.  Always return nil.
 +      (Fgpm_mouse_stop): Rename from Fterm_close_connection.
 +      Make it a noop if gpm-mouse was not activated.
 +      (syms_of_term): Update names.
  
 -      * data.c (wrong_type_argument): Remove mocklisp case.
 +2007-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * doc.c (Fdocumentation): Remove mocklisp case.
 +      * sysdep.c (narrow_foreground_group, widen_foreground_group): Static.
 +      (init_sys_modes): Check that gpm_tty is the current tty.
  
 -      * emacs.c (main): Do not call syms_of_mocklisp.
 +      * alloc.c (allocate_terminal): Set the vector size to only count the
 +      lisp fields.  Initialize those to nil.
 +      (mark_object): Don't treat terminals specially.
 +      (mark_terminal): Remove.
 +      (mark_terminals): Use mark_object instead.
  
 -2001-12-21  Richard M. Stallman  <rms@gnu.org>
 +      * termhooks.h (struct terminal): Move all Lisp_Object fields traced by
 +      the GC to the beginning.
  
 -      * xfns.c (compute_tip_xy): If tooltip won't fit on the screen
 -      to the left or to the right of the pointer, put it against
 -      the left screen edge.
 +      * indent.h:
 +      * indent.c: Use EMACS_INT for ints coming from Elisp data.
  
 -2001-12-21  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * indent.c (Fmove_to_column): Use EMACS_INT for buffer positions.
  
 -      * Makefile.in (distclean): Remove .gdbinit if we are building
 -      outside the source tree.
 +2007-09-25  Jason Rumney  <jasonr@gnu.org>
  
 -2001-12-19  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * frame.c (make_terminal_frame): Remove special case for WINDOWSNT.
  
 -      * w32.c (emacs_root_dir): New function.
 +      * w32console.c (create_w32cons_output): Remove.
  
 -      * msdos.c (emacs_root_dir): New function.
 +      * term.c (init_tty): Call init_sys_modes on WINDOWSNT also.
  
 -      * fileio.c (Fexpand_file_name) [DOS_NT]: Use the root directory
 -      of the current drive as the fallback for default_directory.
 +      * sysdep.c (init_sys_modes): Use set_terminal_modes_hook.
 +      (reset_sys_modes): Use reset_terminal_modes_hook.
  
 -      * dired.c (file_name_completion): Run the elements of
 -      completion-ignored-extensions through ENCODE_FILE.
 +2007-09-24  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * lisp.h (scmp): Remove prototype, since it's now a static
 -      function private to dired.c.
 +      * eval.c (do_autoload): Don't output any message.
  
 -2001-12-18  Richard M. Stallman  <rms@gnu.org>
 +2007-09-24  Juri Linkov  <juri@jurta.org>
  
 -      * dired.c (scmp): Function moved from minibuf.c.
 -      Delete multibyte handling--used only on encoded strings.
 +      * emacs.c (standard_args): Change priority of "--no-splash"
 +      from 40 to 3.  Add "--no-desktop" with the same priority.
  
 -      * minibuf.c (scmp): Function moved to dired.c.
 +2007-09-23  Dmitry Antipov  <dmantipov@yandex.ru>
  
 -      * fns.c (merge): Add QUIT call.
 +      * alloc.c (gc_sweep): Check cons cell mark bits word by word
 +      and optimize the case where they are all 1.
  
 -2001-12-18  Dave Love  <fx@gnu.org>
 +2007-09-23  Johannes Weiner  <hannes@saeurebad.de>
  
 -      * Makefile.in (lisp, shortlisp): Add language/utf-8-lang.el,
 -      language/georgian.el.
 +      * lisp.h (abs): Define if not defined.
 +      * keyboard.c, sound.c, w32term.c, xfaces.c, xterm.c:
 +      Don't define `abs', since it's defined in lisp.h.
  
 -2001-12-18  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-09-22  Eli Zaretskii  <eliz@gnu.org>
  
 -      * Makefile.in (lisp, shortlisp): Synchronize with changes to
 -      lisp/Makefile.in:DONTCOMPILE.
 +      * term.c (DEV_TTY): New macro.  Provide a definition for MS-Windows.
 +      (FRAME_TERMCAP_P) [WINDOWSNT]: Don't define to zero.
 +      (Fcontrolling_tty_p, Fresume_tty, dissociate_if_controlling_tty)
 +      (init_tty): Use DEV_TTY instead of "/dev/tty".
 +      [WINDOWSNT]: No need to protect from NAME arg being null.
  
 -2001-12-18  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-09-21  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * xdisp.c (window_box_height): Do not return negative values.
 -      From Gerd Moellmann <gerd@gnu.org>.
 +      * term.c (Fsuspend_tty): Run suspend-tty-functions before cleaning
 +      up the tty state.
  
 -      * keyboard.c (head_table): Add missing braces around initializer.
 +2007-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * term.c (keys): Likewise.
 +      * termhooks.h (term_gpm): Delete.  Use gpm_tty's NULLness instead.
 +      (gpm_tty): Change its type.
 +      * term.c (term_gpm): Delete.  Use gpm_tty's NULLness instead.
 +      (gpm_tty): Change its type and initialize it.
 +      (Fterm_open_connection): Check the frame is indeed a tty.
 +      Use the new gpm_tty.
 +      (Fterm_close_connection): Use the new gpm_tty.
 +      * keyboard.c (tty_read_avail_input): Use the new gpm_tty.
 +      * sysdep.c (init_sys_modes): term_gpm -> gpm_tty.
  
 -      * xfns.c (x_frame_parms, visual_classes): Likewise.
 +2007-09-21  Juanma Barranquero  <lekktu@gmail.com>
  
 -2001-12-17  Sam Steingold  <sds@gnu.org>
 +      * w32term.c (x_draw_glyph_string): Use strike_through_color, not
 +      underline_color, to draw strike-through.
  
 -      * coding.c (DECODE_COMPOSITION_END): Fixed a typo in the last
 -      patch (COMPOSING_P, not COMPOSING).
 +2007-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2001-12-17  Richard M. Stallman  <rms@gnu.org>
 +      * lisp.h (allocate_terminal): Declare.
  
 -      * editfns.c (Fcompare_buffer_substrings): Add QUIT to main loop.
 +      * window.c (candidate_window_p): Consider frames that are being placed
 +      by the user as somewhere between visible and iconified.
 +      (window_loop): Prefer windows on the current frame.
 +      (Fselect_window): Move the use of select-frame to the beginning so we
 +      can just delegate all the work (it'll call us back anyway).
  
 -      * coding.c (code_convert_region): Update coding->cmp_data->char_offset
 -      before calling decode_coding.
 +      * frame.c (Qdisplay_environment_variable):
 +      * frame.h (Qdisplay_environment_variable): Delete.
  
 -      * charset.c (Fdefine_charset): Call Fupdate_coding_systems_internal.
 +      * .gdbinit (xbacktrace): Print the arg's address rather than the value
 +      of the first arg, since that value may be a union.
  
 -      * coding.c (DECODE_COMPOSITION_END): Check for ! COMPOSING_P (coding)
 -      instead of only for COMPOSITION_DISABLED.
 +      * callproc.c (child_setup, getenv_internal): Use the frame's `display'
 +      parameter rather than Qdisplay_environment_variable.  If all else
 +      fails, look for DISPLAY in initial-environment.
  
 -2001-12-16  Richard M. Stallman  <rms@gnu.org>
 +2007-09-21  Glenn Morris  <rgm@gnu.org>
  
 -      * alloc.c (pure_alloc): After overflow, allocate just a small block.
 +      * Makefile.in (emacstool): Remove target.
 +      (lisp, shortlisp): Remove termdev.elc.
  
 -      * Makefile.in (xmenu.o, xterm.o, fontset.o): Depend on buffer.h.
 +2007-09-21  Markus Triska  <markus.triska@gmx.at>
  
 -      * buffer.h (struct buffer): New field `display_error_modiff'.
 -      * buffer.c (reset_buffer): Initialize `display_error_modiff'.
 +      * xterm.c (x_delete_display): Compile session management conditionally.
  
 -      * window.c (Frecenter): Clear display_error_modiff field.
 +2007-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * xdisp.c (redisplay_window_0, redisplay_window_1): New functions.
 -      Call redisplay_window, but not if display_error_modiff field says no.
 -      (redisplay_window_error): New function.
 -      (displayed_buffer): New variable.
 -      (redisplay_internal, redisplay_windows): Call the new functions
 -      instead of redisplay_window directly.
 +      * callproc.c (getenv_internal_1): New function.
 +      (getenv_internal): Use it.
 +      (Fgetenv_internal): Use it.  Accept an env-list as optional arg.
  
 -2001-12-15  Richard M. Stallman  <rms@gnu.org>
 +      * terminal.c (get_terminal): Don't accept ints to represent terminals.
 +      (Fterminal_name, Fterminal_parameters, Fterminal_parameter)
 +      (Fset_terminal_parameter): Work with dead terminals as well.
 +      (Fmodify_terminal_parameters): Remove.
  
 -      * keyboard.c (syms_of_keyboard) <double-click-fuzz>: Doc fix.
 +      * terminal.c (get_terminal): Handle terminals.
 +      Make sure the terminal returned is live.
 +      (create_terminal): Use allocate_terminal.
 +      (mark_terminals): Move to alloc.c.
 +      (delete_terminal): Use terminal->name as liveness status.
 +      NULL out fields after freeing their contents.
 +      Don't deallocate the object.
 +      (Fframe_terminal): Use FRAME_TERMINAL.  Return the terminal object
 +      rather than an int.
 +      (Fterminal_live_p): Accept non-integer arguments.
 +      (Fterminal_list): Return terminal objects rather than an ints.
  
 -2001-12-14  Andrew Innes  <andrewi@gnu.org>
 +      * alloc.c (enum mem_type): New member for `terminal' objects.
 +      (allocate_terminal): New function.
 +      (mark_maybe_pointer, valid_lisp_object_p, mark_object):
 +      Handle terminals.
 +      (mark_terminal): New fun.
 +      (mark_terminals): Move from terminal.c.
  
 -      * makefile.w32-in (EMACSLOADPATH): Define.
 -      ($(EMACS)): Run `list-load-path-shadows' after dumping Emacs.
 -      (bootstrap-temacs): Remove dependency on bootstrap-clean.
 +      * term.c (get_tty_terminal): Don't treat output_initial specially.
 +      (Fsuspend_tty, Fresume_tty): Use terminal objects rather than ints.
 +      (delete_tty): Use terminal->name as liveness status.
  
 -2001-12-13  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * termhooks.h (struct terminal): Make it into a pseudovector.
 +      Remove `deleted' replaced by checking `name's nullness.
  
 -      * xfns.c (x_report_frame_params): Make the scroll-bar-width frame
 -      parameter have a numeric value all the time.
 +      * print.c (print_object): Handle terminals.
  
 -      * w32fns.c (x_report_frame_params): Likewise.
 +      * lisp.h (enum pvec_type): New `terminal' pseudovector.
 +      (XTERMINAL, XSETTERMINAL, TERMINALP, GC_TERMINALP): New macros.
  
 -2001-12-12  Richard M. Stallman  <rms@gnu.org>
 +      * frame.c (make_terminal_frame):
 +      * keyboard.c (tty_read_avail_input):
 +      * w32term.c (x_delete_terminal):
 +      * xfns.c (Fx_create_frame, x_create_tip_frame):
 +      * xterm.c (x_delete_terminal): Use terminal->name as liveness status.
  
 -      * fileio.c (Fwrite_region): Doc fix.
 +2007-09-20  Glenn Morris  <rgm@gnu.org>
  
 -      * xdisp.c (CLEAR_FACE_CACHE_COUNT): Redefine as 500.
 -      (redisplay_internal): Call clear_image_cache only for window terminals.
 +      * process.c (Fmake_network_process): Doc fix.
  
 -2001-12-12  Gerd Moellmann  <gerd@gnu.org>
 +2007-09-19  Jason Rumney  <jasonr@gnu.org>
  
 -      * xdisp.c (move_it_vertically_backward): Change heuristic
 -      for the case that we didn't move far enough initially.
 +      * dispextern.h (w32_init_fringe, mac_init_fringe): Declare rif argument.
  
 -      * window.c (Frecenter): Simplify computation in the case of window
 -      system frames and ARG < 0; use window_box_height.
 +2007-09-19  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
  
 -2001-12-11  Richard M. Stallman  <rms@gnu.org>
 +      * coding.c (detect_eol_type, detect_eol_type_in_2_octet_form):
 +      Fix a C warning regarding variable constness.
  
 -      * Makefile.in, mem-limits.h, dispnew.c, emacs.c, fileio.c:
 -      * process.c, sysdep.c, unexec.c: Test GNU_LINUX, not LINUX.
 +      * xterm.c (handle_one_xevent): Fix a C warning.
  
 -2001-12-11  Andrew Innes  <andrewi@gnu.org>
 +2007-09-18  Jason Rumney  <jasonr@gnu.org>
  
 -      * insdel.c (make_gap) [DOUG_LEA_MALLOC]: Call make_gap_smaller if
 -      arg is negative.
 +      * w32fns.c (Fx_focus_frame): Rename from Fw32_focus_frame.
  
 -2001-12-11  Richard M. Stallman  <rms@gnu.org>
 +2007-09-17  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -      * m/hp800.h: Split the __hpux conditional into the parts
 -      that are right for GNU/Linux too and the parts that are not.
 -      Use the former if GNU_LINUX.
 -      (HAVE_ALLOCA, LOAD_AVE_TYPE, LOAD_AVE_CVT): New defs for GNU/Linux.
 +      * gtkutil.c (gdpy_def): New variable.
 +      (xg_initialize): Initialize gdpy_def.
 +      (xg_display_close): If no other display exists, set gdpy_def to a
 +      new connection.
  
 -      * s/gnu-linux.h (GNU_LINUX): Defined.
 +2007-09-16  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -2001-12-11  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * gtkutil.c (xg_get_image_for_pixmap): Always create a GdkPixbuf
 +      when we have no file name for the icon.
 +      (xg_tool_bar_expose_callback): Remove.
 +      (xg_create_tool_bar): Don't connect expose signal to
 +      xg_tool_bar_expose_callback.
 +      (xg_get_file_with_chooser): Move GCPRO1 after declarations.
  
 -      * macros.c, msdos.c, w16select.c: Change doc-string comments to
 -      `new style' [w/`doc:' keyword].
 +2007-09-16  Andreas Schwab  <schwab@suse.de>
  
 -2001-12-10  Jason Rumney  <jasonr@gnu.org>
 +      * alloc.c (reset_malloc_hooks): Set the hooks to the previous
 +      values instead of zapping them.
  
 -      * w32menu.c (w32_free_submenu_strings): Clear menu item struct
 -      before using.
 +2007-09-14  Glenn Morris  <rgm@gnu.org>
  
 -2001-12-09  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * fringe.c (init_fringe_bitmap) <swap_nibble>: Move to file scope.
 +      * gtkutil.c (xg_separator_p) <separator_names>: Move to file scope.
 +      * image.c (our_memory_fill_input_buffer) <buffer>: Move to file
 +      scope and rename to omfib_buffer for clarity.
 +      (gif_load) <interlace_start, interlace_increment>: Move to file scope.
  
 -      * dosfns.c: Change doc-string comments to `new style' [w/`doc:'
 -      keyword].
 +2007-09-14  Kenichi Handa  <handa@m17n.org>
  
 -2001-12-09  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * xterm.c (handle_one_xevent): Skip decoding if nbytes is zero.
  
 -      * dosfns.c (dos-display-scancodes, dos-decimal): Doc fix.
 +2007-09-13  Jason Rumney  <jasonr@gnu.org>
  
 -      * s/hpux10.h (srand48): Don't undefine.
 +      * fringe.c (w32_init_fringe, mac_init_fringe): Add rif argument.
  
 -2001-12-09  Jason Rumney  <jasonr@gnu.org>
 +      * w32term.c (w32_term_init): Pass rif to w32_init_fringe.
  
 -      * w32menu.c (_widget_value): Make `help' field a Lisp_Object.
 -      Add comment to explain where the struct came from.
 -      (single_submenu, w32_menu_show): Set `help' field as Lisp_Object.
 -      (add_menu_item): Process pop-up menus first to avoid memory leak.
 -      (add_menu_item, w32_menu_display_help): Use `help' field as
 -      Lisp_Object.
 -      (w32_free_submenu_strings): Only free owner-drawn strings.
 +      * macterm.c (mac_initialize): Don't call mac_init_fringe here.
 +      (mac_term_init): Call here instead, passing rif.
  
 -2001-12-09  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-09-13  Glenn Morris  <rgm@gnu.org>
  
 -      * COPYING: Moved back.
 +      * s/hpux.h: No longer define `static' as nothing.
  
 -      * charset.c (char_to_string_1, translate_char, Fdefine_charset):
 -      Add parentheses around && within ||.
 +2007-09-13  Johan Bockg\e,Ae\e(Brd  <bojohan@gnu.org>
  
 -      * indent.c (compute_motion): Likewise.
 +      * callint.c (Fcall_interactively): Remove unused var `fun'.
  
 -      * intervals.c (merge_properties_sticky): Likewise.
 +2007-09-12  Romain Francoise  <romain@orebokech.com>
  
 -      * coding.c (setup_coding_system, shrink_encoding_region)
 -      (Fdecode_sjis_char): Likewise.
 +      * window.c (prefer_window_split_horizontally, display_buffer):
 +      Revert 2007-09-08 change.
  
 -2001-12-07  Andreas Schwab  <schwab@suse.de>
 +2007-09-12  Glenn Morris  <rgm@gnu.org>
  
 -      * xdisp.c (display_mode_element): Don't read past end of string if
 -      it ends with '%'.
 +      * alloca.c: Remove file.
 +      * Makefile.in (alloca): Do not undef.
 +      (allocaobj, alloca.o): Remove.
 +      (otherobj): Remove allocaobj.
 +      * keyboard.c (command_loop_1): Remove #ifdef C_ALLOCA block.
 +      * regex.c (C_ALLOCA): Remove all references and code that was only
 +      used when this was defined.
 +      * search.c (boyer_moore): Remove #ifdef C_ALLOCA block.
 +      * xmenu.c (xmenu_show): Remove #ifdef C_ALLOCA block.
 +      * m/ibms390x.h, m/sh3el.h (C_ALLOCA): Remove references to this.
  
 -      * alloc.c (inhibit_garbage_collection): Don't exceed value an int
 -      can hold.
 +      * Makefile.in (SOURCES, unlock, relock): Delete.
  
 -      * data.c (Vmost_positive_fixnum, Vmost_negative_fixnum):
 -      Rename from most_positive_fixnum and most_negative_fixnum, resp., and
 -      type changed to Lisp_Object.
 -      (syms_of_data): DEFVAR_LISP them.
 +      * gtkutil.c (cnt): Rename to menu_grab_callback_cnt for clarity.
 +      (menu_grab_callback): All uses changed.
  
 -2001-12-07  Richard M. Stallman  <rms@gnu.org>
 +      * xselect.c (cnt): Rename to x_reply_selection_request_cnt for clarity.
 +      (x_reply_selection_request): All uses changed.
  
 -      * callproc.c (init_callproc): Set Vdata_directory based on the source
 -      location whenever Emacs was run uninstalled.
 +2007-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2001-12-06  Paul Eggert  <eggert@twinsun.com>
 +      * lread.c (load_warn_old_style_backquotes): Change message to look
 +      better when it appears in the middle of byte-compiler messages.
  
 -      * config.in (HAVE_WORKING_VFORK): New #undefs.
 -      * process.c (create_process):
 -      Use HAVE_WORKING_VFORK, not HAVE_VFORK.
 -      * m/cnvrgnt.h (HAVE_VFORK): Remove #define.
 -      * m/ibm370aix.h (HAVE_VFORK): Remove #undef.
 -      * m/ibmps2-aix.h (HAVE_VFORK): Remove #define.
 -      * m/intel386.h (HAVE_VFORK): Likewise.
 -      * m/mips-siemens.h (HAVE_VFORK): Likewise.
 -      * m/mips.h (HAVE_VFORK): Likewise.
 -      * s/freebsd.h (vfork): Remove #define.
 -      * s/lynxos.h (HAVE_VFORK): Remove #undef.
 -      * s/usg5-4-2.h: Fix comment about vfork.
 +2007-09-10  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2001-12-06  Richard M. Stallman  <rms@gnu.org>
 +      * s/darwin.h (MULTI_KBOARD): Only define for Carbon.
  
 -      * s/hpux10.h (random): Add undef.
 -      (HAVE_RANDOM): Define it just once.
 +      * xterm.c (x_create_terminal): Add comment.
  
 -2001-12-06  Stefan Monnier  <monnier@cs.yale.edu>
 +      * term.c (clear_tty_hooks, set_tty_hooks): Add comments.
  
 -      * eval.c: Undo last change: the standard syntax is not wanted.
 +2007-09-10  Richard Stallman  <rms@gnu.org>
  
 -2001-12-06  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * xterm.c (x_term_init): Give error if can't open DISPLAY_NAME.
  
 -      * xterm.c (x_free_frame_resources) [USE_X_TOOLKIT]: Remove all the
 -      scroll bars of the frame before deleting the frame itself.  If the
 -      frame has a widget, delete the frame with XtDestroyWidget, and do
 -      not call XDestroyWindow before that.
 +2007-09-10  Micha\e,Ak\e(Bl Cadilhac  <michael@cadilhac.name>
  
 -2001-12-06  Kim F. Storm  <storm@cua.dk>
 +      * lisp.h (struct Lisp_Subr): Rename `prompt' field to `intspec'.
 +      (DEFUN): Document `intspec', use it instead of `prompt'.
  
 -      * xfns.c (x_report_frame_params): Return actual fringe widths.
 +      * eval.c (Fcommandp): Change `->prompt' to `->intspec'.
  
 -      * w32fns.c (x_report_frame_params): Return actual fringe widths.
 +      * data.c (Finteractive_form): If the interactive specification starts
 +      with a `(', use it as a Lisp form.
  
 -2001-12-05  Andrew Innes  <andrewi@gnu.org>
 +      * fileio.c (Fset_file_modes): Add an interactive spec that reads a file
 +      name and file modes.
  
 -      * alloc.c (Fgarbage_collect): Shrink buffer gaps that are
 -      excessively large.
 +      * callint.c (Fcall_interactively): Comment fixes.
  
 -      * insdel.c (make_gap_larger): New function.
 -      (make_gap_smaller): New function.
 -      (make_gap) [USE_MMAP_FOR_BUFFERS || REL_ALLOC]:
 -      Call make_gap_smaller if arg is negative.
 +2007-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2001-12-04  Stefan Monnier  <monnier@cs.yale.edu>
 +      * callint.c (Fcall_interactively): Use Finteractive_form also for subrs
 +      and compiled functions.
  
 -      * keyboard.c (kbd_buffer_store_event): Fix interrupt_signal prototype.
 -      Pass a dummy argument when calling interrupt_signal.
 -      (parse_menu_item): Mark disabled items before checking for empty def.
 -      (read_char_minibuf_menu_prompt): Make safety more visible.
 -      (read_key_sequence): Add a `first_unbound' variable.
 -      Use it to detect C-c ESC ESC ESC ESC ... cases and drop the
 -      unbound prefix as soon as we can detect it.
 +2007-09-08  Fredrik Axelsson  <f.axelsson@gmail.com>
  
 -      * doc.c (Fsnarf_documentation): Add prototype.
 -      (get_doc_string): Handle negative arguments.
 -      (Fdocumentation): Use AREF and ASIZE.
 -      Move the calls to get_doc_string to a single place.
 -      Don't confuse an interactive-spec for a docstring reference.
 -      (Fdocumentation_property): Take advantage of the fact that
 -      get_doc_string now ignores the sign of the docstring position.
 +      * window.c (prefer_window_split_horizontally): New variable.
 +      (display_buffer): Consider splitting window horizontally depending
 +      on prefer_window_split_horizontally.
  
 -      * eval.c: Use standard syntax for usage in docstrings.
 +2007-09-08  Eli Zaretskii  <eliz@gnu.org>
  
 -2001-12-03  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * sysdep.c [WINDOWSNT]: Don't include sysselect.h.
  
 -      * xdisp.c (syms_of_xdisp): Make `tool-bar-button-relief' an option.
 +2007-09-07  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2001-12-02  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * s/cygwin.h (GC_MARK_STACK): Enable conservative stack marking.
  
 -      * xterm.c (x_draw_image_relief): Use predefined macro instead of
 -      constant when the value of `tool_bar_button_relief' is negative.
 +      * frame.c (x_set_frame_parameters): Check number is positive before
 +      using XFASTINT.
  
 -2001-12-02  Richard M. Stallman  <rms@gnu.org>
 +      * window.c (freeze_window_start): Don't presume selected_window holds
 +      a window object.
 +      (Fdisplay_buffer): Remove `register' since `buffer' needs to be gcpro'd.
  
 -      * xmenu.c (menu_highlight_callback): Use `help' field as Lisp_Object.
 -      (single_submenu, xmenu_show): Set `help' field as Lisp_Object.
 +2007-09-07  Angelo Graziosi  <Angelo.Graziosi@roma1.infn.it>  (tiny change)
  
 -      * fileio.c (read_non_regular): Delete Fsignal call.
 +      * term.c (dissociate_if_controlling_tty): Call setsid on CYGWIN.
  
 -2001-12-01  Stefan Monnier  <monnier@cs.yale.edu>
 +2007-09-07  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * lisp.h (run_hook_list_with_args): Undo last change.
 +      * window.c (Vsplit_window_preferred_function): New var.
 +      (Fdisplay_buffer): Use it.
 +      (syms_of_window): Export, and initialize it.
  
 -2001-12-01  Gerd Moellmann  <gerd@gnu.org>
 +2007-09-06  Pixel  <pixel@mandriva.com>  (tiny change)
  
 -      * xterm.c (x_draw_fringe_bitmap): Always undo clipping.
 +      * image.c (gif_load): Fix bug: Handle nonexistent colormap.
  
 -2001-12-01  Jason Rumney  <jasonr@gnu.org>
 +2007-09-06  Glenn Morris  <rgm@gnu.org>
  
 -      * window.c (Qleft_fringe, Qright_fringe): Remove.  Now in frame.c.
 +      * gtkutil.c (menu_grab_callback) <cnt>:
 +      * xselect.c (x_reply_selection_request) <cnt>: Move static
 +      variable to file scope.
  
 -      * w32term.h (WM_MOUSELEAVE, TME_LEAVE, TRACKMOUSEEVENT)
 -      [!WM_MOUSELEAVE]: Define.
 +2007-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * w32menu.c (current_popup_menu, get_menu_item_info):
 -      (set_menu_item_info): New vars.
 -      (set_frame_menubar): Doc fix clarifying GC interaction with menus.
 -      (w32_menu_show): Set current_popup_menu.
 -      (add_menu_item): Allocate new strings for owner-drawn menu items
 -      and help strings.
 -      Use owner-draw for disabled menu items again.
 -      (w32_menu_display_help): Ignore owner-drawn items and popup menus.
 -      (w32_free_submenu_strings, w32_free_menu_strings): New functions.
 +      * xdisp.c (redisplay_internal): Make sure Elisp code always sees
 +      consistent values of selected_frame and selected_window.
  
 -      * w32fns.c (trackmouse_window, track_mouse_event_fn): New vars.
 -      (w32_wnd_proc) <WM_MOUSEMOVE>: Notice when mouse enters frame.
 -      <WM_EXITMENULOOP>: Free menu strings.
 -      <WM_MOUSELEAVE>: Stop tracking mouse.
 -      (x_create_tip_frame): Specify no minibuffer, modeline or fringes.
 +2007-09-04  Jason Rumney  <jasonr@gnu.org>
  
 -      * w32term.c (w32_read_socket) <WM_MOUSELEAVE>: Cancel help echo
 -      and mouse face.
 +      * w32console.c (initialize_w32_display): Zero unused hooks.
  
 -2001-12-01  Kim F. Storm  <storm@cua.dk>
 +2007-09-04  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      The following changes add left-fringe and right-fringe
 -      frame parameters to adjust fringe widths, or remove one or
 -      both fringes.
 +      * term.c (Vsuspend_tty_functions, Vresume_tty_functions)
 +      (syms_of_term, Fsuspend_tty, Fresume_tty): Undo previous change.
  
 -      * frame.h (struct frame): Remove trunc_area_pixel_width and
 -      trunc_area_cols fields.
 -      (Qleft_fringe, Qright_fringe): Declare.
 -      (FRAME_RIGHT_FRINGE_WIDTH): New macro.
 +2007-09-04  Jason Rumney  <jasonr@gnu.org>
  
 -      * frame.c (Qleft_fringe, Qright_fringe): New vars.
 -      (syms_of_frame): Initialize them.
 +      * term.c (init_tty) [WINDOWSNT]: Add hooks that are not accessible
 +      in w32console.c.  Set up input.  Remove XXX comments that have been
 +      confirmed as correct.
  
 -      * window.c (coordinates_in_window): Handle separate left and right
 -      fringe widths.
 +      * s/ms-w32.h (MULTI_KBOARD): Define.
  
 -      * xterm.h (struct x_output): Add left_fringe_width, right_fringe_width,
 -      and fringe_cols fields.
 -      (FRAME_FRINGE_BITMAP_WIDTH, FRAME_FRINGE_BITMAP_HEIGHT): Remove macros.
 -      (FRAME_X_FRINGE_COLS): Use fringe_cols field.
 -      (FRAME_X_FRINGE_WIDTH): Use fringes_extra field.
 -      (FRAME_X_LEFT_FRINGE_WIDTH): Use left_fringe_width field.
 -      (FRAME_X_RIGHT_FRINGE_WIDTH): Use right_fringe_width field.
 -      (x_compute_fringe_widths): Add prototype.
 +      * w32console.c (one_and_only_w32cons): Remove.
 +      (initialize_w32_display): Take terminal argument.
  
 -      * xterm.c (zv_height, zv_bits, zv_period): Changed zv bitmap to
 -      fill fringe evenly with small dashes.
 -      (x_draw_fringe_bitmap): Clear background if necessary.  Align and
 -      clip the new ZV bitmap to avoid jitter between rows.
 -      (x_draw_row_fringe_bitmaps): Rely on x_draw_fringe_bitmap to clear
 -      background.  Don't draw fringe bitmaps if fringe width is zero.
 -      (x_compute_fringe_widths): New function.
 -      (x_new_font, x_set_window_size_1): Use it.
 +      * term.c (init_tty) [WINDOWSNT]: Pass terminal to
 +      initialize_w32_display.
 +      (init_tty) [MULTI_KBOARD]: Include this code on WINDOWSNT too.
  
 -      * xfns.c (x_frame_parms): Add `left-fringe' and `right-fringe' parms.
 -      (x_set_frame_parameters): Process `font' parameter before other
 -      parameters as fringe widths depend on it.
 -      (x_set_fringe_width): New function.
 -      (x_figure_window_size): Use x_compute_fringe_widths.
 -      (Fx_create_frame): Process `left-fringe' and `right-fringe' frame
 -      parameters.
 +      * termhooks.h (enum event_kind) <HORIZ_WHEEL_EVENT>: New event.
  
 -      * widget.c (set_frame_size): Use x_compute_fringe_widths.
 -      (EmacsFrameSetCharSize): Ditto.
 +      * keyboard.c (discard_mouse_events): Discard it.
 +      (make_lispy_event): Translate it to a lisp event.
 +      (lispy_wheel_names): Add wheel-left and right events.
 +      (syms_of_keyboard): Enlarge wheel_syms.
  
 -      * w32term.h: Merged changes from xterm.h.
 -      * w32term.c: Merged changes from xterm.c.
 -      * w32fns.c: Merged changes from xfns.c.
 +      * w32fns.c (w32_wnd_proc) <WM_DROPFILES>: Merge with WM_MOUSEWHEEL.
 +      <WM_MOUSEHWHEEL>: Pass new system message to lisp.
  
 -2001-11-29  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * w32term.h (WM_MOUSEHWHEEL): Define if system headers don't.
  
 -      * COPYING: Removed.
 +      * w32term.c (construct_mouse_wheel): Make HORIZ_WHEEL_EVENT
 +      from WM_MOUSEHWHEEL.
 +      (w32_read_socket) <WM_MOUSEHWHEEL>: Treat as WM_MOUSEWHEEL.
  
 -2001-11-29  Dave Love  <fx@gnu.org>
 +      * w32fns.c (x_create_tip_frame) [MULTI_KBOARD]: Get keyboard from
 +      terminal.
  
 -      * coding.c (syms_of_coding) <Qchar_coding_system>: Give it an
 -      extra extra slot.
 -      (detect_coding_mask): Fix call of detect_coding_iso2022.
 +      * w32term.c (w32_create_terminal) [MULTI_KBOARD]: Create a new
 +      keyboard for the terminal.
  
 -2001-11-29  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-09-04  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * fileio.c (file-name-coding-system)
 -      (default-file-name-coding-system): Doc fix (links to referenced
 -      variables added).
 +      * term.c (Vsuspend_tty_hook): Rename from Vsuspend_tty_functions.
 +      (Vresume_tty_hook): Rename from Vresume_tty_functions.
 +      (syms_of_term): Rename suspend-tty-functions to suspend-tty-hook
 +      and resume-tty-function to resume-tty-hook.
 +      (Fsuspend_tty, Fresume_tty): Use new names.
  
 -2001-11-28  Stefan Monnier  <monnier@cs.yale.edu>
 +2007-09-02  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -      * lisp.h (GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5):
 -      Add dummy uses of gcproN variables.
 +      * gtkutil.c (update_frame_tool_bar): Handle stock name as a named icon
 +      if it starts with "n:".
  
 -      * category.c (describe_category, describe_category_1)
 -      (Fdescribe_categories): Remove.  (Moved to lisp/help-fns.el.)
 -      (syms_of_category): Don't defsubr Sdescribe_categories.
 +2007-08-31  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -2001-11-28  Richard M. Stallman  <rms@gnu.org>
 +      * gtkutil.c (update_frame_tool_bar): Initialize wbutton to NULL.
  
 -      * fileio.c (Ffind_file_name_handler): Avoid initializer for `result'.
 +2007-08-31  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * Makefile.in (lispdir): New variable, referring to build dir.
 -      (TAGS-LISP): Find Makefile in $(lispdir), not $(lispsource).
 +      * frame.h:
 +      * frame.c (Qterm_environment_variable): Remove.
 +      (syms_of_frame): Don't init and staticpro it.
  
 -2001-11-28  Andrew Innes  <andrewi@gnu.org>
 +      * callproc.c (getenv_internal): Remove special case for $TERM.
  
 -      * w32menu.c (w32_menu_display_help): Actually add the new argument
 -      OWNER.
 +      * callproc.c (Vinitial_environment): New variable.
 +      (set_initial_environment): Initialize it.
 +      (syms_of_callproc): Declare it.
 +      (child_setup): Don't mess with TERM via Qterm_environment_variable; the
 +      TERM under which a process runs is never related to the TERM in which
 +      Emacs is running.
  
 -2001-11-28  Jason Rumney  <jasonr@gnu.org>
 +2007-08-29  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * w32menu.c (add_menu_item): Do not use owner-draw for disabled
 -      menu items.  From David Ponce <dponce@wanadoo.fr>.
 -      (w32_dialog_show) [HAVE_DIALOGS]: Compile whole function
 -      conditionally.
 -      (w32_menu_display_help): New argument OWNER.  Rewritten to store a
 -      help event in the owner frame's keyboard buffer.
 +      * config.in (HAVE_WINDOW_SYSTEM): Don't undef MULTI_KBOARD here...
 +      * s/darwin.h: ... do it here.
  
 -      * w32fns.c (w32_wnd_proc) <WM_MENUSELECT>: Display help directly.
 -      (Fx_show_tip): Don't subtract last width from row width.
 +2007-08-29  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * w32term.c (w32_read_socket) <WM_MENUSELECT>: Remove.
 -      (w32_read_socket): Use EQ to compare frames.
 +      * lisp.h (set_initial_environment): Rename from set_global_environment.
  
 -2001-11-28  Gerd Moellmann  <gerd@gnu.org>
 +      * Makefile.in (${etc}DOC): Re-add a ${EXEEXT} which seems to have been
 +      removed by mistake on the multi-tty branch.
  
 -      * xterm.c (x_draw_glyphs): Don't call notice_overwritten_cursor if
 -      OVERLAPS_P.
 +      * frame.c (make_terminal_frame): Yet Another Int/Lisp_Object Mixup.
 +      (Fmodify_frame_parameters): Return a value.
  
 -2001-11-28  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * image.c (png_load): Comment-out var only used in commented-out code.
  
 -      * xdisp.c (message_dolog): Remove unused variables `gcpro2',
 -      `gcpro3' and `gcpro4'.
 +      * term.c (mark_ttys): Don't bother checking top_frame (incorrectly)
 +      before passing it to mark_object.
  
 -      * coding.c (decode_coding_string): Remove unused variable `gcpro1'.
 +      * xfaces.c (internal_resolve_face_name): Return a value.
 +      (internal_resolve_face_name, resolve_face_name_error): Comment out.
  
 -2001-11-28  Stefan Monnier  <monnier@cs.yale.edu>
 +      * xfns.c (check_x_display_info): Yet Another Int/Lisp_Object Mixup.
 +      (x_icon): Comment-out var only used in commented-out code.
  
 -      * ccl.c: Use AREF and ASIZE.
 +2007-08-29  Romain Francoise  <romain@orebokech.com>
  
 -2001-11-27  Stefan Monnier  <monnier@cs.yale.edu>
 +      * keyboard.c (Fset_input_mode): Don't call `Fset_quit_char' if
 +      QUIT hasn't been provided.
  
 -      * lisp.h (run_hook_list_with_args): Remove.
 -      (LIST_END_P): Fix call to wrong_type_argument.
 -      (make_fixnum_or_float): Use EMACS_INT rather than int.
 +2007-08-29  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2001-11-26  Stefan Monnier  <monnier@cs.yale.edu>
 +      * callproc.c (child_setup, getenv_internal): Use the
 +      display-environment-variable and term-environment-variable frame
 +      params.
 +      (set_initial_environment): Initialise Vprocess_environment.
  
 -      * syntax.c (syms_of_syntax): Remove defsubr of Sdescribe_syntax.
 -      (describe_syntax, describe_syntax_1, Fdescribe_syntax): Remove.
 +      * config.in: Disable multi-keyboard support on a mac.
  
 -      * eval.c: Use AREF and ASIZE.
 -      (Ffetch_bytecode): Add the file name to the error message.
 +      * frame.c (Qterm_environment_variable)
 +      (Qdisplay_environment_variable): New variables.
 +      (syms_of_frame): Intern and staticpro them.
 +      (Fmake_terminal_frame): Disable output method test.
  
 -      * fileio.c (Ffind_file_name_handler): Give precedence to handlers
 -      which match the end of the file-name.
 -      (Fsubstitute_in_file_name): Don't signal an error if $ENVVAR
 -      is not a valid env var, but leave it as is instead.
 +      * frame.h: Declare them here.
  
 -      * keymap.c (access_keymap): Handle t bindings like nil bindings.
 -      Make nil bindings in char-tables transparent.
 -      (store_in_keymap): Turn a nil binding into a t binding for char-tables.
 +      * macfns.c (x_set_mouse_color): Get rif from the frame.
 +      (x_set_tool_bar_lines): Don't use updating_frame.
 +      (mac_window): Add 2 new parameters for consistency with other systems.
 +      (Fx_create_frame): Fix doc string.  Rename the parameter.  Set the
 +      frame parameters following what is done in X11 and w32.  Don't use
 +      FRAME_MAC_DISPLAY_INFO.
 +      (Fx_open_connection, start_hourglass): Remove window-system check.
 +      (x_create_tip_frame): Get the keyboard from the terminal.
  
 -2001-11-26  Richard M. Stallman  <rms@gnu.org>
 +      * macmenu.c: Reorder includes.
 +      (Fx_popup_menu): Use terminal specific mouse_position_hook.
  
 -      * textprop.c (set_text_properties_1): Allow START, END in either order.
 -      Do nothing if range is empty.
 +      * macterm.c (XTset_terminal_modes, XTreset_terminal_modes): Add a
 +      terminal parameter.
 +      (x_clear_frame): Add a frame parameter.
 +      (note_mouse_movement): Get rif from the frame.
 +      (mac_term_init): Initialize the terminal.
 +      (mac_initialize): Make static and move terminal initialization ...
 +      (mac_create_terminal): ... to this new function.
  
 -      * Makefile.in (mallocobj): Simplify logic using auxiliary vars.
 +      * macterm.h (struct mac_display_info): Add terminal.
 +      (mac_initialize): Delete declaration.
  
 -      * Makefile.in (mostlyclean): Delete bootstrap-emacs here.
 -      (clean): Not here.
 +      * puresize.h (BASE_PURESIZE): Increase base value to 1164000.
  
 -2001-11-25  Stefan Monnier  <monnier@cs.yale.edu>
 +      * sysdep.c: Comment out text after #endif.
  
 -      * textprop.c (set_text_properties_1): Clearly mark that the
 -      interval should not be empty.
 +      * term.c (init_tty): Only use terminal->kboard when MULTI_KBOARD
 +      is defined.  Better initialize ttys in windows.  Use terminal
 +      specific mouse_position_hook.
  
 -      * intervals.c (graft_intervals_into_buffer):
 -      Don't call set_text_properties_1 on an empty interval.
 +      * termhooks.h (union display_info): Add mac_display_info.
  
 -2001-11-25  Richard M. Stallman  <rms@gnu.org>
 +      * w32fns.c (Fx_create_frame): Use kboard from the terminal.
 +      Set the default minibuffer frame, window_system and the rest of the
 +      frame parameters following what is done in X11.
  
 -      * unexelf.c (unexec): Index by n, not nn, when checking for ".sbss".
 +      * w32term.c (w32_initialize): Make static.
  
 -      * callproc.c (Fcall_process): When we make a bigger buffer for bufptr,
 -      don't lose the data in it.
 +      * xselect.c (x_handle_selection_clear): Only access
 +      terminal->kboard when MULTI_KBOARD is defined.
  
 -2001-11-25  Juanma Barranquero  <lektu@terra.es>
 +      * s/darwin.h (SYSTEM_PURESIZE_EXTRA): Define here.
 +      (SYSTEM_PURESIZE_EXTRA): Only define on Carbon.
  
 -      * abbrev.c (Fexpand_abbrev): Use Frun_hooks instead of Vrun_hooks.
 +2007-08-29  Jason Rumney  <jasonr@gnu.org>
  
 -      * buffer.c (Fkill_buffer): Likewise.
 +      * frame.c (Fdelete_frame): Only get kboard when MULTI_KBOARD defined.
 +      (make_terminal_frame) [WINDOWSNT]: Initialize terminal.
  
 -      * print.c (temp_output_buffer_setup): Likewise.
 +      * fringe.c (w32_init_fringe w32_reset_fringes) [HAVE_NTGUI]:
 +      (mac_init_fringe) [MAC_OS]: Get rif from selected_frame.
  
 -2001-11-25  Stefan Monnier  <monnier@cs.yale.edu>
 +      * keyboard.c (restore_kboard_configuration): Only define when
 +      MULTI_KBOARD defined.
  
 -      * xfaces.c (merge_face_heights): Coerce back to int explicitly.
 +      * makefile.w32-in: Update dependancies from Makefile.in.
 +      (OBJ1): Add terminal.$(O)
  
 -2001-11-25  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * term.c (dissociate_if_controlling_tty) [WINDOWSNT]:
 +      Don't define function body.
 +      (init_tty) [WINDOWSNT]: Use selected_frame for initializing.
  
 -      * window.c (Fset_window_vscroll): Doc fix.  From Kalle Olavi
 -      Niemitalo <kon@iki.fi>.
 +      * termhooks.h (display_info) [WINDOWSNT]: Add w32.
  
 -2001-11-25  Jason Rumney  <jasonr@gnu.org>
 +      * w32.c (request_sigio, unrequest_sigio): Remove.
  
 -      * w32term.h (FRAME_X_FRINGE_COLS): No fringe on tip frames.
 +      * w32console.c (w32con_move_cursor, w32con_clear_to_end)
 +      (w32con_clear_frame, w32con_clear_end_of_line)
 +      (w32con_ins_del_lines, w32con_insert_glyphs, w32con_write_glyphs)
 +      (w32con_delete_glyphs, w32con_set_terminal_window)
 +      (scroll_line, w32_sys_ring_bell): Add frame arg.
 +      (w32con_set_terminal_modes, w32con_reset_terminal_modes):
 +      Add terminal arg.
 +      (PICK_FRAME): Remove.
 +      (w32con_write_glyphs): Use frame specific terminal coding.
 +      (one_and_only_w32cons): New global variable.
 +      (initialize_w32_display): Use it for storing hooks.
 +      (create_w32cons_output): New function.
  
 -      * w32fns.c (x_create_tip_frame): Set frame's fringes_extra to 0.
 -      (Fx_show_tip): Block input during frame creation.
 -      (Fx_show_tip, Fx_hide_tip): Enable.
 +      * w32inevt.c, w32inevt.h (w32_console_read_socket): Make first
 +      arg a frame.
  
 -2001-11-24  Richard M. Stallman  <rms@gnu.org>
 +      * w32fns.c (x_create_tip_frame): Set terminal and ref count.
 +      Set window_system.
 +      (x_set_tool_bar_lines): Don't use updating_frame.
 +      (Fx_create_frame): Set terminal and ref count.
 +      (Fx_open_connection): Remove window-system check.
  
 -      * lread.c (Fload): Detect recursive load error for more than 3
 -      nestings of the same file.
 -      (Vrecursive_load_depth_limit): Variable deleted.
 -      (syms_of_lread) <recursive-load-depth-limit>: Variable deleted.
 +      * w32menu.c (Fx_popup_menu): Use terminal specific mouse_position_hook.
  
 -2001-11-24  Jason Rumney  <jasonr@gnu.org>
 +      * w32term.c (w32_term_init): Call add_keyboard_wait_descriptor.
 +      (w32_set_terminal_modes, w32_reset_terminal_modes): Add terminal arg.
 +      (x_clear_frame, x_delete_glyphs, w32_ring_bell, x_ins_del_lines):
 +      Add frame arg.
 +      (x_delete_terminal, w32_create_terminal): New functions.
 +      (w32_term_init): Create a terminal.
 +      (w32_initialize): Move terminal specific initialization to
 +      w32_create_terminal.
  
 -      * xfns.c (compute_tip_xy): Initialize root_x and root_y from
 -      mouse position if either left or top is not specified.
 +      * w32term.h (x_output): Remove foreground_pixel and background_pixel.
 +      (w32_clear_rect, w32_clear_area): Use background from frame.
 +      (w32_display_info): Add terminal.
 +      (w32_sys_ring_bell, x_delete_display): Declare here.
  
 -      * w32fns.c (w32_wnd_proc) <WM_MENUSELECT>: Revert last change.
 -      <WM_WINDOWPOSCHANGING>: Let tip frames resize without restriction.
 -      (my_create_tip_window, Fx_show_tip): Adjust size for external border.
 -      (my_create_tip_window): Assign tip_window.
 -      (x_create_tip_frame): Use same defaults as X.
 -      (compute_tip_xy): Remove unused variable.  Use full screen width.
 -      (Fx_show_tip): Do not double height.  Call ShowWindow directly.
 +      * xdisp.c (display_menu_bar) [HAVE_NTGUI]: Check frame type.
  
 -      * w32term.c (x_after_update_window_line): Doc fix.
 -      (w32_read_socket): Doc fix.  Avoid SET_FRAME_GARBAGED for tip
 -      frames.
 -      <WM_SHOWWINDOW>: Redo mouse highlight when hiding tip frame.
 +      * s/ms-w32.h (SYSTEM_PURESIZE_EXTRA): Bump to 50k.
  
 -      * xdisp.c (prepare_menu_bars) [HAVE_WINDOW_SYSTEM]: Use tip_frame
 -      for all Windowed systems.
 +2007-08-29  Kalle Olavi Niemitalo  <kon@iki.fi>  (tiny change)
  
 -2001-11-23  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * keyboard.c (interrupt_signal, handle_interrupt, Fset_quit_char):
 +      Fix get_named_tty calls for the controlling tty.
  
 -      * msdos.c (IT_clear_screen): If the frame's faces are not yet
 -      realized, use the initial screen colors to clear the screen.
 +2007-08-29  ARISAWA Akihiro  <ari@mbf.ocn.ne.jp>  (tiny change)
  
 -2001-11-23  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * term.c (dissociate_if_controlling_tty)[USG]: Fix parse error.
  
 -      * textprop.c (Fset_text_properties): Remove unused variables
 -      `unchanged', `prev_changed', `s' and `len'.
 +2007-08-29  Yoshiaki Kasahara  <kasahara@nc.kyushu-u.ac.jp>  (tiny change)
  
 -      * search.c (Freplace_match): Remove unused variable `inslen'.
 -
 -      * keymap.c (access_keymap): Remove unused variables `c1' and `c2'.
 -
 -2001-11-22  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (x_window_to_frame): Remove irrelevant TODO comment.
 -      (w32_wnd_proc) <WM_MENUSELECT>: Show help echo directly.
 -      (my_create_tip_window): New function.
 -      (x_create_tip_frame, compute_tip_xy): Adapt for Windows.
 -      (Fx_show_tip, Fx_hide_tip) [TEST_TOOLTIPS]: Adapt for Windows.
 -
 -2001-11-20  Jason Rumney  <jasonr@gnu.org>
 -
 -      * coding.h (Vw32_system_coding_system) [WINDOWSNT]: Remove.
 -      (ENCODE_SYSTEM, DECODE_SYSTEM) [WINDOWSNT]: Use Vlocale_coding_system.
 -
 -      * w32fns.c (Vw32_system_coding_system): Remove.
 -      (w32_to_x_font, x_to_w32_font): Use Vlocale_coding_system.
 -
 -2001-11-19  Stefan Monnier  <monnier@cs.yale.edu>
 -
 -      * fileio.c (Fwrite_region): Move choose_write_coding_system to
 -      after build_annotations.
 -
 -      * syntax.c (describe_syntax): Add dummy arg.
 -      (describe_syntax_1): Update call to describe_vector.
 -
 -      * category.c (describe_category): Add dummy arg.
 -      (describe_category_1): Update call to describe_vector.
 -
 -      * keymap.c (Fdescribe_vector): Add `describer' parameter.
 -      (describe_command, describe_translation): Add dummy second param.
 -      (describe_map): Call elt_describer with two arguments.
 -      (describe_vector_princ): Add `fun' parameter.
 -      Call it instead of the hardcoded `princ'.
 -      (describe_vector): Add arg `args'.
 -      Pass it as a new second argument to elt_describer.
 +      * term.c (tty_insert_glyphs): Add missing first parameter.
  
 -      * keymap.h (describe_vector): Update prototype.
 +2007-08-29  K\e,Aa\e(Broly L\e$,1 q\e(Brentey  <karoly@lorentey.hu>
  
 -      * frame.c: Don't include keymap.h any more.
 -      (keys_of_frame): Remove.
 +      * buffer.c (Fbuffer_list, Fbury_buffer):
 +      Take frame->buried_buffer_list into account.
  
 -      * lisp.h (keys_of_frame): Remove declaration.
 +      * cm.c (current_tty): New variable, for cmputc().
 +      (cmputc): Use it.
 +      (cmcheckmagic): Add tty parameter, look up terminal streams there.
 +      (calccost): Add tty parameter.  Use emacs_tputs() instead of tputs().
 +      (cmgoto): Add tty parameter.  Pass it on to calccost().
 +      Use emacs_tputs() instead of tputs().
  
 -      * emacs.c (main): Don't call `keys_of_frame' any more.
 +      * cm.h (emacs_tputs): New macro to set current_tty, and then call
 +      tputs().
 +      (current_tty): New variable, for cmputc().
 +      (cmcheckmagic, cmputc, cmgoto): Add prototypes.
  
 -2001-11-14  Andreas Schwab  <schwab@suse.de>
 +      * eval.c (unwind_to_catch): Don't call x_fully_uncatch_errors.
 +      (internal_condition_case, internal_condition_case_1)
 +      (internal_condition_case_2): Don't abort when x_catching_errors.
  
 -      * unexelf.c [!defined MAP_ANON]: Define MAP_ANON to MAP_ANONYMOUS
 -      if defined, 0 otherwise.
 -      (MAP_FAILED): Define if not defined and use it to test mmap failure.
 -      (unexec) [!MAP_ANON]: Use /dev/zero as file to map.
 +      * fns.c (Fyes_or_no_p): Don't try to open an X dialog on tty terminals.
 +      (Fy_or_n_p): Likewise.  Use temporarily_switch_to_single_kboard to
 +      prevent crashes caused by bogus longjmps in read_char.
  
 -2001-11-19  Richard M. Stallman  <rms@gnu.org>
 +      * keymap.h (Fset_keymap_parent): Add EXFUN.
  
 -      * indent.c (current_column_1): Fix handling of scan_bytes for mb chars.
 +      * macterm.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL)
 +      * w32term.h (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL):
 +      Remove redundant definition.
  
 -2001-11-18  Jason Rumney  <jasonr@gnu.org>
 +      * macfns.c (x_set_mouse_color, x_make_gc):
 +      Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
  
 -      * w32term.c (note_mouse_highlight): Fix type of variable `ignore'.
 -      (x_draw_bar_cursor): If the background color of the glyph under
 -      the cursor equals the frame's cursor color, use the glyph's
 -      foreground color for drawing the bar cursor.
 -      (x_after_update_window_line): Clear internal border in different
 -      circumstances.
 -      (w32_set_vertical_scroll_bar): Check for width and height > 0.
 -      (w32_draw_relief_rect): Correct relief by 1 pixel.
 -      (x_set_glyph_string_background_width):
 -      Set extends_to_end_of_line_p if the row's fill_line_p is set and
 -      drawing the last glyph with DRAW_IMAGE_{RAISED,SUNKEN}.
 -      (x_display_and_set_cursor): If cursor_in_echo_area, use NO_CURSOR
 -      if cursor_in_non_selected_windows is false.
 -      (show_mouse_face): Clean up.  Recognize overwritten cursor differently.
 -      (x_draw_glyphs): Remove parameters REAL_START and REAL_END.
 -      Notice if cursor gets overwritten.
 -      (notice_overwritten_cursor): Renamed from
 -      note_overwritten_text_cursor.  Rewritten to take glyph widths
 -      into account, and to take X positions as parameters.
 -      (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
 -      around call to x_draw_glyphs.
 -      (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
 -      `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
 -      color to use for image glyph reliefs.
 -      (x_draw_image_relief): Accept zero tool_bar_button_relief.
 -      (glyph_rect): Remove unused variable `area'.
 +      * w32term.c (x_free_frame_resources):
 +      Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
 +      (w32_initialize): Use the accessor macros for terminal characteristics.
  
 -      * w32fns.c (x_set_frame_parameters): Avoid infinite recursion for
 -      some items.
 -      (x_set_internal_border_width): Set frame garbaged when window
 -      doesn't exist yet.
 -      (Fx_create_frame): Accept zero tool_bar_button_relief.
 -      (x_clear_image_1, four_corners_best, image_background)
 -      (image_background_transparent): New functions.
 -      (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
 -      (gs_format): Add `:background' entry.
 -      (lookup_image): Set IMG's background color if specified.
 -      (pbm_load, xbm_load_image, png_load): Set IMG's background field
 -      when appropriate.
 -      (x_clear_image_1): Reset `background_valid' and
 -      `background_transparent_valid' fields.
 -      (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
 -      calculating it here.  Set IMG's background_transparent field.
 -      (enum xpm_keyword_index): Add XPM_BACKGROUND.
 -      (enum png_keyword_index): Add PNG_BACKGROUND.
 -      (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
 -      (enum tiff_keyword_index): Add TIFF_BACKGROUND.
 -      (enum gif_keyword_index): Add GIF_BACKGROUND.
 -      (enum gs_keyword_index): Add GS_BACKGROUND.
 -      (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
 -      Pre-calculate image background color where necessary.
 -      (x_create_x_image_and_pixmap, xbm_load, gs_load):
 -      Use display info's n_cbits entry for screen depth.
 -      (Fx_show_tip): Remove unused variables `buffer', `top',
 -      `left', `max_width' and `max_height'.
 +      * macterm.c (mac_initialize): Use Fset_input_interrupt_mode.
 +      Use the accessor macros for terminal characteristics.
 +      * msdos.c (internal_terminal_init): Use the accessor macros for
 +      terminal characteristics.
 +      (ScreenVisualBell, internal_terminal_init):
 +      Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
  
 -      * w32menu.c (w32_menu_show, push_menu_pane): Doc fixes.
 +      * termopts.h (no_redraw_on_reenter): Declare.
  
 -2001-11-18  Gerd Moellmann  <gerd@gnu.org>
 +      * alloc.c (emacs_blocked_malloc): Disable mallopt call.
 +      (mark_terminals, mark_ttys): Declare.
 +      (Fgarbage_collect): Call them.
 +      (mark_object): Mark buried_buffer_list.
  
 -      * puresize.h (BASE_PURESIZE): Increase to 750000.
 +      * prefix-args.c: Include stdlib.h for exit.
  
 -2001-11-18  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * syssignal.h: Add comment.
  
 -      * frame.c (Fframe_live_p): Doc fix.
 +      * indent.c: Include stdio.h.
  
 -2001-11-18  Richard M. Stallman  <rms@gnu.org>
 +      * window.h (Vinitial_window_system): Declare.
 +      (Vwindow_system): Delete declaration.
  
 -      * xdisp.c (message_dolog_marker1, message_dolog_marker2)
 -      (message_dolog_marker3): New static variables hold three markers.
 -      (syms_of_xdisp): Initialize and staticpro them.
 -      (message_dolog): Use message_dolog_marker1..3 instead of
 -      allocating markers each time.  Unchain them when done.
 +      * fontset.c (Finternal_char_font): Use FRAME_RIF.
  
 -2001-11-17  Richard M. Stallman  <rms@gnu.org>
 +      * image.c (lookup_image): Don't initialize `c' until the xasserts
 +      have been run.
  
 -      * doc.c (Fsnarf_documentation): Doc fix.
 +      * gtkutil.c (xg_create_frame_widgets): Use FRAME_BACKGROUND_PIXEL and
 +      FRAME_FOREGROUND_PIXEL.
  
 -2001-11-17  Andreas Schwab  <schwab@suse.de>
 +      * print.c (print_preprocess): Don't lose print_depth levels while
 +      iterating.
  
 -      * xterm.c (note_mouse_highlight): Fix type of variable `ignore'.
 +      * widget.c (update_from_various_frame_slots):
 +      Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
  
 -2001-11-17  Richard M. Stallman  <rms@gnu.org>
 +      * window.c (set_window_buffer): Don't call clear_mouse_face on tty
 +      frames.
 +      (window_internal_height): Remove bogus make_number call.
 +      (init_window_once): Call make_terminal_frame with two zero parameters.
  
 -      * fileio.c (Fwrite_region): Avoid initializer for Lisp_Object.
 +      * fileio.c (Fread_file_name): Update comment.
  
 -2001-11-17  Jason Rumney  <jasonr@gnu.org>
 +      * callint.c (Fcall_interactively):
 +      Use temporarily_switch_to_single_kboard instead of single_kboard_state.
 +      Make sure it is correctly unwound.
 +
 +      * xsmfns.c (x_session_close): New function.
 +
 +      * coding.h (terminal_coding, safe_terminal_coding, keyboard_coding):
 +      Delete declarations.
 +
 +      * xterm.h: Remove declaration for x_fully_uncatch_errors.
 +      (x_output): Remove background_pixel and foreground_pixel fields.
 +      (x_display_info): Add new field TERMINAL.  Remove KBOARD field.
 +      (x_delete_device):
 +      (x_session_close): Declare.
 +
 +      * lread.c: Include setjmp.h.  Update declaration of `read_char'.
 +      (read_filtered_event): Call `read_char' with a local
 +      `wrong_kboard_jmpbuf'.
 +
 +      * minibuf.c (read_minibuf): Call temporarily_switch_to_single_kboard.
 +      Don't call single_kboard_state.  Use FRAME_RIF.
 +
 +      * process.c (Fmake_network_process): Don't unrequest_sigio on modern
 +      systems.
 +
 +      * lisp.h (set_process_environment): Rename to `set_global_environment'.
 +      (Fframe_with_environment, Fset_input_meta_mode)
 +      (Fset_quit_char): EXFUN.
 +      (x_create_device, tty_output, terminal, tty_display_info): Declare.
 +      (init_sys_modes, reset_sys_modes): Update prototypes.
 +      (init_all_sys_modes, reset_all_sys_modes): New prototypes.
 +
 +      * keyboard.h (struct kboard): Add new fields Vlocal_function_key_map,
 +      Vlocal_key_translation_map, and Vkeyboard_translate_table.
 +      (Vfunction_key_map, Vkeyboard_translate_table, single_kboard_state):
 +      Delete declarations.
 +      (Vfunction_key_map, Vkey_translation_map, push_kboard, pop_kboard)
 +      (temporarily_switch_to_single_kboard, tty_read_avail_input):
 +      New declarations.
 +
 +      * emacs.c (main): Don't call init_sys_modes(), the new term_init()
 +      already does that during init_display().  Call syms_of_keymap
 +      before syms_of_keyboard.  Call `syms_of_terminal'.
 +      Call set_initial_environment, not set_process_environment.
 +      (shut_down_emacs): Call reset_all_sys_modes() instead of
 +      reset_sys_modes().
 +
 +      * xfaces.c (x_free_gc): Protect xassert with GLYPH_DEBUG.
 +      (internal_resolve_face_name, resolve_face_name_error): New functions.
 +      (resolve_face_name): Protect against loops and errors thrown by Fget.
 +      (realize_default_face): Don't use FRAME_FONT unless frame is an X frame.
 +      (Ftty_supports_face_attributes_p): Update tty_capable_p call.
 +
 +      * scroll.c: Replace CURTTY() with local variables throughout the
 +      file (where applicable).
 +      (calculate_scrolling, calculate_direct_scrolling)
 +      (scrolling_1, scroll_cost): Use the accessor macros for terminal
 +      characteristics.
 +
 +      * keymap.c (Vfunction_key_map): Remove.
 +      (Fdescribe_buffer_bindings): Update references to Vfunction_key_map.
 +      (syms_of_keymap): Remove DEFVAR for Vfunction_key_map.
 +      (Vkey_translation_map): Remove.
 +      (syms_of_keymap): Remove DEFVAR for key-translation-map.
 +      (Fdescribe_buffer_bindings):
 +      (read_key_sequence, init_kboard, syms_of_keyboard, mark_kboards):
 +      Update for terminal-local key-translation-map.
 +
 +      * Makefile.in (callproc.o): Update dependencies.
 +      (lisp, shortlisp): Add termdev.elc.
 +      (obj): Add terminal.o.
 +      (terminal.o): Add dependencies.
 +      [HAVE_CARBON]: Make terminal.o depend on macgui.h.
 +      (data.o, fns.o): Add termhooks.h dependency.
 +      (SOME_MACHINE_LISP): Add dnd.elc.
 +      (minibuf.o): Fix typo.
 +      Update dependencies.
 +
 +      * data.c (do_symval_forwarding, store_symval_forwarding)
 +      (find_symbol_value): Use the selected frame's keyboard, not
 +      current_kboard.
 +
 +      * .gdbinit (init_sys_modes): Use Vinitial_window_system instead of
 +      Vwindow_system.
 +
 +      * xmenu.c (Fx_menu_bar_open) [USE_X_TOOLKIT, USE_GTK]: Rename from
 +      Fmenu_bar_open.
 +      (syms_of_xmenu): Update defsubr.
 +      (mouse_position_for_popup, Fx_popup_menu)
 +      (Fx_popup_dialog, x_activate_menubar, update_frame_menubar)
 +      (set_frame_menubar, free_frame_menubar)
 +      (create_and_show_popup_menu, xmenu_show, )
 +      (create_and_show_dialog, xdialog_show, xmenu_show): Abort if not
 +      an X frame.
 +
 +      * xselect.c (x_own_selection): Abort if not an X frame.
 +      (some_frame_on_display): Check if it is an X frame.
 +      (x_handle_selection_clear): Deal with MULTI_KBOARD.
 +
 +      * coding.c: Include frame.h and termhooks.h.
 +      (terminal_coding, keyboard_coding): Delete.
 +      (Fset_terminal_coding_system_internal):
 +      (Fset_keyboard_coding_system_internal):
 +      (Fkeyboard_coding_system):
 +      (Fterminal_coding_system): Add a terminal parameter.
 +      Get terminal_coding from the terminal.
 +      (init_coding_once): Don't call setup_coding_system here.
 +
 +      * dispextern.h (set_scroll_region, turn_off_insert)
 +      (turn_off_highlight, background_highlight, clear_end_of_line_raw)
 +      (tty_clear_end_of_line, tty_setup_colors)
 +      (delete_tty, updating_frame)
 +      (produce_special_glyphs, produce_glyphs, write_glyphs)
 +      (insert_glyphs): Remove.
 +      (raw_cursor_to, clear_to_end, tty_turn_off_insert)
 +      (tty_turn_off_highlight, get_tty_size): Add declaration.
 +      (tabs_safe_p, init_baud_rate, get_tty_terminal): Update prototypes.
 +
 +      * frame.h (enum output_method): Add output_initial.
 +      (struct x_output): Delete.
 +      (FRAME_FOREGROUND_PIXEL, FRAME_BACKGROUND_PIXEL):
 +      Access foreground_pixel and background_pixel directly from the frame.
 +      (tty_display): Delete.
 +      (struct frame): Add buried_buffer_list, foreground_pixel,
 +      background_pixel and terminal.  Delete kboard
 +      (union output_data): Add tty.
 +      (FRAME_KBOARD): Get the kboard from the terminal.
 +      (FRAME_INITIAL_P): New macro.
 +      (Qtty, Qtty_type, Qterminal, Qterminal_live_p, Qenvironment)
 +      (Qterm_environment_variable, Qdisplay_environment_variable)
 +      (make_terminal_frame, Qburied_buffer_list, Qwindow_system):
 +      New declarations.
 +
 +      * termchar.h (tty_output, tty_display_info): New structures.
 +      (tty_list): Declare.
 +      (FRAME_TTY, CURTTY): New macros.
 +      (must_write_spaces, min_padding_speed, fast_clear_end_of_line)
 +      (line_ins_del_ok, char_ins_del_ok, scroll_region_ok)
 +      (scroll_region_cost, memory_below_frame, fast_clear_end_of_line)
 +      (dont_calculate_costs, no_redraw_on_reenter): Remove declarations.
 +
 +      * callproc.c: Include frame.h and termhooks.h, for terminal
 +      parameters.
 +      (add_env): New function.
 +      (child_setup): Use it.
 +      (child_setup, getenv_internal): Handle the new Vprocess_environment.
 +      (getenv_internal): Fix get_terminal_param call.
 +      (Fgetenv_internal, egetenv): Update doc.
 +      (syms_of_callproc): Initialize Vprocess_environment to nil.
 +      Register and initialize them.  Remove obsolete defvars.  Update doc
 +      strings.
 +      (child_setup): Handle Vlocal_environment_variables.
 +      (getenv_internal): Add terminal parameter.
 +      Handle Vlocal_environment_variables.
 +      (Fgetenv_internal): Add terminal parameter.
 +      (child_setup, getenv_internal, Fgetenv_internal): Store the local
 +      environment in a frame (not terminal) parameter.  Update doc strings.
 +      (set_initial_environment): Rename from set_global_environment.
 +      Store Emacs environment in initial frame parameter.
 +
 +      * xdisp.c (redisplay_internal): Update references to
 +      `previous_terminal_frame'.
 +      (display_mode_line, Fformat_mode_line): Replace calls to
 +      `push_frame_kboard' with `push_kboard'.
 +      (get_glyph_string_clip_rects): Add extra parentheses and
 +      braces to prevent compiler warnings.
 +      (calc_pixel_width_or_height): Add xassert to check that the
 +      frame is alive.  Don't call `lookup_image' on a termcap frame.
 +      (message2_nolog, message3_nolog, redisplay_internal)
 +      (set_vertical_scroll_bar, redisplay_window, check_x_display_info)
 +      (x_set_scroll_bar_foreground, x_set_scroll_bar_background)
 +      (Fx_create_frame, Fxw_display_color_p, Fx_display_grayscale_p)
 +      (Fx_display_pixel_width, Fx_display_pixel_height)
 +      (Fx_display_planes, Fx_display_color_cells)
 +      (Fx_server_max_request_size, Fx_server_vendor, Fx_server_version)
 +      (Fx_display_screens, Fx_display_mm_height, Fx_display_mm_width)
 +      (Fx_display_backing_store, Fx_display_visual_class)
 +      (Fx_display_save_under, Fx_close_connection, x_create_tip_frame):
 +      Use FRAME_TERMINAL_P, FRAME_WINDOW_P, FRAME_TTY and FRAME_RIF.
 +
 +      * xfns.c (x_set_foreground_color x_set_background_color)
 +      (x_set_mouse_color, x_set_cursor_color, x_make_gc):
 +      Use FRAME_BACKGROUND_PIXEL and FRAME_FOREGROUND_PIXEL.
 +      (Fx_create_frame, x_create_tip_frame, build_string, x_window)
 +      (Fx_create_frame, x_create_tip_frame): Don't create frames on a
 +      terminal that is being deleted.
 +      (Fx_create_frame): Use `store_frame_param' to set `window-system'
 +      frame parameter, and make sure it overrides any user-supplied setting.
 +      (Fx_close_connection, Fx_synchronize): Unify argument names with
 +      the rest of the DEFUNs.
 +
 +      * dispnew.c (Fsend_string_to_terminal): Update call to
 +      `get_tty_terminal'.
 +      (Fredraw_frame, Fsend_string_to_terminal)
 +      (Fsend_string_to_terminal, init_display): Use FRAME_RIF,
 +      FRAME_TERMCAP_P and FRAME_TTY.
 +      (window_change_signal): Don't believe width/height values that are
 +      impossibly small.
 +      (Vinitial_window_system): Rename from Vwindow_system.
 +      (termscript, Wcm, rif): Delete.
 +
 +      * termhooks.h (struct terminal): New struct containing the
 +      previously global text display hooks and new members NAME,
 +      DELETED and PARAM_ALIST.
 +      (FRAME_TERMINAL, TERMINAL_TERMINAL_CODING)
 +      (TERMINAL_KEYBOARD_CODING, TERMINAL_ACTIVE_P, FRAME_WINDOW_P)
 +      (FRAME_RIF): New macros.
 +      (get_terminal_param, get_device): New declarations.
 +      (termscript): Delete declaration.
 +
 +      * xterm.c (x_initialize): Use Fset_input_interrupt_mode.
 +      (XTflash, x_free_frame_resources, x_scroll_bar_create)
 +      (x_scroll_bar_set_handle): Use FRAME_BACKGROUND_PIXEL and
 +      FRAME_FOREGROUND_PIXEL.
 +      (x_fully_uncatch_errors): Disable definition.
 +      (x_scroll_bar_expose): Fix reference to foreground pixel.
 +      (XTread_socket): Disable loop on all X displays.
 +      (x_delete_terminal): Don't set terminal->deleted and let
 +      delete_terminal delete the frames on the terminal.
 +      (x_delete_display): Doc update to reflect changes in
 +      delete_terminal.
 +      (x_display_info) <terminal>: Move member earlier in the struct.
 +      (deleting_tty): Remove old variable.
 +      (Fsuspend_tty): Call clear_tty_hooks.
 +      (Fresume_tty, init_tty): Call set_tty_hooks.
 +      (Ftty_display_color_p, Ftty_display_color_cells): Don't throw
 +      errors on X frames.
 +      (x_catch_errors_unwind): Abort if x_error_message is NULL.
 +      (handle_one_xevent): Initialize `f' to NULL.
 +      (x_delete_terminal, x_create_terminal): New functions.
 +      (XTset_terminal_modes, XTreset_terminal_modes)
 +      (XTread_socket, x_connection_closed, x_term_init)
 +      (x_term_init, x_delete_display): Add terminal parameter.
 +      (x_term_init) [!HAVE_GTK_MULTIDISPLAY]: Refuse to create secondary
 +      X connections.
 +
 +      * frame.c (Fframep): Deal with output_initial.
 +      (Qbuffer_predicate, Qbuffer_list, Qburied_buffer_list, Qtty)
 +      (Qtty_type, Qwindow_system, Qenvironment)
 +      (Qterm_environment_variable, Qdisplay_environment_variable): New vars.
 +      (x_set_screen_gamma, store_frame_param): Fix compilation errors.
 +      (make_terminal_frame): Don't create frames on a terminal that is
 +      being deleted.
 +      (make_terminal_frame): Use FRAME_BACKGROUND_PIXEL and
 +      FRAME_FOREGROUND_PIXEL.
 +      (store_frame_param): Check for found_for_frame before calling XFRAME.
 +      (Fmake_terminal_frame): Handle NULL tty names correctly.
 +      (syms_of_frame): Enhance doc string of `default-frame-alist'.
 +      (Fdelete_frame): Remove unused variable `count'.
 +      (Qenvironment): New variable.
 +      (Fdelete_frame): Don't allow other frames to refer to a deleted
 +      frame in their 'environment parameter.
 +      (Fframe_with_environment): New function.
 +      (syms_of_frame): Defsubr it.  Initialize and staticpro Qenvironment.
 +      (get_future_frame_param): New function.
 +      (Fmake_terminal_frame): Use it.
 +      (x_set_frame_parameters, x_set_screen_gamma): Use FRAME_RIF.
 +
 +      * sysdep.c (init_sys_modes, reset_sys_modes): Update for renames.
 +      * sysdep.c (reset_sys_modes): Update for renames.
 +
 +      * keyboard.c (tty_read_avail_input): New function.
 +      (Fset_input_interrupt_mode, Fset_output_flow_control): New functions.
 +      (syms_of_keyboard): Defsubr them.
 +      (Fset_input_meta_mode, Fset_quit_char): New functions.
 +      (Fset_input_mode): Split to above functions.
 +
 +      (read_char_minibuf_menu_prompt): Add wrong_kboard_jmpbuf
 +      parameter.  Use it in call to `read_char'.
 +      (read_char): Declare.  Update call to `read_char_minibuf_menu_prompt'.
 +      Set wrong_kboard_jmpbuf correctly in recursive calls.
 +      Use current_kboard to access Vkeyboard_translate_table.
 +      Enhance comment before extra longjmp to wrong_kboard_jmpbuf.
 +      Add wrong_kboard_jmpbuf parameter to allow for recursive calls.
 +      Update longjmp invocations.  Remember the original current_kboard,
 +      and longjmp to `wrong_kboard_jmpbuf' when a filter, timer or sentinel
 +      changes it.  Comment out unnecessary calls to
 +      `record_single_kboard_state' and `any_kboard_state'.
 +      Update recursive calls.
 +      (wrong_kboard_jmpbuf): Remove global variable.
 +      (read_key_sequence): Remove unused variable wrong_kboard_jmpbuf.
 +      Handle deleted interrupted_kboards correctly; that is a legal
 +      case.  Add `wrong_kboard_jmpbuf' local variable.  Update setjmp
 +      and read_char calls.  Abort if interrupted_kboard died in read_char.
 +      (any_kboard_state, single_kboard_state)
 +      (push_frame_kboard): Remove function.
 +      (pop_kboard): Switch out of single_kboard mode if the kboard has
 +      been deleted.  Remove unused variable.  Help debugging by not
 +      changing current_kboard unnecessarily.  Set current_kboard to the
 +      kboard of the selected frame when the stored kboard object has
 +      been deleted before pop_kboard.
 +      (temporarily_switch_to_single_kboard): Change first parameter to a
 +      frame pointer.  Throw an error when caller wants to change kboards
 +      while in single_kboard mode.  Don't push_kboard if we weren't in
 +      single kboard state.  Don't pop_kboard if we popped into any
 +      kboard state.
 +      (restore_kboard_configuration): Abort if pop_kboard changed the
 +      kboard in single_kboard mode.  Call pop_kboard only after setting
 +      up single_kboard mode.
 +      (Frecursive_edit): Switch to single_kboard mode only in nested
 +      command loops.
 +      (cmd_error, command_loop, command_loop_1, timer_check):
 +      Comment out unnecessary call to `any_kboard_state' and
 +      `record_single_kboard_state'.
 +      (delete_kboard): Exit single_kboard mode if we have just deleted
 +      that kboard.  Use FRAME_KBOARD.
 +      (interrupt_signal): Use `Fkill_emacs' to exit Emacs, not
 +      `fatal_error_signal'.
 +      (record_single_kboard_state): Don't push_kboard if we weren't in
 +      single kboard state.  Don't pop_kboard if we popped into any
 +      kboard state.
 +      (push_frame_kboard): Rename to push_kboard.
 +      (kbd_buffer_get_event): Use FRAME_TERMINAL.
 +      (read_avail_input): Read input from all terminals.
 +      (mark_kboards): Also mark Vkeyboard_translate_table.
 +      (kbd_buffer_store_event_hold): Simplify condition.
 +      (read_key_sequence): Reinitialize fkey and keytran at each replay.
 +      (Vkeyboard_translate_table): Move to struct kboard.
 +      (init_kboard): Initialize Vkeyboard_translate_table.
 +      (syms_of_keyboard): Use DEFVAR_KBOARD to define
 +      Vkeyboard_translate_table.  Update doc strings.  Update docs of
 +      local-function-key-map and function-key-map.
 +
 +      * terminal.c: New file.
 +
 +      * term.c: Include errno.h.
 +      (Vring_bell_function, device_list, initial_device)
 +      (next_device_id, ring_bell, update_begin, update_end)
 +      (set_terminal_window, cursor_to, raw_cursor_to)
 +      (clear_to_end, clear_frame, clear_end_of_line)
 +      (write_glyphs, insert_glyphs, delete_glyphs, ins_del_lines)
 +      (Fdisplay_name, create_device, delete_device): Move to terminal.c.
 +      (syms_of_term): Move their initialization to terminal.c.
 +      (get_tty_terminal, Fdisplay_tty_type, Ftty_display_color_p)
 +      (Ftty_display_color_cells)
 +      (Ftty_no_underline, Fsuspend_tty, Fresume_tty, create_tty_output)
 +      (clear_tty_hooks, set_tty_hooks)
 +      (init_tty, maybe_fatal): New functions.
 +      (Ftty_type): Return nil if terminal is not on a tty instead of
 +      throwing an error.  Doc update.
 +      (syms_of_term) <Vsuspend_tty_functions, Vresume_tty_functions>:
 +      Doc update.  Initialize new subrs and variables.
 +      (delete_tty): Use terminal->deleted.
 +      (tty_set_terminal_modes): Rename from set_terminal_modes.
 +      (tty_reset_terminal_modes): Rename from reset_terminal_modes.
 +      (set_scroll_region): Rename to `tty_set_scroll_region'.
 +      (turn_on_insert): Rename to `tty_turn_on_insert'.
 +      (turn_off_insert): Rename to `tty_turn_off_insert'.
 +      (turn_off_highlight): Rename to `tty_turn_off_highlight'.
 +      (turn_on_highlight): Rename to `tty_turn_on_highlight'.
 +      (toggle_highligh): Rename to `tty_toggle_highlight'.
 +      (background_highlight): Rename to `tty_background_highlight'.
 +      (highlight_if_desired): Rename to `tty_highlight_if_desired'.
 +      (tty_ring_bell, tty_update_end, tty_set_terminal_window)
 +      (tty_set_scroll_region, tty_background_highlight)
 +      (tty_cursor_to, tty_raw_cursor_to, tty_clear_to_end)
 +      (tty_clear_frame, tty_clear_end_of_line, tty_write_glyphs)
 +      (tty_insert_glyphs, tty_delete_glyphs, tty_ins_del_lines)
 +      (term_get_fkeys, tty_setup_colors, dissociate_if_controlling_tty):
 +      Add static modifier.
 +      (tty_reset_terminal_modes, tty_set_terminal_window)
 +      (tty_set_scroll_region, tty_background_highlight)
 +      (tty_highlight_if_desired, tty_cursor_to)
 +      (tty_raw_cursor_to, tty_clear_to_end, tty_clear_frame)
 +      (tty_clear_end_of_line, tty_write_glyphs, tty_insert_glyphs)
 +      (tty_delete_glyphs, tty_ins_del_lines, turn_on_face): Update for
 +      renames.
  
 -      * xterm.c (notice_overwritten_cursor): Take care of end < 0 case.
 +2007-08-28  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -2001-11-17  Gerd Moellmann  <gerd@gnu.org>
 +      * keyboard.c: Qrtl is new.
 +      (parse_tool_bar_item): Handle :rtl keyword.
 +      (syms_of_keyboard): Intern :rtl keyword.
  
 -      * xdisp.c (tool_bar_item_info): Avoid calling Fget_text_property
 -      with invalid position.
 +      * dispextern.h (enum tool_bar_item_idx): Add TOOL_BAR_ITEM_RTL_IMAGE.
  
 -2001-11-16  Richard M. Stallman  <rms@gnu.org>
 +      * gtkutil.c (xg_tool_bar_expose_callback): Just do SET_FRAME_GARBAGED
 +      so no Lisp code is executed.
 +      (file_for_image, find_rtl_image): New functions.
 +      (xg_get_image_for_pixmap): Use file_for_image
 +      (update_frame_tool_bar): If direction is RTL, use RTL image if
 +      defined.  Use Gtk stock images if defined.
  
 -      * syswait.h: Delete conditionals for HPUX7, ISC 4.1, and convex.
 +2007-08-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * s/isc4-1.h (HAVE_SYS_WAIT_H): Add #undef.
 -      * s/hpux.h (HAVE_SYS_WAIT_H): Add #undef.
 -      * s/hpux8.h (HAVE_SYS_WAIT_H): Define it.
 +      * macterm.c (x_draw_composite_glyph_string_foreground): Draw rectangle
 +      for nonexistent or zero-width glyph in composition glyph.
  
 -      * m/convex.h (HAVE_SYS_WAIT_H): Add #undef.
 +2007-08-25  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2001-11-16  Stefan Monnier  <monnier@cs.yale.edu>
 +      * m/amdx86-64.h: Redirect to intel386.h if compiling for i386.
  
 -      * fileio.c (build_annotations): Split off the tail.
 -      (build_annotations_2): New fun.  Extracted from build_annotations.
 -      (Fwrite_region): Split the call to build_annotations into two
 -      calls to build_annotations and build_annotations_2.
 +      * xdisp.c (Finvisible_p): New function.
 +      (syms_of_xdisp): defsubr it.
  
 -2001-11-16  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-08-24  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * sysdep.c (wait_for_kbd_input) [VMS]: Do not call
 -      clear_waiting_for_input with argument.
 +      * image.c (syms_of_image) <image-library-alist, cross-disabled-images>:
 +      Doc fixes.
  
 -      * xterm.h (x_update_cursor): Remove duplicated prototype.
 +2007-08-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * keyboard.h (clear_waiting_for_input): Remove duplicated prototype.
 +      * mac.c [MAC_OSX] (select_and_poll_event, sys_select): Fix last changes.
  
 -      * xterm.c (waiting_for_input): Remove unnecessary declaration.
 +2007-08-24  Martin Rudalics  <rudalics@gmx.at>
  
 -      * data.c (Ftimes, Fquo, Frem, Fmod): Doc fix.
 +      * fileio.c (Finsert_file_contents): Consult CHARS_MODIFF to tell
 +      whether decoding has modified buffer contents.
  
 -2001-11-16  Stefan Monnier  <monnier@cs.yale.edu>
 +2007-08-24  Jason Rumney  <jasonr@gnu.org>
  
 -      * fileio.c (choose_write_coding_system): New fun, extracted
 -      from Fwrite_region.
 -      (Fwrite_region): Use it.
 +      * image.c [HAVE_NTGUI]: Define dynamic loaded functions for SVG.
 +      (Qgdk_pixbuf, Qglib) [HAVE_NTGUI]: New symbols.
 +      (syms_of_image) [HAVE_NTGUI]: Intern and staticpro them.
 +      (init_svg_functions) [HAVE_NTGUI]: New function.
 +      (fn_g_type_init, fn_g_object_unref, fn_g_error_free): New #defines.
 +      (svg_load_image): Use them.
 +      (svg_load_image) [HAVE_NTGUI]: Implement background.
  
 -      * eval.c (max_specpdl_size, max_lisp_eval_depth): Use EMACS_INT.
 -      (funcall_lambda, run_hook_with_args): Make static and add prototype.
 -      (ml_apply, find_handler_clause): Add prototype.
 +2007-08-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2001-11-16  Eli Zaretskii  <eliz@gnu.org>
 +      * Makefile.in (RSVG_LIBS, RSVG_CFLAGS): New variables.
 +      (ALL_CFLAGS): Use ${RSVG_CFLAGS} instead of @RSVG_CFLAGS@.
 +      (LIBX): Remove @RSVG_LIBS@.
 +      (LIBES): Add $(RSVG_LIBS).
  
 -      * config.in: Add #undef HAVE_COFF_H.
 +      * image.c (svg_load_image): Blend with specified background if exists.
 +      Use IMAGE_BACKGROUND.  Add Mac OS Support.
  
 -      * unexec.c (coff.h): Don't include unless HAVE_COFF_H is defined.
 -      Required for ISC 4.1.
 +      * mac.c (wakeup_from_rne_enabled_p) [MAC_OSX]: Remove variable.
 +      (ENABLE_WAKEUP_FROM_RNE, DISABLE_WAKEUP_FROM_RNE) [MAC_OSX]:
 +      Remove macros.
 +      [MAC_OSX] (socket_callback): Do nothing.
 +      [MAC_OSX] (select_and_poll_event): Use CFRunLoopRunInMode instead of
 +      ReceiveNextEvent.
 +      [MAC_OSX] (sys_select): Likewise.  Don't set context as argument to
 +      socket_callback.
 +      (mac_wakeup_from_rne) [MAC_OSX]: Do nothing.
  
 -2001-11-16  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-08-22  Glenn Morris  <rgm@gnu.org>
  
 -      * syswait.h (HAVE_SYS_WAIT_H): Undef for ISC 4.1.  Reported by
 -      Andrew Wiseman <a.wiseman@btclick.com>.
 +      * image.c (x_find_image_file): Search in etc/images/ rather than etc/.
  
 -2001-11-16  Kim F. Storm  <storm@cua.dk>
 +2007-08-22  Paul Pogonyshev  <pogonyshev@gmx.net>
  
 -      The following changes are made to clean up the various internal
 -      references to the fringes to actually use the term `fringe' for
 -      them.  Previously, they were called `flags areas', `bitmap areas',
 -      `left/right side of windows', or implicitly as `flags' or
 -      `bitmaps':
 +      * Makefile.in (ALL_CFLAGS, LIBX): Add RSVG_LIBS.
  
 -      * dispextern.h (FRINGE_FACE_ID): Renamed from BITMAP_AREA_FACE_ID.
 -      Comments fixed.  Use renamed symbols.
 +      * image.c: Add support for SVG images.  Some additional comments
 +      by Joakim Verona <joakim@verona.se>.  When HAVE_RSVG is defined:
 +      (svg_image_p): New function to test for SVG image.
 +      (svg_load): New function to load SVG image.
 +      (svg_load_image): New function, helper for svg_load.
 +      (Qsvg): New Lisp_object.
 +      (svg_keyword_index): New enum.
 +      (svg_format): New static `image_keyword' struct.
 +      (svg_type): New static `image_type' struct.
 +      (librsvg/rsvg.h): Include it.
  
 -      * dispnew.c: Comment fix.  Use renamed symbols.
 +2007-08-23  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * frame.h (FRAME_FRINGE_COLS): Renamed from FRAME_FLAGS_AREA_COLS.
 -      (FRAME_FRINGE_WIDTH): Renamed from FRAME_FLAGS_AREA_WIDTH.
 -      (FRAME_LEFT_FRINGE_WIDTH): Renamed from FRAME_LEFT_FLAGS_AREA_WIDTH.
 +      * lread.c (load_warn_old_style_backquotes): Fix up array size typo.
  
 -      * msdos.c: Comment fix.
 +2007-08-22  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * w32fns.c: Use renamed symbols.
 +      * lread.c (Qold_style_backquotes): New var.
 +      (syms_of_lread): Init and staticpro it.
 +      (load_warn_old_style_backquotes): New fun.
 +      (Fload): Use them to warn about old style backquotes.
 +      (end_of_file_error, Fload): Remove unused vars.
  
 -      * w32term.c: Comment fixes.  Use renamed symbols.
 -      (fringe_bitmap_type): Renamed from bitmap_type.
 -      (NO_FRINGE_BITMAP): Renamed from NO_BITMAP.
 -      (w32_draw_fringe_bitmap): Renamed from w32_draw_bitmap.
 -      (x_draw_row_fringe_bitmaps): Renamed from x_draw_row_bitmaps.
 +      * lisp.h (Fclear_face_cache, Fx_send_client_event): Declare.
  
 -      * w32term.h: Comment fixes.  Use renamed symbols.
 -      (fringes_extra): Renamed from flags_areas_extra.
 -      (FRAME_FRINGE_BITMAP_WIDTH): Renamed from FRAME_FLAGS_BITMAP_WIDTH.
 -      (FRAME_FRINGE_BITMAP_HEIGHT): Renamed from FRAME_FLAGS_BITMAP_HEIGHT.
 -      (FRAME_X_FRINGE_COLS): Renamed from FRAME_X_FLAGS_AREA_COLS.
 -      (FRAME_X_FRINGE_WIDTH): Renamed from FRAME_X_FLAGS_AREA_WIDTH.
 -      (FRAME_X_LEFT_FRINGE_WIDTH):
 -      Renamed from FRAME_X_LEFT_FLAGS_AREA_WIDTH.
 -      (FRAME_X_RIGHT_FRINGE_WIDTH):
 -      Renamed from FRAME_X_RIGHT_FLAGS_AREA_WIDTH.
 +      * lread.c (Vold_style_backquotes): New var.
 +      (syms_of_lread): Init and export it to Elisp.
 +      (read1): Set it when we find an old-style (back)quote.
  
 -      * widget.c: Use renamed symbols.
 +2007-08-22  Jason Rumney  <jasonr@gnu.org>
  
 -      * window.c: Comment fixes.  Use renamed symbols.
 -      (coordinates-in-window-p): Doc fix.
 +      * w32reg.c (SYSTEM_DEFAULT_RESOURCES): Add missing NULL terminator.
  
 -      * xdisp.c: Comment fixes.  Use renamed symbols.
 +2007-08-22  Katsumi Yamaoka  <yamaoka@jpl.org>
  
 -      * xfaces.c (realize_basic_faces): Use FRINGE_FACE_ID.
 +      * puresize.h (BASE_PURESIZE): Increase to 1140000.
  
 -      * xfns.c: Use renamed symbols.
 +2007-08-19  Richard Stallman  <rms@gnu.org>
  
 -      * xterm.c: Comment fixes.  Use renamed symbols.
 -      (fringe_bitmap_type): Renamed from bitmap_type.
 -      (NO_FRINGE_BITMAP): Renamed from NO_BITMAP.
 -      (x_draw_fringe_bitmap): Renamed from x_draw_bitmap.
 -      (x_draw_row_fringe_bitmaps): Renamed from x_draw_row_bitmaps.
 +      * eval.c (Ffunction, Fquote): Signal error if not 1 argument.
  
 -      * xterm.h: Comment fixes.  Use renamed symbols.
 -      (fringes_extra): Renamed from flags_areas_extra.
 -      (FRAME_FRINGE_BITMAP_WIDTH): Renamed from FRAME_FLAGS_BITMAP_WIDTH.
 -      (FRAME_FRINGE_BITMAP_HEIGHT): Renamed from FRAME_FLAGS_BITMAP_HEIGHT.
 -      (FRAME_X_FRINGE_COLS): Renamed from FRAME_X_FLAGS_AREA_COLS.
 -      (FRAME_X_FRINGE_WIDTH): Renamed from FRAME_X_FLAGS_AREA_WIDTH.
 -      (FRAME_X_LEFT_FRINGE_WIDTH):
 -      Renamed from FRAME_X_LEFT_FLAGS_AREA_WIDTH.
 -      (FRAME_X_RIGHT_FRINGE_WIDTH):
 -      Renamed from FRAME_X_RIGHT_FLAGS_AREA_WIDTH.
 +2007-08-19  Andreas Schwab  <schwab@suse.de>
  
 -2001-11-15  Jason Rumney  <jasonr@gnu.org>
 +      * alloc.c (pure): Round PURESIZE up.
  
 -      * w32menu.c (add-menu-item): Make help_echo and radio buttons
 -      work for most menu items.  From David Ponce
 -      <david.ponce@wanadoo.fr>.
 +2007-08-17  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -2001-11-15  Gerd Moellmann  <gerd@gnu.org>
 +      * xterm.c (handle_one_xevent): Remove check that mouse click is in
 +      active frame.
  
 -      * xfns.c (x_set_frame_parameters): Revert change of 2001-11-07.
 -      Some x_set_* function expect to be called even if old and new
 -      value are equal.
 +2007-08-16  Richard Stallman  <rms@gnu.org>
  
 -      * xdisp.c (build_desired_tool_bar_string): Accept zero
 -      tool_bar_button_relief.
 +      * eval.c (Fcommandp): Add parens to clarify.
  
 -      * xfns.c (Fx_create_frame): Accept zero tool_bar_button_relief.
 +      * minibuf.c (Fall_completions): Use enum for type of table.
  
 -      * xterm.c (x_draw_image_relief): Accept zero tool_bar_button_relief.
 +      * emacs.c (USAGE2): Improve text.
  
 -      * xterm.c (x_draw_bar_cursor): If the background color of the
 -      glyph under the cursor equals the frame's cursor color, use
 -      the glyph's foreground color for drawing the bar cursor.
 +2007-08-15  Philippe Waroquiers  <philippe.waroquiers@eurocontrol.int>
  
 -      * dispnew.c (direct_output_forward_char): Fix character/byte
 -      position comparison.
 +      * term.c (tty_default_color_capabilities): Declare static
 +      variables in file scope, to avoid HPUX compiler problem.
  
 -2001-11-15  Miles Bader  <miles@gnu.org>
 +2007-08-13  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -      * editfns.c (find_field): Add BEG_LIMIT and END_LIMIT parameters.
 -      (Fdelete_field, Ffield_string, Ffield_string_no_properties):
 -      Update arguments to find_field.
 -      (Ffield_beginning, Ffield_end): Add LIMIT param, pass to find_field.
 -      (Fconstrain_to_field): Use LIMIT arg to shorten search time.
 -      * lisp.h (Ffield_beginning, Ffield_end): Update EXFUN decl.
 -      * minibuf.c (Fminibuffer_prompt_end): Update args to Ffield_end.
 +      * gtkutil.c (update_frame_tool_bar): Use -1 as index
 +      to gtk_toolbar_insert.
  
 -2001-11-14  Richard M. Stallman  <rms@gnu.org>
 +2007-08-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * editfns.c (Fpropertize): Allow call with 1 arg.
 +      * fileio.c (Finsert_file_contents): Yet Another Int/Lisp_Object Mixup.
  
 -      * dispextern.h (image_background, image_background_transparent):
 -      Conditionalize on HAVE_X_WINDOWS.
 +      * insdel.c (reset_var_on_error): New fun.
 +      (signal_before_change, signal_after_change):
 +      Use it to reset (after|before)-change-functions to nil in case of error.
 +      Bind inhibit-modification-hooks to t.
 +      Don't bind (after|before)-change-functions to nil while they run.
  
 -2001-11-13  Richard M. Stallman  <rms@gnu.org>
 +2007-08-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * print.c (Fprin1_to_string): Doc fix.
 +      * xterm.c (x_draw_image_glyph_string): Adjust stipple origin when
 +      filling pixmap with stippled background.
  
 -      * sunfns.c (Fsun_change_cursor_icon): Doc fix.
 +2007-08-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * floatfns.c (Fceiling, Ffloor): Doc fixes.
 +      * macterm.c [TARGET_API_MAC_CARBON] (mac_handle_window_event):
 +      Don't use invisible frame as parent window for repositioning.
  
 -      * filelock.c (Funlock_buffer, Ffile_locked_p): Doc fixes.
 +2007-08-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * fileio.c (Ffile_accessible_directory_p): Doc fix.
 +      * print.c (new_backquote_output): Rename from old_backquote_output.
 +      (print): Inverse its logic (according to its name) so as to match the
 +      behavior of new_backquote_flag in lread.c.
  
 -      * eval.c (syms_of_eval): Doc fix.
 +2007-08-09  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * coding.c (syms_of_coding): Doc fix.
 +      * gmalloc.c (posix_memalign): New function.
  
 -      * doc.c (Fsnarf_documentation): Doc fix.
 +      * macterm.c (frame_highlight, frame_unhighlight): Don't call
 +      ActivateControl/DeactivateControl here.
 +      [USE_MAC_TOOLBAR] (free_frame_tool_bar): Suppress animation when
 +      frame-notice-user-settings is non-nil.
 +      [USE_MAC_FONT_PANEL] (mac_handle_font_event): Also record parameter
 +      for kEventParamFMFontStyle.
 +      [TARGET_API_MAC_CARBON] (mac_handle_keyboard_event): Don't check
 +      mac_pass_command_to_system and mac_pass_control_to_system here.
 +      (XTread_socket): Call ActivateControl/DeactivateControl here.
 +      (XTread_socket) [TARGET_API_MAC_CARBON]:
 +      Check mac_pass_command_to_system and mac_pass_control_to_system here.
 +      (mac_handle_window_event) [USE_MAC_TOOLBAR]: Add further workaround
 +      for window repositioning.
  
 -      * dispnew.c (syms_of_display): Doc fix.
 +2007-08-08  Glenn Morris  <rgm@gnu.org>
  
 -      * category.c (Fget_unused_category): Doc fix.
 +      * Replace `iff' in doc-strings and comments.
  
 -      * buffer.c (syms_of_buffer): Doc fixes.
 +2007-08-07  Chong Yidong  <cyd@stupidchicken.com>
  
 -2001-11-14  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * xdisp.c (move_it_by_lines): Remove incorrect optimization.
  
 -      * print.c (prin1, print): Doc fix.
 +2007-08-07  Martin Rudalics  <rudalics@gmx.at>
  
 -2001-11-14  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * fileio.c (Finsert_file_contents): Run format-decode and
 +      after_insert_file_functions on entire buffer when REPLACE is
 +      non-nil and inhibit modification_hooks and point_motion_hooks.
 +      For consistency, run after_insert_file_functions iff something
 +      got inserted.  Move signal_after_change and update_compositions
 +      after code running after_insert_file_functions.  Make sure that
 +      undo_list doesn't record intermediate steps of the decoding process.
  
 -      * fontset.h: Remove declarations of variables
 -      `Vhighlight_wrong_size_font' and `Vclip_large_size_font'.
 +2007-08-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * fontset.c: Remove variables `Vhighlight_wrong_size_font' and
 -      `Vclip_large_size_font'.
 +      * emacs.c (main)
 +      [HAVE_GTK_AND_PTHREAD && !SYSTEM_MALLOC && !DOUG_LEA_MALLOC]:
 +      Call malloc_enable_thread on interactive startup.
  
 -2001-11-13  Jason Rumney  <jasonr@gnu.org>
 +      * gmalloc.c (_malloc_thread_enabled_p) [USE_PTHREAD]: New variable.
 +      (LOCK, UNLOCK, LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS)
 +      [USE_PTHREAD]: Conditionalize with it.
 +      (malloc_atfork_handler_prepare, malloc_atfork_handler_parent)
 +      (malloc_atfork_handler_child, malloc_enable_thread) [USE_PTHREAD]:
 +      New functions.
  
 -      * w32fns.c: Doc fix.
 +2007-08-06  Chong Yidong  <cyd@stupidchicken.com>
  
 -2001-11-13  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * xdisp.c (redisplay_window): When restoring original buffer
 +      position, make sure it is still valid.
  
 -      * xfaces.c (Fface_attributes_as_vector): Doc fix.
 +      * image.c (png_load): Ignore png-supplied background color.
  
 -      * fns.c: Doc fix.
 +2007-08-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * emacs.c: Doc fix.
 +      * mac.c [TARGET_API_MAC_CARBON] (cfdate_to_lisp): Obtain microsec value.
 +      Use kCFAbsoluteTimeIntervalSince1970.
  
 -      * coding.c: Doc fix.
 +      * macmenu.c (quit_dialog_event_loop) [TARGET_API_MAC_CARBON]:
 +      New variable.
 +      [TARGET_API_MAC_CARBON] (mac_handle_dialog_event): Set it if dialog
 +      event loop should be quit.
 +      [TARGET_API_MAC_CARBON] (create_and_show_dialog) [!MAC_OSX]:
 +      Quit dialog event loop if quit_dialog_event_loop is set.
 +
 +      * macselect.c [!TARGET_API_MAC_CARBON]: Include Scrap.h.
 +      (Selection): New typedef.  Use instead of ScrapRef.
 +      (mac_get_selection_from_symbol): Rename from get_scrap_from_symbol.
 +      (mac_valid_selection_target_p): Rename from valid_scrap_target_type_p.
 +      (mac_clear_selection): Rename from clear_scrap.
 +      (get_flavor_type_from_symbol): New argument SEL and subsume function of
 +      scrap_has_target_type.  All uses changed.
 +      (mac_get_selection_ownership_info, mac_valid_selection_value_p)
 +      (mac_selection_has_target_p): New functions.
 +      (mac_put_selection_value): Rename from put_scrap_string.
 +      (mac_get_selection_value): Rename from get_scrap_string.
 +      (mac_get_selection_target_list): Rename from get_scrap_target_type_list.
 +      (put_scrap_private_timestamp, scrap_has_target_type)
 +      (get_scrap_private_timestamp): Remove functions.
 +      (SCRAP_FLAVOR_TYPE_EMACS_TIMESTAMP): Remove define.
 +      (x_own_selection, x_get_local_selection):
 +      Use mac_valid_selection_value_p.
 +      (x_own_selection): Don't use put_scrap_private_timestamp.
 +      Record OWNERSHIP-INFO into Vselection_alist instead.
 +      (x_get_local_selection): Don't check type if request is local.
 +      (Fx_selection_owner_p): Don't use get_scrap_private_timestamp.
 +      Detect ownership change with OWNERSHIP-INFO in Vselection_alist instead.
 +
 +2007-08-04  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_tool_bar_callback): Generate two TOOL_BAR_EVENT:s,
 +      add comment explaining why.
  
 -      * cmds.c, composite.c, dired.c, doc.c, filelock.c, floatfns.c,
 -      * fontset.c, insdel.c, keymap.c: Change doc-string comments to
 -      `new style' [w/`doc:' keyword].
 +2007-08-03  Richard Stallman  <rms@gnu.org>
  
 -2001-11-12  Richard M. Stallman  <rms@gnu.org>
 +      * fileio.c (Fvisited_file_modtime): Use make_time.
  
 -      * xterm.c (XTread_socket): Don't update focus for EnterNotify or
 -      LeaveNotify events.  Only FocusIn and FocusOut do that now.
 -      (x_display_and_set_cursor): Do display hollow cursors in active
 -      minibuffer windows when they are not selected.
 +2007-08-01  Ryo Yoshitake  <ryo@shiftmode.net>  (tiny change)
  
 -2001-11-12  Jason Rumney  <jasonr@gnu.org>
 +      * mac.c (init_mac_osx_environment): Adjust load-path on self-contained
 +      build.
  
 -      * w32console.c, w32fns.c, w32menu.c, w32proc.c, w32select.c,
 -      * w32term.c: Change doc-string comments to `new style'
 -      [w/`doc:' keyword].  Doc fixes.
 +2007-07-31  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * w32fns.c: Don't define max.
 -      (Fx_open_connection): Only execute once.
 +      * gtkutil.c (xg_tool_bar_callback): Generate a single TOOL_BAR_EVENT.
  
 -2001-11-12  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-07-30  Katsumi Yamaoka  <yamaoka@jpl.org>
  
 -      * ccl.c: Change macros to use do-while block instead of if-else.
 -      Use braces to follow GNU Coding Standards.
 +      * puresize.h (BASE_PURESIZE): Increase to 1130000.
  
 -2001-11-11  Richard M. Stallman  <rms@gnu.org>
 +2007-07-30  Richard Stallman  <rms@gnu.org>
  
 -      * sysdep.c (child_setup_tty): Don't clear ICRNL or INLCR.
 +      * lread.c (readevalloop, read1): Treat NBSP as whitespace.
  
 -      * lread.c (read_escape): Use end_of_file_error for reporting eof.
 +2007-07-29  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -      * insdel.c (replace_range): Use adjust_markers_for_replace
 -      instead of adjust_markers_for_delete and adjust_markers_for_insert.
 +      * gmalloc.c (__malloc_initialize): Remove pthread_once.  Not needed.
  
 -      * intervals.h (set_text_properties, set_text_properties_1): Declare.
 +2007-07-28  Nick Roberts  <nickrob@snap.net.nz>
  
 -      * textprop.c (set_text_properties_1): New subroutine
 -      broken out of set_text_properties.
 -      (set_text_properties): Use set_text_properties_1.
 +      * xdisp.c (decode_mode_spec): Use '@' instead of 'R' to test for
 +      remote default-directory.
  
 -      * intervals.c (graft_intervals_into_buffer):
 -      Use set_text_properties_1 to clear out properties.
 +      * buffer.c (mode-line-format): Update doc string.
  
 -      * search.c (Freplace_match): Use replace_range to insert
 -      and delete.  Don't request property inheritance from
 -      surrounding text.
 +2007-07-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2001-11-10  Jason Rumney  <jasonr@gnu.org>
 +      * w32term.c (w32_draw_fringe_bitmap): Extend fringe background to
 +      scroll bar gap.
 +      (x_scroll_bar_create): Set bar->fringe_extended_p.
 +      (w32_set_vertical_scroll_bar): Put leftmost/rightmost scroll bars
 +      on frame edge.  Check fringe background extension.  Don't clear
 +      extended fringe background area.
  
 -      * w32fns.c (enum_font_cb2): Use leading @ on face name to detect
 -      vertical fonts.  Allow them if face name is explicitly specified.
 -      Do not give up if we find a font that cannot be converted to an xlfd.
 +      * w32term.h (struct scroll_bar): New member fringe_extended_p.
 +      (w32_fill_area): Enclose multiple statements with do ... while (0).
  
 -2001-11-10  Gerd Moellmann  <gerd@gnu.org>
 +      * xterm.c (x_draw_fringe_bitmap) [USE_TOOLKIT_SCROLL_BARS]:
 +      Extend fringe background to scroll bar gap.
 +      (x_scroll_bar_create) [USE_TOOLKIT_SCROLL_BARS]:
 +      Set bar->fringe_extended_p.
 +      (XTset_vertical_scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
 +      Put leftmost/rightmost scroll bars on frame edge.  Check fringe
 +      background extension.  Don't clear extended fringe background area.
  
 -      * unexelf.c (unexec): Use mmap/munmap to allocate buffers
 -      instead of malloc/free.
 +      * xterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
 +      New member fringe_extended_p.
  
 -2001-11-09  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-07-25  Glenn Morris  <rgm@gnu.org>
  
 -      * xfaces.c (merge_face_vectors): Use braces to follow GNU
 -      Coding Standards.
 -      (Finternal_set_lisp_face_attribute): Likewise.
 +      * Relicense all FSF files to GPLv3 or later.
  
 -      * buffer.c (Fbury_buffer): Likewise.
 +      * COPYING: Switch to GPLv3.
  
 -      * indent.c (current_column_1): Remove unused variable `prev_col'.
 +2007-07-25  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * coding.c (encode_coding): Use precomputed value of `src'.
 -      (encode_coding): Remove unused variable `src_end'.
 -      (code_convert_region): Remove unused variables `count'.
 +      * eval.c (Fcommandp): Pay attention to the `interactive-form' property.
  
 -2001-11-07  Jason Rumney  <jasonr@gnu.org>
 +      * data.c (Finteractive_form): Check for the presence of an
 +      `interactive-form' symbol property more thoroughly.
  
 -      * w32term.c (x_display_and_set_cursor): Do not move system caret
 -      if cursor_glyph is NULL.
 +      * data.c (Finteractive_form): Use an `interactive-form' property if
 +      present, analogous to the function-documentation property.
  
 -2001-11-07  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-07-24  Jason Rumney  <jasonr@gnu.org>
  
 -      * keymap.c (access_keymap): Fix compilation error.
 +      * w32fns.c (x_real_positions): Get real position from OS instead of
 +      calculating it.
  
 -2001-11-07  Miles Bader  <miles@gnu.org>
 +2007-07-23  Jason Rumney  <jasonr@gnu.org>
  
 -      * xfns.c (x_set_frame_parameters): Avoid infinite recursion.
 +      * filelock.c (current_lock_owner): Allow for @ sign in username.
  
 -2001-11-07  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-07-22  Nick Roberts  <nickrob@snap.net.nz>
  
 -      * intervals.c (graft_intervals_into_buffer):
 -      Remove #ifdef'd-out code.
 -      (graft_intervals_into_buffer): Remove unused variable `middle'.
 +      * xdisp.c (decode_mode_spec): Add case 'R' for to test for
 +      remote default-directory.
  
 -      * lread.c (Feval_region): Remove obsolete #ifdef'd-out
 -      code (eval-current-buffer).
 -      Change doc-string comments to `new style' [w/`doc:' keyword].
 +      * buffer.c (mode-line-format): Describe above case in doc string.
  
 -2001-11-06  Richard M. Stallman  <rms@gnu.org>
 +2007-07-20  Eli Zaretskii  <eliz@gnu.org>
  
 -      * keymap.c (access_keymap): Don't use initializers on Lisp_Object.
 +      * w32proc.c (IMAGE_NT_OPTIONAL_HDR32_MAGIC, IMAGE_OPTIONAL_HEADER32):
 +      Define if not defined.
  
 -2001-11-06  Stefan Monnier  <monnier@cs.yale.edu>
 +2007-07-18  Jason Rumney  <jasonr@gnu.org>
  
 -      * lread.c (read1): Fix behavior with nested backquoting.
 +      * w32proc.c (w32_executable_type): Handle 64 bit executables.
  
 -      * keyboard.c (make_lispy_event): Check integerness and fix
 -      Lisp_Object/int mixup.
 +2007-07-18  Richard Stallman  <rms@gnu.org>
  
 -2001-11-06  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * data.c (Fsetq_default): Doc fix.
  
 -      * fns.c (copy_hash_table): Remove unused variable `v'.
 +      * eval.c (Fsetq): Doc fix.
  
 -      * fontset.c (fontset_font_pattern): Remove unused variable
 -      `family_registry'.
 +2007-07-18  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * indent.c (current_column_1): Remove unused variable `prev_col'.
 +      * coding.c (Ffind_operation_coding_system):
 +      * eval.c (For, Fand): Doc fixes.
 +      Reported by Johan Bockg\e,Ae\e(Brd.
  
 -2001-11-05  Richard M. Stallman  <rms@gnu.org>
 +2007-07-18  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -      * m/news-risc.h (BROKEN_PROTOTYPES): Defined.
 +      * xfns.c (Fx_focus_frame): Call x_ewmh_activate_frame.
  
 -      * buffer.c (Fkill_buffer): Don't delete auto save file
 -      if buffer is modified.
 +      * xterm.h: Declare x_ewmh_activate_frame.
  
 -2001-11-05  Andrew Innes  <andrewi@gnu.org>
 +      * xterm.c (x_ewmh_activate_frame): New function.
 +      (XTframe_raise_lower): Move code to x_ewmh_activate_frame.
  
 -      * w32proc.c (Fw32_set_keyboard_layout): Use CHECK_NUMBER_CAR and
 -      CHECK_NUMBER_CDR.
 +2007-07-17  Martin Rudalics  <rudalics@gmx.at>
  
 -2001-11-05  Richard M. Stallman  <rms@gnu.org>
 +      * window.c (Fdisplay_buffer): If largest or LRU window is the
 +      only window, split it even if it is not eligible for splitting.
 +      This restores the original behavior broken by the 2007-07-15
 +      change.
  
 -      * unexelf.c (unexec): Minor changes; clean up comments.
 +2007-07-17  Glenn Morris  <rgm@gnu.org>
  
 -2001-11-05  Sam Steingold  <sds@gnu.org>
 +      * abbrev.c (abbrev_check_chars): New function.
 +      (Fdefine_global_abbrev, Fdefine_mode_abbrev):
 +      Call abbrev_check_chars to check abbrev characters are word
 +      constituents.  Doc fix.
  
 -      * w32term.c (x_display_and_set_cursor): Fix w32 compilation error.
 +2007-07-17  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2001-11-05  Andreas Schwab  <schwab@suse.de>
 +      * process.c (Fstart_process, Fmake_network_process)
 +      (read_process_output): Fix up last changes.
  
 -      * sound.c (sound_perror): Save errno from being clobbered.
 +2007-07-16  Eli Zaretskii  <eliz@gnu.org>
  
 -2001-11-05  Dale Hagglund  <rdh@yottayotta.com>
 +      * makefile.w32-in (clean): Don't delete *~.
  
 -      * unexelf.c (unexec): Don't use `mmap'.  Instead, read and write
 -      the program image directly.
 +2007-07-16  Andreas Schwab  <schwab@suse.de>
  
 -2001-11-05  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * window.c (Fdisplay_buffer): Use NILP.
 +      (Fset_window_scroll_bars): Likewise.
  
 -      * buffer.h (Fbuffer_local_value): Add prototype.
 +2007-07-15  Martin Rudalics  <rudalics@gmx.at>
  
 -2001-11-04  Richard M. Stallman  <rms@gnu.org>
 +      * window.c (window_min_size_2): New function.
 +      (window_min_size_1, size_window, Fdisplay_buffer)
 +      (Fsplit_window, adjust_window_trailing_edge): Use it to avoid
 +      windows without mode- or header-lines when window-min-height is
 +      too small.
 +      (size_window): Reset nodelete_p after testing it, following an
 +      earlier note by Kim F. Storm.
 +      (display_buffer): Do not set split_height_threshold to twice the
 +      value of window_min_height to avoid changing the value of a
 +      customizable variable.  Rather explicitly check whether the
 +      height of the window that shall be splitted is at least as large
 +      as split_height_threshold.
 +      (Fwindow_full_width_p): New defun.
 +      (syms_of_window): Defsubr it.
  
 -      * buffer.c (Fbuffer_local_value): Remove extra args from CHECK_SYMBOL
 -      and CHECK_BUFFER.
 +      * window.h: Add EXFUN for Fwindow_full_width_p.
  
 -      * keyboard.c (read_char): Use Fcar and Fcdr, not Fnth.
 -      (record_char): Likewise.
 +2007-07-14  Jason Rumney  <jasonr@gnu.org>
  
 -      * keyboard.c (make_lispy_event): Don't insist a drag event must
 -      move to a different buffer position.  Instead, check for moving at
 -      least double_click_fuzz.
 +      * process.c [WINDOWSNT]: Don't undefine AF_INET6.
  
 -      * fns.c (Fmake_hash_table): Use XCAR and XCDR, not Fnth and Flength.
 +2007-07-14  Richard Stallman  <rms@gnu.org>
  
 -      * keyboard.c (echo-area-clear-hook): Undo Oct 29 change.
 +      * eval.c (maybe_call_debugger): New function.
 +      (find_handler_clause): Use maybe_call_debugger.
 +      Call it when the handler says `debug'.
 +      Eliminate DEBUGGER_VALUE_PTR.
 +      (Fsignal): Eliminate debugger_value.
 +      (Qdebug): New variable.
 +      (syms_of_eval): Initialize it.
  
 -      * indent.c (current_column_1, Fmove_to_column): Separate the code
 -      for display-table glyphs from the code for buffer text, to fix
 -      bugs in the former.
 +2007-07-14  Juanma Barranquero  <lekktu@gmail.com>
  
 -2001-11-04  Michael Welsh Duggan  <md5i@cs.cmu.edu>
 +      * eval.c (Fprogn):
 +      * keyboard.c (Ftrack_mouse):
 +      * print.c (Fwith_output_to_temp_buffer):
 +      * window.c (Fsave_window_excursion): Doc fix.
  
 -      * buffer.c (Fbuffer_local_value): New function.
 -      (syms_of_buffer): Defsubr it.
 +2007-07-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * xterm.c, w32term.c (x_display_and_set_cursor): Use buffer-local
 -      value of `cursor-in-non-selected-windows'.
 +      * eval.c (init_eval_once): Bump max_lisp_eval_depth to 400.
  
 -      * lisp.h (Qcursor_in_non_selected_windows): New declaration.
 -      * xdisp.c (Qcursor_in_non_selected_windows): New variable.
 -      (syms_of_xdisp): Initialize it.
 +2007-07-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2001-11-04  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * process.h (struct Lisp_Process): Turn slots infd, outfd,
 +      kill_without_query, pty_flag, tick, update_tick, decoding_carryover,
 +      inherit_coding_system_flag, filter_multibyte, adaptive_read_buffering,
 +      read_output_delay, and read_output_skip from Lisp_Objects to ints.
 +      Remove unused encoding_carryover.
 +      * process.c: Adjust all functions accordingly.
  
 -      * xfns.c (Fx_create_frame): Doc fix.
 +2007-07-12  Richard Stallman  <rms@gnu.org>
  
 -      * coding.c: Change doc-string comments to `new style' [w/`doc:'
 -      keyword].
 +      * term.c: Include unistd.h only if HAVE_UNISTD_H.
  
 -      * eval.c (top_level_value, top_level_set): Remove commented and
 -      #ifdef'd-out code.
 -      (Fdefvar): Fix usage in doc-string.
 +2007-07-11  Jason Rumney  <jasonr@gnu.org>
  
 -2001-11-03  Richard M. Stallman  <rms@gnu.org>
 +      * makefile.w32-in (LIBS): Include OLE32.
  
 -      * xfns.c: Include unistd.h, if it exists.
 +      * w32fns.c (w32_msg_pump) <WM_EMACS_CREATEWINDOW>: Initialize COM.
 +      (w32_msg_pump) <WM_DESTROY>: Uninitialize COM.
  
 -      * editfns.c: Move the include of ctype.h after unistd.h.
 +2007-07-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * gmalloc.c: Test BROKEN_PROTOTYPES.
 +      * lisp.h (struct Lisp_Hash_Table): Turn next_weak into a bare pointer.
 +      * fns.c (weak_hash_tables): Rename from Vweak_hash_tables and turned
 +      from a Lisp_Object into a bare pointer.
 +      (make_hash_table, copy_hash_table, sweep_weak_hash_tables, init_fns):
 +      Adjust the code correspondingly.
  
 -2001-11-03  Ken Raeburn  <raeburn@gnu.org>
 +      * alloc.c (emacs_blocked_free): Remove unused var `bytes_used_now'.
  
 -      * lisp.h (CHECK_STRING_CAR): New macro.
 -      * lread.c (Fload): Use XSETCARFASTINT, XSETCDRFASTINT instead of
 -      treating XCAR and XCDR as lvalues.
 -      (openp): Use CHECK_STRING_CAR.
 -      (read_list): Use XSETCDR instead of treating XCDR as lvalue.
 +      * term.c: Include unistd.h for ttyname, used in handle_one_term_event.
 +      (term_show_mouse_face): Remove unused var `j'.
 +      (handle_one_term_event): Remove unused vars `i' and `j'.
 +      Don't cast return value of ttyname since it's not necessary.
  
 -2001-11-03  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-07-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * s/sco5.h (sigprocmask_set): Declare as extern SIGMASKTYPE.
 -      (SIGMASKTYPE): Define.
 +      * alloc.c (mark_maybe_pointer): Enforce mult-of-8 alignment when using
 +      USE_LSB_TAG.  Suggested by Dmitry Antipov <dmantipov@yandex.ru>.
  
 -      * syssignal.h (sigunblock): Don't define if already defined.
 +      * fns.c (map_char_table): Use an array of int for `indices' rather than
 +      an array of Lisp_Objects (which are only ever integers anyway).
 +      (Fmap_char_table): Update caller.
 +      * lisp.h: Update prototype.
 +      * keymap.c (Fset_keymap_parent, map_keymap, Fcopy_keymap):
 +      * fontset.c (Ffontset_info):
 +      * casetab.c (set_case_table): Update callers.
  
 -2001-11-02  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * editfns.c (Ftranspose_regions): Use EMACS_INT for positions.
  
 -      * eval.c (debugger_may_continue, Vdebug_ignored_errors)
 -      (call_debugger, Fcondition_case, skip_debugger, unbind_to):
 -      Fix typos in comments.
 +      * keymap.c (struct accessible_keymaps_data)
 +      (struct where_is_internal_data): New structures.
 +      (accessible_keymaps_1, where_is_internal_1): Use them to change
 +      interface to adhere to the one used by map_keymap.
 +      (Faccessible_keymaps, where_is_internal): Use map_keymap.
 +      (accessible_keymaps_char_table, where_is_internal_2): Remove.
  
 -      * mocklisp.c (Fml_defun, Fml_while, Fml_substr): Remove commented
 -      and #ifdef'd-out code.
 -      Fix and reindent comments.
 +      * keymap.h (map_keymap_function_t): More informative prototype.
  
 -      * mocklisp.h: Remove comment which is a copy of comment in mocklisp.c.
 +2007-07-10  Guanpeng Xu  <herberteuler@hotmail.com>
  
 -      * category.h (CHECK_CATEGORY, CHECK_CATEGORY_SET): Remove unused
 -      argument `i' in macros.
 +      * search.c (Vinhibit_changing_match_data, search_regs_1): New vars.
 +      (looking_at_1): Don't change search_regs and last_thing_searched
 +      if `inhibit-changing-match-data' is non-nil.
 +      (string_match_1, search_buffer, set_search_regs): Likewise.
 +      (syms_of_search): Add Lisp level definition for
 +      `inhibit-changing-match-data' and set it to nil.
 +      (boyer_moore): If `inhibit-changing-match-data' is non-nil, compute
 +      start and end of the match, instead of using values in search_regs.
  
 -      * frame.h (CHECK_FRAME, CHECK_LIVE_FRAME): Remove unused argument
 -      `i' in macros.
 +2007-07-01  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * lisp.h (CHECK_STRING_OR_BUFFER, CHECK_HASH_TABLE, CHECK_LIST)
 -      (CHECK_STRING, CHECK_CONS, CHECK_SYMBOL, CHECK_CHAR_TABLE)
 -      (CHECK_VECTOR, CHECK_VECTOR_OR_CHAR_TABLE, CHECK_BUFFER)
 -      (CHECK_WINDOW, CHECK_LIVE_WINDOW, CHECK_PROCESS, CHECK_NUMBER)
 -      (CHECK_NATNUM, CHECK_MARKER, CHECK_NUMBER_COERCE_MARKER)
 -      (CHECK_FLOAT, CHECK_NUMBER_OR_FLOAT)
 -      (CHECK_NUMBER_OR_FLOAT_COERCE_MARKER, CHECK_OVERLAY)
 -      (CHECK_NUMBER_CAR, CHECK_NUMBER_CDR): Remove unused argument `i'
 -      in macros.
 +      * minibuf.c (Fcompleting_read): New value `confirm-only'
 +      for `require-match'.
  
 -      * abbrev.c, alloc.c, buffer.c, bytecode.c, callint.c, callproc.c,
 -      * casefiddle.c, category.c, ccl.c, charset.c, cmds.c, coding.c,
 -      * composite.c, data.c, dired.c, dispnew.c, doc.c, dosfns.c, emacs.c,
 -      * eval.c, fileio.c, filelock.c, fns.c, fontset.c, frame.c, frame.h,
 -      * indent.c, keyboard.c, keymap.c, lread.c, macros.c, marker.c,
 -      * minibuf.c, mocklisp.c, msdos.c, print.c, process.c, search.c,
 -      * sunfns.c, syntax.c, textprop.c, undo.c, w16select.c, w32console.c,
 -      * w32fns.c, w32menu.c, w32proc.c, w32select.c, window.c, xdisp.c,
 -      * xfaces.c, xmenu.c, xselect.c: Update usage of CHECK_ macros
 -      (remove unused second argument).
 +2007-06-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2001-11-02  Stefan Monnier  <monnier@cs.yale.edu>
 +      * fileio.c (Fdo_auto_save): Revert last patch installed unwillingly as
 +      part of the 2007-06-27 change to syms_of_fileio.
  
 -      * syntax.c (describe_syntax): New wrapper.
 -      (Finternal_describe_syntax_value): Rename from describe_syntax.
 -      Don't insert space at front and \n at the end.
 -      (syms_of_syntax): Defsubr Sinternal_describe_syntax_value.
 +2007-06-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * regex.c (re_wctype): Try to fix some warnings.
 -      (regcomp, regexec): Don't forget the __restrict.
 +      * macterm.c [USE_MAC_TSM] (mac_handle_text_input_event):
 +      Check WINDOWP before using XWINDOW.  Consolidate return statements.
  
 -2001-11-02  Richard M. Stallman  <rms@gnu.org>
 +2007-06-27  Richard Stallman  <rms@gnu.org>
  
 -      * textprop.c (Fget_char_property): Doc fix.
 +      * fileio.c (syms_of_fileio) <after-insert-file-functions>: Doc fix.
  
 -2001-11-02  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-06-27  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * process.c (Fstart_process): Add usage to doc-string.
 +      * buffer.c (syms_of_buffer) <selective-display>: Fix typo in docstring.
  
 -      * data.c (Fsetq_default): Ditto.
 +2007-06-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * callint.c (Finteractive): Ditto.
 +      * gmalloc.c [HAVE_GTK_AND_PTHREAD]: Check this after including config.h.
 +      (_aligned_blocks_mutex) [USE_PTHREAD]: New variable.
 +      (LOCK_ALIGNED_BLOCKS, UNLOCK_ALIGNED_BLOCKS): New macros.
 +      (_free_internal, memalign): Use them.
 +      (_malloc_mutex, _aligned_blocks_mutex) [USE_PTHREAD]:
 +      Initialize to PTHREAD_MUTEX_INITIALIZER.
 +      (malloc_initialize_1) [USE_PTHREAD]: Don't use recursive mutex.
 +      (morecore_nolock): Rename from morecore.  All uses changed.
 +      Use only nolock versions of internal allocation functions.
 +      (_malloc_internal_nolock, _realloc_internal_nolock)
 +      (_free_internal_nolock): New functions created from
 +      _malloc_internal, _realloc_internal, and _free_internal.
 +      (_malloc_internal, _realloc_internal, _free_internal): Use them.
 +      Copy hook value to automatic variable before its use.
 +      (memalign): Copy hook value to automatic variable before its use.
  
 -2001-11-01  Stefan Monnier  <monnier@cs.yale.edu>
 +2007-06-26  Kenichi Handa  <handa@m17n.org>
  
 -      * macros.c: Don't include keymap.h any more.
 +      * coding.c (Ffind_operation_coding_system): Docstring improved.
 +      (syms_of_coding): Docstring of `file-coding-system-alist' improved.
  
 -2001-11-01  Richard M. Stallman  <rms@gnu.org>
 +2007-06-25  David Kastrup  <dak@gnu.org>
  
 -      * data.c (Fmake_local_variable): Doc fix.
 +      * keymap.c (Fcurrent_active_maps): Add `position' argument.
 +      (Fwhere_is_internal): Adjust call to `current-active-maps' to
 +      cater for additional parameter.
  
 -      * eval.c (Frun_hooks, Frun_hook_with_args_until_failure): Doc fix.
 -      (Frun_hook_with_args_until_success, Frun_hook_with_args): Doc fix.
 +      * keymap.h: Adjust number of parameters to `current-active-maps'.
  
 -      * keymap.c (Fdescribe_buffer_bindings): Print character property
 -      bindings along with or instead of the buffer local map.
 -      Make the overriding maps override what they should.
 +      * doc.c (Fsubstitute_command_keys): Adjust call of
 +      `current-active-maps'.
  
 -2001-11-01  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-06-25  David Kastrup  <dak@gnu.org>
  
 -      * window.c (grow_mini_window): Fix typo in comment.
 +      * callint.c (Fcall_interactively): Make the parsing of interactive
 +      specs somewhat more readable.
  
 -2001-11-01  Gerd Moellmann  <gerd@gnu.org>
 +2007-06-23  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * xterm.c (x_scroll_bar_create): Check for width and height > 0.
 -      (XTset_vertical_scroll_bar): Likewise.
 +      * macterm.c (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe background
 +      to scroll bar gap also when bitmap fills fringe.  Draw only foreground
 +      if extended background has already been filled.
  
 -      * xfns.c (x_build_heuristic_mask): Use four_corners_best
 -      instead of IMAGE_BACKGROUND.
 +2007-06-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * xfns.c (four_corners_best): Reindent.
 +      * macgui.h (USE_CG_DRAWING): Don't require USE_ATSUI.
 +      (USE_MAC_TOOLBAR): Require USE_CG_DRAWING.
  
 -      * xfaces.c (Finternal_set_lisp_face_attribute_from_resource):
 -      Handle :box so that it is possible to specify sexprs.
 +      * macmenu.c (mac_dialog_modal_filter, Fx_popup_dialog) [MAC_OSX]:
 +      Put special treatment for Fmessage_box, Fyes_or_no_p, and Fy_or_n_p
 +      in #if 0 as it is not compatible with y-or-n-p-with-timeout.
 +      (timer_check) [TARGET_API_MAC_CARBON]: Add extern.
 +      [TARGET_API_MAC_CARBON] (mac_handle_dialog_event): Use QuitEventLoop
 +      instead of QuitAppModalLoopForWindow.  Consolidate QuitEventLoop calls.
 +      (pop_down_dialog) [TARGET_API_MAC_CARBON]: New function.
 +      [TARGET_API_MAC_CARBON] (create_and_show_dialog): Use it for unwind.
 +      Run timers during dialog popup.
 +      (Fmenu_or_popup_active_p) [TARGET_API_MAC_CARBON]: Use popup_activated.
  
 -2001-10-31  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-06-21  Jason Rumney  <jasonr@gnu.org>
  
 -      * s/hpux11.h: New file.
 +      * image.c (convert_mono_to_color_image): Swap fore and background.
  
 -2001-10-31  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-06-20  Jason Rumney  <jasonr@gnu.org>
  
 -      * emacs.c (USAGE1): Show command line option --no-window-system
 -      instead of --no-windows in usage.
 -      (standard_args): Rename --no-windows to --no-window-system.
 -      (bug_reporting_address): Follow Emacs coding conventions.
 +      * w32bdf.c (w32_BDF_to_x_font): Unmap memory when finished.
 +      (w32_free_bdf_font): Unmap memory not handle.
  
 -      * eval.c (Fcommandp): Doc fix.
 -      Change doc-string comments to `new style' [w/`doc:' keyword].
 +2007-06-20  Sam Steingold  <sds@gnu.org>
  
 -      * frame.c (Fframe_live_p): Doc fix.
 +      * gmalloc.c (__morecore): Fix the declaration to comply with the
 +      definition.
  
 -      * buffer.c (selective-display-ellipses): Doc fix.
 +2007-06-20  Juanma Barranquero  <lekktu@gmail.com>
  
 -2001-10-31  Gerd Moellmann  <gerd@gnu.org>
 +      * w32term.c (w32_delete_display): Remove leftover declaration.
 +      (w32_define_cursor, w32_initialize): Make static.
  
 -      * lread.c (to_multibyte): Fix computation of new read_buffer_size.
 +      * w32.c (_wsa_errlist): Fix typo in error message.
 +      (init_environment): Ignore any environment variable from the
 +      registry having a null value.
  
 -      * xfaces.c (realize_x_face): If C is not a single-byte character,
 -      set the face's colors_copied_bitwise_p instead of the defaulted_p
 -      members which have a different meaning.
 -      (free_face_colors): Do nothing for a face whose colors have been
 -      copied bitwise.
 +2007-06-20  Glenn Morris  <rgm@gnu.org>
  
 -      * dispextern.h (struct face) <colors_copied_bitwise_p>: New member.
 +      * Makefile.in (LIBGIF): Default to -lgif.
  
 -2001-10-31  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-06-17  Jason Rumney  <jasonr@gnu.org>
  
 -      * marker.c, mocklisp.c: Change doc-string comments to `new style'
 -      [w/`doc:' keyword].
 +      * w32menu.c (add_menu_item): Don't use multibyte string functions on
 +      unicode strings.
  
 -2001-10-31  Gerd Moellmann  <gerd@gnu.org>
 +2007-06-16  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * fns.c (require_unwind): Return Lisp_Object.
 +      * xdisp.c (syms_of_xdisp) <auto-resize-tool-bars>:
 +      Fix typo in docstring.
  
 -2001-10-31  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-06-16  Eli Zaretskii  <eliz@gnu.org>
  
 -      * keyboard.c (lucid-menu-bar-dirty-flag): Doc fix.
 -      (last-input-char): Revert doc-string to be the same as the
 -      doc-string of `last-input-event'.
 +      * w32menu.c (add_menu_item): Escape `&' characters in menu items
 +      and their keybindings.
  
 -      * xdisp.c: Fix typos in comments.
 +2007-06-15  Chong Yidong  <cyd@stupidchicken.com>
  
 -2001-10-31  Gerd Moellmann  <gerd@gnu.org>
 +      * composite.c (update_compositions): Fix last fix.
  
 -      * window.c (grow_mini_window): Handle case that the root
 -      window is already smaller than the nominal mininum height.
 +2007-06-14  Jason Rumney  <jasonr@gnu.org>
  
 -2001-10-30  Stefan Monnier  <monnier@cs.yale.edu>
 +      * w32.c (get_process_times_fn): New function pointer.
 +      (globals_of_w32): Intialize it if present in kernel32.dll.
 +      (w32_get_internal_run_time): New function.
  
 -      * emacs.c (main): Don't call keys_of_macros any more.
 +      * editfns.c (Fget_internal_run_time) [WINDOWSNT]: Use it.
  
 -      * lisp.h (keys_of_macros): Remove.
 +2007-06-14  Kenichi Handa  <handa@etlken.m17n.org>
  
 -      * macros.c (keys_of_macros): Remove.
 +      * composite.c (update_compositions): Check the validness of
 +      compositions.
  
 -      * xfaces.c (Fface_attribute_relative_p): Declare args.
 +2007-06-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2001-10-30  Jason Rumney  <jasonr@gnu.org>
 +      * frame.h (struct frame) [MAC_OS]: New member external_tool_bar.
 +      (FRAME_EXTERNAL_TOOL_BAR) [MAC_OS]: Use it.
  
 -      * w32fns.c (w32_to_x_charset): Increase size of XLFD charset buffer.
 -      (enum_font_cb2): Ignore fonts with vertical orientation.
 +      * macfns.c (mac_window) [USE_MAC_TOOLBAR]: Set toolbar_win_gravity.
 +      (x_set_tool_bar_lines) [USE_MAC_TOOLBAR]: Set FRAME_EXTERNAL_TOOL_BAR.
  
 -2001-10-30  Richard M. Stallman  <rms@gnu.org>
 +      * macgui.h (USE_MAC_TOOLBAR): New define.
  
 -      * keyboard.c (Finput_pending_p): Doc fix.
 +      * macmenu.c [TARGET_API_MAC_CARBON] (menu_target_item_handler):
 +      Return immediately unless popup is activated.
  
 -2001-10-30  Gerd Moellmann  <gerd@gnu.org>
 +      * macterm.c (x_draw_fringe_bitmap) [MAC_OSX]: Extend fringe
 +      background to scroll bar gap.
 +      (x_scroll_bar_create) [MAC_OSX]: Set bar->fringe_extended_p.
 +      (XTset_vertical_scroll_bar) [MAC_OSX]: Put leftmost/rightmost
 +      scroll bars on frame edge.  Check fringe background extension.
 +      Don't clear extended fringe background area.
 +      (TOOLBAR_IDENTIFIER, TOOLBAR_ICON_ITEM_IDENTIFIER)
 +      (TOOLBAR_ITEM_COMMAND_ID_OFFSET, TOOLBAR_ITEM_COMMAND_ID_P)
 +      (TOOLBAR_ITEM_COMMAND_ID_VALUE, TOOLBAR_ITEM_MAKE_COMMAND_ID):
 +      [USE_MAC_TOOLBAR]: New macros.
 +      (mac_move_window_with_gravity, mac_get_window_origin_with_gravity)
 +      (mac_handle_toolbar_event, mac_image_spec_to_cg_image)
 +      (mac_create_frame_tool_bar, update_frame_tool_bar, free_frame_tool_bar)
 +      (mac_tool_bar_note_mouse_movement, mac_handle_toolbar_command_event)
 +      [USE_MAC_TOOLBAR]: New functions.
 +      (mac_handle_window_event) [USE_MAC_TOOLBAR]: Reposition window
 +      manually if previous repositioning has failed.
 +      (mac_handle_keyboard_event): Use precomputed event kind.
 +      (XTread_socket) [USE_MAC_TOOLBAR]: Handle click in structure region
 +      as tool bar item click.  Handle mouse movement over tool bar items.
  
 -      * xterm.c (x_after_update_window_line): Don't run the code
 -      clearing in borders for rows whose visible height is 0.
 +      * macterm.h (struct mac_output) [USE_MAC_TOOLBAR]: New member
 +      toolbar_win_gravity.
 +      (struct scroll_bar) [MAC_OSX]: New member fringe_extended_p.
 +      (update_frame_tool_bar, free_frame_tool_bar) [USE_MAC_TOOLBAR]:
 +      Add externs.
  
 -      * xdisp.c (clear_garbaged_frames): Redraw the frame only if its
 -      resized_p flag is set.  If not set, use the much less flickering
 -      method previously used.
 +      * xdisp.c (update_tool_bar, redisplay_tool_bar, redisplay_window)
 +      [USE_MAC_TOOLBAR]: Sync with GTK+ tool bar display.
  
 -      * dispnew.c (change_frame_size_1): Set frame's resized_p.
 +2007-06-14  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * frame.h (struct frame) <resized_p>: New member.
 +      * image.c (search_image_cache): Remove unused variable.
  
 -      * lread.c (to_multibyte): Ensure read_buffer is at least twice
 -      as large as the number of bytes to convert.
 +2007-06-13  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * lread.c (to_multibyte): New function.
 -      (read1): Use it.
 +      * xfns.c, xmenu.c: Link to xaw3d if available.
  
 -2001-10-30  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-06-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * msdos.h (FRAME_LINE_HEIGHT): Define (it's used by xmenu.c).
 +      * dispextern.h (struct image) [HAVE_WINDOW_SYSTEM]: New members
 +      frame_foreground and frame_background.
  
 -2001-10-30  Gerd Moellmann  <gerd@gnu.org>
 +      * image.c (lookup_image): Save frame foreground and background colors.
 +      (search_image_cache): Check if saved and current frame colors match.
  
 -      * xterm.c (x_draw_relief_rect): Correct bottom relief by 1 pixel.
 -      (x_set_glyph_string_background_width): Set extends_to_end_of_line_p
 -      if the row's fill_line_p is set and drawing the last glyph with
 -      DRAW_IMAGE_{RAISED,SUNKEN}.
 +2007-06-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * xdisp.c (clear_garbaged_frames): Call Fredraw_frame.
 +      * regex.c (regex_compile): Remove the `regnum' counter.
 +      Use bufp->re_nsub instead.  Add support for \(?N:RE\).
  
 -2001-10-29  Stefan Monnier  <monnier@cs.yale.edu>
 +2007-06-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * xmenu.c: Include coding.h and charset.h.
 -      (Fx_popup_menu): Use FRAME_PTR and FRAME_FONT and FRAME_LINE_HEIGHT.
 -      (Fx_popup_dialog): Use FRAME_PTR and enum scroll_bar_part.
 -      (single_submenu, xmenu_show): Use ENCODE_SYSTEM.
 -      Explicitly set wv->help.  Use `TRUE' rather than `True'.
 -      (menu_help_callback): Use empty_string.
 +      * term.c: Include intervals.h to declare Fget_text_property.
  
 -      * w32menu.c (Fx_popup_menu): Explicitly init f, xpos, and ypos.
 -      (Fx_popup_dialog): Explicitly init f.
 -      (w32_menu_display_help): Use empty_string.
 +2007-06-10  Jason Rumney  <jasonr@gnu.org>
  
 -2001-10-29  Richard M. Stallman  <rms@gnu.org>
 +      * w32fns.c (Fx_file_dialog): Take size from struct not pointer.
  
 -      * fns.c (Frequire): Detect recursive try to require the same
 -      feature 3 or more levels deep, and get error.
 -      (require_unwind): New subroutine.
 -      (require_nesting_list): New variable.
 -      (syms_of_fns): Init and staticpro it.
 +2007-06-08  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * print.c (print_object): Clarify indication of insertion type.
 +      * callint.c (Fcall_interactively):
 +      * editfns.c (Fdelete_and_extract_region):
 +      * fileio.c (Fread_file_name):
 +      * fns.c (Fmapconcat):
 +      * keyboard.c (cmd_error_internal):
 +      * keymap.c (Fkey_description):
 +      * lread.c (openp):
 +      * minibuf.c (read_minibuf):
 +      * search.c (wordify):
 +      * sunfns.c (sel_read):
 +      * xdisp.c (Fformat_mode_line, syms_of_xdisp):
 +      * xfns.c (x_default_scroll_bar_color_parameter):
 +      * xmenu.c (menu_help_callback):
 +      * xselect.c (Fx_get_atom_name):
 +      * xterm.c (x_term_init): Use empty_unibyte_string.
  
 -2001-10-29  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-06-08  Dmitry Antipov  <dmantipov@yandex.ru>  (tiny change)
  
 -      * coding.c (syms_of_coding): Document that locale-coding-system is
 -      used for decoding input on X.
 +      * alloc.c (init_strings): Initialize canonical empty strings.
 +      (make_uninit_string, make_uninit_multibyte_string): Return appropriate
 +      canonical empty string when the requested size is 0.
  
 -      * window.c (Fscroll_left, Fscroll_right): Doc fix.
 +      * emacs.c (empty_unibyte_string): Rename from empty_string.
 +      (empty_multibyte_string): New canonical empty string.
 +      (syms_of_emacs): Don't initialize empty_string.
  
 -2001-10-29  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * lisp.h (STRING_SET_UNIBYTE): Return the canonical empty unibyte
 +      string, if appropriate.
 +      (empty_unibyte_string, empty_multibyte_string): New externs.
 +      (empty_string): Remove extern.
  
 -      * keyboard.c (Finput_pending_p): Fix typo in doc-string.
 -      (echo-area-clear-hook): Properly DEFVAR_LISP and staticpro it.
 +      * lread.c (syms_of_lread): Use empty_unibyte_string.
  
 -2001-10-29  Gerd Moellmann  <gerd@gnu.org>
 +2007-06-07  Jason Rumney  <jasonr@gnu.org>
  
 -      * xterm.c (x_display_and_set_cursor): If cursor_in_echo_area,
 -      use NO_CURSOR if cursor_in_non_selected_windows is false.
 +      * s/ms-w32.h: Don't define HAVE_TZNAME.
  
 -      * xfaces.c (Fface_font): Use UNSPECIFIEDP instead of NILP for
 -      the slant attribute if FRAME is t.
 +      * editfns.c (Fcurrent_time_zone): Remove hack for Japanese Windows.
  
 -      * xfns.c (x_set_internal_border_width): Set frame garbaged
 -      when X window doesn't exist yet.
 +2007-06-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * xterm.c (x_after_update_window_line): Clear internal border
 -      in different circumstances.
 +      * mac.c (xrm_get_preference_database): Remove BLOCK_INPUT.
  
 -      * xterm.c (XTread_socket) <KeyPress>: Don't use
 -      STRING_CHAR_AND_LENGTH if nchars == nbytes.  From Kenichi Handa
 -      <handa@etl.go.jp>.
 +      * macfns.c (mac_get_window_bounds): Move extern to macterm.h.
 +      (compute_tip_xy) [TARGET_API_MAC_CARBON]: Use GetGlobalMouse.
  
 -2001-10-28  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * macmenu.c [TARGET_API_MAC_CARBON] (menu_target_item_handler):
 +      Don't call next handler.
 +      [TARGET_API_MAC_CARBON] (install_menu_target_item_handler):
 +      Remove argument.  Install handler to application.
 +      (set_frame_menubar): Don't change deep_p.
 +      (mac_menu_show): Use FRAME_OUTER_TO_INNER_DIFF_X and
 +      FRAME_OUTER_TO_INNER_DIFF_Y.
 +      (DIALOG_BUTTON_COMMAND_ID_OFFSET, DIALOG_BUTTON_COMMAND_ID_P)
 +      (DIALOG_BUTTON_COMMAND_ID_VALUE, DIALOG_BUTTON_MAKE_COMMAND_ID)
 +      [HAVE_DIALOGS]: New macros.
 +      [HAVE_DIALOGS] (mac_handle_dialog_event, create_and_show_dialog):
 +      Use them.
 +      (fill_menubar) [TARGET_API_MAC_CARBON]: Use CFString.
 +
 +      * macselect.c [MAC_OSX] (install_service_handler): Rename from
 +      init_service_handler.  All callers changed.  Return OSStatus value.
 +
 +      * macterm.c (mac_begin_cg_clip): New arg F.  Call SetPortWindowPort.
 +      All callers changed so as not to call SetPortWindowPort.
 +      (mac_begin_cg_clip) [USE_CG_DRAWING]: Call mac_prepare_for_quickdraw.
 +      (mac_draw_image_string_atsui) [USE_ATSUI]: New function created from
 +      mac_draw_string_common.
 +      (mac_draw_image_string_qd): Likewise.
 +      (mac_draw_string_common): Use them.  Add INLINE.
 +      (XTmouse_position, x_scroll_bar_report_motion) [TARGET_API_MAC_CARBON]:
 +      Use FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y, and
 +      GetGlobalMouse.
 +      (x_set_mouse_pixel_position) [MAC_OSX]: Use FRAME_OUTER_TO_INNER_DIFF_X
 +      and FRAME_OUTER_TO_INNER_DIFF_Y.
 +      [TARGET_API_MAC_CARBON] (mac_handle_mouse_event): Likewise.
 +      [USE_MAC_TSM] (mac_handle_text_input_event): Likewise.
 +      (x_make_frame_visible) [TARGET_API_MAC_CARBON]: Move code for
 +      repositioning window to mac_handle_window_event.
 +      (x_make_frame_invisible) [TARGET_API_MAC_CARBON]: Move code for
 +      saving window location to mac_handle_window_event
 +      [USE_MAC_FONT_PANEL] (mac_show_hide_font_panel): Install handler here.
 +      (install_menu_target_item_handler): Remove argument in extern.
 +      [TARGET_API_MAC_CARBON] (mac_event_to_emacs_modifiers):
 +      Also accept command events.
 +      (do_keystroke): New function created from XTread_socket.
 +      (init_command_handler): Remove functions.
 +      [TARGET_API_MAC_CARBON] (mac_handle_window_event): Reposition window
 +      and save window location by kEventWindowShowing and kEventWindowHiding
 +      handlers here.  Don't call next handler for window state change and
 +      focus events.
 +      (mac_handle_application_event, mac_handle_keyboard_event)
 +      [TARGET_API_MAC_CARBON]: New functions.
 +      (install_window_handler) [TARGET_API_MAC_CARBON]: Register handlers for
 +      kEventWindowShowing and kEventWindowHiding events.  Move installation
 +      of mouse, font, text input and menu target item handlers to
 +      install_application_handler.
 +      (install_application_handler) [TARGET_API_MAC_CARBON]: New function.
 +      (mac_handle_cg_display_reconfig) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
 +      New function.
 +      (init_dm_notification_handler) [MAC_OS_X_VERSION_MAX_ALLOWED >= 1030]:
 +      Register it.
 +      (XTread_socket) [TARGET_API_MAC_CARBON]:
 +      Consolidate SendEventToEventTarget calls.
 +      Use FRAME_OUTER_TO_INNER_DIFF_X and FRAME_OUTER_TO_INNER_DIFF_Y.
 +      Move application activation handler to mac_handle_application_event.
 +      Move keyboard handler to mac_handle_keyboard_event.
 +      (XTread_socket) [!TARGET_API_MAC_CARBON]: Use do_keystroke.
 +      (mac_initialize) [TARGET_API_MAC_CARBON]: Don't call
 +      init_command_handler.  Call install_application_handler.
  
 -      * m/ibms390.h: New file.  From Adam Thornton
 -      <athornton@sinenomine.net>.
 +      * macterm.h (mac_get_window_bounds): Move extern from macfns.c.
 +      (FRAME_OUTER_TO_INNER_DIFF_X, FRAME_OUTER_TO_INNER_DIFF_Y): New macros.
  
 -2001-10-28  Gerd Moellmann  <gerd@gnu.org>
 +2007-06-07  Glenn Morris  <rgm@gnu.org>
  
 -      * xfns.c (x_build_heuristic_mask): Use x_alloc_image_color.
 +      * emacs.c (main): Use `emacs-copyright' in --version output.
  
 -      * xfns.c (x_build_heuristic_mask): Fix a bug not incrementing
 -      a loop counter.
 +2007-06-06  Chong Yidong  <cyd@stupidchicken.com>
  
 -2001-10-28  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * image.c (xpm_load): Remove spurious call to xpm_init_color_cache.
  
 -      * emacs.c: Use argv[0] instead of "emacs" when -t was specified.
 +2007-06-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * keyboard.c: Change doc-string comments to `new style' [w/`doc:'
 -      keyword].
 -      Fix typos in comments.
 +      * macfns.c (mac_window): Replace WindowPtr with WindowRef.
  
 -      * emacs.c (bug_reporting_address): New function.
 -      Use it when displaying usage message.
 +      * macgui.h: Replace WindowPtr with WindowRef.
  
 -      * minibuf.c (read_minibuf): Remove unused external declaration of
 -      variable `Qread_only'.
 +      * macmenu.c: Replace MenuHandle and GetMenuHandle with MenuRef and
 +      GetMenuRef, respectively.  Replace WindowPtr with WindowRef.
 +      Replace ControlHandle with ControlRef.
 +      (install_menu_quit_handler): Rename arg MENU_HANDLE to ROOT_MENU.
  
 -      * keymap.c (access_keymap): Remove unused variable `charset'.
 +      * macterm.c: Replace MenuHandle and GetMenuHandle with MenuRef and
 +      GetMenuRef, respectively.  Replace WindowPtr with WindowRef.
 +      Replace ControlHandle with ControlRef.
 +      (USE_CARBON_EVENTS): Remove.  Use TARGET_API_MAC_CARBON instead.
 +      [MAC_OS8] (do_get_menus): Rename variable `menu_handle' to `menu'.
  
 -2001-10-28  Miles Bader  <miles@gnu.org>
 +      * macterm.h (struct scroll_bar): Rename member control_handle_low
 +      and control_handle_high to control_ref_low and control_ref_high.
 +      All uses changed.
 +      (SCROLL_BAR_CONTROL_REF, SET_SCROLL_BAR_CONTROL_REF): Rename from
 +      SCROLL_BAR_CONTROL_HANDLE and SET_SCROLL_BAR_CONTROL_HANDLE,
 +      respectively.  All uses changed.
 +      (XCreatePixmap, XCreatePixmapFromBitmapData, XSetWindowBackground)
 +      (install_window_handler, remove_window_handler): Replace WindowPtr
 +      with WindowRef in externs.
  
 -      * xfaces.c (merge_face_heights): Handle TO being relative as well.
 -      Remove #ifdef'd-out code.
 -      (Fface_attribute_relative_p, Fmerge_face_attribute): New functions.
 -      (syms_of_xfaces): Initialize them.
 +2007-06-05  Juanma Barranquero  <lekktu@gmail.com>
  
 -2001-10-27  Jason Rumney  <jasonr@gnu.org>
 +      * xfaces.c (Finternal_lisp_face_p): Signal error for face alias loops.
  
 -      * w32fns.c (w32_wnd_proc) <WM_KILLFOCUS>: Destroy the system caret.
 -      <WM_EMACS_DESTROY_CARET, WM_EMACS_TRACK_CARET>: Track cursor
 -      position using the system caret.
 +2007-06-03  Nick Roberts  <nickrob@snap.net.nz>
  
 -      * w32term.c (w32_system_caret_hwnd, w32_system_caret_width)
 -      (w32_system_caret_height, w32_system_caret_x)
 -      (w32_system_caret_y): New variables for tracking system caret.
 -      (w32_initialize): Initialize them.
 -      (x_display_and_set_cursor): Make system caret follow the active cursor.
 +      * keyboard.c (discard_mouse_events): Add GPM_CLICK_EVENT case.
  
 -      * w32term.h (WM_EMACS_TRACK_CARET, WM_EMACS_DESTROY_CARET):
 -      New messages types.
 +      * frame.c (Fmouse_position, Fmouse_pixel_position):
 +      Condition on HAVE_GPM too.
  
 -      * w32term.c (note_mouse_highlight): Clear old help_echo.
 +      * term.c (term_mouse_highlight): Remove unused variables.
 +      (Fterm_open_connection): Set gpm_zerobased to 1.
 +      (term_mouse_movement, term_mouse_click, handle_one_term_event):
 +      Use zero based co-ordinates.
 +      (handle_one_term_event): Report a drag as mouse movement too.
  
 -2001-10-27  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * Makefile.in (MOUSE_SUPPORT): Define for HAVE_GPM.
  
 -      * xterm.c: Fix typo in a comment.
 +2007-06-03  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * emacs.c: Fix typos in comments.
 -      Remove unnecessary spaces.
 -      Change doc-string comments to `new style' [w/`doc:' keyword].
 -      (USAGE2): Fix typos in usage string.
 +      * image.c (search_image_cache): New function.  Require background
 +      color match if background color is unspecified in the image spec.
 +      (uncache_image, lookup_image): Use it.
  
 -      * xterm.c: Fix typo in a comment.
 +2007-06-01  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * lisp.h (gdb_lisp_params): Remove code in #if 0 which is now in
 -      emacs.c.
 +      * window.c (Fshrink_window): Reflow docstring.
  
 -2001-10-27  Gerd Moellmann  <gerd@gnu.org>
 +2007-06-02  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * xdisp.c (move_it_vertically_backward): Use 2/3 line_height
 -      instead of 1/2 line_height in the heuristic for skipping
 -      farther backward when target_y was not reached.
 +      * Version 22.1 released.
  
 -      * sound.c (sound_perror): Unblock SIGIO, turn on atimers.
 -      Display errno only if non-zero.
 -      (sound_warning): New function.
 -      (vox_configure): Don't treat failing to set sample rate as error.
 -      (various places): Improve error messages.
 +2007-06-01  Richard Stallman  <rms@gnu.org>
  
 -2001-10-26  Eli Zaretskii  <eliz@is.elta.co.il>
 +      * xfns.c (x_encode_text): Add GCPRO.
  
 -      * fileio.c (Faccess_file): Run the argument filename through
 -      Fexpand_file_name, before using it.
 +2007-06-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * dispnew.c (syms_of_display) <visible-bell>: Add a reference to
 -      ring-bell-function.  Suggested by Alf-Ivar Holm <alfh@ifi.uio.no>
 +      * xfns.c (x_set_name_internal): Save encoded name before
 +      x_encode_text in case string data is relocated.
  
 -2001-10-26  Gerd Moellmann  <gerd@gnu.org>
 +2007-05-31  Richard Stallman  <rms@gnu.org>
  
 -      * insdel.c (insert_1_both): Do nothing if NCHARS == 0.
 +      * buffer.c (syms_of_buffer): Doc fix.
  
 -      * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
 -      Fix clearing in the case of scroll bars on the right.
 +2007-05-30  Nick Roberts  <nickrob@snap.net.nz>
  
 -2001-10-26  Juanma Barranquero  <lektu@terra.es>
 +      * sysdep.c (init_sys_modes): Add rather than replace with
 +      O_NONBLOCK.
  
 -      * w32gui.h (XImage): Add a dummy typedef.
 +      * frame.c [HAVE_GPM] (Fset_mouse_pixel_position): Add call to
 +      term_mouse_moveto.
  
 -2001-10-26  Gerd Moellmann  <gerd@gnu.org>
 +      * termhooks.h (term_mouse_moveto): New extern.
  
 -      * xfns.c (XScreenNumberOfScreen): Fix struct to pointer comparison.
 +      * term.c (mouse_face_window): Rename...
 +      (Qmouse_face_window): ...to this.
 +      (term_show_mouse_face, term_clear_mouse_face)
 +      (term_mouse_highlight): Use Qmouse_face_window.
 +      (term_mouse_moveto): New function.
 +      (term_mouse_position): Make it work.
 +      (syms_of_term): Uncomment assignment to mouse_position_hook.
 +      Staticpro Qmouse_face_window.
  
 -2001-10-25  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-05-28  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * frame.c (Fframe_parameter): Fix last change.
 +      * xdisp.c (redisplay_internal): Bind inhibit-point-motion-hooks to t
 +      around current_column call.
  
 -      * fileio.c: Revert last change (which removed old commented-out
 -      version of expand-file-name).  Add a comment that explains why
 -      this old version should not be removed.
 +2007-05-26  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2001-10-25  Gerd Moellmann  <gerd@gnu.org>
 +      * xfaces.c (syms_of_xfaces): Delete stray semicolon.
 +      * xdisp.c (next_element_from_buffer):
 +      * window.c (delete_window):
 +      * term.c (term_mouse_highlight):
 +      * msdos.c (getdefdir):
 +      * macterm.c (mac_create_bitmap_from_bitmap_data)
 +      (init_font_name_table):
 +      * fns.c (Fsxhash):
 +      * data.c (Fmake_local_variable):
 +      * ccl.c (ccl_driver): Likewise.
  
 -      * frame.c (Fframe_parameter): Fix a bug whereby some
 -      ``artificial'' frame parameters, like `minibuffer' were not
 -      obtained by calling Fframe_parameters.
 +2007-05-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * xterm.c (show_mouse_face): Clean up.  Recognize overwritten
 -      cursor differently.
 +      * macterm.c [USE_CARBON_EVENTS] (mac_handle_window_event):
 +      Call mac_wakeup_from_rne on window size change.
  
 -      * xdisp.c (move_it_vertically_backward): Compute line height
 -      differently.  Add heuristic to try to be more compatible to 20.x.
 +2007-05-25  Chong Yidong  <cyd@stupidchicken.com>
  
 -2001-10-25  Stefan Monnier  <monnier@cs.yale.edu>
 +      * image.c (uncache_image): Fix typo.
  
 -      * lisp.h (make_fixnum_or_float): Coerce double to int explicitly.
 +2007-05-23  Johannes Weiner  <hannes@saeurebad.de>  (tiny change)
  
 -      * editfns.c (text_property_stickiness): Fix Lisp_Object used as
 -      boolean.
 +      * keyboard.c (make_lispy_movement): Condition on HAVE_GPM too.
  
 -2001-10-25  Miles Bader  <miles@gnu.org>
 +2007-05-22  Richard Stallman  <rms@gnu.org>
  
 -      * xfns.c (png_load): Make sure SPECIFIED_BG is a string.
 -      BG is a pointer to a structure, not a structure.
 -      (gif_format, png_format): Add missing commas.
 +      * xterm.c (x_connection_closed): Remove NO_RETURN.
  
 -2001-10-24  Richard M. Stallman  <rms@gnu.org>
 +2007-05-22  Martin Rudalics  <rudalics@gmx.at>
  
 -      * xfaces.c (Fface_attributes_as_vector): New function.
 -      (syms_of_xfaces): Defsubr it.
 +      * syntax.c (scan_words): Fix arg to UPDATE_SYNTAX_TABLE_BACKWARD.
  
 -2001-10-24  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-05-21  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * dispnew.c (sync_window_with_frame_matrix_rows): Remove unused
 -      variable `area'.
 +      * image.c (uncache_image): New function.
 +      (Fimage_refresh): New function.
  
 -2001-10-25  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-05-20  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -      * search.c (scan_newline): Remove unused variable `selective_display'.
 +      * Makefile.in: Move GPM check outside HAVE_X_WINDOWS.
  
 -2001-10-25  Miles Bader  <miles@gnu.org>
 +2007-05-20  Nick Roberts  <nickrob@snap.net.nz>
  
 -      * dispextern.h (struct image): Add `background',
 -      `background_valid', and `background_transparent' fields.
 -      (image_background, image_background_transparent): New declarations.
 -      (IMAGE_BACKGROUND, IMAGE_BACKGROUND_TRANSPARENT): New macros.
 -      * xfns.c (image_background, image_background_transparent)
 -      (four_corners_best): New functions.
 -      (xpm_format, png_format, jpeg_format, tiff_format, gif_format)
 -      (gs_format): Add `:background' entry.
 -      (lookup_image): Set IMG's background color if specified.
 -      (pbm_load, xbm_load_image, png_load): Set IMG's background field
 -      when appropriate.
 -      (x_clear_image_1): Reset `background_valid' and
 -      `background_transparent_valid' fields.
 -      (x_build_heuristic_mask): Use IMAGE_BACKGROUND instead of
 -      calculating it here.  Set IMG's background_transparent field.
 -      (enum xpm_keyword_index): Add XPM_BACKGROUND.
 -      (enum png_keyword_index): Add PNG_BACKGROUND.
 -      (enum jpeg_keyword_index): Add JPEG_BACKGROUND.
 -      (enum tiff_keyword_index): Add TIFF_BACKGROUND.
 -      (enum gif_keyword_index): Add GIF_BACKGROUND.
 -      (enum gs_keyword_index): Add GS_BACKGROUND.
 -      (pbm_load, png_load, jpeg_load, tiff_load, gif_load):
 -      Pre-calculate image background color where necessary.
 -      * xterm.c (x_setup_relief_colors): Use `IMAGE_BACKGROUND' and
 -      `IMAGE_BACKGROUND_TRANSPARENT' to calculate the correct background
 -      color to use for image glyph reliefs.
 +      * config.in, keyboard.c, Makefile.in, sysdep.c, term.c,
 +      * termhooks.h: Use HAVE_GPM instead of HAVE_GPM_H.
  
 -2001-10-24  Gerd Moellmann  <gerd@gnu.org>
 +2007-05-20  Nick Roberts  <nickrob@snap.net.nz>
  
 -      * xterm.c (x_draw_glyphs): Don't check for cursor overwriting
 -      in full-width rows.
 +      * keyboard.c (make_lispy_event): Make case GPM_CLICK_EVENT
 +      conditional on [HAVE_GPM_H].
  
 -      * xterm.c (XTset_vertical_scroll_bar) [!USE_TOOLKIT_SCROLL_BARS]:
 -      Fix clearing of area not covered by scroll bar.
 +2007-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2001-10-24  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +      * syntax.c (skip_chars): Update syntax-table only after we checked that
 +      the new location is valid.
  
 -      * xterm.c (x_insert_glyphs): Remove unused variables `real_end'
 -      and `real_start'.
 -      (x_draw_image_foreground): Remove unused variables `mask' and `xgcv'.
 -      (glyph_rect): Remove unused variable `area'.
 +2007-05-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2001-10-24  Gerd Moellmann  <gerd@gnu.org>
 +      * macterm.c (x_calc_absolute_position): Add BLOCK_INPUT around
 +      mac_get_window_bounds.
  
 -      * xdisp.c: Change #ifdef GLYPH_DEBUG to #if.
 +2007-05-20  Nick Roberts  <nickrob@snap.net.nz>
  
 -      * xdisp.c (try_window_reusing_current_matrix): Use row_containing_pos.
 -      (row_containing_pos): Take additional argument DY.
 -      Treat rows ending in middle of char differently.
 -      (display_line): Handle tabs on window systems differently.
 +      * Makefile.in (LIBGPM): Allow it to be set from configure.
 +      If set then link Emacs with it.
  
 -      * xterm.c, w32term.c (fast_find_position): Call row_containing_pos
 -      with additional argument.
 +      * config.in: Regenerate.
  
 -      * dispextern.h (row_containing_pos): Adjust prototype.
 +      * lisp.h (add_gpm_wait_descriptor, delete_gpm_wait_descriptor):
 +      New externs.
 +
 +      * termhooks.h [HAVE_GPM_H] (enum event_kind): Add GPM_CLICK_EVENT.
 +      Include gpm.h.
 +      (handle_one_term_event, term_gpm): New externs.
 +
 +      * sysdep.c [HAVE_GPM_H] (init_sys_modes): Make gpm_fd nonblocking
 +      and allow it to be interrupted by SIGIO.
 +
 +      * process.c (gpm_wait_mask, max_gpm_desc): New variables.
 +      (wait_reading_process_output): Wait on gpm_fd too.
 +      (add_gpm_wait_descriptor, delete_gpm_wait_descriptor)): New functions.
 +      (add_gpm_wait_descriptor_called_flag): New variable.
 +      (delete_keyboard_wait_descriptor): Check gpm_wait_mask.
 +
 +      * keyboard.c [HAVE_GPM_H] (Qmouse_fixup_help_message)
 +      (make_lispy_movement, tracking_off, Ftrack_mouse, some_mouse_moved)
 +      (show_help_echo, readable_events, kbd_buffer_get_event, init_keyboard):
 +      Extend HAVE_MOUSE ifdefs to HAVE_GPM_H.
 +      (make_lispy_event): Add case GPM_CLICK_EVENT.
 +      (read_avail_input): Handle mouse input.
 +
 +      * term.c (write_glyphs_with_face): New function.
 +      [HAVE_GPM_H]: Include buffer.h, sys/fcntl.h.
 +      (mouse_face_beg_row, mouse_face_beg_col, mouse_face_end_row)
 +      (mouse_face_end_col, mouse_face_past_end, mouse_face_window)
 +      (mouse_face_face_id, term_gpm, pos_x, pos_y)
 +      (last_mouse_x, last_mouse_y): New variables.
 +      (term_show_mouse_face, term_clear_mouse_face, fast_find_position)
 +      (term_mouse_highlight, term_mouse_movement, term_mouse_position)
 +      (term_mouse_click, handle_one_term_event, Fterm_open_connection)
 +      (Fterm_close_connection): New functions.
 +      (term_init): Initialise mouse_face_window.
 +
 +2007-05-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * xdisp.c (inhibit_try_window_id, inhibit_try_window_reusing)
 -      (inhibit_try_cursor_movement) [GLYPH_DEBUG]: New variables.
 -      (try_window_id, try_window_reusing_current_matrix)
 -      (try_cursor_movement) [GLYPH_DEBUG]: Don't run if inhibited.
 -      (syms_of_xdisp) [GLYPH_DEBUG]: DEFVAR_BOOL the variables.
 +      * xdisp.c (redisplay_window): If first window line is a
 +      continuation line, recompute the new window start instead of
 +      recentering.
  
 -2001-10-24  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-05-18  Glenn Morris  <rgm@gnu.org>
  
 -      * xmenu.c: Spell the name of Emacs properly (GNU Emacs instead of
 -      gnuemacs).
 -      (HAVE_BOXES): Fix typo in comment.
 -      (push_menu_pane): Fix typo in comment.
 +      * m/alpha.h (ORDINARY_LINK): No longer define on OpenBSD.
 +      Suggested by Alfred M. Szmidt <ams@gnu.org>.
  
 -      * xdisp.c (display_prop_string_p): Remove unused local declaration
 -      of `Qwhen'.
 -      (single_display_prop_string_p): Remove unused local declarations
 -      of `Qwhen' and `Qmargin'.
 -      (string_buffer_position): Remove unused variable `around'.
 -      (store_frame_title): Remove unused variable `width'.
 +2007-05-17  Glenn Morris  <rgm@gnu.org>
  
 -      * window.c: Don't define max.
 -      (coordinates_in_window): Remove unused variable `uy'.
 +      * m/macppc.h (ORDINARY_LINK): No longer define on OpenBSD.
  
 -      * widget.c: Don't define max.
 +2007-05-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * process.c: Don't define max.
 -      (create_process): Remove unused variable `buffer'.
 +      * macterm.c [USE_CARBON_EVENTS] (mac_convert_event_ref): Also convert
 +      dead key repeat and up events.
  
 -2001-10-23  Gerd Moellmann  <gerd@gnu.org>
 +2007-05-14  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * xfaces.c (Finternal_set_lisp_face_attribute): Fix compilation error.
 +      * image.c (pbm_load): Check image size for monochrome pbm.
  
 -2001-10-23  Eli Zaretskii  <eliz@is.elta.co.il>
 +2007-05-13  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * xfaces.c (Finternal_set_lisp_face_attribute)
 -      [HAVE_WINDOW_SYSTEM]: Don't do anything for QCfont unless the
 -      frame is on a windowed display.
 +      * xterm.c (XTread_socket): Revert last change.
  
 -2001-10-23  Gerd Moellmann  <gerd@gnu.org>
 +2007-05-12  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * dispnew.c (sync_window_with_frame_matrix_rows):
 -      Fix handling of windows which aren't full-width, fix handling
 -      of marginal areas.
 +      * image.c (pbm_load): Correctly check image size for greyscale pbm.
  
 -      * lread.c (syms_of_lread) <recursive-load-depth-limit>: Raise to 50.
 +      * xterm.c (XTread_socket): Yet Another Uncaught X Error Crash (YAUXEC).
  
 -2001-10-23  Andreas Schwab  <schwab@suse.de>
 +2007-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * m/macppc.h [LINUX]: Undef LD_SWITCH_SYSTEM_TEMACS and override
 -      LD_SWITCH_MACHINE_TEMACS with "-Xlinker -znocombreloc".
 +      * editfns.c (Ftranspose_regions): Yet another int/Lisp_Object
 +      mixup (YAILOM).
  
 -2001-10-23  Gerd Moellmann  <gerd@gnu.org>
 +2007-05-07  Andreas Schwab  <schwab@suse.de>
  
 -      * xterm.c (x_draw_glyphs): Remove parameters READ_START and
 -      REAL_END.  Notice if cursor gets overwritten.
 -      (notice_overwritten_cursor): Take X positions as parameters.
 -      (x_draw_phys_cursor_glyph): Save state of w->phys_cursor_on_p
 -      around call to x_draw_glyphs.
 +      * keymap.c (Flookup_key): Fix typo in last change.
  
 -2001-10-23  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * syntax.c (modify-syntax-entry): Fix argument names (use CHAR
 -      instead of C) and usage.
 +      * keymap.c (Fdefine_key, Flookup_key): Only do the 0x80->meta_modifier
 +      mapping for unibyte strings.
  
 -      * editfns.c (char-to-string): Fix argument names (use CHAR instead
 -      of C) and usage.
 +2007-05-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * xfns.c (Fx_show_tip): Remove unused variables `buffer', `top',
 -      `left', `max_width' and `max_height'.
 +      * macmenu.c (mac_dialog_show): Apply 2007-04-27 change for xmenu.c.
 +      (Fx_popup_dialog) [MAC_OSX]: Likewise.
  
 -2001-10-23  Gerd Moellmann  <gerd@gnu.org>
 +2007-04-29  Richard Stallman  <rms@gnu.org>
  
 -      * xdisp.c (display_line): For a tab continued to the next line,
 -      set row's ends_in_middle_of_char_p.
 +      * insdel.c (replace_range): For undo, record insertion first.
  
 -2001-10-22  Gerd Moellmann  <gerd@gnu.org>
 +2007-04-29  Andreas Schwab  <schwab@suse.de>
  
 -      * xdisp.c (display_line): Fix computation of continuation lines
 -      width for TABs.
 +      * lisp.h (VECSIZE): Use OFFSETOF.
  
 -2001-10-22  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 +2007-04-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * xdisp.c (build_desired_tool_bar_string): Remove unused variable
 -      `Qlaplace'.
 +      * xdisp.c (try_window_reusing_current_matrix): Fix number of
 +      disabled lines.
  
 -      * fileio.c: Remove unused code.
 +2007-04-28  Richard Stallman  <rms@gnu.org>
  
 -2001-10-22  Miles Bader  <miles@gnu.org>
 +      * lread.c (read_escape): In a string, \s is always space.
  
 -      * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
 -      (DEFVAR_INT, DEFVAR_PER_BUFFER, DEFVAR_KBOARD):
 -      Remove `DOC_STRINGS_IN_COMMENTS' cases.
 +2007-04-27  Jan Dj\e,Ad\e(Brv  <jan.h.d@swipnet.se>
  
 -2001-10-21  Jason Rumney  <jasonr@gnu.org>
 +      * xmenu.c (xdialog_show): Call Fredisplay before showing the dialog.
  
 -      * w32term.c (x_erase_phys_cursor): Remove inverse_p again.
 +      * gtkutil.c (xg_update_menubar, create_menus): Create empty
 +      submenu for menu bar items.
  
 -2001-10-21  Eli Zaretskii  <eliz@is.elta.co.il>
 -
 -      * mocklisp.c (Fml_if, Fml_provide_prefix_argument)
 -      (Finsert_string): Avoid the multi-line string literals warning.
 -
 -2001-10-22  Miles Bader  <miles@gnu.org>
 -
 -      * doc.c (Vhelp_manyarg_func_alist): Variable removed.
 -      (Fdocumentation): Don't use it.
 -      (syms_of_doc): Don't initialize it.
 -
 -      * keyboard.c (Ftrack_mouse): Add usage: string to doc string.
 -      * print.c (Fwith_output_to_temp_buffer): Likewise.
 -      * window.c (Fsave_window_excursion): Likewise.
 -      * editfns.c (Fsave_excursion, Fsave_current_buffer)
 -      (Fsave_restriction): Likewise.
 -      * eval.c (Frun_hooks, Frun_hook_with_args)
 -      (Frun_hook_with_args_until_failure)
 -      (Frun_hook_with_args_until_success, Ffuncall, For, Fand, Fif)
 -      (Fcond, Fprogn, Fprog1, Fprog2, Fsetq, Fquote, Ffunction, Fdefun)
 -      (Fdefmacro, Fdefvar, Fdefconst, FletX, Flet, Fwhile, Fcatch)
 -      (Funwind_protect, Fcondition_case): Likewise.
 -      * coding.c (Ffind_operation_coding_system): Likewise.
 -      * keyboard.c (Ftrack_mouse): Likewise.
 -
 -2001-10-21  Miles Bader  <miles@gnu.org>
 -
 -      * fns.c (Fappend, Fconcat, Fvconcat, Fnconc, Fwidget_apply)
 -      (Fmake_hash_table): Add usage: string to doc string.
 -      * editfns.c (Finsert, Finsert_and_inherit, Finsert_before_markers)
 -      (Fmessage, Fmessage_box, Fmessage_or_box, Fpropertize, Fformat)
 -      (Fencode_time, Finsert_and_inherit_before_markers): Likewise.
 -      * mocklisp.c (Finsert_string, Fml_if, Fml_provide_prefix_argument)
 -      (Fml_prefix_argument_loop): Likewise.
 -
 -2001-10-21  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * fileio.c (Finsert_file_contents): Remove unused variable `gap_size'.
 -
 -      * sysdep.c (init_sys_modes): Change doc-string comments to `new
 -      style' [w/`doc:' keyword].
 -
 -      * data.c, fileio.c, indent.c, print.c, search.c, sound.c,
 -      * sunfns.c, textprop.c, undo.c, xselect.c: Change doc-string
 -      comments to `new style' [w/`doc:' keyword].
 -
 -2001-10-21  Jason Rumney  <jasonr@gnu.org>
 -
 -      * w32fns.c (Fx_file_dialog): Pass a filter to GetOpenFileName.
 -
 -      * w32term.c (remember_mouse_glyph): New function.
 -      (w32_mouse_position): Use it.
 -      (note_mouse_movement): If the mouse moved off the glyph, remember
 -      its new position.
 -
 -      * w32term.h (struct w32_output): Correct spelling of x_compatible.
 -      (w32_display_info): Add mouse_face_overlay.
 -
 -      * w32term.c (notice_overwritten_cursor): Renamed from
 -      note_overwritten_text_cursor.  Rewritten to take glyph widths into
 -      account.
 -      (x_y_to_hpos_vpos): Add parameter BUFFER_ONLY_P.
 -      (fast_find_string_pos): New function.
 -      (fast_find_position): Return the correct vpos.  Add parameter
 -      STOP.  In the final row, stop before glyphs having STOP as object.
 -      Don't consider glyphs that are not from a buffer.
 -      (fast_find_position) [0]: Add a presumably more correct version
 -      for after 21.1.
 -      (expose_window_tree, expose_frame): Don't compute intersections here.
 -      (expose_window): Do it here instead.
 -      (expose_window_tree, expose_window, expose_line): Return 1 when
 -      overwriting mouse-face.
 -      (expose_window): If W is the window currently being updated, mark
 -      the frame garbaged.
 -      (expose_frame): If mouse-face was overwritten, redo it.
 -      (x_use_underline_position_properties): New variable.
 -      (syms_of_xterm): DEFVAR_BOOL it.
 -      (x_draw_glyph_string): Add comment to use it in future.
 -      (x_draw_glyph_string): Restore clipping after drawing box.
 -      Fix a computation of the underline position.
 -      (w32_get_glyph_string_clip_rect): Minor cleanup.
 -      (x_fill_stretch_glyph_string): Remove an assertion.
 -      (x_produce_glyphs): Don't convert multibyte characters
 -      to unibyte characters in unibyte buffers.
 -      (cursor_in_mouse_face_p): New function.
 -      (x_draw_stretch_glyph_string): Use it to choose a different GC
 -      when drawing a cursor within highlighted text.  Don't draw
 -      background again if it has already been drawn.
 -      (x_draw_glyph_string_box): Don't draw a full-width
 -      box just because the glyph row's full_width_p flag is set.
 -      (x_draw_glyphs): Fix computation of rightmost x for
 -      full-width rows.
 -      (x_dump_glyph_string): Put in #if GLYPH_DEBUG.
 -      (w32_draw_relief_rect): Extend left shadow to the bottom and left;
 -      change bottom shadow accordingly.  Some cleanup.
 -      (x_update_window_end): Handle overwritten mouse face
 -      also for tool bar windows.
 -      (show_mouse_face): Set the glyph row's mouse_face_p flag also when
 -      DRAW is DRAW_IMAGE_RAISED.
 -      (clear_mouse_face): Return 1 if text with mouse face was
 -      actually redrawn.  Make the function static.
 -      Reset dpyinfo->mouse_face_overlay otherwise note_mouse_highlight might
 -      optimize away highlighting if we pass over that same overlay again.
 -      (note_mouse_highlight): Call mouse_face_overlay_overlaps
 -      to detect a case where we have to highlight a different region
 -      despite not having left the currently highlighted region.
 -      Set mouse_face_overlay in the x_display_info.  Avoid changing the
 -      mouse pointer shape when show_mouse_face has already done it, or
 -      there is no need.  Handle mouse-face and help-echo in strings.
 -      (glyph_rect): New function.
 -      (w32_mouse_position): Use it to raise the threshold for mouse
 -      movement event generation.
 -      (w32_initialize_display_info): Initialize the x_display_info's
 -      mouse_face_overlay.
 -      (w32_set_vertical_scroll_bar): Don't clear a zero height
 -      or width area.
 -      (w32_set_vertical_scroll_bar, x_scroll_bar_create): Don't configure
 -      a widget to zero height.
 -
 -      * w32menu.c (single_submenu, w32_menu_show) [!HAVE_MULTILINGUAL_MENU]:
 -      Protect unibyte strings created by replacing their multibyte
 -      equivalents in menu_items.
 -      (w32_menu_show): Don't overwrite an item's name with its key
 -      description in case the description is a multibyte string.
 -      (single_submenu): Some cleanup.
 -
 -      * w32fns.c (x_laplace_read_row, x_laplace_write_row): Removed.
 -      (postprocess_image): New function.
 -      (lookup_image): Call it for all image types except PostScript.
 -      (x_kill_gs_process): Call postprocess_image.
 -      (tiff_error_handler, tiff_warning_handler): New functions.
 -      (tiff_load): Install them as handlers.
 -      (x_kill_gs_process): Recognize if someone has cleared the image
 -      cache under us.
 -      (valid_image_p): Protect better against invalid image
 -      specifications.  Previous code could signal an error.
 -      (Fx_hide_tip, Fshow_tip): Doc fix.
 -      (Fv_max_tooltip_size): New variable.
 -      (syns_of_xfns): DEFVAR_LISP it.
 -      (Fx_show_tip): Add parameter TEXT.  Set the tip frame's root
 -      window buffer to *tip* right after creating the frame.  Set frame's
 -      window_width.  Use a maximum tooltip size specified by
 -      Vx_max_tooltip_size, if that has valid contents.
 -      (compute_tip_xy): Add parameters WIDTH and HEIGHT.
 -      Make sure the tooltip is completely visible.
 -      (x_create_tip_frame): Set tooltip buffer's truncate-lines to nil.
 -      (Fx_create_frame): Adjust the frame's height for presence
 -      of the tool bar before calling x_figure_window_size.
 -      (x_set_tool_bar_lines): Clear the tool bar window's current matrix
 -      when the window gets smaller.
 -      (x_set_foreground_color): Set frame's cursor_pixel.
 -      (x_set_foreground_color, x_set_background_color): Cleaned up.
 -      (x_set_font): Handle case of x_new_fontset returning the same name
 -      as before, although there was a change in fontsets.
 -
 -2001-10-21  Miles Bader  <miles@gnu.org>
 -
 -      * data.c (Fplus, Fminus, Fmax, Ftimes, Fquo, Flogand, Flogior)
 -      (Flogxor): Add usage: string to doc string.
 -      * charset.c (Fstring): Likewise.
 -      * callproc.c (Fcall_process_region, Fcall_process): Likewise.
 -      * alloc.c (Fmake_byte_code, Fvector, Flist): Likewise.
 -
 -2001-10-21  Pavel Jan\e,Am\e(Bk  <Pavel@Janik.cz>
 -
 -      * buffer.c: Reindent DEFUNs and DEFVARs with doc: keywords.
 -
 -      * alloc.c: Reindent DEFUNs with doc: keywords.
 -
 -      * abbrev.c (Finsert_abbrev_table_description): Reindent.
 -
 -      * frame.c: Change doc-string comments to `new style' [w/`doc:'
 -      keyword].
 -
 -See ChangeLog.9 for earlier changes.
 +See ChangeLog.10 for earlier changes.
  
  ;; Local Variables:
  ;; coding: iso-2022-7bit
diff --cc src/callint.c
Simple merge
diff --cc src/macmenu.c
index aa0be0bdc2e956014c245f7c98ff8425d4851f8b,c7b63917a4c33d6547f8c281491ebaafb233dac3..616d136465abe3f678c9141252f08a83d249ab54
@@@ -3272,34 -3201,22 +3272,35 @@@ fill_menubar (wv, deep_p
            }
  #endif  /* !TARGET_API_MAC_CARBON */
        }
-       else
+       if (!menu)
        {
 +#if TARGET_API_MAC_CARBON
 +        err = CreateNewMenu (id, 0, &menu);
 +        if (err == noErr)
 +          err = SetMenuTitleWithCFString (menu, title);
 +#else
          menu = NewMenu (id, title);
 -        InsertMenu (menu, 0);
 +#endif
 +        if (err == noErr)
 +          {
 +            InsertMenu (menu, 0);
  #if !TARGET_API_MAC_CARBON
 -        title_changed_p = 1;
 +            title_changed_p = 1;
  #endif
 +          }
        }
 +#if TARGET_API_MAC_CARBON
 +      CFRelease (title);
 +#endif
  
 -      if (wv->contents)
 -        submenu_id = fill_menu (menu, wv->contents, MAC_MENU_MENU_BAR_SUB,
 -                              submenu_id);
 +      if (err == noErr)
 +      if (wv->contents)
 +        submenu_id = fill_menu (menu, wv->contents, MAC_MENU_MENU_BAR_SUB,
 +                                submenu_id);
      }
  
 -  if (id < min_menu_id[MAC_MENU_MENU_BAR + 1] && GetMenuHandle (id))
 +  if (id < min_menu_id[MAC_MENU_MENU_BAR + 1] && GetMenuRef (id))
      {
        dispose_menus (MAC_MENU_MENU_BAR, id);
  #if !TARGET_API_MAC_CARBON
diff --cc src/process.c
index 0204388e6722e307dc251221de6e0e926e17354d,eb0dae04e964a28b54a2b690654d5c619d34a8be..e285ed4bde0581e06599cf491f84ad50c375075f
@@@ -626,12 -621,12 +626,12 @@@ make_process (name
  
    p = allocate_process ();
  
 -  XSETINT (p->infd, -1);
 -  XSETINT (p->outfd, -1);
 -  XSETFASTINT (p->tick, 0);
 -  XSETFASTINT (p->update_tick, 0);
 +  p->infd = -1;
 +  p->outfd = -1;
 +  p->tick = 0;
 +  p->update_tick = 0;
    p->pid = 0;
-   p->pty_flag = 0;
+   p->pty_flag = Qnil;
    p->raw_status_new = 0;
    p->status = Qrun;
    p->mark = Fmake_marker ();
diff --cc src/w32fns.c
Simple merge
diff --cc src/xdisp.c
Simple merge