]> code.delx.au - gnu-emacs/commitdiff
Merge from emacs-23; up to 2010-06-02T00:10:42Z!yamaoka@jpl.org.
authorGlenn Morris <rgm@gnu.org>
Wed, 23 Feb 2011 04:19:28 +0000 (20:19 -0800)
committerGlenn Morris <rgm@gnu.org>
Wed, 23 Feb 2011 04:19:28 +0000 (20:19 -0800)
16 files changed:
1  2 
admin/ChangeLog
admin/notes/bugtracker
doc/misc/ChangeLog
doc/misc/dired-x.texi
doc/misc/edt.texi
doc/misc/erc.texi
doc/misc/gnus.texi
doc/misc/idlwave.texi
doc/misc/mh-e.texi
doc/misc/tramp.texi
doc/misc/trampver.texi
lisp/ChangeLog
lisp/mail/rmail.el
lisp/mail/rmailmm.el
src/ChangeLog
src/font.c

diff --combined admin/ChangeLog
index 87ba151dc347f56969d1caadec8981f84ffe455b,d0e7b78f2e82a022dc0bccaa309739f1ffd5b9fd..f2c16b42e23c4ccea5d651dae16936cdbda2a26d
 -2011-02-22  Juanma Barranquero  <lekktu@gmail.com>
++2011-02-23  Juanma Barranquero  <lekktu@gmail.com>
+       * notes/bugtracker (bugtracker_debbugs_url): Fix typo.
 -2011-01-03  Glenn Morris  <rgm@gnu.org>
 +2011-02-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * admin.el (set-version): Add msdos/sed2v2.inp.
 +
 +2011-02-16  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Remove no-longer needed getloadavg symbols.
 +      * CPP-DEFINES (LOAD_AVE_CVT, LOAD_AVE_TYPE, FSCALE, KERNEL_FILE):
 +      (LDAV_SYMBOL): Remove.
 +
 +2011-02-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * bzrmerge.el (bzrmerge-resolve): Fix bzr revert call.
 +
 +2011-02-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * bzrmerge.el (bzrmerge-warning-buffer): New constant.
 +      (bzrmerge-apply): Use it.
 +      (bzrmerge): Kill any old warning buffer first.
 +
 +2011-02-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * bzrmerge.el (bzrmerge-buffer): New constant.
 +      (bzrmerge-merges, bzrmerge-missing, bzrmerge-apply): Use it.
 +      (bzrmerge-missing): If nothing to do, return nil not (nil).
 +      (bzrmerge-apply): Remove odd character from message.
 +      (bzrmerge): Give status messages.
 +
 +2011-01-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * admin.el (set-version): Remove lib-src/makefile.w32-in.
 +      Add nt/config.nt.
 +
 +2011-01-31  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      src/emacs.c now gets version number from configure.in
 +      * admin.el (set-version): Don't update src/emacs.c.
 +      * quick-install-emacs (VERSION): Get it from configure.in, not from
 +      src/emacs.c.
 +
 +2011-01-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      strftime: import from gnulib
 +      * notes/copyright: strftime.c moved from src to lib.
 +
 +2011-01-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * bzrmerge.el (bzrmerge-skip-regexp): New variable.
 +      (bzrmerge-missing): Use it.
 +
 +2011-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * make-tarball.txt: Suggest 'autoreconf -I m4 --force'
 +      rather than doing rm and autoconf by hand.  See
 +      <http://lists.gnu.org/archive/html/emacs-devel/2011-01/msg00673.html>.
 +
 +2011-01-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * notes/bzr (Installing changes from gnulib): New section.
 +      Need for this suggested by Stefan Monnier.
 +
 +2011-01-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * bzrmerge.el (bzrmerge-apply): Warn the user when the tree might be in
 +      an inconsistent state.
 +
 +2011-01-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Update copyright notes to match recent gnulib-related changes.
 +      * notes/copyright: Add aclocal.m4, m4/*.m4, lib/Makefile.in,
 +      arg-nonnull.h, c++defs.h, compile, depcomp, missing,
 +      warn-on-use.h, lib/*.[ch], lib/gnulib.mk.  Remove src/mktime.c,
 +      lib-src/getopt1.c, lib-src/getopt_int.h (files are now in lib and
 +      are subsumed by the lib/*.[ch] rule).  Remove m4/getopt.m4 (now
 +      subsumed by m4/*.m4 rule).  config.guess, config.sub, and
 +      doc/man/texinfo.tex are now copied in from gnulib.
 +
 +2011-01-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * charsets/cp51932.awk, charsets/eucjp-ms.awk: No longer print arch-tag.
 +
 +      * bzrmerge.el (bzrmerge-missing): Add another skip indicator.
 +      (bzrmerge-resolve): Also ignore cl-loaddefs.el.
 +
 +2011-01-14  Glenn Morris  <rgm@gnu.org>
  
        * admin.el (set-copyright): Also handle \year in refcards/*.tex.
  
 -2010-12-31  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * bzrmerge.el: Require cl when compiling.
 +      (bzrmerge-merges): Doc fix.
 +
 +2011-01-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * notes/copyright: There's only one install-sh, not two, so fix a
 +      typo claiming that there's two.  Add move-if-change to the list of
 +      GPL files imported from gnulib.
 +
 +2011-01-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * notes/copyright: Report status more accurately for non-GPL files.
 +      Report copyright status more accurately for mkinstalldirs,
 +      configure, m4/getopt.m4, and msdos/sed*.inp.
 +
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * nt/README.W32: Update the information about PNG support libraries.
        (Bug#7716)
  
 +2010-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * bzrmerge.el: New file to help merge branches while skipping
 +      some revisions (e.g. from emacs-23 to trunk).
 +
 +2010-12-03  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * CPP-DEFINES (EXPLICIT_SIGN_EXTEND): Remove.
 +
 +2010-10-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * notes/nextstep: Move here from ../nextstep/DEV-NOTES.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * admin.el (set-version): Add doc/emacs/emacsver.texi.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * admin.el (set-version): No need to act on doc/ files any more.
 +
 +      * quick-install-emacs (PUBLIC_LIBSRC_BINARIES): Remove b2m.
 +
 +2010-09-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * unidata/BidiMirroring.txt: Update from
 +      http://www.unicode.org/Public/6.0.0/ucd/BidiMirroring-6.0.0d2.txt
 +
 +      * unidata/UnicodeData.txt: Update from
 +      http://www.unicode.org/Public/6.0.0/ucd/UnicodeData-6.0.0d7.txt
 +
 +2010-08-09  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * CPP-DEFINES (WORDS_BIG_ENDIAN): Remove.
 +
 +2010-08-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * MAINTAINERS: Rename src/unexec.c => src/unexcoff.c.
 +
 +2010-07-24  Christoph Scholtes  <cschol2112@gmail.com>
 +
 +      * admin.el: Write version number to nt/makefile.w32-in.
 +      * nt/makedist.bat: Remove; replaced with `zipdist.bat'
 +      in the nt/ directory.
 +      * nt/README.W32: Relocate to nt/ directory.
 +
 +2010-07-11  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * CPP-DEFINES (HAVE_INDEX, HAVE_RINDEX): Remove.
 +
 +2010-07-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * MAINTAINERS: Update my responsibilities.
 +
 +2010-07-07  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * CPP-DEFINES (BCOPY_DOWNWARD_SAFE, BCOPY_UPWARD_SAFE)
 +      (GAP_USE_BCOPY, HAVE_BCMP, HAVE_BCOPY, bcmp, bcopy, bzero):
 +      Remove.
 +
 +2010-06-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * unidata/bidimirror.awk: New file.
 +
 +      * unidata/BidiMirroring.txt: New file from
 +      http://www.unicode.org/Public/6.0.0/ucd/BidiMirroring-6.0.0d1.txt.
 +
 +      * unidata/Makefile.in: (../../src/bidimirror.h): New target.
 +      (all): Depend on ../../src/biditype.h and ../../src/bidimirror.h.
 +
 +      * unidata/makefile.w32-in (../../src/bidimirror.h): New target.
 +      (all): Depend on ../../src/biditype.h and ../../src/bidimirror.h.
 +
 +      * unidata/biditype.awk: New file.
 +
 +      * unidata/Makefile.in (../../src/biditype.h): New target.
 +
 +      * unidata/makefile.w32-in (../../src/biditype.h): New target.
 +
 +2010-06-09  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * unidata/UnicodeData.txt: Update from
 +      http://www.unicode.org/Public/6.0.0/ucd/UnicodeData-6.0.0d5.txt
 +
 +2010-05-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * quick-install-emacs (AVOID): No more Makefile.c files.
 +
 +      * notes/cpp: Remove file.
 +
 +2010-05-15  Ken Raeburn  <raeburn@raeburn.org>
 +
 +      * admin.el (set-version, set-copyright): Update emacs.c instead of
 +      version.el.
 +
 +      * make-tarball.txt: Update filename list in step 6.
 +
 +      * quick-install-emacs: Scan emacs.c instead of version.el for
 +      version string.
 +
  2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
  
        * Version 23.2 released.
  
 +2010-04-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * CPP-DEFINES (__DJGPP__, __GO32__): Remove, no longer used.
 +
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
 +2010-03-10  Miles Bader  <miles@gnu.org>
 +
 +      * quick-install-emacs: Use more portable shell syntax.
 +
 +      * quick-install-emacs: (AVOID): Be more picky about files we avoid
 +      installing.
 +
  2010-02-14  Juanma Barranquero  <lekktu@gmail.com>
  
        * quick-install-emacs (PRUNED): Fix typo in message.
  
        * charsets/mapconv: Handle UNICODE2.
  
 -      * charsets/Makefile (CJK): Include CP932-2BYTE.map
 +      * charsets/Makefile (CJK): Include CP932-2BYTE.map.
        (CP932-2BYTE.map): New target.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
  2004-08-28  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * FOR-RELEASE (Indications): Remove entry about GTK and geometry,
 +      * FOR-RELEASE (Indications): Remove entry about GTK and geometry
        (now behaves as well as other ports).
  
  2004-06-28  Jan Djärv  <jan.h.d@swipnet.se>
  ;; coding: utf-8
  ;; End:
  
 -  Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
 -    2010, 2011  Free Software Foundation, Inc.
 +  Copyright (C) 2001-2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
  
    You should have received a copy of the GNU General Public License
    along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 -
diff --combined admin/notes/bugtracker
index 02ca77bf7deb4a6719ceba1119b6200939bdccf7,204948261baeb3c551262cfdd8c0428db92710b2..f2805eae44392265bf4d5f8186e42288d9f968d9
@@@ -149,23 -149,6 +149,23 @@@ Discard mails matching
  
  ^X-GNU-PR-Message: (transcript|closed)
  
 +** Not receiving messages in response to your control commands?
 +The messages debbugs sends out in response to control-server commands
 +always have headers To: your@email, and Cc: tracker@debbugs.gnu.org
 +(the latter is an alias for the emacs-bug-tracker mailing list).
 +These are also the addresses to which a copy of the response is sent.
 +(In general, there need not be any relation between the To: and Cc:
 +headers visible in a message and where debbugs actually sends it.)
 +If you used an X-Debbugs-No-Ack header, however, a copy is _not_ sent
 +to you, but the To: header is unchanged.  If you are subscribed to the
 +emacs-bug-tracker mailing list and have duplicate suppression turned
 +on, the presence of your address in the To: header will cause Mailman
 +to not send you a list copy, because it thinks you have received a
 +direct copy.  If you used X-Debbugs-No-Ack, this is not the case, and
 +you won't get any copy at all.  If this bothers you, don't use both
 +X-Debbugs-No-Ack and Mailman duplicate suppression for the
 +emacs-bug-tracker mailing list, just pick one or the other.
 +
  ** How to avoid multiple copies of mails.
  If you reply to reports in the normal way, this should work fine.
  Basically, reply only to the numbered bug address (and any individual
@@@ -384,25 -367,12 +384,25 @@@ fixed 123 23.0.6
  *** To remove a "fixed" mark:
  notfixed 123 23.0.60
  
 +*** To make a bug as present in a particular version:
 +found 123 23.2
 +NB if there is no specified "fixed" version, or if there is one and it
 +is earlier than the found version, this reopens a closed bug.
 +
 +The leading "23.1;" that M-x report-emacs-bug adds to bug subjects
 +automatically sets a found version (if none is explicitly specified).
 +
  *** To assign or reassign a bug to a package or list of packages:
  reassign 1234 emacs
  
 +Note that reassigning clears the list of found versions, even if the
 +new packages includes the original one.
 +
  ** To remove spam from the tracker, move it to the `spam' pseudo-package:
  reassign 123 spam
  
 +(Should not be necessary any more, now that the input is moderated.)
 +
  ** To change the title of a bug:
  retitle 123 Some New Title
  
@@@ -489,7 -459,7 +489,7 @@@ Here "{id}" is a literal string, a plac
  by the bug number you specify after `--fixes debbugs:' in the bzr
  command line (123 in the example above).
  
- In the bazaar.conf file, this setting should go into the [DEFAULTS]
+ In the bazaar.conf file, this setting should go into the [DEFAULT]
  section.
  
  In the locations.conf file, it should go into the branch-specific
@@@ -608,13 -578,9 +608,13 @@@ All discarded messages are stored in /v
  If a non-spam message accidentally gets discarded, just do:
  
  cat /var/lib/mailman/spam/not-really-spam.msg | /usr/lib/debbugs/receive
 +chown Debian-debbugs:Debian-debbugs /var/lib/debbugs/spool/incoming/*
  ... check it works ...
  mv /var/lib/mailman/spam/not-really-spam.msg /var/lib/mailman/not-spam/
  
 +Also check that the sender was not added to the auto-discard/reject list
 +in the debbugs-submit Mailman interface.
 +
  ** Administrivia
  
  The debbugs-submit list should have the administrivia option off,
diff --combined doc/misc/ChangeLog
index 67197450a5bbeab1a80b4d12b783d8a58addade8,a822338225a8786729e89f702f3ffd25d8218ff6..530f7f1c12368733afed5d6f1a47cd284d6740ae
@@@ -1,20 -1,21 +1,33 @@@
 -2011-02-23  Glenn Morris  <rgm@gnu.org>
++2011-02-23  Michael Albinus  <michael.albinus@gmx.de>
 -      * dired-x.texi (Features, Local Variables): Fix typos.
 -      (Features): Minor rephrasing.
++      * tramp.texi: Use consistently "Emacs" (instead of "GNU Emacs") and
++      "Debian GNU/Linux".
 -2011-02-19  Glenn Morris  <rgm@gnu.org>
++      * trampver.texi [xemacs]: Set emacsothername to "Emacs".
++
 +2011-02-23  Glenn Morris  <rgm@gnu.org>
 +
++      * dired-x.texi (Features): Minor rephrasing.
++      (Local Variables): Fix typos.
+       * edt.texi, erc.texi, gnus.texi, idlwave.texi, mh-e.texi:
+       Standardize some Emacs/XEmacs terminology.
 -2011-02-19  Michael Albinus  <michael.albinus@gmx.de>
 +      * dired-x.texi (Features): Don't advertise obsolete local variables.
 +      Simplify layout.
 +      (Omitting Variables): Update local variables example.
 +      (Local Variables): Say this is obsolete.  Fix description of
 +      dired-enable-local-variables possible values.
  
 -      * tramp.texi: Use consistently "Emacs" (instead of "GNU Emacs") and
 -      "Debian GNU/Linux".
 +2011-02-21  Lars Ingebrigtsen  <larsi@gnus.org>
  
 -      * trampver.texi [xemacs]: Set emacsothername to "Emacs".
 +      * gnus.texi (Article Date): Clarify gnus-article-update-date-headers.
  
 -2011-02-18  Eli Zaretskii  <eliz@gnu.org>
 +2011-02-20  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Window Layout): Document layout names.
 +
 +2011-02-19  Eli Zaretskii  <eliz@gnu.org>
  
        * ada-mode.texi: Sync @dircategory with ../../info/dir.
        * auth.texi: Sync @dircategory with ../../info/dir.
        * widget.texi: Sync @dircategory with ../../info/dir.
        * woman.texi: Sync @dircategory with ../../info/dir.
  
 -2011-02-14  Glenn Morris  <rgm@gnu.org>
 +2011-02-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * dired-x.texi (Technical Details): No longer redefines dired-add-entry,
 +      dired-initial-position, dired-clean-up-after-deletion,
 +      dired-read-shell-command, or dired-find-buffer-nocreate.
 +
 +2011-02-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * dired-x.texi (Optional Installation File At Point): Simplify.
 +
 +2011-02-17  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * auth.texi (Help for users): Use :port instead of :protocol for all
 +      auth-source docs.
 +      (GnuPG and EasyPG Assistant Configuration): Mention the default now is
 +      to have two files in `auth-sources'.
 +
 +2011-02-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * dired-x.texi: Use emacsver.texi to get Emacs version.
 +      * Makefile.in ($(infodir)/dired-x, dired-x.dvi, dired-x.pdf):
 +      Depend on emacsver.texi.
  
        * dired-x.texi: Drop meaningless version number.
        (Introduction): Remove old info.
        Remove incorrect info about loaddefs.el.
        (Bugs): Just refer to M-x report-emacs-bug.
  
 +      * dired-x.texi (Multiple Dired Directories): Update for rename of
 +      default-directory-alist.
 +      (Miscellaneous Commands): No longer mention very old VM version 4.
 +
 +2011-02-15  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Merge from gnulib.
 +      * texinfo.tex: Update to version 2011-02-14.11.
 +
 +2011-02-14  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * auth.texi (Help for users):
 +      Login collection is "Login" and not "login".
 +
 +2011-02-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (History): Remove IMAP support.
 +      (External methods, Frequently Asked Questions): Remove `imap' and
 +      `imaps' methods.
 +      (Password handling): Remove IMAP entries for ~/.authinfo.gpg.
 +
 +      * trampver.texi: Remove default value of `emacsimap'.
 +
 +2011-02-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * ada-mode.texi, dired-x.texi, ebrowse.texi, ediff.texi, eudc.texi:
 +      * idlwave.texi, reftex.texi, sc.texi, speedbar.texi: Add @top.
 +
  2011-02-12  Glenn Morris  <rgm@gnu.org>
  
        * sc.texi (Getting Connected): Remove old index entries.
  
 -2011-02-12  Ulrich Mueller <ulm@gentoo.org>
 +2011-02-12  Ulrich Mueller  <ulm@gentoo.org>
  
        * url.texi: Remove duplicate @dircategory (Bug#7942).
  
 -2011-02-03  Michael Albinus  <michael.albinus@gmx.de>
 +2011-02-11  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * auth.texi (Overview, Help for users, Help for developers):
 +      Update docs.
 +      (Help for users): Talk about spaces.
 +
 +2011-02-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update to version 2011-02-07.16.
 +
 +2011-02-07  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbus.texi (Bus names): Adapt descriptions for
 +      dbus-list-activatable-names and dbus-list-known-names.
 +
 +2011-02-07  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Logarithmic Units): New section.
 +
 +2011-02-05  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnus-overrides.texi: Renamed from overrides.texi and all the relevant
 +      manuals use it now.
 +
 +      * Makefile.in (nowebhack): Fixed to use -D flag instead of overrides.
 +
 +2011-02-05  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * overrides.texi: Remove.
 +
 +      * sieve.texi, sasl.texi, pgg.texi, message.texi, gnus.texi:
 +      * emacs-mime.texi, auth.texi, Makefile.in: Revert last changes.
 +
 +2011-02-05  Michael Albinus  <michael.albinus@gmx.de>
  
        * tramp.texi (Frequently Asked Questions): Mention problems with
        WinSSHD.
  
 -2011-01-03  Eduard Wiebe  <usenet@pusto.de>
 +      * trampver.texi: Update release number.
 +
 +2011-02-05  Era Eriksson  <era+tramp@iki.fi>  (tiny change)
 +
 +      * tramp.texi:
 +      Replace "delimet" with "delimit" globally.
 +      Replace "explicite" with "explicit" globally.
 +      Replace "instead of" with "instead" where there was nothing after "of".
 +      Audit use of comma before interrogative pronoun, "that", or "which".
 +      Minor word order, spelling, wording changes.
 +
 +2011-02-04  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * overrides.texi: New file to set or clear WEBHACKDEVEL.
 +
 +      * sieve.texi: Use WEBHACKDEVEL.
 +
 +      * sasl.texi: Use WEBHACKDEVEL.
 +
 +      * pgg.texi: Use WEBHACKDEVEL.
 +
 +      * message.texi: Use WEBHACKDEVEL.
 +
 +      * gnus.texi: Use WEBHACKDEVEL.
 +
 +      * emacs-mime.texi: Use WEBHACKDEVEL.
 +
 +      * auth.texi: Use WEBHACKDEVEL.
 +
 +      * Makefile.in (webhack, nowebhack): Hacks to produce for-the-web
 +      manuals.
 +
 +2011-02-04  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi: Add DEVEL header (suggested by Andreas Schwab).
 +
 +2011-02-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update to version 2011-02-01.10 from gnulib,
 +      which in turn is copied from ftp://tug.org/tex/.
 +
 +2011-02-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * faq.texi (Contacting the FSF): Mainly just refer to the web-site.
 +      (Binding combinations of modifiers and function keys):
 +      Let's assume people reading this are not using Emacs 18.
 +
 +2011-02-03  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Article Date): Remove mention of gnus-stop-date-timer,
 +      since it's run automatically.
 +
 +2011-02-01  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Customizing Articles): Fix typo.
 +
 +2011-01-31  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Customizing Articles): Document the new way of customizing
 +      the date headers(s).
 +
 +2011-01-30  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Client-Side IMAP Splitting): Add a complete nnimap fancy
 +      splitting example.
 +
 +2011-01-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (MAKEINFO): Remove options, leave only program name.
 +      (MAKEINFO_OPTS): New variable.
 +      (ENVADD, $(infodir)/emacs): Use $(MAKEINFO_OPTS).
 +      ($(infodir)/info, $(infodir)/ccmode, $(infodir)/ada-mode)
 +      ($(infodir)/pcl-cvs, $(infodir)/eshell, $(infodir)/cl)
 +      ($(infodir)/dbus, $(infodir)/dired-x, $(infodir)/ediff)
 +      ($(infodir)/flymake, $(infodir)/forms, $(infodir)/gnus)
 +      ($(infodir)/message, $(infodir)/emacs-mime, $(infodir)/sieve)
 +      ($(infodir)/pgg, $(infodir)/mh-e, $(infodir)/reftex)
 +      ($(infodir)/remember, $(infodir)/sasl, $(infodir)/sc)
 +      ($(infodir)/vip, $(infodir)/viper, $(infodir)/widget)
 +      ($(infodir)/efaq, $(infodir)/autotype, $(infodir)/calc)
 +      ($(infodir)/idlwave, $(infodir)/eudc, $(infodir)/ebrowse)
 +      ($(infodir)/woman, $(infodir)/speedbar, $(infodir)/tramp)
 +      ($(infodir)/ses, $(infodir)/smtpmail, $(infodir)/org)
 +      ($(infodir)/url, $(infodir)/newsticker, $(infodir)/nxml-mode)
 +      ($(infodir)/rcirc, $(infodir)/erc, $(infodir)/ert)
 +      ($(infodir)/epa, $(infodir)/mairix-el, $(infodir)/auth)
 +      ($(infodir)/eieio, $(infodir)/ede, $(infodir)/semantic)
 +      ($(infodir)/edt): Use $(MAKEINFO_OPTS).
 +
 +2011-01-26  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Article Date): Document gnus-article-update-lapsed-header.
 +
 +2011-01-24  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * message.texi (IDNA): Explain what it is.
 +
 +2011-01-24  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (The Empty Backend): Document nnnil (bug #7653).
 +
 +2011-01-23  Werner Lemberg  <wl@gnu.org>
 +
 +      * Makefile.in (MAKEINFO): Now controlled by `configure'.
 +      (MAKEINFO_OPTS): New variable.  Use it where appropriate.
 +      (ENVADD): Updated.
 +
 +2011-01-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * ert.texi: Relicense under GFDL 1.3+, and standardize license notice.
 +
 +2011-01-14  Eduard Wiebe  <usenet@pusto.de>
  
        * nxml-mode.texi (Introduction): Fix file name typos.
  
 -2010-12-02  Glenn Morris  <rgm@gnu.org>
 +2011-01-13  Christian Ohler  <ohler@gnu.org>
 +
 +      * ert.texi: New file.
 +
 +      * Makefile.in:
 +      * makefile.w32-in: Add ert.texi.
 +
 +2011-01-10  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +
 +      * dbus.texi (Receiving Method Calls): New function
 +      dbus-register-service.  Rearrange node.
 +
 +2011-01-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * texinfo.tex: Update to version 2010-12-23.17 from gnulib,
 +      which in turn is copied from ftp://tug.org/tex/.
 +
 +2011-01-04  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +
 +      * dbus.texi (Receiving Method Calls): Describe new optional
 +      parameter dont-register-service of dbus-register-{method,property}.
 +
 +2010-12-17  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.texi (Encrypting/decrypting *.gpg files): Mention
 +      epa-file-select-keys.
 +
 +2010-12-16  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Archived Messages): Remove outdated text.
 +
 +2010-12-16  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnus.texi (Foreign Groups): Added clarification of foreign groups.
 +
 +2010-12-15  Andrew Cohen  <cohen@andy.bu.edu>
 +
 +      * gnus.texi (The hyrex Engine): Say that this engine is obsolete.
 +
 +2010-12-14  Andrew Cohen  <cohen@andy.bu.edu>
 +
 +      * gnus.texi (The swish++ Engine): Add customizable parameters
 +      descriptions.
 +      (The swish-e Engine): Ditto.
 +
 +2010-12-14  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Inline methods): Add "ksu" method.
 +      (Remote processes): Add example with remote `default-directory'.
 +
 +2010-12-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * faq.texi (Expanding aliases when sending mail):
 +      Now build-mail-aliases is interactive.
 +
 +2010-12-13  Andrew Cohen  <cohen@andy.bu.edu>
 +
 +      * gnus.texi: First pass at adding (rough) nnir documentation.
 +
 +2010-12-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Filtering New Groups):
 +      Mention gnus-auto-subscribed-categories.
 +      (The First Time): Remove, since default-subscribed-newsgroups has been
 +      removed.
 +
 +2010-12-13  Glenn Morris  <rgm@gnu.org>
  
        * cl.texi (For Clauses): Small fixes for frames and windows.
  
 -2010-11-23  Glenn Morris  <rgm@gnu.org>
 +2010-12-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Using capture): Document using prefix arguments for
 +      finalizing capture.
 +      (Agenda commands): Document prefix argument for the bulk scatter
 +      command.
 +      (Beamer class export): Document that also overlay arguments can be
 +      passed to the column environment.
 +      (Template elements): Document the new entry type.
 +
 +2010-12-11  Puneeth Chaganti  <punchagan@gmail.com>
 +
 +      * org.texi (Include files): Document :minlevel.
 +
 +2010-12-11  Julien Danjou  <julien@danjou.info>
 +
 +      * org.texi (Categories): Document category icons.
 +
 +2010-12-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (noweb): Fix typo.
 +
 +2010-12-06  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * gnus.texi (Server Commands): Point to the rest of the server
 +      commands.
 +
 +2010-12-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Paging the Article): Note the reverse meanings of `C-u C-u
 +      g'.
 +
 +2010-12-02  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi (Archived Messages): Remove gnus-outgoing-message-group.
 +
 +2010-11-28  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Customizing the IMAP Connection): Note the new defaults.
 +      (Direct Functions): Note the STARTTLS upgrade.
 +
 +2010-11-27  Glenn Morris  <rgm@gnu.org>
            James Clark  <none@example.com>
  
        * nxml-mode.texi (Introduction): New section.
  
 -2010-11-10  Glenn Morris  <rgm@gnu.org>
 +2010-11-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Server Commands): Document gnus-server-show-server.
 +
 +2010-11-20  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Sync with Tramp 2.2.0.
 +
 +      * trampver.texi: Update release number.
 +
 +2010-11-19  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (TeX and LaTeX Language Modes, Predefined Units):
 +      Mention that the TeX specific units won't use the `tex' prefix
 +      in TeX mode.
 +
 +2010-11-18  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (Misc Article): Document gnus-inhibit-images.
 +
 +2010-11-17  Glenn Morris  <rgm@gnu.org>
  
        * edt.texi: Remove information about Emacs 19.
  
 -2010-11-05  Michael Albinus  <michael.albinus@gmx.de>
 +2010-11-17  Michael Albinus  <michael.albinus@gmx.de>
  
        * trampver.texi: Update release number.
  
 -2010-11-03  Jay Belanger  <jay.p.belanger@gmail.com>
 +2010-11-12  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (Article Washing): Fix typo.
 +
 +2010-11-11  Noorul Islam  <noorul@noorul.com>
 +
 +      * org.texi: Fix typo.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Using capture): Explain that refiling is
 +      sensitive to cursor position.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Images and tables): Add cross reference to link section.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi: Document the <c> cookie.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi: multi-line header arguments :PROPERTIES: :ID:
 +      b77c8857-6c76-4ea9-8a61-ddc2648d96c4 :END:.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (CSS support): Document :HTML_CONTAINER_CLASS: property.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Project alist): Mention that this is a property list.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Setting up the staging area): Document that
 +      file names remain visible when encrypting the MobileOrg files.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Setting up the staging area): Document which
 +      versions are needed for encryption.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (noweb): Update :noweb documentation to
 +      reflect the new "tangle" argument.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (Batch execution): Improve tangling script in
 +      documentation.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Handling links):
 +      (In-buffer settings): Document inlining images on startup.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Setting up the staging area): Document use of
 +      crypt password.
 +
 +2010-11-11  David Maus  <dmaus@ictsoc.de>
 +
 +      * org.texi (Template expansion): Add date related link type escapes.
 +
 +2010-11-11  David Maus  <dmaus@ictsoc.de>
 +
 +      * org.texi (Template expansion): Add mew in table for link type
 +      escapes.
 +
 +2010-11-11  David Maus  <dmaus@ictsoc.de>
 +
 +      * org.texi (Template expansion): Fix typo in link type escapes.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (Structure of code blocks): Another documentation tweak.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (Structure of code blocks): Documentation tweak.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (Structure of code blocks):
 +      Update documentation to mention inline code block syntax.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (comments): Improve wording.
 +
 +2010-11-11  Eric Schulte  <schulte.eric@gmail.com>
 +
 +      * org.texi (comments): Document the new :comments header arguments.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Installation): Remove the special
 +      installation instructions for XEmacs.
 +
 +2010-11-11  Jambunathan K  <kjambunathan@gmail.com>  (tiny change)
 +
 +      * org.texi (Easy Templates): New section.  Documents quick
 +      insertion of empty structural elements.
 +
 +2010-11-11  Noorul Islam  <noorul@noorul.com>
 +
 +      * org.texi: Fix doc.
 +
 +2010-11-11  Jambunathan K  <kjambunathan@gmail.com>  (tiny change)
 +
 +      * org.texi (The date/time prompt): Document specification
 +      of time ranges.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Internal links): Document the changes in
 +      internal links.
 +
 +2010-11-11  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (Agenda commands): Document the limitation for
 +      the filter preset - it can only be used for an entire agenda
 +      view, not in an individual block in a block agenda.
 +
 +2010-11-11  Eric S Fraga  <e.fraga@ucl.ac.uk>
 +
 +      * org.texi (iCalendar export): Document alarm creation.
 +
 +2010-11-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbus.texi (Type Conversion): Introduce `:unix-fd' type mapping.
 +
 +2010-11-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Article Washing): Document gnus-article-treat-non-ascii.
 +
 +2010-11-09  Jay Belanger  <jay.p.belanger@gmail.com>
  
        * calc.texi: Use emacsver.texi to determine Emacs version.
  
 -2010-10-30  Glenn Morris  <rgm@gnu.org>
 +2010-11-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Customizing the IMAP Connection): Remove nnir mention,
 +      since that works by default.
 +
 +2010-11-03  Kan-Ru Chen  <kanru@kanru.info>  (tiny change)
 +
 +      * gnus.texi (Customizing the IMAP Connection): Document
 +      `nnimap-expunge' and remove `nnimap-expunge-inbox' from example.
 +
 +2010-11-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Remote shell setup): New item "Interactive shell
 +      prompt".  Reported by Christian Millour <cm@abtela.com>.
 +      (Remote shell setup, Remote processes): Use @code{} for
 +      environment variables.
 +
 +2010-11-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * ediff.texi (Quick Help Commands, Miscellaneous):
 +      * gnus.texi (Agent Variables, Configuring nnmairix): Spelling fix.
 +
 +2010-10-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Paging the Article): Document C-u g/C-u C-u g.
 +
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
  
        * mh-e.texi (Preface, From Bill Wohler): Change 23 to past tense.
  
 -2010-10-29  Glenn Morris  <rgm@gnu.org>
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
  
        * cc-mode.texi: Remove reference to defunct viewcvs URL.
  
 -2010-10-22  Juanma Barranquero  <lekktu@gmail.com>
 +2010-10-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Client-Side IMAP Splitting): Mention
 +      nnimap-unsplittable-articles.
 +
 +2010-10-29  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi (Finding the News): Remove references to obsoletes
 +      variables `gnus-nntp-server' and `gnus-secondary-servers'.
 +
 +2010-10-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (MAKEINFO): Add -I$(emacsdir).
 +      (ENVADD): Remove extra -I$(emacsdir), included in $(MAKEINFO).
 +      ($(infodir)/efaq): Remove -I$(emacsdir), included in $(MAKEINFO).
 +      ($(infodir)/calc, calc.dvi): Depend on $(emacsdir)/emacsver.texi.
 +
 +2010-10-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (MAKEINFO, ENVADD): Add $emacsdir to include path.
 +      (($(infodir)/calc, calc.dvi, calc.pdf): Depend on emacsver.texi.
 +      ($(infodir)/efaq): Remove -I option now in $MAKEINFO.
 +
 +2010-10-25  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.texi (Mail-mode integration): Add alternative key bindings
 +      for epa-mail commands; escape comma.
 +      Don't use the word "PGP", since it is a non-free program.
 +
 +2010-10-24  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi: Use emacsver.texi to determine Emacs version.
 +
 +2010-10-24  Juanma Barranquero  <lekktu@gmail.com>
  
        * gnus.texi (Group Parameters, Buttons): Fix typos.
  
 +2010-10-22  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * gnus.texi (Subscription Commands): Mention that you can also
 +      subscribe to new groups via the Server buffer, which is probably more
 +      convenient when subscribing to many groups.
 +
 +2010-10-21  Julien Danjou  <julien@danjou.info>
 +
 +      * message.texi (Message Headers): Allow message-default-headers to be a
 +      function.
 +
 +2010-10-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-news.texi: Mention new archive defaults.
 +
 +2010-10-21  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (RSS): Remove nnrss-wash-html-in-text-plain-parts.
 +
 +2010-10-20  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (HTML): Document the function value of
 +      gnus-blocked-images.
 +      (Article Washing): shr and gnus-w3m, not the direct function names.
 +
 +2010-10-20  Julien Danjou  <julien@danjou.info>
 +
 +      * emacs-mime.texi (Flowed text): Add a note about mml-enable-flowed
 +      variable.
 +
 +2010-10-19  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Customizing the IMAP Connection): The port strings are
 +      strings.
 +      (Document Groups): Mention git.
 +
 +2010-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-coding.texi (Gnus Maintainance Guide): Update to mention Emacs
 +      bzr/Gnus git sync.
 +
 +2010-10-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * auth.texi (GnuPG and EasyPG Assistant Configuration): Fix last
 +      change.
 +
 +2010-10-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * auth.texi (GnuPG and EasyPG Assistant Configuration): Fix up the
 +      @item syntax for in-Emacs makeinfo.
 +
 +2010-10-13  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * auth.texi (GnuPG and EasyPG Assistant Configuration): Fix syntax and
 +      trim sentence.
 +
 +2010-10-12  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.texi (Caching Passphrases):
 +      * auth.texi (GnuPG and EasyPG Assistant Configuration): Clarify
 +      some configurations require to set up gpg-agent.
 +
 +2010-10-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (.texi.dvi): Remove unnecessary suffix rule.
 +
 +2010-10-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Spam Package Introduction): Mention `$'.
 +
 +2010-10-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (emacsdir): New variable.
 +      ($(infodir)/efaq, faq.dvi): Depend on emacsver.texi.
 +      (ENVADD, $(infodir)/efaq): Add -I$(emacsdir).
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (mostlyclean): Delete *.toc.
 +
 +      * Makefile.in: Use $< in rules.
 +
 +      * Makefile.in (maintainer-clean): Remove harmless, long-standing error.
 +
 +      * Makefile.in ($(infodir)): Delete rule.
 +      (mkinfodir): New.  Use it in all the info rules, rather than depending
 +      on infodir.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * gnus.texi (Article Washing): Fix previous change.
 +
 +      * Makefile.in (emacsdir): New variable.
 +      ($(infodir)/efaq): Pass -I $(emacsdir) to makeinfo.
 +      Depend on emacsver.texi.
 +
 +      * faq.texi (VER): Replace with EMACSVER from emacsver.texi.
 +
 +      * Makefile.in (.PHONY): Declare info, dvi, pdf and the clean rules.
 +
 +2010-10-08  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi: Add mm-shr.
 +
 +2010-10-08  Ludovic Courtès  <ludo@gnu.org>
 +
 +      * gnus.texi (Finding the Parent, The Gnus Registry)
 +      (Registry Article Refer Method): Update docs for nnregistry.el.
 +
 +2010-10-08  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * auth.texi (Help for users)
 +      (GnuPG and EasyPG Assistant Configuration): Update docs.
 +
  2010-10-08  Glenn Morris  <rgm@gnu.org>
  
        * cl.texi (Organization, Installation, Old CL Compatibility):
        Deprecate cl-compat for new code.
 -
 -2010-10-07  Glenn Morris  <rgm@gnu.org>
 +      (Usage, Installation): Remove outdated information.
  
        * eudc.texi (CCSO PH/QI, LDAP Requirements): Remove old information.
  
 +2010-10-07  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (Gravatars): Document gnus-gravatar-too-ugly.
 +
 +2010-10-06  Julien Danjou  <julien@danjou.info>
 +
 +      * sieve.texi (Manage Sieve API): Document sieve-manage-authenticate.
 +
 +      * message.texi (PGP Compatibility): Remove reference to gpg-2comp,
 +      broken link.
 +
 +      * gnus-faq.texi (FAQ 8-3): Remove references to my.gnus.org.
 +
 +      * gnus.texi (Comparing Mail Back Ends): Remove broken link and allusion
 +      to ReiserFS.
 +
 +      * gnus-faq.texi (FAQ 5-5): Fix Flyspell URL.
 +      (FAQ 7-1): Fix getmail URL.
 +
 +2010-10-06  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.texi (Caching Passphrases): New section.
 +
  2010-10-06  Glenn Morris  <rgm@gnu.org>
  
 -      * cl.texi (Usage, Installation): Remove outdated information.
 +      * Makefile.in (SHELL): Set it.
 +      (info): Move the mkdir dependency to the individual info files.
 +      (mostlyclean): Tidy up.
 +      (clean): Only delete the specific dvi and pdf files.
 +      (maintainer-clean): Be more restrictive in what we delete.
 +      ($(infodir)): Add parallel build workaround.
 +
 +2010-10-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Misc Article): Document gnus-widen-article-window.
 +
 +2010-10-03  Julien Danjou  <julien@danjou.info>
 +
 +      * emacs-mime.texi (Display Customization): Update
 +      mm-inline-large-images documentation and add documentation for
 +      mm-inline-large-images-proportion.
 +
 +2010-10-03  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Frequently Asked Questions): Mention
 +      remote-file-name-inhibit-cache.
 +
 +2010-10-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Splitting Mail): Fix @xref syntax.
 +      (Splitting Mail): Really fix the @ref syntax.
 +
 +2010-10-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Splitting Mail): Mention the new fancy splitting
 +      function.
 +      (Article Hiding): Add google banner example.  Suggested by Benjamin
 +      Xu.
 +
 +2010-09-30  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnus.texi (Spam Package Configuration Examples, SpamOracle): Remove
 +      nnimap-split-rule from examples.
 +
 +2010-09-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Mail Source Specifiers): Remove webmail.el mentions.
 +      (NNTP): Document nntp-server-list-active-group.  Suggested by Barry
 +      Fishman.
 +      (Client-Side IMAP Splitting): Add nnimap-split-fancy.
 +
 +2010-09-30  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi (Gravatars): Fix documentation about
 +      gnu-gravatar-properties.
 +
 +2010-09-29  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.texi (Bug Reports): New section.
 +
 +2010-09-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (top_srcdir): Remove unused variable.
 +
 +2010-09-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Using IMAP): Remove the @acronyms from the headings.
 +      (Client-Side IMAP Splitting): Document 'default.
 +
 +2010-09-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Customizing the IMAP Connection): Document
 +      nnimap-fetch-partial-articles.
 +
 +2010-09-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus-news.texi: Mention nnimap-inbox.
 +
 +      * gnus.texi (Picons): Document gnus-picon-inhibit-top-level-domains.
 +
 +2010-09-26  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi (Oort Gnus): Remove mention of ssl.el.
 +
 +2010-09-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Security): Remove gpg.el mention.
 +
 +2010-09-26  Andreas Seltenreich  <seltenreich@gmx.de>
 +
 +      * gnus.texi (Browse Foreign Server): New variable
 +      gnus-browse-subscribe-newsgroup-method.
 +
 +      * gnus-news.texi: Mention it.
 +
 +2010-09-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (NoCeM): Removed.
 +      (Startup Variables): No jingle.
 +
 +2010-09-25  Ulrich Mueller  <ulm@gentoo.org>
 +
 +      * woman.texi (Interface Options): xz compression is now supported.
 +
 +2010-09-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Article Commands): Document gnus-fetch-partial-articles.
 +      (Unavailable Servers): Document gnus-server-copy-server.
 +      (Using IMAP): Document the new nnimap.
 +
 +2010-09-25  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi (Customizing Articles): Remove gnus-treat-translate.
 +
 +2010-09-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * url.texi (Disk Caching): Tweak previous change.
 +
 +2010-09-24  Julien Danjou  <julien@danjou.info>
 +
 +      * url.texi (Disk Caching): Mention url-cache-expire-time,
 +      url-cache-expired, and url-fetch-from-cache.
 +
 +2010-09-24  Julien Danjou  <julien@danjou.info>
 +
 +      * gnus.texi: Add Gravatars.
 +
 +2010-09-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Startup Variables): Mention gnus-use-backend-marks.
 +
 +2010-09-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Expunging mailboxes): Update name of the expunging
 +      command.
 +
 +2010-09-20  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * emacs-mime.texi (rfc2047): Update description for
 +      rfc2047-encode-parameter.
 +
 +2010-09-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Inline methods): Remove "ssh1_old", "ssh2_old" and
 +      "fish" methods.
 +      (External methods): Remove "scp1_old" and "scp2_old" methods.
 +
 +2010-09-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi: Remove Japanese manual.  Fix typo.
 +
 +      * trampver.texi: Update release number.  Remove japanesemanual.
 +
 +2010-09-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * org.texi: Restore clobbered changes (copyright years, untabify).
 +
 +2010-09-04  Julien Danjou  <julien@danjou.info>  (tiny change)
 +
 +      * gnus.texi (Adaptive Scoring): Fix typo.
 +
 +2010-09-03  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Article Display): Document gnus-html-show-images.
 +
 +2010-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * cl.texi (Basic Setf): Remove x-get-cut-buffer and x-get-cutbuffer.
 +
 +2010-09-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (HTML): Document gnus-max-image-proportion.
 +
 +2010-08-31  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (HTML): Document gnus-blocked-images.
 +
 +      * message.texi (Wide Reply): Document message-prune-recipient-rules.
 +
 +2010-08-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Summary Mail Commands): Note that only the addresses from
 +      the first message are used for wide replies.
 +      (Changing Servers): Remove documentation on gnus-change-server and
 +      friends, since it's been removed.
 +
 +2010-08-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Drafts): Mention B DEL.
 +
 +2010-08-29  Tim Landscheidt  <tim@tim-landscheidt.de>  (tiny change)
 +
 +      * gnus.texi (Delayed Articles): Mention that the Date header is the
 +      original one, even if you delay.
 +
 +2010-08-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnus.texi (Asynchronous Fetching): Document
 +      gnus-async-post-fetch-function.
 +      (HTML): Made into its own section.
  
  2010-08-26  Michael Albinus  <michael.albinus@gmx.de>
  
  
        * trampver.texi: Update release number.
  
 -2010-08-01  Juanma Barranquero  <lekktu@gmail.com>
 +2010-08-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbus.texi (Alternative Buses): New chapter.
 +
 +2010-08-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * cl.texi (Mapping over Sequences): Rename mapc => cl-mapc.
 +
 +2010-08-09  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Customizing Calc): Rearrange description of new
 +      variables to match the presentation of other variables.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
  
        * org.texi (Footnotes, Tables in HTML export): Fix typos.
  
 -2010-07-23  Chong Yidong  <cyd@stupidchicken.com>
 +2010-08-08  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Making Selections, Selecting Subformulas)
 +      (Customizing Calc): Mention how to use faces to emphasize selected
 +      sub-formulas.
 +
 +2010-08-05  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (External packages): File attributes cache flushing
 +      for asynchronous processes.
 +
 +2010-08-01  Alan Mackenzie  <acm@muc.de>
 +
 +      Enhance the manual for the latest Java Mode.
 +
 +      * cc-mode.texi (Syntactic Symbols): New symbols annotation-top-cont and
 +      annotation-var-cont.
 +      (Java Symbols): Page renamed from Anonymous Class Symbol.  Document the
 +      two new symbols.
 +
 +2010-07-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Traces and Profiles): Describe verbose level 9.
 +
 +2010-07-27  Chong Yidong  <cyd@stupidchicken.com>
  
        * nxml-mode.texi (Limitations): Remove obsolete discussion (Bug#6708).
  
 +2010-07-19  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * org.texi: Fix typo in previous change (2010-07-19T09:47:27Z!carsten.dominik@gmail.com).
 +
 +2010-07-19  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi: Add macros to get plain quotes in PDF output.
 +      List additional contributors.
 +      (Capture): New section, replaces the section about remember.
 +      (Working With Source Code): New chapter, focused on documenting Org
 +      Babel.
 +      (Code evaluation security): New section.
 +      (MobileOrg): Document DropBox support.
 +      (TaskJuggler export): Document taskjuggler and Gantt chart support.
 +      (Special symbols): Show how to display UTF8 characters for entities.
 +      (Global TODO list): Clarify the use of the "M" key and the differences
 +      to the "m" key.
 +      (RSS Feeds): Mention Atom feeds as well.
 +      (Setting tags): Remove paragraph about
 +      `org-complete-tags-always-offer-all-agenda-tags'.
 +
 +2010-07-17  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Inline methods): Remove remark about doubled "-t"
 +      argument.
 +      (Frequently Asked Questions): Recommend "sshx" and "scpx" for
 +      echoing shells.
 +
 +2010-07-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Inline methods): Remove "kludgy" phrase.
 +      (Filename Syntax): Describe port numbers.
 +
 +2010-07-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbus.texi (Top): Introduce Index.  Emphasize "nil" whereever
 +      forgotten.
 +      (Type Conversion): Precise conversion of natural numbers.
 +      (Errors and Events): Add "debugging" to concept index.  Add variable
 +      `dbus-debug'.
 +
 +2010-07-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbus.texi (Receiving Method Calls): Add optional argument
 +      EMITS-SIGNAL to `dbus-register-property'.
 +
  2010-06-27  Alex Schroeder  <alex@gnu.org>
  
        * nxml-mode.texi (Commands for locating a schema): Fix typo.
        * idlwave.texi (Load-Path Shadows):
        * org.texi (Handling links): Fix typos.
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +2010-06-07  Teodor Zlatanov  <tzz@lifelogs.com>
  
 -      * Version 23.2 released.
 +      * gnus.texi (Interactive): Explain effect of gnus-expert-user better.
  
 -2010-05-03  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +2010-05-26  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * eshell.texi (Built-ins): Describe, how to disable a built-in command
 +      by an alias.  (Bug#6226)
 +
 +2010-05-16  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Manipulating Vectors): Mention that vectors can
 +      be used to determine bins for `calc-histogram'.
 +
 +2010-05-13  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi: Remove "\turnoffactive" commands throughout.
 +
 +2010-05-08  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
  
        * url.texi (HTTP language/coding, Customization):
        * message.texi (Header Commands, Responses):
        * cl.texi (Argument Lists): Fix typos.
  
 -2010-04-18  Chong Yidong  <cyd@stupidchicken.com>
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * ede.texi (EDE Mode): Refer to init file rather than `.emacs'.  Note
 -      that Development menu is always available.
 +      * ede.texi (EDE Mode): Refer to init file rather than `.emacs'.
 +      Note that Development menu is always available.
        (Creating a project): Fix terminology.
        (Add/Remove files): Fix typo.
  
 -2010-04-17  Teodor Zlatanov  <tzz@lifelogs.com>
 +2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 23.2 released.
 +
 +2010-05-01  Daniel E. Doherty  <ddoherty03@gmail.com>  (tiny change)
 +
 +      * calc.texi (Tutorial): Use "^{\prime}" to indicate primes.
 +
 +2010-05-01  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * tramp.texi (Inline methods, Default Method):
 +      Mention `tramp-inline-compress-start-size'.
 +
 +2010-04-18  Teodor Zlatanov  <tzz@lifelogs.com>
  
        * gnus.texi (Gnus Versions, Oort Gnus): Mention the Git repo instead of
        the CVS repo.  Put the Git repo in the news section.
  
 -      * gnus-coding.texi (Gnus Maintainance Guide): Fixed title typo.
 +      * gnus-coding.texi (Gnus Maintainance Guide): Fix title typo.
        Removed some mentions of CVS.  Mention the new Git repo.
  
 -2010-04-15  Andreas Seltenreich  <seltenreich@gmx.de>
 +2010-04-18  Andreas Seltenreich  <seltenreich@gmx.de>
  
        * gnus.texi (Score File Format): Fix typo.  Reported by Štěpán Němec.
        (Mail Group Commands): Add index entry.
  
 -2010-04-15  Glenn Morris  <rgm@gnu.org>
 +2010-04-18  Glenn Morris  <rgm@gnu.org>
  
        * info.texi (Search Index): Mention Emacs's Info-virtual-index.
  
 -2010-03-14  Michael Albinus  <michael.albinus@gmx.de>
 +2010-04-18  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc.texi (Radix modes): Mention that the option prefix will
 +      turn on twos-complement mode.
 +      (Inverse and Hyperbolic Flags): Mention the Option flag.
 +
 +2010-04-15  Carsten Dominik  <carsten.dominik@gmail.com>
 +
 +      * org.texi (LaTeX and PDF export): Add a footnote about xetex.
 +      (LaTeX/PDF export commands): Rename and Move section.
 +      (Sectioning structure): Update.
 +      (References): New use case for field coordinates.
 +      (The export dispatcher): Rename from ASCII export.
 +      (Setting up the staging area): Document the availability of
 +      encryption for MobileOrg.
 +      (Images and tables): Document how to reference labels.
 +      (Index entries): New section.
 +      (Generating an index): New section.
 +      (Column width and alignment): Document that <N> now
 +      means a fixed width, not a maximum width.
 +      (Publishing options): Document the :email option.
 +      (Beamer class export): Fix bug in the BEAMER example.
 +      (Refiling notes): Document refile logging.
 +      (In-buffer settings): Document refile logging keywords.
 +      (Drawers): Document `C-c C-z' command.
 +      (Agenda commands): Mention the alternative key `C-c C-z'.
 +      (Special properties): Document the BLOCKED property.
 +      (The spreadsheet): Mention the formula editor.
 +      (References): Document field coordinates.
 +      (Publishing action): Correct the documentation for the
 +      publishing function.
 +      (The date/time prompt): Document that we accept dates
 +      like month/day/year.
 +      (Cooperation): Document the changes in table.el support.
 +      (Faces for TODO keywords, Faces for TODO keywords)
 +      (Priorities): Document the easy colors.
 +      (Visibility cycling): Document the new double prefix
 +      arg for `org-reveal'.
 +      (Cooperation): Remember.el is part of Emacs.
 +      (Clean view): Mention that `wrap-prefix' is also set by
 +      org-indent-mode.
 +      (Agenda commands): Add information about prefix args to
 +      scheduling and deadline commands.
 +      (Search view): Point to the docstring of
 +      `org-search-view' for more details.
 +      (Agenda commands): Document that `>' prompts for a date.
 +      (Setting tags): Document variable
 +      org-complete-tags-always-offer-all-agenda-tags.
 +      (Column attributes): Cross-reference special properties.
 +
 +2010-04-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Synchronize with Tramp repository.
 +
 +      * tramp.texi (Auto-save and Backup): Remove reference to Emacs 21.
 +      (Frequently Asked Questions): Adapt supported (X)Emacs versions.  Adapt
 +      supported MS Windows versions.  Remove obsolete URL.  Use the $()
 +      syntax, texi2dvi reports errors with the backquotes.
 +
 +      * trampver.texi: Update release number.
 +
 +2010-04-01  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnus.texi (Finding the News): Add pointers to the Server buffer
 +      because it's essential.
 +
 +2010-03-31  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * gnus.texi (MIME Commands): Update description of
 +      gnus-article-browse-html-article.
 +
 +2010-03-27  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * auth.texi (Secret Service API): Add TODO node.
 +      (Help for users): Explain the new source options for `auth-sources'.
 +
 +2010-03-24  Michael Albinus  <michael.albinus@gmx.de>
  
        * trampver.texi: Update release number.
  
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
  2010-03-03  Chong Yidong  <cyd@stupidchicken.com>
  
        * faq.texi (Escape sequences in shell output): Note that ansi-color is
  2010-01-17  Michael Albinus  <michael.albinus@gmx.de>
  
        * tramp.texi (Frequently Asked Questions): Add GNU Emacs 23 and
 -      SXEmacs 22 to the supported systems.  New item for hung ssh sessions.
 +      SXEmacs 22 to the supported systems.  New item for hung ssh sessions.
  
  2010-01-17  Glenn Morris  <rgm@gnu.org>
  
        (Agenda commands): Document new bulk commands.
        (Plain lists): Document new behavior of
        `org-cycle-include-plain-lists'.
 -       Hyphenation only in TeX.
 +      Hyphenation only in TeX.
        (Clocking work time): Document the key to update effort
        estimates.
        (Clocking work time): Document the clock time display.
  2008-06-15  Reiner Steib  <Reiner.Steib@gmx.de>
  
        * gnus.texi (Mail Source Customization): Correct values of
 -       `mail-source-delete-incoming'.  Reported by Tassilo Horn.
 +      `mail-source-delete-incoming'.  Reported by Tassilo Horn.
        (Oort Gnus): Fix version comment for mml-dnd-protocol-alist.
  
  2008-06-14  Reiner Steib  <Reiner.Steib@gmx.de>
  
        * gnus-news.texi, gnus-coding.texi, sasl.texi: New files.
  
 -2007-10-28  Emanuele Giaquinta  <e.giaquinta@glauco.it>  (tiny change)
 -
 -      * gnus-faq.texi ([5.12]): Remove reference to discontinued service.
 -
  2007-10-28  Reiner Steib  <Reiner.Steib@gmx.de>
  
        * gnus.texi (Sorting the Summary Buffer): Remove
  
        * org.texi (Progress logging): New section.
  
 -2006-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 -
 -      * viper.texi (Viper Specials):
 -      * gnus.texi (Example Setup):
 -      * faq.texi (Backspace invokes help):
 -      * dired-x.texi (Optional Installation Dired Jump):
 -      * calc.texi (Defining Simple Commands): Use ;; instead of ;;; to better
 -      follow coding conventions.
 -
 -2006-05-18  Reiner Steib  <Reiner.Steib@gmx.de>
 -
 -      * gnus.texi (Saving Articles): Clarify gnus-summary-save-article-mail.
 -
  2006-06-06  Carsten Dominik  <dominik@science.uva.nl>
  
        * org.texi (ASCII export): Document indentation adaptation.
  
        * org.texi: Small typo fixes.
  
 +2006-05-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * viper.texi (Viper Specials):
 +      * gnus.texi (Example Setup):
 +      * faq.texi (Backspace invokes help):
 +      * dired-x.texi (Optional Installation Dired Jump):
 +      * calc.texi (Defining Simple Commands): Use ;; instead of ;;; to better
 +      follow coding conventions.
 +
  2006-05-29  Michael Albinus  <michael.albinus@gmx.de>
  
        * tramp.texi (Frequently Asked Questions): Disable zsh zle.
  
        * gnus.texi (Article Washing): Additions.
  
 -2006-01-08  Alex Schroeder  <alex@gnu.org>
 -
 -      * pgg.texi (Caching passphrase): Rewording.
 -
  2006-01-13  Carsten Dominik  <dominik@science.uva.nl>
  
        * org.texi (Agenda commands): Document tags command.
  
        * org.texi (FAQ): Document `org-table-tab-jumps-over-hlines'.
        (Agenda): Document commands `org-cycle-agenda-files' and
 -      `org-agenda-file-to-front'
 +      `org-agenda-file-to-front'.
        (Built-in table editor): Document `org-table-sort-lines'.
        (HTML formatting): Export of hand-formatted lists.
  
  
  2000-12-14  Dave Love  <fx@gnu.org>
  
 -      * Makefile.in (mostlyclean): Remove gnustmp.*
 +      * Makefile.in (mostlyclean): Remove gnustmp.*.
        (gnus.dvi): Change rule to remove @latex stuff.
  
  2000-10-19  Eric M. Ludlam  <zappo@ultranet.com>
  
  ;; Local Variables:
  ;; coding: utf-8
 -;; 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, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +  Copyright (C) 1993-1999, 2001-2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
  
    You should have received a copy of the GNU General Public License
    along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 -
 -;; arch-tag: 08b2903e-900c-4c72-a4a9-e76416a80803
diff --combined doc/misc/dired-x.texi
index f7c73237249c3696e7f2d09caee0c65806082d5f,2a49390041ac81222d9a886500f359fc26a115d2..cde39ff6a629aa1a0098efd818e255a7cf3d41ee
@@@ -10,8 -10,6 +10,8 @@@
  @setfilename ../../info/dired-x
  @settitle Dired Extra User's Manual
  
 +@include emacsver.texi
 +
  @iftex
  @finalout
  @end iftex
@@@ -19,8 -17,8 +19,8 @@@
  @comment %**end of header (This is for running Texinfo on a region.)
  
  @copying
 -Copyright @copyright{} 1994, 1995, 1999, 2001, 2002, 2003, 2004,
 -2005, 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +Copyright @copyright{} 1994-1995, 1999, 2001-2011
 +Free Software Foundation, Inc.
  
  @quotation
  Permission is granted to copy, distribute and/or modify this document
@@@ -70,7 -68,6 +70,7 @@@ developing GNU and promoting software f
  @ifnottex
  
  @node Top
 +@top Dired Extra
  
  @noindent
  This documents the ``extra'' features for GNU Emacs's Dired Mode that are
@@@ -82,7 -79,7 +82,7 @@@ provided by the file @file{dired-x.el}
  Based on @file{dired.texi} by Sebastian Kremer <sk@@thp.uni-koeln.de>
  
  @item
 -For @file{dired-x.el} as distributed with GNU Emacs 23.
 +For @file{dired-x.el} as distributed with GNU Emacs @value{EMACSVER}.
  
  @end itemize
  
@@@ -129,49 -126,75 +129,49 @@@ original @file{dired-x.el})
  @section Features
  @cindex Features
  
 -Some features provided by Dired Extra
 +Some features provided by Dired Extra:
  
  @enumerate
  @item
 -Omitting uninteresting files from Dired listing.
 -@itemize @bullet
 -@xref{Omitting Files in Dired}.
 -@end itemize
 +Omitting uninteresting files from Dired listing
 +(@pxref{Omitting Files in Dired}).
  @item
 -Local variables for Dired directories.
 -@itemize @bullet
 -@xref{Local Variables}.
 -@end itemize
 +Guessing shell commands in Dired buffers
 +(@pxref{Shell Command Guessing}).
  @item
 -Guessing shell commands in Dired buffers.
 -@itemize @bullet
 -@xref{Shell Command Guessing}.
 -@end itemize
 +Running Dired command in non-Dired buffers
 +(@pxref{Virtual Dired}).
  @item
 -Running Dired commands in non-Dired buffers.
 -@itemize @bullet
 -@xref{Virtual Dired}.
 -@end itemize
 +Finding a file mentioned in a buffer
 +(@pxref{Find File At Point}).
  @item
 -Finding a file mentioned in a buffer.
 -@itemize @bullet
 -@xref{Find File At Point}.
 -@end itemize
 -@item
 -Commands using file marking.
 -@itemize @bullet
 -@xref{Advanced Mark Commands}.
 -@end itemize
 +Commands using file marking
 +(@pxref{Advanced Mark Commands}).
  @end enumerate
  
  @noindent
  @file{dired-x.el} binds some functions to keys in Dired Mode (@pxref{Key
  Index}) and also binds @kbd{C-x C-j} and @kbd{C-x 4 C-j} @emph{globally} to
- @code{dired-jump} (@pxref{Miscellaneous Commands}).  It may also bind @kbd{C-x
- C-f} and @kbd{C-x 4 C-f} to @code{dired-x-find-file} and
- @code{dired-x-find-file-other-window}, respectively (@pxref{Find File At
- Point}).
+ @code{dired-jump} (@pxref{Miscellaneous Commands}).  Optionally, it
+ also binds @kbd{C-x C-f} and @kbd{C-x 4 C-f} to
+ @code{dired-x-find-file} and @code{dired-x-find-file-other-window},
respectively (@pxref{Find File At Point}).
  
  @node Technical Details, , Features, Introduction
  @section Technical Details
 -@cindex Redefined functions
 +@cindex Modified functions
  @cindex @file{dired-aux.el}
  
 -When loaded this code @emph{redefines} the following functions of GNU Emacs
 -from @file{dired.el}
 -
 -@itemize @bullet
 -@item
 -@code{dired-clean-up-after-deletion}
 -@item
 -@code{dired-find-buffer-nocreate}
 -@item
 -@code{dired-initial-position}
 -@end itemize
 -
 -@noindent
 -and the following functions from @file{dired-aux.el}
 -
 -@itemize @bullet
 -@item
 -@code{dired-add-entry}
 -@item
 -@code{dired-read-shell-command}
 -@end itemize
 +When @file{dired-x.el} is loaded, some standard Dired functions from
 +@file{dired.el} and @file{dired-aux.el} offer additional features.
 +@code{dired-add-entry} obeys Dired Omit mode (@pxref{Omitting Files in
 +Dired}), if it is active.  @code{dired-find-buffer-nocreate} and
 +@code{dired-initial-position} respect the value of
 +@code{dired-find-subdir} (@pxref{Miscellaneous Commands}).
 +@code{dired-clean-up-after-deletion} respects the value of
 +@code{dired-clean-up-buffers-too}.  @code{dired-read-shell-command} uses
 +@code{dired-guess-shell-command} (@pxref{Shell Command Guessing}) to
 +offer a smarter default command.
  
  @node Installation, Omitting Files in Dired, Introduction, Top
  @chapter Installation
@@@ -238,9 -261,22 +238,9 @@@ for these functions.  In your @file{.em
  @cindex Binding @code{dired-x-find-file}
  If you choose to have @file{dired-x.el} bind @code{dired-x-find-file} over
  @code{find-file} (@pxref{Find File At Point}), then you will need to set
 -@code{dired-x-hands-off-my-keys} and make a call to the function
 -@code{dired-x-bind-find-file} in the @code{dired-load-hook}:
 -
 -@example
 -(add-hook 'dired-load-hook
 -          (lambda ()
 -            (load "dired-x")
 -            ;; Bind dired-x-find-file.
 -            (setq dired-x-hands-off-my-keys nil)
 -            ;; Make sure our binding preference is invoked.
 -            (dired-x-bind-find-file)
 -            ))
 -@end example
 -
 -Alternatively, you can set the variable @emph{before} @file{dired-x.el} is
 -loaded
 +@code{dired-x-hands-off-my-keys}.  To do this, either set it
 +@emph{before} @file{dired-x.el} is loaded, or use @kbd{M-x customize-variable},
 +or call @code{dired-x-bind-find-file} after changing the value.
  
  @example
  (add-hook 'dired-load-hook
@@@ -336,25 -372,27 +336,25 @@@ inside your @code{dired-mode-hook} to h
  @emph{every} Dired buffer (@pxref{Installation}).  You can then use @kbd{M-o} to
  unomit in that buffer.
  
 -To enable omitting automatically only in certain directories one can use Dired
 -Local Variables and put
 +To enable omitting automatically only in certain directories you can add
 +a directory local setting
 +(@pxref{Directory Variables,,,emacs,The Gnu Emacs manual}) for Dired mode
  
  @example
 -Local Variables:
 -dired-omit-mode: t
 -End:
 +((dired-mode . ((dired-omit-mode . t))))
  @end example
  
  @noindent
 -into a file @file{.dired} (the default value of
 -@code{dired-local-variables-file}) in that directory (@pxref{Local Variables}).
 +to a @file{.dir-locals.el} file in that directory.
  
  @table @code
  @findex dired-omit-here-always
  @item dired-omit-here-always
  
  This is an interactive function that creates a local variables file exactly
 -like the example above (if it does not already exist) in the file
 -@code{dired-local-variables-file} in the current directory and then refreshes
 -the directory listing (@pxref{Local Variables}).
 +like the example above (if it does not already exist) in the
 +@code{dir-locals-file} file in the current directory and then refreshes
 +the directory listing.
  @end table
  
  @vindex dired-omit-files
@@@ -473,6 -511,7 +473,6 @@@ Loading @file{dired-x.el} will install 
  call @code{dired-extra-startup}, which in turn calls @code{dired-omit-startup}
  in your @code{dired-mode-hook}.
  
 -@c FIXME does the standard dir-locals mechanism obsolete this?
  @node Local Variables, Shell Command Guessing, Omitting Files in Dired, Top
  @chapter Local Variables for Dired Directories
  
  @vindex dired-local-variables-file
  @vindex dired-enable-local-variables
  @noindent
 -When Dired visits a directory, it looks for a file whose name is the value of
 -variable @code{dired-local-variables-file} (default: @file{.dired}).  If such
 -a file is found, Dired will temporarily insert it into the Dired buffer and
 -run @code{hack-local-variables}.
 +This Dired-X feature is obsolete as of Emacs 24.1.  The standard Emacs
 +directory local variables mechanism (@pxref{Directory
 +Variables,,,emacs,The Gnu Emacs manual}) replaces it.  For an example of
 +the new mechanims, @pxref{Omitting Variables}.
 +
 +When Dired visits a directory, it looks for a file whose name is the
 +value of variable @code{dired-local-variables-file} (default: @file{.dired}).
 +If such a file is found, Dired will temporarily insert it into the Dired
 +buffer and run @code{hack-local-variables}.
  
  @noindent
  For example, if the user puts
@@@ -514,7 -548,7 +514,7 @@@ omitted automaticall
  @noindent
  You can set @code{dired-local-variables-file} to @code{nil} to suppress this.
  The value of @code{dired-enable-local-variables} controls if and how these
- local variables are read.  This variable exists so that if may override the
+ local variables are read.  This variable exists so that it may override the
  default value of @code{enable-local-variables}.
  
  @noindent
@@@ -538,10 -572,12 +538,10 @@@ into the Dired buffer and run @code{hac
  @item dired-enable-local-variables
  Default: @code{t}
  
 -Controls the use of local-variables lists in Dired.  The value can be @code{t},
 -@code{nil}, or something else.  A value of @code{t} means local-variables
 -lists are obeyed in the @code{dired-local-variables-file}; @code{nil} means
 -they are ignored; anything else means query.  This variable temporarily
 -overrides the value of @code{enable-local-variables} when the Dired Local
 -Variables are hacked.
 +Controls the use of local-variables lists in Dired.  This variable
 +temporarily overrides the value of @code{enable-local-variables} when
 +the Dired Local Variables are hacked.  It takes the same values as that
 +variable.  A value of @code{nil} means to ignore any Dired Local Variables.
  @end table
  
  @node Shell Command Guessing, Virtual Dired, Local Variables, Top
@@@ -880,8 -916,8 +880,8 @@@ A general mechanism is provided for spe
  directory in special major modes:
  
  @table @code
 -@item default-directory-alist
 -@vindex default-directory-alist
 +@item dired-default-directory-alist
 +@vindex dired-default-directory-alist
  Default: @code{((dired-mode . (dired-current-directory)))}
  
  Alist of major modes and their notion of @code{default-directory}, as a
@@@ -892,7 -928,7 +892,7 @@@ in favor of @code{default-directory}
  @findex dired-default-directory
  Use this function like you would use the variable
  @code{default-directory}, except that @code{dired-default-directory}
 -also consults the variable @code{default-directory-alist}.
 +also consults the variable @code{dired-default-directory-alist}.
  @end table
  
  @node Find File At Point, Miscellaneous Commands, Multiple Dired Directories, Top
@@@ -1040,12 -1076,13 +1040,12 @@@ file (assumed to be a UNIX mail folder)
  
  @vindex dired-vm-read-only-folders
  If you give this command a prefix argument, it will visit the folder
 -read-only.  This only works in VM 5, not VM 4.
 +read-only.
  
  If the variable @code{dired-vm-read-only-folders} is @code{t},
 -@code{dired-vm} will
 -visit all folders read-only.  If it is neither @code{nil} nor @code{t}, e.g.,
 -the symbol @code{if-file-read-only}, only files not writable by you are
 -visited read-only.  This is the recommended value if you run VM 5.
 +@code{dired-vm} will visit all folders read-only.  If it is neither
 +@code{nil} nor @code{t}, e.g., the symbol @code{if-file-read-only}, only
 +files not writable by you are visited read-only.
  
  @vindex dired-bind-vm
  If the variable @code{dired-bind-vm} is @code{t}, @code{dired-vm} will be bound
@@@ -1136,3 -1173,7 +1136,3 @@@ enhancement, then please use @kbd{M-x r
  @printindex vr
  
  @bye
 -
 -@ignore
 -   arch-tag: 201727aa-9318-4c74-a0d7-4f51c550c4de
 -@end ignore
diff --combined doc/misc/edt.texi
index 377bb6ee8c57e7d54628b83f937ef1da21427a85,68c2db733618943f9a6d15f80e1ee82562b9b07f..8f9f8fc03a2f66deb928ef3b71e091ba41b5a681
@@@ -5,7 -5,8 +5,7 @@@
  @copying
  This file documents the EDT emulation package for Emacs.
  
 -Copyright @copyright{} 1986, 1992, 1994, 1995, 1999, 2000, 2001, 2002,
 -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +Copyright @copyright{} 1986, 1992, 1994-1995, 1999-2011
  Free Software Foundation, Inc.
  
  @quotation
@@@ -87,7 -88,7 +87,7 @@@ informing you that the emulation has be
  active''.
  
     You can have the EDT Emulation start up automatically, each time you
- initiate a GNU Emacs session, by adding the following line to your
+ initiate an Emacs session, by adding the following line to your
  @file{.emacs} file:
  
  @example
@@@ -218,7 -219,7 +218,7 @@@ user quits without saving those buffers
  
  @item
  Emulate EDT Keypad Mode commands closely so that current EDT users will
- find that it easy and comfortable to use GNU Emacs with a small learning
+ find that it easy and comfortable to use Emacs with a small learning
  curve.
  
  @item
@@@ -237,7 -238,7 +237,7 @@@ Provide an easy way to restore @strong{
  just as they existed before the EDT emulation was first invoked.
  
  @item
- Support GNU Emacs 19 and higher.  XEmacs 19, and above, is also supported.
+ Support Emacs and XEmacs 19 and higher.
  
  @item
  Supports highlighting of marked text within the EDT emulation on all
@@@ -285,13 -286,13 +285,13 @@@ apply to you
  @node Starting emulation
  @chapter How to Get Started
  
- Start up GNU Emacs and enter @kbd{M-x edt-emulation-on} to begin the
+ Start up Emacs and enter @kbd{M-x edt-emulation-on} to begin the
  emulation.  After initialization is complete, the following message will
  appear below the status line informing you that the emulation has been
  enabled: ``Default EDT keymap active''.
  
  You can have the EDT Emulation start up automatically, each time you
- initiate a GNU Emacs session, by adding the following line to your
+ initiate an Emacs session, by adding the following line to your
  @file{.emacs} file:
  
  @example
@@@ -306,7 -307,7 +306,7 @@@ in the EDT Default Mode)
  It is easy to customize key bindings in the EDT Emulation
  (@pxref{Customizing}).  Customizations are placed in a file called
  @file{edt-user.el}.  The Emacs @file{etc/} directory contains an
- example.  If @file{edt-user.el} is found in your GNU Emacs load path
+ example.  If @file{edt-user.el} is found in your Emacs load path
  during EDT Emulation initialization, then the following message will
  appear below the status line indicating that the emulation has been
  enabled, enhanced by your own customizations: ``User EDT custom keymap
@@@ -321,8 -322,8 +321,8 @@@ restores the original key bindings in e
  emulation.
  
  Emacs binds keys to @acronym{ASCII} control characters and so does the
- real EDT.  Where EDT key bindings and GNU Emacs key bindings conflict,
- the default GNU Emacs key bindings are retained by the EDT emulation by
+ real EDT.  Where EDT key bindings and Emacs key bindings conflict,
+ the default Emacs key bindings are retained by the EDT emulation by
  default.  If you are a diehard EDT user you may not like this.  The
  @ref{Control keys} section explains how to change this so that the EDT
  bindings to @acronym{ASCII} control characters override the default
@@@ -364,7 -365,7 +364,7 @@@ older SunOS release configured with a S
  @example
  ! File:  .xmodmaprc
  !
- ! Set up Sun Type 5 keypad for use with the GNU Emacs EDT Emulation
+ ! Set up Sun Type 5 keypad for use with the Emacs EDT Emulation
  !
  keycode  53 = KP_Divide
  keycode  54 = KP_Multiply
@@@ -436,7 -437,7 +436,7 @@@ things up nicely
  @example
  ! File:  .xmodmaprc
  !
- ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation
+ ! Set up PC keypad under GNU/Linux for the Emacs EDT Emulation
  !
  clear  mod2
  keycode  77 = F12
@@@ -518,7 -519,7 +518,7 @@@ assign Num_Lock back to mod2
  @example
  ! File:  .xmodmaprc
  !
- ! Set up PC keypad under GNU/Linux for the GNU Emacs EDT Emulation
+ ! Set up PC keypad under GNU/Linux for the Emacs EDT Emulation
  !
  clear  mod2
  keycode  77 = F12
@@@ -541,7 -542,7 +541,7 @@@ In general, you will find that this emu
  but not all, of EDT's most used Keypad Mode editing functions and
  behavior.  It is not perfect, but most EDT users who have tried the
  emulation agree that it is quite good enough to make it easy for
- die-hard EDT users to move over to using GNU Emacs.
+ die-hard EDT users to move over to using Emacs.
  
  Here's a list of the most important differences between EDT and this GNU
  Emacs EDT Emulation.  The list is short but you must be aware of these
@@@ -783,7 -784,7 +783,7 @@@ terminals on the same system, you need 
  @end ignore
  
  First, you need to have your own private lisp directory, say
- @file{~/lisp}, and you should add it to the GNU Emacs load path.
+ @file{~/lisp}, and you should add it to the Emacs load path.
  
  @strong{Please note:} A few sites have different load-path requirements,
  so the above directions may need some modification if your site has such
@@@ -898,8 -899,8 +898,8 @@@ Here are some examples
  @node Control keys
  @section Enabling EDT Control Key Sequence Bindings
  
- Where EDT key bindings and GNU Emacs key bindings conflict, the default
GNU Emacs key bindings are retained by default.  Some diehard EDT users
+ Where EDT key bindings and Emacs key bindings conflict, the default
+ Emacs key bindings are retained by default.  Some diehard EDT users
  may not like this.  So, if the variable
  @code{edt-use-EDT-control-key-bindings} is set to true in a user's
  @file{.emacs} file, then the default EDT Emulation mode will enable most
diff --combined doc/misc/erc.texi
index 463a14f08d2ef14adc6004737eb46b4afff53870,aa7cb893fd7756c2aaf4a8d41827f9f0512fb7a6..b46748a08f9351579632ea8b772ccf30aed0829c
@@@ -8,7 -8,7 +8,7 @@@
  @copying
  This manual is for ERC version 5.3.
  
 -Copyright @copyright{} 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +Copyright @copyright{} 2005-2011
  Free Software Foundation, Inc.
  
  @quotation
@@@ -36,7 -36,7 +36,7 @@@ and modified without restriction
  @titlepage
  @title ERC manual
  @subtitle a full-featured IRC client
- @subtitle for GNU Emacs and XEmacs
+ @subtitle for Emacs and XEmacs
  
  @c The following two commands
  @c start the copyright page.
@@@ -1061,3 -1061,7 +1061,3 @@@ We switched to using git for our versio
  @printindex cp
  
  @bye
 -
 -@ignore
 -   arch-tag: cf9cfaff-fc12-4297-ad15-ec2493002b1e
 -@end ignore
diff --combined doc/misc/gnus.texi
index f990ee69a08cb1869716157df84a3b21ad45b14f,a3b5ddde4a1d5b9837e1c09700028b0326577101..b55452cfa8276b5232eab037e0f3b50e8e846790
@@@ -1,7 -1,5 +1,7 @@@
  \input texinfo
  
 +@include gnus-overrides.texi
 +
  @setfilename ../../info/gnus
  @settitle Gnus Manual
  @syncodeindex fn cp
@@@ -11,7 -9,8 +11,7 @@@
  @documentencoding ISO-8859-1
  
  @copying
 -Copyright @copyright{} 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
 -2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 +Copyright @copyright{} 1995-2011 Free Software Foundation, Inc.
  
  @quotation
  Permission is granted to copy, distribute and/or modify this document
@@@ -331,12 -330,7 +331,12 @@@ developing GNU and promoting software f
  
  
  @titlepage
 +@ifset WEBHACKDEVEL
 +@title Gnus Manual (DEVELOPMENT VERSION)
 +@end ifset
 +@ifclear WEBHACKDEVEL
  @title Gnus Manual
 +@end ifclear
  
  @author by Lars Magne Ingebrigtsen
  @page
@@@ -413,7 -407,6 +413,7 @@@ This manual corresponds to Gnus v5.1
  * Composing Messages::       Information on sending mail and news.
  * Select Methods::           Gnus reads all messages from various select methods.
  * Scoring::                  Assigning values to articles.
 +* Searching::                Mail and News search engines.
  * Various::                  General purpose settings.
  * The End::                  Farewell and goodbye.
  * Appendices::               Terminology, Emacs intro, @acronym{FAQ}, History, Internals.
@@@ -435,6 -428,7 +435,6 @@@ Other related manual
  Starting Gnus
  
  * Finding the News::            Choosing a method for getting news.
 -* The First Time::              What does Gnus do the first time you start it?
  * The Server is Down::          How can I read my mail then?
  * Slave Gnusae::                You can have more than one Gnus active at a time.
  * Fetching a Group::            Starting Gnus just to read a group.
@@@ -595,7 -589,7 +595,7 @@@ Article Treatmen
  * Article Buttons::             Click on URLs, Message-IDs, addresses and the like.
  * Article Button Levels::       Controlling appearance of buttons.
  * Article Date::                Grumble, UT!
 -* Article Display::             Display various stuff---X-Face, Picons, Smileys
 +* Article Display::             Display various stuff---X-Face, Picons, Smileys, Gravatars
  * Article Signature::           What is a signature?
  * Article Miscellanea::         Various other stuff.
  
@@@ -635,10 -629,10 +635,10 @@@ Select Method
  
  * Server Buffer::               Making and editing virtual servers.
  * Getting News::                Reading USENET news with Gnus.
 +* Using IMAP::                  Reading mail from @acronym{IMAP}.
  * Getting Mail::                Reading your personal mail with Gnus.
  * Browsing the Web::            Getting messages from a plethora of Web sources.
 -* IMAP::                        Using Gnus as a @acronym{IMAP} client.
 -* Other Sources::               Reading directories, files, SOUP packets.
 +* Other Sources::               Reading directories, files.
  * Combined Groups::             Combining groups into one group.
  * Email Based Diary::           Using mails to manage diary events in Gnus.
  * Gnus Unplugged::              Reading news and mail offline.
@@@ -701,24 -695,43 +701,24 @@@ Browsing the We
  
  * Archiving Mail::
  * Web Searches::                Creating groups from articles that match a string.
 -* Slashdot::                    Reading the Slashdot comments.
 -* Ultimate::                    The Ultimate Bulletin Board systems.
 -* Web Archive::                 Reading mailing list archived on web.
  * RSS::                         Reading RDF site summary.
  * Customizing W3::              Doing stuff to Emacs/W3 from Gnus.
  
 -@acronym{IMAP}
 -
 -* Splitting in IMAP::           Splitting mail with nnimap.
 -* Expiring in IMAP::            Expiring mail with nnimap.
 -* Editing IMAP ACLs::           Limiting/enabling other users access to a mailbox.
 -* Expunging mailboxes::         Equivalent of a ``compress mailbox'' button.
 -* A note on namespaces::        How to (not) use @acronym{IMAP} namespace in Gnus.
 -* Debugging IMAP::              What to do when things don't work.
 -
  Other Sources
  
  * Directory Groups::            You can read a directory as if it was a newsgroup.
  * Anything Groups::             Dired?  Who needs dired?
  * Document Groups::             Single files can be the basis of a group.
 -* SOUP::                        Reading @sc{soup} packets ``offline''.
  * Mail-To-News Gateways::       Posting articles via mail-to-news gateways.
 +* The Empty Backend::           The backend that never has any news.
  
  Document Groups
  
  * Document Server Internals::   How to add your own document types.
  
 -SOUP
 -
 -* SOUP Commands::               Commands for creating and sending @sc{soup} packets
 -* SOUP Groups::                 A back end for reading @sc{soup} packets.
 -* SOUP Replies::                How to enable @code{nnsoup} to take over mail and news.
 -
  Combined Groups
  
  * Virtual Groups::              Combining articles from many groups.
 -* Kibozed Groups::              Looking through parts of the newsfeed for articles.
  
  Email Based Diary
  
@@@ -793,21 -806,6 +793,21 @@@ Advanced Scorin
  * Advanced Scoring Examples::   What they look like.
  * Advanced Scoring Tips::       Getting the most out of it.
  
 +Searching
 +
 +* nnir::                        Searching with various engines.
 +* nnmairix::                    Searching with Mairix.
 +
 +nnir
 +
 +* What is nnir?::               What does nnir do.
 +* Basic Usage::                 How to perform simple searches.
 +* Setting up nnir::             How to set up nnir.
 +
 +Setting up nnir
 +
 +* Associating Engines::         How to associate engines.
 +
  Various
  
  * Process/Prefix::              A convention used by many treatment commands.
  * Compilation::                 How to speed Gnus up.
  * Mode Lines::                  Displaying information in the mode lines.
  * Highlighting and Menus::      Making buffers look all nice and cozy.
 -* Buttons::                     Get tendinitis in ten easy steps!
  * Daemons::                     Gnus can do things behind your back.
 -* NoCeM::                       How to avoid spam and other fatty foods.
  * Undo::                        Some actions can be undone.
  * Predicate Specifiers::        Specifying predicates.
  * Moderation::                  What to do if you're a moderator.
@@@ -849,7 -849,6 +849,7 @@@ Image Enhancement
  * Smileys::                     Show all those happy faces the way they were
                                    meant to be shown.
  * Picons::                      How to display pictures of what you're reading.
 +* Gravatars::                   Display the avatar of people you read.
  * XVarious::                    Other XEmacsy Gnusey variables.
  
  Thwarting Email Spam
@@@ -981,6 -980,7 +981,6 @@@ terminology section (@pxref{Terminology
  
  @menu
  * Finding the News::      Choosing a method for getting news.
 -* The First Time::        What does Gnus do the first time you start it?
  * The Server is Down::    How can I read my mail then?
  * Slave Gnusae::          You can have more than one Gnus active at a time.
  * New Groups::            What is Gnus supposed to do with new groups?
  @section Finding the News
  @cindex finding news
  
 +First of all, you should know that there is a special buffer called
 +@code{*Server*} that lists all the servers Gnus knows about.  You can
 +press @kbd{^} from the Group buffer to see it.  In the Server buffer,
 +you can press @kbd{RET} on a defined server to see all the groups it
 +serves (subscribed or not!).  You can also add or delete servers, edit
 +a foreign server's definition, agentize or de-agentize a server, and
 +do many other neat things.  @xref{Server Buffer}.  
 +@xref{Foreign Groups}.  @xref{Agent Basics}.
 +
  @vindex gnus-select-method
  @c @head
  The @code{gnus-select-method} variable says where Gnus should look for
@@@ -1041,6 -1032,22 +1041,6 @@@ Gnus will see whether @code{gnus-nntpse
  If that fails as well, Gnus will try to use the machine running Emacs
  as an @acronym{NNTP} server.  That's a long shot, though.
  
 -@vindex gnus-nntp-server
 -If @code{gnus-nntp-server} is set, this variable will override
 -@code{gnus-select-method}.  You should therefore set
 -@code{gnus-nntp-server} to @code{nil}, which is what it is by default.
 -
 -@vindex gnus-secondary-servers
 -@vindex gnus-nntp-server
 -You can also make Gnus prompt you interactively for the name of an
 -@acronym{NNTP} server.  If you give a non-numerical prefix to @code{gnus}
 -(i.e., @kbd{C-u M-x gnus}), Gnus will let you choose between the servers
 -in the @code{gnus-secondary-servers} list (if any).  You can also just
 -type in the name of any server you feel like visiting.  (Note that this
 -will set @code{gnus-nntp-server}, which means that if you then @kbd{M-x
 -gnus} later in the same Emacs session, Gnus will contact the same
 -server.)
 -
  @findex gnus-group-browse-foreign-server
  @kindex B (Group)
  However, if you use one @acronym{NNTP} server regularly and are just
@@@ -1073,6 -1080,31 +1073,6 @@@ several Gnus installations, but may slo
  new articles.  @xref{NNTP marks}, for more information.
  
  
 -@node The First Time
 -@section The First Time
 -@cindex first time usage
 -
 -If no startup files exist (@pxref{Startup Files}), Gnus will try to
 -determine what groups should be subscribed by default.
 -
 -@vindex gnus-default-subscribed-newsgroups
 -If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus
 -will subscribe you to just those groups in that list, leaving the rest
 -killed.  Your system administrator should have set this variable to
 -something useful.
 -
 -Since she hasn't, Gnus will just subscribe you to a few arbitrarily
 -picked groups (i.e., @samp{*.newusers}).  (@dfn{Arbitrary} is defined
 -here as @dfn{whatever Lars thinks you should read}.)
 -
 -You'll also be subscribed to the Gnus documentation group, which should
 -help you with most common problems.
 -
 -If @code{gnus-default-subscribed-newsgroups} is @code{t}, Gnus will just
 -use the normal functions for handling new groups, and not do anything
 -special.
 -
 -
  @node The Server is Down
  @section The Server is Down
  @cindex server errors
@@@ -1254,7 -1286,7 +1254,7 @@@ parameter (@pxref{Topic Parameters}).  
  topic parameter that looks like
  
  @example
 -"nnslashdot"
 +"nnml"
  @end example
  
  will mean that all groups that match that regex will be subscribed under
@@@ -1317,18 -1349,11 +1317,18 @@@ but I thought it would be nice to have 
  more meant for setting some ground rules, while the other variable is
  used more for user fiddling.  By default this variable makes all new
  groups that come from mail back ends (@code{nnml}, @code{nnbabyl},
 -@code{nnfolder}, @code{nnmbox}, @code{nnmh}, and @code{nnmaildir})
 -subscribed.  If you don't like that, just set this variable to
 -@code{nil}.
 -
 -New groups that match this regexp are subscribed using
 +@code{nnfolder}, @code{nnmbox}, @code{nnmh}, @code{nnimap}, and
 +@code{nnmaildir}) subscribed.  If you don't like that, just set this
 +variable to @code{nil}.
 +
 +@vindex gnus-auto-subscribed-categories
 +As if that wasn't enough, @code{gnus-auto-subscribed-categories} also
 +allows you to specify that new groups should be subcribed based on the
 +category their select methods belong to.  The default is @samp{(mail
 +post-mail)}, meaning that all new groups from mail-like backends
 +should be subscribed automatically.
 +
 +New groups that match these variables are subscribed using
  @code{gnus-subscribe-options-newsgroup-method}.
  
  
@@@ -1351,11 -1376,31 +1351,11 @@@ you have read is by keeping track of ar
  change @code{gnus-select-method}, your @file{.newsrc} file becomes
  worthless.
  
 -Gnus provides a few functions to attempt to translate a @file{.newsrc}
 -file from one server to another.  They all have one thing in
 -common---they take a looong time to run.  You don't want to use these
 -functions more than absolutely necessary.
 -
 -@kindex M-x gnus-change-server
 -@findex gnus-change-server
 -If you have access to both servers, Gnus can request the headers for all
 -the articles you have read and compare @code{Message-ID}s and map the
 -article numbers of the read articles and article marks.  The @kbd{M-x
 -gnus-change-server} command will do this for all your native groups.  It
 -will prompt for the method you want to move to.
 -
 -@kindex M-x gnus-group-move-group-to-server
 -@findex gnus-group-move-group-to-server
 -You can also move individual groups with the @kbd{M-x
 -gnus-group-move-group-to-server} command.  This is useful if you want to
 -move a (foreign) group from one server to another.
 -
  @kindex M-x gnus-group-clear-data-on-native-groups
  @findex gnus-group-clear-data-on-native-groups
 -If you don't have access to both the old and new server, all your marks
 -and read ranges have become worthless.  You can use the @kbd{M-x
 -gnus-group-clear-data-on-native-groups} command to clear out all data
 -that you have on your native groups.  Use with caution.
 +You can use the @kbd{M-x gnus-group-clear-data-on-native-groups}
 +command to clear out all data that you have on your native groups.
 +Use with caution.
  
  @kindex M-x gnus-group-clear-data
  @findex gnus-group-clear-data
@@@ -1614,11 -1659,14 +1614,11 @@@ of doing your job.  Note that this vari
  @vindex gnus-no-groups-message
  Message displayed by Gnus when no groups are available.
  
 -@item gnus-play-startup-jingle
 -@vindex gnus-play-startup-jingle
 -If non-@code{nil}, play the Gnus jingle at startup.
 -
 -@item gnus-startup-jingle
 -@vindex gnus-startup-jingle
 -Jingle to be played if the above variable is non-@code{nil}.  The
 -default is @samp{Tuxedomoon.Jingle4.au}.
 +@item gnus-use-backend-marks
 +@vindex gnus-use-backend-marks
 +If non-@code{nil}, Gnus will store article marks both in the
 +@file{.newsrc.eld} file and in the backends.  This will slow down
 +group operation some.
  
  @end table
  
@@@ -1683,6 -1731,7 +1683,6 @@@ long as Gnus is active
  * Exiting Gnus::                Stop reading news and get some work done.
  * Group Topics::                A folding group mode divided into topics.
  * Non-ASCII Group Names::       Accessing groups of non-English names.
 -* Searching::                   Mail search engines.
  * Misc Group Stuff::            Other stuff that you can to do.
  @end menu
  
@@@ -1969,7 -2018,8 +1969,7 @@@ functions for snarfing info on the grou
  @vindex gnus-group-update-hook
  @findex gnus-group-highlight-line
  @code{gnus-group-update-hook} is called when a group line is changed.
 -It will not be called when @code{gnus-visual} is @code{nil}.  This hook
 -calls @code{gnus-group-highlight-line} by default.
 +It will not be called when @code{gnus-visual} is @code{nil}.
  
  
  @node Group Maneuvering
@@@ -2197,12 -2247,6 +2197,12 @@@ selected
  @section Subscription Commands
  @cindex subscription
  
 +The following commands allow for managing your subscriptions in the
 +Group buffer.  If you want to subscribe to many groups, it's probably
 +more convenient to go to the @ref{Server Buffer}, and choose the
 +server there using @kbd{RET} or @kbd{SPC}.  Then you'll have the
 +commands listed in @ref{Browse Foreign Server} at hand.
 +
  @table @kbd
  
  @item S t
@@@ -2401,9 -2445,6 +2401,9 @@@ one with the best level
  All groups with a level less than or equal to
  @code{gnus-group-default-list-level} will be listed in the group buffer
  by default.
 +This variable can also be a function.  In that case, that function will
 +be called and the result will be used as value.
 +
  
  @vindex gnus-group-list-inactive-groups
  If @code{gnus-group-list-inactive-groups} is non-@code{nil}, non-active
@@@ -2519,15 -2560,6 +2519,15 @@@ the command to be executed
  @section Foreign Groups
  @cindex foreign groups
  
 +If you recall how to subscribe to servers (@pxref{Finding the News})
 +you will remember that @code{gnus-secondary-select-methods} and
 +@code{gnus-select-method} let you write a definition in Emacs Lisp of
 +what servers you want to see when you start up.  The alternate
 +approach is to use foreign servers and groups.  ``Foreign'' here means
 +they are not coming from the select methods.  All foreign server
 +configuration and subscriptions are stored only in the
 +@file{~/.newsrc.eld} file.
 +
  Below are some group mode commands for making and editing general foreign
  groups, as well as commands to ease the creation of a few
  special-purpose groups.  All these commands insert the newly created
@@@ -2601,6 -2633,27 +2601,6 @@@ for a directory name (@code{gnus-group-
  @findex gnus-group-make-help-group
  Make the Gnus help group (@code{gnus-group-make-help-group}).
  
 -@item G a
 -@kindex G a (Group)
 -@cindex (ding) archive
 -@cindex archive group
 -@findex gnus-group-make-archive-group
 -@vindex gnus-group-archive-directory
 -@vindex gnus-group-recent-archive-directory
 -Make a Gnus archive group (@code{gnus-group-make-archive-group}).  By
 -default a group pointing to the most recent articles will be created
 -(@code{gnus-group-recent-archive-directory}), but given a prefix, a full
 -group will be created from @code{gnus-group-archive-directory}.
 -
 -@item G k
 -@kindex G k (Group)
 -@findex gnus-group-make-kiboze-group
 -@cindex nnkiboze
 -Make a kiboze group.  You will be prompted for a name, for a regexp to
 -match groups to be ``included'' in the kiboze group, and a series of
 -strings to match on headers (@code{gnus-group-make-kiboze-group}).
 -@xref{Kibozed Groups}.
 -
  @item G D
  @kindex G D (Group)
  @findex gnus-group-enter-directory
@@@ -3602,12 -3655,8 +3602,12 @@@ Enter the current group (@code{gnus-bro
  @item u
  @kindex u (Browse)
  @findex gnus-browse-unsubscribe-current-group
 +@vindex gnus-browse-subscribe-newsgroup-method
  Unsubscribe to the current group, or, as will be the case here,
 -subscribe to it (@code{gnus-browse-unsubscribe-current-group}).
 +subscribe to it (@code{gnus-browse-unsubscribe-current-group}).  You
 +can affect the way the new group is entered into the Group buffer
 +using the variable @code{gnus-browse-subscribe-newsgroup-method}.  See
 +@pxref{Subscription Methods} for available options.
  
  @item l
  @itemx q
@@@ -4313,292 -4362,1030 +4313,292 @@@ names should be the same in both groups
  header will be displayed incorrectly in the article buffer.
  
  
 -@node Searching
 -@section Searching
 +@node Misc Group Stuff
 +@section Misc Group Stuff
  
  @menu
 -* nnir::                     Searching on IMAP, with swish, namazu, etc.
 -* nnmairix::                 Searching maildir, MH or mbox with Mairix.
 +* Scanning New Messages::       Asking Gnus to see whether new messages have arrived.
 +* Group Information::           Information and help on groups and Gnus.
 +* Group Timestamp::             Making Gnus keep track of when you last read a group.
 +* File Commands::               Reading and writing the Gnus files.
 +* Sieve Commands::              Managing Sieve scripts.
  @end menu
  
 -@cindex Searching
 +@table @kbd
  
 -FIXME: This node is a stub.
 +@item v
 +@kindex v (Group)
 +@cindex keys, reserved for users (Group)
 +The key @kbd{v} is reserved for users.  You can bind it to some
 +command or better use it as a prefix key.  For example:
  
 -FIXME: Add a brief overview of Gnus search capabilities.  A brief
 -comparison of nnir, nnmairix, contrib/gnus-namazu would be nice
 -as well.
 +@lisp
 +(define-key gnus-group-mode-map (kbd "v j d")
 +  (lambda ()
 +    (interactive)
 +    (gnus-group-jump-to-group "nndraft:drafts")))
 +@end lisp
  
 -FIXME: Explain difference to @ref{Searching for Articles}, add reference
 -and back-reference.
 +On keys reserved for users in Emacs and on keybindings in general
 +@xref{Keymaps, Keymaps, , emacs, The Emacs Editor}.
  
 -@node nnir
 -@subsection nnir
 +@item ^
 +@kindex ^ (Group)
 +@findex gnus-group-enter-server-mode
 +Enter the server buffer (@code{gnus-group-enter-server-mode}).
 +@xref{Server Buffer}.
  
 -FIXME: As a first step, convert the commentary of @file{nnir} to texi.
 -@cindex nnir
 +@item a
 +@kindex a (Group)
 +@findex gnus-group-post-news
 +Start composing a message (a news by default)
 +(@code{gnus-group-post-news}).  If given a prefix, post to the group
 +under the point.  If the prefix is 1, prompt for a group to post to.
 +Contrary to what the name of this function suggests, the prepared
 +article might be a mail instead of a news, if a mail group is specified
 +with the prefix argument.  @xref{Composing Messages}.
  
 -@node nnmairix
 -@subsection nnmairix
 +@item m
 +@kindex m (Group)
 +@findex gnus-group-mail
 +Mail a message somewhere (@code{gnus-group-mail}).  If given a prefix,
 +use the posting style of the group under the point.  If the prefix is 1,
 +prompt for a group name to find the posting style.
 +@xref{Composing Messages}.
  
 -@cindex mairix
 -@cindex nnmairix
 -This paragraph describes how to set up mairix and the back end
 -@code{nnmairix} for indexing and searching your mail from within
 -Gnus.  Additionally, you can create permanent ``smart'' groups which are
 -bound to mairix searches and are automatically updated.
 +@item i
 +@kindex i (Group)
 +@findex gnus-group-news
 +Start composing a news (@code{gnus-group-news}).  If given a prefix,
 +post to the group under the point.  If the prefix is 1, prompt
 +for group to post to.  @xref{Composing Messages}.
  
 -@menu
 -* About mairix::                About the mairix mail search engine
 -* nnmairix requirements::       What you will need for using nnmairix
 -* What nnmairix does::          What does nnmairix actually do?
 -* Setting up mairix::           Set up your mairix installation
 -* Configuring nnmairix::        Set up the nnmairix back end
 -* nnmairix keyboard shortcuts:: List of available keyboard shortcuts
 -* Propagating marks::           How to propagate marks from nnmairix groups
 -* nnmairix tips and tricks::    Some tips, tricks and examples
 -* nnmairix caveats::            Some more stuff you might want to know
 -@end menu
 +This function actually prepares a news even when using mail groups.
 +This is useful for ``posting'' messages to mail groups without actually
 +sending them over the network: they're just saved directly to the group
 +in question.  The corresponding back end must have a request-post method
 +for this to work though.
  
 -@c FIXME: The markup in this section might need improvement.
 -@c E.g. adding @samp, @var, @file, @command, etc.
 -@c Cf. (info "(texinfo)Indicating")
 +@item G z
 +@kindex G z (Group)
 +@findex gnus-group-compact-group
  
 -@node About mairix
 -@subsubsection About mairix
 +Compact the group under point (@code{gnus-group-compact-group}).
 +Currently implemented only in nnml (@pxref{Mail Spool}).  This removes
 +gaps between article numbers, hence getting a correct total article
 +count.
  
 -Mairix is a tool for indexing and searching words in locally stored
 -mail.  It was written by Richard Curnow and is licensed under the
 -GPL.  Mairix comes with most popular GNU/Linux distributions, but it also
 -runs under Windows (with cygwin), Mac OS X and Solaris.  The homepage can
 -be found at
 -@uref{http://www.rpcurnow.force9.co.uk/mairix/index.html}
 +@end table
  
 -Though mairix might not be as flexible as other search tools like
 -swish++ or namazu, which you can use via the @code{nnir} back end, it
 -has the prime advantage of being incredibly fast.  On current systems, it
 -can easily search through headers and message bodies of thousands and
 -thousands of mails in well under a second.  Building the database
 -necessary for searching might take a minute or two, but only has to be
 -done once fully.  Afterwards, the updates are done incrementally and
 -therefore are really fast, too.  Additionally, mairix is very easy to set
 -up.
 +Variables for the group buffer:
  
 -For maximum speed though, mairix should be used with mails stored in
 -@code{Maildir} or @code{MH} format (this includes the @code{nnml} back
 -end), although it also works with mbox.  Mairix presents the search
 -results by populating a @emph{virtual} maildir/MH folder with symlinks
 -which point to the ``real'' message files (if mbox is used, copies are
 -made).  Since mairix already presents search results in such a virtual
 -mail folder, it is very well suited for using it as an external program
 -for creating @emph{smart} mail folders, which represent certain mail
 -searches.  This is similar to a Kiboze group (@pxref{Kibozed Groups}),
 -but much faster.
 +@table @code
  
 -@node nnmairix requirements
 -@subsubsection nnmairix requirements
 +@item gnus-group-mode-hook
 +@vindex gnus-group-mode-hook
 +is called after the group buffer has been
 +created.
  
 -Mairix searches local mail---that means, mairix absolutely must have
 -direct access to your mail folders.  If your mail resides on another
 -server (e.g. an @acronym{IMAP} server) and you happen to have shell
 -access, @code{nnmairix} supports running mairix remotely, e.g. via ssh.
 +@item gnus-group-prepare-hook
 +@vindex gnus-group-prepare-hook
 +is called after the group buffer is
 +generated.  It may be used to modify the buffer in some strange,
 +unnatural way.
  
 -Additionally, @code{nnmairix} only supports the following Gnus back
 -ends: @code{nnml}, @code{nnmaildir}, and @code{nnimap}.  You must use
 -one of these back ends for using @code{nnmairix}.  Other back ends, like
 -@code{nnmbox}, @code{nnfolder} or @code{nnmh}, won't work.
 +@item gnus-group-prepared-hook
 +@vindex gnus-group-prepare-hook
 +is called as the very last thing after the group buffer has been
 +generated.  It may be used to move point around, for instance.
  
 -If you absolutely must use mbox and still want to use @code{nnmairix},
 -you can set up a local @acronym{IMAP} server, which you then access via
 -@code{nnimap}.  This is a rather massive setup for accessing some mbox
 -files, so just change to MH or Maildir already...  However, if you're
 -really, really passionate about using mbox, you might want to look into
 -the package @file{mairix.el}, which comes with Emacs 23.
 +@item gnus-permanently-visible-groups
 +@vindex gnus-permanently-visible-groups
 +Groups matching this regexp will always be listed in the group buffer,
 +whether they are empty or not.
  
 -@node What nnmairix does
 -@subsubsection What nnmairix does
 +@end table
  
 -The back end @code{nnmairix} enables you to call mairix from within Gnus,
 -either to query mairix with a search term or to update the
 -database.  While visiting a message in the summary buffer, you can use
 -several pre-defined shortcuts for calling mairix, e.g. to quickly
 -search for all mails from the sender of the current message or to
 -display the whole thread associated with the message, even if the
 -mails are in different folders.
 +@node Scanning New Messages
 +@subsection Scanning New Messages
 +@cindex new messages
 +@cindex scanning new news
  
 -Additionally, you can create permanent @code{nnmairix} groups which are bound
 -to certain mairix searches.  This way, you can easily create a group
 -containing mails from a certain sender, with a certain subject line or
 -even for one specific thread based on the Message-ID.  If you check for
 -new mail in these folders (e.g. by pressing @kbd{g} or @kbd{M-g}), they
 -automatically update themselves by calling mairix.
 +@table @kbd
  
 -You might ask why you need @code{nnmairix} at all, since mairix already
 -creates the group, populates it with links to the mails so that you can
 -then access it with Gnus, right?  Well, this @emph{might} work, but often
 -does not---at least not without problems.  Most probably you will get
 -strange article counts, and sometimes you might see mails which Gnus
 -claims have already been canceled and are inaccessible.  This is due to
 -the fact that Gnus isn't really amused when things are happening behind
 -its back.  Another problem can be the mail back end itself, e.g. if you
 -use mairix with an @acronym{IMAP} server (I had Dovecot complaining
 -about corrupt index files when mairix changed the contents of the search
 -group).  Using @code{nnmairix} should circumvent these problems.
 +@item g
 +@kindex g (Group)
 +@findex gnus-group-get-new-news
 +@c @icon{gnus-group-get-new-news}
 +Check the server(s) for new articles.  If the numerical prefix is used,
 +this command will check only groups of level @var{arg} and lower
 +(@code{gnus-group-get-new-news}).  If given a non-numerical prefix, this
 +command will force a total re-reading of the active file(s) from the
 +back end(s).
  
 -@code{nnmairix} is not really a mail back end---it's actually more like
 -a wrapper, sitting between a ``real'' mail back end where mairix stores
 -the searches and the Gnus front end.  You can choose between three
 -different mail back ends for the mairix folders: @code{nnml},
 -@code{nnmaildir} or @code{nnimap}.  @code{nnmairix} will call the mairix
 -binary so that the search results are stored in folders named
 -@code{zz_mairix-<NAME>-<NUMBER>} on this mail back end, but it will
 -present these folders in the Gnus front end only with @code{<NAME>}.
 -You can use an existing mail back end where you already store your mail,
 -but if you're uncomfortable with @code{nnmairix} creating new mail
 -groups alongside your other mail, you can also create e.g. a new
 -@code{nnmaildir} or @code{nnml} server exclusively for mairix, but then
 -make sure those servers do not accidentally receive your new mail
 -(@pxref{nnmairix caveats}).  A special case exists if you want to use
 -mairix remotely on an IMAP server with @code{nnimap}---here the mairix
 -folders and your other mail must be on the same @code{nnimap} back end.
 +@item M-g
 +@kindex M-g (Group)
 +@findex gnus-group-get-new-news-this-group
 +@vindex gnus-goto-next-group-when-activating
 +@c @icon{gnus-group-get-new-news-this-group}
 +Check whether new articles have arrived in the current group
 +(@code{gnus-group-get-new-news-this-group}).
 +@code{gnus-goto-next-group-when-activating} says whether this command is
 +to move point to the next group or not.  It is @code{t} by default.
  
 -@node Setting up mairix
 -@subsubsection Setting up mairix
 +@findex gnus-activate-all-groups
 +@cindex activating groups
 +@item C-c M-g
 +@kindex C-c M-g (Group)
 +Activate absolutely all groups (@code{gnus-activate-all-groups}).
  
 -First: create a backup of your mail folders (@pxref{nnmairix caveats}).
 +@item R
 +@kindex R (Group)
 +@cindex restarting
 +@findex gnus-group-restart
 +Restart Gnus (@code{gnus-group-restart}).  This saves the @file{.newsrc}
 +file(s), closes the connection to all servers, clears up all run-time
 +Gnus variables, and then starts Gnus all over again.
  
 -Setting up mairix is easy: simply create a @file{.mairixrc} file with
 -(at least) the following entries:
 +@end table
  
 -@example
 -# Your Maildir/MH base folder
 -base=~/Maildir
 -@end example
 -
 -This is the base folder for your mails.  All the following directories
 -are relative to this base folder.  If you want to use @code{nnmairix}
 -with @code{nnimap}, this base directory has to point to the mail
 -directory where the @acronym{IMAP} server stores the mail folders!
 +@vindex gnus-get-new-news-hook
 +@code{gnus-get-new-news-hook} is run just before checking for new news.
  
 -@example
 -maildir= ... your maildir folders which should be indexed ...
 -mh= ... your nnml/mh folders which should be indexed ...
 -mbox = ... your mbox files which should be indexed ...
 -@end example
 +@vindex gnus-after-getting-new-news-hook
 +@code{gnus-after-getting-new-news-hook} is run after checking for new
 +news.
  
 -This specifies all your mail folders and mbox files (relative to the
 -base directory!) you want to index with mairix.  Note that the
 -@code{nnml} back end saves mails in MH format, so you have to put those
 -directories in the @code{mh} line.  See the example at the end of this
 -section and mairixrc's man-page for further details.
  
 -@example
 -omit=zz_mairix-*
 -@end example
 +@node Group Information
 +@subsection Group Information
 +@cindex group information
 +@cindex information on groups
  
 -@vindex nnmairix-group-prefix
 -This should make sure that you don't accidentally index the mairix
 -search results.  You can change the prefix of these folders with the
 -variable @code{nnmairix-group-prefix}.
 +@table @kbd
  
 -@example
 -mformat= ... 'maildir' or 'mh' ...
 -database= ... location of database file ...
 -@end example
  
 -The @code{format} setting specifies the output format for the mairix
 -search folder.  Set this to @code{mh} if you want to access search results
 -with @code{nnml}.  Otherwise choose @code{maildir}.
 +@item H f
 +@kindex H f (Group)
 +@findex gnus-group-fetch-faq
 +@vindex gnus-group-faq-directory
 +@cindex FAQ
 +@cindex ange-ftp
 +Try to fetch the @acronym{FAQ} for the current group
 +(@code{gnus-group-fetch-faq}).  Gnus will try to get the @acronym{FAQ}
 +from @code{gnus-group-faq-directory}, which is usually a directory on
 +a remote machine.  This variable can also be a list of directories.
 +In that case, giving a prefix to this command will allow you to choose
 +between the various sites.  @code{ange-ftp} (or @code{efs}) will be
 +used for fetching the file.
  
 -To summarize, here is my shortened @file{.mairixrc} file as an example:
 +If fetching from the first site is unsuccessful, Gnus will attempt to go
 +through @code{gnus-group-faq-directory} and try to open them one by one.
  
 -@example
 -base=~/Maildir
 -maildir=.personal:.work:.logcheck:.sent
 -mh=../Mail/nnml/*...
 -mbox=../mboxmail/mailarchive_year*
 -mformat=maildir
 -omit=zz_mairix-*
 -database=~/.mairixdatabase
 -@end example
 +@item H d
 +@itemx C-c C-d
 +@c @icon{gnus-group-describe-group}
 +@kindex H d (Group)
 +@kindex C-c C-d (Group)
 +@cindex describing groups
 +@cindex group description
 +@findex gnus-group-describe-group
 +Describe the current group (@code{gnus-group-describe-group}).  If given
 +a prefix, force Gnus to re-read the description from the server.
  
 -In this case, the base directory is @file{~/Maildir}, where all my Maildir
 -folders are stored.  As you can see, the folders are separated by
 -colons.  If you wonder why every folder begins with a dot: this is
 -because I use Dovecot as @acronym{IMAP} server, which again uses
 -@code{Maildir++} folders.  For testing nnmairix, I also have some
 -@code{nnml} mail, which is saved in @file{~/Mail/nnml}.  Since this has
 -to be specified relative to the @code{base} directory, the @code{../Mail}
 -notation is needed.  Note that the line ends in @code{*...}, which means
 -to recursively scan all files under this directory.  Without the three
 -dots, the wildcard @code{*} will not work recursively.  I also have some
 -old mbox files with archived mail lying around in @file{~/mboxmail}.
 -The other lines should be obvious.
 +@item M-d
 +@kindex M-d (Group)
 +@findex gnus-group-describe-all-groups
 +Describe all groups (@code{gnus-group-describe-all-groups}).  If given a
 +prefix, force Gnus to re-read the description file from the server.
  
 -See the man page for @code{mairixrc} for details and further options,
 -especially regarding wildcard usage, which may be a little different
 -than you are used to.
 +@item H v
 +@itemx V
 +@kindex V (Group)
 +@kindex H v (Group)
 +@cindex version
 +@findex gnus-version
 +Display current Gnus version numbers (@code{gnus-version}).
  
 -Now simply call @code{mairix} to create the index for the first time.
 -Note that this may take a few minutes, but every following index will do
 -the updates incrementally and hence is very fast.
 +@item ?
 +@kindex ? (Group)
 +@findex gnus-group-describe-briefly
 +Give a very short help message (@code{gnus-group-describe-briefly}).
  
 -@node Configuring nnmairix
 -@subsubsection Configuring nnmairix
 +@item C-c C-i
 +@kindex C-c C-i (Group)
 +@cindex info
 +@cindex manual
 +@findex gnus-info-find-node
 +Go to the Gnus info node (@code{gnus-info-find-node}).
 +@end table
  
 -In group mode, type @kbd{G b c}
 -(@code{nnmairix-create-server-and-default-group}).  This will ask you for all
 -necessary information and create a @code{nnmairix} server as a foreign
 -server.  You will have to specify the following:
  
 -@itemize @bullet
 +@node Group Timestamp
 +@subsection Group Timestamp
 +@cindex timestamps
 +@cindex group timestamps
  
 -@item
 -The @strong{name} of the @code{nnmairix} server---choose whatever you
 -want.
 +It can be convenient to let Gnus keep track of when you last read a
 +group.  To set the ball rolling, you should add
 +@code{gnus-group-set-timestamp} to @code{gnus-select-group-hook}:
  
 -@item
 -The name of the @strong{back end server} where mairix should store its
 -searches.  This must be a full server name, like @code{nnml:mymail}.
 -Just hit @kbd{TAB} to see the available servers.  Currently, servers
 -which are accessed through @code{nnmaildir}, @code{nnimap} and
 -@code{nnml} are supported.  As explained above, for locally stored
 -mails, this can be an existing server where you store your mails.
 -However, you can also create e.g. a new @code{nnmaildir} or @code{nnml}
 -server exclusively for @code{nnmairix} in your secondary select methods
 -(@pxref{Finding the News}).  If you use a secondary @code{nnml} server
 -just for mairix, make sure that you explicitly set the server variable
 -@code{nnml-get-new-mail} to @code{nil}, or you might loose mail
 -(@pxref{nnmairix caveats}).  If you want to use mairix remotely on an
 -@acronym{IMAP} server, you have to choose the corresponding
 -@code{nnimap} server here.
 +@lisp
 +(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
 +@end lisp
  
 -@item
 -@vindex nnmairix-mairix-search-options
 -The @strong{command} to call the mairix binary.  This will usually just
 -be @code{mairix}, but you can also choose something like @code{ssh
 -SERVER mairix} if you want to call mairix remotely, e.g. on your
 -@acronym{IMAP} server.  If you want to add some default options to
 -mairix, you could do this here, but better use the variable
 -@code{nnmairix-mairix-search-options} instead.
 +After doing this, each time you enter a group, it'll be recorded.
  
 -@item
 -The name of the @strong{default search group}.  This will be the group
 -where all temporary mairix searches are stored, i.e. all searches which
 -are not bound to permanent @code{nnmairix} groups.  Choose whatever you
 -like.
 +This information can be displayed in various ways---the easiest is to
 +use the @samp{%d} spec in the group line format:
  
 -@item
 -If the mail back end is @code{nnimap} or @code{nnmaildir}, you will be
 -asked if you work with @strong{Maildir++}, i.e. with hidden maildir
 -folders (=beginning with a dot).  For example, you have to answer
 -@samp{yes} here if you work with the Dovecot @acronym{IMAP}
 -server.  Otherwise, you should answer @samp{no} here.
 +@lisp
 +(setq gnus-group-line-format
 +      "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n")
 +@end lisp
  
 -@end itemize
 +This will result in lines looking like:
  
 -@node nnmairix keyboard shortcuts
 -@subsubsection nnmairix keyboard shortcuts
 +@example
 +*        0: mail.ding                                19961002T012943
 +         0: custom                                   19961002T012713
 +@end example
  
 -In group mode:
 +As you can see, the date is displayed in compact ISO 8601 format.  This
 +may be a bit too much, so to just display the date, you could say
 +something like:
  
 -@table @kbd
 +@lisp
 +(setq gnus-group-line-format
 +      "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
 +@end lisp
  
 -@item G b c
 -@kindex G b c (Group)
 -@findex nnmairix-create-server-and-default-group
 -Creates @code{nnmairix} server and default search group for this server
 -(@code{nnmairix-create-server-and-default-group}).  You should have done
 -this by now (@pxref{Configuring nnmairix}).
 +If you would like greater control of the time format, you can use a
 +user-defined format spec.  Something like the following should do the
 +trick:
  
 -@item G b s
 -@kindex G b s (Group)
 -@findex nnmairix-search
 -Prompts for query which is then sent to the mairix binary.  Search
 -results are put into the default search group which is automatically
 -displayed (@code{nnmairix-search}).
 +@lisp
 +(setq gnus-group-line-format
 +      "%M\%S\%p\%P\%5y: %(%-40,40g%) %ud\n")
 +(defun gnus-user-format-function-d (headers)
 +  (let ((time (gnus-group-timestamp gnus-tmp-group)))
 +    (if time
 +        (format-time-string "%b %d  %H:%M" time)
 +      "")))
 +@end lisp
  
 -@item G b m
 -@kindex G b m (Group)
 -@findex nnmairix-widget-search
 -Allows you to create a mairix search or a permanent group more
 -comfortably using graphical widgets, similar to a customization
 -group.  Just try it to see how it works (@code{nnmairix-widget-search}).
  
 -@item G b i
 -@kindex G b i (Group)
 -@findex nnmairix-search-interactive
 -Another command for creating a mairix query more comfortably, but uses
 -only the minibuffer (@code{nnmairix-search-interactive}).
 +@node File Commands
 +@subsection File Commands
 +@cindex file commands
  
 -@item G b g
 -@kindex G b g (Group)
 -@findex nnmairix-create-search-group
 -Creates a permanent group which is associated with a search query
 -(@code{nnmairix-create-search-group}).  The @code{nnmairix} back end
 -automatically calls mairix when you update this group with @kbd{g} or
 -@kbd{M-g}.
 +@table @kbd
  
 -@item G b q
 -@kindex G b q (Group)
 -@findex nnmairix-group-change-query-this-group
 -Changes the search query for the @code{nnmairix} group under cursor
 -(@code{nnmairix-group-change-query-this-group}).
 -
 -@item G b t
 -@kindex G b t (Group)
 -@findex nnmairix-group-toggle-threads-this-group
 -Toggles the 'threads' parameter for the @code{nnmairix} group under cursor,
 -i.e.  if you want see the whole threads of the found messages
 -(@code{nnmairix-group-toggle-threads-this-group}).
 -
 -@item G b u
 -@kindex G b u (Group)
 -@findex nnmairix-update-database
 -@vindex nnmairix-mairix-update-options
 -Calls mairix binary for updating the database
 -(@code{nnmairix-update-database}).  The default parameters are @code{-F}
 -and @code{-Q} for making this as fast as possible (see variable
 -@code{nnmairix-mairix-update-options} for defining these default
 -options).
 -
 -@item G b r
 -@kindex G b r (Group)
 -@findex nnmairix-group-toggle-readmarks-this-group
 -Keep articles in this @code{nnmairix} group always read or unread, or leave the
 -marks unchanged (@code{nnmairix-group-toggle-readmarks-this-group}).
 -
 -@item G b d
 -@kindex G b d (Group)
 -@findex nnmairix-group-delete-recreate-this-group
 -Recreate @code{nnmairix} group on the ``real'' mail back end
 -(@code{nnmairix-group-delete-recreate-this-group}).  You can do this if
 -you always get wrong article counts with a @code{nnmairix} group.
 -
 -@item G b a
 -@kindex G b a (Group)
 -@findex nnmairix-group-toggle-allowfast-this-group
 -Toggles the @code{allow-fast} parameters for group under cursor
 -(@code{nnmairix-group-toggle-allowfast-this-group}).  The default
 -behavior of @code{nnmairix} is to do a mairix search every time you
 -update or enter the group.  With the @code{allow-fast} parameter set,
 -mairix will only be called when you explicitly update the group, but not
 -upon entering.  This makes entering the group faster, but it may also
 -lead to dangling symlinks if something changed between updating and
 -entering the group which is not yet in the mairix database.
 -
 -@item G b p
 -@kindex G b p (Group)
 -@findex nnmairix-group-toggle-propmarks-this-group
 -Toggle marks propagation for this group
 -(@code{nnmairix-group-toggle-propmarks-this-group}).  (@pxref{Propagating
 -marks}).
 -
 -@item G b o
 -@kindex G b o (Group)
 -@findex nnmairix-propagate-marks
 -Manually propagate marks (@code{nnmairix-propagate-marks}); needed only when
 -@code{nnmairix-propagate-marks-upon-close} is set to @code{nil}.
 -
 -@end table
 -
 -In summary mode:
 -
 -@table @kbd
 -
 -@item $ m
 -@kindex $ m (Summary)
 -@findex nnmairix-widget-search-from-this-article
 -Allows you to create a mairix query or group based on the current
 -message using graphical widgets (same as @code{nnmairix-widget-search})
 -(@code{nnmairix-widget-search-from-this-article}).
 -
 -@item $ g
 -@kindex $ g (Summary)
 -@findex nnmairix-create-search-group-from-message
 -Interactively creates a new search group with query based on the current
 -message, but uses the minibuffer instead of graphical widgets
 -(@code{nnmairix-create-search-group-from-message}).
 -
 -@item $ t
 -@kindex $ t (Summary)
 -@findex nnmairix-search-thread-this-article
 -Searches thread for the current article
 -(@code{nnmairix-search-thread-this-article}).  This is effectively a
 -shortcut for calling @code{nnmairix-search} with @samp{m:msgid} of the
 -current article and enabled threads.
 -
 -@item $ f
 -@kindex $ f (Summary)
 -@findex nnmairix-search-from-this-article
 -Searches all messages from sender of the current article
 -(@code{nnmairix-search-from-this-article}).  This is a shortcut for
 -calling @code{nnmairix-search} with @samp{f:From}.
 -
 -@item $ o
 -@kindex $ o (Summary)
 -@findex nnmairix-goto-original-article
 -(Only in @code{nnmairix} groups!) Tries determine the group this article
 -originally came from and displays the article in this group, so that
 -e.g. replying to this article the correct posting styles/group
 -parameters are applied (@code{nnmairix-goto-original-article}).  This
 -function will use the registry if available, but can also parse the
 -article file name as a fallback method.
 -
 -@item $ u
 -@kindex $ u (Summary)
 -@findex nnmairix-remove-tick-mark-original-article
 -Remove possibly existing tick mark from original article
 -(@code{nnmairix-remove-tick-mark-original-article}).  (@pxref{nnmairix
 -tips and tricks}).
 -
 -@end table
 -
 -@node Propagating marks
 -@subsubsection Propagating marks
 -
 -First of: you really need a patched mairix binary for using the marks
 -propagation feature efficiently. Otherwise, you would have to update
 -the mairix database all the time. You can get the patch at
 -
 -@uref{http://www.randomsample.de/mairix-maildir-patch.tar}
 -
 -You need the mairix v0.21 source code for this patch; everything else
 -is explained in the accompanied readme file. If you don't want to use
 -marks propagation, you don't have to apply these patches, but they also
 -fix some annoyances regarding changing maildir flags, so it might still
 -be useful to you.
 -
 -With the patched mairix binary, you can use @code{nnmairix} as an
 -alternative to mail splitting (@pxref{Fancy Mail Splitting}). For
 -example, instead of splitting all mails from @samp{david@@foobar.com}
 -into a group, you can simply create a search group with the query
 -@samp{f:david@@foobar.com}. This is actually what ``smart folders'' are
 -all about: simply put everything in one mail folder and dynamically
 -create searches instead of splitting. This is more flexible, since you
 -can dynamically change your folders any time you want to. This also
 -implies that you will usually read your mails in the @code{nnmairix}
 -groups instead of your ``real'' mail groups.
 -
 -There is one problem, though: say you got a new mail from
 -@samp{david@@foobar.com}; it will now show up in two groups, the
 -``real'' group (your INBOX, for example) and in the @code{nnmairix}
 -search group (provided you have updated the mairix database). Now you
 -enter the @code{nnmairix} group and read the mail. The mail will be
 -marked as read, but only in the @code{nnmairix} group---in the ``real''
 -mail group it will be still shown as unread.
 -
 -You could now catch up the mail group (@pxref{Group Data}), but this is
 -tedious and error prone, since you may overlook mails you don't have
 -created @code{nnmairix} groups for. Of course, you could first use
 -@code{nnmairix-goto-original-article} (@pxref{nnmairix keyboard
 -shortcuts}) and then read the mail in the original group, but that's
 -even more cumbersome.
 -
 -Clearly, the easiest way would be if marks could somehow be
 -automatically set for the original article. This is exactly what
 -@emph{marks propagation} is about.
 -
 -Marks propagation is deactivated by default. You can activate it for a
 -certain @code{nnmairix} group with
 -@code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b
 -p}). This function will warn you if you try to use it with your default
 -search group; the reason is that the default search group is used for
 -temporary searches, and it's easy to accidentally propagate marks from
 -this group. However, you can ignore this warning if you really want to.
 -
 -With marks propagation enabled, all the marks you set in a @code{nnmairix}
 -group should now be propagated to the original article. For example,
 -you can now tick an article (by default with @kbd{!}) and this mark should
 -magically be set for the original article, too.
 -
 -A few more remarks which you may or may not want to know:
 -
 -@vindex nnmairix-propagate-marks-upon-close
 -Marks will not be set immediately, but only upon closing a group. This
 -not only makes marks propagation faster, it also avoids problems with
 -dangling symlinks when dealing with maildir files (since changing flags
 -will change the file name). You can also control when to propagate marks
 -via @code{nnmairix-propagate-marks-upon-close} (see the doc-string for
 -details).
 -
 -Obviously, @code{nnmairix} will have to look up the original group for every
 -article you want to set marks for. If available, @code{nnmairix} will first use
 -the registry for determining the original group. The registry is very
 -fast, hence you should really, really enable the registry when using
 -marks propagation. If you don't have to worry about RAM and disc space,
 -set @code{gnus-registry-max-entries} to a large enough value; to be on
 -the safe side, choose roughly the amount of mails you index with mairix.
 -
 -@vindex nnmairix-only-use-registry
 -If you don't want to use the registry or the registry hasn't seen the
 -original article yet, @code{nnmairix} will use an additional mairix
 -search for determining the file name of the article. This, of course, is
 -way slower than the registry---if you set hundreds or even thousands of
 -marks this way, it might take some time. You can avoid this situation by
 -setting @code{nnmairix-only-use-registry} to t.
 -
 -Maybe you also want to propagate marks the other way round, i.e. if you
 -tick an article in a "real" mail group, you'd like to have the same
 -article in a @code{nnmairix} group ticked, too. For several good
 -reasons, this can only be done efficiently if you use maildir. To
 -immediately contradict myself, let me mention that it WON'T work with
 -@code{nnmaildir}, since @code{nnmaildir} stores the marks externally and
 -not in the file name. Therefore, propagating marks to @code{nnmairix}
 -groups will usually only work if you use an IMAP server which uses
 -maildir as its file format.
 -
 -@vindex nnmairix-propagate-marks-to-nnmairix-groups
 -If you work with this setup, just set
 -@code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t} and see what
 -happens. If you don't like what you see, just set it to @code{nil} again. One
 -problem might be that you get a wrong number of unread articles; this
 -usually happens when you delete or expire articles in the original
 -groups. When this happens, you can recreate the @code{nnmairix} group on the
 -back end using @kbd{G b d}.
 -
 -@node nnmairix tips and tricks
 -@subsubsection nnmairix tips and tricks
 -
 -@itemize
 -@item
 -Checking Mail
 -
 -@findex nnmairix-update-groups
 -I put all my important mail groups at group level 1. The mairix groups
 -have group level 5, so they do not get checked at start up (@pxref{Group
 -Levels}).
 -
 -I use the following to check for mails:
 -
 -@lisp
 -(defun my-check-mail-mairix-update (level)
 -  (interactive "P")
 -  ;; if no prefix given, set level=1
 -  (gnus-group-get-new-news (or level 1))
 -  (nnmairix-update-groups "mairixsearch" t t)
 -  (gnus-group-list-groups))
 -
 -(define-key gnus-group-mode-map "g" 'my-check-mail-mairix-update)
 -@end lisp
 -
 -Instead of @samp{"mairixsearch"} use the name of your @code{nnmairix}
 -server. See the doc string for @code{nnmairix-update-groups} for
 -details.
 -
 -@item
 -Example: search group for ticked articles
 -
 -For example, you can create a group for all ticked articles, where the
 -articles always stay unread:
 -
 -Hit @kbd{G b g}, enter group name (e.g. @samp{important}), use
 -@samp{F:f} as query and do not include threads.
 -
 -Now activate marks propagation for this group by using @kbd{G b p}. Then
 -activate the always-unread feature by using @kbd{G b r} twice.
 -
 -So far so good---but how do you remove the tick marks in the @code{nnmairix}
 -group?  There are two options: You may simply use
 -@code{nnmairix-remove-tick-mark-original-article} (bound to @kbd{$ u}) to remove
 -tick marks from the original article. The other possibility is to set
 -@code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t}, but see the above
 -comments about this option.  If it works for you, the tick marks should
 -also exist in the @code{nnmairix} group and you can remove them as usual,
 -e.g. by marking an article as read.
 -
 -When you have removed a tick mark from the original article, this
 -article should vanish from the @code{nnmairix} group after you have updated the
 -mairix database and updated the group.  Fortunately, there is a function
 -for doing exactly that: @code{nnmairix-update-groups}. See the previous code
 -snippet and the doc string for details.
 -
 -@item
 -Dealing with auto-subscription of mail groups
 -
 -As described before, all @code{nnmairix} groups are in fact stored on
 -the mail back end in the form @samp{zz_mairix-<NAME>-<NUMBER>}. You can
 -see them when you enter the back end server in the server buffer. You
 -should not subscribe these groups! Unfortunately, these groups will
 -usually get @emph{auto-subscribed} when you use @code{nnmaildir} or
 -@code{nnml}, i.e. you will suddenly see groups of the form
 -@samp{zz_mairix*} pop up in your group buffer. If this happens to you,
 -simply kill these groups with C-k.  For avoiding this, turn off
 -auto-subscription completely by setting the variable
 -@code{gnus-auto-subscribed-groups} to @code{nil} (@pxref{Filtering New
 -Groups}), or if you like to keep this feature use the following kludge
 -for turning it off for all groups beginning with @samp{zz_}:
 -
 -@lisp
 -(setq gnus-auto-subscribed-groups
 -      "^\\(nnml\\|nnfolder\\|nnmbox\\|nnmh\\|nnbabyl\\|nnmaildir\\).*:\\([^z]\\|z$\\|\\z[^z]\\|zz$\\|zz[^_]\\|zz_$\\).*")
 -@end lisp
 -
 -@end itemize
 -
 -@node nnmairix caveats
 -@subsubsection nnmairix caveats
 -
 -@itemize
 -@item
 -You can create a secondary @code{nnml} server just for nnmairix, but then
 -you have to explicitly set the corresponding server variable
 -@code{nnml-get-new-mail} to @code{nil}.  Otherwise, new mail might get
 -put into this secondary server (and would never show up again).  Here's
 -an example server definition:
 -
 -@lisp
 -(nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil))
 -@end lisp
 -
 -(The @code{nnmaildir} back end also has a server variabe
 -@code{get-new-mail}, but its default value is @code{nil}, so you don't
 -have to explicitly set it if you use a @code{nnmaildir} server just for
 -mairix.)
 -
 -@item
 -If you use the Gnus registry: don't use the registry with
 -@code{nnmairix} groups (put them in
 -@code{gnus-registry-unfollowed-groups}).  Be @emph{extra careful} if
 -you use @code{gnus-registry-split-fancy-with-parent}; mails which are
 -split into @code{nnmairix} groups are usually gone for good as soon as
 -you check the group for new mail (yes, it has happened to me...).
 -
 -@item
 -Therefore: @emph{Never ever} put ``real'' mails into @code{nnmairix}
 -groups (you shouldn't be able to, anyway).
 -
 -@item
 -If you use the Gnus agent (@pxref{Gnus Unplugged}): don't agentize
 -@code{nnmairix} groups (though I have no idea what happens if you do).
 -
 -@item
 -mairix does only support us-ascii characters.
 -
 -@item
 -@code{nnmairix} uses a rather brute force method to force Gnus to
 -completely reread the group on the mail back end after mairix was
 -called---it simply deletes and re-creates the group on the mail
 -back end. So far, this has worked for me without any problems, and I
 -don't see how @code{nnmairix} could delete other mail groups than its
 -own, but anyway: you really should have a backup of your mail
 -folders.
 -
 -@item
 -All necessary information is stored in the group parameters
 -(@pxref{Group Parameters}). This has the advantage that no active file
 -is needed, but also implies that when you kill a @code{nnmairix} group,
 -it is gone for good.
 -
 -@item
 -@findex nnmairix-purge-old-groups
 -If you create and kill a lot of @code{nnmairix} groups, the
 -``zz_mairix-*'' groups will accumulate on the mail back end server. To
 -delete old groups which are no longer needed, call
 -@code{nnmairix-purge-old-groups}. Note that this assumes that you don't
 -save any ``real'' mail in folders of the form
 -@code{zz_mairix-<NAME>-<NUMBER>}. You can change the prefix of
 -@code{nnmairix} groups by changing the variable
 -@code{nnmairix-group-prefix}.
 -
 -@item
 -The following only applies if you @emph{don't} use the mentioned patch
 -for mairix (@pxref{Propagating marks}):
 -
 -A problem can occur when using @code{nnmairix} with maildir folders and
 -comes with the fact that maildir stores mail flags like @samp{Seen} or
 -@samp{Replied} by appending chars @samp{S} and @samp{R} to the message
 -file name, respectively. This implies that currently you would have to
 -update the mairix database not only when new mail arrives, but also when
 -mail flags are changing. The same applies to new mails which are indexed
 -while they are still in the @samp{new} folder but then get moved to
 -@samp{cur} when Gnus has seen the mail. If you don't update the database
 -after this has happened, a mairix query can lead to symlinks pointing to
 -non-existing files. In Gnus, these messages will usually appear with
 -``(none)'' entries in the header and can't be accessed. If this happens
 -to you, using @kbd{G b u} and updating the group will usually fix this.
 -
 -@end itemize
 -
 -@node Misc Group Stuff
 -@section Misc Group Stuff
 -
 -@menu
 -* Scanning New Messages::       Asking Gnus to see whether new messages have arrived.
 -* Group Information::           Information and help on groups and Gnus.
 -* Group Timestamp::             Making Gnus keep track of when you last read a group.
 -* File Commands::               Reading and writing the Gnus files.
 -* Sieve Commands::              Managing Sieve scripts.
 -@end menu
 -
 -@table @kbd
 -
 -@item v
 -@kindex v (Group)
 -@cindex keys, reserved for users (Group)
 -The key @kbd{v} is reserved for users.  You can bind it to some
 -command or better use it as a prefix key.  For example:
 -
 -@lisp
 -(define-key gnus-group-mode-map (kbd "v j d")
 -  (lambda ()
 -    (interactive)
 -    (gnus-group-jump-to-group "nndraft:drafts")))
 -@end lisp
 -
 -On keys reserved for users in Emacs and on keybindings in general
 -@xref{Keymaps, Keymaps, , emacs, The Emacs Editor}.
 -
 -@item ^
 -@kindex ^ (Group)
 -@findex gnus-group-enter-server-mode
 -Enter the server buffer (@code{gnus-group-enter-server-mode}).
 -@xref{Server Buffer}.
 -
 -@item a
 -@kindex a (Group)
 -@findex gnus-group-post-news
 -Start composing a message (a news by default)
 -(@code{gnus-group-post-news}).  If given a prefix, post to the group
 -under the point.  If the prefix is 1, prompt for a group to post to.
 -Contrary to what the name of this function suggests, the prepared
 -article might be a mail instead of a news, if a mail group is specified
 -with the prefix argument.  @xref{Composing Messages}.
 -
 -@item m
 -@kindex m (Group)
 -@findex gnus-group-mail
 -Mail a message somewhere (@code{gnus-group-mail}).  If given a prefix,
 -use the posting style of the group under the point.  If the prefix is 1,
 -prompt for a group name to find the posting style.
 -@xref{Composing Messages}.
 -
 -@item i
 -@kindex i (Group)
 -@findex gnus-group-news
 -Start composing a news (@code{gnus-group-news}).  If given a prefix,
 -post to the group under the point.  If the prefix is 1, prompt
 -for group to post to.  @xref{Composing Messages}.
 -
 -This function actually prepares a news even when using mail groups.
 -This is useful for ``posting'' messages to mail groups without actually
 -sending them over the network: they're just saved directly to the group
 -in question.  The corresponding back end must have a request-post method
 -for this to work though.
 -
 -@item G z
 -@kindex G z (Group)
 -@findex gnus-group-compact-group
 -
 -Compact the group under point (@code{gnus-group-compact-group}).
 -Currently implemented only in nnml (@pxref{Mail Spool}).  This removes
 -gaps between article numbers, hence getting a correct total article
 -count.
 -
 -@end table
 -
 -Variables for the group buffer:
 -
 -@table @code
 -
 -@item gnus-group-mode-hook
 -@vindex gnus-group-mode-hook
 -is called after the group buffer has been
 -created.
 -
 -@item gnus-group-prepare-hook
 -@vindex gnus-group-prepare-hook
 -is called after the group buffer is
 -generated.  It may be used to modify the buffer in some strange,
 -unnatural way.
 -
 -@item gnus-group-prepared-hook
 -@vindex gnus-group-prepare-hook
 -is called as the very last thing after the group buffer has been
 -generated.  It may be used to move point around, for instance.
 -
 -@item gnus-permanently-visible-groups
 -@vindex gnus-permanently-visible-groups
 -Groups matching this regexp will always be listed in the group buffer,
 -whether they are empty or not.
 -
 -@end table
 -
 -@node Scanning New Messages
 -@subsection Scanning New Messages
 -@cindex new messages
 -@cindex scanning new news
 -
 -@table @kbd
 -
 -@item g
 -@kindex g (Group)
 -@findex gnus-group-get-new-news
 -@c @icon{gnus-group-get-new-news}
 -Check the server(s) for new articles.  If the numerical prefix is used,
 -this command will check only groups of level @var{arg} and lower
 -(@code{gnus-group-get-new-news}).  If given a non-numerical prefix, this
 -command will force a total re-reading of the active file(s) from the
 -back end(s).
 -
 -@item M-g
 -@kindex M-g (Group)
 -@findex gnus-group-get-new-news-this-group
 -@vindex gnus-goto-next-group-when-activating
 -@c @icon{gnus-group-get-new-news-this-group}
 -Check whether new articles have arrived in the current group
 -(@code{gnus-group-get-new-news-this-group}).
 -@code{gnus-goto-next-group-when-activating} says whether this command is
 -to move point to the next group or not.  It is @code{t} by default.
 -
 -@findex gnus-activate-all-groups
 -@cindex activating groups
 -@item C-c M-g
 -@kindex C-c M-g (Group)
 -Activate absolutely all groups (@code{gnus-activate-all-groups}).
 -
 -@item R
 -@kindex R (Group)
 -@cindex restarting
 -@findex gnus-group-restart
 -Restart Gnus (@code{gnus-group-restart}).  This saves the @file{.newsrc}
 -file(s), closes the connection to all servers, clears up all run-time
 -Gnus variables, and then starts Gnus all over again.
 -
 -@end table
 -
 -@vindex gnus-get-new-news-hook
 -@code{gnus-get-new-news-hook} is run just before checking for new news.
 -
 -@vindex gnus-after-getting-new-news-hook
 -@code{gnus-after-getting-new-news-hook} is run after checking for new
 -news.
 -
 -
 -@node Group Information
 -@subsection Group Information
 -@cindex group information
 -@cindex information on groups
 -
 -@table @kbd
 -
 -
 -@item H f
 -@kindex H f (Group)
 -@findex gnus-group-fetch-faq
 -@vindex gnus-group-faq-directory
 -@cindex FAQ
 -@cindex ange-ftp
 -Try to fetch the @acronym{FAQ} for the current group
 -(@code{gnus-group-fetch-faq}).  Gnus will try to get the @acronym{FAQ}
 -from @code{gnus-group-faq-directory}, which is usually a directory on
 -a remote machine.  This variable can also be a list of directories.
 -In that case, giving a prefix to this command will allow you to choose
 -between the various sites.  @code{ange-ftp} (or @code{efs}) will be
 -used for fetching the file.
 -
 -If fetching from the first site is unsuccessful, Gnus will attempt to go
 -through @code{gnus-group-faq-directory} and try to open them one by one.
 -
 -@item H c
 -@kindex H c (Group)
 -@findex gnus-group-fetch-charter
 -@vindex gnus-group-charter-alist
 -@cindex charter
 -Try to open the charter for the current group in a web browser
 -(@code{gnus-group-fetch-charter}).  Query for a group if given a
 -prefix argument.
 -
 -Gnus will use @code{gnus-group-charter-alist} to find the location of
 -the charter.  If no location is known, Gnus will fetch the control
 -messages for the group, which in some cases includes the charter.
 -
 -@item H C
 -@kindex H C (Group)
 -@findex gnus-group-fetch-control
 -@vindex gnus-group-fetch-control-use-browse-url
 -@cindex control message
 -Fetch the control messages for the group from the archive at
 -@code{ftp.isc.org} (@code{gnus-group-fetch-control}).  Query for a
 -group if given a prefix argument.
 -
 -If @code{gnus-group-fetch-control-use-browse-url} is non-@code{nil},
 -Gnus will open the control messages in a browser using
 -@code{browse-url}.  Otherwise they are fetched using @code{ange-ftp}
 -and displayed in an ephemeral group.
 -
 -Note that the control messages are compressed.  To use this command
 -you need to turn on @code{auto-compression-mode} (@pxref{Compressed
 -Files, ,Compressed Files, emacs, The Emacs Manual}).
 -
 -@item H d
 -@itemx C-c C-d
 -@c @icon{gnus-group-describe-group}
 -@kindex H d (Group)
 -@kindex C-c C-d (Group)
 -@cindex describing groups
 -@cindex group description
 -@findex gnus-group-describe-group
 -Describe the current group (@code{gnus-group-describe-group}).  If given
 -a prefix, force Gnus to re-read the description from the server.
 -
 -@item M-d
 -@kindex M-d (Group)
 -@findex gnus-group-describe-all-groups
 -Describe all groups (@code{gnus-group-describe-all-groups}).  If given a
 -prefix, force Gnus to re-read the description file from the server.
 -
 -@item H v
 -@itemx V
 -@kindex V (Group)
 -@kindex H v (Group)
 -@cindex version
 -@findex gnus-version
 -Display current Gnus version numbers (@code{gnus-version}).
 -
 -@item ?
 -@kindex ? (Group)
 -@findex gnus-group-describe-briefly
 -Give a very short help message (@code{gnus-group-describe-briefly}).
 -
 -@item C-c C-i
 -@kindex C-c C-i (Group)
 -@cindex info
 -@cindex manual
 -@findex gnus-info-find-node
 -Go to the Gnus info node (@code{gnus-info-find-node}).
 -@end table
 -
 -
 -@node Group Timestamp
 -@subsection Group Timestamp
 -@cindex timestamps
 -@cindex group timestamps
 -
 -It can be convenient to let Gnus keep track of when you last read a
 -group.  To set the ball rolling, you should add
 -@code{gnus-group-set-timestamp} to @code{gnus-select-group-hook}:
 -
 -@lisp
 -(add-hook 'gnus-select-group-hook 'gnus-group-set-timestamp)
 -@end lisp
 -
 -After doing this, each time you enter a group, it'll be recorded.
 -
 -This information can be displayed in various ways---the easiest is to
 -use the @samp{%d} spec in the group line format:
 -
 -@lisp
 -(setq gnus-group-line-format
 -      "%M\%S\%p\%P\%5y: %(%-40,40g%) %d\n")
 -@end lisp
 -
 -This will result in lines looking like:
 -
 -@example
 -*        0: mail.ding                                19961002T012943
 -         0: custom                                   19961002T012713
 -@end example
 -
 -As you can see, the date is displayed in compact ISO 8601 format.  This
 -may be a bit too much, so to just display the date, you could say
 -something like:
 -
 -@lisp
 -(setq gnus-group-line-format
 -      "%M\%S\%p\%P\%5y: %(%-40,40g%) %6,6~(cut 2)d\n")
 -@end lisp
 -
 -If you would like greater control of the time format, you can use a
 -user-defined format spec.  Something like the following should do the
 -trick:
 -
 -@lisp
 -(setq gnus-group-line-format
 -      "%M\%S\%p\%P\%5y: %(%-40,40g%) %ud\n")
 -(defun gnus-user-format-function-d (headers)
 -  (let ((time (gnus-group-timestamp gnus-tmp-group)))
 -    (if time
 -        (format-time-string "%b %d  %H:%M" time)
 -      "")))
 -@end lisp
 -
 -
 -@node File Commands
 -@subsection File Commands
 -@cindex file commands
 -
 -@table @kbd
 -
 -@item r
 -@kindex r (Group)
 -@findex gnus-group-read-init-file
 -@vindex gnus-init-file
 -@cindex reading init file
 -Re-read the init file (@code{gnus-init-file}, which defaults to
 -@file{~/.gnus.el}) (@code{gnus-group-read-init-file}).
 +@item r
 +@kindex r (Group)
 +@findex gnus-group-read-init-file
 +@vindex gnus-init-file
 +@cindex reading init file
 +Re-read the init file (@code{gnus-init-file}, which defaults to
 +@file{~/.gnus.el}) (@code{gnus-group-read-init-file}).
  
  @item s
  @kindex s (Group)
@@@ -4948,7 -5735,7 +4948,7 @@@ Download mark
  Desired cursor position (instead of after first colon).
  @item &user-date;
  Age sensitive date format.  Various date format is defined in
 -@code{gnus-user-date-format-alist}.
 +@code{gnus-summary-user-date-format-alist}.
  @item u
  User defined specifier.  The next character in the format string should
  be a letter.  Gnus will call the function
@@@ -5247,11 -6034,6 +5247,11 @@@ threads
  This variable can also be a number.  In that case, center the window at
  the given number of lines from the top.
  
 +@item gnus-summary-stop-at-end-of-message
 +@vindex gnus-summary-stop-at-end-of-message
 +If non-@code{nil}, don't go to the next article when hitting
 +@kbd{SPC}, and you're at the end of the article.
 +
  @end table
  
  
@@@ -5457,10 -6239,9 +5457,10 @@@ Scroll the current article one line bac
  @findex gnus-summary-show-article
  @vindex gnus-summary-show-article-charset-alist
  (Re)fetch the current article (@code{gnus-summary-show-article}).  If
 -given a prefix, fetch the current article, but don't run any of the
 -article treatment functions.  This will give you a ``raw'' article, just
 -the way it came from the server.
 +given a prefix, show a completely ``raw'' article, just the way it
 +came from the server.  If given a prefix twice (i.e., @kbd{C-u C-u
 +g'}), fetch the current article, but don't run any of the article
 +treatment functions.
  
  @cindex charset, view article with different charset
  If given a numerical prefix, you can do semi-manual charset stuff.
@@@ -5560,8 -6341,7 +5560,8 @@@ present, that's used instead
  @findex gnus-summary-wide-reply-with-original
  Mail a wide reply to the current article and include the original
  message (@code{gnus-summary-wide-reply-with-original}).  This command uses
 -the process/prefix convention.
 +the process/prefix convention, but only uses the headers from the
 +first article to determine the recipients.
  
  @item S v
  @kindex S v (Summary)
@@@ -5625,6 -6405,8 +5625,6 @@@ the posting style of the current group
  If the prefix is 1, prompt for a group name to find the posting style.
  
  @item S i
 -@itemx i
 -@kindex i (Summary)
  @kindex S i (Summary)
  @findex gnus-summary-news-other-window
  Prepare a news (@code{gnus-summary-news-other-window}).  By default,
@@@ -5962,12 -6744,6 +5962,12 @@@ Presumably, you want to use the demon f
  Just don't forget to set that up :-)
  @end table
  
 +When delaying an article with @kbd{C-c C-j}, Message mode will
 +automatically add a @code{"Date"} header with the current time.  In
 +many cases you probably want the @code{"Date"} header to reflect the
 +time the message is sent instead.  To do this, you have to delete
 +@code{Date} from @code{message-draft-headers}.
 +
  
  @node Marking Articles
  @section Marking Articles
@@@ -6076,6 -6852,10 +6076,6 @@@ Marked as read by a catchup (@code{gnus
  @vindex gnus-canceled-mark
  Canceled article (@code{gnus-canceled-mark})
  
 -@item F
 -@vindex gnus-souped-mark
 -@sc{soup}ed article (@code{gnus-souped-mark}).  @xref{SOUP}.
 -
  @item Q
  @vindex gnus-sparse-mark
  Sparsely reffed article (@code{gnus-sparse-mark}).  @xref{Customizing
@@@ -7046,7 -7826,7 +7046,7 @@@ This is a rather obscure variable that 
  intended for those non-news newsgroups where the back end has to fetch
  quite a lot to present the summary buffer, and where it's impossible to
  go back to parents of articles.  This is mostly the case in the
 -web-based groups, like the @code{nnultimate} groups.
 +web-based groups.
  
  If you don't use those, then it's safe to leave this as the default
  @code{nil}.  If you want to use this variable, it should be a regexp
@@@ -7482,16 -8262,6 +7482,16 @@@ These functions will be called many, ma
  preferably be short and sweet to avoid slowing down Gnus too much.
  It's probably a good idea to byte-compile things like this.
  
 +@vindex gnus-async-post-fetch-function
 +@findex gnus-html-prefetch-images
 +After an article has been prefetched, this
 +@code{gnus-async-post-fetch-function} will be called.  The buffer will
 +be narrowed to the region of the article that was fetched.  A useful
 +value would be @code{gnus-html-prefetch-images}, which will prefetch
 +and store images referenced in the article, so that you don't have to
 +wait for them to be fetched when you read the article.  This is useful
 +for @acronym{HTML} messages that have external images.
 +
  @vindex gnus-prefetched-article-deletion-strategy
  Articles have to be removed from the asynch buffer sooner or later.  The
  @code{gnus-prefetched-article-deletion-strategy} says when to remove
@@@ -8496,8 -9266,7 +8496,8 @@@ these articles easier
  * Article Buttons::             Click on URLs, Message-IDs, addresses and the like.
  * Article Button Levels::       Controlling appearance of buttons.
  * Article Date::                Grumble, UT!
 -* Article Display::             Display various stuff---X-Face, Picons, Smileys
 +* Article Display::             Display various stuff:
 +                                X-Face, Picons, Gravatars, Smileys.
  * Article Signature::           What is a signature?
  * Article Miscellanea::         Various other stuff.
  @end menu
@@@ -8758,14 -9527,6 +8758,14 @@@ signature should be removed, or other s
  corresponding regular expression in @code{gnus-article-banner-alist} is
  used.
  
 +For instance:
 +
 +@lisp
 +(setq gnus-article-banner-alist
 +      ((googleGroups .
 +       "^\n*--~--~---------\\(.+\n\\)+")))
 +@end lisp
 +
  Regardless of a group, you can hide things like advertisements only when
  the sender of an article has a certain mail address specified in
  @code{gnus-article-address-banner-alist}.
@@@ -8969,17 -9730,6 +8969,17 @@@ an attempt to provide more quoting char
  like @code{\222} or @code{\264} where you're expecting some kind of
  apostrophe or quotation mark, then try this wash.
  
 +@item W U
 +@kindex W U (Summary)
 +@findex gnus-article-treat-non-ascii
 +@cindex Unicode
 +@cindex Non-@acronym{ASCII}
 +Translate many non-@acronym{ASCII} characters into their
 +@acronym{ASCII} equivalents (@code{gnus-article-treat-non-ascii}).
 +This is mostly useful if you're on a terminal that has a limited font
 +and does't show accented characters, ``advanced'' punctuation, and the
 +like.  For instance, @samp{»} is tranlated into @samp{>>}, and so on.
 +
  @item W Y f
  @kindex W Y f (Summary)
  @findex gnus-article-outlook-deuglify-article
@@@ -9095,18 -9845,15 +9095,18 @@@ If a prefix is given, a charset will b
  the charset defined in @code{gnus-summary-show-article-charset-alist}
  (@pxref{Paging the Article}) will be used.
  
 -@vindex gnus-article-wash-function
  The default is to use the function specified by
  @code{mm-text-html-renderer} (@pxref{Display Customization, ,Display
  Customization, emacs-mime, The Emacs MIME Manual}) to convert the
 -@acronym{HTML}, but this is controlled by the
 -@code{gnus-article-wash-function} variable.  Pre-defined functions you
 -can use include:
 +@acronym{HTML}.  Pre-defined functions you can use include:
  
  @table @code
 +@item shr
 +Use Gnus simple html renderer.
 +
 +@item gnus-w3m
 +Use Gnus rendered based on w3m.
 +
  @item w3
  Use Emacs/W3.
  
@@@ -9371,6 -10118,18 +9371,6 @@@ string is invalid
  An alist of @code{(RATE . REGEXP)} pairs used by the function
  @code{gnus-button-mid-or-mail-heuristic}.
  
 -@c Stuff related to gnus-button-tex-level
 -
 -@item gnus-button-ctan-handler
 -@findex gnus-button-ctan-handler
 -The function to use for displaying CTAN links.  It must take one
 -argument, the string naming the URL.
 -
 -@item gnus-ctan-url
 -@vindex gnus-ctan-url
 -Top directory of a CTAN (Comprehensive TeX Archive Network) archive used
 -by @code{gnus-button-ctan-handler}.
 -
  @c Misc stuff
  
  @item gnus-article-button-face
@@@ -9443,6 -10202,14 +9443,6 @@@ Related variables and functions includ
  @code{gnus-button-mid-or-mail-heuristic}, and
  @code{gnus-button-mid-or-mail-heuristic-alist}.
  
 -@item gnus-button-tex-level
 -@vindex gnus-button-tex-level
 -Controls the display of references to @TeX{} or LaTeX stuff, e.g. for CTAN
 -URLs.  See the variables @code{gnus-ctan-url},
 -@code{gnus-button-ctan-handler},
 -@code{gnus-button-ctan-directory-regexp}, and
 -@code{gnus-button-handle-ctan-bogus-regexp}.
 -
  @end table
  
  
@@@ -9499,21 -10266,26 +9499,21 @@@ Say how much time has elapsed between t
  (@code{gnus-article-date-lapsed}).  It looks something like:
  
  @example
 -X-Sent: 6 weeks, 4 days, 1 hour, 3 minutes, 8 seconds ago
 +Date: 6 weeks, 4 days, 1 hour, 3 minutes, 8 seconds ago
  @end example
  
 -@vindex gnus-article-date-lapsed-new-header
 -The value of @code{gnus-article-date-lapsed-new-header} determines
 -whether this header will just be added below the old Date one, or will
 -replace it.
 -
 -An advantage of using Gnus to read mail is that it converts simple bugs
 -into wonderful absurdities.
 +This line is updated continually by default.  The frequency (in
 +seconds) is controlled by the @code{gnus-article-update-date-headers}
 +variable.
  
 -If you want to have this line updated continually, you can put
 +If you wish to switch updating off, say:
  
 +@vindex gnus-article-update-date-headers
  @lisp
 -(gnus-start-date-timer)
 +(setq gnus-article-update-date-headers nil)
  @end lisp
  
 -in your @file{~/.gnus.el} file, or you can run it off of some hook.  If
 -you want to stop the timer, you can use the @code{gnus-stop-date-timer}
 -command.
 +in your @file{~/.gnus.el} file.
  
  @item W T o
  @kindex W T o (Summary)
@@@ -9535,7 -10307,6 +9535,7 @@@ preferred format automatically
  @cindex picons
  @cindex x-face
  @cindex smileys
 +@cindex gravatars
  
  These commands add various frivolous display gimmicks to the article
  buffer in Emacs versions that support them.
@@@ -9552,9 -10323,6 +9552,9 @@@ their messages with (@pxref{Smileys})
  Picons, on the other hand, reside on your own system, and Gnus will
  try to match the headers to what you have (@pxref{Picons}).
  
 +Gravatars reside on-line and are fetched from
 +@uref{http://www.gravatar.com/} (@pxref{Gravatars}).
 +
  All these functions are toggles---if the elements already exist,
  they'll be removed.
  
@@@ -9593,31 -10361,12 +9593,31 @@@ Piconify all mail headers (i. e., @code
  Piconify all news headers (i. e., @code{Newsgroups} and
  @code{Followup-To}) (@code{gnus-treat-newsgroups-picon}).
  
 +@item W D g
 +@kindex W D g (Summary)
 +@findex gnus-treat-from-gravatar
 +Gravatarify the @code{From} header (@code{gnus-treat-from-gravatar}).
 +
 +@item W D h
 +@kindex W D h (Summary)
 +@findex gnus-treat-mail-gravatar
 +Gravatarify all mail headers (i. e., @code{Cc}, @code{To})
 +(@code{gnus-treat-from-gravatar}).
 +
  @item W D D
  @kindex W D D (Summary)
  @findex gnus-article-remove-images
  Remove all images from the article buffer
  (@code{gnus-article-remove-images}).
  
 +@item W D W
 +@kindex W D W (Summary)
 +@findex gnus-html-show-images
 +If you're reading an @acronym{HTML} article rendered with
 +@code{gnus-article-html}, then you can insert any blocked images in
 +the buffer with this command.
 +(@code{gnus-html-show-images}).
 +
  @end table
  
  
@@@ -9757,24 -10506,17 +9757,24 @@@ the same manner
  @kindex K H (Summary)
  @findex gnus-article-browse-html-article
  View @samp{text/html} parts of the current article with a WWW browser.
 -The message header is added to the beginning of every html part unless
 -the prefix argument is given.
 +Inline images embedded in a message using the @code{cid} scheme, as they
 +are generally considered to be safe, will be processed properly.  The
 +message header is added to the beginning of every @acronym{HTML} part
 +unless the prefix argument is given.
  
 -Warning: Spammers use links to images in HTML articles to verify whether
 -you have read the message.  As this command passes the @acronym{HTML}
 -content to the browser without eliminating these ``web bugs'' you should
 -only use it for mails from trusted senders.
 +Warning: Spammers use links to images (using the @code{http} scheme) in
 +@acronym{HTML} articles to verify whether you have read the message.  As
 +this command passes the @acronym{HTML} content to the browser without
 +eliminating these ``web bugs'' you should only use it for mails from
 +trusted senders.
  
  If you always want to display @acronym{HTML} parts in the browser, set
  @code{mm-text-html-renderer} to @code{nil}.
  
 +This command creates temporary files to pass @acronym{HTML} contents
 +including images if any to the browser, and deletes them when exiting
 +the group (if you want).
 +
  @item K b
  @kindex K b (Summary)
  Make all the @acronym{MIME} parts have buttons in front of them.  This is
@@@ -10089,16 -10831,6 +10089,16 @@@ Generate and print a PostScript image o
  be run just before printing the buffer.  An alternative way to print
  article is to use Muttprint (@pxref{Saving Articles}).
  
 +@item A C
 +@vindex gnus-fetch-partial-articles
 +@findex gnus-summary-show-complete-article
 +If @code{<backend>-fetch-partial-articles} is non-@code{nil}, Gnus will
 +fetch partial articles, if the backend it fetches them from supports
 +it.  Currently only @code{nnimap} does.  If you're looking at a
 +partial article, and want to see the complete article instead, then
 +the @kbd{A C} command (@code{gnus-summary-show-complete-article}) will
 +do so.
 +
  @end table
  
  
@@@ -10276,12 -11008,9 +10276,12 @@@ do not do a particularly excellent job 
  @code{nnbabyl}, @code{nnmaildir}, @code{nnml}, are able to locate
  articles from any groups, while @code{nnfolder}, and @code{nnimap} are
  only able to locate articles that have been posted to the current
 -group.  (Anything else would be too time consuming.)  @code{nnmh} does
 -not support this at all.
 +group.  @code{nnmh} does not support this at all.
  
 +Fortunately, the special @code{nnregistry} back end is able to locate
 +articles in any groups, regardless of their back end (@pxref{Registry
 +Article Refer Method, fetching by @code{Message-ID} using the
 +registry}).
  
  @node Alternative Approaches
  @section Alternative Approaches
@@@ -10825,6 -11554,18 +10825,6 @@@ sieve
  
  @table @kbd
  
 -@item H f
 -@kindex H f (Summary)
 -@findex gnus-summary-fetch-faq
 -@vindex gnus-group-faq-directory
 -Try to fetch the @acronym{FAQ} (list of frequently asked questions)
 -for the current group (@code{gnus-summary-fetch-faq}).  Gnus will try
 -to get the @acronym{FAQ} from @code{gnus-group-faq-directory}, which
 -is usually a directory on a remote machine.  This variable can also be
 -a list of directories.  In that case, giving a prefix to this command
 -will allow you to choose between the various sites.  @code{ange-ftp}
 -or @code{efs} will probably be used for fetching the file.
 -
  @item H d
  @kindex H d (Summary)
  @findex gnus-summary-describe-group
@@@ -11150,7 -11891,8 +11150,7 @@@ read the same article more than once.  
  posted it to several groups separately.  Posting the same article to
  several groups (not cross-posting) is called @dfn{spamming}, and you are
  by law required to send nasty-grams to anyone who perpetrates such a
 -heinous crime.  You may want to try NoCeM handling to filter out spam
 -(@pxref{NoCeM}).
 +heinous crime.
  
  Remember: Cross-posting is kinda ok, but posting the same article
  separately to several groups is not.  Massive cross-posting (aka.
@@@ -11281,7 -12023,7 +11281,7 @@@ To handle @acronym{PGP} and @acronym{PG
  install an OpenPGP implementation such as GnuPG.  The Lisp interface
  to GnuPG included with Emacs is called EasyPG (@pxref{Top, ,EasyPG,
  epa, EasyPG Assistant user's manual}), but PGG (@pxref{Top, ,PGG, pgg,
 -PGG Manual}), Mailcrypt, and gpg.el are also supported.
 +PGG Manual}), and Mailcrypt are also supported.
  
  @item
  To handle @acronym{S/MIME} message, you need to install OpenSSL.  OpenSSL 0.9.6
@@@ -11320,7 -12062,7 +11320,7 @@@ public-key matching the @samp{From:} he
  @vindex mml1991-use
  Symbol indicating elisp interface to OpenPGP implementation for
  @acronym{PGP} messages.  The default is @code{epg}, but @code{pgg},
 -@code{mailcrypt}, and @code{gpg} are also supported although
 +and @code{mailcrypt} are also supported although
  deprecated.  By default, Gnus uses the first available interface in
  this order.
  
  @vindex mml2015-use
  Symbol indicating elisp interface to OpenPGP implementation for
  @acronym{PGP/MIME} messages.  The default is @code{epg}, but
 -@code{pgg}, @code{mailcrypt}, and @code{gpg} are also supported
 +@code{pgg}, and @code{mailcrypt} are also supported
  although deprecated.  By default, Gnus uses the first available
  interface in this order.
  
@@@ -11428,7 -12170,6 +11428,7 @@@ tell Gnus otherwise
  @menu
  * Hiding Headers::              Deciding what headers should be displayed.
  * Using MIME::                  Pushing articles through @acronym{MIME} before reading them.
 +* HTML::                        Reading @acronym{HTML} messages.
  * Customizing Articles::        Tailoring the look of the articles.
  * Article Keymap::              Keystrokes available in the article buffer.
  * Misc Article::                Other stuff.
@@@ -11720,78 -12461,9 +11720,78 @@@ try to stop the program, but you can't
  to control the volume, and everybody else in the room suddenly decides
  to look at you disdainfully, and you'll feel rather stupid.)
  
 -Any similarity to real events and people is purely coincidental.  Ahem.
 +Any similarity to real events and people is purely coincidental.  Ahem.
 +
 +Also @pxref{MIME Commands}.
 +
 +
 +@node HTML
 +@section @acronym{HTML}
 +@cindex @acronym{HTML}
 +
 +If you have @code{w3m} installed on your system, Gnus can display
 +@acronym{HTML} articles in the article buffer.  There are many Gnus
 +add-ons for doing this, using various approaches, but there's one
 +(sort of) built-in method that's used by default.
 +
 +For a complete overview, consult @xref{Display Customization,
 +,Display Customization, emacs-mime, The Emacs MIME Manual}.  This
 +section only describes the default method.
 +
 +@table @code
 +@item mm-text-html-renderer
 +@vindex mm-text-html-renderer
 +If set to @code{gnus-article-html}, Gnus will use the built-in method,
 +that's based on @code{w3m}.
 +
 +@item gnus-blocked-images
 +@vindex gnus-blocked-images
 +External images that have @acronym{URL}s that match this regexp won't
 +be fetched and displayed.  For instance, do block all @acronym{URL}s
 +that have the string ``ads'' in them, do the following:
 +
 +@lisp
 +(setq gnus-blocked-images "ads")
 +@end lisp
 +
 +This can also be a function to be evaluated.  If so, it will be
 +called with the group name as the parameter.  The default value is
 +@code{gnus-block-private-groups}, which will return @samp{"."} for
 +anything that isn't a newsgroup.  This means that no external images
 +will be fetched as a result of reading mail, so that nobody can use
 +web bugs (and the like) to track whether you've read email.
 +
 +Also @pxref{Misc Article} for @code{gnus-inhibit-images}.
 +
 +@item gnus-html-cache-directory
 +@vindex gnus-html-cache-directory
 +Gnus will download and cache images according to how
 +@code{gnus-blocked-images} is set.  These images will be stored in
 +this directory.
 +
 +@item gnus-html-cache-size
 +@vindex gnus-html-cache-size
 +When @code{gnus-html-cache-size} bytes have been used in that
 +directory, the oldest files will be deleted.  The default is 500MB.
 +
 +@item gnus-html-frame-width
 +@vindex gnus-html-frame-width
 +The width to use when rendering HTML.  The default is 70.
 +
 +@item gnus-max-image-proportion
 +@vindex gnus-max-image-proportion
 +How big pictures displayed are in relation to the window they're in.
 +A value of 0.7 (the default) means that they are allowed to take up
 +70% of the width and height of the window.  If they are larger than
 +this, and Emacs supports it, then the images will be rescaled down to
 +fit these criteria.
 +
 +@end table
 +
 +To use this, make sure that you have @code{w3m} and @code{curl}
 +installed.  If you have, then Gnus should display @acronym{HTML}
 +automatically. 
  
 -Also @pxref{MIME Commands}.
  
  
  @node Customizing Articles
@@@ -11879,12 -12551,16 +11879,12 @@@ controlling variable is a predicate lis
  @vindex gnus-treat-strip-trailing-blank-lines
  @vindex gnus-treat-unsplit-urls
  @vindex gnus-treat-wash-html
 -@vindex gnus-treat-date-english
 -@vindex gnus-treat-date-iso8601
 -@vindex gnus-treat-date-lapsed
 -@vindex gnus-treat-date-local
 -@vindex gnus-treat-date-original
 -@vindex gnus-treat-date-user-defined
 -@vindex gnus-treat-date-ut
 +@vindex gnus-treat-date
  @vindex gnus-treat-from-picon
  @vindex gnus-treat-mail-picon
  @vindex gnus-treat-newsgroups-picon
 +@vindex gnus-treat-from-gravatar
 +@vindex gnus-treat-mail-gravatar
  @vindex gnus-treat-display-smileys
  @vindex gnus-treat-body-boundary
  @vindex gnus-treat-display-x-face
  @vindex gnus-treat-highlight-headers
  @vindex gnus-treat-highlight-signature
  @vindex gnus-treat-play-sounds
 -@vindex gnus-treat-translate
  @vindex gnus-treat-x-pgp-sig
  @vindex gnus-treat-unfold-headers
  @vindex gnus-treat-fold-headers
@@@ -11934,39 -12611,13 +11934,39 @@@ possible but those listed are probably 
  
  @xref{Article Washing}.
  
 -@item gnus-treat-date-english (head)
 -@item gnus-treat-date-iso8601 (head)
 -@item gnus-treat-date-lapsed (head)
 -@item gnus-treat-date-local (head)
 -@item gnus-treat-date-original (head)
 -@item gnus-treat-date-user-defined (head)
 -@item gnus-treat-date-ut (head)
 +@item gnus-treat-date (head)
 +
 +This will transform/add date headers according to the
 +@code{gnus-article-date-headers} variable.  This is a list of Date
 +headers to display.  The formats available are:
 +
 +@table @code
 +@item ut
 +Universal time, aka GMT, aka ZULU.
 +
 +@item local
 +The user's local time zone.
 +
 +@item english
 +A semi-readable English sentence.
 +
 +@item lapsed
 +The time elapsed since the message was posted.
 +
 +@item combined-lapsed
 +Both the original date header and a (shortened) elapsed time.
 +
 +@item original
 +The original date header.
 +
 +@item iso8601
 +ISO8601 format, i.e., ``2010-11-23T22:05:21''.
 +
 +@item user-defined
 +A format done according to the @code{gnus-article-time-format}
 +variable.
 +
 +@end table
  
  @xref{Article Date}.
  
  
  @xref{Picons}.
  
 +@item gnus-treat-from-gravatar (head)
 +@item gnus-treat-mail-gravatar (head)
 +
 +@xref{Gravatars}.
 +
  @item gnus-treat-display-smileys (t, integer)
  
  @item gnus-treat-body-boundary (head)
@@@ -12035,6 -12681,8 +12035,6 @@@ is controlled by @code{gnus-body-bounda
  
  @vindex gnus-treat-play-sounds
  @item gnus-treat-play-sounds
 -@vindex gnus-treat-translate
 -@item gnus-treat-translate
  @item gnus-treat-ansi-sequences (t)
  @vindex gnus-treat-x-pgp-sig
  @item gnus-treat-x-pgp-sig (head)
@@@ -12164,11 -12812,6 +12164,11 @@@ If non-@code{nil}, use the same articl
  (This is the default.)  If @code{nil}, each group will have its own
  article buffer.
  
 +@item gnus-widen-article-window
 +@cindex gnus-widen-article-window
 +If non-@code{nil}, selecting the article buffer with the @kbd{h}
 +command will ``widen'' the article window to take the entire frame.
 +
  @vindex gnus-article-decode-hook
  @item gnus-article-decode-hook
  @cindex @acronym{MIME}
@@@ -12263,15 -12906,6 +12263,15 @@@ for how to compose such messages.  Thi
  @uref{http://www.gnu.org/software/libidn/, GNU Libidn}, and this
  variable is only enabled if you have installed it.
  
 +@vindex gnus-inhibit-images
 +@item gnus-inhibit-images
 +If this is non-@code{nil}, inhibit displaying of images inline in the
 +article body.  It is effective to images that are in articles as
 +@acronym{MIME} parts, and images in @acronym{HTML} articles rendered
 +when @code{mm-text-html-renderer} (@pxref{Display Customization,
 +,Display Customization, emacs-mime, The Emacs MIME Manual}) is
 +@code{shr} or @code{gnus-w3m}.
 +
  @end table
  
  
@@@ -12642,6 -13276,9 +12642,6 @@@ messages in one file per month
            (concat "mail." (format-time-string "%Y-%m")))))
  @end lisp
  
 -@c (XEmacs 19.13 doesn't have @code{format-time-string}, so you'll have to
 -@c use a different value for @code{gnus-message-archive-group} there.)
 -
  Now, when you send a message off, it will be stored in the appropriate
  group.  (If you want to disable storing for just one particular message,
  you can just remove the @code{Gcc} header that has been inserted.)  The
@@@ -12653,7 -13290,27 +12653,7 @@@ if (using @kbd{G r} in the group buffer
  nice---@samp{misc-mail-september-1995}, or whatever.  New messages will
  continue to be stored in the old (now empty) group.
  
 -That's the default method of archiving sent messages.  Gnus offers a
 -different way for the people who don't like the default method.  In that
 -case you should set @code{gnus-message-archive-group} to @code{nil};
 -this will disable archiving.
 -
  @table @code
 -@item gnus-outgoing-message-group
 -@vindex gnus-outgoing-message-group
 -All outgoing messages will be put in this group.  If you want to store
 -all your outgoing mail and articles in the group @samp{nnml:archive},
 -you set this variable to that value.  This variable can also be a list of
 -group names.
 -
 -If you want to have greater control over what group to put each
 -message in, you can set this variable to a function that checks the
 -current newsgroup name and then returns a suitable group name (or list
 -of names).
 -
 -This variable can be used instead of @code{gnus-message-archive-group},
 -but the latter is the preferred method.
 -
  @item gnus-gcc-mark-as-read
  @vindex gnus-gcc-mark-as-read
  If non-@code{nil}, automatically mark @code{Gcc} articles as read.
@@@ -12748,20 -13405,14 +12748,20 @@@ the headers of the article; if the valu
  name will be removed.  If the attribute name is @code{eval}, the form
  is evaluated, and the result is thrown away.
  
 -The attribute value can be a string (used verbatim), a function with
 -zero arguments (the return value will be used), a variable (its value
 -will be used) or a list (it will be @code{eval}ed and the return value
 -will be used).  The functions and sexps are called/@code{eval}ed in the
 -message buffer that is being set up.  The headers of the current article
 -are available through the @code{message-reply-headers} variable, which
 -is a vector of the following headers: number subject from date id
 -references chars lines xref extra.
 +The attribute value can be a string, a function with zero arguments
 +(the return value will be used), a variable (its value will be used)
 +or a list (it will be @code{eval}ed and the return value will be
 +used).  The functions and sexps are called/@code{eval}ed in the
 +message buffer that is being set up.  The headers of the current
 +article are available through the @code{message-reply-headers}
 +variable, which is a vector of the following headers: number subject
 +from date id references chars lines xref extra.
 +
 +In the case of a string value, if the @code{match} is a regular
 +expression, a @samp{gnus-match-substitute-replacement} is proceed on
 +the value to replace the positional parameters @samp{\@var{n}} by the
 +corresponding parenthetical matches (see @xref{Replacing the Text that
 +Matched, , Text Replacement, elisp, The Emacs Lisp Reference Manual}.)
  
  @vindex message-reply-headers
  
@@@ -12892,9 -13543,6 +12892,9 @@@ If you have some messages that you wis
  @kbd{D t} (@code{gnus-draft-toggle-sending}) command to mark the message
  as unsendable.  This is a toggling command.
  
 +Finally, if you want to delete a draft, use the normal @kbd{B DEL}
 +command (@pxref{Mail Group Commands}).
 +
  
  @node Rejected Articles
  @section Rejected Articles
@@@ -13022,10 -13670,10 +13022,10 @@@ The different methods all have their pe
  @menu
  * Server Buffer::               Making and editing virtual servers.
  * Getting News::                Reading USENET news with Gnus.
 +* Using IMAP::                  Reading mail from @acronym{IMAP}.
  * Getting Mail::                Reading your personal mail with Gnus.
  * Browsing the Web::            Getting messages from a plethora of Web sources.
 -* IMAP::                        Using Gnus as a @acronym{IMAP} client.
 -* Other Sources::               Reading directories, files, SOUP packets.
 +* Other Sources::               Reading directories, files.
  * Combined Groups::             Combining groups into one group.
  * Email Based Diary::           Using mails to manage diary events in Gnus.
  * Gnus Unplugged::              Reading news and mail offline.
@@@ -13137,11 -13785,6 +13137,11 @@@ Add a new server (@code{gnus-server-add
  @findex gnus-server-edit-server
  Edit a server (@code{gnus-server-edit-server}).
  
 +@item S
 +@kindex S (Server)
 +@findex gnus-server-show-server
 +Show the definition of a server (@code{gnus-server-show-server}).
 +
  @item SPACE
  @kindex SPACE (Server)
  @findex gnus-server-read-server
@@@ -13197,9 -13840,6 +13197,9 @@@ hence getting a correct total article c
  
  @end table
  
 +Some more commands for closing, disabling, and re-opening servers are
 +listed in @ref{Unavailable Servers}.
 +
  
  @node Example Methods
  @subsection Example Methods
@@@ -13445,14 -14085,6 +13445,14 @@@ Close the connections to all servers i
  Remove all marks to whether Gnus was denied connection from any servers
  (@code{gnus-server-remove-denials}).
  
 +@item c
 +@kindex c (Server)
 +@findex gnus-server-copy-server
 +Copy a server and give it a new name
 +(@code{gnus-server-copy-server}).  This can be useful if you have a
 +complex method definition, and want to use the same definition towards
 +a different (physical) server.
 +
  @item L
  @kindex L (Server)
  @findex gnus-server-offline-server
@@@ -13724,12 -14356,6 +13724,12 @@@ inhibit Gnus to add a @code{Message-ID
  Note that not all servers support the recommended ID.  This works for
  INN versions 2.3.0 and later, for instance.
  
 +@item nntp-server-list-active-group
 +If @code{nil}, then always use @samp{GROUP} instead of @samp{LIST
 +ACTIVE}.  This is usually slower, but on misconfigured servers that
 +don't update their active files often, this can help.
 +
 +
  @end table
  
  @menu
@@@ -13753,12 -14379,7 +13753,12 @@@ functions is also affected by commonly 
  @findex nntp-open-network-stream
  @item nntp-open-network-stream
  This is the default, and simply connects to some port or other on the
 -remote system.
 +remote system.  If both Emacs and the server supports it, the
 +connection will be upgraded to an encrypted @acronym{STARTTLS}
 +connection automatically.
 +
 +@item network-only
 +The same as the above, but don't do automatic @acronym{STARTTLS} upgrades.
  
  @findex nntp-open-tls-stream
  @item nntp-open-tls-stream
  @end table
  
  
 +@node Using IMAP
 +@section Using IMAP
 +@cindex imap
 +
 +The most popular mail backend is probably @code{nnimap}, which
 +provides access to @acronym{IMAP} servers.  @acronym{IMAP} servers
 +store mail remotely, so the client doesn't store anything locally.
 +This means that it's a convenient choice when you're reading your mail
 +from different locations, or with different user agents.
 +
 +@menu
 +* Connecting to an IMAP Server::     Getting started with @acronym{IMAP}.
 +* Customizing the IMAP Connection::  Variables for @acronym{IMAP} connection.
 +* Client-Side IMAP Splitting::       Put mail in the correct mail box.
 +@end menu
 +
 +
 +@node Connecting to an IMAP Server
 +@subsection Connecting to an IMAP Server
 +
 +Connecting to an @acronym{IMAP} can be very easy.  Type @kbd{B} in the
 +group buffer, or (if your primary interest is reading email), say
 +something like:
 +
 +@example
 +(setq gnus-select-method
 +      '(nnimap "imap.gmail.com"))
 +@end example
 +
 +You'll be prompted for a user name and password.  If you grow tired of
 +that, then add the following to your @file{~/.authinfo} file:
 +
 +@example
 +machine imap.gmail.com login <username> password <password> port imap
 +@end example
 +
 +That should basically be it for most users.
 +
 +
 +@node Customizing the IMAP Connection
 +@subsection Customizing the IMAP Connection
 +
 +Here's an example method that's more complex:
 +
 +@example
 +(nnimap "imap.gmail.com"
 +        (nnimap-inbox "INBOX")
 +        (nnimap-split-methods default)
 +        (nnimap-expunge t)
 +        (nnimap-stream ssl))
 +@end example
 +
 +@table @code
 +@item nnimap-address
 +The address of the server, like @samp{imap.gmail.com}.
 +
 +@item nnimap-server-port
 +If the server uses a non-standard port, that can be specified here.  A
 +typical port would be @code{"imap"} or @code{"imaps"}.
 +
 +@item nnimap-stream
 +How @code{nnimap} should connect to the server.  Possible values are:
 +
 +@table @code
 +@item undecided
 +This is the default, and this first tries the @code{ssl} setting, and
 +then tries the @code{network} setting.
 +
 +@item ssl
 +This uses standard @acronym{TLS}/@acronym{SSL} connections.
 +
 +@item network
 +Non-encrypted and unsafe straight socket connection, but will upgrade
 +to encrypted @acronym{STARTTLS} if both Emacs and the server
 +supports it.
 +
 +@item starttls
 +Encrypted @acronym{STARTTLS} over the normal @acronym{IMAP} port.
 +
 +@item shell
 +If you need to tunnel via other systems to connect to the server, you
 +can use this option, and customize @code{nnimap-shell-program} to be
 +what you need.
 +
 +@end table
 +
 +@item nnimap-authenticator
 +Some @acronym{IMAP} servers allow anonymous logins.  In that case,
 +this should be set to @code{anonymous}.
 +
 +@item nnimap-expunge
 +If non-@code{nil}, expunge articles after deleting them.  This is always done
 +if the server supports UID EXPUNGE, but it's not done by default on
 +servers that doesn't support that command.
 +
 +@item nnimap-streaming
 +Virtually all @code{IMAP} server support fast streaming of data.  If
 +you have problems connecting to the server, try setting this to @code{nil}.
 +
 +@item nnimap-fetch-partial-articles
 +If non-@code{nil}, fetch partial articles from the server.  If set to
 +a string, then it's interpreted as a regexp, and parts that have
 +matching types will be fetched.  For instance, @samp{"text/"} will
 +fetch all textual parts, while leaving the rest on the server.
 +
 +@end table
 +
 +
 +@node Client-Side IMAP Splitting
 +@subsection Client-Side IMAP Splitting
 +
 +Many people prefer to do the sorting/splitting of mail into their mail
 +boxes on the @acronym{IMAP} server.  That way they don't have to
 +download the mail they're not all that interested in.
 +
 +If you do want to do client-side mail splitting, then the following
 +variables are relevant:
 +
 +@table @code
 +@item nnimap-inbox
 +This is the @acronym{IMAP} mail box that will be scanned for new mail.
 +
 +@item nnimap-split-methods
 +Uses the same syntax as @code{nnmail-split-methods} (@pxref{Splitting
 +Mail}), except the symbol @code{default}, which means that it should
 +use the value of the @code{nnmail-split-methods} variable.
 +
 +@item nnimap-split-fancy
 +Uses the same syntax as @code{nnmail-split-fancy}.
 +
 +@item nnimap-unsplittable-articles
 +List of flag symbols to ignore when doing splitting.  That is,
 +articles that have these flags won't be considered when splitting.
 +The default is @samp{(%Deleted %Seen)}.
 +
 +@end table
 +
 +Here's a complete example @code{nnimap} backend with a client-side
 +``fancy'' splitting method:
 +
 +@example
 +(nnimap "imap.example.com"
 +        (nnimap-inbox "INBOX")
 +        (nnimap-split-methods
 +         (| ("MailScanner-SpamCheck" "spam" "spam.detected")
 +            (to "foo@@bar.com" "foo")
 +            "undecided")))
 +@end example
 +
 +
  @node Getting Mail
  @section Getting Mail
  @cindex reading mail
@@@ -14462,9 -14933,6 +14462,9 @@@ arguments in a buffer narrowed to the h
  message.  The function should return a list of group names that it
  thinks should carry this mail message.
  
 +This variable can also be a fancy split method.  For the syntax,
 +see @ref{Fancy Mail Splitting}.
 +
  Note that the mail back ends are free to maul the poor, innocent,
  incoming headers all they want to.  They all add @code{Lines} headers;
  some add @code{X-Gnus-Group} headers; most rename the Unix mbox
@@@ -14839,7 -15307,10 +14839,7 @@@ Get mail from a @acronym{IMAP} server
  @acronym{IMAP} as intended, as a network mail reading protocol (ie
  with nnimap), for some reason or other, Gnus let you treat it similar
  to a @acronym{POP} server and fetches articles from a given
 -@acronym{IMAP} mailbox.  @xref{IMAP}, for more information.
 -
 -Note that for the Kerberos, GSSAPI, @acronym{TLS}/@acronym{SSL} and STARTTLS support you
 -may need external programs and libraries, @xref{IMAP}.
 +@acronym{IMAP} mailbox.  @xref{Using IMAP}, for more information.
  
  Keywords:
  
@@@ -14931,6 -15402,45 +14931,6 @@@ An example @acronym{IMAP} mail source
        :fetchflag "\\Seen")
  @end lisp
  
 -@item webmail
 -Get mail from a webmail server, such as @uref{http://www.hotmail.com/},
 -@uref{http://webmail.netscape.com/}, @uref{http://www.netaddress.com/},
 -@uref{http://mail.yahoo.com/}.
 -
 -NOTE: Webmail largely depends on cookies.  A "one-line-cookie" patch is
 -required for url "4.0pre.46".
 -
 -WARNING: Mails may be lost.  NO WARRANTY.
 -
 -Keywords:
 -
 -@table @code
 -@item :subtype
 -The type of the webmail server.  The default is @code{hotmail}.  The
 -alternatives are @code{netscape}, @code{netaddress}, @code{my-deja}.
 -
 -@item :user
 -The user name to give to the webmail server.  The default is the login
 -name.
 -
 -@item :password
 -The password to give to the webmail server.  If not specified, the user is
 -prompted.
 -
 -@item :dontexpunge
 -If non-@code{nil}, only fetch unread articles and don't move them to
 -trash folder after finishing the fetch.
 -
 -@end table
 -
 -An example webmail source:
 -
 -@lisp
 -(webmail :subtype 'hotmail
 -         :user "user-name"
 -         :password "secret")
 -@end lisp
 -
  @item group
  Get the actual mail source from the @code{mail-source} group parameter,
  @xref{Group Parameters}.
@@@ -15269,7 -15779,7 +15269,7 @@@ after @code{save-excursion} and @code{s
  above.  Also note that with the nnimap backend, message bodies will
  not be downloaded by default.  You need to set
  @code{nnimap-split-download-body} to @code{t} to do that
 -(@pxref{Splitting in IMAP}).
 +(@pxref{Client-Side IMAP Splitting}).
  
  @item (! @var{func} @var{split})
  If the split is a list, and the first element is @code{!}, then
@@@ -16033,7 -16543,6 +16033,7 @@@ Spool})
  @end menu
  
  
 +
  @node Unix Mail Box
  @subsubsection Unix Mail Box
  @cindex nnmbox
@@@ -16749,12 -17258,13 +16749,12 @@@ incompatible group parameters, slightl
  mail back ends.
  
  @code{nnmaildir} is largely similar to @code{nnml}, with some notable
 -differences.  Each message is stored in a separate file, but the
 -filename is unrelated to the article number in Gnus.  @code{nnmaildir}
 +differences. Each message is stored in a separate file, but the
 +filename is unrelated to the article number in Gnus. @code{nnmaildir}
  also stores the equivalent of @code{nnml}'s overview files in one file
 -per article, so it uses about twice as many inodes as @code{nnml}.  (Use
 -@code{df -i} to see how plentiful your inode supply is.)  If this slows
 -you down or takes up very much space, consider switching to
 -@uref{http://www.namesys.com/, ReiserFS} or another non-block-structured
 +per article, so it uses about twice as many inodes as @code{nnml}.
 +(Use @code{df -i} to see how plentiful your inode supply is.) If this
 +slows you down or takes up very much space, a non-block-structured
  file system.
  
  Since maildirs don't require locking for delivery, the maildirs you use
@@@ -16824,6 -17334,9 +16824,6 @@@ interfaces to these sources
  @menu
  * Archiving Mail::
  * Web Searches::                Creating groups from articles that match a string.
 -* Slashdot::                    Reading the Slashdot comments.
 -* Ultimate::                    The Ultimate Bulletin Board systems.
 -* Web Archive::                 Reading mailing list archived on web.
  * RSS::                         Reading RDF site summary.
  * Customizing W3::              Doing stuff to Emacs/W3 from Gnus.
  @end menu
@@@ -16966,6 -17479,159 +16966,6 @@@ Format string URL to fetch an article b
  @end table
  
  
 -@node Slashdot
 -@subsection Slashdot
 -@cindex Slashdot
 -@cindex nnslashdot
 -
 -@uref{http://slashdot.org/, Slashdot} is a popular news site, with
 -lively discussion following the news articles.  @code{nnslashdot} will
 -let you read this forum in a convenient manner.
 -
 -The easiest way to read this source is to put something like the
 -following in your @file{~/.gnus.el} file:
 -
 -@lisp
 -(setq gnus-secondary-select-methods
 -      '((nnslashdot "")))
 -@end lisp
 -
 -This will make Gnus query the @code{nnslashdot} back end for new comments
 -and groups.  The @kbd{F} command will subscribe each new news article as
 -a new Gnus group, and you can read the comments by entering these
 -groups.  (Note that the default subscription method is to subscribe new
 -groups as zombies.  Other methods are available (@pxref{Subscription
 -Methods}).
 -
 -If you want to remove an old @code{nnslashdot} group, the @kbd{G DEL}
 -command is the most handy tool (@pxref{Foreign Groups}).
 -
 -When following up to @code{nnslashdot} comments (or posting new
 -comments), some light @acronym{HTML}izations will be performed.  In
 -particular, text quoted with @samp{> } will be quoted with
 -@samp{blockquote} instead, and signatures will have @samp{br} added to
 -the end of each line.  Other than that, you can just write @acronym{HTML}
 -directly into the message buffer.  Note that Slashdot filters out some
 -@acronym{HTML} forms.
 -
 -The following variables can be altered to change its behavior:
 -
 -@table @code
 -@item nnslashdot-threaded
 -Whether @code{nnslashdot} should display threaded groups or not.  The
 -default is @code{t}.  To be able to display threads, @code{nnslashdot}
 -has to retrieve absolutely all comments in a group upon entry.  If a
 -threaded display is not required, @code{nnslashdot} will only retrieve
 -the comments that are actually wanted by the user.  Threading is nicer,
 -but much, much slower than unthreaded.
 -
 -@item nnslashdot-login-name
 -@vindex nnslashdot-login-name
 -The login name to use when posting.
 -
 -@item nnslashdot-password
 -@vindex nnslashdot-password
 -The password to use when posting.
 -
 -@item nnslashdot-directory
 -@vindex nnslashdot-directory
 -Where @code{nnslashdot} will store its files.  The default is
 -@file{~/News/slashdot/}.
 -
 -@item nnslashdot-active-url
 -@vindex nnslashdot-active-url
 -The @acronym{URL} format string that will be used to fetch the
 -information on news articles and comments.  The default is@*
 -@samp{http://slashdot.org/search.pl?section=&min=%d}.
 -
 -@item nnslashdot-comments-url
 -@vindex nnslashdot-comments-url
 -The @acronym{URL} format string that will be used to fetch comments.
 -
 -@item nnslashdot-article-url
 -@vindex nnslashdot-article-url
 -The @acronym{URL} format string that will be used to fetch the news
 -article.  The default is
 -@samp{http://slashdot.org/article.pl?sid=%s&mode=nocomment}.
 -
 -@item nnslashdot-threshold
 -@vindex nnslashdot-threshold
 -The score threshold.  The default is -1.
 -
 -@item nnslashdot-group-number
 -@vindex nnslashdot-group-number
 -The number of old groups, in addition to the ten latest, to keep
 -updated.  The default is 0.
 -
 -@end table
 -
 -
 -
 -@node Ultimate
 -@subsection Ultimate
 -@cindex nnultimate
 -@cindex Ultimate Bulletin Board
 -
 -@uref{http://www.ultimatebb.com/, The Ultimate Bulletin Board} is
 -probably the most popular Web bulletin board system used.  It has a
 -quite regular and nice interface, and it's possible to get the
 -information Gnus needs to keep groups updated.
 -
 -The easiest way to get started with @code{nnultimate} is to say
 -something like the following in the group buffer:  @kbd{B nnultimate RET
 -http://www.tcj.com/messboard/ubbcgi/ RET}.  (Substitute the @acronym{URL}
 -(not including @samp{Ultimate.cgi} or the like at the end) for a forum
 -you're interested in; there's quite a list of them on the Ultimate web
 -site.)  Then subscribe to the groups you're interested in from the
 -server buffer, and read them from the group buffer.
 -
 -The following @code{nnultimate} variables can be altered:
 -
 -@table @code
 -@item nnultimate-directory
 -@vindex nnultimate-directory
 -The directory where @code{nnultimate} stores its files.  The default is@*
 -@file{~/News/ultimate/}.
 -@end table
 -
 -
 -@node Web Archive
 -@subsection Web Archive
 -@cindex nnwarchive
 -@cindex Web Archive
 -
 -Some mailing lists only have archives on Web servers, such as
 -@uref{http://www.egroups.com/} and
 -@uref{http://www.mail-archive.com/}.  It has a quite regular and nice
 -interface, and it's possible to get the information Gnus needs to keep
 -groups updated.
 -
 -@findex gnus-group-make-warchive-group
 -The easiest way to get started with @code{nnwarchive} is to say
 -something like the following in the group buffer: @kbd{M-x
 -gnus-group-make-warchive-group RET @var{an_egroup} RET egroups RET
 -www.egroups.com RET @var{your@@email.address} RET}.  (Substitute the
 -@var{an_egroup} with the mailing list you subscribed, the
 -@var{your@@email.address} with your email address.), or to browse the
 -back end by @kbd{B nnwarchive RET mail-archive RET}.
 -
 -The following @code{nnwarchive} variables can be altered:
 -
 -@table @code
 -@item nnwarchive-directory
 -@vindex nnwarchive-directory
 -The directory where @code{nnwarchive} stores its files.  The default is@*
 -@file{~/News/warchive/}.
 -
 -@item nnwarchive-login
 -@vindex nnwarchive-login
 -The account name on the web server.
 -
 -@item nnwarchive-passwd
 -@vindex nnwarchive-passwd
 -The password for your account on the web server.
 -@end table
 -
  @node RSS
  @subsection RSS
  @cindex nnrss
@@@ -17052,6 -17718,15 +17052,6 @@@ If you set @code{nnrss-use-local} to @c
  the feeds from local files in @code{nnrss-directory}.  You can use
  the command @code{nnrss-generate-download-script} to generate a
  download script using @command{wget}.
 -
 -@item nnrss-wash-html-in-text-plain-parts
 -Non-@code{nil} means that @code{nnrss} renders text in @samp{text/plain}
 -parts as @acronym{HTML}.  The function specified by the
 -@code{mm-text-html-renderer} variable (@pxref{Display Customization,
 -,Display Customization, emacs-mime, The Emacs MIME Manual}) will be used
 -to render text.  If it is @code{nil}, which is the default, text will
 -simply be folded.  Leave it @code{nil} if you prefer to see
 -@samp{text/html} parts.
  @end table
  
  The following code may be helpful, if you want to show the description in
@@@ -17149,4973 -17824,4957 +17149,4973 @@@ Put that in your @file{.emacs} file, an
  follow the link.
  
  
 -@node IMAP
 -@section IMAP
 -@cindex nnimap
 -@cindex @acronym{IMAP}
 +@node Other Sources
 +@section Other Sources
 +
 +Gnus can do more than just read news or mail.  The methods described
 +below allow Gnus to view directories and files as if they were
 +newsgroups.
 +
 +@menu
 +* Directory Groups::            You can read a directory as if it was a newsgroup.
 +* Anything Groups::             Dired?  Who needs dired?
 +* Document Groups::             Single files can be the basis of a group.
 +* Mail-To-News Gateways::       Posting articles via mail-to-news gateways.
 +* The Empty Backend::           The backend that never has any news.
 +@end menu
 +
 +
 +@node Directory Groups
 +@subsection Directory Groups
 +@cindex nndir
 +@cindex directory groups
 +
 +If you have a directory that has lots of articles in separate files in
 +it, you might treat it as a newsgroup.  The files have to have numerical
 +names, of course.
 +
 +This might be an opportune moment to mention @code{ange-ftp} (and its
 +successor @code{efs}), that most wonderful of all wonderful Emacs
 +packages.  When I wrote @code{nndir}, I didn't think much about it---a
 +back end to read directories.  Big deal.
 +
 +@code{ange-ftp} changes that picture dramatically.  For instance, if you
 +enter the @code{ange-ftp} file name
 +@file{/ftp.hpc.uh.edu:/pub/emacs/ding-list/} as the directory name,
 +@code{ange-ftp} or @code{efs} will actually allow you to read this
 +directory over at @samp{sina} as a newsgroup.  Distributed news ahoy!
 +
 +@code{nndir} will use @acronym{NOV} files if they are present.
 +
 +@code{nndir} is a ``read-only'' back end---you can't delete or expire
 +articles with this method.  You can use @code{nnmh} or @code{nnml} for
 +whatever you use @code{nndir} for, so you could switch to any of those
 +methods if you feel the need to have a non-read-only @code{nndir}.
 +
 +
 +@node Anything Groups
 +@subsection Anything Groups
 +@cindex nneething
 +
 +From the @code{nndir} back end (which reads a single spool-like
 +directory), it's just a hop and a skip to @code{nneething}, which
 +pretends that any arbitrary directory is a newsgroup.  Strange, but
 +true.
 +
 +When @code{nneething} is presented with a directory, it will scan this
 +directory and assign article numbers to each file.  When you enter such
 +a group, @code{nneething} must create ``headers'' that Gnus can use.
 +After all, Gnus is a newsreader, in case you're forgetting.
 +@code{nneething} does this in a two-step process.  First, it snoops each
 +file in question.  If the file looks like an article (i.e., the first
 +few lines look like headers), it will use this as the head.  If this is
 +just some arbitrary file without a head (e.g. a C source file),
 +@code{nneething} will cobble up a header out of thin air.  It will use
 +file ownership, name and date and do whatever it can with these
 +elements.
 +
 +All this should happen automatically for you, and you will be presented
 +with something that looks very much like a newsgroup.  Totally like a
 +newsgroup, to be precise.  If you select an article, it will be displayed
 +in the article buffer, just as usual.
 +
 +If you select a line that represents a directory, Gnus will pop you into
 +a new summary buffer for this @code{nneething} group.  And so on.  You can
 +traverse the entire disk this way, if you feel like, but remember that
 +Gnus is not dired, really, and does not intend to be, either.
 +
 +There are two overall modes to this action---ephemeral or solid.  When
 +doing the ephemeral thing (i.e., @kbd{G D} from the group buffer), Gnus
 +will not store information on what files you have read, and what files
 +are new, and so on.  If you create a solid @code{nneething} group the
 +normal way with @kbd{G m}, Gnus will store a mapping table between
 +article numbers and file names, and you can treat this group like any
 +other groups.  When you activate a solid @code{nneething} group, you will
 +be told how many unread articles it contains, etc., etc.
 +
 +Some variables:
 +
 +@table @code
 +@item nneething-map-file-directory
 +@vindex nneething-map-file-directory
 +All the mapping files for solid @code{nneething} groups will be stored
 +in this directory, which defaults to @file{~/.nneething/}.
  
 -@acronym{IMAP} is a network protocol for reading mail (or news, or @dots{}),
 -think of it as a modernized @acronym{NNTP}.  Connecting to a @acronym{IMAP}
 -server is much similar to connecting to a news server, you just
 -specify the network address of the server.
 +@item nneething-exclude-files
 +@vindex nneething-exclude-files
 +All files that match this regexp will be ignored.  Nice to use to exclude
 +auto-save files and the like, which is what it does by default.
  
 -@acronym{IMAP} has two properties.  First, @acronym{IMAP} can do
 -everything that @acronym{POP} can, it can hence be viewed as a
 -@acronym{POP++}.  Secondly, @acronym{IMAP} is a mail storage protocol,
 -similar to @acronym{NNTP} being a news storage protocol---however,
 -@acronym{IMAP} offers more features than @acronym{NNTP} because news
 -is more or less read-only whereas mail is read-write.
 +@item nneething-include-files
 +@vindex nneething-include-files
 +Regexp saying what files to include in the group.  If this variable is
 +non-@code{nil}, only files matching this regexp will be included.
  
 -If you want to use @acronym{IMAP} as a @acronym{POP++}, use an imap
 -entry in @code{mail-sources}.  With this, Gnus will fetch mails from
 -the @acronym{IMAP} server and store them on the local disk.  This is
 -not the usage described in this section---@xref{Mail Sources}.
 +@item nneething-map-file
 +@vindex nneething-map-file
 +Name of the map files.
 +@end table
  
 -If you want to use @acronym{IMAP} as a mail storage protocol, use an nnimap
 -entry in @code{gnus-secondary-select-methods}.  With this, Gnus will
 -manipulate mails stored on the @acronym{IMAP} server.  This is the kind of
 -usage explained in this section.
  
 -A server configuration in @file{~/.gnus.el} with a few @acronym{IMAP}
 -servers might look something like the following.  (Note that for
 -@acronym{TLS}/@acronym{SSL}, you need external programs and libraries,
 -see below.)
 +@node Document Groups
 +@subsection Document Groups
 +@cindex nndoc
 +@cindex documentation group
 +@cindex help group
  
 -@lisp
 -(setq gnus-secondary-select-methods
 -      '((nnimap "simpleserver") ; @r{no special configuration}
 -        ; @r{perhaps a ssh port forwarded server:}
 -        (nnimap "dolk"
 -                (nnimap-address "localhost")
 -                (nnimap-server-port 1430))
 -        ; @r{a UW server running on localhost}
 -        (nnimap "barbar"
 -                (nnimap-server-port 143)
 -                (nnimap-address "localhost")
 -                (nnimap-list-pattern ("INBOX" "mail/*")))
 -        ; @r{anonymous public cyrus server:}
 -        (nnimap "cyrus.andrew.cmu.edu"
 -                (nnimap-authenticator anonymous)
 -                (nnimap-list-pattern "archive.*")
 -                (nnimap-stream network))
 -        ; @r{a ssl server on a non-standard port:}
 -        (nnimap "vic20"
 -                (nnimap-address "vic20.somewhere.com")
 -                (nnimap-server-port 9930)
 -                (nnimap-stream ssl))))
 -@end lisp
 -
 -After defining the new server, you can subscribe to groups on the
 -server using normal Gnus commands such as @kbd{U} in the Group Buffer
 -(@pxref{Subscription Commands}) or via the Server Buffer
 -(@pxref{Server Buffer}).
 -
 -The following variables can be used to create a virtual @code{nnimap}
 -server:
 +@code{nndoc} is a cute little thing that will let you read a single file
 +as a newsgroup.  Several files types are supported:
  
  @table @code
 +@cindex Babyl
 +@item babyl
 +The Babyl format.
  
 -@item nnimap-address
 -@vindex nnimap-address
 +@cindex mbox
 +@cindex Unix mbox
 +@item mbox
 +The standard Unix mbox file.
  
 -The address of the remote @acronym{IMAP} server.  Defaults to the virtual
 -server name if not specified.
 +@cindex MMDF mail box
 +@item mmdf
 +The MMDF mail box format.
  
 -@item nnimap-server-port
 -@vindex nnimap-server-port
 -Port on server to contact.  Defaults to port 143, or 993 for @acronym{TLS}/@acronym{SSL}.
 +@item news
 +Several news articles appended into a file.
  
 -Note that this should be an integer, example server specification:
 +@cindex rnews batch files
 +@item rnews
 +The rnews batch transport format.
  
 -@lisp
 -(nnimap "mail.server.com"
 -        (nnimap-server-port 4711))
 -@end lisp
 +@item nsmail
 +Netscape mail boxes.
 +
 +@item mime-parts
 +@acronym{MIME} multipart messages.
  
 -@item nnimap-list-pattern
 -@vindex nnimap-list-pattern
 -String or list of strings of mailboxes to limit available groups to.
 -This is used when the server has very many mailboxes and you're only
 -interested in a few---some servers export your home directory via
 -@acronym{IMAP}, you'll probably want to limit the mailboxes to those in
 -@file{~/Mail/*} then.
 +@item standard-digest
 +The standard (RFC 1153) digest format.
  
 -The string can also be a cons of REFERENCE and the string as above, what
 -REFERENCE is used for is server specific, but on the University of
 -Washington server it's a directory that will be concatenated with the
 -mailbox.
 +@item mime-digest
 +A @acronym{MIME} digest of messages.
  
 -Example server specification:
 +@item lanl-gov-announce
 +Announcement messages from LANL Gov Announce.
  
 -@lisp
 -(nnimap "mail.server.com"
 -        (nnimap-list-pattern ("INBOX" "Mail/*" "alt.sex.*"
 -                               ("~friend/Mail/" . "list/*"))))
 -@end lisp
 +@cindex git commit messages
 +@item git
 +@code{git} commit messages.
  
 -@item nnimap-stream
 -@vindex nnimap-stream
 -The type of stream used to connect to your server.  By default, nnimap
 -will detect and automatically use all of the below, with the exception
 -of @acronym{TLS}/@acronym{SSL}.  (@acronym{IMAP} over
 -@acronym{TLS}/@acronym{SSL} is being replaced by STARTTLS, which can
 -be automatically detected, but it's not widely deployed yet.)
 +@cindex forwarded messages
 +@item rfc822-forward
 +A message forwarded according to RFC822.
  
 -Example server specification:
 +@item outlook
 +The Outlook mail box.
  
 -@lisp
 -(nnimap "mail.server.com"
 -        (nnimap-stream ssl))
 -@end lisp
 +@item oe-dbx
 +The Outlook Express dbx mail box.
  
 -Please note that the value of @code{nnimap-stream} is a symbol!
 +@item exim-bounce
 +A bounce message from the Exim MTA.
  
 -@itemize @bullet
 -@item
 -@dfn{gssapi:} Connect with GSSAPI (usually Kerberos 5).  Requires the
 -@samp{gsasl} or @samp{imtest} program.
 -@item
 -@dfn{kerberos4:} Connect with Kerberos 4.  Requires the @samp{imtest} program.
 -@item
 -@dfn{starttls:} Connect via the STARTTLS extension (similar to
 -@acronym{TLS}/@acronym{SSL}).  Requires the external library @samp{starttls.el} and program
 -@samp{starttls}.
 -@item
 -@dfn{tls:} Connect through @acronym{TLS}.  Requires GNUTLS (the program
 -@samp{gnutls-cli}).
 -@item
 -@dfn{ssl:} Connect through @acronym{SSL}.  Requires OpenSSL (the program
 -@samp{openssl}) or SSLeay (@samp{s_client}).
 -@item
 -@dfn{shell:} Use a shell command to start @acronym{IMAP} connection.
 -@item
 -@dfn{network:} Plain, TCP/IP network connection.
 -@end itemize
 +@item forward
 +A message forwarded according to informal rules.
  
 -@vindex imap-kerberos4-program
 -The @samp{imtest} program is shipped with Cyrus IMAPD.  If you're
 -using @samp{imtest} from Cyrus IMAPD < 2.0.14 (which includes version
 -1.5.x and 1.6.x) you need to frob @code{imap-process-connection-type}
 -to make @code{imap.el} use a pty instead of a pipe when communicating
 -with @samp{imtest}.  You will then suffer from a line length
 -restrictions on @acronym{IMAP} commands, which might make Gnus seem to hang
 -indefinitely if you have many articles in a mailbox.  The variable
 -@code{imap-kerberos4-program} contain parameters to pass to the imtest
 -program.
 -
 -For @acronym{TLS} connection, the @code{gnutls-cli} program from GNUTLS is
 -needed.  It is available from
 -@uref{http://www.gnu.org/software/gnutls/}.
 -
 -@vindex imap-gssapi-program
 -This parameter specifies a list of command lines that invoke a GSSAPI
 -authenticated @acronym{IMAP} stream in a subshell.  They are tried
 -sequentially until a connection is made, or the list has been
 -exhausted.  By default, @samp{gsasl} from GNU SASL, available from
 -@uref{http://www.gnu.org/software/gsasl/}, and the @samp{imtest}
 -program from Cyrus IMAPD (see @code{imap-kerberos4-program}), are
 -tried.
 -
 -@vindex imap-ssl-program
 -For @acronym{SSL} connections, the OpenSSL program is available from
 -@uref{http://www.openssl.org/}.  OpenSSL was formerly known as SSLeay,
 -and nnimap support it too---although the most recent versions of
 -SSLeay, 0.9.x, are known to have serious bugs making it
 -useless.  Earlier versions, especially 0.8.x, of SSLeay are known to
 -work.  The variable @code{imap-ssl-program} contain parameters to pass
 -to OpenSSL/SSLeay.
 -
 -@vindex imap-shell-program
 -@vindex imap-shell-host
 -For @acronym{IMAP} connections using the @code{shell} stream, the
 -variable @code{imap-shell-program} specify what program to call.  Make
 -sure nothing is interfering with the output of the program, e.g., don't
 -forget to redirect the error output to the void.
 +@item rfc934
 +An RFC934-forwarded message.
  
 -@item nnimap-authenticator
 -@vindex nnimap-authenticator
 +@item mailman
 +A mailman digest.
  
 -The authenticator used to connect to the server.  By default, nnimap
 -will use the most secure authenticator your server is capable of.
 +@item clari-briefs
 +A digest of Clarinet brief news items.
  
 -Example server specification:
 +@item slack-digest
 +Non-standard digest format---matches most things, but does it badly.
  
 -@lisp
 -(nnimap "mail.server.com"
 -        (nnimap-authenticator anonymous))
 -@end lisp
 +@item mail-in-mail
 +The last resort.
 +@end table
  
 -Please note that the value of @code{nnimap-authenticator} is a symbol!
 +You can also use the special ``file type'' @code{guess}, which means
 +that @code{nndoc} will try to guess what file type it is looking at.
 +@code{digest} means that @code{nndoc} should guess what digest type the
 +file is.
  
 -@itemize @bullet
 -@item
 -@dfn{gssapi:} GSSAPI (usually kerberos 5) authentication.  Requires
 -external program @code{gsasl} or @code{imtest}.
 -@item
 -@dfn{kerberos4:} Kerberos 4 authentication.  Requires external program
 -@code{imtest}.
 -@item
 -@dfn{digest-md5:} Encrypted username/password via DIGEST-MD5.  Requires
 -external library @code{digest-md5.el}.
 -@item
 -@dfn{cram-md5:} Encrypted username/password via CRAM-MD5.
 -@item
 -@dfn{login:} Plain-text username/password via LOGIN.
 -@item
 -@dfn{anonymous:} Login as ``anonymous'', supplying your email address as password.
 -@end itemize
 +@code{nndoc} will not try to change the file or insert any extra headers into
 +it---it will simply, like, let you use the file as the basis for a
 +group.  And that's it.
  
 -@item nnimap-expunge-on-close
 -@cindex expunging
 -@vindex nnimap-expunge-on-close
 -Unlike Parmenides the @acronym{IMAP} designers have decided things that
 -don't exist actually do exist.  More specifically, @acronym{IMAP} has
 -this concept of marking articles @code{Deleted} which doesn't actually
 -delete them, and this (marking them @code{Deleted}, that is) is what
 -nnimap does when you delete an article in Gnus (with @kbd{B DEL} or
 -similar).
 -
 -Since the articles aren't really removed when we mark them with the
 -@code{Deleted} flag we'll need a way to actually delete them.  Feel like
 -running in circles yet?
 -
 -Traditionally, nnimap has removed all articles marked as @code{Deleted}
 -when closing a mailbox but this is now configurable by this server
 -variable.
 +If you have some old archived articles that you want to insert into your
 +new & spiffy Gnus mail back end, @code{nndoc} can probably help you with
 +that.  Say you have an old @file{RMAIL} file with mail that you now want
 +to split into your new @code{nnml} groups.  You look at that file using
 +@code{nndoc} (using the @kbd{G f} command in the group buffer
 +(@pxref{Foreign Groups})), set the process mark on all the articles in
 +the buffer (@kbd{M P b}, for instance), and then re-spool (@kbd{B r})
 +using @code{nnml}.  If all goes well, all the mail in the @file{RMAIL}
 +file is now also stored in lots of @code{nnml} directories, and you can
 +delete that pesky @file{RMAIL} file.  If you have the guts!
  
 -The possible options are:
 +Virtual server variables:
  
  @table @code
 +@item nndoc-article-type
 +@vindex nndoc-article-type
 +This should be one of @code{mbox}, @code{babyl}, @code{digest},
 +@code{news}, @code{rnews}, @code{mmdf}, @code{forward}, @code{rfc934},
 +@code{rfc822-forward}, @code{mime-parts}, @code{standard-digest},
 +@code{slack-digest}, @code{clari-briefs}, @code{nsmail}, @code{outlook},
 +@code{oe-dbx}, @code{mailman}, and @code{mail-in-mail} or @code{guess}.
  
 -@item always
 -The default behavior, delete all articles marked as ``Deleted'' when
 -closing a mailbox.
 -@item never
 -Never actually delete articles.  Currently there is no way of showing
 -the articles marked for deletion in nnimap, but other @acronym{IMAP} clients
 -may allow you to do this.  If you ever want to run the EXPUNGE command
 -manually, @xref{Expunging mailboxes}.
 -@item ask
 -When closing mailboxes, nnimap will ask if you wish to expunge deleted
 -articles or not.
 -
 +@item nndoc-post-type
 +@vindex nndoc-post-type
 +This variable says whether Gnus is to consider the group a news group or
 +a mail group.  There are two valid values:  @code{mail} (the default)
 +and @code{news}.
  @end table
  
 -@item nnimap-importantize-dormant
 -@vindex nnimap-importantize-dormant
 +@menu
 +* Document Server Internals::   How to add your own document types.
 +@end menu
  
 -If non-@code{nil} (the default), marks dormant articles as ticked (as
 -well), for other @acronym{IMAP} clients.  Within Gnus, dormant articles will
 -naturally still (only) be marked as dormant.  This is to make dormant
 -articles stand out, just like ticked articles, in other @acronym{IMAP}
 -clients.  (In other words, Gnus has two ``Tick'' marks and @acronym{IMAP}
 -has only one.)
  
 -Probably the only reason for frobbing this would be if you're trying
 -enable per-user persistent dormant flags, using something like:
 +@node Document Server Internals
 +@subsubsection Document Server Internals
  
 -@lisp
 -(setcdr (assq 'dormant nnimap-mark-to-flag-alist)
 -        (format "gnus-dormant-%s" (user-login-name)))
 -(setcdr (assq 'dormant nnimap-mark-to-predicate-alist)
 -        (format "KEYWORD gnus-dormant-%s" (user-login-name)))
 -@end lisp
 +Adding new document types to be recognized by @code{nndoc} isn't
 +difficult.  You just have to whip up a definition of what the document
 +looks like, write a predicate function to recognize that document type,
 +and then hook into @code{nndoc}.
  
 -In this case, you would not want the per-user dormant flag showing up
 -as ticked for other users.
 +First, here's an example document type definition:
  
 -@item nnimap-expunge-search-string
 -@cindex expunging
 -@vindex nnimap-expunge-search-string
 -@cindex expiring @acronym{IMAP} mail
 +@example
 +(mmdf
 + (article-begin .  "^\^A\^A\^A\^A\n")
 + (body-end .  "^\^A\^A\^A\^A\n"))
 +@end example
  
 -This variable contain the @acronym{IMAP} search command sent to server when
 -searching for articles eligible for expiring.  The default is
 -@code{"UID %s NOT SINCE %s"}, where the first @code{%s} is replaced by
 -UID set and the second @code{%s} is replaced by a date.
 +The definition is simply a unique @dfn{name} followed by a series of
 +regexp pseudo-variable settings.  Below are the possible
 +variables---don't be daunted by the number of variables; most document
 +types can be defined with very few settings:
  
 -Probably the only useful value to change this to is
 -@code{"UID %s NOT SENTSINCE %s"}, which makes nnimap use the Date: in
 -messages instead of the internal article date.  See section 6.4.4 of
 -RFC 2060 for more information on valid strings.
 +@table @code
 +@item first-article
 +If present, @code{nndoc} will skip past all text until it finds
 +something that match this regexp.  All text before this will be
 +totally ignored.
  
 -However, if @code{nnimap-search-uids-not-since-is-evil}
 -is true, this variable has no effect since the search logic
 -is reversed, as described below.
 +@item article-begin
 +This setting has to be present in all document type definitions.  It
 +says what the beginning of each article looks like.  To do more
 +complicated things that cannot be dealt with a simple regexp, you can
 +use @code{article-begin-function} instead of this.
  
 -@item nnimap-authinfo-file
 -@vindex nnimap-authinfo-file
 +@item article-begin-function
 +If present, this should be a function that moves point to the beginning
 +of each article.  This setting overrides @code{article-begin}.
  
 -A file containing credentials used to log in on servers.  The format is
 -(almost) the same as the @code{ftp} @file{~/.netrc} file.  See the
 -variable @code{nntp-authinfo-file} for exact syntax; also see
 -@ref{NNTP}.  An example of an .authinfo line for an IMAP server, is:
 +@item head-begin
 +If present, this should be a regexp that matches the head of the
 +article.  To do more complicated things that cannot be dealt with a
 +simple regexp, you can use @code{head-begin-function} instead of this.
  
 -@example
 -machine students.uio.no login larsi password geheimnis port imap
 -@end example
 +@item head-begin-function
 +If present, this should be a function that moves point to the head of
 +the article.  This setting overrides @code{head-begin}.
  
 -Note that it should be @code{port imap}, or @code{port 143}, if you
 -use a @code{nnimap-stream} of @code{tls} or @code{ssl}, even if the
 -actual port number used is port 993 for secured IMAP.  For
 -convenience, Gnus will accept @code{port imaps} as a synonym of
 -@code{port imap}.
 +@item head-end
 +This should match the end of the head of the article.  It defaults to
 +@samp{^$}---the empty line.
  
 -@item nnimap-need-unselect-to-notice-new-mail
 -@vindex nnimap-need-unselect-to-notice-new-mail
 +@item body-begin
 +This should match the beginning of the body of the article.  It defaults
 +to @samp{^\n}.  To do more complicated things that cannot be dealt with
 +a simple regexp, you can use @code{body-begin-function} instead of this.
  
 -Unselect mailboxes before looking for new mail in them.  Some servers
 -seem to need this under some circumstances; it was reported that
 -Courier 1.7.1 did.
 +@item body-begin-function
 +If present, this function should move point to the beginning of the body
 +of the article.  This setting overrides @code{body-begin}.
  
 -@item nnimap-nov-is-evil
 -@vindex nnimap-nov-is-evil
 -@cindex Courier @acronym{IMAP} server
 -@cindex @acronym{NOV}
 +@item body-end
 +If present, this should match the end of the body of the article.  To do
 +more complicated things that cannot be dealt with a simple regexp, you
 +can use @code{body-end-function} instead of this.
  
 -Never generate or use a local @acronym{NOV} database. Defaults to the
 -value of @code{gnus-agent}.
 +@item body-end-function
 +If present, this function should move point to the end of the body of
 +the article.  This setting overrides @code{body-end}.
  
 -Using a @acronym{NOV} database usually makes header fetching much
 -faster, but it uses the @code{UID SEARCH UID} command, which is very
 -slow on some servers (notably some versions of Courier). Since the Gnus
 -Agent caches the information in the @acronym{NOV} database without using
 -the slow command, this variable defaults to true if the Agent is in use,
 -and false otherwise.
 +@item file-begin
 +If present, this should match the beginning of the file.  All text
 +before this regexp will be totally ignored.
  
 -@item nnimap-search-uids-not-since-is-evil
 -@vindex nnimap-search-uids-not-since-is-evil
 -@cindex Courier @acronym{IMAP} server
 -@cindex expiring @acronym{IMAP} mail
 +@item file-end
 +If present, this should match the end of the file.  All text after this
 +regexp will be totally ignored.
  
 -Avoid the @code{UID SEARCH UID @var{message numbers} NOT SINCE
 -@var{date}} command, which is slow on some @acronym{IMAP} servers
 -(notably, some versions of Courier). Instead, use @code{UID SEARCH SINCE
 -@var{date}} and prune the list of expirable articles within Gnus.
 +@end table
  
 -When Gnus expires your mail (@pxref{Expiring Mail}), it starts with a
 -list of expirable articles and asks the IMAP server questions like ``Of
 -these articles, which ones are older than a week?'' While this seems
 -like a perfectly reasonable question, some IMAP servers take a long time
 -to answer it, since they seemingly go looking into every old article to
 -see if it is one of the expirable ones. Curiously, the question ``Of
 -@emph{all} articles, which ones are newer than a week?'' seems to be
 -much faster to answer, so setting this variable causes Gnus to ask this
 -question and figure out the answer to the real question itself.
 +So, using these variables @code{nndoc} is able to dissect a document
 +file into a series of articles, each with a head and a body.  However, a
 +few more variables are needed since not all document types are all that
 +news-like---variables needed to transform the head or the body into
 +something that's palatable for Gnus:
  
 -This problem can really sneak up on you: when you first configure Gnus,
 -everything works fine, but once you accumulate a couple thousand
 -messages, you start cursing Gnus for being so slow. On the other hand,
 -if you get a lot of email within a week, setting this variable will
 -cause a lot of network traffic between Gnus and the IMAP server.
 +@table @code
 +@item prepare-body-function
 +If present, this function will be called when requesting an article.  It
 +will be called with point at the start of the body, and is useful if the
 +document has encoded some parts of its contents.
  
 -@item nnimap-logout-timeout
 -@vindex nnimap-logout-timeout
 +@item article-transform-function
 +If present, this function is called when requesting an article.  It's
 +meant to be used for more wide-ranging transformation of both head and
 +body of the article.
  
 -There is a case where a connection to a @acronym{IMAP} server is unable
 -to close, when connecting to the server via a certain kind of network,
 -e.g. @acronym{VPN}.  In that case, it will be observed that a connection
 -between Emacs and the local network looks alive even if the server has
 -closed a connection for some reason (typically, a timeout).
 -Consequently, Emacs continues waiting for a response from the server for
 -the @code{LOGOUT} command that Emacs sent, or hangs in other words.  If
 -you are in such a network, setting this variable to a number of seconds
 -will be helpful.  If it is set, a hung connection will be closed
 -forcibly, after this number of seconds from the time Emacs sends the
 -@code{LOGOUT} command.  It should not be too small value but too large
 -value will be inconvenient too.  Perhaps the value 1.0 will be a good
 -candidate but it might be worth trying some other values.
 +@item generate-head-function
 +If present, this function is called to generate a head that Gnus can
 +understand.  It is called with the article number as a parameter, and is
 +expected to generate a nice head for the article in question.  It is
 +called when requesting the headers of all articles.
  
 -Example server specification:
 +@item generate-article-function
 +If present, this function is called to generate an entire article that
 +Gnus can understand.  It is called with the article number as a
 +parameter when requesting all articles.
  
 -@lisp
 -(nnimap "mail.server.com"
 -        (nnimap-logout-timeout 1.0))
 -@end lisp
 +@item dissection-function
 +If present, this function is called to dissect a document by itself,
 +overriding @code{first-article}, @code{article-begin},
 +@code{article-begin-function}, @code{head-begin},
 +@code{head-begin-function}, @code{head-end}, @code{body-begin},
 +@code{body-begin-function}, @code{body-end}, @code{body-end-function},
 +@code{file-begin}, and @code{file-end}.
  
  @end table
  
 -@menu
 -* Splitting in IMAP::           Splitting mail with nnimap.
 -* Expiring in IMAP::            Expiring mail with nnimap.
 -* Editing IMAP ACLs::           Limiting/enabling other users access to a mailbox.
 -* Expunging mailboxes::         Equivalent of a ``compress mailbox'' button.
 -* A note on namespaces::        How to (not) use @acronym{IMAP} namespace in Gnus.
 -* Debugging IMAP::              What to do when things don't work.
 -@end menu
 +Let's look at the most complicated example I can come up with---standard
 +digests:
 +
 +@example
 +(standard-digest
 + (first-article . ,(concat "^" (make-string 70 ?-) "\n\n+"))
 + (article-begin . ,(concat "\n\n" (make-string 30 ?-) "\n\n+"))
 + (prepare-body-function . nndoc-unquote-dashes)
 + (body-end-function . nndoc-digest-body-end)
 + (head-end . "^ ?$")
 + (body-begin . "^ ?\n")
 + (file-end . "^End of .*digest.*[0-9].*\n\\*\\*\\|^End of.*Digest *$")
 + (subtype digest guess))
 +@end example
  
 +We see that all text before a 70-width line of dashes is ignored; all
 +text after a line that starts with that @samp{^End of} is also ignored;
 +each article begins with a 30-width line of dashes; the line separating
 +the head from the body may contain a single space; and that the body is
 +run through @code{nndoc-unquote-dashes} before being delivered.
  
 +To hook your own document definition into @code{nndoc}, use the
 +@code{nndoc-add-type} function.  It takes two parameters---the first
 +is the definition itself and the second (optional) parameter says
 +where in the document type definition alist to put this definition.
 +The alist is traversed sequentially, and
 +@code{nndoc-@var{type}-type-p} is called for a given type @var{type}.
 +So @code{nndoc-mmdf-type-p} is called to see whether a document is of
 +@code{mmdf} type, and so on.  These type predicates should return
 +@code{nil} if the document is not of the correct type; @code{t} if it
 +is of the correct type; and a number if the document might be of the
 +correct type.  A high number means high probability; a low number
 +means low probability with @samp{0} being the lowest valid number.
  
 -@node Splitting in IMAP
 -@subsection Splitting in IMAP
 -@cindex splitting imap mail
  
 -Splitting is something Gnus users have loved and used for years, and now
 -the rest of the world is catching up.  Yeah, dream on, not many
 -@acronym{IMAP} servers have server side splitting and those that have
 -splitting seem to use some non-standard protocol.  This means that
 -@acronym{IMAP} support for Gnus has to do its own splitting.
 +@node Mail-To-News Gateways
 +@subsection Mail-To-News Gateways
 +@cindex mail-to-news gateways
 +@cindex gateways
  
 -And it does.
 +If your local @code{nntp} server doesn't allow posting, for some reason
 +or other, you can post using one of the numerous mail-to-news gateways.
 +The @code{nngateway} back end provides the interface.
  
 -(Incidentally, people seem to have been dreaming on, and Sieve has
 -gaining a market share and is supported by several IMAP servers.
 -Fortunately, Gnus support it too, @xref{Sieve Commands}.)
 +Note that you can't read anything from this back end---it can only be
 +used to post with.
  
 -Here are the variables of interest:
 +Server variables:
  
  @table @code
 +@item nngateway-address
 +@vindex nngateway-address
 +This is the address of the mail-to-news gateway.
  
 -@item nnimap-split-crosspost
 -@cindex splitting, crosspost
 -@cindex crosspost
 -@vindex nnimap-split-crosspost
 -
 -If non-@code{nil}, do crossposting if several split methods match the
 -mail.  If @code{nil}, the first match in @code{nnimap-split-rule}
 -found will be used.
 +@item nngateway-header-transformation
 +@vindex nngateway-header-transformation
 +News headers often have to be transformed in some odd way or other
 +for the mail-to-news gateway to accept it.  This variable says what
 +transformation should be called, and defaults to
 +@code{nngateway-simple-header-transformation}.  The function is called
 +narrowed to the headers to be transformed and with one parameter---the
 +gateway address.
  
 -Nnmail equivalent: @code{nnmail-crosspost}.
 +This default function just inserts a new @code{To} header based on the
 +@code{Newsgroups} header and the gateway address.
 +For instance, an article with this @code{Newsgroups} header:
  
 -@item nnimap-split-inbox
 -@cindex splitting, inbox
 -@cindex inbox
 -@vindex nnimap-split-inbox
 +@example
 +Newsgroups: alt.religion.emacs
 +@end example
  
 -A string or a list of strings that gives the name(s) of @acronym{IMAP}
 -mailboxes to split from.  Defaults to @code{nil}, which means that
 -splitting is disabled!
 +will get this @code{To} header inserted:
  
 -@lisp
 -(setq nnimap-split-inbox
 -      '("INBOX" ("~/friend/Mail" . "lists/*") "lists.imap"))
 -@end lisp
 +@example
 +To: alt-religion-emacs@@GATEWAY
 +@end example
  
 -No nnmail equivalent.
 +The following pre-defined functions exist:
  
 -@item nnimap-split-rule
 -@cindex splitting, rules
 -@vindex nnimap-split-rule
 +@findex nngateway-simple-header-transformation
 +@table @code
  
 -New mail found in @code{nnimap-split-inbox} will be split according to
 -this variable.
 +@item nngateway-simple-header-transformation
 +Creates a @code{To} header that looks like
 +@var{newsgroup}@@@code{nngateway-address}.
  
 -This variable contains a list of lists, where the first element in the
 -sublist gives the name of the @acronym{IMAP} mailbox to move articles
 -matching the regexp in the second element in the sublist.  Got that?
 -Neither did I, we need examples.
 +@findex nngateway-mail2news-header-transformation
  
 -@lisp
 -(setq nnimap-split-rule
 -      '(("INBOX.nnimap"
 -         "^Sender: owner-nnimap@@vic20.globalcom.se")
 -        ("INBOX.junk"    "^Subject:.*MAKE MONEY")
 -        ("INBOX.private" "")))
 -@end lisp
 +@item nngateway-mail2news-header-transformation
 +Creates a @code{To} header that looks like
 +@code{nngateway-address}.
 +@end table
  
 -This will put all articles from the nnimap mailing list into mailbox
 -INBOX.nnimap, all articles containing MAKE MONEY in the Subject: line
 -into INBOX.junk and everything else in INBOX.private.
 +@end table
  
 -The first string may contain @samp{\\1} forms, like the ones used by
 -replace-match to insert sub-expressions from the matched text.  For
 -instance:
 +Here's an example:
  
  @lisp
 -("INBOX.lists.\\1"     "^Sender: owner-\\([a-z-]+\\)@@")
 +(setq gnus-post-method
 +      '(nngateway
 +        "mail2news@@replay.com"
 +        (nngateway-header-transformation
 +         nngateway-mail2news-header-transformation)))
  @end lisp
  
 -The first element can also be the symbol @code{junk} to indicate that
 -matching messages should simply be deleted.  Use with care.
 -
 -The second element can also be a function.  In that case, it will be
 -called with the first element of the rule as the argument, in a buffer
 -containing the headers of the article.  It should return a
 -non-@code{nil} value if it thinks that the mail belongs in that group.
 -
 -Nnmail users might recollect that the last regexp had to be empty to
 -match all articles (like in the example above).  This is not required in
 -nnimap.  Articles not matching any of the regexps will not be moved out
 -of your inbox.  (This might affect performance if you keep lots of
 -unread articles in your inbox, since the splitting code would go over
 -them every time you fetch new mail.)
 -
 -These rules are processed from the beginning of the alist toward the
 -end.  The first rule to make a match will ``win'', unless you have
 -crossposting enabled.  In that case, all matching rules will ``win''.
 -
 -This variable can also have a function as its value, the function will
 -be called with the headers narrowed and should return a group where it
 -thinks the article should be split to.  See @code{nnimap-split-fancy}.
 -
 -The splitting code tries to create mailboxes if it needs to.
 -
 -To allow for different split rules on different virtual servers, and
 -even different split rules in different inboxes on the same server,
 -the syntax of this variable have been extended along the lines of:
 +So, to use this, simply say something like:
  
  @lisp
 -(setq nnimap-split-rule
 -      '(("my1server"    (".*" (("ding"    "ding@@gnus.org")
 -                               ("junk"    "From:.*Simon"))))
 -        ("my2server"    ("INBOX" nnimap-split-fancy))
 -        ("my[34]server" (".*" (("private" "To:.*Simon")
 -                               ("junk"    my-junk-func))))))
 +(setq gnus-post-method '(nngateway "GATEWAY.ADDRESS"))
  @end lisp
  
 -The virtual server name is in fact a regexp, so that the same rules
 -may apply to several servers.  In the example, the servers
 -@code{my3server} and @code{my4server} both use the same rules.
 -Similarly, the inbox string is also a regexp.  The actual splitting
 -rules are as before, either a function, or a list with group/regexp or
 -group/function elements.
 -
 -Nnmail equivalent: @code{nnmail-split-methods}.
 -
 -@item nnimap-split-predicate
 -@cindex splitting
 -@vindex nnimap-split-predicate
 -
 -Mail matching this predicate in @code{nnimap-split-inbox} will be
 -split, it is a string and the default is @samp{UNSEEN UNDELETED}.
 -
 -This might be useful if you use another @acronym{IMAP} client to read mail in
 -your inbox but would like Gnus to split all articles in the inbox
 -regardless of readedness.  Then you might change this to
 -@samp{UNDELETED}.
 -
 -@item nnimap-split-fancy
 -@cindex splitting, fancy
 -@findex nnimap-split-fancy
 -@vindex nnimap-split-fancy
 -
 -It's possible to set @code{nnimap-split-rule} to
 -@code{nnmail-split-fancy} if you want to use fancy
 -splitting.  @xref{Fancy Mail Splitting}.
  
 -However, to be able to have different fancy split rules for nnmail and
 -nnimap back ends you can set @code{nnimap-split-rule} to
 -@code{nnimap-split-fancy} and define the nnimap specific fancy split
 -rule in @code{nnimap-split-fancy}.
 +@node The Empty Backend
 +@subsection The Empty Backend
 +@cindex nnnil
  
 -Example:
 +@code{nnnil} is a backend that can be used as a placeholder if you
 +have to specify a backend somewhere, but don't really want to.  The
 +classical example is if you don't want to have a primary select
 +methods, but want to only use secondary ones:
  
  @lisp
 -(setq nnimap-split-rule 'nnimap-split-fancy
 -      nnimap-split-fancy ...)
 +(setq gnus-select-method '(nnnil ""))
 +(setq gnus-secondary-select-methods
 +      '((nnimap "foo")
 +        (nnml "")))
  @end lisp
  
 -Nnmail equivalent: @code{nnmail-split-fancy}.
 -
 -@item nnimap-split-download-body
 -@findex nnimap-split-download-body
 -@vindex nnimap-split-download-body
 -
 -Set to non-@code{nil} to download entire articles during splitting.
 -This is generally not required, and will slow things down
 -considerably.  You may need it if you want to use an advanced
 -splitting function that analyzes the body to split the article.
 -
 -@end table
 -
 -@node Expiring in IMAP
 -@subsection Expiring in IMAP
 -@cindex expiring @acronym{IMAP} mail
  
 -Even though @code{nnimap} is not a proper @code{nnmail} derived back
 -end, it supports most features in regular expiring (@pxref{Expiring
 -Mail}).  Unlike splitting in @acronym{IMAP} (@pxref{Splitting in
 -IMAP}) it does not clone the @code{nnmail} variables (i.e., creating
 -@var{nnimap-expiry-wait}) but reuse the @code{nnmail} variables.  What
 -follows below are the variables used by the @code{nnimap} expiry
 -process.
 -
 -A note on how the expire mark is stored on the @acronym{IMAP} server is
 -appropriate here as well.  The expire mark is translated into a
 -@code{imap} client specific mark, @code{gnus-expire}, and stored on the
 -message.  This means that likely only Gnus will understand and treat
 -the @code{gnus-expire} mark properly, although other clients may allow
 -you to view client specific flags on the message.  It also means that
 -your server must support permanent storage of client specific flags on
 -messages.  Most do, fortunately.
 -
 -If expiring @acronym{IMAP} mail seems very slow, try setting the server
 -variable @code{nnimap-search-uids-not-since-is-evil}.
 -
 -@table @code
 -
 -@item nnmail-expiry-wait
 -@item nnmail-expiry-wait-function
 -
 -These variables are fully supported.  The expire value can be a
 -number, the symbol @code{immediate} or @code{never}.
 +@node Combined Groups
 +@section Combined Groups
  
 -@item nnmail-expiry-target
 +Gnus allows combining a mixture of all the other group types into bigger
 +groups.
  
 -This variable is supported, and internally implemented by calling the
 -@code{nnmail} functions that handle this.  It contains an optimization
 -that if the destination is a @acronym{IMAP} group on the same server, the
 -article is copied instead of appended (that is, uploaded again).
 +@menu
 +* Virtual Groups::              Combining articles from many groups.
 +@end menu
  
 -@end table
  
 -@node Editing IMAP ACLs
 -@subsection Editing IMAP ACLs
 -@cindex editing imap acls
 -@cindex Access Control Lists
 -@cindex Editing @acronym{IMAP} ACLs
 -@kindex G l (Group)
 -@findex gnus-group-nnimap-edit-acl
 +@node Virtual Groups
 +@subsection Virtual Groups
 +@cindex nnvirtual
 +@cindex virtual groups
 +@cindex merging groups
  
 -ACL stands for Access Control List.  ACLs are used in @acronym{IMAP} for
 -limiting (or enabling) other users access to your mail boxes.  Not all
 -@acronym{IMAP} servers support this, this function will give an error if it
 -doesn't.
 +An @dfn{nnvirtual group} is really nothing more than a collection of
 +other groups.
  
 -To edit an ACL for a mailbox, type @kbd{G l}
 -(@code{gnus-group-edit-nnimap-acl}) and you'll be presented with an ACL
 -editing window with detailed instructions.
 +For instance, if you are tired of reading many small groups, you can
 +put them all in one big group, and then grow tired of reading one
 +big, unwieldy group.  The joys of computing!
  
 -Some possible uses:
 +You specify @code{nnvirtual} as the method.  The address should be a
 +regexp to match component groups.
  
 -@itemize @bullet
 -@item
 -Giving ``anyone'' the ``lrs'' rights (lookup, read, keep seen/unseen flags)
 -on your mailing list mailboxes enables other users on the same server to
 -follow the list without subscribing to it.
 -@item
 -At least with the Cyrus server, you are required to give the user
 -``anyone'' posting ("p") capabilities to have ``plussing'' work (that is,
 -mail sent to user+mailbox@@domain ending up in the @acronym{IMAP} mailbox
 -INBOX.mailbox).
 -@end itemize
 +All marks in the virtual group will stick to the articles in the
 +component groups.  So if you tick an article in a virtual group, the
 +article will also be ticked in the component group from whence it
 +came.  (And vice versa---marks from the component groups will also be
 +shown in the virtual group.).  To create an empty virtual group, run
 +@kbd{G V} (@code{gnus-group-make-empty-virtual}) in the group buffer
 +and edit the method regexp with @kbd{M-e}
 +(@code{gnus-group-edit-group-method})
  
 -@node Expunging mailboxes
 -@subsection Expunging mailboxes
 -@cindex expunging
 -
 -@cindex expunge
 -@cindex manual expunging
 -@kindex G x (Group)
 -@findex gnus-group-nnimap-expunge
 -
 -If you're using the @code{never} setting of @code{nnimap-expunge-on-close},
 -you may want the option of expunging all deleted articles in a mailbox
 -manually.  This is exactly what @kbd{G x} does.
 -
 -Currently there is no way of showing deleted articles, you can just
 -delete them.
 -
 -@node A note on namespaces
 -@subsection A note on namespaces
 -@cindex IMAP namespace
 -@cindex namespaces
 -
 -The @acronym{IMAP} protocol has a concept called namespaces, described
 -by the following text in the RFC2060:
 -
 -@display
 -5.1.2.  Mailbox Namespace Naming Convention
 -
 -   By convention, the first hierarchical element of any mailbox name
 -   which begins with "#" identifies the "namespace" of the remainder of
 -   the name.  This makes it possible to disambiguate between different
 -   types of mailbox stores, each of which have their own namespaces.
 -
 -      For example, implementations which offer access to USENET
 -      newsgroups MAY use the "#news" namespace to partition the USENET
 -      newsgroup namespace from that of other mailboxes.  Thus, the
 -      comp.mail.misc newsgroup would have an mailbox name of
 -      "#news.comp.mail.misc", and the name "comp.mail.misc" could refer
 -      to a different object (e.g. a user's private mailbox).
 -@end display
 -
 -While there is nothing in this text that warrants concern for the
 -@acronym{IMAP} implementation in Gnus, some servers use namespace
 -prefixes in a way that does not work with how Gnus uses mailbox names.
 -
 -Specifically, University of Washington's @acronym{IMAP} server uses
 -mailbox names like @code{#driver.mbx/read-mail} which are valid only
 -in the @sc{create} and @sc{append} commands.  After the mailbox is
 -created (or a messages is appended to a mailbox), it must be accessed
 -without the namespace prefix, i.e. @code{read-mail}.  Since Gnus do
 -not make it possible for the user to guarantee that user entered
 -mailbox names will only be used with the CREATE and APPEND commands,
 -you should simply not use the namespace prefixed mailbox names in
 -Gnus.
 -
 -See the UoW IMAPD documentation for the @code{#driver.*/} prefix
 -for more information on how to use the prefixes.  They are a power
 -tool and should be used only if you are sure what the effects are.
 -
 -@node Debugging IMAP
 -@subsection Debugging IMAP
 -@cindex IMAP debugging
 -@cindex protocol dump (IMAP)
 -
 -@acronym{IMAP} is a complex protocol, more so than @acronym{NNTP} or
 -@acronym{POP3}.  Implementation bugs are not unlikely, and we do our
 -best to fix them right away.  If you encounter odd behavior, chances
 -are that either the server or Gnus is buggy.
 -
 -If you are familiar with network protocols in general, you will
 -probably be able to extract some clues from the protocol dump of the
 -exchanges between Gnus and the server.  Even if you are not familiar
 -with network protocols, when you include the protocol dump in
 -@acronym{IMAP}-related bug reports you are helping us with data
 -critical to solving the problem.  Therefore, we strongly encourage you
 -to include the protocol dump when reporting IMAP bugs in Gnus.
 -
 -
 -@vindex imap-log
 -Because the protocol dump, when enabled, generates lots of data, it is
 -disabled by default.  You can enable it by setting @code{imap-log} as
 -follows:
 +Here's an example @code{nnvirtual} method that collects all Andrea Dworkin
 +newsgroups into one, big, happy newsgroup:
  
  @lisp
 -(setq imap-log t)
 +(nnvirtual "^alt\\.fan\\.andrea-dworkin$\\|^rec\\.dworkin.*")
  @end lisp
  
 -This instructs the @code{imap.el} package to log any exchanges with
 -the server.  The log is stored in the buffer @samp{*imap-log*}.  Look
 -for error messages, which sometimes are tagged with the keyword
 -@code{BAD}---but when submitting a bug, make sure to include all the
 -data.
 -
 -@node Other Sources
 -@section Other Sources
 -
 -Gnus can do more than just read news or mail.  The methods described
 -below allow Gnus to view directories and files as if they were
 -newsgroups.
 -
 -@menu
 -* Directory Groups::            You can read a directory as if it was a newsgroup.
 -* Anything Groups::             Dired?  Who needs dired?
 -* Document Groups::             Single files can be the basis of a group.
 -* SOUP::                        Reading @sc{soup} packets ``offline''.
 -* Mail-To-News Gateways::       Posting articles via mail-to-news gateways.
 -@end menu
 -
 -
 -@node Directory Groups
 -@subsection Directory Groups
 -@cindex nndir
 -@cindex directory groups
 -
 -If you have a directory that has lots of articles in separate files in
 -it, you might treat it as a newsgroup.  The files have to have numerical
 -names, of course.
 -
 -This might be an opportune moment to mention @code{ange-ftp} (and its
 -successor @code{efs}), that most wonderful of all wonderful Emacs
 -packages.  When I wrote @code{nndir}, I didn't think much about it---a
 -back end to read directories.  Big deal.
 -
 -@code{ange-ftp} changes that picture dramatically.  For instance, if you
 -enter the @code{ange-ftp} file name
 -@file{/ftp.hpc.uh.edu:/pub/emacs/ding-list/} as the directory name,
 -@code{ange-ftp} or @code{efs} will actually allow you to read this
 -directory over at @samp{sina} as a newsgroup.  Distributed news ahoy!
 -
 -@code{nndir} will use @acronym{NOV} files if they are present.
 +The component groups can be native or foreign; everything should work
 +smoothly, but if your computer explodes, it was probably my fault.
  
 -@code{nndir} is a ``read-only'' back end---you can't delete or expire
 -articles with this method.  You can use @code{nnmh} or @code{nnml} for
 -whatever you use @code{nndir} for, so you could switch to any of those
 -methods if you feel the need to have a non-read-only @code{nndir}.
 +Collecting the same group from several servers might actually be a good
 +idea if users have set the Distribution header to limit distribution.
 +If you would like to read @samp{soc.motss} both from a server in Japan
 +and a server in Norway, you could use the following as the group regexp:
  
 +@example
 +"^nntp\\+server\\.jp:soc\\.motss$\\|^nntp\\+server\\.no:soc\\.motss$"
 +@end example
  
 -@node Anything Groups
 -@subsection Anything Groups
 -@cindex nneething
 +(Remember, though, that if you're creating the group with @kbd{G m}, you
 +shouldn't double the backslashes, and you should leave off the quote
 +characters at the beginning and the end of the string.)
  
 -From the @code{nndir} back end (which reads a single spool-like
 -directory), it's just a hop and a skip to @code{nneething}, which
 -pretends that any arbitrary directory is a newsgroup.  Strange, but
 -true.
 +This should work kinda smoothly---all articles from both groups should
 +end up in this one, and there should be no duplicates.  Threading (and
 +the rest) will still work as usual, but there might be problems with the
 +sequence of articles.  Sorting on date might be an option here
 +(@pxref{Selecting a Group}).
  
 -When @code{nneething} is presented with a directory, it will scan this
 -directory and assign article numbers to each file.  When you enter such
 -a group, @code{nneething} must create ``headers'' that Gnus can use.
 -After all, Gnus is a newsreader, in case you're forgetting.
 -@code{nneething} does this in a two-step process.  First, it snoops each
 -file in question.  If the file looks like an article (i.e., the first
 -few lines look like headers), it will use this as the head.  If this is
 -just some arbitrary file without a head (e.g. a C source file),
 -@code{nneething} will cobble up a header out of thin air.  It will use
 -file ownership, name and date and do whatever it can with these
 -elements.
 +One limitation, however---all groups included in a virtual
 +group have to be alive (i.e., subscribed or unsubscribed).  Killed or
 +zombie groups can't be component groups for @code{nnvirtual} groups.
  
 -All this should happen automatically for you, and you will be presented
 -with something that looks very much like a newsgroup.  Totally like a
 -newsgroup, to be precise.  If you select an article, it will be displayed
 -in the article buffer, just as usual.
 +@vindex nnvirtual-always-rescan
 +If the @code{nnvirtual-always-rescan} variable is non-@code{nil} (which
 +is the default), @code{nnvirtual} will always scan groups for unread
 +articles when entering a virtual group.  If this variable is @code{nil}
 +and you read articles in a component group after the virtual group has
 +been activated, the read articles from the component group will show up
 +when you enter the virtual group.  You'll also see this effect if you
 +have two virtual groups that have a component group in common.  If
 +that's the case, you should set this variable to @code{t}.  Or you can
 +just tap @code{M-g} on the virtual group every time before you enter
 +it---it'll have much the same effect.
  
 -If you select a line that represents a directory, Gnus will pop you into
 -a new summary buffer for this @code{nneething} group.  And so on.  You can
 -traverse the entire disk this way, if you feel like, but remember that
 -Gnus is not dired, really, and does not intend to be, either.
 +@code{nnvirtual} can have both mail and news groups as component groups.
 +When responding to articles in @code{nnvirtual} groups, @code{nnvirtual}
 +has to ask the back end of the component group the article comes from
 +whether it is a news or mail back end.  However, when you do a @kbd{^},
 +there is typically no sure way for the component back end to know this,
 +and in that case @code{nnvirtual} tells Gnus that the article came from a
 +not-news back end.  (Just to be on the safe side.)
  
 -There are two overall modes to this action---ephemeral or solid.  When
 -doing the ephemeral thing (i.e., @kbd{G D} from the group buffer), Gnus
 -will not store information on what files you have read, and what files
 -are new, and so on.  If you create a solid @code{nneething} group the
 -normal way with @kbd{G m}, Gnus will store a mapping table between
 -article numbers and file names, and you can treat this group like any
 -other groups.  When you activate a solid @code{nneething} group, you will
 -be told how many unread articles it contains, etc., etc.
 +@kbd{C-c C-n} in the message buffer will insert the @code{Newsgroups}
 +line from the article you respond to in these cases.
  
 -Some variables:
 +@code{nnvirtual} groups do not inherit anything but articles and marks
 +from component groups---group parameters, for instance, are not
 +inherited.
  
 -@table @code
 -@item nneething-map-file-directory
 -@vindex nneething-map-file-directory
 -All the mapping files for solid @code{nneething} groups will be stored
 -in this directory, which defaults to @file{~/.nneething/}.
  
 -@item nneething-exclude-files
 -@vindex nneething-exclude-files
 -All files that match this regexp will be ignored.  Nice to use to exclude
 -auto-save files and the like, which is what it does by default.
 +@node Email Based Diary
 +@section Email Based Diary
 +@cindex diary
 +@cindex email based diary
 +@cindex calendar
  
 -@item nneething-include-files
 -@vindex nneething-include-files
 -Regexp saying what files to include in the group.  If this variable is
 -non-@code{nil}, only files matching this regexp will be included.
 +This section describes a special mail back end called @code{nndiary},
 +and its companion library @code{gnus-diary}.  It is ``special'' in the
 +sense that it is not meant to be one of the standard alternatives for
 +reading mail with Gnus.  See @ref{Choosing a Mail Back End} for that.
 +Instead, it is used to treat @emph{some} of your mails in a special way,
 +namely, as event reminders.
  
 -@item nneething-map-file
 -@vindex nneething-map-file
 -Name of the map files.
 -@end table
 +Here is a typical scenario:
  
 +@itemize @bullet
 +@item
 +You've got a date with Andy Mc Dowell or Bruce Willis (select according
 +to your sexual preference) in one month.  You don't want to forget it.
 +@item
 +So you send a ``reminder'' message (actually, a diary one) to yourself.
 +@item
 +You forget all about it and keep on getting and reading new mail, as usual.
 +@item
 +From time to time, as you type `g' in the group buffer and as the date
 +is getting closer, the message will pop up again to remind you of your
 +appointment, just as if it were new and unread.
 +@item
 +Read your ``new'' messages, this one included, and start dreaming again
 +of the night you're gonna have.
 +@item
 +Once the date is over (you actually fell asleep just after dinner), the
 +message will be automatically deleted if it is marked as expirable.
 +@end itemize
  
 -@node Document Groups
 -@subsection Document Groups
 -@cindex nndoc
 -@cindex documentation group
 -@cindex help group
 +The Gnus Diary back end has the ability to handle regular appointments
 +(that wouldn't ever be deleted) as well as punctual ones, operates as a
 +real mail back end and is configurable in many ways.  All of this is
 +explained in the sections below.
  
 -@code{nndoc} is a cute little thing that will let you read a single file
 -as a newsgroup.  Several files types are supported:
 +@menu
 +* The NNDiary Back End::        Basic setup and usage.
 +* The Gnus Diary Library::      Utility toolkit on top of nndiary.
 +* Sending or Not Sending::      A final note on sending diary messages.
 +@end menu
  
 -@table @code
 -@cindex Babyl
 -@item babyl
 -The Babyl format.
  
 -@cindex mbox
 -@cindex Unix mbox
 -@item mbox
 -The standard Unix mbox file.
 +@node The NNDiary Back End
 +@subsection The NNDiary Back End
 +@cindex nndiary
 +@cindex the nndiary back end
  
 -@cindex MMDF mail box
 -@item mmdf
 -The MMDF mail box format.
 +@code{nndiary} is a back end very similar to @code{nnml} (@pxref{Mail
 +Spool}).  Actually, it could appear as a mix of @code{nnml} and
 +@code{nndraft}.  If you know @code{nnml}, you're already familiar with
 +the message storing scheme of @code{nndiary}: one file per message, one
 +directory per group.
  
 -@item news
 -Several news articles appended into a file.
 +  Before anything, there is one requirement to be able to run
 +@code{nndiary} properly: you @emph{must} use the group timestamp feature
 +of Gnus.  This adds a timestamp to each group's parameters.  @ref{Group
 +Timestamp} to see how it's done.
  
 -@cindex rnews batch files
 -@item rnews
 -The rnews batch transport format.
 +@menu
 +* Diary Messages::              What makes a message valid for nndiary.
 +* Running NNDiary::             NNDiary has two modes of operation.
 +* Customizing NNDiary::         Bells and whistles.
 +@end menu
  
 -@item nsmail
 -Netscape mail boxes.
 +@node Diary Messages
 +@subsubsection Diary Messages
 +@cindex nndiary messages
 +@cindex nndiary mails
  
 -@item mime-parts
 -@acronym{MIME} multipart messages.
 +@code{nndiary} messages are just normal ones, except for the mandatory
 +presence of 7 special headers.  These headers are of the form
 +@code{X-Diary-<something>}, @code{<something>} being one of
 +@code{Minute}, @code{Hour}, @code{Dom}, @code{Month}, @code{Year},
 +@code{Time-Zone} and @code{Dow}.  @code{Dom} means ``Day of Month'', and
 +@code{dow} means ``Day of Week''.  These headers actually behave like
 +crontab specifications and define the event date(s):
  
 -@item standard-digest
 -The standard (RFC 1153) digest format.
 +@itemize @bullet
 +@item
 +For all headers except the @code{Time-Zone} one, a header value is
 +either a star (meaning all possible values), or a list of fields
 +(separated by a comma).
 +@item
 +A field is either an integer, or a range.
 +@item
 +A range is two integers separated by a dash.
 +@item
 +Possible integer values are 0--59 for @code{Minute}, 0--23 for
 +@code{Hour}, 1--31 for @code{Dom}, 1--12 for @code{Month}, above 1971
 +for @code{Year} and 0--6 for @code{Dow} (0 meaning Sunday).
 +@item
 +As a special case, a star in either @code{Dom} or @code{Dow} doesn't
 +mean ``all possible values'', but ``use only the other field''.  Note
 +that if both are star'ed, the use of either one gives the same result.
 +@item
 +The @code{Time-Zone} header is special in that it can only have one
 +value (@code{GMT}, for instance).  A star doesn't mean ``all possible
 +values'' (because it makes no sense), but ``the current local time
 +zone''.  Most of the time, you'll be using a star here.  However, for a
 +list of available time zone values, see the variable
 +@code{nndiary-headers}.
 +@end itemize
  
 -@item mime-digest
 -A @acronym{MIME} digest of messages.
 +As a concrete example, here are the diary headers to add to your message
 +for specifying ``Each Monday and each 1st of month, at 12:00, 20:00,
 +21:00, 22:00, 23:00 and 24:00, from 1999 to 2010'' (I'll let you find
 +what to do then):
  
 -@item lanl-gov-announce
 -Announcement messages from LANL Gov Announce.
 +@example
 +X-Diary-Minute: 0
 +X-Diary-Hour: 12, 20-24
 +X-Diary-Dom: 1
 +X-Diary-Month: *
 +X-Diary-Year: 1999-2010
 +X-Diary-Dow: 1
 +X-Diary-Time-Zone: *
 +@end example
  
 -@cindex forwarded messages
 -@item rfc822-forward
 -A message forwarded according to RFC822.
 +@node Running NNDiary
 +@subsubsection Running NNDiary
 +@cindex running nndiary
 +@cindex nndiary operation modes
  
 -@item outlook
 -The Outlook mail box.
 +@code{nndiary} has two modes of operation: ``traditional'' (the default)
 +and ``autonomous''.  In traditional mode, @code{nndiary} does not get new
 +mail by itself.  You have to move (@kbd{B m}) or copy (@kbd{B c}) mails
 +from your primary mail back end to nndiary groups in order to handle them
 +as diary messages.  In autonomous mode, @code{nndiary} retrieves its own
 +mail and handles it independently from your primary mail back end.
  
 -@item oe-dbx
 -The Outlook Express dbx mail box.
 +One should note that Gnus is not inherently designed to allow several
 +``master'' mail back ends at the same time.  However, this does make
 +sense with @code{nndiary}: you really want to send and receive diary
 +messages to your diary groups directly.  So, @code{nndiary} supports
 +being sort of a ``second primary mail back end'' (to my knowledge, it is
 +the only back end offering this feature).  However, there is a limitation
 +(which I hope to fix some day): respooling doesn't work in autonomous
 +mode.
  
 -@item exim-bounce
 -A bounce message from the Exim MTA.
 +In order to use @code{nndiary} in autonomous mode, you have several
 +things to do:
  
 -@item forward
 -A message forwarded according to informal rules.
 +@itemize @bullet
 +@item
 +Allow @code{nndiary} to retrieve new mail by itself.  Put the following
 +line in your @file{~/.gnus.el} file:
  
 -@item rfc934
 -An RFC934-forwarded message.
 +@lisp
 +(setq nndiary-get-new-mail t)
 +@end lisp
 +@item
 +You must arrange for diary messages (those containing @code{X-Diary-*}
 +headers) to be split in a private folder @emph{before} Gnus treat them.
 +Again, this is needed because Gnus cannot (yet ?) properly handle
 +multiple primary mail back ends.  Getting those messages from a separate
 +source will compensate this misfeature to some extent.
  
 -@item mailman
 -A mailman digest.
 +As an example, here's my procmailrc entry to store diary files in
 +@file{~/.nndiary} (the default @code{nndiary} mail source file):
  
 -@item clari-briefs
 -A digest of Clarinet brief news items.
 +@example
 +:0 HD :
 +* ^X-Diary
 +.nndiary
 +@end example
 +@end itemize
  
 -@item slack-digest
 -Non-standard digest format---matches most things, but does it badly.
 +Once this is done, you might want to customize the following two options
 +that affect the diary mail retrieval and splitting processes:
  
 -@item mail-in-mail
 -The last resort.
 -@end table
 +@defvar nndiary-mail-sources
 +This is the diary-specific replacement for the standard
 +@code{mail-sources} variable.  It obeys the same syntax, and defaults to
 +@code{(file :path "~/.nndiary")}.
 +@end defvar
  
 -You can also use the special ``file type'' @code{guess}, which means
 -that @code{nndoc} will try to guess what file type it is looking at.
 -@code{digest} means that @code{nndoc} should guess what digest type the
 -file is.
 +@defvar nndiary-split-methods
 +This is the diary-specific replacement for the standard
 +@code{nnmail-split-methods} variable.  It obeys the same syntax.
 +@end defvar
  
 -@code{nndoc} will not try to change the file or insert any extra headers into
 -it---it will simply, like, let you use the file as the basis for a
 -group.  And that's it.
 +  Finally, you may add a permanent @code{nndiary} virtual server
 +(something like @code{(nndiary "diary")} should do) to your
 +@code{gnus-secondary-select-methods}.
  
 -If you have some old archived articles that you want to insert into your
 -new & spiffy Gnus mail back end, @code{nndoc} can probably help you with
 -that.  Say you have an old @file{RMAIL} file with mail that you now want
 -to split into your new @code{nnml} groups.  You look at that file using
 -@code{nndoc} (using the @kbd{G f} command in the group buffer
 -(@pxref{Foreign Groups})), set the process mark on all the articles in
 -the buffer (@kbd{M P b}, for instance), and then re-spool (@kbd{B r})
 -using @code{nnml}.  If all goes well, all the mail in the @file{RMAIL}
 -file is now also stored in lots of @code{nnml} directories, and you can
 -delete that pesky @file{RMAIL} file.  If you have the guts!
 +  Hopefully, almost everything (see the TODO section in
 +@file{nndiary.el}) will work as expected when you restart Gnus: in
 +autonomous mode, typing @kbd{g} and @kbd{M-g} in the group buffer, will
 +also get your new diary mails and split them according to your
 +diary-specific rules, @kbd{F} will find your new diary groups etc.
  
 -Virtual server variables:
 +@node Customizing NNDiary
 +@subsubsection Customizing NNDiary
 +@cindex customizing nndiary
 +@cindex nndiary customization
  
 -@table @code
 -@item nndoc-article-type
 -@vindex nndoc-article-type
 -This should be one of @code{mbox}, @code{babyl}, @code{digest},
 -@code{news}, @code{rnews}, @code{mmdf}, @code{forward}, @code{rfc934},
 -@code{rfc822-forward}, @code{mime-parts}, @code{standard-digest},
 -@code{slack-digest}, @code{clari-briefs}, @code{nsmail}, @code{outlook},
 -@code{oe-dbx}, @code{mailman}, and @code{mail-in-mail} or @code{guess}.
 +Now that @code{nndiary} is up and running, it's time to customize it.
 +The custom group is called @code{nndiary} (no, really ?!).  You should
 +browse it to figure out which options you'd like to tweak.  The following
 +two variables are probably the only ones you will want to change:
  
 -@item nndoc-post-type
 -@vindex nndoc-post-type
 -This variable says whether Gnus is to consider the group a news group or
 -a mail group.  There are two valid values:  @code{mail} (the default)
 -and @code{news}.
 -@end table
 +@defvar nndiary-reminders
 +This is the list of times when you want to be reminded of your
 +appointments (e.g. 3 weeks before, then 2 days before, then 1 hour
 +before and that's it).  Remember that ``being reminded'' means that the
 +diary message will pop up as brand new and unread again when you get new
 +mail.
 +@end defvar
  
 -@menu
 -* Document Server Internals::   How to add your own document types.
 -@end menu
 +@defvar nndiary-week-starts-on-monday
 +Rather self-explanatory.  Otherwise, Sunday is assumed (this is the
 +default).
 +@end defvar
  
  
 -@node Document Server Internals
 -@subsubsection Document Server Internals
 +@node The Gnus Diary Library
 +@subsection The Gnus Diary Library
 +@cindex gnus-diary
 +@cindex the gnus diary library
  
 -Adding new document types to be recognized by @code{nndoc} isn't
 -difficult.  You just have to whip up a definition of what the document
 -looks like, write a predicate function to recognize that document type,
 -and then hook into @code{nndoc}.
 +Using @code{nndiary} manually (I mean, writing the headers by hand and
 +so on) would be rather boring.  Fortunately, there is a library called
 +@code{gnus-diary} written on top of @code{nndiary}, that does many
 +useful things for you.
  
 -First, here's an example document type definition:
 +  In order to use it, add the following line to your @file{~/.gnus.el} file:
  
 -@example
 -(mmdf
 - (article-begin .  "^\^A\^A\^A\^A\n")
 - (body-end .  "^\^A\^A\^A\^A\n"))
 -@end example
 +@lisp
 +(require 'gnus-diary)
 +@end lisp
  
 -The definition is simply a unique @dfn{name} followed by a series of
 -regexp pseudo-variable settings.  Below are the possible
 -variables---don't be daunted by the number of variables; most document
 -types can be defined with very few settings:
 +  Also, you shouldn't use any @code{gnus-user-format-function-[d|D]}
 +(@pxref{Summary Buffer Lines}).  @code{gnus-diary} provides both of these
 +(sorry if you used them before).
  
 -@table @code
 -@item first-article
 -If present, @code{nndoc} will skip past all text until it finds
 -something that match this regexp.  All text before this will be
 -totally ignored.
  
 -@item article-begin
 -This setting has to be present in all document type definitions.  It
 -says what the beginning of each article looks like.  To do more
 -complicated things that cannot be dealt with a simple regexp, you can
 -use @code{article-begin-function} instead of this.
 +@menu
 +* Diary Summary Line Format::           A nicer summary buffer line format.
 +* Diary Articles Sorting::              A nicer way to sort messages.
 +* Diary Headers Generation::            Not doing it manually.
 +* Diary Group Parameters::              Not handling them manually.
 +@end menu
  
 -@item article-begin-function
 -If present, this should be a function that moves point to the beginning
 -of each article.  This setting overrides @code{article-begin}.
 +@node Diary Summary Line Format
 +@subsubsection Diary Summary Line Format
 +@cindex diary summary buffer line
 +@cindex diary summary line format
  
 -@item head-begin
 -If present, this should be a regexp that matches the head of the
 -article.  To do more complicated things that cannot be dealt with a
 -simple regexp, you can use @code{head-begin-function} instead of this.
 +Displaying diary messages in standard summary line format (usually
 +something like @samp{From Joe: Subject}) is pretty useless.  Most of
 +the time, you're the one who wrote the message, and you mostly want to
 +see the event's date.
  
 -@item head-begin-function
 -If present, this should be a function that moves point to the head of
 -the article.  This setting overrides @code{head-begin}.
 +  @code{gnus-diary} provides two supplemental user formats to be used in
 +summary line formats.  @code{D} corresponds to a formatted time string
 +for the next occurrence of the event (e.g. ``Sat, Sep 22 01, 12:00''),
 +while @code{d} corresponds to an approximative remaining time until the
 +next occurrence of the event (e.g. ``in 6 months, 1 week'').
  
 -@item head-end
 -This should match the end of the head of the article.  It defaults to
 -@samp{^$}---the empty line.
 +  For example, here's how Joe's birthday is displayed in my
 +@code{nndiary+diary:birthdays} summary buffer (note that the message is
 +expirable, but will never be deleted, as it specifies a periodic event):
  
 -@item body-begin
 -This should match the beginning of the body of the article.  It defaults
 -to @samp{^\n}.  To do more complicated things that cannot be dealt with
 -a simple regexp, you can use @code{body-begin-function} instead of this.
 +@example
 +   E  Sat, Sep 22 01, 12:00: Joe's birthday (in 6 months, 1 week)
 +@end example
  
 -@item body-begin-function
 -If present, this function should move point to the beginning of the body
 -of the article.  This setting overrides @code{body-begin}.
 +In order to get something like the above, you would normally add the
 +following line to your diary groups'parameters:
  
 -@item body-end
 -If present, this should match the end of the body of the article.  To do
 -more complicated things that cannot be dealt with a simple regexp, you
 -can use @code{body-end-function} instead of this.
 +@lisp
 +(gnus-summary-line-format "%U%R%z %uD: %(%s%) (%ud)\n")
 +@end lisp
  
 -@item body-end-function
 -If present, this function should move point to the end of the body of
 -the article.  This setting overrides @code{body-end}.
 +However, @code{gnus-diary} does it automatically (@pxref{Diary Group
 +Parameters}).  You can however customize the provided summary line format
 +with the following user options:
  
 -@item file-begin
 -If present, this should match the beginning of the file.  All text
 -before this regexp will be totally ignored.
 +@defvar gnus-diary-summary-line-format
 +Defines the summary line format used for diary groups (@pxref{Summary
 +Buffer Lines}).  @code{gnus-diary} uses it to automatically update the
 +diary groups'parameters.
 +@end defvar
  
 -@item file-end
 -If present, this should match the end of the file.  All text after this
 -regexp will be totally ignored.
 +@defvar gnus-diary-time-format
 +Defines the format to display dates in diary summary buffers.  This is
 +used by the @code{D} user format.  See the docstring for details.
 +@end defvar
  
 -@end table
 +@defvar gnus-diary-delay-format-function
 +Defines the format function to use for displaying delays (remaining
 +times) in diary summary buffers.  This is used by the @code{d} user
 +format.  There are currently built-in functions for English and French;
 +you can also define your own.  See the docstring for details.
 +@end defvar
  
 -So, using these variables @code{nndoc} is able to dissect a document
 -file into a series of articles, each with a head and a body.  However, a
 -few more variables are needed since not all document types are all that
 -news-like---variables needed to transform the head or the body into
 -something that's palatable for Gnus:
 +@node Diary Articles Sorting
 +@subsubsection Diary Articles Sorting
 +@cindex diary articles sorting
 +@cindex diary summary lines sorting
 +@findex gnus-summary-sort-by-schedule
 +@findex gnus-thread-sort-by-schedule
 +@findex gnus-article-sort-by-schedule
  
 -@table @code
 -@item prepare-body-function
 -If present, this function will be called when requesting an article.  It
 -will be called with point at the start of the body, and is useful if the
 -document has encoded some parts of its contents.
 +@code{gnus-diary} provides new sorting functions (@pxref{Sorting the
 +Summary Buffer} ) called @code{gnus-summary-sort-by-schedule},
 +@code{gnus-thread-sort-by-schedule} and
 +@code{gnus-article-sort-by-schedule}.  These functions let you organize
 +your diary summary buffers from the closest event to the farthest one.
  
 -@item article-transform-function
 -If present, this function is called when requesting an article.  It's
 -meant to be used for more wide-ranging transformation of both head and
 -body of the article.
 +@code{gnus-diary} automatically installs
 +@code{gnus-summary-sort-by-schedule} as a menu item in the summary
 +buffer's ``sort'' menu, and the two others as the primary (hence
 +default) sorting functions in the group parameters (@pxref{Diary Group
 +Parameters}).
  
 -@item generate-head-function
 -If present, this function is called to generate a head that Gnus can
 -understand.  It is called with the article number as a parameter, and is
 -expected to generate a nice head for the article in question.  It is
 -called when requesting the headers of all articles.
 +@node Diary Headers Generation
 +@subsubsection Diary Headers Generation
 +@cindex diary headers generation
 +@findex gnus-diary-check-message
  
 -@item generate-article-function
 -If present, this function is called to generate an entire article that
 -Gnus can understand.  It is called with the article number as a
 -parameter when requesting all articles.
 +@code{gnus-diary} provides a function called
 +@code{gnus-diary-check-message} to help you handle the @code{X-Diary-*}
 +headers.  This function ensures that the current message contains all the
 +required diary headers, and prompts you for values or corrections if
 +needed.
  
 -@item dissection-function
 -If present, this function is called to dissect a document by itself,
 -overriding @code{first-article}, @code{article-begin},
 -@code{article-begin-function}, @code{head-begin},
 -@code{head-begin-function}, @code{head-end}, @code{body-begin},
 -@code{body-begin-function}, @code{body-end}, @code{body-end-function},
 -@code{file-begin}, and @code{file-end}.
 +  This function is hooked into the @code{nndiary} back end, so that
 +moving or copying an article to a diary group will trigger it
 +automatically.  It is also bound to @kbd{C-c C-f d} in
 +@code{message-mode} and @code{article-edit-mode} in order to ease the
 +process of converting a usual mail to a diary one.
  
 -@end table
 +  This function takes a prefix argument which will force prompting of
 +all diary headers, regardless of their presence or validity.  That way,
 +you can very easily reschedule an already valid diary message, for
 +instance.
  
 -Let's look at the most complicated example I can come up with---standard
 -digests:
 +@node Diary Group Parameters
 +@subsubsection Diary Group Parameters
 +@cindex diary group parameters
  
 -@example
 -(standard-digest
 - (first-article . ,(concat "^" (make-string 70 ?-) "\n\n+"))
 - (article-begin . ,(concat "\n\n" (make-string 30 ?-) "\n\n+"))
 - (prepare-body-function . nndoc-unquote-dashes)
 - (body-end-function . nndoc-digest-body-end)
 - (head-end . "^ ?$")
 - (body-begin . "^ ?\n")
 - (file-end . "^End of .*digest.*[0-9].*\n\\*\\*\\|^End of.*Digest *$")
 - (subtype digest guess))
 -@end example
 +When you create a new diary group, or visit one, @code{gnus-diary}
 +automatically checks your group parameters and if needed, sets the
 +summary line format to the diary-specific value, installs the
 +diary-specific sorting functions, and also adds the different
 +@code{X-Diary-*} headers to the group's posting-style.  It is then easier
 +to send a diary message, because if you use @kbd{C-u a} or @kbd{C-u m}
 +on a diary group to prepare a message, these headers will be inserted
 +automatically (although not filled with proper values yet).
  
 -We see that all text before a 70-width line of dashes is ignored; all
 -text after a line that starts with that @samp{^End of} is also ignored;
 -each article begins with a 30-width line of dashes; the line separating
 -the head from the body may contain a single space; and that the body is
 -run through @code{nndoc-unquote-dashes} before being delivered.
 +@node Sending or Not Sending
 +@subsection Sending or Not Sending
  
 -To hook your own document definition into @code{nndoc}, use the
 -@code{nndoc-add-type} function.  It takes two parameters---the first
 -is the definition itself and the second (optional) parameter says
 -where in the document type definition alist to put this definition.
 -The alist is traversed sequentially, and
 -@code{nndoc-@var{type}-type-p} is called for a given type @var{type}.
 -So @code{nndoc-mmdf-type-p} is called to see whether a document is of
 -@code{mmdf} type, and so on.  These type predicates should return
 -@code{nil} if the document is not of the correct type; @code{t} if it
 -is of the correct type; and a number if the document might be of the
 -correct type.  A high number means high probability; a low number
 -means low probability with @samp{0} being the lowest valid number.
 +Well, assuming you've read all of the above, here are two final notes on
 +mail sending with @code{nndiary}:
  
 +@itemize @bullet
 +@item
 +@code{nndiary} is a @emph{real} mail back end.  You really send real diary
 +messsages for real.  This means for instance that you can give
 +appointments to anybody (provided they use Gnus and @code{nndiary}) by
 +sending the diary message to them as well.
 +@item
 +However, since @code{nndiary} also has a @code{request-post} method, you
 +can also use @kbd{C-u a} instead of @kbd{C-u m} on a diary group and the
 +message won't actually be sent; just stored locally in the group. This
 +comes in very handy for private appointments.
 +@end itemize
  
 -@node SOUP
 -@subsection SOUP
 -@cindex SOUP
 +@node Gnus Unplugged
 +@section Gnus Unplugged
  @cindex offline
 +@cindex unplugged
 +@cindex agent
 +@cindex Gnus agent
 +@cindex Gnus unplugged
  
 -In the PC world people often talk about ``offline'' newsreaders.  These
 -are thingies that are combined reader/news transport monstrosities.
 -With built-in modem programs.  Yecchh!
 -
 -Of course, us Unix Weenie types of human beans use things like
 -@code{uucp} and, like, @code{nntpd} and set up proper news and mail
 -transport things like Ghod intended.  And then we just use normal
 -newsreaders.
 +In olden times (ca. February '88), people used to run their newsreaders
 +on big machines with permanent connections to the net.  News transport
 +was dealt with by news servers, and all the newsreaders had to do was to
 +read news.  Believe it or not.
  
 -However, it can sometimes be convenient to do something that's a bit
 -easier on the brain if you have a very slow modem, and you're not really
 -that interested in doing things properly.
 +Nowadays most people read news and mail at home, and use some sort of
 +modem to connect to the net.  To avoid running up huge phone bills, it
 +would be nice to have a way to slurp down all the news and mail, hang up
 +the phone, read for several hours, and then upload any responses you
 +have to make.  And then you repeat the procedure.
  
 -A file format called @sc{soup} has been developed for transporting news
 -and mail from servers to home machines and back again.  It can be a bit
 -fiddly.
 +Of course, you can use news servers for doing this as well.  I've used
 +@code{inn} together with @code{slurp}, @code{pop} and @code{sendmail}
 +for some years, but doing that's a bore.  Moving the news server
 +functionality up to the newsreader makes sense if you're the only person
 +reading news on a machine.
  
 -First some terminology:
 +Setting up Gnus as an ``offline'' newsreader is quite simple.  In
 +fact, you don't have to configure anything as the agent is now enabled
 +by default (@pxref{Agent Variables, gnus-agent}).
  
 -@table @dfn
 +Of course, to use it as such, you have to learn a few new commands.
  
 -@item server
 -This is the machine that is connected to the outside world and where you
 -get news and/or mail from.
 +@menu
 +* Agent Basics::                How it all is supposed to work.
 +* Agent Categories::            How to tell the Gnus Agent what to download.
 +* Agent Commands::              New commands for all the buffers.
 +* Agent Visuals::               Ways that the agent may effect your summary buffer.
 +* Agent as Cache::              The Agent is a big cache too.
 +* Agent Expiry::                How to make old articles go away.
 +* Agent Regeneration::          How to recover from lost connections and other accidents.
 +* Agent and flags::             How the Agent maintains flags.
 +* Agent and IMAP::              How to use the Agent with @acronym{IMAP}.
 +* Outgoing Messages::           What happens when you post/mail something?
 +* Agent Variables::             Customizing is fun.
 +* Example Setup::               An example @file{~/.gnus.el} file for offline people.
 +* Batching Agents::             How to fetch news from a @code{cron} job.
 +* Agent Caveats::               What you think it'll do and what it does.
 +@end menu
  
 -@item home machine
 -This is the machine that you want to do the actual reading and responding
 -on.  It is typically not connected to the rest of the world in any way.
  
 -@item packet
 -Something that contains messages and/or commands.  There are two kinds
 -of packets:
 +@node Agent Basics
 +@subsection Agent Basics
  
 -@table @dfn
 -@item message packets
 -These are packets made at the server, and typically contain lots of
 -messages for you to read.  These are called @file{SoupoutX.tgz} by
 -default, where @var{x} is a number.
 +First, let's get some terminology out of the way.
  
 -@item response packets
 -These are packets made at the home machine, and typically contains
 -replies that you've written.  These are called @file{SoupinX.tgz} by
 -default, where @var{x} is a number.
 +The Gnus Agent is said to be @dfn{unplugged} when you have severed the
 +connection to the net (and notified the Agent that this is the case).
 +When the connection to the net is up again (and Gnus knows this), the
 +Agent is @dfn{plugged}.
  
 -@end table
 +The @dfn{local} machine is the one you're running on, and which isn't
 +connected to the net continuously.
  
 -@end table
 +@dfn{Downloading} means fetching things from the net to your local
 +machine.  @dfn{Uploading} is doing the opposite.
  
 +You know that Gnus gives you all the opportunity you'd ever want for
 +shooting yourself in the foot.  Some people call it flexibility.  Gnus
 +is also customizable to a great extent, which means that the user has a
 +say on how Gnus behaves.  Other newsreaders might unconditionally shoot
 +you in your foot, but with Gnus, you have a choice!
  
 -@enumerate
 +Gnus is never really in plugged or unplugged state.  Rather, it applies
 +that state to each server individually.  This means that some servers
 +can be plugged while others can be unplugged.  Additionally, some
 +servers can be ignored by the Agent altogether (which means that
 +they're kinda like plugged always).
  
 -@item
 -You log in on the server and create a @sc{soup} packet.  You can either
 -use a dedicated @sc{soup} thingie (like the @code{awk} program), or you
 -can use Gnus to create the packet with its @sc{soup} commands (@kbd{O
 -s} and/or @kbd{G s b}; and then @kbd{G s p}) (@pxref{SOUP Commands}).
 +So when you unplug the Agent and then wonder why is Gnus opening a
 +connection to the Net, the next step to do is to look whether all
 +servers are agentized.  If there is an unagentized server, you found
 +the culprit.
  
 -@item
 -You transfer the packet home.  Rail, boat, car or modem will do fine.
 +Another thing is the @dfn{offline} state.  Sometimes, servers aren't
 +reachable.  When Gnus notices this, it asks you whether you want the
 +server to be switched to offline state.  If you say yes, then the
 +server will behave somewhat as if it was unplugged, except that Gnus
 +will ask you whether you want to switch it back online again.
  
 -@item
 -You put the packet in your home directory.
 +Let's take a typical Gnus session using the Agent.
  
 -@item
 -You fire up Gnus on your home machine using the @code{nnsoup} back end as
 -the native or secondary server.
 +@itemize @bullet
  
  @item
 -You read articles and mail and answer and followup to the things you
 -want (@pxref{SOUP Replies}).
 +@findex gnus-unplugged
 +You start Gnus with @code{gnus-unplugged}.  This brings up the Gnus
 +Agent in a disconnected state.  You can read all the news that you have
 +already fetched while in this mode.
  
  @item
 -You do the @kbd{G s r} command to pack these replies into a @sc{soup}
 -packet.
 +You then decide to see whether any new news has arrived.  You connect
 +your machine to the net (using PPP or whatever), and then hit @kbd{J j}
 +to make Gnus become @dfn{plugged} and use @kbd{g} to check for new mail
 +as usual.  To check for new mail in unplugged mode (@pxref{Mail
 +Source Specifiers}).
  
  @item
 -You transfer this packet to the server.
 +You can then read the new news immediately, or you can download the
 +news onto your local machine.  If you want to do the latter, you press
 +@kbd{g} to check if there are any new news and then @kbd{J s} to fetch
 +all the eligible articles in all the groups.  (To let Gnus know which
 +articles you want to download, @pxref{Agent Categories}).
  
  @item
 -You use Gnus to mail this packet out with the @kbd{G s s} command.
 +After fetching the articles, you press @kbd{J j} to make Gnus become
 +unplugged again, and you shut down the PPP thing (or whatever).  And
 +then you read the news offline.
  
  @item
 -You then repeat until you die.
 -
 -@end enumerate
 -
 -So you basically have a bipartite system---you use @code{nnsoup} for
 -reading and Gnus for packing/sending these @sc{soup} packets.
 -
 -@menu
 -* SOUP Commands::               Commands for creating and sending @sc{soup} packets
 -* SOUP Groups::                 A back end for reading @sc{soup} packets.
 -* SOUP Replies::                How to enable @code{nnsoup} to take over mail and news.
 -@end menu
 -
 -
 -@node SOUP Commands
 -@subsubsection SOUP Commands
 -
 -These are commands for creating and manipulating @sc{soup} packets.
 -
 -@table @kbd
 -@item G s b
 -@kindex G s b (Group)
 -@findex gnus-group-brew-soup
 -Pack all unread articles in the current group
 -(@code{gnus-group-brew-soup}).  This command understands the
 -process/prefix convention.
 -
 -@item G s w
 -@kindex G s w (Group)
 -@findex gnus-soup-save-areas
 -Save all @sc{soup} data files (@code{gnus-soup-save-areas}).
 -
 -@item G s s
 -@kindex G s s (Group)
 -@findex gnus-soup-send-replies
 -Send all replies from the replies packet
 -(@code{gnus-soup-send-replies}).
 -
 -@item G s p
 -@kindex G s p (Group)
 -@findex gnus-soup-pack-packet
 -Pack all files into a @sc{soup} packet (@code{gnus-soup-pack-packet}).
 -
 -@item G s r
 -@kindex G s r (Group)
 -@findex nnsoup-pack-replies
 -Pack all replies into a replies packet (@code{nnsoup-pack-replies}).
 -
 -@item O s
 -@kindex O s (Summary)
 -@findex gnus-soup-add-article
 -This summary-mode command adds the current article to a @sc{soup} packet
 -(@code{gnus-soup-add-article}).  It understands the process/prefix
 -convention (@pxref{Process/Prefix}).
 +And then you go to step 2.
 +@end itemize
  
 -@end table
 +Here are some things you should do the first time (or so) that you use
 +the Agent.
  
 +@itemize @bullet
  
 -There are a few variables to customize where Gnus will put all these
 -thingies:
 +@item
 +Decide which servers should be covered by the Agent.  If you have a mail
 +back end, it would probably be nonsensical to have it covered by the
 +Agent.  Go to the server buffer (@kbd{^} in the group buffer) and press
 +@kbd{J a} on the server (or servers) that you wish to have covered by the
 +Agent (@pxref{Server Agent Commands}), or @kbd{J r} on automatically
 +added servers you do not wish to have covered by the Agent.  By default,
 +all @code{nntp} and @code{nnimap} servers in @code{gnus-select-method} and
 +@code{gnus-secondary-select-methods} are agentized.
  
 -@table @code
 +@item
 +Decide on download policy.  It's fairly simple once you decide whether
 +you are going to use agent categories, topic parameters, and/or group
 +parameters to implement your policy.  If you're new to gnus, it
 +is probably best to start with a category, @xref{Agent Categories}.
  
 -@item gnus-soup-directory
 -@vindex gnus-soup-directory
 -Directory where Gnus will save intermediate files while composing
 -@sc{soup} packets.  The default is @file{~/SoupBrew/}.
 +Both topic parameters (@pxref{Topic Parameters}) and agent categories
 +(@pxref{Agent Categories}) provide for setting a policy that applies
 +to multiple groups.  Which you use is entirely up to you.  Topic
 +parameters do override categories so, if you mix the two, you'll have
 +to take that into account.  If you have a few groups that deviate from
 +your policy, you can use group parameters (@pxref{Group Parameters}) to
 +configure them.
  
 -@item gnus-soup-replies-directory
 -@vindex gnus-soup-replies-directory
 -This is what Gnus will use as a temporary directory while sending our
 -reply packets.  @file{~/SoupBrew/SoupReplies/} is the default.
 +@item
 +Uhm@dots{} that's it.
 +@end itemize
  
 -@item gnus-soup-prefix-file
 -@vindex gnus-soup-prefix-file
 -Name of the file where Gnus stores the last used prefix.  The default is
 -@samp{gnus-prefix}.
  
 -@item gnus-soup-packer
 -@vindex gnus-soup-packer
 -A format string command for packing a @sc{soup} packet.  The default is
 -@samp{tar cf - %s | gzip > $HOME/Soupout%d.tgz}.
 +@node Agent Categories
 +@subsection Agent Categories
  
 -@item gnus-soup-unpacker
 -@vindex gnus-soup-unpacker
 -Format string command for unpacking a @sc{soup} packet.  The default is
 -@samp{gunzip -c %s | tar xvf -}.
 +One of the main reasons to integrate the news transport layer into the
 +newsreader is to allow greater control over what articles to download.
 +There's not much point in downloading huge amounts of articles, just to
 +find out that you're not interested in reading any of them.  It's better
 +to be somewhat more conservative in choosing what to download, and then
 +mark the articles for downloading manually if it should turn out that
 +you're interested in the articles anyway.
  
 -@item gnus-soup-packet-directory
 -@vindex gnus-soup-packet-directory
 -Where Gnus will look for reply packets.  The default is @file{~/}.
 +One of the more effective methods for controlling what is to be
 +downloaded is to create a @dfn{category} and then assign some (or all)
 +groups to this category.  Groups that do not belong in any other
 +category belong to the @code{default} category.  Gnus has its own
 +buffer for creating and managing categories.
  
 -@item gnus-soup-packet-regexp
 -@vindex gnus-soup-packet-regexp
 -Regular expression matching @sc{soup} reply packets in
 -@code{gnus-soup-packet-directory}.
 +If you prefer, you can also use group parameters (@pxref{Group
 +Parameters}) and topic parameters (@pxref{Topic Parameters}) for an
 +alternative approach to controlling the agent.  The only real
 +difference is that categories are specific to the agent (so there is
 +less to learn) while group and topic parameters include the kitchen
 +sink.
  
 -@end table
 +Since you can set agent parameters in several different places we have
 +a rule to decide which source to believe.  This rule specifies that
 +the parameter sources are checked in the following order: group
 +parameters, topic parameters, agent category, and finally customizable
 +variables.  So you can mix all of these sources to produce a wide range
 +of behavior, just don't blame me if you don't remember where you put
 +your settings.
  
 +@menu
 +* Category Syntax::             What a category looks like.
 +* Category Buffer::             A buffer for maintaining categories.
 +* Category Variables::          Customize'r'Us.
 +@end menu
  
 -@node SOUP Groups
 -@subsubsection SOUP Groups
 -@cindex nnsoup
  
 -@code{nnsoup} is the back end for reading @sc{soup} packets.  It will
 -read incoming packets, unpack them, and put them in a directory where
 -you can read them at leisure.
 +@node Category Syntax
 +@subsubsection Category Syntax
  
 -These are the variables you can use to customize its behavior:
 +A category consists of a name, the list of groups belonging to the
 +category, and a number of optional parameters that override the
 +customizable variables.  The complete list of agent parameters are
 +listed below.
  
 +@cindex Agent Parameters
  @table @code
 +@item agent-groups
 +The list of groups that are in this category.
  
 -@item nnsoup-tmp-directory
 -@vindex nnsoup-tmp-directory
 -When @code{nnsoup} unpacks a @sc{soup} packet, it does it in this
 -directory.  (@file{/tmp/} by default.)
 -
 -@item nnsoup-directory
 -@vindex nnsoup-directory
 -@code{nnsoup} then moves each message and index file to this directory.
 -The default is @file{~/SOUP/}.
 +@item agent-predicate
 +A predicate which (generally) gives a rough outline of which articles
 +are eligible for downloading; and
  
 -@item nnsoup-replies-directory
 -@vindex nnsoup-replies-directory
 -All replies will be stored in this directory before being packed into a
 -reply packet.  The default is @file{~/SOUP/replies/}.
 +@item agent-score
 +a score rule which (generally) gives you a finer granularity when
 +deciding what articles to download.  (Note that this @dfn{download
 +score} is not necessarily related to normal scores.)
  
 -@item nnsoup-replies-format-type
 -@vindex nnsoup-replies-format-type
 -The @sc{soup} format of the replies packets.  The default is @samp{?n}
 -(rnews), and I don't think you should touch that variable.  I probably
 -shouldn't even have documented it.  Drats!  Too late!
 +@item agent-enable-expiration
 +a boolean indicating whether the agent should expire old articles in
 +this group.  Most groups should be expired to conserve disk space.  In
 +fact, its probably safe to say that the gnus.* hierarchy contains the
 +only groups that should not be expired.
  
 -@item nnsoup-replies-index-type
 -@vindex nnsoup-replies-index-type
 -The index type of the replies packet.  The default is @samp{?n}, which
 -means ``none''.  Don't fiddle with this one either!
 +@item agent-days-until-old
 +an integer indicating the number of days that the agent should wait
 +before deciding that a read article is safe to expire.
  
 -@item nnsoup-active-file
 -@vindex nnsoup-active-file
 -Where @code{nnsoup} stores lots of information.  This is not an ``active
 -file'' in the @code{nntp} sense; it's an Emacs Lisp file.  If you lose
 -this file or mess it up in any way, you're dead.  The default is
 -@file{~/SOUP/active}.
 +@item agent-low-score
 +an integer that overrides the value of @code{gnus-agent-low-score}.
  
 -@item nnsoup-packer
 -@vindex nnsoup-packer
 -Format string command for packing a reply @sc{soup} packet.  The default
 -is @samp{tar cf - %s | gzip > $HOME/Soupin%d.tgz}.
 +@item agent-high-score
 +an integer that overrides the value of @code{gnus-agent-high-score}.
  
 -@item nnsoup-unpacker
 -@vindex nnsoup-unpacker
 -Format string command for unpacking incoming @sc{soup} packets.  The
 -default is @samp{gunzip -c %s | tar xvf -}.
 +@item agent-short-article
 +an integer that overrides the value of
 +@code{gnus-agent-short-article}.
  
 -@item nnsoup-packet-directory
 -@vindex nnsoup-packet-directory
 -Where @code{nnsoup} will look for incoming packets.  The default is
 -@file{~/}.
 +@item agent-long-article
 +an integer that overrides the value of @code{gnus-agent-long-article}.
  
 -@item nnsoup-packet-regexp
 -@vindex nnsoup-packet-regexp
 -Regular expression matching incoming @sc{soup} packets.  The default is
 -@samp{Soupout}.
 +@item agent-enable-undownloaded-faces
 +a symbol indicating whether the summary buffer should display
 +undownloaded articles using the @code{gnus-summary-*-undownloaded-face}
 +faces.  Any symbol other than @code{nil} will enable the use of
 +undownloaded faces.
 +@end table
  
 -@item nnsoup-always-save
 -@vindex nnsoup-always-save
 -If non-@code{nil}, save the replies buffer after each posted message.
 +The name of a category can not be changed once the category has been
 +created.
  
 -@end table
 +Each category maintains a list of groups that are exclusive members of
 +that category.  The exclusivity rule is automatically enforced, add a
 +group to a new category and it is automatically removed from its old
 +category.
  
 +A predicate in its simplest form can be a single predicate such as
 +@code{true} or @code{false}.  These two will download every available
 +article or nothing respectively.  In the case of these two special
 +predicates an additional score rule is superfluous.
  
 -@node SOUP Replies
 -@subsubsection SOUP Replies
 +Predicates of @code{high} or @code{low} download articles in respect of
 +their scores in relationship to @code{gnus-agent-high-score} and
 +@code{gnus-agent-low-score} as described below.
  
 -Just using @code{nnsoup} won't mean that your postings and mailings end
 -up in @sc{soup} reply packets automagically.  You have to work a bit
 -more for that to happen.
 +To gain even finer control of what is to be regarded eligible for
 +download a predicate can consist of a number of predicates with logical
 +operators sprinkled in between.
  
 -@findex nnsoup-set-variables
 -The @code{nnsoup-set-variables} command will set the appropriate
 -variables to ensure that all your followups and replies end up in the
 -@sc{soup} system.
 +Perhaps some examples are in order.
  
 -In specific, this is what it does:
 +Here's a simple predicate.  (It's the default predicate, in fact, used
 +for all groups that don't belong to any other category.)
  
  @lisp
 -(setq message-send-news-function 'nnsoup-request-post)
 -(setq message-send-mail-function 'nnsoup-request-mail)
 +short
  @end lisp
  
 -And that's it, really.  If you only want news to go into the @sc{soup}
 -system you just use the first line.  If you only want mail to be
 -@sc{soup}ed you use the second.
 -
 -
 -@node Mail-To-News Gateways
 -@subsection Mail-To-News Gateways
 -@cindex mail-to-news gateways
 -@cindex gateways
 -
 -If your local @code{nntp} server doesn't allow posting, for some reason
 -or other, you can post using one of the numerous mail-to-news gateways.
 -The @code{nngateway} back end provides the interface.
 +Quite simple, eh?  This predicate is true if and only if the article is
 +short (for some value of ``short'').
  
 -Note that you can't read anything from this back end---it can only be
 -used to post with.
 +Here's a more complex predicate:
  
 -Server variables:
 +@lisp
 +(or high
 +    (and
 +     (not low)
 +     (not long)))
 +@end lisp
  
 -@table @code
 -@item nngateway-address
 -@vindex nngateway-address
 -This is the address of the mail-to-news gateway.
 +This means that an article should be downloaded if it has a high score,
 +or if the score is not low and the article is not long.  You get the
 +drift.
  
 -@item nngateway-header-transformation
 -@vindex nngateway-header-transformation
 -News headers often have to be transformed in some odd way or other
 -for the mail-to-news gateway to accept it.  This variable says what
 -transformation should be called, and defaults to
 -@code{nngateway-simple-header-transformation}.  The function is called
 -narrowed to the headers to be transformed and with one parameter---the
 -gateway address.
 +The available logical operators are @code{or}, @code{and} and
 +@code{not}.  (If you prefer, you can use the more ``C''-ish operators
 +@samp{|}, @code{&} and @code{!} instead.)
  
 -This default function just inserts a new @code{To} header based on the
 -@code{Newsgroups} header and the gateway address.
 -For instance, an article with this @code{Newsgroups} header:
 +The following predicates are pre-defined, but if none of these fit what
 +you want to do, you can write your own.
  
 -@example
 -Newsgroups: alt.religion.emacs
 -@end example
 +When evaluating each of these predicates, the named constant will be
 +bound to the value determined by calling
 +@code{gnus-agent-find-parameter} on the appropriate parameter.  For
 +example, gnus-agent-short-article will be bound to
 +@code{(gnus-agent-find-parameter group 'agent-short-article)}.  This
 +means that you can specify a predicate in your category then tune that
 +predicate to individual groups.
  
 -will get this @code{To} header inserted:
 +@table @code
 +@item short
 +True if the article is shorter than @code{gnus-agent-short-article}
 +lines; default 100.
  
 -@example
 -To: alt-religion-emacs@@GATEWAY
 -@end example
 +@item long
 +True if the article is longer than @code{gnus-agent-long-article}
 +lines; default 200.
  
 -The following pre-defined functions exist:
 +@item low
 +True if the article has a download score less than
 +@code{gnus-agent-low-score}; default 0.
  
 -@findex nngateway-simple-header-transformation
 -@table @code
 +@item high
 +True if the article has a download score greater than
 +@code{gnus-agent-high-score}; default 0.
  
 -@item nngateway-simple-header-transformation
 -Creates a @code{To} header that looks like
 -@var{newsgroup}@@@code{nngateway-address}.
 +@item spam
 +True if the Gnus Agent guesses that the article is spam.  The
 +heuristics may change over time, but at present it just computes a
 +checksum and sees whether articles match.
  
 -@findex nngateway-mail2news-header-transformation
 +@item true
 +Always true.
  
 -@item nngateway-mail2news-header-transformation
 -Creates a @code{To} header that looks like
 -@code{nngateway-address}.
 +@item false
 +Always false.
  @end table
  
 -@end table
 +If you want to create your own predicate function, here's what you have
 +to know:  The functions are called with no parameters, but the
 +@code{gnus-headers} and @code{gnus-score} dynamic variables are bound to
 +useful values.
  
 -Here's an example:
 +For example, you could decide that you don't want to download articles
 +that were posted more than a certain number of days ago (e.g. posted
 +more than @code{gnus-agent-expire-days} ago) you might write a function
 +something along the lines of the following:
  
  @lisp
 -(setq gnus-post-method
 -      '(nngateway
 -        "mail2news@@replay.com"
 -        (nngateway-header-transformation
 -         nngateway-mail2news-header-transformation)))
 +(defun my-article-old-p ()
 +  "Say whether an article is old."
 +  (< (time-to-days (date-to-time (mail-header-date gnus-headers)))
 +     (- (time-to-days (current-time)) gnus-agent-expire-days)))
  @end lisp
  
 -So, to use this, simply say something like:
 +with the predicate then defined as:
  
  @lisp
 -(setq gnus-post-method '(nngateway "GATEWAY.ADDRESS"))
 +(not my-article-old-p)
  @end lisp
  
 -
 -
 -@node Combined Groups
 -@section Combined Groups
 -
 -Gnus allows combining a mixture of all the other group types into bigger
 -groups.
 -
 -@menu
 -* Virtual Groups::              Combining articles from many groups.
 -* Kibozed Groups::              Looking through parts of the newsfeed for articles.
 -@end menu
 -
 -
 -@node Virtual Groups
 -@subsection Virtual Groups
 -@cindex nnvirtual
 -@cindex virtual groups
 -@cindex merging groups
 -
 -An @dfn{nnvirtual group} is really nothing more than a collection of
 -other groups.
 -
 -For instance, if you are tired of reading many small groups, you can
 -put them all in one big group, and then grow tired of reading one
 -big, unwieldy group.  The joys of computing!
 -
 -You specify @code{nnvirtual} as the method.  The address should be a
 -regexp to match component groups.
 -
 -All marks in the virtual group will stick to the articles in the
 -component groups.  So if you tick an article in a virtual group, the
 -article will also be ticked in the component group from whence it
 -came.  (And vice versa---marks from the component groups will also be
 -shown in the virtual group.).  To create an empty virtual group, run
 -@kbd{G V} (@code{gnus-group-make-empty-virtual}) in the group buffer
 -and edit the method regexp with @kbd{M-e}
 -(@code{gnus-group-edit-group-method})
 -
 -Here's an example @code{nnvirtual} method that collects all Andrea Dworkin
 -newsgroups into one, big, happy newsgroup:
 +or you could append your predicate to the predefined
 +@code{gnus-category-predicate-alist} in your @file{~/.gnus.el} or
 +wherever.
  
  @lisp
 -(nnvirtual "^alt\\.fan\\.andrea-dworkin$\\|^rec\\.dworkin.*")
 +(require 'gnus-agent)
 +(setq  gnus-category-predicate-alist
 +  (append gnus-category-predicate-alist
 +         '((old . my-article-old-p))))
  @end lisp
  
 -The component groups can be native or foreign; everything should work
 -smoothly, but if your computer explodes, it was probably my fault.
 -
 -Collecting the same group from several servers might actually be a good
 -idea if users have set the Distribution header to limit distribution.
 -If you would like to read @samp{soc.motss} both from a server in Japan
 -and a server in Norway, you could use the following as the group regexp:
 +and simply specify your predicate as:
  
 -@example
 -"^nntp\\+server\\.jp:soc\\.motss$\\|^nntp\\+server\\.no:soc\\.motss$"
 -@end example
 +@lisp
 +(not old)
 +@end lisp
  
 -(Remember, though, that if you're creating the group with @kbd{G m}, you
 -shouldn't double the backslashes, and you should leave off the quote
 -characters at the beginning and the end of the string.)
 +If/when using something like the above, be aware that there are many
 +misconfigured systems/mailers out there and so an article's date is not
 +always a reliable indication of when it was posted.  Hell, some people
 +just don't give a damn.
  
 -This should work kinda smoothly---all articles from both groups should
 -end up in this one, and there should be no duplicates.  Threading (and
 -the rest) will still work as usual, but there might be problems with the
 -sequence of articles.  Sorting on date might be an option here
 -(@pxref{Selecting a Group}).
 +The above predicates apply to @emph{all} the groups which belong to the
 +category.  However, if you wish to have a specific predicate for an
 +individual group within a category, or you're just too lazy to set up a
 +new category, you can enter a group's individual predicate in its group
 +parameters like so:
  
 -One limitation, however---all groups included in a virtual
 -group have to be alive (i.e., subscribed or unsubscribed).  Killed or
 -zombie groups can't be component groups for @code{nnvirtual} groups.
 +@lisp
 +(agent-predicate . short)
 +@end lisp
  
 -@vindex nnvirtual-always-rescan
 -If the @code{nnvirtual-always-rescan} variable is non-@code{nil} (which
 -is the default), @code{nnvirtual} will always scan groups for unread
 -articles when entering a virtual group.  If this variable is @code{nil}
 -and you read articles in a component group after the virtual group has
 -been activated, the read articles from the component group will show up
 -when you enter the virtual group.  You'll also see this effect if you
 -have two virtual groups that have a component group in common.  If
 -that's the case, you should set this variable to @code{t}.  Or you can
 -just tap @code{M-g} on the virtual group every time before you enter
 -it---it'll have much the same effect.
 +This is the group/topic parameter equivalent of the agent category default.
 +Note that when specifying a single word predicate like this, the
 +@code{agent-predicate} specification must be in dotted pair notation.
  
 -@code{nnvirtual} can have both mail and news groups as component groups.
 -When responding to articles in @code{nnvirtual} groups, @code{nnvirtual}
 -has to ask the back end of the component group the article comes from
 -whether it is a news or mail back end.  However, when you do a @kbd{^},
 -there is typically no sure way for the component back end to know this,
 -and in that case @code{nnvirtual} tells Gnus that the article came from a
 -not-news back end.  (Just to be on the safe side.)
 +The equivalent of the longer example from above would be:
  
 -@kbd{C-c C-n} in the message buffer will insert the @code{Newsgroups}
 -line from the article you respond to in these cases.
 +@lisp
 +(agent-predicate or high (and (not low) (not long)))
 +@end lisp
  
 -@code{nnvirtual} groups do not inherit anything but articles and marks
 -from component groups---group parameters, for instance, are not
 -inherited.
 +The outer parenthesis required in the category specification are not
 +entered here as, not being in dotted pair notation, the value of the
 +predicate is assumed to be a list.
  
  
 -@node Kibozed Groups
 -@subsection Kibozed Groups
 -@cindex nnkiboze
 -@cindex kibozing
 +Now, the syntax of the download score is the same as the syntax of
 +normal score files, except that all elements that require actually
 +seeing the article itself are verboten.  This means that only the
 +following headers can be scored on: @code{Subject}, @code{From},
 +@code{Date}, @code{Message-ID}, @code{References}, @code{Chars},
 +@code{Lines}, and @code{Xref}.
  
 -@dfn{Kibozing} is defined by the @acronym{OED} as ``grepping through
 -(parts of) the news feed''.  @code{nnkiboze} is a back end that will
 -do this for you.  Oh joy!  Now you can grind any @acronym{NNTP} server
 -down to a halt with useless requests!  Oh happiness!
 +As with predicates, the specification of the @code{download score rule}
 +to use in respect of a group can be in either the category definition if
 +it's to be applicable to all groups in therein, or a group's parameters
 +if it's to be specific to that group.
  
 -@kindex G k (Group)
 -To create a kibozed group, use the @kbd{G k} command in the group
 -buffer.
 +In both of these places the @code{download score rule} can take one of
 +three forms:
  
 -The address field of the @code{nnkiboze} method is, as with
 -@code{nnvirtual}, a regexp to match groups to be ``included'' in the
 -@code{nnkiboze} group.  That's where most similarities between
 -@code{nnkiboze} and @code{nnvirtual} end.
 +@enumerate
 +@item
 +Score rule
  
 -In addition to this regexp detailing component groups, an
 -@code{nnkiboze} group must have a score file to say what articles are
 -to be included in the group (@pxref{Scoring}).
 +This has the same syntax as a normal Gnus score file except only a
 +subset of scoring keywords are available as mentioned above.
  
 -@kindex M-x nnkiboze-generate-groups
 -@findex nnkiboze-generate-groups
 -You must run @kbd{M-x nnkiboze-generate-groups} after creating the
 -@code{nnkiboze} groups you want to have.  This command will take time.
 -Lots of time.  Oodles and oodles of time.  Gnus has to fetch the
 -headers from all the articles in all the component groups and run them
 -through the scoring process to determine if there are any articles in
 -the groups that are to be part of the @code{nnkiboze} groups.
 +example:
  
 -Please limit the number of component groups by using restrictive
 -regexps.  Otherwise your sysadmin may become annoyed with you, and the
 -@acronym{NNTP} site may throw you off and never let you back in again.
 -Stranger things have happened.
 +@itemize @bullet
 +@item
 +Category specification
  
 -@code{nnkiboze} component groups do not have to be alive---they can be dead,
 -and they can be foreign.  No restrictions.
 +@lisp
 +(("from"
 +       ("Lars Ingebrigtsen" 1000000 nil s))
 +("lines"
 +       (500 -100 nil <)))
 +@end lisp
  
 -@vindex nnkiboze-directory
 -The generation of an @code{nnkiboze} group means writing two files in
 -@code{nnkiboze-directory}, which is @file{~/News/kiboze/} by default.
 -One contains the @acronym{NOV} header lines for all the articles in
 -the group, and the other is an additional @file{.newsrc} file to store
 -information on what groups have been searched through to find
 -component articles.
 +@item
 +Group/Topic Parameter specification
  
 -Articles marked as read in the @code{nnkiboze} group will have
 -their @acronym{NOV} lines removed from the @acronym{NOV} file.
 +@lisp
 +(agent-score ("from"
 +                   ("Lars Ingebrigtsen" 1000000 nil s))
 +             ("lines"
 +                   (500 -100 nil <)))
 +@end lisp
  
 +Again, note the omission of the outermost parenthesis here.
 +@end itemize
  
 -@node Email Based Diary
 -@section Email Based Diary
 -@cindex diary
 -@cindex email based diary
 -@cindex calendar
 +@item
 +Agent score file
  
 -This section describes a special mail back end called @code{nndiary},
 -and its companion library @code{gnus-diary}.  It is ``special'' in the
 -sense that it is not meant to be one of the standard alternatives for
 -reading mail with Gnus.  See @ref{Choosing a Mail Back End} for that.
 -Instead, it is used to treat @emph{some} of your mails in a special way,
 -namely, as event reminders.
 +These score files must @emph{only} contain the permitted scoring
 +keywords stated above.
  
 -Here is a typical scenario:
 +example:
  
  @itemize @bullet
  @item
 -You've got a date with Andy Mc Dowell or Bruce Willis (select according
 -to your sexual preference) in one month.  You don't want to forget it.
 -@item
 -So you send a ``reminder'' message (actually, a diary one) to yourself.
 -@item
 -You forget all about it and keep on getting and reading new mail, as usual.
 -@item
 -From time to time, as you type `g' in the group buffer and as the date
 -is getting closer, the message will pop up again to remind you of your
 -appointment, just as if it were new and unread.
 -@item
 -Read your ``new'' messages, this one included, and start dreaming again
 -of the night you're gonna have.
 -@item
 -Once the date is over (you actually fell asleep just after dinner), the
 -message will be automatically deleted if it is marked as expirable.
 -@end itemize
 +Category specification
  
 -The Gnus Diary back end has the ability to handle regular appointments
 -(that wouldn't ever be deleted) as well as punctual ones, operates as a
 -real mail back end and is configurable in many ways.  All of this is
 -explained in the sections below.
 +@lisp
 +("~/News/agent.SCORE")
 +@end lisp
  
 -@menu
 -* The NNDiary Back End::        Basic setup and usage.
 -* The Gnus Diary Library::      Utility toolkit on top of nndiary.
 -* Sending or Not Sending::      A final note on sending diary messages.
 -@end menu
 +or perhaps
  
 +@lisp
 +("~/News/agent.SCORE" "~/News/agent.group.SCORE")
 +@end lisp
  
 -@node The NNDiary Back End
 -@subsection The NNDiary Back End
 -@cindex nndiary
 -@cindex the nndiary back end
 +@item
 +Group Parameter specification
  
 -@code{nndiary} is a back end very similar to @code{nnml} (@pxref{Mail
 -Spool}).  Actually, it could appear as a mix of @code{nnml} and
 -@code{nndraft}.  If you know @code{nnml}, you're already familiar with
 -the message storing scheme of @code{nndiary}: one file per message, one
 -directory per group.
 +@lisp
 +(agent-score "~/News/agent.SCORE")
 +@end lisp
  
 -  Before anything, there is one requirement to be able to run
 -@code{nndiary} properly: you @emph{must} use the group timestamp feature
 -of Gnus.  This adds a timestamp to each group's parameters.  @ref{Group
 -Timestamp} to see how it's done.
 +Additional score files can be specified as above.  Need I say anything
 +about parenthesis?
 +@end itemize
  
 -@menu
 -* Diary Messages::              What makes a message valid for nndiary.
 -* Running NNDiary::             NNDiary has two modes of operation.
 -* Customizing NNDiary::         Bells and whistles.
 -@end menu
 +@item
 +Use @code{normal} score files
  
 -@node Diary Messages
 -@subsubsection Diary Messages
 -@cindex nndiary messages
 -@cindex nndiary mails
 +If you don't want to maintain two sets of scoring rules for a group, and
 +your desired @code{downloading} criteria for a group are the same as your
 +@code{reading} criteria then you can tell the agent to refer to your
 +@code{normal} score files when deciding what to download.
  
 -@code{nndiary} messages are just normal ones, except for the mandatory
 -presence of 7 special headers.  These headers are of the form
 -@code{X-Diary-<something>}, @code{<something>} being one of
 -@code{Minute}, @code{Hour}, @code{Dom}, @code{Month}, @code{Year},
 -@code{Time-Zone} and @code{Dow}.  @code{Dom} means ``Day of Month'', and
 -@code{dow} means ``Day of Week''.  These headers actually behave like
 -crontab specifications and define the event date(s):
 +These directives in either the category definition or a group's
 +parameters will cause the agent to read in all the applicable score
 +files for a group, @emph{filtering out} those sections that do not
 +relate to one of the permitted subset of scoring keywords.
  
  @itemize @bullet
  @item
 -For all headers except the @code{Time-Zone} one, a header value is
 -either a star (meaning all possible values), or a list of fields
 -(separated by a comma).
 -@item
 -A field is either an integer, or a range.
 -@item
 -A range is two integers separated by a dash.
 -@item
 -Possible integer values are 0--59 for @code{Minute}, 0--23 for
 -@code{Hour}, 1--31 for @code{Dom}, 1--12 for @code{Month}, above 1971
 -for @code{Year} and 0--6 for @code{Dow} (0 meaning Sunday).
 -@item
 -As a special case, a star in either @code{Dom} or @code{Dow} doesn't
 -mean ``all possible values'', but ``use only the other field''.  Note
 -that if both are star'ed, the use of either one gives the same result.
 +Category Specification
 +
 +@lisp
 +file
 +@end lisp
 +
  @item
 -The @code{Time-Zone} header is special in that it can only have one
 -value (@code{GMT}, for instance).  A star doesn't mean ``all possible
 -values'' (because it makes no sense), but ``the current local time
 -zone''.  Most of the time, you'll be using a star here.  However, for a
 -list of available time zone values, see the variable
 -@code{nndiary-headers}.
 +Group Parameter specification
 +
 +@lisp
 +(agent-score . file)
 +@end lisp
  @end itemize
 +@end enumerate
  
 -As a concrete example, here are the diary headers to add to your message
 -for specifying ``Each Monday and each 1st of month, at 12:00, 20:00,
 -21:00, 22:00, 23:00 and 24:00, from 1999 to 2010'' (I'll let you find
 -what to do then):
 +@node Category Buffer
 +@subsubsection Category Buffer
  
 -@example
 -X-Diary-Minute: 0
 -X-Diary-Hour: 12, 20-24
 -X-Diary-Dom: 1
 -X-Diary-Month: *
 -X-Diary-Year: 1999-2010
 -X-Diary-Dow: 1
 -X-Diary-Time-Zone: *
 -@end example
 +You'd normally do all category maintenance from the category buffer.
 +When you enter it for the first time (with the @kbd{J c} command from
 +the group buffer), you'll only see the @code{default} category.
  
 -@node Running NNDiary
 -@subsubsection Running NNDiary
 -@cindex running nndiary
 -@cindex nndiary operation modes
 +The following commands are available in this buffer:
  
 -@code{nndiary} has two modes of operation: ``traditional'' (the default)
 -and ``autonomous''.  In traditional mode, @code{nndiary} does not get new
 -mail by itself.  You have to move (@kbd{B m}) or copy (@kbd{B c}) mails
 -from your primary mail back end to nndiary groups in order to handle them
 -as diary messages.  In autonomous mode, @code{nndiary} retrieves its own
 -mail and handles it independently from your primary mail back end.
 +@table @kbd
 +@item q
 +@kindex q (Category)
 +@findex gnus-category-exit
 +Return to the group buffer (@code{gnus-category-exit}).
  
 -One should note that Gnus is not inherently designed to allow several
 -``master'' mail back ends at the same time.  However, this does make
 -sense with @code{nndiary}: you really want to send and receive diary
 -messages to your diary groups directly.  So, @code{nndiary} supports
 -being sort of a ``second primary mail back end'' (to my knowledge, it is
 -the only back end offering this feature).  However, there is a limitation
 -(which I hope to fix some day): respooling doesn't work in autonomous
 -mode.
 +@item e
 +@kindex e (Category)
 +@findex gnus-category-customize-category
 +Use a customization buffer to set all of the selected category's
 +parameters at one time (@code{gnus-category-customize-category}).
  
 -In order to use @code{nndiary} in autonomous mode, you have several
 -things to do:
 +@item k
 +@kindex k (Category)
 +@findex gnus-category-kill
 +Kill the current category (@code{gnus-category-kill}).
  
 -@itemize @bullet
 -@item
 -Allow @code{nndiary} to retrieve new mail by itself.  Put the following
 -line in your @file{~/.gnus.el} file:
 +@item c
 +@kindex c (Category)
 +@findex gnus-category-copy
 +Copy the current category (@code{gnus-category-copy}).
  
 -@lisp
 -(setq nndiary-get-new-mail t)
 -@end lisp
 -@item
 -You must arrange for diary messages (those containing @code{X-Diary-*}
 -headers) to be split in a private folder @emph{before} Gnus treat them.
 -Again, this is needed because Gnus cannot (yet ?) properly handle
 -multiple primary mail back ends.  Getting those messages from a separate
 -source will compensate this misfeature to some extent.
 +@item a
 +@kindex a (Category)
 +@findex gnus-category-add
 +Add a new category (@code{gnus-category-add}).
  
 -As an example, here's my procmailrc entry to store diary files in
 -@file{~/.nndiary} (the default @code{nndiary} mail source file):
 +@item p
 +@kindex p (Category)
 +@findex gnus-category-edit-predicate
 +Edit the predicate of the current category
 +(@code{gnus-category-edit-predicate}).
  
 -@example
 -:0 HD :
 -* ^X-Diary
 -.nndiary
 -@end example
 -@end itemize
 +@item g
 +@kindex g (Category)
 +@findex gnus-category-edit-groups
 +Edit the list of groups belonging to the current category
 +(@code{gnus-category-edit-groups}).
 +
 +@item s
 +@kindex s (Category)
 +@findex gnus-category-edit-score
 +Edit the download score rule of the current category
 +(@code{gnus-category-edit-score}).
 +
 +@item l
 +@kindex l (Category)
 +@findex gnus-category-list
 +List all the categories (@code{gnus-category-list}).
 +@end table
  
 -Once this is done, you might want to customize the following two options
 -that affect the diary mail retrieval and splitting processes:
  
 -@defvar nndiary-mail-sources
 -This is the diary-specific replacement for the standard
 -@code{mail-sources} variable.  It obeys the same syntax, and defaults to
 -@code{(file :path "~/.nndiary")}.
 -@end defvar
 +@node Category Variables
 +@subsubsection Category Variables
  
 -@defvar nndiary-split-methods
 -This is the diary-specific replacement for the standard
 -@code{nnmail-split-methods} variable.  It obeys the same syntax.
 -@end defvar
 +@table @code
 +@item gnus-category-mode-hook
 +@vindex gnus-category-mode-hook
 +Hook run in category buffers.
  
 -  Finally, you may add a permanent @code{nndiary} virtual server
 -(something like @code{(nndiary "diary")} should do) to your
 -@code{gnus-secondary-select-methods}.
 +@item gnus-category-line-format
 +@vindex gnus-category-line-format
 +Format of the lines in the category buffer (@pxref{Formatting
 +Variables}).  Valid elements are:
  
 -  Hopefully, almost everything (see the TODO section in
 -@file{nndiary.el}) will work as expected when you restart Gnus: in
 -autonomous mode, typing @kbd{g} and @kbd{M-g} in the group buffer, will
 -also get your new diary mails and split them according to your
 -diary-specific rules, @kbd{F} will find your new diary groups etc.
 +@table @samp
 +@item c
 +The name of the category.
  
 -@node Customizing NNDiary
 -@subsubsection Customizing NNDiary
 -@cindex customizing nndiary
 -@cindex nndiary customization
 +@item g
 +The number of groups in the category.
 +@end table
  
 -Now that @code{nndiary} is up and running, it's time to customize it.
 -The custom group is called @code{nndiary} (no, really ?!).  You should
 -browse it to figure out which options you'd like to tweak.  The following
 -two variables are probably the only ones you will want to change:
 +@item gnus-category-mode-line-format
 +@vindex gnus-category-mode-line-format
 +Format of the category mode line (@pxref{Mode Line Formatting}).
  
 -@defvar nndiary-reminders
 -This is the list of times when you want to be reminded of your
 -appointments (e.g. 3 weeks before, then 2 days before, then 1 hour
 -before and that's it).  Remember that ``being reminded'' means that the
 -diary message will pop up as brand new and unread again when you get new
 -mail.
 -@end defvar
 +@item gnus-agent-short-article
 +@vindex gnus-agent-short-article
 +Articles that have fewer lines than this are short.  Default 100.
  
 -@defvar nndiary-week-starts-on-monday
 -Rather self-explanatory.  Otherwise, Sunday is assumed (this is the
 -default).
 -@end defvar
 +@item gnus-agent-long-article
 +@vindex gnus-agent-long-article
 +Articles that have more lines than this are long.  Default 200.
  
 +@item gnus-agent-low-score
 +@vindex gnus-agent-low-score
 +Articles that have a score lower than this have a low score.  Default
 +0.
  
 -@node The Gnus Diary Library
 -@subsection The Gnus Diary Library
 -@cindex gnus-diary
 -@cindex the gnus diary library
 +@item gnus-agent-high-score
 +@vindex gnus-agent-high-score
 +Articles that have a score higher than this have a high score.  Default
 +0.
  
 -Using @code{nndiary} manually (I mean, writing the headers by hand and
 -so on) would be rather boring.  Fortunately, there is a library called
 -@code{gnus-diary} written on top of @code{nndiary}, that does many
 -useful things for you.
 +@item gnus-agent-expire-days
 +@vindex gnus-agent-expire-days
 +The number of days that a @samp{read} article must stay in the agent's
 +local disk before becoming eligible for expiration (While the name is
 +the same, this doesn't mean expiring the article on the server.  It
 +just means deleting the local copy of the article).  What is also
 +important to understand is that the counter starts with the time the
 +article was written to the local disk and not the time the article was
 +read.
 +Default 7.
  
 -  In order to use it, add the following line to your @file{~/.gnus.el} file:
 +@item gnus-agent-enable-expiration
 +@vindex gnus-agent-enable-expiration
 +Determines whether articles in a group are, by default, expired or
 +retained indefinitely.  The default is @code{ENABLE} which means that
 +you'll have to disable expiration when desired.  On the other hand,
 +you could set this to @code{DISABLE}.  In that case, you would then
 +have to enable expiration in selected groups.
  
 -@lisp
 -(require 'gnus-diary)
 -@end lisp
 +@end table
  
 -  Also, you shouldn't use any @code{gnus-user-format-function-[d|D]}
 -(@pxref{Summary Buffer Lines}).  @code{gnus-diary} provides both of these
 -(sorry if you used them before).
  
 +@node Agent Commands
 +@subsection Agent Commands
 +@findex gnus-agent-toggle-plugged
 +@kindex J j (Agent)
  
 -@menu
 -* Diary Summary Line Format::           A nicer summary buffer line format.
 -* Diary Articles Sorting::              A nicer way to sort messages.
 -* Diary Headers Generation::            Not doing it manually.
 -* Diary Group Parameters::              Not handling them manually.
 -@end menu
 +All the Gnus Agent commands are on the @kbd{J} submap.  The @kbd{J j}
 +(@code{gnus-agent-toggle-plugged}) command works in all modes, and
 +toggles the plugged/unplugged state of the Gnus Agent.
  
 -@node Diary Summary Line Format
 -@subsubsection Diary Summary Line Format
 -@cindex diary summary buffer line
 -@cindex diary summary line format
  
 -Displaying diary messages in standard summary line format (usually
 -something like @samp{From Joe: Subject}) is pretty useless.  Most of
 -the time, you're the one who wrote the message, and you mostly want to
 -see the event's date.
 +@menu
 +* Group Agent Commands::        Configure groups and fetch their contents.
 +* Summary Agent Commands::      Manually select then fetch specific articles.
 +* Server Agent Commands::       Select the servers that are supported by the agent.
 +@end menu
  
 -  @code{gnus-diary} provides two supplemental user formats to be used in
 -summary line formats.  @code{D} corresponds to a formatted time string
 -for the next occurrence of the event (e.g. ``Sat, Sep 22 01, 12:00''),
 -while @code{d} corresponds to an approximative remaining time until the
 -next occurrence of the event (e.g. ``in 6 months, 1 week'').
  
 -  For example, here's how Joe's birthday is displayed in my
 -@code{nndiary+diary:birthdays} summary buffer (note that the message is
 -expirable, but will never be deleted, as it specifies a periodic event):
  
 -@example
 -   E  Sat, Sep 22 01, 12:00: Joe's birthday (in 6 months, 1 week)
 -@end example
  
 -In order to get something like the above, you would normally add the
 -following line to your diary groups'parameters:
 +@node Group Agent Commands
 +@subsubsection Group Agent Commands
  
 -@lisp
 -(gnus-summary-line-format "%U%R%z %uD: %(%s%) (%ud)\n")
 -@end lisp
 +@table @kbd
 +@item J u
 +@kindex J u (Agent Group)
 +@findex gnus-agent-fetch-groups
 +Fetch all eligible articles in the current group
 +(@code{gnus-agent-fetch-groups}).
  
 -However, @code{gnus-diary} does it automatically (@pxref{Diary Group
 -Parameters}).  You can however customize the provided summary line format
 -with the following user options:
 +@item J c
 +@kindex J c (Agent Group)
 +@findex gnus-enter-category-buffer
 +Enter the Agent category buffer (@code{gnus-enter-category-buffer}).
  
 -@defvar gnus-diary-summary-line-format
 -Defines the summary line format used for diary groups (@pxref{Summary
 -Buffer Lines}).  @code{gnus-diary} uses it to automatically update the
 -diary groups'parameters.
 -@end defvar
 +@item J s
 +@kindex J s (Agent Group)
 +@findex gnus-agent-fetch-session
 +Fetch all eligible articles in all groups
 +(@code{gnus-agent-fetch-session}).
  
 -@defvar gnus-diary-time-format
 -Defines the format to display dates in diary summary buffers.  This is
 -used by the @code{D} user format.  See the docstring for details.
 -@end defvar
 +@item J S
 +@kindex J S (Agent Group)
 +@findex gnus-group-send-queue
 +Send all sendable messages in the queue group
 +(@code{gnus-group-send-queue}).  @xref{Drafts}.
  
 -@defvar gnus-diary-delay-format-function
 -Defines the format function to use for displaying delays (remaining
 -times) in diary summary buffers.  This is used by the @code{d} user
 -format.  There are currently built-in functions for English and French;
 -you can also define your own.  See the docstring for details.
 -@end defvar
 +@item J a
 +@kindex J a (Agent Group)
 +@findex gnus-agent-add-group
 +Add the current group to an Agent category
 +(@code{gnus-agent-add-group}).  This command understands the
 +process/prefix convention (@pxref{Process/Prefix}).
  
 -@node Diary Articles Sorting
 -@subsubsection Diary Articles Sorting
 -@cindex diary articles sorting
 -@cindex diary summary lines sorting
 -@findex gnus-summary-sort-by-schedule
 -@findex gnus-thread-sort-by-schedule
 -@findex gnus-article-sort-by-schedule
 +@item J r
 +@kindex J r (Agent Group)
 +@findex gnus-agent-remove-group
 +Remove the current group from its category, if any
 +(@code{gnus-agent-remove-group}).  This command understands the
 +process/prefix convention (@pxref{Process/Prefix}).
  
 -@code{gnus-diary} provides new sorting functions (@pxref{Sorting the
 -Summary Buffer} ) called @code{gnus-summary-sort-by-schedule},
 -@code{gnus-thread-sort-by-schedule} and
 -@code{gnus-article-sort-by-schedule}.  These functions let you organize
 -your diary summary buffers from the closest event to the farthest one.
 +@item J Y
 +@kindex J Y (Agent Group)
 +@findex gnus-agent-synchronize-flags
 +Synchronize flags changed while unplugged with remote server, if any.
  
 -@code{gnus-diary} automatically installs
 -@code{gnus-summary-sort-by-schedule} as a menu item in the summary
 -buffer's ``sort'' menu, and the two others as the primary (hence
 -default) sorting functions in the group parameters (@pxref{Diary Group
 -Parameters}).
  
 -@node Diary Headers Generation
 -@subsubsection Diary Headers Generation
 -@cindex diary headers generation
 -@findex gnus-diary-check-message
 +@end table
  
 -@code{gnus-diary} provides a function called
 -@code{gnus-diary-check-message} to help you handle the @code{X-Diary-*}
 -headers.  This function ensures that the current message contains all the
 -required diary headers, and prompts you for values or corrections if
 -needed.
  
 -  This function is hooked into the @code{nndiary} back end, so that
 -moving or copying an article to a diary group will trigger it
 -automatically.  It is also bound to @kbd{C-c C-f d} in
 -@code{message-mode} and @code{article-edit-mode} in order to ease the
 -process of converting a usual mail to a diary one.
 +@node Summary Agent Commands
 +@subsubsection Summary Agent Commands
  
 -  This function takes a prefix argument which will force prompting of
 -all diary headers, regardless of their presence or validity.  That way,
 -you can very easily reschedule an already valid diary message, for
 -instance.
 +@table @kbd
 +@item J #
 +@kindex J # (Agent Summary)
 +@findex gnus-agent-mark-article
 +Mark the article for downloading (@code{gnus-agent-mark-article}).
  
 -@node Diary Group Parameters
 -@subsubsection Diary Group Parameters
 -@cindex diary group parameters
 +@item J M-#
 +@kindex J M-# (Agent Summary)
 +@findex gnus-agent-unmark-article
 +Remove the downloading mark from the article
 +(@code{gnus-agent-unmark-article}).
  
 -When you create a new diary group, or visit one, @code{gnus-diary}
 -automatically checks your group parameters and if needed, sets the
 -summary line format to the diary-specific value, installs the
 -diary-specific sorting functions, and also adds the different
 -@code{X-Diary-*} headers to the group's posting-style.  It is then easier
 -to send a diary message, because if you use @kbd{C-u a} or @kbd{C-u m}
 -on a diary group to prepare a message, these headers will be inserted
 -automatically (although not filled with proper values yet).
 +@cindex %
 +@item @@
 +@kindex @@ (Agent Summary)
 +@findex gnus-agent-toggle-mark
 +Toggle whether to download the article
 +(@code{gnus-agent-toggle-mark}).  The download mark is @samp{%} by
 +default.
  
 -@node Sending or Not Sending
 -@subsection Sending or Not Sending
 +@item J c
 +@kindex J c (Agent Summary)
 +@findex gnus-agent-catchup
 +Mark all articles as read (@code{gnus-agent-catchup}) that are neither cached, downloaded, nor downloadable.
  
 -Well, assuming you've read all of the above, here are two final notes on
 -mail sending with @code{nndiary}:
 +@item J S
 +@kindex J S (Agent Summary)
 +@findex gnus-agent-fetch-group
 +Download all eligible (@pxref{Agent Categories}) articles in this group.
 +(@code{gnus-agent-fetch-group}).
  
 -@itemize @bullet
 -@item
 -@code{nndiary} is a @emph{real} mail back end.  You really send real diary
 -messsages for real.  This means for instance that you can give
 -appointments to anybody (provided they use Gnus and @code{nndiary}) by
 -sending the diary message to them as well.
 -@item
 -However, since @code{nndiary} also has a @code{request-post} method, you
 -can also use @kbd{C-u a} instead of @kbd{C-u m} on a diary group and the
 -message won't actually be sent; just stored locally in the group. This
 -comes in very handy for private appointments.
 -@end itemize
 +@item J s
 +@kindex J s (Agent Summary)
 +@findex gnus-agent-summary-fetch-series
 +Download all processable articles in this group.
 +(@code{gnus-agent-summary-fetch-series}).
  
 -@node Gnus Unplugged
 -@section Gnus Unplugged
 -@cindex offline
 -@cindex unplugged
 -@cindex agent
 -@cindex Gnus agent
 -@cindex Gnus unplugged
 +@item J u
 +@kindex J u (Agent Summary)
 +@findex gnus-agent-summary-fetch-group
 +Download all downloadable articles in the current group
 +(@code{gnus-agent-summary-fetch-group}).
  
 -In olden times (ca. February '88), people used to run their newsreaders
 -on big machines with permanent connections to the net.  News transport
 -was dealt with by news servers, and all the newsreaders had to do was to
 -read news.  Believe it or not.
 +@end table
  
 -Nowadays most people read news and mail at home, and use some sort of
 -modem to connect to the net.  To avoid running up huge phone bills, it
 -would be nice to have a way to slurp down all the news and mail, hang up
 -the phone, read for several hours, and then upload any responses you
 -have to make.  And then you repeat the procedure.
  
 -Of course, you can use news servers for doing this as well.  I've used
 -@code{inn} together with @code{slurp}, @code{pop} and @code{sendmail}
 -for some years, but doing that's a bore.  Moving the news server
 -functionality up to the newsreader makes sense if you're the only person
 -reading news on a machine.
 +@node Server Agent Commands
 +@subsubsection Server Agent Commands
  
 -Setting up Gnus as an ``offline'' newsreader is quite simple.  In
 -fact, you don't have to configure anything as the agent is now enabled
 -by default (@pxref{Agent Variables, gnus-agent}).
 +@table @kbd
 +@item J a
 +@kindex J a (Agent Server)
 +@findex gnus-agent-add-server
 +Add the current server to the list of servers covered by the Gnus Agent
 +(@code{gnus-agent-add-server}).
  
 -Of course, to use it as such, you have to learn a few new commands.
 +@item J r
 +@kindex J r (Agent Server)
 +@findex gnus-agent-remove-server
 +Remove the current server from the list of servers covered by the Gnus
 +Agent (@code{gnus-agent-remove-server}).
  
 -@menu
 -* Agent Basics::                How it all is supposed to work.
 -* Agent Categories::            How to tell the Gnus Agent what to download.
 -* Agent Commands::              New commands for all the buffers.
 -* Agent Visuals::               Ways that the agent may effect your summary buffer.
 -* Agent as Cache::              The Agent is a big cache too.
 -* Agent Expiry::                How to make old articles go away.
 -* Agent Regeneration::          How to recover from lost connections and other accidents.
 -* Agent and flags::             How the Agent maintains flags.
 -* Agent and IMAP::              How to use the Agent with @acronym{IMAP}.
 -* Outgoing Messages::           What happens when you post/mail something?
 -* Agent Variables::             Customizing is fun.
 -* Example Setup::               An example @file{~/.gnus.el} file for offline people.
 -* Batching Agents::             How to fetch news from a @code{cron} job.
 -* Agent Caveats::               What you think it'll do and what it does.
 -@end menu
 +@end table
  
  
 -@node Agent Basics
 -@subsection Agent Basics
 +@node Agent Visuals
 +@subsection Agent Visuals
  
 -First, let's get some terminology out of the way.
 +If you open a summary while unplugged and, Gnus knows from the group's
 +active range that there are more articles than the headers currently
 +stored in the Agent, you may see some articles whose subject looks
 +something like @samp{[Undownloaded article #####]}.  These are
 +placeholders for the missing headers.  Aside from setting a mark,
 +there is not much that can be done with one of these placeholders.
 +When Gnus finally gets a chance to fetch the group's headers, the
 +placeholders will automatically be replaced by the actual headers.
 +You can configure the summary buffer's maneuvering to skip over the
 +placeholders if you care (See @code{gnus-auto-goto-ignores}).
  
 -The Gnus Agent is said to be @dfn{unplugged} when you have severed the
 -connection to the net (and notified the Agent that this is the case).
 -When the connection to the net is up again (and Gnus knows this), the
 -Agent is @dfn{plugged}.
 +While it may be obvious to all, the only headers and articles
 +available while unplugged are those headers and articles that were
 +fetched into the Agent while previously plugged.  To put it another
 +way, ``If you forget to fetch something while plugged, you might have a
 +less than satisfying unplugged session''.  For this reason, the Agent
 +adds two visual effects to your summary buffer.  These effects display
 +the download status of each article so that you always know which
 +articles will be available when unplugged.
  
 -The @dfn{local} machine is the one you're running on, and which isn't
 -connected to the net continuously.
 +The first visual effect is the @samp{%O} spec.  If you customize
 +@code{gnus-summary-line-format} to include this specifier, you will add
 +a single character field that indicates an article's download status.
 +Articles that have been fetched into either the Agent or the Cache,
 +will display @code{gnus-downloaded-mark} (defaults to @samp{+}).  All
 +other articles will display @code{gnus-undownloaded-mark} (defaults to
 +@samp{-}).  If you open a group that has not been agentized, a space
 +(@samp{ }) will be displayed.
  
 -@dfn{Downloading} means fetching things from the net to your local
 -machine.  @dfn{Uploading} is doing the opposite.
 +The second visual effect are the undownloaded faces.  The faces, there
 +are three indicating the article's score (low, normal, high), seem to
 +result in a love/hate response from many Gnus users.  The problem is
 +that the face selection is controlled by a list of condition tests and
 +face names (See @code{gnus-summary-highlight}).  Each condition is
 +tested in the order in which it appears in the list so early
 +conditions have precedence over later conditions.  All of this means
 +that, if you tick an undownloaded article, the article will continue
 +to be displayed in the undownloaded face rather than the ticked face.
  
 -You know that Gnus gives you all the opportunity you'd ever want for
 -shooting yourself in the foot.  Some people call it flexibility.  Gnus
 -is also customizable to a great extent, which means that the user has a
 -say on how Gnus behaves.  Other newsreaders might unconditionally shoot
 -you in your foot, but with Gnus, you have a choice!
 +If you use the Agent as a cache (to avoid downloading the same article
 +each time you visit it or to minimize your connection time), the
 +undownloaded face will probably seem like a good idea.  The reason
 +being that you do all of our work (marking, reading, deleting) with
 +downloaded articles so the normal faces always appear.  For those
 +users using the agent to improve online performance by caching the NOV
 +database (most users since 5.10.2), the undownloaded faces may appear
 +to be an absolutely horrible idea.  The issue being that, since none
 +of their articles have been fetched into the Agent, all of the
 +normal faces will be obscured by the undownloaded faces.
  
 -Gnus is never really in plugged or unplugged state.  Rather, it applies
 -that state to each server individually.  This means that some servers
 -can be plugged while others can be unplugged.  Additionally, some
 -servers can be ignored by the Agent altogether (which means that
 -they're kinda like plugged always).
 +If you would like to use the undownloaded faces, you must enable the
 +undownloaded faces by setting the @code{agent-enable-undownloaded-faces}
 +group parameter to @code{t}.  This parameter, like all other agent
 +parameters, may be set on an Agent Category (@pxref{Agent Categories}),
 +a Group Topic (@pxref{Topic Parameters}), or an individual group
 +(@pxref{Group Parameters}).
  
 -So when you unplug the Agent and then wonder why is Gnus opening a
 -connection to the Net, the next step to do is to look whether all
 -servers are agentized.  If there is an unagentized server, you found
 -the culprit.
 +The one problem common to all users using the agent is how quickly it
 +can consume disk space.  If you using the agent on many groups, it is
 +even more difficult to effectively recover disk space.  One solution
 +is the @samp{%F} format available in @code{gnus-group-line-format}.
 +This format will display the actual disk space used by articles
 +fetched into both the agent and cache.  By knowing which groups use
 +the most space, users know where to focus their efforts when ``agent
 +expiring'' articles.
  
 -Another thing is the @dfn{offline} state.  Sometimes, servers aren't
 -reachable.  When Gnus notices this, it asks you whether you want the
 -server to be switched to offline state.  If you say yes, then the
 -server will behave somewhat as if it was unplugged, except that Gnus
 -will ask you whether you want to switch it back online again.
 +@node Agent as Cache
 +@subsection Agent as Cache
  
 -Let's take a typical Gnus session using the Agent.
 +When Gnus is plugged, it is not efficient to download headers or
 +articles from the server again, if they are already stored in the
 +Agent.  So, Gnus normally only downloads headers once, and stores them
 +in the Agent.  These headers are later used when generating the summary
 +buffer, regardless of whether you are plugged or unplugged.  Articles
 +are not cached in the Agent by default though (that would potentially
 +consume lots of disk space), but if you have already downloaded an
 +article into the Agent, Gnus will not download the article from the
 +server again but use the locally stored copy instead.
  
 -@itemize @bullet
 +If you so desire, you can configure the agent (see @code{gnus-agent-cache}
 +@pxref{Agent Variables}) to always download headers and articles while
 +plugged.  Gnus will almost certainly be slower, but it will be kept
 +synchronized with the server.  That last point probably won't make any
 +sense if you are using a nntp or nnimap back end.
  
 -@item
 -@findex gnus-unplugged
 -You start Gnus with @code{gnus-unplugged}.  This brings up the Gnus
 -Agent in a disconnected state.  You can read all the news that you have
 -already fetched while in this mode.
 +@node Agent Expiry
 +@subsection Agent Expiry
  
 -@item
 -You then decide to see whether any new news has arrived.  You connect
 -your machine to the net (using PPP or whatever), and then hit @kbd{J j}
 -to make Gnus become @dfn{plugged} and use @kbd{g} to check for new mail
 -as usual.  To check for new mail in unplugged mode (@pxref{Mail
 -Source Specifiers}).
 +@vindex gnus-agent-expire-days
 +@findex gnus-agent-expire
 +@kindex M-x gnus-agent-expire
 +@kindex M-x gnus-agent-expire-group
 +@findex gnus-agent-expire-group
 +@cindex agent expiry
 +@cindex Gnus agent expiry
 +@cindex expiry, in Gnus agent
  
 -@item
 -You can then read the new news immediately, or you can download the
 -news onto your local machine.  If you want to do the latter, you press
 -@kbd{g} to check if there are any new news and then @kbd{J s} to fetch
 -all the eligible articles in all the groups.  (To let Gnus know which
 -articles you want to download, @pxref{Agent Categories}).
 +The Agent back end, @code{nnagent}, doesn't handle expiry.  Well, at
 +least it doesn't handle it like other back ends.  Instead, there are
 +special @code{gnus-agent-expire} and @code{gnus-agent-expire-group}
 +commands that will expire all read articles that are older than
 +@code{gnus-agent-expire-days} days.  They can be run whenever you feel
 +that you're running out of space.  Neither are particularly fast or
 +efficient, and it's not a particularly good idea to interrupt them (with
 +@kbd{C-g} or anything else) once you've started one of them.
  
 -@item
 -After fetching the articles, you press @kbd{J j} to make Gnus become
 -unplugged again, and you shut down the PPP thing (or whatever).  And
 -then you read the news offline.
 +Note that other functions, e.g. @code{gnus-request-expire-articles},
 +might run @code{gnus-agent-expire} for you to keep the agent
 +synchronized with the group.
  
 -@item
 -And then you go to step 2.
 -@end itemize
 +The agent parameter @code{agent-enable-expiration} may be used to
 +prevent expiration in selected groups.
  
 -Here are some things you should do the first time (or so) that you use
 -the Agent.
 +@vindex gnus-agent-expire-all
 +If @code{gnus-agent-expire-all} is non-@code{nil}, the agent
 +expiration commands will expire all articles---unread, read, ticked
 +and dormant.  If @code{nil} (which is the default), only read articles
 +are eligible for expiry, and unread, ticked and dormant articles will
 +be kept indefinitely.
  
 -@itemize @bullet
 +If you find that some articles eligible for expiry are never expired,
 +perhaps some Gnus Agent files are corrupted.  There's are special
 +commands, @code{gnus-agent-regenerate} and
 +@code{gnus-agent-regenerate-group}, to fix possible problems.
  
 -@item
 -Decide which servers should be covered by the Agent.  If you have a mail
 -back end, it would probably be nonsensical to have it covered by the
 -Agent.  Go to the server buffer (@kbd{^} in the group buffer) and press
 -@kbd{J a} on the server (or servers) that you wish to have covered by the
 -Agent (@pxref{Server Agent Commands}), or @kbd{J r} on automatically
 -added servers you do not wish to have covered by the Agent.  By default,
 -all @code{nntp} and @code{nnimap} servers in @code{gnus-select-method} and
 -@code{gnus-secondary-select-methods} are agentized.
 +@node Agent Regeneration
 +@subsection Agent Regeneration
  
 -@item
 -Decide on download policy.  It's fairly simple once you decide whether
 -you are going to use agent categories, topic parameters, and/or group
 -parameters to implement your policy.  If you're new to gnus, it
 -is probably best to start with a category, @xref{Agent Categories}.
 +@cindex agent regeneration
 +@cindex Gnus agent regeneration
 +@cindex regeneration
  
 -Both topic parameters (@pxref{Topic Parameters}) and agent categories
 -(@pxref{Agent Categories}) provide for setting a policy that applies
 -to multiple groups.  Which you use is entirely up to you.  Topic
 -parameters do override categories so, if you mix the two, you'll have
 -to take that into account.  If you have a few groups that deviate from
 -your policy, you can use group parameters (@pxref{Group Parameters}) to
 -configure them.
 +The local data structures used by @code{nnagent} may become corrupted
 +due to certain exceptional conditions.  When this happens,
 +@code{nnagent} functionality may degrade or even fail.  The solution
 +to this problem is to repair the local data structures by removing all
 +internal inconsistencies.
  
 -@item
 -Uhm@dots{} that's it.
 -@end itemize
 +For example, if your connection to your server is lost while
 +downloaded articles into the agent, the local data structures will not
 +know about articles successfully downloaded prior to the connection
 +failure.  Running @code{gnus-agent-regenerate} or
 +@code{gnus-agent-regenerate-group} will update the data structures
 +such that you don't need to download these articles a second time.
  
 +@findex gnus-agent-regenerate
 +@kindex M-x gnus-agent-regenerate
 +The command @code{gnus-agent-regenerate} will perform
 +@code{gnus-agent-regenerate-group} on every agentized group.  While
 +you can run @code{gnus-agent-regenerate} in any buffer, it is strongly
 +recommended that you first close all summary buffers.
  
 -@node Agent Categories
 -@subsection Agent Categories
 +@findex gnus-agent-regenerate-group
 +@kindex M-x gnus-agent-regenerate-group
 +The command @code{gnus-agent-regenerate-group} uses the local copies
 +of individual articles to repair the local @acronym{NOV}(header) database.  It
 +then updates the internal data structures that document which articles
 +are stored locally.  An optional argument will mark articles in the
 +agent as unread.
  
 -One of the main reasons to integrate the news transport layer into the
 -newsreader is to allow greater control over what articles to download.
 -There's not much point in downloading huge amounts of articles, just to
 -find out that you're not interested in reading any of them.  It's better
 -to be somewhat more conservative in choosing what to download, and then
 -mark the articles for downloading manually if it should turn out that
 -you're interested in the articles anyway.
 +@node Agent and flags
 +@subsection Agent and flags
  
 -One of the more effective methods for controlling what is to be
 -downloaded is to create a @dfn{category} and then assign some (or all)
 -groups to this category.  Groups that do not belong in any other
 -category belong to the @code{default} category.  Gnus has its own
 -buffer for creating and managing categories.
 +The Agent works with any Gnus back end including those, such as
 +nnimap, that store flags (read, ticked, etc) on the server.  Sadly,
 +the Agent does not actually know which backends keep their flags in
 +the backend server rather than in @file{.newsrc}.  This means that the
 +Agent, while unplugged or disconnected, will always record all changes
 +to the flags in its own files.
  
 -If you prefer, you can also use group parameters (@pxref{Group
 -Parameters}) and topic parameters (@pxref{Topic Parameters}) for an
 -alternative approach to controlling the agent.  The only real
 -difference is that categories are specific to the agent (so there is
 -less to learn) while group and topic parameters include the kitchen
 -sink.
 +When you plug back in, Gnus will then check to see if you have any
 +changed any flags and ask if you wish to synchronize these with the
 +server.  This behavior is customizable by @code{gnus-agent-synchronize-flags}.
  
 -Since you can set agent parameters in several different places we have
 -a rule to decide which source to believe.  This rule specifies that
 -the parameter sources are checked in the following order: group
 -parameters, topic parameters, agent category, and finally customizable
 -variables.  So you can mix all of these sources to produce a wide range
 -of behavior, just don't blame me if you don't remember where you put
 -your settings.
 +@vindex gnus-agent-synchronize-flags
 +If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will
 +never automatically synchronize flags.  If it is @code{ask}, which is
 +the default, the Agent will check if you made any changes and if so
 +ask if you wish to synchronize these when you re-connect.  If it has
 +any other value, all flags will be synchronized automatically.
  
 -@menu
 -* Category Syntax::             What a category looks like.
 -* Category Buffer::             A buffer for maintaining categories.
 -* Category Variables::          Customize'r'Us.
 -@end menu
 +If you do not wish to synchronize flags automatically when you
 +re-connect, you can do it manually with the
 +@code{gnus-agent-synchronize-flags} command that is bound to @kbd{J Y}
 +in the group buffer.
  
 +Technical note: the synchronization algorithm does not work by ``pushing''
 +all local flags to the server, but rather by incrementally updated the
 +server view of flags by changing only those flags that were changed by
 +the user.  Thus, if you set one flag on an article, quit the group then
 +re-select the group and remove the flag; the flag will be set and
 +removed from the server when you ``synchronize''.  The queued flag
 +operations can be found in the per-server @code{flags} file in the Agent
 +directory.  It's emptied when you synchronize flags.
  
 -@node Category Syntax
 -@subsubsection Category Syntax
 +@node Agent and IMAP
 +@subsection Agent and IMAP
  
 -A category consists of a name, the list of groups belonging to the
 -category, and a number of optional parameters that override the
 -customizable variables.  The complete list of agent parameters are
 -listed below.
 +The Agent works with any Gnus back end, including nnimap.  However,
 +since there are some conceptual differences between @acronym{NNTP} and
 +@acronym{IMAP}, this section (should) provide you with some information to
 +make Gnus Agent work smoother as a @acronym{IMAP} Disconnected Mode client.
  
 -@cindex Agent Parameters
 -@table @code
 -@item agent-groups
 -The list of groups that are in this category.
 +Some things are currently not implemented in the Agent that you'd might
 +expect from a disconnected @acronym{IMAP} client, including:
  
 -@item agent-predicate
 -A predicate which (generally) gives a rough outline of which articles
 -are eligible for downloading; and
 +@itemize @bullet
  
 -@item agent-score
 -a score rule which (generally) gives you a finer granularity when
 -deciding what articles to download.  (Note that this @dfn{download
 -score} is not necessarily related to normal scores.)
 +@item
 +Copying/moving articles into nnimap groups when unplugged.
  
 -@item agent-enable-expiration
 -a boolean indicating whether the agent should expire old articles in
 -this group.  Most groups should be expired to conserve disk space.  In
 -fact, its probably safe to say that the gnus.* hierarchy contains the
 -only groups that should not be expired.
 +@item
 +Creating/deleting nnimap groups when unplugged.
  
 -@item agent-days-until-old
 -an integer indicating the number of days that the agent should wait
 -before deciding that a read article is safe to expire.
 +@end itemize
  
 -@item agent-low-score
 -an integer that overrides the value of @code{gnus-agent-low-score}.
 +@node Outgoing Messages
 +@subsection Outgoing Messages
  
 -@item agent-high-score
 -an integer that overrides the value of @code{gnus-agent-high-score}.
 +By default, when Gnus is unplugged, all outgoing messages (both mail
 +and news) are stored in the draft group ``queue'' (@pxref{Drafts}).
 +You can view them there after posting, and edit them at will.
  
 -@item agent-short-article
 -an integer that overrides the value of
 -@code{gnus-agent-short-article}.
 +You can control the circumstances under which outgoing mail is queued
 +(see @code{gnus-agent-queue-mail}, @pxref{Agent Variables}).  Outgoing
 +news is always queued when Gnus is unplugged, and never otherwise.
  
 -@item agent-long-article
 -an integer that overrides the value of @code{gnus-agent-long-article}.
 +You can send the messages either from the draft group with the special
 +commands available there, or you can use the @kbd{J S} command in the
 +group buffer to send all the sendable messages in the draft group.
 +Posting news will only work when Gnus is plugged, but you can send
 +mail at any time.
  
 -@item agent-enable-undownloaded-faces
 -a symbol indicating whether the summary buffer should display
 -undownloaded articles using the @code{gnus-summary-*-undownloaded-face}
 -faces.  Any symbol other than @code{nil} will enable the use of
 -undownloaded faces.
 -@end table
 +If sending mail while unplugged does not work for you and you worry
 +about hitting @kbd{J S} by accident when unplugged, you can have Gnus
 +ask you to confirm your action (see
 +@code{gnus-agent-prompt-send-queue}, @pxref{Agent Variables}).
  
 -The name of a category can not be changed once the category has been
 -created.
 +@node Agent Variables
 +@subsection Agent Variables
  
 -Each category maintains a list of groups that are exclusive members of
 -that category.  The exclusivity rule is automatically enforced, add a
 -group to a new category and it is automatically removed from its old
 -category.
 +@table @code
 +@item gnus-agent
 +@vindex gnus-agent
 +Is the agent enabled?  The default is @code{t}.  When first enabled,
 +the agent will use @code{gnus-agent-auto-agentize-methods} to
 +automatically mark some back ends as agentized.  You may change which
 +back ends are agentized using the agent commands in the server buffer.
  
 -A predicate in its simplest form can be a single predicate such as
 -@code{true} or @code{false}.  These two will download every available
 -article or nothing respectively.  In the case of these two special
 -predicates an additional score rule is superfluous.
 +To enter the server buffer, use the @kbd{^}
 +(@code{gnus-group-enter-server-mode}) command in the group buffer.
  
 -Predicates of @code{high} or @code{low} download articles in respect of
 -their scores in relationship to @code{gnus-agent-high-score} and
 -@code{gnus-agent-low-score} as described below.
  
 -To gain even finer control of what is to be regarded eligible for
 -download a predicate can consist of a number of predicates with logical
 -operators sprinkled in between.
 +@item gnus-agent-directory
 +@vindex gnus-agent-directory
 +Where the Gnus Agent will store its files.  The default is
 +@file{~/News/agent/}.
  
 -Perhaps some examples are in order.
 +@item gnus-agent-handle-level
 +@vindex gnus-agent-handle-level
 +Groups on levels (@pxref{Group Levels}) higher than this variable will
 +be ignored by the Agent.  The default is @code{gnus-level-subscribed},
 +which means that only subscribed group will be considered by the Agent
 +by default.
  
 -Here's a simple predicate.  (It's the default predicate, in fact, used
 -for all groups that don't belong to any other category.)
 +@item gnus-agent-plugged-hook
 +@vindex gnus-agent-plugged-hook
 +Hook run when connecting to the network.
  
 -@lisp
 -short
 -@end lisp
 +@item gnus-agent-unplugged-hook
 +@vindex gnus-agent-unplugged-hook
 +Hook run when disconnecting from the network.
  
 -Quite simple, eh?  This predicate is true if and only if the article is
 -short (for some value of ``short'').
 +@item gnus-agent-fetched-hook
 +@vindex gnus-agent-fetched-hook
 +Hook run when finished fetching articles.
  
 -Here's a more complex predicate:
 +@item gnus-agent-cache
 +@vindex gnus-agent-cache
 +Variable to control whether use the locally stored @acronym{NOV} and
 +articles when plugged, e.g. essentially using the Agent as a cache.
 +The default is non-@code{nil}, which means to use the Agent as a cache.
  
 -@lisp
 -(or high
 -    (and
 -     (not low)
 -     (not long)))
 -@end lisp
 +@item gnus-agent-go-online
 +@vindex gnus-agent-go-online
 +If @code{gnus-agent-go-online} is @code{nil}, the Agent will never
 +automatically switch offline servers into online status.  If it is
 +@code{ask}, the default, the Agent will ask if you wish to switch
 +offline servers into online status when you re-connect.  If it has any
 +other value, all offline servers will be automatically switched into
 +online status.
  
 -This means that an article should be downloaded if it has a high score,
 -or if the score is not low and the article is not long.  You get the
 -drift.
 +@item gnus-agent-mark-unread-after-downloaded
 +@vindex gnus-agent-mark-unread-after-downloaded
 +If @code{gnus-agent-mark-unread-after-downloaded} is non-@code{nil},
 +mark articles as unread after downloading.  This is usually a safe
 +thing to do as the newly downloaded article has obviously not been
 +read.  The default is @code{t}.
  
 -The available logical operators are @code{or}, @code{and} and
 -@code{not}.  (If you prefer, you can use the more ``C''-ish operators
 -@samp{|}, @code{&} and @code{!} instead.)
 +@item gnus-agent-synchronize-flags
 +@vindex gnus-agent-synchronize-flags
 +If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will
 +never automatically synchronize flags.  If it is @code{ask}, which is
 +the default, the Agent will check if you made any changes and if so
 +ask if you wish to synchronize these when you re-connect.  If it has
 +any other value, all flags will be synchronized automatically.
  
 -The following predicates are pre-defined, but if none of these fit what
 -you want to do, you can write your own.
 +@item gnus-agent-consider-all-articles
 +@vindex gnus-agent-consider-all-articles
 +If @code{gnus-agent-consider-all-articles} is non-@code{nil}, the
 +agent will let the agent predicate decide whether articles need to be
 +downloaded or not, for all articles.  When @code{nil}, the default,
 +the agent will only let the predicate decide whether unread articles
 +are downloaded or not.  If you enable this, you may also want to look
 +into the agent expiry settings (@pxref{Category Variables}), so that
 +the agent doesn't download articles which the agent will later expire,
 +over and over again.
  
 -When evaluating each of these predicates, the named constant will be
 -bound to the value determined by calling
 -@code{gnus-agent-find-parameter} on the appropriate parameter.  For
 -example, gnus-agent-short-article will be bound to
 -@code{(gnus-agent-find-parameter group 'agent-short-article)}.  This
 -means that you can specify a predicate in your category then tune that
 -predicate to individual groups.
 +@item gnus-agent-max-fetch-size
 +@vindex gnus-agent-max-fetch-size
 +The agent fetches articles into a temporary buffer prior to parsing
 +them into individual files.  To avoid exceeding the max. buffer size,
 +the agent alternates between fetching and parsing until all articles
 +have been fetched.  @code{gnus-agent-max-fetch-size} provides a size
 +limit to control how often the cycling occurs.  A large value improves
 +performance.  A small value minimizes the time lost should the
 +connection be lost while fetching (You may need to run
 +@code{gnus-agent-regenerate-group} to update the group's state.
 +However, all articles parsed prior to losing the connection will be
 +available while unplugged).  The default is 10M so it is unusual to
 +see any cycling.
  
 -@table @code
 -@item short
 -True if the article is shorter than @code{gnus-agent-short-article}
 -lines; default 100.
 +@item gnus-server-unopen-status
 +@vindex gnus-server-unopen-status
 +Perhaps not an Agent variable, but closely related to the Agent, this
 +variable says what will happen if Gnus cannot open a server.  If the
 +Agent is enabled, the default, @code{nil}, makes Gnus ask the user
 +whether to deny the server or whether to unplug the agent.  If the
 +Agent is disabled, Gnus always simply deny the server.  Other choices
 +for this variable include @code{denied} and @code{offline} the latter
 +is only valid if the Agent is used.
  
 -@item long
 -True if the article is longer than @code{gnus-agent-long-article}
 -lines; default 200.
 +@item gnus-auto-goto-ignores
 +@vindex gnus-auto-goto-ignores
 +Another variable that isn't an Agent variable, yet so closely related
 +that most will look for it here, this variable tells the summary
 +buffer how to maneuver around undownloaded (only headers stored in the
 +agent) and unfetched (neither article nor headers stored) articles.
  
 -@item low
 -True if the article has a download score less than
 -@code{gnus-agent-low-score}; default 0.
 +The valid values are @code{nil} (maneuver to any article),
 +@code{undownloaded} (maneuvering while unplugged ignores articles that
 +have not been fetched), @code{always-undownloaded} (maneuvering always
 +ignores articles that have not been fetched), @code{unfetched}
 +(maneuvering ignores articles whose headers have not been fetched).
  
 -@item high
 -True if the article has a download score greater than
 -@code{gnus-agent-high-score}; default 0.
 +@item gnus-agent-queue-mail
 +@vindex gnus-agent-queue-mail
 +When @code{gnus-agent-queue-mail} is @code{always}, Gnus will always
 +queue mail rather than sending it straight away.  When @code{t}, Gnus
 +will queue mail when unplugged only.  When @code{nil}, never queue
 +mail.  The default is @code{t}.
  
 -@item spam
 -True if the Gnus Agent guesses that the article is spam.  The
 -heuristics may change over time, but at present it just computes a
 -checksum and sees whether articles match.
 +@item gnus-agent-prompt-send-queue
 +@vindex gnus-agent-prompt-send-queue
 +When @code{gnus-agent-prompt-send-queue} is non-@code{nil} Gnus will
 +prompt you to confirm that you really wish to proceed if you hit
 +@kbd{J S} while unplugged.  The default is @code{nil}.
  
 -@item true
 -Always true.
 +@item gnus-agent-auto-agentize-methods
 +@vindex gnus-agent-auto-agentize-methods
 +If you have never used the Agent before (or more technically, if
 +@file{~/News/agent/lib/servers} does not exist), Gnus will
 +automatically agentize a few servers for you.  This variable control
 +which back ends should be auto-agentized.  It is typically only useful
 +to agentize remote back ends.  The auto-agentizing has the same effect
 +as running @kbd{J a} on the servers (@pxref{Server Agent Commands}).
 +If the file exist, you must manage the servers manually by adding or
 +removing them, this variable is only applicable the first time you
 +start Gnus.  The default is @samp{(nntp nnimap)}.
  
 -@item false
 -Always false.
  @end table
  
 -If you want to create your own predicate function, here's what you have
 -to know:  The functions are called with no parameters, but the
 -@code{gnus-headers} and @code{gnus-score} dynamic variables are bound to
 -useful values.
  
 -For example, you could decide that you don't want to download articles
 -that were posted more than a certain number of days ago (e.g. posted
 -more than @code{gnus-agent-expire-days} ago) you might write a function
 -something along the lines of the following:
 +@node Example Setup
 +@subsection Example Setup
 +
 +If you don't want to read this manual, and you have a fairly standard
 +setup, you may be able to use something like the following as your
 +@file{~/.gnus.el} file to get started.
  
  @lisp
 -(defun my-article-old-p ()
 -  "Say whether an article is old."
 -  (< (time-to-days (date-to-time (mail-header-date gnus-headers)))
 -     (- (time-to-days (current-time)) gnus-agent-expire-days)))
 -@end lisp
 +;; @r{Define how Gnus is to fetch news.  We do this over @acronym{NNTP}}
 +;; @r{from your ISP's server.}
 +(setq gnus-select-method '(nntp "news.your-isp.com"))
  
 -with the predicate then defined as:
 +;; @r{Define how Gnus is to read your mail.  We read mail from}
 +;; @r{your ISP's @acronym{POP} server.}
 +(setq mail-sources '((pop :server "pop.your-isp.com")))
  
 -@lisp
 -(not my-article-old-p)
 +;; @r{Say how Gnus is to store the mail.  We use nnml groups.}
 +(setq gnus-secondary-select-methods '((nnml "")))
 +
 +;; @r{Make Gnus into an offline newsreader.}
 +;; (gnus-agentize) ; @r{The obsolete setting.}
 +;; (setq gnus-agent t) ; @r{Now the default.}
  @end lisp
  
 -or you could append your predicate to the predefined
 -@code{gnus-category-predicate-alist} in your @file{~/.gnus.el} or
 -wherever.
 +That should be it, basically.  Put that in your @file{~/.gnus.el} file,
 +edit to suit your needs, start up PPP (or whatever), and type @kbd{M-x
 +gnus}.
  
 -@lisp
 -(require 'gnus-agent)
 -(setq  gnus-category-predicate-alist
 -  (append gnus-category-predicate-alist
 -         '((old . my-article-old-p))))
 -@end lisp
 +If this is the first time you've run Gnus, you will be subscribed
 +automatically to a few default newsgroups.  You'll probably want to
 +subscribe to more groups, and to do that, you have to query the
 +@acronym{NNTP} server for a complete list of groups with the @kbd{A A}
 +command.  This usually takes quite a while, but you only have to do it
 +once.
  
 -and simply specify your predicate as:
 +After reading and parsing a while, you'll be presented with a list of
 +groups.  Subscribe to the ones you want to read with the @kbd{u}
 +command.  @kbd{l} to make all the killed groups disappear after you've
 +subscribe to all the groups you want to read.  (@kbd{A k} will bring
 +back all the killed groups.)
  
 -@lisp
 -(not old)
 -@end lisp
 +You can now read the groups at once, or you can download the articles
 +with the @kbd{J s} command.  And then read the rest of this manual to
 +find out which of the other gazillion things you want to customize.
  
 -If/when using something like the above, be aware that there are many
 -misconfigured systems/mailers out there and so an article's date is not
 -always a reliable indication of when it was posted.  Hell, some people
 -just don't give a damn.
  
 -The above predicates apply to @emph{all} the groups which belong to the
 -category.  However, if you wish to have a specific predicate for an
 -individual group within a category, or you're just too lazy to set up a
 -new category, you can enter a group's individual predicate in its group
 -parameters like so:
 +@node Batching Agents
 +@subsection Batching Agents
 +@findex gnus-agent-batch
  
 -@lisp
 -(agent-predicate . short)
 -@end lisp
 +Having the Gnus Agent fetch articles (and post whatever messages you've
 +written) is quite easy once you've gotten things set up properly.  The
 +following shell script will do everything that is necessary:
  
 -This is the group/topic parameter equivalent of the agent category default.
 -Note that when specifying a single word predicate like this, the
 -@code{agent-predicate} specification must be in dotted pair notation.
 +You can run a complete batch command from the command line with the
 +following incantation:
  
 -The equivalent of the longer example from above would be:
 +@example
 +#!/bin/sh
 +emacs -batch -l ~/.emacs -l ~/.gnus.el -f gnus-agent-batch >/dev/null 2>&1
 +@end example
  
 -@lisp
 -(agent-predicate or high (and (not low) (not long)))
 -@end lisp
  
 -The outer parenthesis required in the category specification are not
 -entered here as, not being in dotted pair notation, the value of the
 -predicate is assumed to be a list.
 +@node Agent Caveats
 +@subsection Agent Caveats
  
 +The Gnus Agent doesn't seem to work like most other offline
 +newsreaders.  Here are some common questions that some imaginary people
 +may ask:
  
 -Now, the syntax of the download score is the same as the syntax of
 -normal score files, except that all elements that require actually
 -seeing the article itself are verboten.  This means that only the
 -following headers can be scored on: @code{Subject}, @code{From},
 -@code{Date}, @code{Message-ID}, @code{References}, @code{Chars},
 -@code{Lines}, and @code{Xref}.
 +@table @dfn
 +@item If I read an article while plugged, do they get entered into the Agent?
  
 -As with predicates, the specification of the @code{download score rule}
 -to use in respect of a group can be in either the category definition if
 -it's to be applicable to all groups in therein, or a group's parameters
 -if it's to be specific to that group.
 +@strong{No}.  If you want this behavior, add
 +@code{gnus-agent-fetch-selected-article} to
 +@code{gnus-select-article-hook}.
 +
 +@item If I read an article while plugged, and the article already exists in
 +the Agent, will it get downloaded once more?
  
 -In both of these places the @code{download score rule} can take one of
 -three forms:
 +@strong{No}, unless @code{gnus-agent-cache} is @code{nil}.
  
 -@enumerate
 -@item
 -Score rule
 +@end table
  
 -This has the same syntax as a normal Gnus score file except only a
 -subset of scoring keywords are available as mentioned above.
 +In short, when Gnus is unplugged, it only looks into the locally stored
 +articles; when it's plugged, it talks to your ISP and may also use the
 +locally stored articles.
  
 -example:
  
 -@itemize @bullet
 -@item
 -Category specification
 +@node Scoring
 +@chapter Scoring
 +@cindex scoring
  
 -@lisp
 -(("from"
 -       ("Lars Ingebrigtsen" 1000000 nil s))
 -("lines"
 -       (500 -100 nil <)))
 -@end lisp
 +Other people use @dfn{kill files}, but we here at Gnus Towers like
 +scoring better than killing, so we'd rather switch than fight.  They do
 +something completely different as well, so sit up straight and pay
 +attention!
  
 -@item
 -Group/Topic Parameter specification
 +@vindex gnus-summary-mark-below
 +All articles have a default score (@code{gnus-summary-default-score}),
 +which is 0 by default.  This score may be raised or lowered either
 +interactively or by score files.  Articles that have a score lower than
 +@code{gnus-summary-mark-below} are marked as read.
  
 -@lisp
 -(agent-score ("from"
 -                   ("Lars Ingebrigtsen" 1000000 nil s))
 -             ("lines"
 -                   (500 -100 nil <)))
 -@end lisp
 +Gnus will read any @dfn{score files} that apply to the current group
 +before generating the summary buffer.
  
 -Again, note the omission of the outermost parenthesis here.
 -@end itemize
 +There are several commands in the summary buffer that insert score
 +entries based on the current article.  You can, for instance, ask Gnus to
 +lower or increase the score of all articles with a certain subject.
  
 -@item
 -Agent score file
 +There are two sorts of scoring entries: Permanent and temporary.
 +Temporary score entries are self-expiring entries.  Any entries that are
 +temporary and have not been used for, say, a week, will be removed
 +silently to help keep the sizes of the score files down.
  
 -These score files must @emph{only} contain the permitted scoring
 -keywords stated above.
 +@menu
 +* Summary Score Commands::      Adding score entries for the current group.
 +* Group Score Commands::        General score commands.
 +* Score Variables::             Customize your scoring.  (My, what terminology).
 +* Score File Format::           What a score file may contain.
 +* Score File Editing::          You can edit score files by hand as well.
 +* Adaptive Scoring::            Big Sister Gnus knows what you read.
 +* Home Score File::             How to say where new score entries are to go.
 +* Followups To Yourself::       Having Gnus notice when people answer you.
 +* Scoring On Other Headers::    Scoring on non-standard headers.
 +* Scoring Tips::                How to score effectively.
 +* Reverse Scoring::             That problem child of old is not problem.
 +* Global Score Files::          Earth-spanning, ear-splitting score files.
 +* Kill Files::                  They are still here, but they can be ignored.
 +* Converting Kill Files::       Translating kill files to score files.
 +* Advanced Scoring::            Using logical expressions to build score rules.
 +* Score Decays::                It can be useful to let scores wither away.
 +@end menu
  
 -example:
  
 -@itemize @bullet
 -@item
 -Category specification
 +@node Summary Score Commands
 +@section Summary Score Commands
 +@cindex score commands
  
 -@lisp
 -("~/News/agent.SCORE")
 -@end lisp
 +The score commands that alter score entries do not actually modify real
 +score files.  That would be too inefficient.  Gnus maintains a cache of
 +previously loaded score files, one of which is considered the
 +@dfn{current score file alist}.  The score commands simply insert
 +entries into this list, and upon group exit, this list is saved.
  
 -or perhaps
 +The current score file is by default the group's local score file, even
 +if no such score file actually exists.  To insert score commands into
 +some other score file (e.g. @file{all.SCORE}), you must first make this
 +score file the current one.
  
 -@lisp
 -("~/News/agent.SCORE" "~/News/agent.group.SCORE")
 -@end lisp
 +General score commands that don't actually change the score file:
  
 -@item
 -Group Parameter specification
 +@table @kbd
  
 -@lisp
 -(agent-score "~/News/agent.SCORE")
 -@end lisp
 +@item V s
 +@kindex V s (Summary)
 +@findex gnus-summary-set-score
 +Set the score of the current article (@code{gnus-summary-set-score}).
  
 -Additional score files can be specified as above.  Need I say anything
 -about parenthesis?
 -@end itemize
 +@item V S
 +@kindex V S (Summary)
 +@findex gnus-summary-current-score
 +Display the score of the current article
 +(@code{gnus-summary-current-score}).
  
 -@item
 -Use @code{normal} score files
 +@item V t
 +@kindex V t (Summary)
 +@findex gnus-score-find-trace
 +Display all score rules that have been used on the current article
 +(@code{gnus-score-find-trace}).  In the @code{*Score Trace*} buffer, you
 +may type @kbd{e} to edit score file corresponding to the score rule on
 +current line and @kbd{f} to format (@code{gnus-score-pretty-print}) the
 +score file and edit it.
  
 -If you don't want to maintain two sets of scoring rules for a group, and
 -your desired @code{downloading} criteria for a group are the same as your
 -@code{reading} criteria then you can tell the agent to refer to your
 -@code{normal} score files when deciding what to download.
 +@item V w
 +@kindex V w (Summary)
 +@findex gnus-score-find-favourite-words
 +List words used in scoring (@code{gnus-score-find-favourite-words}).
  
 -These directives in either the category definition or a group's
 -parameters will cause the agent to read in all the applicable score
 -files for a group, @emph{filtering out} those sections that do not
 -relate to one of the permitted subset of scoring keywords.
 +@item V R
 +@kindex V R (Summary)
 +@findex gnus-summary-rescore
 +Run the current summary through the scoring process
 +(@code{gnus-summary-rescore}).  This might be useful if you're playing
 +around with your score files behind Gnus' back and want to see the
 +effect you're having.
  
 -@itemize @bullet
 -@item
 -Category Specification
 +@item V c
 +@kindex V c (Summary)
 +@findex gnus-score-change-score-file
 +Make a different score file the current
 +(@code{gnus-score-change-score-file}).
  
 -@lisp
 -file
 -@end lisp
 +@item V e
 +@kindex V e (Summary)
 +@findex gnus-score-edit-current-scores
 +Edit the current score file (@code{gnus-score-edit-current-scores}).
 +You will be popped into a @code{gnus-score-mode} buffer (@pxref{Score
 +File Editing}).
  
 -@item
 -Group Parameter specification
 +@item V f
 +@kindex V f (Summary)
 +@findex gnus-score-edit-file
 +Edit a score file and make this score file the current one
 +(@code{gnus-score-edit-file}).
  
 -@lisp
 -(agent-score . file)
 -@end lisp
 -@end itemize
 -@end enumerate
 +@item V F
 +@kindex V F (Summary)
 +@findex gnus-score-flush-cache
 +Flush the score cache (@code{gnus-score-flush-cache}).  This is useful
 +after editing score files.
  
 -@node Category Buffer
 -@subsubsection Category Buffer
 +@item V C
 +@kindex V C (Summary)
 +@findex gnus-score-customize
 +Customize a score file in a visually pleasing manner
 +(@code{gnus-score-customize}).
  
 -You'd normally do all category maintenance from the category buffer.
 -When you enter it for the first time (with the @kbd{J c} command from
 -the group buffer), you'll only see the @code{default} category.
 +@end table
  
 -The following commands are available in this buffer:
 +The rest of these commands modify the local score file.
  
  @table @kbd
 -@item q
 -@kindex q (Category)
 -@findex gnus-category-exit
 -Return to the group buffer (@code{gnus-category-exit}).
  
 -@item e
 -@kindex e (Category)
 -@findex gnus-category-customize-category
 -Use a customization buffer to set all of the selected category's
 -parameters at one time (@code{gnus-category-customize-category}).
 +@item V m
 +@kindex V m (Summary)
 +@findex gnus-score-set-mark-below
 +Prompt for a score, and mark all articles with a score below this as
 +read (@code{gnus-score-set-mark-below}).
  
 -@item k
 -@kindex k (Category)
 -@findex gnus-category-kill
 -Kill the current category (@code{gnus-category-kill}).
 +@item V x
 +@kindex V x (Summary)
 +@findex gnus-score-set-expunge-below
 +Prompt for a score, and add a score rule to the current score file to
 +expunge all articles below this score
 +(@code{gnus-score-set-expunge-below}).
 +@end table
  
 -@item c
 -@kindex c (Category)
 -@findex gnus-category-copy
 -Copy the current category (@code{gnus-category-copy}).
 +The keystrokes for actually making score entries follow a very regular
 +pattern, so there's no need to list all the commands.  (Hundreds of
 +them.)
 +
 +@findex gnus-summary-increase-score
 +@findex gnus-summary-lower-score
 +
 +@enumerate
 +@item
 +The first key is either @kbd{I} (upper case i) for increasing the score
 +or @kbd{L} for lowering the score.
 +@item
 +The second key says what header you want to score on.  The following
 +keys are available:
 +@table @kbd
  
  @item a
 -@kindex a (Category)
 -@findex gnus-category-add
 -Add a new category (@code{gnus-category-add}).
 +Score on the author name.
  
 -@item p
 -@kindex p (Category)
 -@findex gnus-category-edit-predicate
 -Edit the predicate of the current category
 -(@code{gnus-category-edit-predicate}).
 +@item s
 +Score on the subject line.
  
 -@item g
 -@kindex g (Category)
 -@findex gnus-category-edit-groups
 -Edit the list of groups belonging to the current category
 -(@code{gnus-category-edit-groups}).
 +@item x
 +Score on the @code{Xref} line---i.e., the cross-posting line.
 +
 +@item r
 +Score on the @code{References} line.
  
 -@item s
 -@kindex s (Category)
 -@findex gnus-category-edit-score
 -Edit the download score rule of the current category
 -(@code{gnus-category-edit-score}).
 +@item d
 +Score on the date.
  
  @item l
 -@kindex l (Category)
 -@findex gnus-category-list
 -List all the categories (@code{gnus-category-list}).
 -@end table
 +Score on the number of lines.
  
 +@item i
 +Score on the @code{Message-ID} header.
  
 -@node Category Variables
 -@subsubsection Category Variables
 +@item e
 +Score on an ``extra'' header, that is, one of those in gnus-extra-headers,
 +if your @acronym{NNTP} server tracks additional header data in overviews.
  
 -@table @code
 -@item gnus-category-mode-hook
 -@vindex gnus-category-mode-hook
 -Hook run in category buffers.
 +@item f
 +Score on followups---this matches the author name, and adds scores to
 +the followups to this author.  (Using this key leads to the creation of
 +@file{ADAPT} files.)
  
 -@item gnus-category-line-format
 -@vindex gnus-category-line-format
 -Format of the lines in the category buffer (@pxref{Formatting
 -Variables}).  Valid elements are:
 +@item b
 +Score on the body.
  
 -@table @samp
 -@item c
 -The name of the category.
 +@item h
 +Score on the head.
 +
 +@item t
 +Score on thread.  (Using this key leads to the creation of @file{ADAPT}
 +files.)
  
 -@item g
 -The number of groups in the category.
  @end table
  
 -@item gnus-category-mode-line-format
 -@vindex gnus-category-mode-line-format
 -Format of the category mode line (@pxref{Mode Line Formatting}).
 +@item
 +The third key is the match type.  Which match types are valid depends on
 +what headers you are scoring on.
  
 -@item gnus-agent-short-article
 -@vindex gnus-agent-short-article
 -Articles that have fewer lines than this are short.  Default 100.
 +@table @code
  
 -@item gnus-agent-long-article
 -@vindex gnus-agent-long-article
 -Articles that have more lines than this are long.  Default 200.
 +@item strings
  
 -@item gnus-agent-low-score
 -@vindex gnus-agent-low-score
 -Articles that have a score lower than this have a low score.  Default
 -0.
 +@table @kbd
  
 -@item gnus-agent-high-score
 -@vindex gnus-agent-high-score
 -Articles that have a score higher than this have a high score.  Default
 -0.
 +@item e
 +Exact matching.
  
 -@item gnus-agent-expire-days
 -@vindex gnus-agent-expire-days
 -The number of days that a @samp{read} article must stay in the agent's
 -local disk before becoming eligible for expiration (While the name is
 -the same, this doesn't mean expiring the article on the server.  It
 -just means deleting the local copy of the article).  What is also
 -important to understand is that the counter starts with the time the
 -article was written to the local disk and not the time the article was
 -read.
 -Default 7.
 +@item s
 +Substring matching.
  
 -@item gnus-agent-enable-expiration
 -@vindex gnus-agent-enable-expiration
 -Determines whether articles in a group are, by default, expired or
 -retained indefinitely.  The default is @code{ENABLE} which means that
 -you'll have to disable expiration when desired.  On the other hand,
 -you could set this to @code{DISABLE}.  In that case, you would then
 -have to enable expiration in selected groups.
 +@item f
 +Fuzzy matching (@pxref{Fuzzy Matching}).
  
 +@item r
 +Regexp matching
  @end table
  
 +@item date
 +@table @kbd
  
 -@node Agent Commands
 -@subsection Agent Commands
 -@findex gnus-agent-toggle-plugged
 -@kindex J j (Agent)
 -
 -All the Gnus Agent commands are on the @kbd{J} submap.  The @kbd{J j}
 -(@code{gnus-agent-toggle-plugged}) command works in all modes, and
 -toggles the plugged/unplugged state of the Gnus Agent.
 +@item b
 +Before date.
  
 +@item a
 +After date.
  
 -@menu
 -* Group Agent Commands::        Configure groups and fetch their contents.
 -* Summary Agent Commands::      Manually select then fetch specific articles.
 -* Server Agent Commands::       Select the servers that are supported by the agent.
 -@end menu
 +@item n
 +This date.
 +@end table
  
 +@item number
 +@table @kbd
  
 +@item <
 +Less than number.
  
 +@item =
 +Equal to number.
  
 -@node Group Agent Commands
 -@subsubsection Group Agent Commands
 +@item >
 +Greater than number.
 +@end table
 +@end table
  
 +@item
 +The fourth and usually final key says whether this is a temporary (i.e.,
 +expiring) score entry, or a permanent (i.e., non-expiring) score entry,
 +or whether it is to be done immediately, without adding to the score
 +file.
  @table @kbd
 -@item J u
 -@kindex J u (Agent Group)
 -@findex gnus-agent-fetch-groups
 -Fetch all eligible articles in the current group
 -(@code{gnus-agent-fetch-groups}).
  
 -@item J c
 -@kindex J c (Agent Group)
 -@findex gnus-enter-category-buffer
 -Enter the Agent category buffer (@code{gnus-enter-category-buffer}).
 +@item t
 +Temporary score entry.
  
 -@item J s
 -@kindex J s (Agent Group)
 -@findex gnus-agent-fetch-session
 -Fetch all eligible articles in all groups
 -(@code{gnus-agent-fetch-session}).
 +@item p
 +Permanent score entry.
  
 -@item J S
 -@kindex J S (Agent Group)
 -@findex gnus-group-send-queue
 -Send all sendable messages in the queue group
 -(@code{gnus-group-send-queue}).  @xref{Drafts}.
 +@item i
 +Immediately scoring.
 +@end table
  
 -@item J a
 -@kindex J a (Agent Group)
 -@findex gnus-agent-add-group
 -Add the current group to an Agent category
 -(@code{gnus-agent-add-group}).  This command understands the
 -process/prefix convention (@pxref{Process/Prefix}).
 +@item
 +If you are scoring on `e' (extra) headers, you will then be prompted for
 +the header name on which you wish to score.  This must be a header named
 +in gnus-extra-headers, and @samp{TAB} completion is available.
  
 -@item J r
 -@kindex J r (Agent Group)
 -@findex gnus-agent-remove-group
 -Remove the current group from its category, if any
 -(@code{gnus-agent-remove-group}).  This command understands the
 -process/prefix convention (@pxref{Process/Prefix}).
 +@end enumerate
  
 -@item J Y
 -@kindex J Y (Agent Group)
 -@findex gnus-agent-synchronize-flags
 -Synchronize flags changed while unplugged with remote server, if any.
 +So, let's say you want to increase the score on the current author with
 +exact matching permanently: @kbd{I a e p}.  If you want to lower the
 +score based on the subject line, using substring matching, and make a
 +temporary score entry: @kbd{L s s t}.  Pretty easy.
  
 +To make things a bit more complicated, there are shortcuts.  If you use
 +a capital letter on either the second or third keys, Gnus will use
 +defaults for the remaining one or two keystrokes.  The defaults are
 +``substring'' and ``temporary''.  So @kbd{I A} is the same as @kbd{I a s
 +t}, and @kbd{I a R} is the same as @kbd{I a r t}.
  
 -@end table
 +These functions take both the numerical prefix and the symbolic prefix
 +(@pxref{Symbolic Prefixes}).  A numerical prefix says how much to lower
 +(or increase) the score of the article.  A symbolic prefix of @code{a}
 +says to use the @file{all.SCORE} file for the command instead of the
 +current score file.
  
 +@vindex gnus-score-mimic-keymap
 +The @code{gnus-score-mimic-keymap} says whether these commands will
 +pretend they are keymaps or not.
  
 -@node Summary Agent Commands
 -@subsubsection Summary Agent Commands
  
 -@table @kbd
 -@item J #
 -@kindex J # (Agent Summary)
 -@findex gnus-agent-mark-article
 -Mark the article for downloading (@code{gnus-agent-mark-article}).
 +@node Group Score Commands
 +@section Group Score Commands
 +@cindex group score commands
  
 -@item J M-#
 -@kindex J M-# (Agent Summary)
 -@findex gnus-agent-unmark-article
 -Remove the downloading mark from the article
 -(@code{gnus-agent-unmark-article}).
 +There aren't many of these as yet, I'm afraid.
  
 -@cindex %
 -@item @@
 -@kindex @@ (Agent Summary)
 -@findex gnus-agent-toggle-mark
 -Toggle whether to download the article
 -(@code{gnus-agent-toggle-mark}).  The download mark is @samp{%} by
 -default.
 +@table @kbd
  
 -@item J c
 -@kindex J c (Agent Summary)
 -@findex gnus-agent-catchup
 -Mark all articles as read (@code{gnus-agent-catchup}) that are neither cached, downloaded, nor downloadable.
 +@item W e
 +@kindex W e (Group)
 +@findex gnus-score-edit-all-score
 +Edit the apply-to-all-groups all.SCORE file.  You will be popped into
 +a @code{gnus-score-mode} buffer (@pxref{Score File Editing}).
  
 -@item J S
 -@kindex J S (Agent Summary)
 -@findex gnus-agent-fetch-group
 -Download all eligible (@pxref{Agent Categories}) articles in this group.
 -(@code{gnus-agent-fetch-group}).
 +@item W f
 +@kindex W f (Group)
 +@findex gnus-score-flush-cache
 +Gnus maintains a cache of score alists to avoid having to reload them
 +all the time.  This command will flush the cache
 +(@code{gnus-score-flush-cache}).
  
 -@item J s
 -@kindex J s (Agent Summary)
 -@findex gnus-agent-summary-fetch-series
 -Download all processable articles in this group.
 -(@code{gnus-agent-summary-fetch-series}).
 +@end table
  
 -@item J u
 -@kindex J u (Agent Summary)
 -@findex gnus-agent-summary-fetch-group
 -Download all downloadable articles in the current group
 -(@code{gnus-agent-summary-fetch-group}).
 +You can do scoring from the command line by saying something like:
  
 -@end table
 +@findex gnus-batch-score
 +@cindex batch scoring
 +@example
 +$ emacs -batch -l ~/.emacs -l ~/.gnus.el -f gnus-batch-score
 +@end example
  
  
 -@node Server Agent Commands
 -@subsubsection Server Agent Commands
 +@node Score Variables
 +@section Score Variables
 +@cindex score variables
  
 -@table @kbd
 -@item J a
 -@kindex J a (Agent Server)
 -@findex gnus-agent-add-server
 -Add the current server to the list of servers covered by the Gnus Agent
 -(@code{gnus-agent-add-server}).
 +@table @code
  
 -@item J r
 -@kindex J r (Agent Server)
 -@findex gnus-agent-remove-server
 -Remove the current server from the list of servers covered by the Gnus
 -Agent (@code{gnus-agent-remove-server}).
 +@item gnus-use-scoring
 +@vindex gnus-use-scoring
 +If @code{nil}, Gnus will not check for score files, and will not, in
 +general, do any score-related work.  This is @code{t} by default.
  
 -@end table
 +@item gnus-kill-killed
 +@vindex gnus-kill-killed
 +If this variable is @code{nil}, Gnus will never apply score files to
 +articles that have already been through the kill process.  While this
 +may save you lots of time, it also means that if you apply a kill file
 +to a group, and then change the kill file and want to run it over you
 +group again to kill more articles, it won't work.  You have to set this
 +variable to @code{t} to do that.  (It is @code{t} by default.)
  
 +@item gnus-kill-files-directory
 +@vindex gnus-kill-files-directory
 +All kill and score files will be stored in this directory, which is
 +initialized from the @env{SAVEDIR} environment variable by default.
 +This is @file{~/News/} by default.
  
 -@node Agent Visuals
 -@subsection Agent Visuals
 +@item gnus-score-file-suffix
 +@vindex gnus-score-file-suffix
 +Suffix to add to the group name to arrive at the score file name
 +(@file{SCORE} by default.)
  
 -If you open a summary while unplugged and, Gnus knows from the group's
 -active range that there are more articles than the headers currently
 -stored in the Agent, you may see some articles whose subject looks
 -something like @samp{[Undownloaded article #####]}.  These are
 -placeholders for the missing headers.  Aside from setting a mark,
 -there is not much that can be done with one of these placeholders.
 -When Gnus finally gets a chance to fetch the group's headers, the
 -placeholders will automatically be replaced by the actual headers.
 -You can configure the summary buffer's maneuvering to skip over the
 -placeholders if you care (See @code{gnus-auto-goto-ignores}).
 +@item gnus-score-uncacheable-files
 +@vindex gnus-score-uncacheable-files
 +@cindex score cache
 +All score files are normally cached to avoid excessive re-loading of
 +score files.  However, this might make your Emacs grow big and
 +bloated, so this regexp can be used to weed out score files unlikely
 +to be needed again.  It would be a bad idea to deny caching of
 +@file{all.SCORE}, while it might be a good idea to not cache
 +@file{comp.infosystems.www.authoring.misc.ADAPT}.  In fact, this
 +variable is @samp{ADAPT$} by default, so no adaptive score files will
 +be cached.
  
 -While it may be obvious to all, the only headers and articles
 -available while unplugged are those headers and articles that were
 -fetched into the Agent while previously plugged.  To put it another
 -way, ``If you forget to fetch something while plugged, you might have a
 -less than satisfying unplugged session''.  For this reason, the Agent
 -adds two visual effects to your summary buffer.  These effects display
 -the download status of each article so that you always know which
 -articles will be available when unplugged.
 +@item gnus-save-score
 +@vindex gnus-save-score
 +If you have really complicated score files, and do lots of batch
 +scoring, then you might set this variable to @code{t}.  This will make
 +Gnus save the scores into the @file{.newsrc.eld} file.
  
 -The first visual effect is the @samp{%O} spec.  If you customize
 -@code{gnus-summary-line-format} to include this specifier, you will add
 -a single character field that indicates an article's download status.
 -Articles that have been fetched into either the Agent or the Cache,
 -will display @code{gnus-downloaded-mark} (defaults to @samp{+}).  All
 -other articles will display @code{gnus-undownloaded-mark} (defaults to
 -@samp{-}).  If you open a group that has not been agentized, a space
 -(@samp{ }) will be displayed.
 +If you do not set this to @code{t}, then manual scores (like those set
 +with @kbd{V s} (@code{gnus-summary-set-score})) will not be preserved
 +across group visits.
  
 -The second visual effect are the undownloaded faces.  The faces, there
 -are three indicating the article's score (low, normal, high), seem to
 -result in a love/hate response from many Gnus users.  The problem is
 -that the face selection is controlled by a list of condition tests and
 -face names (See @code{gnus-summary-highlight}).  Each condition is
 -tested in the order in which it appears in the list so early
 -conditions have precedence over later conditions.  All of this means
 -that, if you tick an undownloaded article, the article will continue
 -to be displayed in the undownloaded face rather than the ticked face.
 +@item gnus-score-interactive-default-score
 +@vindex gnus-score-interactive-default-score
 +Score used by all the interactive raise/lower commands to raise/lower
 +score with.  Default is 1000, which may seem excessive, but this is to
 +ensure that the adaptive scoring scheme gets enough room to play with.
 +We don't want the small changes from the adaptive scoring to overwrite
 +manually entered data.
  
 -If you use the Agent as a cache (to avoid downloading the same article
 -each time you visit it or to minimize your connection time), the
 -undownloaded face will probably seem like a good idea.  The reason
 -being that you do all of our work (marking, reading, deleting) with
 -downloaded articles so the normal faces always appear.  For those
 -users using the agent to improve online performance by caching the NOV
 -database (most users since 5.10.2), the undownloaded faces may appear
 -to be an absolutely horrible idea.  The issue being that, since none
 -of their articles have been fetched into the Agent, all of the
 -normal faces will be obscured by the undownloaded faces.
 +@item gnus-summary-default-score
 +@vindex gnus-summary-default-score
 +Default score of an article, which is 0 by default.
  
 -If you would like to use the undownloaded faces, you must enable the
 -undownloaded faces by setting the @code{agent-enable-undownloaded-faces}
 -group parameter to @code{t}.  This parameter, like all other agent
 -parameters, may be set on an Agent Category (@pxref{Agent Categories}),
 -a Group Topic (@pxref{Topic Parameters}), or an individual group
 -(@pxref{Group Parameters}).
 +@item gnus-summary-expunge-below
 +@vindex gnus-summary-expunge-below
 +Don't display the summary lines of articles that have scores lower than
 +this variable.  This is @code{nil} by default, which means that no
 +articles will be hidden.  This variable is local to the summary buffers,
 +and has to be set from @code{gnus-summary-mode-hook}.
  
 -The one problem common to all users using the agent is how quickly it
 -can consume disk space.  If you using the agent on many groups, it is
 -even more difficult to effectively recover disk space.  One solution
 -is the @samp{%F} format available in @code{gnus-group-line-format}.
 -This format will display the actual disk space used by articles
 -fetched into both the agent and cache.  By knowing which groups use
 -the most space, users know where to focus their efforts when ``agent
 -expiring'' articles.
 +@item gnus-score-over-mark
 +@vindex gnus-score-over-mark
 +Mark (in the third column) used for articles with a score over the
 +default.  Default is @samp{+}.
  
 -@node Agent as Cache
 -@subsection Agent as Cache
 +@item gnus-score-below-mark
 +@vindex gnus-score-below-mark
 +Mark (in the third column) used for articles with a score below the
 +default.  Default is @samp{-}.
  
 -When Gnus is plugged, it is not efficient to download headers or
 -articles from the server again, if they are already stored in the
 -Agent.  So, Gnus normally only downloads headers once, and stores them
 -in the Agent.  These headers are later used when generating the summary
 -buffer, regardless of whether you are plugged or unplugged.  Articles
 -are not cached in the Agent by default though (that would potentially
 -consume lots of disk space), but if you have already downloaded an
 -article into the Agent, Gnus will not download the article from the
 -server again but use the locally stored copy instead.
 +@item gnus-score-find-score-files-function
 +@vindex gnus-score-find-score-files-function
 +Function used to find score files for the current group.  This function
 +is called with the name of the group as the argument.
  
 -If you so desire, you can configure the agent (see @code{gnus-agent-cache}
 -@pxref{Agent Variables}) to always download headers and articles while
 -plugged.  Gnus will almost certainly be slower, but it will be kept
 -synchronized with the server.  That last point probably won't make any
 -sense if you are using a nntp or nnimap back end.
 +Predefined functions available are:
 +@table @code
  
 -@node Agent Expiry
 -@subsection Agent Expiry
 +@item gnus-score-find-single
 +@findex gnus-score-find-single
 +Only apply the group's own score file.
  
 -@vindex gnus-agent-expire-days
 -@findex gnus-agent-expire
 -@kindex M-x gnus-agent-expire
 -@kindex M-x gnus-agent-expire-group
 -@findex gnus-agent-expire-group
 -@cindex agent expiry
 -@cindex Gnus agent expiry
 -@cindex expiry, in Gnus agent
 +@item gnus-score-find-bnews
 +@findex gnus-score-find-bnews
 +Apply all score files that match, using bnews syntax.  This is the
 +default.  If the current group is @samp{gnu.emacs.gnus}, for instance,
 +@file{all.emacs.all.SCORE}, @file{not.alt.all.SCORE} and
 +@file{gnu.all.SCORE} would all apply.  In short, the instances of
 +@samp{all} in the score file names are translated into @samp{.*}, and
 +then a regexp match is done.
  
 -The Agent back end, @code{nnagent}, doesn't handle expiry.  Well, at
 -least it doesn't handle it like other back ends.  Instead, there are
 -special @code{gnus-agent-expire} and @code{gnus-agent-expire-group}
 -commands that will expire all read articles that are older than
 -@code{gnus-agent-expire-days} days.  They can be run whenever you feel
 -that you're running out of space.  Neither are particularly fast or
 -efficient, and it's not a particularly good idea to interrupt them (with
 -@kbd{C-g} or anything else) once you've started one of them.
 +This means that if you have some score entries that you want to apply to
 +all groups, then you put those entries in the @file{all.SCORE} file.
  
 -Note that other functions, e.g. @code{gnus-request-expire-articles},
 -might run @code{gnus-agent-expire} for you to keep the agent
 -synchronized with the group.
 +The score files are applied in a semi-random order, although Gnus will
 +try to apply the more general score files before the more specific score
 +files.  It does this by looking at the number of elements in the score
 +file names---discarding the @samp{all} elements.
  
 -The agent parameter @code{agent-enable-expiration} may be used to
 -prevent expiration in selected groups.
 +@item gnus-score-find-hierarchical
 +@findex gnus-score-find-hierarchical
 +Apply all score files from all the parent groups.  This means that you
 +can't have score files like @file{all.SCORE}, but you can have
 +@file{SCORE}, @file{comp.SCORE} and @file{comp.emacs.SCORE} for each
 +server.
  
 -@vindex gnus-agent-expire-all
 -If @code{gnus-agent-expire-all} is non-@code{nil}, the agent
 -expiration commands will expire all articles---unread, read, ticked
 -and dormant.  If @code{nil} (which is the default), only read articles
 -are eligible for expiry, and unread, ticked and dormant articles will
 -be kept indefinitely.
 +@end table
 +This variable can also be a list of functions.  In that case, all
 +these functions will be called with the group name as argument, and
 +all the returned lists of score files will be applied.  These
 +functions can also return lists of lists of score alists directly.  In
 +that case, the functions that return these non-file score alists
 +should probably be placed before the ``real'' score file functions, to
 +ensure that the last score file returned is the local score file.
 +Phu.
  
 -If you find that some articles eligible for expiry are never expired,
 -perhaps some Gnus Agent files are corrupted.  There's are special
 -commands, @code{gnus-agent-regenerate} and
 -@code{gnus-agent-regenerate-group}, to fix possible problems.
 +For example, to do hierarchical scoring but use a non-server-specific
 +overall score file, you could use the value
 +@example
 +(list (lambda (group) ("all.SCORE"))
 +      'gnus-score-find-hierarchical)
 +@end example
  
 -@node Agent Regeneration
 -@subsection Agent Regeneration
 +@item gnus-score-expiry-days
 +@vindex gnus-score-expiry-days
 +This variable says how many days should pass before an unused score file
 +entry is expired.  If this variable is @code{nil}, no score file entries
 +are expired.  It's 7 by default.
  
 -@cindex agent regeneration
 -@cindex Gnus agent regeneration
 -@cindex regeneration
 +@item gnus-update-score-entry-dates
 +@vindex gnus-update-score-entry-dates
 +If this variable is non-@code{nil}, temporary score entries that have
 +been triggered (matched) will have their dates updated.  (This is how Gnus
 +controls expiry---all non-matched-entries will become too old while
 +matched entries will stay fresh and young.)  However, if you set this
 +variable to @code{nil}, even matched entries will grow old and will
 +have to face that oh-so grim reaper.
  
 -The local data structures used by @code{nnagent} may become corrupted
 -due to certain exceptional conditions.  When this happens,
 -@code{nnagent} functionality may degrade or even fail.  The solution
 -to this problem is to repair the local data structures by removing all
 -internal inconsistencies.
 +@item gnus-score-after-write-file-function
 +@vindex gnus-score-after-write-file-function
 +Function called with the name of the score file just written.
  
 -For example, if your connection to your server is lost while
 -downloaded articles into the agent, the local data structures will not
 -know about articles successfully downloaded prior to the connection
 -failure.  Running @code{gnus-agent-regenerate} or
 -@code{gnus-agent-regenerate-group} will update the data structures
 -such that you don't need to download these articles a second time.
 +@item gnus-score-thread-simplify
 +@vindex gnus-score-thread-simplify
 +If this variable is non-@code{nil}, article subjects will be
 +simplified for subject scoring purposes in the same manner as with
 +threading---according to the current value of
 +@code{gnus-simplify-subject-functions}.  If the scoring entry uses
 +@code{substring} or @code{exact} matching, the match will also be
 +simplified in this manner.
  
 -@findex gnus-agent-regenerate
 -@kindex M-x gnus-agent-regenerate
 -The command @code{gnus-agent-regenerate} will perform
 -@code{gnus-agent-regenerate-group} on every agentized group.  While
 -you can run @code{gnus-agent-regenerate} in any buffer, it is strongly
 -recommended that you first close all summary buffers.
 +@end table
  
 -@findex gnus-agent-regenerate-group
 -@kindex M-x gnus-agent-regenerate-group
 -The command @code{gnus-agent-regenerate-group} uses the local copies
 -of individual articles to repair the local @acronym{NOV}(header) database.  It
 -then updates the internal data structures that document which articles
 -are stored locally.  An optional argument will mark articles in the
 -agent as unread.
  
 -@node Agent and flags
 -@subsection Agent and flags
 +@node Score File Format
 +@section Score File Format
 +@cindex score file format
  
 -The Agent works with any Gnus back end including those, such as
 -nnimap, that store flags (read, ticked, etc) on the server.  Sadly,
 -the Agent does not actually know which backends keep their flags in
 -the backend server rather than in @file{.newsrc}.  This means that the
 -Agent, while unplugged or disconnected, will always record all changes
 -to the flags in its own files.
 +A score file is an @code{emacs-lisp} file that normally contains just a
 +single form.  Casual users are not expected to edit these files;
 +everything can be changed from the summary buffer.
  
 -When you plug back in, Gnus will then check to see if you have any
 -changed any flags and ask if you wish to synchronize these with the
 -server.  This behavior is customizable by @code{gnus-agent-synchronize-flags}.
 +Anyway, if you'd like to dig into it yourself, here's an example:
  
 -@vindex gnus-agent-synchronize-flags
 -If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will
 -never automatically synchronize flags.  If it is @code{ask}, which is
 -the default, the Agent will check if you made any changes and if so
 -ask if you wish to synchronize these when you re-connect.  If it has
 -any other value, all flags will be synchronized automatically.
 +@lisp
 +(("from"
 +  ("Lars Ingebrigtsen" -10000)
 +  ("Per Abrahamsen")
 +  ("larsi\\|lmi" -50000 nil R))
 + ("subject"
 +  ("Ding is Badd" nil 728373))
 + ("xref"
 +  ("alt.politics" -1000 728372 s))
 + ("lines"
 +  (2 -100 nil <))
 + (mark 0)
 + (expunge -1000)
 + (mark-and-expunge -10)
 + (read-only nil)
 + (orphan -10)
 + (adapt t)
 + (files "/hom/larsi/News/gnu.SCORE")
 + (exclude-files "all.SCORE")
 + (local (gnus-newsgroup-auto-expire t)
 +        (gnus-summary-make-false-root empty))
 + (eval (ding)))
 +@end lisp
  
 -If you do not wish to synchronize flags automatically when you
 -re-connect, you can do it manually with the
 -@code{gnus-agent-synchronize-flags} command that is bound to @kbd{J Y}
 -in the group buffer.
 +This example demonstrates most score file elements.  @xref{Advanced
 +Scoring}, for a different approach.
  
 -Technical note: the synchronization algorithm does not work by ``pushing''
 -all local flags to the server, but rather by incrementally updated the
 -server view of flags by changing only those flags that were changed by
 -the user.  Thus, if you set one flag on an article, quit the group then
 -re-select the group and remove the flag; the flag will be set and
 -removed from the server when you ``synchronize''.  The queued flag
 -operations can be found in the per-server @code{flags} file in the Agent
 -directory.  It's emptied when you synchronize flags.
 +Even though this looks much like Lisp code, nothing here is actually
 +@code{eval}ed.  The Lisp reader is used to read this form, though, so it
 +has to be valid syntactically, if not semantically.
  
 -@node Agent and IMAP
 -@subsection Agent and IMAP
 +Six keys are supported by this alist:
  
 -The Agent works with any Gnus back end, including nnimap.  However,
 -since there are some conceptual differences between @acronym{NNTP} and
 -@acronym{IMAP}, this section (should) provide you with some information to
 -make Gnus Agent work smoother as a @acronym{IMAP} Disconnected Mode client.
 +@table @code
  
 -Some things are currently not implemented in the Agent that you'd might
 -expect from a disconnected @acronym{IMAP} client, including:
 +@item STRING
 +If the key is a string, it is the name of the header to perform the
 +match on.  Scoring can only be performed on these eight headers:
 +@code{From}, @code{Subject}, @code{References}, @code{Message-ID},
 +@code{Xref}, @code{Lines}, @code{Chars} and @code{Date}.  In addition to
 +these headers, there are three strings to tell Gnus to fetch the entire
 +article and do the match on larger parts of the article: @code{Body}
 +will perform the match on the body of the article, @code{Head} will
 +perform the match on the head of the article, and @code{All} will
 +perform the match on the entire article.  Note that using any of these
 +last three keys will slow down group entry @emph{considerably}.  The
 +final ``header'' you can score on is @code{Followup}.  These score
 +entries will result in new score entries being added for all follow-ups
 +to articles that matches these score entries.
  
 -@itemize @bullet
 +Following this key is an arbitrary number of score entries, where each
 +score entry has one to four elements.
 +@enumerate
  
  @item
 -Copying/moving articles into nnimap groups when unplugged.
 +The first element is the @dfn{match element}.  On most headers this will
 +be a string, but on the Lines and Chars headers, this must be an
 +integer.
  
  @item
 -Creating/deleting nnimap groups when unplugged.
 -
 -@end itemize
 -
 -@node Outgoing Messages
 -@subsection Outgoing Messages
 -
 -By default, when Gnus is unplugged, all outgoing messages (both mail
 -and news) are stored in the draft group ``queue'' (@pxref{Drafts}).
 -You can view them there after posting, and edit them at will.
 +If the second element is present, it should be a number---the @dfn{score
 +element}.  This number should be an integer in the neginf to posinf
 +interval.  This number is added to the score of the article if the match
 +is successful.  If this element is not present, the
 +@code{gnus-score-interactive-default-score} number will be used
 +instead.  This is 1000 by default.
  
 -You can control the circumstances under which outgoing mail is queued
 -(see @code{gnus-agent-queue-mail}, @pxref{Agent Variables}).  Outgoing
 -news is always queued when Gnus is unplugged, and never otherwise.
 +@item
 +If the third element is present, it should be a number---the @dfn{date
 +element}.  This date says when the last time this score entry matched,
 +which provides a mechanism for expiring the score entries.  It this
 +element is not present, the score entry is permanent.  The date is
 +represented by the number of days since December 31, 1 BCE.
  
 -You can send the messages either from the draft group with the special
 -commands available there, or you can use the @kbd{J S} command in the
 -group buffer to send all the sendable messages in the draft group.
 -Posting news will only work when Gnus is plugged, but you can send
 -mail at any time.
 +@item
 +If the fourth element is present, it should be a symbol---the @dfn{type
 +element}.  This element specifies what function should be used to see
 +whether this score entry matches the article.  What match types that can
 +be used depends on what header you wish to perform the match on.
 +@table @dfn
  
 -If sending mail while unplugged does not work for you and you worry
 -about hitting @kbd{J S} by accident when unplugged, you can have Gnus
 -ask you to confirm your action (see
 -@code{gnus-agent-prompt-send-queue}, @pxref{Agent Variables}).
 +@item From, Subject, References, Xref, Message-ID
 +For most header types, there are the @code{r} and @code{R} (regexp), as
 +well as @code{s} and @code{S} (substring) types, and @code{e} and
 +@code{E} (exact match), and @code{w} (word match) types.  If this
 +element is not present, Gnus will assume that substring matching should
 +be used.  @code{R}, @code{S}, and @code{E} differ from the others in
 +that the matches will be done in a case-sensitive manner.  All these
 +one-letter types are really just abbreviations for the @code{regexp},
 +@code{string}, @code{exact}, and @code{word} types, which you can use
 +instead, if you feel like.
  
 -@node Agent Variables
 -@subsection Agent Variables
 +@item Extra
 +Just as for the standard string overview headers, if you are using
 +gnus-extra-headers, you can score on these headers' values.  In this
 +case, there is a 5th element in the score entry, being the name of the
 +header to be scored.  The following entry is useful in your
 +@file{all.SCORE} file in case of spam attacks from a single origin
 +host, if your @acronym{NNTP} server tracks @samp{NNTP-Posting-Host} in
 +overviews:
  
 -@table @code
 -@item gnus-agent
 -@vindex gnus-agent
 -Is the agent enabled?  The default is @code{t}.  When first enabled,
 -the agent will use @code{gnus-agent-auto-agentize-methods} to
 -automatically mark some back ends as agentized.  You may change which
 -back ends are agentized using the agent commands in the server buffer.
 +@lisp
 +("111.222.333.444" -1000 nil s
 + "NNTP-Posting-Host")
 +@end lisp
  
 -To enter the server buffer, use the @kbd{^}
 -(@code{gnus-group-enter-server-mode}) command in the group buffer.
 +@item Lines, Chars
 +These two headers use different match types: @code{<}, @code{>},
 +@code{=}, @code{>=} and @code{<=}.
  
 +These predicates are true if
  
 -@item gnus-agent-directory
 -@vindex gnus-agent-directory
 -Where the Gnus Agent will store its files.  The default is
 -@file{~/News/agent/}.
 +@example
 +(PREDICATE HEADER MATCH)
 +@end example
  
 -@item gnus-agent-handle-level
 -@vindex gnus-agent-handle-level
 -Groups on levels (@pxref{Group Levels}) higher than this variable will
 -be ignored by the Agent.  The default is @code{gnus-level-subscribed},
 -which means that only subscribed group will be considered by the Agent
 -by default.
 +evaluates to non-@code{nil}.  For instance, the advanced match
 +@code{("lines" 4 <)} (@pxref{Advanced Scoring}) will result in the
 +following form:
  
 -@item gnus-agent-plugged-hook
 -@vindex gnus-agent-plugged-hook
 -Hook run when connecting to the network.
 +@lisp
 +(< header-value 4)
 +@end lisp
  
 -@item gnus-agent-unplugged-hook
 -@vindex gnus-agent-unplugged-hook
 -Hook run when disconnecting from the network.
 +Or to put it another way: When using @code{<} on @code{Lines} with 4 as
 +the match, we get the score added if the article has less than 4 lines.
 +(It's easy to get confused and think it's the other way around.  But
 +it's not.  I think.)
  
 -@item gnus-agent-fetched-hook
 -@vindex gnus-agent-fetched-hook
 -Hook run when finished fetching articles.
 +When matching on @code{Lines}, be careful because some back ends (like
 +@code{nndir}) do not generate @code{Lines} header, so every article ends
 +up being marked as having 0 lines.  This can lead to strange results if
 +you happen to lower score of the articles with few lines.
  
 -@item gnus-agent-cache
 -@vindex gnus-agent-cache
 -Variable to control whether use the locally stored @acronym{NOV} and
 -articles when plugged, e.g. essentially using the Agent as a cache.
 -The default is non-@code{nil}, which means to use the Agent as a cache.
 +@item Date
 +For the Date header we have three kinda silly match types:
 +@code{before}, @code{at} and @code{after}.  I can't really imagine this
 +ever being useful, but, like, it would feel kinda silly not to provide
 +this function.  Just in case.  You never know.  Better safe than sorry.
 +Once burnt, twice shy.  Don't judge a book by its cover.  Never not have
 +sex on a first date.  (I have been told that at least one person, and I
 +quote, ``found this function indispensable'', however.)
  
 -@item gnus-agent-go-online
 -@vindex gnus-agent-go-online
 -If @code{gnus-agent-go-online} is @code{nil}, the Agent will never
 -automatically switch offline servers into online status.  If it is
 -@code{ask}, the default, the Agent will ask if you wish to switch
 -offline servers into online status when you re-connect.  If it has any
 -other value, all offline servers will be automatically switched into
 -online status.
 +@cindex ISO8601
 +@cindex date
 +A more useful match type is @code{regexp}.  With it, you can match the
 +date string using a regular expression.  The date is normalized to
 +ISO8601 compact format first---@var{YYYYMMDD}@code{T}@var{HHMMSS}.  If
 +you want to match all articles that have been posted on April 1st in
 +every year, you could use @samp{....0401.........} as a match string,
 +for instance.  (Note that the date is kept in its original time zone, so
 +this will match articles that were posted when it was April 1st where
 +the article was posted from.  Time zones are such wholesome fun for the
 +whole family, eh?)
  
 -@item gnus-agent-mark-unread-after-downloaded
 -@vindex gnus-agent-mark-unread-after-downloaded
 -If @code{gnus-agent-mark-unread-after-downloaded} is non-@code{nil},
 -mark articles as unread after downloading.  This is usually a safe
 -thing to do as the newly downloaded article has obviously not been
 -read.  The default is @code{t}.
 +@item Head, Body, All
 +These three match keys use the same match types as the @code{From} (etc)
 +header uses.
  
 -@item gnus-agent-synchronize-flags
 -@vindex gnus-agent-synchronize-flags
 -If @code{gnus-agent-synchronize-flags} is @code{nil}, the Agent will
 -never automatically synchronize flags.  If it is @code{ask}, which is
 -the default, the Agent will check if you made any changes and if so
 -ask if you wish to synchronize these when you re-connect.  If it has
 -any other value, all flags will be synchronized automatically.
 +@item Followup
 +This match key is somewhat special, in that it will match the
 +@code{From} header, and affect the score of not only the matching
 +articles, but also all followups to the matching articles.  This allows
 +you e.g. increase the score of followups to your own articles, or
 +decrease the score of followups to the articles of some known
 +trouble-maker.  Uses the same match types as the @code{From} header
 +uses.  (Using this match key will lead to creation of @file{ADAPT}
 +files.)
  
 -@item gnus-agent-consider-all-articles
 -@vindex gnus-agent-consider-all-articles
 -If @code{gnus-agent-consider-all-articles} is non-@code{nil}, the
 -agent will let the agent predicate decide whether articles need to be
 -downloaded or not, for all articles.  When @code{nil}, the default,
 -the agent will only let the predicate decide whether unread articles
 -are downloaded or not.  If you enable this, you may also want to look
 -into the agent expiry settings (@pxref{Category Variables}), so that
 -the agent doesn't download articles which the agent will later expire,
 -over and over again.
 +@item Thread
 +This match key works along the same lines as the @code{Followup} match
 +key.  If you say that you want to score on a (sub-)thread started by an
 +article with a @code{Message-ID} @var{x}, then you add a @samp{thread}
 +match.  This will add a new @samp{thread} match for each article that
 +has @var{x} in its @code{References} header.  (These new @samp{thread}
 +matches will use the @code{Message-ID}s of these matching articles.)
 +This will ensure that you can raise/lower the score of an entire thread,
 +even though some articles in the thread may not have complete
 +@code{References} headers.  Note that using this may lead to
 +undeterministic scores of the articles in the thread.  (Using this match
 +key will lead to creation of @file{ADAPT} files.)
 +@end table
 +@end enumerate
  
 -@item gnus-agent-max-fetch-size
 -@vindex gnus-agent-max-fetch-size
 -The agent fetches articles into a temporary buffer prior to parsing
 -them into individual files.  To avoid exceeding the max. buffer size,
 -the agent alternates between fetching and parsing until all articles
 -have been fetched.  @code{gnus-agent-max-fetch-size} provides a size
 -limit to control how often the cycling occurs.  A large value improves
 -performance.  A small value minimizes the time lost should the
 -connection be lost while fetching (You may need to run
 -@code{gnus-agent-regenerate-group} to update the group's state.
 -However, all articles parsed prior to loosing the connection will be
 -available while unplugged).  The default is 10M so it is unusual to
 -see any cycling.
 +@cindex score file atoms
 +@item mark
 +The value of this entry should be a number.  Any articles with a score
 +lower than this number will be marked as read.
  
 -@item gnus-server-unopen-status
 -@vindex gnus-server-unopen-status
 -Perhaps not an Agent variable, but closely related to the Agent, this
 -variable says what will happen if Gnus cannot open a server.  If the
 -Agent is enabled, the default, @code{nil}, makes Gnus ask the user
 -whether to deny the server or whether to unplug the agent.  If the
 -Agent is disabled, Gnus always simply deny the server.  Other choices
 -for this variable include @code{denied} and @code{offline} the latter
 -is only valid if the Agent is used.
 +@item expunge
 +The value of this entry should be a number.  Any articles with a score
 +lower than this number will be removed from the summary buffer.
  
 -@item gnus-auto-goto-ignores
 -@vindex gnus-auto-goto-ignores
 -Another variable that isn't an Agent variable, yet so closely related
 -that most will look for it here, this variable tells the summary
 -buffer how to maneuver around undownloaded (only headers stored in the
 -agent) and unfetched (neither article nor headers stored) articles.
 +@item mark-and-expunge
 +The value of this entry should be a number.  Any articles with a score
 +lower than this number will be marked as read and removed from the
 +summary buffer.
  
 -The valid values are @code{nil} (maneuver to any article),
 -@code{undownloaded} (maneuvering while unplugged ignores articles that
 -have not been fetched), @code{always-undownloaded} (maneuvering always
 -ignores articles that have not been fetched), @code{unfetched}
 -(maneuvering ignores articles whose headers have not been fetched).
 +@item thread-mark-and-expunge
 +The value of this entry should be a number.  All articles that belong to
 +a thread that has a total score below this number will be marked as read
 +and removed from the summary buffer.  @code{gnus-thread-score-function}
 +says how to compute the total score for a thread.
  
 -@item gnus-agent-queue-mail
 -@vindex gnus-agent-queue-mail
 -When @code{gnus-agent-queue-mail} is @code{always}, Gnus will always
 -queue mail rather than sending it straight away.  When @code{t}, Gnus
 -will queue mail when unplugged only.  When @code{nil}, never queue
 -mail.  The default is @code{t}.
 +@item files
 +The value of this entry should be any number of file names.  These files
 +are assumed to be score files as well, and will be loaded the same way
 +this one was.
  
 -@item gnus-agent-prompt-send-queue
 -@vindex gnus-agent-prompt-send-queue
 -When @code{gnus-agent-prompt-send-queue} is non-@code{nil} Gnus will
 -prompt you to confirm that you really wish to proceed if you hit
 -@kbd{J S} while unplugged.  The default is @code{nil}.
 +@item exclude-files
 +The clue of this entry should be any number of files.  These files will
 +not be loaded, even though they would normally be so, for some reason or
 +other.
  
 -@item gnus-agent-auto-agentize-methods
 -@vindex gnus-agent-auto-agentize-methods
 -If you have never used the Agent before (or more technically, if
 -@file{~/News/agent/lib/servers} does not exist), Gnus will
 -automatically agentize a few servers for you.  This variable control
 -which back ends should be auto-agentized.  It is typically only useful
 -to agentize remote back ends.  The auto-agentizing has the same effect
 -as running @kbd{J a} on the servers (@pxref{Server Agent Commands}).
 -If the file exist, you must manage the servers manually by adding or
 -removing them, this variable is only applicable the first time you
 -start Gnus.  The default is @samp{(nntp nnimap)}.
 +@item eval
 +The value of this entry will be @code{eval}ed.  This element will be
 +ignored when handling global score files.
  
 -@end table
 +@item read-only
 +Read-only score files will not be updated or saved.  Global score files
 +should feature this atom (@pxref{Global Score Files}).  (Note:
 +@dfn{Global} here really means @dfn{global}; not your personal
 +apply-to-all-groups score files.)
  
 +@item orphan
 +The value of this entry should be a number.  Articles that do not have
 +parents will get this number added to their scores.  Imagine you follow
 +some high-volume newsgroup, like @samp{comp.lang.c}.  Most likely you
 +will only follow a few of the threads, also want to see any new threads.
  
 -@node Example Setup
 -@subsection Example Setup
 +You can do this with the following two score file entries:
  
 -If you don't want to read this manual, and you have a fairly standard
 -setup, you may be able to use something like the following as your
 -@file{~/.gnus.el} file to get started.
 +@example
 +        (orphan -500)
 +        (mark-and-expunge -100)
 +@end example
  
 -@lisp
 -;; @r{Define how Gnus is to fetch news.  We do this over @acronym{NNTP}}
 -;; @r{from your ISP's server.}
 -(setq gnus-select-method '(nntp "news.your-isp.com"))
 +When you enter the group the first time, you will only see the new
 +threads.  You then raise the score of the threads that you find
 +interesting (with @kbd{I T} or @kbd{I S}), and ignore (@kbd{c y}) the
 +rest.  Next time you enter the group, you will see new articles in the
 +interesting threads, plus any new threads.
  
 -;; @r{Define how Gnus is to read your mail.  We read mail from}
 -;; @r{your ISP's @acronym{POP} server.}
 -(setq mail-sources '((pop :server "pop.your-isp.com")))
 +I.e.---the orphan score atom is for high-volume groups where a few
 +interesting threads which can't be found automatically by ordinary
 +scoring rules exist.
  
 -;; @r{Say how Gnus is to store the mail.  We use nnml groups.}
 -(setq gnus-secondary-select-methods '((nnml "")))
 +@item adapt
 +This entry controls the adaptive scoring.  If it is @code{t}, the
 +default adaptive scoring rules will be used.  If it is @code{ignore}, no
 +adaptive scoring will be performed on this group.  If it is a list, this
 +list will be used as the adaptive scoring rules.  If it isn't present,
 +or is something other than @code{t} or @code{ignore}, the default
 +adaptive scoring rules will be used.  If you want to use adaptive
 +scoring on most groups, you'd set @code{gnus-use-adaptive-scoring} to
 +@code{t}, and insert an @code{(adapt ignore)} in the groups where you do
 +not want adaptive scoring.  If you only want adaptive scoring in a few
 +groups, you'd set @code{gnus-use-adaptive-scoring} to @code{nil}, and
 +insert @code{(adapt t)} in the score files of the groups where you want
 +it.
  
 -;; @r{Make Gnus into an offline newsreader.}
 -;; (gnus-agentize) ; @r{The obsolete setting.}
 -;; (setq gnus-agent t) ; @r{Now the default.}
 -@end lisp
 +@item adapt-file
 +All adaptive score entries will go to the file named by this entry.  It
 +will also be applied when entering the group.  This atom might be handy
 +if you want to adapt on several groups at once, using the same adaptive
 +file for a number of groups.
  
 -That should be it, basically.  Put that in your @file{~/.gnus.el} file,
 -edit to suit your needs, start up PPP (or whatever), and type @kbd{M-x
 -gnus}.
 +@item local
 +@cindex local variables
 +The value of this entry should be a list of @code{(@var{var}
 +@var{value})} pairs.  Each @var{var} will be made buffer-local to the
 +current summary buffer, and set to the value specified.  This is a
 +convenient, if somewhat strange, way of setting variables in some
 +groups if you don't like hooks much.  Note that the @var{value} won't
 +be evaluated.
 +@end table
  
 -If this is the first time you've run Gnus, you will be subscribed
 -automatically to a few default newsgroups.  You'll probably want to
 -subscribe to more groups, and to do that, you have to query the
 -@acronym{NNTP} server for a complete list of groups with the @kbd{A A}
 -command.  This usually takes quite a while, but you only have to do it
 -once.
  
 -After reading and parsing a while, you'll be presented with a list of
 -groups.  Subscribe to the ones you want to read with the @kbd{u}
 -command.  @kbd{l} to make all the killed groups disappear after you've
 -subscribe to all the groups you want to read.  (@kbd{A k} will bring
 -back all the killed groups.)
 +@node Score File Editing
 +@section Score File Editing
  
 -You can now read the groups at once, or you can download the articles
 -with the @kbd{J s} command.  And then read the rest of this manual to
 -find out which of the other gazillion things you want to customize.
 +You normally enter all scoring commands from the summary buffer, but you
 +might feel the urge to edit them by hand as well, so we've supplied you
 +with a mode for that.
  
 +It's simply a slightly customized @code{emacs-lisp} mode, with these
 +additional commands:
  
 -@node Batching Agents
 -@subsection Batching Agents
 -@findex gnus-agent-batch
 +@table @kbd
  
 -Having the Gnus Agent fetch articles (and post whatever messages you've
 -written) is quite easy once you've gotten things set up properly.  The
 -following shell script will do everything that is necessary:
 +@item C-c C-c
 +@kindex C-c C-c (Score)
 +@findex gnus-score-edit-exit
 +Save the changes you have made and return to the summary buffer
 +(@code{gnus-score-edit-exit}).
  
 -You can run a complete batch command from the command line with the
 -following incantation:
 +@item C-c C-d
 +@kindex C-c C-d (Score)
 +@findex gnus-score-edit-insert-date
 +Insert the current date in numerical format
 +(@code{gnus-score-edit-insert-date}).  This is really the day number, if
 +you were wondering.
  
 -@example
 -#!/bin/sh
 -emacs -batch -l ~/.emacs -l ~/.gnus.el -f gnus-agent-batch >/dev/null 2>&1
 -@end example
 +@item C-c C-p
 +@kindex C-c C-p (Score)
 +@findex gnus-score-pretty-print
 +The adaptive score files are saved in an unformatted fashion.  If you
 +intend to read one of these files, you want to @dfn{pretty print} it
 +first.  This command (@code{gnus-score-pretty-print}) does that for
 +you.
  
 +@end table
  
 -@node Agent Caveats
 -@subsection Agent Caveats
 +Type @kbd{M-x gnus-score-mode} to use this mode.
  
 -The Gnus Agent doesn't seem to work like most other offline
 -newsreaders.  Here are some common questions that some imaginary people
 -may ask:
 +@vindex gnus-score-mode-hook
 +@code{gnus-score-menu-hook} is run in score mode buffers.
  
 -@table @dfn
 -@item If I read an article while plugged, do they get entered into the Agent?
 +In the summary buffer you can use commands like @kbd{V f}, @kbd{V e} and
 +@kbd{V t} to begin editing score files.
  
 -@strong{No}.  If you want this behavior, add
 -@code{gnus-agent-fetch-selected-article} to
 -@code{gnus-select-article-hook}.
  
 -@item If I read an article while plugged, and the article already exists in
 -the Agent, will it get downloaded once more?
 +@node Adaptive Scoring
 +@section Adaptive Scoring
 +@cindex adaptive scoring
  
 -@strong{No}, unless @code{gnus-agent-cache} is @code{nil}.
 +If all this scoring is getting you down, Gnus has a way of making it all
 +happen automatically---as if by magic.  Or rather, as if by artificial
 +stupidity, to be precise.
  
 -@end table
 +@vindex gnus-use-adaptive-scoring
 +When you read an article, or mark an article as read, or kill an
 +article, you leave marks behind.  On exit from the group, Gnus can sniff
 +these marks and add score elements depending on what marks it finds.
 +You turn on this ability by setting @code{gnus-use-adaptive-scoring} to
 +@code{t} or @code{(line)}.  If you want score adaptively on separate
 +words appearing in the subjects, you should set this variable to
 +@code{(word)}.  If you want to use both adaptive methods, set this
 +variable to @code{(word line)}.
  
 -In short, when Gnus is unplugged, it only looks into the locally stored
 -articles; when it's plugged, it talks to your ISP and may also use the
 -locally stored articles.
 +@vindex gnus-default-adaptive-score-alist
 +To give you complete control over the scoring process, you can customize
 +the @code{gnus-default-adaptive-score-alist} variable.  For instance, it
 +might look something like this:
  
 +@lisp
 +(setq gnus-default-adaptive-score-alist
 +  '((gnus-unread-mark)
 +    (gnus-ticked-mark (from 4))
 +    (gnus-dormant-mark (from 5))
 +    (gnus-del-mark (from -4) (subject -1))
 +    (gnus-read-mark (from 4) (subject 2))
 +    (gnus-expirable-mark (from -1) (subject -1))
 +    (gnus-killed-mark (from -1) (subject -3))
 +    (gnus-kill-file-mark)
 +    (gnus-ancient-mark)
 +    (gnus-low-score-mark)
 +    (gnus-catchup-mark (from -1) (subject -1))))
 +@end lisp
  
 -@node Scoring
 -@chapter Scoring
 -@cindex scoring
 +As you see, each element in this alist has a mark as a key (either a
 +variable name or a ``real'' mark---a character).  Following this key is
 +a arbitrary number of header/score pairs.  If there are no header/score
 +pairs following the key, no adaptive scoring will be done on articles
 +that have that key as the article mark.  For instance, articles with
 +@code{gnus-unread-mark} in the example above will not get adaptive score
 +entries.
  
 -Other people use @dfn{kill files}, but we here at Gnus Towers like
 -scoring better than killing, so we'd rather switch than fight.  They do
 -something completely different as well, so sit up straight and pay
 -attention!
 +Each article can have only one mark, so just a single of these rules
 +will be applied to each article.
  
 -@vindex gnus-summary-mark-below
 -All articles have a default score (@code{gnus-summary-default-score}),
 -which is 0 by default.  This score may be raised or lowered either
 -interactively or by score files.  Articles that have a score lower than
 -@code{gnus-summary-mark-below} are marked as read.
 +To take @code{gnus-del-mark} as an example---this alist says that all
 +articles that have that mark (i.e., are marked with @samp{e}) will have a
 +score entry added to lower based on the @code{From} header by -4, and
 +lowered by @code{Subject} by -1.  Change this to fit your prejudices.
  
 -Gnus will read any @dfn{score files} that apply to the current group
 -before generating the summary buffer.
 +If you have marked 10 articles with the same subject with
 +@code{gnus-del-mark}, the rule for that mark will be applied ten times.
 +That means that that subject will get a score of ten times -1, which
 +should be, unless I'm much mistaken, -10.
  
 -There are several commands in the summary buffer that insert score
 -entries based on the current article.  You can, for instance, ask Gnus to
 -lower or increase the score of all articles with a certain subject.
 +If you have auto-expirable (mail) groups (@pxref{Expiring Mail}), all
 +the read articles will be marked with the @samp{E} mark.  This'll
 +probably make adaptive scoring slightly impossible, so auto-expiring and
 +adaptive scoring doesn't really mix very well.
  
 -There are two sorts of scoring entries: Permanent and temporary.
 -Temporary score entries are self-expiring entries.  Any entries that are
 -temporary and have not been used for, say, a week, will be removed
 -silently to help keep the sizes of the score files down.
 +The headers you can score on are @code{from}, @code{subject},
 +@code{message-id}, @code{references}, @code{xref}, @code{lines},
 +@code{chars} and @code{date}.  In addition, you can score on
 +@code{followup}, which will create an adaptive score entry that matches
 +on the @code{References} header using the @code{Message-ID} of the
 +current article, thereby matching the following thread.
  
 -@menu
 -* Summary Score Commands::      Adding score entries for the current group.
 -* Group Score Commands::        General score commands.
 -* Score Variables::             Customize your scoring.  (My, what terminology).
 -* Score File Format::           What a score file may contain.
 -* Score File Editing::          You can edit score files by hand as well.
 -* Adaptive Scoring::            Big Sister Gnus knows what you read.
 -* Home Score File::             How to say where new score entries are to go.
 -* Followups To Yourself::       Having Gnus notice when people answer you.
 -* Scoring On Other Headers::    Scoring on non-standard headers.
 -* Scoring Tips::                How to score effectively.
 -* Reverse Scoring::             That problem child of old is not problem.
 -* Global Score Files::          Earth-spanning, ear-splitting score files.
 -* Kill Files::                  They are still here, but they can be ignored.
 -* Converting Kill Files::       Translating kill files to score files.
 -* Advanced Scoring::            Using logical expressions to build score rules.
 -* Score Decays::                It can be useful to let scores wither away.
 -@end menu
 +If you use this scheme, you should set the score file atom @code{mark}
 +to something small---like -300, perhaps, to avoid having small random
 +changes result in articles getting marked as read.
  
 +After using adaptive scoring for a week or so, Gnus should start to
 +become properly trained and enhance the authors you like best, and kill
 +the authors you like least, without you having to say so explicitly.
  
 -@node Summary Score Commands
 -@section Summary Score Commands
 -@cindex score commands
 +You can control what groups the adaptive scoring is to be performed on
 +by using the score files (@pxref{Score File Format}).  This will also
 +let you use different rules in different groups.
  
 -The score commands that alter score entries do not actually modify real
 -score files.  That would be too inefficient.  Gnus maintains a cache of
 -previously loaded score files, one of which is considered the
 -@dfn{current score file alist}.  The score commands simply insert
 -entries into this list, and upon group exit, this list is saved.
 +@vindex gnus-adaptive-file-suffix
 +The adaptive score entries will be put into a file where the name is the
 +group name with @code{gnus-adaptive-file-suffix} appended.  The default
 +is @file{ADAPT}.
  
 -The current score file is by default the group's local score file, even
 -if no such score file actually exists.  To insert score commands into
 -some other score file (e.g. @file{all.SCORE}), you must first make this
 -score file the current one.
 +@vindex gnus-adaptive-pretty-print
 +Adaptive score files can get huge and are not meant to be edited by
 +human hands.  If @code{gnus-adaptive-pretty-print} is @code{nil} (the
 +default) those files will not be written in a human readable way.
  
 -General score commands that don't actually change the score file:
 +@vindex gnus-score-exact-adapt-limit
 +When doing adaptive scoring, substring or fuzzy matching would probably
 +give you the best results in most cases.  However, if the header one
 +matches is short, the possibility for false positives is great, so if
 +the length of the match is less than
 +@code{gnus-score-exact-adapt-limit}, exact matching will be used.  If
 +this variable is @code{nil}, exact matching will always be used to avoid
 +this problem.
  
 -@table @kbd
 +@vindex gnus-default-adaptive-word-score-alist
 +As mentioned above, you can adapt either on individual words or entire
 +headers.  If you adapt on words, the
 +@code{gnus-default-adaptive-word-score-alist} variable says what score
 +each instance of a word should add given a mark.
  
 -@item V s
 -@kindex V s (Summary)
 -@findex gnus-summary-set-score
 -Set the score of the current article (@code{gnus-summary-set-score}).
 +@lisp
 +(setq gnus-default-adaptive-word-score-alist
 +      `((,gnus-read-mark . 30)
 +        (,gnus-catchup-mark . -10)
 +        (,gnus-killed-mark . -20)
 +        (,gnus-del-mark . -15)))
 +@end lisp
  
 -@item V S
 -@kindex V S (Summary)
 -@findex gnus-summary-current-score
 -Display the score of the current article
 -(@code{gnus-summary-current-score}).
 +This is the default value.  If you have adaption on words enabled, every
 +word that appears in subjects of articles marked with
 +@code{gnus-read-mark} will result in a score rule that increase the
 +score with 30 points.
  
 -@item V t
 -@kindex V t (Summary)
 -@findex gnus-score-find-trace
 -Display all score rules that have been used on the current article
 -(@code{gnus-score-find-trace}).  In the @code{*Score Trace*} buffer, you
 -may type @kbd{e} to edit score file corresponding to the score rule on
 -current line and @kbd{f} to format (@code{gnus-score-pretty-print}) the
 -score file and edit it.
 +@vindex gnus-default-ignored-adaptive-words
 +@vindex gnus-ignored-adaptive-words
 +Words that appear in the @code{gnus-default-ignored-adaptive-words} list
 +will be ignored.  If you wish to add more words to be ignored, use the
 +@code{gnus-ignored-adaptive-words} list instead.
  
 -@item V w
 -@kindex V w (Summary)
 -@findex gnus-score-find-favourite-words
 -List words used in scoring (@code{gnus-score-find-favourite-words}).
 +@vindex gnus-adaptive-word-length-limit
 +Some may feel that short words shouldn't count when doing adaptive
 +scoring.  If so, you may set @code{gnus-adaptive-word-length-limit} to
 +an integer.  Words shorter than this number will be ignored.  This
 +variable defaults to @code{nil}.
  
 -@item V R
 -@kindex V R (Summary)
 -@findex gnus-summary-rescore
 -Run the current summary through the scoring process
 -(@code{gnus-summary-rescore}).  This might be useful if you're playing
 -around with your score files behind Gnus' back and want to see the
 -effect you're having.
 +@vindex gnus-adaptive-word-syntax-table
 +When the scoring is done, @code{gnus-adaptive-word-syntax-table} is the
 +syntax table in effect.  It is similar to the standard syntax table, but
 +it considers numbers to be non-word-constituent characters.
  
 -@item V c
 -@kindex V c (Summary)
 -@findex gnus-score-change-score-file
 -Make a different score file the current
 -(@code{gnus-score-change-score-file}).
 +@vindex gnus-adaptive-word-minimum
 +If @code{gnus-adaptive-word-minimum} is set to a number, the adaptive
 +word scoring process will never bring down the score of an article to
 +below this number.  The default is @code{nil}.
  
 -@item V e
 -@kindex V e (Summary)
 -@findex gnus-score-edit-current-scores
 -Edit the current score file (@code{gnus-score-edit-current-scores}).
 -You will be popped into a @code{gnus-score-mode} buffer (@pxref{Score
 -File Editing}).
 +@vindex gnus-adaptive-word-no-group-words
 +If @code{gnus-adaptive-word-no-group-words} is set to @code{t}, gnus
 +won't adaptively word score any of the words in the group name.  Useful
 +for groups like @samp{comp.editors.emacs}, where most of the subject
 +lines contain the word @samp{emacs}.
  
 -@item V f
 -@kindex V f (Summary)
 -@findex gnus-score-edit-file
 -Edit a score file and make this score file the current one
 -(@code{gnus-score-edit-file}).
 +After using this scheme for a while, it might be nice to write a
 +@code{gnus-psychoanalyze-user} command to go through the rules and see
 +what words you like and what words you don't like.  Or perhaps not.
  
 -@item V F
 -@kindex V F (Summary)
 -@findex gnus-score-flush-cache
 -Flush the score cache (@code{gnus-score-flush-cache}).  This is useful
 -after editing score files.
 +Note that the adaptive word scoring thing is highly experimental and is
 +likely to change in the future.  Initial impressions seem to indicate
 +that it's totally useless as it stands.  Some more work (involving more
 +rigorous statistical methods) will have to be done to make this useful.
  
 -@item V C
 -@kindex V C (Summary)
 -@findex gnus-score-customize
 -Customize a score file in a visually pleasing manner
 -(@code{gnus-score-customize}).
  
 -@end table
 +@node Home Score File
 +@section Home Score File
  
 -The rest of these commands modify the local score file.
 +The score file where new score file entries will go is called the
 +@dfn{home score file}.  This is normally (and by default) the score file
 +for the group itself.  For instance, the home score file for
 +@samp{gnu.emacs.gnus} is @file{gnu.emacs.gnus.SCORE}.
  
 -@table @kbd
 +However, this may not be what you want.  It is often convenient to share
 +a common home score file among many groups---all @samp{emacs} groups
 +could perhaps use the same home score file.
  
 -@item V m
 -@kindex V m (Summary)
 -@findex gnus-score-set-mark-below
 -Prompt for a score, and mark all articles with a score below this as
 -read (@code{gnus-score-set-mark-below}).
 +@vindex gnus-home-score-file
 +The variable that controls this is @code{gnus-home-score-file}.  It can
 +be:
  
 -@item V x
 -@kindex V x (Summary)
 -@findex gnus-score-set-expunge-below
 -Prompt for a score, and add a score rule to the current score file to
 -expunge all articles below this score
 -(@code{gnus-score-set-expunge-below}).
 -@end table
 +@enumerate
 +@item
 +A string.  Then this file will be used as the home score file for all
 +groups.
  
 -The keystrokes for actually making score entries follow a very regular
 -pattern, so there's no need to list all the commands.  (Hundreds of
 -them.)
 +@item
 +A function.  The result of this function will be used as the home score
 +file.  The function will be called with the name of the group as the
 +parameter.
  
 -@findex gnus-summary-increase-score
 -@findex gnus-summary-lower-score
 +@item
 +A list.  The elements in this list can be:
  
  @enumerate
  @item
 -The first key is either @kbd{I} (upper case i) for increasing the score
 -or @kbd{L} for lowering the score.
 +@code{(@var{regexp} @var{file-name})}.  If the @var{regexp} matches the
 +group name, the @var{file-name} will be used as the home score file.
 +
  @item
 -The second key says what header you want to score on.  The following
 -keys are available:
 -@table @kbd
 +A function.  If the function returns non-@code{nil}, the result will
 +be used as the home score file.  The function will be called with the
 +name of the group as the parameter.
  
 -@item a
 -Score on the author name.
 +@item
 +A string.  Use the string as the home score file.
 +@end enumerate
  
 -@item s
 -Score on the subject line.
 +The list will be traversed from the beginning towards the end looking
 +for matches.
  
 -@item x
 -Score on the @code{Xref} line---i.e., the cross-posting line.
 +@end enumerate
  
 -@item r
 -Score on the @code{References} line.
 +So, if you want to use just a single score file, you could say:
  
 -@item d
 -Score on the date.
 +@lisp
 +(setq gnus-home-score-file
 +      "my-total-score-file.SCORE")
 +@end lisp
  
 -@item l
 -Score on the number of lines.
 +If you want to use @file{gnu.SCORE} for all @samp{gnu} groups and
 +@file{rec.SCORE} for all @samp{rec} groups (and so on), you can say:
  
 -@item i
 -Score on the @code{Message-ID} header.
 +@findex gnus-hierarchial-home-score-file
 +@lisp
 +(setq gnus-home-score-file
 +      'gnus-hierarchial-home-score-file)
 +@end lisp
  
 -@item e
 -Score on an ``extra'' header, that is, one of those in gnus-extra-headers,
 -if your @acronym{NNTP} server tracks additional header data in overviews.
 +This is a ready-made function provided for your convenience.
 +Other functions include
  
 -@item f
 -Score on followups---this matches the author name, and adds scores to
 -the followups to this author.  (Using this key leads to the creation of
 -@file{ADAPT} files.)
 +@table @code
 +@item gnus-current-home-score-file
 +@findex gnus-current-home-score-file
 +Return the ``current'' regular score file.  This will make scoring
 +commands add entry to the ``innermost'' matching score file.
  
 -@item b
 -Score on the body.
 +@end table
  
 -@item h
 -Score on the head.
 +If you want to have one score file for the @samp{emacs} groups and
 +another for the @samp{comp} groups, while letting all other groups use
 +their own home score files:
  
 -@item t
 -Score on thread.  (Using this key leads to the creation of @file{ADAPT}
 -files.)
 +@lisp
 +(setq gnus-home-score-file
 +      ;; @r{All groups that match the regexp @code{"\\.emacs"}}
 +      '(("\\.emacs" "emacs.SCORE")
 +        ;; @r{All the comp groups in one score file}
 +        ("^comp" "comp.SCORE")))
 +@end lisp
  
 -@end table
 +@vindex gnus-home-adapt-file
 +@code{gnus-home-adapt-file} works exactly the same way as
 +@code{gnus-home-score-file}, but says what the home adaptive score file
 +is instead.  All new adaptive file entries will go into the file
 +specified by this variable, and the same syntax is allowed.
  
 -@item
 -The third key is the match type.  Which match types are valid depends on
 -what headers you are scoring on.
 +In addition to using @code{gnus-home-score-file} and
 +@code{gnus-home-adapt-file}, you can also use group parameters
 +(@pxref{Group Parameters}) and topic parameters (@pxref{Topic
 +Parameters}) to achieve much the same.  Group and topic parameters take
 +precedence over this variable.
 +
 +
 +@node Followups To Yourself
 +@section Followups To Yourself
 +
 +Gnus offers two commands for picking out the @code{Message-ID} header in
 +the current buffer.  Gnus will then add a score rule that scores using
 +this @code{Message-ID} on the @code{References} header of other
 +articles.  This will, in effect, increase the score of all articles that
 +respond to the article in the current buffer.  Quite useful if you want
 +to easily note when people answer what you've said.
  
  @table @code
  
 -@item strings
 +@item gnus-score-followup-article
 +@findex gnus-score-followup-article
 +This will add a score to articles that directly follow up your own
 +article.
  
 -@table @kbd
 +@item gnus-score-followup-thread
 +@findex gnus-score-followup-thread
 +This will add a score to all articles that appear in a thread ``below''
 +your own article.
 +@end table
  
 -@item e
 -Exact matching.
 +@vindex message-sent-hook
 +These two functions are both primarily meant to be used in hooks like
 +@code{message-sent-hook}, like this:
 +@lisp
 +(add-hook 'message-sent-hook 'gnus-score-followup-thread)
 +@end lisp
  
 -@item s
 -Substring matching.
  
 -@item f
 -Fuzzy matching (@pxref{Fuzzy Matching}).
 +If you look closely at your own @code{Message-ID}, you'll notice that
 +the first two or three characters are always the same.  Here's two of
 +mine:
  
 -@item r
 -Regexp matching
 -@end table
 +@example
 +<x6u3u47icf.fsf@@eyesore.no>
 +<x6sp9o7ibw.fsf@@eyesore.no>
 +@end example
  
 -@item date
 -@table @kbd
 +So ``my'' ident on this machine is @samp{x6}.  This can be
 +exploited---the following rule will raise the score on all followups to
 +myself:
  
 -@item b
 -Before date.
 +@lisp
 +("references"
 + ("<x6[0-9a-z]+\\.fsf\\(_-_\\)?@@.*eyesore\\.no>"
 +  1000 nil r))
 +@end lisp
  
 -@item a
 -After date.
 +Whether it's the first two or first three characters that are ``yours''
 +is system-dependent.
  
 -@item n
 -This date.
 -@end table
  
 -@item number
 -@table @kbd
 +@node Scoring On Other Headers
 +@section Scoring On Other Headers
 +@cindex scoring on other headers
  
 -@item <
 -Less than number.
 +Gnus is quite fast when scoring the ``traditional''
 +headers---@samp{From}, @samp{Subject} and so on.  However, scoring
 +other headers requires writing a @code{head} scoring rule, which means
 +that Gnus has to request every single article from the back end to find
 +matches.  This takes a long time in big groups.
  
 -@item =
 -Equal to number.
 +@vindex gnus-inhibit-slow-scoring
 +You can inhibit this slow scoring on headers or body by setting the
 +variable @code{gnus-inhibit-slow-scoring}.  If
 +@code{gnus-inhibit-slow-scoring} is regexp, slow scoring is inhibited if
 +the group matches the regexp.  If it is t, slow scoring on it is
 +inhibited for all groups.
  
 -@item >
 -Greater than number.
 -@end table
 -@end table
 +Now, there's not much you can do about the slowness for news groups, but for
 +mail groups, you have greater control.  In @ref{To From Newsgroups},
 +it's explained in greater detail what this mechanism does, but here's
 +a cookbook example for @code{nnml} on how to allow scoring on the
 +@samp{To} and @samp{Cc} headers.
  
 -@item
 -The fourth and usually final key says whether this is a temporary (i.e.,
 -expiring) score entry, or a permanent (i.e., non-expiring) score entry,
 -or whether it is to be done immediately, without adding to the score
 -file.
 -@table @kbd
 +Put the following in your @file{~/.gnus.el} file.
 +
 +@lisp
 +(setq gnus-extra-headers '(To Cc Newsgroups Keywords)
 +      nnmail-extra-headers gnus-extra-headers)
 +@end lisp
  
 -@item t
 -Temporary score entry.
 +Restart Gnus and rebuild your @code{nnml} overview files with the
 +@kbd{M-x nnml-generate-nov-databases} command.  This will take a long
 +time if you have much mail.
  
 -@item p
 -Permanent score entry.
 +Now you can score on @samp{To} and @samp{Cc} as ``extra headers'' like
 +so: @kbd{I e s p To RET <your name> RET}.
  
 -@item i
 -Immediately scoring.
 -@end table
 +See?  Simple.
  
 -@item
 -If you are scoring on `e' (extra) headers, you will then be prompted for
 -the header name on which you wish to score.  This must be a header named
 -in gnus-extra-headers, and @samp{TAB} completion is available.
  
 -@end enumerate
 +@node Scoring Tips
 +@section Scoring Tips
 +@cindex scoring tips
  
 -So, let's say you want to increase the score on the current author with
 -exact matching permanently: @kbd{I a e p}.  If you want to lower the
 -score based on the subject line, using substring matching, and make a
 -temporary score entry: @kbd{L s s t}.  Pretty easy.
 +@table @dfn
  
 -To make things a bit more complicated, there are shortcuts.  If you use
 -a capital letter on either the second or third keys, Gnus will use
 -defaults for the remaining one or two keystrokes.  The defaults are
 -``substring'' and ``temporary''.  So @kbd{I A} is the same as @kbd{I a s
 -t}, and @kbd{I a R} is the same as @kbd{I a r t}.
 +@item Crossposts
 +@cindex crossposts
 +@cindex scoring crossposts
 +If you want to lower the score of crossposts, the line to match on is
 +the @code{Xref} header.
 +@lisp
 +("xref" (" talk.politics.misc:" -1000))
 +@end lisp
  
 -These functions take both the numerical prefix and the symbolic prefix
 -(@pxref{Symbolic Prefixes}).  A numerical prefix says how much to lower
 -(or increase) the score of the article.  A symbolic prefix of @code{a}
 -says to use the @file{all.SCORE} file for the command instead of the
 -current score file.
 +@item Multiple crossposts
 +If you want to lower the score of articles that have been crossposted to
 +more than, say, 3 groups:
 +@lisp
 +("xref"
 +  ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+"
 +   -1000 nil r))
 +@end lisp
  
 -@vindex gnus-score-mimic-keymap
 -The @code{gnus-score-mimic-keymap} says whether these commands will
 -pretend they are keymaps or not.
 +@item Matching on the body
 +This is generally not a very good idea---it takes a very long time.
 +Gnus actually has to fetch each individual article from the server.  But
 +you might want to anyway, I guess.  Even though there are three match
 +keys (@code{Head}, @code{Body} and @code{All}), you should choose one
 +and stick with it in each score file.  If you use any two, each article
 +will be fetched @emph{twice}.  If you want to match a bit on the
 +@code{Head} and a bit on the @code{Body}, just use @code{All} for all
 +the matches.
  
 +@item Marking as read
 +You will probably want to mark articles that have scores below a certain
 +number as read.  This is most easily achieved by putting the following
 +in your @file{all.SCORE} file:
 +@lisp
 +((mark -100))
 +@end lisp
 +You may also consider doing something similar with @code{expunge}.
  
 -@node Group Score Commands
 -@section Group Score Commands
 -@cindex group score commands
 +@item Negated character classes
 +If you say stuff like @code{[^abcd]*}, you may get unexpected results.
 +That will match newlines, which might lead to, well, The Unknown.  Say
 +@code{[^abcd\n]*} instead.
 +@end table
  
 -There aren't many of these as yet, I'm afraid.
  
 -@table @kbd
 +@node Reverse Scoring
 +@section Reverse Scoring
 +@cindex reverse scoring
  
 -@item W e
 -@kindex W e (Group)
 -@findex gnus-score-edit-all-score
 -Edit the apply-to-all-groups all.SCORE file.  You will be popped into
 -a @code{gnus-score-mode} buffer (@pxref{Score File Editing}).
 +If you want to keep just articles that have @samp{Sex with Emacs} in the
 +subject header, and expunge all other articles, you could put something
 +like this in your score file:
  
 -@item W f
 -@kindex W f (Group)
 -@findex gnus-score-flush-cache
 -Gnus maintains a cache of score alists to avoid having to reload them
 -all the time.  This command will flush the cache
 -(@code{gnus-score-flush-cache}).
 +@lisp
 +(("subject"
 +  ("Sex with Emacs" 2))
 + (mark 1)
 + (expunge 1))
 +@end lisp
  
 -@end table
 +So, you raise all articles that match @samp{Sex with Emacs} and mark the
 +rest as read, and expunge them to boot.
  
 -You can do scoring from the command line by saying something like:
  
 -@findex gnus-batch-score
 -@cindex batch scoring
 -@example
 -$ emacs -batch -l ~/.emacs -l ~/.gnus.el -f gnus-batch-score
 -@end example
 +@node Global Score Files
 +@section Global Score Files
 +@cindex global score files
  
 +Sure, other newsreaders have ``global kill files''.  These are usually
 +nothing more than a single kill file that applies to all groups, stored
 +in the user's home directory.  Bah!  Puny, weak newsreaders!
  
 -@node Score Variables
 -@section Score Variables
 -@cindex score variables
 +What I'm talking about here are Global Score Files.  Score files from
 +all over the world, from users everywhere, uniting all nations in one
 +big, happy score file union!  Ange-score!  New and untested!
  
 -@table @code
 +@vindex gnus-global-score-files
 +All you have to do to use other people's score files is to set the
 +@code{gnus-global-score-files} variable.  One entry for each score file,
 +or each score file directory.  Gnus will decide by itself what score
 +files are applicable to which group.
  
 -@item gnus-use-scoring
 -@vindex gnus-use-scoring
 -If @code{nil}, Gnus will not check for score files, and will not, in
 -general, do any score-related work.  This is @code{t} by default.
 +To use the score file
 +@file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} and
 +all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory,
 +say this:
  
 -@item gnus-kill-killed
 -@vindex gnus-kill-killed
 -If this variable is @code{nil}, Gnus will never apply score files to
 -articles that have already been through the kill process.  While this
 -may save you lots of time, it also means that if you apply a kill file
 -to a group, and then change the kill file and want to run it over you
 -group again to kill more articles, it won't work.  You have to set this
 -variable to @code{t} to do that.  (It is @code{t} by default.)
 +@lisp
 +(setq gnus-global-score-files
 +      '("/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE"
 +        "/ftp@@ftp.some-where:/pub/score/"))
 +@end lisp
  
 -@item gnus-kill-files-directory
 -@vindex gnus-kill-files-directory
 -All kill and score files will be stored in this directory, which is
 -initialized from the @env{SAVEDIR} environment variable by default.
 -This is @file{~/News/} by default.
 +@findex gnus-score-search-global-directories
 +@noindent
 +Simple, eh?  Directory names must end with a @samp{/}.  These
 +directories are typically scanned only once during each Gnus session.
 +If you feel the need to manually re-scan the remote directories, you can
 +use the @code{gnus-score-search-global-directories} command.
  
 -@item gnus-score-file-suffix
 -@vindex gnus-score-file-suffix
 -Suffix to add to the group name to arrive at the score file name
 -(@file{SCORE} by default.)
 +Note that, at present, using this option will slow down group entry
 +somewhat.  (That is---a lot.)
  
 -@item gnus-score-uncacheable-files
 -@vindex gnus-score-uncacheable-files
 -@cindex score cache
 -All score files are normally cached to avoid excessive re-loading of
 -score files.  However, this might make your Emacs grow big and
 -bloated, so this regexp can be used to weed out score files unlikely
 -to be needed again.  It would be a bad idea to deny caching of
 -@file{all.SCORE}, while it might be a good idea to not cache
 -@file{comp.infosystems.www.authoring.misc.ADAPT}.  In fact, this
 -variable is @samp{ADAPT$} by default, so no adaptive score files will
 -be cached.
 +If you want to start maintaining score files for other people to use,
 +just put your score file up for anonymous ftp and announce it to the
 +world.  Become a retro-moderator!  Participate in the retro-moderator
 +wars sure to ensue, where retro-moderators battle it out for the
 +sympathy of the people, luring them to use their score files on false
 +premises!  Yay!  The net is saved!
  
 -@item gnus-save-score
 -@vindex gnus-save-score
 -If you have really complicated score files, and do lots of batch
 -scoring, then you might set this variable to @code{t}.  This will make
 -Gnus save the scores into the @file{.newsrc.eld} file.
 +Here are some tips for the would-be retro-moderator, off the top of my
 +head:
  
 -If you do not set this to @code{t}, then manual scores (like those set
 -with @kbd{V s} (@code{gnus-summary-set-score})) will not be preserved
 -across group visits.
 +@itemize @bullet
  
 -@item gnus-score-interactive-default-score
 -@vindex gnus-score-interactive-default-score
 -Score used by all the interactive raise/lower commands to raise/lower
 -score with.  Default is 1000, which may seem excessive, but this is to
 -ensure that the adaptive scoring scheme gets enough room to play with.
 -We don't want the small changes from the adaptive scoring to overwrite
 -manually entered data.
 +@item
 +Articles heavily crossposted are probably junk.
 +@item
 +To lower a single inappropriate article, lower by @code{Message-ID}.
 +@item
 +Particularly brilliant authors can be raised on a permanent basis.
 +@item
 +Authors that repeatedly post off-charter for the group can safely be
 +lowered out of existence.
 +@item
 +Set the @code{mark} and @code{expunge} atoms to obliterate the nastiest
 +articles completely.
  
 -@item gnus-summary-default-score
 -@vindex gnus-summary-default-score
 -Default score of an article, which is 0 by default.
 +@item
 +Use expiring score entries to keep the size of the file down.  You
 +should probably have a long expiry period, though, as some sites keep
 +old articles for a long time.
 +@end itemize
  
 -@item gnus-summary-expunge-below
 -@vindex gnus-summary-expunge-below
 -Don't display the summary lines of articles that have scores lower than
 -this variable.  This is @code{nil} by default, which means that no
 -articles will be hidden.  This variable is local to the summary buffers,
 -and has to be set from @code{gnus-summary-mode-hook}.
 +@dots{} I wonder whether other newsreaders will support global score files
 +in the future.  @emph{Snicker}.  Yup, any day now, newsreaders like Blue
 +Wave, xrn and 1stReader are bound to implement scoring.  Should we start
 +holding our breath yet?
  
 -@item gnus-score-over-mark
 -@vindex gnus-score-over-mark
 -Mark (in the third column) used for articles with a score over the
 -default.  Default is @samp{+}.
  
 -@item gnus-score-below-mark
 -@vindex gnus-score-below-mark
 -Mark (in the third column) used for articles with a score below the
 -default.  Default is @samp{-}.
 +@node Kill Files
 +@section Kill Files
 +@cindex kill files
  
 -@item gnus-score-find-score-files-function
 -@vindex gnus-score-find-score-files-function
 -Function used to find score files for the current group.  This function
 -is called with the name of the group as the argument.
 +Gnus still supports those pesky old kill files.  In fact, the kill file
 +entries can now be expiring, which is something I wrote before Daniel
 +Quinlan thought of doing score files, so I've left the code in there.
  
 -Predefined functions available are:
 -@table @code
 +In short, kill processing is a lot slower (and I do mean @emph{a lot})
 +than score processing, so it might be a good idea to rewrite your kill
 +files into score files.
  
 -@item gnus-score-find-single
 -@findex gnus-score-find-single
 -Only apply the group's own score file.
 +Anyway, a kill file is a normal @code{emacs-lisp} file.  You can put any
 +forms into this file, which means that you can use kill files as some
 +sort of primitive hook function to be run on group entry, even though
 +that isn't a very good idea.
  
 -@item gnus-score-find-bnews
 -@findex gnus-score-find-bnews
 -Apply all score files that match, using bnews syntax.  This is the
 -default.  If the current group is @samp{gnu.emacs.gnus}, for instance,
 -@file{all.emacs.all.SCORE}, @file{not.alt.all.SCORE} and
 -@file{gnu.all.SCORE} would all apply.  In short, the instances of
 -@samp{all} in the score file names are translated into @samp{.*}, and
 -then a regexp match is done.
 +Normal kill files look like this:
  
 -This means that if you have some score entries that you want to apply to
 -all groups, then you put those entries in the @file{all.SCORE} file.
 +@lisp
 +(gnus-kill "From" "Lars Ingebrigtsen")
 +(gnus-kill "Subject" "ding")
 +(gnus-expunge "X")
 +@end lisp
  
 -The score files are applied in a semi-random order, although Gnus will
 -try to apply the more general score files before the more specific score
 -files.  It does this by looking at the number of elements in the score
 -file names---discarding the @samp{all} elements.
 +This will mark every article written by me as read, and remove the
 +marked articles from the summary buffer.  Very useful, you'll agree.
  
 -@item gnus-score-find-hierarchical
 -@findex gnus-score-find-hierarchical
 -Apply all score files from all the parent groups.  This means that you
 -can't have score files like @file{all.SCORE}, but you can have
 -@file{SCORE}, @file{comp.SCORE} and @file{comp.emacs.SCORE} for each
 -server.
 +Other programs use a totally different kill file syntax.  If Gnus
 +encounters what looks like a @code{rn} kill file, it will take a stab at
 +interpreting it.
  
 -@end table
 -This variable can also be a list of functions.  In that case, all
 -these functions will be called with the group name as argument, and
 -all the returned lists of score files will be applied.  These
 -functions can also return lists of lists of score alists directly.  In
 -that case, the functions that return these non-file score alists
 -should probably be placed before the ``real'' score file functions, to
 -ensure that the last score file returned is the local score file.
 -Phu.
 +Two summary functions for editing a @sc{gnus} kill file:
  
 -For example, to do hierarchical scoring but use a non-server-specific
 -overall score file, you could use the value
 -@example
 -(list (lambda (group) ("all.SCORE"))
 -      'gnus-score-find-hierarchical)
 -@end example
 +@table @kbd
  
 -@item gnus-score-expiry-days
 -@vindex gnus-score-expiry-days
 -This variable says how many days should pass before an unused score file
 -entry is expired.  If this variable is @code{nil}, no score file entries
 -are expired.  It's 7 by default.
 +@item M-k
 +@kindex M-k (Summary)
 +@findex gnus-summary-edit-local-kill
 +Edit this group's kill file (@code{gnus-summary-edit-local-kill}).
  
 -@item gnus-update-score-entry-dates
 -@vindex gnus-update-score-entry-dates
 -If this variable is non-@code{nil}, temporary score entries that have
 -been triggered (matched) will have their dates updated.  (This is how Gnus
 -controls expiry---all non-matched-entries will become too old while
 -matched entries will stay fresh and young.)  However, if you set this
 -variable to @code{nil}, even matched entries will grow old and will
 -have to face that oh-so grim reaper.
 +@item M-K
 +@kindex M-K (Summary)
 +@findex gnus-summary-edit-global-kill
 +Edit the general kill file (@code{gnus-summary-edit-global-kill}).
 +@end table
  
 -@item gnus-score-after-write-file-function
 -@vindex gnus-score-after-write-file-function
 -Function called with the name of the score file just written.
 +Two group mode functions for editing the kill files:
  
 -@item gnus-score-thread-simplify
 -@vindex gnus-score-thread-simplify
 -If this variable is non-@code{nil}, article subjects will be
 -simplified for subject scoring purposes in the same manner as with
 -threading---according to the current value of
 -@code{gnus-simplify-subject-functions}.  If the scoring entry uses
 -@code{substring} or @code{exact} matching, the match will also be
 -simplified in this manner.
 +@table @kbd
  
 -@end table
 +@item M-k
 +@kindex M-k (Group)
 +@findex gnus-group-edit-local-kill
 +Edit this group's kill file (@code{gnus-group-edit-local-kill}).
  
 +@item M-K
 +@kindex M-K (Group)
 +@findex gnus-group-edit-global-kill
 +Edit the general kill file (@code{gnus-group-edit-global-kill}).
 +@end table
  
 -@node Score File Format
 -@section Score File Format
 -@cindex score file format
 +Kill file variables:
  
 -A score file is an @code{emacs-lisp} file that normally contains just a
 -single form.  Casual users are not expected to edit these files;
 -everything can be changed from the summary buffer.
 +@table @code
 +@item gnus-kill-file-name
 +@vindex gnus-kill-file-name
 +A kill file for the group @samp{soc.motss} is normally called
 +@file{soc.motss.KILL}.  The suffix appended to the group name to get
 +this file name is detailed by the @code{gnus-kill-file-name} variable.
 +The ``global'' kill file (not in the score file sense of ``global'', of
 +course) is just called @file{KILL}.
  
 -Anyway, if you'd like to dig into it yourself, here's an example:
 +@vindex gnus-kill-save-kill-file
 +@item gnus-kill-save-kill-file
 +If this variable is non-@code{nil}, Gnus will save the
 +kill file after processing, which is necessary if you use expiring
 +kills.
  
 -@lisp
 -(("from"
 -  ("Lars Ingebrigtsen" -10000)
 -  ("Per Abrahamsen")
 -  ("larsi\\|lmi" -50000 nil R))
 - ("subject"
 -  ("Ding is Badd" nil 728373))
 - ("xref"
 -  ("alt.politics" -1000 728372 s))
 - ("lines"
 -  (2 -100 nil <))
 - (mark 0)
 - (expunge -1000)
 - (mark-and-expunge -10)
 - (read-only nil)
 - (orphan -10)
 - (adapt t)
 - (files "/hom/larsi/News/gnu.SCORE")
 - (exclude-files "all.SCORE")
 - (local (gnus-newsgroup-auto-expire t)
 -        (gnus-summary-make-false-root empty))
 - (eval (ding)))
 -@end lisp
 +@item gnus-apply-kill-hook
 +@vindex gnus-apply-kill-hook
 +@findex gnus-apply-kill-file-unless-scored
 +@findex gnus-apply-kill-file
 +A hook called to apply kill files to a group.  It is
 +@code{(gnus-apply-kill-file)} by default.  If you want to ignore the
 +kill file if you have a score file for the same group, you can set this
 +hook to @code{(gnus-apply-kill-file-unless-scored)}.  If you don't want
 +kill files to be processed, you should set this variable to @code{nil}.
  
 -This example demonstrates most score file elements.  @xref{Advanced
 -Scoring}, for a different approach.
 +@item gnus-kill-file-mode-hook
 +@vindex gnus-kill-file-mode-hook
 +A hook called in kill-file mode buffers.
  
 -Even though this looks much like Lisp code, nothing here is actually
 -@code{eval}ed.  The Lisp reader is used to read this form, though, so it
 -has to be valid syntactically, if not semantically.
 +@end table
  
 -Six keys are supported by this alist:
  
 -@table @code
 +@node Converting Kill Files
 +@section Converting Kill Files
 +@cindex kill files
 +@cindex converting kill files
  
 -@item STRING
 -If the key is a string, it is the name of the header to perform the
 -match on.  Scoring can only be performed on these eight headers:
 -@code{From}, @code{Subject}, @code{References}, @code{Message-ID},
 -@code{Xref}, @code{Lines}, @code{Chars} and @code{Date}.  In addition to
 -these headers, there are three strings to tell Gnus to fetch the entire
 -article and do the match on larger parts of the article: @code{Body}
 -will perform the match on the body of the article, @code{Head} will
 -perform the match on the head of the article, and @code{All} will
 -perform the match on the entire article.  Note that using any of these
 -last three keys will slow down group entry @emph{considerably}.  The
 -final ``header'' you can score on is @code{Followup}.  These score
 -entries will result in new score entries being added for all follow-ups
 -to articles that matches these score entries.
 +If you have loads of old kill files, you may want to convert them into
 +score files.  If they are ``regular'', you can use
 +the @file{gnus-kill-to-score.el} package; if not, you'll have to do it
 +by hand.
  
 -Following this key is an arbitrary number of score entries, where each
 -score entry has one to four elements.
 -@enumerate
 +The kill to score conversion package isn't included in Emacs by default.
 +You can fetch it from the contrib directory of the Gnus distribution or
 +from
 +@uref{http://heim.ifi.uio.no/~larsi/ding-various/gnus-kill-to-score.el}.
  
 -@item
 -The first element is the @dfn{match element}.  On most headers this will
 -be a string, but on the Lines and Chars headers, this must be an
 -integer.
 +If your old kill files are very complex---if they contain more
 +non-@code{gnus-kill} forms than not, you'll have to convert them by
 +hand.  Or just let them be as they are.  Gnus will still use them as
 +before.
  
 -@item
 -If the second element is present, it should be a number---the @dfn{score
 -element}.  This number should be an integer in the neginf to posinf
 -interval.  This number is added to the score of the article if the match
 -is successful.  If this element is not present, the
 -@code{gnus-score-interactive-default-score} number will be used
 -instead.  This is 1000 by default.
  
 -@item
 -If the third element is present, it should be a number---the @dfn{date
 -element}.  This date says when the last time this score entry matched,
 -which provides a mechanism for expiring the score entries.  It this
 -element is not present, the score entry is permanent.  The date is
 -represented by the number of days since December 31, 1 BCE.
 +@node Advanced Scoring
 +@section Advanced Scoring
  
 -@item
 -If the fourth element is present, it should be a symbol---the @dfn{type
 -element}.  This element specifies what function should be used to see
 -whether this score entry matches the article.  What match types that can
 -be used depends on what header you wish to perform the match on.
 -@table @dfn
 +Scoring on Subjects and From headers is nice enough, but what if you're
 +really interested in what a person has to say only when she's talking
 +about a particular subject?  Or what if you really don't want to
 +read what person A has to say when she's following up to person B, but
 +want to read what she says when she's following up to person C?
  
 -@item From, Subject, References, Xref, Message-ID
 -For most header types, there are the @code{r} and @code{R} (regexp), as
 -well as @code{s} and @code{S} (substring) types, and @code{e} and
 -@code{E} (exact match), and @code{w} (word match) types.  If this
 -element is not present, Gnus will assume that substring matching should
 -be used.  @code{R}, @code{S}, and @code{E} differ from the others in
 -that the matches will be done in a case-sensitive manner.  All these
 -one-letter types are really just abbreviations for the @code{regexp},
 -@code{string}, @code{exact}, and @code{word} types, which you can use
 -instead, if you feel like.
 +By using advanced scoring rules you may create arbitrarily complex
 +scoring patterns.
  
 -@item Extra
 -Just as for the standard string overview headers, if you are using
 -gnus-extra-headers, you can score on these headers' values.  In this
 -case, there is a 5th element in the score entry, being the name of the
 -header to be scored.  The following entry is useful in your
 -@file{all.SCORE} file in case of spam attacks from a single origin
 -host, if your @acronym{NNTP} server tracks @samp{NNTP-Posting-Host} in
 -overviews:
 +@menu
 +* Advanced Scoring Syntax::     A definition.
 +* Advanced Scoring Examples::   What they look like.
 +* Advanced Scoring Tips::       Getting the most out of it.
 +@end menu
  
 -@lisp
 -("111.222.333.444" -1000 nil s
 - "NNTP-Posting-Host")
 -@end lisp
  
 -@item Lines, Chars
 -These two headers use different match types: @code{<}, @code{>},
 -@code{=}, @code{>=} and @code{<=}.
 +@node Advanced Scoring Syntax
 +@subsection Advanced Scoring Syntax
  
 -These predicates are true if
 +Ordinary scoring rules have a string as the first element in the rule.
 +Advanced scoring rules have a list as the first element.  The second
 +element is the score to be applied if the first element evaluated to a
 +non-@code{nil} value.
  
 -@example
 -(PREDICATE HEADER MATCH)
 -@end example
 +These lists may consist of three logical operators, one redirection
 +operator, and various match operators.
  
 -evaluates to non-@code{nil}.  For instance, the advanced match
 -@code{("lines" 4 <)} (@pxref{Advanced Scoring}) will result in the
 -following form:
 +Logical operators:
  
 -@lisp
 -(< header-value 4)
 -@end lisp
 +@table @code
 +@item &
 +@itemx and
 +This logical operator will evaluate each of its arguments until it finds
 +one that evaluates to @code{false}, and then it'll stop.  If all arguments
 +evaluate to @code{true} values, then this operator will return
 +@code{true}.
  
 -Or to put it another way: When using @code{<} on @code{Lines} with 4 as
 -the match, we get the score added if the article has less than 4 lines.
 -(It's easy to get confused and think it's the other way around.  But
 -it's not.  I think.)
 +@item |
 +@itemx or
 +This logical operator will evaluate each of its arguments until it finds
 +one that evaluates to @code{true}.  If no arguments are @code{true},
 +then this operator will return @code{false}.
  
 -When matching on @code{Lines}, be careful because some back ends (like
 -@code{nndir}) do not generate @code{Lines} header, so every article ends
 -up being marked as having 0 lines.  This can lead to strange results if
 -you happen to lower score of the articles with few lines.
 +@item !
 +@itemx not
 +@itemx ¬
 +This logical operator only takes a single argument.  It returns the
 +logical negation of the value of its argument.
  
 -@item Date
 -For the Date header we have three kinda silly match types:
 -@code{before}, @code{at} and @code{after}.  I can't really imagine this
 -ever being useful, but, like, it would feel kinda silly not to provide
 -this function.  Just in case.  You never know.  Better safe than sorry.
 -Once burnt, twice shy.  Don't judge a book by its cover.  Never not have
 -sex on a first date.  (I have been told that at least one person, and I
 -quote, ``found this function indispensable'', however.)
 +@end table
  
 -@cindex ISO8601
 -@cindex date
 -A more useful match type is @code{regexp}.  With it, you can match the
 -date string using a regular expression.  The date is normalized to
 -ISO8601 compact format first---@var{YYYYMMDD}@code{T}@var{HHMMSS}.  If
 -you want to match all articles that have been posted on April 1st in
 -every year, you could use @samp{....0401.........} as a match string,
 -for instance.  (Note that the date is kept in its original time zone, so
 -this will match articles that were posted when it was April 1st where
 -the article was posted from.  Time zones are such wholesome fun for the
 -whole family, eh?)
 +There is an @dfn{indirection operator} that will make its arguments
 +apply to the ancestors of the current article being scored.  For
 +instance, @code{1-} will make score rules apply to the parent of the
 +current article.  @code{2-} will make score rules apply to the
 +grandparent of the current article.  Alternatively, you can write
 +@code{^^}, where the number of @code{^}s (carets) says how far back into
 +the ancestry you want to go.
  
 -@item Head, Body, All
 -These three match keys use the same match types as the @code{From} (etc)
 -header uses.
 +Finally, we have the match operators.  These are the ones that do the
 +real work.  Match operators are header name strings followed by a match
 +and a match type.  A typical match operator looks like @samp{("from"
 +"Lars Ingebrigtsen" s)}.  The header names are the same as when using
 +simple scoring, and the match types are also the same.
  
 -@item Followup
 -This match key is somewhat special, in that it will match the
 -@code{From} header, and affect the score of not only the matching
 -articles, but also all followups to the matching articles.  This allows
 -you e.g. increase the score of followups to your own articles, or
 -decrease the score of followups to the articles of some known
 -trouble-maker.  Uses the same match types as the @code{From} header
 -uses.  (Using this match key will lead to creation of @file{ADAPT}
 -files.)
  
 -@item Thread
 -This match key works along the same lines as the @code{Followup} match
 -key.  If you say that you want to score on a (sub-)thread started by an
 -article with a @code{Message-ID} @var{x}, then you add a @samp{thread}
 -match.  This will add a new @samp{thread} match for each article that
 -has @var{x} in its @code{References} header.  (These new @samp{thread}
 -matches will use the @code{Message-ID}s of these matching articles.)
 -This will ensure that you can raise/lower the score of an entire thread,
 -even though some articles in the thread may not have complete
 -@code{References} headers.  Note that using this may lead to
 -undeterministic scores of the articles in the thread.  (Using this match
 -key will lead to creation of @file{ADAPT} files.)
 -@end table
 -@end enumerate
 +@node Advanced Scoring Examples
 +@subsection Advanced Scoring Examples
  
 -@cindex score file atoms
 -@item mark
 -The value of this entry should be a number.  Any articles with a score
 -lower than this number will be marked as read.
 +Please note that the following examples are score file rules.  To
 +make a complete score file from them, surround them with another pair
 +of parentheses.
  
 -@item expunge
 -The value of this entry should be a number.  Any articles with a score
 -lower than this number will be removed from the summary buffer.
 +Let's say you want to increase the score of articles written by Lars
 +when he's talking about Gnus:
  
 -@item mark-and-expunge
 -The value of this entry should be a number.  Any articles with a score
 -lower than this number will be marked as read and removed from the
 -summary buffer.
 +@example
 +@group
 +((&
 +  ("from" "Lars Ingebrigtsen")
 +  ("subject" "Gnus"))
 + 1000)
 +@end group
 +@end example
  
 -@item thread-mark-and-expunge
 -The value of this entry should be a number.  All articles that belong to
 -a thread that has a total score below this number will be marked as read
 -and removed from the summary buffer.  @code{gnus-thread-score-function}
 -says how to compute the total score for a thread.
 +Quite simple, huh?
  
 -@item files
 -The value of this entry should be any number of file names.  These files
 -are assumed to be score files as well, and will be loaded the same way
 -this one was.
 +When he writes long articles, he sometimes has something nice to say:
  
 -@item exclude-files
 -The clue of this entry should be any number of files.  These files will
 -not be loaded, even though they would normally be so, for some reason or
 -other.
 +@example
 +((&
 +  ("from" "Lars Ingebrigtsen")
 +  (|
 +   ("subject" "Gnus")
 +   ("lines" 100 >)))
 + 1000)
 +@end example
  
 -@item eval
 -The value of this entry will be @code{eval}ed.  This element will be
 -ignored when handling global score files.
 +However, when he responds to things written by Reig Eigil Logge, you
 +really don't want to read what he's written:
  
 -@item read-only
 -Read-only score files will not be updated or saved.  Global score files
 -should feature this atom (@pxref{Global Score Files}).  (Note:
 -@dfn{Global} here really means @dfn{global}; not your personal
 -apply-to-all-groups score files.)
 +@example
 +((&
 +  ("from" "Lars Ingebrigtsen")
 +  (1- ("from" "Reig Eigil Logge")))
 + -100000)
 +@end example
  
 -@item orphan
 -The value of this entry should be a number.  Articles that do not have
 -parents will get this number added to their scores.  Imagine you follow
 -some high-volume newsgroup, like @samp{comp.lang.c}.  Most likely you
 -will only follow a few of the threads, also want to see any new threads.
 +Everybody that follows up Redmondo when he writes about disappearing
 +socks should have their scores raised, but only when they talk about
 +white socks.  However, when Lars talks about socks, it's usually not
 +very interesting:
  
 -You can do this with the following two score file entries:
 +@example
 +((&
 +  (1-
 +   (&
 +    ("from" "redmondo@@.*no" r)
 +    ("body" "disappearing.*socks" t)))
 +  (! ("from" "Lars Ingebrigtsen"))
 +  ("body" "white.*socks"))
 + 1000)
 +@end example
 +
 +Suppose you're reading a high volume group and you're only interested
 +in replies. The plan is to score down all articles that don't have
 +subject that begin with "Re:", "Fw:" or "Fwd:" and then score up all
 +parents of articles that have subjects that begin with reply marks.
  
  @example
 -        (orphan -500)
 -        (mark-and-expunge -100)
 +((! ("subject" "re:\\|fwd?:" r))
 +  -200)
 +((1- ("subject" "re:\\|fwd?:" r))
 +  200)
  @end example
  
 -When you enter the group the first time, you will only see the new
 -threads.  You then raise the score of the threads that you find
 -interesting (with @kbd{I T} or @kbd{I S}), and ignore (@kbd{c y}) the
 -rest.  Next time you enter the group, you will see new articles in the
 -interesting threads, plus any new threads.
 +The possibilities are endless.
  
 -I.e.---the orphan score atom is for high-volume groups where a few
 -interesting threads which can't be found automatically by ordinary
 -scoring rules exist.
 +@node Advanced Scoring Tips
 +@subsection Advanced Scoring Tips
  
 -@item adapt
 -This entry controls the adaptive scoring.  If it is @code{t}, the
 -default adaptive scoring rules will be used.  If it is @code{ignore}, no
 -adaptive scoring will be performed on this group.  If it is a list, this
 -list will be used as the adaptive scoring rules.  If it isn't present,
 -or is something other than @code{t} or @code{ignore}, the default
 -adaptive scoring rules will be used.  If you want to use adaptive
 -scoring on most groups, you'd set @code{gnus-use-adaptive-scoring} to
 -@code{t}, and insert an @code{(adapt ignore)} in the groups where you do
 -not want adaptive scoring.  If you only want adaptive scoring in a few
 -groups, you'd set @code{gnus-use-adaptive-scoring} to @code{nil}, and
 -insert @code{(adapt t)} in the score files of the groups where you want
 -it.
 +The @code{&} and @code{|} logical operators do short-circuit logic.
 +That is, they stop processing their arguments when it's clear what the
 +result of the operation will be.  For instance, if one of the arguments
 +of an @code{&} evaluates to @code{false}, there's no point in evaluating
 +the rest of the arguments.  This means that you should put slow matches
 +(@samp{body}, @samp{header}) last and quick matches (@samp{from},
 +@samp{subject}) first.
  
 -@item adapt-file
 -All adaptive score entries will go to the file named by this entry.  It
 -will also be applied when entering the group.  This atom might be handy
 -if you want to adapt on several groups at once, using the same adaptive
 -file for a number of groups.
 +The indirection arguments (@code{1-} and so on) will make their
 +arguments work on previous generations of the thread.  If you say
 +something like:
  
 -@item local
 -@cindex local variables
 -The value of this entry should be a list of @code{(@var{var}
 -@var{value})} pairs.  Each @var{var} will be made buffer-local to the
 -current summary buffer, and set to the value specified.  This is a
 -convenient, if somewhat strange, way of setting variables in some
 -groups if you don't like hooks much.  Note that the @var{value} won't
 -be evaluated.
 -@end table
 +@example
 +...
 +(1-
 + (1-
 +  ("from" "lars")))
 +...
 +@end example
  
 +Then that means ``score on the from header of the grandparent of the
 +current article''.  An indirection is quite fast, but it's better to say:
  
 -@node Score File Editing
 -@section Score File Editing
 +@example
 +(1-
 + (&
 +  ("from" "Lars")
 +  ("subject" "Gnus")))
 +@end example
  
 -You normally enter all scoring commands from the summary buffer, but you
 -might feel the urge to edit them by hand as well, so we've supplied you
 -with a mode for that.
 +than it is to say:
  
 -It's simply a slightly customized @code{emacs-lisp} mode, with these
 -additional commands:
 +@example
 +(&
 + (1- ("from" "Lars"))
 + (1- ("subject" "Gnus")))
 +@end example
  
 -@table @kbd
  
 -@item C-c C-c
 -@kindex C-c C-c (Score)
 -@findex gnus-score-edit-exit
 -Save the changes you have made and return to the summary buffer
 -(@code{gnus-score-edit-exit}).
 +@node Score Decays
 +@section Score Decays
 +@cindex score decays
 +@cindex decays
  
 -@item C-c C-d
 -@kindex C-c C-d (Score)
 -@findex gnus-score-edit-insert-date
 -Insert the current date in numerical format
 -(@code{gnus-score-edit-insert-date}).  This is really the day number, if
 -you were wondering.
 +You may find that your scores have a tendency to grow without
 +bounds, especially if you're using adaptive scoring.  If scores get too
 +big, they lose all meaning---they simply max out and it's difficult to
 +use them in any sensible way.
  
 -@item C-c C-p
 -@kindex C-c C-p (Score)
 -@findex gnus-score-pretty-print
 -The adaptive score files are saved in an unformatted fashion.  If you
 -intend to read one of these files, you want to @dfn{pretty print} it
 -first.  This command (@code{gnus-score-pretty-print}) does that for
 -you.
 +@vindex gnus-decay-scores
 +@findex gnus-decay-score
 +@vindex gnus-decay-score-function
 +Gnus provides a mechanism for decaying scores to help with this problem.
 +When score files are loaded and @code{gnus-decay-scores} is
 +non-@code{nil}, Gnus will run the score files through the decaying
 +mechanism thereby lowering the scores of all non-permanent score rules.
 +If @code{gnus-decay-scores} is a regexp, only score files matching this
 +regexp are treated.  E.g. you may set it to @samp{\\.ADAPT\\'} if only
 +@emph{adaptive} score files should be decayed.  The decay itself if
 +performed by the @code{gnus-decay-score-function} function, which is
 +@code{gnus-decay-score} by default.  Here's the definition of that
 +function:
  
 -@end table
 +@lisp
 +(defun gnus-decay-score (score)
 +  "Decay SCORE according to `gnus-score-decay-constant'
 +and `gnus-score-decay-scale'."
 +  (let ((n (- score
 +              (* (if (< score 0) -1 1)
 +                 (min (abs score)
 +                      (max gnus-score-decay-constant
 +                           (* (abs score)
 +                              gnus-score-decay-scale)))))))
 +    (if (and (featurep 'xemacs)
 +             ;; XEmacs' floor can handle only the floating point
 +             ;; number below the half of the maximum integer.
 +             (> (abs n) (lsh -1 -2)))
 +        (string-to-number
 +         (car (split-string (number-to-string n) "\\.")))
 +      (floor n))))
 +@end lisp
  
 -Type @kbd{M-x gnus-score-mode} to use this mode.
 +@vindex gnus-score-decay-scale
 +@vindex gnus-score-decay-constant
 +@code{gnus-score-decay-constant} is 3 by default and
 +@code{gnus-score-decay-scale} is 0.05.  This should cause the following:
  
 -@vindex gnus-score-mode-hook
 -@code{gnus-score-menu-hook} is run in score mode buffers.
 +@enumerate
 +@item
 +Scores between -3 and 3 will be set to 0 when this function is called.
  
 -In the summary buffer you can use commands like @kbd{V f}, @kbd{V e} and
 -@kbd{V t} to begin editing score files.
 +@item
 +Scores with magnitudes between 3 and 60 will be shrunk by 3.
  
 +@item
 +Scores with magnitudes greater than 60 will be shrunk by 5% of the
 +score.
 +@end enumerate
  
 -@node Adaptive Scoring
 -@section Adaptive Scoring
 -@cindex adaptive scoring
 +If you don't like this decay function, write your own.  It is called
 +with the score to be decayed as its only parameter, and it should return
 +the new score, which should be an integer.
  
 -If all this scoring is getting you down, Gnus has a way of making it all
 -happen automatically---as if by magic.  Or rather, as if by artificial
 -stupidity, to be precise.
 +Gnus will try to decay scores once a day.  If you haven't run Gnus for
 +four days, Gnus will decay the scores four times, for instance.
  
 -@vindex gnus-use-adaptive-scoring
 -When you read an article, or mark an article as read, or kill an
 -article, you leave marks behind.  On exit from the group, Gnus can sniff
 -these marks and add score elements depending on what marks it finds.
 -You turn on this ability by setting @code{gnus-use-adaptive-scoring} to
 -@code{t} or @code{(line)}.  If you want score adaptively on separate
 -words appearing in the subjects, you should set this variable to
 -@code{(word)}.  If you want to use both adaptive methods, set this
 -variable to @code{(word line)}.
 +@node Searching
 +@chapter Searching
 +@cindex searching
  
 -@vindex gnus-default-adaptive-score-alist
 -To give you complete control over the scoring process, you can customize
 -the @code{gnus-default-adaptive-score-alist} variable.  For instance, it
 -might look something like this:
 +FIXME: Add a brief overview of Gnus search capabilities.  A brief
 +comparison of nnir, nnmairix, contrib/gnus-namazu would be nice
 +as well.
  
 -@lisp
 -(setq gnus-default-adaptive-score-alist
 -  '((gnus-unread-mark)
 -    (gnus-ticked-mark (from 4))
 -    (gnus-dormant-mark (from 5))
 -    (gnus-del-mark (from -4) (subject -1))
 -    (gnus-read-mark (from 4) (subject 2))
 -    (gnus-expirable-mark (from -1) (subject -1))
 -    (gnus-killed-mark (from -1) (subject -3))
 -    (gnus-kill-file-mark)
 -    (gnus-ancient-mark)
 -    (gnus-low-score-mark)
 -    (gnus-catchup-mark (from -1) (subject -1))))
 -@end lisp
 +This chapter describes tools for searching groups and servers for
 +articles matching a query and then retrieving those articles. Gnus
 +provides a simpler mechanism for searching through articles in a summary buffer 
 +to find those matching a pattern. @xref{Searching for Articles}. 
  
 -As you see, each element in this alist has a mark as a key (either a
 -variable name or a ``real'' mark---a character).  Following this key is
 -a arbitrary number of header/score pairs.  If there are no header/score
 -pairs following the key, no adaptive scoring will be done on articles
 -that have that key as the article mark.  For instance, articles with
 -@code{gnus-unread-mark} in the example above will not get adaptive score
 -entries.
 +@menu
 +* nnir::                     Searching with various engines.
 +* nnmairix::                 Searching with Mairix.
 +@end menu
  
 -Each article can have only one mark, so just a single of these rules
 -will be applied to each article.
 +@node nnir
 +@section nnir
 +@cindex nnir
  
 -To take @code{gnus-del-mark} as an example---this alist says that all
 -articles that have that mark (i.e., are marked with @samp{e}) will have a
 -score entry added to lower based on the @code{From} header by -4, and
 -lowered by @code{Subject} by -1.  Change this to fit your prejudices.
 +This section describes how to use @code{nnir} to search for articles
 +within gnus.
  
 -If you have marked 10 articles with the same subject with
 -@code{gnus-del-mark}, the rule for that mark will be applied ten times.
 -That means that that subject will get a score of ten times -1, which
 -should be, unless I'm much mistaken, -10.
 +@menu
 +* What is nnir?::               What does @code{nnir} do?
 +* Basic Usage::                 How to perform simple searches.
 +* Setting up nnir::             How to set up @code{nnir}.
 +@end menu
  
 -If you have auto-expirable (mail) groups (@pxref{Expiring Mail}), all
 -the read articles will be marked with the @samp{E} mark.  This'll
 -probably make adaptive scoring slightly impossible, so auto-expiring and
 -adaptive scoring doesn't really mix very well.
 +@node What is nnir?
 +@subsection What is nnir?
  
 -The headers you can score on are @code{from}, @code{subject},
 -@code{message-id}, @code{references}, @code{xref}, @code{lines},
 -@code{chars} and @code{date}.  In addition, you can score on
 -@code{followup}, which will create an adaptive score entry that matches
 -on the @code{References} header using the @code{Message-ID} of the
 -current article, thereby matching the following thread.
 +@code{nnir} is a Gnus interface to a number of tools for searching
 +through mail and news repositories. Different backends (like
 +@code{nnimap} and @code{nntp}) work with different tools (called
 +@dfn{engines} in @code{nnir} lingo), but all use the same basic search
 +interface.
  
 -If you use this scheme, you should set the score file atom @code{mark}
 -to something small---like -300, perhaps, to avoid having small random
 -changes result in articles getting marked as read.
 +The @code{nnimap} and @code{gmane} search engines should work with no
 +configuration. Other engines require a local index that needs to be
 +created and maintained outside of Gnus. 
 +
 +
 +@node Basic Usage
 +@subsection Basic Usage
 +
 +In the group buffer typing @kbd{G G} will search the group on the
 +current line by calling @code{gnus-group-make-nnir-group}.  This prompts
 +for a query string, creates an ephemeral @code{nnir} group containing
 +the articles that match this query, and takes you to a summary buffer
 +showing these articles. Articles may then be read, moved and deleted
 +using the usual commands.
 +
 +The @code{nnir} group made in this way is an @code{ephemeral} group, and
 +some changes are not permanent: aside from reading, moving, and
 +deleting, you can't act on the original article. But there is an
 +alternative: you can @emph{warp} to the original group for the article
 +on the current line with @kbd{A W}, aka
 +@code{gnus-warp-to-article}. Even better, the function
 +@code{gnus-summary-refer-thread}, bound by default in summary buffers to
 +@kbd{A T}, will first warp to the original group before it works its
 +magic and includes all the articles in the thread. From here you can
 +read, move and delete articles, but also copy them, alter article marks,
 +whatever. Go nuts.
 +
 +You say you want to search more than just the group on the current line?
 +No problem: just process-mark the groups you want to search. You want
 +even more? Calling for an nnir search with the cursor on a topic heading
 +will search all the groups under that heading.
 +
 +Still not enough? OK, in the server buffer
 +@code{gnus-group-make-nnir-group} (now bound to @kbd{G}) will search all
 +groups from the server on the current line. Too much? Want to ignore
 +certain groups when searching, like spam groups? Just customize
 +@code{nnir-ignored-newsgroups}.
 +
 +One more thing: individual search engines may have special search
 +features. You can access these special features by giving a prefix-arg
 +to @code{gnus-group-make-nnir-group}. If you are searching multiple
 +groups with different search engines you will be prompted for the
 +special search features for each engine separately. 
 +
 +
 +@node Setting up nnir
 +@subsection Setting up nnir
 +
 +To set up nnir you may need to do some prep work. Firstly, you may need
 +to configure the search engines you plan to use. Some of them, like
 +@code{imap} and @code{gmane}, need no special configuration. Others,
 +like @code{namazu} and @code{swish}, require configuration as described
 +below. Secondly, you need to associate a search engine with a server or
 +a backend.
 +
 +If you just want to use the @code{imap} engine to search @code{nnimap}
 +servers, and the @code{gmane} engine to search @code{gmane} then you
 +don't have to do anything. But you might want to read the details of the
 +query language anyway.
  
 -After using adaptive scoring for a week or so, Gnus should start to
 -become properly trained and enhance the authors you like best, and kill
 -the authors you like least, without you having to say so explicitly.
 +@menu
 +* Associating Engines::                 How to associate engines.
 +* The imap Engine::                     Imap configuration and usage.
 +* The gmane Engine::                    Gmane configuration and usage.
 +* The swish++ Engine::                  Swish++ configuration and usage.
 +* The swish-e Engine::                  Swish-e configuration and usage.
 +* The namazu Engine::                   Namazu configuration and usage.
 +* The hyrex Engine::                    Hyrex configuration and usage.
 +* Customizations::                      User customizable settings.
 +@end menu
  
 -You can control what groups the adaptive scoring is to be performed on
 -by using the score files (@pxref{Score File Format}).  This will also
 -let you use different rules in different groups.
 +@node Associating Engines
 +@subsubsection Associating Engines
  
 -@vindex gnus-adaptive-file-suffix
 -The adaptive score entries will be put into a file where the name is the
 -group name with @code{gnus-adaptive-file-suffix} appended.  The default
 -is @file{ADAPT}.
  
 -@vindex gnus-adaptive-pretty-print
 -Adaptive score files can get huge and are not meant to be edited by
 -human hands.  If @code{gnus-adaptive-pretty-print} is @code{nil} (the
 -deafult) those files will not be written in a human readable way.
 +When searching a group, @code{nnir} needs to know which search engine to
 +use. You can configure a given server to use a particular engine by
 +setting the server variable @code{nnir-search-engine} to the engine
 +name. For example to use the @code{namazu} engine to search the server
 +named @code{home} you can use
  
 -@vindex gnus-score-exact-adapt-limit
 -When doing adaptive scoring, substring or fuzzy matching would probably
 -give you the best results in most cases.  However, if the header one
 -matches is short, the possibility for false positives is great, so if
 -the length of the match is less than
 -@code{gnus-score-exact-adapt-limit}, exact matching will be used.  If
 -this variable is @code{nil}, exact matching will always be used to avoid
 -this problem.
 +@lisp
 +(setq gnus-secondary-select-methods
 +      '((nnml "home" 
 +         (nnimap-address "localhost")
 +         (nnir-search-engine namazu))))
 +@end lisp
  
 -@vindex gnus-default-adaptive-word-score-alist
 -As mentioned above, you can adapt either on individual words or entire
 -headers.  If you adapt on words, the
 -@code{gnus-default-adaptive-word-score-alist} variable says what score
 -each instance of a word should add given a mark.
 +Alternatively you might want to use a particular engine for all servers
 +with a given backend. For example, you might want to use the @code{imap}
 +engine for all servers using the @code{nnimap} backend. In this case you
 +can customize the variable @code{nnir-method-default-engines}. This is
 +an alist of pairs of the form @code{(backend . engine)}. By default this
 +variable is set to use the @code{imap} engine for all servers using the
 +@code{nnimap} backend, and the @code{gmane} backend for @code{nntp}
 +servers. (Don't worry, the @code{gmane} search engine won't actually try
 +to search non-gmane @code{nntp} servers.) But if you wanted to use
 +@code{namazu} for all your servers with an @code{nnimap} backend you
 +could change this to
  
  @lisp
 -(setq gnus-default-adaptive-word-score-alist
 -      `((,gnus-read-mark . 30)
 -        (,gnus-catchup-mark . -10)
 -        (,gnus-killed-mark . -20)
 -        (,gnus-del-mark . -15)))
 +'((nnimap . namazu)
 +  (nntp . gmane))
  @end lisp
  
 -This is the default value.  If you have adaption on words enabled, every
 -word that appears in subjects of articles marked with
 -@code{gnus-read-mark} will result in a score rule that increase the
 -score with 30 points.
 +@node The imap Engine
 +@subsubsection The imap Engine
  
 -@vindex gnus-default-ignored-adaptive-words
 -@vindex gnus-ignored-adaptive-words
 -Words that appear in the @code{gnus-default-ignored-adaptive-words} list
 -will be ignored.  If you wish to add more words to be ignored, use the
 -@code{gnus-ignored-adaptive-words} list instead.
 +The @code{imap} engine requires no configuration. 
  
 -@vindex gnus-adaptive-word-length-limit
 -Some may feel that short words shouldn't count when doing adaptive
 -scoring.  If so, you may set @code{gnus-adaptive-word-length-limit} to
 -an integer.  Words shorter than this number will be ignored.  This
 -variable defaults to @code{nil}.
 +Queries using the @code{imap} engine follow a simple query language. 
 +The search is always case-insensitive and supports the following
 +features (inspired by the Google search input language):
  
 -@vindex gnus-adaptive-word-syntax-table
 -When the scoring is done, @code{gnus-adaptive-word-syntax-table} is the
 -syntax table in effect.  It is similar to the standard syntax table, but
 -it considers numbers to be non-word-constituent characters.
 +@table @samp
  
 -@vindex gnus-adaptive-word-minimum
 -If @code{gnus-adaptive-word-minimum} is set to a number, the adaptive
 -word scoring process will never bring down the score of an article to
 -below this number.  The default is @code{nil}.
 +@item Boolean query operators
 +AND, OR, and NOT are supported, and parentheses can be used to control
 +operator precedence, e.g. (emacs OR xemacs) AND linux. Note that
 +operators must be written with all capital letters to be
 +recognised. Also preceding a term with a - sign is equivalent to NOT
 +term.
  
 -@vindex gnus-adaptive-word-no-group-words
 -If @code{gnus-adaptive-word-no-group-words} is set to @code{t}, gnus
 -won't adaptively word score any of the words in the group name.  Useful
 -for groups like @samp{comp.editors.emacs}, where most of the subject
 -lines contain the word @samp{emacs}.
 +@item Automatic AND queries 
 +If you specify multiple words then they will be treated as an AND
 +expression intended to match all components.
 +
 +@item Phrase searches
 +If you wrap your query in double-quotes then it will be treated as a
 +literal string.
 +
 +@end table
 +
 +By default the whole message will be searched. The query can be limited
 +to a specific part of a message by using a prefix-arg. After inputting
 +the query this will prompt (with completion) for a message part.
 +Choices include ``Whole message'', ``Subject'', ``From'', and
 +``To''. Any unrecognized input is interpreted as a header name. For
 +example, typing @kbd{Message-ID} in response to this prompt will limit
 +the query to the Message-ID header.
 +
 +Finally selecting ``Imap'' will interpret the query as a raw
 +@acronym{IMAP} search query. The format of such queries can be found in
 +RFC3501.
 +
 +If you don't like the default of searching whole messages you can
 +customize @code{nnir-imap-default-search-key}. For example to use
 +@acronym{IMAP} queries by default
 +
 +@lisp
 +(setq nnir-imap-default-search-key "Imap")
 +@end lisp
  
 -After using this scheme for a while, it might be nice to write a
 -@code{gnus-psychoanalyze-user} command to go through the rules and see
 -what words you like and what words you don't like.  Or perhaps not.
 +@node The gmane Engine
 +@subsubsection The gmane Engine
  
 -Note that the adaptive word scoring thing is highly experimental and is
 -likely to change in the future.  Initial impressions seem to indicate
 -that it's totally useless as it stands.  Some more work (involving more
 -rigorous statistical methods) will have to be done to make this useful.
 +The @code{gmane} engine requires no configuration. 
  
 +Gmane queries follow a simple query language:
  
 -@node Home Score File
 -@section Home Score File
 +@table @samp
 +@item Boolean query operators
 +AND, OR, NOT (or AND NOT), and XOR are supported, and brackets can be
 +used to control operator precedence, e.g. (emacs OR xemacs) AND linux.
 +Note that operators must be written with all capital letters to be
 +recognised.
  
 -The score file where new score file entries will go is called the
 -@dfn{home score file}.  This is normally (and by default) the score file
 -for the group itself.  For instance, the home score file for
 -@samp{gnu.emacs.gnus} is @file{gnu.emacs.gnus.SCORE}.
 +@item Required and excluded terms
 ++ and - can be used to require or exclude terms, e.g. football -american
  
 -However, this may not be what you want.  It is often convenient to share
 -a common home score file among many groups---all @samp{emacs} groups
 -could perhaps use the same home score file.
 +@item Unicode handling 
 +The search engine converts all text to utf-8, so searching should work
 +in any language.
  
 -@vindex gnus-home-score-file
 -The variable that controls this is @code{gnus-home-score-file}.  It can
 -be:
 +@item Stopwords 
 +Common English words (like 'the' and 'a') are ignored by default. You
 +can override this by prefixing such words with a + (e.g. +the) or
 +enclosing the word in quotes (e.g. "the").
  
 -@enumerate
 -@item
 -A string.  Then this file will be used as the home score file for all
 -groups.
 +@end table
  
 -@item
 -A function.  The result of this function will be used as the home score
 -file.  The function will be called with the name of the group as the
 -parameter.
 +The query can be limited to articles by a specific author using a
 +prefix-arg. After inputting the query this will prompt for an author
 +name (or part of a name) to match.
  
 -@item
 -A list.  The elements in this list can be:
 +@node The swish++ Engine
 +@subsubsection The swish++ Engine
  
 -@enumerate
 -@item
 -@code{(@var{regexp} @var{file-name})}.  If the @var{regexp} matches the
 -group name, the @var{file-name} will be used as the home score file.
 +FIXEM: Say something more here.
  
 -@item
 -A function.  If the function returns non-@code{nil}, the result will
 -be used as the home score file.  The function will be called with the
 -name of the group as the parameter.
 +Documentation for swish++ may be found at the swish++ sourceforge page:
 +@uref{http://swishplusplus.sourceforge.net}
  
 -@item
 -A string.  Use the string as the home score file.
 -@end enumerate
 +@table @code
  
 -The list will be traversed from the beginning towards the end looking
 -for matches.
 +@item nnir-swish++-program
 +The name of the swish++ executable. Defaults to @code{search}
  
 -@end enumerate
 +@item nnir-swish++-additional-switches
 +A list of strings to be given as additional arguments to
 +swish++. @code{nil} by default.
  
 -So, if you want to use just a single score file, you could say:
 +@item nnir-swish++-remove-prefix
 +The prefix to remove from each file name returned by swish++ in order
 +to get a group name. By default this is @code{$HOME/Mail}.
  
 -@lisp
 -(setq gnus-home-score-file
 -      "my-total-score-file.SCORE")
 -@end lisp
 +@end table
  
 -If you want to use @file{gnu.SCORE} for all @samp{gnu} groups and
 -@file{rec.SCORE} for all @samp{rec} groups (and so on), you can say:
 +@node The swish-e Engine
 +@subsubsection The swish-e Engine
  
 -@findex gnus-hierarchial-home-score-file
 -@lisp
 -(setq gnus-home-score-file
 -      'gnus-hierarchial-home-score-file)
 -@end lisp
 +FIXEM: Say something more here.
  
 -This is a ready-made function provided for your convenience.
 -Other functions include
 +Documentation for swish-e may be found at the swish-e homepage
 +@uref{http://swish-e.org}
  
  @table @code
 -@item gnus-current-home-score-file
 -@findex gnus-current-home-score-file
 -Return the ``current'' regular score file.  This will make scoring
 -commands add entry to the ``innermost'' matching score file.
 +
 +@item nnir-swish-e-program
 +The name of the swish-e search program. Defaults to @code{swish-e}.
 +
 +@item nnir-swish-e-additional-switches
 +A list of strings to be given as additional arguments to
 +swish-e. @code{nil} by default.
 +
 +@item nnir-swish-e-remove-prefix
 +The prefix to remove from each file name returned by swish-e in order
 +to get a group name. By default this is @code{$HOME/Mail}.
  
  @end table
  
 -If you want to have one score file for the @samp{emacs} groups and
 -another for the @samp{comp} groups, while letting all other groups use
 -their own home score files:
 +@node The namazu Engine
 +@subsubsection The namazu Engine
  
 -@lisp
 -(setq gnus-home-score-file
 -      ;; @r{All groups that match the regexp @code{"\\.emacs"}}
 -      '(("\\.emacs" "emacs.SCORE")
 -        ;; @r{All the comp groups in one score file}
 -        ("^comp" "comp.SCORE")))
 -@end lisp
 +Using the namazu engine requires creating and maintaining index files.
 +One directory should contain all the index files, and nnir must be told
 +where to find them by setting the @code{nnir-namazu-index-directory}
 +variable.  
  
 -@vindex gnus-home-adapt-file
 -@code{gnus-home-adapt-file} works exactly the same way as
 -@code{gnus-home-score-file}, but says what the home adaptive score file
 -is instead.  All new adaptive file entries will go into the file
 -specified by this variable, and the same syntax is allowed.
 +To work correctly the @code{nnir-namazu-remove-prefix} variable must
 +also be correct. This is the prefix to remove from each file name
 +returned by Namazu in order to get a proper group name (albeit with `/'
 +instead of `.').
  
 -In addition to using @code{gnus-home-score-file} and
 -@code{gnus-home-adapt-file}, you can also use group parameters
 -(@pxref{Group Parameters}) and topic parameters (@pxref{Topic
 -Parameters}) to achieve much the same.  Group and topic parameters take
 -precedence over this variable.
 +For example, suppose that Namazu returns file names such as
 +@samp{/home/john/Mail/mail/misc/42}.  For this example, use the
 +following setting: @code{(setq nnir-namazu-remove-prefix
 +"/home/john/Mail/")} Note the trailing slash.  Removing this prefix from
 +the directory gives @samp{mail/misc/42}.  @code{nnir} knows to remove
 +the @samp{/42} and to replace @samp{/} with @samp{.} to arrive at the
 +correct group name @samp{mail.misc}.
  
 +Extra switches may be passed to the namazu search command by setting the
 +variable @code{nnir-namazu-additional-switches}.  It is particularly
 +important not to pass any any switches to namazu that will change the
 +output format.  Good switches to use include `--sort', `--ascending',
 +`--early' and `--late'.  Refer to the Namazu documentation for further
 +information on valid switches.
  
 -@node Followups To Yourself
 -@section Followups To Yourself
 +Mail must first be indexed  with the `mknmz' program.  Read the documentation
 +for namazu to create a configuration file. Here is an example:
  
 -Gnus offers two commands for picking out the @code{Message-ID} header in
 -the current buffer.  Gnus will then add a score rule that scores using
 -this @code{Message-ID} on the @code{References} header of other
 -articles.  This will, in effect, increase the score of all articles that
 -respond to the article in the current buffer.  Quite useful if you want
 -to easily note when people answer what you've said.
 +@cartouche
 +@example
 + package conf;  # Don't remove this line!
  
 -@table @code
 + # Paths which will not be indexed. Don't use `^' or `$' anchors.
 + $EXCLUDE_PATH = "spam|sent";
  
 -@item gnus-score-followup-article
 -@findex gnus-score-followup-article
 -This will add a score to articles that directly follow up your own
 -article.
 + # Header fields which should be searchable. case-insensitive
 + $REMAIN_HEADER = "from|date|message-id|subject";
  
 -@item gnus-score-followup-thread
 -@findex gnus-score-followup-thread
 -This will add a score to all articles that appear in a thread ``below''
 -your own article.
 -@end table
 + # Searchable fields. case-insensitive
 + $SEARCH_FIELD = "from|date|message-id|subject";
  
 -@vindex message-sent-hook
 -These two functions are both primarily meant to be used in hooks like
 -@code{message-sent-hook}, like this:
 -@lisp
 -(add-hook 'message-sent-hook 'gnus-score-followup-thread)
 -@end lisp
 + # The max length of a word.
 + $WORD_LENG_MAX = 128;
  
 + # The max length of a field.
 + $MAX_FIELD_LENGTH = 256;
 +@end example
 +@end cartouche
  
 -If you look closely at your own @code{Message-ID}, you'll notice that
 -the first two or three characters are always the same.  Here's two of
 -mine:
 +For this example, mail is stored in the directories @samp{~/Mail/mail/},
 +@samp{~/Mail/lists/} and @samp{~/Mail/archive/}, so to index them go to
 +the index directory set in @code{nnir-namazu-index-directory} and issue
 +the following command:
  
  @example
 -<x6u3u47icf.fsf@@eyesore.no>
 -<x6sp9o7ibw.fsf@@eyesore.no>
 +mknmz --mailnews ~/Mail/archive/ ~/Mail/mail/ ~/Mail/lists/
  @end example
  
 -So ``my'' ident on this machine is @samp{x6}.  This can be
 -exploited---the following rule will raise the score on all followups to
 -myself:
 +For maximum searching efficiency you might want to have a cron job run
 +this command periodically, say every four hours.
  
 -@lisp
 -("references"
 - ("<x6[0-9a-z]+\\.fsf\\(_-_\\)?@@.*eyesore\\.no>"
 -  1000 nil r))
 -@end lisp
 +@node The hyrex Engine
 +@subsubsection The hyrex Engine
 +This engine is obsolete.
  
 -Whether it's the first two or first three characters that are ``yours''
 -is system-dependent.
 +@node Customizations
 +@subsubsection Custimozations
  
 +@table @code
  
 -@node Scoring On Other Headers
 -@section Scoring On Other Headers
 -@cindex scoring on other headers
 +@item nnir-method-default-engines
 +Alist of server backend - search engine pairs. The default associations
 +are
 +@example
 +(nnimap . imap)
 +(nntp . gmane)
 +@end example
  
 -Gnus is quite fast when scoring the ``traditional''
 -headers---@samp{From}, @samp{Subject} and so on.  However, scoring
 -other headers requires writing a @code{head} scoring rule, which means
 -that Gnus has to request every single article from the back end to find
 -matches.  This takes a long time in big groups.
 +@item nnir-ignored-newsgroups
 +A regexp to match newsgroups in the active file that should be skipped
 +when searching all groups on a server.
  
 -@vindex gnus-inhibit-slow-scoring
 -You can inhibit this slow scoring on headers or body by setting the
 -variable @code{gnus-inhibit-slow-scoring}.  If
 -@code{gnus-inhibit-slow-scoring} is regexp, slow scoring is inhibited if
 -the group matches the regexp.  If it is t, slow scoring on it is
 -inhibited for all groups.
 +@item nnir-summary-line-format
 +The format specification to be used for lines in an nnir summary buffer.
 +All the items from `gnus-summary-line-format' are available, along with
 +three items unique to nnir summary buffers:
  
 -Now, there's not much you can do about the slowness for news groups, but for
 -mail groups, you have greater control.  In @ref{To From Newsgroups},
 -it's explained in greater detail what this mechanism does, but here's
 -a cookbook example for @code{nnml} on how to allow scoring on the
 -@samp{To} and @samp{Cc} headers.
 +@example
 +%Z    Search retrieval score value (integer)
 +%G    Article original full group name (string)
 +%g    Article original short group name (string)
 +@end example
  
 -Put the following in your @file{~/.gnus.el} file.
 +If nil (the default) this will use @code{gnus-summary-line-format}.
  
 -@lisp
 -(setq gnus-extra-headers '(To Cc Newsgroups Keywords)
 -      nnmail-extra-headers gnus-extra-headers)
 -@end lisp
 +@item nnir-retrieve-headers-override-function
 +If non-nil, a function that retrieves article headers rather than using
 +the gnus built-in function.  This function takes an article list and
 +group as arguments and populates the `nntp-server-buffer' with the
 +retrieved headers. It should then return either 'nov or 'headers
 +indicating the retrieved header format. Failure to retrieve headers
 +should return @code{nil}
  
 -Restart Gnus and rebuild your @code{nnml} overview files with the
 -@kbd{M-x nnml-generate-nov-databases} command.  This will take a long
 -time if you have much mail.
 +If this variable is nil, or if the provided function returns nil for a
 +search result, @code{gnus-retrieve-headers} will be called instead."
  
 -Now you can score on @samp{To} and @samp{Cc} as ``extra headers'' like
 -so: @kbd{I e s p To RET <your name> RET}.
  
 -See?  Simple.
 +@end table
  
  
 -@node Scoring Tips
 -@section Scoring Tips
 -@cindex scoring tips
 +@node nnmairix
 +@section nnmairix
  
 -@table @dfn
 +@cindex mairix
 +@cindex nnmairix
 +This paragraph describes how to set up mairix and the back end
 +@code{nnmairix} for indexing and searching your mail from within
 +Gnus.  Additionally, you can create permanent ``smart'' groups which are
 +bound to mairix searches and are automatically updated.
  
 -@item Crossposts
 -@cindex crossposts
 -@cindex scoring crossposts
 -If you want to lower the score of crossposts, the line to match on is
 -the @code{Xref} header.
 -@lisp
 -("xref" (" talk.politics.misc:" -1000))
 -@end lisp
 +@menu
 +* About mairix::                About the mairix mail search engine
 +* nnmairix requirements::       What you will need for using nnmairix
 +* What nnmairix does::          What does nnmairix actually do?
 +* Setting up mairix::           Set up your mairix installation
 +* Configuring nnmairix::        Set up the nnmairix back end
 +* nnmairix keyboard shortcuts:: List of available keyboard shortcuts
 +* Propagating marks::           How to propagate marks from nnmairix groups
 +* nnmairix tips and tricks::    Some tips, tricks and examples
 +* nnmairix caveats::            Some more stuff you might want to know
 +@end menu
 +
 +@c FIXME: The markup in this section might need improvement.
 +@c E.g. adding @samp, @var, @file, @command, etc.
 +@c Cf. (info "(texinfo)Indicating")
 +
 +@node About mairix
 +@subsection About mairix
 +
 +Mairix is a tool for indexing and searching words in locally stored
 +mail.  It was written by Richard Curnow and is licensed under the
 +GPL.  Mairix comes with most popular GNU/Linux distributions, but it also
 +runs under Windows (with cygwin), Mac OS X and Solaris.  The homepage can
 +be found at
 +@uref{http://www.rpcurnow.force9.co.uk/mairix/index.html}
 +
 +Though mairix might not be as flexible as other search tools like
 +swish++ or namazu, which you can use via the @code{nnir} back end, it
 +has the prime advantage of being incredibly fast.  On current systems, it
 +can easily search through headers and message bodies of thousands and
 +thousands of mails in well under a second.  Building the database
 +necessary for searching might take a minute or two, but only has to be
 +done once fully.  Afterwards, the updates are done incrementally and
 +therefore are really fast, too.  Additionally, mairix is very easy to set
 +up.
 +
 +For maximum speed though, mairix should be used with mails stored in
 +@code{Maildir} or @code{MH} format (this includes the @code{nnml} back
 +end), although it also works with mbox.  Mairix presents the search
 +results by populating a @emph{virtual} maildir/MH folder with symlinks
 +which point to the ``real'' message files (if mbox is used, copies are
 +made).  Since mairix already presents search results in such a virtual
 +mail folder, it is very well suited for using it as an external program
 +for creating @emph{smart} mail folders, which represent certain mail
 +searches.
 +
 +@node nnmairix requirements
 +@subsection nnmairix requirements
 +
 +Mairix searches local mail---that means, mairix absolutely must have
 +direct access to your mail folders.  If your mail resides on another
 +server (e.g. an @acronym{IMAP} server) and you happen to have shell
 +access, @code{nnmairix} supports running mairix remotely, e.g. via ssh.
 +
 +Additionally, @code{nnmairix} only supports the following Gnus back
 +ends: @code{nnml}, @code{nnmaildir}, and @code{nnimap}.  You must use
 +one of these back ends for using @code{nnmairix}.  Other back ends, like
 +@code{nnmbox}, @code{nnfolder} or @code{nnmh}, won't work.
 +
 +If you absolutely must use mbox and still want to use @code{nnmairix},
 +you can set up a local @acronym{IMAP} server, which you then access via
 +@code{nnimap}.  This is a rather massive setup for accessing some mbox
 +files, so just change to MH or Maildir already...  However, if you're
 +really, really passionate about using mbox, you might want to look into
 +the package @file{mairix.el}, which comes with Emacs 23.
 +
 +@node What nnmairix does
 +@subsection What nnmairix does
 +
 +The back end @code{nnmairix} enables you to call mairix from within Gnus,
 +either to query mairix with a search term or to update the
 +database.  While visiting a message in the summary buffer, you can use
 +several pre-defined shortcuts for calling mairix, e.g. to quickly
 +search for all mails from the sender of the current message or to
 +display the whole thread associated with the message, even if the
 +mails are in different folders.
  
 -@item Multiple crossposts
 -If you want to lower the score of articles that have been crossposted to
 -more than, say, 3 groups:
 -@lisp
 -("xref"
 -  ("[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+ +[^:\n]+:[0-9]+"
 -   -1000 nil r))
 -@end lisp
 +Additionally, you can create permanent @code{nnmairix} groups which are bound
 +to certain mairix searches.  This way, you can easily create a group
 +containing mails from a certain sender, with a certain subject line or
 +even for one specific thread based on the Message-ID.  If you check for
 +new mail in these folders (e.g. by pressing @kbd{g} or @kbd{M-g}), they
 +automatically update themselves by calling mairix.
  
 -@item Matching on the body
 -This is generally not a very good idea---it takes a very long time.
 -Gnus actually has to fetch each individual article from the server.  But
 -you might want to anyway, I guess.  Even though there are three match
 -keys (@code{Head}, @code{Body} and @code{All}), you should choose one
 -and stick with it in each score file.  If you use any two, each article
 -will be fetched @emph{twice}.  If you want to match a bit on the
 -@code{Head} and a bit on the @code{Body}, just use @code{All} for all
 -the matches.
 +You might ask why you need @code{nnmairix} at all, since mairix already
 +creates the group, populates it with links to the mails so that you can
 +then access it with Gnus, right?  Well, this @emph{might} work, but often
 +does not---at least not without problems.  Most probably you will get
 +strange article counts, and sometimes you might see mails which Gnus
 +claims have already been canceled and are inaccessible.  This is due to
 +the fact that Gnus isn't really amused when things are happening behind
 +its back.  Another problem can be the mail back end itself, e.g. if you
 +use mairix with an @acronym{IMAP} server (I had Dovecot complaining
 +about corrupt index files when mairix changed the contents of the search
 +group).  Using @code{nnmairix} should circumvent these problems.
  
 -@item Marking as read
 -You will probably want to mark articles that have scores below a certain
 -number as read.  This is most easily achieved by putting the following
 -in your @file{all.SCORE} file:
 -@lisp
 -((mark -100))
 -@end lisp
 -You may also consider doing something similar with @code{expunge}.
 +@code{nnmairix} is not really a mail back end---it's actually more like
 +a wrapper, sitting between a ``real'' mail back end where mairix stores
 +the searches and the Gnus front end.  You can choose between three
 +different mail back ends for the mairix folders: @code{nnml},
 +@code{nnmaildir} or @code{nnimap}.  @code{nnmairix} will call the mairix
 +binary so that the search results are stored in folders named
 +@code{zz_mairix-<NAME>-<NUMBER>} on this mail back end, but it will
 +present these folders in the Gnus front end only with @code{<NAME>}.
 +You can use an existing mail back end where you already store your mail,
 +but if you're uncomfortable with @code{nnmairix} creating new mail
 +groups alongside your other mail, you can also create e.g. a new
 +@code{nnmaildir} or @code{nnml} server exclusively for mairix, but then
 +make sure those servers do not accidentally receive your new mail
 +(@pxref{nnmairix caveats}).  A special case exists if you want to use
 +mairix remotely on an IMAP server with @code{nnimap}---here the mairix
 +folders and your other mail must be on the same @code{nnimap} back end.
  
 -@item Negated character classes
 -If you say stuff like @code{[^abcd]*}, you may get unexpected results.
 -That will match newlines, which might lead to, well, The Unknown.  Say
 -@code{[^abcd\n]*} instead.
 -@end table
 +@node Setting up mairix
 +@subsection Setting up mairix
  
 +First: create a backup of your mail folders (@pxref{nnmairix caveats}).
  
 -@node Reverse Scoring
 -@section Reverse Scoring
 -@cindex reverse scoring
 +Setting up mairix is easy: simply create a @file{.mairixrc} file with
 +(at least) the following entries:
  
 -If you want to keep just articles that have @samp{Sex with Emacs} in the
 -subject header, and expunge all other articles, you could put something
 -like this in your score file:
 +@example
 +# Your Maildir/MH base folder
 +base=~/Maildir
 +@end example
  
 -@lisp
 -(("subject"
 -  ("Sex with Emacs" 2))
 - (mark 1)
 - (expunge 1))
 -@end lisp
 +This is the base folder for your mails.  All the following directories
 +are relative to this base folder.  If you want to use @code{nnmairix}
 +with @code{nnimap}, this base directory has to point to the mail
 +directory where the @acronym{IMAP} server stores the mail folders!
  
 -So, you raise all articles that match @samp{Sex with Emacs} and mark the
 -rest as read, and expunge them to boot.
 +@example
 +maildir= ... your maildir folders which should be indexed ...
 +mh= ... your nnml/mh folders which should be indexed ...
 +mbox = ... your mbox files which should be indexed ...
 +@end example
  
 +This specifies all your mail folders and mbox files (relative to the
 +base directory!) you want to index with mairix.  Note that the
 +@code{nnml} back end saves mails in MH format, so you have to put those
 +directories in the @code{mh} line.  See the example at the end of this
 +section and mairixrc's man-page for further details.
  
 -@node Global Score Files
 -@section Global Score Files
 -@cindex global score files
 +@example
 +omit=zz_mairix-*
 +@end example
  
 -Sure, other newsreaders have ``global kill files''.  These are usually
 -nothing more than a single kill file that applies to all groups, stored
 -in the user's home directory.  Bah!  Puny, weak newsreaders!
 +@vindex nnmairix-group-prefix
 +This should make sure that you don't accidentally index the mairix
 +search results.  You can change the prefix of these folders with the
 +variable @code{nnmairix-group-prefix}.
  
 -What I'm talking about here are Global Score Files.  Score files from
 -all over the world, from users everywhere, uniting all nations in one
 -big, happy score file union!  Ange-score!  New and untested!
 +@example
 +mformat= ... 'maildir' or 'mh' ...
 +database= ... location of database file ...
 +@end example
  
 -@vindex gnus-global-score-files
 -All you have to do to use other people's score files is to set the
 -@code{gnus-global-score-files} variable.  One entry for each score file,
 -or each score file directory.  Gnus will decide by itself what score
 -files are applicable to which group.
 +The @code{format} setting specifies the output format for the mairix
 +search folder.  Set this to @code{mh} if you want to access search results
 +with @code{nnml}.  Otherwise choose @code{maildir}.
  
 -To use the score file
 -@file{/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE} and
 -all score files in the @file{/ftp@@ftp.some-where:/pub/score} directory,
 -say this:
 +To summarize, here is my shortened @file{.mairixrc} file as an example:
  
 -@lisp
 -(setq gnus-global-score-files
 -      '("/ftp@@ftp.gnus.org:/pub/larsi/ding/score/soc.motss.SCORE"
 -        "/ftp@@ftp.some-where:/pub/score/"))
 -@end lisp
 +@example
 +base=~/Maildir
 +maildir=.personal:.work:.logcheck:.sent
 +mh=../Mail/nnml/*...
 +mbox=../mboxmail/mailarchive_year*
 +mformat=maildir
 +omit=zz_mairix-*
 +database=~/.mairixdatabase
 +@end example
  
 -@findex gnus-score-search-global-directories
 -@noindent
 -Simple, eh?  Directory names must end with a @samp{/}.  These
 -directories are typically scanned only once during each Gnus session.
 -If you feel the need to manually re-scan the remote directories, you can
 -use the @code{gnus-score-search-global-directories} command.
 +In this case, the base directory is @file{~/Maildir}, where all my Maildir
 +folders are stored.  As you can see, the folders are separated by
 +colons.  If you wonder why every folder begins with a dot: this is
 +because I use Dovecot as @acronym{IMAP} server, which again uses
 +@code{Maildir++} folders.  For testing nnmairix, I also have some
 +@code{nnml} mail, which is saved in @file{~/Mail/nnml}.  Since this has
 +to be specified relative to the @code{base} directory, the @code{../Mail}
 +notation is needed.  Note that the line ends in @code{*...}, which means
 +to recursively scan all files under this directory.  Without the three
 +dots, the wildcard @code{*} will not work recursively.  I also have some
 +old mbox files with archived mail lying around in @file{~/mboxmail}.
 +The other lines should be obvious.
  
 -Note that, at present, using this option will slow down group entry
 -somewhat.  (That is---a lot.)
 +See the man page for @code{mairixrc} for details and further options,
 +especially regarding wildcard usage, which may be a little different
 +than you are used to.
  
 -If you want to start maintaining score files for other people to use,
 -just put your score file up for anonymous ftp and announce it to the
 -world.  Become a retro-moderator!  Participate in the retro-moderator
 -wars sure to ensue, where retro-moderators battle it out for the
 -sympathy of the people, luring them to use their score files on false
 -premises!  Yay!  The net is saved!
 +Now simply call @code{mairix} to create the index for the first time.
 +Note that this may take a few minutes, but every following index will do
 +the updates incrementally and hence is very fast.
  
 -Here are some tips for the would-be retro-moderator, off the top of my
 -head:
 +@node Configuring nnmairix
 +@subsection Configuring nnmairix
 +
 +In group mode, type @kbd{G b c}
 +(@code{nnmairix-create-server-and-default-group}).  This will ask you for all
 +necessary information and create a @code{nnmairix} server as a foreign
 +server.  You will have to specify the following:
  
  @itemize @bullet
  
  @item
 -Articles heavily crossposted are probably junk.
 -@item
 -To lower a single inappropriate article, lower by @code{Message-ID}.
 -@item
 -Particularly brilliant authors can be raised on a permanent basis.
 -@item
 -Authors that repeatedly post off-charter for the group can safely be
 -lowered out of existence.
 -@item
 -Set the @code{mark} and @code{expunge} atoms to obliterate the nastiest
 -articles completely.
 +The @strong{name} of the @code{nnmairix} server---choose whatever you
 +want.
  
  @item
 -Use expiring score entries to keep the size of the file down.  You
 -should probably have a long expiry period, though, as some sites keep
 -old articles for a long time.
 -@end itemize
 -
 -@dots{} I wonder whether other newsreaders will support global score files
 -in the future.  @emph{Snicker}.  Yup, any day now, newsreaders like Blue
 -Wave, xrn and 1stReader are bound to implement scoring.  Should we start
 -holding our breath yet?
 -
 -
 -@node Kill Files
 -@section Kill Files
 -@cindex kill files
 +The name of the @strong{back end server} where mairix should store its
 +searches.  This must be a full server name, like @code{nnml:mymail}.
 +Just hit @kbd{TAB} to see the available servers.  Currently, servers
 +which are accessed through @code{nnmaildir}, @code{nnimap} and
 +@code{nnml} are supported.  As explained above, for locally stored
 +mails, this can be an existing server where you store your mails.
 +However, you can also create e.g. a new @code{nnmaildir} or @code{nnml}
 +server exclusively for @code{nnmairix} in your secondary select methods
 +(@pxref{Finding the News}).  If you use a secondary @code{nnml} server
 +just for mairix, make sure that you explicitly set the server variable
 +@code{nnml-get-new-mail} to @code{nil}, or you might lose mail
 +(@pxref{nnmairix caveats}).  If you want to use mairix remotely on an
 +@acronym{IMAP} server, you have to choose the corresponding
 +@code{nnimap} server here.
  
 -Gnus still supports those pesky old kill files.  In fact, the kill file
 -entries can now be expiring, which is something I wrote before Daniel
 -Quinlan thought of doing score files, so I've left the code in there.
 +@item
 +@vindex nnmairix-mairix-search-options
 +The @strong{command} to call the mairix binary.  This will usually just
 +be @code{mairix}, but you can also choose something like @code{ssh
 +SERVER mairix} if you want to call mairix remotely, e.g. on your
 +@acronym{IMAP} server.  If you want to add some default options to
 +mairix, you could do this here, but better use the variable
 +@code{nnmairix-mairix-search-options} instead.
  
 -In short, kill processing is a lot slower (and I do mean @emph{a lot})
 -than score processing, so it might be a good idea to rewrite your kill
 -files into score files.
 +@item
 +The name of the @strong{default search group}.  This will be the group
 +where all temporary mairix searches are stored, i.e. all searches which
 +are not bound to permanent @code{nnmairix} groups.  Choose whatever you
 +like.
  
 -Anyway, a kill file is a normal @code{emacs-lisp} file.  You can put any
 -forms into this file, which means that you can use kill files as some
 -sort of primitive hook function to be run on group entry, even though
 -that isn't a very good idea.
 +@item
 +If the mail back end is @code{nnimap} or @code{nnmaildir}, you will be
 +asked if you work with @strong{Maildir++}, i.e. with hidden maildir
 +folders (=beginning with a dot).  For example, you have to answer
 +@samp{yes} here if you work with the Dovecot @acronym{IMAP}
 +server.  Otherwise, you should answer @samp{no} here.
  
 -Normal kill files look like this:
 +@end itemize
  
 -@lisp
 -(gnus-kill "From" "Lars Ingebrigtsen")
 -(gnus-kill "Subject" "ding")
 -(gnus-expunge "X")
 -@end lisp
 +@node nnmairix keyboard shortcuts
 +@subsection nnmairix keyboard shortcuts
  
 -This will mark every article written by me as read, and remove the
 -marked articles from the summary buffer.  Very useful, you'll agree.
 +In group mode:
  
 -Other programs use a totally different kill file syntax.  If Gnus
 -encounters what looks like a @code{rn} kill file, it will take a stab at
 -interpreting it.
 +@table @kbd
  
 -Two summary functions for editing a @sc{gnus} kill file:
 +@item G b c
 +@kindex G b c (Group)
 +@findex nnmairix-create-server-and-default-group
 +Creates @code{nnmairix} server and default search group for this server
 +(@code{nnmairix-create-server-and-default-group}).  You should have done
 +this by now (@pxref{Configuring nnmairix}).
  
 -@table @kbd
 +@item G b s
 +@kindex G b s (Group)
 +@findex nnmairix-search
 +Prompts for query which is then sent to the mairix binary.  Search
 +results are put into the default search group which is automatically
 +displayed (@code{nnmairix-search}).
  
 -@item M-k
 -@kindex M-k (Summary)
 -@findex gnus-summary-edit-local-kill
 -Edit this group's kill file (@code{gnus-summary-edit-local-kill}).
 +@item G b m
 +@kindex G b m (Group)
 +@findex nnmairix-widget-search
 +Allows you to create a mairix search or a permanent group more
 +comfortably using graphical widgets, similar to a customization
 +group.  Just try it to see how it works (@code{nnmairix-widget-search}).
  
 -@item M-K
 -@kindex M-K (Summary)
 -@findex gnus-summary-edit-global-kill
 -Edit the general kill file (@code{gnus-summary-edit-global-kill}).
 -@end table
 +@item G b i
 +@kindex G b i (Group)
 +@findex nnmairix-search-interactive
 +Another command for creating a mairix query more comfortably, but uses
 +only the minibuffer (@code{nnmairix-search-interactive}).
  
 -Two group mode functions for editing the kill files:
 +@item G b g
 +@kindex G b g (Group)
 +@findex nnmairix-create-search-group
 +Creates a permanent group which is associated with a search query
 +(@code{nnmairix-create-search-group}).  The @code{nnmairix} back end
 +automatically calls mairix when you update this group with @kbd{g} or
 +@kbd{M-g}.
  
 -@table @kbd
 +@item G b q
 +@kindex G b q (Group)
 +@findex nnmairix-group-change-query-this-group
 +Changes the search query for the @code{nnmairix} group under cursor
 +(@code{nnmairix-group-change-query-this-group}).
  
 -@item M-k
 -@kindex M-k (Group)
 -@findex gnus-group-edit-local-kill
 -Edit this group's kill file (@code{gnus-group-edit-local-kill}).
 +@item G b t
 +@kindex G b t (Group)
 +@findex nnmairix-group-toggle-threads-this-group
 +Toggles the 'threads' parameter for the @code{nnmairix} group under cursor,
 +i.e.  if you want see the whole threads of the found messages
 +(@code{nnmairix-group-toggle-threads-this-group}).
  
 -@item M-K
 -@kindex M-K (Group)
 -@findex gnus-group-edit-global-kill
 -Edit the general kill file (@code{gnus-group-edit-global-kill}).
 -@end table
 +@item G b u
 +@kindex G b u (Group)
 +@findex nnmairix-update-database
 +@vindex nnmairix-mairix-update-options
 +Calls mairix binary for updating the database
 +(@code{nnmairix-update-database}).  The default parameters are @code{-F}
 +and @code{-Q} for making this as fast as possible (see variable
 +@code{nnmairix-mairix-update-options} for defining these default
 +options).
  
 -Kill file variables:
 +@item G b r
 +@kindex G b r (Group)
 +@findex nnmairix-group-toggle-readmarks-this-group
 +Keep articles in this @code{nnmairix} group always read or unread, or leave the
 +marks unchanged (@code{nnmairix-group-toggle-readmarks-this-group}).
  
 -@table @code
 -@item gnus-kill-file-name
 -@vindex gnus-kill-file-name
 -A kill file for the group @samp{soc.motss} is normally called
 -@file{soc.motss.KILL}.  The suffix appended to the group name to get
 -this file name is detailed by the @code{gnus-kill-file-name} variable.
 -The ``global'' kill file (not in the score file sense of ``global'', of
 -course) is just called @file{KILL}.
 +@item G b d
 +@kindex G b d (Group)
 +@findex nnmairix-group-delete-recreate-this-group
 +Recreate @code{nnmairix} group on the ``real'' mail back end
 +(@code{nnmairix-group-delete-recreate-this-group}).  You can do this if
 +you always get wrong article counts with a @code{nnmairix} group.
  
 -@vindex gnus-kill-save-kill-file
 -@item gnus-kill-save-kill-file
 -If this variable is non-@code{nil}, Gnus will save the
 -kill file after processing, which is necessary if you use expiring
 -kills.
 +@item G b a
 +@kindex G b a (Group)
 +@findex nnmairix-group-toggle-allowfast-this-group
 +Toggles the @code{allow-fast} parameters for group under cursor
 +(@code{nnmairix-group-toggle-allowfast-this-group}).  The default
 +behavior of @code{nnmairix} is to do a mairix search every time you
 +update or enter the group.  With the @code{allow-fast} parameter set,
 +mairix will only be called when you explicitly update the group, but not
 +upon entering.  This makes entering the group faster, but it may also
 +lead to dangling symlinks if something changed between updating and
 +entering the group which is not yet in the mairix database.
  
 -@item gnus-apply-kill-hook
 -@vindex gnus-apply-kill-hook
 -@findex gnus-apply-kill-file-unless-scored
 -@findex gnus-apply-kill-file
 -A hook called to apply kill files to a group.  It is
 -@code{(gnus-apply-kill-file)} by default.  If you want to ignore the
 -kill file if you have a score file for the same group, you can set this
 -hook to @code{(gnus-apply-kill-file-unless-scored)}.  If you don't want
 -kill files to be processed, you should set this variable to @code{nil}.
 +@item G b p
 +@kindex G b p (Group)
 +@findex nnmairix-group-toggle-propmarks-this-group
 +Toggle marks propagation for this group
 +(@code{nnmairix-group-toggle-propmarks-this-group}).  (@pxref{Propagating
 +marks}).
  
 -@item gnus-kill-file-mode-hook
 -@vindex gnus-kill-file-mode-hook
 -A hook called in kill-file mode buffers.
 +@item G b o
 +@kindex G b o (Group)
 +@findex nnmairix-propagate-marks
 +Manually propagate marks (@code{nnmairix-propagate-marks}); needed only when
 +@code{nnmairix-propagate-marks-upon-close} is set to @code{nil}.
  
  @end table
  
 +In summary mode:
  
 -@node Converting Kill Files
 -@section Converting Kill Files
 -@cindex kill files
 -@cindex converting kill files
 +@table @kbd
  
 -If you have loads of old kill files, you may want to convert them into
 -score files.  If they are ``regular'', you can use
 -the @file{gnus-kill-to-score.el} package; if not, you'll have to do it
 -by hand.
 +@item $ m
 +@kindex $ m (Summary)
 +@findex nnmairix-widget-search-from-this-article
 +Allows you to create a mairix query or group based on the current
 +message using graphical widgets (same as @code{nnmairix-widget-search})
 +(@code{nnmairix-widget-search-from-this-article}).
  
 -The kill to score conversion package isn't included in Emacs by default.
 -You can fetch it from the contrib directory of the Gnus distribution or
 -from
 -@uref{http://heim.ifi.uio.no/~larsi/ding-various/gnus-kill-to-score.el}.
 +@item $ g
 +@kindex $ g (Summary)
 +@findex nnmairix-create-search-group-from-message
 +Interactively creates a new search group with query based on the current
 +message, but uses the minibuffer instead of graphical widgets
 +(@code{nnmairix-create-search-group-from-message}).
  
 -If your old kill files are very complex---if they contain more
 -non-@code{gnus-kill} forms than not, you'll have to convert them by
 -hand.  Or just let them be as they are.  Gnus will still use them as
 -before.
 +@item $ t
 +@kindex $ t (Summary)
 +@findex nnmairix-search-thread-this-article
 +Searches thread for the current article
 +(@code{nnmairix-search-thread-this-article}).  This is effectively a
 +shortcut for calling @code{nnmairix-search} with @samp{m:msgid} of the
 +current article and enabled threads.
  
 +@item $ f
 +@kindex $ f (Summary)
 +@findex nnmairix-search-from-this-article
 +Searches all messages from sender of the current article
 +(@code{nnmairix-search-from-this-article}).  This is a shortcut for
 +calling @code{nnmairix-search} with @samp{f:From}.
  
 -@node Advanced Scoring
 -@section Advanced Scoring
 +@item $ o
 +@kindex $ o (Summary)
 +@findex nnmairix-goto-original-article
 +(Only in @code{nnmairix} groups!) Tries determine the group this article
 +originally came from and displays the article in this group, so that
 +e.g. replying to this article the correct posting styles/group
 +parameters are applied (@code{nnmairix-goto-original-article}).  This
 +function will use the registry if available, but can also parse the
 +article file name as a fallback method.
  
 -Scoring on Subjects and From headers is nice enough, but what if you're
 -really interested in what a person has to say only when she's talking
 -about a particular subject?  Or what if you really don't want to
 -read what person A has to say when she's following up to person B, but
 -want to read what she says when she's following up to person C?
 +@item $ u
 +@kindex $ u (Summary)
 +@findex nnmairix-remove-tick-mark-original-article
 +Remove possibly existing tick mark from original article
 +(@code{nnmairix-remove-tick-mark-original-article}).  (@pxref{nnmairix
 +tips and tricks}).
  
 -By using advanced scoring rules you may create arbitrarily complex
 -scoring patterns.
 +@end table
  
 -@menu
 -* Advanced Scoring Syntax::     A definition.
 -* Advanced Scoring Examples::   What they look like.
 -* Advanced Scoring Tips::       Getting the most out of it.
 -@end menu
 +@node Propagating marks
 +@subsection Propagating marks
 +
 +First of: you really need a patched mairix binary for using the marks
 +propagation feature efficiently. Otherwise, you would have to update
 +the mairix database all the time. You can get the patch at
  
 +@uref{http://www.randomsample.de/mairix-maildir-patch.tar}
  
 -@node Advanced Scoring Syntax
 -@subsection Advanced Scoring Syntax
 +You need the mairix v0.21 source code for this patch; everything else
 +is explained in the accompanied readme file. If you don't want to use
 +marks propagation, you don't have to apply these patches, but they also
 +fix some annoyances regarding changing maildir flags, so it might still
 +be useful to you.
  
 -Ordinary scoring rules have a string as the first element in the rule.
 -Advanced scoring rules have a list as the first element.  The second
 -element is the score to be applied if the first element evaluated to a
 -non-@code{nil} value.
 +With the patched mairix binary, you can use @code{nnmairix} as an
 +alternative to mail splitting (@pxref{Fancy Mail Splitting}). For
 +example, instead of splitting all mails from @samp{david@@foobar.com}
 +into a group, you can simply create a search group with the query
 +@samp{f:david@@foobar.com}. This is actually what ``smart folders'' are
 +all about: simply put everything in one mail folder and dynamically
 +create searches instead of splitting. This is more flexible, since you
 +can dynamically change your folders any time you want to. This also
 +implies that you will usually read your mails in the @code{nnmairix}
 +groups instead of your ``real'' mail groups.
  
 -These lists may consist of three logical operators, one redirection
 -operator, and various match operators.
 +There is one problem, though: say you got a new mail from
 +@samp{david@@foobar.com}; it will now show up in two groups, the
 +``real'' group (your INBOX, for example) and in the @code{nnmairix}
 +search group (provided you have updated the mairix database). Now you
 +enter the @code{nnmairix} group and read the mail. The mail will be
 +marked as read, but only in the @code{nnmairix} group---in the ``real''
 +mail group it will be still shown as unread.
  
 -Logical operators:
 +You could now catch up the mail group (@pxref{Group Data}), but this is
 +tedious and error prone, since you may overlook mails you don't have
 +created @code{nnmairix} groups for. Of course, you could first use
 +@code{nnmairix-goto-original-article} (@pxref{nnmairix keyboard
 +shortcuts}) and then read the mail in the original group, but that's
 +even more cumbersome.
  
 -@table @code
 -@item &
 -@itemx and
 -This logical operator will evaluate each of its arguments until it finds
 -one that evaluates to @code{false}, and then it'll stop.  If all arguments
 -evaluate to @code{true} values, then this operator will return
 -@code{true}.
 +Clearly, the easiest way would be if marks could somehow be
 +automatically set for the original article. This is exactly what
 +@emph{marks propagation} is about.
  
 -@item |
 -@itemx or
 -This logical operator will evaluate each of its arguments until it finds
 -one that evaluates to @code{true}.  If no arguments are @code{true},
 -then this operator will return @code{false}.
 +Marks propagation is deactivated by default. You can activate it for a
 +certain @code{nnmairix} group with
 +@code{nnmairix-group-toggle-propmarks-this-group} (bound to @kbd{G b
 +p}). This function will warn you if you try to use it with your default
 +search group; the reason is that the default search group is used for
 +temporary searches, and it's easy to accidentally propagate marks from
 +this group. However, you can ignore this warning if you really want to.
  
 -@item !
 -@itemx not
 -@itemx ¬
 -This logical operator only takes a single argument.  It returns the
 -logical negation of the value of its argument.
 +With marks propagation enabled, all the marks you set in a @code{nnmairix}
 +group should now be propagated to the original article. For example,
 +you can now tick an article (by default with @kbd{!}) and this mark should
 +magically be set for the original article, too.
  
 -@end table
 +A few more remarks which you may or may not want to know:
  
 -There is an @dfn{indirection operator} that will make its arguments
 -apply to the ancestors of the current article being scored.  For
 -instance, @code{1-} will make score rules apply to the parent of the
 -current article.  @code{2-} will make score rules apply to the
 -grandparent of the current article.  Alternatively, you can write
 -@code{^^}, where the number of @code{^}s (carets) says how far back into
 -the ancestry you want to go.
 +@vindex nnmairix-propagate-marks-upon-close
 +Marks will not be set immediately, but only upon closing a group. This
 +not only makes marks propagation faster, it also avoids problems with
 +dangling symlinks when dealing with maildir files (since changing flags
 +will change the file name). You can also control when to propagate marks
 +via @code{nnmairix-propagate-marks-upon-close} (see the doc-string for
 +details).
  
 -Finally, we have the match operators.  These are the ones that do the
 -real work.  Match operators are header name strings followed by a match
 -and a match type.  A typical match operator looks like @samp{("from"
 -"Lars Ingebrigtsen" s)}.  The header names are the same as when using
 -simple scoring, and the match types are also the same.
 +Obviously, @code{nnmairix} will have to look up the original group for every
 +article you want to set marks for. If available, @code{nnmairix} will first use
 +the registry for determining the original group. The registry is very
 +fast, hence you should really, really enable the registry when using
 +marks propagation. If you don't have to worry about RAM and disc space,
 +set @code{gnus-registry-max-entries} to a large enough value; to be on
 +the safe side, choose roughly the amount of mails you index with mairix.
  
 +@vindex nnmairix-only-use-registry
 +If you don't want to use the registry or the registry hasn't seen the
 +original article yet, @code{nnmairix} will use an additional mairix
 +search for determining the file name of the article. This, of course, is
 +way slower than the registry---if you set hundreds or even thousands of
 +marks this way, it might take some time. You can avoid this situation by
 +setting @code{nnmairix-only-use-registry} to t.
  
 -@node Advanced Scoring Examples
 -@subsection Advanced Scoring Examples
 +Maybe you also want to propagate marks the other way round, i.e. if you
 +tick an article in a "real" mail group, you'd like to have the same
 +article in a @code{nnmairix} group ticked, too. For several good
 +reasons, this can only be done efficiently if you use maildir. To
 +immediately contradict myself, let me mention that it WON'T work with
 +@code{nnmaildir}, since @code{nnmaildir} stores the marks externally and
 +not in the file name. Therefore, propagating marks to @code{nnmairix}
 +groups will usually only work if you use an IMAP server which uses
 +maildir as its file format.
  
 -Please note that the following examples are score file rules.  To
 -make a complete score file from them, surround them with another pair
 -of parentheses.
 +@vindex nnmairix-propagate-marks-to-nnmairix-groups
 +If you work with this setup, just set
 +@code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t} and see what
 +happens. If you don't like what you see, just set it to @code{nil} again. One
 +problem might be that you get a wrong number of unread articles; this
 +usually happens when you delete or expire articles in the original
 +groups. When this happens, you can recreate the @code{nnmairix} group on the
 +back end using @kbd{G b d}.
  
 -Let's say you want to increase the score of articles written by Lars
 -when he's talking about Gnus:
 +@node nnmairix tips and tricks
 +@subsection nnmairix tips and tricks
  
 -@example
 -@group
 -((&
 -  ("from" "Lars Ingebrigtsen")
 -  ("subject" "Gnus"))
 - 1000)
 -@end group
 -@end example
 +@itemize
 +@item
 +Checking Mail
  
 -Quite simple, huh?
 +@findex nnmairix-update-groups
 +I put all my important mail groups at group level 1. The mairix groups
 +have group level 5, so they do not get checked at start up (@pxref{Group
 +Levels}).
  
 -When he writes long articles, he sometimes has something nice to say:
 +I use the following to check for mails:
  
 -@example
 -((&
 -  ("from" "Lars Ingebrigtsen")
 -  (|
 -   ("subject" "Gnus")
 -   ("lines" 100 >)))
 - 1000)
 -@end example
 +@lisp
 +(defun my-check-mail-mairix-update (level)
 +  (interactive "P")
 +  ;; if no prefix given, set level=1
 +  (gnus-group-get-new-news (or level 1))
 +  (nnmairix-update-groups "mairixsearch" t t)
 +  (gnus-group-list-groups))
  
 -However, when he responds to things written by Reig Eigil Logge, you
 -really don't want to read what he's written:
 +(define-key gnus-group-mode-map "g" 'my-check-mail-mairix-update)
 +@end lisp
  
 -@example
 -((&
 -  ("from" "Lars Ingebrigtsen")
 -  (1- ("from" "Reig Eigil Logge")))
 - -100000)
 -@end example
 +Instead of @samp{"mairixsearch"} use the name of your @code{nnmairix}
 +server. See the doc string for @code{nnmairix-update-groups} for
 +details.
  
 -Everybody that follows up Redmondo when he writes about disappearing
 -socks should have their scores raised, but only when they talk about
 -white socks.  However, when Lars talks about socks, it's usually not
 -very interesting:
 +@item
 +Example: search group for ticked articles
  
 -@example
 -((&
 -  (1-
 -   (&
 -    ("from" "redmondo@@.*no" r)
 -    ("body" "disappearing.*socks" t)))
 -  (! ("from" "Lars Ingebrigtsen"))
 -  ("body" "white.*socks"))
 - 1000)
 -@end example
 +For example, you can create a group for all ticked articles, where the
 +articles always stay unread:
  
 -Suppose you're reading a high volume group and you're only interested
 -in replies. The plan is to score down all articles that don't have
 -subject that begin with "Re:", "Fw:" or "Fwd:" and then score up all
 -parents of articles that have subjects that begin with reply marks.
 +Hit @kbd{G b g}, enter group name (e.g. @samp{important}), use
 +@samp{F:f} as query and do not include threads.
  
 -@example
 -((! ("subject" "re:\\|fwd?:" r))
 -  -200)
 -((1- ("subject" "re:\\|fwd?:" r))
 -  200)
 -@end example
 +Now activate marks propagation for this group by using @kbd{G b p}. Then
 +activate the always-unread feature by using @kbd{G b r} twice.
  
 -The possibilities are endless.
 +So far so good---but how do you remove the tick marks in the @code{nnmairix}
 +group?  There are two options: You may simply use
 +@code{nnmairix-remove-tick-mark-original-article} (bound to @kbd{$ u}) to remove
 +tick marks from the original article. The other possibility is to set
 +@code{nnmairix-propagate-marks-to-nnmairix-groups} to @code{t}, but see the above
 +comments about this option.  If it works for you, the tick marks should
 +also exist in the @code{nnmairix} group and you can remove them as usual,
 +e.g. by marking an article as read.
  
 -@node Advanced Scoring Tips
 -@subsection Advanced Scoring Tips
 +When you have removed a tick mark from the original article, this
 +article should vanish from the @code{nnmairix} group after you have updated the
 +mairix database and updated the group.  Fortunately, there is a function
 +for doing exactly that: @code{nnmairix-update-groups}. See the previous code
 +snippet and the doc string for details.
  
 -The @code{&} and @code{|} logical operators do short-circuit logic.
 -That is, they stop processing their arguments when it's clear what the
 -result of the operation will be.  For instance, if one of the arguments
 -of an @code{&} evaluates to @code{false}, there's no point in evaluating
 -the rest of the arguments.  This means that you should put slow matches
 -(@samp{body}, @samp{header}) last and quick matches (@samp{from},
 -@samp{subject}) first.
 +@item
 +Dealing with auto-subscription of mail groups
  
 -The indirection arguments (@code{1-} and so on) will make their
 -arguments work on previous generations of the thread.  If you say
 -something like:
 +As described before, all @code{nnmairix} groups are in fact stored on
 +the mail back end in the form @samp{zz_mairix-<NAME>-<NUMBER>}. You can
 +see them when you enter the back end server in the server buffer. You
 +should not subscribe these groups! Unfortunately, these groups will
 +usually get @emph{auto-subscribed} when you use @code{nnmaildir} or
 +@code{nnml}, i.e. you will suddenly see groups of the form
 +@samp{zz_mairix*} pop up in your group buffer. If this happens to you,
 +simply kill these groups with C-k.  For avoiding this, turn off
 +auto-subscription completely by setting the variable
 +@code{gnus-auto-subscribed-groups} to @code{nil} (@pxref{Filtering New
 +Groups}), or if you like to keep this feature use the following kludge
 +for turning it off for all groups beginning with @samp{zz_}:
  
 -@example
 -...
 -(1-
 - (1-
 -  ("from" "lars")))
 -...
 -@end example
 +@lisp
 +(setq gnus-auto-subscribed-groups
 +      "^\\(nnml\\|nnfolder\\|nnmbox\\|nnmh\\|nnbabyl\\|nnmaildir\\).*:\\([^z]\\|z$\\|\\z[^z]\\|zz$\\|zz[^_]\\|zz_$\\).*")
 +@end lisp
  
 -Then that means ``score on the from header of the grandparent of the
 -current article''.  An indirection is quite fast, but it's better to say:
 +@end itemize
  
 -@example
 -(1-
 - (&
 -  ("from" "Lars")
 -  ("subject" "Gnus")))
 -@end example
 +@node nnmairix caveats
 +@subsection nnmairix caveats
  
 -than it is to say:
 +@itemize
 +@item
 +You can create a secondary @code{nnml} server just for nnmairix, but then
 +you have to explicitly set the corresponding server variable
 +@code{nnml-get-new-mail} to @code{nil}.  Otherwise, new mail might get
 +put into this secondary server (and would never show up again).  Here's
 +an example server definition:
  
 -@example
 -(&
 - (1- ("from" "Lars"))
 - (1- ("subject" "Gnus")))
 -@end example
 +@lisp
 +(nnml "mairix" (nnml-directory "mairix") (nnml-get-new-mail nil))
 +@end lisp
  
 +(The @code{nnmaildir} back end also has a server variabe
 +@code{get-new-mail}, but its default value is @code{nil}, so you don't
 +have to explicitly set it if you use a @code{nnmaildir} server just for
 +mairix.)
  
 -@node Score Decays
 -@section Score Decays
 -@cindex score decays
 -@cindex decays
 +@item
 +If you use the Gnus registry: don't use the registry with
 +@code{nnmairix} groups (put them in
 +@code{gnus-registry-unfollowed-groups}).  Be @emph{extra careful} if
 +you use @code{gnus-registry-split-fancy-with-parent}; mails which are
 +split into @code{nnmairix} groups are usually gone for good as soon as
 +you check the group for new mail (yes, it has happened to me...).
  
 -You may find that your scores have a tendency to grow without
 -bounds, especially if you're using adaptive scoring.  If scores get too
 -big, they lose all meaning---they simply max out and it's difficult to
 -use them in any sensible way.
 +@item
 +Therefore: @emph{Never ever} put ``real'' mails into @code{nnmairix}
 +groups (you shouldn't be able to, anyway).
  
 -@vindex gnus-decay-scores
 -@findex gnus-decay-score
 -@vindex gnus-decay-score-function
 -Gnus provides a mechanism for decaying scores to help with this problem.
 -When score files are loaded and @code{gnus-decay-scores} is
 -non-@code{nil}, Gnus will run the score files through the decaying
 -mechanism thereby lowering the scores of all non-permanent score rules.
 -If @code{gnus-decay-scores} is a regexp, only score files matching this
 -regexp are treated.  E.g. you may set it to @samp{\\.ADAPT\\'} if only
 -@emph{adaptive} score files should be decayed.  The decay itself if
 -performed by the @code{gnus-decay-score-function} function, which is
 -@code{gnus-decay-score} by default.  Here's the definition of that
 -function:
 +@item
 +If you use the Gnus agent (@pxref{Gnus Unplugged}): don't agentize
 +@code{nnmairix} groups (though I have no idea what happens if you do).
  
 -@lisp
 -(defun gnus-decay-score (score)
 -  "Decay SCORE according to `gnus-score-decay-constant'
 -and `gnus-score-decay-scale'."
 -  (let ((n (- score
 -              (* (if (< score 0) -1 1)
 -                 (min (abs score)
 -                      (max gnus-score-decay-constant
 -                           (* (abs score)
 -                              gnus-score-decay-scale)))))))
 -    (if (and (featurep 'xemacs)
 -             ;; XEmacs' floor can handle only the floating point
 -             ;; number below the half of the maximum integer.
 -             (> (abs n) (lsh -1 -2)))
 -        (string-to-number
 -         (car (split-string (number-to-string n) "\\.")))
 -      (floor n))))
 -@end lisp
 +@item
 +mairix does only support us-ascii characters.
  
 -@vindex gnus-score-decay-scale
 -@vindex gnus-score-decay-constant
 -@code{gnus-score-decay-constant} is 3 by default and
 -@code{gnus-score-decay-scale} is 0.05.  This should cause the following:
 +@item
 +@code{nnmairix} uses a rather brute force method to force Gnus to
 +completely reread the group on the mail back end after mairix was
 +called---it simply deletes and re-creates the group on the mail
 +back end. So far, this has worked for me without any problems, and I
 +don't see how @code{nnmairix} could delete other mail groups than its
 +own, but anyway: you really should have a backup of your mail
 +folders.
  
 -@enumerate
  @item
 -Scores between -3 and 3 will be set to 0 when this function is called.
 +All necessary information is stored in the group parameters
 +(@pxref{Group Parameters}). This has the advantage that no active file
 +is needed, but also implies that when you kill a @code{nnmairix} group,
 +it is gone for good.
  
  @item
 -Scores with magnitudes between 3 and 60 will be shrunk by 3.
 +@findex nnmairix-purge-old-groups
 +If you create and kill a lot of @code{nnmairix} groups, the
 +``zz_mairix-*'' groups will accumulate on the mail back end server. To
 +delete old groups which are no longer needed, call
 +@code{nnmairix-purge-old-groups}. Note that this assumes that you don't
 +save any ``real'' mail in folders of the form
 +@code{zz_mairix-<NAME>-<NUMBER>}. You can change the prefix of
 +@code{nnmairix} groups by changing the variable
 +@code{nnmairix-group-prefix}.
  
  @item
 -Scores with magnitudes greater than 60 will be shrunk by 5% of the
 -score.
 -@end enumerate
 +The following only applies if you @emph{don't} use the mentioned patch
 +for mairix (@pxref{Propagating marks}):
  
 -If you don't like this decay function, write your own.  It is called
 -with the score to be decayed as its only parameter, and it should return
 -the new score, which should be an integer.
 +A problem can occur when using @code{nnmairix} with maildir folders and
 +comes with the fact that maildir stores mail flags like @samp{Seen} or
 +@samp{Replied} by appending chars @samp{S} and @samp{R} to the message
 +file name, respectively. This implies that currently you would have to
 +update the mairix database not only when new mail arrives, but also when
 +mail flags are changing. The same applies to new mails which are indexed
 +while they are still in the @samp{new} folder but then get moved to
 +@samp{cur} when Gnus has seen the mail. If you don't update the database
 +after this has happened, a mairix query can lead to symlinks pointing to
 +non-existing files. In Gnus, these messages will usually appear with
 +``(none)'' entries in the header and can't be accessed. If this happens
 +to you, using @kbd{G b u} and updating the group will usually fix this.
  
 -Gnus will try to decay scores once a day.  If you haven't run Gnus for
 -four days, Gnus will decay the scores four times, for instance.
 +@end itemize
  
  @iftex
  @iflatex
  * Compilation::                 How to speed Gnus up.
  * Mode Lines::                  Displaying information in the mode lines.
  * Highlighting and Menus::      Making buffers look all nice and cozy.
 -* Buttons::                     Get tendinitis in ten easy steps!
  * Daemons::                     Gnus can do things behind your back.
 -* NoCeM::                       How to avoid spam and other fatty foods.
  * Undo::                        Some actions can be undone.
  * Predicate Specifiers::        Specifying predicates.
  * Moderation::                  What to do if you're a moderator.
@@@ -22229,11 -22890,8 +22229,11 @@@ default
  @item gnus-expert-user
  @vindex gnus-expert-user
  If this variable is non-@code{nil}, you will seldom be asked any
 -questions by Gnus.  It will simply assume you know what you're doing, no
 -matter how strange.
 +questions by Gnus.  It will simply assume you know what you're doing,
 +no matter how strange.  For example, quitting Gnus, exiting a group
 +without an update, catching up with a group, deleting expired
 +articles, and replying by mail to a news message will not require
 +confirmation.
  
  @item gnus-interactive-catchup
  @vindex gnus-interactive-catchup
@@@ -22498,7 -23156,7 +22498,7 @@@ variables should be either strings or s
  return a string.  When the mouse passes over text with this property
  set, a balloon window will appear and display the string.  Please
  refer to @ref{Tooltips, ,Tooltips, emacs, The Emacs Manual},
- (in GNU Emacs) or the doc string of @code{balloon-help-mode} (in
+ (in Emacs) or the doc string of @code{balloon-help-mode} (in
  XEmacs) for more information on this.  (For technical reasons, the
  guillemets have been approximated as @samp{<<} and @samp{>>} in this
  paragraph.)
@@@ -22605,7 -23263,8 +22605,7 @@@ glitches.  Use at your own peril
  buffer should be given.  Here's an excerpt of this variable:
  
  @lisp
 -((group (vertical 1.0 (group 1.0 point)
 -                      (if gnus-carpal (group-carpal 4))))
 +((group (vertical 1.0 (group 1.0 point)))
   (article (vertical 1.0 (summary 0.25 point)
                          (article 1.0))))
  @end lisp
@@@ -22643,6 -23302,7 +22643,6 @@@ Here's a more complicated example
  @lisp
  (article (vertical 1.0 (group 4)
                         (summary 0.25 point)
 -                       (if gnus-carpal (summary-carpal 4))
                         (article 1.0)))
  @end lisp
  
@@@ -22653,16 -23313,20 +22653,16 @@@ occupy, not a percentage
  If the @dfn{split} looks like something that can be @code{eval}ed (to be
  precise---if the @code{car} of the split is a function or a subr), this
  split will be @code{eval}ed.  If the result is non-@code{nil}, it will
 -be used as a split.  This means that there will be three buffers if
 -@code{gnus-carpal} is @code{nil}, and four buffers if @code{gnus-carpal}
 -is non-@code{nil}.
 +be used as a split.
  
  Not complicated enough for you?  Well, try this on for size:
  
  @lisp
  (article (horizontal 1.0
               (vertical 0.5
 -                 (group 1.0)
 -                 (gnus-carpal 4))
 +                 (group 1.0))
               (vertical 1.0
                   (summary 0.25 point)
 -                 (summary-carpal 4)
                   (article 1.0))))
  @end lisp
  
@@@ -22826,81 -23490,6 +22826,81 @@@ window is displayed vertically next to 
  to fiddle with @code{gnus-tree-minimize-window} to avoid having the
  windows resized.
  
 +@subsection Window Configuration Names
 +
 +Here's a list of most of the currently known window configurations,
 +and when they're used:
 +
 +@itemize @code
 +@item group
 +The group buffer.
 +
 +@item summary
 +Entering a group and showing only the summary.
 +
 +@item article
 +Selecting an article.
 +
 +@item server
 +The server buffer.
 +
 +@item browse
 +Browsing groups from the server buffer.
 +
 +@item message
 +Composing a (new) message.
 +
 +@item only-article
 +Showing only the article buffer.
 +
 +@item edit-article
 +Editing an article.
 +
 +@item edit-form
 +Editing group parameters and the like.
 +
 +@item edit-score
 +Editing a server definition.
 +
 +@item post
 +Composing a news message.
 +
 +@item reply
 +Replying or following up an article without yanking the text.
 +
 +@item forward
 +Forwarding a message.
 +
 +@item reply-yank
 +Replying or following up an article with yanking the text.
 +
 +@item mail-bound
 +Bouncing a message.
 +
 +@item pipe
 +Sending an article to an external process.
 +
 +@item bug
 +Sending a bug report.
 +
 +@item score-trace
 +Displaying the score trace.
 +
 +@item score-words
 +Displaying the score words.
 +
 +@item split-trace
 +Displaying the split trace.
 +
 +@item compose-bounce
 +Composing a bounce message.
 +
 +@item mml-preview
 +Previewing a @acronym{MIME} part.
 +
 +@end itemize
 +
 +
  @subsection Example Window Configurations
  
  @itemize @bullet
@@@ -23114,6 -23703,62 +23114,6 @@@ Hook called after creating the score mo
  @end table
  
  
 -@node Buttons
 -@section Buttons
 -@cindex buttons
 -@cindex mouse
 -@cindex click
 -
 -Those new-fangled @dfn{mouse} contraptions are very popular with the
 -young, hep kids who don't want to learn the proper way to do things
 -these days.  Why, I remember way back in the summer of '89, when I was
 -using Emacs on a Tops 20 system.  Three hundred users on one single
 -machine, and every user was running Simula compilers.  Bah!
 -
 -Right.
 -
 -@vindex gnus-carpal
 -Well, you can make Gnus display bufferfuls of buttons you can click to
 -do anything by setting @code{gnus-carpal} to @code{t}.  Pretty simple,
 -really.  Tell the chiropractor I sent you.
 -
 -
 -@table @code
 -
 -@item gnus-carpal-mode-hook
 -@vindex gnus-carpal-mode-hook
 -Hook run in all carpal mode buffers.
 -
 -@item gnus-carpal-button-face
 -@vindex gnus-carpal-button-face
 -Face used on buttons.
 -
 -@item gnus-carpal-header-face
 -@vindex gnus-carpal-header-face
 -Face used on carpal buffer headers.
 -
 -@item gnus-carpal-group-buffer-buttons
 -@vindex gnus-carpal-group-buffer-buttons
 -Buttons in the group buffer.
 -
 -@item gnus-carpal-summary-buffer-buttons
 -@vindex gnus-carpal-summary-buffer-buttons
 -Buttons in the summary buffer.
 -
 -@item gnus-carpal-server-buffer-buttons
 -@vindex gnus-carpal-server-buffer-buttons
 -Buttons in the server buffer.
 -
 -@item gnus-carpal-browse-buffer-buttons
 -@vindex gnus-carpal-browse-buffer-buttons
 -Buttons in the browse buffer.
 -@end table
 -
 -All the @code{buttons} variables are lists.  The elements in these list
 -are either cons cells where the @code{car} contains a text to be displayed and
 -the @code{cdr} contains a function symbol, or a simple string.
 -
 -
  @node Daemons
  @section Daemons
  @cindex demons
@@@ -23177,12 -23822,13 +23177,12 @@@ your @file{~/.gnus.el} file
  (gnus-demon-add-handler 'gnus-demon-close-connections 30 t)
  @end lisp
  
 -@findex gnus-demon-add-nocem
  @findex gnus-demon-add-scanmail
  @findex gnus-demon-add-rescan
  @findex gnus-demon-add-scan-timestamps
  @findex gnus-demon-add-disconnection
  Some ready-made functions to do this have been created:
 -@code{gnus-demon-add-nocem}, @code{gnus-demon-add-disconnection},
 +@code{gnus-demon-add-disconnection},
  @code{gnus-demon-add-nntp-close-connection},
  @code{gnus-demon-add-scan-timestamps}, @code{gnus-demon-add-rescan}, and
  @code{gnus-demon-add-scanmail}.  Just put those functions in your
@@@ -23201,6 -23847,152 +23201,6 @@@ is a sure-fire way of getting booted of
  behave.
  
  
 -@node NoCeM
 -@section NoCeM
 -@cindex nocem
 -@cindex spam
 -
 -@dfn{Spamming} is posting the same article lots and lots of times.
 -Spamming is bad.  Spamming is evil.
 -
 -Spamming is usually canceled within a day or so by various anti-spamming
 -agencies.  These agencies usually also send out @dfn{NoCeM} messages.
 -NoCeM is pronounced ``no see-'em'', and means what the name
 -implies---these are messages that make the offending articles, like, go
 -away.
 -
 -What use are these NoCeM messages if the articles are canceled anyway?
 -Some sites do not honor cancel messages and some sites just honor cancels
 -from a select few people.  Then you may wish to make use of the NoCeM
 -messages, which are distributed in the newsgroups
 -@samp{news.lists.filters}, @samp{alt.nocem.misc}, etc.
 -
 -Gnus can read and parse the messages in this group automatically, and
 -this will make spam disappear.
 -
 -There are some variables to customize, of course:
 -
 -@table @code
 -@item gnus-use-nocem
 -@vindex gnus-use-nocem
 -Set this variable to @code{t} to set the ball rolling.  It is @code{nil}
 -by default.
 -
 -You can also set this variable to a positive number as a group level.
 -In that case, Gnus scans NoCeM messages when checking new news if this
 -value is not exceeding a group level that you specify as the prefix
 -argument to some commands, e.g. @code{gnus},
 -@code{gnus-group-get-new-news}, etc.  Otherwise, Gnus does not scan
 -NoCeM messages if you specify a group level that is smaller than this
 -value to those commands.  For example, if you use 1 or 2 on the mail
 -groups and the levels on the news groups remain the default, 3 is the
 -best choice.
 -
 -@item gnus-nocem-groups
 -@vindex gnus-nocem-groups
 -Gnus will look for NoCeM messages in the groups in this list.  The
 -default is
 -@lisp
 -("news.lists.filters" "alt.nocem.misc")
 -@end lisp
 -
 -@item gnus-nocem-issuers
 -@vindex gnus-nocem-issuers
 -There are many people issuing NoCeM messages.  This list says what
 -people you want to listen to.  The default is:
 -
 -@lisp
 -("Adri Verhoef"
 - "alba-nocem@@albasani.net"
 - "bleachbot@@httrack.com"
 - "news@@arcor-online.net"
 - "news@@uni-berlin.de"
 - "nocem@@arcor.de"
 - "pgpmoose@@killfile.org"
 - "xjsppl@@gmx.de")
 -@end lisp
 -
 -Known despammers that you can put in this list are listed at@*
 -@uref{http://www.xs4all.nl/~rosalind/nocemreg/nocemreg.html}.
 -
 -You do not have to heed NoCeM messages from all these people---just the
 -ones you want to listen to.  You also don't have to accept all NoCeM
 -messages from the people you like.  Each NoCeM message has a @dfn{type}
 -header that gives the message a (more or less, usually less) rigorous
 -definition.  Common types are @samp{spam}, @samp{spew}, @samp{mmf},
 -@samp{binary}, and @samp{troll}.  To specify this, you have to use
 -@code{(@var{issuer} @var{conditions} @dots{})} elements in the list.
 -Each condition is either a string (which is a regexp that matches types
 -you want to use) or a list on the form @code{(not @var{string})}, where
 -@var{string} is a regexp that matches types you don't want to use.
 -
 -For instance, if you want all NoCeM messages from Chris Lewis except his
 -@samp{troll} messages, you'd say:
 -
 -@lisp
 -("clewis@@ferret.ocunix.on.ca" ".*" (not "troll"))
 -@end lisp
 -
 -On the other hand, if you just want nothing but his @samp{spam} and
 -@samp{spew} messages, you'd say:
 -
 -@lisp
 -("clewis@@ferret.ocunix.on.ca" (not ".*") "spew" "spam")
 -@end lisp
 -
 -The specs are applied left-to-right.
 -
 -
 -@item gnus-nocem-verifyer
 -@vindex gnus-nocem-verifyer
 -@findex gnus-nocem-epg-verify
 -@findex pgg-verify
 -This should be a function for verifying that the NoCeM issuer is who she
 -says she is.  This variable defaults to @code{gnus-nocem-epg-verify} if
 -EasyPG is available, otherwise defaults to @code{pgg-verify}.  The
 -function should return non-@code{nil} if the verification is successful,
 -otherwise (including the case the NoCeM message was not signed) should
 -return @code{nil}.  If this is too slow and you don't care for
 -verification (which may be dangerous), you can set this variable to
 -@code{nil}.
 -
 -Formerly the default was @code{mc-verify}, which is a Mailcrypt
 -function.  While you can still use it, you can change it into
 -@code{gnus-nocem-epg-verify} or @code{pgg-verify} running with GnuPG if
 -you are willing to add the @acronym{PGP} public keys to GnuPG's keyring.
 -
 -@item gnus-nocem-directory
 -@vindex gnus-nocem-directory
 -This is where Gnus will store its NoCeM cache files.  The default is@*
 -@file{~/News/NoCeM/}.
 -
 -@item gnus-nocem-expiry-wait
 -@vindex gnus-nocem-expiry-wait
 -The number of days before removing old NoCeM entries from the cache.
 -The default is 15.  If you make it shorter Gnus will be faster, but you
 -might then see old spam.
 -
 -@item gnus-nocem-check-from
 -@vindex gnus-nocem-check-from
 -Non-@code{nil} means check for valid issuers in message bodies.
 -Otherwise don't bother fetching articles unless their author matches a
 -valid issuer; that is much faster if you are selective about the
 -issuers.
 -
 -@item gnus-nocem-check-article-limit
 -@vindex gnus-nocem-check-article-limit
 -If non-@code{nil}, the maximum number of articles to check in any NoCeM
 -group.  @code{nil} means no restriction.  NoCeM groups can be huge and
 -very slow to process.
 -
 -@end table
 -
 -Using NoCeM could potentially be a memory hog.  If you have many living
 -(i. e., subscribed or unsubscribed groups), your Emacs process will grow
 -big.  If this is a problem, you should kill off all (or most) of your
 -unsubscribed groups (@pxref{Subscription Commands}).
 -
 -
  @node Undo
  @section Undo
  @cindex undo
@@@ -23334,7 -24126,6 +23334,7 @@@ stuff, so Gnus has taken advantage of t
  * Face::                        Display a funkier, teensier colored image.
  * Smileys::                     Show all those happy faces the way they were meant to be shown.
  * Picons::                      How to display pictures of what you're reading.
 +* Gravatars::                   Display the avatar of people you read.
  * XVarious::                    Other XEmacsy Gnusey variables.
  @end menu
  
@@@ -23661,59 -24452,8 +23661,59 @@@ want to add @samp{"unknown"} to this li
  Ordered list of suffixes on picon file names to try.  Defaults to
  @code{("xpm" "gif" "xbm")} minus those not built-in your Emacs.
  
 +@item gnus-picon-inhibit-top-level-domains
 +@vindex gnus-picon-inhibit-top-level-domains
 +If non-@code{nil} (which is the default), don't display picons for
 +things like @samp{.net} and @samp{.de}, which aren't usually very
 +interesting.
 +
 +@end table
 +
 +@node Gravatars
 +@subsection Gravatars
 +
 +@iftex
 +@iflatex
 +\include{gravatars}
 +@end iflatex
 +@end iftex
 +
 +A gravatar is an image registered to an e-mail address.
 +
 +You can submit yours on-line at @uref{http://www.gravatar.com}.
 +
 +The following variables offer control over how things are displayed.
 +
 +@table @code
 +
 +@item gnus-gravatar-size
 +@vindex gnus-gravatar-size
 +The size in pixels of gravatars. Gravatars are always square, so one
 +number for the size is enough.
 +
 +@item gnus-gravatar-properties
 +@vindex gnus-gravatar-properties
 +List of image properties applied to Gravatar images.
 +
 +@item gnus-gravatar-too-ugly
 +@vindex gnus-gravatar-too-ugly
 +Regexp that matches mail addresses or names of people of which avatars
 +should not be displayed, or @code{nil}.  It default to the value of
 +@code{gnus-article-x-face-too-ugly} (@pxref{X-Face}).
 +
  @end table
  
 +If you want to see them in the From field, set:
 +@lisp
 +(setq gnus-treat-from-gravatar 'head)
 +@end lisp
 +
 +If you want to see them in the Cc and To fields, set:
 +
 +@lisp
 +(setq gnus-treat-mail-gravatar 'head)
 +@end lisp
 +
  
  @node XVarious
  @subsection Various XEmacs Variables
@@@ -24049,7 -24789,7 +24049,7 @@@ call the external tools during splittin
  Note that with the nnimap back end, message bodies will not be
  downloaded by default.  You need to set
  @code{nnimap-split-download-body} to @code{t} to do that
 -(@pxref{Splitting in IMAP}).
 +(@pxref{Client-Side IMAP Splitting}).
  
  That is about it.  As some spam is likely to get through anyway, you
  might want to have a nifty function to call when you happen to read
@@@ -24243,14 -24983,12 +24243,14 @@@ yourself, so that the message is proces
  group:
  
  @table @kbd
 -@item M-d
 +@item $
 +@itemx M-d
  @itemx M s x
  @itemx S x
 -@kindex M-d
 -@kindex S x
 -@kindex M s x
 +@kindex $ (Summary)
 +@kindex M-d (Summary)
 +@kindex S x (Summary)
 +@kindex M s x (Summary)
  @findex gnus-summary-mark-as-spam
  @findex gnus-summary-mark-as-spam
  Mark current article as spam, showing it with the @samp{$} mark
@@@ -24333,14 -25071,14 +24333,14 @@@ the value @samp{spam} means @samp{nnima
  @vindex nnimap-split-download-body
  Note for IMAP users: if you use the @code{spam-check-bogofilter},
  @code{spam-check-ifile}, and @code{spam-check-stat} spam back ends,
 -you should also set the variable @code{nnimap-split-download-body}
 -to @code{t}.  These spam back ends are most useful when they can
 -``scan'' the full message body.  By default, the nnimap back end only
 -retrieves the message headers; @code{nnimap-split-download-body} tells
 -it to retrieve the message bodies as well.  We don't set this by
 -default because it will slow @acronym{IMAP} down, and that is not an
 -appropriate decision to make on behalf of the user.  @xref{Splitting
 -in IMAP}.
 +you should also set the variable @code{nnimap-split-download-body} to
 +@code{t}.  These spam back ends are most useful when they can ``scan''
 +the full message body.  By default, the nnimap back end only retrieves
 +the message headers; @code{nnimap-split-download-body} tells it to
 +retrieve the message bodies as well.  We don't set this by default
 +because it will slow @acronym{IMAP} down, and that is not an
 +appropriate decision to make on behalf of the user.  @xref{Client-Side
 +IMAP Splitting}.
  
  You have to specify one or more spam back ends for @code{spam-split}
  to use, by setting the @code{spam-use-*} variables.  @xref{Spam Back
@@@ -24625,8 -25363,8 +24625,8 @@@ From Ted Zlatanov <tzz@@lifelogs.com>
   spam-move-spam-nonspam-groups-only nil
   spam-mark-only-unseen-as-spam t
   spam-mark-ham-unread-before-move-from-spam-group t
 - nnimap-split-rule 'nnimap-split-fancy
   ;; @r{understand what this does before you copy it to your own setup!}
 + ;; @r{for nnimap you'll probably want to set nnimap-split-methods, see the manual}
   nnimap-split-fancy '(|
                        ;; @r{trace references to parents and put in their group}
                        (: gnus-registry-split-fancy-with-parent)
@@@ -25348,8 -26086,8 +25348,8 @@@ messages stay in @samp{INBOX}
  @example
  (setq spam-use-spamoracle t
        spam-split-group "Junk"
 +      ;; @r{for nnimap you'll probably want to set nnimap-split-methods, see the manual}
        nnimap-split-inbox '("INBOX")
 -      nnimap-split-rule 'nnimap-split-fancy
        nnimap-split-fancy '(| (: spam-split) "INBOX"))
  @end example
  
@@@ -25874,13 -26612,6 +25874,13 @@@ This keeps discussions in the same grou
  the sender in addition to the Message-ID.  Several strategies are
  available.
  
 +@item
 +Refer to messages by ID
 +
 +Commands like @code{gnus-summary-refer-parent-article} can take
 +advantage of the registry to jump to the referred article, regardless
 +of the group the message is in.
 +
  @item
  Store custom flags and keywords
  
@@@ -25900,7 -26631,6 +25900,7 @@@ of all messages matching a particular s
  @menu
  * Setup::
  * Fancy splitting to parent::
 +* Registry Article Refer Method::
  * Store custom flags and keywords::
  * Store arbitrary data::
  @end menu
@@@ -25977,42 -26707,6 +25977,42 @@@ registry will keep
  The file where the registry will be stored between Gnus sessions.
  @end defvar
  
 +@node Registry Article Refer Method
 +@subsection Fetching by @code{Message-ID} Using the Registry
 +
 +The registry knows how to map each @code{Message-ID} to the group it's
 +in.  This can be leveraged to enhance the ``article refer method'',
 +the thing that tells Gnus how to look up an article given its
 +Message-ID (@pxref{Finding the Parent}).
 +
 +@vindex nnregistry
 +@vindex gnus-refer-article-method
 +
 +The @code{nnregistry} refer method does exactly that.  It has the
 +advantage that an article may be found regardless of the group it's
 +in---provided its @code{Message-ID} is known to the registry.  It can
 +be enabled by augmenting the start-up file with something along these
 +lines:
 +
 +@example
 +;; Keep enough entries to have a good hit rate when referring to an
 +;; article using the registry.  Use long group names so that Gnus
 +;; knows where the article is.
 +(setq gnus-registry-max-entries 2500
 +      gnus-registry-use-long-group-names t)
 +
 +(gnus-registry-initialize)
 +
 +(setq gnus-refer-article-method
 +      '(current
 +        (nnregistry)
 +        (nnweb "gmane" (nnweb-type gmane))))
 +@end example
 +
 +The example above instructs Gnus to first look up the article in the
 +current group, or, alternatively, using the registry, and finally, if
 +all else fails, using Gmane.
 +
  @node Fancy splitting to parent
  @subsection Fancy splitting to parent
  
@@@ -26712,7 -27406,7 +26712,7 @@@ wrong show
  Masanobu @sc{Umeda}---the writer of the original @sc{gnus}.
  
  @item
 -Shenghuo Zhu---uudecode.el, mm-uu.el, rfc1843.el, webmail.el,
 +Shenghuo Zhu---uudecode.el, mm-uu.el, rfc1843.el,
  nnwarchive and many, many other things connected with @acronym{MIME} and
  other types of en/decoding, as well as general bug fixing, new
  functionality and stuff.
@@@ -27097,6 -27791,10 +27097,6 @@@ cluttering up the @file{.emacs} file
  You can set the process mark on both groups and articles and perform
  operations on all the marked items (@pxref{Process/Prefix}).
  
 -@item
 -You can grep through a subset of groups and create a group from the
 -results (@pxref{Kibozed Groups}).
 -
  @item
  You can list subsets of groups according to, well, anything
  (@pxref{Listing Groups}).
@@@ -27143,6 -27841,10 +27143,6 @@@ Buttons})
  You can do lots of strange stuff with the Gnus window & frame
  configuration (@pxref{Window Layout}).
  
 -@item
 -You can click on buttons instead of using the keyboard
 -(@pxref{Buttons}).
 -
  @end itemize
  
  
@@@ -27238,7 -27940,8 +27238,7 @@@ news batches, ClariNet briefs collectio
  else (@pxref{Document Groups}).
  
  @item
 -Gnus has a new back end (@code{nnsoup}) to create/read SOUP packets
 -(@pxref{SOUP}).
 +Gnus has a new back end (@code{nnsoup}) to create/read SOUP packets.
  
  @item
  The Gnus cache is much faster.
@@@ -27296,6 -27999,13 +27296,6 @@@ Mail can be re-scanned by a daemonic pr
  @end iflatex
  @end iftex
  
 -@item
 -Gnus can make use of NoCeM files to weed out spam (@pxref{NoCeM}).
 -
 -@lisp
 -(setq gnus-use-nocem t)
 -@end lisp
 -
  @item
  Groups can be made permanently visible (@pxref{Listing Groups}).
  
@@@ -27766,7 -28476,7 +27766,7 @@@ to install Gnus after compiling it, giv
  the second parameter.
  
  @file{make.bat} has been rewritten from scratch, it now features
- automatic recognition of XEmacs and GNU Emacs, generates
+ automatic recognition of XEmacs and Emacs, generates
  @file{gnus-load.el}, checks if errors occur while compilation and
  generation of info files and reports them at the end of the build
  process.  It now uses @code{makeinfo} if it is available and falls
@@@ -27812,7 -28522,9 +27812,7 @@@ The revised Gnus @acronym{FAQ} is inclu
  @acronym{TLS} wrapper shipped with Gnus
  
  @acronym{TLS}/@acronym{SSL} is now supported in @acronym{IMAP} and
 -@acronym{NNTP} via @file{tls.el} and GNUTLS.  The old
 -@acronym{TLS}/@acronym{SSL} support via (external third party)
 -@file{ssl.el} and OpenSSL still works.
 +@acronym{NNTP} via @file{tls.el} and GNUTLS.
  
  @item
  Improved anti-spam features.
@@@ -28790,9 -29502,11 +28790,9 @@@ Gnus not to use @acronym{NOV}
  As the variables for the other back ends, there are
  @code{nndiary-nov-is-evil}, @code{nndir-nov-is-evil},
  @code{nnfolder-nov-is-evil}, @code{nnimap-nov-is-evil},
 -@code{nnml-nov-is-evil}, @code{nnspool-nov-is-evil}, and
 -@code{nnwarchive-nov-is-evil}.  Note that a non-@code{nil} value for
 -@code{gnus-nov-is-evil} overrides all those variables.@footnote{Although
 -the back ends @code{nnkiboze}, @code{nnslashdot}, @code{nnultimate}, and
 -@code{nnwfm} don't have their own nn*-nov-is-evil.}
 +@code{nnml-nov-is-evil}, and @code{nnspool-nov-is-evil}.  Note that a
 +non-@code{nil} value for @code{gnus-nov-is-evil} overrides all those
 +variables.
  @end table
  
  
@@@ -29390,7 -30104,7 +29390,7 @@@ group and article numbers are when fetc
  on successful article retrieval.
  
  
 -@item (nnchoke-request-group GROUP &optional SERVER FAST)
 +@item (nnchoke-request-group GROUP &optional SERVER FAST INFO)
  
  Get data on @var{group}.  This function also has the side effect of
  making @var{group} the current group.
  If @var{fast}, don't bother to return useful data, just make @var{group}
  the current group.
  
 +If @var{info}, it allows the backend to update the group info
 +structure.
 +
  Here's an example of some result data and a definition of the same:
  
  @example
@@@ -30589,11 -31300,11 +30589,11 @@@ that means
  (setq gnus-read-active-file 'some)
  @end lisp
  
 -On the other hand, if the manual says ``set @code{gnus-nntp-server} to
 -@samp{nntp.ifi.uio.no}'', that means:
 +On the other hand, if the manual says ``set @code{gnus-nntp-server-file} to
 +@samp{/etc/nntpserver}'', that means:
  
  @lisp
 -(setq gnus-nntp-server "nntp.ifi.uio.no")
 +(setq gnus-nntp-server-file "/etc/nntpserver")
  @end lisp
  
  So be careful not to mix up strings (the latter) with symbols (the
@@@ -30626,3 -31337,7 +30626,3 @@@ former).  The manual is unambiguous, bu
  @c mode: texinfo
  @c coding: iso-8859-1
  @c End:
 -
 -@ignore
 -   arch-tag: c9fa47e7-78ca-4681-bda9-9fef45d1c819
 -@end ignore
diff --combined doc/misc/idlwave.texi
index 94aeb612df70822f0159d9a8530b2c8e1c894b97,54088cef210b2512359eafff0ce9c0d4b0bd8fbc..8e172301915eb92da54635328c7a357353f04fd0
@@@ -22,7 -22,8 +22,7 @@@ Emacs, and interacting with an IDL shel
  This is edition @value{EDITION} of the IDLWAVE User Manual for IDLWAVE
  @value{VERSION}.
  
 -Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
 -2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 +Copyright @copyright{} 1999-2011 Free Software Foundation, Inc.
  
  @quotation
  Permission is granted to copy, distribute and/or modify this document
@@@ -57,7 -58,6 +57,7 @@@ developing GNU and promoting software f
  
  @ifnottex
  @node Top, Introduction, (dir), (dir)
 +@top IDLWAVE
  
  IDLWAVE is a package which supports editing source code written in the
  Interactive Data Language (IDL), and running IDL as an inferior shell.
@@@ -4275,7 -4275,7 +4275,7 @@@ browse-url-browser-function} or simila
  under XEmacs.}
  
  You don't have the @samp{browse-url} (or other required) XEmacs package.
- Unlike GNU Emacs, XEmacs distributes many packages separately from the
+ Unlike Emacs, XEmacs distributes many packages separately from the
  main program.  IDLWAVE is actually among these, but is not always the
  most up to date.  When installing IDLWAVE as an XEmacs package, it
  should prompt you for required additional packages.  When installing it
@@@ -4295,3 -4295,7 +4295,3 @@@ IDLWAVE is @samp{fsf-compat, xemacs-bas
  @printindex cp
  
  @bye
 -
 -@ignore
 -   arch-tag: f1d73958-1423-4127-b8aa-f7b953d64492
 -@end ignore
diff --combined doc/misc/mh-e.texi
index 59da631c6ead1787a79c88d71d4aff5fd71d9b0b,17594701997c25779006a027bbd800b4a42c30ee..43d7bc745539dac0f41998f2915237e7385c7823
@@@ -24,7 -24,8 +24,7 @@@
  This is version @value{VERSION}@value{EDITION} of @cite{The MH-E
  Manual}, last updated @value{UPDATED}.
  
 -Copyright @copyright{} 1995, 2001, 2002, 2003, 2005, 2006, 2007, 2008,
 -  2009, 2010, 2011  Free Software Foundation, Inc.
 +Copyright @copyright{} 1995, 2001-2003, 2005-2011  Free Software Foundation, Inc.
  
  @c This dual license has been agreed upon by the FSF.
  
@@@ -211,9 -212,9 +211,9 @@@ However, MH-E was the tip of the iceber
  more niceties about GNU Emacs and MH@. Now I'm fully hooked on both of
  them.
  
- The MH-E package is distributed with GNU Emacs@footnote{Version
- @value{VERSION} of MH-E appeared in GNU Emacs 23.1. It is supported
- in GNU Emacs 21 and 22, as well as XEmacs 21 (except for versions
+ The MH-E package is distributed with Emacs@footnote{Version
+ @value{VERSION} of MH-E appeared in Emacs 23.1. It is supported
+ in Emacs 21 and 22, as well as XEmacs 21 (except for versions
  21.5.9-21.5.16). It is compatible with MH versions 6.8.4 and higher,
  all versions of nmh, and GNU mailutils 1.0 and higher.}, so you
  shouldn't have to do anything special to use it. Gnus is also
diff --combined doc/misc/tramp.texi
index 346354b317085436ec1124d0a2fe212a5d478b33,f76df61335c2365b40eee056673c0166d037b4fa..8bcce244f9d4ecff3257138bd45371b48f2d419d
@@@ -37,7 -37,8 +37,7 @@@
  @end macro
  
  @copying
 -Copyright @copyright{} 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007,
 -2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 +Copyright @copyright{} 1999-2011 Free Software Foundation, Inc.
  
  @quotation
  Permission is granted to copy, distribute and/or modify this document
@@@ -104,6 -105,11 +104,6 @@@ If you're using the other Emacs flavor
  @end ifset
  
  @ifhtml
 -@ifset jamanual
 -This manual is also available as a @uref{@value{japanesemanual},
 -Japanese translation}.
 -@end ifset
 -
  The latest release of @value{tramp} is available for
  @uref{ftp://ftp.gnu.org/gnu/tramp/, download}, or you may see
  @ref{Obtaining Tramp} for more details, including the CVS server
@@@ -165,6 -171,7 +165,6 @@@ Installing @value{tramp} with your @val
  
  * Installation parameters::     Parameters in order to control installation.
  * Load paths::                  How to plug-in @value{tramp} into your environment.
 -* Japanese manual::             Japanese manual.
  
  @end ifset
  
@@@ -369,13 -376,12 +369,12 @@@ behind the scenes when you open a file 
  @cindex obtaining Tramp
  
  @value{tramp} is freely available on the Internet and the latest
- release may be downloaded from
- @uref{ftp://ftp.gnu.org/gnu/tramp/}.  This release includes the full
- documentation and code for @value{tramp}, suitable for installation.
- But GNU Emacs (22 or later) includes @value{tramp} already, and there
- is a @value{tramp} package for XEmacs, as well.  So maybe it is easier
- to just use those.  But if you want the bleeding edge, read
- on@dots{...}
+ release may be downloaded from @uref{ftp://ftp.gnu.org/gnu/tramp/}.
+ This release includes the full documentation and code for
+ @value{tramp}, suitable for installation.  But Emacs (22 or later)
+ includes @value{tramp} already, and there is a @value{tramp} package
+ for XEmacs, as well.  So maybe it is easier to just use those.  But if
+ you want the bleeding edge, read on@dots{...}
  
  For the especially brave, @value{tramp} is available from CVS.  The CVS
  version is the latest version of the code and may contain incomplete
@@@ -443,12 -449,15 +442,12 @@@ Support of gateways exists since April 
  @ifset emacsgvfs
  GVFS integration started in February 2009.
  @end ifset
 -@ifset emacsimap
 -Storing files into IMAP mailboxes has been added in September 2009.
 -@end ifset
  
  In December 2001, @value{tramp} has been added to the XEmacs package
- repository.  Being part of the GNU Emacs repository happened in June
2002, the first release including @value{tramp} was GNU Emacs 22.1.
+ repository.  Being part of the Emacs repository happened in June 2002,
the first release including @value{tramp} was Emacs 22.1.
  
- @value{tramp} is also a GNU/Linux Debian package since February 2001.
+ @value{tramp} is also a Debian GNU/Linux package since February 2001.
  
  
  @c Installation chapter is necessary only in case of standalone
@@@ -615,6 -624,10 +614,6 @@@ or 2 to connect to the remote host.  (Y
  @file{~/.ssh/config}, the SSH configuration file, which protocol
  should be used, and use the regular @option{ssh} method.)
  
 -Two other variants, @option{ssh1_old} and @option{ssh2_old}, use the
 -@command{ssh1} and @command{ssh2} commands explicitly.  If you don't
 -know what these are, you do not need these options.
 -
  All the methods based on @command{ssh} have an additional feature: you
  can specify a host name which looks like @file{host#42} (the real host
  name, then a hash sign, then a port number).  This means to connect to
@@@ -692,14 -705,6 +691,14 @@@ This method is also similar to @option{
  @command{krlogin -x} command to log in to the remote host.
  
  
 +@item @option{ksu}
 +@cindex method ksu
 +@cindex ksu method
 +@cindex Kerberos (with ksu method)
 +
 +This is another method from the Kerberos suite.  It behaves like @option{su}.
 +
 +
  @item @option{plink}
  @cindex method plink
  @cindex plink method
@@@ -731,6 -736,19 +730,6 @@@ expects PuTTY session names, calling @s
  hasn't defined a user name.  Different port numbers must be defined in
  the session.
  
 -
 -@item @option{fish}
 -@cindex method fish
 -@cindex fish method
 -
 -This is an experimental implementation of the fish protocol, known from
 -the GNU Midnight Commander or the KDE Konqueror.  @value{tramp} expects
 -the fish server implementation from the KDE kioslave.  That means, the
 -file @file{~/.fishsrv.pl} is expected to reside on the remote host.
 -
 -The implementation lacks good performance.  The code is offered anyway,
 -maybe somebody can improve the performance.
 -
  @end table
  
  
@@@ -790,6 -808,10 +789,6 @@@ or 2 to connect to the remote host.  (Y
  @file{~/.ssh/config}, the SSH configuration file, which protocol
  should be used, and use the regular @option{scp} method.)
  
 -Two other variants, @option{scp1_old} and @option{scp2_old}, use the
 -@command{ssh1} and @command{ssh2} commands explicitly.  If you don't
 -know what these are, you do not need these options.
 -
  All the @command{ssh} based methods support the @samp{-p} feature
  where you can specify a port number to connect to in the host name.
  For example, the host name @file{host#42} tells @value{tramp} to
@@@ -953,7 -975,7 +952,7 @@@ anyway
  @cindex method ftp
  @cindex ftp method
  
 -This is not a native @value{tramp} method.  Instead of, it forwards all
 +This is not a native @value{tramp} method.  Instead, it forwards all
  requests to @value{ftppackagename}.
  @ifset xemacs
  This works only for unified filenames, see @ref{Issues}.
@@@ -968,20 -990,20 +967,20 @@@ This is another not natural @value{tram
  @command{smbclient} command on different Unices in order to connect to
  an SMB server.  An SMB server might be a Samba (or CIFS) server on
  another UNIX host or, more interesting, a host running MS Windows.  So
 -far, it is tested towards MS Windows NT, MS Windows 2000, and MS
 +far, it is tested against MS Windows NT, MS Windows 2000, and MS
  Windows XP.
  
  The first directory in the localname must be a share name on the remote
 -host.  Remember, that the @code{$} character in which default shares
 +host.  Remember that the @code{$} character, in which default shares
  usually end, must be written @code{$$} due to environment variable
  substitution in file names.  If no share name is given (i.e. remote
  directory @code{/}), all available shares are listed.
  
 -Since authorization is done on share level, you will be prompted
 -always for a password if you access another share on the same host.
 +Since authorization is done on share level, you will always be
 +prompted for a password if you access another share on the same host.
  This can be suppressed by @ref{Password handling}.
  
 -MS Windows uses for authorization both a user name and a domain name.
 +For authorization, MS Windows uses both a user name and a domain name.
  Because of this, the @value{tramp} syntax has been extended: you can
  specify a user name which looks like @code{user%domain} (the real user
  name, then a percent sign, then the domain name).  So, to connect to
@@@ -1005,10 -1027,33 +1004,10 @@@ methods, where in such a case the loca
  The @option{smb} method supports the @samp{-p} argument.
  
  @strong{Please note:} If @value{emacsname} runs locally under MS
 -Windows, this method isn't available.  Instead of, you can use UNC
 +Windows, this method isn't available.  Instead, you can use UNC
  file names like @file{//melancholia/daniel$$/.emacs}.  The only
  disadvantage is that there's no possibility to specify another user
  name.
 -
 -
 -@ifset emacsimap
 -@item @option{imap}
 -@cindex method imap
 -@cindex method imaps
 -@cindex imap method
 -@cindex imaps method
 -
 -Accessing an IMAP mailbox is intended to save files there as encrypted
 -message.  It could be used in case there are no other remote file
 -storages available.
 -
 -@value{tramp} supports both @option{imap} and @option{imaps} methods.
 -The latter one accesses the IMAP server over ssl.
 -
 -Both methods support the port number specification.
 -
 -Note, that special handling is needed for declaring a passphrase for
 -encryption / decryption of the messages (@pxref{Using an
 -authentication file}).
 -
 -@end ifset
  @end table
  
  
  The connection methods described in this section are based on GVFS
  @uref{http://en.wikipedia.org/wiki/GVFS}.  Via GVFS, the remote
  filesystem is mounted locally through FUSE.  @value{tramp} uses
 -internally this local mounted directory.
 +this local mounted directory internally.
  
  The communication with GVFS is implemented via D-Bus messages.
  Therefore, your @value{emacsname} must have D-Bus integration,
@@@ -1047,7 -1092,7 +1046,7 @@@ Both methods support the port number sp
  @cindex obex method
  
  OBEX is an FTP-like access protocol for simple devices, like cell
 -phones.  Until now @value{tramp} supports only OBEX over Bluetooth.
 +phones.  For the time being, @value{tramp} only supports OBEX over Bluetooth.
  
  
  @item @option{synce}
  
  The @option{synce} method allows communication with Windows Mobile
  devices.  Beside GVFS for mounting remote files and directories via
 -FUSE, it needs also the SYNCE-GVFS plugin.
 +FUSE, it also needs the SYNCE-GVFS plugin.
  @end table
  
  @defopt tramp-gvfs-methods
 -This customer option, a list, defines the external methods, which
 +This customer option, a list, defines the external methods which
  shall be used with GVFS.  Per default, these are @option{dav},
  @option{davs}, @option{obex} and @option{synce}.  Other possible
  values are @option{ftp}, @option{sftp} and @option{smb}.
@@@ -1079,10 -1124,10 +1078,10 @@@ These methods are intended to pass fire
  Therefore, they can be used for proxy host declarations
  (@pxref{Multi-hops}) only.
  
 -A gateway method must come always along with a method who supports
 +A gateway method must always come along with a method which supports
  port setting.  This is because @value{tramp} targets the accompanied
  method to @file{localhost#random_port}, from where the firewall or
 -proxy server is accessed to.
 +proxy server is accessed.
  
  Gateway methods support user name and password declarations.  These
  are used to authenticate towards the corresponding firewall or proxy
@@@ -1599,6 -1644,18 +1598,6 @@@ The port can be any @value{tramp} metho
  @pxref{External methods}), to match only this method.  When you omit
  the port, you match all @value{tramp} methods.
  
 -@ifset emacsimap
 -A special case are @option{imap}-like methods.  Authentication with
 -the IMAP server is performed via @file{imap.el}, there is no special
 -need from @value{tramp} point of view.  An additional passphrase, used
 -for symmetric encryption and decryption of the stored messages, should
 -be given with the special port indication @option{tramp-imap}:
 -
 -@example
 -machine melancholia port tramp-imap login daniel password ultrageheim
 -@end example
 -@end ifset
 -
  @anchor{Caching passwords}
  @subsection Caching passwords
  
@@@ -1673,7 -1730,7 +1672,7 @@@ multiple hops (@pxref{Multi-hops})
  When @value{tramp} detects a changed operating system version on a
  remote host (via the command @command{uname -sr}), it flushes all
  connection related information for this host, and opens the
 -connection, again.
 +connection again.
  
  
  @node Remote Programs
@@@ -1704,9 -1761,10 +1703,10 @@@ By default, this is set to a reasonabl
  machines.  The symbol @code{tramp-default-remote-path} is a place
  holder, it is replaced by the list of directories received via the
  command @command{getconf PATH} on your remote machine.  For example,
- on GNU Debian this is @file{/bin:/usr/bin}, whereas on Solaris this is
- @file{/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/opt/SUNWspro/bin}.  It is
- recommended to apply this symbol on top of @code{tramp-remote-path}.
+ on Debian GNU/Linux this is @file{/bin:/usr/bin}, whereas on Solaris
+ this is @file{/usr/xpg4/bin:/usr/ccs/bin:/usr/bin:/opt/SUNWspro/bin}.
+ It is recommended to apply this symbol on top of
+ @code{tramp-remote-path}.
  
  It is possible, however, that your local (or remote ;) system
  administrator has put the tools you want in some obscure local
@@@ -1728,7 -1786,7 +1728,7 @@@ as
  @end lisp
  
  Another possibility is to reuse the path settings of your remote
 -account, when you log in.  Usually, these settings are overwritten,
 +account when you log in.  Usually, these settings are overwritten,
  because they might not be useful for @value{tramp}.  The place holder
  @code{tramp-own-remote-path} preserves these settings.  You can
  activate it via
@@@ -1911,7 -1969,7 +1911,7 @@@ understand this syntax and will emit a 
  this line.
  
  Another example is the tilde (@code{~}) character, say when adding
 -@file{~/bin} to @code{$PATH}.  Many Bourne shells will not expand this
 +@file{~/bin} to @code{PATH}.  Many Bourne shells will not expand this
  character, and since there is usually no directory whose name consists
  of the single character tilde, strange things will happen.
  
@@@ -1938,38 -1996,6 +1938,38 @@@ shell is Bourne-ish already, then it mi
  @command{exec /bin/sh} step.  But how to find out if the shell is
  Bourne-ish?
  
 +
 +@item Interactive shell prompt
 +
 +@value{tramp} redefines the shell prompt in order to parse the shell's
 +output robustly.  When calling an interactive shell by @kbd{M-x
 +shell}, this doesn't look nice.
 +
 +You can redefine the shell prompt by checking the environment variable
 +@code{INSIDE_EMACS}, which is set by @value{tramp}, in your startup
 +script @file{~/.emacs_SHELLNAME}. @code{SHELLNAME} might be the string
 +@code{bash} or similar, in case of doubt you could set it the
 +environment variable @code{ESHELL} in your @file{.emacs}:
 +
 +@lisp
 +(setenv "ESHELL" "bash")
 +@end lisp
 +
 +Your file @file{~/.emacs_SHELLNAME} could contain code like
 +
 +@example
 +# Reset the prompt for remote Tramp shells.
 +if [ "$@{INSIDE_EMACS/*tramp*/tramp@}" == "tramp" ] ; then
 +   PS1="[\u@@\h \w]$ "
 +fi
 +@end example
 +
 +@ifinfo
 +@ifset emacs
 +@xref{Interactive Shell, , , @value{emacsdir}}.
 +@end ifset
 +@end ifinfo
 +
  @end table
  
  
@@@ -2388,8 -2414,8 +2388,8 @@@ If the configuration files (@pxref{Cust
  @value{tramp} uses for analysis of completion, offer user names, those user
  names will be taken into account as well.
  
 -Remote machines, which have been visited in the past and kept
 -persistently (@pxref{Connection caching}), will be offered too.
 +Remote machines which have been visited in the past and kept
 +persistently (@pxref{Connection caching}) will be offered too.
  
  Once the remote machine identification is completed, it comes to
  filename completion on the remote host.  This works pretty much like
@@@ -2429,8 -2455,8 +2429,8 @@@ Example
  
  A remote directory might have changed its contents out of
  @value{emacsname} control, for example by creation or deletion of
 -files by other processes.  Therefore, during filename completion the
 -remote directory contents is reread regularly in order to detect such
 +files by other processes.  Therefore, during filename completion, the
 +remote directory contents are reread regularly in order to detect such
  changes, which would be invisible otherwise (@pxref{Connection caching}).
  
  @defopt tramp-completion-reread-directory-timeout
@@@ -2452,15 -2478,6 +2452,15 @@@ remote file names.  It does not work fo
  @option{smb} methods.  Association of a pty, as specified in
  @code{start-file-process}, is not supported.
  
 +@code{process-file} and @code{start-file-process} work on the remote
 +host when the variable @code{default-directory} is remote:
 +
 +@lisp
 +(let ((default-directory "/ssh:remote.host:"))
 +  (start-file-process "grep" (get-buffer-create "*grep*")
 +                      "/bin/sh" "-c" "grep -e tramp *"))
 +@end lisp
 +
  @ifset emacsgvfs
  If the remote host is mounted via GVFS (see @ref{GVFS based methods}),
  the remote filesystem is mounted locally.  Therefore, there are no
@@@ -2503,7 -2520,7 +2503,7 @@@ Adding an entry can be performed via @c
  Changing or removing an existing entry is not encouraged.  The default
  values are chosen for proper @value{tramp} work.  Nevertheless, if for
  example a paranoid system administrator disallows changing the
 -@var{$HISTORY} environment variable, you can customize
 +@code{HISTORY} environment variable, you can customize
  @code{tramp-remote-process-environment}, or you can apply the
  following code in your @file{.emacs}:
  
@@@ -2522,7 -2539,7 +2522,7 @@@ integrate them as well.  @xref{Bug Repo
  
  If you want to run a remote program, which shall connect the X11
  server you are using with your local host, you can set the
 -@var{$DISPLAY} environment variable on the remote host:
 +@code{DISPLAY} environment variable on the remote host:
  
  @lisp
  (add-to-list 'tramp-remote-process-environment
@@@ -2740,13 -2757,13 +2740,13 @@@ There is also a Savannah project page
  @item
  Which systems does it work on?
  
- The package has been used successfully on GNU Emacs 22, GNU Emacs 23,
XEmacs 21 (starting with 21.4), and SXEmacs 22.
+ The package has been used successfully on Emacs 22, Emacs 23, XEmacs
+ 21 (starting with 21.4), and SXEmacs 22.
  
  The package was intended to work on Unix, and it really expects a
 -Unix-like system on the remote end (except the @option{smb} and
 -@option{imap} methods), but some people seemed to have some success
 -getting it to work on MS Windows XP/Vista/7 @value{emacsname}.
 +Unix-like system on the remote end (except the @option{smb} method),
 +but some people seemed to have some success getting it to work on MS
 +Windows XP/Vista/7 @value{emacsname}.
  
  
  @item
@@@ -2763,10 -2780,7 +2763,10 @@@ Use an external method, like @option{sc
  Use caching.  This is already enabled by default.  Information about
  the remote host as well as the remote files are cached for reuse.  The
  information about remote hosts is kept in the file specified in
 -@code{tramp-persistency-file-name}.  Keep this file.
 +@code{tramp-persistency-file-name}.  Keep this file.  If you are
 +confident that files on remote hosts are not changed out of
 +@value{emacsname}' control, set @code{remote-file-name-inhibit-cache}
 +to @code{nil}.
  
  Disable version control.  If you access remote files which are not
  under version control, a lot of check operations can be avoided by
@@@ -2796,7 -2810,7 +2796,7 @@@ reasons heading the bug mailing list
  Unknown characters in the prompt
  
  @value{tramp} needs to recognize the prompt on the remote machine
 -after execution any command.  This is not possible, when the prompt
 +after execution any command.  This is not possible when the prompt
  contains unknown characters like escape sequences for coloring.  This
  should be avoided on the remote side.  @xref{Remote shell setup}. for
  setting the regular expression detecting the prompt.
@@@ -2871,7 -2885,7 +2871,7 @@@ checksum
  When your network connection is down, @command{ssh} sessions might
  hang.  @value{tramp} cannot detect it safely, because it still sees a
  running @command{ssh} process.  Timeouts cannot be used as well,
 -because it cannot be predicted, how long a remote command will last,
 +because it cannot be predicted how long a remote command will last,
  for example when copying very large files.
  
  Therefore, you must configure the @command{ssh} process to die
@@@ -3081,7 -3095,7 +3081,7 @@@ You can define default methods and use
  The file name left to type would be
  @kbd{C-x C-f @trampfn{, , news.my.domain, /opt/news/etc}}.
  
 -Note, that there are some useful settings already.  Accessing your
 +Note that there are some useful settings already.  Accessing your
  local host as @samp{root} user, is possible just by @kbd{C-x C-f
  @trampfn{su, , ,}}.
  
@@@ -3113,7 -3127,7 +3113,7 @@@ Lisp
  @end lisp
  
  Then you need simply to type @kbd{C-x C-f $xy @key{RET}}, and here you
 -are.  The disadvantage is, that you cannot edit the file name, because
 +are.  The disadvantage is that you cannot edit the file name, because
  environment variables are not expanded during editing in the
  minibuffer.
  
@@@ -3285,7 -3299,7 +3285,7 @@@ You need to load @file{bbdb}
  
  Then you can create a BBDB entry via @kbd{M-x bbdb-create-ftp-site}.
  Because BBDB is not prepared for @value{tramp} syntax, you must
 -specify a method together with the user name, when needed. Example:
 +specify a method together with the user name when needed. Example:
  
  @example
  @kbd{M-x bbdb-create-ftp-site @key{RET}}
@@@ -3302,7 -3316,7 +3302,7 @@@ pressing the key @key{F}
  
  @end enumerate
  
 -I would like to thank all @value{tramp} users, who have contributed to
 +I would like to thank all @value{tramp} users who have contributed to
  the different recipes!
  
  
@@@ -3325,7 -3339,7 +3325,7 @@@ On the remote host, you start the Emac
  (server-start)
  @end lisp
  
 -Make sure, that the result of @code{(system-name)} can be resolved on
 +Make sure that the result of @code{(system-name)} can be resolved on
  your local host; otherwise you might use a hard coded IP address.
  
  The resulting file @file{~/.emacs.d/server/server} must be copied to
@@@ -3459,7 -3473,7 +3459,7 @@@ its complete cache keeping attributes f
  it has seen so far.
  
  This is a performance degradation, because the lost file attributes
 -must be recomputed, when needed again.  In cases the caller of
 +must be recomputed when needed again.  In cases the caller of
  @code{process-file} knows that there are no file attribute changes, it
  shall let-bind the variable @code{process-file-side-effects} to
  @code{nil}.  @value{tramp} wouldn't flush the file attributes cache then.
@@@ -3583,9 -3597,9 +3583,9 @@@ printed and deleted
  But I have decided that this is too fragile to reliably work, so on some
  systems you'll have to do without the uuencode methods.
  
- @item The @value{tramp} filename syntax differs between GNU Emacs and XEmacs.
+ @item The @value{tramp} filename syntax differs between Emacs and XEmacs.
  
- The GNU Emacs maintainers wish to use a unified filename syntax for
+ The Emacs maintainers wish to use a unified filename syntax for
  Ange-FTP and @value{tramp} so that users don't have to learn a new
  syntax.  It is sufficient to learn some extensions to the old syntax.
  
@@@ -3646,3 -3660,7 +3646,3 @@@ for @value{emacsothername}
  @c * Use `filename' resp. `file name' consistently.
  @c * Use `host' resp. `machine' consistently.
  @c * Consistent small or capitalized words especially in menues.
 -
 -@ignore
 -   arch-tag: f96dd66e-6dd3-4c92-8d77-9c56205ba808
 -@end ignore
diff --combined doc/misc/trampver.texi
index ff5641fb4b40418e48faa84b406ae7a87cbb552f,1cfcba637aeb449723001f1f56956d72c091dfe3..437b1372c11d1c061e9edecd157940bd2f6dc3da
@@@ -2,13 -2,14 +2,13 @@@
  @c texi/trampver.texi.  Generated from trampver.texi.in by configure.
  
  @c This is part of the Emacs manual.
 -@c Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009,
 -@c   2010, 2011 Free Software Foundation, Inc.
 +@c Copyright (C) 2003-2011 Free Software Foundation, Inc.
  @c See file doclicense.texi for copying conditions.
  
  @c In the Tramp CVS, the version number is auto-frobbed from
  @c configure.ac, so you should edit that file and run
  @c "autoconf && ./configure" to change the version number.
 -@set trampver 2.1.20
 +@set trampver 2.2.1-pre
  
  @c Other flags from configuration
  @set instprefix /usr/local
  @set emacsgw
  @end ifclear
  
 -@c Whether or not describe IMAP support.
 -@ifclear noemacsimap
 -@set emacsimap
 -@end ifclear
 -
  @c Some flags which make the text independent on the (X)Emacs flavor.
  @c "emacs" resp "xemacs" are set in the Makefile.  Default is "emacs".
  @ifclear emacs
@@@ -50,6 -56,7 +50,6 @@@
  @set emacsothername     XEmacs
  @set emacsotherdir      xemacs
  @set emacsotherfilename tramp-xemacs.html
 -@set japanesemanual     tramp_ja-emacs.html
  @end ifset
  
  @c XEmacs counterparts.
  @set postfixhop         /
  @set ipv6prefix
  @set ipv6postfix
- @set emacsothername     GNU Emacs
+ @set emacsothername     Emacs
  @set emacsotherdir      emacs
  @set emacsotherfilename tramp-emacs.html
 -@set japanesemanual     tramp_ja-xemacs.html
  @end ifset
 -
 -@ignore
 -   arch-tag: e0fe322c-e06b-46eb-bb5b-d091b521f41c
 -@end ignore
diff --combined lisp/ChangeLog
index 14ef035445af13f8fc8e52ed77ad92d016a7ddf1,75010513c124e184d5d38d7fe458cd2d31bb3770..df3098332f924fd74fd788bf29146e7f6a63bb85
 -2011-02-22  Kenichi Handa  <handa@m17n.org>
 -
+ 2011-02-23  Kenichi Handa  <handa@m17n.org>
+       * mail/rmailmm.el (rmail-mime-process-multipart): Do not signal an
+       error when a multipart boundary in the nested multipart is found.
+       * mail/rmail.el (rmail-start-mail): Decode "encoded-words" of
+       header components.
 +2011-02-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * dired.el (dired-mode): Call hack-dir-local-variables-non-file-buffer.
 +      * dired-x.el (dired-omit-mode): Safe if boolean.
 +      (dired-enable-local-variables): Fix doc and custom type.
 +      (dired-enable-local-variables, dired-local-variables-file)
 +      (dired-hack-local-variables): Make obsolete.
 +      (dired-omit-here-always): Use dir-locals.el instead.
 +
 +      * files.el (safe-local-eval-forms): Add the write-file-hooks version.
 +
 +2011-02-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * help-fns.el (describe-function-1): Don't signal an error just because
 +      the DOC file disappeared.
 +
 +2011-02-22  Seppo Sade <sepposade1@gmail.com>  (tiny change)
 +
 +      * eshell/esh-ext.el (eshell-external-command): Do not restrict
 +      remote check to "ftp".  (Bug#8089)
 +
 +2011-02-21  Alan Mackenzie  <acm@muc.de>
 +
 +      Fix bug #7930.
 +      * progmodes/cc-engine.el (c-state-literal-at): Prevent positions
 +      in macros finding their way into c-state-nonlit-pos-cache.
 +      Strengthen the comments.
 +      (c-state-dump): New commented out diagnostic routine.
 +
 +2011-02-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-rfn-eshadow-setup-minibuffer): Do not use
 +      `field' property of `rfn-eshadow-overlay'.
 +
 +2011-02-21  Lars Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/netrc.el (netrc-parse): Comment fix.
 +
 +2011-02-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * color.el (color-name-to-rgb): Rename from color-rgb->normalize.
 +      Autoload.  Add optional arg FRAME, and pass it to color-values.
 +      (color-complement): Caller changed.  Doc fix.
 +      (color-gradient): Rewrite for better clarity and efficiency.
 +
 +      * faces.el (color-values): Use cond for clarity.  Doc fix.
 +
 +      * facemenu.el (color-rgb-to-hsv): Delete; use the version in
 +      color.el instead.
 +      (list-colors-sort-key, list-colors-print):
 +      Use color-normalized-values.
 +
 +2011-02-20  Drew Adams  <drew.adams@oracle.com>
 +
 +      * color.el: First part of merge from hexrgb.el.
 +      (color-rgb-to-hex): Rename from color-rgb->hex.
 +      (color-rgb-to-hsv): Rename from color-rgb->hsv.  Force hue and
 +      saturation to zero if the value is too small.
 +      (color-rgb-to-hsl): Rename from color-rgb->hsl.
 +      (color-srgb-to-xyz): Rename from color-srgb->xyz.  Doc fix.
 +      (color-xyz-to-srgb): Rename from color-xyz->srgb.  Doc fix.
 +      (color-xyz-to-lab): Rename from color-xyz->lab.  Doc fix.
 +      (color-lab-to-xyz): Rename from color-lab->xyz.  Doc fix.
 +      (color-lab-to-srgb): Rename from color-lab->srgb.  Doc fix.
 +      (color-cie-de2000): Doc fix.
 +
 +2011-02-20  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-cmds.el (c-beginning-of-statement): Avoid loop in
 +      locating the beginning of a macro.  (Bug#7595)
 +
 +2011-02-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * edmacro.el (edmacro-eight-bits): Make it a defcustom.
 +      Don't autoload it.
 +
 +      * autorevert.el (auto-revert-mode, auto-revert-tail-mode)
 +      (global-auto-revert-ignore-buffer): Remove leading "*" from docs.
 +
 +2011-02-19  Dmitry Bolshakov <dmitry.bolshakov@bridge-quest.com>
 +            Dima Kogan <dkogan@cds.caltech.edu>  (tiny change)
 +
 +      * progmodes/hideshow.el (hs-find-block-beginning)
 +      (hs-hide-level-recursive): Ignore comments when parsing braces
 +      (Bug#8036).
 +
 +2011-02-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * vc/vc-bzr.el (vc-bzr-bound-branch-p): New function.
 +      (vc-bzr-pull): Use it.
 +
 +2011-02-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * vc/vc-bzr.el (vc-bzr--branch-conf): Function deleted.
 +      (vc-bzr-branch-conf): New function, similar to vc-bzr--branch-conf
 +      but returning an alist.  Ignore comments in bzr conffile.
 +      (vc-bzr-pull, vc-bzr-merge-branch): Use vc-bzr-branch-conf.
 +      (vc-bzr-error-regex-alist): New var.
 +      (vc-bzr-merge-branch): Use it to highlight the pull/merge buffer.
 +
 +      * vc/vc-dispatcher.el (vc-do-async-command):
 +      Bind inhibit-read-only to t.
 +
 +      * progmodes/compile.el (compilation--flush-directory-cache):
 +      Handle the case where cdr of compilation--flush-directory-cache
 +      points to no buffer, which can occur if we previously switched to
 +      compilation-mode in a pregenerated buffer.
 +
  2011-02-19  Kenichi Handa  <handa@m17n.org>
  
        * mail/rmailmm.el (rmail-mime-find-header-encoding): Be sure to
        (rmail-show-mime): When rmail-mime-coding-system is nil, set
        buffer-file-coding-system to undecided.
  
 -2011-02-18  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * image-mode.el (image-toggle-display-image): Disable
 -      require-final-newline in buffers visiting binary image files.
 -      (Bug#8047)
 +2011-02-19  Eli Zaretskii  <eliz@gnu.org>
  
        * international/mule-cmds.el (read-char-by-name, ucs-insert):
        Document completion with asterisk and a substring.
  
 -2011-02-18  Glenn Morris  <rgm@gnu.org>
 +2011-02-19  Glenn Morris  <rgm@gnu.org>
  
        * files.el (find-file-literally): Doc fix.
  
 -2011-02-17  Glenn Morris  <rgm@gnu.org>
 -
        * simple.el (rfc822-goto-eoh): Give it a doc-string.
  
        * log-edit.el (log-edit-insert-changelog):
        Fix `log-edit-strip-single-file-name' functionality.  (Bug#8057)
  
 -2011-02-14  Chong Yidong  <cyd@stupidchicken.com>
 +2011-02-19  Glenn Morris  <rgm@gnu.org>
  
 -      * pgg-gpg.el (pgg-gpg-process-region): Bind
 -      delete-by-moving-to-trash to nil.
 +      * dired-x.el: Don't require dired-aux.
 +      (dired-do-create-files, dired-mark-read-regexp)
 +      (dired-do-create-files-regexp): Autoload from dired-aux.
  
 -      * pgg-pgp.el (pgg-pgp-process-region, pgg-pgp-verify-region)
 -      (pgg-pgp-snarf-keys-region):
 -      * pgg-pgp5.el (pgg-pgp5-process-region, pgg-pgp5-verify-region)
 -      (pgg-pgp5-snarf-keys-region): Likewise.
 +      * dired-x.el (dired-find-buffer-nocreate): Merge into dired.el.
 +      * dired.el (dired-find-buffer-nocreate): Merge dired-x version.
  
 -2011-02-12  Chong Yidong  <cyd@stupidchicken.com>
 +      * dired-x.el (dired-read-shell-command): Merge into dired-aux's version.
 +      * dired-aux.el (dired-read-shell-command): Merge dired-x's version.
  
 -      * files.el (copy-directory): Revert to pre-2011-01-29 version.
 +      * dired-x.el (dired-clean-up-after-deletion): Merge into dired.el.
 +      * dired.el (dired-clean-up-after-deletion): Merge dired-x's version.
 +      (dired-clean-up-buffers-too): Declare.
  
 -2011-02-12  Chong Yidong  <cyd@stupidchicken.com>
 +      * dired-x.el (dired-initial-position): Merge into dired.el's version.
 +      * dired.el (dired-initial-position): Merge dired-x's version here.
 +      (dired-find-subdir): Declare.
  
 -      * epg.el (epg-delete-output-file, epg-decrypt-string)
 -      (epg-verify-string, epg-sign-string, epg-encrypt-string): Bind
 -      delete-by-moving-to-trash to nil.
 +      * dired-x.el (dired-omit-new-add-entry): Merge into dired-add-entry.
 +      * dired-aux.el (dired-add-entry): Give it a doc-string.
 +      Merge dired-x's dired-omit handling here.
 +      (dired-omit-mode, dired-omit-regexp, dired-omit-localp): Declare.
  
 -      * epa-file.el (epa-file-insert-file-contents): Likewise.
 +      * international/mule-diag.el (list-input-methods-1):
 +      Indent all lines of multi-line doc-strings.  (Bug#8066)
  
 -2011-02-10  Glenn Morris  <rgm@gnu.org>
 +2011-02-18  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * emacs-lisp/cl-seq.el (union, nunion, intersection)
 -      (nintersection, set-difference, nset-difference)
 -      (set-exclusive-or, nset-exclusive-or): Doc fix.
 +      Fix 2011-02-02 changes.
  
 -      * ediff-ptch.el (ediff-fixup-patch-map): Doc fix.
 +      * apropos.el (apropos-print): Call apropos-mode before setting up
 +      buffer variables.  Use inhibit-read-only.
  
 -2011-02-08  Glenn Morris  <rgm@gnu.org>
 +      * emacs-lisp/package.el (package--list-packages):
 +      Call package-menu-mode before setting up buffer variables.
  
 -      * faces.el (face-attr-match-p): Handle the obsolete :bold and
 -      :italic props, so that frame-set-background-mode works.  (Bug#7966)
 +      * play/solitaire.el (solitaire): Call solitaire-mode before
 +      setting up buffer variables.  Use inhibit-read-only.
  
 -2011-02-07  Glenn Morris  <rgm@gnu.org>
 +2011-02-18  Lawrence Mitchell  <wence@gmx.li>
  
 -      * simple.el (next-error): Doc fix.
 +      * progmodes/sh-script.el (sh-syntax-propertize-here-doc): (bug#8053)
 +      Bind case-fold-search to nil when looking for end of here-doc.
  
 -2011-02-06  Chong Yidong  <cyd@stupidchicken.com>
 -            Thierry Volpiatto <thierry.volpiatto@gmail.com>
 +2011-02-18  Eli Zaretskii  <eliz@gnu.org>
  
 -      * files.el (copy-directory): New arg COPY-AS-SUBDIR.  If nil,
 -      don't copy as a subdirectory.
 +      * image-mode.el (image-toggle-display-image):
 +      Set find-file-literally non-nil in buffers visiting binary image
 +      files.  (Bug#8047)
  
 -2011-02-05  Glenn Morris  <rgm@gnu.org>
 +2011-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * emacs-lisp/cl-macs.el (return-from): Fix doc typo.
 +      * files.el (cd): Make completion obey cd-path (bug#7924).
  
 -2011-02-04  Glenn Morris  <rgm@gnu.org>
 +2011-02-18  Glenn Morris  <rgm@gnu.org>
  
 -      * calendar/diary-lib.el (diary-font-lock-keywords):
 -      Tweak diary-time-regexp match.  (Bug#7891)
 +      * progmodes/prolog.el: Don't require compile when compiling.
 +      (compilation-shell-minor-mode, compilation-error-regexp-alist)
 +      (compilation-forget-errors, compilation-fake-loc)
 +      (compilation-parse-errors-function, compilation-error-list): Declare.
 +      (prolog-inferior-mode): Require 'compile.
 +
 +      * emulation/cua-base.el (pc-selection-mode): Declare.
 +
 +      * emacs-lisp/eieio-custom.el: Set generated-autoload-file.
 +      (customize-object): Add autoload cookie.
 +      * emacs-lisp/eieio-opt.el: Set generated-autoload-file.
 +      (eieio-browse, describe-class, eieio-describe-class)
 +      (eieio-describe-constructor, describe-generic, eieio-describe-generic)
 +      (eieio-help-mode-augmentation-maybee): Add autoload cookies.
 +      * emacs-lisp/eieio.el: Regenerate with automatic autoloads.
 +      * Makefile.in (autoloads): Make eieio.el writable.
 +
 +      * dired-x.el (dired-clean-up-after-deletion, dired-do-relsymlink)
 +      (dired-do-relsymlink-regexp, dired-find-buffer-nocreate): Use #'.
 +      (dired-hack-local-variables): Use inhibit-read-only.
 +      (dired-guess-default): Simplify.
 +      (dired-make-relative-symlink): Use dotimes.
 +      (dired-simultaneous-find-file): Use dolist.
 +      (dired-mark-sexp): Remove unneeded `if'.  Use line-end-position.
 +      (dired-x-hands-off-my-keys): Doc fix.
 +      (dired-x-bind-find-file): Doc fix.  Use remapping.
 +      (after-init-hook): No need to add dired-x-bind-find-file.
 +      (dired-x-find-file, dired-x-find-file-other-window): Doc fixes.
 +      No need to call expand-file-name.
 +      (dired-filename-at-point): Remove unused locals `end', `filename'.
 +
 +2011-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el (pcase--u1): Understand non-linear patterns.
 +
 +2011-02-18  Christian Ohler  <ohler@gnu.org>
 +
 +      * emacs-lisp/ert.el (ert--setup-results-buffer)
 +      (ert-results-pop-to-backtrace-for-test-at-point)
 +      (ert-results-pop-to-messages-for-test-at-point)
 +      (ert-results-pop-to-should-forms-for-test-at-point)
 +      (ert-results-pop-to-timings): Revert parts of change 2011-02-02T17:59:44Z!sds@gnu.org that
 +      were incorrect and unnecessary.  This should make `make check'
 +      pass again.
 +
 +2011-02-17  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      * lisp/allout-widgets.el: (allout-widgets-icons-light-subdir)
 +      (allout-widgets-icons-dark-subdir): Track relocations of icons
 +      * lisp/allout.el: Remove commentary about remove encryption
 +      passphrase mnemonic support and verification.
 +      (allout-encrypt-string): (allout-encrypt-string): Recognize epg
 +      failure to decrypt gpg2 armored text using gpg1, and indicate that
 +      the gpg version *might* be the problem in the error message.
 +
 +2011-02-17  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * net/rcirc.el (rcirc-float-time): New function.
 +      (rcirc-keepalive, rcirc-handler-ctcp-KEEPALIVE)
 +      (rcirc-ctcp-sender-PING): Use it.
  
 -      * progmodes/f90.el (f90-find-tag-default): New function.  (Bug#7919)
 -      (f90-mode): Use it for mode's `find-tag-default-function' property.
 +2011-02-17  Glenn Morris  <rgm@gnu.org>
  
 -2011-02-03  Glenn Morris  <rgm@gnu.org>
 +      * speedbar.el (speedbar-ignored-modes, speedbar-file-unshown-regexp)
 +      (speedbar-update-flag, speedbar-fetch-etags-command)
 +      (speedbar-fetch-etags-arguments):
 +      * term.el (term-buffer-maximum-size, term-input-chunk-size)
 +      (term-completion-autolist, term-completion-addsuffix)
 +      (term-completion-recexact, term-completion-fignore):
 +      * term/sup-mouse.el (sup-mouse-fast-select-window):
 +      * term/x-win.el (x-select-request-type):
 +      Convert some defvars with "*" to defcustoms.
  
 -      * ibuf-ext.el (ibuffer-filter-disable): Make it work.  (Bug#7969)
 +      * shell.el (shell-delimiter-argument-list): Set it to nil.  (Bug#8027)
  
 -      * faces.el (set-face-attribute): Doc fix.  (Bug#2659)
 +      * vc/vc.el (vc-default-previous-version):
 +      Remove alias that points nowhere.  (Bug#4496)
  
 -2011-02-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * dired-x.el (dired-clean-up-after-deletion):
 +      kill-buffer does not need save-excursion.
 +      (dired-do-run-mail): Doc fix.
 +      (dired-filename-at-point): Doc fix.
 +      Use looking-at, and skip-chars rather than re search.
  
 -      * pcomplete.el (pcomplete-here*): Backport fix for mistaken change
 -      (bug#7959) and (bug#5935).
 +      * dired-x.el (dired-filename-at-point): Fix 8-year old typo.
  
 -2011-01-31  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +2011-02-16  Ken Manheimer  <ken.manheimer@gmail.com>
  
 -      * net/rcirc.el: Clean log filenames (Bug#7933).
 -      (rcirc-log-write): Use convert-standard-filename.
 -      (rcirc-log-filename-function): Documentation updates.
 +      * allout-widgets.el: New allout extension that shows allout
 +      outline structure with graphical widgets.  'allout-widgets'
 +      customize group is an 'allout' subgroup, for easy discovery.
  
 -2011-01-31  Alan Mackenzie  <acm@muc.de>
 +      * allout.el: Include PGP and GnuPG in Keywords, and other
 +      commentary refinements.
 +      (allout-abbreviate-flattened-numbering): Rename to
 +      allout-flattened-numbering-abbreviation, and
 +      define-obsolete-variable-alias the old name.
 +      (allout-flattened-numbering-abbreviation): Rename from
 +      allout-abbreviate-flattened-numbering.
 +      (allout-mode-p): Include among autoloads, for use by other modes
 +      with impunity.
 +      (allout-listify-exposed):
 +      Use allout-flattened-numbering-abbreviation.
 +      (allout-encrypt-string): Use set-buffer-multibyte directly.
 +      (allout-set-buffer-multibyte): Remove.
  
 -      * progmodes/cc-cmds.el (c-forward-over-illiterals):
 -      Continue parsing if we encounter a naked # (Bug#7595).
 -      (c-beginning-of-statement): Avoid loop in locating the beginning
 -      of a macro.
 +2011-02-16  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
 +      * simple.el (just-one-space): Remove useless `or' call.
  
 -      * files.el (copy-directory): Fix arguments to recursive call.
 +2011-02-16  Alex Harsanyi  <AlexHarsanyi@gmail.com>
  
 -2011-01-29  Daiki Ueno  <ueno@unixuser.org>
 +      * net/soap-client.el (soap-well-known-xmlns, soap-local-xmlns)
 +      (soap-default-xmlns, soap-target-xmlns, soap-multi-refs)
 +      (soap-decoded-multi-refs, soap-current-wsdl)
 +      (soap-encoded-namespaces): Rename CL-style *...* variables.
  
 -      * epg.el (epg--status-KEYEXPIRED, epg--status-KEYREVOKED):
 -      Don't presume KEYEXPIRED and KEYREVOKED to be a fatal error status
 -      (Bug#7931).
 +2011-02-16  Michael Albinus  <michael.albinus@gmx.de>
  
 -2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
 +      * net/soap-client.el: Add "comm" and "hypermedia" to the
 +      keywords.  Reflow too long lines.
  
 -      * files.el (copy-directory): If destination is an existing
 -      directory, copy into a subdirectory there.
 +      * net/soap-inspect.el: Ditto.  Require 'cl.
  
 -2011-01-29  Andreas Schwab  <schwab@linux-m68k.org>
 +2011-02-16  Bastien Guerry  <bzg@altern.org>
  
 -      * emacs-lisp/shadow.el (load-path-shadows-find): Ignore leim-list
 -      files.
 +      * play/doctor.el (doctor-mode): Bugfix: escape the "," character
 +      in a `doctor-type' argument.
  
 -2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
 +2011-02-16  Alex Harsanyi  <AlexHarsanyi@gmail.com>
  
 -      * image-dired.el (image-dired-mouse-display-image): No-op if no
 -      file is found (Bug#7817).
 +      * net/soap-client.el:
 +      * net/soap-inspect.el: New files.
  
 -      * mouse.el (mouse-menu-non-singleton): Doc fix (Bug#7801).
 +2011-02-16  Leo  <sdl.web@gmail.com>
  
 -2011-01-28  Kenichi Handa  <handa@m17n.org>
 +      * dired-x.el (dired-mode-map, dired-extra-startup):
 +      Remove dired-copy-filename-as-kill since it's already in dired.el.
  
 -      * international/quail.el (quail-keyboard-layout-alist):
 -      Remove superfluous SPC for "pc105-uk" (bug#7927).
 +2011-02-16  Glenn Morris  <rgm@gnu.org>
  
 -2011-01-27  Glenn Morris  <rgm@gnu.org>
 +      * dired-x.el (dired-bind-jump, dired-bind-man, dired-bind-info):
 +      Doc fixes.  Add :set property, replacing top-level calls.
 +      (dired-vm-read-only-folders, dired-vm): Doc fix (drop v. old VM 4).
 +      (dired-guess-shell-gnutar): Test tar version rather than system-type.
 +      (dired-extra-startup, dired-man, dired-info): Doc fixes.
 +      (dired-clean-up-after-deletion): Use when and dolist.
 +      (dired-jump): Use unless and when.
 +      (dired-virtual): Use line-end-position.
 +      (dired-default-directory-alist): Rename from default-directory-alist.
 +      (dired-default-directory): Update for above name change.
 +      (dired-vm): Drop VM < 5 and simplify.
 +      (dired-buffer-more-recently-used-p): Rewrite.
 +      (dired-filename-at-point): Use when and or.
 +      (dired-x-read-filename-at-point): Rename from read-filename-at-point.
 +      Update callers.
  
 -      * msb.el (msb-menu-bar-update-buffers): Update for changed
 -      argument handling of menu-bar-select-frame.  (Bug#7902)
 +2011-02-15  Glenn Morris  <rgm@gnu.org>
  
 -2011-01-27  Chong Yidong  <cyd@stupidchicken.com>
 +      * dired-x.el: Use easymenu for menu items.  Fix item capitalization.
  
 -      * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Set a limit
 -      to the recursion depth (Bug#7722).
 +2011-02-14  Chong Yidong  <cyd@stupidchicken.com>
  
 -2011-01-26  Roy Liu  <carsomyr@gmail.com>  (tiny change)
 +      * vc/vc-git.el (vc-git-root-log-format): New option for
 +      customizing log format.
 +      (vc-git-print-log, vc-git-log-outgoing, vc-git-log-incoming)
 +      (vc-git-log-view-mode): Use it.
 +      (vc-git-expanded-log-entry): New function.
 +      (vc-git-log-view-mode): Use it.  Truncate lines in root log.
  
 -      * term/ns-win.el (ns-find-file): Expand ns-input-file with
 -      command-line-default-directory (Bug#7872).
 +      * vc/vc-hg.el (vc-hg-root-log-template): New option for
 +      customizing log format.
 +      (vc-hg-print-log): Use it.
 +      (vc-hg-expanded-log-entry): New function.
 +      (vc-hg-log-view-mode): Use vc-hg-root-log-template and
 +      vc-hg-expanded-log-entry.  Truncate lines in root log.
  
 -2011-01-25  Glenn Morris  <rgm@gnu.org>
 +      * vc/vc-bzr.el (vc-bzr-log-view-mode): Truncate lines in root log.
  
 -      * comint.el (comint-mode): Doc fix.  (Bug#7897)
 +      * vc/log-view.el (log-view-mode-menu):
 +      Add log-view-toggle-entry-display.
  
 -2011-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-02-14  Glenn Morris  <rgm@gnu.org>
  
 -      * files.el (file-name-non-special): Only change buffer-file-name after
 -      insert-file-contents if it's `visit'ing the file (bug#7854).
 +      * dired-x.el: Don't require man when compiling.
 +      (dired-omit-extensions, dired-local-variables-file)
 +      (dired-x-hands-off-my-keys): Make them defcustoms.
 +      (Man-support-local-filenames, Man-getpage-in-background): Declare.
 +      (vm-visit-folder): Declare rather than defining.
 +      (dired-x-help-address, dired-x-variable-list): Remove.
 +      (dired-x-submit-report): Make it an obsolete alias.
  
 -2011-01-23  Chong Yidong  <cyd@stupidchicken.com>
 +2011-02-14  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * dired.el (dired-revert): Doc fix (Bug#7758).
 +      * makefile.w32-in (TRAMP_SRC): Remove tramp-imap.el.
  
 -2011-01-23  Nobuyoshi Nakada  <nobu@ruby-lang.org>
 +2011-02-13  Teodor Zlatanov  <tzz@lifelogs.com>
  
 -      * progmodes/ruby-mode.el (ruby-here-doc-beg-match): Fix for
 -      here-doc which ends with an underscore.
 -      (ruby-mode-set-encoding): Skip shebang line always.
 -      (ruby-mode-map): Bind C-c C-c to comment-region.
 -      (ruby-font-lock-keywords): Highlight literal hash key labels as symbols.
 -      (ruby-forward-sexp): Stop after literal hash key labels.
 -      (ruby-font-lock-syntactic-keywords): Highlight regexp after open
 -      bracket.
 +      * net/imap.el: Bring it back.
  
 -2011-01-22  Keitaro Miyazaki  <keitaro.miyazaki@gmail.com>  (tiny change)
 +2011-02-13  Alan Mackenzie  <acm@muc.de>
  
 -      * emacs-lisp/re-builder.el (reb-mode-map): Set case-fold-search in
 -      the correct buffer (Bug#7650).
 +      * progmodes/cc-fonts.el (c-font-lock-declarations): Remove a
 +      narrow-to-region call that cuts context off the end (Bug#7722).
  
 -2011-01-22  Glenn Morris  <rgm@gnu.org>
 +      * progmodes/cc-engine.el (c-forward-<>-arglist-recur):
 +      Refactor nested if-forms with a simple cond.
 +      (c-forward-<>-arglist): Revert 2011-01-31 change.
  
 -      * simple.el (do-auto-fill): Give it a doc string.
 +2011-02-13  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * button.el (make-text-button): Doc fix.  (See bug#7881)
 +      * vc/log-view.el: New command log-view-toggle-entry-display for
 +      toggling log entries between concise and detailed forms.
 +      (log-view-toggle-entry-display): New command.
 +      (log-view-mode-map): Bind RET to it.
 +      (log-view-expanded-log-entry-function): New variable.
 +      (log-view-current-entry, log-view-inside-comment-p)
 +      (log-view-current-tag): New functions.
 +      (log-view-toggle-mark-entry): Use log-view-current-entry and
 +      log-view-end-of-defun instead of searching directly with
 +      log-view-message-re.
 +      (log-view-end-of-defun): Likewise.  Add optional ARG for
 +      compatibility with end-of-defun.
 +      (log-view-end-of-defun): Ignore comments and VC buttons.
  
 -2011-01-22  Chong Yidong  <cyd@stupidchicken.com>
 +      * vc/vc-bzr.el (vc-bzr-expanded-log-entry): New function.
 +      (vc-bzr-log-view-mode): Use log-view-expanded-log-entry-function.
  
 -      * simple.el (line-move-visual): Doc fix (Bug#7594).
 +2011-02-13  Teodor Zlatanov  <tzz@lifelogs.com>
  
 -      * emacs-lisp/re-builder.el (reb-mode-map): Fix logic error in
 -      "Case sensitive" menu item.
 +      * net/imap.el: Remove file.  All the functionality is in nnimap.el.
  
 -2011-01-21  Roland McGrath  <roland@frob.com>
 +      * net/imap-hash.el: Remove file.
  
 -      * comint.el (comint-replace-by-expanded-history-before-point): Fix
 -      expansion of !$ and !!:N syntax to pick the indicated word (bug#7883).
 +2011-02-13  Michael Albinus  <michael.albinus@gmx.de>
  
 -2011-01-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * Makefile.in (TRAMP_SRC): Remove tramp-imap.el.
  
 -      * progmodes/js.el (js--regexp-literal): Count backslashes (bug#7882).
 +      * net/tramp.el (tramp-read-passwd): Simplify `auth-source-search'
 +      call.
  
 -2011-01-21  Jari Aalto  <jari.aalto@cante.net>
 +      * net/tramp-imap.el: Remove file.
  
 -      * emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
 -      Assume foo(bar) is a manpage reference rather than some unquoted
 -      symbol (bug#7705).
 +2011-02-13  Chong Yidong  <cyd@stupidchicken.com>
  
 -2011-01-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * vc/vc.el (vc-print-log-setup-buttons): Instead of using the
 +      widget library for buttons, just use button.el.
  
 -      * subr.el (shell-quote-argument): Properly quote \n (bug#7687).
 -      Suggested by Flo <sensorflo@gmail.com>.
 +      * vc/log-view.el (log-view-mode-map): Don't inherit from
 +      widget-keymap.
  
 -2011-01-21  Glenn Morris  <rgm@gnu.org>
 +2011-02-12  Glenn Morris  <rgm@gnu.org>
  
 -      * progmodes/compile.el (compilation-error-regexp-alist):
 -      Fix custom type.  (Bug#7812)
 +      * emacs-lisp/cl-seq.el (union, nunion, intersection)
 +      (nintersection, set-difference, nset-difference)
 +      (set-exclusive-or, nset-exclusive-or): Doc fix.
  
 -2011-01-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * ediff-ptch.el (ediff-fixup-patch-map): Doc fix.
  
 -      * emacs-lisp/easy-mmode.el (define-minor-mode): Don't re-evaluate the
 -      keymap expression.  Improve docstring.
 +      * faces.el (face-attr-match-p): Handle the obsolete :bold and
 +      :italic props, so that frame-set-background-mode works.  (Bug#7966)
  
 -2011-01-15  Mark Diekhans  <markd@soe.ucsc.edu>
 +      * simple.el (next-error): Doc fix.
  
 -      * files.el (backup-buffer): Make last-resort backup file in
 -      .emacs.d (Bug#6953).
 +2011-02-12  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
  
 -      * subr.el (locate-user-emacs-file): If .emacs.d does not exist,
 -      make it with permission 700.
 +      * dired-aux.el (dired-create-files): Adapt destination name to
 +      match the new behavior of copy-directory.
  
 -2011-01-14  Kenichi Handa  <handa@m17n.org>
 +2011-02-12  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * mail/rmailmm.el (rmail-mime-insert-header):
 -      Set rmail-mime-coding-system to a cons whose car is the last coding
 -      system used to decode the header.
 -      (rmail-mime-find-header-encoding): New function.
 -      (rmail-mime-insert-decoded-text):
 -      Override rmail-mime-coding-system if it is a cons.
 -      (rmail-show-mime): If only a header part was decoded, find the
 -      coding system while ignoring mm-charset-override-alist.
 +      * mail/mail-utils.el (mail-dont-reply-to-names): New variable,
 +      from rmail-dont-reply-to-names.  Callers changed.
 +      (mail-dont-reply-to): Rename from mail-dont-reply-to.
 +      (rmail-dont-reply-to): Make it an obsolete alias.
  
 -2011-01-13  Chong Yidong  <cyd@stupidchicken.com>
 +      * mail/rmail.el (rmail-default-dont-reply-to-names): Default to
 +      nil, and make obsolete (Bug#7888).
 +      (rmail-dont-reply-to-names): Alias to mail-dont-reply-to-names.
  
 -      * subr.el (event-start, event-end): Doc fix (Bug#7826).
 +      * mail/rmailsum.el (rmail-summary-sort-by-correspondent): Doc fix.
  
 -2011-01-12  Kenichi Handa  <handa@m17n.org>
 +      * mail/rmailsort.el (rmail-sort-by-correspondent)
 +      (rmail-select-correspondent): Doc fix.  Use mail-dont-reply-to.
  
 -      * mail/rmailmm.el (rmail-mime-next-item)
 -      (rmail-mime-previous-item): Delete them.
 -      (rmail-mime-shown-mode): Recursively call for children.
 -      (rmail-mime-hidden-mode): Delete the 2nd arg TOP.
 -      Callers changed.
 -      (rmail-mime-raw-mode): Recursively call for children.
 -      (rmail-mode-map): Change mapping of tab and backtab to
 -      forward-button and backward-button respectively.
 -      (rmail-mime-insert-tagline): Always insert "Hide" or "Show"
 -      button.
 -      (rmail-mime-update-tagline): New function.
 -      (rmail-mime-insert-text): Call rmail-mime-update-tagline if the
 -      body display is changed.
 -      (rmail-mime-toggle-button): Rename from rmail-mime-image.
 -      (rmail-mime-image): Delete this button type.
 -      (rmail-mime-toggle): New button type.
 -      (rmail-mime-insert-bulk): Call rmail-mime-update-tagline if the
 -      body display is changed.  Change the save button label to "Save".
 -      Don't process show/hide button here.
 -      (rmail-mime-insert-multipart): Call rmail-mime-update-tagline if
 -      the body display is changed.  Unconditionally call
 -      rmail-mime-insert for children.
 -      (rmail-mime-handle): Update `display' vector of the just inserted
 -      entity.
 -      (rmail-mime-process): If mail-header-parse-content-type returns
 -      nil, use "text/plain" as the fallback type.
 -      (rmail-mime-insert): For raw-mode, recursively call
 -      rmail-mim-insert for children.
 -      (rmail-mime): Handle the case that the current buffer is not rmail
 -      buffer (e.g. in summary buffer).
 +      * mail/rmail.el (rmail-reply): Use mail-dont-reply-to.
  
 -2011-01-05  Kenichi Handa  <handa@m17n.org>
 +2011-02-12  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
  
 -      * mail/rmailmm.el (rmail-mime-next-item)
 -      (rmail-mime-previous-item): Skip the body of a non-multipart
 -      entity if a tagline is shown.
 +      * files.el (copy-directory): New argument COPY-CONTENTS for
 +      copying directory contents into another existing directory.
  
 -2011-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-02-12  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * tmm.el (tmm-get-keymap): Skip bindings without labels (bug#7721).
 -      (tmm-prompt): Simplify.
 -      (tmm-add-prompt): Remove unused var `win'.
 +      * minibuffer.el (completion-table-case-fold): New function for
 +      creating a case-insensitive completion table.
  
 -      * whitespace.el (global-whitespace-newline-mode): Fix call (bug#7810)
 -      to minor mode which used nil accidentally to mean "turn off".
 +2011-02-12  Teodor Zlatanov  <tzz@lifelogs.com>
  
 -2011-01-10  Michael Albinus  <michael.albinus@gmx.de>
 +      * net/tramp.el (tramp-default-method): Also check if
 +      `auth-source-search' is bound.
 +      (tramp-read-passwd): Use `auth-source-search' instead of
 +      `auto-source-user-or-password'.
  
 -      * net/tramp.el (tramp-find-inline-compress)
 -      (tramp-get-inline-coding): Quote command after pipe symbol for
 -      local calls under W32.  (Bug#6784)
 +      * net/tramp-imap.el: Autoload `auto-source-search' instead of
 +      `auto-source-user-or-password.
 +      (tramp-imap-passphrase-callback-function): Use it.
  
 -2011-01-10  Michael Albinus  <michael.albinus@gmx.de>
 +      * net/imap-hash.el: Autoload `auto-source-search' instead of
 +      `auto-source-user-or-password.
 +      (imap-hash-open-connection): Use it.
  
 -      * net/tramp.el (tramp-default-method): Initialize with pscp/plink
 -      only when running under W32.
 +      * mail/smtpmail.el: Autoload `auto-source-search' instead of
 +      `auto-source-user-or-password.
 +      (smtpmail-try-auth-methods): Use it.
  
 -2011-01-09  Eli Zaretskii  <eliz@gnu.org>
 +2011-02-12  Phil Hagelberg  <phil@hagelb.org>
  
 -      * progmodes/grep.el (grep-compute-defaults): Quote the program
 -      file name after the pipe symbol in Grep templates.  (Bug#6784)
 -      * jka-compr.el (jka-compr-partial-uncompress): Likewise.
 +      * emacs-lisp/package.el: Allow packages to be reinstalled.
 +      (package--write-file-no-coding): Remove EXCL arg.
 +      (package-unpack-single): Don't use it.
  
 -2011-01-08  Lennart Borgman  <lennart.borgman@gmail.com>
 +2011-02-12  Karl Pflästerer  <k@rl.pflaesterer.de>  (tiny change)
  
 -      * buff-menu.el (Buffer-menu-buffer-list): New var.
 -      (Buffer-menu-revert-function, list-buffers-noselect): Use it, so a
 -      restricted buffer list is not lost on revert (Bug#7749).
 +      * vc/vc-svn.el: Adapt to Subversion change, with no .svn directory
 +      in each sub directory.
 +      (vc-svn-registered): Use vc-svn-root.
 +      (vc-svn-root): New function.  Make vc-svn-responsible-p an alias.
 +      (vc-svn-repository-hostname): Use "svn info".
  
 -2011-01-08  Eric Hanchrow  <eric.hanchrow@gmail.com>
 +2011-02-11  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -      * net/ldap.el (ldap-search-internal): Discard stderr output.
 +      * simple.el (delete-trailing-whitespace): New optional buffer
 +      bound parameters.
  
 -2011-01-07  Eli Zaretskii  <eliz@gnu.org>
 +2011-02-11  Bastien Guerry  <bzg@altern.org>
  
 -      * files.el (directory-abbrev-alist): Doc fix.  (Bug#7777)
 +      * files.el (basic-save-buffer): save unmodified buffers when
 +      the file pointed by buffer-file-name doesn't exist.
  
 -2011-01-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-02-11  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -      * vc-bzr.el (vc-bzr-annotate-command, vc-bzr-annotate-time):
 -      Author names can have spaces (bug#7792).
 +      * net/rcirc.el (defun-rcirc-join): Accept multiple channels.
  
 -2011-01-04  Kenichi Handa  <handa@m17n.org>
 +2011-02-11  Glenn Morris  <rgm@gnu.org>
  
 -      * mail/rmailmm.el (rmail-mime-insert-bulk): Display an unknown
 -      part as a plain text.
 -      (rmail-mime-process-multipart): Set the default content-type to
 -      nil for unknown multipart subtypes (bug#7651).
 +      * emacs-lisp/cl-specs.el (multiple-value-bind): Fix debug spec.
  
 -2011-01-03  Brent Goodrick  <bgoodr@gmail.com>  (tiny change)
 +2011-02-11  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * abbrev.el (prepare-abbrev-list-buffer): If listing local abbrev
 -      table, get the value before switching to the output buffer.  (Bug#7733)
 +      * net/rcirc.el (rcirc-send-ctcp): Remove spurious arg to `format'.
  
 -2011-01-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-02-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * progmodes/python.el (python-mode): Don't impose font-lock (bug#3628).
 +      * server.el (server-process-filter): Use pcase.
  
 -2011-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * emacs-lisp/smie.el (smie-blink-matching-open): Don't use `pos' in two
 +      conflicting ways.
 +      (smie-indent--parent): Extend to "parent of arg".
 +      (smie-indent-inside-string): New function.
 +      (smie-indent-functions): Use it.
  
 -      * files.el (file-local-variables-alist):
 -      Make permanent-local (bug#7767).
 +      * vc/vc-dir.el (vc-dir-refresh): Reorder operations to try and avoid
 +      bzr locking race condition.
  
 -2011-01-02  Glenn Morris  <rgm@gnu.org>
 +      * emacs-lisp/edebug.el (edebug-instrument-function): Check a marker is
 +      still valid before using it.
  
 -      * version.el (emacs-copyright): Set short copyright year to 2011.
 +      * progmodes/grep.el (grep-mode-font-lock-keywords): Adjust to
 +      `message' -> `compilation-message' rename (bug#8004).
  
 -2011-01-02  Mark Lillibridge  <mark.lillibridge@hp.com>  (tiny change)
 +      Move keymap initialization into declaration.
 +      * textmodes/enriched.el (enriched-mode-map):
 +      * textmodes/bib-mode.el (bib-mode-map):
 +      * term/lk201.el (lk201-function-map):
 +      * tar-mode.el (tar-mode-map):
 +      * replace.el (occur-mode-map):
 +      * progmodes/idlwave.el (idlwave-rinfo-mouse-map, idlwave-rinfo-map):
 +      * progmodes/idlw-help.el (idlwave-help-mode-map):
 +      * progmodes/gdb-mi.el (gdb-memory-format-menu, gdb-memory-unit-menu):
 +      * play/solitaire.el (solitaire-mode-map):
 +      * play/snake.el (snake-mode-map, snake-null-map):
 +      * play/pong.el (pong-mode-map):
 +      * play/handwrite.el (menu-bar-handwrite-map):
 +      * play/gametree.el (gametree-mode-map):
 +      * net/rcirc.el (rcirc-mode-map, rcirc-browse-url-map
 +      (rcirc-multiline-minor-mode-map, rcirc-track-minor-mode-map):
 +      * net/newst-plainview.el (newsticker-menu, newsticker-mode-map)
 +      (newsticker--url-keymap):
 +      * net/net-utils.el (nslookup-mode-map, ftp-mode-map):
 +      * menu-bar.el (menu-bar-file-menu, menu-bar-i-search-menu)
 +      (menu-bar-search-menu, menu-bar-replace-menu, menu-bar-goto-menu)
 +      (menu-bar-edit-menu, menu-bar-custom-menu)
 +      (menu-bar-showhide-fringe-ind-menu, menu-bar-showhide-fringe-menu)
 +      (menu-bar-showhide-scroll-bar-menu, menu-bar-showhide-menu)
 +      (menu-bar-line-wrapping-menu, menu-bar-options-menu)
 +      (menu-bar-games-menu, menu-bar-encryption-decryption-menu)
 +      (menu-bar-tools-menu, menu-bar-describe-menu)
 +      (menu-bar-search-documentation-menu, menu-bar-manuals-menu)
 +      (menu-bar-help-menu):
 +      * mail/rmailsum.el (rmail-summary-mode-map):
 +      * kmacro.el (kmacro-step-edit-map):
 +      * ibuffer.el (ibuffer-mode-groups-popup, ibuffer-mode-map)
 +      (ibuffer-mode-operate-map):
 +      * hi-lock.el (hi-lock-menu, hi-lock-map):
 +      * emulation/vip.el (vip-mode-map):
 +      * emacs-lisp/re-builder.el (reb-lisp-mode-map):
 +      * bookmark.el (bookmark-bmenu-mode-map):
 +      * help-mode.el (help-mode-map): Move initialization into declaration.
  
 -      * mail/mail-utils.el (mail-strip-quoted-names): Avoid clobbering
 -      an existing temp buffer.  (Bug#7746)
 +2011-02-10  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -2011-01-02  Glenn Morris  <rgm@gnu.org>
 +      * net/rcirc.el: Add PRIVMSG and CTCP functions.
 +      (rcirc-send-privmsg, rcirc-send-ctcp): New functions.
 +      (rcirc-keepalive, rcirc-cmd-ctcp, rcirc-ctcp-sender-PING)
 +      (rcirc-cmd-me, rcirc-authenticate): Use them.
  
 -      * mail/mail-utils.el (mail-mbox-from): Handle From: headers with
 -      multiple addresses.  (Bug#7760)
 +2011-02-10  Ken Manheimer  <ken.manheimer@gmail.com>
  
 -2010-12-31  Michael Albinus  <michael.albinus@gmx.de>
 +      * allout.el: Synopsis: Change allout user configuration so
 +      auto-activation is controlled solely by customization
 +      `allout-auto-activation'.
  
 -      * net/tramp.el (tramp-methods): Add recursive options to "scpc",
 -      "scpx", "pscp" and "psftp".
 +      (allout-auto-activation-helper) (allout-setup): New autoloads
 +      implement new custom set procedure for allout-auto-activation.
 +      Also, explicitly invoke
 +      (allout-setup) after allout-auto-activation is custom-defined, to
 +      effect the settings in emacs sessions besides the few where
 +      allout-auto-activation customization is donea.
 +      (allout-auto-activation): Use allout-auto-activation-helper to
 +      :set.  Revise the docstring.
 +      (allout-init): Reduce functionality to just customizing
 +      allout-auto-activation, and mark obsolete.
 +      (allout-mode): Respect string values for allout-auto-activation.
 +      Run allout-after-copy-or-kill-hook without any args.
 +      (allout-mode) (allout-layout) (allout-default-layout)
 +      (outlineify-sticky): Adjust docstring for new scheme.
 +      (allout-after-copy-or-kill-hook): No arguments - hook implementers
 +      should concentrate on the kill ring.
  
 -2010-12-31  Eli Zaretskii  <eliz@gnu.org>
 +2011-02-09  Teodor Zlatanov  <tzz@lifelogs.com>
  
 -      * term/w32-win.el (image-library-alist): Set up correctly for
 -      libpng versions both before and after 1.4.0.  (Bug#7716)
 +      * password-cache.el (password-cache-remove): Accept secrets that are
 +      not strings.
  
 -2010-12-25  Eli Zaretskii  <eliz@gnu.org>
 +2011-02-09  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * time.el (display-time-mode): Mention display-time-interval in
 -      the doc string.  (Bug#7713)
 +      * progmodes/sh-script.el (sh-font-lock-open-heredoc): Fix case
 +      of here-doc that immediately follows a comment.
  
 -      * simple.el (select-active-regions): Doc fix.  (Bug#7702)
 +2011-02-09  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -2010-12-24  Kenichi Handa  <handa@m17n.org>
 +      * net/rcirc.el (rcirc-ctcp-sender-PING): Simplifying.
  
 -      * mail/rmailmm.el (rmail-mime-parse): Perform parsing in
 -      condition-case and return an error message string if something
 -      goes wrong.
 -      (rmail-show-mime): Adjust for the above change.  Insert the
 -      header by rmail-mime-insert-header.
 +      * net/rcirc.el (rcirc-cmd-ctcp): Use dedicated function when
 +      available.
 +      (rcirc-ctcp-sender-PING): New function.
  
 -2010-12-24  Kenichi Handa  <handa@m17n.org>
 +2011-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * mail/rmailmm.el: New key bindings for rmail-mime-next-item,
 -      rmail-mime-previous-item, and rmail-mime-toggle-hidden.
 -      (rmail-mime-mbox-buffer)
 -      (rmail-mime-view-buffer, rmail-mime-coding-system): New variables.
 -      (rmail-mime-entity): Argument changed.  All codes handling an
 -      entity object are changed.
 -      (rmail-mime-entity-header, rmail-mime-entity-body): Adjust for
 -      the above change.
 -      (rmail-mime-entity-children, rmail-mime-entity-handler)
 -      (rmail-mime-entity-tagline): New functions.
 -      (rmail-mime-message-p): New function.
 -      (rmail-mime-save): Bind rmail-mime-mbox-buffer.
 -      (rmail-mime-entity-segment, rmail-mime-next-item)
 -      (rmail-mime-previous-item, rmail-mime-shown-mode)
 -      (rmail-mime-hidden-mode, rmail-mime-raw-mode)
 -      (rmail-mime-toggle-raw, rmail-mime-toggle-hidden)
 -      (rmail-mime-insert-tagline, rmail-mime-insert-header):
 -      New functions.
 -      (rmail-mime-text-handler): Call rmail-mime-insert-text.
 -      (rmail-mime-insert-decoded-text): New function.
 -      (rmail-mime-insert-text): Call rmail-mime-insert-decoded-text.
 -      (rmail-mime-insert-image): Argument changed.  Caller changed.
 -      (rmail-mime-image): Call rmail-mime-toggle-hidden.
 -      (rmail-mime-set-bulk-data): New function.
 -      (rmail-mime-insert-bulk): Argument changed.
 -      (rmail-mime-multipart-handler): Return t.
 -      (rmail-mime-process-multipart): Argument changed.
 -      Handle "multipart/alternative" here.
 -      (rmail-mime-process): Argument changed.
 -      (rmail-mime-parse): Bind rmail-mime-mbox-buffer.
 -      (rmail-mime-insert): Argument changed.  Handle raw display mode.
 -      (rmail-mime): Argument changed.  Handle toggling of raw display
 -      mode.
 -      (rmail-show-mime): Bind rmail-mime-mbox-buffer and
 -      rmail-mime-view-buffer.
 -      (rmail-insert-mime-forwarded-message): Likewise.
 -      (rmail-search-mime-message): Likewise.  Don't bind rmail-buffer.
 +      * obsolete/pc-select.el: Rename from emulation/pc-select.el (bug#7940).
 +      Remove the mark/nomark handling, and activate shift-select-mode instead.
  
 -      * mail/rmail.el (rmail-show-message-1): If rmail-enable-mime is
 -      non-nil, handle the header in rmail-show-mime-function.
 +      * obsolete/pc-mode.el: Rename from emulation/pc-mode.el.
  
 -2010-12-20  Leo  <sdl.web@gmail.com>
 +2011-02-07  Jay Belanger  <jay.p.belanger@gmail.com>
  
 -      * help-fns.el (describe-variable): Fix 2010-12-17 change.
 +      * calc/calc-units.el (math-logunits-quant): Add support for
 +      non-logarithmic units.
  
 -2010-12-20  Juri Linkov  <juri@jurta.org>
 +2011-02-07  Ken Manheimer  <ken.manheimer@gmail.com>
  
 -      * isearch.el (isearch-lazy-highlight-error): New variable.
 -      (isearch-lazy-highlight-new-loop): Compare `isearch-error' and
 -      `isearch-lazy-highlight-error'.  Set `isearch-lazy-highlight-error'
 -      to the current value of `isearch-error' (Bug#7468).
 +      * allout.el (allout-after-copy-or-kill-hook): New hook for
 +      extension-specific processing of killed text.
 +      (allout-mode): Include new allout-after-copy-or-kill-hook among
 +      mentioned hooks.
 +      (allout-kill-line) (allout-kill-topic): Ensure that processing
 +      after kill happens even if barf-if-buffer-read-only is raised.
 +      Include new allout-after-copy-or-kill-hook among that subsequent
 +      processing.
 +      (allout-deannotate-hidden): Actually remove the annotation text
 +      properties.
  
 -2010-12-17  Chong Yidong  <cyd@stupidchicken.com>
 +      * allout.el (allout-listify-exposed): Copy text sans text properties.
  
 -      * help-fns.el (describe-variable): Don't emit trailing whitespace
 -      (Bug#7511).
 +2011-02-07  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-12-17  Leo  <sdl.web@gmail.com>
 +      * net/dbus.el (dbus-list-activatable-names): Add optional argument BUS.
  
 -      * eshell/em-hist.el (eshell-previous-matching-input): Signal error
 -      if point is not behind eshell-last-output-end (Bug#7585).
 +2011-02-07  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -2010-12-16  Chong Yidong  <cyd@stupidchicken.com>
 +      * net/rcirc.el (rcirc-handler-317): New function (Bug#6507).
  
 -      * textmodes/rst.el (rst-compile-pdf-preview)
 -      (rst-compile-slides-preview): Use make-temp-file (Bug#7646).
 +2011-02-06  Jay Belanger  <jay.p.belanger@gmail.com>
  
 -2010-12-15  Kevin Gallagher  <Kevin.Gallagher@boeing.com>
 +      * calc/calc.el (calc-logunits-field-reference): Rename from
 +      `calc-default-field-reference-level'.
 +      (calc-logunits-power-reference): Rename from
 +      `calc-default-power-reference-level'
  
 -      * emulation/edt-mapper.el: Override mapping of function keys so
 -      that the later call to read-key-sequence works.
 +      * calc/calc-units.el (math-logunits-quant): Rename from
 +      `math-logunits-level'
 +      (math-logunits-plus): Rename from math-logcombine.
 +      (calcFunc-luplus, calcFunc-luminus calc-luplus, calc-luminus): Remove.
 +      (calcFunc-lufieldadd, calcFunc-lupoweradd, calcFunc-lufieldsub)
 +      (calcFunc-lufieldsub,calc-logunits-add calc-logunits-sub):
 +      New functions.
 +      (calcFunc-fieldquant): Rename from `calcFunc-fieldlevel'.
 +      (calcFunc-powerquant): Rename from `calcFunc-powerlevel'.
 +      (calc-logunits-quantity): Rename from `calc-level'.
 +      (calcFunc-dbfieldlevel, calcFunc-dbpowerlevel, calcFunc-npfieldlevel)
 +      (calcFunc-nppowerlevel,calc-logunits-dblevel, calc-logunits-nplevel)
 +      (math-logunits-mul, calcFunc-lufieldmul, calcFunc-lupowermul)
 +      (calc-logunits-mul, math-logunits-divide, calcFunc-lufielddiv)
 +      (calcFunc-lupowerdiv,calc-logunits-divide,math-logunits-level):
 +      New functions.
  
 -2010-12-13  Eli Zaretskii  <eliz@gnu.org>
 +      * calc/calc-help.el (calc-u-prefix-help): Remove "L" reference.
 +      (calc-ul-prefix-help): Remove.
 +      (calc-l-prefix-help): New function.
 +      (calc-full-help): Add reference to `calc-l-prefix-help'.
  
 -      * mail/smtpmail.el (smtpmail-send-it): Write queued mail body with
 -      Unix EOLs.  (Bug#7589)
 +      * calc/calc-ext.el (calc-init-extensions): Update autoloads.
  
 -2010-12-12  Eli Zaretskii  <eliz@gnu.org>
 +      * calc/README: Mention logarithmic units.
  
 -      * subr.el (posn-col-row): Evaluate header-line-format in the
 -      context of the POSITION window's buffer.
 +2011-02-06  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-12-11  Glenn Morris  <rgm@gnu.org>
 +      * mail/emacsbug.el (report-emacs-bug-hook): Remove the check for
 +      non-ASCII characters (Bug#7925).
  
 -      * subr.el (member-ignore-case, run-mode-hooks, insert-for-yank-1)
 -      (with-silent-modifications): Doc fixes.
 +2011-02-05  Glenn Morris  <rgm@gnu.org>
  
 -2010-12-10  Michael Albinus  <michael.albinus@gmx.de>
 +      * emacs-lisp/cl-macs.el (return-from): Fix doc typo.
  
 -      * net/tramp.el (tramp-action-password, tramp-process-actions):
 -      Revert patch from 2010-12-08.  Use `save-restriction'.
 +      * calendar/diary-lib.el (diary-font-lock-keywords):
 +      Tweak diary-time-regexp match.  (Bug#7891)
  
 -2010-12-09  Eli Zaretskii  <eliz@gnu.org>
 +      * progmodes/f90.el (f90-find-tag-default): New function.  (Bug#7919)
 +      (f90-mode): Use it for mode's `find-tag-default-function' property.
  
 -      * menu-bar.el (menu-bar-frame-for-menubar, menu-bar-positive-p):
 -      New functions.
 -      (menu-bar-showhide-menu) <menu-bar-mode, showhide-tool-bar>: Use
 -      them instead of `nil' and `>', respectively.  (Bug#1077)
 +      * ibuf-ext.el (ibuffer-filter-disable): Make it work.  (Bug#7969)
  
 -2010-12-09  Stephen Berman  <stephen.berman@gmx.net>
 +      * faces.el (set-face-attribute): Doc fix.  (Bug#2659)
  
 -      * calendar/diary-lib.el (diary-list-sexp-entries):
 -      Handle case of no newline at end of file.  (Bug#7536)
 +2011-02-05  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -2010-12-09  Glenn Morris  <rgm@gnu.org>
 +      * net/rcirc.el (rcirc-handler-JOIN): Reset mode-line-process
 +      (Bug#6386).
  
 -      * mail/smtpmail.el (smtpmail-send-it): Revert previous change.
 +2011-02-05  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-12-08  Michael Albinus  <michael.albinus@gmx.de>
 +      * progmodes/sh-script.el (sh-here-doc-open-re): Don't rely on the
 +      font-lock-syntax-table remappings.
 +      (sh-here-doc-markers, sh-here-doc-re): Remove.
 +      (sh-font-lock-close-heredoc): Remove.
 +      (sh-syntax-propertize-here-doc): New function.
 +      (sh-font-lock-open-heredoc): Set the sh-here-doc-marker property
 +      instead of the sh-here-doc-re.
 +      (sh-font-lock-paren): Don't do anything in comments or strings.
 +      Handle line continuations.  Accept a few more chars.
 +      Don't rely on the font-lock-syntax-table remappings.
 +      `esac' is not a valid pattern.
 +      (sh-syntax-propertize-function): Handle here-docs differently, so we
 +      don't bother syntax-propertizing the insides.
  
 -      * net/tramp.el (tramp-handle-start-file-process):
 -      Protect buffer-modified value.  (Bug#7557)
 -      (tramp-action-password): Delete region, do not narrow.
 -      (tramp-process-actions): Do not widen.
 +      * progmodes/sh-script.el (sh-font-lock-paren, sh-kw, sh-prev-thing):
 +      Handle new bashisms ";&" and ";;&" (bug#7947).
  
 -2010-12-08   Jan Moringen  <jmoringe@techfak.uni-bielefeld.de>
 +2011-02-05  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * log-edit.el (log-edit-changelog-entries):
 -      Regexp quote filename.  (Bug#7505)
 +      * net/tramp-smb.el (tramp-smb-errors): Use `regexp-opt'.
 +      Add "NT_STATUS_IO_TIMEOUT" and "NT_STATUS_NO_SUCH_USER".
  
 -2010-12-08  Tom Breton  <tehom@panix.com>
 +2011-02-05  Era Eriksson  <era+tramp@iki.fi>  (tiny change)
  
 -      * cus-edit.el (custom-save-all):
 -      Bind print-length and print-level to nil.  (Bug#7581)
 +      * net/tramp.el (tramp-postfix-method-format)
 +      (tramp-postfix-method-regexp, tramp-prefix-domain-format)
 +      (tramp-prefix-domain-regexp, tramp-postfix-user-format)
 +      (tramp-postfix-user-regexp, tramp-prefix-port-format)
 +      (tramp-prefix-port-regexp, tramp-postfix-host-format)
 +      (tramp-postfix-host-regexp, tramp-handle-substitute-in-file-name):
 +      Doc fix.
  
 -2010-12-08  Glenn Morris  <rgm@gnu.org>
 +2011-02-04  Sam Steingold  <sds@gnu.org>
  
 -      * mouse.el (mouse-menu-major-mode-map, mouse-menu-bar-map):
 -      Run hooks to update menu contents.  (Bug#7586)
 +      * mouse.el (mouse-buffer-menu-mode-groups): Add a "GDB" group.
  
 -      * mail/smtpmail.el (smtpmail-send-it): Avoid colons in the queued
 -      file names, for the sake of MS Windows.  (Bug#7588)
 +2011-02-04  Andreas Schwab  <schwab@linux-m68k.org>
  
 -2010-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * international/mule-util.el (with-coding-priority): Doc fix.
  
 -      * diff-mode.el (diff-refine-hunk): Make it work when the hunk contains
 -      empty lines without a leading space.
 +2011-02-04  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-12-06  Leo  <sdl.web@gmail.com>
 +      * arc-mode.el (archive-mode-map): Fix a typo in last change.
  
 -      * dired-aux.el (dired-do-redisplay): Postpone dired-after-readin-hook
 -      while mapping over marks (Bug#6810).
 +2011-02-03  Sam Steingold  <sds@gnu.org>
  
 -2010-12-06  Chong Yidong  <cyd@stupidchicken.com>
 +      * progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom):
 +      Do not error out when `func' is nil.
  
 -      * image-dired.el (image-dired-db-file)
 -      (image-dired-temp-image-file, image-dired-gallery-dir)
 -      (image-dired-temp-rotate-image-file): Set default values relative
 -      to image-dired-dir (Bug#7518).
 +2011-02-03  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-12-06  Lawrence Mitchell  <wence@gmx.li>
 +      * net/tramp-sh.el (tramp-remote-path): Add default settings for
 +      `tramp-default-remote-path' to the docstring.
 +      (tramp-get-remote-path): Suppress error message when `getconf
 +      PATH' fails.
  
 -      * format.el (format-decode-run-method): Pass args FROM and TO, not
 -      point-min and point-max, to shell-command-on-region (Bug#7488).
 +      * net/tramp-smb.el (tramp-smb-errors): Add "NT_STATUS_UNSUCCESSFUL".
  
 -2010-12-06  Jan Djärv  <jan.h.d@swipnet.se>
 +2011-02-03  Glenn Morris  <rgm@gnu.org>
  
 -      * frame.el (blink-cursor-mode): Make default t for ns.
 +      * vc/vc-hg.el (vc-hg-command): Doc fix.
 +
 +      * term/w32-win.el (libpng-version): Declare for compiler.
 +
 +      * msb.el: No need to load dired while compiling.
 +
 +      * emacs-lisp/elint.el (elint-standard-variables):
 +      Remove a couple of built-ins that now have doc-strings.
 +
 +      * hi-lock.el, ps-bdf.el, ps-mule.el, ps-print.el, ps-samp.el:
 +      `require' is automatically `eval-and-compile'd.
 +
 +      * net/rcirc.el (rcirc-nick-completion-format): Add :version tag.
 +      (rcirc-log-directory, rcirc-log-flag): Move definitions before use.
 +
 +      * strokes.el (strokes-fill-current-buffer-with-whitespace):
 +      Move definition before use.
 +      (strokes-report-bug): Make it obsolete.
 +
 +2011-02-02  Sam Steingold  <sds@gnu.org>
 +
 +      * apropos.el (apropos-print): Now that `apropos-mode' inherits
 +      from `special-mode', entering it makes the buffer read-only, so
 +      call it only when everything has been already inserted.
 +      * emacs-lisp/ert.el (ert--setup-results-buffer)
 +      (ert-results-pop-to-backtrace-for-test-at-point)
 +      (ert-results-pop-to-messages-for-test-at-point)
 +      (ert-results-pop-to-timings): Ditto.
 +      * emacs-lisp/package.el (package--list-packages): Ditto.
 +      * play/solitaire.el (solitaire): Ditto.
 +
 +2011-02-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/compile.el: Make all faces inherit.
 +      (compilation-warning): Inherit from font-lock-variable-name-face.
 +      (compilation-info): Inherit from font-lock-type-face.
 +      (compilation-line-number): Reassign to font-lock-keyword-face.
 +      (compilation-column-number): Reassign to font-lock-doc-face.
 +      (compilation-leave-directory-face): Reassign to
 +      font-lock-builtin-face.
 +
 +2011-02-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dired.el (dired-insert-directory): Don't invoke `ls' when
 +      ls-lisp.el is used to emulate it.
 +
 +2011-02-01  Julien Danjou  <julien@danjou.info>
 +
 +      * color.el (color-gradient): Add a color-gradient function.
 +
 +2011-02-01  Sam Steingold  <sds@gnu.org>
 +
 +      * simple.el (special-mode-map): Bind "h" to `describe-mode';
 +      bind "z" to `kill-this-buffer'.
 +      (completion-list-mode-map): Bind "z" to `kill-this-buffer'.
 +      * apropos.el (apropos-mode-map): Inherit from `special-mode-map'.
 +      (apropos-mode): Inherit from `special-mode'.
 +      * arc-mode.el (archive-mode-map): Inherit from `special-mode-map'.
 +      * bookmark.el (bookmark-bmenu-mode): Define using
 +      `define-derived-mode' inheriting from `special-mode'.
 +      * dired.el (dired-mode-map): Inherit from `special-mode-map'.
 +      * image-mode.el (image-mode-map): Ditto.
 +      * replace.el (occur-mode): Define using
 +      `define-derived-mode' inheriting from `special-mode'.
 +      * tar-mode.el (tar-mode): Inherit from `special-mode'.
 +      * calendar/diary-lib.el (diary-fancy-display-mode):
 +      Inherit from `special-mode-map'.
 +      * emacs-lisp/ert.el (ert-simple-view-mode, ert-results-mode):
 +      Inherit from `special-mode'.
 +      * emacs-lisp/package.el (package-menu-mode-map): Copy from
 +      `special-mode-map'.
 +      (package-menu-mode): Define using `define-derived-mode'
 +      inheriting from `special-mode'.
 +      * erc/erc-list.el (erc-list-menu-mode): Inherit from `special-mode'.
 +      * net/xesam.el (xesam-mode): Inherit from `special-mode'.
 +      (xesam-mode-map): Define separately.
 +      * play/solitaire.el (solitaire-mode): Inherit from `special-mode'.
 +      * progmodes/compile.el (compilation-minor-mode-map)
 +      (compilation-mode-map): Inherit from `special-mode-map'.
 +      * vc/diff-mode.el (diff-mode-shared-map):
 +      Inherit from `special-mode-map'.
 +      * vc/log-view.el (log-view-mode-map): Add a comment.
 +
 +2011-02-01  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.el (load-theme): Define return value.  Drop use of
 +      unsafep; call custom-theme-load-confirm for non-known-safe themes.
 +      (custom-theme-load-confirm): Scroll in the correct window.
 +      (custom-enabled-themes): Add custom-safe-themes to :set-after.
 +
 +      * cus-theme.el (custom-theme-checkbox-toggle): Don't activate the
 +      checkbox if load-theme fails.
 +
 +2011-02-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el (compilation-next-error): Check there's
 +      a message before using it (bug#7941).
 +
 +2011-02-01  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-mtx.el (math-lud-pivot-check): New function.
 +      (math-do-matrix-lud): Use `math-lud-pivot-check' to check the size
 +      of potential pivots.
  
 -2010-12-05  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +2011-01-31  Alan Mackenzie  <acm@muc.de>
  
 -      * vc-dir.el (vc-dir-query-replace-regexp): Doc fix (Bug#7501).
 +      * progmodes/cc-cmds.el (c-forward-over-illiterals):
 +      Continue parsing if we encounter a naked # (Bug#7595).
 +      (c-beginning-of-statement): Avoid loop in locating the beginning
 +      of a macro.  (Not actually committed until 2011-02-20, see above).
  
 -2010-12-05  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * comint.el (comint-dynamic-list-input-ring)
 -      (comint-dynamic-complete-filename)
 -      (comint-replace-by-expanded-filename)
 -      (comint-dynamic-simple-complete)
 -      (comint-dynamic-list-filename-completions)
 -      (comint-dynamic-list-completions): Doc fix (Bug#7499).
 +      * files.el (copy-directory): Fix arguments to recursive call.
  
 -      * subr.el (posn-x-y, posn-object-x-y, posn-object-width-height):
 -      Doc fix (Bug#7471).
 +2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-12-04  Martin Rudalics  <rudalics@gmx.at>
 +      * files.el (copy-directory): If destination is an existing
 +      directory, copy into a subdirectory there.
  
 -      * dired.el (dired-pop-to-buffer): Bind pop-up-frames to nil
 -      (Bug#7533).
 +2011-01-31  Andreas Schwab  <schwab@linux-m68k.org>
  
 -2010-12-04  W. Martin Borgert <debacle@debian.org>  (tiny change)
 +      * emacs-lisp/shadow.el (load-path-shadows-find): Ignore leim-list
 +      files.
  
 -      * files.el (auto-mode-alist): Handle .dbk (DocBook) with xml-mode.
 -      (Bug#7491).
 +2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-12-04  Chong Yidong  <cyd@stupidchicken.com>
 +      * image-dired.el (image-dired-mouse-display-image): No-op if no
 +      file is found (Bug#7817).
  
 -      * simple.el (transient-mark-mode): Doc fix (Bug#7465).
 +      * mouse.el (mouse-menu-non-singleton): Doc fix (Bug#7801).
  
 -2010-12-04  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-31  Kenichi Handa  <handa@m17n.org>
  
 -      * files.el (file-relative-name): Handle UNC file names on
 -      DOS/Windows.  (Bug#4674)
 +      * international/quail.el (quail-keyboard-layout-alist):
 +      Remove superfluous SPC for "pc105-uk" (bug#7927).
  
 -2010-12-03  Daiki Ueno  <ueno@unixuser.org>
 +2011-01-31  Glenn Morris  <rgm@gnu.org>
  
 -      * epg.el (epg-digest-algorithm-alist): Replace "RMD160" with
 -      "RIPEMD160" (Bug#7490).  Reported by Daniel Kahn Gillmor.
 -      (epg-context-set-passphrase-callback): Mention that the callback
 -      is not called when used with GnuPG 2.x.
 +      * msb.el (msb-menu-bar-update-buffers): Update for changed
 +      argument handling of menu-bar-select-frame.  (Bug#7902)
  
 -2010-12-02  Glenn Morris  <rgm@gnu.org>
 +2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * ps-print.el (ps-line-lengths-internal, ps-nb-pages):
 -      Ensure ps-footer-font-size-internal is initialized.
 -      Call ps-get-page-dimensions before trying to use ps-font-for-text.
 +      * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Set a limit
 +      to the recursion depth (Bug#7722).
  
 -2010-12-01  Kenichi Handa  <handa@m17n.org>
 +2011-01-31  Roy Liu  <carsomyr@gmail.com>  (tiny change)
  
 -      * mail/rmailmm.el (rmail-mime-parse): Call rmail-mime-process
 -      within condition-case.
 -      (rmail-show-mime): Don't use condition-case.
 -      (rmail-search-mime-message): New function.
 -      (rmail-search-mime-message-function): Set to
 -      rmail-search-mime-message.
 +      * term/ns-win.el (ns-find-file): Expand ns-input-file with
 +      command-line-default-directory (Bug#7872).
  
 -2010-12-01  Leo  <sdl.web@gmail.com>
 +2011-01-31  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * ido.el (ido-common-initialization): New function.  (bug#3274)
 -      (ido-mode): Use it.
 -      (ido-completing-read): Call it.
 +      * progmodes/compile.el (compilation--flush-directory-cache):
 +      New function, extracted from compilation--remove-properties.
 +      (compilation--remove-properties, compilation--parse-region): Use it.
 +      (compilation--previous-directory): Handle one more case.
 +      (compilation-enable-debug-messages): Remove.
 +      (compilation-parse-errors, compilation--flush-parse): Just remove the
 +      left over debug messages.
  
 -2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-31  Sam Steingold  <sds@gnu.org>
  
 -      * log-edit.el (log-edit-font-lock-keywords): Don't try matching
 -      stand-alone lines, since that is handled by log-edit-match-to-eoh
 -      (Bug#6465).
 +      * progmodes/compile.el (compilation-enable-debug-messages):
 +      Add a variable to make the parsing messages introduced in
 +      2011-01-28T22:12:05Z!monnier@iro.umontreal.ca optional.
 +      (compilation-parse-errors, compilation--flush-parse): Use it.
  
 -2010-11-27  Eduard Wiebe  <usenet@pusto.de>
 +2011-01-31  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -      * dired.el (dired-get-filename): Replace backslashes with slashes
 -      in file names on MS-Windows, needed by `locate'.  (Bug#7308)
 -      * locate.el (locate-default-make-command-line): Don't consider
 -      drive letter and root directory part of
 -      `directory-listing-before-filename-regexp'.  (Bug#7308)
 -      (locate-post-command-hook, locate-post-command-hook): New defcustoms.
 +      * net/rcirc.el: New customizable nick completion format.  (Bug#6314)
 +      (rcirc-nick-completion-format): New defcustom.
 +      (rcirc-complete): Use it.
  
 -2010-11-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-31  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -      * emacs-lisp/smie.el (smie-prec2->grammar): Simplify handling
 -      of :smie-open/close-alist.
 -      (smie-next-sexp): Make it accept a "start token" as argument.
 -      (smie-indent-keyword): Be careful not to misidentify tokens that span
 -      more than one line, as empty lines.  Add argument `token'.
 +      * net/rcirc.el: Clean log filenames (Bug#7933).
 +      (rcirc-log-write): Use convert-standard-filename.
 +      (rcirc-log-filename-function): Documentation updates.
  
 -2010-11-26  Kenichi Handa  <handa@m17n.org>
 +2011-01-30  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * mail/rmailmm.el (rmail-mime-insert-multipart): For unsupported
 -      multipart subtypes, insert all as usual.
 +      * mail/emacsbug.el (report-emacs-bug-insert-to-mailer):
 +      Check report-emacs-bug-can-use-osx-open and use that if t.
 +      (report-emacs-bug-can-use-osx-open): New function.
 +      (report-emacs-bug): Rename can-xdg-email to can-insert-mail.
 +      Check report-emacs-bug-can-use-osx-open also for can-insert-mail.
  
 -      * mail/rmail.el: Require rfc2047.
 +2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-11-26  Kenichi Handa  <handa@m17n.org>
 +      * vc/vc-dispatcher.el (vc-set-async-update): New function for
 +      updating Dired or VC-dir buffers after async command completes.
  
 -      * mail/rmailmm.el (rmail-mime-entity, rmail-mime-entity-type)
 -      (rmail-mime-entity-disposition)
 -      (rmail-mime-entity-transfer-encoding, rmail-mime-entity-header)
 -      (rmail-mime-entity-body, rmail-mime-entity-children): New functions.
 -      (rmail-mime-save): Handle the case that the button's `data' is a
 -      MIME entity.
 -      (rmail-mime-insert-text): New function.
 -      (rmail-mime-insert-image): Handle the case that DATA is a MIME entity.
 -      (rmail-mime-bulk-handler): Just call rmail-mime-insert-bulk.
 -      (rmail-mime-insert-bulk): New function mostly copied from the old
 -      rmail-mime-bulk-handler.
 -      (rmail-mime-multipart-handler): Just call rmail-mime-process-multipart.
 -      (rmail-mime-process-multipart): New function mostly copied from
 -      the old rmail-mime-multipart-handler.
 -      (rmail-mime-show): Just call rmail-mime-process.
 -      (rmail-mime-process): New function mostly copied from the old
 -      rmail-mime-show.
 -      (rmail-mime-insert-multipart, rmail-mime-parse)
 -      (rmail-mime-insert, rmail-show-mime)
 -      (rmail-insert-mime-forwarded-message)
 -      (rmail-insert-mime-resent-message): New functions.
 -      (rmail-insert-mime-forwarded-message-function): Set to
 -      rmail-insert-mime-forwarded-message.
 -      (rmail-insert-mime-resent-message-function): Set to
 -      rmail-insert-mime-resent-message.
 +      * vc/vc-bzr.el (vc-bzr-async-command): Return the process buffer.
 +      (vc-bzr-pull, vc-bzr-merge-branch): Use vc-set-async-update.
  
 -      * mail/rmailsum.el: Require rfc2047.
 -      (rmail-header-summary): Handle multiline Subject: field.
 -      (rmail-summary-line-decoder): Change the default to
 -      rfc2047-decode-string.
 +      * vc/vc-git.el (vc-git-merge-branch): Add FETCH_HEAD to branch
 +      completions if it exists.  Use vc-set-async-update.
 +      (vc-git-pull): Use vc-set-async-update.
  
 -      * mail/rmail.el (rmail-enable-mime): Change the default to t.
 -      (rmail-mime-feature): Change the default to `rmailmm'.
 -      (rmail-quit): Delete the specifal code for rmail-enable-mime.
 -      (rmail-display-labels): Likewise.
 -      (rmail-show-message-1): Check rmail-enable-mime, and use
 -      rmail-show-mime-function for a MIME message.  Decode the headers
 -      according to RFC2047.
 +      * vc/vc-hg.el (vc-hg-pull): Fix default-contents arg to
 +      read-shell-command.  Use vc-set-async-update.
 +      (vc-hg-merge-branch): Use vc-set-async-update.
  
 -2010-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-29  Daiki Ueno  <ueno@unixuser.org>
  
 -      * progmodes/which-func.el (which-func-imenu-joiner-function):
 -      Return a string, as expected.
 -      (which-function-mode): Make sure we stop any previous timer before
 -      starting a new one.
 +      * epg.el (epg--status-KEYEXPIRED, epg--status-KEYREVOKED):
 +      Don't presume KEYEXPIRED and KEYREVOKED to be a fatal error status
 +      (Bug#7931).
  
 -2010-11-23  Michael Albinus  <michael.albinus@gmx.de>
 +2011-01-29  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * net/tramp.el (tramp-default-method-alist)
 -      (tramp-default-user-alist, tramp-default-proxies-alist):
 -      Adapt custom options type.  (Bug#7445)
 +      * progmodes/compile.el: Avoid an N² behavior in grep.
 +      (compilation--previous-directory): New fun.
 +      (compilation--previous-directory-cache): New var.
 +      (compilation--remove-properties): Flush it.
 +      (compilation-directory-properties, compilation-error-properties):
 +      Use the new fun to speed up looking for the current directory.
  
 -2010-11-21  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * progmodes/python.el: Add Ipython support (Bug#5390).
 -      (python-shell-prompt-alist)
 -      (python-shell-continuation-prompt-alist): New options.
 -      (python--set-prompt-regexp): New function.
 -      (inferior-python-mode, run-python, python-shell):
 -      Require ansi-color.  Use python--set-prompt-regexp to set the comint
 -      prompt based on the Python interpreter.
 -      (python--prompt-regexp): New var.
 -      (python-check-comint-prompt)
 -      (python-comint-output-filter-function): Use it.
 -      (run-python): Use a pipe (Bug#5694).
 +      * vc/vc-hg.el (vc-hg-history): New var.
 +      (vc-hg-pull): Perform default pull if called via Lisp by vc-pull.
 +      (vc-hg-merge-branch): New function.
  
 -2010-11-21  Chong Yidong  <cyd@stupidchicken.com>
 +      * vc/vc.el (vc-pull): Make vc-update an alias for this, instead of
 +      the other way around.
  
 -      * progmodes/python.el (run-python): Doc fix.
 -      (python-keep-current-directory-in-path): New var (Bug#7454).
 +      * vc/vc-git.el (vc-git-branches, vc-git-pull)
 +      (vc-git-merge-branch): New functions.
 +      (vc-git-history): New var.
  
 -2010-11-20  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * lpr.el (lpr-buffer, print-buffer, lpr-region, print-region):
 -      Prompt user before actually printing.
 +      * vc/vc-dispatcher.el (vc-do-async-command): New function.
  
 -2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * vc/vc-bzr.el (vc-bzr-async-command): Convert into a wrapper for
 +      vc-do-async-command.
  
 -      * simple.el (kill-new, kill-append, kill-region):
 -      * comint.el (comint-kill-region): Make the yank-handler argument
 -      obsolete.
 +      * vc/vc-bzr.el (vc-bzr-pull, vc-bzr-merge-branch):
 +      Callers changed.
  
 -2010-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-28  Leo  <sdl.web@gmail.com>
  
 -      * emacs-lisp/smie.el (smie-bnf-classify): Signal errors for tokens
 -      that are both openers (resp. closers) and something else.
 -      (smie-grammar): Loosen definition of valid values.
 -      (smie-next-sexp, smie-down-list, smie-blink-matching-open)
 -      (smie-indent--parent, smie-rule-parent, smie-indent-keyword)
 -      (smie-indent-after-keyword): Adjust users.
 -      (smie-indent-keyword): Don't indent empty lines.
 +      * emacs-lisp/advice.el (ad-make-advised-docstring): Don't apply
 +      highlighting to the "this function is advised" message.
  
 -      * vc-hg.el (vc-hg-program): New var.
 -      Suggested by Norman Gray <norman@astro.gla.ac.uk>.
 -      (vc-hg-state, vc-hg-working-revision, vc-hg-command): Use it.
 +      * help-mode.el (help-mode-finish): Apply highlighting here, to
 +      avoid clobbering by substitute-command-keys (Bug#6304).
  
 -2010-11-17  Glenn Morris  <rgm@gnu.org>
 +2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * emacs-lisp/autoload.el (autoload-find-destination): The function
 -      coding-system-eol-type may return non-numeric values.  (Bug#7414)
 +      * woman.el (woman0-roff-buffer): Process roff escape sequences
 +      occurring prior to the first request (Bug#7843).
 +
 +2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el: Don't use font-lock any more.
 +      (compilation-error-regexp-alist-alist): Change handling of makepp
 +      so it preserves the warning/error distinction on subsequent files.
 +      Simplify various rules.
 +      (compilation-directory-properties): Use font-lock-face.
 +      Add a compilation-message property.
 +      (compilation-internal-error-properties): Use font-lock-face.
 +      Don't set the compilation-debug property here.
 +      (compilation--put-prop, compilation--remove-properties)
 +      (compilation--parse-region, compilation--ensure-parse)
 +      (compilation--ensure-parse): New functions.
 +      (compilation-parse-errors): New function, largely inspired of
 +      compilation-mode-font-lock-keywords.  Set compilation-debug here.
 +      (compilation--parsed): New var.
 +      (compilation--flush-parse): Use compilation--ensure-parse.
 +      (compilation-start): Don't call font-lock.
 +      (compilation-turn-on-font-lock): Remove.
 +      (compilation-setup): Don't set font-lock-extra-managed-props not change
 +      other font-lock settings, other than keywords.
 +      Don't activate font-lock-mode.
 +      Set change-major-mode-hook and before-change-functions.
 +      (compilation--unsetup): Remove properties and hooks.
 +      (compilation-next-single-property-change): New function.
 +      (compilation-next-error): Use it to parse when needed.
 +      (compile-goto-error): Parse buffer as needed.
 +      (compilation--compat-error-properties): Don't need a dummy `face'
 +      property any more.
 +
 +2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el: Use accessors for clarity and fix omake hack.
 +      (compilation-process-setup-function): Fix docstring's false promises.
 +      (compilation-error-regexp-alist-alist): Catch omake's continuous
 +      recompilation message and avoid reuse of old markers.
 +      (compilation-parse-errors-function): Declare obsolete.
 +      (compilation-buffer-modtime): Remove.
 +      (compilation--make-cdrloc, compilation--loc->col)
 +      (compilation--loc->line, compilation--loc->file-struct)
 +      (compilation--loc->marker, compilation--loc->visited)
 +      (compilation--make-file-struct, compilation--file-struct->file-spec)
 +      (compilation--file-struct->formats)
 +      (compilation--file-struct->loc-tree): New macros.  Use them.
 +      (compilation--message): New defstruct.  Use them.
 +      (compilation-next-error-function): Don't mess with timestamps to try
 +      and guess when to reparse.
 +
 +2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/tex-mode.el: Get rid of compilation-parse-errors-function
 +      (tex-old-error-file-name): New function,
 +      extracted from tex-compilation-parse-errors.
 +      (tex-compilation-parse-errors): Remove.
 +      (tex-error-regexp-alist): New var.
 +      (tex-shell): Use it to avoid compilation-parse-errors-function.
 +
 +      * progmodes/grep.el (grep-regexp-alist): Tighten regexp.
 +      (grep-mode-font-lock-keywords): Remove regexp that seems like
 +      a left-over from before we used compile.el.
 +      (grep-mode-font-lock-keywords): Call syntax-ppss-flush-cache when
 +      modifying the buffer within with-silent-modifications.
 +
 +      * progmodes/compile.el: Cleanup text-properties namespace by using
 +      `compilation-message' instead of `message', `compilation-directory'
 +      instead of `directory', and `compilation-debug' instead of `debug'.
 +      (compilation-last-buffer, compilation-parsing-end)
 +      (compilation-error-list, compilation-old-error-list): Move to the
 +      compatibility part of the code.
 +      (compilation-error-properties): If `file' is a function, let it return
 +      a file name.
 +      (compilation-mode-font-lock-keywords): Be more conservative with the
 +      omake "^ *" pattern prefix, to try and minimize the risk of
 +      pathologically slow regexp matching.
 +      (compilation-start): Use inhibit-read-only.
 +      (compilation--unsetup): New function.
 +      (compilation-shell-minor-mode, compilation-minor-mode): Use it.
 +      (compilation-filter): Minor tweaks.
 +      (compilation-next-error-function): Try and avoid abusing variables.
 +      (compilation--flush-file-structure): New fun.
 +      (compilation-fake-loc): Use it to improve behavior when file is reused.
 +      (debug-ignored-errors): Add "Moved past last ...".
 +      (compilation--compat-error-properties)
 +      (compilation--compat-parse-errors): Rename by doubling the "-".
 +
 +      Port features from the previous prolog.el to the new one.
 +      * progmodes/prolog.el (prolog-system): Add GNU and ECLiPSe options.
 +      (prolog-program-name, prolog-program-switches, prolog-consult-string)
 +      (prolog-compile-string, prolog-prompt-regexp): Get rid of the <foo>-i
 +      variable and use a function to compute the value dynamically.
 +      (prolog-prompt-regexp): Add regexp for GNU Prolog.
 +      (prolog-continued-prompt-regexp): Remove, unused.
 +      (prolog-find-value-by-system): Try and use the value of prolog-system
 +      in the *prolog* buffer if it helps.
 +      (prolog-mode-keybindings-common): Bind C-c C-z unconditionally...
 +      (prolog-zip-on): ..and check prolog-system and version here instead.
 +      (prolog-inferior-self-insert-command): New command.
 +      (prolog-inferior-mode-map): Use it.
 +      (prolog-inferior-error-regexp-alist): New var.
 +      (prolog-inferior-mode): Use it, with compilation-shell-minor-mode.
 +      (prolog-input-filter): Use derived-mode-p.
 +      (prolog-inferior-guess-flavor): New function.
 +      (prolog-ensure-process): Use it.  Use make-comint-in-buffer rather than
 +      make-comint to avoid running comint-mode twice.
 +      (prolog-inferior-buffer): New fun.
 +      (prolog-old-process-region, prolog-old-process-file):
 +      Don't call prolog-bsts here...
 +      (prolog-build-prolog-command): ...do it here instead.
 +      (prolog-old-process-region, prolog-old-process-file):
 +      Use compilation-fake-loc and compilation-forget-errors.
 +      (prolog-consult-compile-region): Use bolp.
  
 -2010-11-16  Ulrich Mueller  <ulm@gentoo.org>
 +2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * server.el (server-force-stop): Ensure the server is stopped (Bug#7409).
 +      * image-mode.el (image-display-size): Doc fix (Bug#7820).
  
 -2010-11-13  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-27  Sam Steingold  <sds@gnu.org>
  
 -      * subr.el (posn-col-row): Pay attention to header line.  (Bug#7390)
 +      * midnight.el (clean-buffer-list-kill-never-buffer-names):
 +      Remove "*server*" which is never created by emacs server.
  
 -2010-11-13  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-27  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
  
 -      * textmodes/picture.el (picture-mouse-set-point): Don't use
 -      posn-col-row; explicitly compute the motion based on the posn at
 -      the window-start (Bug#7390).
 +      * vc/vc-bzr.el (vc-bzr-diff): Don't pass --diff-options unless
 +      there are some diff switches.
  
 -2010-11-13  Michael Albinus  <michael.albinus@gmx.de>
 +2011-01-27  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * net/tramp.el (tramp-remote-coding-commands): Add an alternative
 -      using "base64 -d -i".  This is needed for older base64 versions
 -      from GNU coreutils.  Reported by Klaus Reichl
 -      <Klaus.Reichl@thalesgroup.com>.
 +      * progmodes/ruby-mode.el (ruby-syntax-propertize-function):
 +      Copy change made to ruby-font-lock-syntactic-keywords.
  
 -2010-11-13  Glenn Morris  <rgm@gnu.org>
 +      * htmlfontify.el: Make it obey the font-lock-face text property.
 +      Miscellaneous cleanup such as:
 +      - Don't hide expressions after a closing paren.
 +      - Move initial setq into let.
 +      - Hoist common parts out of ifs.
 +      (hfy-p-to-face, hfy-p-to-face-lennart): Remove.
 +      (hfy-face-at): Use get-text-property instead.
 +      (hfy-prop-invisible-p): Use invisible-p if available.
 +      (htmlfontify-manual): Use \\[...].
 +      (hfy-html-quote-regex): Use [...].
 +      (hfy-combined-face-spec): Simplify.
 +      (hfy-compile-face-map): Don't presume point-min==1.
 +      (hfy-css-name, hfy-buffer, htmlfontify-buffer): Use \' rather than $ to
 +      match end of string.
 +      (hfy-text-p): η-reduce.
 +      (hfy-tags-for-file): Receive cache-hash directly.
 +      (hfy-mark-tag-names): Adjust call.
  
 -      * novice.el (disabled-command-function):
 -      Fix 2009-11-15 change.  (Bug#7384)
 +2011-01-27  Glenn Morris  <rgm@gnu.org>
  
 -2010-11-12  Glenn Morris  <rgm@gnu.org>
 +      * msb.el (msb-after-load-hooks): Make it an obsolete alias.
 +      (msb-after-load-hook): Remove eval-after-load wackiness.
  
 -      * calendar/calendar.el (diary-iso-date-forms): Make elements
 -      mutually exclusive.  (Bug#7377)
 +2011-01-25  Sam Steingold  <sds@gnu.org>
  
 -2010-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * vc/vc-svn.el (vc-svn-diff): Use `diff-command' instead of the
 +      literal "diff" (important for windows-nt).
  
 -      * emacs-lisp/smie.el (smie-prec2->grammar): Obey equality constraints
 -      when filling the remaining "unconstrained" values.
 +2011-01-25  Glenn Morris  <rgm@gnu.org>
  
 -2010-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * emacs-lisp/copyright.el (copyright-at-end-flag)
 +      (copyright-names-regexp): Add safety properties.
 +      (copyright-year-ranges): New option.
 +      (copyright-find-end): New function, split from copyright-update-year.
 +      (copyright-update-year): Use copyright-find-end.
 +      (copyright-fix-years): Optionally, convert years to ranges.
 +      Handle years continued over comment lines.
 +      Do not mess with the fill-prefix.
 +      Do not call copyright-update.
 +      (copyright-update-directory): Optionally, fix years rather than update.
 +      Skip directories.  Find files with only safe local vars.
  
 -      * emacs-lisp/bytecomp.el (byte-compile-warnings): Simplify the
 -      safety predicate.
 +2011-01-25  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * files.el (safe-local-variable-p): Gracefully handle errors.
 +      * files.el (file-name-non-special): Only change buffer-file-name after
 +      insert-file-contents if it's `visit'ing the file (bug#7854).
  
 -      * emacs-lisp/smie.el (smie-rule-parent, smie-indent--rule):
 -      Use smie-indent-virtual when indenting relative to an opener.
 -      (smie-rule-separator): Use smie-rule-parent.
 -      (smie-indent-keyword): Consult rules, even for openers at bol.
 -      (smie-indent-comment-close): Try to align closer's content.
 +2011-01-25  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-11-11  Glenn Morris  <rgm@gnu.org>
 +      * dired.el (dired-revert): Doc fix (Bug#7758).
  
 -      * ls-lisp.el (ls-lisp-dired-ignore-case): Make it an obsolete alias.
 +      * simple.el (line-move-visual): Doc fix (Bug#7594).
  
 -2010-11-10  Glenn Morris  <rgm@gnu.org>
 +2011-01-25  Nobuyoshi Nakada  <nobu@ruby-lang.org>
  
 -      * printing.el (pr-menu-bind): Doc fix.
 +      * progmodes/ruby-mode.el (ruby-here-doc-beg-match): Fix for
 +      here-doc which ends with an underscore.
 +      (ruby-mode-set-encoding): Skip shebang line always.
 +      (ruby-mode-map): Bind C-c C-c to comment-region.
 +      (ruby-font-lock-keywords): Highlight literal hash key labels as symbols.
 +      (ruby-forward-sexp): Stop after literal hash key labels.
 +      (ruby-font-lock-syntactic-keywords): Highlight regexp after open
 +      bracket.
  
 -      * speedbar.el (speedbar-toggle-images): Doc fix.
 +2011-01-25  Keitaro Miyazaki  <keitaro.miyazaki@gmail.com>  (tiny change)
  
 -      * progmodes/python.el (python-shell): Doc fix.
 +      * emacs-lisp/re-builder.el (reb-mode-map): Set case-fold-search in
 +      the correct buffer (Bug#7650).
  
 -      * wid-edit.el (widget-field-use-before-change)
 -      (widget-use-overlay-change): Doc fixes.
 +2011-01-25  Glenn Morris  <rgm@gnu.org>
  
 -2010-11-09  Glenn Morris  <rgm@gnu.org>
 +      * comint.el (comint-mode): Doc fix.  (Bug#7897)
  
 -      * progmodes/tcl.el (tcl-hairy-scan-for-comment): Doc fix.
 +      * simple.el (do-auto-fill): Give it a doc string.
  
 -2010-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * button.el (make-text-button): Doc fix.  (See bug#7881)
  
 -      * minibuffer.el (minibuffer-completion-help): Specify the end of the
 -      completion field (bug#7211).
 +2011-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * progmodes/python.el (python-font-lock-syntactic-keywords): (bug#7322)
 -      Fix handling of backslash escapes.
 -      (python-quote-syntax): Adjust accordingly.
 +      * progmodes/perl-mode.el (perl-syntax-propertize-special-constructs):
 +      Don't move backward, so as not to fall in an inf-loop (bug#7736).
  
 -2010-11-08  Richard Levitte  <richard@levitte.org>  (tiny change)
 +      * progmodes/ruby-mode.el (ruby-syntax-propertize-function): (bug#7735)
 +      Handle ?" and friends differently (e.g. don't use backrefs).
  
 -      * vc-mtn.el (vc-mtn-working-revision, vc-mtn-after-dir-status)
 -      (vc-mtn-workfile-branch): Adjust to new output format.
 +2011-01-24  Jay Belanger  <jay.p.belanger@gmail.com>
  
 -2010-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * calc/calc.el (calc-default-power-reference-level)
 +      (calc-default-field-reference-level): New variables.
 +      * calc/calc-units.el (math-standard-units): Add dB and Np.
 +      (math-logunits): New variable.
 +      (math-extract-logunits, math-logcombine, calcFunc-luplus)
 +      (calcFunc-luminus, calc-luplus, calc-luminus, math-logunit-level)
 +      (calcFunc-fieldlevel, calcFunc-powerlevel, calc-level):
 +      New functions.
 +      (math-find-base-units-rec): Add entry for ln(10).
 +      * calc/calc-help.el (calc-u-prefix-help): Add logarithmic help.
 +      (calc-ul-prefix-help): New function.
 +      * calc/calc-ext.el (calc-init-extensions): Autoload new units
 +      functions.  Add keybindings for new units functions.
  
 -      * international/mule-cmds.el (princ-list): Mark as obsolete.
 +2011-01-22  Giorgos Keramidas  <keramida@ceid.upatras.gr>  (tiny change)
  
 -2010-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * net/rcirc.el (rcirc-kill-buffer-hook): Flush logs when killing
 +      rcirc buffers.  (Bug#4940)
  
 -      * emacs-lisp/smie.el: New package.
 +2011-01-22  Glenn Morris  <rgm@gnu.org>
  
 -2010-11-06  Michael Albinus  <michael.albinus@gmx.de>
 +      * emacs-lisp/copyright.el (copyright-find-copyright): New function,
 +      split out from copyright-update-year.
 +      (copyright-update): Don't mess with the GPL version if we don't own the
 +      copyright.  Update license regexp, and remove no longer needed
 +      Esperanto stuff.
 +      (copyright-fix-years): Use copyright-find-copyright.
  
 -      * files.el (backup-by-copying-when-mismatch):
 -      Set `permanent-local' property.
 +2011-01-22  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * net/tramp.el (tramp-handle-insert-file-contents): Do not set
 -      `permanent-local' property for `backup-by-copying-when-mismatch'.
 +      * vc/diff.el (diff-sentinel): Doc fix (Bug#7682).
  
 -2010-11-06  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-22  Jari Aalto  <jari.aalto@cante.net>
  
 -      * ls-lisp.el (insert-directory): Doc fix.  (bug#7285)
 -      (ls-lisp-classify-file): New function.
 -      (ls-lisp-insert-directory): Call it if switches include -F (bug#6294).
 -      (ls-lisp-classify): Call ls-lisp-classify-file.
 -      (insert-directory): Remove blanks from switches.
 +      * play/landmark.el: Change `lm-' prefix to `landmark-' (Bug#7672).
 +      (lm): Rename to landmark.
 +      (lm-test-run): Rename to landmark-test-run.
  
 -2010-11-07  Wilson Snyder  <wsnyder@wsnyder.org>
 +2011-01-22  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * progmodes/verilog-mode.el (verilog-insert-one-definition)
 -      (verilog-read-decls, verilog-read-sub-decls-sig): Fix AUTOWIRE and
 -      AUTOINOUT for SV style multidimensional arrays, bug294.
 -      Reported by Eric Mastromarchi.
 -      (verilog-preprocess): Use with-current-buffer and
 -      font-lock-fontify-buffer to cleanup style issues.
 +      * emacs-lisp/re-builder.el (reb-mode-map): Fix logic error in
 +      "Case sensitive" menu item.
  
 -2010-11-05  Michael Albinus  <michael.albinus@gmx.de>
 +2011-01-22  Roland McGrath  <roland@frob.com>
  
 -      * net/trampver.el: Update release number.
 +      * comint.el (comint-replace-by-expanded-history-before-point): Fix
 +      expansion of !$ and !!:N syntax to pick the indicated word (bug#7883).
  
 -2010-08-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2011-01-22  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * mouse.el (mouse-fixup-help-message): Match "mouse-2" only at the
 -      beginning of the string.  Use `string-match-p'.  (Bug#6765)
 +      * progmodes/js.el (js--regexp-literal): Count backslashes (bug#7882).
  
 -2010-11-01  Glenn Morris  <rgm@gnu.org>
 +2011-01-22  Jari Aalto  <jari.aalto@cante.net>
  
 -      * locate.el (locate, locate-mode): Doc fixes.
 +      * emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
 +      Assume foo(bar) is a manpage reference rather than some unquoted
 +      symbol (bug#7705).
  
 -2010-11-01  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-22  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * server.el (server-start): New arg INHIBIT-PROMPT prevents asking
 -      user for confirmation.
 -      (server-force-stop): Use it.
 -      (server-start): Use server-force-stop for kill-emacs-hook, to
 -      avoid user interaction while killing Emacs.
 +      * subr.el (shell-quote-argument): Properly quote \n (bug#7687).
 +      Suggested by Flo <sensorflo@gmail.com>.
  
 -2010-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-22  Glenn Morris  <rgm@gnu.org>
  
 -      * vc/log-edit.el (log-edit-rewrite-fixes): New var.
 -      (log-edit-author): New dynamic var.
 -      (log-edit-changelog-ours-p, log-edit-insert-changelog-entries):
 -      Use it to return the author if different from committer.
 -      (log-edit-insert-changelog): Use them to add Author: and Fixes headers.
 +      * progmodes/compile.el (compilation-error-regexp-alist):
 +      Fix custom type.  (Bug#7812)
  
 -2010-10-31  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-22  Ken Manheimer  <ken.manheimer@gmail.com>
  
 -      * vc/vc-hooks.el (vc-default-mode-line-string): Doc fix.
 +      * allout.el (allout-prefixed-keybindings): Bind (prefixed) '#' to
 +      allout-number-siblings, in keeping with what obtained due to
 +      (now-defunct) allout-keybindings-list.  Ditch repeat binding to
 +      (prefixed) ?i.
 +      (allout-before-change-handler): Better expose spots affected by
 +      undo.
  
 -2010-10-31  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-22  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * vc/vc.el (vc-deduce-backend): New fun.  Handle diff buffers.
 -      (vc-root-diff, vc-print-root-log, vc-log-incoming)
 -      (vc-log-outgoing): Use it.
 -      (vc-diff-internal): Set diff-vc-backend.
 +      * man.el (Man-highlight-references0): Use make-button (Bug#7881).
  
 -      * vc/diff-mode.el (diff-vc-backend): New var.
 +2011-01-22  Phil Hagelberg  <phil@evri.com>
  
 -2010-10-31  Juri Linkov  <juri@jurta.org>
 +      * pcmpl-unix.el (pcmpl-ssh-config-file): New option.
 +      (pcmpl-ssh-known-hosts): Rename from pcmpl-ssh-hosts.
 +      (pcmpl-ssh-config-hosts): New function.
 +      (pcmpl-ssh-hosts): Use pcmpl-ssh-config-hosts in addition to
 +      pcmpl-ssh-known-hosts.
  
 -      * vc/vc.el (vc-diff-internal): Set `revert-buffer-function'
 -      buffer-locally to lambda that re-runs the vc diff command.
 -      (Bug#6447)
 +2011-01-21  Jay Belanger  <jay.p.belanger@gmail.com>
  
 -2010-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * calc/calc-undo.el (calc-undo): Autoload it.
 +      * calc/calc-ext.el (calc-init-extensions): Remove keybindings
 +      and autoload for `calc-undo'.
 +      * calc/calc.el (calc-mode-map): Add keybindings for `calc-undo'.
 +      * calc/calc-prog.el:
 +      * calc/calc-graph.el:
 +      * calc/calc-map.el: Change `arglist' to `math-arglist' throughout.
  
 -      * vc/log-view.el (log-view-mode-map): Bind revert-buffer.
 +2011-01-21  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
  
 -      Make 'g' (AKA revert-buffer) rerun VC log, log-incoming and
 -      log-outgoing commands.
 -      * vc/vc.el (vc-log-internal-common): Add a new argument and use it
 -      to create a buffer local revert-buffer-function variable.
 -      (vc-print-log-internal, vc-log-incoming, vc-log-outgoing): Pass a
 -      revert-buffer-function lambda.
 +      * calc/calc-ext.el (calc-init-extensions): Map all `undo'
 +      keybindings to `calc-undo'.
  
 -      Improve VC create/retrieve tag/branch.
 -      * vc.el (vc-create-tag): Do not read the directory name for VCs
 -      with repository revision granularity.  Adjust the tag/branch
 -      prompt.  Reset VC properties.
 -      (vc-retrieve-tag): Do not read the directory name for VCs
 -      with repository revision granularity.  Reset VC properties.
 +2011-01-20  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      Add optional support for resetting VC properties.
 -      * vc-dispatcher.el (vc-resynch-window): Add new optional argument,
 -      call vc-file-clearprops when true.
 -      (vc-resynch-buffer): Add new optional argument, pass it down.
 -      (vc-resynch-buffers-in-directory): Likewise.
 +      Don't mess with *temp*.
 +      * obsolete/spell.el: Move from textmodes/spell.el.
 +      (spell-string):
 +      * term.el (term-read-input-ring):
 +      * startup.el (display-startup-echo-area-message):
 +      * progmodes/antlr-mode.el (antlr-directory-dependencies):
 +      * comint.el (comint-read-input-ring): Use with-temp-buffer.
 +      * international/mule.el (ctext-pre-write-conversion): Don't hardcode
 +      point-min==1.
  
 -      Improve support for special markup in the VC commit message.
 -      * vc-mtn.el (vc-mtn-checkin): Support Author: and Date: markup.
 -      * vc-hg.el (vc-hg-checkin): Add support for Date:.
 -      * vc-git.el (vc-git-checkin):
 -      * vc-bzr.el (vc-bzr-checkin): Likewise.
 +2011-01-20  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      * allout.el (allout-institute-keymap): Use fset instead of
 +      reapplying defalias.
 +
 +      (allout-hotspot-key-handler): Check for non-control-modified
 +      bindings for hotspot characters if there are no control-modified
 +      versions.
 +
 +      * allout.el: Summary - migrate to defining allout mode using
 +      define-minor-mode instead of defun.  Significantly clean-up
 +      internal keymap provisions, refactoring and, in the process,
 +      removing a lot of accumulated cruft.
 +
 +      allout-mode-map is now a keymap by virtue of being a defalias to
 +      allout-mode-map-value, which contains the actual keymap structure.
 +
 +      (allout-mode): Use define-minor-mode rather than defun.
 +      Remove now-unnecessary minor-mode setup activities from the body.
 +      Specify :keymap as allout-mode-map so the minor-mode-map-alist
 +      entry will be '(allout-mode . allout-mode-map) - see
 +      allout-mode-map-value, below.  Adjust docstring to track changes.
 +      (allout-minor-mode): Remove this defalias, now that we're using
 +      define-minor-mode.
 +      (allout-mode-map): Set value to be 'allout-mode-map.  The actual
 +      keymap is allout-mode-map-value, via defalias.
 +      (allout-mode-map-value): The variable holding the actual mode
 +      keymap structure, by virtue of defalias from allout-mode-map.
 +      (allout-compose-and-institute-keymap): Rename from
 +      allout-bind-keys, and including the binding-composition
 +      functionality of the former produce-allout-mode-map and
 +      allout-setup-mode-map.
 +      (allout-institute-keymap): Take over the "setup" part of the former
 +      allout-setup-mode-map.  Reassign allout-mode-map-value value and
 +      update the defalias.
 +      (allout-command-prefix) (allout-prefixed-keybindings)
 +      (allout-unprefixed-keybindings):
 +      Use allout-compose-and-institute-keymap to process the bindings.
 +      (allout-unprefixed-keybindings): Remove extraneous '?' question
 +      marks.
 +      (allout-prefixed-keybindings): Elide binding to (prefixed) \C-h -
 +      user can customize if they want to use that binding.
 +      Bind allout-copy-topic-as-kill to (prefixed) \M-k.
 +      Bind allout-up-current-level to (prefixed) \C-u.  (I think i mistakenly
 +      elided that, previously, instead of the one for \C-h.)
 +      (allout-hotspot-key-handler): Remove attempt to resolve the key
 +      through the literal key-string lookup on allout-keybindings-list.
 +      That probably hasn't worked for a Long Time, and removal of
 +      allout-keybindings-list further simplifies the keybindings
 +      situation.
 +      (allout-pre-command-business): Use allout-mode-map-value instead
 +      of allout-mode-map.
 +      (allout-preempt-trailing-ctrl-h): Remove.  The user can customize
 +      the bindings if they want to use a keybinding having a trailing
 +      \C-h.  No deprecation needed since this feature was never in a
 +      release.
 +      (allout-keybindings-list): Remove.  It's not been useful for a
 +      while.  (See allout-hotspot-key-handler changes, above.)
 +      (produce-allout-mode-map): Remove.  Consolidate into
 +      allout-compose-and-institute-keymap.
 +      (allout-mode-map-adjustments): Remove.  No longer necessary with
 +      removal of allout-preempt-trailing-ctrl-h.
 +      (allout-setup-mode-map): Remove.  Consolidate into
 +      allout-compose-and-institute-keymap and allout-institute-keymap.
 +
 +2011-01-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/vc-svn.el (vc-svn-after-dir-status): Tweak previous change.
 +
 +      * simple.el (read-expression-history): Remove, it's in minibuf.c.
 +
 +2011-01-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el (y-or-n-p): Revert 2011-01-07 change, removing ARGS.
 +
 +      * files.el (find-alternate-file, basic-save-buffer)
 +      (basic-save-buffer-2, revert-buffer, recover-file)
 +      (kill-buffer-ask, abort-if-file-too-large)
 +      (set-visited-file-name, write-file, backup-buffer)
 +      (basic-save-buffer, save-some-buffers):
 +      * dired-aux.el (dired-compress-file): Callers changed.
 +
 +2011-01-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/vc-svn.el (vc-svn-after-dir-status, vc-svn-parse-status):
 +      Also check the property status.  (Bug#7861)
 +
 +2011-01-18  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-debug-message): Extend function exclude
 +      list.  Use `regexp-opt'.
 +
 +2011-01-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/tex-mode.el (tex-font-lock-verb): Make sure \verb
 +      highlighting doesn't spill over subsequent lines.
  
 -      Add support for vc-log-incoming, improve vc-log-outgoing for Git.
 -      * vc-git.el (vc-git-log-view-mode): Fix font lock for
 -      incoming/outgoing logs.
 -      (vc-git-log-outgoing, vc-git-log-incoming): New functions.
 +      * emacs-lisp/easy-mmode.el (define-minor-mode): Don't re-evaluate the
 +      keymap expression.  Improve docstring.
  
 -      * vc-git.el (vc-git-log-outgoing): Use the same format as the
 -      short log.
 -      (vc-git-log-incoming): Likewise.  Run "git fetch" before the log
 -      command
 +      * electric.el (electric-indent-post-self-insert-function):
 +      Don't auto-indent for indent-to-left-margin, it's too often
 +      counter-productive.
 +
 +2011-01-16  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * strokes.el (strokes-read-stroke): Re-fill strokes buffer with
 +      spaces if the frame was resized, so that the full visible buffer
 +      serves as canvas for strokes.
 +
 +2011-01-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * info-xref.el (info-xref-docstrings): Replace cl function.
 +      Also skip directories.
 +
 +2011-01-16  Kevin Ryde  <user42@zip.com.au>
 +
 +      * info-xref.el: Version 3.
 +      (info-xref-check, info-xref-check-all): Move commentary details
 +      into docstrings for better visibility.
 +      Use compilation-mode for the results buffer.
 +      (info-xref-output, info-xref-output-error, info-xref-with-output)
 +      (info-xref-filename, info-xref-in-progress):
 +      New internals for this.
 +      (info-xref-check-list, info-xref-check-buffer)
 +      (info-xref-check-all-custom): Use those.
 +      (info-xref-output-buffer): Rename from info-xref-results-buffer.
 +      (info-xref-output-heading): Rename from info-xref-filename-heading.
 +      (info-xref-good, info-xref-bad, info-xref-xfile-alist)
 +      (info-xref-filename-heading): Move to output managing section.
 +      (info-xref-docstrings): New command checking "Info node `(foo)Bar'"
 +      (info-xref-lock-file-p, info-xref-with-file): New helpers for it.
 +      (info-xref-subfile-p): Move to generic section with those two.
 +      (info-xref-check-node): New function split from
 +      info-xref-check-buffer, shared by info-xref-docstrings.
 +      (info-xref-goto-node-p): Move to a checking section with that func.
 +      (info-xref-unavail): New counter.
 +      (info-xref-check-node): Use it.
 +      (info-xref-with-output): Show count of unavailables at end of output.
 +      (info-xref-all-info-files): Exclude ".*" dotfiles.  Ignore broken
 +      symlinks.  Exclude .texi files.  Exclude Emacs backup files.
 +      (info-xref-check-all-custom): Fix quietening viper-mode and
 +      gnus-registry-install -- use setq not let so as not to unbind
 +      after load.
 +
 +2011-01-16  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-abort): Don't quit if search has
 +      an incomplete regexp (isearch-error is non-nil).  (Bug#7534)
  
 -      Add bindings for vc-log-incoming and vc-log-outgoing.
 -      * vc-hooks.el (vc-prefix-map): Add bindings for vc-log-incoming
 -      and vc-log-outgoing.
 -      * vc-dir.el (vc-dir-menu-map): Add menu bindings for vc-log-incoming
 -      and vc-log-outgoing.
 +2011-01-15  Mark Diekhans  <markd@soe.ucsc.edu>
  
 -      Improve state updating for VC tag commands.
 -      * vc.el (vc-create-tag, vc-retrieve-tag): Call vc-resynch-buffer
 -      to update the state of all buffers in the directory.
 +      * files.el (backup-buffer): Make last-resort backup file in
 +      .emacs.d (Bug#6953).
  
 -2010-05-19  Glenn Morris  <rgm@gnu.org>
 +      * subr.el (locate-user-emacs-file): If .emacs.d does not exist,
 +      make it with permission 700.
  
 -      * vc-dir.el (vc-dir): Don't pop-up-windows.  (Bug#6204)
 +2011-01-15  Kenichi Handa  <handa@m17n.org>
  
 -2010-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * mail/rmailmm.el (rmail-mime-insert-header):
 +      Set rmail-mime-coding-system to a cons whose car is the last coding
 +      system used to decode the header.
 +      (rmail-mime-find-header-encoding): New function.
 +      (rmail-mime-insert-decoded-text):
 +      Override rmail-mime-coding-system if it is a cons.
 +      (rmail-show-mime): If only a header part was decoded, find the
 +      coding system while ignoring mm-charset-override-alist.
  
 -      * vc.el (vc-checkin, vc-modify-change-comment):
 -      Adjust to new vc-start/finish-logentry.
 -      (vc-find-conflicted-file): New command.
 -      (vc-transfer-file): Adjust to new vc-checkin.
 -      (vc-next-action): Improve scoping.
 +2011-01-15  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * vc-git.el (vc-git-checkin): Use log-edit-extract-headers.
 -      (vc-git-commits-coding-system): Rename from git-commits-coding-system.
 +      * subr.el (event-start, event-end): Doc fix (Bug#7826).
  
 -      * vc-dispatcher.el (vc-log-edit): Shorten names for
 -      log-edit-show-files.
 +2011-01-15  Kenichi Handa  <handa@m17n.org>
  
 -      * vc-bzr.el (vc-bzr-checkin): Use log-edit-extract-headers.
 -      (vc-bzr-conflicted-files): New function.
 +      * mail/rmailmm.el (rmail-mime-next-item)
 +      (rmail-mime-previous-item): Delete them.
 +      (rmail-mime-shown-mode): Recursively call for children.
 +      (rmail-mime-hidden-mode): Delete the 2nd arg TOP.
 +      Callers changed.
 +      (rmail-mime-raw-mode): Recursively call for children.
 +      (rmail-mode-map): Change mapping of tab and backtab to
 +      forward-button and backward-button respectively.
 +      (rmail-mime-insert-tagline): Always insert "Hide" or "Show"
 +      button.
 +      (rmail-mime-update-tagline): New function.
 +      (rmail-mime-insert-text): Call rmail-mime-update-tagline if the
 +      body display is changed.
 +      (rmail-mime-toggle-button): Rename from rmail-mime-image.
 +      (rmail-mime-image): Delete this button type.
 +      (rmail-mime-toggle): New button type.
 +      (rmail-mime-insert-bulk): Call rmail-mime-update-tagline if the
 +      body display is changed.  Change the save button label to "Save".
 +      Don't process show/hide button here.
 +      (rmail-mime-insert-multipart): Call rmail-mime-update-tagline if
 +      the body display is changed.  Unconditionally call
 +      rmail-mime-insert for children.
 +      (rmail-mime-handle): Update `display' vector of the just inserted
 +      entity.
 +      (rmail-mime-process): If mail-header-parse-content-type returns
 +      nil, use "text/plain" as the fallback type.
 +      (rmail-mime-insert): For raw-mode, recursively call
 +      rmail-mim-insert for children.
 +      (rmail-mime): Handle the case that the current buffer is not rmail
 +      buffer (e.g. in summary buffer).
  
 -      * log-edit.el (log-edit-summary, log-edit-header)
 -      (log-edit-unknown-header): New faces.
 -      (log-edit-headers-alist): New var.
 -      (log-edit-header-contents-regexp): New const.
 -      (log-edit-match-to-eoh): New function.
 -      (log-edit-font-lock-keywords): Use them.
 -      (log-edit): Insert a "Summary:" header as default.
 -      (log-edit-mode): Mark font-lock rules as case-insensitive.
 -      (log-edit-done): Cleanup headers.
 -      (log-edit-extract-headers): New function to replace it.
 +2011-01-15  Kenichi Handa  <handa@m17n.org>
  
 -      * vc-dispatcher.el (vc-finish-logentry): Don't mess so badly with
 -      the windows/frames.
 +      * mail/rmailmm.el (rmail-mime-next-item)
 +      (rmail-mime-previous-item): Skip the body of a non-multipart
 +      entity if a tagline is shown.
  
 -      * vc-bzr.el (vc-bzr-shelve-apply): Don't use *vc-bzr-shelve*.
 +2011-01-15  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc-dir.el (vc-dir-kill-line): New command.
 -      (vc-dir-mode-map): Bind it to C-k.
 -      (vc-dir-headers): Abbreviate the working dir.
 +      * tmm.el (tmm-get-keymap): Skip bindings without labels (bug#7721).
 +      (tmm-prompt): Simplify.
 +      (tmm-add-prompt): Remove unused var `win'.
  
 -      * vc-git.el (vc-git-revision-table): Include remote branches.
 +      * whitespace.el (global-whitespace-newline-mode): Fix call (bug#7810)
 +      to minor mode which used nil accidentally to mean "turn off".
  
 -2010-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 +2011-01-15  Michael Albinus  <michael.albinus@gmx.de>
  
 -      New VC methods: vc-log-incoming and vc-log-outgoing.
 -      * vc.el (vc-print-log-setup-buttons, vc-log-internal-common)
 -      (vc-incoming-outgoing-internal, vc-log-incoming, vc-log-outgoing):
 -      New functions.
 -      (vc-print-log-internal): Just call vc-log-internal-common.
 -      (vc-log-view-type): New permanent local variable.
 +      * net/tramp-sh.el (tramp-find-inline-compress)
 +      (tramp-get-inline-coding): Quote command after pipe symbol for
 +      local calls under W32.  (Bug#6784)
  
 -      * vc-hooks.el (vc-menu-map): Bind vc-log-incoming and vc-log-outgoing.
 +2011-01-15  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * vc-bzr.el (vc-bzr-log-view-mode): Use vc-log-view-type instead
 -      of the dynamic bound vc-short-log.
 -      (vc-bzr-log-incoming, vc-bzr-log-outgoing): New functions.
 +      * net/tramp.el (tramp-default-method): Initialize with pscp/plink
 +      only when running under W32.
  
 -      * vc-git.el (vc-git-log-outgoing): New function.
 -      (vc-git-log-view-mode): Use vc-log-view-type instead
 -      of the dynamic bound vc-short-log.
 +2011-01-15  Eli Zaretskii  <eliz@gnu.org>
  
 -      * vc-hg.el (vc-hg-log-view-mode): Use vc-log-view-type instead of
 -      the dynamic bound vc-short-log.  Highlight the tag.
 -      (vc-hg-log-incoming, vc-hg-log-outgoing): New functions.
 -      (vc-hg-outgoing, vc-hg-incoming, vc-hg-outgoing-mode):
 -      (vc-hg-incoming-mode): Remove.
 -      (vc-hg-extra-menu-map): Do not bind vc-hg-incoming and vc-hg-outgoing.
 +      * progmodes/grep.el (grep-compute-defaults): Quote the program
 +      file name after the pipe symbol in Grep templates.  (Bug#6784)
 +      * jka-compr.el (jka-compr-partial-uncompress): Likewise.
  
 -      Fix default-directory for vc-root-diff.
 -      * vc.el (vc-root-diff): Bind default-directory to the root
 -      directory for the diff command.
 +2011-01-15  Lennart Borgman  <lennart.borgman@gmail.com>
  
 -2010-10-31  Sam Steingold  <sds@gnu.org>
 +      * buff-menu.el (Buffer-menu-buffer-list): New var.
 +      (Buffer-menu-revert-function, list-buffers-noselect): Use it, so a
 +      restricted buffer list is not lost on revert (Bug#7749).
  
 -      * vc-hg.el (vc-hg-push, vc-hg-pull): Use `apply' when calling
 -      `vc-hg-command' with a list of flags.
 +2011-01-15  Eric Hanchrow  <eric.hanchrow@gmail.com>
  
 -2010-10-31  Glenn Morris  <rgm@gnu.org>
 +      * net/ldap.el (ldap-search-internal): Discard stderr output.
  
 -      * vc-bzr.el (vc-bzr-log-edit-mode): Add --fixes support to
 -      log-edit-before-checkin-process.
 +2011-01-15  Eli Zaretskii  <eliz@gnu.org>
  
 -      * vc.el (vc-modify-change-comment): Pass MODE to vc-start-logentry.
 +      * files.el (directory-abbrev-alist): Doc fix.  (Bug#7777)
  
 -      * vc-bzr.el, vc-hg.el (log-edit-mode): Declare.
 +2011-01-15  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc-dispatcher.el (vc-start-logentry): Doc fix.
 -      (log-view-process-buffer, log-edit-extra-flags): Declare.
 +      * vc-bzr.el (vc-bzr-annotate-time): Tweak previous change.
  
 -2010-10-31  Dan Nicolaescu  <dann@ics.uci.edu>
 +2011-01-15  Kenichi Handa  <handa@m17n.org>
  
 -      Add special markup processing for commit logs.
 -      * log-edit.el (log-edit): Add new argument MODE.  Use that mode
 -      when non-nil instead of the log-view-mode.
 +      * mail/rmailmm.el (rmail-mime-insert-bulk): Display an unknown
 +      part as a plain text.
 +      (rmail-mime-process-multipart): Set the default content-type to
 +      nil for unknown multipart subtypes (bug#7651).
  
 -      * vc.el (vc-default-log-edit-mode): New function.
 +2011-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc-dispatcher.el (vc-log-edit): Add a mode argument, pass it to
 -      log-edit.
 +      * hexl.el (hexl-mode-old-*): Remove.
 +      (hexl-mode--old-var-vals): New var to replace them.
 +      (hexl-mode--minor-mode-p, hexl-mode--setq-local): New funs.
 +      (hexl-mode, hexl-follow-line, hexl-activate-ruler):
 +      Use them to set local vars (bug#7846).
 +      (hexl-mode-exit): Use hexl-mode--old-var-vals to restore state.
 +      (hexl-backward-short, hexl-backward-word, hexl-scroll-down)
 +      (hexl-scroll-up, hexl-end-of-1k-page, hexl-end-of-512b-page): Simplify.
  
 -      Support for shelving snapshots and for showing shelves.
 -      * vc-bzr.el (vc-bzr-shelve-show, vc-bzr-shelve-show-at-point)
 -      (vc-bzr-shelve-apply-and-keep-at-point, vc-bzr-shelve-snapshot):
 -      New functions.
 -      (vc-bzr-shelve-map, vc-bzr-shelve-menu-map)
 -      (vc-bzr-extra-menu-map): Map them.
 +      * vc/smerge-mode.el: Resolve comment conflicts more aggressively.
 +      (smerge-resolve--normalize-re): New var.
 +      (smerge-resolve--extract-comment, smerge-resolve--normalize): New funs.
 +      (smerge-resolve): Use them.
 +      * newcomment.el (comment-only-p): New function.
 +      (comment-or-uncomment-region): Use it.
  
 -2010-10-30  Michael Albinus  <michael.albinus@gmx.de>
 +2011-01-14  Brent Goodrick  <bgoodr@gmail.com>  (tiny change)
  
 -      * net/tramp.el (tramp-handle-insert-file-contents): For root,
 -      preserve owner and group when editing files.  (Bug#7289)
 +      * abbrev.el (prepare-abbrev-list-buffer): If listing local abbrev
 +      table, get the value before switching to the output buffer.  (Bug#7733)
  
 -2010-10-29  Glenn Morris  <rgm@gnu.org>
 +2011-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * speedbar.el (speedbar-mode):
 -      * play/fortune.el (fortune-in-buffer, fortune):
 -      * play/gomoku.el (gomoku-mode):
 -      * play/landmark.el (lm-mode):
 -      * textmodes/bibtex.el (bibtex-validate, bibtex-validate-globally):
 -      Replace inappropriate uses of toggle-read-only.  (Bug#7292)
 +      * progmodes/python.el (python-mode): Don't impose font-lock (bug#3628).
  
 -2010-10-28  Glenn Morris  <rgm@gnu.org>
 +2011-01-14  Kim F. Storm  <storm@cua.dk>
 +
 +      * emulation/cua-base.el (cua--init-keymaps):
 +      Remap exchange-point-and-mark in cua-global-keymap.
 +
 +2011-01-14  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * progmodes/sh-script.el (sh-other-keywords): Add ZSH's foreach
 +      loop keyword.
 +
 +2011-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/easymenu.el: Add :enable (bug#7754), and obey :label.
 +      Require CL.
 +      (easy-menu-create-menu, easy-menu-convert-item-1):
 +      Use :label rather than nil for labels.  Use `case'.
 +      Add :enable as alias for :active.
 +      (easy-menu-binding): Obey :label.
 +
 +2011-01-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Use run-mode-hooks for major mode hooks (bug#513).
 +      * textmodes/reftex-toc.el (reftex-toc-mode-map):
 +      Rename from reftex-toc-map.
 +      (reftex-toc-mode): Use define-derived-mode.
 +      * textmodes/reftex-sel.el (reftex-select-shared-map): New map.
 +      (reftex-select-label-mode-map, reftex-select-bib-mode-map):
 +      Rename from reftex-select-(label|bib)-map.  Move init into declaration.
 +      (reftex-select-label-mode, reftex-select-bib-mode):
 +      Use define-derived-mode.
 +      * textmodes/reftex-index.el (reftex-index-phrases-mode-map)
 +      (reftex-index-mode-map): Rename from reftex-index(-phrases)-map.
 +      Move init into delcaration.
 +      (reftex-index-mode, reftex-index-phrases-mode):
 +      Use define-derived-mode.
 +      * speedbar.el (speedbar-mode-syntax-table): Renaqme from
 +      speedbar-syntax-table.  Move init into declaration.
 +      (speedbar-mode-map): Rename from speedbar-key-map.
 +      Move init into declaration.
 +      (speedbar-file-key-map): Move init into declaration.
 +      (speedbar-mode): Use define-derived-mode.
 +      * recentf.el (recentf-mode): Don't run hook (or message) redundantly.
 +      * net/rcirc.el (rcirc-mode): Use run-mode-hooks.
 +      * emacs-lisp/chart.el (chart-mode-map): Rename from chart-map.
 +      (chart-face-list): Move initialization into declaration.
 +      (chart-mode): Use define-derived-mode.
 +      * calculator.el (calculator-mode-map): Move init into declaration.
 +      (calculator-mode): Use define-derived-mode.
 +
 +      * mail/mail-utils.el (mail-strip-quoted-names): Make the regexp code
 +      work for nested comments.
 +
 +      * progmodes/prolog.el: Use syntax-propertize.  Further code cleanup.
 +      (prolog-use-prolog-tokenizer-flag): Change default when
 +      syntax-propertize can be used.
 +      (prolog-syntax-propertize-function): New var.
 +      (prolog-mode-variables): Move make-local-variable into `set'.
 +      Don't make comment-column local since we don't set it.
 +      Set comment-add (as it was in previous prolog.el).  Use dolist.
 +      Set syntax-propertize-function.
 +      (prolog-mode, prolog-inferior-mode):
 +      Call prolog(-inferior)-menu directly, not through the mode-hook.
 +      (prolog-buffer-module, prolog-indent-level)
 +      (prolog-paren-is-the-first-on-line-p, prolog-paren-balance)
 +      (prolog-comment-limits, prolog-goto-comment-column):
 +      Use line-(end|beginning)-position.
 +      (prolog-build-prolog-command): Tighten up regexp.
 +      (prolog-consult-compile): Move make-local-variable into `set'.
 +      (prolog-consult-compile-filter, prolog-goto-next-paren)
 +      (prolog-help-on-predicate, prolog-clause-info)
 +      (prolog-mark-predicate): Don't let+setq.
 +      (prolog-indent-line): Use indent-line-to.
 +      Only call prolog-goto-comment-column if necessary.
 +      (prolog-indent-level): Use bobp.
 +      (prolog-first-pos-on-line): Remove, not used any more.
 +      (prolog-in-string-or-comment): Use syntax-ppss if available.
 +      (prolog-help-on-predicate): Use read-string.
 +      (prolog-goto-predicate-info): Simplify.
 +      (prolog-read-predicate): Use `default' rather than `initial'.
 +      (prolog-temporary-file): Use make-temp-file to close a security hole.
 +      (prolog-toggle-sicstus-sd): New command.
 +      (prolog-electric-underscore, prolog-variables-to-anonymous):
 +      Use dynamic-scoping as it was meant.
 +      (prolog-menu): Move menu definitions to top-level.
 +      Use a toggle-button for Sicstus's source debugger.
 +      Change "Code" to the more usual "Prolog", and hence change "Prolog"
 +      to "System".
 +      (prolog-inferior-menu): Reuse prolog-menu's help menu.
 +      Move other menu definition to top-level.
 +
 +2011-01-13  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * doc-view.el (doc-view-open-text): Use meaningful text buffer
 +      name.  Keep original document's directory as default-directory
 +      (bug#6446).
 +      (doc-view-initiate-display): Fall back to normal mode when
 +      doc-view-mode cannot be enabled, also when extracting the document
 +      text into a separate buffer (bug#6446).
 +
 +      * simple.el (shell-command): Don't error out if shell command
 +      buffer contains text with non-nil read-only property when erasing
 +      the buffer.
 +
 +2011-01-13  Kim F. Storm  <storm@cua.dk>
 +
 +      * ido.el (ido-may-cache-directory): Move "too-big" check later.
 +      (ido-next-match, ido-prev-match): Fix stray reordering of matching
 +      items when cycling through the matches.
 +
 +2011-01-13  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * dired-x.el (dired-omit-verbose): New defcustom that allows
 +      disabling the omit messages.
 +      (dired-omit-expunge): Use it.
 +
 +2011-01-13  Christian Ohler  <ohler@gnu.org>
 +
 +      * emacs-lisp/ert.el, emacs-lisp/ert-x.el: New files.
  
 -      * select.el (x-selection): Mark it as an obsolete alias.
 +2011-01-13  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-10-27  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
 +      * font-lock.el (font-lock-verbose): Default to nil.
  
 -      * add-log.el (find-change-log): Use derived-mode-p rather than
 -      major-mode (bug#7284).
 +2011-01-13  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-10-27  Glenn Morris  <rgm@gnu.org>
 +      * simple.el (sendmail-user-agent-compose): Move to sendmail.el.
 +      (compose-mail): New arg RETURN-ACTION.
 +      (compose-mail-other-window, compose-mail-other-frame): Likewise.
  
 -      * menu-bar.el (menu-bar-files-menu): Make it into an actual alias,
 -      rather than just an unused variable that inherits from the real one.
 +      * mail/sendmail.el (mail-return-action): New var.
 +      (mail-mode): Make it buffer-local.
 +      (mail-bury): Obey it.  Move special Rmail window handling to
 +      rmail-mail-return.
 +      (mail, mail-setup): New arg RETURN-ACTION.
 +      (sendmail-user-agent-compose): Move from simple.el.
  
 -2010-10-23  Michael McNamara  <mac@mail.brushroad.com>
 +      * mail/rmail.el (rmail-mail-return): New function.
 +      (rmail-start-mail): Pass it to compose-mail.
  
 -      * verilog-mode.el (verilog-directive-re): Make this variable
 -      auto-built for efficiency of execution and updating.
 -      (verilog-extended-complete-re): Support 'pure' fucntion & task
 -      declarations (these have no bodies).
 -      (verilog-beg-of-statement): General cleanup to enable support of
 -      'pure' fucntion & task declarations (these have no bodies).
 -      These efforts together fix Verilog bug210 from veripool; which was also
 -      noticed by Steve Pearlmutter.
 -      (verilog-directive-re, verilog-directive-begin, verilog-indent-re)
 -      (verilog-directive-nest-re, verilog-set-auto-endcomments):
 -      Support `elsif.  Reported by Shankar Giri.
 -      (verilog-forward-ws&directives, verilog-in-attribute-p): Fixes for
 -      attribute handling for lining up declarations and assignments.
 -      (verilog-beg-of-statement-1): Fix issue where continued declaration
 -      is indented differently if it is after a begin..end clock.
 -      (verilog-in-attribute-p, verilog-skip-backward-comments)
 -      (verilog-skip-forward-comment-p): Support proper treatment of
 -      attributes by indent code.  Reported by Jeff Steele.
 -      (verilog-in-directive-p): Fix comment to correctly describe function.
 -      (verilog-backward-up-list, verilog-in-struct-region-p)
 -      (verilog-backward-token, verilog-in-struct-p)
 -      (verilog-in-coverage-p, verilog-do-indent)
 -      (verilog-pretty-declarations): Use verilog-backward-up-list as
 -      wrapper around backward-up-list inorder to properly skip comments.
 -      Reported by David Rogoff.
 -      (verilog-property-re, verilog-endcomment-reason-re)
 -      (verilog-beg-of-statement, verilog-set-auto-endcomments)
 -      (verilog-calc-1 ): Fix for assert a; else b; indentation (new form
 -      of if).  Reported by Max Bjurling and
 -      (verilog-calc-1): Fix for clocking block in modport
 -      declaration.  Reported by Brian Hunter.
 +2011-01-12  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-10-23  Wilson Snyder  <wsnyder@wsnyder.org>
 +      * menu-bar.el (menu-bar-custom-menu): Tweak Mule and Customize
 +      menus.  Add menu item for customize-themes.
  
 -      * verilog-mode.el (verilog-auto-inst, verilog-gate-ios)
 -      (verilog-gate-keywords, verilog-read-sub-decls)
 -      (verilog-read-sub-decls-gate, verilog-read-sub-decls-gate-ios)
 -      (verilog-read-sub-decls-line, verilog-read-sub-decls-sig): Support
 -      AUTOINST for gate primitives, bug284.  Reported by Mark Johnson.
 -      (verilog-read-decls): Fix spaces in V2K module parameters causing
 -      mis-identification as interfaces, bug287.
 -      (verilog-read-decls): Fix not treating "parameter string" as a
 -      parameter in AUTOINSTPARAM.
 -      (verilog-read-always-signals-recurse, verilog-read-decls): Fix not
 -      treating `elsif similar to `endif inside AUTOSENSE.
 -      (verilog-do-indent): Implement correct automatic or static task or
 -      function end comment highlight.  Reported by Steve Pearlmutter.
 -      (verilog-font-lock-keywords-2): Fix highlighting of single
 -      character pins, bug264.  Reported by Michael Laajanen.
 -      (verilog-auto-inst, verilog-read-decls, verilog-read-sub-decls)
 -      (verilog-read-sub-decls-in-interfaced, verilog-read-sub-decls-sig)
 -      (verilog-subdecls-get-interfaced, verilog-subdecls-new):
 -      Support interfaces with AUTOINST, bug270.  Reported by Luis Gutierrez.
 -      (verilog-pretty-expr): Fix interactive arguments, bug272.
 -      Reported by Mark Johnson.
 -      (verilog-auto-tieoff, verilog-auto-tieoff-ignore-regexp):
 -      Add 'verilog-auto-tieoff-ignore-regexp' for AUTOTIEOFF,
 -      bug269.  Suggested by Gary Delp.
 -      (verilog-mode-map, verilog-preprocess, verilog-preprocess-history)
 -      (verilog-preprocessor, verilog-set-compile-command):
 -      Create verilog-preprocess and verilog-preprocessor to show
 -      preprocessed output.
 -      (verilog-get-beg-of-line, verilog-get-end-of-line)
 -      (verilog-modi-file-or-buffer, verilog-modi-name)
 -      (verilog-modi-point, verilog-within-string): Move defmacro's
 -      before first use to avoid warning.  Reported by Steve Pearlmutter.
 -      (verilog-colorize-buffer, verilog-colorize-include-files-buffer)
 -      (verilog-colorize-region, verilog-highlight-buffer)
 -      (verilog-highlight-includes, verilog-highlight-modules)
 -      (verilog-highlight-region, verilog-mode): Rename colorize to
 -      highlight to match other packages.  Disable module highlighting,
 -      as received speed complaints, reenable for experimentation only
 -      using new verilog-highlight-modules.
 -      (verilog-read-decls): Fix regexp stack overflow in very large
 -      AUTO_TEMPLATEs, bug250.
 -      (verilog-auto, verilog-delete-auto, verilog-save-buffer-state)
 -      (verilog-scan): Create verilog-save-buffer-state to standardize
 -      making insignificant changes that shouldn't call hooks.
 -      (verilog-save-no-change-functions, verilog-save-scan-cache)
 -      (verilog-scan, verilog-scan-cache-ok-p, verilog-scan-region):
 -      Create verilog-save-no-change-functions to wrap verilog-scan
 -      preservation, and fix to work with nested preserved calls.
 -      (verilog-auto-inst, verilog-auto-inst-dot-name): Support .name
 -      port syntax for AUTOWIRE, and with new verilog-auto-inst-dot-name
 -      generate .name with AUTOINST, bug245.  Suggested by David Rogoff.
 -      (verilog-submit-bug-report): Update variable list to be complete.
 -      (verilog-auto, verilog-colorize-region): Fix AUTO expansion
 -      breaking on-the-fly font-locking.
 -      (verilog-colorize-buffer, verilog-colorize-include-files)
 -      (verilog-colorize-include-files-buffer, verilog-colorize-region)
 -      (verilog-load-file-at-mouse, verilog-load-file-at-point)
 -      (verilog-mode, verilog-read-inst-module-matcher): With point on a
 -      AUTOINST cell instance name, middle mouse button now finds-file on
 -      it.  Suggested by Brad Dobbie.
 -      (verilog-alw-get-temps, verilog-auto-reset)
 -      (verilog-auto-sense-sigs, verilog-read-always-signals)
 -      (verilog-read-always-signals-recurse): Fix loop indexes being
 -      AUTORESET.  AUTORESET now assumes any variables in the
 -      initialization section of a for() should be ignored.
 -      Reported by Dan Dever.
 -      (verilog-error-font-lock-keywords)
 -      (verilog-error-regexp-emacs-alist)
 -      (verilog-error-regexp-xemacs-alist): Fix error detection of
 -      Cadence HAL, reported by David Asher.  Repair drift between the
 -      three similar error variables.
 -      (verilog-modi-lookup, verilog-modi-lookup-cache)
 -      (verilog-modi-lookup-last-current, verilog-modi-lookup-last-mod)
 -      (verilog-modi-lookup-last-modi, verilog-modi-lookup-last-tick):
 -      Fix slow verilog-auto expansion on very large files.
 -      (verilog-read-sub-decls-expr, verilog-read-sub-decls-line):
 -      Fix AUTOOUTPUT treating "1*2" as a signal name in submodule connection
 -      "{1*2{...".  Broke in last revision.
 -      (verilog-read-sub-decls-expr): Fix AUTOOUTPUT not detecting
 -      submodule connections with replications "{#{a},#{b}}".
 +      * cus-theme.el (customize-themes):
 +      * emacs-lisp/package.el (package--list-packages):
 +      Use switch-to-buffer.
  
 -2010-10-23  Glenn Morris  <rgm@gnu.org>
 +2011-01-11  Johan Bockgård  <bojohan@gnu.org>
  
 -      * comint.el (comint-password-prompt-regexp):
 -      Match "enter the password".  (Bug#7224)
 +      * emacs-lisp/unsafep.el (unsafep): Handle backquoted forms.
  
 -2010-10-22  Juanma Barranquero  <lekktu@gmail.com>
 +2011-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * progmodes/dcl-mode.el (dcl-electric-reindent-regexps):
 -      Fix typo in docstring.
 +      * progmodes/prolog.el: Fix up coding convention and such.
 +      (prolog-indent-width): Use the same default as in
 +      previous prolog.el rather than tab-width which depends on which buffer
 +      is current when the file is loaded.
 +      (prolog-electric-newline-flag): Only enable if electric-indent-mode
 +      is not available.
 +      (prolog-emacs): Remove.  Use (featurep 'xemacs) instead.
 +      (prolog-known-systems): Remove.
 +      (prolog-mode-syntax-table, prolog-inferior-mode-map):
 +      Move initialization into declaration.
 +      (prolog-mode-map): Move initialization into declaration.
 +      Remove system-specific mode-map vars, since they referred to the same
 +      keymap anyway.
 +      (prolog-mode-variables): Obey the user's preference w.r.t
 +      adaptive-fill-mode.  Prefer symbol-value to `eval'.
 +      (prolog-mode-keybindings-edit): Add compatibility bindings.
 +      (prolog-mode): Use define-derived-mode.  Don't handle mercury here.
 +      (mercury-mode-map): New var.
 +      (mercury-mode, prolog-inferior-mode): Use define-derived-mode.
 +      (prolog-ensure-process, prolog-process-insert-string)
 +      (prolog-consult-compile): Use with-current-buffer.
 +      (prolog-guess-fill-prefix): Simplify data flow.
 +      (prolog-replace-in-string): New function to use instead of
 +      replace-in-string.
 +      (prolog-enable-sicstus-sd): Don't abuse `eval'.
 +      (prolog-uncomment-region): Use `uncomment-region' when available.
 +      (prolog-electric-colon, prolog-electric-dash): Use `eolp'.
 +      (prolog-int-to-char, prolog-char-to-int): New functions to use instead
 +      of int-to-char and char-to-int.
 +      (prolog-mode-hook, prolog-inferior-mode-hook): Don't force font-lock.
 +
 +2011-01-11  Stefan Bruda  <stefan@bruda.ca>
 +
 +      * progmodes/prolog.el: Replace by a whole new file.
  
 -2010-10-21  Michael Albinus  <michael.albinus@gmx.de>
 +2011-01-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * net/tramp.el (tramp-get-inline-coding): Return `nil' in case of
 -      errors.
 +      * subr.el (eval-after-load): Fix timing for features (bug#7769).
 +      (declare-function, undefined, insert-for-yank)
 +      (replace-regexp-in-string): Follow checkdoc's recommendations.
  
 -      * net/trampver.el: Update release number.
 +2011-01-10  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-10-20  Kenichi Handa  <handa@m17n.org>
 +      * calendar/diary-lib.el (diary-mode): Refresh *Calendar* after
 +      refreshing the diary buffer.
  
 -      * face-remap.el (text-scale-adjust): Call read-event with a proper
 -      prompt.
 +2011-01-10  Ken Manheimer  <ken.manheimer@gmail.com>
  
 -2010-10-19  Michael Albinus  <michael.albinus@gmx.de>
 +      * allout.el: Add 2011 to the file copyright.
 +      (allout-encrypt-string): Prevent encryption from adding an extra
 +      newline at the end of the topic body.
 +      (allout-version): Increment to 2.3.
  
 -      * net/tramp.el (tramp-do-file-attributes-with-stat)
 -      (tramp-do-directory-files-and-attributes-with-stat): Use "e0" in
 -      order to make stat results a float.  Patch by Andreas Schwab
 -      <schwab@linux-m68k.org>.
 +2011-01-10  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * net/dbus.el (dbus-unregister-service): Complete doc.
 +      Fix call of dbus-error signal.
 +      (dbus-register-property): Use `dont-register' keyword.
  
 -      * repeat.el (repeat): Use read-key (bug#6256).
 +2011-01-10  Jan Moringen  <jan.moringen@uni-bielefeld.de>
  
 -2010-10-18  Chong Yidong  <cyd@stupidchicken.com>
 +      * net/dbus.el (dbus-unregister-service): Translate returned
 +      integer into a symbol.
 +      (dbus-register-property): Use `dbus-register-service' to do the
 +      name registration.
  
 -      * emacs-lisp/unsafep.el: Don't mark functions that display
 -      messages as safe.  Suggested by Johan Bockgård.
 +2011-01-09  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * progmodes/idlw-help.el (idlwave-help-link): Inherit from link face.
 +      Suggested by Joakim Verona.
  
 -      * emacs-lisp/regexp-opt.el (regexp-opt-group, regexp-opt-charset):
 -      Turn comments into docstrings.
 +      * comint.el (comint-highlight-prompt): Inherit minibuffer-prompt.
  
 -      * minibuffer.el (completion--replace): Move point where it belongs
 -      when there's a common suffix (bug#7215).
 +      * wid-edit.el (visibility): Replace :on-image and :off-image
 +      widget properties with :on-glyph and :off-glyph, for consistency
 +      with the `visibility' widget.
 +      (widget-toggle-value-create, widget-visibility-value-create):
 +      Merge into a single function `widget-toggle-value-create'.
  
 -2010-10-15  Michael Albinus  <michael.albinus@gmx.de>
 +      * cus-edit.el (custom-variable-value-create, custom-visibility)
 +      (custom-face-edit-value-create, custom-face-value-create):
 +      Replace :on-image and :off-image widget properties with :on-glyph and
 +      :off-glyph, for consistency with the `visibility' widget.
  
 -      * net/tramp.el (tramp-open-connection-setup-interactive-shell):
 -      Suppress expansion of tabs to spaces.  Reported by Dale Sedivec
 -      <dale@codefu.org>.
 +2011-01-09  Andreas Schwab  <schwab@linux-m68k.org>
  
 -2010-10-15  Kenichi Handa  <handa@m17n.org>
 +      * net/ldap.el (ldap-search-internal): Don't use eval.
  
 -      * international/characters.el: Add category '|' (word breakable)
 -      to fullwidth characters.
 +2011-01-09  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-10-14  Kenichi Handa  <handa@m17n.org>
 +      * subr.el (read-char-choice): Use read-key.
  
 -      * mail/rmail.el (rmail-show-message-1): Catch an error of
 -      base64-decode-region and just show an error message (bug#7165).
 +      * custom.el (custom-safe-themes): Rename from
 +      custom-safe-theme-files.  Add :risky tag.
 +      (load-theme, custom-theme-load-confirm): Save sha1 hashes to
 +      custom-safe-themes, not filenames.  Suggested by Stefan Monnier.
  
 -      * ps-mule.el (ps-mule-font-spec-list): Delete it.  Not used anymore.
 -      (ps-mule-begin-job): Fix for the case that only ENCODING is set in
 -      a font-spec (bug#7197).
 +2011-01-09  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-10-13  Glenn Morris  <rgm@gnu.org>
 +      * tool-bar.el (tool-bar-setup): Remove Help button.  Remove label
 +      from Search and add a label to Undo.
  
 -      * mail/emacsbug.el (report-emacs-bug): Mention debbugs.gnu.org.
 +      * vc/vc-dir.el (vc-dir-tool-bar-map): Rearrange, removing
 +      inappropriate buttons and adding :vert-only tags.
  
 -2010-10-12  Juanma Barranquero  <lekktu@gmail.com>
 +      * progmodes/compile.el (compilation-mode-tool-bar-map): Adjust to
 +      removal of Help tool-bar button.  Remove Undo button for space.
  
 -      * international/mule.el (define-coding-system):
 -      * international/titdic-cnv.el (quail-cxterm-package-ext-info):
 -      * composite.el (compose-region): Fix typo in docstring.
 +      * info.el (info-tool-bar-map): Add :vert-only tags.
  
 -2010-10-10  Jan Djärv  <jan.h.d@swipnet.se>
 +2011-01-08  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * term/ns-win.el (ns-right-alternate-modifier): New defvar.
 -      (ns-right-option-modifier): New alias for ns-right-alternate-modifier.
 -      (mac-right-option-modifier): New alias for ns-right-option-modifier.
 +      * doc-view.el (doc-view-mode-p): Check for png or imagemagick
 +      image backend support.  Either of them is fine.
  
 -      * cus-start.el (all): ns-right-alternate-modifier is new.
 +2011-01-08  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-10-10  Andreas Schwab  <schwab@linux-m68k.org>
 +      * subr.el (y-or-n-p): Doc fix.
  
 -      * Makefile.in (ELCFILES): Update.
 +      * custom.el (custom-safe-theme-files): New defcustom.
 +      (custom-theme-load-confirm): New function.
 +      (load-theme): Load theme using `load', confirming with
 +      custom-theme-load-confirm if necessary.
  
 -2010-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * subr.el (read-char-choice): New function, factored out from
 +      dired-query and hack-local-variables-confirm.
  
 -      * emacs-lisp/lisp.el (lisp-completion-at-point):
 -      Use emacs-lisp-mode-syntax-table for the whole function.
 +      * dired-aux.el (dired-query):
 +      * files.el (hack-local-variables-confirm): Use it.
  
 -2010-10-09  Richard Sharman  <richard_sharman@mitel.com>  (tiny change)
 +      * dired-aux.el (dired-compress-file):
 +      * files.el (abort-if-file-too-large, find-alternate-file)
 +      (set-visited-file-name, write-file, backup-buffer)
 +      (basic-save-buffer, basic-save-buffer-2, save-some-buffers)
 +      (delete-directory, revert-buffer, recover-file, kill-buffer-ask):
 +      Use new format string args for y-or-n-p and yes-or-no-p.
  
 -      * progmodes/gdb-ui.el (gdb-mouse-toggle-breakpoint-margin)
 -      (gdb-mouse-toggle-breakpoint-fringe): Correct regexp to
 -      work when breakpoint number exceeds nine.
 +2011-01-08  Andreas Schwab  <schwab@linux-m68k.org>
  
 -2010-10-05  David Koppelman  <koppel@ece.lsu.edu>
 +      * progmodes/compile.el (compilation-error-regexp-alist-alist)
 +      [gcc-include]: Tighten file name match, add match for column
 +      number.  (Bug#7806)
 +      [gnu]: Remove unused group.
  
 -      * hi-lock.el (hi-lock-font-lock-hook): Check font-lock-fontified
 -      instead of font-lock-mode before adding keywords.
 -      Remove hi-lock-mode off code.  Remove inhibit hack.
 -      (hi-lock-set-pattern): Only add keywords if font-lock-fontified
 -      non-nil; removed hook inhibit hack.
 +2011-01-08  Glenn Morris  <rgm@gnu.org>
  
 -2010-10-09  Glenn Morris  <rgm@gnu.org>
 +      * makefile.w32-in (EMACSOPT): Add --no-site-lisp.
  
 -      * emacs-lisp/shadow.el (find-emacs-lisp-shadows): Rename it...
 -      (load-path-shadows-find): ... to this.
 -      (list-load-path-shadows): Update for above change.
 +      * makefile.w32-in (EMACSOPT): -batch implies --no-init-file.
  
 -      * mail/mail-utils.el (mail-mbox-from): Also try return-path.
 +2011-01-07  Sam Steingold  <sds@gnu.org>
  
 -2010-10-08  Glenn Morris  <rgm@gnu.org>
 +      * w32-fns.el (w32-shell-name): Use `shell-file-name' instead of
 +      the `explicit-shell-file-name' because that is the
 +      non-interactive shell.
  
 -      * emacs-lisp/cl-compat.el, emacs-lisp/lmenu.el: Move to obsolete/.
 +2011-01-07  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * emacs-lisp/shadow.el (lisp-shadow): Change prefix.
 -      (shadows-compare-text-p): Make it an obsolete alias for...
 -      (load-path-shadows-compare-text): ... new name.
 -      (find-emacs-lisp-shadows): Update for above name change.
 -      (load-path-shadows-same-file-or-nonexistent): New name for the old
 -      shadow-same-file-or-nonexistent.
 +      * subr.el (y-or-n-p): Accept format string args.
  
 -2010-10-03  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-07  Glenn Morris  <rgm@gnu.org>
  
 -      * minibuffer.el (completion--some, completion--do-completion)
 -      (minibuffer-complete-and-exit, minibuffer-completion-help)
 -      (completion-basic-try-completion)
 -      (completion-basic-all-completions)
 -      (completion-pcm--find-all-completions): Use lexical-let to
 -      avoid some false matches in variable completion (Bug#7056)
 +      * Makefile.in (EMACSOPT): Add --no-site-lisp.
  
 -2010-10-03  Olof Ohlsson Sax  <olof.ohlsson.sax@gmail.com>  (tiny change)
 +2011-01-06  Ken Manheimer  <ken.manheimer@gmail.com>
  
 -      * vc-svn.el (vc-svn-merge-news): Use --non-interactive.  (Bug#7152)
 +      * allout.el (allout-back-to-current-heading): Ensure return to
 +      the visible containing topic, rather than a collapsed one.
 +      (allout-view-change-hook): Remove hook that was deprecated long ago.
 +      (allout-exposure-change-hook): Remove documentation remarks
 +      concerning removed allout-view-change-hook.
 +      (allout-flag-region): Remove invocation of and documentation
 +      remarks concerning allout-view-change-hook.
  
 -2010-10-03  Leo  <sdl.web@gmail.com>
 +2011-01-06  Glenn Morris  <rgm@gnu.org>
  
 -      * dnd.el (dnd-get-local-file-name): If MUST-EXIST is non-nil, only
 -      return non-nil if the file exists (Bug#7090).
 +      * vc/vc-bzr.el (vc-bzr-annotate-command, vc-bzr-annotate-time)
 +      (vc-bzr-annotate-extract-revision-at-line):
 +      Handle authors with embedded spaces.  (Bug#7792)
  
 -2010-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-05  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * minibuffer.el (completion--replace):
 -      Better preserve markers (bug#7138).
 +      * doc-view.el (doc-view-image-width): New variable.
 +      (doc-view-enlarge, doc-view-insert-image): Prefer imagemagick
 +      backend for PNG images, and do dynamic rescaling instead of
 +      reconverting the whole doc.
  
 -2010-09-29  Juanma Barranquero  <lekktu@gmail.com>
 +2011-01-05  Glenn Morris  <rgm@gnu.org>
  
 -      * server.el (server-process-filter): Doc fix.
 +      * emacs-lisp/rx.el (rx-repeat): Replace CL function.
  
 -2010-09-27  Drew Adams  <drew.adams@oracle.com>
 +2011-01-04  Ken Manheimer  <ken.manheimer@gmail.com>
  
 -      * dired.el (dired-save-positions): Doc fix.  (Bug#7119)
 +      * allout.el: Reconcile with changes in line movement behavior for
 +      long text lines that cross more than a single physical window
 +      line, ie when truncate-lines is nil.
 +      (allout-next-visible-heading): Provide for change in line-move
 +      behavior on long lines when truncate-lines is nil.  In that case,
 +      line-move can wind up on the same textual line when it moves to
 +      the next window line, and moving to the bullet position after the
 +      move yields zero advancement.  Add logic to detect and compensate
 +      for the lack of progress.
 +      (allout-current-topic-collapsed-p): move-end-of-line respect for
 +      field boundaries is different when operating with body lines
 +      shorter than window width versus ones greater than window width,
 +      which can yield false negatives in this function.  Avoid
 +      difference by applying move-end-of-line while field-text-motion is
 +      inhibited.
  
 -2010-09-27  Andreas Schwab  <schwab@linux-m68k.org>
 +2011-01-04  Glenn Morris  <rgm@gnu.org>
  
 -      * Makefile.in (ELCFILES): Update.
 +      * textmodes/rst.el (rst-compile-toolsets):
 +      Add pdf and s5 to option alist.
  
 -      * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
 -      Avoid infinite recursion on erroneous lambda form.  (Bug#7114)
 +2011-01-04  Jan Moringen  <jan.moringen@uni-bielefeld.de>
  
 -2010-09-27  Kenichi Handa  <handa@m17n.org>
 +      * net/dbus.el (dbus-register-property): Add optional parameter
 +      dont-register-service.  Updated docstring accordingly.
  
 -      * tar-mode.el (tar-header-block-tokenize): Decode filenames in
 -      "ustar" format.
 +2011-01-04  Andreas Schwab  <schwab@linux-m68k.org>
  
 -2010-09-27  Kenichi Handa  <handa@m17n.org>
 +      * textmodes/rst.el (rst-compile-pdf-preview)
 +      (rst-compile-slides-preview): Remove extra line.
  
 -      * international/mule.el (define-coding-system): Docstring fixed.
 +2011-01-04  Glenn Morris  <rgm@gnu.org>
  
 -      * international/mule-diag.el (describe-character-set): Use princ
 -      with proper print-length and print-level instead of insert.
 +      * textmodes/rst.el (rst-compile-toolsets): Make it a defcustom.
 +      Add `pdf' and `s5' entries.  Use `prog.py' if found, otherwise
 +      default to `prog' without a .py extension.
 +      (rst-compile-pdf-preview, rst-compile-slides-preview):
 +      Use program names from rst-compile-toolsets, rather than hard-coding.
 +      (rst-portable-mark-active-p): Fix presumed typo.
  
 -2010-09-26  Juanma Barranquero  <lekktu@gmail.com>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
 -      * window.el (walk-windows): Doc fix (bug#7105).
 +      * term/w32-win.el (dynamic-library-alist): Set up correctly for
 +      libpng versions both before and after 1.4.0.  (Bug#7716)
  
 -2010-09-23  Glenn Morris  <rgm@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
 -      * isearch.el (isearch-lazy-highlight-cleanup)
 -      (isearch-lazy-highlight-initial-delay)
 -      (isearch-lazy-highlight-interval)
 -      (isearch-lazy-highlight-max-at-a-time, isearch-lazy-highlight-face):
 -      * net/net-utils.el (ipconfig-program-options):
 -      Move aliases to options before the associated definitions.
 +      * time.el (display-time-mode): Mention display-time-interval in
 +      the doc string.  (Bug#7713)
  
 -2010-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-02  Kenichi Handa  <handa@m17n.org>
  
 -      * newcomment.el (comment-normalize-vars): Better test validity of
 -      comment-end-skip.
 +      * mail/rmailmm.el (rmail-mime-parse): Perform parsing in
 +      condition-case and return an error message string if something
 +      goes wrong.
 +      (rmail-show-mime): Adjust for the above change.  Insert the
 +      header by rmail-mime-insert-header.
  
 -2010-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-02  Kenichi Handa  <handa@m17n.org>
  
 -      * emacs-lisp/float-sup.el (float-pi): New name for `pi'.
 -      (float-e): New name for `e'.
 -      (degrees-to-radians, radians-to-degrees):
 -      * calendar/solar.el (solar-longitude):
 -      * calculator.el (calculator-registers, calculator-funcall):
 -      * textmodes/artist.el (artist-spray-random-points):
 -      * play/bubbles.el (bubbles--initialize-images): Use new names.
 +      * mail/rmailmm.el: New key bindings for rmail-mime-next-item,
 +      rmail-mime-previous-item, and rmail-mime-toggle-hidden.
 +      (rmail-mime-mbox-buffer)
 +      (rmail-mime-view-buffer, rmail-mime-coding-system): New variables.
 +      (rmail-mime-entity): Argument changed.  All codes handling an
 +      entity object are changed.
 +      (rmail-mime-entity-header, rmail-mime-entity-body): Adjust for
 +      the above change.
 +      (rmail-mime-entity-children, rmail-mime-entity-handler)
 +      (rmail-mime-entity-tagline): New functions.
 +      (rmail-mime-message-p): New function.
 +      (rmail-mime-save): Bind rmail-mime-mbox-buffer.
 +      (rmail-mime-entity-segment, rmail-mime-next-item)
 +      (rmail-mime-previous-item, rmail-mime-shown-mode)
 +      (rmail-mime-hidden-mode, rmail-mime-raw-mode)
 +      (rmail-mime-toggle-raw, rmail-mime-toggle-hidden)
 +      (rmail-mime-insert-tagline, rmail-mime-insert-header):
 +      New functions.
 +      (rmail-mime-text-handler): Call rmail-mime-insert-text.
 +      (rmail-mime-insert-decoded-text): New function.
 +      (rmail-mime-insert-text): Call rmail-mime-insert-decoded-text.
 +      (rmail-mime-insert-image): Argument changed.  Caller changed.
 +      (rmail-mime-image): Call rmail-mime-toggle-hidden.
 +      (rmail-mime-set-bulk-data): New function.
 +      (rmail-mime-insert-bulk): Argument changed.
 +      (rmail-mime-multipart-handler): Return t.
 +      (rmail-mime-process-multipart): Argument changed.
 +      Handle "multipart/alternative" here.
 +      (rmail-mime-process): Argument changed.
 +      (rmail-mime-parse): Bind rmail-mime-mbox-buffer.
 +      (rmail-mime-insert): Argument changed.  Handle raw display mode.
 +      (rmail-mime): Argument changed.  Handle toggling of raw display
 +      mode.
 +      (rmail-show-mime): Bind rmail-mime-mbox-buffer and
 +      rmail-mime-view-buffer.
 +      (rmail-insert-mime-forwarded-message): Likewise.
 +      (rmail-search-mime-message): Likewise.  Don't bind rmail-buffer.
  
 -2010-09-19  Eric M. Ludlam  <zappo@gnu.org>
 +      * mail/rmail.el (rmail-show-message-1): If rmail-enable-mime is
 +      non-nil, handle the header in rmail-show-mime-function.
  
 -      Update to CEDET 1.0's version of EIEIO.
 +2011-01-02  Leo  <sdl.web@gmail.com>
  
 -      * emacs-lisp/eieio.el (eieio-specialized-key-to-generic-key):
 -      New function.
 -      (eieio-defmethod, eieio-generic-form, eieio-generic-call): Use it.
 -      (eieio-default-eval-maybe): Eval val instead of unquoting only.
 -      (class-precedence-list): If class is nil, return nil.
 -      (eieio-generic-call): If class of first input arg is nil, don't
 -      look up static methods, and do check for primary methods.
 -      (initialize-instance): See if the default needs to be evaluated
 -      during the constructor.
 -      (eieio-perform-slot-validation-for-default): Don't do the check
 -      for values that will eventually be evaluated.
 -      (eieio-eval-default-p): New function.
 -      (eieio-default-eval-maybe): Use it.
 +      * help-fns.el (describe-variable): Fix previous change.
  
 -2010-07-03  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +2011-01-02  Juri Linkov  <juri@jurta.org>
  
 -      * emacs-lisp/eieio.el (eieio-defclass): Allow :c3
 -      method-invocation-order.
 -      (eieio-c3-candidate, eieio-c3-merge-lists): New functions.
 -      (eieio-class-precedence-dfs): Compute class precedence list using
 -      dfs algorithm.
 -      (eieio-class-precedence-bfs): Compute class precedence list using
 -      bfs algorithm.
 -      (eieio-class-precedence-c3): Compute class precedence list using
 -      c3 algorithm.
 -      (class-precedence-list): New function.
 -      (eieiomt-method-list, eieiomt-sym-optimize): Use it.
 -      (inconsistent-class-hierarchy): New error symbol.
 -      (call-next-method): Stow the replacement argument list for future
 -      call-next-method invocations.
 +      * isearch.el (isearch-lazy-highlight-error): New variable.
 +      (isearch-lazy-highlight-new-loop): Compare `isearch-error' and
 +      `isearch-lazy-highlight-error'.  Set `isearch-lazy-highlight-error'
 +      to the current value of `isearch-error' (Bug#7468).
  
 -2010-09-15  Glenn Morris  <rgm@gnu.org>
 +2011-01-02  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * calendar/appt.el (appt-check): If not displaying the diary,
 -      use (diary 1) to only get the entries we need.
 -      (appt-make-list): Sort diary-list-entries, if we cannot guarantee
 -      that it is in day order.  (Bug#7019)
 +      * help-fns.el (describe-variable): Don't emit trailing whitespace
 +      (Bug#7511).
  
 -      * calendar/appt.el (appt-check): Rather than showing the diary,
 -      just turn off invisible display, and only if needed.
 +2011-01-02  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * calendar/diary-lib.el (diary-list-entries): Doc fix.  (Bug#7019)
 +      * textmodes/rst.el (rst-compile-pdf-preview)
 +      (rst-compile-slides-preview): Use make-temp-file (Bug#7646).
  
 -2010-09-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-02  Kevin Gallagher  <Kevin.Gallagher@boeing.com>
  
 -      * emacs-lisp/byte-run.el (set-advertised-calling-convention):
 -      Add `when' argument.  Update callers.
 +      * emulation/edt-mapper.el: Override mapping of function keys so
 +      that the later call to read-key-sequence works.
  
 -      * subr.el (unintern): Declare the obarray arg mandatory.
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-09-14  Glenn Morris  <rgm@gnu.org>
 +      * mail/smtpmail.el (smtpmail-send-it): Write queued mail body with
 +      Unix EOLs.  (Bug#7589)
  
 -      * calendar/diary-lib.el (diary-list-entries-hook, diary-sort-entries):
 -      Doc fixes.
 +2011-01-02  Leo  <sdl.web@gmail.com>
  
 -      * calendar/diary-lib.el (diary-included-files): New variable.
 -      (diary-list-entries): Maybe initialize diary-included-files.
 -      (diary-include-other-diary-files): Append to diary-included-files.
 -      * calendar/appt.el (appt-update-list): Also check the members of
 -      diary-included-files.  (Bug#6999)
 -      (appt-check): Doc fix.
 +      * eshell/em-hist.el (eshell-previous-matching-input): Signal error
 +      if point is not behind eshell-last-output-end (Bug#7585).
  
 -2010-09-12  David Reitter  <david.reitter@gmail.com>
 +2011-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * simple.el (line-move-visual): Do not truncate goal column to
 -      integer size.  (Bug#7020)
 +      * files.el (file-local-variables-alist):
 +      Make permanent-local (bug#7767).
  
 -2010-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-02  Glenn Morris  <rgm@gnu.org>
  
 -      * repeat.el (repeat): Allow repeating when the last event is a click.
 -      Suggested by Drew Adams (bug#6256).
 +      * version.el (emacs-copyright): Set short copyright year to 2011.
  
 -2010-09-11  Sascha Wilde  <wilde@sha-bang.de>
 +2011-01-02  Mark Lillibridge  <mark.lillibridge@hp.com>  (tiny change)
  
 -      * vc/vc-hg.el (vc-hg-state,vc-hg-working-revision):
 -      Replace setting HGRCPATH to "" by some less invasive --config options.
 +      * mail/mail-utils.el (mail-strip-quoted-names): Avoid clobbering
 +      an existing temp buffer.  (Bug#7746)
  
 -2010-09-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-02  Glenn Morris  <rgm@gnu.org>
  
 -      * font-lock.el (font-lock-beginning-of-syntax-function):
 -      Mark as obsolete.
 +      * mail/mail-utils.el (mail-mbox-from): Handle From: headers with
 +      multiple addresses.  (Bug#7760)
  
 -2010-09-10  Glenn Morris  <rgm@gnu.org>
 +2011-01-01  Ken Manheimer  <ken.manheimer@gmail.com>
  
 -      * menu-bar.el (menu-bar-options-save): Fix handling of menu-bar
 -      and tool-bar modes.  (Bug#6211)
 -      (menu-bar-mode): Move setting of standard-value after the
 -      minor-mode definition, otherwise it seems to have no effect.
 +      * allout.el (allout-auto-fill): Do not infinitely recurse - use
 +      do-auto-fill if everything points back to allout-auto-fill.
 +      (allout-mode-deactivate-hook): Declare obsolete, in favor of
 +      standard-formed minor-mode deactivate hook, allout-mode-off-hook.
  
 -2010-09-08  Masatake YAMATO  <yamato@redhat.com>
 +2010-12-31  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * progmodes/antlr-mode.el (antlr-font-lock-additional-keywords):
 -      Fix typo.  (Bug#6976)
 +      * net/tramp-sh.el (tramp-methods): Add recursive options to "scpc"
 +      and "scpx".
  
 -2010-09-06  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * whitespace.el: Allow cleaning up blanks without blank
 -      visualization (Bug#6651).  Adjust help window for
 -      whitespace-toggle-options (Bug#6479).  Allow to use fill-column
 -      instead of whitespace-line-column (from EmacsWiki).  New version 13.1.
 -      (whitespace-style): Add new value 'face.  Adjust docstring.
 -      (whitespace-space, whitespace-hspace, whitespace-tab):
 -      Adjust foreground property face.
 -      (whitespace-line-column): Adjust docstring and type declaration.
 -      (whitespace-style-value-list, whitespace-toggle-option-alist)
 -      (whitespace-help-text): Adjust const initialization.
 -      (whitespace-toggle-options, global-whitespace-toggle-options):
 -      Adjust docstring.
 -      (whitespace-display-window, whitespace-interactive-char)
 -      (whitespace-style-face-p, whitespace-color-on): Adjust code.
 -      (whitespace-help-scroll): New fun.
 +      * doc-view.el (doc-view-set-doc-type): New function refactored
 +      from doc-view-mode.
 +      (doc-view-fallback-mode): New function.
 +      (doc-view-mode): Use it.
 +      (doc-view-mode-maybe): New function that checks if doc-view-mode
 +      can be used and falls back to the next best mode otherwise.
  
 -2010-09-05  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +      * files.el (auto-mode-alist): Use doc-view-mode-maybe for PDF,
 +      DVI, OpenDocument, and MS Office files.
  
 -      * files.el (directory-abbrev-alist): Use \` as default regexp.
 +2010-12-30  Andreas Schwab  <schwab@linux-m68k.org>
  
 -      * emacs-lisp/rx.el (rx-any): Don't explode ranges that end in special
 -      chars like - or ] (bug#6984).
 -      (rx-any-condense-range): Explode 2-char ranges.
 +      * emacs-lisp/rx.el (rx-syntax): Fix typo.
  
 -2010-09-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * textmodes/bibtex.el:
 -      * proced.el: Update to new email for Roland Winkler <winkler@gnu.org>.
 +      * doc-view.el (doc-view-toggle-display): Perform rassq-delete-all
 +      on a copy of auto-mode-alist, because that deletes with side
 +      effects.
  
 -2010-09-02  Glenn Morris  <rgm@gnu.org>
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * desktop.el (desktop-path): Bump :version after 2009-09-15 change.
 +      * doc-view.el (doc-view-mode, doc-view-toggle-display):
 +      Use normal-mode without doc-view-mode bindings in auto-mode-alist as
 +      fallback instead of hard coding fundamental mode.
  
 -2010-08-31  Kenichi Handa  <handa@m17n.org>
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * international/mule-cmds.el (standard-display-european-internal):
 -      Setup standard-display-table for 8-bit characters by storing 8-bit
 -      characters in the element vector.
 +      * doc-view.el (doc-view-doc->txt): Handle OpenDocument (or MS
 +      Office) files also for searching.
  
 -      * disp-table.el (standard-display-8bit):
 -      Setup standard-display-table for 8-bit characters by storing 8-bit
 -      characters in the element vector.
 -      (standard-display-european): Likewise.
 +2010-12-30  Tassilo Horn  <tassilo@member.fsf.org>
  
 -2010-08-26  Michael Albinus  <michael.albinus@gmx.de>
 +      * doc-view.el: Implement viewing of OpenDocument (and Microsoft
 +      Office) files.  Not yet enabled via auto-mode-list.
 +      (doc-view-unoconv-program): New custom variable.
 +      (doc-view-mode-p): Handle new odf document type.
 +      (doc-view-odf->pdf): New conversion function.
 +      (doc-view-convert-current-doc): Call it for odf files.
 +      (doc-view-mode): Recognize newly supported file extensions.
  
 -      Sync with Tramp 2.1.19.
 +2010-12-30  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * net/tramp-cmds.el (tramp-cleanup-all-connections)
 -      (tramp-reporter-dump-variable, tramp-load-report-modules)
 -      (tramp-append-tramp-buffers): Use `tramp-compat-funcall'.
 -      (tramp-bug): Recommend setting of `tramp-verbose' to 9.
 +      * net/tramp.el (tramp-default-method-alist)
 +      (tramp-default-user-alist)
 +      (tramp-local-host-regexp, tramp-prefix-domain-format)
 +      (tramp-prefix-domain-regexp): Set tramp-autoload cookie.
 +
 +      * net/tramp-ftp.el:
 +      * net/tramp-gvfs.el:
 +      * net/tramp-gw.el:
 +      * net/tramp-imap.el:
 +      * net/tramp-sh.el:
 +      * net/tramp-smb.el: Add tramp-autoload cookie for initialisation
 +      code of `tramp-default-method-alist' and `tramp-default-user-alist'.
 +
 +2010-12-29  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * saveplace.el (save-place-alist-to-file): Save list sorted and
 +      pretty-printed, so that it is mergeable by line-based text merging,
 +      as suggested by Iain Dalton <iain.dalton {_AT_} gmail.com>.
 +
 +2010-12-28  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      * allout.el (allout-v18/19-file-var-hack): Obsolete, remove.
 +      (allout-mode): Argument "toggle" => "force".
 +      Refine the docstring.
 +      Remove special provisions for reactivation, besides the 'force'
 +      argument.
 +      Consolidate layout provisions coce directly into the activation
 +      condition branch, now that we've removed those provisions.
 +      (allout-unload-function): Explicitly activate the mode before
 +      deactivating, if it's initially deactivated.
 +      (allout-set-buffer-multibyte): Properly prevent byte-compiler
 +      warnings for version of function used only where
 +      set-buffer-multibyte is unavailable.
  
 -      * net/tramp-compat.el (top): Do not autoload
 -      `tramp-handle-file-remote-p'.  Load tramp-util.el and tramp-vc.el
 -      only when `start-file-process' is not bound.
 -      (byte-compile-not-obsolete-vars): Define if not bound.
 -      (tramp-compat-funcall): New defmacro.
 -      (tramp-compat-line-beginning-position)
 -      (tramp-compat-line-end-position)
 -      (tramp-compat-temporary-file-directory)
 -      (tramp-compat-make-temp-file, tramp-compat-file-attributes)
 -      (tramp-compat-copy-file, tramp-compat-copy-directory)
 -      (tramp-compat-delete-file, tramp-compat-delete-directory)
 -      (tramp-compat-number-sequence, tramp-compat-process-running-p):
 -      Use it.
 -      (tramp-advice-file-expand-wildcards): Do not use
 -      `tramp-handle-file-remote-p'.
 -      (tramp-compat-make-temp-file): Simplify fallback implementation.
 -      (tramp-compat-copy-file): Add PRESERVE-SELINUX-CONTEXT.
 -      (tramp-compat-copy-tree): Remove function.
 -      (tramp-compat-delete-file): New defun.
 -      (tramp-compat-delete-directory): Provide implementation for older
 -      Emacsen.
 -      (tramp-compat-file-attributes): Handle only
 -      `wrong-number-of-arguments' error.
 +2010-12-28  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * net/tramp-fish.el (tramp-fish-handle-copy-file):
 -      Add PRESERVE_SELINUX_CONTEXT.
 -      (tramp-fish-handle-delete-file): Add TRASH arg.
 -      (tramp-fish-handle-directory-files-and-attributes):
 -      Do not use `tramp-fish-handle-file-attributes.
 -      (tramp-fish-handle-file-local-copy)
 -      (tramp-fish-handle-insert-file-contents)
 -      (tramp-fish-maybe-open-connection): Use `with-progress-reporter'.
 +      * tool-bar.el (tool-bar-setup): Remove :enable conditions, which
 +      are handled by the menu-bar entries.  As before, don't use
 +      :visibile to avoid changing the tool-bar.
  
 -      * net/tramp-gvfs.el (top): Require url-util.
 -      (tramp-gvfs-mount-point): Remove.
 -      (tramp-gvfs-file-name-handler-alist): Add `file-selinux-context'
 -      and `set-file-selinux-context'.
 -      (tramp-gvfs-stringify-dbus-message, tramp-gvfs-send-command)
 -      (tramp-gvfs-handle-file-selinux-context)
 -      (tramp-gvfs-handle-set-file-selinux-context): New defuns.
 -      (with-tramp-dbus-call-method): Format trace message.
 -      (tramp-gvfs-handle-copy-file): Handle PRESERVE-SELINUX-CONTEXT.
 -      (tramp-gvfs-handle-copy-file, tramp-gvfs-handle-rename-file):
 -      Implement backup call, when operation on local files fails.
 -      Use progress reporter.  Flush properties of changed files.
 -      (tramp-gvfs-handle-delete-file): Add TRASH arg.
 -      Use `tramp-compat-delete-file'.
 -      (tramp-gvfs-handle-expand-file-name): Expand "~/".
 -      (tramp-gvfs-handle-make-directory): Make more traces.
 -      (tramp-gvfs-handle-write-region): Protect deleting tmpfile.
 -      (tramp-gvfs-url-file-name): Hexify file name in url.
 -      (tramp-gvfs-fuse-file-name): Take also prefix (like dav shares)
 -      into account for the resulting file name.
 -      (tramp-gvfs-handler-askquestion): Preserve current message, in
 -      order to let progress reporter continue afterwards.  (Bug#6257)
 -      Return dummy mountpoint, when the answer is "no".
 -      See `tramp-gvfs-maybe-open-connection'.
 -      (tramp-gvfs-handler-mounted-unmounted)
 -      (tramp-gvfs-connection-mounted-p): Test also for new mountspec
 -      attribute "default_location".  Set "prefix" property.
 -      Handle default-location.
 -      (tramp-gvfs-mount-spec): Return both prefix and mountspec.
 -      (tramp-gvfs-maybe-open-connection): Test, whether mountpoint
 -      exists.  Raise an error, if not (due to a corresponding answer
 -      "no" in interactive questions, for example).
 -      Use `tramp-compat-funcall'.
 +2010-12-27  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * net/tramp-imap.el (top): Autoload `epg-make-context'.
 -      (tramp-imap-handle-copy-file): Add PRESERVE-SELINUX-CONTEXT.
 -      (tramp-imap-do-copy-or-rename-file)
 -      (tramp-imap-handle-insert-file-contents)
 +      * net/secrets.el (secrets-delete-alias): New defun.
 +
 +2010-12-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-default-user-alist): Do not add "ssh" based
 +      methods, otherwise ~/.ssh/config would be ignored.
 +
 +2010-12-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/rx.el: Make it a superset of sregex.
 +      (rx-constituents): Add `any => "."', mark `repeat' as taking any number
 +      of args, add `regex' alias.
 +      (rx-info): Add arg to distinguish head and standalone forms.
 +      (rx-check, rx-form): Pass the corresponding arg.
 +      (rx-**): Simplify.
 +      (rx-repeat): Make it work for any number of args.
 +      (rx-syntax): Make it accept syntax chars as is.
 +      * obsolete/sregex.el: Move from emacs-lisp/.
 +      * emacs-lisp/re-builder.el: Remove sregex support.
 +      * emacs-lisp/edebug.el (sregexq, rx): Remove redundant defs.
 +
 +2010-12-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mouse.el (mouse-yank-primary): On MS-Windows, try the (emulated)
 +      PRIMARY first, then the clipboard.  (Bug#7699)
 +
 +2010-12-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-output-docform): Fix up use of
 +      print-number-table.
 +
 +2010-12-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * help-fns.el (find-lisp-object-file-name): Locate .emacs from
 +      .emacs.elc (Bug#7530).
 +
 +      * wid-edit.el (widget-image-find): Remove bogus :ascent spec from
 +      image spec (Bug#7480).
 +
 +2010-12-21  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * obsolete/pgg-parse.el, obsolete/pgg-pgp5.el, obsolete/pgg-pgp.el,
 +      * obsolete/pgg-gpg.el, obsolete/pgg-def.el, obsolete/pgg.el:
 +      Move from lisp/.
 +
 +2010-12-20  Leo  <sdl.web@gmail.com>
 +
 +      * dnd.el (dnd-get-local-file-name): Unhex of file name shall
 +      always be performed (Bug#7680).
 +
 +2010-12-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * menu-bar.el (menu-bar-kill-ring-save): Make obsolete.
 +      (menu-bar-edit-menu): Bind "Copy" to kill-ring-save.  Don't use
 +      mouse-region-match.
 +
 +      * color.el: Move from gnus/.
 +
 +      * vc/diff.el (diff-better-file-name): Function deleted.
 +      abbreviating file names causes problems with shell-quote-argument.
 +      (diff-no-select): Just use expand-file-name.
 +
 +      * tool-bar.el (tool-bar--image-expression): New function.
 +      (tool-bar-local-item, tool-bar--image-exp): Use it.
 +      (tool-bar-setup): Initialize tool-bar-separator-image-expression.
 +      Use :enable instead of :visible to avoid changing the tool-bar
 +      configuration unnecessarily.
 +
 +      * info.el (info-tool-bar-map): Add separators.
 +
 +2010-12-17  Ken Brown  <kbrown@cornell.edu>
 +
 +      * loadup.el: Use version numbers in Cygwin build.
 +
 +2010-12-17  Ryan Twitchell  <metatheorem@gmail.com>  (tiny change)
 +
 +      * ido.el (ido-file-internal): Ask for confirmation before
 +      overwriting an existing file (Bug#1238).
 +
 +2010-12-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * tool-bar.el (tool-bar-setup): Add separators.
 +
 +      * menu-bar.el (featurep): Use menu-bar-separator.
 +
 +2010-12-16  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      Migrate allout encryption provisions from pgg to epg.
 +
 +      * allout.el (allout-toggle-current-subtree-encryption)
 +      (allout-toggle-subtree-encryption): Adjust docstrings to reflect
 +      defaulting policy and other changes.  Change fetch-pass to keymode-cue,
 +      for simpler universal argument interpretation.
 +      (allout-toggle-subtree-encryption): Adjust docstring to describe
 +      changed encryption provisions.  Change fetch-pass to keymode-cue, for
 +      simpler universal argument interpretation.  Remove provisions for
 +      handling key type and identity - they'll all be within
 +      allout-encrypt-string or epg/epg or even contained all the way in gpg.
 +      (allout-encrypt-string): Include keymode-cue, for optionally prompting
 +      for keypair recipients (universal argument > 1) and, in addition,
 +      associating the specified recipients with the outline (universal
 +      argument > 4) using a file local variable setting for
 +      'epa-file-encrypt-to'.
 +      Require epa, for recipients handling.
 +      Change how regexp filtering elements are named.
 +      Describe the problem with caching of incorrect symmetric-decryption
 +      keys.
 +      Use the epa-passphrase-callback-function, in case the user is using
 +      GnuPG v1.
 +      Support saving of the selected keypair recipients when invoked with a
 +      keymode-cue > 4.
 +      Remove obsolete arguments 'fetch-pass', 'target-cache-id', 'retried'.
 +      Require 'epa.
 +      Establish epg-context with armoring and default epg-protocol.
 +      Remove all passphrase cache, verification, and hinting code.
 +      (allout-passphrase-verifier-handling, allout-passphrase-hint-handling):
 +      No longer used, delete.
 +      (allout-mode): Adjust docstring to describe changed encryption
 +      provisions.  Describe the problem with caching of incorrect
 +      symmetric-decryption keys.
 +      (allout-obtain-passphrase, allout-epg-passphrase-callback-function)
 +      (allout-make-passphrase-state, allout-passphrase-state-passphrase)
 +      (allout-encrypted-key-info, allout-update-passphrase-mnemonic-aids)
 +      (allout-get-encryption-passphrase-verifier, allout-verify-passphrase):
 +      Obsolete, remove.
 +
 +2010-12-16  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-file.el (epa-file-select-keys): Accept 'silent to inhibit
 +      key selection prompt; make 'silent as default (Bug#7487).
 +
 +2010-12-16  Leo  <sdl.web@gmail.com>
 +
 +      * eshell/eshell.el (eshell-directory-name):
 +      Use locate-user-emacs-file (Bug#7578).
 +
 +2010-12-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * loadup.el (symbol-file-load-history-loaded): Remove; unused.
 +
 +2010-12-15  Jari Aalto  <jari.aalto@cante.net>
 +            Scott Evans <gse@antisleep.com>
 +
 +      * rect.el (rectange--default-line-number-format)
 +      (rectangle-number-line-callback): New functions.
 +      (rectangle-number-lines): New command, bound to C-x r N (Bug#4382).
 +
 +2010-12-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * rect.el (operate-on-rectangle-lines, string-rectangle-string):
 +      Delete unused variables.
 +      (move-to-column-force): Remove function obsolete since 21.2.
 +
 +2010-12-14  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-temp-buffer-file-name): Make it permanent-local.
 +      (tramp-handle-insert-file-contents): Do not set permanent-local
 +      property.
 +
 +      * net/tramp-cache.el (tramp-persistency-file-name):
 +      Use `locate-user-emacs-file' if fboundp.
 +
 +      * net/tramp-sh.el (tramp-methods): Add "ksu".
 +      (tramp-default-user-alist): Add "ksu".  Use `regexp-opt' for
 +      method list.
 +
 +2010-12-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/js.el: Doc't require font-lock, etags, or easymenu.
 +      (find-tag-marker-ring): Declare.
 +      (js-find-symbol): Require etags.
 +
 +      * mail/sendmail.el: Don't require rmail or mailalias when compiling.
 +      Require mail-utils.
 +      (mail-alias-file): Don't autoload.  Doc fix.
 +      (mail-bury-selects-summary, mail-send-nonascii): Don't autoload.
 +      (mail-mailer-swallows-blank-line): Default to nil.  Doc fix.
 +      Mark as obsolete, and risky.
 +      (mail-setup): Simplify.
 +
 +      * mail/mailalias.el (build-mail-aliases): Make it interactive.
 +      * mail/sendmail.el (build-mail-aliases): Update autoload.
 +
 +      * dired.el (dired-trivial-filenames, dired-chown-program)
 +      (dired-auto-revert-buffer): Remove autoload cookies.
 +      * mail/sendmail.el (mail-recover-1): Require 'dired.
 +
 +      * dired.el (dired-subdir-switches, dired-chown-program)
 +      (dired-use-ls-dired, dired-chmod-program, dired-touch-program):
 +      Make into defcustoms.
 +      (dired-chown-program): Simplify initialization.
 +
 +      * mail/mail-utils.el: No need to require lisp-mode, it's in loadup.
 +
 +2010-12-13  Romain Francoise  <romain@orebokech.com>
 +
 +      * net/gnutls.el (gnutls-negotiate): Fix setting of default trustfiles.
 +
 +2010-12-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/netrc.el (netrc-point-at-eol): Remove the unused
 +      netrc-point-at-old and netrc-bound-and-true-p bindings.
 +      (netrc-parse): Cache the netrc contents.
 +
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * subr.el (posn-col-row): Evaluate header-line-format in the
 +      context of the POSITION window's buffer.
 +
 +2010-12-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * subr.el (member-ignore-case, run-mode-hooks, insert-for-yank-1)
 +      (with-silent-modifications): Doc fixes.
 +
 +2010-12-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-action-password, tramp-process-actions):
 +      Revert previous from.  Use `save-restriction'.
 +
 +2010-12-13  Stephen Berman  <stephen.berman@gmx.net>
 +
 +      * calendar/diary-lib.el (diary-list-sexp-entries):
 +      Handle case of no newline at end of file.  (Bug#7536)
 +
 +2010-12-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * mail/smtpmail.el (smtpmail-send-it): Revert previous change.
 +
 +2010-12-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-action-password): Delete region, do not narrow.
 +      (tramp-process-actions): Do not widen.
 +
 +      * net/tramp-sh.el (tramp-sh-handle-start-file-process):
 +      Protect buffer-modified value.  (Bug#7557)
 +
 +2010-12-13   Jan Moringen  <jmoringe@techfak.uni-bielefeld.de>
 +
 +      * log-edit.el (log-edit-changelog-entries):
 +      Regexp quote filename.  (Bug#7505)
 +
 +2010-12-13  Tom Breton  <tehom@panix.com>
 +
 +      * cus-edit.el (custom-save-all):
 +      Bind print-length and print-level to nil.  (Bug#7581)
 +
 +2010-12-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * mouse.el (mouse-menu-major-mode-map, mouse-menu-bar-map):
 +      Run hooks to update menu contents.  (Bug#7586)
 +
 +      * mail/smtpmail.el (smtpmail-send-it): Avoid colons in the queued
 +      file names, for the sake of MS Windows.  (Bug#7588)
 +
 +2010-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * diff-mode.el (diff-refine-hunk): Make it work when the hunk contains
 +      empty lines without a leading space.
 +
 +2010-12-13  Leo  <sdl.web@gmail.com>
 +
 +      * dired-aux.el (dired-do-redisplay): Postpone dired-after-readin-hook
 +      while mapping over marks (Bug#6810).
 +
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image-dired.el (image-dired-db-file)
 +      (image-dired-temp-image-file, image-dired-gallery-dir)
 +      (image-dired-temp-rotate-image-file): Set default values relative
 +      to image-dired-dir (Bug#7518).
 +
 +2010-12-13  Lawrence Mitchell  <wence@gmx.li>
 +
 +      * format.el (format-decode-run-method): Pass args FROM and TO, not
 +      point-min and point-max, to shell-command-on-region (Bug#7488).
 +
 +2010-12-13  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * frame.el (blink-cursor-mode): Make default t for ns.
 +
 +2010-12-13  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +
 +      * vc-dir.el (vc-dir-query-replace-regexp): Doc fix (Bug#7501).
 +
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * comint.el (comint-dynamic-list-input-ring)
 +      (comint-dynamic-complete-filename)
 +      (comint-replace-by-expanded-filename)
 +      (comint-dynamic-simple-complete)
 +      (comint-dynamic-list-filename-completions)
 +      (comint-dynamic-list-completions): Doc fix (Bug#7499).
 +
 +      * subr.el (posn-x-y, posn-object-x-y, posn-object-width-height):
 +      Doc fix (Bug#7471).
 +
 +2010-12-13  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * dired.el (dired-pop-to-buffer): Bind pop-up-frames to nil
 +      (Bug#7533).
 +
 +2010-12-13  W. Martin Borgert <debacle@debian.org>  (tiny change)
 +
 +      * files.el (auto-mode-alist): Handle .dbk (DocBook) with xml-mode.
 +      (Bug#7491).
 +
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.el (file-relative-name): Handle UNC file names on
 +      DOS/Windows.  (Bug#4674)
 +
 +2010-12-13  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epg.el (epg-digest-algorithm-alist): Replace "RMD160" with
 +      "RIPEMD160" (Bug#7490).  Reported by Daniel Kahn Gillmor.
 +      (epg-context-set-passphrase-callback): Mention that the callback
 +      is not called when used with GnuPG 2.x.
 +
 +2010-12-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * ps-print.el (ps-line-lengths-internal, ps-nb-pages):
 +      Ensure ps-footer-font-size-internal is initialized.
 +      Call ps-get-page-dimensions before trying to use ps-font-for-text.
 +
 +2010-12-13  Kenichi Handa  <handa@m17n.org>
 +
 +      * mail/rmailmm.el (rmail-mime-parse): Call rmail-mime-process
 +      within condition-case.
 +      (rmail-show-mime): Don't use condition-case.
 +      (rmail-search-mime-message): New function.
 +      (rmail-search-mime-message-function): Set to
 +      rmail-search-mime-message.
 +
 +2010-12-13  Leo  <sdl.web@gmail.com>
 +
 +      * ido.el (ido-common-initialization): New function.  (bug#3274)
 +      (ido-mode): Use it.
 +      (ido-completing-read): Call it.
 +
 +2010-12-12  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * bookmark.el (bookmark-name-from-full-record): Rename back to
 +      this original name from `bookmark-name-from-record' reverting part
 +      of 2010-12-08T08:09:27Z!kfogel@red-bean.com / kfogel@red-bean.com-20101208080927-5j9jqnb2xvcw4ogm.
 +      As Drew Adams pointed out, there was no reason to cause churn for
 +      third-party callers.
 +
 +2010-12-12  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-engine.el (c-forward-type): Before scanning a
 +      template arglist, check that the current language supports this.
 +
 +2010-12-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/vc-bzr.el (vc-bzr-state-heuristic): Also check that the executable
 +      state of the file matches.  (Bug#7544)
 +      (vc-bzr-register, vc-bzr-checkin)
 +      (vc-bzr-annotate-extract-revision-at-line): Doc fixes.
 +      (vc-directory-exclusion-list): Remove unnecessary eval-after-load.
 +
 +      * textmodes/sgml-mode.el (sgml-xml-guess): Add .xhtml extension.
 +
 +2010-12-11  Karel Klíč  <kklic@redhat.com>
 +
 +      * files.el (auto-mode-alist): Use html-mode for *.xhtml.  (Bug#7606)
 +
 +2010-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Derive from prog-mode, use derived-mode-p, and fix up various
 +      minor style issues in lisp/progmodes.
 +
 +      * progmodes/vhdl-mode.el (vhdl-mode):
 +      * progmodes/verilog-mode.el (verilog-mode):
 +      * progmodes/vera-mode.el (vera-mode):
 +      * progmodes/sql.el (sql-mode):
 +      * progmodes/scheme.el (scheme-mode):
 +      * progmodes/perl-mode.el (perl-mode):
 +      * progmodes/octave-inf.el (inferior-octave-mode):
 +      * progmodes/autoconf.el (autoconf-mode):
 +      * progmodes/m4-mode.el (m4-mode):
 +      * progmodes/inf-lisp.el (inferior-lisp-mode):
 +      * progmodes/idlwave.el (idlwave-mode):
 +      * progmodes/icon.el (icon-mode):
 +      * progmodes/idlw-help.el (idlwave-help-mode):
 +      * progmodes/dcl-mode.el (dcl-mode):
 +      * progmodes/idlw-shell.el (idlwave-shell-mode):
 +      * progmodes/ebrowse.el (ebrowse-tree-mode, ebrowse-electric-list-mode)
 +      (ebrowse-member-mode, ebrowse-electric-position-mode):
 +      Use define-derived-mode.
 +
 +      * progmodes/xscheme.el (exit-scheme-interaction-mode)
 +      (xscheme-enter-interaction-mode, xscheme-enter-debugger-mode)
 +      (xscheme-debugger-mode-p, xscheme-send-string-1):
 +      * progmodes/tcl.el (inferior-tcl-proc, tcl-current-word)
 +      (tcl-load-file, tcl-restart-with-file):
 +      * progmodes/ps-mode.el (ps-run-running):
 +      * progmodes/gdb-mi.el (gud-watch, gdb-mouse-set-clear-breakpoint):
 +      * progmodes/js.el (js--get-all-known-symbols):
 +      * progmodes/inf-lisp.el (inferior-lisp-proc):
 +      * progmodes/idlwave.el (idlwave-beginning-of-statement)
 +      (idlwave-template, idlwave-update-buffer-routine-info)
 +      (idlwave-update-current-buffer-info)
 +      (idlwave-get-routine-info-from-buffers, idlwave-choose)
 +      (idlwave-scan-class-info, idlwave-fix-keywords)
 +      (idlwave-list-buffer-load-path-shadows):
 +      * progmodes/idlw-toolbar.el (idlwave-toolbar, idlwave-toolbar-add)
 +      (idlwave-toolbar-remove):
 +      * progmodes/idlw-shell.el (idlwave-shell-save-and-action)
 +      (idlwave-shell-file-name, idlwave-shell-electric-debug-all-off)
 +      (idlwave-shell-menu-def):
 +      * progmodes/idlw-complete-structtag.el
 +      (idlwave-prepare-structure-tag-completion):
 +      * progmodes/gud.el (gud-set-buffer):
 +      * progmodes/f90.el (f90-backslash-not-special):
 +      * progmodes/delphi.el (delphi-find-unit): Use derived-mode-p.
 +
 +      * progmodes/xscheme.el (xscheme-start)
 +      (local-set-scheme-interaction-buffer, scheme-interaction-mode):
 +      * progmodes/which-func.el (which-function):
 +      * progmodes/vhdl-mode.el (vhdl-set-style):
 +      * progmodes/verilog-mode.el (verilog-set-compile-command)
 +      (verilog-modify-compile-command, verilog-error-regexp-add-xemacs)
 +      (verilog-set-define, verilog-auto-reeval-locals):
 +      * progmodes/sql.el (sql-product-font-lock, sql-interactive-mode):
 +      * progmodes/simula.el (simula-mode):
 +      * progmodes/scheme.el (scheme-mode-variables, dsssl-mode):
 +      * progmodes/python.el (python-check, python-mode):
 +      * progmodes/prolog.el (prolog-mode-variables):
 +      * progmodes/gud.el (gud-tooltip-activate-mouse-motions):
 +      * progmodes/ebrowse.el (ebrowse-view-file-other-frame):
 +      * progmodes/delphi.el (delphi-mode):
 +      * progmodes/cc-styles.el (c-setup-paragraph-variables):
 +      * progmodes/cc-mode.el (c-basic-common-init, c-common-init)
 +      (c-font-lock-init): Move make-local-variable to their setq.
 +
 +      * progmodes/vhdl-mode.el (vhdl-write-file-hooks-init)
 +      (vhdl-hs-minor-mode, vhdl-ps-print-init): Fix make-local-variable ->
 +      make-local-hook.
 +      * progmodes/sh-script.el (sh-require-final-newline): Remove.
 +      (sh-set-shell): Don't set require-final-newline since it's already done
 +      by prog-mode.
 +      * progmodes/modula2.el (m2-mode): Don't make m2-end-comment-column
 +      since we never set it.
 +      * progmodes/ebrowse.el (ebrowse-set-tree-indentation):
 +      Use read-string and standard prompt.
 +      * progmodes/dcl-mode.el (dcl-mode-map): Move init into declaration.
 +      * progmodes/meta-mode.el (meta-mode-abbrev-table): Merge init and decl.
 +      (meta-common-mode-syntax-table): Rename from meta-mode-syntax-table.
 +      (meta-common-mode-map): Rename from meta-mode-map.
 +      Remove C-m binding, which is a user preference, not mode specific.
 +      (meta-common-mode): New major mode; replace meta-common-initialization.
 +      * progmodes/js.el (js-mode): Call syntax-propertize rather than messing
 +      around with font-lock.
 +      * progmodes/etags.el (select-tags-table-mode):
 +      Derive from special-mode.
 +      * progmodes/octave-mod.el (octave-mode):
 +      * progmodes/gdb-mi.el (gdb-inferior-io-mode, gdb-threads-mode)
 +      (gdb-memory-mode, gdb-disassembly-mode, gdb-breakpoints-mode)
 +      (gdb-frames-mode, gdb-locals-mode, gdb-registers-mode):
 +      Let define-derived-mode do its job.
 +      * progmodes/cpp.el (cpp-edit-mode-map):
 +      Move initialization into declaration.
 +      (cpp-edit-mode): Use define-derived-mode.
 +      (cpp-edit-load): Use derived-mode-p.
 +      * progmodes/mixal-mode.el (mixal-mode):
 +      * progmodes/f90.el (f90-mode):
 +      * progmodes/cfengine.el (cfengine-mode): Don't bother setting
 +      require-final-newline since prog-mode does it already.
 +      * progmodes/cc-cmds.el (c-update-modeline): Use match-string.
 +      * progmodes/asm-mode.el (asm-mode-map): Fix menu setup.
 +      * progmodes/antlr-mode.el: Require cc-mode upfront.
 +      (antlr-mode-syntax-table, antlr-action-syntax-table): Initialize in
 +      the declaration.
 +      (antlr-directory-dependencies, antlr-show-makefile-rules):
 +      Use derived-mode-p.
 +      (antlr-language-option): Don't assume point-min==1.
 +      (antlr-mode): Use define-derived-mode.
 +      * progmodes/ada-mode.el: Use derived-mode-p.
 +      (ada-mode): Use define-derived-mode.
 +      Use hack-local-variables-hook.
 +
 +2010-12-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/texinfo.el (texinfo-mode-map): Bind texinfo-insert-@end.
 +      (texinfo-mode): Don't disable adaptive-fill-mode.
 +      (texinfo-insert-block): Adjust cursor placement for blocks with arg.
 +      (texinfo-insert-@end, texinfo-insert-braces, texinfo-insert-@code)
 +      (texinfo-insert-@dfn, texinfo-insert-@email, texinfo-insert-@emph)
 +      (texinfo-insert-@example, texinfo-insert-@file, texinfo-insert-@item)
 +      (texinfo-insert-@kbd, texinfo-insert-@node, texinfo-insert-@noindent)
 +      (texinfo-insert-@quotation, texinfo-insert-@samp)
 +      (texinfo-insert-@strong, texinfo-insert-@table, texinfo-insert-@var)
 +      (texinfo-insert-@uref): Use define-skeleton.
 +      (texinfo-insert-@-with-arg): Delete.
 +
 +2010-12-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * arc-mode.el (archive-zip-extract): If w32-quote-process-args is
 +      nil, do quote archive member names.  (Bug#6144)
 +
 +2010-12-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.el (diff-no-select): Declare.
 +
 +      * mail/emacsbug.el (report-emacs-bug): Use mail-user-agent properties.
 +      (report-emacs-bug-create-existing-bugs-buffer): Avoid free variables.
 +
 +      * comint.el (comint-input-ring-file-name): Doc fix.
 +
 +2010-12-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * menu-bar.el (menu-bar-frame-for-menubar, menu-bar-positive-p):
 +      New functions.
 +      (menu-bar-showhide-menu) <menu-bar-mode, showhide-tool-bar>:
 +      Use them instead of `nil' and `>', respectively.
 +      (menu-bar-showhide-tool-bar-menu): Use menu-bar-frame-for-menubar
 +      instead of `nil'.
 +      (toggle-menu-bar-mode-from-frame): Use menu-bar-frame-for-menubar
 +      and menu-bar-positive-p instead of `nil' and `>', respectively.
 +      (Bug#1077)
 +
 +2010-12-09  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * whitespace.el (whitespace-newline-mode): Code fix.
 +
 +2010-12-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * play/landmark.el (lm-print-y,s,noise-int, lm-print-y,s,noise):
 +      Rename functions without commas, update callers.
 +
 +2010-12-08  Jeff Dairiki  <dairiki@dairiki.org>  (tiny change)
 +
 +      * whitespace.el (whitespace-cleanup-region):
 +      Clean up spaces before tabs.  (Bug#7582)
 +
 +2010-12-08  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * bookmark.el: Adjust parameter names and doc strings to resolve
 +      confusion over whether "bookmark" meant a bookmark name or a
 +      bookmark record.  Along the way, shorten one function's name for
 +      similar reasons.  (Issue #7548)
 +      (bookmark-name-from-record): New name for
 +      `bookmark-name-from-full-record'.  All callers changed.
 +      (bookmark-get-bookmark, bookmark-get-bookmark-record)
 +      (bookmark-default-annotation-text, bookmark-prop-get, bookmark-prop-set)
 +      (bookmark-get-annotation, bookmark-set-annotation)
 +      (bookmark-get-filename, bookmark-set-filename)
 +      (bookmark-get-position, bookmark-set-position)
 +      (bookmark-get-front-context-string, bookmark-set-front-context-string)
 +      (bookmark-get-rear-context-string, bookmark-set-rear-context-string)
 +      (bookmark-get-handler, bookmark-edit-annotation, bookmark--jump-via)
 +      (bookmark-handle-bookmark, bookmark-location, bookmark-show-annotation):
 +      Rename `bookmark' parameter to `bookmark-name-or-record', to
 +      clearly show its role, and shorten or adjust doc strings accordingly.
 +      (bookmark-set-name): Same, and pass the parameter directly to
 +      `bookmark-get-bookmark' instead of redundantly doing the callee's work.
 +      (bookmark-default-annotation-text, bookmark-send-edited-annotation)
 +      (bookmark-relocate, bookmark-insert-location, bookmark-insert)
 +      (bookmark-delete): Rename `bookmark' parameter to `bookmark-name',
 +      and in some cases shorten doc string accordingly.
 +      (bookmark-rename): Change `old' and `new' parameters to `old-name'
 +      and `new-name', and adjust an internal variable to avoid confusion.
 +      (bookmark-jump, bookmark-jump-noselect): Clarify `bookmark'
 +      parameter in doc string.
 +
 +2010-12-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/gdb-mi.el (gdb): Try to initialize comint input history
 +      from gdb's history file.  (Bug#7575)
 +
 +      * mail/emacsbug.el (report-emacs-bug):
 +      Try to handle some other mail clients.
 +
 +2010-12-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * files.el (dir-locals-collect-variables): Don't let errors stop us.
 +      Use string-prefix-p.
 +      (file-name-version-regexp): New var.
 +      (file-name-sans-versions):
 +      * jka-cmpr-hook.el (jka-compr-build-file-regexp): Use it,
 +      (jka-compr-get-compression-info): Use dolist.
 +      (jka-compr-compression-info-list): Don't bother specifying
 +      version/backup regexps.
 +
 +2010-12-07  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * simple.el (just-one-space): Make argument n default to 1 if
 +      omitted.
 +
 +2010-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * electric.el (electric-indent-post-self-insert-function):
 +      Delete trailing newlines even if we don't reindent.
 +
 +2010-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-at-point): Remove the `arg'.
 +      * bindings.el (complete-symbol): Move back from minibuffer.el.
 +
 +2010-12-06  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * simple.el (just-one-space): Delete newlines for negative arg.
 +
 +2010-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * ansi-color.el (ansi-color-unfontify-region): Replace by trivial def.
 +      (ansi-color-filter-apply): Simplify.
 +      (ansi-color-apply): Use `font-lock-face' rather than `face'.
 +
 +2010-12-05  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +
 +      * vc/vc-dir.el (vc-dir-query-replace-regexp): Doc fix (Bug#7501).
 +
 +2010-12-04  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * dired.el (dired-use-ls-dired): Set default to a special
 +      "unspecified" value.
 +      (dired-insert-directory): When called the first time, check
 +      whether "ls --dired" succeeds and set dired-use-ls-dired (Bug#7546).
 +
 +2010-12-04  Tak Ota  <Takaaki.Ota@am.sony.com>
 +
 +      * replace.el: Add "collect" feature to occur.
 +      (occur-collect-regexp-history): New var.
 +      (occur-read-primary-args): Return a replace string for nlines,
 +      if needed.
 +      (occur): Extend the meaning of nlines.
 +
 +2010-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/which-func.el (which-func-ff-hook): Log the error message.
 +      (which-func-update-1): Distinguish symbols from strings.
 +      (which-function): Stay within 80 columns.
 +
 +2010-12-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (with-demoted-errors): Distinguish symbols from strings.
 +
 +      * newcomment.el (comment-styles): Add docs to each style (bug#7509).
 +      Improve docstring.
 +      (comment-style): Use comment-styles's docs to describe values.
 +
 +2010-12-03  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * term/common-win.el (x-setup-function-keys): Restore ns-new-frame
 +      and ns-show-prefs (Bug#7535).
 +
 +      * term/ns-win.el (global-map): Restore ns-new-frame and ns-show-prefs
 +      bindings (Bug#7535).
 +
 +2010-12-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * nxml/nxml-mode.el: Require rng-nxml.
 +      (rng-nxml-mode-init, nxml-enable-unicode-char-name-sets):
 +      Remove declarations.
 +
 +      * nxml/nxml-mode.el, nxml/nxml-outln.el, nxml/rng-loc.el:
 +      * nxml/rng-nxml.el, nxml/rng-valid.el:
 +      Remove leading `*' from defcustom docs.
 +
 +      * startup.el (normal-top-level-add-subdirs-to-load-path): Simplify.
 +      (normal-top-level-add-to-load-path, tty-handle-args):
 +      Convert comments to basic doc-strings.
 +
 +      * net/browse-url.el (browse-url-url-at-point)
 +      (browse-url-default-browser): Remove autoload cookies.
 +
 +      * mail/emacsbug.el (report-emacs-bug-create-existing-bugs-buffer):
 +      Remove more undefined cl functions.
 +
 +      * vc/diff.el (diff-sentinel): Make new arguments optional.
 +      * ibuf-ext.el (diff-sentinel): Update declaration.
 +
 +2010-12-03  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epg.el (epg-digest-algorithm-alist): Replace "RMD160" with
 +      "RIPEMD160" (Bug#7490).  Reported by Daniel Kahn Gillmor.
 +      (epg-context-set-passphrase-callback): Mention that the callback
 +      is not called when used with GnuPG 2.x.
 +
 +2010-12-02  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-local-host-regexp): Add "localhost6".
 +      (tramp-file-name-port): Check also for `tramp-default-port'.
 +      (tramp-get-connection-name): New defun.
 +      (tramp-get-connection-process): Use it.
 +      (tramp-debug-message): Extend function exclude list.
 +      (tramp-drop-volume-letter): Fix doc string.
 +
 +      * net/tramp-cmds.el: Remove solved todo item.
 +
 +      * net/tramp-efs.el:
 +      * net/tramp-ftp.el:
 +      * net/tramp-gvfs.el:
 +      * net/tramp-gw.el:
 +      * net/tramp-imap.el:
 +      * net/tramp-smb.el: Fix regexps added to `tramp-default-method-alist'
 +      and `tramp-default-user-alist', respectively.
 +
 +      * net/tramp-gw.el (tramp-gw-open-connection):
 +      Use `tramp-get-connection-name' and `tramp-get-connection-buffer'.
 +
 +      * net/tramp-imap.el (tramp-imap-make-iht): Use just
 +      `tramp-file-name-port'.
 +
 +      * net/tramp-sh.el (tramp-methods): Add recursive options to "pscp"
 +      and "psftp".  Exchange "%k" marker with options.
 +      (tramp-do-copy-or-rename-file, tramp-sh-handle-file-local-copy):
 +      Compute size of link target.
 +      (tramp-do-copy-or-rename-file-out-of-band): Move setting of
 +      `tramp-current-*' up due to gateway methods.  Optimize computing of
 +      copy arguments.  Use `tramp-get-connection-name' and
 +      `tramp-get-connection-buffer'.  Improve debug messages.
 +      (tramp-compute-multi-hops): Remove port determination.
 +      (tramp-maybe-open-connection): Use `tramp-get-connection-name'.
 +
 +      * net/trampver.el: Update release number.
 +
 +2010-12-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/cl-macs.el (cl-parse-loop-clause):
 +      Avoid infinite loop over windows.  (Bug#7492)
 +
 +      * progmodes/flymake.el (flymake-check-file-limit):
 +      Allow nil to mean "no limit".
 +      (flymake-check-patch-master-file-buffer): Update for above change.
 +      Allow a .tex file-name extension to be optional.
 +      (flymake-master-tex-init): Also match \include statements.
 +
 +2010-11-30  Sam Steingold  <sds@gnu.org>
 +
 +      * nxml/nxml-mode.el (nxml-parent-document): Add a variable.
 +      (nxml-parent-document-set): A function to set `nxml-parent-document'.
 +      (nxml-mode): Define using `define-derived-mode' instead of `defun'.
 +      (nxml-mode-hook): Remove `defcustom' (auto-defined by
 +      define-derived-mode').
 +      * nxml/rng-valid.el (rng-dtd-trivial-p): Add a helper function for
 +      users who want to call `nxml-parent-document-set'.
 +
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * log-edit.el (log-edit-font-lock-keywords): Don't try matching
 +      stand-alone lines, since that is handled by log-edit-match-to-eoh
 +      (Bug#6465).
 +
 +2010-11-27  Eduard Wiebe  <usenet@pusto.de>
 +
 +      * dired.el (dired-get-filename): Replace backslashes with slashes
 +      in file names on MS-Windows, needed by `locate'.  (Bug#7308)
 +      * locate.el (locate-default-make-command-line): Don't consider
 +      drive letter and root directory part of
 +      `directory-listing-before-filename-regexp'.  (Bug#7308)
 +      (locate-post-command-hook, locate-post-command-hook): New defcustoms.
 +
 +2010-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-prec2->grammar): Simplify handling
 +      of :smie-open/close-alist.
 +      (smie-next-sexp): Make it accept a "start token" as argument.
 +      (smie-indent-keyword): Be careful not to misidentify tokens that span
 +      more than one line, as empty lines.  Add argument `token'.
 +
 +2010-11-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * mail/rmailmm.el (rmail-mime-insert-multipart): For unsupported
 +      multipart subtypes, insert all as usual.
 +
 +      * mail/rmail.el: Require rfc2047.
 +
 +2010-11-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * mail/rmailmm.el (rmail-mime-entity, rmail-mime-entity-type)
 +      (rmail-mime-entity-disposition)
 +      (rmail-mime-entity-transfer-encoding, rmail-mime-entity-header)
 +      (rmail-mime-entity-body, rmail-mime-entity-children): New functions.
 +      (rmail-mime-save): Handle the case that the button's `data' is a
 +      MIME entity.
 +      (rmail-mime-insert-text): New function.
 +      (rmail-mime-insert-image): Handle the case that DATA is a MIME entity.
 +      (rmail-mime-bulk-handler): Just call rmail-mime-insert-bulk.
 +      (rmail-mime-insert-bulk): New function mostly copied from the old
 +      rmail-mime-bulk-handler.
 +      (rmail-mime-multipart-handler): Just call rmail-mime-process-multipart.
 +      (rmail-mime-process-multipart): New function mostly copied from
 +      the old rmail-mime-multipart-handler.
 +      (rmail-mime-show): Just call rmail-mime-process.
 +      (rmail-mime-process): New function mostly copied from the old
 +      rmail-mime-show.
 +      (rmail-mime-insert-multipart, rmail-mime-parse)
 +      (rmail-mime-insert, rmail-show-mime)
 +      (rmail-insert-mime-forwarded-message)
 +      (rmail-insert-mime-resent-message): New functions.
 +      (rmail-insert-mime-forwarded-message-function): Set to
 +      rmail-insert-mime-forwarded-message.
 +      (rmail-insert-mime-resent-message-function): Set to
 +      rmail-insert-mime-resent-message.
 +
 +      * mail/rmailsum.el: Require rfc2047.
 +      (rmail-header-summary): Handle multiline Subject: field.
 +      (rmail-summary-line-decoder): Change the default to
 +      rfc2047-decode-string.
 +
 +      * mail/rmail.el (rmail-enable-mime): Change the default to t.
 +      (rmail-mime-feature): Change the default to `rmailmm'.
 +      (rmail-quit): Delete the specifal code for rmail-enable-mime.
 +      (rmail-display-labels): Likewise.
 +      (rmail-show-message-1): Check rmail-enable-mime, and use
 +      rmail-show-mime-function for a MIME message.  Decode the headers
 +      according to RFC2047.
 +
 +2010-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/which-func.el (which-func-imenu-joiner-function):
 +      Return a string, as expected.
 +      (which-function-mode): Make sure we stop any previous timer before
 +      starting a new one.
 +
 +2010-11-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-default-method-alist)
 +      (tramp-default-user-alist, tramp-default-proxies-alist):
 +      Adapt custom options type.  (Bug#7445)
 +
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/python.el: Add Ipython support (Bug#5390).
 +      (python-shell-prompt-alist)
 +      (python-shell-continuation-prompt-alist): New options.
 +      (python--set-prompt-regexp): New function.
 +      (inferior-python-mode, run-python, python-shell):
 +      Require ansi-color.  Use python--set-prompt-regexp to set the comint
 +      prompt based on the Python interpreter.
 +      (python--prompt-regexp): New var.
 +      (python-check-comint-prompt)
 +      (python-comint-output-filter-function): Use it.
 +      (run-python): Use a pipe (Bug#5694).
 +
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/python.el (run-python): Doc fix.
 +      (python-keep-current-directory-in-path): New var (Bug#7454).
 +
 +2010-11-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * lpr.el (lpr-buffer, print-buffer, lpr-region, print-region):
 +      Prompt user before actually printing.
 +
 +2010-11-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * startup.el (package-enable-at-startup, package-initialize):
 +      Remove unnecessary declarations.
 +
 +2010-11-27  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * international/characters.el (glyphless-char-display-control):
 +      Exclude newline and TAB from the c0-control group.
 +
 +2010-11-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * mail/sendmail.el (build-mail-aliases): Doc fix for autoload.
 +      (expand-mail-aliases): Remove unnecessary autoload.
 +
 +      * allout.el (allout-command-prefix, allout-mode-map): Declare.
 +
 +      * shell.el (shell-dir-cookie-re): Move definition before use.
 +
 +      * mail/emacsbug.el (report-emacs-bug-create-existing-bugs-buffer):
 +      Replace undefined CL functions.
 +
 +2010-11-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * simple.el (prog-mode): Set bidi-paragraph-direction to
 +      left-to-right.
 +
 +      * term/pc-win.el (x-get-selection-internal): Emulation for MS-DOS.
 +
 +2010-11-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/diary-lib.el (diary-outlook-format-1): New function, so that
 +      diary-outlook-formats can be sensitive to calendar-date-style.
 +      (diary-outlook-formats): Simplify the default setting.
 +      (diary-from-outlook-internal): Pass subject and body as arguments.
 +      Use dolist rather than dotimes.  Don't save the diary buffer.
 +      (diary-from-outlook-gnus, diary-from-outlook-rmail):
 +      Pass subject and body as explicit arguments to the -internal function.
 +
 +2010-11-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * mail/rfc2368.el (rfc2368-parse-mailto-url): Unfold URLs before
 +      parsing them.  This makes mailto:...?subject=foo\nbar work.
 +
 +2010-11-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc/diff.el (diff): Fix last change.
 +
 +2010-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el: Improve pcase-let.  Use "pcase--" prefix.
 +      (pcase--dontcare-upats): New var.
 +      (pcase-let, pcase-let*): Generate better code.
 +      Accept the same bodies as `let'.
 +      (pcase-dolist): New macro.
 +      (pcase--trivial-upat-p): New helper function.
 +      (pcase--expand): Strip leading "(let nil" if any.
 +
 +2010-11-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * mail/mailclient.el (browse-url): Require.
 +      (mailclient-send-it): Bind `browse-url-mailto-function' to nil to
 +      use the external browser function to send the mail (bug#7469).
 +
 +      * net/browse-url.el (browse-url-browser-function): Revert the
 +      default back to the previous value, since the new value broke
 +      mailclient.el.
 +      (browse-url-mailto-function): New variable for mailto: URLs.
 +      (browse-url): Use the new variable for mailto: URLs.
 +
 +2010-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eshell/esh-cmd.el (eshell-parse-command):
 +      * eshell/esh-arg.el (eshell-parse-arguments):
 +      * eshell/em-script.el (eshell-source-file):
 +      Use with-silent-modifications.
 +
 +2010-11-23  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * vc/vc.el (vc-merge): Remove optional arg PROMPT.  Always prompt
 +      for a merge location.
 +
 +      * vc/vc-bzr.el (vc-bzr-pull): Remove unused var.
 +      (vc-bzr-merge-branch): Always prompt.
 +      (vc-bzr-async-command): Use the full branch filename.
 +
 +2010-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * shell.el (shell): Use current-buffer by default if it's already
 +      a shell mode buffer and its process is dead.
 +      Suggested by Jose E. Marchesi <jemarch@gnu.org>.
 +
 +2010-11-23  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * mail/emacsbug.el (report-emacs-bug-query-existing-bugs):
 +      Mention that the keywords should be comma separated.
 +
 +2010-11-23  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * vc/vc.el (vc-merge): Use vc-BACKEND-merge-branch if available.
 +      Accept optional prefix arg meaning to prompt for a command.
 +      (vc-update): Use vc-BACKEND-pull if available.  Accept optional
 +      prefix arg meaning to prompt for a command.
 +      (vc-pull): Alias for vc-update.
 +
 +      * vc/vc-bzr.el (vc-bzr-admin-branchconf, vc-bzr-history): New vars.
 +      (vc-bzr--branch-conf, vc-bzr-async-command, vc-bzr-pull)
 +      (vc-bzr-merge-branch): New functions, implementing merge-branch
 +      and pull operations.
 +
 +2010-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * Makefile.in: Fix up last merge.
 +
 +      * vc/diff.el (diff-old-temp-file, diff-new-temp-file): Remove.
 +      (diff-sentinel): Get them as arguments instead.
 +      (diff-old-file, diff-new-file, diff-extra-args): Remove.
 +      (diff-file-local-copy, diff-better-file-name): New funs.
 +      (diff-no-select): Rename from diff-into-buffer.
 +      Support buffers additionally to files.  Move `buf' arg.  Don't display buf.
 +      Prefer closures to buffer-local variables.
 +      (diff): Adjust accordingly.
 +      (diff-buffer-with-file): Move from files.el.
 +      * files.el (diff-buffer-with-file): Move to vc/diff.el.
 +      (diff-buffer-internal): Remove.
 +      (diff-buffer-buffer): Remove.
 +      (save-some-buffers-action-alist): Use diff-no-select so as not to guess
 +      the buffer name used, and so as not to mess up windows and frames.
 +
 +2010-11-22  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +
 +      * files.el: Make revert work with diff-buffer-with-file (bug#7277).
 +      (diff-buffer-internal): New function extracted from diff-buffer-with-file
 +      (diff-buffer-with-file): Use it.
 +      * vc/diff.el (diff-into-buffer): New fun, extracted from diff.
 +      (diff): Use it.
 +
 +2010-11-22  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * textmodes/reftex-ref.el (reftex-goto-label): Use the current
 +      \ref's or \pageref's value as default instead of initial input.
 +
 +2010-11-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.el (backup-by-copying-when-mismatch): The default value is
 +      now t.
 +
 +      * startup.el (normal-top-level):
 +      * net/tramp.el (tramp-handle-insert-file-contents): Do not set
 +      `backup-by-copying-when-mismatch'.
 +
 +2010-11-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * tool-bar.el (tool-bar-setup): Remove save as, print and customize.
 +
 +2010-11-21  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * progmodes/python.el (python-font-lock-keywords):
 +      Highlight top-level augmented assignments (Bug#6445).
 +
 +2010-11-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * term/ns-win.el (ns-right-control-modifier)
 +      (ns-right-command-modifier): Defvar them.
 +
 +      * cus-start.el (all): Add ns-right-control-modifier and
 +      ns-right-command-modifier (Bug#7458).
 +
 +2010-11-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/authors.el (authors-ignored-files)
 +      (authors-valid-file-names, authors-renamed-files-alist): Add entries.
 +
 +2010-11-20  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * mail/emacsbug.el (report-emacs-bug-query-existing-bugs)
 +      (report-emacs-bug-parse-query-results)
 +      (report-emacs-bug-create-existing-bugs-buffer): Pass through
 +      keywords used for querying the bug database to show them in the
 +      existing bugs buffer.
 +
 +2010-11-20  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * tool-bar.el (tool-bar-setup): Add some :vert-only keywords.
 +
 +      * info.el (info-tool-bar-map): Add some :vert-only keywords.
 +
 +2010-11-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * international/characters.el (glyphless-char-display-control):
 +      Make it a defcustom, with update-glyphless-char-display as its
 +      :set attribute.
 +      (top level): Don't call update-glyphless-char-display.
 +
 +2010-11-20  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Sync with Tramp 2.2.0.
 +
 +      * net/tramp.el (tramp-handle-insert-file-contents): Don't use
 +      `file-remote-p' (due to compatibility).
 +
 +      * net/tramp-sh.el (tramp-do-copy-or-rename-file-directly)
 +      (tramp-do-copy-or-rename-file-out-of-band): Use `ignore-errors'.
 +
 +      * net/trampver.el: Update release number.
 +
 +2010-11-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * faces.el (glyphless-char): Define value for `pc'.
 +
 +2010-11-20  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      Implemented a bug querying mechanism.
 +      * mail/emacsbug.el (report-emacs-bug-tracker-url): New variable.
 +      (report-emacs-bug-create-existing-bugs-buffer)
 +      (report-emacs-bug-parse-query-results)
 +      (report-emacs-bug-query-existing-bugs): New functions.
 +
 +2010-11-19  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * textmodes/reftex-ref.el (reftex-goto-label): If point is inside
 +      a \ref{} or \pageref{} macro, then use its value as initial input.
 +
 +2010-11-19  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-units.el (math-build-units-table-buffer):
 +      calc/README: Mention that the TeX specific units won't use the
 +      `tex' prefix in TeX mode.
 +      calc/calc-lang.el (math-variable-table): Don't use the `tex'
 +      prefix for units in TeX mode.
 +
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (kill-new, kill-append, kill-region):
 +      * comint.el (comint-kill-region): Make the yank-handler argument
 +      obsolete.
 +
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-bnf-classify): Signal errors for tokens
 +      that are both openers (resp. closers) and something else.
 +      (smie-grammar): Loosen definition of valid values.
 +      (smie-next-sexp, smie-down-list, smie-blink-matching-open)
 +      (smie-indent--parent, smie-rule-parent, smie-indent-keyword)
 +      (smie-indent-after-keyword): Adjust users.
 +      (smie-indent-keyword): Don't indent empty lines.
 +
 +      * vc-hg.el (vc-hg-program): New var.
 +      Suggested by Norman Gray <norman@astro.gla.ac.uk>.
 +      (vc-hg-state, vc-hg-working-revision, vc-hg-command): Use it.
 +
 +2010-11-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/autoload.el (autoload-find-destination): The function
 +      coding-system-eol-type may return non-numeric values.  (Bug#7414)
 +
 +2010-11-18  Ulrich Mueller  <ulm@gentoo.org>
 +
 +      * server.el (server-force-stop): Ensure the server is stopped (Bug#7409).
 +
 +2010-11-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * subr.el (posn-col-row): Pay attention to header line.  (Bug#7390)
 +
 +2010-11-18  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * textmodes/picture.el (picture-mouse-set-point): Don't use
 +      posn-col-row; explicitly compute the motion based on the posn at
 +      the window-start (Bug#7390).
 +
 +2010-11-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * novice.el (disabled-command-function):
 +      Fix 2009-11-15 change.  (Bug#7384)
 +
 +2010-11-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/calendar.el (diary-iso-date-forms): Make elements
 +      mutually exclusive.  (Bug#7377)
 +
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-prec2->grammar): Obey equality constraints
 +      when filling the remaining "unconstrained" values.
 +
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-warnings): Simplify the
 +      safety predicate.
 +
 +      * files.el (safe-local-variable-p): Gracefully handle errors.
 +
 +      * emacs-lisp/smie.el (smie-rule-parent, smie-indent--rule):
 +      Use smie-indent-virtual when indenting relative to an opener.
 +      (smie-rule-separator): Use smie-rule-parent.
 +      (smie-indent-keyword): Consult rules, even for openers at bol.
 +      (smie-indent-comment-close): Try to align closer's content.
 +
 +2010-11-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * ls-lisp.el (ls-lisp-dired-ignore-case): Make it an obsolete alias.
 +
 +2010-11-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * printing.el (pr-menu-bind): Doc fix.
 +
 +      * speedbar.el (speedbar-toggle-images): Doc fix.
 +
 +      * progmodes/python.el (python-shell): Doc fix.
 +
 +      * wid-edit.el (widget-field-use-before-change)
 +      (widget-use-overlay-change): Doc fixes.
 +
 +2010-11-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Minor cleanup to improve style.
 +      * textmodes/rst.el (rst-update-section): Use point-marker.
 +      (rst-get-decoration): Eliminate unneeded assignment.
 +      (rst-promote-region, rst-straighten-decorations)
 +      (rst-section-tree, rst-adjust): Use point-marker.
 +      (rst-toc-mode-mouse-goto): Avoid setq.
 +      (rst-shift-region-guts, rst-shift-region-left)
 +      (rst-iterate-leftmost-paragraphs, rst-iterate-leftmost-paragraphs-2)
 +      (rst-convert-bullets-to-enumeration): Use copy-marker.
 +
 +      * minibuffer.el (completion-fail-discreetly): New var.
 +      (completion--do-completion): Use it.
 +
 +      * electric.el (electric-pair-pairs): New var.
 +      (electric-pair-post-self-insert-function): Use it.
 +      (electric-layout-post-self-insert-function): Don't insert a before
 +      newline unless it's actually needed.
 +
 +2010-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/python.el (run-python): Explain why we remove the current
 +      directory from sys.path.  Suggested by Eric Hanchrow <erich@cozi.com>.
 +
 +      * progmodes/grep.el (grep-regexp-alist): Tighten the regexp (bug#7378).
 +
 +2010-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/octave-mod.el: Rely on elecric-*-modes.
 +      (octave-mode-map): Don't bind ;, SPC, and LF.
 +      (octave-auto-indent, octave-auto-newline): Remove.
 +      (electric-layout-rules): Declare.
 +      (octave-mode): Set electric-layout-rules.
 +      (octave-indent-new-comment-line): Use reindent-then-newline-and-indent.
 +      (octave-reindent-then-newline-and-indent, octave-electric-semi)
 +      (octave-electric-space): Remove.
 +
 +      * electric.el (electric-layout-mode): New minor mode.
 +      (electric--after-char-pos): New function.
 +      (electric-indent-post-self-insert-function): Use it.
 +      (electric-layout-rules): New var.
 +      (electric-layout-post-self-insert-function): New function.
 +      (electric-indent-mode): Make them interact better.
 +
 +2010-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/checkdoc.el (checkdoc-syntax-table): Fix last change.
 +      (checkdoc-sentencespace-region-engine, checkdoc-this-string-valid)
 +      (checkdoc-proper-noun-region-engine): Use with-syntax-table.
 +
 +2010-11-15  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/flyspell.el (flyspell-generic-progmode-verify):
 +      Make sure to check inside the word (Bug#6761).
 +
 +2010-11-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * startup.el (command-line): If the cursorColor resource is set,
 +      change the cursor face-spec (Bug#7392).
 +
 +2010-11-13  Ken Manheimer  <ken.manheimer@gmail.com>
 +
 +      The main features of the following allout.el changes are:
 +      - implement user customization for the allout key bindings
 +      - add a customization control by which the user can inhibit use of
 +        a trailing Ctrl-H, so by default it's reserved for use with
 +        describe-prefix-bindings
 +      - adapt to new version of called-interactively-p, while
 +        maintaining backwards compatibility with old version
 +      - fix hotspot navigation so i works properly with meta-modified keys
 +
 +      * allout.el (allout-keybindings, allout-bind-keys)
 +      (allout-keybindings-binding, allout-prefixed-keybindings)
 +      (allout-unprefixed-keybindings, allout-preempt-trailing-ctrl-h)
 +      (allout-keybindings-list, allout-mode-map-adjustments)
 +      (allout-setup-mode-map): Establish allout-mode keymaps as user
 +      customizable settings, and also establish a customizable setting which
 +      regulates whether or not a trailing control-h is reserved for use with
 +      describe-prefix-bindings - and inhibit it by default, so that control-h
 +      *is* reserved for describe-prefix-bindings unless the user changes it.
 +
 +      * allout.el (allout-hotspot-key-handler): Distinguish more explicitly
 +      and accurately between modified and unmodified events, and handle
 +      modified events more comprehensively.
 +
 +      * allout.el (allout-substring-no-properties):
 +      Alias to use or provide version of `substring-no-properties'.
 +      (allout-solicit-alternate-bullet): Use `allout-substring-no-properties'.
 +
 +      * allout.el (allout-next-single-char-property-change):
 +      Alias to use or provide version of `next-single-char-property-change'.
 +      (allout-annotate-hidden, allout-hide-by-annotation):
 +      Use `allout-next-single-char-property-change'.
 +
 +      * allout.el (allout-select-safe-coding-system):
 +      Alias to use or provide version of `select-safe-coding-system'.
 +      (allout-toggle-subtree-encryption):
 +      Use `allout-select-safe-coding-system'.
 +
 +      * allout.el (allout-set-buffer-multibyte):
 +      Alias to use or provide version of `set-buffer-multibyte'.
 +      (allout-encrypt-string): Use `allout-set-buffer-multibyte'.
 +
 +      * allout.el (allout-called-interactively-p): Macro for using the
 +      different versions of called-interactively-p identically, depending on
 +      the subroutine's argument signature.
 +      (allout-back-to-current-heading, allout-beginning-of-current-entry):
 +      Use `(interactive "p")' instead of `(called-interactively-p)'.
 +
 +      * allout.el (allout-init, allout-ascend, allout-end-of-level)
 +      (allout-previous-visible-heading, allout-forward-current-level)
 +      (allout-backward-current-level, allout-show-children):
 +      Use `allout-called-interactively-p' instead of `called-interactively-p'.
 +
 +      * allout.el (allout-before-change-handler):
 +      Exempt edits to the (overlaid) character after the allout outline
 +      bullet from edit confirmation prompt.
 +
 +      * allout.el (allout-add-resumptions):
 +      Ensure that it respects correct buffer for keybindings.
 +
 +      * allout.el (allout-beginning-of-line):
 +      Use `allout-previous-single-char-property-change' alias for the sake of
 +      diverse compatibility.
 +
 +      * allout.el (allout-end-of-line):
 +      Use `allout-mark-active-p' to encapsulate respect for mark activity.
 +
 +2010-11-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.el (frame-notice-user-settings): Don't clobber other
 +      user-set parameters when calling face-set-after-frame-default in
 +      response to background-color parameter (Bug#7373).
 +
 +2010-11-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * international/characters.el (glyphless-char-display-control):
 +      Rename from glyphless-char-control; all users changed.  Doc fix.
 +      Signal an error if display method is not one of the recognized
 +      symbols.
 +
 +2010-11-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-compat.el (tramp-compat-line-beginning-position)
 +      (tramp-compat-line-end-position): Remove them.
 +
 +      * net/tramp.el (tramp-parse-rhosts-group)
 +      (tramp-parse-shosts-group, tramp-parse-sconfig-group)
 +      (tramp-parse-hosts-group, tramp-parse-passwd-group)
 +      (tramp-parse-netrc-group, tramp-parse-putty-group)
 +      * net/tramp-cmds.el (tramp-append-tramp-buffers)
 +      * net/tramp-sh.el (tramp-do-file-attributes-with-ls)
 +      (tramp-sh-handle-file-selinux-context)
 +      (tramp-sh-handle-file-name-all-completions)
 +      (tramp-sh-handle-insert-directory)
 +      (tramp-sh-handle-expand-file-name, tramp-find-executable)
 +      (tramp-wait-for-output, tramp-send-command-and-read)
 +      * net/tramp-smb.el (tramp-smb-read-file-entry)
 +      (tramp-smb-get-cifs-capabilities): Use `point-at-eol'.
 +
 +      * net/tramp-sh.el (tramp-sh-handle-insert-directory) Use
 +      `point-at-bol'.
 +      (tramp-remote-coding-commands): Add an alternative using "base64
 +      -d -i".  This is needed for older base64 versions from GNU
 +      coreutils.  Reported by Klaus Reichl
 +      <Klaus.Reichl@thalesgroup.com>.
 +
 +2010-11-13  Hrvoje Niksic  <hniksic@xemacs.org>
 +
 +      * simple.el (count-words-region): New function.
 +
 +2010-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * shell.el (shell-dir-cookie-re): New custom variable.
 +      (shell-dir-cookie-watcher): New function.
 +
 +      * vc/vc.el (vc-deduce-backend): Use default-directory in shell-mode
 +      and compilation-mode (bug#7350).
 +
 +      * vc/smerge-mode.el (smerge-refine): Choose better default part to
 +      highlight when one of them is empty.
 +
 +      * skeleton.el (skeleton-read): Don't use `newline' since it may strip
 +      trailing space.
 +      (skeleton-newline): New function.
 +      (skeleton-internal-1): Use it.
 +
 +      * simple.el (open-line): `newline' may strip trailing space.
 +
 +2010-11-12  Kevin Ryde  <user42@zip.com.au>
 +
 +      * international/mule-cmds.el (princ-list): Use mapc.
 +
 +2010-11-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-log-buffer): New constant.
 +      Use it to replace all instances of "*Compile-Log*"
 +
 +2010-11-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el (pcase-let*, pcase-let): Add debug and
 +      indentation specs.
 +
 +2010-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/modula2.el: Use SMIE and skeleton.
 +      (m2-mode-syntax-table): (*..*) can be nested.
 +      Add //...\n.  Fix paren syntax.
 +      (m2-mode-map): Remove LF and TAB bindings.
 +      (m2-indent): Add safety property.
 +      (m2-smie-grammar): New var.
 +      (m2-smie-refine-colon, m2-smie-refine-of, m2-smie-backward-token)
 +      (m2-smie-forward-token, m2-smie-refine-semi, m2-smie-rules): New funs.
 +      (m2-mode): Use define-derived-mode.
 +      (m2-newline, m2-tab): Remove.
 +      (m2-begin, m2-case, m2-definition, m2-else, m2-for, m2-header)
 +      (m2-if, m2-loop, m2-module, m2-or, m2-procedure, m2-with, m2-record)
 +      (m2-stdio, m2-type, m2-until, m2-var, m2-while, m2-export)
 +      (m2-import): Use define-skeleton.
 +
 +2010-11-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * obsolete/lucid.el: Don't warn about any CL functions in this file.
 +
 +      * ls-lisp.el (ls-lisp-ignore-case, ls-lisp-dirs-first)
 +      (ls-lisp-verbosity): Add custom :set-after property.
 +      (ls-lisp-verbosity, ls-lisp-use-localized-time-format): Doc fixes.
 +      (ls-lisp-format, ls-lisp-format-time): Don't take `now' as an argument.
 +      (ls-lisp-insert-directory): Update caller.
 +      (ls-lisp-set-options): New function.
 +      (ls-lisp-emulation): Use ls-lisp-set-options for custom :set.
 +      Doc fix.
 +
 +      * play/landmark.el (lm-prompt-for-move):
 +      * play/gomoku.el (gomoku-prompt-for-move): Remove nonsensical code.
 +
 +      * progmodes/idlw-complete-structtag.el: Remove unused dec `name'.
 +
 +      * progmodes/idlwave.el (idlwave-routine-entry-compare-twins)
 +      (idlwave-study-twins): Prefix dynamic local variable `name'.
 +      (idlwave-routine-twin-compare): Update for above change.
 +
 +      * progmodes/idlw-help.el (idlwave-do-mouse-completion-help):
 +      Prefix dynamic local variables `name', `kwd', and `link'.
 +      * progmodes/idlw-shell.el (idlwave-shell-complete-execcomm-help):
 +      * progmodes/idlw-complete-structtag.el
 +      (idlwave-complete-structure-tag-help):
 +      * progmodes/idlwave.el (idlwave-complete-sysvar-help)
 +      (idlwave-complete-sysvar-tag-help)
 +      (idlwave-complete-class-structure-tag-help):
 +      Update for above name changes.
 +
 +2010-11-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/browse-url.el (browse-url-browser-function): Change the
 +      default to use `browse-url-mail' on mailto: URLs.
 +
 +2010-11-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-read-all-archive-contents):
 +      Reset package-archive-contents to nil before re-reading.
 +
 +2010-11-10  Brandon Craig Rhodes  <brandon@rhodesmill.org>  (tiny change)
 +
 +      * textmodes/flyspell.el (flyspell-word): Do not re-check words
 +      already found as misspellings by (flyspell-large-region), just
 +      do highlighting (bug#7322).
 +
 +2010-11-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/octave-mod.el (octave-mark-block): Update for smie change.
 +
 +      * emulation/edt.el (edt-with-position): New macro.
 +      (edt-find-forward, edt-find-backward, edt-find-next-forward)
 +      (edt-find-next-backward, edt-sentence-forward, edt-sentence-backward)
 +      (edt-paragraph-forward, edt-paragraph-backward): Use it.
 +
 +      * emulation/tpu-extras.el (tpu-with-position): New macro.
 +      (tpu-paragraph, tpu-page, tpu-search-internal): Use it.
 +
 +      * textmodes/texnfo-upd.el (texinfo-pointer-name): Fix typo.
 +
 +      * textmodes/texnfo-upd.el (texinfo-all-menus-update)
 +      (texinfo-menu-copy-old-description, texinfo-start-menu-description)
 +      (texinfo-master-menu, texinfo-insert-node-lines)
 +      (texinfo-multiple-files-update):
 +      * textmodes/texinfmt.el (texinfo-append-refill, texinfo-copying):
 +      Use line-beginning-position.
 +
 +      * progmodes/cperl-mode.el (cperl-find-pods-heres, cperl-write-tags):
 +      No recent Emacs supports system-type `emx'.
 +
 +      * progmodes/ada-xref.el (is-windows): Rename to ada-on-ms-windows.
 +      (ada-command-separator, ada-default-prj-properties)
 +      (ada-find-any-references): Update for above name change.
 +
 +      * dirtrack.el (dirtrack-directory-function)
 +      (dirtrack-canonicalize-function):
 +      * filecache.el (file-cache-completion-ignore-case)
 +      (file-cache-case-fold-search, file-cache-ignore-case):
 +      * term.el (serial-port-is-file-p): Cosmetic change.
 +
 +      * emulation/viper-init.el (viper-ms-style-os-p): Doc fix.
 +      Remove non-existent `windows-95' system-type.
 +      * dired.el (dired-chown-program): Remove non-existent `linux'
 +      system-type.
 +
 +      * net/net-utils.el (net-utils-remove-ctl-m): Use memq for system-types.
 +      (ping-program-options): Remove non-existent `linux' system-type.
 +
 +      * startup.el (package-initialize): Update declaration.
 +
 +      * ls-lisp.el (ls-lisp-time-lessp, ls-lisp-time-to-seconds): Remove.
 +      (ls-lisp-handle-switches): Use time-less-p.
 +      (ls-lisp-format-time): Use float-time.
 +
 +      * textmodes/remember.el (remember-time-to-seconds): Remove.
 +      (remember-store-in-mailbox): Use float-time.
 +
 +      * calendar/timeclock.el (timeclock-time-to-seconds): Make it an alias.
 +
 +      * calendar/time-date.el (time-to-seconds): Always an alias on Emacs,
 +      never a real function.
 +      (with-no-warnings): Remove compat stub, now unused.
 +      (time-less-p): Doc fix.
 +      (time-to-number-of-days): Simplify.
 +
 +      * eshell/esh-util.el (eshell-time-less-p, eshell-time-to-seconds):
 +      Remove.
 +      (eshell-read-passwd, eshell-read-hosts): Use time-less-p.
 +      * eshell/esh-test.el (eshell-test, eshell-show-usage-metrics):
 +      * eshell/em-unix.el (eshell-show-elapsed-time, eshell/time):
 +      * eshell/em-pred.el (eshell-pred-file-time): Use float-time.
 +      * eshell/em-ls.el (eshell-ls-sort-entries): Use time-less-p.
 +
 +      * eshell/em-unix.el (eshell-remove-entries, eshell/rm)
 +      (eshell-shuffle-files, eshell-shorthand-tar-command)
 +      (eshell-mvcpln-template, eshell/mv, eshell/cp, eshell/ln):
 +      Prefix dynamic locals `interactive', `preview', `recursive', `verbose'.
 +      * eshell/em-glob.el (eshell-extended-glob, eshell-glob-entries):
 +      Prefix dynamic local variable `matches'.
 +
 +      * skeleton.el (skeleton-internal-list, skeleton-internal-1):
 +      Prefix dynamic local variable `skeleton'.
 +
 +2010-11-10  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * net/browse-url.el (browse-url-mail): Insert body part of mailto url
 +      in mail buffer; make yank-action always a command that yanks original
 +      buffer.
 +
 +2010-11-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/tcl.el (tcl-hairy-scan-for-comment): Doc fix.
 +
 +2010-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (minibuffer-completion-help): Specify the end of the
 +      completion field (bug#7211).
 +
 +      * progmodes/python.el (python-font-lock-syntactic-keywords): (bug#7322)
 +      Fix handling of backslash escapes.
 +      (python-quote-syntax): Adjust accordingly.
 +
 +2010-11-09  Richard Levitte  <richard@levitte.org>  (tiny change)
 +
 +      * vc-mtn.el (vc-mtn-working-revision, vc-mtn-after-dir-status)
 +      (vc-mtn-workfile-branch): Adjust to new output format.
 +
 +2010-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * international/mule-cmds.el (princ-list): Mark as obsolete.
 +
 +2010-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el: New package.
 +
 +2010-11-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.el (backup-by-copying-when-mismatch):
 +      Set `permanent-local' property.
 +
 +      * net/tramp.el (tramp-handle-insert-file-contents): Do not set
 +      `permanent-local' property for `backup-by-copying-when-mismatch'.
 +
 +2010-11-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * ls-lisp.el (insert-directory): Doc fix.  (bug#7285)
 +
 +2010-11-09  Wilson Snyder  <wsnyder@wsnyder.org>
 +
 +      * progmodes/verilog-mode.el (verilog-insert-one-definition)
 +      (verilog-read-decls, verilog-read-sub-decls-sig): Fix AUTOWIRE and
 +      AUTOINOUT for SV style multidimensional arrays, bug294.
 +      Reported by Eric Mastromarchi.
 +      (verilog-preprocess): Use with-current-buffer and
 +      font-lock-fontify-buffer to cleanup style issues.
 +
 +2010-11-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * locate.el (locate, locate-mode): Doc fixes.
 +
 +2010-11-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * server.el (server-start): New arg INHIBIT-PROMPT prevents asking
 +      user for confirmation.
 +      (server-force-stop): Use it.
 +      (server-start): Use server-force-stop for kill-emacs-hook, to
 +      avoid user interaction while killing Emacs.
 +
 +2010-11-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/meta-mode.el: Remove leading `*' from defcustom docs.
 +      (meta-indent-line): Simplify.
 +
 +      * vc/emerge.el (emerge-line-number-in-buf):
 +      * textmodes/ispell.el (ispell-region):
 +      * textmodes/fill.el (current-fill-column):
 +      * progmodes/xscheme.el (xscheme-send-current-line):
 +      * progmodes/vhdl-mode.el (vhdl-current-line, vhdl-line-copy):
 +      * progmodes/tcl.el (tcl-hairy-scan-for-comment):
 +      * progmodes/sh-script.el (sh-handle-prev-do):
 +      * progmodes/meta-mode.el (meta-indent-line):
 +      * progmodes/idlwave.el (idlwave-goto-comment, idlwave-fill-paragraph)
 +      (idlwave-in-quote):
 +      * progmodes/idlw-shell.el (idlwave-shell-current-frame)
 +      (idlwave-shell-update-bp-overlays, idlwave-shell-sources-filter):
 +      * progmodes/fortran.el (fortran-looking-at-if-then):
 +      * progmodes/etags.el (find-tag-in-order, etags-snarf-tag):
 +      * progmodes/cperl-mode.el (cperl-sniff-for-indent)
 +      (cperl-find-pods-heres):
 +      * progmodes/ada-mode.el (ada-get-current-indent, ada-narrow-to-defun):
 +      * net/quickurl.el (quickurl-list-insert):
 +      * net/ldap.el (ldap-search-internal):
 +      * net/eudc.el (eudc-expand-inline):
 +      * mail/sendmail.el (sendmail-send-it):
 +      * mail/mspools.el (mspools-visit-spool, mspools-get-spool-name):
 +      * emulation/viper-cmd.el (viper-paren-match, viper-backward-indent)
 +      (viper-brac-function):
 +      * calc/calc-yank.el (calc-do-grab-region):
 +      * calc/calc-keypd.el (calc-keypad-press):
 +      * term.el (term-move-columns, term-insert-spaces):
 +      * speedbar.el (speedbar-highlight-one-tag-line):
 +      * simple.el (current-word):
 +      * mouse-drag.el (mouse-drag-should-do-col-scrolling):
 +      * info.el (Info-find-node-in-buffer-1, Info-follow-reference)
 +      (Info-scroll-down):
 +      * hippie-exp.el (he-line-beg):
 +      * epa.el (epa--marked-keys):
 +      * dired-aux.el (dired-kill-line, dired-do-kill-lines)
 +      (dired-update-file-line, dired-add-entry, dired-remove-entry)
 +      (dired-relist-entry):
 +      * buff-menu.el (Buffer-menu-buffer):
 +      * array.el (current-line):
 +      * allout.el (allout-resolve-xref)
 +      (allout-latex-verbatim-quote-curr-line):
 +      Replace yet more uses of end-of-line etc with line-end-position, etc.
 +
 +2010-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/checkdoc.el (checkdoc-display-status-buffer)
 +      (checkdoc-interactive-loop, checkdoc-recursive-edit): Avoid princ-list.
 +      (checkdoc-syntax-table): Initialize in the declaration.
 +      (emacs-lisp-mode-hook): Use just checkdoc-minor-mode now that it turns
 +      the mode on unconditionally.
 +
 +      * emacs-lisp/cl-macs.el (extent-data, extent-face, extent-priority)
 +      (extent-end-position, extent-start-position): Remove setf method for
 +      non-existing functions (bug#7319).
 +
 +2010-11-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el: Simplify the smie-rules-function return values.
 +      (smie-precs->prec2): Rename from smie-precs-precedence-table.
 +      (smie-bnf->prec2): Rename from smie-bnf-precedence-table.
 +      (smie-prec2->grammar): Rename from smie-prec2-levels.
 +      (smie-grammar): Rename from smie-op-levels.
 +      (smie-indent--hanging-p): Rename from smie-hanging-p.
 +      (smie-rule-hanging-p): New alias.
 +      (smie-indent--bolp): Rename from smie-bolp.
 +      (smie-indent--hanging-p): New alias.
 +      (smie--token): New dynamically bound variable.
 +      (smie-indent--parent): New function.
 +      (smie-rule-parent-p): Use it; rename from smie-parent-p.
 +      (smie-rule-next-p): Rename from smie-next-p.
 +      (smie-rule-prev-p): Rename from smie-prev-p.
 +      (smie-rule-sibling-p, smie-rule-parent)
 +      (smie-indent--separator-outdent, smie-rule-separator): New functions.
 +      (smie-rule-separator-outdent): New var.
 +      (smie-indent--rule): Merge with smie-indent--column.
 +      (smie-indent-forward-token, smie-indent-backward-token):
 +      Also recognize close parens.
 +      (smie-indent-keyword): Don't use smie-indent--column any more.
 +      (smie-indent-after-keyword): Ignore closers by default.
 +      (smie-indent-line): Use with-demoted-errors.
 +      * progmodes/octave-mod.el (octave-smie-grammar):
 +      Rename from octave-smie-op-levels.
 +      (octave-smie-rules): Adjust to new behavior.
 +      * progmodes/prolog.el (prolog-smie-grammar):
 +      Rename from prolog-smie-op-levels.
 +
 +2010-11-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * eshell/esh-util.el (subst-char-in-string)
 +      (directory-files-and-attributes): These compatibility definitions are
 +      not needed on any version of Emacs since at least 21.4.
 +
 +      * progmodes/verilog-mode.el (verilog-get-beg-of-line)
 +      (verilog-get-end-of-line): Remove.
 +      (verilog-within-string, verilog-re-search-forward-substr)
 +      (verilog-re-search-backward-substr, verilog-set-auto-endcomments)
 +      (verilog-surelint-off, verilog-getopt-file, verilog-highlight-region):
 +      Use point-at-bol, point-at-eol.
 +      * progmodes/pascal.el (pascal-get-beg-of-line, pascal-get-end-of-line):
 +      Remove.
 +      (pascal-declaration-end, pascal-declaration-beg, pascal-within-string)
 +      (electric-pascal-terminate-line, pascal-set-auto-comments)
 +      (pascal-indent-paramlist, pascal-indent-declaration)
 +      (pascal-get-lineup-indent, pascal-func-completion)
 +      (pascal-get-completion-decl, pascal-var-completion, pascal-completion):
 +      Use point-at-bol, point-at-eol.
 +      * progmodes/flymake.el (flymake-line-beginning-position)
 +      (flymake-line-end-position): Remove.
 +      (flymake-highlight-line): Use point-at-bol, point-at-eol.
 +      * eshell/esh-util.el (line-end-position, line-beginning-position):
 +      Remove compat definitions.
 +
 +      * emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
 +      Use end-of-line N.
 +      (checkdoc-this-string-valid-engine, checkdoc-file-comments-engine):
 +      Use line-end-position.
 +
 +      * emacs-lisp/chart.el (chart-zap-chars):
 +      * play/decipher.el (decipher-set-map):
 +      * progmodes/ada-mode.el (ada-get-current-indent)
 +      (ada-search-ignore-string-comment, ada-tab-hard, ada-untab-hard):
 +      * progmodes/ada-prj.el (ada-prj-load-from-file, ada-prj-display-help):
 +      * progmodes/ada-xref.el (ada-initialize-runtime-library)
 +      (ada-get-all-references):
 +      * progmodes/cperl-mode.el (cperl-electric-paren)
 +      (cperl-electric-rparen, cperl-electric-keyword, cperl-electric-else)
 +      (cperl-linefeed, cperl-sniff-for-indent, cperl-to-comment-or-eol)
 +      (cperl-find-pods-heres, cperl-indent-exp, cperl-fix-line-spacing)
 +      (cperl-word-at-point-hard):
 +      * progmodes/idlw-shell.el (idlwave-shell-move-or-history)
 +      (idlwave-shell-filename-string, idlwave-shell-batch-command)
 +      (idlwave-shell-display-line):
 +      * progmodes/idlwave.el (idlwave-show-begin, idlwave-fill-paragraph)
 +      (idlwave-calc-hanging-indent, idlwave-auto-fill, idlwave-template):
 +      * progmodes/js.el (js--re-search-forward-inner)
 +      (js--re-search-backward-inner):
 +      * progmodes/vhdl-mode.el (vhdl-align-region-1, vhdl-align-region-2)
 +      (vhdl-fix-clause, vhdl-compose-configuration-architecture):
 +      * progmodes/ruby-mode.el (ruby-parse-partial, eval-when-compile):
 +      * textmodes/flyspell.el (flyspell-process-localwords):
 +      * textmodes/ispell.el (ispell-buffer-local-parsing)
 +      (ispell-buffer-local-dict, ispell-buffer-local-words):
 +      Use point-at-bol and point-at-eol.
 +
 +      * speedbar.el (speedbar-generic-item-info)
 +      (speedbar-item-info-tag-helper, speedbar-change-expand-button-char)
 +      (speedbar-add-indicator, speedbar-check-vc-this-line)
 +      (speedbar-check-obj-this-line, speedbar-extract-one-symbol)
 +      (speedbar-buffers-line-directory, speedbar-buffer-revert-buffer):
 +      Replace more uses of end-of-line etc with line-end-position.
 +
 +2010-11-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * textmodes/texnfo-upd.el (texinfo-start-menu-description)
 +      (texinfo-update-menu-region-beginning, texinfo-menu-first-node)
 +      (texinfo-delete-existing-pointers, texinfo-find-pointer)
 +      (texinfo-clean-up-node-line, texinfo-insert-node-lines)
 +      (texinfo-multiple-files-update):
 +      * textmodes/table.el (table--probe-cell-left-up)
 +      (table--probe-cell-right-bottom):
 +      * textmodes/picture.el (picture-tab-search):
 +      * textmodes/page-ext.el (pages-copy-header-and-position)
 +      (pages-directory-for-addresses):
 +      * progmodes/vera-mode.el (vera-get-offset):
 +      * progmodes/simula.el (simula-calculate-indent):
 +      * progmodes/python.el (python-pdbtrack-overlay-arrow):
 +      * progmodes/prolog.el (end-of-prolog-clause):
 +      * progmodes/perl-mode.el (perl-calculate-indent, perl-indent-exp):
 +      * progmodes/icon.el (indent-icon-exp):
 +      * progmodes/etags.el (tag-re-match-p):
 +      * progmodes/ebrowse.el (ebrowse-show-file-name-at-point):
 +      * progmodes/ebnf2ps.el (ebnf-begin-file):
 +      * progmodes/dcl-mode.el (dcl-back-to-indentation-1)
 +      (dcl-save-local-variable):
 +      * play/life.el (life-setup):
 +      * play/gametree.el (gametree-looking-at-ply):
 +      * nxml/nxml-maint.el (nxml-insert-target-repertoire-glyph-set):
 +      * mail/sendmail.el (mail-mode-auto-fill):
 +      * emacs-lisp/lisp-mode.el (calculate-lisp-indent):
 +      * emacs-lisp/edebug.el (edebug-overlay-arrow):
 +      * emacs-lisp/checkdoc.el (checkdoc-this-string-valid):
 +      * woman.el (woman-parse-numeric-value, woman2-TH, woman2-SH)
 +      (woman-tab-to-tab-stop, WoMan-warn-ignored):
 +      * type-break.el (type-break-file-keystroke-count):
 +      * term.el (term-replace-by-expanded-history-before-point)
 +      (term-skip-prompt, term-extract-string):
 +      * speedbar.el (speedbar-edit-line, speedbar-expand-line)
 +      (speedbar-contract-line, speedbar-toggle-line-expansion)
 +      (speedbar-parse-c-or-c++tag, speedbar-parse-tex-string)
 +      (speedbar-buffer-revert-buffer, speedbar-highlight-one-tag-line):
 +      * sort.el (sort-skip-fields):
 +      * skeleton.el (skeleton-internal-list):
 +      * simple.el (line-move-finish, line-move-to-column):
 +      * shell.el (shell-forward-command):
 +      * misc.el (copy-from-above-command):
 +      * makesum.el (double-column):
 +      * ebuff-menu.el (electric-buffer-update-highlight):
 +      * dired.el (dired-move-to-end-of-filename):
 +      * dframe.el (dframe-popup-kludge):
 +      * bookmark.el (bookmark-kill-line, bookmark-bmenu-show-filenames):
 +      * arc-mode.el (archive-get-lineno):
 +      Use line-end-position and line-beginning-position.
 +
 +      * progmodes/idlwave.el (idlwave-routine-entry-compare-twins):
 +      (idlwave-study-twins): Prefix dynamic local `class'.
 +      (idlwave-routine-twin-compare): Update for above name change.
 +
 +      * emacs-lisp/eieio-comp.el (byte-compile-file-form-defmethod):
 +      Use boundp tests to silence compiler.  Update for changed name of
 +      bytecomp-filename variable.
 +
 +      * emulation/viper-cmd.el (viper-read-string-with-history):
 +      Prefix dynamic local `initial'.
 +      (viper-minibuffer-standard-hook): Update for above name change.
 +
 +      * emacs-lisp/elint.el (elint-init-env): Prefix dynamic local `env'.
 +      (elint-init-form): Update for above name change.
 +
 +      * mail/mail-extr.el (mail-extract-address-components): Give dynamic
 +      local variables `cbeg' and `cend' a prefix.
 +      (mail-extr-voodoo): Update for above name change.
 +
 +      * textmodes/reftex-toc.el (reftex-toc-do-promote)
 +      (reftex-toc-promote-prepare): Pass `delta' as an explicit argument.
 +      (reftex-toc-promote-action): Doc fix.
 +
 +      * textmodes/reftex-sel.el (reftex-select-item): Give local variables
 +      `prompt', `data' a prefix.
 +      (reftex-select-post-command-hook, reftex-select-callback)
 +      (reftex-select-mouse-accept, reftex-select-read-cite):
 +      Update for above name changes.
 +
 +      * textmodes/reftex-ref.el (reftex-reference): Rename local variable
 +      `refstyle' to reftex-refstyle.
 +      (reftex-offer-label-menu): Update for above name change.
 +      * textmodes/reftex-sel.el (reftex-select-toggle-varioref): Update for
 +      `refstyle' name change.
 +
 +      * vc/emerge.el (emerge-eval-in-buffer): Remove, and replace all uses
 +      with with-current-buffer.
 +      (diff, template): Give dynamic local variables a prefix.
 +      (emerge-line-numbers): Rename local `diff' to emerge-line-diff.
 +      (emerge-line-number-in-buf): Update for above name change.
 +      (emerge-combine-versions-internal): Rename local `template' to
 +      emerge-combine-template.
 +      (emerge-combine-versions-edit): Update for above name change.
 +
 +2010-11-06  Ralf Angeli  <angeli@caeruleus.net>
 +
 +      * textmodes/reftex-cite.el
 +      (reftex-extract-bib-entries-from-thebibliography): Match bibitem
 +      entries with whitespace after \bibitem.
 +      (reftex-create-bibtex-file): Match entries containing numbers and
 +      symbol constituents.  Make sure that entries with whitespace at
 +      various places are found.
 +
 +2010-11-05  Christian Millour  <cm@abtela.com>  (tiny change)
 +
 +      * shell.el (shell-process-popd): Made aware of comint-file-name-prefix.
 +
 +2010-11-05  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * mouse.el (mouse-yank-primary): Update comment (Bug#6802).
 +
 +2010-11-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * woman.el (woman0-roff-buffer, woman1-roff-buffer)
 +      (woman2-roff-buffer): Give local variable `request' a prefix.
 +      (woman0-macro): Rename argument `request' in the same way.
 +      (woman-request): New name for `request' dynamic variable.
 +      (woman-unquote, woman-forward-arg): Update for above name change.
 +      (woman1-roff-buffer): Give local variable `unquote' a prefix.
 +      (woman1-unquote): New name for `unquote' dynamic variable.
 +      (woman1-B-or-I, woman1-alt-fonts): Update for above name change.
 +      (woman-translations): Rename from `translations'.  No longer global.
 +      (woman2-tr, woman-translate): Update for above name change.
 +      (woman-translate): Check for bound variable.
 +      (woman2-roff-buffer): Give local variable `translations' a prefix.
 +
 +      * play/doctor.el: Give all local variables a prefix.  Update callers.
 +      (doc$, doctor-put-meaning): Use backquote.
 +
 +      * emacs-lisp/cl-macs.el (loop): Give local variable args a prefix.
 +      (cl-parse-loop-clause, cl-loop-handle-accum): Update for above change.
 +
 +      * emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): Give local
 +      variables bytes, ptr, op a prefix.
 +      (disassemble-offset): Update for above change.
 +
 +2010-11-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-unpack): Remove no-op.
 +      (package--builtins, package--dir): Doc fix.
 +      (package-activate-1, package-activate, package-install)
 +      (package-compute-transaction): Fix error message.
 +      (package-delete): Use delete-directory.  Omit system packages.
 +      (package-initialize): Set package-alist to nil first.
 +      (package-menu-mark-delete, package-menu-mark-install): Don't add
 +      symbols that are inconsistent with the package state.
 +      (package-menu-execute): Perform deletions and installations as
 +      single batch operations.
 +
 +2010-11-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/idlwave.el (idlwave-pset): Only used on XEmacs.
 +      (props): Remove unnecessary declaration.
 +
 +      * textmodes/ispell.el (ispell-init-process): On Emacs, always use
 +      set-process-query-on-exit-flag.
 +
 +      * textmodes/reftex-toc.el (name1, dummy, dummy2): Remove unused decs.
 +      (reftex-toc-do-promote): Remove unused local `mpos'.
 +      (reftex-toc-restore-region): Make `mpos' local to this function.
 +
 +      * net/dbus.el (dbus-name-owner-changed-handler): Doc fix.
 +
 +      * play/landmark.el (lm-losing-threshold): Correct spelling.
 +      (lm-human-plays): Use new name.
 +
 +      * play/gomoku.el (gomoku-loosing-threshold): Correct spelling.
 +      (gomoku-human-plays): Use new name.
 +
 +      * play/gomoku.el (nil-score, Xscore, XXscore, XXXscore, XXXXscore)
 +      (Oscore, OOscore, OOOscore, OOOOscore): Rename with gomoku- prefix.
 +      (gomoku-score-trans-table, gomoku-winning-threshold)
 +      (gomoku-loosing-threshold, gomoku-init-score-table): Use new names.
 +
 +2010-11-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el: Don't put built-in packages in
 +      package-alist, to avoid loading inefficiencies.
 +      (package-built-in-p): Make VERSION optional, and treat it as a
 +      minimum acceptable version.
 +      (package-activate): Search separately for built-in packages.
 +      Emit a warning if a dependency fails.
 +      (define-package): Handle most common case, where there is no
 +      obsolete package, first.
 +      (package-compute-transaction): Print required version in error.
 +      (package--initialized): New variable.
 +      (list-packages): Use it.
 +      (package-initialize): Optional arg NO-ACTIVATE.  Don't put
 +      built-in packages in packages-alist; keep it separate.
 +      Set package--initialized.
 +      (describe-package): Avoid activating packages as a side-effect.
 +      Search separately for built-in packages.
 +      (describe-package-1): Handle the case where an elpa package is
 +      simultaneously built-in and available/installed.
 +      (package-installed-p, package--generate-package-list):
 +      Search separately for built-in packages.
 +      (package-load-descriptor): Doc fix.
 +
 +2010-11-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/perl-mode.el (perl-syntax-propertize-function):
 +      Handle __DATA__ and __END__.
 +
 +2010-11-02  Noah Friedman  <friedman@splode.com>
 +
 +      * emacs-lisp/bytecomp.el (byte-recompile-file): If bytecomp-arg is
 +      nil, do not ask to recompile files that are not already compiled,
 +      and do not recompile them.
 +
 +2010-11-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-initialize): Ensure that
 +      obsoleted built-in packages are not in package-activated-list
 +      during activation.
 +      (describe-package-1): Make the "installed" status override
 +      "built-in".
 +
 +2010-11-01  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * subr.el (version-separator, version-regexp-alist): Remove '*'
 +      from docstring.
 +      (version-list-<=, version<=, version=): Doc fix.
 +
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
 +
 +      * faces.el (glyphless-char): Inherit underline for tty.
 +
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
 +
 +      Implement various display methods for glyphless characters.
 +
 +      * international/characters.el (char-acronym-table): New variable.
 +      (glyphless-char-control): New variable.
 +      (update-glyphless-char-display): New function.
 +
 +      * faces.el (glyphless-char): New face.
 +
 +2010-11-01  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/holidays.el (general-holidays, oriental-holidays)
 +      (local-holidays, other-holidays, hebrew-holidays, christian-holidays)
 +      (islamic-holidays, bahai-holidays, solar-holidays): Move aliases before
 +      the definitions of their targets.
 +
 +      * emacs-lisp/smie.el (smie): New custom group.
 +      (smie-blink-matching-inners, smie-indent-basic): Add :group.
 +
 +      * faces.el (xw-defined-colors, x-setup-function-keys):
 +      * mouse-sel.el (x-select-text):
 +      * term/w32console.el (x-setup-function-keys): Update declarations.
 +
 +      * progmodes/ruby-mode.el (ruby-syntax-propertize-heredoc): Declare.
 +
 +      * textmodes/ispell.el (comment-add): Declare.
 +
 +      * net/gnutls.el (gnutls-boot, gnutls-errorp, gnutls-error-string):
 +      Declare.
 +
 +      * info.el (finder-keywords-hash, package-alist): Declare.
 +
 +2010-11-01  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * finder.el (finder-compile-keywords): Don't use intern-soft,
 +      since package names may not yet exist in the obarray.
 +
 +2010-11-01  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * vc/vc-arch.el (vc-arch-checkin):
 +      * vc/vc-cvs.el (vc-cvs-checkin):
 +      * vc/vc-mtn.el (vc-mtn-checkin):
 +      * vc/vc-rcs.el (vc-rcs-checkin):
 +      * vc/vc-sccs.el (vc-sccs-checkin):
 +      * vc/vc-svn.el (vc-svn-checkin): Remove optional extra arg, unused
 +      since 2010-04-21 commit by Stefan Monnier.
 +
 +2010-11-01  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/bytecomp.el (byte-recompile-file): Fix previous change.
 +
 +      * startup.el (package-enable-at-startup, package-initialize):
 +      Silence compiler.
 +
 +      * progmodes/ada-mode.el (ada-font-lock-syntactic-keywords):
 +      Silence compiler.
 +
 +2010-10-31  Julien Danjou  <julien@danjou.info>
 +
 +      * emacs-lisp/bytecomp.el (byte-recompile-file): New fun (bug#7297).
 +      (byte-recompile-directory):
 +      * emacs-lisp/lisp-mode.el (emacs-lisp-byte-compile-and-load):
 +      Use `byte-recompile-file'.
 +
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
 +
 +      * cus-start.el: Handle standard values via a keyword.
 +      Only set version property if specified.
 +      (cursor-in-non-selected-windows, menu-bar-mode)
 +      (tool-bar-mode, show-trailing-whitespace):
 +      Do not specify standard values.
 +      (transient-mark-mode, temporary-file-directory): Use :standard.
 +
 +2010-10-31  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * term/x-win.el (x-get-selection-value): New function that gets
 +      PRIMARY with type as specified in x-select-request-type.  (Bug#6802)
 +
 +2010-10-31  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-insert-file-contents): For root,
 +      preserve owner and group when editing files.  (Bug#7289)
 +
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
 +
 +      * speedbar.el (speedbar-mode):
 +      * play/fortune.el (fortune-in-buffer, fortune):
 +      * play/gomoku.el (gomoku-mode):
 +      * play/landmark.el (lm-mode):
 +      * textmodes/bibtex.el (bibtex-validate, bibtex-validate-globally):
 +      Replace inappropriate uses of toggle-read-only.  (Bug#7292)
 +
 +      * select.el (x-selection): Mark it as an obsolete alias.
 +
 +2010-10-31  Aaron S. Hawley  <aaron.s.hawley@gmail.com>
 +
 +      * vc/add-log.el (find-change-log): Use derived-mode-p rather than
 +      major-mode (bug#7284).
 +
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
 +
 +      * menu-bar.el (menu-bar-files-menu): Make it into an actual alias,
 +      rather than just an unused variable that inherits from the real one.
 +
 +2010-10-31  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-cmds.el (c-mask-paragraph): Fix an off-by-1 error.
 +      This fixes bug #7185.
 +
 +2010-10-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * startup.el (command-line): Search for package directories, and
 +      don't load package.el if none are found.
 +
 +      * emacs-lisp/package.el (describe-package, list-packages):
 +      Call package-initialize if it has not been called yet.
 +
 +2010-10-30  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-fonts.el (c-font-lock-enum-tail): New function
 +      which fontifies the tail of an enum.
 +      (c-basic-matchers-after): Insert a call to the above new function.
 +      This fixes bug #7264.
 +
 +2010-10-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * cus-start.el: Add :set properties for minor modes menu-bar-mode,
 +      tool-bar-mode, transient-mark-mode.  (Bug#7306)
 +      Include the :set property in the dumped Emacs.
 +
 +2010-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      SMIE: change indent rules format, improve smie-setup.
 +      * emacs-lisp/smie.el (smie-precs-precedence-table)
 +      (smie-merge-prec2s, smie-bnf-precedence-table, smie-prec2-levels):
 +      Mark them pure so the tables gets built at compile time.
 +      (smie-bnf-precedence-table): Store the closer-alist in the table.
 +      (smie-prec2-levels): Preserve the closer-alist.
 +      (smie-blink-matching-open): Be more forgiving in case of indentation.
 +      (smie-hanging-p): Rename from smie-indent--hanging-p.
 +      (smie-bolp): Rename from smie-indent--bolp.
 +      (smie--parent, smie--after): New dynamic vars.
 +      (smie-parent-p, smie-next-p, smie-prev-p): New funs.
 +      (smie-indent-rules): Remove.
 +      (smie-indent--offset-rule): Remove fun.
 +      (smie-rules-function): New var.
 +      (smie-indent--rule): New fun.
 +      (smie-indent--offset, smie-indent-keyword, smie-indent-after-keyword)
 +      (smie-indent-exps): Use it.
 +      (smie-setup): Setup paren blinking; add keyword args for token
 +      functions; extract closer-alist from op-levels.
 +      (smie-indent-debug-log): Remove var.
 +      (smie-indent-debug): Remove fun.
 +      * progmodes/prolog.el (prolog-smie-indent-rules): Remove.
 +      (prolog-smie-rules): New fun to replace it.
 +      (prolog-mode-variables): Simplify.
 +      * progmodes/octave-mod.el (octave-smie-closer-alist): Remove, now that
 +      it's setup automatically.
 +      (octave-smie-indent-rules): Remove.
 +      (octave-smie-rules): New fun to replace it.
 +      (octave-mode): Simplify.
 +
 +2010-10-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * files.el (temporary-file-directory): Remove (already defined in C).
 +      * cus-start.el: Add temporary-file-directory.
 +
 +      * abbrev.el (abbrev-mode):
 +      * composite.el (auto-composition-mode):
 +      * menu-bar.el (menu-bar-mode):
 +      * simple.el (transient-mark-mode):
 +      * tool-bar.el (tool-bar-mode): Adjust the define-minor-mode calls so
 +      that they do not define the associated variables twice.
 +      * simple.el (transient-mark-mode): Remove defvar.
 +      * composite.el (auto-composition-mode): Make variable auto-buffer-local.
 +      * cus-start.el: Add transient-mark-mode, menu-bar-mode, tool-bar-mode.
 +      Handle multiple groups, and also custom-delayed-init-variables.
 +      * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix.
 +
 +2010-10-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el (pcase): New `string' and `guard' patterns.
 +      (pcase-if): Add one minor optimization.
 +      (pcase-split-equal): Rename from pcase-split-eq.
 +      (pcase-split-member): Rename from pcase-split-memq.
 +      (pcase-u1): Add strings to the member optimization.
 +      Add `guard' variant of predicates.
 +      (pcase-q1): Add string patterns.
 +
 +2010-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc/log-edit.el (log-edit-rewrite-fixes): State its safety pred.
 +
 +2010-10-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * term/ns-win.el (global-map, menu-bar-final-items, menu-bar-help-menu):
 +      Move menu-bar related settings to ../menu-bar.el.
 +      * menu-bar.el (global-map, menu-bar-final-items, menu-bar-help-menu):
 +      Move ns-specific settings here from term/ns-win.el.
 +
 +      * simple.el (x-selection-owner-p): Remove unused declaration.
 +
 +2010-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-cycling): New var (bug#7266).
 +      (minibuffer-complete, completion--do-completion):
 +      Use completion--flush-all-sorted-completions.
 +      (minibuffer-complete): Only cycle if completion-cycling is set.
 +      (completion--flush-all-sorted-completions): Unset completion-cycling.
 +      (minibuffer-force-complete): Set completion-cycling.
 +      (completion-all-sorted-completions): Move declaration before first use.
 +
 +2010-10-28  Leo  <sdl.web@gmail.com>
 +
 +      * iswitchb.el (iswitchb-kill-buffer): Avoid `iswitchb-make-buflist'
 +      which changes the order of matches seen by users (bug#7231).
 +
 +2010-10-28  Jes Bodi Klinke  <jes@bodi-klinke.dk>  (tiny change)
 +
 +      * progmodes/compile.el (compilation-mode-font-lock-keywords):
 +      Don't confuse -omega as "-o mega".
 +
 +2010-10-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc/log-edit.el (log-edit-rewrite-fixes): New var.
 +      (log-edit-author): New dynamic var.
 +      (log-edit-changelog-ours-p, log-edit-insert-changelog-entries): Use it
 +      to return the author if different from committer.
 +      (log-edit-insert-changelog): Use them to add Author: and Fixes headers.
 +
 +      * play/landmark.el: Adjust commenting convention.
 +      (lm-nil-score): Rename from nil-score.
 +      (Xscore, XXscore, XXXscore, XXXXscore, Oscore, OOscore, OOOscore)
 +      (OOOOscore): Move into a let in lm-score-trans-table.
 +      (lm-winning-threshold, lm-loosing-threshold): Use lm-score-trans-table.
 +
 +      * electric.el (electric-indent-chars): Autoload.
 +      * progmodes/octave-mod.el (octave-mode):
 +      * progmodes/ruby-mode.el (ruby-mode): Take advantage of it.
 +      (ruby-mode-abbrev-table): Merge initialization and declaration.
 +
 +2010-10-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * abbrev.el (abbrev-mode): Remove one of the three definitions of this
 +      variable.
 +
 +      * server.el (server-host, server-port, server-auth-dir): Autoload risky.
 +
 +      * term/ns-win.el: Restore require of cl when compiling.
 +      (menu-bar-final-items): Remove non-existent `windows' menu.
 +      (ns-handle-nxopen): Optionally handle the temp-case.
 +      (ns-handle-nxopentemp): Just call ns-handle-nxopen.
 +      (ns-insert-file, ns-find-file): Use `pop'.
 +
 +2010-10-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * term/common-win.el (xw-defined-colors): Simplify the 'ns case.
 +
 +2010-10-26  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +
 +      * term/ns-win.el (ns-new-frame, ns-show-prefs): Don't add to
 +      global map.
 +      * term/common-win.el (x-setup-function-keys): Remove most of the
 +      keymappings.  Comment on the remaining ones.
 +
 +2010-10-26  Peter Oliver  <p.d.oliver@mavit.org.uk>  (tiny change)
 +
 +      * server.el (server-port): New option.  (Bug#854)
 +      (server-start): Use server-port.
 +
 +2010-10-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * term/ns-win.el (ns-version-string): Remove unused declaration.
 +      (ns-invocation-args): Change to x-invocation-args.
 +      (ns-handle-switch, ns-handle-numeric-switch, ns-handle-iconic)
 +      (ns-handle-name-switch, ns-ignore-2-arg): Remove.
 +      (ns-handle-nxopen, ns-handle-nxopentemp, ns-ignore-1-arg):
 +      Use x-invocation-args instead of ns-invocation-args.
 +      (ns-initialize-window-system, handle-args-function-alist):
 +      Use x-handle-args instead of ns-handle-args.
 +      * term/common-win.el (x-handle-args): Also handle nextstep arguments.
 +      * startup.el (command-line-ns-option-alist): Replace
 +      ns-handle-name-switch, ns-handle-switch, ns-handle-numeric-switch,
 +      ns-handle-iconic with the x- equivalents.
 +
 +      * term/common-win.el (x-select-enable-clipboard):
 +      * term/pc-win.el (x-select-enable-clipboard): Doc fix.
 +
 +      * term/ns-win.el: No need to require cl when compiling.
 +      (x-display-name, x-setup-function-keys, x-select-text, x-colors)
 +      (xw-defined-colors): Use the common-win definitions.
 +      (ns-alternatives-map): Make it an obsolete alias for x-alternatives-map.
 +      (ns-handle-iconic): Make it an alias for x-handle-iconic.
 +      * term/common-win.el (x-select-text, x-alternatives-map)
 +      (x-setup-function-keys, x-colors, xw-defined-colors): Handle 'ns case.
 +      * loadup.el [ns]: Load common-win.
 +
 +2010-10-26  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-mail.el (epa-mail-encrypt): Handle local-part only
 +      recipients; expand mail aliases (Bug#7280).
 +
 +2010-10-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * term/common-win.el (x-handle-switch): Simplify with pop.
 +      Optionally handle numeric switches.
 +      (x-handle-numeric-switch): Just call x-handle-switch.
 +      (x-handle-initial-switch, x-handle-xrm-switch, x-handle-geometry)
 +      (x-handle-name-switch, x-handle-display, x-handle-args):
 +      Simplify with pop.
 +
 +      * term/ns-win.el: Do not require easymenu.
 +      (menu-bar-edit-menu) <copy, paste, paste-from-menu, separator-undo>:
 +      <spell>: Move adjustments to menu-bar.el.
 +      * menu-bar.el (menu-bar-edit-menu) <copy, paste, paste-from-menu>:
 +      <separator-undo, spell>: Move ns-win's adjustments here.
 +      * loadup.el [ns]: Do not load easymenu.
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image.el (image-checkbox-checked, image-checkbox-unchecked):
 +      Delete (Bug#7222).
 +
 +      * startup.el (fancy-startup-tail): Instead of using inline images,
 +      refer to image files from etc/.
 +
 +      * wid-edit.el (checkbox): Likewise.
 +      (widget-image-find): Center image specs.
 +
 +2010-10-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * term/ns-win.el (x-select-text): Doc fix.
 +      * w32-fns.el (x-alternatives-map, x-setup-function-keys)
 +      (x-select-text): Move to term/common-win.
 +      * term/w32-win.el (xw-defined-colors): Move to common-win.
 +      * term/x-win.el (xw-defined-colors, x-alternatives-map)
 +      (x-setup-function-keys, x-select-text): Move to common-win.
 +      * term/common-win.el (x-select-text, x-alternatives-map)
 +      (x-setup-function-keys, xw-defined-colors): Merge x- and w32-
 +      definitions here.
 +
 +2010-10-24  T.V. Raman  <tv.raman.tv@gmail.com>  (tiny change)
 +
 +      * net/mairix.el (mairix-searches-mode-map):
 +      * mail/mspools.el (mspools-mode-map): Fix 2010-10-10 change.
 +
 +2010-10-24  Michael McNamara  <mac@mail.brushroad.com>
 +
 +      * verilog-mode.el (verilog-directive-re): Make this variable
 +      auto-built for efficiency of execution and updating.
 +      (verilog-extended-complete-re): Support 'pure' fucntion & task
 +      declarations (these have no bodies).
 +      (verilog-beg-of-statement): General cleanup to enable support of
 +      'pure' fucntion & task declarations (these have no bodies).
 +      These efforts together fix Verilog bug210 from veripool; which was also
 +      noticed by Steve Pearlmutter.
 +      (verilog-directive-re, verilog-directive-begin, verilog-indent-re)
 +      (verilog-directive-nest-re, verilog-set-auto-endcomments):
 +      Support `elsif.  Reported by Shankar Giri.
 +      (verilog-forward-ws&directives, verilog-in-attribute-p): Fixes for
 +      attribute handling for lining up declarations and assignments.
 +      (verilog-beg-of-statement-1): Fix issue where continued declaration
 +      is indented differently if it is after a begin..end clock.
 +      (verilog-in-attribute-p, verilog-skip-backward-comments)
 +      (verilog-skip-forward-comment-p): Support proper treatment of
 +      attributes by indent code.  Reported by Jeff Steele.
 +      (verilog-in-directive-p): Fix comment to correctly describe function.
 +      (verilog-backward-up-list, verilog-in-struct-region-p)
 +      (verilog-backward-token, verilog-in-struct-p)
 +      (verilog-in-coverage-p, verilog-do-indent)
 +      (verilog-pretty-declarations): Use verilog-backward-up-list as
 +      wrapper around backward-up-list inorder to properly skip comments.
 +      Reported by David Rogoff.
 +      (verilog-property-re, verilog-endcomment-reason-re)
 +      (verilog-beg-of-statement, verilog-set-auto-endcomments)
 +      (verilog-calc-1 ): Fix for assert a; else b; indentation (new form
 +      of if).  Reported by Max Bjurling and
 +      (verilog-calc-1): Fix for clocking block in modport
 +      declaration.  Reported by Brian Hunter.
 +
 +2010-10-24  Wilson Snyder  <wsnyder@wsnyder.org>
 +
 +      * verilog-mode.el (verilog-auto-inst, verilog-gate-ios)
 +      (verilog-gate-keywords, verilog-read-sub-decls)
 +      (verilog-read-sub-decls-gate, verilog-read-sub-decls-gate-ios)
 +      (verilog-read-sub-decls-line, verilog-read-sub-decls-sig): Support
 +      AUTOINST for gate primitives, bug284.  Reported by Mark Johnson.
 +      (verilog-read-decls): Fix spaces in V2K module parameters causing
 +      mis-identification as interfaces, bug287.
 +      (verilog-read-decls): Fix not treating "parameter string" as a
 +      parameter in AUTOINSTPARAM.
 +      (verilog-read-always-signals-recurse, verilog-read-decls): Fix not
 +      treating `elsif similar to `endif inside AUTOSENSE.
 +      (verilog-do-indent): Implement correct automatic or static task or
 +      function end comment highlight.  Reported by Steve Pearlmutter.
 +      (verilog-font-lock-keywords-2): Fix highlighting of single
 +      character pins, bug264.  Reported by Michael Laajanen.
 +      (verilog-auto-inst, verilog-read-decls, verilog-read-sub-decls)
 +      (verilog-read-sub-decls-in-interfaced, verilog-read-sub-decls-sig)
 +      (verilog-subdecls-get-interfaced, verilog-subdecls-new):
 +      Support interfaces with AUTOINST, bug270.  Reported by Luis Gutierrez.
 +      (verilog-pretty-expr): Fix interactive arguments, bug272.
 +      Reported by Mark Johnson.
 +      (verilog-auto-tieoff, verilog-auto-tieoff-ignore-regexp):
 +      Add 'verilog-auto-tieoff-ignore-regexp' for AUTOTIEOFF,
 +      bug269.  Suggested by Gary Delp.
 +      (verilog-mode-map, verilog-preprocess, verilog-preprocess-history)
 +      (verilog-preprocessor, verilog-set-compile-command):
 +      Create verilog-preprocess and verilog-preprocessor to show
 +      preprocessed output.
 +      (verilog-get-beg-of-line, verilog-get-end-of-line)
 +      (verilog-modi-file-or-buffer, verilog-modi-name)
 +      (verilog-modi-point, verilog-within-string): Move defmacro's
 +      before first use to avoid warning.  Reported by Steve Pearlmutter.
 +      (verilog-colorize-buffer, verilog-colorize-include-files-buffer)
 +      (verilog-colorize-region, verilog-highlight-buffer)
 +      (verilog-highlight-includes, verilog-highlight-modules)
 +      (verilog-highlight-region, verilog-mode): Rename colorize to
 +      highlight to match other packages.  Disable module highlighting,
 +      as received speed complaints, reenable for experimentation only
 +      using new verilog-highlight-modules.
 +      (verilog-read-decls): Fix regexp stack overflow in very large
 +      AUTO_TEMPLATEs, bug250.
 +      (verilog-auto, verilog-delete-auto, verilog-save-buffer-state)
 +      (verilog-scan): Create verilog-save-buffer-state to standardize
 +      making insignificant changes that shouldn't call hooks.
 +      (verilog-save-no-change-functions, verilog-save-scan-cache)
 +      (verilog-scan, verilog-scan-cache-ok-p, verilog-scan-region):
 +      Create verilog-save-no-change-functions to wrap verilog-scan
 +      preservation, and fix to work with nested preserved calls.
 +      (verilog-auto-inst, verilog-auto-inst-dot-name): Support .name
 +      port syntax for AUTOWIRE, and with new verilog-auto-inst-dot-name
 +      generate .name with AUTOINST, bug245.  Suggested by David Rogoff.
 +      (verilog-submit-bug-report): Update variable list to be complete.
 +      (verilog-auto, verilog-colorize-region): Fix AUTO expansion
 +      breaking on-the-fly font-locking.
 +      (verilog-colorize-buffer, verilog-colorize-include-files)
 +      (verilog-colorize-include-files-buffer, verilog-colorize-region)
 +      (verilog-load-file-at-mouse, verilog-load-file-at-point)
 +      (verilog-mode, verilog-read-inst-module-matcher): With point on a
 +      AUTOINST cell instance name, middle mouse button now finds-file on
 +      it.  Suggested by Brad Dobbie.
 +      (verilog-alw-get-temps, verilog-auto-reset)
 +      (verilog-auto-sense-sigs, verilog-read-always-signals)
 +      (verilog-read-always-signals-recurse): Fix loop indexes being
 +      AUTORESET.  AUTORESET now assumes any variables in the
 +      initialization section of a for() should be ignored.
 +      Reported by Dan Dever.
 +      (verilog-error-font-lock-keywords)
 +      (verilog-error-regexp-emacs-alist)
 +      (verilog-error-regexp-xemacs-alist): Fix error detection of
 +      Cadence HAL, reported by David Asher.  Repair drift between the
 +      three similar error variables.
 +      (verilog-modi-lookup, verilog-modi-lookup-cache)
 +      (verilog-modi-lookup-last-current, verilog-modi-lookup-last-mod)
 +      (verilog-modi-lookup-last-modi, verilog-modi-lookup-last-tick):
 +      Fix slow verilog-auto expansion on very large files.
 +      (verilog-read-sub-decls-expr, verilog-read-sub-decls-line):
 +      Fix AUTOOUTPUT treating "1*2" as a signal name in submodule connection
 +      "{1*2{...".  Broke in last revision.
 +      (verilog-read-sub-decls-expr): Fix AUTOOUTPUT not detecting
 +      submodule connections with replications "{#{a},#{b}}".
 +
 +2010-10-24  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/dcl-mode.el (dcl-electric-reindent-regexps):
 +      Fix typo in docstring.
 +
 +2010-10-24  Kenichi Handa  <handa@m17n.org>
 +
 +      * face-remap.el (text-scale-adjust): Call read-event with a proper
 +      prompt.
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/unsafep.el: Don't mark functions that display
 +      messages as safe.  Suggested by Johan Bockgård.
 +
 +2010-10-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/regexp-opt.el (regexp-opt-group, regexp-opt-charset):
 +      Turn comments into docstrings.
 +
 +      * minibuffer.el (completion--replace): Move point where it belongs
 +      when there's a common suffix (bug#7215).
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      Merge read-color and facemenu-read-color (Bug#7242).
 +
 +      * faces.el (read-color): Use the completion code from
 +      facemenu-read-color.  Require match in completion.  Doc fix.
 +
 +      * facemenu.el (facemenu-read-color): Alias for read-color.
 +      (facemenu-set-foreground, facemenu-set-background):
 +      Use read-color.
 +
 +      * frame.el (set-background-color, set-foreground-color)
 +      (set-cursor-color, set-mouse-color, set-border-color):
 +      Use read-color.
 +
 +2010-10-24  Leo  <sdl.web@gmail.com>
 +
 +      * eshell/em-unix.el (eshell-remove-entries): Use the TRASH
 +      argument of delete-file and delete-directory (Bug#7011).
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-menu-mode-map): Inherit from
 +      button-buffer-map.
 +
 +2010-10-24  Ralf Angeli  <angeli@caeruleus.net>
 +
 +      * emacs-lisp/package.el (package--generate-package-list): Make the
 +      *Packages* buffer read-only.
 +
 +2010-10-24  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-fonts.el (c-font-lock-declarations): Cache the
 +      result of `c-beginning-of-decl-1' between invocations of a lambda
 +      function (Bug #7265).
 +
 +2010-10-24  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epg-config.el (epg-gpg-program): Try to use "gpg2" if "gpg"
 +      executable is not available on the system (Bug#7268).
 +
 +2010-10-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * select.el (selection-coding-system, next-selection-coding-system):
 +      Sync doc with C versions.
 +
 +      * w32-vars.el (x-select-enable-clipboard):
 +      * term/x-win.el (x-select-enable-clipboard): Move to common-win.
 +      * term/common-win.el (x-select-enable-clipboard): Move here.
 +
 +      * term/tty-colors.el (tty-defined-color-alist): Remove duplicate
 +      definition of C variable.
 +
 +      * frame.el (show-trailing-whitespace, auto-hscroll-mode)
 +      (display-hourglass, hourglass-delay, cursor-in-non-selected-windows):
 +      Don't redefine things that are defined in C.
 +      * cus-start.el: Also handle :risky, :safe, :set, and :tag.
 +      (show-trailing-whitespace, auto-hscroll-mode)
 +      (display-hourglass, hourglass-delay, cursor-in-non-selected-windows):
 +      Set up the appropriate custom properties.
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      Bind "C-c ]" to ...
 +      * progmodes/f90.el (f90-mode-map): ... f90-insert-end.
 +      * nxml/nxml-mode.el (nxml-mode-map): ... nxml-finish-element.
 +      * textmodes/tex-mode.el (tex-mode-map): ... latex-close-block.
 +      * textmodes/sgml-mode.el (sgml-mode-map): ... sgml-close-tag.
 +
 +2010-10-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * textmodes/flyspell.el (flyspell-mode): If there was an error,
 +      say what it was.
 +
 +      * frame.el (auto-hscroll-mode, cursor-in-non-selected-windows):
 +      Sync docs with C version.
 +
 +      * term/ns-win.el (xw-defined-colors):
 +      * term/x-win.el (xw-defined-colors): Make docs identical to w32-win.
 +
 +      * term/pc-win.el (x-select-enable-clipboard):
 +      * term/x-win.el (x-select-enable-clipboard):
 +      * w32-vars.el (x-select-enable-clipboard): Make doc-strings identical.
 +
 +      * comint.el (comint-password-prompt-regexp): Make it less vague.
 +      Bump version.
 +
 +      * help-fns.el (doc-file-to-man, doc-file-to-info): New commands.
 +
 +      * help.el (finder-by-keyword): Remove unnecessary autoload.
 +
 +2010-10-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * loadup.el: Unconditionally load float-sup.
 +      * paren.el (show-paren-delay):
 +      * emacs-lisp/float-sup.el:
 +      * emulation/cua-base.el (cua-prefix-override-inhibit-delay):
 +      * obsolete/lazy-lock.el (lazy-lock-defer-time, lazy-lock-stealth-nice)
 +      (lazy-lock-stealth-verbose): Assume float support.
 +      * ps-print.el: Assume float support on Emacs.
 +      * emacs-lisp/timer.el (timer-next-integral-multiple-of-time):
 +      Remove non-float branch.
 +
 +      * emacs-lisp/autoload.el (batch-update-autoloads): Update for
 +      src/Makefile no longer being pre-processed.
 +
 +2010-10-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/find-func.el (find-library): Use test-completion.
 +
 +2010-10-21  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * newcomment.el (comment-dwim): Fix the intentation in the doc string.
 +
 +2010-10-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-do-file-attributes-with-stat): Do not use
 +      space in stat format string.
 +      (tramp-send-command): Unset $PS1 when using here documents, in
 +      order not to get several prompts.
 +      (tramp-get-inline-coding): Return `nil' in case of errors.
 +
 +2010-10-21  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * hexl.el (hexl-mode, hexl-mode-exit):
 +      Tweak revert-buffer-function to inhibit auto-mode-alist (Bug#7252).
 +      (hexl-revert-buffer-function): New function.
 +      (hexl-before-revert-hook, hexl-after-revert-hook): Abolish.
 +
 +2010-10-19  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-langs.el (c-type-decl-prefix-key): C++ bit:
 +      Move "\(const\|throw\|volatile\)\>" nearer the start of the regexp, so
 +      that these keywords aren't wrongly matched as identifiers.
 +
 +      * progmodes/cc-mode.el (c-before-change, c-after-change): Move the
 +      setting of c-new-BEG and c-new-END from c-before-change to
 +      c-after-change.  (Bug#7181)
 +
 +2010-10-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-face.el (custom-theme-set-faces): Revert 2010-10-18 change.
 +      Don't mark as safe.
 +
 +      * custom.el (custom-theme-set-variables): Likewise.
 +      (load-theme): Add custom-theme-set-faces and
 +      custom-theme-set-variables to safe-functions while loading.
 +      (custom-enabled-themes): Mark as risky.
 +
 +2010-10-18  Julien Danjou  <julien@danjou.info>
 +
 +      * bindings.el: Remove end dashes in default mode-line-format.
 +
 +2010-10-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * bindings.el (global-map): Bind C-d to delete-char and deletechar
 +      to delete-forward-char.
 +
 +      * simple.el (normal-erase-is-backspace-mode): Remap delete to
 +      deletechar, and hence delete-forward-char.
 +
 +2010-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * repeat.el (repeat): Use read-key (bug#6256).
 +
 +2010-10-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/unsafep.el: Don't mark functions that display
 +      messages as safe.  Suggested by Johan Bockgård.
 +
 +2010-10-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion--replace): Move point where it belongs
 +      when there's a common suffix (bug#7215).
 +
 +2010-10-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/characters.el: Add category '|' (word breakable)
 +      to fullwidth characters.
 +
 +2010-10-19  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-do-file-attributes-with-stat)
 +      (tramp-do-directory-files-and-attributes-with-stat): Use "e0" in
 +      order to make stat results a float.  Patch by Andreas Schwab
 +      <schwab@linux-m68k.org>.
 +
 +2010-10-18  Julien Danjou  <julien@danjou.info>
 +
 +      * avoid.el (mouse-avoidance-ignore-p): Ignore mouse when it is
 +      hidden by `make-pointer-invisible'.
 +
 +2010-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * files.el (locate-file-completion-table): Strip non-matching elements
 +      before checking length of list (bug#7238).
 +
 +2010-10-18  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.el (custom-theme-set-variables): Mark as a safe function.
 +      (load-theme): Check forms using unsafep.
 +
 +      * cus-face.el (custom-theme-set-faces): Mark as a safe function.
 +
 +2010-10-17  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-aspell-find-dictionary):
 +      Fix aspell data file searching (bug#7230).
 +
 +2010-10-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-theme.el (custom-theme--migrate-settings): New var.
 +      (customize-create-theme): Allow editing the `user' theme.
 +      (custom-theme-add-variable, custom-theme-add-var-1)
 +      (custom-theme-add-face, custom-theme-add-face-1): Add a checkbox
 +      to the front of each variable or face widget.
 +      (custom-theme-write): Save theme settings in the correct order.
 +      Optionally, remove saved settings from user customizations.
 +      (custom-theme-write-variables, custom-theme-write-faces):
 +      Save only the checked widgets.
 +      (customize-themes): Add a link for migrating custom settings.
 +
 +      * custom.el (custom-declare-theme, provide-theme):
 +      Use custom-theme-name-valid-p.
 +      (custom-theme-name-valid-p): Remove checks that are now
 +      unnecessary since themes no longer obey load-path.
 +
 +      * cus-edit.el (custom-variable-value-create): For the simple
 +      style, hide documentation string when hidden.
 +
 +2010-10-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (custom-variable, custom-face): Combine the
 +      :inhibit-magic and :display-style properties into a single
 +      :custom-style property.
 +      (custom-toggle-hide-variable, custom-toggle-hide-face):
 +      New functions.  If hiding an edited value, save it to :shown-value.
 +      (custom-variable-value-create, custom-face-value-create): Use them.
 +      (custom-magic-reset): Allow magic property to be unset.
 +
 +      * custom.el: Custom themes no longer use load-path.
 +      (custom-theme-load-path): New option.  Change built-in theme
 +      directory to etc/.
 +      (custom-enabled-themes): Add custom-theme-load-path dependency.
 +      (custom-theme--load-path): New function.
 +      (load-theme, custom-available-themes): Use it.
 +
 +      * cus-theme.el (describe-theme-1): Use custom-theme--load-path.
 +      (customize-themes): Link to custom-theme-load-path variable.
 +      (custom-theme-add-var-1, custom-theme-add-face-1): Use the
 +      :custom-style property.
 +
 +      * themes/*.el: Moved to etc/.
 +
 +2010-10-16  Ralf Angeli  <angeli@caeruleus.net>
 +
 +      * textmodes/reftex-cite.el
 +      (reftex-extract-bib-entries-from-thebibliography): Do not move
 +      point when searching for \bibitem entries.  Match entries with
 +      spaces or tabs in front of arguments.
 +
 +2010-10-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-theme.el (customize-create-theme): Delete overlays after
 +      erasing.  If given a THEME arg, display only the faces of that arg
 +      instead of custom-theme--listed-faces.
 +      (custom-theme-variable-menu, custom-theme-variable-action)
 +      (custom-variable-reset-theme, custom-theme-delete-variable): Delete.
 +      (custom-theme-add-variable, custom-theme-add-face): Apply value
 +      from the theme settings, instead of the current value.
 +      (custom-theme-add-var-1, custom-theme-add-face-1): New functions.
 +      (custom-theme-visit-theme): Allow calling outside theme buffers.
 +      (custom-theme-merge-theme): Don't enable the theme when merging.
 +      (custom-theme-write-variables, custom-theme-write-faces): Use the
 +      :shown-value properties to save buffer values, not global ones.
 +      (customize-themes): Display a warning about user customizations.
 +
 +      * cus-edit.el (custom-variable-value-create)
 +      (custom-face-value-create): Obey new special properties
 +      :shown-value and :inhibit-magic.
 +
 +2010-10-15  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-open-connection-setup-interactive-shell):
 +      Suppress expansion of tabs to spaces.  Reported by Dale Sedivec
 +      <dale@codefu.org>.
 +
 +2010-10-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * mail/rmail.el (rmail-show-message-1): Catch an error of
 +      base64-decode-region and just show an error message (bug#7165).
 +
 +      * ps-mule.el (ps-mule-font-spec-list): Delete it.  Not used anymore.
 +      (ps-mule-begin-job): Fix for the case that only ENCODING is set in
 +      a font-spec (bug#7197).
 +
 +2010-10-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * mail/emacsbug.el (report-emacs-bug): Mention debbugs.gnu.org.
 +
 +2010-10-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * international/mule.el (define-coding-system):
 +      * international/titdic-cnv.el (quail-cxterm-package-ext-info):
 +      * composite.el (compose-region): Fix typo in docstring.
 +
 +2010-10-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-face.el (custom-theme-set-faces): Call custom-push-theme
 +      only after checking the theme-face property.
 +
 +      * faces.el (face-spec-reset-face): Reset all attributes in one
 +      single call to set-face-attribute.
 +      (face-spec-match-p): Make it a defsubst.
 +      (frame-set-background-mode): New arg KEEP-FACE-SPECS.
 +      (x-create-frame-with-faces, tty-create-frame-with-faces)
 +      (tty-set-up-initial-frame-faces): Don't recompute face specs in
 +      frame-set-background-mode, since they are recomputed immediately
 +      afterwards in face-set-after-frame-default.
 +      (face-set-after-frame-default): Minor optimization.
 +      (cursor): Provide non-trivial defface spec.
 +
 +      * custom.el (custom-theme-recalc-face): Simplify.
 +
 +2010-10-14  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-alg.el (math-var): Rename from `var'.
 +      (math-is-polynomial, math-is-poly-rec): Replace `var'
 +      with `math-var'.
 +
 +      * calc/calcalg2.el (math-var): Rename from `var'.
 +      (calcFunc-table, math-scan-for-limits): Replace `var'
 +      with `math-var'.
 +
 +2010-10-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * subr.el (last): Deal with dotted lists (reported in bug#7174).
 +
 +2010-10-13  Stephen Berman  <stephen.berman@gmx.net>
 +
 +      * subr.el (last): Use `safe-length' instead of `length' (bug#7206).
 +
 +2010-10-13  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/tls.el (tls-program): Remove spurious %s from openssl.
 +      (tls-starttls-switches): Remove starttls hack.
 +      (open-tls-stream): Ditto.
 +      (tls-find-starttls-argument): Ditto.
 +
 +2010-10-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * image.el (image-library-alist): Declare as obsolete alias.
 +      (image-type-available-p): Use `dynamic-library-alist'.
 +
 +      * term/w32-win.el (dynamic-library-alist):
 +      Use instead of `image-library-alist'.
 +
 +2010-10-13  IRIE Shinsuke  <irieshinsuke@yahoo.co.jp>  (tiny change)
 +
 +      * subr.el (last): Make it faster.  (Bug#7174)
 +
 +2010-10-13  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>  (tiny change)
 +
 +      * Makefile.in (compile-clean): Use `` instead of $().  (Bug#7178)
 +
 +2010-10-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-theme.el (custom-theme--listed-faces): Add cursor face.
 +      (describe-theme-1): Extract doc from unloaded themes.
 +
 +      * custom.el (custom-theme-name-valid-p): Don't list color-themes.
 +
 +      * themes/tango-theme.el:
 +      * themes/tango-dark-theme.el:
 +      * themes/wheatgrass-theme.el: New files.
 +
 +2010-10-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-theme.el (describe-theme, customize-themes)
 +      (custom-theme-save): New commands.
 +      (custom-new-theme-mode-map): Bind C-x C-s.
 +      (custom-new-theme-mode): Use custom--initialize-widget-variables.
 +      (customize-create-theme): New optional arg THEME.
 +      (custom-theme-revert): Use it.
 +      (custom-theme-visit-theme): Remove dead code.
 +      (custom-theme-merge-theme): Use custom-available-themes.
 +      (custom-theme-write): Make interactive.
 +      (custom-theme-write): Use custom-theme-name-valid-p.
 +      (describe-theme-1, custom-theme-choose-revert)
 +      (custom-theme-checkbox-toggle, custom-theme-selections-toggle):
 +      New funs.
 +      (custom-theme-allow-multiple-selections): New option.
 +      (custom-theme-choose-mode): New major mode.
 +
 +      * custom.el (custom-theme-set-variables): Remove dead code.
 +      Obey custom--inhibit-theme-enable.
 +      (custom--inhibit-theme-enable): New var.
 +      (provide-theme): Obey it.
 +      (load-theme): Replace load with manual read/eval, in order to
 +      check for correctness.  Use custom-theme-name-valid-p.
 +      (custom-theme-name-valid-p): New function.
 +      (custom-available-themes): Use it.
 +
 +      * cus-edit.el (custom--initialize-widget-variables): New function.
 +      (Custom-mode): Use it.
 +
 +      * cus-face.el (custom-theme-set-faces): Remove dead code.
 +      Obey custom--inhibit-theme-enable.
 +
 +      * help-mode.el (help-theme-def, help-theme-edit): New buttons.
 +
 +2010-10-12  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * net/telnet.el (telnet-mode-map): Fix previous change (bug#7193).
 +
 +2010-10-12  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * term/ns-win.el (ns-right-alternate-modifier): New defvar.
 +      (ns-right-option-modifier): New alias for ns-right-alternate-modifier.
 +      (mac-right-option-modifier): New alias for ns-right-option-modifier.
 +
 +      * cus-start.el (all): ns-right-alternate-modifier is new.
 +
 +2010-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/lisp.el (lisp-completion-at-point):
 +      Use emacs-lisp-mode-syntax-table for the whole function.
 +
 +2010-10-12  David Koppelman  <koppel@ece.lsu.edu>
 +
 +      * hi-lock.el (hi-lock-font-lock-hook): Check font-lock-fontified
 +      instead of font-lock-mode before adding keywords.
 +      Remove hi-lock-mode off code.  Remove inhibit hack.
 +      (hi-lock-set-pattern): Only add keywords if font-lock-fontified
 +      non-nil; removed hook inhibit hack.
 +
 +2010-10-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/shadow.el (find-emacs-lisp-shadows): Rename it...
 +      (load-path-shadows-find): ... to this.
 +      (list-load-path-shadows): Update for above change.
 +
 +      * mail/mail-utils.el (mail-mbox-from): Also try return-path.
 +
 +2010-10-11  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * mail/hashcash.el, net/imap.el, pgg-parse.el, pgg.el:
 +      Fix comment for declare-function.
 +
 +2010-10-11  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * custom.el (custom-fix-face-spec): New function; code moved from
 +      custom-face-edit-fix-value.
 +      (custom-push-theme): Use it when checking if a face has been
 +      changed outside customize.
 +      (custom-available-themes): New function.
 +      (load-theme): Use it.
 +
 +      * cus-edit.el (custom-face-edit-fix-value): Use custom-fix-face-spec.
 +
 +      * custom.el (custom-push-theme): Cleanup (use cond).
 +      (disable-theme): Recompute the saved-face property.
 +      (custom-theme-recalc-face): Follow face alias before setting prop.
 +
 +      * image.el (image-checkbox-checked, image-checkbox-unchecked):
 +      New variables, containing checkbox images.
 +
 +      * startup.el (fancy-startup-tail):
 +      * wid-edit.el (checkbox): Use them.
 +
 +2010-10-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * shell.el (shell-mode-map):
 +      * progmodes/modula2.el (m2-mode-map):
 +      * progmodes/inf-lisp.el (inferior-lisp-mode-map):
 +      * play/mpuz.el (mpuz-mode-map):
 +      * play/landmark.el (lm-mode-map):
 +      * play/decipher.el (decipher-mode-map):
 +      * play/5x5.el (5x5-mode-map):
 +      * net/telnet.el (telnet-mode-map):
 +      * net/quickurl.el (quickurl-list-mode-map):
 +      * net/mairix.el (mairix-searches-mode-map):
 +      * net/eudc-hotlist.el (eudc-hotlist-mode-map):
 +      * net/dig.el (dig-mode-map):
 +      * mail/mspools.el (mspools-mode-map):
 +      * hexl.el (hexl-mode-map):
 +      * emulation/ws-mode.el (wordstar-C-k-map, wordstar-mode-map)
 +      (wordstar-C-o-map, wordstar-C-q-map):
 +      * emacs-lisp/edebug.el (edebug-eval-mode-map):
 +      * emacs-lisp/chart.el (chart-map):
 +      * edmacro.el (edmacro-mode-map):
 +      * erc/erc-list.el (erc-list-menu-mode-map):
 +      * array.el (array-mode-map): Declare and define in one step.
 +
 +      * vc/log-view.el (log-view-mode-map): Bind revert-buffer.
 +
 +2010-10-10  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa.el (epa-passphrase-callback-function): Display filename
 +      passed as the 3rd arg.
 +      * epa-file.el (epa-file-passphrase-callback-function):
 +      Pass filename to epa-passphrase-callback-function.
 +
 +2010-10-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (custom-face-widget-to-spec)
 +      (custom-face-get-current-spec, custom-face-state): New functions.
 +      (custom-face-set, custom-face-mark-to-save)
 +      (custom-face-value-create, custom-face-state-set): Use them.
 +
 +      * cus-theme.el (custom-theme--listed-faces): New var.
 +      (customize-create-theme): Use *Custom Theme* as the buffer name.
 +      Set revert-buffer-function.  Optional arg BUFFER.  Insert all
 +      faces listed in custom-theme--listed-faces.
 +      (custom-theme-revert): New function.
 +      (custom-theme-add-variable, custom-theme-add-face): Insert at the
 +      bottom of the list.
 +      (custom-theme-write): Prompt for theme name if empty.
 +      (custom-theme-write-variables): Use dolist.
 +      (custom-theme-write-faces): Handle hidden (collapsed) widgets.
 +
 +2010-10-09  Alan Mackenzie  <acm@muc.de>
 +
 +      Enhance fontification of declarators to take account of the
 +      presence/absence of "typedef".
 +
 +      * cc-engine.el (c-forward-type): New &optional param
 +      "brace-block-too".
 +      (c-forward-decl-or-cast-1): cdr of return value now indicates the
 +      presence of either or both of a "struct"-like keyword and "typedef".
 +
 +      * cc-fonts.el (c-complex-decl-matchers): Remove the heuristic
 +      fontification of declarators which follow a "}".
 +      (c-font-lock-declarations): Fontify declarators according to the
 +      presence/absence of "typedef".
 +
 +      * cc-langs.el (c-typedef-kwds c-typedef-key): New lang variable
 +      for "typedef".
 +      (c-typedef-decl-key): New lang variable built from
 +      c-typedef-decl-kwds.
 +
 +2010-10-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * ibuffer.el (ibuffer-mode-map): Don't redefine the cursor keys,
 +      since that's too annoying.  Move the filter groups commands to
 +      TAB/backtab.
 +
 +      * epa.el (epa-passphrase-callback-function): Say what we're
 +      querying the password for.
 +
 +      * ibuffer.el (ibuffer-visit-buffer): To mimick list-buffers
 +      behaviour, don't bury the ibuffer buffer when visiting other buffers.
 +
 +2010-10-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (custom-commands, custom-buffer-create-internal)
 +      (custom-magic-value-create): Pad button tags with spaces.
 +      (custom-face-edit): New variable.
 +      (custom-face-value-create): Determine whether to use the usual
 +      face editor here, instead of using custom-face-selected.
 +      Pass face defaults to custom-face-edit widget.
 +      (custom-face-selected, custom-display-unselected): Delete widgets.
 +      (custom-display-unselected-match): Function removed.
 +      (custom-face-set, custom-face-mark-to-save):
 +      Accept custom-face-edit widgets as the direct widget child.
 +
 +      * wid-edit.el (widget--completing-widget): New var.
 +      (widget-default-complete): Bind it when doing completion.
 +      (widget-string-complete, widget-file-complete): Use it.
 +
 +2010-10-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/cal-hebrew.el (holiday-hebrew-rosh-hashanah)
 +      (holiday-hebrew-passover, holiday-hebrew-tisha-b-av)
 +      (holiday-hebrew-misc): Small simplifications.
 +
 +      * emacs-lisp/authors.el (authors-valid-file-names): Add b2m.c.
 +
 +      * net/browse-url.el: Don't require thingatpt, term, dired,
 +      executable, or w3-auto when compiling.
 +      (dired-get-filename, term-char-mode, term-send-down, term-send-string):
 +      Declare.
 +      (browse-url-text-emacs): Require term.
 +
 +2010-10-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * net/browse-url.el (browse-url-xdg-open): Remove use of /bin/sh.
 +
 +2010-10-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/cl-compat.el, emacs-lisp/lmenu.el: Move to obsolete/.
 +
 +      * emacs-lisp/shadow.el (lisp-shadow): Change prefix.
 +      (shadows-compare-text-p): Make it an obsolete alias for...
 +      (load-path-shadows-compare-text): ... new name.
 +      (find-emacs-lisp-shadows): Update for above name change.
 +      (load-path-shadows-same-file-or-nonexistent): New name for the old
 +      shadow-same-file-or-nonexistent.
 +
 +2010-10-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * minibuffer.el (completion--some, completion--do-completion)
 +      (minibuffer-complete-and-exit, minibuffer-completion-help)
 +      (completion-basic-try-completion)
 +      (completion-basic-all-completions)
 +      (completion-pcm--find-all-completions): Use lexical-let to
 +      avoid some false matches in variable completion (Bug#7056)
 +
 +2010-10-08  Olof Ohlsson Sax  <olof.ohlsson.sax@gmail.com>  (tiny change)
 +
 +      * vc-svn.el (vc-svn-merge-news): Use --non-interactive.  (Bug#7152)
 +
 +2010-10-08  Leo  <sdl.web@gmail.com>
 +
 +      * dnd.el (dnd-get-local-file-name): If MUST-EXIST is non-nil, only
 +      return non-nil if the file exists (Bug#7090).
 +
 +2010-10-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion--replace):
 +      Better preserve markers (bug#7138).
 +
 +2010-10-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * server.el (server-process-filter): Doc fix.
 +
 +2010-10-08  Drew Adams  <drew.adams@oracle.com>
 +
 +      * dired.el (dired-save-positions): Doc fix.  (Bug#7119)
 +
 +2010-10-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc/ediff-wind.el (ediff-setup-control-frame):
 +      * vc/ediff-ptch.el (ediff-default-backup-extension):
 +      * vc/ediff-diff.el (ediff-shell, ediff-diff-options)
 +      (ediff-exec-process): Remove system-types emx, windows-95.
 +
 +      * net/browse-url.el (browse-url-xdg-open): Shell-quote url.  (Bug#7166)
 +
 +2010-10-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (custom-variable, custom-face): Doc fix.
 +      (custom-face-edit): Add value-create attribute.
 +      (custom-face-edit-value-create)
 +      (custom-face-edit-value-visibility-action): New functions.
 +      Hide unused face attributes by default, and add a visibility toggle.
 +      (custom-face-edit-deactivate): Show empty values with shadow face.
 +      (custom-face-selected): Only use this for face specs with default
 +      attributes.
 +      (custom-face-value-create): Cleanup.
 +
 +      * wid-edit.el (widget-checklist-value-create): Use dolist.
 +      (widget-checklist-match-find): Make second arg optional.
 +
 +2010-10-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * hilit-chg.el (hilit-chg-get-diff-info, hilit-chg-get-diff-list-hk):
 +      Prefix things.
 +
 +      * emacs-lisp/shadow.el (shadow-font-lock-keywords)
 +      (load-path-shadows-mode, list-load-path-shadows): Rename shadow-mode to
 +      load-path-shadows-mode, update references.
 +      (load-path-shadows-font-lock-keywords, load-path-shadows-find-file):
 +      Rename variable and button.
 +      (list-load-path-shadows): Update button caller.
 +
 +2010-10-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-bnf-classify): New function.
 +      (smie-bnf-precedence-table): Use it to remember the closers/openers.
 +      (smie-merge-prec2s): Handle those new entries.
 +      (smie-prec2-levels): Only set precedence to nil for actual
 +      openers/closers.
 +      * progmodes/octave-mod.el (octave-smie-op-levels): Remove dummy entry
 +      that is now unnecessary.
 +
 +2010-10-07  Miles Bader  <miles@gnu.org>
 +
 +      * emacs-lisp/regexp-opt.el (regexp-opt): Add `symbols' mode.
 +
 +2010-10-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * mail/rmail.el (mail-sendmail-delimit-header, mail-header-end)
 +      (mail-position-on-field): Remove declarations.
 +      (mail-position-on-field): Autoload it.
 +      (rmail-retry-failure): Replace use of mail-sendmail-delimit-header
 +      and mail-header-end.  Don't require sendmail.
 +
 +      * emacs-lisp/shadow.el (shadow-font-lock-keywords): New variable.
 +      (shadow-mode): New mode.
 +      (shadow-find-file): New button.
 +      (list-load-path-shadows): Use shadow-mode and buttons.
 +
 +      * iimage.el (iimage-version): Remove.
 +      (iimage-mode-image-search-path, iimage-mode-image-regex-alist):
 +      Turn into defcustoms.
 +      (iimage-mode-map): Give it a doc string.
 +
 +      * calendar/appt.el (appt-activate): Give a warning rather than an error
 +      if there is no diary-file.
 +
 +2010-10-06  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-sh.el (tramp-sh-file-name-handler-alist):
 +      Use `tramp-handle-find-backup-file-name'.
 +
 +2010-10-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * font-core.el (font-lock-defaults-alist): Remove variable.
 +      (font-lock-mode): Doc fix.
 +      (font-lock-default-function): Do not consult font-lock-defaults-alist.
 +      * font-lock.el (font-lock-refresh-defaults): Doc fix.
 +      (font-lock-set-defaults): Doc fix.
 +      Do not consult font-lock-defaults-alist.
 +
 +      * hilit-chg.el (hilit-chg-get-diff-list-hk): Declare `e' for compiler.
 +
 +      * emacs-lisp/cl.el: No longer provide cl-19.
 +
 +2010-10-05  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-directory-files-and-attributes)
 +      (tramp-handle-file-exists-p, tramp-handle-file-newer-than-file-p):
 +      New defuns, taken from tramp-smb.el.
 +      (tramp-coding-system-change-eol-conversion)
 +      (tramp-set-process-query-on-exit-flag): Remove.
 +
 +      * net/tramp-compat.el (top): Do not check for byte-compiler objects.
 +      (tramp-compat-coding-system-change-eol-conversion)
 +      (tramp-compat-set-process-query-on-exit-flag): New defuns, taken
 +      from tramp.el.
 +
 +      * net/tramp-gvfs.el:
 +      * net/tramp-gw.el: Replace `tramp-set-process-query-on-exit-flag'
 +      by `tramp-compat-set-process-query-on-exit-flag'.
 +
 +      * net/tramp-imap.el (tramp-imap-file-name-handler-alist):
 +      Use `tramp-handle-directory-files-and-attributes',
 +      `tramp-handle-file-exists-p' and
 +      `tramp-handle-file-newer-than-file-p'.
 +      (tramp-imap-handle-file-exists-p)
 +      (tramp-imap-handle-file-executable-p)
 +      (tramp-imap-handle-file-readable-p)
 +      (tramp-imap-handle-directory-files-and-attributes)
 +      (tramp-imap-handle-file-newer-than-file-p): Remove.
 +
 +      * net/tramp-sh.el: Replace `tramp-set-process-query-on-exit-flag'
 +      by `tramp-compat-set-process-query-on-exit-flag' and
 +      `tramp-coding-system-change-eol-conversion' by
 +      `tramp-compat-coding-system-change-eol-conversion'.
 +
 +      * net/tramp-smb.el (tramp-smb-file-name-handler-alist):
 +      Use `tramp-handle-directory-files-and-attributes',
 +      `tramp-handle-file-exists-p' and
 +      `tramp-handle-file-newer-than-file-p'.
 +      (tramp-smb-handle-directory-files-and-attributes)
 +      (tramp-smb-handle-file-exists-p)
 +      (tramp-smb-handle-file-newer-than-file-p): Remove.
 +      (tramp-smb-maybe-open-connection):
 +      Replace `tramp-set-process-query-on-exit-flag' by
 +      `tramp-compat-set-process-query-on-exit-flag'.
 +
 +2010-10-05  Glenn Morris  <rgm@gnu.org>
 +
 +      * obsolete/rnews.el, obsolete/rnewspost.el: Remove files.
 +
 +2010-10-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Continue reorganization of load dependencies.  (Bug#7156)
 +
 +      * net/tramp.el (tramp-handle-file-local-copy-hook)
 +      (tramp-delete-temp-file-function): Move down.
 +      (tramp-exists-file-name-handler): Move up.
 +      (tramp-register-file-name-handlers): Simplify autoload.
 +      (tramp-handle-write-region-hook, tramp-handle-directory-file-name)
 +      (tramp-handle-directory-files, tramp-handle-dired-uncache)
 +      (tramp-handle-file-modes, tramp-handle-file-name-as-directory)
 +      (tramp-handle-file-name-completion)
 +      (tramp-handle-file-name-directory)
 +      (tramp-handle-file-name-nondirectory, tramp-handle-file-regular-p)
 +      (tramp-handle-file-remote-p, tramp-handle-file-symlink-p)
 +      (tramp-handle-find-backup-file-name)
 +      (tramp-handle-insert-file-contents, tramp-handle-load)
 +      (tramp-handle-substitute-in-file-name)
 +      (tramp-handle-unhandled-file-name-directory)
 +      (tramp-mode-string-to-int, tramp-local-host-p)
 +      (tramp-make-tramp-temp-file): Move from tramp-sh.el.
 +
 +      * net/tramp-gvfs.el (top):
 +      * net/tramp-smb.el (top): Do not require 'tramp-sh.
 +
 +      * net/tramp-sh.el (all): Move several objects to tramp.el, see
 +      there.  Rename `tramp-handle-*' to `tramp-sh-handle-*'.
 +
 +2010-10-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/appt.el (appt-add): Ensure reminders are enabled.
 +      (appt-activate): Give status messages.
 +
 +2010-10-03  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/gnutls.el: Improve docs.  Remove starttls and ssl emulation.
 +      Provide only `open-gnutls-stream' (formerly `open-ssl-stream') and
 +      `gnutls-negotiate' (formerly `starttls-negotiate').
 +      Remove trivial wrapper `starttls-open-stream'.
 +
 +2010-10-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Make 'g' (AKA revert-buffer) rerun the VC log, log-incoming and
 +      log-outgoing commands.
 +      * vc/vc.el (vc-log-internal-common): Add a new argument and use it
 +      to create a buffer local revert-buffer-function variable.
 +      (vc-print-log-internal, vc-log-incoming, vc-log-outgoing): Pass a
 +      revert-buffer-function lambda.
 +
 +2010-10-03  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/gnutls.el (starttls-negotiate): Use the plist interface to
 +      `gnutls-boot'.  Make TYPE the only required parameter.
 +      Allow TRUSTFILES and KEYFILES to be lists.
 +      (open-ssl-stream): Use it.
 +
 +2010-10-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * subr.el (directory-sep-char): Remove obsolete variable.
 +      * net/tramp-compat.el: Don't mess about with the byte-compiler unless
 +      it is "necessary".
 +
 +      * vc/vc-hooks.el (vc-header-alist): Remove obsolete variable.
 +      * vc/vc.el (vc-static-header-alist): Doc fix.
 +      * vc/vc-cvs.el (vc-cvs-header):
 +      * vc/vc-rcs.el (vc-rcs-header):
 +      * vc/vc-sccs.el (vc-sccs-header):
 +      * vc/vc-svn.el (vc-svn-header): Do not consult vc-header-alist.
 +      * obsolete/vc-mcvs.el (vc-mcvs-header):
 +      * progmodes/cperl-mode.el (cperl-mode): Only set vc-header-alist
 +      on XEmacs.
 +
 +2010-10-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-from-buffer):
 +      Remove obsolete use of binary-overwrite-mode (Bug#7001).
 +
 +2010-10-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * obsolete/x-menu.el: Remove file, obsolete since 21.1
 +
 +      * textmodes/rst.el (rst-font-lock-keywords-function):
 +      Drop Emacs 20 code.
 +
 +      * textmodes/artist.el (artist-replace-char): Drop Emacs 20 code.
 +
 +      * printing.el: Drop Emacs 20 code.
 +
 +      * calendar/appt.el (appt-delete): Don't autoload it (you can't use it
 +      without having used appt.el already).
 +
 +      * subr.el (make-local-hook): Remove function obsolete since 21.1.
 +      * progmodes/cc-mode.el (make-local-hook): Don't do cc-bytecomp stuff.
 +      (c-basic-common-init, c-font-lock-init): Only call make-local-hook on
 +      XEmacs.
 +      * progmodes/cc-styles.el (make-local-hook): Don't do cc-bytecomp stuff.
 +      (c-make-styles-buffer-local): Only call make-local-hook on XEmacs.
 +
 +      * ps-def.el (leading-code-private-22, charset-bytes, charset-id)
 +      (charset-width, find-charset-region, chars-in-region, forward-point)
 +      (encode-coding-string, coding-system-p, ccl-execute-on-string)
 +      (define-ccl-program, multibyte-string-p, string-make-multibyte):
 +      Remove compatibility cruft (none of these are used by ps*.el).
 +
 +2010-10-03  Kevin Rodgers  <kevin.d.rodgers@gmail.com>
 +
 +      * subr.el (booleanp): Return t instead of a list (Bug#7086).
 +
 +2010-10-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * server.el (server-process-filter, server-return-error):
 +      Give emacsclient time to shut down after receiving an error string.
 +
 +2010-10-02  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * files.el (remote-file-name-inhibit-cache): New defcustom.
 +
 +      * time.el (display-time-file-nonempty-p):
 +      Use `remote-file-name-inhibit-cache'.
 +
 +      * net/tramp.el (tramp-completion-reread-directory-timeout):
 +      Fix docstring.
 +
 +      * net/tramp-cache.el (tramp-cache-inhibit-cache): Remove.
 +      (tramp-get-file-property): Replace `tramp-cache-inhibit-cache' by
 +      `remote-file-name-inhibit-cache'.  Check also for an integer
 +      value.  Add/increase counter when `tramp-verbose' >= 10.
 +      (tramp-set-file-property): Add/increase counter when
 +      `tramp-verbose' >= 10.
 +
 +      * net/tramp-cmds.el (tramp-cleanup-all-connections)
 +      (tramp-cleanup-all-buffers): Set tramp-autoload cookie.
 +      (tramp-bug): Set tramp-autoload cookie.  Report all interned
 +      tramp-* variables.  Report also `remote-file-name-inhibit-cache'.
 +      (tramp-reporter-dump-variable): Fix docstring.  Mask non-7bit
 +      characters only in strings.
 +
 +      * net/tramp-compat.el (remote-file-name-inhibit-cache): Define due
 +      to backward compatibility.
 +
 +      * net/tramp-sh.el (tramp-handle-verify-visited-file-modtime)
 +      (tramp-handle-file-name-all-completions)
 +      (tramp-handle-vc-registered): Use `remote-file-name-inhibit-cache'.
 +      (tramp-open-connection-setup-interactive-shell):
 +      Call `tramp-cleanup-connection' directly.
 +
 +2010-10-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/checkdoc.el (checkdoc-minor-keymap): Remove obsolete alias.
 +
 +      * subr.el (char-bytes): Remove obsolete function.
 +
 +      * isearch.el (isearch-return-char): Remove obsolete function.
 +
 +      * mouse.el: No longer provide mldrag.
 +      (mldrag-drag-mode-line, mldrag-drag-vertical-line):
 +      Remove obsolete aliases.
 +
 +      * comint.el (comint-kill-output): Remove obsolete alias.
 +
 +      * composite.el (decompose-composite-char): Remove obsolete function.
 +      * ps-def.el (decompose-composite-char): Remove unused function.
 +
 +      * iswitchb.el (iswitchb-default-keybindings): Remove obsolete function.
 +
 +      * outline.el (outline-visible): Remove obsolete function.
 +
 +      * term/pc-win.el (x-frob-font-slant, x-frob-font-weight):
 +      * faces.el (internal-find-face, internal-get-face)
 +      (frame-update-faces, frame-update-face-colors)
 +      (x-frob-font-weight, x-frob-font-slant)
 +      (internal-frob-font-weight, internal-frob-font-slant)
 +      (x-make-font-bold, x-make-font-demibold, x-make-font-unbold)
 +      (x-make-font-italic, x-make-font-oblique, x-make-font-unitalic)
 +      (x-make-font-bold-italic): Remove functions and aliases, obsolete
 +      since Emacs 21.1.
 +      * emulation/viper-util.el (viper-get-face):
 +      * obsolete/lucid.el (find-face, get-face): Use facep.
 +      * vc/ediff-init.el (ediff-valid-color-p, ediff-get-face):
 +      Remove unused functions.
 +      * vc/ediff-util.el (ediff-submit-report): Doc fix.
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-file): Use kill-emacs-hook to
 +      delete tempfile if interrupted during compilation.
 +
 +2010-10-01  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/tls.el (tls-starttls-switches): Give up on using starttls with
 +      gnutls-cli.
 +      (tls-program): Add --insecure to be consistent with the defaults from
 +      openssl s_client.  Now all three commands are insecure.
 +
 +2010-10-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (DEST, TAGS, TAGS-LISP, TAGS-nmake)
 +      (TAGS-LISP-nmake, TAGS-gmake, TAGS-LISP-gmake, TAGS-SH)
 +      (TAGS-LISP-SH, TAGS-CMD, TAGS-LISP-CMD): New targets.
 +
 +2010-10-01  Glenn Morris  <rgm@gnu.org>
 +
 +      * obsolete/sc.el: Remove file.
 +
 +      * files.el (temporary-file-directory): On darwin, also try
 +      DARWIN_USER_TEMP_DIR (see discussion in bug#7135).
 +
 +2010-10-01  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * server.el (server-start): Revert part of 2010-09-30T02:53:26Z!lekktu@gmail.com.
 +      Let's not break compatibility gratuitously, shall we?
 +
 +2010-09-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/tls.el (tls-starttls-switches): New variable.
 +      (tls-find-starttls-argument): Use it.
 +      (open-tls-stream): Ditto.
 +
 +      * net/netrc.el (netrc-credentials): Return the value of the "default"
 +      entry.
 +      (netrc-machine): Ditto.
 +
 +2010-09-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * vc/vc-hooks.el (vc-default-mode-line-string): Doc fix.
 +
 +2010-09-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * server.el (server-start): Don't write pid to the authentication file.
 +      (server-create-tty-frame): Don't send pid.
 +      (server-process-filter): Send pid at the start of every connection.
 +
 +2010-09-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/diary-lib.el (view-diary-entries, list-diary-entries)
 +      (show-all-diary-entries): Remove obsolete function aliases.
 +
 +      * calendar/appt.el (appt-issue-message, appt-visible, appt-msg-window):
 +      Remove options, obsolete since 22.1.
 +      (appt-display-format, appt-display-message):
 +      Remove backwards-compatibility code.
 +      (appt-check): No longer check appt-issue-message.
 +      (appt-make-list): No longer autoload it.  Doc fix.  No longer
 +      activate the package.
 +
 +2010-09-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/gnutls.el (starttls-negotiate): Loop a lot longer.
 +      (starttls-negotiate): Just call boot, and let the handshake be
 +      triggered from the read loop.
 +
 +2010-09-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/diary-lib.el (diary-list-entries): Use temp buffers when
 +      not displaying the diary.
 +      (diary-add-to-list): If no buffer-file-name, fall back to diary-file.
 +      * calendar/appt.el (appt-check): No longer need to kill diary.
 +
 +      * calendar/diary-lib.el (diary-list-entries): Move the
 +      "Preparing..." message entirely here.
 +      (diary-simple-display, diary-fancy-display): Move "Preparing..."
 +      messages to diary-list-entries.
 +      (diary-include-other-diary-files): Use LIST-ONLY rather than setting
 +      diary-display-function.
 +
 +      * calendar/diary-lib.el (diary-include-other-diary-files):
 +      Trap some recursive includes.
 +
 +      * calendar/appt.el (appt-activate): Check diary file.
 +
 +2010-09-29  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * pgg.el (pgg-run-at-time-1): Define it for XEmacs only; fix if/else
 +      construction.
 +
 +      * calendar/time-date.el: No need to require cl for Emacs 21.
 +
 +2010-09-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/appt.el (appt-check): Minor simplification.
 +
 +2010-09-28  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * mail/sendmail.el (mail-citation-prefix-regexp): Remove "}" from
 +      citation prefix.
 +
 +2010-09-27  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
 +      Avoid infinite recursion on erroneous lambda form.  (Bug#7114)
 +
 +2010-09-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * tar-mode.el (tar-header-block-tokenize): Decode filenames in
 +      "ustar" format.
 +
 +2010-09-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (define-coding-system): Docstring fixed.
 +
 +      * international/mule-diag.el (describe-character-set): Use princ
 +      with proper print-length and print-level instead of insert.
 +
 +2010-09-27  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * window.el (walk-windows): Doc fix (bug#7105).
 +
 +2010-09-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/float-sup.el (e): Remove.
 +
 +2010-09-27  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/gnutls.el (gnutls, gnutls-log-level): Add group and custom
 +      variable.
 +      (starttls-negotiate): Use it.
 +
 +2010-09-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/gnutls.el (starttls-negotiate): Stop looping when we get a t
 +      back.
 +
 +2010-09-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el (pcase-let*, pcase-let): plet -> pcase-let.
 +
 +2010-09-26  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/gnutls.el (starttls-negotiate): Avoid the cl.el decf function.
 +
 +      * net/netrc.el (netrc-store-data): New function.
 +
 +2010-09-26  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/gnutls.el: GnuTLS glue code to set up a connection.
 +
 +2010-09-25  Julien Danjou  <julien@danjou.info>
 +
 +      * notifications.el: Call dbus-register-signal only if it is bound.
 +
 +2010-09-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * eshell/em-alias.el, eshell/em-banner.el, eshell/em-basic.el:
 +      * eshell/em-cmpl.el, eshell/em-dirs.el, eshell/em-glob.el:
 +      * eshell/em-hist.el, eshell/em-ls.el, eshell/em-pred.el:
 +      * eshell/em-prompt.el, eshell/em-rebind.el, eshell/em-script.el:
 +      * eshell/em-smart.el, eshell/em-term.el, eshell/em-unix.el:
 +      * eshell/esh-cmd.el, eshell/esh-ext.el, eshell/esh-io.el:
 +      * eshell/esh-mode.el, eshell/esh-proc.el, eshell/esh-test.el:
 +      * eshell/esh-util.el, eshell/esh-var.el:
 +      Remove leading `*' from docs of faces and defcustoms.
 +
 +2010-09-25  Ulrich Mueller  <ulm@gentoo.org>
 +
 +      * eshell/em-ls.el (eshell-ls-archive-regexp):
 +      * eshell/esh-util.el (eshell-tar-regexp):
 +      * ibuffer.el (ibuffer-compressed-file-name-regexp):
 +      * info.el (Info-suffix-list):
 +      * international/mule.el (auto-coding-alist):
 +      * woman.el (woman-file-regexp, woman-file-compression-regexp):
 +      * progmodes/etags.el (tags-compression-info-list):
 +      Support xz compression.
 +
 +2010-09-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * files.el (get-free-disk-space): Don't assume the "df" output
 +      columns line up (Bug#6995).
 +
 +2010-09-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * finder.el (finder-unknown-keywords):
 +      * progmodes/gdb-mi.el (gdb-jsonify-buffer, gdb-running-threads-count):
 +      * progmodes/etags.el (tags-table-including): Fix typos in docstrings.
 +
 +2010-09-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * server.el (server-start): Revert part of 2010-08-08 change.  Using
 +      address 127.0.0.1 for local host is now done in Fmake_network_process.
 +
 +2010-09-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * image-mode.el, progmodes/compile.el, progmodes/gud.el:
 +      * progmodes/mixal-mode.el, textmodes/bibtex-style.el:
 +      * textmodes/css-mode.el, textmodes/dns-mode.el:
 +      Move autoloaded auto-mode-alist entries to files.el.
 +      * files.el (auto-mode-alist): Move entries here.
 +
 +2010-09-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * isearch.el (isearch-lazy-highlight-cleanup)
 +      (isearch-lazy-highlight-initial-delay)
 +      (isearch-lazy-highlight-interval)
 +      (isearch-lazy-highlight-max-at-a-time, isearch-lazy-highlight-face):
 +      * net/net-utils.el (ipconfig-program-options):
 +      Move aliases to options before the associated definitions.
 +
 +2010-09-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * newcomment.el (comment-normalize-vars): Better test validity of
 +      comment-end-skip.
 +
 +2010-09-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/float-sup.el (float-pi): New name for `pi'.
 +      (float-e): New name for `e'.
 +      (degrees-to-radians, radians-to-degrees):
 +      * calendar/solar.el (solar-longitude):
 +      * calculator.el (calculator-registers, calculator-funcall):
 +      * textmodes/artist.el (artist-spray-random-points):
 +      * play/bubbles.el (bubbles--initialize-images): Use new names.
 +
 +2010-09-23  Eric M. Ludlam  <zappo@gnu.org>
 +
 +      Update to CEDET 1.0's version of EIEIO.
 +
 +      * emacs-lisp/eieio.el (eieio-specialized-key-to-generic-key):
 +      New function.
 +      (eieio-defmethod, eieio-generic-form, eieio-generic-call): Use it.
 +      (eieio-default-eval-maybe): Eval val instead of unquoting only.
 +      (class-precedence-list): If class is nil, return nil.
 +      (eieio-generic-call): If class of first input arg is nil, don't
 +      look up static methods, and do check for primary methods.
 +      (initialize-instance): See if the default needs to be evaluated
 +      during the constructor.
 +      (eieio-perform-slot-validation-for-default): Don't do the check
 +      for values that will eventually be evaluated.
 +      (eieio-eval-default-p): New function.
 +      (eieio-default-eval-maybe): Use it.
 +
 +2010-09-23  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +
 +      * emacs-lisp/eieio.el (eieio-defclass): Allow :c3
 +      method-invocation-order.
 +      (eieio-c3-candidate, eieio-c3-merge-lists): New functions.
 +      (eieio-class-precedence-dfs): Compute class precedence list using
 +      dfs algorithm.
 +      (eieio-class-precedence-bfs): Compute class precedence list using
 +      bfs algorithm.
 +      (eieio-class-precedence-c3): Compute class precedence list using
 +      c3 algorithm.
 +      (class-precedence-list): New function.
 +      (eieiomt-method-list, eieiomt-sym-optimize): Use it.
 +      (inconsistent-class-hierarchy): New error symbol.
 +      (call-next-method): Stow the replacement argument list for future
 +      call-next-method invocations.
 +
 +2010-09-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/appt.el (appt-check): If not displaying the diary,
 +      use (diary 1) to only get the entries we need.
 +      (appt-make-list): Sort diary-list-entries, if we cannot guarantee
 +      that it is in day order.  (Bug#7019)
 +
 +      * calendar/appt.el (appt-check): Rather than showing the diary,
 +      just turn off invisible display, and only if needed.
 +
 +      * calendar/diary-lib.el (diary-list-entries): Doc fix.  (Bug#7019)
 +
 +2010-09-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-file-form-defvar):
 +      (byte-compile-defvar, byte-compile-cl-warn):
 +      Start warnings with lower-case, like the majority.
 +
 +      * files.el (auto-mode-alist): Add .xa, .xw, .xsw for ld-script-mode.
 +
 +      * files.el (auto-mode-alist): Prefer C-mode for .xs.  (Bug#7071)
 +
 +      * progmodes/ld-script.el (auto-mode-alist): Move to files.el.
 +      * files.el (auto-mode-alist): Move ld-script entries here, further down
 +      the list.
 +
 +      * vc/add-log.el: Don't require timezone when compiling.
 +      (timezone-make-date-sortable): Autoload it.
 +      (change-log-sortable-date-at): Don't require timezone.
 +      Use `ignore-errors'.
 +
 +      * comint.el (comint-use-prompt-regexp-instead-of-fields):
 +      Move alias before definition, so it does not need autoloading.
 +
 +      * emulation/crisp.el, emulation/cua-base.el, emulation/edt.el:
 +      * emulation/pc-select.el, emulation/vip.el, international/iso-ascii.el:
 +      * international/kkc.el, international/ogonek.el, mail/feedmail.el:
 +      * net/browse-url.el, net/eudc-vars.el, net/net-utils.el:
 +      * net/rcompile.el, net/rlogin.el, textmodes/enriched.el:
 +      * textmodes/makeinfo.el, textmodes/page-ext.el, textmodes/picture.el:
 +      * textmodes/refer.el, textmodes/spell.el, textmodes/table.el:
 +      * textmodes/tex-mode.el, textmodes/two-column.el:
 +      Remove leading `*' from docs of defcustoms etc.
 +
 +2010-09-23  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/netrc.el (netrc-parse): Remove encrypt.el mentions.
 +
 +2010-09-22  Dan Christensen  <jdc@uwo.ca>
 +
 +      * calendar/time-date.el (date-to-time): Try using parse-time-string
 +      first before using the slower timezone-make-date-arpa-standard.
 +
 +2010-09-22  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * calendar/time-date.el (format-seconds): Comment fix.
 +
 +2010-09-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/package.el (package-menu-mode): `revert-buffer-function'
 +      is not automatically buffer-local.
 +
 +2010-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-debug--describe-cycle): Fix typo.
 +      (smie-indent-comment): Be more careful with comment-start-skip.
 +      (smie-indent-comment-close, smie-indent-comment-inside): New funs.
 +      (smie-indent-functions): Use them.
 +
 +2010-09-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/ange-ftp.el (ange-ftp-skip-msgs): Add "^504 ..." message.
 +
 +2010-09-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * menu-bar.el (menu-bar-set-tool-bar-position): customize-set-variable
 +      tool-bar-position.  Don't modify frame parameters here.
 +      (menu-bar-options-save): Add tool-bar-position.
 +
 +      * tool-bar.el (tool-bar-position): New defcustom (Bug#7049).
 +
 +2010-09-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/reftex-parse.el (reftex-what-macro)
 +      (reftex-context-substring): Let-bind forward-sexp-function to nil
 +      since we don't need/want to treat \begin...\end as a block (bug#7053).
 +
 +      * emacs-lisp/lisp.el (up-list): Don't do nothing silently.
 +
 +      * simple.el (blink-matching-open): Use syntax-class.
 +
 +      * progmodes/pascal.el (pascal-mode): Use define-derived-mode.
 +      Set invisibility spec for pascal's outline mode.
 +      (pascal-outline-change): Clean up calling convention.
 +      (pascal-show-all, pascal-hide-other-defuns): Update callers.
 +
 +      * progmodes/prolog.el (prolog-smie-forward-token)
 +      (prolog-smie-backward-token): New functions.
 +      (prolog-mode-variables): Use them to parse "!," correctly.
 +      Set up smie-blink-matching for ".".
 +
 +      * textmodes/ispell.el (ispell-start, ispell-end): Rename from `start'
 +      and `end'.
 +      (ispell-region, ispell-process-line): Update users.
 +
 +      * textmodes/reftex-parse.el (reftex-what-macro): Don't hardcode
 +      point-min==1.
 +
 +      * textmodes/ispell.el: Fix commenting convention.
 +      (ispell-parse-output): Simplify, use push.
 +      (ispell-region): Use match-string-no-properties.
 +      (ispell-begin-skip-region-regexp): Use mapconcat to simplify.
 +      (ispell-minor-mode): Use define-minor-mode.
 +      (ispell-message): Remove unused var `skip-regexp'.
 +      (ispell-add-per-file-word-list): Use dynamic let-binding.
 +      Try and use the proper comment marker.
 +
 +      * mail/sendmail.el: Fix commenting convention.
 +      (sendmail-send-it): Use line-beginning-position.
 +
 +      * help-fns.el (describe-variable): Add original value, if applicable.
 +
 +2010-09-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * subr.el (y-or-n-p): Remove leftover code from 2010-09-17T13:30:30Z!monnier@iro.umontreal.ca.
 +
 +      * emacs-lisp/smie.el (smie-indent--hanging-p): Use `smie-indent--bolp'.
 +
 +2010-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-bnf-precedence-table): Improve error message.
 +      (smie-debug--prec2-cycle, smie-debug--describe-cycle): New functions.
 +      (smie-prec2-levels): Use them to better diagnose precedence cycles.
 +      (smie-blink-matching-check): Don't signal a mismatch if car is t.
 +      (smie-blink-matching-open): Rewrite to remove assumptions, so that
 +      something like "." can also be a closer.
 +      (smie--associative-p, smie-indent--hanging-p, smie-indent--bolp)
 +      (smie-indent--offset, smie-indent--offset-rule, smie-indent--column):
 +      Rename internal functions to use "--".  Update callers.
 +
 +      * frame.el (make-frame-names-alist): Don't list frames on other displays.
 +
 +      * fringe.el (fringe-styles): New var.
 +      (fringe-mode, fringe-query-style): Use it.
 +
 +2010-09-18  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.8
 +      (sql-login-params): Update widget structure; changes still needed.
 +      (sql-product-alist): Add :list-all and :list-table features for
 +      SQLite, Postgres and MySQL products.
 +      (sql-redirect): Handle default value.
 +      (sql-execute, sql-execute-feature): New functions.
 +      (sql-read-table-name): New function.
 +      (sql-list-all, sql-list-table): New functions.  User API.
 +      (sql-mode-map, sql-interactive-mode-map): Add key definitions
 +      for above functions.
 +      (sql-mode-menu, sql-interactive-mode-menu): Add menu definitions
 +      for above functions.
 +      (sql-postgres-login-params): Add user and database defaults.
 +      (sql-buffer-live-p): Bug fix.
 +      (sql-product-history): New variable.
 +      (sql-read-product): New function.  Use it.
 +      (sql-set-product, sql-product-interactive): Use it.
 +      (sql-connection-history): New variable.
 +      (sql-read-connection): New function.  Use it.
 +      (sql-connect): New function.
 +      (sql-for-each-login): Redesign function interface.
 +      (sql-make-alternate-buffer-name, sql-save-connection): Use it.
 +      (sql-get-login-ext, sql-get-login): Use it.  Handle default values.
 +      (sql-comint): Check for program.  Existing live buffer.
 +      (sql-comint-postgres): Add port parameter.
 +
 +2010-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/warnings.el: Fix commenting convention.
 +      (display-warning): Use special mode and make the buffer read-only.
 +
 +2010-09-18  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-prog.el (calc-read-parse-table-part): Don't "fix" the
 +      empty string when it follows a repeated or optional pattern.
 +
 +2010-09-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * indent.el (indent-according-to-mode): Apply syntax-propertize.
 +      (indent-region): Use indent-according-to-mode.
 +
 +2010-09-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fringe.el (fringe-mode): Doc fix.
 +
 +2010-09-14  Kan-Ru Chen  <kanru@kanru.info>  (tiny change)
 +
 +      * textmodes/nroff-mode.el (nroff-view): Kill old buffer before
 +      refreshing the preview buffer.
 +
 +2010-09-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/tex-mode.el (tex-syntax-propertize-rules)
 +      (latex-syntax-propertize-rules): New consts; replace
 +      tex-font-lock-syntactic-keywords.
 +      (tex-env-mark, latex-env-before-change): New functions.
 +      (latex-electric-env-pair-mode): New minor mode.
 +      (tex-font-lock-verb): Change arguments; do move point.
 +      (tex-font-lock-syntactic-face-function): Adjust to new verbatim
 +      representation as a form of comment.
 +      (tex-font-lock-keywords-1): Remove workaround, now unneeded.
 +      (doctex-syntax-propertize-rules): New const; replaces
 +      doctex-font-lock-syntactic-keywords.
 +      (tex-common-initialization, doctex-mode): Use syntax-propertize-rules.
 +
 +      * progmodes/fortran.el (fortran--font-lock-syntactic-keywords): Remove.
 +      (fortran-make-syntax-propertize-function): New function; replaces
 +      fortran-font-lock-syntactic-keywords.
 +      (fortran-mode): Use it.
 +      (fortran-line-length): Use it.  Improve interactive spec.
 +
 +      * emacs-lisp/syntax.el (syntax-propertize-precompile-rules): New macro.
 +      (syntax-propertize-rules): Add var-ref case.  Fix offset computation
 +      when adding surrounding \(..\).
 +
 +      * progmodes/js.el (js-mode): Fix last change (bug#7054).
 +
 +2010-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * obsolete/old-whitespace.el (whitespace-rescan-files-in-buffers):
 +      Use with-current-buffer.
 +
 +      * isearch.el (isearch-face): Rename from `isearch'.
 +      (isearch-highlight): Use new name.
 +
 +2010-09-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fringe.el (fringe-mode, fringe-query-style): Use 4 pixels, not
 +      5, for `half' width fringes.  (Bug#6933)
 +
 +2010-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-file-form-defvar)
 +      (byte-compile-defvar): "foo/bar" does not lack a prefix.
 +
 +      * subr.el (y-or-n-p): Add the "(y or n)" that was lost somehow.
 +
 +2010-09-17  Stephen Berman  <stephen.berman@gmx.net>
 +
 +      * dframe.el (dframe-reposition-frame-emacs): Use tool-bar-pixel-width
 +      in calculating new frame position.  Add more space between new and
 +      parent on the left (Bug#7048).
 +
 +2010-09-17  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-compat.el (tramp-compat-with-temp-message): Make it a
 +      defmacro.
 +
 +2010-09-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mail/sendmail.el: Add "*unsent mail*" to same-window-buffer-names.
 +
 +      * term/x-win.el (x-cut-buffer-or-selection-value): Define as
 +      obsolete alias for x-selection-value.
 +
 +      * ido.el (ido-make-buffer-list): Fix error in 2010-08-22 merge.
 +
 +2010-09-16  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-cmds.el (tramp-cleanup-connection): Set tramp-autoload
 +      cookie.
 +
 +2010-09-15  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-compat.el (tramp-compat-with-temp-message)
 +      (tramp-compat-font-lock-add-keywords, tramp-compat-process-get)
 +      (tramp-compat-process-put): New defuns.
 +
 +      * net/tramp.el (top):
 +      * net/tramp-gvfs.el (top):
 +      * net/tramp-cache.el (top): Use `tramp-compat-font-lock-add-keywords'.
 +
 +      * net/tramp.el (tramp-progress-reporter-update):
 +      Use `tramp-compat-funcall'.
 +
 +      * net/tramp.el (tramp-process-actions):
 +      * net/tramp-gvfs.el (tramp-handle-vc-registered):
 +      * net/tramp-sh.el (tramp-gvfs-handler-askquestion)
 +      (tramp-get-remote-stat, tramp-get-remote-readlink):
 +      Use `tramp-compat-with-temp-message'.
 +
 +      * net/tramp-sh.el (top): Require 'cl.
 +      (tramp-handle-start-file-process): Use `tramp-compat-process-get'.
 +      (tramp-open-connection-setup-interactive-shell):
 +      Use `tramp-compat-process-put'.
 +
 +2010-09-15  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-engine.el (c-forward-<>-arglist-recur): Correct the
 +      indentation.
 +      (c-forward-<>-arglist-recur): Fix an infinite recursion.
 +
 +2010-09-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-warning-types): New type
 +      `lexical' for warnings related to lexical scoping.
 +      (byte-compile-file-form-defvar, byte-compile-defvar): Warn about
 +      global vars which don't have a prefix and could hence affect lexical
 +      scoping in unrelated files.
 +
 +2010-09-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/imap.el: Revert back to version
 +      cb950ed8ff3e0f40dac437a51b269166f9ffb60d, since some of the changes
 +      seem problematic.
 +
 +2010-09-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * obsolete/old-whitespace.el (whitespace-unload-function):
 +      Explicitly pass `obarray' to `unintern' to avoid a warning.
 +
 +2010-09-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/byte-run.el (set-advertised-calling-convention):
 +      Add `when' argument.  Update callers.
 +
 +      * subr.el (unintern): Declare the obarray arg mandatory.
 +
 +2010-09-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/diary-lib.el (diary-list-entries-hook, diary-sort-entries):
 +      Doc fixes.
 +
 +      * calendar/diary-lib.el (diary-included-files): New variable.
 +      (diary-list-entries): Maybe initialize diary-included-files.
 +      (diary-include-other-diary-files): Append to diary-included-files.
 +      * calendar/appt.el (appt-update-list): Also check the members of
 +      diary-included-files.  (Bug#6999)
 +      (appt-check): Doc fix.
 +
 +2010-09-14  David Reitter  <david.reitter@gmail.com>
 +
 +      * simple.el (line-move-visual): Do not truncate goal column to
 +      integer size.  (Bug#7020)
 +
 +2010-09-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * repeat.el (repeat): Allow repeating when the last event is a click.
 +      Suggested by Drew Adams (bug#6256).
 +
 +2010-09-14  Sascha Wilde  <wilde@sha-bang.de>
 +
 +      * vc/vc-hg.el (vc-hg-state,vc-hg-working-revision):
 +      Replace setting HGRCPATH to "" by some less invasive --config options.
 +
 +2010-09-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * font-lock.el (font-lock-beginning-of-syntax-function):
 +      Mark as obsolete.
 +
 +2010-09-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * menu-bar.el (menu-bar-options-save): Fix handling of menu-bar
 +      and tool-bar modes.  (Bug#6211)
 +      (menu-bar-mode): Move setting of standard-value after the
 +      minor-mode definition, otherwise it seems to have no effect.
 +
 +2010-09-14  Masatake YAMATO  <yamato@redhat.com>
 +
 +      * progmodes/antlr-mode.el (antlr-font-lock-additional-keywords):
 +      Fix typo.  (Bug#6976)
 +
 +2010-09-14  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * whitespace.el: Allow cleaning up blanks without blank
 +      visualization (Bug#6651).  Adjust help window for
 +      whitespace-toggle-options (Bug#6479).  Allow to use fill-column
 +      instead of whitespace-line-column (from EmacsWiki).  New version 13.1.
 +      (whitespace-style): Add new value 'face.  Adjust docstring.
 +      (whitespace-space, whitespace-hspace, whitespace-tab):
 +      Adjust foreground property face.
 +      (whitespace-line-column): Adjust docstring and type declaration.
 +      (whitespace-style-value-list, whitespace-toggle-option-alist)
 +      (whitespace-help-text): Adjust const initialization.
 +      (whitespace-toggle-options, global-whitespace-toggle-options):
 +      Adjust docstring.
 +      (whitespace-display-window, whitespace-interactive-char)
 +      (whitespace-style-face-p, whitespace-color-on): Adjust code.
 +      (whitespace-help-scroll): New fun.
 +
 +2010-09-14  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * calendar/time-date.el (format-seconds): Comment fix.
 +
 +2010-09-13  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.7.
 +      (sql-buffer-live-p): Improve detection.
 +      (sql-find-sqli-buffer, sql-set-sqli-buffer-generally)
 +      (sql-set-sqli-buffer): Use it.
 +      (sql-product-interactive): Run `sql-set-sqli-hook'.
 +      (sql-rename-buffer): Code cleanup.
 +      (sql-redirect, sql-redirect-value): New functions.  More to come.
 +
 +2010-09-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Port tramp-related Makefile changes of 2010-09-08T14:42:54Z!michael.albinus@gmx.de, 2010-09-13T15:17:01Z!michael.albinus@gmx.de to Windows.
 +      * makefile.w32-in (LOADDEFS): Add $(lisp)/net/tramp-loaddefs.el.
 +      (TRAMP_SRC): New macro.
 +      ($(lisp)/net/tramp-loaddefs.el): New target.
 +
 +2010-09-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Major code cleanup.  Split tramp.el into tramp.el and tramp-sh.el.
 +
 +      * Makefile.in (TRAMP_SRC): Remove tramp-fish.el.  Add tramp-sh.el.
 +
 +      * net/tramp.el (top): Don't show loading message.  Require just
 +      'tramp-compat, everything else is required there.
 +      Use `ignore-errors' where appropriate.
 +      (tramp-inline-compress-start-size, tramp-copy-size-limit)
 +      (tramp-terminal-type, tramp-end-of-output)
 +      (tramp-initial-end-of-output, tramp-completion-function-alist-rsh)
 +      (tramp-completion-function-alist-ssh)
 +      (tramp-completion-function-alist-telnet)
 +      (tramp-completion-function-alist-su)
 +      (tramp-completion-function-alist-putty, tramp-remote-path)
 +      (tramp-remote-process-environment, tramp-sh-extra-args)
 +      (tramp-actions-before-shell, tramp-uudecode)
 +      (tramp-perl-file-truename, tramp-perl-file-name-all-completions)
 +      (tramp-perl-file-attributes)
 +      (tramp-perl-directory-files-and-attributes)
 +      (tramp-perl-encode-with-module, tramp-perl-decode-with-module)
 +      (tramp-perl-encode, tramp-perl-decode)
 +      (tramp-vc-registered-read-file-names, tramp-file-mode-type-map)
 +      (tramp-file-name-handler-alist, tramp-make-tramp-temp-file)
 +      (tramp-handle-make-symbolic-link, tramp-handle-load)
 +      (tramp-handle-file-name-as-directory)
 +      (tramp-handle-file-name-directory)
 +      (tramp-handle-file-name-nondirectory, tramp-handle-file-truename)
 +      (tramp-handle-file-exists-p, tramp-handle-file-attributes)
 +      (tramp-do-file-attributes-with-ls)
 +      (tramp-do-file-attributes-with-perl)
 +      (tramp-do-file-attributes-with-stat)
 +      (tramp-handle-set-visited-file-modtime)
 +      (tramp-handle-verify-visited-file-modtime)
 +      (tramp-handle-set-file-modes, tramp-handle-set-file-times)
 +      (tramp-set-file-uid-gid, tramp-remote-selinux-p)
 +      (tramp-handle-file-selinux-context)
 +      (tramp-handle-set-file-selinux-context)
 +      (tramp-handle-file-executable-p, tramp-handle-file-readable-p)
 +      (tramp-handle-file-newer-than-file-p, tramp-handle-file-modes)
 +      (tramp-handle-file-directory-p, tramp-handle-file-regular-p)
 +      (tramp-handle-file-symlink-p, tramp-handle-file-writable-p)
 +      (tramp-handle-file-ownership-preserved-p)
 +      (tramp-handle-directory-file-name, tramp-handle-directory-files)
 +      (tramp-handle-directory-files-and-attributes)
 +      (tramp-do-directory-files-and-attributes-with-perl)
 +      (tramp-do-directory-files-and-attributes-with-stat)
 +      (tramp-handle-file-name-all-completions)
 +      (tramp-handle-file-name-completion, tramp-handle-add-name-to-file)
 +      (tramp-handle-copy-file, tramp-handle-copy-directory)
 +      (tramp-handle-rename-file, tramp-do-copy-or-rename-file)
 +      (tramp-do-copy-or-rename-file-via-buffer)
 +      (tramp-do-copy-or-rename-file-directly)
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-handle-make-directory, tramp-handle-delete-directory)
 +      (tramp-handle-delete-file)
 +      (tramp-handle-dired-recursive-delete-directory)
 +      (tramp-handle-dired-compress-file, tramp-handle-dired-uncache)
 +      (tramp-handle-insert-directory)
 +      (tramp-handle-unhandled-file-name-directory)
 +      (tramp-handle-expand-file-name)
 +      (tramp-handle-substitute-in-file-name)
 +      (tramp-handle-executable-find, tramp-process-sentinel)
 +      (tramp-handle-start-file-process, tramp-handle-process-file)
 +      (tramp-handle-call-process-region, tramp-handle-shell-command)
 +      (tramp-handle-file-local-copy, tramp-handle-file-remote-p)
 +      (tramp-handle-insert-file-contents)
 +      (tramp-handle-insert-file-contents-literally)
 +      (tramp-handle-find-backup-file-name)
 +      (tramp-handle-make-auto-save-file-name, tramp-handle-write-region)
 +      (tramp-vc-registered-file-names, tramp-handle-vc-registered)
 +      (tramp-sh-file-name-handler, tramp-vc-file-name-handler)
 +      (tramp-maybe-send-script, tramp-set-auto-save, tramp-run-test)
 +      (tramp-run-test2, tramp-find-executable, tramp-set-remote-path)
 +      (tramp-find-file-exists-command, tramp-open-shell)
 +      (tramp-find-shell, tramp-barf-if-no-shell-prompt)
 +      (tramp-open-connection-setup-interactive-shell)
 +      (tramp-local-coding-commands, tramp-remote-coding-commands)
 +      (tramp-find-inline-encoding, tramp-call-local-coding-command)
 +      (tramp-inline-compress-commands, tramp-find-inline-compress)
 +      (tramp-compute-multi-hops, tramp-maybe-open-connection)
 +      (tramp-send-command, tramp-wait-for-output)
 +      (tramp-send-command-and-check, tramp-barf-unless-okay)
 +      (tramp-send-command-and-read, tramp-mode-string-to-int)
 +      (tramp-convert-file-attributes, tramp-check-cached-permissions)
 +      (tramp-file-mode-from-int, tramp-file-mode-permissions)
 +      (tramp-shell-case-fold, tramp-make-copy-program-file-name)
 +      (tramp-method-out-of-band-p, tramp-local-host-p)
 +      (tramp-get-remote-path, tramp-get-remote-tmpdir)
 +      (tramp-get-ls-command, tramp-get-ls-command-with-dired)
 +      (tramp-get-test-command, tramp-get-test-nt-command)
 +      (tramp-get-file-exists-command, tramp-get-remote-ln)
 +      (tramp-get-remote-perl, tramp-get-remote-stat)
 +      (tramp-get-remote-readlink, tramp-get-remote-trash)
 +      (tramp-get-remote-id, tramp-get-remote-uid, tramp-get-remote-gid)
 +      (tramp-get-local-uid, tramp-get-local-gid)
 +      (tramp-get-inline-compress, tramp-get-inline-coding): Move to
 +      tramp-sh.el.
 +      (tramp-methods, tramp-default-method-alist)
 +      (tramp-default-user-alist, tramp-foreign-file-name-handler-alist):
 +      Move initialization to tramp-sh.el.
 +      (tramp-temp-name-prefix): Make it a defconst.
 +      (tramp-dissect-file-name): Don't check anymore for multi-hop
 +      methods.
 +      (tramp-debug-outline-regexp): Add a docstring.
 +      (tramp-debug-outline-level): Rename from `tramp-outline-level'.
 +      (tramp-get-debug-buffer): Use it.
 +
 +      * net/tramp-cache.el (top): Set tramp-autoload cookie for
 +      initialization forms.
 +      (tramp-set-connection-property): Don't protect `tramp-message'
 +      call, it isn't necessary any longer.
 +      (tramp-dump-connection-properties): Use `ignore-errors'.
 +
 +      * net/tramp-compat.el (top): Require 'advice, 'format-spec,
 +      'password-cache and 'auth-source.
 +
 +      * net/tramp-gvfs.el (top):
 +      * net/tramp-smb.el (top): Require 'tramp-sh.
 +
 +      * net/tramp-gw.el (tramp-gw-open-network-stream): Use `ignore-errors'.
 +
 +      * net/tramp-sh.el: New file, derived from tramp.el.
 +      (top): Initialize `tramp-methods', `tramp-default-method-alist',
 +      `tramp-default-user-alist', `tramp-foreign-file-name-handler-alist'.
 +      Remove "scp1_old", "scp2_old", "ssh1_old", "ssh2_old".
 +      Use `ignore-errors' where appropriate.
 +      (tramp-sh-file-name-handler-alist): Rename from
 +      `tramp-file-name-handler-alist'.
 +      (tramp-send-command-and-check): Return t or nil.  Remove all
 +      `zerop' checks, where called.
 +      (tramp-handle-set-file-modes)
 +      (tramp-do-copy-or-rename-file-directly)
 +      (tramp-handle-delete-directory, tramp-handle-delete-file)
 +      (tramp-maybe-send-script): Use `tramp-barf-unless-okay'.
 +      (tramp-sh-file-name-handler, tramp-send-command-and-check)
 +      (tramp-get-remote-ln): Set tramp-autoload cookie.
 +
 +      * net/tramp-fish.el: Remove file.
 +
 +2010-09-13  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-file.el (epa-file-insert-file-contents): If visiting, bind
 +      buffer-file-name to avoid file-locking.  (Bug#7026)
 +
 +2010-09-13  Julien Danjou  <julien@danjou.info>
 +
 +      * notifications.el (notifications-notify): Add support for
 +      image-path and sound-name.
 +      (notifications-specification-version): Add this variable.
 +
 +2010-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (y-or-n-p): New function, moved from src/fns.c; use read-key.
 +
 +2010-09-12  Leo  <sdl.web@gmail.com>
 +
 +      * net/rcirc.el (rcirc-server-commands, rcirc-client-commands)
 +      (rcirc-completion-start): New variables.
 +      (rcirc-nick-completions): Rename to rcirc-completions.
 +      (rcirc-nick-completion-start-offset): Delete.
 +      (rcirc-completion-at-point): New function for constructing
 +      completion data for both nicks and irc commands.  Add to
 +      completion-at-point-functions in rcirc mode.
 +      (rcirc-complete): Rename from rcirc-nick-complete; use
 +      rcirc-completion-at-point.
 +      (defun-rcirc-command): Update rcirc-client-commands.
 +
 +2010-09-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-file): Create .elc files
 +      atomically, to avoid parallel build errors.  (Bug#4196)
 +
 +2010-09-11  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.6
 +      (sql-dialect): Synonym for "sql-product".
 +      (sql-find-sqli-buffer, sql-set-sqli-buffer-generally)
 +      (sql-set-sqli-buffer, sql-show-sqli-buffer, sql-interactive-mode):
 +      Set "sql-buffer" to buffer name not buffer object so multiple sql
 +      interactive buffers work properly.  Reverts misguided changes in
 +      earlier work.
 +      (sql-comint): Make sure different buffer name is used if "*SQL*"
 +      buffer is for a different product.
 +      (sql-make-alternate-buffer-name): Fix bug with "sql-database"
 +      login param.
 +      (sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql)
 +      (sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase)
 +      (sql-db2, sql-linter, sql-product-interactive, sql-rename-buffer):
 +      Accept new buffer name or prompt for one.
 +      (sql-port): Default to zero.
 +      (sql-comint-mysql): Handle "sql-port" as a numeric.
 +      (sql-port-history): Delete unused variable.
 +      (sql-get-login): Default "sql-port" to a number.
 +      (sql-product-alist): Correct Postgres prompt and terminator regexp.
 +      (sql-sqlite-program): Dynamically detect presence of "sqlite" or
 +      "sqlite3" executables.
 +      (sql-sqlite-login-params): Add "*.sqlite[23]?" database name pattern.
 +      (sql-buffer-live-p): New function.
 +      (sql-mode-menu, sql-send-string): Use it.
 +      (sql-mode-oracle-font-lock-keywords): Improve SQL*Plus REMARK
 +      syntax pattern.
 +      (sql-mode-postgres-font-lock-keywords): Support Postgres V9.
 +      (sql-mode-sqlite-font-lock-keywords): Hilight sqlite commands.
 +
 +2010-09-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/netrc.el (netrc-credentials): New convenience function.
 +
 +2010-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/texinfo.el (texinfo-syntax-propertize-function): New fun
 +      to replace texinfo-font-lock-syntactic-keywords.
 +      (texinfo-mode): Use it.
 +
 +      * textmodes/tex-mode.el (tex-common-initialization, doctex-mode):
 +      Use syntax-propertize-function.
 +
 +      * textmodes/sgml-mode.el (sgml-syntax-propertize-function): New var to
 +      replace sgml-font-lock-syntactic-keywords.
 +      (sgml-mode): Use it.
 +
 +      * textmodes/reftex.el (font-lock-syntactic-keywords): Don't declare
 +      since we don't use it.
 +
 +      * textmodes/bibtex.el (bibtex-mode): Use syntax-propertize-function.
 +
 +      * progmodes/vhdl-mode.el (vhdl-mode): Use syntax-propertize-function
 +      if available.
 +      (vhdl-fontify-buffer): Adjust.
 +
 +      * progmodes/tcl.el (tcl-syntax-propertize-function): New var to
 +      replace tcl-font-lock-syntactic-keywords.
 +      (tcl-mode): Use it.
 +
 +      * progmodes/simula.el (simula-syntax-propertize-function): New var to
 +      replace simula-font-lock-syntactic-keywords.
 +      (simula-mode): Use it.
 +
 +      * progmodes/sh-script.el (sh-st-symbol): Remove.
 +      (sh-font-lock-close-heredoc, sh-font-lock-open-heredoc): Add eol arg.
 +      (sh-font-lock-flush-syntax-ppss-cache, sh-font-lock-here-doc): Remove.
 +      (sh-font-lock-quoted-subshell): Assume we've already matched $(.
 +      (sh-font-lock-paren): Set syntax-multiline.
 +      (sh-font-lock-syntactic-keywords): Remove.
 +      (sh-syntax-propertize-function): New function to replace it.
 +      (sh-mode): Use it.
 +
 +      * progmodes/ruby-mode.el (ruby-here-doc-beg-re):
 +      Define while compiling.
 +      (ruby-here-doc-end-re, ruby-here-doc-beg-match)
 +      (ruby-font-lock-syntactic-keywords, ruby-comment-beg-syntax)
 +      (syntax-ppss, ruby-in-ppss-context-p, ruby-in-here-doc-p)
 +      (ruby-here-doc-find-end, ruby-here-doc-beg-syntax)
 +      (ruby-here-doc-end-syntax): Only define when
 +      syntax-propertize is not available.
 +      (ruby-syntax-propertize-function, ruby-syntax-propertize-heredoc):
 +      New functions.
 +      (ruby-in-ppss-context-p): Update to new syntax of heredocs.
 +      (electric-indent-chars): Silence bytecompiler.
 +      (ruby-mode): Use prog-mode, syntax-propertize-function, and
 +      electric-indent-chars.
 +
 +      * progmodes/python.el (python-syntax-propertize-function): New var to
 +      replace python-font-lock-syntactic-keywords.
 +      (python-mode): Use it.
 +      (python-quote-syntax): Simplify and adjust to new use.
 +
 +      * progmodes/perl-mode.el (perl-syntax-propertize-function): New fun to
 +      replace perl-font-lock-syntactic-keywords.
 +      (perl-syntax-propertize-special-constructs): New fun to replace
 +      perl-font-lock-special-syntactic-constructs.
 +      (perl-font-lock-syntactic-face-function): New fun.
 +      (perl-mode): Use it.
 +
 +      * progmodes/octave-mod.el (octave-syntax-propertize-sqs): New function
 +      to replace octave-font-lock-close-quotes.
 +      (octave-syntax-propertize-function): New function to replace
 +      octave-font-lock-syntactic-keywords.
 +      (octave-mode): Use it.
 +
 +      * progmodes/mixal-mode.el (mixal-syntax-propertize-function): New var;
 +      replaces mixal-font-lock-syntactic-keywords.
 +      (mixal-mode): Use it.
 +
 +      * progmodes/make-mode.el (makefile-syntax-propertize-function):
 +      New var; replaces makefile-font-lock-syntactic-keywords.
 +      (makefile-mode): Use it.
 +      (makefile-imake-mode): Adjust.
 +
 +      * progmodes/js.el (js--regexp-literal): Define while compiling.
 +      (js-syntax-propertize-function): New var; replaces
 +      js-font-lock-syntactic-keywords.
 +      (js-mode): Use it.
 +
 +      * progmodes/gud.el (gdb-script-syntax-propertize-function): New var;
 +      replaces gdb-script-font-lock-syntactic-keywords.
 +      (gdb-script-mode): Use it.
 +
 +      * progmodes/fortran.el (fortran-mode): Use syntax-propertize-function.
 +      (fortran--font-lock-syntactic-keywords): New var.
 +      (fortran-line-length): Update syntax-propertize-function and
 +      fortran--font-lock-syntactic-keywords.
 +
 +      * progmodes/cperl-mode.el (cperl-mode): Use syntax-propertize-function.
 +
 +      * progmodes/cfengine.el (cfengine-mode):
 +      Use syntax-propertize-function.
 +      (cfengine-font-lock-syntactic-keywords): Remove.
 +
 +      * progmodes/autoconf.el (autoconf-mode):
 +      Use syntax-propertize-function.
 +      (autoconf-font-lock-syntactic-keywords): Remove.
 +
 +      * progmodes/ada-mode.el (ada-set-syntax-table-properties)
 +      (ada-after-change-function, ada-initialize-syntax-table-properties)
 +      (ada-handle-syntax-table-properties): Only define when
 +      syntax-propertize is not available.
 +      (ada-mode): Use syntax-propertize-function.
 +
 +      * font-lock.el (font-lock-syntactic-keywords): Make obsolete.
 +      (font-lock-fontify-syntactic-keywords-region): Move handling of
 +      font-lock-syntactically-fontified to...
 +      (font-lock-default-fontify-region): ...here.
 +      Let syntax-propertize-function take precedence.
 +      (font-lock-fontify-syntactically-region): Cal syntax-propertize.
 +
 +      * emacs-lisp/syntax.el (syntax-propertize-function)
 +      (syntax-propertize-chunk-size, syntax-propertize--done)
 +      (syntax-propertize-extend-region-functions): New vars.
 +      (syntax-propertize-wholelines, syntax-propertize-multiline)
 +      (syntax-propertize--shift-groups, syntax-propertize-via-font-lock)
 +      (syntax-propertize): New functions.
 +      (syntax-propertize-rules): New macro.
 +      (syntax-ppss-flush-cache): Set syntax-propertize--done.
 +      (syntax-ppss): Call syntax-propertize.
 +
 +      * emacs-lisp/regexp-opt.el (regexp-opt-depth): Skip named groups.
 +
 +2010-09-10  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-init-process): Improve comments.
 +      XEmacs compatibility changes regarding (add-hook) 'local option
 +      and (set-process-query-on-exit-flag).
 +
 +2010-09-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-cache.el (tramp-parse-connection-properties):
 +      Set tramp-autoload cookie.
 +
 +2010-09-09  Glenn Morris  <rgm@gnu.org>
 +
 +      * image.el (imagemagick-types-inhibit): Add :type, :version, :group.
 +      (imagemagick-register-types): Doc fix.
 +
 +2010-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/octave-mod.el (electric-indent-chars): Silence bytecomp.
 +
 +      * progmodes/js.el (require): Require is already "eval-and-compile".
 +      (js--re-search-forward): Avoid `eval'.  Preserve the error data.
 +      (js--re-search-backward): Use js--re-search-forward.
 +
 +      * progmodes/fortran.el (fortran-line-length): Don't recompute
 +      syntactic keywords redundantly a second time.
 +
 +      * progmodes/ada-mode.el: Replace "(set '" with setq.
 +      (ada-mode): Simplify.
 +      (ada-create-case-exception, ada-adjust-case-interactive)
 +      (ada-adjust-case-region, ada-format-paramlist, ada-indent-current)
 +      (ada-search-ignore-string-comment, ada-move-to-start)
 +      (ada-move-to-end): Use with-syntax-table.
 +
 +      * font-lock.el (save-buffer-state): Remove `varlist' arg.
 +      (font-lock-unfontify-region, font-lock-default-fontify-region):
 +      Update usage correspondingly.
 +      (font-lock-fontify-syntactic-keywords-region):
 +      Set parse-sexp-lookup-properties buffer-locally here.
 +      (font-lock-fontify-syntactically-region): Remove unused `ppss' arg.
 +
 +      * simple.el (blink-matching-open): Don't burp if we can't find a match.
 +
 +2010-09-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/bytecomp.el (byte-compile-report-ops):
 +      Error if not compiled with -DBYTE_CODE_METER.
 +
 +      * emacs-lisp/bytecomp.el (byte-recompile-directory):
 +      Ignore dir-locals-file.
 +
 +2010-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el (compilation-error-regexp-alist-alist):
 +      Not a const.
 +      (compilation-error-regexp-alist-alist): Rule out ": " in file names
 +      for the `gnu' messages.
 +      (compilation-set-skip-threshold): New command.
 +      (compilation-start): Use \' rather than $.
 +      (compilation-forget-errors): Use clrhash.
 +
 +2010-09-08  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-valid-dictionary-list):
 +      Simplify logic.
 +
 +2010-09-08  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Migrate to Tramp 2.2.  Rearrange load dependencies.
 +      (Bug#1529, Bug#5448, Bug#5705)
 +
 +      * Makefile.in (TRAMP_DIR, TRAMP_SRC): New variables.
 +      ($(TRAMP_DIR)/tramp-loaddefs.el): New target.
 +      (LOADDEFS): Add $(lisp)/net/tramp-loaddefs.el.
 +
 +      * net/tramp.el (top): Remove all other tramp-* loads except
 +      tramp-compat.el.  Remove all changes to tramp-unload-hook for
 +      other tramp-* packages.  Rearrange defun order.  Change calls of
 +      `tramp-compat-call-process', `tramp-compat-decimal-to-octal',
 +      `tramp-compat-octal-to-decimal' to new function names.
 +      (tramp-terminal-type, tramp-initial-end-of-output)
 +      (tramp-methods, tramp-foreign-file-name-handler-alist)
 +      (tramp-tramp-file-p, tramp-completion-mode-p)
 +      (tramp-send-command-and-check, tramp-get-remote-path)
 +      (tramp-get-remote-tmpdir, tramp-get-remote-ln)
 +      (tramp-shell-quote-argument): Set tramp-autoload cookie.
 +      (with-file-property, with-connection-property): Move to
 +      tramp-cache.el.
 +      (tramp-local-call-process, tramp-decimal-to-octal)
 +      (tramp-octal-to-decimal): Move to tramp-compat.el.
 +      (tramp-handle-shell-command): Do not require 'shell.
 +      (tramp-compute-multi-hops): No special handling for tramp-gw-*
 +      symbols.
 +      (tramp-unload-tramp): Do not call `tramp-unload-file-name-handlers'.
 +
 +      * net/tramp-cache.el (top): Require 'tramp.  Add to
 +      `tramp-unload-hook'.
 +      (tramp-cache-data, tramp-get-file-property)
 +      (tramp-set-file-property, tramp-flush-file-property)
 +      (tramp-flush-directory-property, tramp-get-connection-property)
 +      (tramp-set-connection-property, tramp-flush-connection-property)
 +      (tramp-cache-print, tramp-list-connections): Set tramp-autoload
 +      cookie.
 +      (with-file-property, with-connection-property): New defuns, moved
 +      from tramp.el.
 +      (tramp-flush-file-function): Use `with-parsed-tramp-file-name'
 +      macro.
 +
 +      * net/tramp-cmds.el (top): Add to `tramp-unload-hook'.
 +      (tramp-version): Set tramp-autoload cookie.
 +
 +      * net/tramp-compat.el (top): Require 'tramp-loaddefs.  Remove all
 +      changes to tramp-unload-hook for other tramp-* packages.  Add to
 +      `tramp-unload-hook'.
 +      (tramp-compat-decimal-to-octal, tramp-compat-octal-to-decimal)
 +      (tramp-compat-call-process): New defuns, moved from tramp.el.
 +
 +      * net/tramp-fish.el (top) Require just 'tramp.  Add objects to
 +      `tramp-methods' and `tramp-foreign-file-name-handler-alist'.
 +      Add to `tramp-unload-hook'.  Change call of
 +      `tramp-compat-decimal-to-octal' to new function name.
 +      (tramp-fish-method): Make it a defconst.
 +      (tramp-fish-file-name-p): Make it a defsubst.
 +      (tramp-fish-method, tramp-fish-file-name-handler)
 +      (tramp-fish-file-name-p): Set tramp-autoload cookie.
 +
 +      * net/tramp-ftp.el (top) Add objects to `tramp-methods' and
 +      `tramp-foreign-file-name-handler-alist'.  Add to
 +      `tramp-unload-hook'.
 +      (tramp-ftp-method): Make it a defconst.
 +      (tramp-ftp-file-name-p): Make it a defsubst.
 +      (tramp-ftp-method, tramp-ftp-file-name-handler)
 +      (tramp-ftp-file-name-p): Set tramp-autoload cookie.
 +
 +      * net/tramp-gvfs.el (top) Add objects to `tramp-methods' and
 +      `tramp-foreign-file-name-handler-alist'.  Add to
 +      `tramp-unload-hook'.  Change checks, whether package can be
 +      loaded.
 +      (tramp-gvfs-file-name-p): Make it a defsubst.
 +      (tramp-gvfs-methods, tramp-gvfs-file-name-handler)
 +      (tramp-gvfs-file-name-p): Set tramp-autoload cookie.
 +      (tramp-gvfs-handle-file-directory-p): New defun.
 +      (tramp-gvfs-file-name-handler-alist): Use it.
 +
 +      * net/tramp-gw.el (top) Add objects to `tramp-methods' and
 +      `tramp-foreign-file-name-handler-alist'.  Add to
 +      `tramp-unload-hook'.
 +      (tramp-gw-tunnel-method, tramp-gw-default-tunnel-port)
 +      (tramp-gw-socks-method, tramp-gw-default-socks-port): Make it a
 +      defconst.
 +      (tramp-gw-tunnel-method, tramp-gw-socks-method)
 +      (tramp-gw-open-connection): Set tramp-autoload cookie.
 +
 +      * net/tramp-imap.el (top) Require just 'tramp.  Add objects to
 +      `tramp-methods' and `tramp-foreign-file-name-handler-alist'.
 +      Add to `tramp-unload-hook'.  Change checks, whether package can be
 +      loaded.
 +      (tramp-imap-file-name-p): Make it a defsubst.
 +      (tramp-imap-method, tramp-imaps-method)
 +      (tramp-imap-file-name-handler)
 +      (tramp-imap-file-name-p): Set tramp-autoload cookie.
 +
 +      * net/tramp-smb.el (top) Require just 'tramp.  Add objects to
 +      `tramp-methods' and `tramp-foreign-file-name-handler-alist'.
 +      Add to `tramp-unload-hook'.  Change checks, whether package can be
 +      loaded.  Change call of `tramp-compat-decimal-to-octal' to new
 +      function name.
 +      (tramp-smb-tunnel-method): Make it a defconst.
 +      (tramp-smb-file-name-p): Make it a defsubst.
 +      (tramp-smb-method, tramp-smb-file-name-handler)
 +      (tramp-smb-file-name-p): Set tramp-autoload cookie.
 +
 +      * net/tramp-uu.el (top) Add to `tramp-unload-hook'.
 +      (tramp-uuencode-region): Set tramp-autoload cookie.
 +
 +      * net/trampver.el (top) Add to `tramp-unload-hook'.
 +      (tramp-version, tramp-bug-report-address): Set tramp-autoload
 +      cookie.  Update release number.
 +
 +2010-09-07  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-start-process): Make sure original
 +      arg list is properly initialized (Bug#6993, Bug#6994).
 +
 +2010-09-06  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +
 +      * files.el (directory-abbrev-alist): Use \` as default regexp.
 +
 +      * emacs-lisp/rx.el (rx-any): Don't explode ranges that end in special
 +      chars like - or ] (bug#6984).
 +      (rx-any-condense-range): Explode 2-char ranges.
 +
 +2010-09-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * desktop.el (desktop-path): Bump :version after 2009-09-15 change.
 +
 +2010-09-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * textmodes/bibtex.el:
 +      * proced.el: Update to new email for Roland Winkler <winkler@gnu.org>.
 +
 +2010-09-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/imap.el (imap-message-map): Remove optional buffer parameter,
 +      since no callers use it.
 +      (imap-message-get): Ditto.
 +      (imap-message-put): Ditto.
 +      (imap-mailbox-map): Ditto.
 +      (imap-mailbox-put): Ditto.
 +      (imap-mailbox-get): Ditto.
 +      (imap-mailbox-get): Revert last change for this function.
 +
 +2010-09-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/imap.el (imap-fetch-safe): Remove function, and alter all
 +      callers to use `imap-fetch' instead.  According to the comments, this
 +      should be safe, since all other IMAP clients use the 1:* syntax.
 +      (imap-enable-exchange-bug-workaround): Remove.
 +      (imap-debug): Remove -- doesn't seem very useful.
 +
 +2010-09-05  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * net/imap.el (imap-log): New convenience function used throughout
 +      instead of repeating the same code all over the place.
 +
 +2010-09-05  David De La Harpe Golden  <david@harpegolden.net>
 +
 +      * mouse.el (mouse-save-then-kill): Save region to kill-ring
 +      when mouse-drag-copy-region is non-nil (Bug#6956).
 +
 +2010-09-05  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * dired.el (dired-ls-sorting-switches, dired-sort-by-name-regexp):
 +      Improve regexps (Bug#6987).
 +      (dired-sort-toggle): Search more robustly for -t flag.
 +
 +      * files.el (get-free-disk-space): Search more robustly for
 +      "available" column.  Suggested by Ehud Karni
 +      <ehud@unix.mvs.co.il>.
 +
 +2010-09-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * international/uni-bidi.el:
 +      * international/uni-category.el:
 +      * international/uni-combining.el:
 +      * international/uni-decimal.el:
 +      * international/uni-mirrored.el:
 +      * international/uni-name.el: Regenerate.
 +
 +2010-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * electric.el (electric-indent-post-self-insert-function):
 +      Don't reindent with a sloppy indentation function.
 +
 +      * emacs-lisp/syntax.el (syntax-ppss): More sanity check to catch
 +      border case in change-log-mode.
 +
 +2010-09-04  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/compile.el (compilation-error-regexp-alist-alist):
 +      Remove ruby regexp; handle Ruby errors with gcc-include and gnu.
 +      Recognize leading tab in gcc-include regexp.  Ignore names with
 +      leading "from" or "in" in gnu regexp (Bug#6937).
 +
 +2010-09-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Avoid global recursive calls to kill-buffer-hooks; fit into 80 cols.
 +      * textmodes/ispell.el (ispell-process-buffer-name): Remove.
 +      (ispell-start-process): Avoid setq and simplify logic.
 +      (ispell-init-process): Setup kill-buffer-hook locally when needed.
 +      (kill-buffer-hook): Don't use it globally with code that uses
 +      expand-file-name since that may call kill-buffer via
 +      code_conversion_restore.
 +
 +2010-09-04  Noorul Islam K M  <noorul@noorul.com>  (tiny change)
 +
 +      * emacs-lisp/package.el (package-directory-list): Only call
 +      file-name-nondirectory on a string.
 +
 +2010-09-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package--download-one-archive):
 +      Ensure that archive-contents is valid before saving it.
 +      (package-activate-1, package-mark-obsolete, define-package)
 +      (package-compute-transaction, package-list-maybe-add): Use push.
 +
 +2010-09-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Use SMIE's blink-paren for octave-mode.
 +      * progmodes/octave-mod.el (octave-font-lock-close-quotes):
 +      Backslashes do not escape single-quotes, single-quotes do.
 +      (octave-block-else-regexp, octave-block-end-regexp)
 +      (octave-block-match-alist): Remove.
 +      (octave-smie-bnf-table): New var, with old content.
 +      (octave-smie-op-levels): Use it.
 +      (octave-smie-closer-alist): New var.
 +      (octave-mode): Use it.  Setup smie-blink-matching and electric-indent.
 +      (octave-blink-matching-block-open): Remove.
 +      (octave-reindent-then-newline-and-indent, octave-electric-semi)
 +      (octave-electric-space): Let self-insert-command run expand-abbrev and
 +      blink parens.
 +
 +      * electric.el (electricity): New group.
 +      (electric-indent-chars): New var.
 +      (electric-indent-post-self-insert-function): New fun.
 +      (electric-indent-mode): New minor mode.
 +      (electric-pair-skip-self): New custom.
 +      (electric-pair-post-self-insert-function): New function.
 +      (electric-pair-mode): New minor mode.
 +
 +      * calc/calc-aent.el (calcAlg-blink-matching-check): New fun, to replace
 +      calcAlg-blink-matching-open.
 +      (calc-alg-ent-map, calc-alg-ent-esc-map): Initialize in the declaration.
 +      (calc-do-alg-entry): Only touch the part of the keymap that varies.
 +      Use the new blink-matching-check-function.
 +
 +      Provide blink-matching support to SMIE.
 +      * emacs-lisp/smie.el (smie-bnf-closer-alist): New function.
 +      (smie-blink-matching-triggers, smie-blink-matching-inners): New vars.
 +      (smie-blink-matching-check, smie-blink-matching-open): New functions.
 +
 +      * simple.el (newline): Fix last change to properly remove itself from
 +      the hook.
 +
 +2010-09-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (newline): Eliminate optimization.
 +      Use post-self-insert-hook to set hard-newline and things before
 +      running post-self-insert-hook.
 +      (blink-matching-check-mismatch): New function.
 +      (blink-matching-check-function): New variable.
 +      (blink-matching-open): Use them.
 +      Skip back forward over prefix chars skipped by forward-sexp.
 +      Don't check if the parens are backslash escaped.
 +      (blink-paren-post-self-insert-function): Check backslash escaping here.
 +
 +2010-09-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-menu-mode-map):
 +      Change package-menu-revert bindings to revert-buffer.
 +      (package-menu-mode): Set revert-buffer-function.
 +      (package-menu-revert): Doc fix.
 +
 +2010-09-02  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-init-process): Use "~/" as
 +      `default-directory' unless using Ispell per-directory personal
 +      dictionaries and not in a mini-buffer under XEmacs.
 +      (kill-buffer-hook): Do not kill ispell process on exit when
 +      `ispell-process-directory' is "~/".  (Bug#6143)
 +
 +2010-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * simple.el (kill-new): Call interprogram-cut-function with only
 +      one argument.
 +
 +      * term.el (term-mouse-paste): Don't call x-get-cutbuffer.
 +      Remove cut buffer from error message.
 +
 +      * term/x-win.el (x-select-text):
 +      * term/pc-win.el (x-selection-value):
 +      * term/ns-win.el (x-selection-value):
 +      * eshell/em-term.el:
 +      * w32-fns.el (x-get-selection-value):
 +      * mouse-sel.el (mouse-sel-set-selection-function):
 +      * frame.el (display-selections-p): Remove cut-buffer in documentation.
 +
 +      * term/x-win.el: Update documentation for x-last-selected-text-*.
 +      (x-last-selected-text-cut, x-last-selected-text-cut-encoded)
 +      (x-last-cut-buffer-coding, x-cut-buffer-max): Remove.
 +      (x-select-text): Remove argument PUSH, update documentation.
 +      Remove cut-buffer code.
 +      (x-selection-value-internal): Was previously x-selection-value.
 +      (x-selection-value): Rename from x-cut-buffer-or-selection-value.
 +      Update documentation, remove cut-buffer code.
 +      Call x-selection-value-internal.
 +      (x-clipboard-yank): Call x-selection-value-internal.
 +      (x-initialize-window-system): Remove setting of x-cut-buffer-max.
 +
 +      * term/pc-win.el (x-last-selected-text):
 +      x-cut-buffer-or-selection-value renamed to x-selection-value
 +      (x-select-text): Remove argument PUSH, update documentation.
 +
 +      * term/ns-win.el (x-setup-function-keys, ns-last-selected-text):
 +      x-cut-buffer-or-selection-value renamed to x-selection-value
 +      (x-selection-value): Rename from x-cut-buffer-or-selection-value.
 +      (x-select-text): Remove argument PUSH, update documentation.
 +
 +      * emacs-lisp/cl-macs.el (x-get-cutbuffer, x-get-cut-buffer): Remove.
 +
 +      * w32-fns.el (x-last-selected-text):
 +      x-cut-buffer-or-selection-value renamed to x-selection-value.
 +      (x-cut-buffer-max): Remove.
 +      (x-select-text): Remove argument PUSH, update documentation.
 +
 +      * simple.el (interprogram-cut-function): Remove mention of PUSH.
 +
 +      * select.el (x-get-cut-buffer, x-set-cut-buffer): Remove.
 +
 +      * mouse-sel.el (mouse-sel-get-selection-function):
 +      x-cut-buffer-or-selection-value renamed to x-selection-value.
 +      (x-select-text): Remove optional push.
 +
 +2010-09-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (blink-paren-function): Move from C to here.
 +      (blink-paren-post-self-insert-function): New function.
 +      (post-self-insert-hook): Use it.
 +
 +      * emacs-lisp/pcase.el (pcase-split-memq):
 +      Fix overenthusiastic optimisation.
 +      (pcase-u1): Handle the case of a lambda pred.
 +
 +2010-08-31  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule-cmds.el (standard-display-european-internal):
 +      Setup standard-display-table for 8-bit characters by storing 8-bit
 +      characters in the element vector.
 +
 +      * disp-table.el (standard-display-8bit):
 +      Setup standard-display-table for 8-bit characters by storing 8-bit
 +      characters in the element vector.
 +      (standard-display-european): Likewise.
 +
 +2010-08-31  Masatake YAMATO  <yamato@redhat.com>
 +
 +      * textmodes/nroff-mode.el (nroff-view): New command.
 +      (nroff-mode-map): Bind it to C-c C-c.
 +
 +2010-08-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-down-list): New command.
 +
 +      Remove old indentation and navigation code on octave-mode.
 +      * progmodes/octave-mod.el (octave-mode-map): Remap down-list to
 +      smie-down-list rather than add a binding for octave-down-block.
 +      (octave-mark-block, octave-blink-matching-block-open):
 +      Rely on forward-sexp-function.
 +      (octave-fill-paragraph): Don't narrow, so you can use
 +      indent-according-to-mode.
 +      (octave-block-begin-regexp, octave-block-begin-or-end-regexp): Remove.
 +      (octave-in-block-p, octave-re-search-forward-kw)
 +      (octave-re-search-backward-kw, octave-indent-calculate)
 +      (octave-end-as-array-index-p, octave-block-end-offset)
 +      (octave-scan-blocks, octave-forward-block, octave-backward-block)
 +      (octave-down-block, octave-backward-up-block, octave-up-block)
 +      (octave-before-magic-comment-p, octave-indent-line): Remove.
 +
 +2010-08-31  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package--read-archive-file): Just use
 +      `read', to avoid copying an additional string.
 +      (package-menu-mode): Set header-line-format here.
 +      (package-menu-refresh, package-menu-revert): Signal an error if
 +      not in the Package Menu.
 +      (package-menu-package-list): New var.
 +      (package--generate-package-list): Operate on the current buffer;
 +      don't assume that it is *Packages*, since the user may rename it.
 +      Allow persistent package listings and sort keys using
 +      package-menu-package-list and package-menu-package-sort-key.
 +      (package-menu--version-predicate): Fix version calculation.
 +      (package-menu-sort-by-column): Don't select the window.
 +      (package--list-packages): Create the *Packages* buffer.
 +      Set package-menu-package-list-key.
 +      (list-packages): Sorting by status is now the default.
 +      (package-buffer-info): Use match-string-no-properties.
 +      (define-package): Add a &rest argument for future proofing, but
 +      don't use it yet.
 +      (package-install-from-buffer, package-install-buffer-internal):
 +      Merge into a single function, package-install-from-buffer.
 +      (package-install-file): Change caller.
 +
 +      * finder.el: Load finder-inf using `require'.
 +      (finder-list-matches): Sorting by status is now the default.
 +      (finder-compile-keywords): Simpify printing.
 +
 +2010-08-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/octave-mod.el (octave-font-lock-keywords): Use regexp-opt.
 +      (octave-mode-map): Remove special bindings for forward/backward-block
 +      and octave-backward-up-block.  Use smie-close-block.
 +      (octave-continuation-marker-regexp): New var.
 +      (octave-continuation-regexp): Use it.
 +      (octave-operator-table, octave-smie-op-levels)
 +      (octave-operator-regexp, octave-smie-indent-rules): New vars.
 +      (octave-smie-backward-token, octave-smie-forward-token): New funs.
 +      (octave-mode): Use SMIE.
 +      (octave-close-block): Delete.
 +
 +2010-08-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * menu-bar.el (menu-bar-edit-menu) <"Paste">: Check selection in
 +      CLIPBOARD, not in PRIMARY.  (Bug#6944)
 +
 +2010-08-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-indent-offset-rule): Let :parent take
 +      a list of parents.
 +      (smie-indent-column): Allow indirection through variables.
 +
 +      * composite.el (save-buffer-state): Delete, unused.
 +      * font-lock.el (save-buffer-state): Use with-silent-modifications.
 +      (font-lock-default-fontify-region): Use with-syntax-table.
 +      * jit-lock.el (with-buffer-unmodified): Remove.
 +      (with-buffer-prepared-for-jit-lock): Use with-silent-modifications.
 +
 +      Use `declare' in defmacros.
 +      * window.el (save-selected-window):
 +      * subr.el (with-temp-file, with-temp-message, with-syntax-table):
 +      * progmodes/python.el (def-python-skeleton):
 +      * net/dbus.el (dbus-ignore-errors):
 +      * jka-cmpr-hook.el (with-auto-compression-mode):
 +      * international/mule.el (with-category-table):
 +      * emacs-lisp/timer.el (with-timeout):
 +      * emacs-lisp/lisp-mnt.el (lm-with-file):
 +      * emacs-lisp/eieio.el (with-slots):
 +      * emacs-lisp/easymenu.el (easy-menu-define):
 +      * emacs-lisp/debug.el (debugger-env-macro):
 +      * emacs-lisp/cl-compat.el (Multiple-value-bind, Multiple-value-setq)
 +      (Multiple-value-call, Multiple-value-prog1):
 +      * emacs-lisp/cl-seq.el (cl-parsing-keywords, cl-check-key)
 +      (cl-check-test-nokey, cl-check-test, cl-check-match): Move indent and
 +      edebug rule to definition.
 +      * emacs-lisp/lisp-mode.el (save-selected-window)
 +      (with-current-buffer, combine-after-change-calls)
 +      (with-output-to-string, with-temp-file, with-temp-buffer)
 +      (with-temp-message, with-syntax-table, read-if, eval-after-load)
 +      (dolist, dotimes, when, unless):
 +      * emacs-lisp/byte-run.el (inline): Remove indent rule, redundant.
 +
 +2010-08-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * finder.el: Require `package'.
 +      (finder-known-keywords): Tweak descriptions.  Retire `oop' keyword.
 +      (finder-package-info): Var deleted.
 +      (finder-keywords-hash, finder--builtins-alist): New vars.
 +      (finder-compile-keywords): Compute package--builtins and
 +      finder-keywords-hash instead of finder-keywords-hash, respecting
 +      the "Package" header.
 +      (finder-unknown-keywords, finder-list-matches):
 +      Use finder-keywords-hash and package--list-packages.
 +      (finder-mode): Don't set font-lock-defaults.
 +      (finder-exit): We don't use "*Finder-package*" and "*Finder
 +      Category*" buffers anymore.
 +
 +      * emacs-lisp/package.el (package--builtins-base): Var deleted.
 +      (package--builtins): Set default value to nil.
 +      (package-initialize): Load precomputed value of package--builtins
 +      from finder-inf.el.
 +      (package-alist, package-compute-transaction)
 +      (package-download-transaction): Improve docstring.
 +      (package-read-all-archive-contents): Do not change
 +      package--builtins here.
 +      (list-packages): Make package-list-packages an alias for this.
 +      Sort by status by default.
 +      (package--list-packages): Add optional PACKAGES arg.
 +      (describe-package-1): Use font-lock-face property.  For built-in
 +      packages, insert file commentary.
 +      (package--generate-package-list): Rename from
 +      package-list-packages-internal; all callers changed.  Add optional
 +      PACKAGES arg.  Add alphabetical sort fallbacks.
 +      (package-menu--version-predicate, package-menu--status-predicate)
 +      (package-menu--description-predicate)
 +      (package-menu--name-predicate): New functions.
 +
 +      * info.el (Info-finder-find-node): Search package-alist instead of
 +      finder-package-info.
 +
 +2010-08-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el (version-regexp-alist): Don't use "a" and "b" for
 +      "alpha" and "beta".
 +      (version-to-list): Handle versions like "10.3d".
 +
 +2010-08-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/macroexp.el (macroexpand-all-1): Use pcase.
 +      (macroexp-accumulate): Use `declare'.
 +
 +2010-08-27  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * whitespace.el (whitespace-style): Adjust type declaration.
 +
 +2010-08-26  Magnus Henoch  <magnus.henoch@gmail.com>
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass
 +      empty argument to gvfs-copy.
 +
 +2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * net/tramp-compat.el (tramp-compat-delete-file): Rewrite to
 +      handle new TRASH arg of `delete-file'.
 +
 +2010-08-26  Christian Lynbech  <christian.lynbech@tieto.com>  (tiny change)
 +
 +      * net/tramp.el (tramp-handle-insert-directory): Don't use
 +      `forward-word', its default syntax could be changed.
 +
 +2010-08-26  Toru TSUNEYOSHI  <t_tuneyosi@hotmail.com>
 +            Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Implement compression for inline methods.
 +
 +      * net/tramp.el (tramp-inline-compress-start-size): New defcustom.
 +      (tramp-copy-size-limit): Allow also nil.
 +      (tramp-inline-compress-commands): New defconst.
 +      (tramp-find-inline-compress, tramp-get-inline-compress)
 +      (tramp-get-inline-coding): New defuns.
 +      (tramp-get-remote-coding, tramp-get-local-coding): Remove,
 +      replaced by `tramp-get-inline-coding'.
 +      (tramp-handle-file-local-copy, tramp-handle-write-region)
 +      (tramp-method-out-of-band-p): Use `tramp-get-inline-coding'.
 +
 +2010-08-26  Noah Lavine  <noah549@gmail.com>  (tiny change)
 +
 +      Detect ssh 'ControlMaster' argument automatically in some cases.
 +
 +      * net/tramp.el (tramp-detect-ssh-controlmaster): New defun.
 +      (tramp-default-method): Use it.
 +
 +2010-08-26  Karel Klíč  <kklic@redhat.com>
 +
 +      * net/tramp.el (tramp-file-name-for-operation):
 +      Add file-selinux-context.
 +
 +2010-08-26  Łukasz Stelmach  <lukasz.stelmach@iem.pw.edu.pl>  (tiny change)
 +
 +      * play/cookie1.el (read-cookie): Fix off-by-one error (bug#6921).
 +
 +2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (beginning-of-buffer, end-of-buffer): Doc fix
 +      (Bug#6907).
 +
 +2010-08-26  Nathan Weizenbaum  <nweiz@cressida.sea.corp.google.com>  (tiny change)
 +
 +      * progmodes/js.el: Make indentation more customizable (Bug#6914).
 +      (js-paren-indent-offset, js-square-indent-offset)
 +      (js-curly-indent-offset): New options.
 +      (js--proper-indentation): Use them.
 +
 +2010-08-26  Daniel Colascione  <dan.colascione@gmail.com>
 +
 +      * progmodes/sh-script.el (sh-get-indent-info): Use syntax-ppss
 +      instead of inspecting font-lock properties (Bug#6916).
 +
 +2010-08-26  David Reitter  <david.reitter@gmail.com>
 +
 +      * server.el (server-visit-files): Run pre-command-hook and
 +      post-command-hook for each buffer while it is current (Bug#6910).
 +      (server-execute): Do not run hooks here.
 +
 +2010-08-26  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Sync with Tramp 2.1.19.
 +
 +      * net/tramp-cmds.el (tramp-cleanup-all-connections)
 +      (tramp-reporter-dump-variable, tramp-load-report-modules)
 +      (tramp-append-tramp-buffers): Use `tramp-compat-funcall'.
 +      (tramp-bug): Recommend setting of `tramp-verbose' to 9.
 +
 +      * net/tramp-compat.el (top): Do not autoload
 +      `tramp-handle-file-remote-p'.  Load tramp-util.el and tramp-vc.el
 +      only when `start-file-process' is not bound.
 +      (byte-compile-not-obsolete-vars): Define if not bound.
 +      (tramp-compat-funcall): New defmacro.
 +      (tramp-compat-line-beginning-position)
 +      (tramp-compat-line-end-position)
 +      (tramp-compat-temporary-file-directory)
 +      (tramp-compat-make-temp-file, tramp-compat-file-attributes)
 +      (tramp-compat-copy-file, tramp-compat-copy-directory)
 +      (tramp-compat-delete-file, tramp-compat-delete-directory)
 +      (tramp-compat-number-sequence, tramp-compat-process-running-p):
 +      Use it.
 +      (tramp-advice-file-expand-wildcards): Do not use
 +      `tramp-handle-file-remote-p'.
 +      (tramp-compat-make-temp-file): Simplify fallback implementation.
 +      (tramp-compat-copy-file): Add PRESERVE-SELINUX-CONTEXT.
 +      (tramp-compat-copy-tree): Remove function.
 +      (tramp-compat-delete-file): New defun.
 +      (tramp-compat-delete-directory): Provide implementation for older
 +      Emacsen.
 +      (tramp-compat-file-attributes): Handle only
 +      `wrong-number-of-arguments' error.
 +
 +      * net/tramp-fish.el (tramp-fish-handle-copy-file):
 +      Add PRESERVE_SELINUX_CONTEXT.
 +      (tramp-fish-handle-delete-file): Add TRASH arg.
 +      (tramp-fish-handle-directory-files-and-attributes):
 +      Do not use `tramp-fish-handle-file-attributes.
 +      (tramp-fish-handle-file-local-copy)
 +      (tramp-fish-handle-insert-file-contents)
 +      (tramp-fish-maybe-open-connection): Use `with-progress-reporter'.
 +
 +      * net/tramp-gvfs.el (top): Require url-util.
 +      (tramp-gvfs-mount-point): Remove.
 +      (tramp-gvfs-file-name-handler-alist): Add `file-selinux-context'
 +      and `set-file-selinux-context'.
 +      (tramp-gvfs-stringify-dbus-message, tramp-gvfs-send-command)
 +      (tramp-gvfs-handle-file-selinux-context)
 +      (tramp-gvfs-handle-set-file-selinux-context): New defuns.
 +      (with-tramp-dbus-call-method): Format trace message.
 +      (tramp-gvfs-handle-copy-file): Handle PRESERVE-SELINUX-CONTEXT.
 +      (tramp-gvfs-handle-copy-file, tramp-gvfs-handle-rename-file):
 +      Implement backup call, when operation on local files fails.
 +      Use progress reporter.  Flush properties of changed files.
 +      (tramp-gvfs-handle-delete-file): Add TRASH arg.
 +      Use `tramp-compat-delete-file'.
 +      (tramp-gvfs-handle-expand-file-name): Expand "~/".
 +      (tramp-gvfs-handle-make-directory): Make more traces.
 +      (tramp-gvfs-handle-write-region): Protect deleting tmpfile.
 +      (tramp-gvfs-url-file-name): Hexify file name in url.
 +      (tramp-gvfs-fuse-file-name): Take also prefix (like dav shares)
 +      into account for the resulting file name.
 +      (tramp-gvfs-handler-askquestion): Preserve current message, in
 +      order to let progress reporter continue afterwards.  (Bug#6257)
 +      Return dummy mountpoint, when the answer is "no".
 +      See `tramp-gvfs-maybe-open-connection'.
 +      (tramp-gvfs-handler-mounted-unmounted)
 +      (tramp-gvfs-connection-mounted-p): Test also for new mountspec
 +      attribute "default_location".  Set "prefix" property.
 +      Handle default-location.
 +      (tramp-gvfs-mount-spec): Return both prefix and mountspec.
 +      (tramp-gvfs-maybe-open-connection): Test, whether mountpoint
 +      exists.  Raise an error, if not (due to a corresponding answer
 +      "no" in interactive questions, for example).
 +      Use `tramp-compat-funcall'.
 +
 +      * net/tramp-imap.el (top): Autoload `epg-make-context'.
 +      (tramp-imap-handle-copy-file): Add PRESERVE-SELINUX-CONTEXT.
 +      (tramp-imap-do-copy-or-rename-file)
 +      (tramp-imap-handle-insert-file-contents)
 +      (tramp-imap-handle-file-local-copy): Use `with-progress-reporter'.
 +      (tramp-imap-handle-delete-file): Add TRASH arg.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-copy-file):
 +      Add PRESERVE-SELINUX-CONTEXT.
 +      (tramp-smb-handle-copy-file)
 +      (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
 +      (tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
 +      Use `with-progress-reporter'.
 +      (tramp-smb-handle-delete-file): Add TRASH arg.
 +
 +      * net/tramp.el (tramp-methods): Move hostname to the end in all
 +      ssh `tramp-login-args'.  Add `tramp-async-args' attribute where
 +      appropriate.
 +      (tramp-verbose): Describe verbose level 9.
 +      (tramp-completion-function-alist)
 +      (tramp-file-name-regexp, tramp-chunksize)
 +      (tramp-local-coding-commands, tramp-remote-coding-commands)
 +      (with-connection-property, tramp-completion-mode-p)
 +      (tramp-action-process-alive, tramp-action-out-of-band)
 +      (tramp-check-for-regexp, tramp-file-name-p, tramp-equal-remote)
 +      (tramp-exists-file-name-handler): Fix docstring.
 +      (tramp-remote-process-environment): Use `format' instead of
 +      `concat'.  Protect version string by apostroph.
 +      (tramp-shell-prompt-pattern): Do not use a shy group in case of
 +      XEmacs.
 +      (tramp-file-name-regexp-unified)
 +      (tramp-completion-file-name-regexp-unified): On W32 systems, do
 +      not regard the volume letter as remote filename.  (Bug#5447)
 +      (tramp-perl-file-attributes)
 +      (tramp-perl-directory-files-and-attributes): Don't pass "$3".
 +      (tramp-vc-registered-read-file-names): Read input as
 +      here-document, otherwise the command could exceed maximum length
 +      of command line.
 +      (tramp-file-name-handler-alist): Add `file-selinux-context' and
 +      `set-file-selinux-context'.
 +      (tramp-debug-message): Add `tramp-compat-funcall' to ignored
 +      backtrace functions.
 +      (tramp-error-with-buffer): Don't show the connection buffer when
 +      we are in completion mode.
 +      (tramp-progress-reporter-update, tramp-remote-selinux-p)
 +      (tramp-handle-file-selinux-context)
 +      (tramp-handle-set-file-selinux-context, tramp-process-sentinel)
 +      (tramp-connectable-p, tramp-open-shell, tramp-get-remote-trash):
 +      New defuns.
 +      (with-progress-reporter): New defmacro.
 +      (tramp-debug-outline-regexp): New defconst.
 +      (top, tramp-rfn-eshadow-setup-minibuffer)
 +      (tramp-rfn-eshadow-update-overlay, tramp-handle-set-file-times)
 +      (tramp-handle-dired-compress-file, tramp-handle-shell-command)
 +      (tramp-completion-mode-p, tramp-check-for-regexp)
 +      (tramp-open-connection-setup-interactive-shell)
 +      (tramp-compute-multi-hops, tramp-read-passwd, tramp-clear-passwd)
 +      (tramp-time-diff, tramp-coding-system-change-eol-conversion)
 +      (tramp-set-process-query-on-exit-flag, tramp-unload-tramp):
 +      Use `tramp-compat-funcall'.
 +      (tramp-handle-make-symbolic-link): Flush file properties.
 +      (tramp-handle-load, tramp-handle-file-local-copy)
 +      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 +      (tramp-handle-vc-registered, tramp-maybe-send-script)
 +      (tramp-find-shell): Use `with-progress-reporter'.
 +      (tramp-do-file-attributes-with-stat): Add space in format string,
 +      in order to work around a bug in pdksh.  Reported by Gilles Pion
 +      <gpion@lfdj.com>.
 +      (tramp-handle-verify-visited-file-modtime): Do not send a command
 +      when the connection is not established.
 +      (tramp-handle-set-file-times): Simplify the check for utc.
 +      (tramp-handle-directory-files-and-attributes)
 +      (tramp-get-remote-path): Use `copy-tree'.
 +      (tramp-completion-handle-file-name-all-completions): Ensure, that
 +      non remote files are still checked.  Oops.
 +      (tramp-handle-copy-file, tramp-do-copy-or-rename-file):
 +      Handle PRESERVE-SELINUX-CONTEXT.
 +      (tramp-do-copy-or-rename-file): Add progress reporter.
 +      (tramp-do-copy-or-rename-file-directly): Do not use
 +      `tramp-handle-file-remote-p'.
 +      (tramp-do-copy-or-rename-file-out-of-band):
 +      Use `tramp-compat-delete-directory'.
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-compute-multi-hops, tramp-maybe-open-connection):
 +      Use `format-spec-make'.
 +      (tramp-handle-delete-file): Add TRASH arg.
 +      (tramp-handle-dired-uncache): Flush directory cache, not only file
 +      cache.
 +      (tramp-handle-expand-file-name)
 +      (tramp-completion-handle-file-name-all-completions)
 +      (tramp-completion-handle-file-name-completion):
 +      Use `tramp-connectable-p'.
 +      (tramp-handle-start-file-process): Set connection property "vec".
 +      Use it, in order to invalidate file caches.  Check only for
 +      `remote-tty' process property.
 +      Implement tty setting.  (Bug#4604, Bug#6360)
 +      (tramp-file-name-for-operation): Add `call-process-region' and
 +      `set-file-selinux-context'.
 +      (tramp-find-foreign-file-name-handler)
 +      (tramp-advice-make-auto-save-file-name)
 +      (tramp-set-auto-save-file-modes): Remove superfluous check for
 +      `stringp'.  This is done inside `tramp-tramp-file-p'.
 +      (tramp-file-name-handler): Trace 'quit.  Catch the error for some
 +      operations when we are in completion mode.  This gives the user
 +      the chance to correct the file name in the minibuffer.
 +      (tramp-completion-mode-p): Use `non-essential'.
 +      (tramp-handle-file-name-all-completions): Backward/ XEmacs
 +      compatibility: Use `completion-ignore-case' if
 +      `read-file-name-completion-ignore-case' does not exist.
 +      (tramp-get-debug-buffer): Use `tramp-debug-outline-regexp'.
 +      (tramp-find-shell, tramp-open-connection-setup-interactive-shell):
 +      `tramp-open-shell'.
 +      (tramp-action-password): Hide password prompt before next run.
 +      (tramp-process-actions): Widen connection buffer for the trace.
 +      (tramp-open-connection-setup-interactive-shell): Set `remote-tty'
 +      process property.  Trace stty settings if `tramp-verbose' >= 9.
 +      Apply workaround for IRIX64 bug.  Move argument of last
 +      `tramp-send-command' where it belongs to.
 +      (tramp-maybe-open-connection): Use `async-args' and `gw-args' in
 +      front of `login-args'.
 +      (tramp-get-ls-command, tramp-get-ls-command-with-dired): Run tests
 +      on "/dev/null" instead of "/".
 +      (tramp-get-ls-command-with-dired): Make test for "--dired"
 +      stronger.
 +      (tramp-set-auto-save-file-modes): Adapt version check.
 +      (tramp-set-process-query-on-exit-flag): Fix wrong parentheses.
 +      (tramp-handle-process-file): Call the program in a subshell, in
 +      order to preserve working directory.
 +      (tramp-handle-shell-command): Don't use hard-wired "/bin/sh" but
 +      `tramp-remote-sh' from `tramp-methods'.
 +      (tramp-get-ls-command): Make test for "--color=never" stronger.
 +      (tramp-check-for-regexp): Use (forward-line 1).
 +
 +      * net/trampver.el: Update release number.
 +
 +2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * help.el (help-map): Bind `C-h P' to describe-package.
 +
 +      * menu-bar.el (menu-bar-describe-menu): Add describe-package.
 +
 +      * emacs-lisp/package.el (package-refresh-contents): Catch errors
 +      when downloading archives.
 +      (describe-package-1): Add package commentary.
 +      (package-install-button-action): New function.
 +      (package-menu-mode-map): Bind ? to package-menu-describe-package.
 +      (package-menu-view-commentary): Function removed.
 +      (package-list-packages-internal): Hide the `package' package too.
 +
 +2010-08-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/misc-lang.el ("Arabic"): New language environment.
 +      Setup composition-function-table for Arabic characters.
 +
 +      * international/fontset.el (setup-default-fontset): Fix typo for
 +      arabic OTF spec (fini->fina).
 +
 +2010-08-25  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * menu-bar.el (menu-bar-set-tool-bar-position): Set frame parameter
 +      on all frames.
 +
 +2010-08-24  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * whitespace.el: Allow cleaning up blanks without blank
 +      visualization (Bug#6651).  Adjust help window for
 +      whitespace-toggle-options (Bug#6479).  Allow to use fill-column
 +      instead of whitespace-line-column (from EmacsWiki).  New version
 +      13.1.
 +      (whitespace-style): Add new value 'face.  Adjust docstring.
 +      (whitespace-space, whitespace-hspace, whitespace-tab):
 +      Adjust foreground property face.
 +      (whitespace-line-column): Adjust docstring and type declaration.
 +      (whitespace-style-value-list, whitespace-toggle-option-alist)
 +      (whitespace-help-text): Adjust const initialization.
 +      (whitespace-toggle-options, global-whitespace-toggle-options):
 +      Adjust docstring.
 +      (whitespace-display-window, whitespace-interactive-char)
 +      (whitespace-style-face-p, whitespace-color-on): Adjust code.
 +      (whitespace-help-scroll): New fun.
 +
 +2010-08-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (list-packages): Alias for
 +      package-list-packages.
 +
 +2010-08-24  Kevin Ryde  <user42@zip.com.au>
 +
 +      * textmodes/flyspell.el (flyspell-check-tex-math-command): Doc fix
 +      (Bug#5651).
 +
 +      * progmodes/ruby-mode.el (ruby): Add defgroup.
 +
 +2010-08-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/python.el: Add Ipython support (Bug#5390).
 +      (python-shell-prompt-alist)
 +      (python-shell-continuation-prompt-alist): New options.
 +      (python--set-prompt-regexp): New function.
 +      (inferior-python-mode, run-python, python-shell):
 +      Require ansi-color.  Use python--set-prompt-regexp to set the comint
 +      prompt based on the Python interpreter.
 +      (python--prompt-regexp): New var.
 +      (python-check-comint-prompt)
 +      (python-comint-output-filter-function): Use it.
 +      (run-python): Use a pipe (Bug#5694).
 +
 +2010-08-24  Fabian Ezequiel Gallina  <galli.87@gmail.com>  (tiny change)
 +
 +      * progmodes/python.el (python-send-region): Send a different
 +      Python command if Ipython is in use.
 +      (python-check-version): Use a Python command to find the version.
 +
 +2010-08-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-yank-primary): Avoid setting primary when
 +      deactivating the mark (Bug#6872).
 +
 +2010-08-23  Chris Foote  <chris@foote.com.au>  (tiny change)
 +
 +      * progmodes/python.el (python-block-pairs): Allow use of "finally"
 +      with "else" (Bug#3991).
 +
 +2010-08-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/dbus.el: Accept UNIX domain sockets as bus address.
 +      (top): Don't initialize `dbus-registered-objects-table' anymore,
 +      this is done in dbusbind,c.
 +      (dbus-check-event): Adapt test for bus.
 +      (dbus-return-values-table, dbus-unregister-service)
 +      (dbus-event-bus-name, dbus-introspect, dbus-register-property):
 +      Adapt doc string.
 +
 +2010-08-23  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * ido.el (ido-use-virtual-buffers): Fix typo in docstring.
 +
 +2010-08-22  Juri Linkov  <juri@jurta.org>
 +
 +      * simple.el (read-extended-command): New function with the logic
 +      for `completing-read' moved to Elisp from `execute-extended-command'.
 +      Use `function-called-at-point' in `minibuffer-default-add-function'
 +      to get a command name for M-n (bug#5364, bug#5214).
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * startup.el (command-line-1): Issue warning for ignored arguments
 +      --unibyte, etc (Bug#6886).
 +
 +2010-08-22  Leo  <sdl.web@gmail.com>
 +
 +      * net/rcirc.el (rcirc-add-or-remove): Accept a list of elements.
 +      (ignore, bright, dim, keyword): Split list of nicknames before
 +      passing to rcirc-add-or-remove (Bug#6894).
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix (Bug#6880).
 +
 +2010-08-22  Leo  <sdl.web@gmail.com>
 +
 +      Fix buffer-list rename&refresh after killing a buffer in ido.
 +      * ido.el: Revert Óscar's.
 +      (ido-kill-buffer-at-head): Exit the minibuffer with ido-exit=refresh.
 +      Remember the buffers at head, rather than their name.
 +      * iswitchb.el (iswitchb-kill-buffer): Re-make the list.
 +
 +2010-08-22  Kirk Kelsey  <kirk.kelsey@0x4b.net>  (tiny change)
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/make-mode.el (makefile-fill-paragraph): Account for the
 +      extra backslash added to each line (bug#6890).
 +
 +2010-08-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (read-key): Don't echo keystrokes (bug#6883).
 +
 +2010-08-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * menu-bar.el (menu-bar-games-menu): Add landmark.
 +
 +2010-08-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * align.el (align-regexp): Make group and spacing arguments
 +      use the interactive defaults when non-interactive.  (Bug#6698)
 +
 +      * mail/rmail.el (rmail-forward): Replace mail-text-start with its
 +      expansion, so as not to need sendmail.
 +      (mail-text-start): Remove declaration.
 +      (rmail-retry-failure): Require sendmail.
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el (read-key): Don't hide the menu-bar entries (bug#6881).
 +
 +2010-08-22  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * progmodes/flymake.el (flymake-start-syntax-check-process):
 +      Use `start-file-process' in order to let it run also on remote hosts.
 +
 +2010-08-22  Kenichi Handa  <handa@m17n.org>
 +
 +      * files.el: Add `word-wrap' as safe local variable.
 +
 +2010-08-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * woman.el (woman-translate): Case matters.  (Bug#6849)
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (kill-region): Doc fix (Bug#6787).
 +
 +2010-08-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/diary-lib.el (diary-header-line-format):
 +      Fit it to the window, not the frame.
 +
 +2010-08-22  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * subr.el (ignore-errors): Add debug declaration.
 +
 +2010-08-22  Geoff Gole  <geoffgole@gmail.com>  (tiny change)
 +
 +      * whitespace.el (whitespace-color-off): Remove post-command-hook
 +      locally.
 +
 +2010-08-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc/add-log.el (add-log-file-name): Don't get confused by symlinks.
 +
 +2010-08-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (custom-group-value-create): Add extra newline
 +      before end line (Bug#6876).
 +
 +2010-08-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-save-then-kill): Don't save region to kill ring
 +      when extending it.  Before killing on the second click, check if
 +      the buffer is the correct one.  Doc fix.
 +      (mouse-secondary-save-then-kill): Allow usage without first
 +      calling mouse-start-secondary, by defaulting to point.  Don't save
 +      an empty secondary selection.  Doc fix.
 +
 +2010-08-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +
 +      * whitespace.el: Fix slow cursor movement (Bug#6172).  Reported by
 +      Christoph Groth <cwg@falma.de> and Liu Xin <x_liu@neusoft.com>.
 +      New version 13.0.
 +      (whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp):
 +      Adjust initialization.
 +      (whitespace-bob-marker, whitespace-eob-marker)
 +      (whitespace-buffer-changed): New vars.
 +      (whitespace-cleanup, whitespace-color-on, whitespace-color-off)
 +      (whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp)
 +      (whitespace-post-command-hook, whitespace-display-char-on):
 +      Adjust code.
 +      (whitespace-looking-back, whitespace-buffer-changed): New funs.
 +      (whitespace-space-regexp, whitespace-tab-regexp): Fun eliminated.
 +
 +2010-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * files.el (locate-file-completion-table): Only list the .el and .elc
 +      extensions if there's no other choice (bug#5955).
 +
 +      * facemenu.el (facemenu-self-insert-data): New var.
 +      (facemenu-post-self-insert-function, facemenu-set-self-insert-face):
 +      New functions.
 +      (facemenu-add-face): Use them.
 +
 +      * simple.el (blink-matching-open): Obey forward-sexp-function.
 +
 +2010-08-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (prog-mode-map): New var.
 +      (prog-indent-sexp): New command.
 +
 +      * progmodes/octave-mod.el (octave-mode-menu): Make toggle buttons.
 +
 +      * progmodes/prolog.el (smie): Require.
 +
 +      * emacs-lisp/smie.el (smie-default-backward-token)
 +      (smie-default-forward-token): Strip properties.
 +      (smie-next-sexp): Be more careful with associative operators.
 +      (smie-forward-sexp-command): Generalize.
 +      (smie-backward-sexp-command): Simplify.
 +      (smie-closer-alist): New var.
 +      (smie-close-block): New command.
 +      (smie-indent-debug-log): New var.
 +      (smie-indent-offset-rule): Add a few more cases.
 +      (smie-indent-column): New function.
 +      (smie-indent-after-keyword): Use it.
 +      (smie-indent-keyword): Use it.
 +      Fix up the opener code's point position.
 +      (smie-indent-comment): Only applies at BOL.
 +      (smie-indent-debug): New command.
 +
 +      * emacs-lisp/autoload.el (make-autoload): Preload the macros's
 +      declarations that are useful before running the macro.
 +
 +2010-08-18  Joakim Verona  <joakim@verona.se>
 +
 +      * image.el (imagemagick-types-inhibit): New variable.
 +      (imagemagick-register-types): New function.
 +      * image-mode.el (image-transform-properties): New function.
 +      (image-transform-set-scale, image-transform-fit-to-height)
 +      (image-transform-set-rotation, image-transform-set-resize)
 +      (image-transform-fit-to-width, image-transform-fit-to-height):
 +      New functions.
 +      (image-toggle-display-image): Support image transforms.
 +
 +2010-08-18  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * image.el (create-animated-image): Don't add heuristic mask to image
 +      (Bug#6839).
 +
 +2010-08-18  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * term/ns-win.el (ns-get-pasteboard, ns-set-pasteboard):
 +      Use QCLIPBOARD instead of QPRIMARY (Bug#6677).
 +
 +2010-08-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/lisp.el (up-list): Obey forward-sexp-function if set.
 +
 +      Font-lock '...' strings, plus various simplifications and fixes.
 +      * progmodes/octave-mod.el (octave-font-lock-keywords): Use regexp-opt.
 +      (octave-font-lock-close-quotes): New function.
 +      (octave-font-lock-syntactic-keywords): New var.
 +      (octave-mode): Use it.  Set beginning-of-defun-function.
 +      (octave-mode-map): Don't override the <foo>-defun commands.
 +      (octave-mode-menu): Pass it directly to easy-menu-define;
 +      remove (now generic) <foo>-defun commands; use info-lookup-symbol.
 +      (octave-block-match-alist): Fix up last change so that
 +      octave-close-block uses the more specific keyword.
 +      (info-lookup-mode): Silence byte-compiler.
 +      (octave-beginning-of-defun): Not interactive any more.
 +      Optimize slightly.
 +      (octave-end-of-defun, octave-mark-defun, octave-in-defun-p): Remove.
 +      (octave-indent-defun, octave-send-defun): Use mark-defun instead.
 +      (octave-completion-at-point-function): Make sure point is within
 +      beg..end.
 +      (octave-reindent-then-newline-and-indent):
 +      Use reindent-then-newline-and-indent.
 +      (octave-add-octave-menu): Remove.
 +
 +2010-08-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * mail/emacsbug.el (report-emacs-bug-insert-to-mailer)
 +      (report-emacs-bug-can-use-xdg-email): New functions.
 +      (report-emacs-bug): Set can-xdg-email to result of
 +      report-emacs-bug-can-use-xdg-email.  If can-xdg-email bind
 +      \C-cm to report-emacs-bug-insert-to-mailer and add help text
 +      about it.
 +
 +      * net/browse-url.el (browse-url-default-browser): Add cond
 +      for browse-url-xdg-open.
 +      (browse-url-can-use-xdg-open, browse-url-xdg-open): New functions.
 +
 +2010-08-17  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/cc-engine.el (c-new-BEG, c-new-END)
 +      (c-fontify-recorded-types-and-refs): Define for compiler.
 +      * progmodes/cc-mode.el (c-new-BEG, c-new-END): Move definitions
 +      before use.
 +
 +      * calendar/icalendar.el (icalendar--convert-recurring-to-diary):
 +      Fix format call.
 +
 +2010-08-17  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-make-symbolic-link): Flush file
 +      properties.
 +      (tramp-handle-process-file): Call the program in a subshell, in
 +      order to preserve working directory.
 +      (tramp-action-password): Hide password prompt before next run.
 +      (tramp-process-actions): Widen connection buffer for the trace.
 +
 +2010-08-16  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * net/rcirc.el (rcirc-log-process-buffers): New option.
 +      (rcirc-print): Use it.
 +      (rcirc-generate-log-filename): New function.
 +      (rcirc-log-filename-function): Change default to
 +      rcirc-generate-log-filename (Bug#6828).
 +
 +2010-08-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (deactivate-mark): If select-active-regions is `only',
 +      only set selection for temporarily active regions.
 +
 +      * cus-start.el: Change defcustom for select-active-regions.
 +
 +2010-08-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse--drag-set-mark-and-point): New function.
 +      (mouse-drag-track): Use LOCATION arg to push-mark.
 +      Use mouse--drag-set-mark-and-point to take click-count into
 +      consideration when updating point and mark (Bug#6840).
 +
 +2010-08-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/compile.el (compilation-error-regexp-alist-alist):
 +      Give the Ruby rule a lower priority than Gnu (Bug#6778).
 +
 +2010-08-14  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +
 +      * font-lock.el (lisp-font-lock-keywords-2):
 +      Add combine-after-change-calls, condition-case-no-debug,
 +      with-demoted-errors, and with-silent-modifications (Bug#6025).
 +
 +2010-08-14  Kevin Ryde  <user42@zip.com.au>
 +
 +      * emacs-lisp/copyright.el (copyright-update-year)
 +      (copyright-update): Temporary switch-to-buffer to ensure the
 +      buffer change being queried is visible (Bug#5394).
 +
 +2010-08-14  Tom Tromey  <tromey@redhat.com>
 +
 +      * progmodes/etags.el (tags-file-name): Mark safe if stringp
 +      (Bug#6733).
 +
 +2010-08-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mouse.el (mouse-yank-primary): Fix mouse-2 on MS-Windows and
 +      MS-DOS.  (Bug#6689)
 +
 +2010-08-13  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * menu-bar.el (menu-bar-set-tool-bar-position): New function.
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-left)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-right)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-top)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-bottom):
 +      Call menu-bar-set-tool-bar-position.
 +
 +2010-08-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/octave-mod.el (octave-mode-syntax-table): Use the new "c"
 +      comment style (bug#6834).
 +      * progmodes/scheme.el (scheme-mode-syntax-table):
 +      * emacs-lisp/lisp-mode.el (lisp-mode-syntax-table): Remove spurious
 +      "b" flag in "' 14b" syntax.
 +
 +      * progmodes/octave-mod.el (octave-mode-map): Remove special bindings
 +      for (un)commenting the region and performing completion.
 +      (octave-mode-menu): Use standard commands for help and completion.
 +      (octave-mode-syntax-table): Support %{..%} comments (sort of).
 +      (octave-mode): Use define-derived-mode.
 +      Set completion-at-point-functions and don't set columns.
 +      Don't disable adaptive-fill-regexp.
 +      (octave-describe-major-mode, octave-comment-region)
 +      (octave-uncomment-region, octave-comment-indent)
 +      (octave-indent-for-comment): Remove.
 +      (octave-indent-calculate): Rename from calculate-octave-indent.
 +      (octave-indent-line, octave-fill-paragraph): Update caller.
 +      (octave-initialize-completions): No need to make an alist.
 +      (octave-completion-at-point-function): New function.
 +      (octave-complete-symbol): Use it.
 +      (octave-insert-defun): Use define-skeleton.
 +
 +      * progmodes/octave-mod.el (octave-mode): Set comment-add.
 +      (octave-mode-map): Use comment-dwim (bug#6829).
 +
 +2010-08-12  Antoine Levitt  <antoine.levitt@gmail.com>  (tiny change)
 +
 +      * cus-edit.el (custom-save-variables, custom-save-faces): Fix up
 +      indentation of inserted comment.
 +
 +2010-08-11  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * faces.el (region): Add type gtk that uses gtk colors.
 +
 +      * dynamic-setting.el (dynamic-setting-handle-config-changed-event):
 +      Handle theme-name change.
 +
 +2010-08-10  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.5
 +      (sql-product-alist): Add :prompt-cont-regexp property for several
 +      database products.
 +      (sql-prompt-cont-regexp): New variable.
 +      (sql-output-newline-count, sql-output-by-send):
 +      New variables.  Record number of newlines in input text.
 +      (sql-send-string): Handle multiple filters and count newlines.
 +      (sql-send-magic-terminator): Count terminator newline.
 +      (sql-interactive-remove-continuation-prompt): Filters output to
 +      remove continuation prompts; one for each newline.
 +      (sql-interactive-mode): Set up new variables, prompt regexp and
 +      output filter.
 +      (sql-mode-sqlite-font-lock-keywords): Correct some keywords.
 +      (sql-make-alternate-buffer-name): Correct buffer name in edge cases.
 +
 +2010-08-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/pcase.el: New file.
 +
 +2010-08-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-vc-registered-read-file-names): Read input
 +      as here-document, otherwise the command could exceed maximum
 +      length of command line.
 +      (tramp-handle-vc-registered): Call script accordingly.
 +      Reported by Toru TSUNEYOSHI <t_tuneyosi@hotmail.com>.
 +
 +2010-08-10  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/hebrew.el: Exclude U+05C3 (Hebrew SOF PASUQ) from the
 +      composable pattern.
 +
 +2010-08-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-version-split)
 +      (package--version-first-nonzero, package-version-compare):
 +      Functions removed.
 +      (package-directory-list, package-load-all-descriptors)
 +      (package--built-in, package-activate, define-package)
 +      (package-installed-p, package-compute-transaction)
 +      (package-read-all-archive-contents)
 +      (package--add-to-archive-contents, package-buffer-info)
 +      (package-tar-file-info, package-list-packages-internal):
 +      Use version-to-list and version-list-*.
 +
 +      * emacs-lisp/package-x.el (package-upload-buffer-internal):
 +      Use version-to-list.
 +      (package-upload-buffer-internal): Use version-list-<=.
 +
 +2010-08-09  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/hebrew.el: Exclude U+05BD (Hebrew MAQAF) from the
 +      composable pattern.
 +
 +2010-08-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * tutorial.el (tutorial--default-keys): C-d is now bound to
 +      delete-forward-char (Bug#6826).
 +
 +      * mouse.el (mouse-drag-track): Remove accidentally-removed check
 +      for `double' value of mouse-1-click-follows-link (Bug#6807).
 +
 +2010-08-08  Johan Bockgård  <bojohan@gnu.org>
 +
 +      * replace.el (replace-highlight): Bind isearch-forward and
 +      isearch-error, ensuring that highlighting is updated if the user
 +      switches the search direction (Bug#6808).
 +
 +      * isearch.el (isearch-lazy-highlight-forward): New var.
 +      (isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search):
 +      (isearch-lazy-highlight-update): Use it.
 +
 +2010-08-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/mule.el (define-charset): Store NAME as :base property.
 +      (ctext-non-standard-encodings-table): Pay attention to charset aliases.
 +      (ctext-pre-write-conversion): Sort ctext-standard-encodings by the
 +      current priority.  Force using the designation of the specific
 +      charset by adding `charset' text property.  Improve the whole algorithm.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emulation/pc-select.el (pc-selection-mode-hook)
 +      (copy-region-as-kill-nomark, beginning-of-buffer-mark)
 +      (pc-selection-mode): Fix typos in docstrings.
 +
 +2010-08-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/cyrillic.el: Don't add "microsoft-cp1251" to
 +      ctext-non-standard-encodings-alist here.
 +
 +      * international/mule.el (ctext-non-standard-encodings-alist):
 +      Add "koi8-r" and "microsoft-cp1251".
 +      (ctext-standard-encodings): New variable.
 +      (ctext-non-standard-encodings-table): List only elements for
 +      non-standard encodings.
 +      (ctext-pre-write-conversion): Adjust for the above change.
 +      Check ctext-standard-encodings.
 +
 +      * international/mule-conf.el (compound-text): Doc fix.
 +      (ctext-no-compositions): Doc fix.
 +      (compound-text-with-extensions): Doc fix.
 +
 +2010-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (exchange-dot-and-mark): Mark obsolete, finally.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/which-func.el (which-func-format): Split help-echo text
 +      into lines, like other mode-line tooltips.
 +
 +      * server.el (server-start): When using TCP sockets, force IPv4
 +      and use a literal 127.0.0.1 for localhost.  (Related to bug#6781.)
 +
 +2010-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * bindings.el (complete-symbol): Run completion-at-point as a fallback.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * term.el (term-delimiter-argument-list): Reflow docstring.
 +      (term-read-input-ring, term-write-input-ring, term-send-input)
 +      (term-bol, term-erase-in-display, serial-supported-or-barf):
 +      Fix typos in docstrings.
 +
 +2010-08-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * bindings.el (function-key-map): Add a S-tab => backtab fallback.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * dabbrev.el (dabbrev-completion): Fix typo in docstring.
 +
 +2010-08-08  MON KEY  <monkey@sandpframing.com>  (tiny change)
 +
 +      * emacs-lisp/syntax.el (syntax-ppss-toplevel-pos):
 +      Fix typo in docstring (bug#6747).
 +
 +2010-08-08  Leo  <sdl.web@gmail.com>
 +
 +      * eshell/esh-io.el (eshell-get-target): Better detection of
 +      read-only file (Bug#6762).
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * align.el (align-default-spacing): Doc fix.
 +      (align-region-heuristic, align-regexp): Fix typos in docstrings.
 +
 +2010-08-08  Stephen Peters  <speters@itasoftware.com>
 +
 +      * calendar/icalendar.el
 +      (icalendar--split-value): Fix splitting regexp.  (Bug#6766)
 +      (icalendar--get-weekday-numbers): New.
 +      (icalendar--convert-recurring-to-diary): Handle multiple byday
 +      values in weekly rules.  (Bug#6766)
 +
 +2010-08-08  Ulf Jasper  <ulf.jasper@web.de>
 +
 +      * calendar/icalendar.el (icalendar-uid-format): Doc fix.
 +      (icalendar--create-uid, icalendar-export-region)
 +      (icalendar--parse-summary-and-rest): Code formatting.
 +
 +2010-08-08  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc.el (calc-trail-mode,calc-refresh): Use `face' property
 +      to italicize headers.
 +      (calc-highlight-selections-with-faces): New variable.
 +      (calc-selected-face, calc-nonselected-face): New faces.
 +
 +      * calc/calccomp.el (math-comp-highlight-string): Use
 +      `calc-highlight-selections-with-faces' to determine how to highlight
 +      sub-formulas.
 +
 +      * calc/calc-sel.el (calc-show-selections): Change message to when
 +      using faces to highlight selections.
 +
 +2010-08-07  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el (sql-mode-sqlite-font-lock-keywords):
 +      Add SQLite 3 keywords, functions and datatypes.
 +      (sql-interactive-mode): Remove `comint-process-echoes' set to t
 +      (Bug#6686).
 +
 +2010-08-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (select-active-regions): Move to keyboard.c.
 +      (deactivate-mark): Used saved-region-selection.
 +      (select-active-region): Function removed.
 +      (activate-mark, set-mark, push-mark-command)
 +      (handle-shift-selection): Don't call it.
 +      (keyboard-quit): Avoid adding the region to the window selection.
 +
 +      * mouse.el (mouse-drag-track): Remove hacks to deal with old
 +      select-active-regions implementation.
 +      (mouse-yank-at-click): Doc fix.
 +
 +      * cus-start.el: Add custom declaration for select-active-regions.
 +
 +2010-08-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * simple.el (delete-forward-char): Doc fix.
 +
 +      * tutorial.el (help-with-tutorial): Hack safe file-local variables
 +      after reading the tutorial.
 +
 +2010-08-06  Alan Mackenzie  <bug-cc-mode@gnu.org>
 +
 +      * progmodes/cc-cmds.el (c-mask-paragraph, c-fill-paragraph):
 +      Fix for the case that a C style comment has its delimiters alone on
 +      their respective lines.
 +
 +2010-08-06  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-start-file-process): Set connection
 +      property "vec".
 +      (tramp-process-sentinel): Use it for flushing the cache.
 +      We cannot do it via the process buffer, the buffer could be deleted
 +      already when running the sentinel.
 +
 +2010-08-06  Jürgen Hötzel  <juergen@archlinux.org>  (tiny change)
 +
 +      * comint.el (comint-mode): Make directory tracking functions
 +      functional on remote files.  (Bug#6764)
 +
 +2010-08-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vc/diff-mode.el (diff-mode-shared-map): Bind g to revert-buffer.
 +
 +2010-08-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacs-lisp/find-gc.el (find-gc-source-files):
 +      Rename unexec.c => unexcoff.c.
 +
 +      * emacs-lisp/authors.el (authors-fixed-entries):
 +      Rename unexec.c => unexcoff.c.
 +
 +2010-08-05  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-dired-uncache): Flush directory
 +      cache, not only file cache.
 +      (tramp-process-sentinel): New defun.
 +      (tramp-handle-start-file-process): Use it, in order to invalidate
 +      file caches.
 +
 +2010-08-03  Leo  <sdl.web@gmail.com>
 +
 +      * server.el (server-start): Simplify loop.
 +
 +2010-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * frame.el (screen-height, screen-width, set-screen-width)
 +      (set-screen-height): Remove ancient compatibility aliases.
 +
 +      * textmodes/fill.el (justify-current-line): Don't add 1 to nspaces
 +      when justifying.  It seems useless and harmful for ncols=1 (bug#6738).
 +
 +      * emacs-lisp/timer.el (timer-event-handler): Protect against timers
 +      that change current buffer.
 +
 +2010-08-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * mouse.el (mouse-fixup-help-message): Match "mouse-2" only at the
 +      beginning of the string.  Use `string-match-p'.  (Bug#6765)
 +
 +2010-08-01  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * cus-start.el (x-gtk-use-system-tooltips): New variable.
 +
 +2010-08-01  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package--list-packages): Fix column alignment.
 +      (package--builtins): Tweak descriptions.
 +      (package-print-package): Upcase descriptions if necessary.
 +      Show all built-in packages in font-lock-builtin-face.
 +      (package-list-packages-internal): Omit "emacs" package.
 +      Show status of built-in packages as "built-in".
 +
 +2010-07-31  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-save-then-kill): Doc fix.  Deactivate mark
 +      before killing to preserve the primary selection (Bug#6701).
 +
 +      * term/x-win.el (x-select-text): Doc fix.
 +
 +2010-07-31  Nathaniel Flath  <flat0103@gmail.com>
 +
 +      * progmodes/cc-vars.el (c-offsets-alist, c-inside-block-syms)
 +      (objc-font-lock-extra-types):
 +      * progmodes/cc-mode.el (c-basic-common-init):
 +      * progmodes/cc-langs.el (c-make-mode-syntax-table)
 +      (c++-make-template-syntax-table)
 +      (c-identifier-syntax-modifications, c-symbol-start, c-operators)
 +      (c-<-op-cont-regexp, c->-op-cont-regexp, c-class-decl-kwds)
 +      (c-brace-list-decl-kwds, c-modifier-kwds, c-prefix-spec-kwds-re)
 +      (c-type-list-kwds, c-decl-prefix-re, c-opt-type-suffix-key):
 +      * progmodes/cc-fonts.el (c-make-inverse-face)
 +      (c-basic-matchers-after):
 +      * progmodes/cc-engine.el (c-forward-keyword-clause)
 +      (c-forward-<>-arglist, c-forward-<>-arglist-recur)
 +      (c-forward-name, c-forward-type, c-forward-decl-or-cast-1)
 +      (c-guess-continued-construct, c-guess-basic-syntax):
 +      Enhance Java Mode to handle Java 5.0 (Tiger) and Java 6 (Mustang).
 +      The above functions were modified or created.
 +
 +2010-07-31  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * faces.el (face-all-attributes): Improve documentation (Bug#6767).
 +
 +2010-07-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.el (bidi-paragraph-direction): Define safe local values.
 +
 +      * language/hebrew.el ("Hebrew"): Add TUTORIAL.he to
 +      language-info-alist.  Remove outdated FIXME in a comment.
 +
 +2010-07-31  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-cmds.el (c-mask-paragraph): Fix bug #6688:
 +      Auto-fill broken in C/C++ modes.
 +
 +2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * menu-bar.el (menu-bar-showhide-tool-bar-menu-customize-enable-left)
 +      (menu-bar-showhide-tool-bar-menu-customize-disable)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-right)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-bottom)
 +      (menu-bar-showhide-tool-bar-menu-customize-enable-top): New functions
 +      (menu-bar-showhide-tool-bar-menu): If tool bar is moveable,
 +      make a menu for Options => toolbar that can move it.
 +
 +2010-07-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package-x.el (package--make-rss-entry):
 +      (package-maint-add-news-item, package--update-news)
 +      (package-upload-buffer-internal): New arg ARCHIVE-URL.
 +
 +      * emacs-lisp/package.el (package-archive-url): Rename from
 +      package-archive-id.
 +      (package-install): Doc fix.
 +      (package-download-single, package-download-tar, package-install)
 +      (package-menu-view-commentary): Callers changed.
 +
 +2010-07-29  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-start-file-process): Check only for
 +      `remote-tty' process property.
 +      (tramp-open-shell): Don't check for tty.
 +      (tramp-open-connection-setup-interactive-shell): Set `remote-tty'
 +      process property.
 +
 +      * progmodes/gdb-mi.el (gdb-init-1): Check also for tty on a remote
 +      host.
 +
 +2010-07-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-load-list, package-archives)
 +      (package-archive-contents, package-user-dir)
 +      (package-directory-list, package--builtins, package-alist)
 +      (package-activated-list, package-obsolete-alist): Mark as risky.
 +
 +2010-07-28  Phil Hagelberg  <phil@evri.com>
 +
 +      Add support for non-default package repositories.
 +      * emacs-lisp/package.el (package-archive-base): Var deleted.
 +      (package-archives): New variable.
 +      (package-archive-contents): Doc fix.
 +      (package-load-descriptor): Do nothing if descriptor file is missing.
 +      (package--write-file-no-coding): New function.
 +      (package-unpack-single): Use it.
 +      (package-archive-id): New function.
 +      (package-download-single, package-download-tar)
 +      (package-menu-view-commentary): Use it.
 +      (package-installed-p): Make second argument optional.
 +      (package-read-all-archive-contents): New function.
 +      (package-initialize): Use it.
 +      (package-read-archive-contents): Add ARCHIVE argument.
 +      (package--add-to-archive-contents): New function.
 +      (package-install): Don't call package-read-archive-contents.
 +      (package--download-one-archive): Store archive file in a
 +      subdirectory of package-user-dir.
 +      (package-menu-execute): Remove spurious line movement.
 +
 +2010-07-28  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * cus-start.el (tool-bar-style): Add text-image-horiz.
 +
 +2010-07-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * progmodes/gud.el (gud-common-init): Check for remoteness of
 +      `file', and not of `default-directory'.
 +
 +2010-07-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-methods): Move hostname to the end in all
 +      ssh `tramp-login-args'.
 +      (tramp-verbose): Describe verbose level 9.
 +      (tramp-open-shell): Check for tty if `tramp-verbose' >= 9.
 +      (tramp-open-connection-setup-interactive-shell): Trace stty
 +      settings if `tramp-verbose' >= 9.
 +      (tramp-handle-start-file-process): Implement tty setting.
 +      (Bug#4604, Bug#6360)
 +
 +      * net/tramp-cmds.el (tramp-bug): Recommend setting of
 +      `tramp-verbose' to 9.
 +
 +2010-07-27  Aaron S. Hawley  <ashawley@burlingtontelecom.net>
 +
 +      * emacs-lisp/re-builder.el (reb-re-syntax, reb-lisp-mode)
 +      (reb-lisp-syntax-p, reb-change-syntax, reb-cook-regexp):
 +      Remove references to package `lisp-re' (bug#4369).
 +
 +2010-07-27  Tom Tromey  <tromey@redhat.com>
 +
 +      * progmodes/js.el (js-mode):
 +      * progmodes/make-mode.el (makefile-mode):
 +      * progmodes/simula.el (simula-mode):
 +      * progmodes/tcl.el (tcl-mode): Derive from prog-mode.
 +
 +2010-07-27  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * help-fns.el (find-lisp-object-file-name): Doc fix (bug#6494).
 +
 +      * time.el (display-time-day-and-date): Remove spurious * in docstring.
 +      (display-time-world-buffer-name, display-time-world-mode-map):
 +      Fix typos in docstrings.
 +
 +2010-07-27  Shyam Karanatt  <shyam@swathanthran.in>  (tiny change)
 +
 +      * image-mode.el (image-display-size): New function.
 +      (image-forward-hscroll, image-next-line, image-eol, image-eob)
 +      (image-mode-fit-frame): Use it (Bug#6639).
 +
 +2010-07-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * dired.el (dired-buffers-for-dir): Handle list values of
 +      dired-directory (Bug#6636).
 +
 +2010-07-26  Sam Steingold  <sds@gnu.org>
 +
 +      * mouse.el (mouse-yank-primary, mouse-yank-secondary):
 +      Do not call `x-get-selection' the second time, reuse the value.
 +
 +2010-07-26  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-mail.el (epa-mail-mode-map): Add alternative key bindings
 +      which consist of control chars only.  Suggested by Richard Stallman.
 +
 +2010-07-25  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-file.el (epa-file-insert-file-contents): Check if LOCAL-FILE
 +      exists before passing an error to find-file-not-found-functions
 +      (bug#6723).
 +
 +2010-07-23  Lukas Huonker  <l.huonker@gmail.com>
 +
 +      * play/tetris.el (tetris-tty-colors, tetris-x-colors, tetris-blank):
 +      Remove leading nil element, adjust values.
 +      (tetris-shapes, tetris-shape-scores):
 +      Change representation of shapes and remove some redundancy.
 +      (tetris-get-shape-cell, tetris-shape-width, tetris-draw-next-shape)
 +      (tetris-draw-shape, tetris-erase-shape, tetris-test-shape):
 +      Adjust for working with new representation of shapes.
 +      (tetris-shape-rotations): New function.
 +      (tetris-move-bottom, tetris-move-left, tetris-move-right)
 +      (tetris-rotate-prev, tetris-rotate-next):
 +      Adjust for working with the new version of tetris-test-shape.
 +
 +2010-07-23  Markus Triska  <markus.triska@gmx.at>
 +
 +      * progmodes/ps-mode.el: Use comint (bug#5954).
 +      (ps-run-mode-map): Adapt for comint-mode; omit "\r", [return]..
 +      (ps-mode-other-newline): Simplify.
 +      (ps-run-mode): Derive from comint-mode instead of
 +      fundamental-mode, yielding input history etc.
 +      (ps-run-start, ps-run-quit, ps-run-clear, ps-run-region)
 +      (ps-run-send-string): Adapt for comint-mode.
 +      (ps-run-newline): Remove now unneeded function.
 +
 +2010-07-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-methods): Move hostname to the end in all
 +      plink `tramp-login-args'.
 +
 +2010-07-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-open-shell): New defun.
 +      (tramp-find-shell, tramp-open-connection-setup-interactive-shell):
 +      Use it.
 +
 +2010-07-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-file-name-regexp-unified)
 +      (tramp-completion-file-name-regexp-unified): On W32 systems, do
 +      not regard the volume letter as remote filename.  (Bug#5447)
 +
 +2010-07-23  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * custom.el (custom-declare-variable): Give a clearer error message
 +      when the docstring is missing (bug#6476).
 +
 +2010-07-22  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.4.  Improved Login prompting.
 +      (sql-login-params): New widget definition.
 +      (sql-oracle-login-params, sql-mysql-login-params)
 +      (sql-solid-login-params, sql-sybase-login-params)
 +      (sql-informix-login-params, sql-ingres-login-params)
 +      (sql-ms-login-params, sql-postgres-login-params)
 +      (sql-interbase-login-params, sql-db2-login-params)
 +      (sql-linter-login-params): Use it.
 +      (sql-sqlite-login-params): Use it; Define "database" parameter as
 +      a file name.
 +      (sql-sqlite-program): Change to "sqlite3".
 +      (sql-comint-sqlite): Make sure database name is complete.
 +      (sql-for-each-login): New function.
 +      (sql-connect, sql-save-connection): Use it.
 +      (sql-get-login-ext): New function.
 +      (sql-get-login): Use it.
 +      (sql-make-alternate-buffer-name): Handle :file parameters.
 +
 +2010-07-22  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * dired.el (dired-no-confirm): Document value t and fix defcustom to
 +      accept it (bug#6597).  Suggested by Drew Adams <drew.adams@oracle.com>.
 +
 +2010-07-22  Teemu Likonen  <tlikonen@iki.fi>  (tiny change)
 +
 +      * dired.el (dired-mode-map): Use command remapping (bug#6632).
 +
 +2010-07-22  Lawrence Mitchell  <wence@gmx.li>
 +
 +      * term/vt100.el (vt100-wide-mode): Fix :init-value keyword (bug#6620).
 +
 +2010-07-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-get-ls-command)
 +      (tramp-get-ls-command-with-dired): Run tests on "/dev/null"
 +      instead of "/".
 +
 +2010-07-20  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.3.
 +      (sql-connection-alist): Change keys from symbols to strings;
 +      enhanced the widget definition.
 +      (sql-mode-menu): Add submenu to select connections.
 +      (sql-interactive-mode-menu): Add "Save Connection" item.
 +      (sql-add-product): Fix menu item.
 +      (sql-get-product-feature): Improved error handling.
 +      (sql--alt-buffer-part, sql--alt-if-not-empty): Remove.
 +      (sql-make-alternate-buffer-name): Simplified.
 +      (sql-product-interactive): Handle missing product.
 +      (sql-connect): Support string keys, minor improvements.
 +      (sql-save-connection): New function.
 +      (sql-connection-menu-filter): New function.
 +
 +2010-07-20  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-file-name-handler): Trace 'quit.
 +      (tramp-open-connection-setup-interactive-shell):
 +      Apply workaround for IRIX64 bug.  Move argument of last
 +      `tramp-send-command' where it belongs to.
 +
 +2010-07-20  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-perl-file-attributes)
 +      (tramp-perl-directory-files-and-attributes): Don't pass "$3".
 +      (tramp-maybe-open-connection): Use `async-args' and `gw-args' in
 +      front of `login-args'.
 +
 +2010-07-19  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * time.el (display-time-world-mode): Define with `define-derived-mode'.
 +      Set `show-trailing-whitespace' to nil.
 +      (display-time-world-display): Simplify.
 +
 +2010-07-18  Alan Mackenzie  <acm@muc.de>
 +
 +      Enhance `c-file-style' in file/directory local variables.
 +      * progmodes/cc-mode.el (c-count-cfss): New function.
 +      (c-before-hack-hook): Call `c-set-style' differently according to
 +      whether c-file-style was set in file or directory local
 +      variables.
 +
 +2010-07-18  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.2.
 +      (sql-product, sql-user, sql-database, sql-server, sql-port):
 +      Use defcustom :safe keyword rather than putting safe-local-variable
 +      property.
 +      (sql-password): Use defcustom :risky keyword rather than putting
 +      risky-local-variable property.
 +      (sql-oracle-login-params, sql-sqlite-login-params)
 +      (sql-solid-login-params, sql-sybase-login-params)
 +      (sql-informix-login-params, sql-ingres-login-params)
 +      (sql-ms-login-params, sql-postgres-login-params)
 +      (sql-interbase-login-params, sql-db2-login-params)
 +      (sql-linter-login-params): Add `port' option.
 +      (sql-get-product-feature): Add NO-INDIRECT parameter.
 +      (sql-comint-oracle, sql-comint-sybase)
 +      (sql-comint-informix, sql-comint-sqlite, sql-comint-mysql)
 +      (sql-comint-solid, sql-comint-ingres, sql-comint-ms)
 +      (sql-comint-postgres, sql-comint-interbase, sql-comint-db2)
 +      (sql-comint-linter): Rename sql-connect-* functions to
 +      sql-comint-*.
 +      (sql-product-alist, sql-mode-menu): Rename as above and
 +      :sqli-connect-func to :sqli-comint-func.
 +      (sql-connection): New variable.
 +      (sql-interactive-mode): Set it.
 +      (sql-connection-alist): New variable.
 +      (sql-connect): New function.
 +      (sql--alt-buffer-part, sql--alt-if-not-empty)
 +      (sql-make-alternate-buffer-name): Improved alternative buffer name.
 +
 +2010-07-17  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      * image-mode.el (image-bookmark-make-record): Do not set context
 +      in an image (Bug#6650).
 +
 +2010-07-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (select-active-region): New function.
 +      (push-mark-command, set-mark, activate-mark)
 +      (handle-shift-selection): Use it.
 +      (deactivate-mark): Don't check for size of region.
 +
 +      * mouse.el (mouse-drag-track): Use select-active-region.
 +
 +2010-07-17  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-get-ls-command-with-dired): Make test for
 +      "--dired" stronger.
 +
 +2010-07-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * term/x-win.el (x-select-enable-primary): Change default to nil.
 +      (x-select-enable-clipboard): Add :version keyword.
 +
 +      * mouse.el (mouse-drag-copy-region):
 +      * simple.el (select-active-regions): Likewise.
 +
 +2010-07-16  Reiner Steib  <Reiner.Steib@gmx.de>
 +
 +      * vc/vc.el (vc-coding-system-inherit-eol): New defvar.
 +      (vc-coding-system-for-diff): Use it to decide whether to inherit
 +      from the file the EOL format for reading the diffs of that file.
 +      (Bug#4451)
 +
 +2010-07-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * mail/rmailmm.el (rmail-mime-save): Make the temp buffer
 +      unibyte, so compressed attachments are not compressed again.
 +
 +2010-07-16  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-handle-shell-command): Don't use hard-wired
 +      "/bin/sh" but `tramp-remote-sh' from `tramp-methods'.
 +      (tramp-find-shell): Simplify setting connection property.
 +      (tramp-get-ls-command): Make test for "--color=never" stronger.
 +
 +2010-07-15  Simon South  <ssouth@member.fsf.org>
 +
 +      * progmodes/delphi.el (delphi-previous-indent-of): Indent case
 +      blocks within record declarations (i.e. variant parts) correctly.
 +
 +2010-07-15  Simon South  <ssouth@member.fsf.org>
 +
 +      * progmodes/delphi.el (delphi-token-at): Give newlines precedence
 +      over literal tokens when parsing so newlines aren't "absorbed" by
 +      single-line comments.  Corrects the indentation of case blocks
 +      that have a comment on the first line.
 +
 +2010-07-14  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * bookmark.el (bookmark-load-hook): Fix doc string as suggested
 +      by Drew Adams (Bug#5504).
 +
 +2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xt-mouse.el (xterm-mouse-event-read): Fix for characters > 127
 +      now that Unicode is used (Bug#6594).
 +
 +2010-07-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * term/x-win.el (x-select-enable-clipboard): Default to t.
 +      (x-initialize-window-system): Don't overwrite Paste menu item.
 +
 +      * simple.el (select-active-regions): Default to t.
 +      (push-mark-command): Don't overwrite primary with empty string.
 +
 +      * mouse.el: Bind mouse-2 to mouse-yank-primary.
 +      (mouse-drag-copy-region): Default to nil.
 +
 +      * menu-bar.el (menu-bar-enable-clipboard): Don't overwrite
 +      Cut/Copy/Paste menu bar items.
 +
 +2010-07-13  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      Allow C-w when setting a bookmark in a Gnus Article buffer (Bug#5975).
 +      Patch applied by Karl Fogel.
 +
 +      * bookmark.el (bookmark-set): Don't set `bookmark-yank-point'
 +      and `bookmark-current-buffer' if they have been already set in
 +      another buffer (e.g gnus-art).
 +
 +2010-07-13  Karl Fogel  <kfogel@red-bean.com>
 +            Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      Preparation for setting bookmarks in Gnus article buffers (Bug#5975).
 +
 +      * bookmark.el (bookmark-make-record-default): Allow unneeded
 +      information to be omitted from the record.
 +
 +      Adjust declarations and calls:
 +
 +      * info.el (bookmark-make-record-default): Adjust declaration.
 +      (Info-bookmark-make-record): Adjust call.
 +
 +      * woman.el (bookmark-make-record-default): Adjust declaration.
 +      (woman-bookmark-make-record): Adjust call.
 +
 +      * man.el (bookmark-make-record-default): Adjust declaration.
 +      (Man-bookmark-make-record): Adjust call.
 +
 +      * image-mode.el (bookmark-make-record-default): Adjust declaration.
 +
 +      * doc-view.el (bookmark-make-record-default): Adjust declaration.
 +
 +2010-07-13  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * bookmark.el (bookmark-show-annotation): Use `when' instead of `if'.
 +      This is also from Thierry Volpiatto's patch in bug #6444.  However,
 +      because it was extraneous to the functional change in that patch,
 +      and causes a re-indendation, I am committing it separately.
 +
 +2010-07-13  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      * bookmark.el (bookmark-show-annotation): Ensure annotations show,
 +      e.g. in Info bookmarks, by using `switch-to-buffer-other-window'.
 +      Patch applied by Karl Fogel (Bug#6444).
 +
 +2010-07-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.el (make-frame): Fix typo in 2010-06-30 change (Bug#6625).
 +
 +2010-07-13  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +
 +      * term/ns-win.el: Bind M-~ to 'ns-prev-frame (due to Matthew
 +      Dempsky; bug#5084).  Remove incorrect binding for S-tab.
 +      (ns-alternatives-map): Change S-tab binding to backtab
 +      (bug#6616).
 +
 +      * simple.el (normal-erase-is-backspace-setup-frame): Set mode on
 +      under ns.
 +
 +2010-07-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * language/tai-viet.el ("TaiViet"): Try to fix re-encoding bugs.
 +      (Bug#5806)
 +
 +      * language/tv-util.el (tai-viet-re): Remove format.
 +
 +2010-07-12  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/hebrew.el: Remove no-byte-compile declaration.
 +      Change coding: tag to utf-8.  Register hebrew-shape-gstring in
 +      composition-function-table for 3-character looking back.
 +      (hebrew-font-get-precomposed): New function.
 +      (hebrew-shape-gstring): Utilize precomposed glyphs if available.
 +
 +2010-07-11  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-drag-track): Handle select-active-regions
 +      (Bug#6612).
 +
 +2010-07-11  Magnus Henoch  <magnus.henoch@gmail.com>
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass
 +      empty argument to gvfs-copy.
 +
 +2010-07-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/calendar.el (calendar-week-end-day): New function.
 +      * calendar/cal-tex.el (cal-tex-cursor-month): Remove unused vars.
 +      Respect calendar-week-start-day.  (Bug#6606)
 +      (cal-tex-insert-day-names, cal-tex-insert-blank-days)
 +      (cal-tex-insert-blank-days-at-end): Respect calendar-week-start-day.
 +      (cal-tex-first-blank-p, cal-tex-last-blank-p): Simplify, and
 +      respect calendar-week-start-day.
 +
 +2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (use-region-p): Doc fix (Bug#6607).
 +
 +2010-07-10  Aleksei Gusev  <aleksei.gusev@gmail.com>  (tiny change)
 +
 +      * progmodes/compile.el (compilation-error-regexp-alist-alist):
 +      Add regexps for cucumber and ruby.
 +
 +2010-07-08  Daiki Ueno  <ueno@unixuser.org>
 +
 +      * epa-file.el (epa-file-error, epa-file--find-file-not-found-function)
 +      (epa-file-insert-file-contents): Hack to prevent
 +      find-file from opening empty buffer when decryption failed
 +      (bug#6568).
 +
 +2010-07-07  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-alternate-dictionary):
 +      Use file-readable-p.
 +      Return nil if no word-list is found at default locations.
 +      (ispell-complete-word-dict): Default to nil.
 +      (ispell-command-loop): Use 'word-list' when using lookup-words.
 +      (lookup-words): Use ispell-complete-word-dict or
 +      ispell-alternate-dictionary.  Check for word-list availability
 +      and handle errors if needed with better messages (Bug#6539).
 +      (ispell-complete-word): Use ispell-complete-word-dict or
 +      ispell-alternate-dictionary.
 +
 +2010-07-07  Christoph Scholtes  <cschol2112@gmail.com>
 +
 +      * progmodes/python.el (python-font-lock-keywords): Add Python 2.7
 +      builtins (BufferError, BytesWarning, WindowsError; callables
 +      bin, bytearray, bytes, format, memoryview, next, print; __package__).
 +
 +2010-07-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * play/zone.el (top-level): Do not require timer, tabify, or cl.
 +      (zone-shift-left): Ignore intangibility, and any errors from
 +      forward-char.
 +      (zone-shift-right): Remove no-op end-of-line.  Ignore intangibility.
 +      (zone-pgm-putz-with-case): Use upcase-region rather than inserting,
 +      deleting, and copying text properties.
 +      (zone-line-specs, zone-pgm-stress): Check forward-line exit status.
 +      (zone-pgm-rotate): Handle odd buffers like that of gomoku, where getting
 +      to point-max is hard.
 +      (zone-fret, zone-fill-out-screen): Replace cl's do with dotimes.
 +      (zone-fill-out-screen): Ignore intangibility.
 +
 +2010-07-05  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * menu-bar.el (menu-bar-mode):
 +      * tool-bar.el (tool-bar-mode): Replace default-frame-alist element
 +      if it has been set.
 +
 +      * mouse.el (mouse-drag-track): Call mouse-start-end to handle
 +      word/line selection (Bug#6565).
 +
 +2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * net/dbus.el (dbus-send-signal): Declare function.
 +
 +2010-07-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/dbus.el: Implement signal "PropertiesChanged" (from D-Bus 1.3.1).
 +      (dbus-register-property): New optional argument EMITS-SIGNAL.
 +      (dbus-property-handler): Send signal "PropertiesChanged" if requested.
 +
 +2010-07-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-drag-overlay): Variable deleted.
 +      (mouse-move-drag-overlay, mouse-show-mark): Functions deleted.
 +      (mouse--remap-link-click-p): New function.
 +      (mouse-drag-track): Handle dragging by using temporary Transient
 +      Mark mode, instead of a special overlay.
 +      (mouse-kill-ring-save, mouse-save-then-kill): Don't call
 +      mouse-show-mark.
 +
 +      * mouse-sel.el (mouse-sel-selection-alist): mouse-drag-overlay
 +      deleted.
 +
 +2010-07-02  Juri Linkov  <juri@jurta.org>
 +
 +      * autoinsert.el (auto-insert-alist): Fix readability
 +      by using dotted pair notation for lambda.
 +
 +2010-07-02  Juri Linkov  <juri@jurta.org>
 +
 +      * faces.el (read-face-name): Rename arg `string-describing-default'
 +      to `default'.  Doc fix.  Display the default value in quotes
 +      in the prompt.  With empty input, return the `default' arg,
 +      unless the default value is a string (in which case return nil).
 +      (describe-face): Replace the string `default' arg of `read-face-name'
 +      with the symbol `default'.
 +
 +2010-07-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emulation/viper-cmd.el (viper-delete-backward-char)
 +      (viper-del-backward-char-in-insert)
 +      (viper-del-backward-char-in-replace, viper-change)
 +      (viper-backward-indent): Replace delete-backward-char with
 +      delete-char (Bug#6552).
 +
 +2010-07-01  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ruler-mode.el (ruler--save-header-line-format): Fix typos.
 +
 +2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.el (make-frame): Add default-frame-alist to the PARAMETERS
 +      argument passed to frame-creation-function (Bug#5378).
 +
 +      * faces.el (x-handle-named-frame-geometry)
 +      (x-handle-reverse-video, x-create-frame-with-faces)
 +      (face-set-after-frame-default, tty-create-frame-with-faces):
 +      Don't separately consult default-frame-alist.  It is now passed as the
 +      PARAMETER argument.
 +
 +2010-06-30  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * startup.el (command-line): Don't call tool-bar-setup in a
 +      tty-only build.
 +
 +2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ruler-mode.el (ruler--save-header-line-format): New fun.
 +      (ruler-mode): Use it as a setter function, so as not to overwrite
 +      ruler-mode-header-line-format-old if Ruler mode is on (Bug#5370).
 +
 +2010-06-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * vc/vc.el (vc-deduce-backend): New fun.  Handle diff buffers.
 +      (vc-root-diff, vc-print-root-log, vc-log-incoming)
 +      (vc-log-outgoing): Use it.
 +      (vc-diff-internal): Set diff-vc-backend.
 +
 +      * vc/diff-mode.el (diff-vc-backend): New var.
 +
 +2010-06-28  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * dynamic-setting.el (font-setting-change-default-font):
 +      Remove call to message.
 +
 +2010-06-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * international/quail.el (quail-insert-kbd-layout): Fix the
 +      showing of untranslated characters.
 +
 +2010-06-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * simple.el (delete-active-region): New option.
 +      (delete-backward-char): Implement in Lisp.
 +      (delete-forward-char): New command.
 +
 +      * mouse.el (mouse-region-delete-keys): Delete.
 +      (mouse-show-mark): Simplify.
 +
 +      * bindings.el (global-map): Bind delete and DEL, the former to
 +      delete-forward-char.
 +
 +2010-06-27  Lennart Borgman  <lennart.borgman@gmail.com>
 +
 +      * progmodes/ruby-mode.el (ruby-mode-map): Don't bind TAB.
 +      (ruby-mode): Bind indent-line-function (Bug#5119).
 +
 +2010-06-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * startup.el (command-line): Recognize "0" X resource value.
 +
 +2010-06-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * startup.el (command-line): Use X resources to set the value of
 +      menu-bar-mode and tool-bar-mode, before calling frame-initialize.
 +
 +      * menu-bar.el (menu-bar-mode):
 +      * tool-bar.el (tool-bar-mode): Don't change default-frame-alist.
 +      Set init-value to t.
 +
 +      * frame.el (frame-notice-user-settings): Don't change
 +      default-frame-alist based on menu-bar-mode and tool-bar-mode, or
 +      vice versa (Bug#2249).
 +
 +2010-06-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32-fns.el (w32-convert-standard-filename): Doc fix.
 +
 +2010-06-25  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/flyspell.el (flyspell-check-previous-highlighted-word):
 +      Make sure `flyspell-word' re-checks word after function run (Bug#6504).
 +
 +      * textmodes/ispell.el (ispell-init-process): Make sure ispell and
 +      default directories are expanded (Bug#6143).
 +
 +2010-06-24  Juri Linkov  <juri@jurta.org>
 +
 +      * minibuffer.el (completions-format): Change default from nil to
 +      `horizontal'.  Remove `nil' value from :type.  Doc fix.  (Bug#6459)
 +
 +2010-06-24  Juri Linkov  <juri@jurta.org>
 +
 +      * vc/vc.el (vc-diff-internal): Set `revert-buffer-function'
 +      buffer-locally to lambda that re-runs the vc diff command.
 +      (Bug#6447)
 +
 +2010-06-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * kmacro.el (kmacro-call-macro): Don't issue hint message if the
 +      echo area is in use (Bug#3412).
 +
 +2010-06-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * textmodes/texinfmt.el (texinfo-format-region)
 +      (texinfo-raise-lower-sections, texinfo-format-separate-node)
 +      (texinfo-itemize-item, texinfo-multitable-item, texinfo-alias)
 +      (texinfo-format-option, texinfo-noindent):
 +      Use line-beginning-position and line-end-position.
 +
 +      * calc/calc-aent.el, calc/calc-ext.el, calc/calc-lang.el:
 +      * calc/calc-store.el, calc/calc-units.el, calc/calc.el:
 +      * calc/calccomp.el: Add explicit utf-8 coding cookies to files with
 +      utf-8 characters.
 +
 +2010-06-21  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * play/zone.el (zone-fall-through-ws): Fix next-line ->
 +      forward-line fallout.
 +
 +2010-07-06  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * mouse.el (mouse-appearance-menu): Add docstring.
 +
 +      * help.el (describe-key): Print up-event using key-description.
 +
 +2010-07-03  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/zeroconf.el (zeroconf-resolve-service)
 +      (zeroconf-service-resolver-handler): Use `dbus-byte-array-to-string'.
 +      (zeroconf-publish-service): Use `dbus-string-to-byte-array'.
 +
 +2010-07-03  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +
 +      * net/zeroconf.el (zeroconf-service-remove-hook): New defun.
 +
 +2010-06-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Avoid displaying files with a nil state in vc-dir.
 +      * vc/vc-dir.el (vc-dir-update): Obey the noinsert argument in all
 +      cases that cause insertion.
 +      (vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files
 +      with a nil state.
 +
 +2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xml.el (xml-parse-region): Avoid infloop (Bug#5281).
 +
 +2010-06-29  Leo  <sdl.web@gmail.com>
 +
 +      * emacs-lisp/rx.el (rx): Doc fix.  (Bug#6537)
 +
 +2010-06-27  Oleksandr Gavenko  <gavenkoa@gmail.com>  (tiny change)
 +
 +      * generic-x.el (bat-generic-mode): Fix regexp for command line
 +      switches (Bug#5719).
 +
 +2010-06-27  Masatake YAMATO  <yamato@redhat.com>
 +
 +      * htmlfontify.el (hfy-face-attr-for-class): Use append instead
 +      of nconc to avoid pure storage error (Bug#6239).
 +
 +2010-06-27  Christoph  <cschol2112@googlemail.com>  (tiny change)
 +
 +      * bookmark.el (bookmark-bmenu-2-window, bookmark-bmenu-other-window)
 +      (bookmark-bmenu-other-window-with-mouse): Remove unnecessary
 +      bindings of bookmark-automatically-show-annotations (Bug#6515).
 +
 +2010-06-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * arc-mode.el (archive-zip-extract): Don't quote the file name on
 +      MS-Windows and MS-DOS.  (Bug#6467, Bug#6144)
 +
 +2010-06-24  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +
 +      * comint.el (make-comint, make-comint-in-buffer): Mention return
 +      value in the docstrings.  (Bug#6498)
 +
 +2010-06-24  Yoni Rabkin  <yoni@rabkins.net>
 +
 +      * bs.el (bs-mode-font-lock-keywords): Remove "by" from Dired pattern,
 +      since it is not present when using some non-default switches.
 +
 +2010-06-23  Karl Fogel  <kfogel@red-bean.com>
 +
 +      * simple.el (compose-mail): Fix doc string to refer to
 +      `compose-mail-user-agent-warnings', instead of to the
 +      nonexistent `compose-mail-check-user-agent'.
 +
 +2010-06-21  Alan Mackenzie  <bug-cc-mode@gnu.org>
 +
 +      Fix an indentation bug:
 +
 +      * progmodes/cc-mode.el (c-common-init): Initialise c-new-BEG/END.
 +      (c-neutralize-syntax-in-and-mark-CPP): c-new-BEG/END: Take account
 +      of existing values.
 +
 +      * progmodes/cc-engine.el (c-clear-<-pair-props-if-match-after)
 +      (c-clear->-pair-props-if-match-before): now return t when they've
 +      cleared properties, nil otherwise.
 +      (c-before-change-check-<>-operators): Set c-new-beg/end correctly
 +      by taking account of the existing value.
 +
 +      * progmodes/cc-defs.el
 +      (c-clear-char-property-with-value-function): Fix this to clear the
 +      property rather than overwriting it with nil.
 +
 +2010-06-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-print-package): Add link to
 +      package description via describe-package.
 +      (describe-package-1): List package requirements.  Add button to
 +      perform installation.
 +      (package-menu-describe-package): New command.
 +
 +      * help-mode.el (help-package): New button type.
 +
 +2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el: Move package-list-packages binding to
 +      menu-bar.el.
 +      (describe-package, describe-package-1, package--dir): New funs.
 +      (package-activate-1): Use package--dir.
 +
 +      * emacs-lisp/package-x.el (gnus-article-buffer): Require package.
 +
 +      * help-mode.el (help-package-def): New button type.
 +
 +      * menu-bar.el: Move package-list-packages binding here from
 +      package.el.
 +
 +2010-06-19  Gustav Hållberg  <gustav@gmail.com>  (tiny change)
 +
 +      * descr-text.el (describe-char): Avoid trailing whitespace.  (Bug#6423)
 +
 +2010-06-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/edebug.el (edebug-read-list):
 +      Phase out old-style backquotes.
 +
 +2010-06-17  Juri Linkov  <juri@jurta.org>
 +
 +      * help-mode.el (help-mode): Set buffer-local variable
 +      revert-buffer-function to help-mode-revert-buffer.
 +      (help-mode-revert-buffer): New function.
 +
 +      * info.el (Info-revert-find-node): Check for major-mode Info-mode
 +      before popping to "*info*" (like in other Info functions).
 +      Keep buffer-name in old-buffer-name.  Keep Info-history-forward in
 +      old-history-forward.  Pop to old-buffer-name or "*info*" to
 +      recreate the killed buffer.  Set Info-history-forward from
 +      old-history-forward.
 +      (Info-breadcrumbs-depth): Add :group and :version.
 +
 +2010-06-17  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * emacs-lisp/package.el (package-menu-mode-map): Add a menu.
 +
 +2010-06-17  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-aspell-find-dictionary): Fix regexp
 +      for languages like Portuguese with pt_{BR,PT} and no plain pt.
 +
 +2010-06-17  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs-lisp/package.el (package-menu-mode-map):
 +      Move initialization into declaration.
 +
 +      * menu-bar.el (menu-bar-options-menu): Fix typo in menu entry.
 +
 +2010-06-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs-lisp/package.el (package-archive-base): Point to
 +      elpa.gnu.org.
 +      (package-enable, package-load-list): New defcustoms.
 +      (package-user-dir, package-directory-list): Turn into defcustoms.
 +      Don't include package-user-dir in package-directory-list.
 +      (package--builtins-base): Don't include Emacs as a "package".
 +      (package-subdirectory-regexp): New var.
 +      (package-load-all-descriptors, package-compute-transaction)
 +      (package-download-transaction): Obey package-load-list.
 +      (package-activate-1): Rename from package-do-activate.
 +      (package-list-packages-internal): Check package-load-list.
 +      (package-load-descriptor, package-generate-autoloads)
 +      (package-unpack, package-unpack-single)
 +      (package--read-archive-file, package-delete):
 +      Use expand-file-name.
 +
 +      * emacs-lisp/package-x.el: New file.  Package uploading
 +      functionality split out from package.el.
 +
 +      * startup.el (command-line): Load packages after reading init file.
 +
 +2010-06-17  Tom Tromey  <tromey@redhat.com>
 +
 +      * emacs-lisp/package.el: New file.
 +
 +2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix vc-annotate for renamed files when using Git.
 +      * vc/vc-git.el (vc-git-find-revision): Deal with empty results from
 +      ls-files.  Doe not pass the object as a file name to cat-file, it
 +      is not a file name.
 +      (vc-git-annotate-command): Pass the file name using -- to avoid
 +      ambiguity with the revision.
 +      (vc-git-previous-revision): Pass a relative file name.
 +
 +2010-06-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/js.el (js-mode-map): Use standard capitalization and
 +      ellipses for menu entries.
 +
 +      * wid-edit.el (widget-complete): Doc fix.
 +
 +2010-06-22  Jürgen Hötzel  <juergen@hoetzel.info>  (tiny change)
 +
 +      * wid-edit.el (widget-complete): Fix typo in 2009-12-02 change.
 +
 +2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix annotating other revisions for renamed files in vc-annotate.
 +      * vc/vc-annotate.el (vc-annotate): Add an optional argument for the
 +      VC backend.  Use it when non-nil.
 +      (vc-annotate-warp-revision): Pass the VC backend to vc-annotate.
 +      (Bug#6487).
 +
 +      Fix vc-annotate-show-changeset-diff-revision-at-line for git.
 +      * vc/vc-annotate.el (vc-annotate-show-diff-revision-at-line-internal):
 +      Do not pass the file name to the 'previous-revision call when we
 +      don't want a file diff.  (Bug#6489)
 +
 +2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix finding revisions for renamed files in vc-annotate.
 +      * vc/vc.el (vc-find-revision): Add an optional argument for
 +      the VC backend.  Use it when non-nil.
 +      * vc/vc-annotate.el (vc-annotate-find-revision-at-line): Pass the VC
 +      backend to vc-find-revision.  (Bug#6487)
 +
 +2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix reading file names in Git annotate buffers.
 +      * vc/vc-git.el (vc-git-annotate-extract-revision-at-line):
 +      Remove trailing whitespace.  Suggested by Eric Hanchrow.  (Bug#6481)
 +
 +2010-06-20  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-mode.el (c-before-hack-hook): When the mode is set
 +      in file local variables, set it first.
 +
 +2010-06-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * descr-text.el (describe-char-unicode-data): Insert separating
 +      space when needed.  (Bug#6422)
 +
 +      * progmodes/idlwave.el (idlwave-action-and-binding):
 +      Fix typo in 2009-12-03 change.  (Bug#6450)
 +
 +2010-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/macroexp.el (macroexpand-all-1): Put back special
 +      handling for `lambda' (misunderstanding).
 +
 +2010-06-16  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-poly.el (math-accum-factors): Make sure that
 +      constants aren't distributed after they are factored out.
 +
 +2010-06-16  Juri Linkov  <juri@jurta.org>
 +
 +      * facemenu.el (list-colors-display): Call `pop-to-buffer' before
 +      `list-colors-print'.  (Bug#6332)
 +
 +      * subr.el (read-quoted-char): Fix up last change (bug#6290).
 +
 +2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/macroexp.el (macroexpand-all-1): Don't handle `lambda'
 +      specially, since it's a macro.  Fix up wrong hint passed to maybe-cons.
 +
 +      * font-lock.el (font-lock-major-mode): Rename from
 +      font-lock-mode-major-mode to distinguish it from
 +      global-font-lock-mode's own font-lock-mode-major-mode (bug#6135).
 +      (font-lock-set-defaults):
 +      * font-core.el (font-lock-default-function): Adjust users.
 +      (font-lock-mode): Don't set it at all.
 +
 +2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc/vc-annotate.el (vc-annotate): Use vc-read-revision.
 +
 +2010-06-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * calendar/appt.el (appt-time-msg-list): Doc fix.
 +      (appt-check): Let-bind appt-warn-time.
 +      (appt-add): Make the 3rd argument optional.
 +      Simplify argument names.  Doc fix.  Check for integer WARNTIME.
 +      Only add WARNTIME to the output list if non-nil.
 +
 +2010-06-16  Ivan Kanis  <apple@kanis.eu>
 +
 +      * calendar/appt.el (appt-check): Let the 3rd element of
 +      appt-time-msg-list specify the warning time.
 +      (appt-add): Add new argument with the warning time.  (Bug#5176)
 +
 +2010-06-16  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +
 +      * vc/vc-svn.el (vc-svn-after-dir-status): Fix regexp for Subversions
 +      older than version 1.6.  (Bug#6361)
 +
 +2010-06-16  Helmut Eller  <eller.helmut@gmail.com>
 +
 +      * emacs-lisp/cl-macs.el (destructuring-bind): Bind `bind-enquote',
 +      used by cl-do-arglist.  (Bug#6408)
 +
 +2010-06-16  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-dictionary-base-alist):
 +      Fix portuguese casechars/not-casechars for missing 'çÇ'.
 +      Suggested by Rolando Pereira (bug#6434).
 +
 +2010-06-15  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * facemenu.el (list-colors-sort): Doc fix.
 +
 +2010-06-15  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>
 +
 +      * progmodes/sql.el (sql-connect-mysql): Fix typo.
 +
 +2010-06-14  Juri Linkov  <juri@jurta.org>
 +
 +      Add sort option `list-colors-sort'.  (Bug#6332)
 +      * facemenu.el (color-rgb-to-hsv): New function.
 +      (list-colors-sort): New defcustom.
 +      (list-colors-sort-key): New function.
 +      (list-colors-display): Doc fix.  Sort list according to the option
 +      `list-colors-sort'.
 +      (list-colors-print): Add HSV values to `help-echo' property of
 +      RGB strings.
 +
 +2010-06-14  Juri Linkov  <juri@jurta.org>
 +
 +      * compare-w.el: Move to the "vc" subdirectory.
 +
 +2010-06-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * image-mode.el (image-mode-map): Remap left-char and right-char.
 +
 +      * nxml/nxml-mode.el (nxml-indent-line): Standardize indent behavior.
 +
 +2010-06-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * term/common-win.el (x-colors): Add all the color names defined
 +      in rgb.txt (Bug#6332).
 +
 +      * facemenu.el (list-colors-print): Don't print extra names if it
 +      will overflow the window width.
 +
 +      * vc/log-edit.el (log-edit-font-lock-keywords): Revert 2010-06-02
 +      change (Bug#6343).
 +
 +2010-06-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.el (make-directory): Doc fix (bug#6396).
 +
 +2010-06-12  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-remote-process-environment): Protect version
 +      string by apostroph.
 +      (tramp-shell-prompt-pattern): Do not use a shy group in case of
 +      XEmacs.
 +      (tramp-file-name-for-operation): Add `call-process-region'.
 +      (tramp-set-process-query-on-exit-flag): Fix wrong parentheses.
 +
 +      * net/tramp-compat.el (top): Do not autoload
 +      `tramp-handle-file-remote-p'.  Load tramp-util.el and tramp-vc.el
 +      only when `start-file-process' is not bound.
 +      (tramp-advice-file-expand-wildcards): Do not use
 +      `tramp-handle-file-remote-p'.
 +      (tramp-compat-make-temp-file): Handle the case, that
 +      `make-temp-file' has no third argument EXTENSION.
 +
 +2010-06-11  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (WINS_BASIC): Include new directory vc.
 +
 +      * loadup.el ("vc-hooks", "ediff-hook"): Load from lisp/vc/.
 +
 +2010-06-11  Juri Linkov  <juri@jurta.org>
 +
 +      * finder.el (finder-known-keywords): Add keyword "vc"
 +      for version control.
 +
 +      * add-log.el, cvs-status.el, diff.el, diff-mode.el, ediff.el,
 +      * emerge.el, log-edit.el, log-view.el, pcvs.el, smerge-mode.el,
 +      * vc-annotate.el, vc-bzr.el, vc-dir.el, vc-dispatcher.el, vc-git.el,
 +      * vc-hg.el, vc-mtn.el, vc.el: Add keyword "vc".
 +
 +2010-06-11  Juri Linkov  <juri@jurta.org>
 +
 +      Move version control related files to the "vc" subdirectory.
 +      * add-log.el, cvs-status.el, diff.el, diff-mode.el, ediff-diff.el,
 +      * ediff.el, ediff-help.el, ediff-hook.el, ediff-init.el,
 +      * ediff-merg.el, ediff-mult.el, ediff-ptch.el, ediff-util.el,
 +      * ediff-vers.el, ediff-wind.el, emerge.el, log-edit.el, log-view.el,
 +      * pcvs-defs.el, pcvs.el, pcvs-info.el, pcvs-parse.el, pcvs-util.el,
 +      * smerge-mode.el, vc-annotate.el, vc-arch.el, vc-bzr.el, vc-cvs.el,
 +      * vc-dav.el, vc-dir.el, vc-dispatcher.el, vc.el, vc-git.el,
 +      * vc-hg.el, vc-hooks.el, vc-mtn.el, vc-rcs.el, vc-sccs.el, vc-svn.el:
 +      Move files to the "vc" subdirectory.
 +
 +2010-06-11  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * comint.el (comint-password-prompt-regexp): Fix 2010-04-10 change
 +      (Bug#6367).
 +
 +2010-06-11  Stephen Eglen  <stephen@gnu.org>
 +
 +      * shell.el: Bind `shell-resync-dirs' to M-RET.
 +
 +2010-06-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * notifications.el: Move file from lisp/net, because it is
 +      supposed to talk locally to the user.
 +
 +2010-06-10  Julien Danjou  <julien@danjou.info>
 +
 +      * net/notifications.el (notifications-on-action-signal)
 +      (notifications-on-closed-signal): Pass notification id as first
 +      argument to the callback functions.  Add docstrings.
 +      (notifications-notify): Fix docstring.
 +
 +2010-06-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/authors.el (authors-ignored-files)
 +      (authors-valid-file-names): Add some files.
 +
 +2010-06-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * net/rcirc.el (rcirc-server-alist, rcirc, rcirc-connect): Resolve
 +      merge conflict, giving preference to the emacs-23 version of the code.
 +
 +2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/advice.el (ad-compile-function):
 +      Define warning-suppress-types before we let-bind it (bug#6275).
 +
 +      * vc-dispatcher.el: Rename mode-line-hook to vc-mode-line-hook;
 +      declare it, make it buffer-local and permanent-local (bug#6324).
 +      (vc-resynch-window): Adjust name.
 +      * vc-hooks.el (vc-find-file-hook): Adjust name.
 +
 +2010-06-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/notifications.el (notifications-notify): Fix docstring.
 +
 +2010-06-09  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Update to Unicode 6.0.0 beta.
 +      * international/charprop.el: Update copyright.
 +      * international/mule-cmds.el (ucs-names): Update character ranges.
 +      * international/uni-bidi.el:
 +      * international/uni-category.el:
 +      * international/uni-combining.el:
 +      * international/uni-comment.el:
 +      * international/uni-decimal.el:
 +      * international/uni-decomposition.el:
 +      * international/uni-digit.el:
 +      * international/uni-lowercase.el:
 +      * international/uni-mirrored.el:
 +      * international/uni-name.el:
 +      * international/uni-numeric.el:
 +      * international/uni-old-name.el:
 +      * international/uni-titlecase.el:
 +      * international/uni-uppercase.el: Regenerate.
 +
 +2010-06-09  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs-lisp/smie.el (comment-string-strip): Declare function.
 +      (smie-precs-precedence-table): Fix typo in docstring.
 +
 +      * vc-mtn.el (log-edit-extract-headers): Declare function.
 +
 +      * vc-hg.el (log-edit-extract-headers): Remove duplicate declaration.
 +
 +      * net/notifications.el (dbus-register-signal): Declare function.
 +      (notifications-notify): Fix typos and reflow docstring.
 +
 +2010-06-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Improve VC create/retrieve tag/branch.
 +      * vc.el (vc-create-tag): Do not read the directory name for VCs
 +      with repository revision granularity.  Adjust the tag/branch
 +      prompt.  Reset VC properties.
 +      (vc-retrieve-tag): Do not read the directory name for VCs
 +      with repository revision granularity.  Reset VC properties.
 +
 +2010-06-09  Julien Danjou  <julien@danjou.info>
 +
 +      * net/notifications.el: New file.
 +
 +2010-06-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Add optional support for resetting VC properties.
 +      * vc-dispatcher.el (vc-resynch-window): Add new optional argument,
 +      call vc-file-clearprops when true.
 +      (vc-resynch-buffer): Add new optional argument, pass it down.
 +      (vc-resynch-buffers-in-directory): Likewise.
 +
 +      Improve support for special markup in the VC commit message.
 +      * vc-mtn.el (vc-mtn-checkin): Add support for Author: and Date: markup.
 +      * vc-hg.el (vc-hg-checkin): Add support for Date:.
 +      * vc-git.el (vc-git-checkin):
 +      * vc-bzr.el (vc-bzr-checkin): Likewise.
 +
 +2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-indent-keyword): Remove special case that
 +      can be handled with a ((:before "fn") (:prev "=>" parent)) rule.
 +
 +2010-06-07  Martin Pohlack  <mp26@os.inf.tu-dresden.de>
 +
 +      * iimage.el: Remove images as soon as the underlying text is modified.
 +      (iimage-modification-hook): New function.
 +      (iimage-mode-buffer): Use it.
 +
 +2010-06-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-indent-offset-rule): Rename from
 +      smie-indent-offset-after.  Add :prev case.  Make a bit more generic.
 +      (smie-indent-virtual): Remove `virtual' arg.  Update callers.
 +      (smie-indent-keyword): Add handling of open-paren keywords.
 +      (smie-indent-comment-continue): Don't assume comment-continue.
 +
 +2010-06-07  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * window.el (pop-to-buffer): Remove the conditional that
 +      compares new-window and old-window, so it will reselect
 +      the selected window unconditionally.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00078.html
 +
 +2010-06-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-indent-offset-after)
 +      (smie-indent-forward-token, smie-indent-backward-token): New functions.
 +      (smie-indent-after-keyword): Use them.
 +      (smie-indent-fixindent): Only applies to the indentation of the BOL.
 +      (smie-indent-keyword): Tweak the black magic.
 +      (smie-indent-comment-continue): Strip comment-continue before use.
 +      (smie-indent-functions): Indent comments before keywords.
 +
 +2010-06-06  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-lazy-highlight-search): Fix looping
 +      by checking for empty match.  This syncs this loop with the
 +      similar loop in `isearch-search'.  (Bug#6362)
 +
 +2010-06-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * net/dbus.el (dbus-register-method): Declare function.
 +      (dbus-handle-event, dbus-property-handler): Fix typos in docstrings.
 +      (dbus-introspect): Doc fix.
 +      (dbus-event-bus-name, dbus-introspect-get-interface)
 +      (dbus-introspect-get-argument): Reflow docstrings.
 +
 +2010-06-05  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      vc-log-incoming/vc-log-outgoing fixes for Git.
 +      * vc-git.el (vc-git-log-view-mode): Fix font lock for
 +      incoming/outgoing logs.
 +      (vc-git-log-outgoing, vc-git-log-incoming): Use @{upstream}
 +      instead of vc-git-compute-remote.
 +      (vc-git-compute-remote): Remove.
 +
 +2010-06-04  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * term/common-win.el (x-colors): Add "dark green" and "dark
 +      turquoise" (Bug#6332).
 +
 +2010-06-04  Juri Linkov  <juri@jurta.org>
 +
 +      * simple.el (kill-new): Fix logic of kill-do-not-save-duplicates.
 +      Instead of setting `replace' to t and replacing the same string
 +      with itself, don't do certain actions when
 +      kill-do-not-save-duplicates is non-nil and string is equal to car
 +      of kill-ring: don't call menu-bar-update-yank-menu, don't push
 +      interprogram-paste strings to kill-ring, and don't push the input
 +      argument `string' to kill-ring.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00072.html
 +
 +2010-06-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * subr.el (directory-sep-char): Move from fileio.c and make a defconst.
 +
 +2010-06-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name): Expand "~/".
 +      (tramp-gvfs-handler-mounted-unmounted)
 +      (tramp-gvfs-connection-mounted-p): Handle default-location.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-delete-directory): Don't try to
 +      move files to trash.
 +
 +2010-06-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * international/mule-cmds.el (nonascii-insert-offset)
 +      (nonascii-translation-table): Add obsolescence information.
 +
 +      * international/mule.el (make-translation-table-from-vector): Doc fix.
 +
 +2010-06-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * desktop.el (desktop-clear-preserve-buffers):
 +      Add "*Warnings*" buffer.  (Bug#6336)
 +
 +2010-06-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      vc-log-incoming/vc-log-outgoing improvements for Git.
 +      * vc-git.el (vc-git-log-outgoing): Use the same format as the
 +      short log.
 +      (vc-git-log-incoming): Likewise.  Run "git fetch" before the log command.
 +
 +      Add bindings for vc-log-incoming and vc-log-outgoing.
 +      * vc-hooks.el (vc-prefix-map): Add bindings for vc-log-incoming
 +      and vc-log-outgoing.
 +      * vc-dir.el (vc-dir-menu-map): Add menu bindings for vc-log-incoming
 +      and vc-log-outgoing.
 +
 +2010-06-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * net/rcirc.el (rcirc-sort-nicknames): Remove.
 +      (rcirc-handler-366): Always sort nicknames.
 +
 +2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs-lisp/smie.el (comment-continue): Declare for byte-compiler.
 +
 +2010-06-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * net/rcirc.el (rcirc-nickname<, rcirc-sort-nicknames-join): Doc fix.
 +
 +2010-06-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * net/rcirc.el (rcirc-sort-nicknames): Change default.
 +      (rcirc-sort-nicknames-join): Avoid setq.
 +
 +2010-06-03  Deniz Dogan  <deniz.a.m.dogan@gmail.com>
 +
 +      * net/rcirc.el (rcirc-sort-nicknames): New custom.
 +      (rcirc-nickname<, rcirc-sort-nicknames-join): New funs.
 +      (rcirc-handler-366): Use them.
 +
 +2010-06-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Split smie-indent-calculate into more manageable chunks.
 +      * emacs-lisp/smie.el (smie-indent-virtual, smie-indent-fixindent)
 +      (smie-indent-comment, smie-indent-after-keyword, smie-indent-keyword)
 +      (smie-indent-close, smie-indent-comment-continue, smie-indent-bob)
 +      (smie-indent-exps): Extract from smie-indent-calculate.
 +      (smie-indent-functions): New var.
 +      (smie-indent-functions): Use them.
 +
 +2010-06-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-indent-hanging-p): Use smie-bolp.
 +      (smie-indent-calculate): Simplify and cleanup.
 +
 +2010-06-02  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-gvfs.el (top): Require url-util.
 +      (tramp-gvfs-mount-point): Remove.
 +      (tramp-gvfs-stringify-dbus-message, tramp-gvfs-send-command):
 +      New defuns.
 +      (with-tramp-dbus-call-method): Format trace message.
 +      (tramp-gvfs-handle-copy-file, tramp-gvfs-handle-rename-file):
 +      Implement backup call, when operation on local files fails.
 +      Use progress reporter.  Flush properties of changed files.
 +      (tramp-gvfs-handle-make-directory): Make more traces.
 +      (tramp-gvfs-url-file-name): Hexify file name in url.
 +      (tramp-gvfs-fuse-file-name): Take also prefix (like dav shares)
 +      into account for the resulting file name.
 +      (tramp-gvfs-handler-askquestion): Return dummy mountpoint, when
 +      the answer is "no".  See `tramp-gvfs-maybe-open-connection'.
 +      (tramp-gvfs-handler-mounted-unmounted)
 +      (tramp-gvfs-connection-mounted-p): Test also for new mountspec
 +      attribute "default_location".  Set "prefix" property.
 +      (tramp-gvfs-mount-spec): Return both prefix and mountspec.
 +      (tramp-gvfs-maybe-open-connection): Test, whether mountpoint
 +      exists.  Raise an error, if not (due to a corresponding answer
 +      "no" in interactive questions, for example).
 +
 +2010-06-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * log-edit.el (log-edit-font-lock-keywords): Make group 4 match lax.
 +
 +2010-06-01  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs-lisp/eldoc.el: Add completions for new commands left-* and
 +      right-*.  (Bug#6265)
 +
 +2010-06-01  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Add support for vc-log-incoming, improve vc-log-outgoing for Git.
 +      * vc-git.el (vc-git-compute-remote): New function.
 +      (vc-git-log-outgoing): Use it instead of hard coding a value.
 +      (vc-git-log-incoming): New function.
 +
 +      Improve state updating for VC tag commands.
 +      * vc.el (vc-create-tag, vc-retrieve-tag): Call vc-resynch-buffer
 +      to update the state of all buffers in the directory.
 +
 +      * vc-dir.el (vc-dir-update): Remove entries with a nil state (bug#5539).
 +
 +2010-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc-bzr.el (vc-bzr-revision-completion-table): Apply
 +      `file-directory-p' to the filename part rather than to the whole text.
 +
 +2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * man.el (Man-completion-table): Let the user type "-k " (bug#6319).
 +
 +2010-05-31  Drew Adams  <drew.adams@oracle.com>
 +
 +      * files.el (directory-files-no-dot-files-regexp): Doc fix (bug#6298).
 +
 +2010-05-31  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * subr.el (momentary-string-display): Just use read-event to read
 +      the exit event (Bug#6238).
 +
 +2010-05-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * international/mule.el (define-coding-system): Doc fix (bug#6313).
 +
 +2010-05-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emulation/cua-base.el: Recognize also `right-word' and `left-word'.
 +      Suggested by Eli Zaretskii <eliz@gnu.org>.
 +
 +2010-05-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-file-name-table): Don't return a boundary
 +      past the end of `string' (bug#6299).
 +      (completion--file-name-table): Delegate to completion-file-name-table
 +      for the `boundaries' case.
 +
 +2010-05-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emulation/cua-base.el: Recognize `right-char' and `left-char' as
 +      movement commands.
 +
 +      * progmodes/ada-xref.el (ada-prj-ada-project-path-sep): Set from
 +      `path-separator', but maintain compatibility with Emacs 20.2.
 +
 +2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * server.el (server-process-filter): Receive parent-id argument
 +      from emacsclient.
 +      (server-create-window-system-frame): New arg.  Pass parent-id as
 +      frame parameter.
 +
 +2010-05-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Bidi-sensitive word movement with arrow keys.
 +      * subr.el (right-arrow-command, left-arrow-command): Move to
 +      bindings.el.
 +
 +      * bindings.el (right-char, left-char): Move from subr.el and
 +      rename from right-arrow-command and left-arrow-command.
 +      (right-word, left-word): New functions.
 +      (global-map) <right>: Bind to right-char.
 +      (global-map) <left>: Bind to left-char.
 +      (global-map) <C-right>: Bind to right-word.
 +      (global-map) <C-left>: Bind to left-word.
 +
 +      * ls-lisp.el (ls-lisp-classify-file): New function.
 +      (ls-lisp-insert-directory): Call it if switches include -F (bug#6294).
 +      (ls-lisp-classify): Call ls-lisp-classify-file.
 +      (insert-directory): Remove blanks from switches.
 +
 +2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * ansi-color.el: Delete unused escape sequences (Bug#6085).
 +      (ansi-color-drop-regexp): New constant.
 +      (ansi-color-apply, ansi-color-filter-region)
 +      (ansi-color-apply-on-region): Delete unrecognized control sequences.
 +      (ansi-color-apply): Build string list before calling concat.
 +
 +2010-05-28  Juri Linkov  <juri@jurta.org>
 +
 +      * image-dired.el (image-dired-dired-toggle-marked-thumbs):
 +      Replace LOCALP arg of `dired-get-filename' 'no-dir with nil.
 +      (Bug#5270)
 +
 +2010-05-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-debug-message): Add `tramp-compat-funcall'
 +      to ignored backtrace functions.
 +      (with-progress-reporter): Expand docstring.
 +      (tramp-handle-delete-file): Implement TRASH argument.
 +      (tramp-get-remote-trash): New defun.
 +
 +2010-05-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-compat.el (tramp-compat-delete-file):
 +      Use `symbol-value' for backward compatibility.
 +
 +      * net/tramp.el (tramp-handle-make-symbolic-link)
 +      (tramp-handle-load)
 +      (tramp-do-copy-or-rename-file-via-buffer)
 +      (tramp-do-copy-or-rename-file-directly)
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-handle-process-file, tramp-handle-call-process-region)
 +      (tramp-handle-shell-command, tramp-handle-file-local-copy)
 +      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 +      (tramp-delete-temp-file-function): Use `delete-file' instead
 +      of `tramp-compat-delete-file'.
 +
 +      * net/tramp-fish.el (tramp-fish-handle-delete-directory)
 +      (tramp-fish-handle-make-symbolic-link)
 +      (tramp-fish-handle-process-file): Use `delete-file' instead
 +      of `tramp-compat-delete-file'.
 +
 +      * net/tramp-ftp.el (tramp-ftp-file-name-handler):
 +      Use `delete-file' instead of `tramp-compat-delete-file'.
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Rename arg.
 +      (tramp-gvfs-handle-write-region): Use `delete-file' instead of
 +      `tramp-compat-delete-file'.
 +
 +      * net/tramp-imap.el (tramp-imap-do-copy-or-rename-file):
 +      Use `delete-file' instead of `tramp-compat-delete-file'.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-copy-file)
 +      (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
 +      (tramp-smb-handle-write-region): Use `delete-file' instead of
 +      `tramp-compat-delete-file'.
 +      (tramp-smb-handle-delete-directory): Use 'trash as arg.
 +
 +2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * dired.el (dired-delete-file): New arg TRASH.
 +      (dired-internal-do-deletions): New arg TRASH.  Use progress reporter.
 +      (dired-do-flagged-delete, dired-do-delete): Use trash.
 +
 +      * speedbar.el (speedbar-item-delete): Allow trashing.
 +
 +      * files.el (delete-directory): New arg TRASH.
 +
 +      * net/ange-ftp.el (ange-ftp-del-tmp-name, ange-ftp-delete-file)
 +      (ange-ftp-rename-remote-to-remote)
 +      (ange-ftp-rename-local-to-remote)
 +      (ange-ftp-rename-remote-to-local, ange-ftp-load)
 +      (ange-ftp-compress, ange-ftp-uncompress): Remove optional arg from
 +      `delete-file'.
 +      (ange-ftp-delete-directory): Add optional arg to `delete-file', to
 +      allow trashing.
 +
 +      * net/tramp-compat.el (tramp-compat-delete-file): Rewrite to
 +      handle new TRASH arg of `delete-file'.
 +
 +      * net/tramp.el (tramp-handle-delete-file): Change FORCE arg to TRASH.
 +      (tramp-handle-make-symbolic-link, tramp-handle-load)
 +      (tramp-do-copy-or-rename-file-via-buffer)
 +      (tramp-do-copy-or-rename-file-directly)
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-handle-process-file, tramp-handle-call-process-region)
 +      (tramp-handle-shell-command, tramp-handle-file-local-copy)
 +      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 +      (tramp-delete-temp-file-function): Use null TRASH arg in
 +      tramp-compat-delete-file call.
 +
 +      * net/tramp-fish.el (tramp-fish-handle-delete-directory)
 +      (tramp-fish-handle-delete-file)
 +      (tramp-fish-handle-make-symbolic-link)
 +      (tramp-fish-handle-process-file): Use null TRASH arg in
 +      `tramp-compat-delete-file' call.
 +
 +      * net/tramp-ftp.el (tramp-ftp-file-name-handler): Use null TRASH
 +      arg in `tramp-compat-delete-file' call.
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Rename arg.
 +      (tramp-gvfs-handle-write-region): Use null TRASH arg in
 +      `tramp-compat-delete-file' call.
 +
 +      * net/tramp-imap.el (tramp-imap-handle-delete-file): Rename arg.
 +      (tramp-imap-do-copy-or-rename-file): Use null TRASH arg in
 +      `tramp-compat-delete-file' call.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-copy-file)
 +      (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
 +      (tramp-smb-handle-write-region): Use null TRASH arg in
 +      tramp-compat-delete-file call.
 +      (tramp-smb-handle-delete-directory): Use tramp-compat-delete-file.
 +      (tramp-smb-handle-delete-file): Rename arg.
 +
 +      * diff.el (diff-sentinel):
 +      * epg.el (epg--make-temp-file, epg-decrypt-string)
 +      (epg-verify-string, epg-sign-string, epg-encrypt-string):
 +      * jka-compr.el (jka-compr-partial-uncompress)
 +      (jka-compr-call-process, jka-compr-write-region):
 +      * server.el (server-sentinel): Remove optional arg from
 +      delete-file, reverting 2010-05-03 change.
 +
 +2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/verilog-mode.el (verilog-type-font-keywords):
 +      Use font-lock-constant-face, not obsolete font-lock-reference-face.
 +
 +2010-05-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/hebrew.el (hebrew-shape-gstring): Check if a glyph
 +      element of GSTRING is nil.
 +
 +2010-05-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-forward-token-function)
 +      (smie-backward-token-function): New vars.
 +      (smie-backward-sexp, smie-forward-sexp)
 +      (smie-indent-hanging-p, smie-indent-calculate): Use them.
 +      (smie-default-backward-token): Rename from smie-backward-token and
 +      skip comments.
 +      (smie-default-forward-token): Rename from smie-forward-token and
 +      skip comments.
 +      (smie-next-sexp): Handle nil results from next-token.
 +      (smie-indent-calculate): Add a new case for special `fixindent' comments.
 +
 +2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/verilog-mode.el (verilog-type-font-keywords):
 +      Use font-lock-constant-face, not obsolete font-lock-reference-face.
 +
 +2010-05-27  Masatake YAMATO  <yamato@redhat.com>
 +
 +      * htmlfontify.el (hfy-face-resolve-face): New function.
 +      (hfy-face-to-style): Use it (Bug#6279).
 +
 +2010-05-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/ada-xref.el (ada-gnat-parse-gpr):
 +      * emulation/edt.el (edt-load-keys): Avoid (expand-file-name ".").
 +
 +2010-05-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * emulation/edt.el (edt-load-keys): Use locate-library.
 +
 +2010-05-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * log-edit.el (log-edit-strip-single-file-name): Default to nil.
 +      (log-edit-changelog-entries): Doc fix.
 +      (log-edit-changelog-insert-entries): Args changed.
 +      Rename relative filenames in ChangeLog entries.  Delete tabs.
 +      (log-edit-insert-changelog-entries): Reorganize return value of
 +      `log-edit-changelog-entries' to pass filenames to
 +      log-edit-changelog-insert-entries.
 +
 +2010-05-25  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      * dired.el (dired-mode-map): Rebind "\C-t\C-t" from
 +      `image-dired-dired-insert-marked-thumbs' to
 +      `image-dired-dired-toggle-marked-thumbs'.
 +
 +      * image-dired.el: Require cl when compiling.
 +      (image-dired-dired-toggle-marked-thumbs): Rename from
 +      `image-dired-dired-insert-marked-thumbs'.  Add ARG.  Doc fix.
 +      Use interactive spec "P".  Set LOCALP arg of `dired-get-filename'
 +      to 'no-dir.  Skip files whose names don't match
 +      `image-file-name-regexp'.  When file has a thumbnail overlay,
 +      delete it.  (Bug#5270)
 +
 +2010-05-25  Juri Linkov  <juri@jurta.org>
 +
 +      * image-mode.el (image-mode): Add image-after-revert-hook to
 +      after-revert-hook.
 +      (image-after-revert-hook): New function.  (Bug#5669)
 +
 +2010-05-25  Juri Linkov  <juri@jurta.org>
 +
 +      * image.el (image-animated-p): When delay between animated images
 +      is 0, set it to 10 (0.1 sec).  (Bug#6258)
 +
 +2010-05-25  Christian Lynbech  <christian.lynbech@tieto.com>  (tiny change)
 +
 +      * net/tramp.el (tramp-handle-insert-directory): Don't use
 +      `forward-word', its default syntax could be changed.
 +
 +2010-05-25  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-progress-reporter-update): New defun.
 +      (with-progress-reporter): Use it.
 +      (tramp-process-actions):
 +      * net/tramp-gvfs.el (tramp-gvfs-handler-askquestion):
 +      Preserve current message, in order to let progress reporter continue
 +      afterwards.  (Bug#6257)
 +
 +2010-05-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * net/rcirc.el (rcirc-default-user-name, rcirc-default-full-name):
 +      Add :version.
 +
 +2010-05-25  Ryan Yeske  <rcyeske@gmail.com>
 +
 +      * net/rcirc.el (rcirc-default-user-name): Change to "user".
 +      (rcirc-default-full-name): Change to "unknown".
 +      (rcirc-user-name-history): Add variable.
 +
 +2010-05-25  Ryan Yeske  <rcyeske@gmail.com>
 +            Jonathan Rockway  <jon@jrock.us>
 +
 +      * net/rcirc.el (rcirc-server-alist): Add :pass.
 +      (rcirc): When prompting for connection parameters, also prompt for
 +      username and password.
 +      (rcirc-connect): Take a PASS argument.  If PASS is non-nil, send
 +      value to server when connecting.
 +
 +2010-05-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-set-prec2tab): Check override before use.
 +      (smie-merge-prec2s): Pass the tables as separate args.
 +      (smie-bnf-precedence-table): Adjust call accordingly.
 +      (smie-prec2-levels): Set levels at the end.
 +
 +      Replace Lisp calls to delete-backward-char by delete-char.
 +      * bs.el, expand.el, ido.el, image-dired.el, lpr.el, pcomplete.el,
 +      * skeleton.el, term.el, time.el, wid-edit.el, woman.el,
 +      * calc/calc-graph.el, calc/calc-help.el, calc/calc-incom.el,
 +      * calc/calc.el, emacs-lisp/cl-extra.el, emacs-lips/cl-loaddefs.el,
 +      * emulation/cua-rect.el, emulation/viper-ex.el, eshell/esh-test.el,
 +      * eshell/eshell.el, gnus/gnus-uu.el, gnus/nndoc.el, gnus/nnrss.el,
 +      * gnus/rfc2047.el, gnus/utf7.el, international/utf-7.el,
 +      * language/ethio-util.el, mh-e/mh-alias.el, mh-e/mh-search.el,
 +      * net/imap.el, net/rcirc.el, obsolete/complete.el, play/decipher.el,
 +      * progmodes/ada-mode.el, progmodes/cc-awk.el, progmodes/dcl-mode.el,
 +      * progmodes/ps-mode.el, progmodes/verilog-mode.el,
 +      * progmodes/vhdl-mode.el, textmodes/bibtex.el, textmodes/fill.el,
 +      * textmodes/reftex-auc.el, textmodes/rst.el, textmodes/sgml-mode.el,
 +      * textmodes/table.el, textmodes/texinfmt.el: Replace Lisp calls to
 +      delete-backward-char by calls to delete-char.
 +
 +2010-05-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/hebrew.el (hebrew-shape-gstring): New function.
 +      Register it in composition-function-table for all Hebrew combining
 +      characters.
 +
 +2010-05-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * epa.el (epa--select-keys): Don't explicitly delete the window since
 +      that can fail (e.g. sole window in frame).  Use dedication instead.
 +
 +2010-05-24  Uday S Reddy  <u.s.reddy@cs.bham.ac.uk>  (tiny change)
 +
 +      * textmodes/fill.el (fill-region): Don't fill past the end (bug#6201).
 +
 +2010-05-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image.el (image-refresh): Define as an alias for image-flush.
 +
 +      * image-mode.el (image-toggle-display-image): Caller changed.
 +
 +2010-05-21  Juri Linkov  <juri@jurta.org>
 +
 +      * progmodes/grep.el (grep-read-files): Fix multi-pattern aliases.
 +      Remove "all" from grep-files-aliases.  Split grep-files-aliases by
 +      whitespace, call wildcard-to-regexp on substrings and concat them
 +      with "\\|".  (Bug#6114)
 +
 +2010-05-21  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-engine.el (c-parse-state-get-strategy):
 +      Replace parameter `here' with `here-' and `here-plus', which sandwich
 +      any pertinent CPP construct.
 +      (c-remove-stale-state-cache-backwards): Fix a bug which happens
 +      when doing (c-parse-state) in a CPP construct: Exclude any "new"
 +      CPP construct from taking part in the scanning.
 +
 +2010-05-21  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-do-copy-or-rename-file)
 +      (tramp-handle-file-local-copy, tramp-maybe-open-connection):
 +      Tune `with-progress-reporter' messages.
 +      (tramp-handle-vc-registered):
 +      * net/tramp-fish.el (tramp-fish-handle-file-local-copy)
 +      (tramp-fish-handle-insert-file-contents)
 +      (tramp-fish-maybe-open-connection):
 +      * net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection):
 +      * net/tramp-imap.el (tramp-imap-do-copy-or-rename-file)
 +      (tramp-imap-handle-insert-file-contents)
        (tramp-imap-handle-file-local-copy): Use `with-progress-reporter'.
 -      (tramp-imap-handle-delete-file): Add TRASH arg.
  
 -      * net/tramp-smb.el (tramp-smb-handle-copy-file):
 -      Add PRESERVE-SELINUX-CONTEXT.
 -      (tramp-smb-handle-copy-file)
 +2010-05-21  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * add-log.el (change-log-font-lock-keywords):
 +      Highlight all authors in multi-author entries.
 +
 +      * smerge-mode.el (smerge-refine-ignore-whitespace)
 +      (smerge-refine-weight-hack, smerge-refine, smerge-makeup-conflict):
 +      Fix typos in docstrings.
 +      (smerge-resolve, smerge-refine-subst): Reflow docstrings.
 +
 +2010-05-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * progmodes/fortran.el (fortran-mode):
 +      * progmodes/f90.el (f90-mode): Derive from prog-mode.
 +
 +      * loadup.el [CANNOT_DUMP]: Update for bootstrap-emacs no longer
 +      having a relative path in src/Makefile.in.
 +
 +2010-05-20  Kevin Ryde  <user42@zip.com.au>
 +
 +      * help-mode.el (help-make-xrefs): For Info node links turn
 +      newlines into spaces.  Link node names with newlines are matched
 +      by help-xref-info-regexp and buttonized, this change ensures they
 +      can be followed successfully with RET.  (Bug#6206)
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * locate.el (locate): Use pop-to-buffer instead of
 +      switch-to-buffer-other-window.  (Bug#6204)
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * replace.el (replace-highlight): Fix lazy-highlighting
 +      for `M-s w str M-% str RET'.
 +
 +2009-12-15  Masatake YAMATO  <yamato@redhat.com>
 +
 +      * isearch.el (isearch-yank-word-or-char): Pull next subword
 +      when `subword-mode' is activated.  (Bug#6220)
 +
 +2010-05-20  Mark A. Hershberger  <mah@everybody.org>
 +
 +      * isearch.el (isearch-update-post-hook): New hook.
 +      (isearch-update): Use the new hook.  (Bug#6225)
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-mode-map): Bind more keys to isearch-help-map:
 +      [f1], [help], and (char-to-string help-char) instead of "\C-h".
 +      (Bug#6222)
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * isearch.el (isearch-yank-string): Use isearch-process-search-string.
 +      (Bug#6223)
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * dired-x.el (dired-jump, dired-jump-other-window): Add arg
 +      FILE-NAME to read from the minibuffer when called interactively
 +      with prefix argument instead of using buffer-file-name.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00534.html
 +
 +      * dired.el: Update autoloads.
 +
 +2010-05-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * nxml/nxml-mode.el (nxml-mode-map): Bind C-c / to
 +      nxml-finish-element, for consistency with SGML mode.
 +
 +      * progmodes/octave-mod.el (octave-mode-map): Bind C-c / to
 +      octave-close-block.
 +
 +2010-05-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * composite.el: Require cl when compiling.
 +      (reference-point-alist, compose-gstring-for-graphic)
 +      (compose-gstring-for-terminal): Fix typos in docstrings.
 +
 +2010-05-19  Juri Linkov  <juri@jurta.org>
 +
 +      * emacs-lisp/cl-macs.el (window-parameter): Add defsetf with
 +      set-window-parameter.
 +
 +2010-05-19  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-methods): Add `tramp-async-args' attribute
 +      where appropriate.
 +      (tramp-maybe-open-connection): Use it.
 +
 +2010-05-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * simple.el (move-end-of-line): Make sure we are at line beginning
 +      before backing up to end of previous line.
 +
 +2010-05-19  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * password-cache.el (password-cache-remove): Fix docstring.
 +
 +      * net/secrets.el: Autoload the widget functions.
 +      (secrets-search-items, secrets-create-item)
 +      (secrets-get-attributes, secrets-expand-item): Attributes will be
 +      stored on the password database without leading ":", as all other
 +      clients do as well.
 +      (secrets-mode): Fix docstring.
 +      (secrets-show-secrets): Provide it as autoloaded command only when
 +      D-Bus support is available.  Check existence of Secret Service API.
 +
 +2010-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * indent.el (indent-region): Deactivate region (bug#6200).
 +
 +2010-05-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc-dir.el (vc-dir): Don't pop-up-windows.  (Bug#6204)
 +
 +2010-05-19  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.el: Register compose-gstring-for-graphic in
 +      composition-function-table only for combining characters (Mn, Mc, Me).
 +
 +2010-05-18  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-trail.el (calc-trail-isearch-forward)
 +      (calc-trail-isearch-backward): Ensure that the new window
 +      point is set correctly.
 +
 +2010-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * subr.el (read-quoted-char): Resolve modifiers after key
 +      remapping (bug#6212).
 +
 +2010-05-18  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Add visualization code for secrets.
 +      * net/secrets.el (secrets-mode): New major mode.
 +      (secrets-show-secrets, secrets-show-collections)
 +      (secrets-expand-collection, secrets-expand-item)
 +      (secrets-tree-widget-after-toggle-function)
 +      (secrets-tree-widget-show-password): New defuns.
 +
 +2010-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * emacs-lisp/smie.el (smie-next-sexp): Break inf-loop at BOB.
 +      (smie-backward-sexp, smie-forward-sexp): Remove boundary condition now
 +      handled in smie-next-sexp.
 +      (smie-indent-calculate): Provide a starting indentation (so the
 +      recursion is well-founded ;-).
 +
 +      Fix handling of non-associative equal levels.
 +      * emacs-lisp/smie.el (smie-prec2-levels): Choose distinct levels even
 +      when it's not needed.
 +      (smie-op-left, smie-op-right): New functions.
 +      (smie-next-sexp): New function, extracted from smie-backward-sexp.
 +      Better handle equal levels to distinguish the associative case from
 +      the "multi-keyword construct" case.
 +      (smie-backward-sexp, smie-forward-sexp): Use it.
 +
 +2010-05-18  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/prolog.el (smie-indent-basic): Declare for byte-compiler.
 +
 +      * emacs-lisp/smie.el (smie-precs-precedence-table, smie-backward-sexp)
 +      (smie-forward-sexp, smie-indent-calculate): Fix typos in docstrings.
 +
 +2010-05-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Provide a simple generic indentation engine and use it for Prolog.
 +      * emacs-lisp/smie.el: New file.
 +      * progmodes/prolog.el (prolog-smie-op-levels)
 +      (prolog-smie-indent-rules): New var.
 +      (prolog-mode-variables): Use them to configure SMIE.
 +      (prolog-indent-line, prolog-indent-level): Remove.
 +
 +2010-05-17  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-vec.el (math-vector-avg): Put the vector elements in
 +      order before computing the averages.
 +
 +2010-05-16  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-vec.el (calc-histogram):
 +      (calcFunc-histogram): Allow vectors as inputs.
 +      (math-vector-avg): New function.
 +
 +      * calc/calc-ext.el (math-group-float): Have the number of digits
 +      being grouped depend on the radix (Bug#6189).
 +
 +2010-05-15  Ken Raeburn  <raeburn@raeburn.org>
 +
 +      * version.el (emacs-copyright, emacs-version): Don't define here,
 +      now that emacs.c defines it.
 +
 +2010-05-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * international/mule-cmds.el (mule-menu-keymap): Fix definition of
 +      "Describe Language Environment" menu item.
 +
 +      * language/hebrew.el ("Hebrew", "Windows-1255"): Doc fix.
 +
 +      Bidi-sensitive movement with arrow keys.
 +      * subr.el (right-arrow-command, left-arrow-command): New functions.
 +
 +      * bindings.el (global-map): Bind them to right and left arrow keys.
 +
 +      Don't override standard definition of convert-standard-filename.
 +      * files.el (convert-standard-filename):
 +      Call w32-convert-standard-filename and dos-convert-standard-filename on
 +      the corresponding systems.
 +
 +      * w32-fns.el (w32-convert-standard-filename): Rename from
 +      convert-standard-filename.  Doc fix.
 +
 +      * dos-fns.el (dos-convert-standard-filename): Doc fix.
 +      (convert-standard-filename): Don't defalias.
 +      (register-name-alist, make-register, register-value)
 +      (set-register-value, intdos): Obsolete aliases for the
 +      corresponding dos-* functions and variables.
 +      (dos-intdos): Add a doc string.
 +
 +2010-05-15  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-aent.el (math-read-token, math-find-user-tokens):
 +      * calc/calc-lang.el (math-read-big-rec, math-lang-read-symbol):
 +      (math-compose-tex-func):
 +      * calc/calccomp.el (math-compose-expr):
 +      * calc/calc-ext.el (math-format-flat-expr-fancy):
 +      * calc/calc-store.el (calc-read-var-name):
 +      * calc/calc-units.el (calc-explain-units-rec): Allow Greek letters.
 +
 +      * calc/calc.el (var-π, var-φ, var-γ): New variables.
 +      * calc/calc-aent.el (math-read-replacement-list): Add "micro" symbol.
 +      * calc/calc-units.el (math-unit-prefixes): Add mu for micro.
 +      (math-standard-units): Add units.
 +
 +2010-05-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/asm-mode.el (asm-mode):
 +      * progmodes/prolog.el (prolog-mode): Use define-derived-mode.
 +
 +      * pcomplete.el (pcomplete-completions-at-point): New function,
 +      extracted from pcomplete-std-complete.
 +      (pcomplete-std-complete): Use it.
 +
 +2010-05-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (setwins, setwins_almost, setwins_for_subdirs):
 +      Remove references to CVS, RCS and Old directories.
 +
 +2010-05-14  Jay Belanger  <jay.p.belanger@gmail.com>
 +
 +      * calc/calc-bin.el (math-format-twos-complement): Group digits when
 +      appropriate.
 +
 +2010-05-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/sh-script.el (sh-mode-default-syntax-table): Remove.
 +      (sh-mode-syntax-table): Give it a default value instead.
 +      (sh-header-marker): Make buffer-local.
 +      (sh-mode): Move make-local-variable to the corresponding setq.
 +      (sh-add-completer): Avoid gratuitously let-binding a buffer-local var.
 +      Use complete-with-action.
 +
 +      * simple.el (prog-mode): New (abstract) major mode.
 +      * emacs-lisp/lisp-mode.el (emacs-lisp-mode, lisp-mode): Use it.
 +      * progmodes/sh-script.el (sh-mode): Remove redundant var assignment.
 +
 +2010-05-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/sql.el (sql-oracle-program): Reflow docstring.
 +      (sql-oracle-scan-on, sql-sybase-program, sql-product-font-lock)
 +      (sql-add-product-keywords, sql-highlight-product, sql-set-product)
 +      (sql-make-alternate-buffer-name, sql-placeholders-filter)
 +      (sql-escape-newlines-filter, sql-input-sender)
 +      (sql-send-magic-terminator, sql-sybase): Fix typos in docstrings.
 +
 +2010-05-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      Add TeX open-block and close-block keybindings to SGML, and vice versa.
 +
 +      * textmodes/tex-mode.el (tex-mode-map): Bind C-c C-t to
 +      latex-open-block and C-c / to latex-close-block.
 +
 +      * textmodes/sgml-mode.el (sgml-mode-map): Bind C-c C-o to sgml-tag
 +      and C-c C-e to sgml-close-tag.
 +
 +2010-05-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (with-progress-reporter): Create reporter object
 +      only when the message would be displayed.  Handle nested calls.
 +      (tramp-handle-load, tramp-handle-file-local-copy)
 +      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 +      (tramp-maybe-send-script, tramp-find-shell):
 +      Use `with-progress-reporter'.
 +      (tramp-handle-dired-compress-file, tramp-maybe-open-connection):
 +      Fix message text.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-copy-file)
        (tramp-smb-handle-file-local-copy, tramp-smb-handle-rename-file)
        (tramp-smb-handle-write-region, tramp-smb-maybe-open-connection):
        Use `with-progress-reporter'.
 -      (tramp-smb-handle-delete-file): Add TRASH arg.
  
 -      * net/tramp.el (tramp-methods): Move hostname to the end in all
 -      ssh `tramp-login-args'.  Add `tramp-async-args' attribute where
 -      appropriate.
 -      (tramp-verbose): Describe verbose level 9.
 -      (tramp-completion-function-alist)
 -      (tramp-file-name-regexp, tramp-chunksize)
 -      (tramp-local-coding-commands, tramp-remote-coding-commands)
 -      (with-connection-property, tramp-completion-mode-p)
 -      (tramp-action-process-alive, tramp-action-out-of-band)
 -      (tramp-check-for-regexp, tramp-file-name-p, tramp-equal-remote)
 -      (tramp-exists-file-name-handler): Fix docstring.
 -      (tramp-remote-process-environment): Use `format' instead of
 -      `concat'.  Protect version string by apostroph.
 -      (tramp-shell-prompt-pattern): Do not use a shy group in case of
 -      XEmacs.
 -      (tramp-file-name-regexp-unified)
 -      (tramp-completion-file-name-regexp-unified): On W32 systems, do
 -      not regard the volume letter as remote filename.  (Bug#5447)
 -      (tramp-perl-file-attributes)
 -      (tramp-perl-directory-files-and-attributes): Don't pass "$3".
 -      (tramp-vc-registered-read-file-names): Read input as
 -      here-document, otherwise the command could exceed maximum length
 -      of command line.
 -      (tramp-file-name-handler-alist): Add `file-selinux-context' and
 -      `set-file-selinux-context'.
 -      (tramp-debug-message): Add `tramp-compat-funcall' to ignored
 -      backtrace functions.
 -      (tramp-error-with-buffer): Don't show the connection buffer when
 -      we are in completion mode.
 -      (tramp-progress-reporter-update, tramp-remote-selinux-p)
 -      (tramp-handle-file-selinux-context)
 -      (tramp-handle-set-file-selinux-context, tramp-process-sentinel)
 -      (tramp-connectable-p, tramp-open-shell, tramp-get-remote-trash):
 -      New defuns.
 -      (with-progress-reporter): New defmacro.
 -      (tramp-debug-outline-regexp): New defconst.
 -      (top, tramp-rfn-eshadow-setup-minibuffer)
 +2010-05-13  Agustín Martín  <agustin.martin@hispalinux.es>
 +
 +      * textmodes/ispell.el (ispell-init-process): Do not kill ispell
 +      process everytime when spellchecking from the minibuffer (bug#6143).
 +
 +2010-05-13  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/sh-script.el (sh-mode): Use define-derived-mode.
 +
 +      * dos-fns.el: Add "dos-" prefix for namespace control.
 +      (convert-standard-filename): Define as alias for
 +      dos-convert-standard-filename but only if applicable.
 +
 +2010-05-12  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-cmds.el (c-beginning-of-defun, c-end-of-defun):
 +      Push the mark at the start of these functions when appropriate.
 +
 +2010-05-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-cycle-threshold): New custom var.
 +      (completion--do-completion): Use it.
 +      (minibuffer-complete): Use cycling if appropriate.
 +
 +2010-05-11  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * dirtrack.el (dirtrackp): Remove defcustom; don't make automatically
 +      buffer-local (it's an obsolete alias for `dirtrack-mode') (bug#6173).
 +
 +2010-05-11  Juri Linkov  <juri@jurta.org>
 +
 +      * scroll-all.el (scroll-all-check-to-scroll):
 +      Add `scroll-up-command' and `scroll-down-command' (bug#6164).
 +
 +2010-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * iimage.el (iimage-mode-map): Move initialization into declaration.
 +      (iimage-mode-buffer): Use with-silent-modifications.
 +      Simplify calling convention.  Adjust callers.
 +      (iimage-mode): Don't run hook redundantly.
 +
 +      * minibuffer.el (completion-pcm--pattern->regex):
 +      Fix last change (bug#6160).
 +
 +2010-05-10  Juri Linkov  <juri@jurta.org>
 +
 +      Remove nodes visited during Isearch from the Info history.
 +      * info.el (Info-isearch-initial-history)
 +      (Info-isearch-initial-history-list): New variables.
 +      (Info-isearch-start): Record initial values of
 +      Info-isearch-initial-history and Info-isearch-initial-history-list.
 +      Add Info-isearch-end to isearch-mode-end-hook.
 +      (Info-isearch-end): New function.
 +
 +2010-05-10  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-do-file-attributes-with-stat): Add space in
 +      format string, in order to work around a bug in pdksh.
 +      Reported by Gilles Pion <gpion@lfdj.com>.
 +      (tramp-handle-verify-visited-file-modtime): Do not send a command
 +      when the connection is not established.
 +      (tramp-handle-set-file-times): Simplify the check for utc.
 +
 +2010-05-10  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Fix use of `filter-buffer-substring' (rework previous change).
 +      * emulation/cua-base.el (cua--filter-buffer-noprops): New function.
 +      (cua-repeat-replace-region):
 +      * emulation/cua-rect.el (cua--extract-rectangle, cua-incr-rectangle):
 +      * emulation/cua-gmrk.el (cua-copy-region-to-global-mark)
 +      (cua-cut-region-to-global-mark): Use it.
 +
 +2010-05-09  Michael R. Mauger  <mmaug@yahoo.com>
 +
 +      * progmodes/sql.el: Version 2.1.
 +      (sql-product-alist): Redesign structure of product info.
 +      (sql-product, sql-user, sql-server, sql-database): Safe variables.
 +      (sql-port, sql-port-history): New variables.
 +      (sql-interactive-product): New variable.
 +      (sql-send-terminator): New variable.
 +      (sql-imenu-generic-expression): Add "Types" imenu entry.
 +      (sql-oracle-login-params, sql-sqlite-login-params)
 +      (sql-mysql-login-params, sql-solid-login-params)
 +      (sql-sybase-login-params, sql-informix-login-params)
 +      (sql-ingres-login-params, sql-ms-login-params)
 +      (sql-postgres-login-params, sql-interbase-login-params)
 +      (sql-db2-login-params, sql-linter-login-params)
 +      (sql-oracle-scan-on): New variables.
 +      (sql-mode-map): Add C-c C-i to start interactive mode.
 +      (sql-mode-menu): Update existing menu entries.
 +      (sql-font-lock-keywords-builder): Compile-time font-lock optimization.
 +      (sql-mode-oracle-font-lock-keywords)
 +      (sql-mode-postgres-font-lock-keywords)
 +      (sql-mode-ms-font-lock-keywords)
 +      (sql-mode-sybase-font-lock-keywords)
 +      (sql-mode-informix-font-lock-keywords)
 +      (sql-mode-interbase-font-lock-keywords)
 +      (sql-mode-ingres-font-lock-keywords)
 +      (sql-mode-solid-font-lock-keywords)
 +      (sql-mode-mysql-font-lock-keywords)
 +      (sql-mode-sqlite-font-lock-keywords)
 +      (sql-mode-db2-font-lock-keywords)
 +      (sql-mode-linter-font-lock-keywords): Update initialization to
 +      reduce run-time complexity.
 +      (sql-add-product, sql-del-product): New functions.
 +      (sql-set-product-feature, sql-get-product-feature): New functions.
 +      (sql-product-font-lock): Update product API.
 +      (sql-add-product-keywords): New function.
 +      (sql-highlight-product): Update product API.
 +      (sql-help-list-products): New function.
 +      (sql-help): Dynamically lists free and non-free products.
 +      (sql-get-login): Correct bug in handling history and added
 +      prompt for port.
 +      (sql-copy-column): Copy without properties.
 +      (sqli-input-sender): Apply filters to SQLi input.
 +      (sql-query-placeholders-and-send): Obey `sql-oracle-scan-on' setting.
 +      Implement as a filter.
 +      (sql-escape-newlines-filter): Implement as a filter.
 +      (sql-remove-tabs-filter): New function.
 +      (sql-send-magic-terminator): New function.
 +      (sql-send-string): Implement magic terminator.
 +      (sql-send-region): Use `sql-send-string'.
 +      (sql-interactive-mode): Use product API.
 +      (sql-product-interactive): Use product API.
 +      (sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql)
 +      (sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase)
 +      (sql-db2, sql-linter): Use `sql-product-interactive'.
 +      (sql-connect): New function.
 +      (sql-connect-oracle, sql-connect-sybase, sql-connect-informix)
 +      (sql-connect-sqlite, sql-connect-mysql, sql-connect-solid)
 +      (sql-connect-ingres, sql-connect-ms, sql-connect-postgres)
 +      (sql-connect-interbase, sql-connect-db2, sql-connect-linter):
 +      Use `sql-connect'.
 +
 +2010-05-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion-pcm-complete-word-inserts-delimiters):
 +      New custom variable.
 +      (completion-pcm--string->pattern): Use it.
 +      (completion-pcm--pattern->regex, completion-pcm--pattern->string):
 +      Make it handle any symbol as `any'.
 +      (completion-pcm--merge-completions): Extract common suffix for the new
 +      `prefix' symbol as well.
 +      (completion-substring--all-completions): Use the new `prefix' symbol.
 +
 +2010-05-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp-compat.el (byte-compile-not-obsolete-vars): Define if
 +      not bound.
 +      (tramp-compat-copy-file): Add PRESERVE-SELINUX-CONTEXT.
 +      (tramp-compat-funcall): New defmacro.
 +      (tramp-compat-line-beginning-position)
 +      (tramp-compat-line-end-position)
 +      (tramp-compat-temporary-file-directory)
 +      (tramp-compat-make-temp-file, tramp-compat-file-attributes)
 +      (tramp-compat-copy-file, tramp-compat-copy-directory)
 +      (tramp-compat-delete-file, tramp-compat-delete-directory)
 +      (tramp-compat-number-sequence, tramp-compat-process-running-p)
 +      * net/tramp.el (top, with-progress-reporter)
 +      (tramp-rfn-eshadow-setup-minibuffer)
        (tramp-rfn-eshadow-update-overlay, tramp-handle-set-file-times)
        (tramp-handle-dired-compress-file, tramp-handle-shell-command)
        (tramp-completion-mode-p, tramp-check-for-regexp)
        (tramp-open-connection-setup-interactive-shell)
        (tramp-compute-multi-hops, tramp-read-passwd, tramp-clear-passwd)
        (tramp-time-diff, tramp-coding-system-change-eol-conversion)
 -      (tramp-set-process-query-on-exit-flag, tramp-unload-tramp):
 -      Use `tramp-compat-funcall'.
 -      (tramp-handle-make-symbolic-link): Flush file properties.
 -      (tramp-handle-load, tramp-handle-file-local-copy)
 -      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 -      (tramp-handle-vc-registered, tramp-maybe-send-script)
 -      (tramp-find-shell): Use `with-progress-reporter'.
 -      (tramp-do-file-attributes-with-stat): Add space in format string,
 -      in order to work around a bug in pdksh.  Reported by Gilles Pion
 -      <gpion@lfdj.com>.
 -      (tramp-handle-verify-visited-file-modtime): Do not send a command
 -      when the connection is not established.
 -      (tramp-handle-set-file-times): Simplify the check for utc.
 -      (tramp-handle-directory-files-and-attributes)
 -      (tramp-get-remote-path): Use `copy-tree'.
 -      (tramp-completion-handle-file-name-all-completions): Ensure, that
 -      non remote files are still checked.  Oops.
 -      (tramp-handle-copy-file, tramp-do-copy-or-rename-file):
 -      Handle PRESERVE-SELINUX-CONTEXT.
 -      (tramp-do-copy-or-rename-file): Add progress reporter.
 -      (tramp-do-copy-or-rename-file-directly): Do not use
 -      `tramp-handle-file-remote-p'.
 -      (tramp-do-copy-or-rename-file-out-of-band):
 -      Use `tramp-compat-delete-directory'.
 -      (tramp-do-copy-or-rename-file-out-of-band)
 -      (tramp-compute-multi-hops, tramp-maybe-open-connection):
 -      Use `format-spec-make'.
 -      (tramp-handle-delete-file): Add TRASH arg.
 -      (tramp-handle-dired-uncache): Flush directory cache, not only file
 -      cache.
 -      (tramp-handle-expand-file-name)
 -      (tramp-completion-handle-file-name-all-completions)
 -      (tramp-completion-handle-file-name-completion):
 -      Use `tramp-connectable-p'.
 -      (tramp-handle-start-file-process): Set connection property "vec".
 -      Use it, in order to invalidate file caches.  Check only for
 -      `remote-tty' process property.
 -      Implement tty setting.  (Bug#4604, Bug#6360)
 -      (tramp-file-name-for-operation): Add `call-process-region' and
 -      `set-file-selinux-context'.
 -      (tramp-find-foreign-file-name-handler)
 -      (tramp-advice-make-auto-save-file-name)
 -      (tramp-set-auto-save-file-modes): Remove superfluous check for
 -      `stringp'.  This is done inside `tramp-tramp-file-p'.
 -      (tramp-file-name-handler): Trace 'quit.  Catch the error for some
 -      operations when we are in completion mode.  This gives the user
 -      the chance to correct the file name in the minibuffer.
 -      (tramp-completion-mode-p): Use `non-essential'.
 -      (tramp-handle-file-name-all-completions): Backward/ XEmacs
 -      compatibility: Use `completion-ignore-case' if
 -      `read-file-name-completion-ignore-case' does not exist.
 -      (tramp-get-debug-buffer): Use `tramp-debug-outline-regexp'.
 -      (tramp-find-shell, tramp-open-connection-setup-interactive-shell):
 -      `tramp-open-shell'.
 -      (tramp-action-password): Hide password prompt before next run.
 -      (tramp-process-actions): Widen connection buffer for the trace.
 -      (tramp-open-connection-setup-interactive-shell): Set `remote-tty'
 -      process property.  Trace stty settings if `tramp-verbose' >= 9.
 -      Apply workaround for IRIX64 bug.  Move argument of last
 -      `tramp-send-command' where it belongs to.
 -      (tramp-maybe-open-connection): Use `async-args' and `gw-args' in
 -      front of `login-args'.
 -      (tramp-get-ls-command, tramp-get-ls-command-with-dired): Run tests
 -      on "/dev/null" instead of "/".
 -      (tramp-get-ls-command-with-dired): Make test for "--dired"
 -      stronger.
 -      (tramp-set-auto-save-file-modes): Adapt version check.
 -      (tramp-set-process-query-on-exit-flag): Fix wrong parentheses.
 -      (tramp-handle-process-file): Call the program in a subshell, in
 -      order to preserve working directory.
 -      (tramp-handle-shell-command): Don't use hard-wired "/bin/sh" but
 -      `tramp-remote-sh' from `tramp-methods'.
 -      (tramp-get-ls-command): Make test for "--color=never" stronger.
 -      (tramp-check-for-regexp): Use (forward-line 1).
 +      (tramp-set-process-query-on-exit-flag, tramp-unload-tramp)
 +      * net/tramp-cmds.el (tramp-cleanup-all-connections)
 +      (tramp-reporter-dump-variable, tramp-load-report-modules)
 +      (tramp-append-tramp-buffers)
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-file-selinux-context): Use it.
 +
 +      * net/tramp-imap.el (top): Autoload `epg-make-context'.
 +
 +2010-05-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * progmodes/compile.el (compilation-buffer-modtime): Rename from
 +      buffer-modtime.  Adjust users.
 +
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * international/mule.el (auto-coding-alist): Only purecopy
 +      car of each item, not the whole list (Bug#6083).
 +
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/js.el (js-mode): Make paragraph variables local before
 +      calling c-setup-paragraph-variables (Bug#6071).
 +
 +2010-05-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * composite.el (compose-region, reference-point-alist): Fix typos
 +      in the doc strings.
 +
 +2010-05-08  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +
 +      * calc/calc-graph.el (calc-graph-plot): Use the proper form for
 +      gnuplot's "set" command.
 +
 +2010-05-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * abbrev.el (last-abbrev-text): Doc fix.
 +      (abbrev-prefix-mark): Don't escape parenthesis.
 +
 +2010-05-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * composite.el (find-composition): Doc fix.
 +
 +2010-05-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/sql.el (sql-electric-stuff): Fix typo in tag.
 +      (sql-oracle-program, sql-sqlite-options)
 +      (sql-query-placeholders-and-send): Doc fixes.
 +      (sql-set-product, sql-interactive-mode): Reflow docstrings.
 +      (sql-imenu-generic-expression, sql-buffer)
 +      (sql-mode-ansi-font-lock-keywords, sql-mode-oracle-font-lock-keywords)
 +      (sql-mode-postgres-font-lock-keywords, sql-mode-ms-font-lock-keywords)
 +      (sql-mode-sybase-font-lock-keywords)
 +      (sql-mode-informix-font-lock-keywords)
 +      (sql-mode-interbase-font-lock-keywords)
 +      (sql-mode-ingres-font-lock-keywords, sql-mode-solid-font-lock-keywords)
 +      (sql-mode-mysql-font-lock-keywords, sql-mode-sqlite-font-lock-keywords)
 +      (sql-mode-db2-font-lock-keywords, sql-mode-font-lock-keywords)
 +      (sql-product-feature, sql-highlight-product)
 +      (comint-line-beginning-position, sql-rename-buffer)
 +      (sql-toggle-pop-to-buffer-after-send-region sql-oracle)
 +      (sql-sybase, sql-informix, sql-sqlite, sql-mysql, sql-solid)
 +      (sql-ingres, sql-ms, sql-postgres, sql-interbase, sql-db2, sql-linter):
 +      Fix typos in docstrings.
 +
 +2010-05-08  Juri Linkov  <juri@jurta.org>
 +
 +      * info.el (Info-fontify-node): Put Info-breadcrumbs to the `display'
 +      property instead of `invisible' and `after-string' (bug#5998).
 +
 +2010-05-08  Juri Linkov  <juri@jurta.org>
 +
 +      * image-mode.el (image-mode-as-text): Fix typo in docstring.
 +
 +2010-05-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * filecache.el (file-cache-add-directory-list)
 +      (file-cache-add-directory-recursively): Fix typos in docstrings.
 +
 +2010-05-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/indian.el (gurmukhi-composable-pattern): Fix typo.
 +      (gujarati-composable-pattern): Fix typo.
 +
 +2010-05-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * language/indian.el (oriya-composable-pattern)
 +      (tamil-composable-pattern, malayalam-composable-pattern):
 +      Add two-part vowels to "v" (vowel sign).
 +
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * files.el (copy-directory): Handle symlinks (Bug#5982).
 +
 +2010-05-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vc-hg.el (vc-hg-state): Use HGRCPATH, not HGRC.
 +      (vc-hg-working-revision): Likewise.  Use hg parents, not hg parent
 +      (Bug#5846).
 +
 +2010-05-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/lisp.el (lisp-completion-at-point): Give it a doc string.
 +
 +      * minibuffer.el (completion-at-point): Doc fix.
 +
 +2010-05-08  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * electric.el (Electric-command-loop): Minor tweak.
 +
 +      * ebuff-menu.el (electric-buffer-list): Try and make it behave a bit
 +      better with dedicated windows.
 +
 +2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 23.2 released.
 +
 +2010-05-07  Deniz Dogan  <deniz.a.m.dogan@gmail.com>  (tiny change)
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Highlight vendor specific properties.
 +      * textmodes/css-mode.el (css-proprietary-nmstart-re): New var.
 +      (css-proprietary-property): New face.
 +      (css-font-lock-keywords): Use them.
  
 -      * net/trampver.el: Update release number.
 +2010-05-07  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-08-26  Magnus Henoch  <magnus.henoch@gmail.com>
 +      * cus-start.el (all): Add native condition for tool-bar-* symbols.
  
 -      * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Do not pass
 -      empty argument to gvfs-copy.
 +2010-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +      * textmodes/dns-mode.el (auto-mode-alist): Add entry for .zone files.
 +      * files.el (auto-mode-alist): Remove redundant entries.
  
 -      * net/tramp-compat.el (tramp-compat-delete-file): Rewrite to
 -      handle new TRASH arg of `delete-file'.
 +      * files.el (auto-save-mode): Move to simple.el to fix bootstrap.
 +      * simple.el (auto-save-mode): Move from files.el.
 +      * minibuffer.el (completion--common-suffix): Fix copy&paste error.
  
 -2010-08-26  Christian Lynbech  <christian.lynbech@tieto.com>  (tiny change)
 +2010-05-07  Christian von Roques  <roques@mti.ag>  (tiny change)
  
 -      * net/tramp.el (tramp-handle-insert-directory): Don't use
 -      `forward-word', its default syntax could be changed.
 +      * epg.el (epg-key-capablity-alist): Add "D" flag (Bug#5592).
  
 -2010-08-26  Toru TSUNEYOSHI  <t_tuneyosi@hotmail.com>
 +2010-05-07  Katsumi Yamaoka  <yamaoka@jpl.org>
 +
 +      * mail/binhex.el (binhex-decode-region-internal)
 +      * mail/uudecode.el (uudecode-decode-region-internal)
 +      * net/dns.el (dns-read-string-name, dns-write, dns-read)
 +      (dns-read-type, dns-query)
 +      * pgg-parse.el (pgg-parse-armor)
 +      * pgg.el (pgg-verify-region)
 +      * sha1.el (sha1-string-external): Don't run set-buffer-multibyte for
 +      XEmacs.
 +
 +      * net/imap.el (imap-disable-multibyte): Redefine it as a macro.
 +
 +2010-05-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * progmodes/cperl-mode.el (cperl-mode-unload-function): New function.
 +
 +      Fix use of `filter-buffer-substring' (4th arg NOPROPS removed).
 +      * emulation/cua-base.el (cua-repeat-replace-region):
 +      * emulation/cua-gmrk.el (cua-copy-region-to-global-mark)
 +      (cua-cut-region-to-global-mark):
 +      Remove text properties with `set-text-properties'.
 +
 +2010-05-06  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (top, with-progress-reporter):
 +      Use `symbol-function' inside `funcall'.
 +
 +      * net/tramp-compat.el (tramp-compat-file-attributes)
 +      (tramp-compat-delete-file, tramp-compat-delete-directory):
 +      Handle only `wrong-number-of-arguments' error.
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-copy-file): Fix typo.
 +      (tramp-gvfs-handle-file-selinux-context): Use `symbol-function'
 +      inside `funcall'.
 +
 +2010-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * minibuffer.el (completion--sreverse, completion--common-suffix):
 +      New functions.
 +      (completion-pcm--merge-completions): Extract common suffix when safe.
 +
 +      * emacs-lisp/easy-mmode.el (define-minor-mode):
 +      Make :variable more flexible.
 +      * files.el (auto-save-mode): Use it to define using define-minor-mode.
 +
 +2010-05-05  Juri Linkov  <juri@jurta.org>
 +
 +      Add `slow' and `history' tags to the desktop data.
 +
 +      * info.el (Info-virtual-nodes) [*Index*]: Add `slow' tag.
 +      (Info-virtual-files) [*Apropos*]: Add `slow' tag.
 +      (Info-finder-find-node): Require `finder.el' to be able
 +      to restore node from the desktop.
 +      (Info-desktop-buffer-misc-data): Save all nodes.  Save additional
 +      data `Info-history' and `slow' tag in the assoc list.
 +      (Info-restore-desktop-buffer): Don't restore nodes with the
 +      `slow' tag.  Restore `Info-history'.
 +
 +2010-05-05  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      Add FORCE argument to `delete-file'.
 +
 +      * net/ange-ftp.el (ange-ftp-del-tmp-name): Make it a defun,
 +      forcing to delete the temporary file.
 +      (ange-ftp-delete-file): Add FORCE arg.
 +      (ange-ftp-rename-remote-to-remote)
 +      (ange-ftp-rename-local-to-remote, ange-ftp-rename-remote-to-local)
 +      (ange-ftp-load, ange-ftp-compress, ange-ftp-uncompress):
 +      Force file deletion.
 +
 +      * net/tramp-compat.el (tramp-compat-delete-file): New defun.
 +
 +      * net/tramp.el (tramp-handle-delete-file): Add FORCE arg.
 +      (tramp-handle-make-symbolic-link, tramp-handle-load)
 +      (tramp-do-copy-or-rename-file-via-buffer)
 +      (tramp-do-copy-or-rename-file-directly)
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-handle-process-file, tramp-handle-call-process-region)
 +      (tramp-handle-shell-command, tramp-handle-file-local-copy)
 +      (tramp-handle-insert-file-contents, tramp-handle-write-region)
 +      (tramp-delete-temp-file-function): Use `tramp-compat-delete-file'.
 +
 +      * net/tramp-fish.el (tramp-fish-handle-delete-file): Add FORCE arg.
 +      (tramp-fish-handle-make-symbolic-link)
 +      (tramp-fish-handle-process-file): Use `tramp-compat-delete-file'.
 +
 +      * net/tramp-ftp.el (tramp-ftp-file-name-handler):
 +      Use `tramp-compat-delete-file'.
 +
 +      * net/tramp-gvfs.el (tramp-gvfs-handle-delete-file): Add FORCE arg.
 +      (tramp-gvfs-handle-write-region): Use `tramp-compat-delete-file'.
 +
 +      * net/tramp-imap.el (tramp-imap-handle-delete-file): Add FORCE arg.
 +      (tramp-imap-do-copy-or-rename-file): Use `tramp-compat-delete-file'.
 +
 +      * net/tramp-smb.el (tramp-smb-handle-delete-file): Add FORCE arg.
 +      (tramp-smb-handle-copy-file, tramp-smb-handle-file-local-copy)
 +      (tramp-smb-handle-rename-file, tramp-smb-handle-write-region):
 +      Use `tramp-compat-delete-file'.
 +
 +2010-05-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Minor cleanups.
 +      * subr.el (add-minor-mode): Use push.
 +      * mail/supercite.el (sc-electric-mode): Use more descriptive arg name.
 +      * emulation/edt.el (edt-select-mode): Simplify.
 +
 +      Use define-minor-mode in more cases.
 +      * term/tvi970.el (tvi970-set-keypad-mode):
 +      * simple.el (auto-fill-mode, overwrite-mode, binary-overwrite-mode)
 +      (normal-erase-is-backspace-mode):
 +      * scroll-bar.el (scroll-bar-mode): Use it and define-minor-mode.
 +      (set-scroll-bar-mode-1): (Re)move to its sole caller.
 +      (get-scroll-bar-mode): New function.
 +      * emacs-lisp/cl-macs.el (eq): Handle a non-variable first arg.
 +
 +      Use define-minor-mode for less obvious cases.
 +      * emacs-lisp/easy-mmode.el (define-minor-mode): Add :variable keyword.
 +      * emacs-lisp/cl-macs.el (terminal-parameter, eq): Add setf method.
 +      * international/iso-ascii.el (iso-ascii-mode):
 +      * frame.el (auto-raise-mode, auto-lower-mode):
 +      * composite.el (global-auto-composition-mode): Use define-minor-mode.
 +
 +2010-05-04  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/tramp.el (tramp-methods): Remove "-q" from `tramp-login-args'
 +      in order to see error messages for failed logins.
 +
 +2010-05-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * diff.el (diff-sentinel):
 +
 +      * epg.el (epg--make-temp-file, epg-decrypt-string)
 +      (epg-verify-string, epg-sign-string, epg-encrypt-string):
 +
 +      * jka-compr.el (jka-compr-partial-uncompress)
 +      (jka-compr-call-process, jka-compr-write-region, jka-compr-load):
 +
 +      * server.el (server-sentinel): Use delete-file's new FORCE arg
 +      (Bug#6070).
 +
 +2010-05-03  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Use define-minor-mode where applicable.
 +      * view.el (view-mode):
 +      * type-break.el (type-break-query-mode)
 +      (type-break-mode-line-message-mode):
 +      * textmodes/reftex.el (reftex-mode):
 +      * term/vt100.el (vt100-wide-mode):
 +      * tar-mode.el (tar-subfile-mode):
 +      * savehist.el (savehist-mode):
 +      * ibuf-ext.el (ibuffer-auto-mode):
 +      * composite.el (auto-composition-mode):
 +      * progmodes/vhdl-mode.el (vhdl-electric-mode, vhdl-stutter-mode):
 +      Use define-minor-mode.
 +      (vhdl-mode): Use static mode-line format.
 +      (vhdl-mode-line-update): Delete.
 +      (vhdl-create-mode-menu, vhdl-activate-customizations)
 +      (vhdl-hs-minor-mode): Don't bother calling it.
 +
 +2010-05-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * simple.el (with-wrapper-hook): Move.
 +      (buffer-substring-filters): Mark obsolete.
 +      (filter-buffer-substring-functions): New variable.
 +      (filter-buffer-substring): Use it.  Remove unused arg `noprops'.
 +
 +2010-05-01  Toru TSUNEYOSHI  <t_tuneyosi@hotmail.com>
              Michael Albinus  <michael.albinus@gmx.de>
  
        Implement compression for inline methods.
        (tramp-handle-file-local-copy, tramp-handle-write-region)
        (tramp-method-out-of-band-p): Use `tramp-get-inline-coding'.
  
 -2010-08-26  Noah Lavine  <noah549@gmail.com>  (tiny change)
 -
 -      Detect ssh 'ControlMaster' argument automatically in some cases.
 +2010-05-01  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * net/tramp.el (tramp-detect-ssh-controlmaster): New defun.
 -      (tramp-default-method): Use it.
 +      * bindings.el (mode-line-abbrev-mode, mode-line-auto-fill-mode):
 +      Remove unused functions.
  
 -2010-08-26  Karel Klíč  <kklic@redhat.com>
 +      * emacs-lisp/lisp-mode.el (lisp-mode): Use define-derived-mode.
 +      Set find-tag-default-function as a variable rather than a property.
  
 -      * net/tramp.el (tramp-file-name-for-operation):
 -      Add file-selinux-context.
 +      * minibuffer.el (tags-completion-at-point-function): Move to etags.el.
 +      * progmodes/etags.el (tags-completion-at-point-function):
 +      Remove left over interactive spec.  Add autoloading stub.
 +      (complete-tag): Use tags-completion-at-point-function.
  
 -2010-08-26  Łukasz Stelmach  <lukasz.stelmach@iem.pw.edu.pl>  (tiny change)
 +2010-04-30  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * play/cookie1.el (read-cookie): Fix off-by-one error (bug#6921).
 +      * minibuffer.el (tags-completion-at-point-function): Fix return value.
  
 -2010-08-26  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-29  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * simple.el (beginning-of-buffer, end-of-buffer): Doc fix
 -      (Bug#6907).
 +      * ido.el (ido-init-completion-maps): Remove C-v binding.
 +      (ido-minibuffer-setup): Don't set cua-inhibit-cua-keys (Bug#5765).
  
 -2010-08-23  Chris Foote <chris@foote.com.au>  (tiny change)
 +2010-04-29  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * progmodes/python.el (python-block-pairs): Allow use of "finally"
 -      with "else" (Bug#3991).
 +      * minibuffer.el (tags-completion-at-point-function): New function.
 +      (completion-at-point-functions): Use it.
  
 -2010-08-22  Leo  <sdl.web@gmail.com>
 +      * progmodes/etags.el (complete-tag): Revert last change.
  
 -      * net/rcirc.el (rcirc-add-or-remove): Accept a list of elements.
 -      (ignore, bright, dim, keyword): Split list of nicknames before
 -      passing to rcirc-add-or-remove (Bug#6894).
 +2010-04-29  Alan Mackenzie  <acm@muc.de>
  
 -2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +      * progmodes/cc-mode.el (c-extend-region-for-CPP): Fix an
 +      off-by-one error (in end of macro position).
  
 -      * emacs-lisp/easy-mmode.el (define-minor-mode): Doc fix (Bug#6880).
 +2010-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-08-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 +      * net/browse-url.el (browse-url-firefox-program): Use iceweasel if
 +      firefox is absent.  Don't autoload.
 +      (browse-url-galeon-program): Don't autoload.
  
 -      * whitespace.el: Fix slow cursor movement (Bug#6172).  Reported by
 -      Christoph Groth <cwg@falma.de> and Liu Xin <x_liu@neusoft.com>.
 -      New version 13.0.
 -      (whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp):
 -      Adjust initialization.
 -      (whitespace-bob-marker, whitespace-eob-marker)
 -      (whitespace-buffer-changed): New vars.
 -      (whitespace-cleanup, whitespace-color-on, whitespace-color-off)
 -      (whitespace-empty-at-bob-regexp, whitespace-empty-at-eob-regexp)
 -      (whitespace-post-command-hook, whitespace-display-char-on):
 -      Adjust code.
 -      (whitespace-looking-back, whitespace-buffer-changed): New funs.
 -      (whitespace-space-regexp, whitespace-tab-regexp): Eliminate funs.
 +2010-04-28  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-08-21  Leo  <sdl.web@gmail.com>
 +      * bindings.el (complete-symbol): Move into minibuffer.el.
  
 -      Fix buffer-list rename&refresh after killing a buffer in ido.
 -      * lisp/ido.el: Revert Óscar's.
 -      (ido-kill-buffer-at-head): Exit the minibuffer with ido-exit=refresh.
 -      Remember the buffers at head, rather than their name.
 -      * lisp/iswitchb.el (iswitchb-kill-buffer): Re-make the list.
 +      * minibuffer.el (complete-tag): Move from etags.el.  If tags
 +      completion cannot be performed, return nil instead of signalling
 +      an error.
 +      (completion-at-point): Make it an alias for complete-symbol.
 +      (complete-symbol): Move from bindings.el, and replace with the
 +      body of completion-at-point.
  
 -2010-08-21  Kirk Kelsey  <kirk.kelsey@0x4b.net>  (tiny change)
 -            Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * progmodes/etags.el (complete-tag): Move to minibuffer.el.
  
 -      * progmodes/make-mode.el (makefile-fill-paragraph): Account for the
 -      extra backslash added to each line (bug#6890).
 +2010-04-28  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-08-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * net/tramp.el (tramp-remote-selinux-p): New defun.
 +      (tramp-handle-file-selinux-context)
 +      (tramp-handle-set-file-selinux-context): Use it.
  
 -      * subr.el (read-key): Don't echo keystrokes (bug#6883).
 +2010-04-28  Sam Steingold  <sds@gnu.org>
  
 -2010-08-21  Glenn Morris  <rgm@gnu.org>
 +      * progmodes/bug-reference.el (bug-reference-url-format): Mark as
 +      `safe-local-variable' if the value is a string or a symbol with
 +      the property `bug-reference-url-format'.
  
 -      * menu-bar.el (menu-bar-games-menu): Add landmark.
 +2010-04-28  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-08-20  Glenn Morris  <rgm@gnu.org>
 +      * progmodes/bug-reference.el (bug-reference-url-format):
 +      Revert 2010-04-27 change due to security risk.
  
 -      * align.el (align-regexp): Make group and spacing arguments
 -      use the interactive defaults when non-interactive.  (Bug#6698)
 +2010-04-28  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * mail/rmail.el (rmail-forward): Replace mail-text-start with its
 -      expansion, so as not to need sendmail.
 -      (mail-text-start): Remove declaration.
 -      (rmail-retry-failure): Require sendmail.
 +      Make it possible to locally disable a globally enabled mode.
 +      * simple.el (fundamental-mode): Run fundamental-mode-hook.
 +      * emacs-lisp/derived.el (define-derived-mode): Use fundamental-mode
 +      rather than kill-all-local-variables so it runs fundamental-mode-hook.
 +      * emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
 +      Use fundamental-mode-hook to run MODE-enable-in-buffers earlier, so
 +      that subsequent hooks get a chance to disable it.
  
 -2010-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-27  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * subr.el (read-key): Don't hide the menu-bar entries (bug#6881).
 +      * emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
 +      Avoid re-enabling a minor mode after the user turned the minor mode
 +      off if MODE-enable-in-buffers is run twice (typically once from
 +      fundamental-mode's after-change-major-mode-hook and a second time from
 +      run-mode-hook's own after-change-major-mode-hook).
  
 -2010-08-18  Michael Albinus  <michael.albinus@gmx.de>
 +      * emacs-lisp/lisp.el (lisp-complete-symbol): Fail gracefully.
  
 -      * progmodes/flymake.el (flymake-start-syntax-check-process):
 -      Use `start-file-process' in order to let it run also on remote hosts.
 +2010-04-27  Sam Steingold  <sds@gnu.org>
  
 -2010-08-18  Kenichi Handa  <handa@m17n.org>
 +      * progmodes/bug-reference.el (bug-reference-url-format): Mark as
 +      `safe-local-variable' if the value is a string or a function, as
 +      documented and implemented on 2010-04-02.
  
 -      * files.el: Add `word-wrap' as safe local variable.
 +2010-04-27  Juanma Barranquero  <lekktu@gmail.com>
  
 -2010-08-18  Glenn Morris  <rgm@gnu.org>
 +      * ido.el (ido-buffer-internal): Bind `ido-use-virtual-buffers' to nil
 +      when method is 'kill.
  
 -      * woman.el (woman-translate): Case matters.  (Bug#6849)
 +2010-04-27  Agustín Martín  <agustin.martin@hispalinux.es>
  
 -2010-08-14  Chong Yidong  <cyd@stupidchicken.com>
 +      * textmodes/ispell.el (ispell-init-process): Fix personal dictionary
 +      condition in default directory check.
 +      (ispell-init-process,ispell-kill-ispell,kill-buffer-hook):
 +      Kill ispell process when killing its associated buffer.
  
 -      * simple.el (kill-region): Doc fix (Bug#6787).
 +2010-04-27  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-08-14  Glenn Morris  <rgm@gnu.org>
 +      * desktop.el (desktop-kill): ask-if-new: Ask if desktop file exists,
 +      but we aren't using it.
  
 -      * calendar/diary-lib.el (diary-header-line-format):
 -      Fit it to the window, not the frame.
 +2010-04-25  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-08-11  Andreas Schwab  <schwab@linux-m68k.org>
 +      * tool-bar.el (tool-bar-local-item-from-menu): Revert unintended
 +      checkin in 2010-04-23T16:26:11Z!monnier@iro.umontreal.ca.
  
 -      * subr.el (ignore-errors): Add debug declaration.
 +2010-04-24  Glenn Morris  <rgm@gnu.org>
  
 -2010-08-09  Geoff Gole  <geoffgole@gmail.com>  (tiny change)
 +      * emacs-lisp/authors.el (authors-obsolete-files-regexps):
 +      Ignore VCS-ignore files, and deleted nextstep preferences files.
 +      (authors-ignored-files): Ignore deleted cedet test files, and "*.el".
 +      (authors-ambiguous-files): New list.
 +      (authors-valid-file-names): Add some deleted files.
 +      (authors-renamed-files-alist): Add font-setting.el, edt-user.doc.
 +      (authors-disambiguate-file-name): New function.  (Bug#5501)
 +      (authors-canonical-file-name): Doc fix.
 +      Don't warn about obsolete files.
 +      (authors-canonical-file-name, authors-scan-el):
 +      Use authors-disambiguate-file-name.
  
 -      * whitespace.el (whitespace-color-off): Remove post-command-hook
 -      locally.
 +      * hfy-cmap.el (htmlfontify-load-rgb-file, hfy-fallback-colour-values):
 +      Add autoload cookies.
 +      (htmlfontify-unload-rgb-file, hfy-fallback-colour-values): Add docs.
 +      (generated-autoload-file): Set file-local value to "htmlfontify.el".
 +      * htmlfontify.el (caddr, cadddr): Remove fallback definitions.
 +      They have definitions / compiler macros in cl.el.
 +      (htmlfontify-load-rgb-file, hfy-fallback-colour-values):
 +      Replace manual autoloads with generated ones.
 +      (htmlfontify-unload-rgb-file): Remove autoload.
 +      * Makefile.in (autoloads): Ensure htmlfontify.el is writable.
  
 -2010-08-08  Johan Bockgård  <bojohan@gnu.org>
 +2010-04-23  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * replace.el (replace-highlight): Bind isearch-forward and
 -      isearch-error, ensuring that highlighting is updated if the user
 -      switches the search direction (Bug#6808).
 +      * emacs-lisp/bytecomp.el (byte-compile-set-default): New function.
 +      (byte-compile-setq-default): Optimize for the
 +      single-var case and don't call byte-compile-form in this case to avoid
 +      inf-loop with byte-compile-set-default.
  
 -      * isearch.el (isearch-lazy-highlight-forward): New var.
 -      (isearch-lazy-highlight-new-loop, isearch-lazy-highlight-search):
 -      (isearch-lazy-highlight-update): Use it.
 +      * progmodes/compile.el (compilation-start): Abbreviate default directory.
  
 -2010-08-06  Kenichi Handa  <handa@m17n.org>
 +2010-04-23  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * international/mule.el (define-charset): Store NAME as :base property.
 -      (ctext-non-standard-encodings-table): Pay attention to charset aliases.
 -      (ctext-pre-write-conversion): Sort ctext-standard-encodings by the
 -      current priority.  Force using the designation of the specific
 -      charset by adding `charset' text property.  Improve the whole
 -      algorithm.
 +      Implement SELINUX backends.
  
 -2010-08-05  Juanma Barranquero  <lekktu@gmail.com>
 +      * net/tramp.el (tramp-file-name-handler-alist):
 +      Add `file-selinux-context' and `set-file-selinux-context'.
 +      (tramp-handle-file-selinux-context)
 +      (tramp-handle-set-file-selinux-context): New defuns.
 +      (tramp-handle-copy-file, tramp-do-copy-or-rename-file):
 +      Handle PRESERVE-SELINUX-CONTEXT.
  
 -      * emulation/pc-select.el (pc-selection-mode-hook)
 -      (copy-region-as-kill-nomark, beginning-of-buffer-mark)
 -      (pc-selection-mode): Fix typos in docstrings.
 +      * net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist):
 +      Add `file-selinux-context' and `set-file-selinux-context'.
 +      (tramp-gvfs-handle-file-selinux-context)
 +      (tramp-gvfs-handle-set-file-selinux-context): New defuns.
 +      (tramp-gvfs-handle-copy-file): Handle PRESERVE-SELINUX-CONTEXT.
  
 -2010-08-04  Kenichi Handa  <handa@m17n.org>
 +      * net/ange-ftp.el (ange-ftp-copy-file):
 +      * net/tramp-fish.el (tramp-fish-handle-copy-file):
 +      * net/tramp-imap.el (tramp-imap-handle-copy-file):
 +      * net/tramp-smb.el (tramp-smb-handle-copy-file):
 +      Add PRESERVE-SELINUX-CONTEXT.
  
 -      * language/cyrillic.el: Don't add "microsoft-cp1251" to
 -      ctext-non-standard-encodings-alist here.
 +2010-04-22  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * international/mule.el (ctext-non-standard-encodings-alist):
 -      Add "koi8-r" and "microsoft-cp1251".
 -      (ctext-standard-encodings): New variable.
 -      (ctext-non-standard-encodings-table): List only elements for
 -      non-standard encodings.
 -      (ctext-pre-write-conversion): Adjust for the above change.
 -      Check ctext-standard-encodings.
 +      Synchronize with Tramp repository.
  
 -      * international/mule-conf.el (compound-text): Doc fix.
 -      (ctext-no-compositions): Doc fix.
 -      (compound-text-with-extensions): Doc fix.
 +      * net/tramp.el (with-connection-property, tramp-completion-mode-p)
 +      (tramp-action-process-alive, tramp-action-out-of-band)
 +      (tramp-check-for-regexp, tramp-file-name-p, tramp-equal-remote)
 +      (tramp-exists-file-name-handler): Fix docstring.
 +      (with-progress-reporter): New defmacro.
 +      (tramp-do-copy-or-rename-file, tramp-handle-dired-compress-file)
 +      (tramp-maybe-open-connection): Use it.
  
 -2010-08-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-22  Noah Lavine  <noah549@gmail.com>  (tiny change)
  
 -      * simple.el (exchange-dot-and-mark): Mark obsolete, finally.
 +      Detect ssh 'ControlMaster' argument automatically in some cases.
  
 -2010-08-03  Juanma Barranquero  <lekktu@gmail.com>
 +      * net/tramp.el (tramp-detect-ssh-controlmaster): New defun.
 +      (tramp-default-method): Use it.
  
 -      * progmodes/which-func.el (which-func-format): Split help-echo text
 -      into lines, like other mode-line tooltips.
 +2010-04-22  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * server.el (server-start): When using TCP sockets, force IPv4
 -      and use a literal 127.0.0.1 for localhost.  (Related to bug#6781.)
 +      * net/tramp.el (tramp-handle-copy-file): Add new optional
 +      parameter `preserve-selinux-context'.
 +      (tramp-file-name-for-operation): Add `set-file-selinux-context'.
  
 -2010-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-22  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * bindings.el (complete-symbol): Run completion-at-point as a fallback.
 +      * net/tramp.el (tramp-completion-handle-file-name-all-completions):
 +      Ensure, that non remote files are still checked.  Oops.
  
 -2010-08-02  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-21  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * term.el (term-delimiter-argument-list): Reflow docstring.
 -      (term-read-input-ring, term-write-input-ring, term-send-input)
 -      (term-bol, term-erase-in-display, serial-supported-or-barf):
 -      Fix typos in docstrings.
 +      Fix Bug#5840.
  
 -2010-08-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * icomplete.el (icomplete-completions): Use `non-essential'.
  
 -      * bindings.el (function-key-map): Add a S-tab => backtab fallback.
 +      * net/tramp.el (tramp-connectable-p): New defun.
 +      (tramp-handle-expand-file-name)
 +      (tramp-completion-handle-file-name-all-completions)
 +      (tramp-completion-handle-file-name-completion): Use it.
  
 -2010-08-01  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * dabbrev.el (dabbrev-completion): Fix typo in docstring.
 +      * emacs-lisp/lisp.el (lisp-completion-at-point): Try and handle errors.
  
 -2010-08-01  MON KEY  <monkey@sandpframing.com>  (tiny change)
 +2010-04-21  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * emacs-lisp/syntax.el (syntax-ppss-toplevel-pos):
 -      Fix typo in docstring (bug#6747).
 +      * vc-dir.el (vc-dir-tool-bar-map): Add :label on some tool bar items.
  
 -2010-07-30  Leo  <sdl.web@gmail.com>
 +      * tool-bar.el (tool-bar-setup): Add :label on some tool bar items.
  
 -      * eshell/esh-io.el (eshell-get-target): Better detection of
 -      read-only file (Bug#6762).
 +      * loadup.el: Load dynamic-setting.el if feature dynamic-setting
 +      is present.
  
 -2010-07-30  Juanma Barranquero  <lekktu@gmail.com>
 +      * info.el (info-tool-bar-map): Add labels.
  
 -      * align.el (align-default-spacing): Doc fix.
 -      (align-region-heuristic, align-regexp): Fix typos in docstrings.
 +      * cus-start.el (all): Add tool-bar-style and tool-bar-max-label-size.
  
 -2010-07-23  Juanma Barranquero  <lekktu@gmail.com>
 +      * cus-edit.el (custom-commands): Add labels for tool bar.
 +      (custom-buffer-create-internal, Custom-mode): Adjust for
 +      labels in custom-commands.
  
 -      * help-fns.el (find-lisp-object-file-name): Doc fix (bug#6494).
 +      * dynamic-setting.el: Renamed from font-setting.el.
  
 -2010-07-19  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-21  John Wiegley  <jwiegley@gmail.com>
  
 -      * time.el (display-time-day-and-date): Remove spurious * in docstring.
 -      (display-time-world-buffer-name, display-time-world-mode-map):
 -      Fix typos in docstrings.
 +      * ido.el (ido-init-completion-maps): For ido-switch-buffer, C-o
 +      toggles the use of virtual buffers.
 +      (ido-buffer-internal): Guard `ido-use-virtual-buffers' global value.
 +      (ido-toggle-virtual-buffers): New function.
  
 -2010-07-17  Shyam Karanatt  <shyam@swathanthran.in>  (tiny change)
 +2010-04-21  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * image-mode.el (image-display-size): New function.
 -      (image-forward-hscroll, image-next-line, image-eol, image-eob)
 -      (image-mode-fit-frame): Use it (Bug#6639).
 +      Use `define-derived-mode'; fix window selection; doc fixes.
 +      * play/tetris.el (tetris, tetris-update-speed-function)
 +      (tetris-tty-colors, tetris-x-colors, tetris-move-bottom)
 +      (tetris-move-left, tetris-move-right, tetris-rotate-prev)
 +      (tetris-rotate-next, tetris-end-game, tetris-start-game)
 +      (tetris-pause-game): Fix typos in docstrings.
 +      (tetris-mode-map, tetris-null-map):
 +      Move initialization into declaration.
 +      (tetris-mode): Define with `define-derived-mode';
 +      set show-trailing-whitespace to nil.
 +      (tetris): Prefer window already displaying the "*Tetris*" buffer.
  
 -2010-07-17  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-21  Karel Klíč  <kklic@redhat.com>
  
 -      * dired.el (dired-buffers-for-dir): Handle list values of
 -      dired-directory (Bug#6636).
 +      * files.el (backup-buffer): Handle SELinux context, and return it
 +      if a backup was made by renaming.
 +      (backup-buffer-copy): Set SELinux context to the target file.
 +      (basic-save-buffer): Set SELinux context of the newly written file.
 +      (basic-save-buffer-1): Now it also returns any SELinux context.
 +      (basic-save-buffer-2): Set SELinux context of the newly created file,
 +      and return it.
 +      * net/tramp.el (tramp-file-name-for-operation):
 +      Add file-selinux-context.
  
 -2010-07-16  Reiner Steib  <Reiner.Steib@gmx.de>
 +2010-04-21  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * vc.el (vc-coding-system-inherit-eol): New defvar.
 -      (vc-coding-system-for-diff): Use it to decide whether to inherit
 -      from the file the EOL format for reading the diffs of that file.
 -      (Bug#4451)
 +      Make the log-edit comments use RFC822 format throughout.
  
 -2010-07-16  Eli Zaretskii  <eliz@gnu.org>
 +      * vc.el (vc-checkin, vc-modify-change-comment):
 +      Adjust to new vc-start/finish-logentry.
 +      (vc-find-conflicted-file): New command.
 +      (vc-transfer-file): Adjust to new vc-checkin.
 +      (vc-next-action): Improve scoping.
  
 -      * mail/rmailmm.el (rmail-mime-save): Make the temp buffer
 -      unibyte, so compressed attachments are not compressed again.
 +      * vc-hg.el (vc-hg-log-edit-mode): Remove.
 +      (vc-hg-checkin): Remove extra arg.  Use log-edit-extract-headers.
  
 -2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 +      * vc-git.el (vc-git-log-edit-mode): Remove.
 +      (vc-git-checkin): Remove extra arg.  Use log-edit-extract-headers.
 +      (vc-git-commits-coding-system): Rename from git-commits-coding-system.
  
 -      * xt-mouse.el (xterm-mouse-event-read): Fix for characters > 127
 -      now that unicode is used (Bug#6594).
 +      * vc-dispatcher.el (vc-log-edit): Shorten names for log-edit-show-files.
 +      (vc-start-logentry): Remove argument `extra'.
 +      (vc-finish-logentry): Remove extra args.
  
 -2010-07-14  Chong Yidong  <cyd@stupidchicken.com>
 +      * vc-bzr.el (vc-bzr-log-edit-mode): Remove.
 +      (vc-bzr-checkin): Remove extra arg.  Use log-edit-extract-headers.
 +      (vc-bzr-conflicted-files): New function.
  
 -      * simple.el (push-mark-command): Set the selection if
 -      select-active-regions is non-nil.
 +      * log-edit.el (log-edit-extra-flags)
 +      (log-edit-before-checkin-process): Remove.
 +      (log-edit-summary, log-edit-header, log-edit-unknown-header): New faces.
 +      (log-edit-headers-alist): New var.
 +      (log-edit-header-contents-regexp): New const.
 +      (log-edit-match-to-eoh): New function.
 +      (log-edit-font-lock-keywords): Use them.
 +      (log-edit): Insert a "Summary:" header as default.
 +      (log-edit-mode): Mark font-lock rules as case-insensitive.
 +      (log-edit-done): Cleanup headers.
 +      (log-view-process-buffer): Remove.
 +      (log-edit-extract-headers): New function to replace it.
  
 -2010-07-10  Glenn Morris  <rgm@gnu.org>
 +2010-04-20  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * calendar/calendar.el (calendar-week-end-day): New function.
 -      * calendar/cal-tex.el (cal-tex-cursor-month): Remove unused vars.
 -      Respect calendar-week-start-day.  (Bug#6606)
 -      (cal-tex-insert-day-names, cal-tex-insert-blank-days)
 -      (cal-tex-insert-blank-days-at-end): Respect calendar-week-start-day.
 -      (cal-tex-first-blank-p, cal-tex-last-blank-p): Simplify, and
 -      respect calendar-week-start-day.
 +      * subr.el (default-direction-reversed): Remove obsolescence info.
  
 -2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * simple.el (use-region-p): Doc fix (Bug#6607).
 +      * vc-dispatcher.el (vc-finish-logentry): Don't mess so badly with the
 +      windows/frames.
  
 -2010-07-07  Christoph Scholtes  <cschol2112@gmail.com>
 +      * emacs-lisp/lisp.el (lisp-completion-at-point): Complete around point.
 +      I.e. include text after point in the completion region.
 +      Also, return nil when we're not after/in a symbol.
  
 -      * progmodes/python.el (python-font-lock-keywords): Add Python 2.7
 -      builtins (BufferError, BytesWarning, WindowsError; callables
 -      bin, bytearray, bytes, format, memoryview, next, print; __package__).
 +      * international/mule-cmds.el (view-hello-file): Don't fiddle with the
 +      default enable-multibyte-characters.
  
 -2010-07-07  Glenn Morris  <rgm@gnu.org>
 +2010-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * play/zone.el (zone-fall-through-ws): Fix next-line ->
 -      forward-line fallout.
 +      * international/mule.el: Help the user choose a valid coding-system.
 +      (read-buffer-file-coding-system): New function.
 +      (set-buffer-file-coding-system): Use it.  Prompt the user if the
 +      coding-system cannot encode all the chars.
  
 -2010-07-06  Chong Yidong  <cyd@stupidchicken.com>
 +      * vc-bzr.el: Use standard *vc* and *vc-diff* buffers.
 +      (vc-bzr-shelve-show, vc-bzr-shelve-apply)
 +      (vc-bzr-shelve-apply-and-keep, vc-bzr-shelve-snapshot):
 +      Don't use *vc-bzr-shelve*.
  
 -      * mouse.el (mouse-appearance-menu): Add docstring.
 +2010-04-19  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * help.el (describe-key): Print up-event using key-description.
 +      Fix the version number for added files.
 +      * vc-hg.el (vc-hg-working-revision): Check if the file is
 +      registered after hg parent fails (Bug#5961).
  
 -2010-07-03  Michael Albinus  <michael.albinus@gmx.de>
 +2010-04-19  Glenn Morris  <rgm@gnu.org>
  
 -      * net/zeroconf.el (zeroconf-resolve-service)
 -      (zeroconf-service-resolver-handler): Use `dbus-byte-array-to-string'.
 -      (zeroconf-publish-service): Use `dbus-string-to-byte-array'.
 +      * htmlfontify.el (htmlfontify-buffer)
 +      (htmlfontify-copy-and-link-dir): Autoload entry points.
  
 -2010-07-03  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +2010-04-19  Magnus Henoch  <magnus.henoch@gmail.com>
  
 -      * net/zeroconf.el (zeroconf-service-remove-hook): New defun.
 +      * vc-hg.el (vc-hg-annotate-extract-revision-at-line): Expand file
 +      name relative to the project root (Bug#5960).
  
 -2010-06-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-04-19  Glenn Morris  <rgm@gnu.org>
  
 -      Avoid displaying files with a nil state in vc-dir.
 -      * vc-dir.el (vc-dir-update): Obey the noinsert argument in all
 -      cases that cause insertion.
 -      (vc-dir-resynch-file): Tell vc-dir-update to avoid inserting files
 -      with a nil state.
 +      * vc-git.el (vc-git-print-log): Doc fix.
  
 -2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-19  Óscar Fuentes  <ofv@wanadoo.es>
  
 -      * xml.el (xml-parse-region): Avoid infloop (Bug#5281).
 +      * ido.el (ido-file-internal): Fix 2009-12-02 change.
  
 -2010-06-29  Leo  <sdl.web@gmail.com>
 +2010-04-19  Christoph  <cschol2112@googlemail.com>  (tiny change)
  
 -      * emacs-lisp/rx.el (rx): Doc fix.  (Bug#6537)
 +      * progmodes/grep.el (grep-compute-defaults): Fix handling of host
 +      default settings (Bug#5928).
  
 -2010-06-27  Oleksandr Gavenko  <gavenkoa@gmail.com>  (tiny change)
 +2010-04-19  Glenn Morris  <rgm@gnu.org>
  
 -      * generic-x.el (bat-generic-mode): Fix regexp for command line
 -      switches (Bug#5719).
 +      * progmodes/fortran.el (fortran-match-and-skip-declaration):
 +      New function.
 +      (fortran-font-lock-keywords-3): Use it.  (Bug#1385)
  
 -2010-06-27  Masatake YAMATO  <yamato@redhat.com>
 +2010-04-19  Kenichi Handa  <handa@m17n.org>
  
 -      * htmlfontify.el (hfy-face-attr-for-class): Use append instead
 -      of nconc to avoid pure storage error (Bug#6239).
 +      * language/indian.el (malayalam-composable-pattern): Fix previous
 +      change (add U+0D4D "SIGN VIRAMA").
 +      (oriya-composable-pattern): Add U+0B30 and fix typo in the regexp.
 +      (tamil-composable-pattern): Fix typo in the regexp.
 +      (telugu-composable-pattern): Fix U+0C4D and typo in the regexp.
 +      (kannada-composable-pattern): Fix U+0CB0 and typo in the regexp.
 +      (malayalam-composable-pattern): Fix U+0D4D and typo in the regexp.
  
 -2010-06-27  Christoph  <cschol2112@googlemail.com>  (tiny change)
 +2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * bookmark.el (bookmark-bmenu-2-window, bookmark-bmenu-other-window)
 -      (bookmark-bmenu-other-window-with-mouse): Remove unnecessary
 -      bindings of bookmark-automatically-show-annotations (Bug#6515).
 +      * textmodes/tex-mode.el (latex-mode): Revert 2008-03-03 change to
 +      paragraph-separate (Bug#5821).
  
 -2010-06-25  Eli Zaretskii  <eliz@gnu.org>
 +2010-04-19  Juri Linkov  <juri@jurta.org>
  
 -      * arc-mode.el (archive-zip-extract): Don't quote the file name on
 -      MS-Windows and MS-DOS.  (Bug#6467, Bug#6144)
 +      Put breadcrumbs on overlay instead of inserting to buffer (bug#5809).
  
 -2010-06-24  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +      * info.el (Info-find-node-2): Comment out code that skips
 +      breadcrumbs line.
 +      (Info-mouse-follow-link): New command.
 +      (Info-link-keymap): New keymap.
 +      (Info-breadcrumbs): Rename from `Info-insert-breadcrumbs'.
 +      Return a string with links instead of inserting breadcrumbs
 +      to the Info buffer.
 +      (Info-fontify-node): Comment out code that inserts breadcrumbs.
 +      Instead of putting the `invisible' text property over the Info
 +      header, make an overlay over the Info header with the `invisible'
 +      property and `after-string' set to the string returned by
 +      `Info-breadcrumbs'.
  
 -      * comint.el (make-comint, make-comint-in-buffer): Mention return
 -      value in the docstrings.  (Bug#6498)
 +2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-06-24  Yoni Rabkin  <yoni@rabkins.net>
 +      * help.el (help-window-setup-finish): Doc fix (Bug#5830).
 +      Reported by monkey@sandpframing.com.
  
 -      * bs.el (bs-mode-font-lock-keywords): Remove "by" from Dired pattern,
 -      since it is not present when using some non-default switches.
 +2010-04-19  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-06-23  Karl Fogel  <kfogel@red-bean.com>
 +      * tmm.el (tmm-prompt): Remove obsolete call to x-popup-menu.
 +      (tmm-get-keymap): Add key-binding shortcuts now that they're not
 +      available in the "keyseq cache" any more.
  
 -      * simple.el (compose-mail): Fix doc string to refer to
 -      `compose-mail-user-agent-warnings', instead of to the
 -      nonexistent `compose-mail-check-user-agent'.
 +      * custom.el (defcustom): Add edebug spec.
  
 -2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-04-18  Juri Linkov  <juri@jurta.org>
  
 -      Fix vc-annotate for renamed files when using Git.
 -      * vc-git.el (vc-git-find-revision): Deal with empty results from
 -      ls-files.  Doe not pass the object as a file name to cat-file, it
 -      is not a file name.
 -      (vc-git-annotate-command): Pass the file name using -- to avoid
 -      ambiguity with the revision.
 -      (vc-git-previous-revision): Pass a relative file name.
 +      Test for special mode-class in view-buffer instead of view-file (bug#5513).
  
 -2010-06-22  Glenn Morris  <rgm@gnu.org>
 +      * view.el (view-file, view-buffer): Move test for special mode-class
 +      from view-file to view-buffer.
  
 -      * progmodes/js.el (js-mode-map): Use standard capitalization and
 -      ellipses for menu entries.
 +      * tar-mode.el (tar-extract): Turn if's into one cond
 +      like in arc-mode.el.
  
 -      * wid-edit.el (widget-complete): Doc fix.
 +2010-04-18  Juri Linkov  <juri@jurta.org>
  
 -2010-06-22  Jürgen Hötzel  <juergen@hoetzel.info>  (tiny change)
 +      Add 7z archive format support (bug#5475).
  
 -      * wid-edit.el (widget-complete): Fix typo in 2009-12-02 change.
 +      * arc-mode.el (archive-zip-extract): Try to find 7z executable.
 +      (archive-7z-extract): New defcustom.
 +      (archive-find-type): Add magic string for 7z.
 +      (archive-extract-by-stdout): Add new optional arg `stderr-file'.
 +      If `stderr-file' is non-nil, use `(t stderr-file)' for the
 +      `buffer' arg of `call-process'.
 +      (archive-zip-extract): Check `archive-zip-extract' for "7z" and
 +      call the function `archive-7z-extract' with the variable
 +      `archive-7z-extract' let-bound to `archive-zip-extract'.
 +      (archive-7z-summarize, archive-7z-extract): New functions.
  
 -2010-06-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * international/mule.el (auto-coding-alist):
 +      * files.el (auto-mode-alist): Add 7z file extension.
  
 -      Fix annotating other revisions for renamed files in vc-annotate.
 -      * vc-annotate.el (vc-annotate): Add an optional argument for the
 -      VC backend.  Use it when non-nil.
 -      (vc-annotate-warp-revision): Pass the VC backend to vc-annotate
 -      (Bug#6487).
 +2010-04-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      Fix vc-annotate-show-changeset-diff-revision-at-line for git.
 -      * vc-annotate.el (vc-annotate-show-diff-revision-at-line-internal):
 -      Do not pass the file name to the 'previous-revision call when we
 -      don't want a file diff.  (Bug#6489)
 +      * loadup.el: Setup hash-cons for pure data.
  
 -2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +      Fix duplicate entries in cedet's loaddefs.el files.
 +      * emacs-lisp/autoload.el (autoload-file-load-name): Be more clever.
 +      Should make most file-local generated-autoload-file unnecessary.
 +      (print-readably): Silence warnings.
 +      (autoload-find-destination): Take load-name as an arg to make sure
 +      it's the same as the one that will be in the file.
 +      (autoload-generate-file-autoloads): Adjust to above changes.
 +      Try to make the dataflow a bit simpler.
  
 -      Fix finding revisions for renamed files in vc-annotate.
 -      * vc.el (vc-find-revision): Add an optional argument for
 -      the VC backend.  Use it when non-nil.
 -      * vc-annotate.el (vc-annotate-find-revision-at-line): Pass the VC
 -      backend to vc-find-revision.  (Bug#6487)
 +      * cvs-status.el (cvs-refontify): Remove unused.
  
 -2010-06-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-04-18  Jay Belanger  <jay.p.belanger@gmail.com>
  
 -      Fix reading file names in Git annotate buffers.
 -      * vc-git.el (vc-git-annotate-extract-revision-at-line):
 -      Remove trailing whitespace.  Suggested by Eric Hanchrow.  (Bug#6481)
 +      * calc/calc.el (calc-mode-map): Bind "O" to `calc-missing-key'.
  
 -2010-06-20  Alan Mackenzie  <acm@muc.de>
 +      * calc/calc-bin.el (calc-radix): Have the "O" option turn on
 +      twos-complement mode.
  
 -      * progmodes/cc-mode.el (c-before-hack-hook): When the mode is set
 -      in file local variables, set it first.
 +2010-04-17  Jay Belanger  <jay.p.belanger@gmail.com>
  
 -2010-06-19  Glenn Morris  <rgm@gnu.org>
 +      * calc/calc-ext.el (calc-init-extensions): Add keybinding for
 +      'calc-option'.  Add `calc-option-prefix-help' to calc-help autoloads.
 +      (calc-inverse): Add "Option" to message, as appropriate.
 +      (calc-hyperbolic): Add "Option" to message, as appropriate.
 +      (calc-option, calc-is-option): New functions.
  
 -      * descr-text.el (describe-char-unicode-data): Insert separating
 -      space when needed.  (Bug#6422)
 +      * calc/calc-help.el (calc-full-help): Add `calc-option-help'.
 +      (calc-option-prefix-help): New function.
  
 -      * progmodes/idlwave.el (idlwave-action-and-binding):
 -      Fix typo in 2009-12-03 change.  (Bug#6450)
 +      * calc/calc-misc.el (calc-help): Add "Option" entry.
  
 -2010-06-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * calc/calc.el (calc-local-var-list): Add `calc-option-flag'.
 +      (calc-option-flag): New variable.
 +      (calc-do): Set `calc-option-flag to nil.
 +      (calc-set-mode-line): Add "Opt " as appropriate.
  
 -      * subr.el (read-quoted-char): Fix up last change (bug#6290).
 +2010-04-16  Juri Linkov  <juri@jurta.org>
  
 -2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      Move scrolling commands from simple.el to window.el
 +      because their primitives are implemented in window.c.
  
 -      * font-lock.el (font-lock-major-mode): Rename from
 -      font-lock-mode-major-mode to distinguish it from
 -      global-font-lock-mode's own font-lock-mode-major-mode (bug#6135).
 -      (font-lock-set-defaults):
 -      * font-core.el (font-lock-default-function): Adjust users.
 -      (font-lock-mode): Don't set it at all.
 +      * simple.el (scroll-error-top-bottom)
 +      (scroll-up-command, scroll-down-command, scroll-up-line)
 +      (scroll-down-line, scroll-other-window-down)
 +      (beginning-of-buffer-other-window, end-of-buffer-other-window):
 +      * window.el (scroll-error-top-bottom)
 +      (scroll-up-command, scroll-down-command, scroll-up-line)
 +      (scroll-down-line, scroll-other-window-down)
 +      (beginning-of-buffer-other-window, end-of-buffer-other-window):
 +      Move from simple.el to window.el because their primitives are
 +      implemented in window.c.
  
 -2010-06-15  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-16  Juri Linkov  <juri@jurta.org>
  
 -      * vc-annotate.el (vc-annotate): Use vc-read-revision.
 +      * isearch.el (isearch-lookup-scroll-key): Check both
 +      `isearch-scroll' and `scroll-command' properties.
 +      (scroll-up, scroll-down): Remove `isearch-scroll' property.
  
 -2010-06-15  Glenn Morris  <rgm@gnu.org>
 +      * mwheel.el (mwheel-scroll): Remove `isearch-scroll' property.
  
 -      * calendar/appt.el (appt-time-msg-list): Doc fix.
 -      (appt-check): Let-bind appt-warn-time.
 -      (appt-add): Make the 3rd argument optional.
 -      Simplify argument names.  Doc fix.  Check for integer WARNTIME.
 -      Only add WARNTIME to the output list if non-nil.
 +      * simple.el (scroll-up-command, scroll-down-command)
 +      (scroll-up-line, scroll-down-line): Remove `isearch-scroll' property.
  
 -2010-06-15  Ivan Kanis  <apple@kanis.eu>
 +2010-04-15  Juri Linkov  <juri@jurta.org>
  
 -      * calendar/appt.el (appt-check): Let the 3rd element of
 -      appt-time-msg-list specify the warning time.
 -      (appt-add): Add new argument with the warning time.  (Bug#5176)
 +      * simple.el (scroll-up-command, scroll-down-command)
 +      (scroll-up-line, scroll-down-line): Put `scroll-command'
 +      property on the these symbols.  Remove them from
 +      `scroll-preserve-screen-position-commands'.
  
 -2010-06-12  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>  (tiny change)
 +      * mwheel.el (mwheel-scroll): Put `scroll-command' and
 +      `isearch-scroll' properties on the `mwheel-scroll' symbol.
 +      Remove it from `scroll-preserve-screen-position-commands'.
  
 -      * vc-svn.el (vc-svn-after-dir-status): Fix regexp for Subversions
 -      older than version 1.6.  (Bug#6361)
 +      * isearch.el (isearch-allow-scroll): Doc fix.
  
 -2010-06-12  Helmut Eller  <eller.helmut@gmail.com>
 +2010-04-15  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * emacs-lisp/cl-macs.el (destructuring-bind): Bind `bind-enquote',
 -      used by cl-do-arglist.  (Bug#6408)
 +      * net/tramp.el (tramp-error-with-buffer): Don't show the
 +      connection buffer when we are in completion mode.
 +      (tramp-file-name-handler): Catch the error for some operations
 +      when we are in completion mode.  This gives the user the chance to
 +      correct the file name in the minibuffer.
  
 -2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-15  Glenn Morris  <rgm@gnu.org>
  
 -      * emacs-lisp/advice.el (ad-compile-function):
 -      Define warning-suppress-types before we let-bind it (bug#6275).
 +      * progmodes/verilog-mode.el (verilog-forward-sexp): Avoid free variable.
  
 -      * vc-dispatcher.el: Rename mode-line-hook to vc-mode-line-hook;
 -      declare it, make it buffer-local and permanent-local (bug#6324).
 -      (vc-resynch-window): Adjust name.
 -      * vc-hooks.el (vc-find-file-hook): Adjust name.
 +2010-04-15  Juanma Barranquero  <lekktu@gmail.com>
  
 -2010-06-07  Jonathan Rockway  <jon@jrock.us>
 +      Simplify by using `define-derived-mode'.
 +      * info.el (Info-mode):
 +      * calendar/todo-mode.el (todo-mode):
 +      * play/gomoku.el (gomoku-mode): Define with `define-derived-mode'.
 +      (gomoku-mode-map): Move initialization into declaration.
  
 -      * net/rcirc.el: Add support for password authentication.
 -      (rcirc-server-alist): Add :password keyword.
 -      (rcirc): Ask for a password, or get it from the server's alist.
 -      (rcirc-connect): Add password argument.  Pass it to server.
 +2010-04-14  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-06-05  Juanma Barranquero  <lekktu@gmail.com>
 +      Fix Bug#5840.
 +      * ido.el (ido-file-name-all-completions-1):
 +      * minibuffer.el (minibuffer-completion-help):
 +      * net/tramp.el (tramp-completion-mode-p): Use `non-essential'.
  
 -      * net/dbus.el (dbus-register-method): Declare function.
 -      (dbus-handle-event, dbus-property-handler): Fix typos in docstrings.
 -      (dbus-introspect): Doc fix.
 -      (dbus-event-bus-name, dbus-introspect-get-interface)
 -      (dbus-introspect-get-argument): Reflow docstrings.
 +2010-04-14  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-06-04  Chong Yidong  <cyd@stupidchicken.com>
 +      * simple.el (non-essential): New var.
  
 -      * term/common-win.el (x-colors): Add "dark green" and "dark
 -      turquoise" (Bug#6332).
 +      Add a new field `location' to bookmarks for non-file bookmarks.
 +      * bookmark.el (bookmark-location): Use the new field, if present.
 +      (bookmark-insert-location): Undo last change, not needed any more.
 +      * man.el (Man-bookmark-make-record):
 +      * woman.el (woman-bookmark-make-record): Add `location' field.
  
 -2010-06-03  Glenn Morris  <rgm@gnu.org>
 +2010-04-14  Juri Linkov  <juri@jurta.org>
  
 -      * desktop.el (desktop-clear-preserve-buffers):
 -      Add "*Warnings*" buffer.  (Bug#6336)
 +      * simple.el (scroll-error-top-bottom): New defcustom.
 +      (scroll-up-command, scroll-down-command): Use it.  Doc fix.
  
 -2010-06-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * emulation/pc-select.el (pc-select-override-scroll-error):
 +      Obsolete in favor of `scroll-error-top-bottom'.
  
 -      * vc-dir.el (vc-dir-update): Remove entries with a nil state (bug#5539).
 +2010-04-14  Juri Linkov  <juri@jurta.org>
  
 -2010-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * tutorial.el (tutorial--default-keys): Rebind `C-v' to
 +      `scroll-up-command' and `M-v' to `scroll-down-command'.
  
 -      * vc-bzr.el (vc-bzr-revision-completion-table): Apply
 -      `file-directory-p' to the filename part rather than to the whole text.
 +      * emulation/cua-rect.el (cua--init-rectangles):
 +      * forms.el (forms--change-commands):
 +      * image-mode.el (image-mode-map):
 +      Remap scroll-down-command and scroll-up-command
 +      in addition to scroll-down and scroll-up.
  
 -2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-04-14  Juri Linkov  <juri@jurta.org>
  
 -      * man.el (Man-completion-table): Let the user type "-k " (bug#6319).
 +      * mwheel.el (scroll-preserve-screen-position-commands):
 +      Add mwheel-scroll to this list of commands.
  
 -2010-05-31  Drew Adams  <drew.adams@oracle.com>
 +      * simple.el (scroll-preserve-screen-position-commands):
 +      Add scroll-up-command, scroll-down-command, scroll-up-line,
 +      scroll-down-line to this list of commands.
  
 -      * files.el (directory-files-no-dot-files-regexp): Doc fix (bug#6298).
 +2010-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-05-31  Juanma Barranquero  <lekktu@gmail.com>
 +      * obsolete/complete.el: Move from lisp/complete.el.
  
 -      * subr.el (momentary-string-display): Just use read-event to read
 -      the exit event (Bug#6238).
 +      * pcomplete.el (pcomplete-here*): Fix mistaken change (bug#5935).
  
 -2010-05-29  Chong Yidong  <cyd@stupidchicken.com>
 +      * emacs-lisp/easy-mmode.el (define-minor-mode): Passing a nil argument
 +      to the minor mode function now turns the mode ON unconditionally.
  
 -      * ansi-color.el: Delete unused escape sequences (Bug#6085).
 -      (ansi-color-drop-regexp): New constant.
 -      (ansi-color-apply, ansi-color-filter-region)
 -      (ansi-color-apply-on-region): Delete unrecognized control sequences.
 -      (ansi-color-apply): Build string list before calling concat.
 +2010-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +      * vc-dir.el (vc-dir-kill-line): New command.
 +      (vc-dir-mode-map): Bind it to C-k.
  
 -      * progmodes/verilog-mode.el (verilog-type-font-keywords):
 -      Use font-lock-constant-face, not obsolete font-lock-reference-face.
 +      * bookmark.el (bookmark-insert-location): Handle a nil filename.
 +
 +      * woman.el: Add bookmark declarations to silence the compiler.
 +      (bookmark-prop-get): Use `man-args' rather than `filename' as a first
 +      step to compatibility between man and woman bookmarks.
 +      Adjust for Man-default-bookmark-title renaming.
 +      (woman-bookmark-jump): Adjust accordingly.  Don't forget to autoload.
 +
 +      * man.el: Add bookmark declarations to silence the compiler.
 +      (Man-name-local-regexp): Make it match NAME as well.
 +      (Man-getpage-in-background): Return the buffer.
 +      (Man-notify-when-ready): Use `case'.
 +      (man-set-default-bookmark-title): Rename to Man-default-bookmark-title.
 +      Don't hardcode "NAME".  Simplify.
 +      (Man-bookmark-make-record): Use Man-arguments rather than buffer-name.
 +      Rename from Man-bookmark-make-record.
 +      (Man-bookmark-jump): Rename from man-bookmark-jump.  Simplify now that
 +      we have the actual man-args.  Use Man-getpage-in-background rather
 +      than `man' since the arg is already processed.  Let bookmark.el do the
 +      window handling.  Only wait for the relevant process.
 +      Don't forget to autoload.
 +
 +      * bookmark.el (bookmark-default-file): Use locate-user-emacs-file.
 +
 +2010-04-12  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 +
 +      * woman.el (woman-bookmark-make-record, woman-bookmark-jump):
 +      New functions.
 +      (woman-mode): Setup bookmark support.
  
 -2010-05-27  Masatake YAMATO  <yamato@redhat.com>
 +      * man.el (man-set-default-bookmark-title, man-bookmark-make-record)
 +      (man-bookmark-jump): New functions.
 +      (Man-mode): Setup bookmark support.
  
 -      * htmlfontify.el (hfy-face-resolve-face): New function.
 -      (hfy-face-to-style): Use it (Bug#6279).
 +2010-04-10  Jari Aalto  <jari.aalto@cante.net>
  
 -2010-05-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * comint.el (comint-password-prompt-regexp): Use regexp-opt, and
 +      recognize ssh-keygen prompt (Bug#2817).
  
 -      * epa.el (epa--select-keys): Don't explicitly delete the window since
 -      that can fail (e.g. sole window in frame).  Use dedication instead.
 +2010-04-10  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-05-19  Uday S Reddy  <u.s.reddy@cs.bham.ac.uk>  (tiny change)
 +      * net/tramp.el (tramp-do-copy-or-rename-file): Add progress reporter.
  
 -      * textmodes/fill.el (fill-region): Don't fill past the end (bug#6201).
 +2010-04-10  Michael Albinus  <michael.albinus@gmx.de>
  
 -2010-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      Synchronize with Tramp repository.
  
 -      * subr.el (read-quoted-char): Resolve modifiers after key
 -      remapping (bug#6212).
 +      * net/tramp.el (tramp-completion-function-alist)
 +      (tramp-file-name-regexp, tramp-chunksize)
 +      (tramp-local-coding-commands, tramp-remote-coding-commands):
 +      Fix docstring.
 +      (tramp-remote-process-environment): Use `format' instead of `concat'.
 +      (tramp-handle-directory-files-and-attributes)
 +      (tramp-get-remote-path): Use `copy-tree'.
 +      (tramp-handle-file-name-all-completions): Backward/ XEmacs
 +      compatibility: Use `completion-ignore-case' if
 +      `read-file-name-completion-ignore-case' does not exist.
 +      (tramp-do-copy-or-rename-file-directly): Do not use
 +      `tramp-handle-file-remote-p'.
 +      (tramp-do-copy-or-rename-file-out-of-band):
 +      Use `tramp-compat-delete-directory'.
 +      (tramp-do-copy-or-rename-file-out-of-band)
 +      (tramp-compute-multi-hops, tramp-maybe-open-connection):
 +      Use `format-spec-make'.
 +      (tramp-find-foreign-file-name-handler)
 +      (tramp-advice-make-auto-save-file-name)
 +      (tramp-set-auto-save-file-modes): Remove superfluous check for
 +      `stringp'.  This is done inside `tramp-tramp-file-p'.
 +      (tramp-debug-outline-regexp): New defconst.
 +      (tramp-get-debug-buffer): Use it.
 +      (tramp-check-for-regexp): Use (forward-line 1).
 +      (tramp-set-auto-save-file-modes): Adapt version check.
  
 -2010-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * net/tramp-compat.el (tramp-advice-file-expand-wildcards):
 +      Wrap call of `featurep' for 2nd argument.
 +      (tramp-compat-make-temp-file): Simplify fallback implementation.
 +      (tramp-compat-copy-tree): Remove function.
 +      (tramp-compat-delete-directory): Provide implementation for older
 +      Emacsen.
  
 -      * tmm.el (tmm-prompt): Don't try to precompute bindings.
 -      (tmm-get-keymap): Compute shortcuts (bug#6171).
 +      * net/tramp-fish.el (tramp-fish-handle-directory-files-and-attributes):
 +      Do not use `tramp-fish-handle-file-attributes.
  
 -2010-05-10  Glenn Morris  <rgm@gnu.org>
 +      * net/trampver.el: Update release number.
  
 -      * desktop.el (desktop-save-buffer-p): Don't mistakenly include
 -      all dired buffers, even tramp ones.  (Bug#5755)  [Backport from trunk]
 +2010-04-10  Glenn Morris  <rgm@gnu.org>
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +      * progmodes/compile.el (compilation-save-buffers-predicate):
 +      Add missing :version tag.
  
 -      * Version 23.2 released.
 +2010-04-09  Sam Steingold  <sds@gnu.org>
  
 -2010-05-03  Chong Yidong  <cyd@stupidchicken.com>
 +      * progmodes/compile.el (compilation-save-buffers-predicate):
 +      Remove the "autoload" cookie.
  
 -      * international/mule.el (auto-coding-alist): Only purecopy
 -      car of each item, not the whole list (Bug#6083).
 +      * progmodes/bug-reference.el (turn-on-bug-reference-mode)
 +      (turn-on-bug-reference-prog-mode): Remove, `bug-reference-mode'
 +      and `bug-reference-prog-mode' can be used in hooks directly.
  
 -2010-05-02  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * progmodes/js.el (js-mode): Make paragraph variables local before
 -      calling c-setup-paragraph-variables (Bug#6071).
 +      Add --author support to git commit.
 +      * vc-git.el (vc-git-checkin): Pass extra-args to the commit command.
 +      (vc-git-log-edit-mode): New minor mode.
 +      (log-edit-mode, log-edit-extra-flags, log-edit-mode):
 +      New declarations.
  
 -2010-05-01  Eli Zaretskii  <eliz@gnu.org>
 +2010-04-09  Eric Raymond  <esr@snark.thyrsus.com>
  
 -      * composite.el (compose-region, reference-point-alist): Fix typos
 -      in the doc strings.
 +      * vc-hooks.el, vc-git.el: Improve documentation comments.
  
 -2010-04-28  Alexander Klimov  <alserkli@inbox.ru>  (tiny change)
 +2010-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * calc/calc-graph.el (calc-graph-plot): Use the proper form for
 -      gnuplot's "set" command.
 +      Fix some of the problems in defsubst* (bug#5728).
 +      * emacs-lisp/cl-macs.el (defsubst*): Don't substitute non-trivial args.
 +      (cl-defsubst-expand): Do the substitutions simultaneously (bug#5728).
  
 -2010-04-26  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-07  Sam Steingold  <sds@gnu.org>
  
 -      * abbrev.el (last-abbrev-text): Doc fix.
 -      (abbrev-prefix-mark): Don't escape parenthesis.
 +      * progmodes/compile.el (compilation-save-buffers-predicate):
 +      New custom variable.
 +      (compile, recompile): Pass it to `save-some-buffers'.
  
 -2010-04-24  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-07  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * composite.el (find-composition): Doc fix.
 +      * wid-edit.el (widget-choose): Move cursor to the second line of
 +      the buffer (Bug#5695).
  
 -2010-04-24  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-07  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * progmodes/sql.el (sql-electric-stuff): Fix typo in tag.
 -      (sql-oracle-program, sql-sqlite-options)
 -      (sql-query-placeholders-and-send): Doc fixes.
 -      (sql-set-product, sql-interactive-mode): Reflow docstrings.
 -      (sql-imenu-generic-expression, sql-buffer)
 -      (sql-mode-ansi-font-lock-keywords, sql-mode-oracle-font-lock-keywords)
 -      (sql-mode-postgres-font-lock-keywords, sql-mode-ms-font-lock-keywords)
 -      (sql-mode-sybase-font-lock-keywords)
 -      (sql-mode-informix-font-lock-keywords)
 -      (sql-mode-interbase-font-lock-keywords)
 -      (sql-mode-ingres-font-lock-keywords, sql-mode-solid-font-lock-keywords)
 -      (sql-mode-mysql-font-lock-keywords, sql-mode-sqlite-font-lock-keywords)
 -      (sql-mode-db2-font-lock-keywords, sql-mode-font-lock-keywords)
 -      (sql-product-feature, sql-highlight-product)
 -      (comint-line-beginning-position, sql-rename-buffer)
 -      (sql-toggle-pop-to-buffer-after-send-region)
 -      (sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql, sql-solid)
 -      (sql-ingres, sql-ms, sql-postgres, sql-interbase, sql-db2, sql-linter):
 -      Fix typos in docstrings.
 +      Add new VC methods: vc-log-incoming and vc-log-outgoing.
 +      * vc.el (vc-print-log-setup-buttons): New function split out from
 +      vc-print-log-internal.
 +      (vc-log-internal-common): New function, a parametrized version of
 +      vc-print-log-internal.
 +      (vc-print-log-internal): Just call vc-log-internal-common with the
 +      right arguments.
 +      (vc-incoming-outgoing-internal):
 +      (vc-log-incoming, vc-log-outgoing): New functions.
 +      (vc-log-view-type): New permanent local variable.
  
 -2010-04-23  Juri Linkov  <juri@jurta.org>
 +      * vc-hooks.el (vc-menu-map): Bind vc-log-incoming and vc-log-outgoing.
  
 -      * info.el (Info-fontify-node): Put Info-breadcrumbs to the `display'
 -      property instead of `invisible' and `after-string' (bug#5998).
 +      * vc-bzr.el (vc-bzr-log-view-mode): Use vc-log-view-type instead
 +      of the dynamic bound vc-short-log.
 +      (vc-bzr-log-incoming, vc-bzr-log-outgoing): New functions.
  
 -2010-04-23  Juri Linkov  <juri@jurta.org>
 +      * vc-git.el (vc-git-log-outgoing): New function.
 +      (vc-git-log-view-mode): Use vc-log-view-type instead
 +      of the dynamic bound vc-short-log.
  
 -      * image-mode.el (image-mode-as-text): Fix typo in docstring.
 +      * vc-hg.el (vc-hg-log-view-mode): Use vc-log-view-type instead
 +      of the dynamic bound vc-short-log.  Highlight the tag.
 +      (vc-hg-log-incoming, vc-hg-log-outgoing): New functions.
 +      (vc-hg-outgoing, vc-hg-incoming, vc-hg-outgoing-mode):
 +      (vc-hg-incoming-mode): Remove.
 +      (vc-hg-extra-menu-map): Do not bind vc-hg-incoming and vc-hg-outgoing.
  
 -2010-04-23  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-07  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * filecache.el (file-cache-add-directory-list)
 -      (file-cache-add-directory-recursively): Fix typos in docstrings.
 +      Fix default-directory for vc-root-diff.
 +      * vc.el (vc-root-diff): Bind default-directory to the root
 +      directory for the diff command.
  
 -2010-04-22  Kenichi Handa  <handa@m17n.org>
 +2010-04-07  Michael McNamara  <mac@mail.brushroad.com>
 +
 +      * progmodes/verilog-mode.el (verilog-forward-sexp):
 +      (verilog-calc-1): Support "disable fork" and "fork wait" multi
 +      word keywords, suggested by Steve Pearlmutter.
 +      (verilog-pretty-declarations): Support lineup of declarations in
 +      port lists.
 +      (verilog-skip-backward-comments, verilog-skip-forward-comment-p):
 +      fix bug for /* / comments.
 +      (verilog-backward-syntactic-ws, verilog-forward-syntactic-ws):
 +      Speed up and simplfy as this is never called with a bound.
 +      (verilog-pretty-declarations): Enhance to line up declarations
 +      inside a parameter list, suggested by Alan Morgan.
 +      (verilog-pretty-expr): Tune assignment regular expression match
 +      string for corner cases; also use markers instead of character
 +      number as indent changes the later.
 +
 +2010-04-07  Wilson Snyder  <wsnyder@wsnyder.org>
 +
 +      * progmodes/verilog-mode.el (verilog-type-keywords): Fix pulldown
 +      as missing keyword.
 +      (verilog-read-sub-decls-line): Fix comments in AUTO_TEMPLATE
 +      causing truncation of AUTOWIRE signals.  Reported by Bruce Tennant.
 +      (verilog-auto-inst, verilog-auto-inst-port): Add vl_mbits for
 +      AUTO_TEMPLATEs needing multiple array bits.  Suggested by Bruce
 +      Tennant.
 +      (verilog-keywords):
 +      (verilog-1800-2005-keywords, verilog-1800-2009-keywords): Add IEEE
 +      1800-2009 keywords, including "global.".
 +
 +2010-04-06  John Wiegley  <jwiegley@gmail.com>
 +
 +      * ido.el (ido-add-virtual-buffers-to-list): Fix duplicated names
 +      appearing in buffer list (if a live buffer name matched a recentf
 +      file basename).  Should use uniquify to offer a real solution.
 +
 +2010-04-06  John Wiegley  <jwiegley@gmail.com>
 +
 +      * ido.el (ido-use-virtual-buffers, ido-virtual): Move a ChangeLog
 +      comment to code, and add a :version tag.
 +      (ido-virtual-buffers): Move defvar to fix byte-compiler warning.
 +
 +2010-04-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Enable recentf-mode if using virtual buffers.
 +      * ido.el (recentf-list): Declare for byte-compiler.
 +      (ido-virtual-buffers): Move up to silence byte-compiler.  Add docstring.
 +      (ido-make-buffer-list): Simplify.
 +      (ido-add-virtual-buffers-to-list): Simplify.  Enable recentf-mode.
  
 -      * language/indian.el (gurmukhi-composable-pattern): Fix typo.
 -      (gujarati-composable-pattern): Fix typo.
 +2010-04-05  Juri Linkov  <juri@jurta.org>
  
 -2010-04-20  Kenichi Handa  <handa@m17n.org>
 +      Scrolling commands which scroll a line instead of full screen.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01452.html
  
 -      * language/indian.el (oriya-composable-pattern)
 -      (tamil-composable-pattern, malayalam-composable-pattern):
 -      Add two-part vowels to "v" (vowel sign).
 +      * simple.el (scroll-up-line, scroll-down-line): New commands.
 +      Put property isearch-scroll=t on them.
  
 -2010-04-20  Chong Yidong  <cyd@stupidchicken.com>
 +      * emulation/ws-mode.el (scroll-down-line, scroll-up-line):
 +      Remove commands.
  
 -      * files.el (copy-directory): Handle symlinks (Bug#5982).
 +2010-04-05  Juri Linkov  <juri@jurta.org>
  
 -      * progmodes/compile.el (compilation-next-error-function):
 -      Revert 2009-10-12 change (Bug#5983).
 +      Scrolling commands which do not signal errors at top/bottom.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01452.html
  
 -2010-04-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +      * simple.el (scroll-up-command, scroll-down-command): New commands.
 +      Put property isearch-scroll=t on them.
  
 -      * vc-hg.el (vc-hg-state): Use HGRCPATH, not HGRC.
 -      (vc-hg-working-revision): Likewise.  Use hg parents, not hg parent
 -      (Bug#5846).
 +      * bindings.el (global-map): Rebind [prior] from `scroll-down' to
 +      `scroll-down-command' and [next] from `scroll-up' to
 +      `scroll-up-command'.
  
 -2010-04-20  Glenn Morris  <rgm@gnu.org>
 +      * emulation/cua-base.el: Put property CUA=move on
 +      `scroll-up-command' and `scroll-down-command'.
 +      (cua--init-keymaps): Remap `scroll-up-command' to `cua-scroll-up'
 +      and `scroll-down-command' to `cua-scroll-down'.
  
 -      * emacs-lisp/lisp.el (lisp-completion-at-point): Give it a doc string.
 +2010-04-05  Juanma Barranquero  <lekktu@gmail.com>
  
 -      * minibuffer.el (completion-at-point): Doc fix.
 +      * help.el (describe-mode): Return nil.
  
 -2010-04-17  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-04-04  John Wiegley  <jwiegley@gmail.com>
  
 -      Fix the version number for added files.
 -      * vc-hg.el (vc-hg-working-revision): Check if the file is
 -      registered after hg parent fails (Bug#5961).
 +      * ido.el (ido-use-virtual-buffers): New variable to indicate
 +      whether "virtual buffer" support is enabled for IDO.
 +      (ido-virtual): Face used to indicate virtual buffers in the list.
 +      (ido-buffer-internal): If a buffer is chosen, and no such buffer
 +      exists, but a virtual buffer of that name does (which would be why
 +      it was in the list), recreate the buffer by reopening the file.
 +      (ido-make-buffer-list): If virtual buffers are being used, call
 +      `ido-add-virtual-buffers-to-list' before the make list hook.
 +      (ido-virtual-buffers): New variable which contains a copy of the
 +      current contents of the `recentf-list', albeit pared down for the
 +      sake of speed, and with proper faces applied.
 +      (ido-add-virtual-buffers-to-list): Using the `recentf-list',
 +      create a list of "virtual buffers" to present to the user in
 +      addition to the currently open set.  Note that this logic could
 +      get rather slow if that list is too large.  With the default
 +      `recentf-max-saved-items' of 200, there is little speed penalty.
  
 -2010-04-17  Glenn Morris  <rgm@gnu.org>
 +2010-04-03  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * htmlfontify.el (htmlfontify-buffer)
 -      (htmlfontify-copy-and-link-dir): Autoload entry points.
 +      * font-lock.el: Require CL when compiling.
 +      (font-lock-turn-on-thing-lock): Use `case'.
  
 -2010-04-17  Magnus Henoch  <magnus.henoch@gmail.com>
 +2010-04-03  Eli Zaretskii  <eliz@gnu.org>
  
 -      * vc-hg.el (vc-hg-annotate-extract-revision-at-line): Expand file
 -      name relative to the project root (Bug#5960).
 +      * emacs-lisp/authors.el (authors-fixed-entries): Add entry for Eli
 +      Zaretskii.
  
 -2010-04-16  Glenn Morris  <rgm@gnu.org>
 +2010-04-02  Juri Linkov  <juri@jurta.org>
  
 -      * vc-git.el (vc-git-print-log): Doc fix.
 +      * ehelp.el (electric-help-orig-major-mode):
 +      New buffer-local variable.
 +      (electric-help-mode): Set it to original major-mode.  Doc fix.
 +      (with-electric-help): Use `electric-help-orig-major-mode' instead
 +      of (default-value 'major-mode).  Doc fix.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00069.html
  
 -2010-04-14  Óscar Fuentes  <ofv@wanadoo.es>
 +2010-04-02  Sam Steingold  <sds@gnu.org>
  
 -      * ido.el (ido-file-internal): Fix 2009-12-02 change.
 +      * vc-hg.el (vc-hg-push, vc-hg-pull): Use `apply' when calling
 +      `vc-hg-command' with a list of flags.
  
 -2010-04-14  Christoph  <cschol2112@googlemail.com>  (tiny change)
 +      * progmodes/bug-reference.el (bug-reference-bug-regexp):
 +      Also accept "patch" and "RFE".
 +      (bug-reference-fontify): `bug-reference-url-format' can also be a
 +      function to be able to handle the bug kind.
 +      (turn-on-bug-reference-mode, turn-on-bug-reference-prog-mode): Add.
  
 -      * progmodes/grep.el (grep-compute-defaults): Fix handling of host
 -      default settings (Bug#5928).
 +2010-04-02  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-04-10  Glenn Morris  <rgm@gnu.org>
 +      * tmm.el (tmm-get-keymap): Check with symbolp before passing
 +      value to fboundp, it may not be a symbol.
  
 -      * progmodes/fortran.el (fortran-match-and-skip-declaration):
 -      New function.
 -      (fortran-font-lock-keywords-3): Use it.  (Bug#1385)
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-04-07  Kenichi Handa  <handa@m17n.org>
 +      * cus-edit.el (custom-buffer-sort-alphabetically): Update :version.
  
 -      * language/indian.el (malayalam-composable-pattern): Fix previous
 -      change (add U+0D4D "SIGN VIRAMA").
 -      (oriya-composable-pattern): Add U+0B30 and fix typo in the regexp.
 -      (tamil-composable-pattern): Fix typo in the regexp.
 -      (telugu-composable-pattern): Fix U+0C4D and typo in the regexp.
 -      (kannada-composable-pattern): Fix U+0CB0 and typo in the regexp.
 -      (malayalam-composable-pattern): Fix U+0D4D and typo in the regexp.
 +2010-03-31  Juri Linkov  <juri@jurta.org>
  
 -2010-04-06  Chong Yidong  <cyd@stupidchicken.com>
 +      * simple.el (next-line, previous-line): Re-throw a signal
 +      with `signal' instead of using `ding'.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01432.html
  
 -      * textmodes/tex-mode.el (latex-mode): Revert 2008-03-03 change to
 -      paragraph-separate (Bug#5821).
 +2010-03-31  Juri Linkov  <juri@jurta.org>
  
 -2010-04-05  Juri Linkov  <juri@jurta.org>
 +      * simple.el (keyboard-escape-quit): Raise deselecting the active
 +      region higher than exiting the minibuffer.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00904.html
  
 -      Put breadcrumbs on overlay instead of inserting to buffer (bug#5809).
 +2010-03-31  Juri Linkov  <juri@jurta.org>
  
 -      * info.el (Info-find-node-2): Comment out code that skips
 -      breadcrumbs line.
 -      (Info-mouse-follow-link): New command.
 -      (Info-link-keymap): New keymap.
 -      (Info-breadcrumbs): Rename from `Info-insert-breadcrumbs'.
 -      Return a string with links instead of inserting breadcrumbs
 -      to the Info buffer.
 -      (Info-fontify-node): Comment out code that inserts breadcrumbs.
 -      Instead of putting the `invisible' text property over the Info
 -      header, make an overlay over the Info header with the `invisible'
 -      property and `after-string' set to the string returned by
 -      `Info-breadcrumbs'.
 +      * image.el (image-animated-p): Use `image-metadata' instead of
 +      `image-extension-data'.  Get GIF extenstion data from metadata
 +      property `extension-data'.
  
 -2010-04-03  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * help.el (help-window-setup-finish): Doc fix (Bug#5830).
 -      Reported by monkey@sandpframing.com.
 +      * simple.el (append-to-buffer): Simplify.
  
 -2010-03-30  Tomas Abrahamsson  <tab@lysator.liu.se>
 +2010-03-31  Tomas Abrahamsson  <tab@lysator.liu.se>
  
        * textmodes/artist.el (artist-mode): Fix typo in docstring.
        Reported by Alex Schröder <kensanata@gmail.com>.  (Bug#5807)
  
 -2010-03-30  Kenichi Handa  <handa@m17n.org>
 +2010-03-31  Kenichi Handa  <handa@m17n.org>
  
        * language/sinhala.el (composition-function-table): Fix regexp for
        the new Unicode specification.
        (telugu-composable-pattern): New variables to cope with the new
        Unicode specification.  Use them in composition-function-table.
  
 -2010-03-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        Make tmm-menubar work for the Buffers menu again (bug#5726).
        * tmm.el (tmm-prompt): Also handle keymap entries in the form of
        vectors rather than cons cells, as used in menu-bar-update-buffers.
  
 -2010-03-28  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * progmodes/js.el (js-auto-indent-flag, js-mode-map)
        (js-insert-and-indent): Revert 2009-08-15 change, restoring
  
        * mail/sendmail.el (mail-default-directory): Doc fix.
  
 -2010-03-27  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * mail/sendmail.el (mail-default-directory): Doc fix.
  
 -2010-03-27  Eli Zaretskii  <eliz@gnu.org>
 +2010-03-31  Eli Zaretskii  <eliz@gnu.org>
  
        * subr.el (version-regexp-alist, version-to-list)
        (version-list-<, version-list-=, version-list-<=)
        (version-list-not-zero, version<, version<=, version=): Doc fix.
        (Bug#5744).
  
 -2010-03-26  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 -            Nick Roberts  <nickrob@snap.net.nz>
 -
 -      * progmodes/gdb-ui.el (gdb-apple-test): New function.
 -      (gdb-init-1): Use it.
 -
 -2010-02-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +2010-02-31  Dan Nicolaescu  <dann@ics.uci.edu>
  
        * vc.el (vc-root-diff): Doc fix.
  
 -2010-03-25  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * vc.el (vc-print-log, vc-print-root-log): Doc fix.
  
        * simple.el (append-to-buffer): Fix last change.
  
 -2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * simple.el (append-to-buffer): Ensure that point is preserved if
        BUFFER is the current buffer.  Suggested by YAMAMOTO Mitsuharu.
        (Bug#5749)
  
 +2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * files.el (auto-mode-case-fold): Change default to t.
 +
 +2010-03-30  Juri Linkov  <juri@jurta.org>
 +
 +      * dired-x.el (dired-omit-mode): Doc fix.
 +
 +2010-03-30  Juri Linkov  <juri@jurta.org>
 +
 +      * replace.el (occur-accumulate-lines): Move occur-engine related
 +      functions `occur-accumulate-lines' and `occur-engine-add-prefix'
 +      to be located after `occur-engine'.
 +
 +2010-03-30  Juri Linkov  <juri@jurta.org>
 +
 +      Make occur handle multi-line matches cleanly with context.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01280.html
 +
 +      * replace.el (occur-accumulate-lines): Add optional arg `pt'.
 +      (occur-engine): Add local variables `ret', `prev-after-lines',
 +      `prev-lines'.  Use more arguments for `occur-context-lines'.
 +      Set first elem of its returned list to `data', and the second elem
 +      to `prev-after-lines'.  Don't print the separator line.
 +      In the end, print remaining context after-lines.
 +      (occur-context-lines): Add new arguments `begpt', `endpt',
 +      `lines', `prev-lines', `prev-after-lines'.  Rewrite to combine
 +      after-lines of the previous match with before-lines of the
 +      current match and not overlap them.  Return a list with two
 +      values: the output line and the list of context after-lines.
 +
 +2010-03-30  Juri Linkov  <juri@jurta.org>
 +
 +      * replace.el (occur-accumulate-lines): Fix a bug where the first
 +      context line at the beginning of the buffer was missing.
 +
 +2010-03-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * files.el: Make bidi-display-reordering safe variable for boolean
 +      values.
 +
 +2010-03-29  Phil Hagelberg  <phil@evri.com>
 +            Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * subr.el: Extend progress reporters to perform "spinning".
 +      (progress-reporter-update, progress-reporter-do-update):
 +      Handle non-numeric value arguments.
 +      (progress-reporter--pulse-characters): New var.
 +
 +2010-03-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * progmodes/compile.el (compilation-start): Fix regexp detection
 +      of initial cd command (Bug#5771).
 +
 +2010-03-28  Stefan Guath  <stefan@automata.se>  (tiny change)
 +
 +      * find-dired.el (find-dired): Use read-directory-name (Bug#5777).
 +
 +2010-03-27  Nick Roberts  <nickrob@snap.net.nz>
 +
 +      Restore GDB/MI fuctionality removed by 2009-12-29T07:15:34Z!nickrob@snap.net.nz.
 +      * progmodes/gdb-mi.el: Restore.
 +      * progmodes/gdb-ui.el: Remove.
 +      * progmodes/gud.el: Re-accommodate for gdb-mi.el.
 +
 +2010-03-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * desktop.el (desktop-save-buffer-p): Don't mistakenly include
 +      all dired buffers, even tramp ones.  (Bug#5755)
 +
 +2010-03-25  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Add "union tags" in mpc.el.
 +      * mpc.el: Remove backward compatibility code.
 +      (mpc-browser-tags): Change default.
 +      (mpc--find-memoize-union-tags): New var.
 +      (mpc-cmd-flush, mpc-cmd-special-tag-p): New fun.
 +      (mpc-cmd-find): Handle the case where the playlist does not exist.
 +      Handle union-tags.
 +      (mpc-cmd-list): Use mpc-cmd-special-tag-p.  Handle union-tags.
 +      (mpc-cmd-add): Use mpc-cmd-flush.
 +      (mpc-tagbrowser-tag-name): New fun.
 +      (mpc-tagbrowser-buf): Use it.
 +      (mpc-songs-refresh): Use cond.  Move to point-min as a fallback.
 +
  2010-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 +      Misc cleanup.
 +      * progmodes/make-mode.el (makefile-bsdmake-rule-action-regex):
 +      Use replace-regexp-in-string.
 +      (makefile-mode-abbrev-table): Merge defvar and define-abbrev-table.
 +      (makefile-imake-mode-syntax-table): Move init into defvar.
 +      (makefile-mode): Use define-derived-mode.
 +
        * progmodes/make-mode.el (makefile-rule-action-regex): Backtrack less.
        (makefile-make-font-lock-keywords): Adjust rule since submatch 1 may
        not be present any more.
        * faces.el (set-face-attribute): Fix typo in docstring.
        (face-valid-attribute-values): Reflow docstring.
  
 -2010-03-23  Glenn Morris  <rgm@gnu.org>
 +2010-03-24  Glenn Morris  <rgm@gnu.org>
  
        * textmodes/flyspell.el (sgml-lexical-context): Autoload it (Bug#5752).
  
 -2010-03-21  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
  
        * indent.el (indent-for-tab-command): Doc fix.
  
 -2010-03-22  Juanma Barranquero  <lekktu@gmail.com>
 +2010-03-24  Alan Mackenzie  <acm@muc.de>
 +
 +      * progmodes/cc-engine.el (c-remove-stale-state-cache):
 +      Fix off-by-one error.  Fixes bug #5747.
 +
 +2010-03-24  Juanma Barranquero  <lekktu@gmail.com>
  
        * image-dired.el (image-dired-display-thumbs): Fix typo in docstring.
        (image-dired-read-comment): Doc fix.
        (reftex-cite-punctuation, reftex-search-unrecursed-path-first)
        (reftex-highlight-selection): Fix typos in docstrings.
  
 -2010-03-19  Juanma Barranquero  <lekktu@gmail.com>
 +2010-03-24  Juanma Barranquero  <lekktu@gmail.com>
  
        * minibuffer.el (completion-in-region-functions): Fix docstring typos.
  
 -2010-03-18  Glenn Morris  <rgm@gnu.org>
 +2010-03-24  Glenn Morris  <rgm@gnu.org>
  
        * mail/rmail.el (rmail-highlight-face): Restore option deleted
        2008-02-13 without comment; mark it obsolete.
        (rmail-highlight-headers): Use rmail-highlight-face once more.
  
 -2010-03-16  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
  
        * woman.el (woman2-process-escapes): Only consume the newline if
        the filler character is on a line by itself (Bug#5729).
  
 -2010-03-16  Kenichi Handa  <handa@m17n.org>
 +2010-03-24  Kenichi Handa  <handa@m17n.org>
  
        * language/indian.el (devanagari-composable-pattern): Add more
        consonants.
  
 -2010-03-14  Michael Albinus  <michael.albinus@gmx.de>
 +2010-03-24  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/trampver.el: Update release number.
  
 -2010-03-13  Glenn Morris  <rgm@gnu.org>
 -
 -      * Makefile.in (ELCFILES): Add cedet/semantic/imenu.el.
 -
 -2010-03-13  Michael Albinus  <michael.albinus@gmx.de>
 +2010-03-24  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/tramp.el (tramp-find-executable):
        Use `tramp-get-connection-buffer'.  Make the regexp for checking
        (tramp-open-connection-setup-interactive-shell): Remove workaround
        for OpenSolaris bug, it is not needed anymore.
  
 -2010-03-12  Glenn Morris  <rgm@gnu.org>
 +2010-03-24  Glenn Morris  <rgm@gnu.org>
  
        * emacs-lisp/cl-macs.el (defsubst*): Add autoload cookie.  (Bug#4427)
  
 -2010-03-11  Wilson Snyder  <wsnyder@wsnyder.org>
 +2010-03-24  Wilson Snyder  <wsnyder@wsnyder.org>
  
        * files.el (auto-mode-alist): Accept more verilog file patterns.
  
 +2010-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc-dir.el (vc-dir-headers): Abbreviate the working dir.
 +
 +2010-03-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * vc-bzr.el (vc-bzr-log-edit-mode): Add --fixes support to
 +      log-edit-before-checkin-process.
 +
 +      * vc.el (vc-modify-change-comment): Pass MODE to vc-start-logentry.
 +
 +      * vc.el, vc-bzr.el, vc-hg.el (log-edit-mode): Declare.
 +
 +      * vc-dispatcher.el (vc-start-logentry): Doc fix.
 +      (log-view-process-buffer, log-edit-extra-flags): Declare.
 +
 +      * log-edit.el (log-edit-before-checkin-process): Doc fix.
 +
 +2010-03-23  Sam Steingold  <sds@gnu.org>
 +
 +      Fix bug#5620: recalculate all markers on compilation buffer
 +      modifications, not on file modifications.
 +      * progmodes/compile.el (compilation-buffer-modtime): New buffer-local
 +      variable: the buffer modification time, for buffers not associated with
 +      files.
 +      (compilation-mode): Create it.
 +      (compilation-filter): Update it.
 +      (compilation-next-error-function): Use it instead of
 +      `visited-file-modtime' for timestamp.
 +
 +2010-03-23  Juri Linkov  <juri@jurta.org>
 +
 +      Implement Occur multi-line matches.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg01044.html
 +
 +      * replace.el (occur): Doc fix.
 +      (occur-engine): Set `begpt' to the beginning of the first line.
 +      Set `endpt' to the end of the last match line.  At first, count
 +      line numbers between `origpt' and `begpt'.  Split out code from
 +      `out-line' variable to new let-bindings `match-prefix' and
 +      `match-str'.  In `out-line' add non-numeric prefix to all
 +      non-first lines of multi-line matches.  Finally, count lines
 +      between `begpt' and `endpt' and add to `lines'.
 +
 +2010-03-23  Juri Linkov  <juri@jurta.org>
 +
 +      * replace.el (occur-accumulate-lines, occur-engine):
 +      Use `occur-engine-line' instead of duplicate code.
 +      (occur-engine-line): New function created from duplicate code
 +      in `occur-accumulate-lines' and `occur-engine'.
 +
 +      * replace.el (occur-engine-line): Add optional arg `keep-props'.
 +      (occur-accumulate-lines, occur-engine): Add arg `keep-props'.
 +
 +2010-03-23  Juri Linkov  <juri@jurta.org>
 +
 +      * finder.el: Remove TODO tasks.
 +
 +      * info.el (Info-finder-find-node): Add node "all"
 +      with all package info.  Handle a list of multiple keywords
 +      separated by comma.
 +      (info-finder): In interactive use with a prefix argument,
 +      use `completing-read-multiple' to read a list of keywords
 +      separated by comma.
 +
 +2010-03-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Add a new completion style `substring'.
 +      * minibuffer.el (completion-basic--pattern): New function.
 +      (completion-basic-try-completion, completion-basic-all-completions):
 +      Use it.
 +      (completion-substring--all-completions)
 +      (completion-substring-try-completion)
 +      (completion-substring-all-completions): New functions.
 +      (completion-styles-alist): New style `substring'.
 +
 +2010-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Get rid of .elc files after removal of the corresponding .el.
 +      * Makefile.in (compile-clean): New target.
 +      (compile-main): Use it.
 +
 +2010-03-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * Makefile.in (compile-main): cd to $(lisp) in a sub-shell, so we
 +      don't do make there.  When compiling with separate object dir, there
 +      is no Makefile there.
 +
 +2010-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Get rid of the ELCFILES abomination, again.
 +      * Makefile.in (update-elclist, ELCFILES, compile-last): Remove.
 +      (all, compile): Don't call compile-last.
 +      (compile-main): Build the "elcfiles" list dynamically.
 +      (compile-targets): New (internal) target.
 +
 +2010-03-21  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * Makefile.in (top_srcdir): Define.
 +      (abs_top_builddir): Define.
 +      (srcdir): Don't append `/..'.
 +      (EMACS): Use ${abs_top_builddir}.
 +      (all, compile, compile-always, compile-last): Don't set emacswd.
 +      (update-subdirs, update-authors): Use $(top_srcdir) instead of
 +      $(srcdir).
 +      (lisp): Use $(srcdir) instead of @srcdir@.
 +
 +2010-03-21  Juri Linkov  <juri@jurta.org>
 +
 +      Fix message of multi-line occur regexps and multi-buffer header lines.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00457.html
 +
 +      * replace.el (occur-1): Don't display regexp if it is longer
 +      than window-width.  Use `query-replace-descr' to display regexp.
 +      (occur-engine): Don't display regexp in the buffer header for
 +      multi-buffer occur.  Display a separate header line with total
 +      match count and regexp for multi-buffer occur.
 +      Use `query-replace-descr' to display regexp.
 +
 +2010-03-20  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * net/secrets.el: Fix parenthesis.
 +      (secrets-enabled): Fix parenthesis.
 +
 +2010-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Use more relative file and directory names.
 +      * Makefile.in (EMACS): Arrange for it to work when we chdir.
 +      (setwins, setwins_almost, setwins_for_subdirs):
 +      Don't `cd'; output relative names.
 +      (all, compile, compile-always, compile-last): Set emacswd.
 +      (custom-deps, finder-data, autoloads, update-subdirs, compile-last):
 +      Just cd to the lisp source dir so we can use relative file names.
 +
 +      * outline.el (hide-sublevels): Unfix the paren non-typo! (bug#5738).
 +
 +2010-03-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * textmodes/rst.el: Use faces for font-lock customization, and make the
 +      old -face variables obsolete.
 +      (rst-block, rst-external, rst-definition, rst-directive, rst-comment)
 +      (rst-emphasis1, rst-emphasis2, rst-literal, rst-reference): New faces.
 +      (rst-block-face, rst-external-face, rst-definition-face)
 +      (rst-directive-face, rst-comment-face, rst-emphasis1-face)
 +      (rst-emphasis2-face, rst-literal-face, rst-reference-face):
 +      Make obsolete.
 +      (rst-font-lock-keywords-function): Update for above changes.
 +
 +2010-03-20  Juri Linkov  <juri@jurta.org>
 +
 +      * s-region.el:
 +      * obsolete/s-region.el: Move to obsolete.
 +
 +2010-03-19  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * vc-dispatcher.el (vc-do-command): Remove reference to `vc-path'.
 +
 +2010-03-19  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vc-hooks.el (vc-path): Remove variable and obsolete declaration.
 +
 +2010-03-19  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Add special markup processing for commit logs.
 +      * log-edit.el (log-edit-extra-flags): New variable.
 +      (log-edit): Add new argument MODE.  Use that mode when non-nil
 +      instead of the log-view-mode.
 +      (log-view-process-buffer): New function.
 +
 +      * vc.el: Document that the checkin method takes optional
 +      arguments.  Document new backend specific method: log-view-mode.
 +      (vc-default-log-edit-mode): New function.
 +      (vc-checkin): Use a backend specific log-view-mode.
 +      Pass extra arguments to the checkin method.
 +      (vc-modify-change-comment): Pass a dummy extra argument.
 +
 +      * vc-dispatcher.el (vc-log-edit): Add a mode argument, pass it to
 +      log-edit.
 +      (vc-start-logentry): Add a mode argument, pass it to vc-log-edit.
 +      (vc-finish-logentry): Process the log buffer before passing it
 +      down.  Pass log-edit-extra-flags.
 +
 +      * vc-bzr.el (vc-bzr-checkin): Pass extra arguments to the commit
 +      command.
 +      (log-edit-extra-flags, log-edit-before-checkin-process):
 +      New declarations.
 +
 +      * vc-hg.el (vc-hg-checkin): Pass extra arguments to the commit
 +      command.
 +      (log-edit-extra-flags, log-edit-before-checkin-process):
 +      New declarations.
 +      (vc-hg-log-edit-mode): New derived mode.
 +
 +      * vc-arch.el (vc-arch-checkin):
 +      * vc-cvs.el (vc-cvs-checkin):
 +      * vc-git.el (vc-git-checkin):
 +      * vc-mtn.el (vc-mtn-checkin):
 +      * vc-rcs.el (vc-rcs-checkin):
 +      * vc-sccs.el (vc-sccs-checkin):
 +      * vc-svn.el (vc-svn-checkin): Add an optional ignored argument.
 +
 +2010-03-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * outline.el (hide-sublevels): Don't hide trailing newline (and fix
 +      parent typo).
 +
 +2010-03-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * password-cache.el (password-cache, password-cache-expiry): Autoload.
 +
 +2010-03-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs-lisp/autoload.el (autoload-rubric): Doc fix.
 +
 +      * replace.el (query-replace-history): Give it a doc string.
 +      (map-query-replace-regexp): Use query-replace-from-history-variable
 +      and query-replace-to-history-variable.
 +
 +      * mail/hashcash.el (declare-function): Remove duplicate definition.
 +
 +      * mail/emacsbug.el (report-emacs-bug-pretest-address):
 +      Make it an obsolete alias for report-emacs-bug-address.
 +      (message-strip-special-text-properties): Declare.
 +      (report-emacs-bug): Remove test for a pretest bug address.
 +      Combine message-mode-specific code.
 +
 +      * mail/supercite.el: Don't require sendmail.
 +      (mh-in-header-p): Declare rather than using with-no-warnings.
 +      (sc-no-blank-line-or-header): Use rfc822-goto-eoh rather than
 +      mail-header-end.  Don't bind mysterious variable `kill-lines-magic'.
 +
 +      * calendar/cal-french.el: Convert to utf-8.
 +
 +      * files.el (interpreter-mode-alist): Use emacs-lisp-mode for
 +      Emacs scripts.
 +
 +2010-03-16  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/secrets.el (secrets-enabled): New variable.  Use it instead
 +      of a subfeature.
 +
 +2010-03-15  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * net/secrets.el (top): Register the D-Bus signals only when the
 +      service "org.freedesktop.secrets" can be pinged.
 +      Provide subfeature `enabled'.
 +
 +2010-03-14  Juri Linkov  <juri@jurta.org>
 +
 +      Add finder unknown keywords.
 +
 +      * finder.el (finder-unknown-keywords): New function.
 +
 +      * info.el (Info-finder-find-node): Use `finder-unknown-keywords'
 +      to create a Finder node with unknown keywords.
 +
 +2010-03-14  Juri Linkov  <juri@jurta.org>
 +
 +      * finder.el (finder-compile-keywords): Replace `princ' with
 +      `prin1' on a list of symbols interned from keyword strings.
 +
 +      * emacs-lisp/lisp-mnt.el (lm-keywords-list): If `keywords' contains
 +      a comma, then split keywords using a comma and optional whitespace.
 +      Otherwise, split by whitespace.
 +
 +      * complete.el:
 +      * face-remap.el:
 +      * log-view.el:
 +      * net/hmac-def.el:
 +      * net/hmac-md5.el:
 +      * net/netrc.el:
 +      * progmodes/mixal-mode.el: Fix keywords.
 +
 +2010-03-13  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * Makefile.in (ELCFILES): Add net/secrets.elc.
 +
 +      * net/secrets.el: New file.
 +
 +2010-03-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * facemenu.el (list-colors-display, list-colors-print): New arg
 +      callback.  Use it to allow selecting colors.
 +
 +      * wid-edit.el (widget-image-insert): Insert image prop even if the
 +      current display is non-graphic.
 +      (widget-field-value-set): New fun.
 +      (editable-field): Use it.
 +      (widget-field-value-get): Clean up unused var.
 +      (widget-color-value-create, widget-color--choose-action):
 +      New funs.  Allow using list-colors-display to choose color.
 +
 +2010-03-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el: Resort topmost custom groups.
 +      (custom-buffer-sort-alphabetically): Default to t.
 +      (customize-apropos): Use apropos-parse-pattern.
 +      (custom-search-field): New var.
 +      (custom-buffer-create-internal): Add custom-apropos search field.
 +      (custom-add-parent-links): Don't display parent doc.
 +      (custom-group-value-create): Don't sort top-level custom group.
 +      (custom-magic-value-create): Show visibility button before option name.
 +
 +      (custom-variable-state): New fun, from custom-variable-state-set.
 +      (custom-variable-state-set): Use it.
 +      (custom-group-value-create): Hide options with standard values
 +      using the :hidden-states property.  Use progress reporter.
 +
 +      (custom-show): Simplify.
 +      (custom-visibility): Disable images by default.
 +      (custom-variable): New property :hidden-states.
 +      (custom-variable-value-create): Enable images for
 +      custom-visibility widgets.  Use :hidden-states property to
 +      determine initial visibility.
 +
 +      * wid-edit.el (widget-image-find): Give images center ascent.
 +      (visibility): Add :on-image and :off-image properties.
 +      (widget-visibility-value-create): Use them.
 +
 +2010-03-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cus-edit.el (processes): Remove from development group.
 +      (oop, hypermedia): Delete group.
 +      (comm): Promote to top-level group.
 +
 +      * net/browse-url.el (browse-url):
 +      * net/xesam.el (xesam):
 +      * net/tramp.el (tramp):
 +      * net/goto-addr.el (goto-address):
 +      * net/ange-ftp.el (ange-ftp): Put in comm group.
 +
 +      * view.el (view): Remove from editing group.
 +
 +      * uniquify.el (uniquify): Put in files group.
 +
 +      * net/browse-url.el (browse-url):
 +      * ps-print.el (postscript): Put in external group.
 +
 +      * cus-edit.el (outlines):
 +      * textmodes/text-mode.el (text-mode-hook):
 +      * textmodes/table.el (table):
 +      * textmodes/picture.el (picture):
 +      * outline.el (outlines): Put in wp group.
 +
 +      * nxml/nxml-mode.el (nxml): Remove from wp group.
 +
 +      * net/tramp-imap.el (tramp-imap): Put in tramp group.
 +
 +      * mail/metamail.el (metamail): Remove from hypermedia group.
 +
 +      * cus-edit.el (abbrev):
 +      * whitespace.el (whitespace):
 +      * vcursor.el (vcursor):
 +      * reveal.el (reveal):
 +      * hl-line.el (hl-line): Put in convenience group.
 +
 +      * epg-config.el (epg): Put in data group.
 +
 +      * emulation/pc-select.el (pc-select): Put in emulations group.
 +
 +      * calculator.el (calculator): Put in applications group.
 +
 +2010-03-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Add .dir-locals.el support for file-less buffers.
 +      * files.el (hack-local-variables): Split out code to apply local
 +      variable settings ...
 +      (hack-local-variables-apply): ... here.  New function.
 +      (hack-dir-local-variables): Use the default directory for when the
 +      buffer does not have an associated file.
 +      (hack-dir-local-variables-non-file-buffer): New function.
 +      * diff-mode.el (diff-mode):
 +      * vc-annotate.el (vc-annotate-mode):
 +      * vc-dir.el (vc-dir-mode):
 +      * log-edit.el (log-edit-mode):
 +      * log-view.el (log-view-mode): Call hack-dir-local-variables-non-file-buffer.
 +
 +2010-03-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Add support for shelving snapshots and for showing shelves.
 +      * vc-bzr.el (vc-bzr-shelve-show, vc-bzr-shelve-show-at-point)
 +      (vc-bzr-shelve-apply-and-keep-at-point, vc-bzr-shelve-snapshot):
 +      New functions.
 +      (vc-bzr-shelve-map, vc-bzr-shelve-menu-map)
 +      (vc-bzr-extra-menu-map): Map them.
 +
 +2010-03-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * cus-edit.el (customize-changed-options-previous-release):
 +      Bump to 23.1.
 +
 +      * image.el (image-animate-max-time): Fix :version tag.
 +
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
 +2010-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * vc-git.el (vc-git-revision-table): Include remote branches.
 +
 +2010-03-10  Kim F. Storm  <storm@cua.dk>
 +
 +      Animated image API.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-03/msg00211.html
 +
 +      * image.el (image-animate-max-time): New defcustom.
 +      (image-animated-types): New defconst.
 +      (create-animated-image, image-animate-timer)
 +      (image-animate-start, image-animate-stop, image-animate-timeout)
 +      (image-animated-p): New functions.
 +
 +      * image-mode.el (image-toggle-display-image):
 +      Replace `create-image' with `create-animated-image'.
 +
  2010-03-09  Miles Bader  <miles@gnu.org>
  
        * vc-git.el (vc-git-print-log): Use "tformat:" for shortlog,
        * files.el (hack-local-variables-filter): For eval forms, also
        check safe-local-variable-p (Bug#5636).
  
 -2010-02-24  Eduard Wiebe  <usenet@pusto.de>
 -
 -      * javascript.el (wisent-javascript-jv-expand-tag): Avoid c(ad)ddr
 -      and use c(ad)r of cddr (Bug#5640).
 -
  2010-02-22  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/tramp.el (tramp-do-copy-or-rename-file-out-of-band): Protect
  2010-02-03  Michael Albinus  <michael.albinus@gmx.de>
  
        * net/ange-ftp.el (ange-ftp-insert-directory): Parse directory
 -      also in case of (and (not full) (not wildcard)).  This is needed,
 +      also in case of (and (not full) (not wildcard)).  This is needed
        when dired is called with a list of files, which are not in
        `default-directory'.  (Bug#5478)
  
  
        * vc-bzr.el (vc-bzr-revision-table): New function.
  
 -2010-01-25  Eric Hanchrow  <eric.hanchrow@gmail.com>  (tiny change)
 +2010-01-25  Eric Hanchrow  <eric.hanchrow@gmail.com>
  
        * vc-git.el (vc-git-dir-status-goto-stage): Pass --relative to the
        diff-index command.  This requires at least git-1.5.5.  (Bug#1589).
        (ada-goto-label-re): New; matches goto labels.
        (ada-block-label-re): New; matches block labels.
        (ada-label-re): New; matches both.
 -      (ada-named-block-re): Deleted; callers changed to use
 +      (ada-named-block-re): Delete; callers changed to use
        `ada-block-label-re' instead.
        (ada-get-current-indent, ada-get-indent-noindent, ada-get-indent-loop):
        Use `ada-block-label-re'.
  
  2010-01-02  Karl Fogel  <kfogel@red-bean.com>
  
 -      * bookmark.el (bookmark-bmenu-any-marks): New function
 +      * bookmark.el (bookmark-bmenu-any-marks): New function.
        (bookmark-bmenu-save): Clear buffer modification if no marks.
  
  2010-01-02  Karl Fogel  <kfogel@red-bean.com>
  
  2009-12-17  Juri Linkov  <juri@jurta.org>
  
 -      Make `dired-diff' more safe.  (Bug#5225)
 +      Make `dired-diff' safer.  (Bug#5225)
  
        * dired-aux.el (dired-diff): Signal an error when `file' equals to
        `current' or when `file' is a directory of the `current' file.
  
  2009-12-09  Vivek Dasmohapatra  <vivek@etla.org>
  
 -      Drop some properties to avoid surprises.
 +      Drop some properties to avoid surprises (bug#5002).
        * htmlfontify.el (hfy-ignored-properties): New defcustom.
        (hfy-fontify-buffer): Use it.
  
        * Makefile.in (ELCFILES): Adapt to subword.el move.
  
  2009-11-21  Thierry Volpiatto  <thierry.volpiatto@gmail.com>
 -          Stefan Monnier  <monnier@iro.umontreal.ca>
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * bookmark.el (bookmark-bmenu-bookmark-column): Remove var.
        (bookmark-bmenu-list): Save name on `bookmark-name-prop' text-prop.
        (tar-header-block-tokenize): Decode the username and groupname.
        (tar-chown-entry, tar-chgrp-entry): Encode the names (bug#4730).
  
 +2009-10-17  Eric Ludlam  <zappo@gnu.org>
 +
 +      * emacs-lisp/eieio-base.el (eieio-persistent-save): If buffer
 +      contains multibyte characters, choose first applicable coding
 +      system automatically.
 +
  2009-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * international/mule-cmds.el (select-safe-coding-system): If the file
        * term/w32-win.el (setup-default-fontset, set-fontset-font):
        Remove unused declarations.
  
 +2009-09-30  Eric Ludlam  <zappo@gnu.org>
 +
 +      * emacs-lisp/eieio.el (boolean-p): Delete.
 +
  2009-09-30  Glenn Morris  <rgm@gnu.org>
  
        * emacs-lisp/authors.el (authors-ignored-files): Add "js2-mode.el".
  
        * net/tramp-imap.el: New package.
  
 +2009-09-28  Eric Ludlam  <zappo@gnu.org>
 +
 +      * emacs-lisp/chart.el:
 +      * emacs-lisp/eieio-base.el:
 +      * emacs-lisp/eieio-comp.el:
 +      * emacs-lisp/eieio-custom.el:
 +      * emacs-lisp/eieio-datadebug.el:
 +      * emacs-lisp/eieio-opt.el:
 +      * emacs-lisp/eieio-speedbar.el:
 +      * emacs-lisp/eieio.el: New files.
 +
  2009-09-27  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
  
        * whitespace.el (whitespace-trailing-regexp)
  
        * textmodes/fill.el: Convert to utf-8 encoding.
        (fill-french-nobreak-p): Remove redundant » and « inherited from our
 -      pre-unicode days.
 +      pre-Unicode days.
  
        * add-log.el (change-log-fill-forward-paragraph): New function.
        (change-log-mode): Use it so fill-region DTRT.
        indent buffer only if called interactively (Bug#4452).
  
  2009-09-19  Juanma Barranquero  <lekktu@gmail.com>
 -          Eli Zaretskii  <eliz@gnu.org>
 +            Eli Zaretskii  <eliz@gnu.org>
  
        This fixes bug#4197 (merged to bug#865, though not identical).
        * server.el (server-auth-dir): Add docstring note about FAT32.
        Don't call substitute-in-file-name on diary-file.
  
  2009-09-03  Eduard Wiebe  <usenet@pusto.de>
 -          Stefan Monnier  <monnier@iro.umontreal.ca>
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * mail/footnote.el (footnote-prefix): Make it a defcustom.
        (footnote-mode-map): Move initialization into the declaration.
        * progmodes/hideshow.el (hs-special-modes-alist): Add js-mode entry.
  
  2009-08-14  Daniel Colascione  <dan.colascione@gmail.com>
 -          Karl Landstrom  <karl.landstrom@brgeight.se>
 +            Karl Landstrom  <karl.landstrom@brgeight.se>
  
        * progmodes/js.el: New file.
  
        (def-gdb-memory-format, def-gdb-memory-unit): Update memory buffer
        after changing settings.
        (gdb-invalidate-disassembly): Update when first shown.
 -      (gdb-edit-locals-value): Fixed.
 +      (gdb-edit-locals-value): Fix.
        (gdb-registers-handler-custom): Print registers in right order and
        allow changing register values (only for current thread yet).
        (gdb-breakpoints-mode-map): Don't assume threads buffer is present.
  
  2009-08-06  Dmitry Dzhus  <dima@sphinx.net.ru>
  
 -      * progmodes/gdb-mi.el (gdb-var-create-regexp): Removed.
 +      * progmodes/gdb-mi.el (gdb-var-create-regexp): Remove.
        (gdb-var-create-handler): Rewritten using JSON parser.
        (gdb-propertize-header): Move earlier.
        (gdb-set-header): Remove to avoid duplication.
        XZ is the successor to LZMA: <http://tukaani.org/xz/>
  
  2009-06-22  Dmitry Dzhus  <dima@sphinx.net.ru>
 -          Nick Roberts  <nickrob@snap.net.nz>
 +            Nick Roberts  <nickrob@snap.net.nz>
  
        * progmodes/gdb-mi.el: Pull further modified changes from Dmitry's
        repository (http://sphinx.net.ru/hg/gdb-mi/).
@@@ -22490,7 -12704,7 +22498,7 @@@ See ChangeLog.14 for earlier changes
  ;; coding: utf-8
  ;; End:
  
 -  Copyright (C) 2009, 2010, 2011  Free Software Foundation, Inc.
 +  Copyright (C) 2009-2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
diff --combined lisp/mail/rmail.el
index 06867f6d92aab6fc52efd5db04c7cc7a20e5b58e,5e9baed1c2eacba7058448b3f9d3d0234dff7c53..7fe5383d865fb48269ae6d1b1e5994c6382913ac
@@@ -1,6 -1,7 +1,6 @@@
  ;;; rmail.el --- main code of "RMAIL" mail reader for Emacs
  
 -;; Copyright (C) 1985, 1986, 1987, 1988, 1993, 1994, 1995, 1996, 1997, 1998,
 -;;   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
 +;; Copyright (C) 1985-1988, 1993-1998, 2000-2011
  ;;   Free Software Foundation, Inc.
  
  ;; Maintainer: FSF
@@@ -191,7 -192,7 +191,7 @@@ please report it with \\[report-emacs-b
    :group 'rmail-retrieve
    :type '(repeat (directory)))
  
 -(declare-function rmail-dont-reply-to "mail-utils" (destinations))
 +(declare-function mail-dont-reply-to "mail-utils" (destinations))
  (declare-function rmail-update-summary "rmailsum" (&rest ignore))
  
  (defun rmail-probe (prog)
@@@ -283,16 -284,26 +283,16 @@@ Setting this variable has an effect onl
    :version "21.1")
  
  ;;;###autoload
 -(defcustom rmail-dont-reply-to-names nil
 -  "A regexp specifying addresses to prune from a reply message.
 -If this is nil, it is set the first time you compose a reply, to
 -a value which excludes your own email address, plus whatever is
 -specified by `rmail-default-dont-reply-to-names'.
 -
 -Matching addresses are excluded from the CC field in replies, and
 -also the To field, unless this would leave an empty To field."
 -  :type '(choice regexp (const :tag "Your Name" nil))
 -  :group 'rmail-reply)
 +(defvaralias 'rmail-dont-reply-to-names 'mail-dont-reply-to-names)
  
  ;;;###autoload
 -(defvar rmail-default-dont-reply-to-names (purecopy "\\`info-")
 -  "Regexp specifying part of the default value of `rmail-dont-reply-to-names'.
 -This is used when the user does not set `rmail-dont-reply-to-names'
 -explicitly.  (The other part of the default value is the user's
 -email address and name.)  It is useful to set this variable in
 -the site customization file.  The default value is conventionally
 -used for large mailing lists to broadcast announcements.")
 -;; Is it really useful to set this site-wide?
 +(defvar rmail-default-dont-reply-to-names nil
 +  "Regexp specifying part of the default value of `mail-dont-reply-to-names'.
 +This is used when the user does not set `mail-dont-reply-to-names'
 +explicitly.")
 +;;;###autoload
 +(make-obsolete-variable 'rmail-default-dont-reply-to-names
 +                        'mail-dont-reply-to-names "24.1")
  
  ;;;###autoload
  (defcustom rmail-ignored-headers
@@@ -3430,62 -3441,40 +3430,72 @@@ does not pop any summary buffer.
  ;;;; *** Rmail Mailing Commands ***
  
  (defun rmail-start-mail (&optional noerase to subject in-reply-to cc
 -                                 replybuffer sendactions same-window others)
 -  (let (yank-action)
 +                                 replybuffer sendactions same-window
 +                                 other-headers)
 +  (let ((switch-function
 +       (cond (same-window nil)
 +             (rmail-mail-new-frame 'switch-to-buffer-other-frame)
 +             (t 'switch-to-buffer-other-window)))
 +      yank-action)
      (if replybuffer
        ;; The function used here must behave like insert-buffer wrt
        ;; point and mark (see doc of sc-cite-original).
        (setq yank-action (list 'insert-buffer replybuffer)))
 -    (setq others (cons (cons "cc" cc) others))
 -    (setq others (cons (cons "in-reply-to" in-reply-to) others))
 -    (setq others
 +    (push (cons "cc" cc) other-headers)
 +    (push (cons "in-reply-to" in-reply-to) other-headers)
++    (setq other-headers
+         (mapcar #'(lambda (elt)
+                     (cons (car elt) (if (stringp (cdr elt))
+                                         (rfc2047-decode-string (cdr elt)))))
 -                others))
++                other-headers))
+     (if (stringp to) (setq to (rfc2047-decode-string to)))
+     (if (stringp in-reply-to)
+       (setq in-reply-to (rfc2047-decode-string in-reply-to)))
+     (if (stringp cc) (setq cc (rfc2047-decode-string cc)))
+     (if (stringp subject) (setq subject (rfc2047-decode-string subject)))
 -    (if same-window
 -      (compose-mail to subject others
 -                    noerase nil
 -                    yank-action sendactions)
 -      (if rmail-mail-new-frame
 -        (prog1
 -            (compose-mail to subject others
 -                          noerase 'switch-to-buffer-other-frame
 -                          yank-action sendactions)
 -          ;; This is not a standard frame parameter;
 -          ;; nothing except sendmail.el looks at it.
 +    (prog1
 +      (compose-mail to subject other-headers noerase
 +                    switch-function yank-action sendactions
 +                    '(rmail-mail-return))
 +      (if (eq switch-function 'switch-to-buffer-other-frame)
 +        ;; This is not a standard frame parameter; nothing except
 +        ;; sendmail.el looks at it.
-         (modify-frame-parameters (selected-frame)
+           (modify-frame-parameters (selected-frame)
 -                                   '((mail-dedicated-frame . t))))
 -      (compose-mail to subject others
 -                    noerase 'switch-to-buffer-other-window
 -                    yank-action sendactions)))))
 +                                 '((mail-dedicated-frame . t)))))))
 +
 +(defun rmail-mail-return ()
 +  (cond
 +   ;; If there is only one visible frame with no special handling,
 +   ;; consider deleting the mail window to return to Rmail.
 +   ((or (null (delq (selected-frame) (visible-frame-list)))
 +      (not (or (window-dedicated-p (frame-selected-window))
 +               (and pop-up-frames (one-window-p))
 +               (cdr (assq 'mail-dedicated-frame
 +                          (frame-parameters))))))
 +    (let (rmail-flag summary-buffer)
 +      (and (not (one-window-p))
 +         (with-current-buffer
 +             (window-buffer (next-window (selected-window) 'not))
 +           (setq rmail-flag (eq major-mode 'rmail-mode))
 +           (setq summary-buffer
 +                 (and (boundp 'mail-bury-selects-summary)
 +                      mail-bury-selects-summary
 +                      (boundp 'rmail-summary-buffer)
 +                      rmail-summary-buffer
 +                      (buffer-name rmail-summary-buffer)
 +                      (not (get-buffer-window rmail-summary-buffer))
 +                      rmail-summary-buffer))))
 +      (if rmail-flag
 +        ;; If the Rmail buffer has a summary, show that.
 +        (if summary-buffer (switch-to-buffer summary-buffer)
 +          (delete-window)))))
 +   ;; If the frame was probably made for this buffer, the user
 +   ;; probably wants to delete it now.
 +   ((display-multi-frame-p)
 +    (delete-frame (selected-frame)))
 +   ;; The previous frame is where normally they have the Rmail buffer
 +   ;; displayed.
 +   (t (other-frame -1))))
  
  (defun rmail-mail ()
    "Send mail in another window.
@@@ -3568,14 -3557,15 +3578,14 @@@ use \\[mail-yank-original] to yank the 
       ;; Remove unwanted names from reply-to, since Mail-Followup-To
       ;; header causes all the names in it to wind up in reply-to, not
       ;; in cc.  But if what's left is an empty list, use the original.
 -     (let* ((reply-to-list (rmail-dont-reply-to reply-to)))
 +     (let* ((reply-to-list (mail-dont-reply-to reply-to)))
         (if (string= reply-to-list "") reply-to reply-to-list))
       subject
       (rmail-make-in-reply-to-field from date message-id)
       (if just-sender
         nil
 -       ;; mail-strip-quoted-names is NOT necessary for rmail-dont-reply-to
 -       ;; to do its job.
 -       (let* ((cc-list (rmail-dont-reply-to
 +       ;; `mail-dont-reply-to' doesn't need `mail-strip-quoted-names'.
 +       (let* ((cc-list (mail-dont-reply-to
                        (mail-strip-quoted-names
                         (if (null cc) to (concat to ", " cc))))))
         (if (string= cc-list "") nil cc-list)))
@@@ -3851,7 -3841,9 +3861,7 @@@ The message should be narrowed to just 
                           (1- (point))
                         (point-max)))))))
  
 -(declare-function mail-sendmail-delimit-header "sendmail" ())
 -(declare-function mail-header-end "sendmail" ())
 -(declare-function mail-position-on-field "sendmail" (field &optional soft))
 +(autoload 'mail-position-on-field "sendmail")
  
  (defun rmail-retry-failure ()
    "Edit a mail message which is based on the contents of the current message.
@@@ -3937,19 -3929,18 +3947,19 @@@ specifying headers which should not be 
          ;; Insert original text as initial text of new draft message.
          ;; Bind inhibit-read-only since the header delimiter
          ;; of the previous message was probably read-only.
 -        (let ((inhibit-read-only t))
 +        (let ((inhibit-read-only t)
 +              eoh)
            (erase-buffer)
            (insert-buffer-substring rmail-this-buffer
                                     bounce-start bounce-end)
            (goto-char (point-min))
            (if bounce-indent
                (indent-rigidly (point-min) (point-max) bounce-indent))
 -          ;; FIXME better to replace sendmail functions.
 -          (require 'sendmail)
 -          (mail-sendmail-delimit-header)
 +          (rfc822-goto-eoh)
 +          (setq eoh (point))
 +          (insert mail-header-separator)
            (save-restriction
 -            (narrow-to-region (point-min) (mail-header-end))
 +            (narrow-to-region (point-min) eoh)
              (rmail-delete-headers rmail-retry-ignored-headers)
              (rmail-delete-headers "^\\(sender\\|return-path\\|received\\):")
              (setq resending (mail-fetch-field "resent-to"))
@@@ -4251,7 -4242,7 +4261,7 @@@ encoded string (and the same mask) wil
  ;;; Start of automatically extracted autoloads.
  \f
  ;;;### (autoloads (rmail-edit-current-message) "rmailedit" "rmailedit.el"
 -;;;;;;  "ecd28d8d92983488673388eced6fbf50")
 +;;;;;;  "090ad9432c3bf9a6098bb9c3d7c71baf")
  ;;; Generated autoloads from rmailedit.el
  
  (autoload 'rmail-edit-current-message "rmailedit" "\
@@@ -4263,7 -4254,7 +4273,7 @@@ Edit the contents of this message
  \f
  ;;;### (autoloads (rmail-next-labeled-message rmail-previous-labeled-message
  ;;;;;;  rmail-read-label rmail-kill-label rmail-add-label) "rmailkwd"
 -;;;;;;  "rmailkwd.el" "bc72ffe3652be6f4c72048ae8f226fce")
 +;;;;;;  "rmailkwd.el" "08c288c88cfe7be50830122c064e3884")
  ;;; Generated autoloads from rmailkwd.el
  
  (autoload 'rmail-add-label "rmailkwd" "\
@@@ -4306,7 -4297,7 +4316,7 @@@ With prefix argument N moves forward N 
  
  ;;;***
  \f
 -;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "9c0902449733cabd5c7e7d17092a7c69")
 +;;;### (autoloads (rmail-mime) "rmailmm" "rmailmm.el" "04902da045706fb7f2b0915529ed161b")
  ;;; Generated autoloads from rmailmm.el
  
  (autoload 'rmail-mime "rmailmm" "\
@@@ -4332,7 -4323,7 +4342,7 @@@ attachments as specfied by `rmail-mime-
  ;;;***
  \f
  ;;;### (autoloads (set-rmail-inbox-list) "rmailmsc" "rmailmsc.el"
 -;;;;;;  "9319e5b606ad5786c0c5994a307a38e8")
 +;;;;;;  "ca19b2f8a3e8aa01aa75ca7413f8a5ef")
  ;;; Generated autoloads from rmailmsc.el
  
  (autoload 'set-rmail-inbox-list "rmailmsc" "\
@@@ -4348,7 -4339,7 +4358,7 @@@ This applies only to the current sessio
  \f
  ;;;### (autoloads (rmail-sort-by-labels rmail-sort-by-lines rmail-sort-by-correspondent
  ;;;;;;  rmail-sort-by-recipient rmail-sort-by-author rmail-sort-by-subject
 -;;;;;;  rmail-sort-by-date) "rmailsort" "rmailsort.el" "16144a77fdc880034875fd624e4d73e6")
 +;;;;;;  rmail-sort-by-date) "rmailsort" "rmailsort.el" "ad1c98fe868c0e5804cf945d6c980d0b")
  ;;; Generated autoloads from rmailsort.el
  
  (autoload 'rmail-sort-by-date "rmailsort" "\
@@@ -4382,7 -4373,7 +4392,7 @@@ If prefix argument REVERSE is non-nil, 
  Sort messages of current Rmail buffer by other correspondent.
  This uses either the \"From\", \"Sender\", \"To\", or
  \"Apparently-To\" header, downcased.  Uses the first header not
 -excluded by `rmail-dont-reply-to-names'.  If prefix argument
 +excluded by `mail-dont-reply-to-names'.  If prefix argument
  REVERSE is non-nil, sorts in reverse order.
  
  \(fn REVERSE)" t nil)
@@@ -4407,7 -4398,7 +4417,7 @@@ If prefix argument REVERSE is non-nil, 
  \f
  ;;;### (autoloads (rmail-summary-by-senders rmail-summary-by-topic
  ;;;;;;  rmail-summary-by-regexp rmail-summary-by-recipients rmail-summary-by-labels
 -;;;;;;  rmail-summary) "rmailsum" "rmailsum.el" "6bcfd5937a56902944a929b89b33adaa")
 +;;;;;;  rmail-summary) "rmailsum" "rmailsum.el" "3817e21639db697abe5832d3223ecfc2")
  ;;; Generated autoloads from rmailsum.el
  
  (autoload 'rmail-summary "rmailsum" "\
@@@ -4455,7 -4446,7 +4465,7 @@@ SENDERS is a string of regexps separate
  ;;;***
  \f
  ;;;### (autoloads (unforward-rmail-message undigestify-rmail-message)
 -;;;;;;  "undigest" "undigest.el" "2869c38a0051d0acab1a5968627fa57d")
 +;;;;;;  "undigest" "undigest.el" "41e6a48ea63224385c447a944528feb6")
  ;;; Generated autoloads from undigest.el
  
  (autoload 'undigestify-rmail-message "undigest" "\
@@@ -4478,4 -4469,5 +4488,4 @@@ following the containing message
  
  (provide 'rmail)
  
 -;; arch-tag: 65d257d3-c281-4a65-9c38-e61af95af2f0
  ;;; rmail.el ends here
diff --combined lisp/mail/rmailmm.el
index 0bfeb121ca453269613ac3fcfe1c3ec4ba23ec38,4aa3e81132f25f20bc438dff4b7203966e4856f8..96132739b201696758e86d3d61cfb6a456da36d2
@@@ -1,12 -1,11 +1,12 @@@
  ;;; rmailmm.el --- MIME decoding and display stuff for RMAIL
  
 -;; Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +;; Copyright (C) 2006-2011  Free Software Foundation, Inc.
  
  ;; Author: Alexander Pohoyda
  ;;    Alex Schroeder
  ;; Maintainer: FSF
  ;; Keywords: mail
 +;; Package: rmail
  
  ;; This file is part of GNU Emacs.
  
@@@ -53,7 -52,7 +53,7 @@@
  ;;
  ;; rmail-mime
  ;;  +- rmail-mime-show <----------------------------------+
 -;;       +- rmail-mime-process                            | 
 +;;       +- rmail-mime-process                            |
  ;;            +- rmail-mime-handle                        |
  ;;                 +- rmail-mime-text-handler             |
  ;;                 +- rmail-mime-bulk-handler             |
@@@ -160,7 -159,7 +160,7 @@@ A MIME-entity is a vector of 9 elements
  
    [TYPE DISPOSITION TRANSFER-ENCODING DISPLAY HEADER TAGLINE BODY
     CHILDREN HANDLER]
 -  
 +
  TYPE and DISPOSITION correspond to MIME headers Content-Type and
  Cotent-Disposition respectively, and has this format:
  
@@@ -327,7 -326,7 +327,7 @@@ The value is a vector [ INDEX HEADER TA
      (aset new 2 (aref (rmail-mime-entity-body entity) 2)))
    (dolist (child (rmail-mime-entity-children entity))
      (rmail-mime-shown-mode child)))
 -  
 +
  (defun rmail-mime-hidden-mode (entity)
    "Make MIME-entity ENTITY displayed in the hidden mode."
    (let ((new (aref (rmail-mime-entity-display entity) 1)))
@@@ -424,7 -423,7 +424,7 @@@ to the tag line.
          (insert item)
        (apply 'insert-button item))))
    (insert "]\n"))
 -  
 +
  (defun rmail-mime-update-tagline (entity)
    "Update the current tag line for MIME-entity ENTITY."
    (let ((inhibit-read-only t)
@@@ -853,28 -852,33 +853,33 @@@ The other arguments are the same as `rm
            ((looking-at "[ \t]*\n")
             (setq next (copy-marker (match-end 0) t)))
            (t
-            (rmail-mm-get-boundary-error-message
-             "Malformed boundary" content-type content-disposition
-             content-transfer-encoding)))
-       (setq index (1+ index))
-       ;; Handle the part.
-       (if parse-tag
+            ;; The original code signalled an error as below, but
+            ;; this line may be a boundary of nested multipart.  So,
+            ;; we just set `next' to nil to skip this line
+            ;; (rmail-mm-get-boundary-error-message
+            ;;  "Malformed boundary" content-type content-disposition
+            ;;  content-transfer-encoding)
+            (setq next nil)))
+       (when next
+       (setq index (1+ index))
+       ;; Handle the part.
+       (if parse-tag
+           (save-restriction
+             (narrow-to-region beg end)
+             (let ((child (rmail-mime-process
+                           nil (format "%s/%d" parse-tag index)
+                           content-type content-disposition)))
+               ;; Display a tagline.
+               (aset (aref (rmail-mime-entity-display child) 1) 1
+                     (aset (rmail-mime-entity-tagline child) 2 t))
+               (push child entities)))
+         (delete-region end next)
          (save-restriction
            (narrow-to-region beg end)
-           (let ((child (rmail-mime-process
-                         nil (format "%s/%d" parse-tag index)
-                         content-type content-disposition)))
-             ;; Display a tagline.
-             (aset (aref (rmail-mime-entity-display child) 1) 1
-                   (aset (rmail-mime-entity-tagline child) 2 t))
-             (push child entities)))
-       (delete-region end next)
-       (save-restriction
-         (narrow-to-region beg end)
-         (rmail-mime-show)))
-       (goto-char (setq beg next)))
+           (rmail-mime-show)))
+       (goto-char (setq beg next))))
  
      (when parse-tag
        (setq entities (nreverse entities))
@@@ -1144,7 -1148,7 +1149,7 @@@ modified.
  
        ;; Hide headers and handle the part.
        (put-text-property (point-min) (point-max) 'rmail-mime-entity
 -                       (rmail-mime-entity 
 +                       (rmail-mime-entity
                         content-type content-disposition
                         content-transfer-encoding
                         (vector (vector 'raw nil 'raw) (vector 'raw nil 'raw))
@@@ -1360,7 -1364,7 +1365,7 @@@ attachments as specfied by `rmail-mime-
                         (re-search-forward "^$" nil 'move) (point)))
           (body-end (point-max))
           (entity (rmail-mime-parse)))
 -      (or 
 +      (or
         ;; At first, just search the headers.
         (with-temp-buffer
         (insert-buffer-substring rmail-mime-mbox-buffer nil header-end)
         (if (and entity
                (let* ((content-type (rmail-mime-entity-type entity))
                       (charset (cdr (assq 'charset (cdr content-type)))))
 -                (or (not (string-match "text/.*" (car content-type))) 
 +                (or (not (string-match "text/.*" (car content-type)))
                      (and charset
                           (not (string= (downcase charset) "us-ascii"))))))
           ;; Search the decoded MIME message.
  ;; generated-autoload-file: "rmail.el"
  ;; End:
  
 -;; arch-tag: 3f2c5e5d-1aef-4512-bc20-fd737c9d5dd9
  ;;; rmailmm.el ends here
diff --combined src/ChangeLog
index 8befb78f91fca34dab3daecf8d9fc593fd9399a8,addaab3457272c5612a7c59bb327f66771909027..194f1c44f842c9cab290826318ab8c77cdaf9575
 -2011-02-22  Kenichi Handa  <handa@m17n.org>
++2011-02-23  Kenichi Handa  <handa@m17n.org>
+       * font.c (font_open_entity): Be sure to set scaled_pixel_size.
 -      (font_find_for_lface): Check if attrs[LFACE_HEIGHT_INDEX] is
 -      integer.
++      (font_find_for_lface): Check if attrs[LFACE_HEIGHT_INDEX] is integer.
 -2011-02-19  Chong Yidong  <cyd@stupidchicken.com>
 +2011-02-22  Paul Eggert  <eggert@cs.ucla.edu>
  
 -      * Makefile.in (prefix-args${EXEEXT}): Compile with ALL_CFLAGS.
 +      * dired.c (Ffile_attributes): Simplify and avoid #ifdef.
  
 -2011-02-17  Kenichi Handa  <handa@m17n.org>
 +2011-02-22  Wolfgang Jenkner  <wjenkner@inode.at>  (tiny change)
  
 -      * font.c (font_open_entity): Be sure to set scaled_pixel_size.
 -      (font_find_for_lface): Check if attrs[LFACE_HEIGHT_INDEX] is
 -      integer.
 +      * lread.c (openp): Correct Boolean typo in last commit.
  
 -2011-02-13  Eli Zaretskii  <eliz@gnu.org>
 +2011-02-22  Adrian Robert  <Adrian.B.Robert@gmail.com>
  
 -      * xdisp.c (redisplay_internal): Resynchronize `w' if the selected
 -      window is changed inside calls to do_pending_window_change.
 -      (Bug#8020)
 +      * nsterm.m (EmacsView-keyDown:): Don't pass shift-only-modified
 +      key to Emacs, treat as unmodified (go to input manager processing).
  
 -2011-02-12  Eli Zaretskii  <eliz@gnu.org>
 +2011-02-22  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Assume S_ISLNK etc. work, since gnulib supports this.
 +      * config.in: Regenerate.
 +      * dired.c (lstat): Remove.
 +      (file_name_completion): Assume S_ISDIR works.
 +      (file_name_completion_stat): Assume S_ISLNK works.
 +      Do not bother calling stat unless lstat says it's a symlink.
 +      * fileio.c (S_ISLNK, S_ISFIFO, S_ISREG, lstat): Remove.
 +      (Fcopy_file): Assume S_ISREG and S_ISLNK work.
 +      (check_writable, Ffile_writable_p, Fset_file_times):
 +      Assume S_ISDIR works.
 +      (Ffile_readable_p): Use S_IFIFO, not S_ISFIFO, to guess whether
 +      fifos exist.
 +      (Ffile_regular_p, Finsert_file_contents): Assume S_ISREG works.
 +      * filelock.c (S_ISLNK): Remove.
 +      * lread.c (openp): Assume S_ISDIR works.
 +      * xrdb.c (S_ISDIR): Remove.
 +
 +2011-02-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in ($(BLD)/filemode.$(O)): Move recipe to
 +      lib/makefile.w32-in.
 +      ($(BLD)/dired.$(O)): Depend on $(EMACS_ROOT)/lib/filemode.h.
 +      (GLOBAL_SOURCES): Remove filemode.c.
 +      (OBJ1): Remove $(BLD)/filemode.$(O).
 +
 +2011-02-21  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Import filemode module from gnulib.
 +      * Makefile.in (base_obj): Remove filemode.o, as it's now in ../lib.
 +      * deps.mk (dired.o): Depend on ../lib/filemode.h, too.
 +      (filemode.o): Remove; this is now in ../lib.
 +      * dired.c: Include <filemode.h>.
 +      (filemodestring): Remove now-redundant decl.
 +      * config.in: Regenerate.
 +
 +2011-02-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in ($(BLD)/fns.$(O)): Depend on
 +      $(EMACS_ROOT)/lib/md5.h and on stamp_BLD.
 +
 +2011-02-20  Christoph Scholtes  <cschol2112@gmail.com>
 +
 +      * makefile.w32-in: Remove md5.$(O).
 +      ($(BLD)/md5.$(O)): Remove prerequisites, moved to
 +      lib/makefile.w32-in.
 +
 +2011-02-20  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Import crypto/md5 and stdint modules from gnulib.
 +      * Makefile.in (base_obj): Remove md5.o, since this file
 +      is in lib now.
 +      * config.in: Regenerate.
 +      * md5.h, md5.h: Move to ../lib.
 +      * deps.mk (md5.o): Remove.
 +      (fns.o): Depend on ../lib/md5.h, not md5.h.
 +
 +2011-02-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * termcap.c (tputs): Don't declare baud_rate.
 +
 +      * s/msdos.h (strtold): Define to _strtold.
 +
 +2011-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * process.c (Fstart_process, Fmake_serial_process)
 +      (Fmake_network_process, server_accept_connection):
 +      Use empty_unibyte_string.
 +
 +      * alloc.c (make_unibyte_string): Don't SET_UNIBYTE redundantly.
 +
 +      * lread.c (Qdir_ok): New constant.
 +      (syms_of_lread): Initialize it.
 +      (openp): Don't ignore directories if the predicate returns dir-ok.
 +
 +2011-02-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (display_line): Fix the change made for bug#7939.
  
        * terminal.c (create_terminal): Use default-keyboard-coding-system
        and default-terminal-coding-system to initialize coding systems of
        the new terminal.  (Bug#7840)
  
 -2011-02-09  Martin Rudalics  <rudalics@gmx.at>
 +2011-02-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lisp.h (BYTE_MARK_STACK): New macro.
 +      (mark_byte_stack): Only declare if BYTE_MARK_STACK is set.
 +
 +      * bytecode.c (BYTE_MAINTAIN_TOP): New macros.
 +      (struct byte_stack): Only define `top' and `bottom' if used.
 +      (mark_byte_stack): Only define if used.
 +      (BEFORE_POTENTIAL_GC, AFTER_POTENTIAL_GC): Nullify if BYTE_MAINTAIN_TOP
 +      is not set.
 +      (Fbyte_code): Don't set `bottom' unless BYTE_MAINTAIN_TOP is set.
 +
 +      * term.c (OUTPUT_IF): Use OUTPUT.
 +
 +      * alloc.c (Fgarbage_collect): When using stack scanning, don't
 +      redundantly scan byte-code stacks, catchlist, and handlerlist.
 +
 +2011-02-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfns.m (Fx_create_frame, ns_set_name_as_filename)
 +      (Fns_read_file_name): Replace B_ with BVAR.
 +
 +      * nsterm.m (ns_term_init): Use KVAR.
 +
 +2011-02-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdos.c (internal_terminal_init): Use KVAR.
 +
 +      * w32fns.c (Fx_create_frame): Use KVAR.
 +
 +      * w32term.c (w32_create_terminal): Use KVAR.
 +
 +      * s/ms-w32.h (MODE_LINE_BINARY_TEXT): Remove.
 +      (getloadavg): Declare prototype which was removed from lisp.h.
 +
 +      * xdisp.c (decode_mode_spec): Don't use MODE_LINE_BINARY_TEXT.
 +
 +      * fileio.c (Finsert_file_contents, Fwrite_region):
 +      Remove references to buffer_file_type.
 +      (syms_of_fileio): Don't intern and staticpro
 +      find-buffer-file-type.
 +
 +      * callproc.c (syms_of_callproc): Remove references to
 +      buffer_file_type.
 +
 +      * buffer.c (reset_buffer_local_variables): Don't set
 +      buffer_file_type.
 +      (init_buffer_once): Likewise.
 +      (syms_of_buffer): Don't define buffer-file-type.
 +
 +      * buffer.h (struct buffer): Remove buffer_file_type.
 +
 +2011-02-16  Tom Tromey  <tromey@parfait>
 +
 +      * callint.c (Fcall_interactively): Update for change to field names.
 +      * doc.c (Fsubstitute_command_keys): Update for change to field names.
 +      * cmds.c (Fself_insert_command): Update for change to field names.
 +      * keymap.c (Fcurrent_active_maps, Fkey_binding)
 +      (Fdescribe_buffer_bindings): Update for change to field names.
 +      * macros.c (Fstart_kbd_macro, end_kbd_macro, Fend_kbd_macro)
 +      (store_kbd_macro_char, Fcall_last_kbd_macro, Fexecute_kbd_macro):
 +      Update for change to field names.
 +      * keyboard.c (echo_char, echo_dash, echo_now, cancel_echoing)
 +      (echo_length, echo_truncate, cmd_error, command_loop_1)
 +      (read_char, kbd_buffer_store_event_hold, make_lispy_event)
 +      (menu_bar_items, tool_bar_items, read_char_minibuf_menu_prompt)
 +      (read_key_sequence, Fcommand_execute, Fexecute_extended_command)
 +      (Fdiscard_input, init_kboard, init_keyboard, mark_kboards):
 +      Update for change to field names.
 +      * xfns.c (Fx_create_frame): Update for change to field names.
 +      * xterm.c (x_connection_closed, x_term_init): Update for change to
 +      field names.
 +      * term.c (term_get_fkeys_1, CONDITIONAL_REASSIGN, init_tty):
 +      Update for change to field names.
 +      * window.c (window_scroll_pixel_based, window_scroll_line_based):
 +      Update for change to field names.
 +      * frame.c (make_frame_without_minibuffer, Fhandle_switch_frame)
 +      (delete_frame): Update for change to field names.
 +      * lisp.h (DEFVAR_KBOARD): Update for change to field names.
 +      * keyboard.h (struct kboard): Rename all Lisp_Object fields.
 +      (KBOARD_INTERNAL_FIELD, KVAR): New macros.
 +
 +2011-02-16  Tom Tromey  <tromey@redhat.com>
 +
 +      * lisp.h (DEFVAR_BUFFER_DEFAULTS): Use BVAR.
 +
 +2011-02-16  Tom Tromey  <tromey@parfait>
 +
 +      * xfns.c (x_create_tip_frame, Fx_show_tip): Replace B_ with BVAR.
 +      * xfaces.c (compute_char_face): Replace B_ with BVAR.
 +      * xdisp.c (pos_visible_p, init_iterator, reseat_1)
 +      (message_dolog, update_echo_area, ensure_echo_area_buffers)
 +      (with_echo_area_buffer, setup_echo_area_for_printing)
 +      (set_message_1, update_menu_bar, update_tool_bar)
 +      (text_outside_line_unchanged_p, redisplay_internal)
 +      (try_scrolling, try_cursor_movement, redisplay_window)
 +      (try_window_reusing_current_matrix, row_containing_pos)
 +      (try_window_id, get_overlay_arrow_glyph_row, display_line)
 +      (Fcurrent_bidi_paragraph_direction, display_mode_lines)
 +      (decode_mode_spec_coding, decode_mode_spec, display_count_lines)
 +      (get_window_cursor_type, note_mouse_highlight): Replace B_ with
 +      BVAR.
 +      * window.c (window_display_table, unshow_buffer, window_loop)
 +      (window_min_size_2, set_window_buffer, Fset_window_buffer)
 +      (select_window, Fforce_window_update, temp_output_buffer_show)
 +      (Fset_window_configuration, save_window_save): Replace B_ with
 +      BVAR.
 +      * w32fns.c (x_create_tip_frame, Fx_show_tip, Fw32_shell_execute):
 +      Replace B_ with BVAR.
 +      * undo.c (record_point, record_insert, record_delete)
 +      (record_marker_adjustment, record_first_change)
 +      (record_property_change, Fundo_boundary, truncate_undo_list)
 +      (Fprimitive_undo): Replace B_ with BVAR.
 +      * syntax.h (Vstandard_syntax_table, CURRENT_SYNTAX_TABLE)
 +      (SETUP_BUFFER_SYNTAX_TABLE): Replace B_ with BVAR.
 +      * syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
 +      (Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
 +      (skip_syntaxes, scan_lists): Replace B_ with BVAR.
 +      * search.c (compile_pattern_1, compile_pattern, looking_at_1)
 +      (string_match_1, fast_looking_at, newline_cache_on_off)
 +      (search_command, search_buffer, simple_search, boyer_moore)
 +      (Freplace_match): Replace B_ with BVAR.
 +      * process.c (get_process, list_processes_1, Fstart_process)
 +      (Fmake_serial_process, Fmake_network_process)
 +      (read_process_output, send_process, exec_sentinel)
 +      (status_notify, setup_process_coding_systems): Replace B_ with
 +      BVAR.
 +      * print.c (PRINTDECLARE, PRINTPREPARE, PRINTFINISH, printchar)
 +      (strout, print_string, temp_output_buffer_setup, print_object):
 +      Replace B_ with BVAR.
 +      * msdos.c (IT_frame_up_to_date): Replace B_ with BVAR.
 +      * minibuf.c (read_minibuf, get_minibuffer, Fread_buffer):
 +      Replace B_ with BVAR.
 +      * marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
 +      (set_marker_both, set_marker_restricted_both, unchain_marker):
 +      Replace B_ with BVAR.
 +      * lread.c (readchar, unreadchar, openp, readevalloop)
 +      (Feval_buffer, Feval_region): Replace B_ with BVAR.
 +      * lisp.h (DOWNCASE_TABLE, UPCASE_TABLE): Replace B_ with BVAR.
 +      * keymap.c (Flocal_key_binding, Fuse_local_map)
 +      (Fcurrent_local_map, push_key_description)
 +      (Fdescribe_buffer_bindings): Replace B_ with BVAR.
 +      * keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
 +      (read_key_sequence): Replace B_ with BVAR.
 +      * intervals.h (TEXT_PROP_MEANS_INVISIBLE): Replace B_ with BVAR.
 +      * intervals.c (set_point_both, get_local_map): Replace B_ with
 +      BVAR.
 +      * insdel.c (check_markers, insert_char, insert_1_both)
 +      (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
 +      (adjust_after_replace, replace_range, del_range_2)
 +      (modify_region, prepare_to_modify_buffer)
 +      (Fcombine_after_change_execute): Replace B_ with BVAR.
 +      * indent.c (buffer_display_table, recompute_width_table)
 +      (width_run_cache_on_off, current_column, scan_for_column)
 +      (Findent_to, position_indentation, compute_motion, vmotion):
 +      Replace B_ with BVAR.
 +      * fringe.c (get_logical_cursor_bitmap)
 +      (get_logical_fringe_bitmap, update_window_fringes): Replace B_
 +      with BVAR.
 +      * frame.c (make_frame_visible_1): Replace B_ with BVAR.
 +      * font.c (font_at): Replace B_ with BVAR.
 +      * fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
 +      Replace B_ with BVAR.
 +      * filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
 +      (unlock_buffer): Replace B_ with BVAR.
 +      * fileio.c (Fexpand_file_name, Ffile_directory_p)
 +      (Ffile_regular_p, Ffile_selinux_context)
 +      (Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
 +      (Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
 +      (Finsert_file_contents, choose_write_coding_system)
 +      (Fwrite_region, build_annotations, Fverify_visited_file_modtime)
 +      (Fset_visited_file_modtime, auto_save_error, auto_save_1)
 +      (Fdo_auto_save, Fset_buffer_auto_saved): Replace B_ with BVAR.
 +      * editfns.c (region_limit, Fmark_marker, save_excursion_save)
 +      (save_excursion_restore, Fprevious_char, Fchar_before)
 +      (general_insert_function, Finsert_char, Finsert_byte)
 +      (make_buffer_string_both, Finsert_buffer_substring)
 +      (Fcompare_buffer_substrings, subst_char_in_region_unwind)
 +      (subst_char_in_region_unwind_1, Fsubst_char_in_region)
 +      (Ftranslate_region_internal, save_restriction_restore)
 +      (Fchar_equal): Replace B_ with BVAR.
 +      * dispnew.c (Fframe_or_buffer_changed_p): Replace B_ with BVAR.
 +      * dispextern.h (WINDOW_WANTS_MODELINE_P)
 +      (WINDOW_WANTS_HEADER_LINE_P): Replace B_ with BVAR.
 +      * dired.c (directory_files_internal): Replace B_ with BVAR.
 +      * data.c (swap_in_symval_forwarding, set_internal)
 +      (Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
 +      Replace B_ with BVAR.
 +      * composite.c (fill_gstring_header)
 +      (composition_compute_stop_pos, composition_adjust_point)
 +      (Ffind_composition_internal): Replace B_ with BVAR.
 +      * coding.c (decode_coding, encode_coding)
 +      (make_conversion_work_buffer, decode_coding_gap)
 +      (decode_coding_object, encode_coding_object)
 +      (Fdetect_coding_region, Ffind_coding_systems_region_internal)
 +      (Funencodable_char_position, Fcheck_coding_systems_region):
 +      Replace B_ with BVAR.
 +      * cmds.c (Fself_insert_command, internal_self_insert): Replace B_
 +      with BVAR.
 +      * charset.c (Ffind_charset_region): Replace B_ with BVAR.
 +      * character.h (FETCH_CHAR_ADVANCE, INC_BOTH, DEC_BOTH)
 +      (ASCII_CHAR_WIDTH): Replace B_ with BVAR.
 +      * character.c (chars_in_text, Fget_byte): Replace B_ with BVAR.
 +      * category.h (Vstandard_category_table): Replace B_ with BVAR.
 +      * category.c (check_category_table, Fcategory_table)
 +      (Fset_category_table, char_category_set): Replace B_ with BVAR.
 +      * casetab.c (Fcurrent_case_table, set_case_table): Replace B_ with
 +      BVAR.
 +      * casefiddle.c (casify_object, casify_region): Replace B_ with
 +      BVAR.
 +      * callproc.c (Fcall_process, Fcall_process_region): Replace B_
 +      with BVAR.
 +      * callint.c (check_mark, Fcall_interactively): Replace B_ with
 +      BVAR.
 +      * bytecode.c (Fbyte_code): Replace B_ with BVAR.
 +      * buffer.h (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE, BVAR): Replace B_
 +      with BVAR.
 +      * buffer.c (Fbuffer_live_p, Fget_file_buffer)
 +      (get_truename_buffer, Fget_buffer_create)
 +      (clone_per_buffer_values, Fmake_indirect_buffer, reset_buffer)
 +      (reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
 +      (Fbuffer_local_value, buffer_lisp_local_variables)
 +      (Fset_buffer_modified_p, Frestore_buffer_modified_p)
 +      (Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
 +      (Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
 +      (set_buffer_temp, Fset_buffer, set_buffer_if_live)
 +      (Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
 +      (Fbuffer_swap_text, swapfield_, Fbuffer_swap_text)
 +      (Fset_buffer_multibyte, swap_out_buffer_local_variables)
 +      (record_overlay_string, overlay_strings, init_buffer_once)
 +      (init_buffer, syms_of_buffer): Replace B_ with BVAR.
 +
 +2011-02-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (redisplay_internal): Resynchronize `w' if the selected
 +      window is changed inside calls to do_pending_window_change.
 +      (Bug#8020)
 +
 +2011-02-16  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Remove no-longer needed getloadavg symbols.
 +      * m/alpha.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Remove.
 +      * m/amdx86-64.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Remove.
 +      * m/ia64.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Remove.
 +      * m/ibms390.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Remove.
 +      * m/macppc.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Remove.
 +      * m/sparc.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Remove.
 +      * m/template.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Remove.
 +      * m/vax.h (LOAD_AVE_TYPE, LOAD_AVE_CVT): Remove.
 +      * s/aix4-2.h (KERNEL_FILE, LDAV_SYMBOL): Remove.
 +      * s/bsd-common.h (KERNEL_FILE, LDAV_SYMBOL): Remove #undef.
 +      * s/hpux10-20.h (KERNEL_FILE, LOAD_AVE_TYPE, LOAD_AVE_CVT):
 +      (LDAV_SYMBOL): Remove.
 +      * s/unixware.h (LOAD_AVE_TYPE, LOAD_AVE_CVT, FSCALE): Remove.
 +      * s/usg5-4-common.h (KERNEL_FILE, LDAV_SYMBOL): Remove.
 +
 +      Import getloadavg module from gnulib.
 +      * deps.mk (getloadavg.o): Remove; gnulib now does this.
 +      * lisp.h (getloadavg) [!defined HAVE_GETLOADAVG]: Remove; gnulib
 +      now does this.
 +      * src/s/freebsd.h (HAVE_GETLOADAVG): Remove; gnulib now does this.
 +      * src/s/netbsd.h (HAVE_GETLOADAVG): Likewise.
 +      * config.in: Regenerate.
 +
 +2011-02-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * nsfns.m (ns_set_name_as_filename, Fns_read_file_name): Use B_.
 +
 +2011-02-14  Michael Welsh Duggan  <md5i@md5i.com>
 +
 +      * print.c (float_to_string): Ensure that a decimal point is
 +      printed if using dtoastr (Bug#8033).
 +
 +2011-02-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdos.c (IT_frame_up_to_date):
 +      * s/msdos.h (MODE_LINE_BINARY_TEXT): Use B_ for the MS-DOS build.
 +
 +      * dired.c (directory_files_internal):
 +      * fileio.c (Finsert_file_contents):
 +      * insdel.c (prepare_to_modify_buffer):
 +      * xdisp.c (pos_visible_p):
 +      * s/ms-w32.h (MODE_LINE_BINARY_TEXT):
 +      * w32fns.c (Fw32_shell_execute, Fx_show_tip, x_create_tip_frame):
 +      Use B_ for the MS-Windows build.
 +
 +2011-02-14  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xrdb.c (x_load_resources): For LUCID and XFT, don't put a
 +      resource that specifies helvetica for menus and dialogs.
 +
 +      * xmenu.c (apply_systemfont_to_dialog): Apply to *dialog.font.
 +      (apply_systemfont_to_menu): Set resources *menubar*font and
 +      *popup*font.  Remove defflt.
 +      (set_frame_menubar, create_and_show_popup_menu):
 +      Call apply_systemfont_to_menu before lw_create_widget.
 +
 +2011-02-14  Tom Tromey  <tromey@redhat.com>
 +
 +      * buffer.c (init_buffer_once, syms_of_buffer): Use B_ in DOS_NT case.
 +
 +      * keyboard.h: Remove obsolete comment.
 +
 +2011-02-14  Tom Tromey  <tromey@parfait>
 +
 +      * composite.c (fill_gstring_header)
 +      (composition_compute_stop_pos, composition_adjust_point)
 +      (Ffind_composition_internal): Use B_.
 +      * intervals.c (set_point_both, get_local_map): Use B_.
 +      * callproc.c (Fcall_process, Fcall_process_region): Use B_.
 +      * process.c (get_process, list_processes_1, Fstart_process)
 +      (Fmake_serial_process, Fmake_network_process)
 +      (read_process_output, send_process, exec_sentinel)
 +      (status_notify, setup_process_coding_systems): Use B_.
 +      * bytecode.c (Fbyte_code): Use B_.
 +      * syntax.c (update_syntax_table, dec_bytepos, Fsyntax_table)
 +      (Fset_syntax_table, Fmodify_syntax_entry, skip_chars)
 +      (skip_syntaxes, scan_lists): Use B_.
 +      * lread.c (readchar, unreadchar, openp, readevalloop)
 +      (Feval_buffer, Feval_region): Use B_.
 +      * print.c (printchar, strout, print_string, PRINTDECLARE)
 +      (PRINTPREPARE, PRINTFINISH, temp_output_buffer_setup)
 +      (print_object): Use B_.
 +      * font.c (font_at): Use B_.
 +      * fns.c (Fbase64_encode_region, Fbase64_decode_region, Fmd5):
 +      Use B_.
 +      * callint.c (check_mark, Fcall_interactively): Use B_.
 +      * editfns.c (region_limit, Fmark_marker, save_excursion_save)
 +      (save_excursion_restore, Fprevious_char, Fchar_before)
 +      (general_insert_function, Finsert_char, Finsert_byte)
 +      (make_buffer_string_both, Finsert_buffer_substring)
 +      (Fcompare_buffer_substrings, subst_char_in_region_unwind)
 +      (subst_char_in_region_unwind_1, Fsubst_char_in_region)
 +      (Ftranslate_region_internal, save_restriction_restore)
 +      (Fchar_equal): Use B_.
 +      * data.c (swap_in_symval_forwarding, set_internal)
 +      (Fmake_local_variable, Fkill_local_variable, Flocal_variable_p):
 +      Use B_.
 +      * undo.c (record_point, record_insert, record_delete)
 +      (record_marker_adjustment, record_first_change)
 +      (record_property_change, Fundo_boundary, truncate_undo_list)
 +      (Fprimitive_undo): Use B_.
 +      * search.c (compile_pattern_1, compile_pattern, looking_at_1)
 +      (string_match_1, fast_looking_at, newline_cache_on_off)
 +      (search_command, search_buffer, simple_search, boyer_moore)
 +      (Freplace_match): Use B_.
 +      * indent.c (buffer_display_table, recompute_width_table)
 +      (width_run_cache_on_off, current_column, scan_for_column)
 +      (Findent_to, position_indentation, compute_motion, vmotion):
 +      Use B_.
 +      * casefiddle.c (casify_object, casify_region): Use B_.
 +      * casetab.c (Fcurrent_case_table, set_case_table): Use B_.
 +      * cmds.c (Fself_insert_command, internal_self_insert): Use B_.
 +      * fileio.c (Fexpand_file_name, Ffile_directory_p)
 +      (Ffile_regular_p, Ffile_selinux_context)
 +      (Fset_file_selinux_context, Ffile_modes, Fset_file_modes)
 +      (Fset_file_times, Ffile_newer_than_file_p, decide_coding_unwind)
 +      (Finsert_file_contents, choose_write_coding_system)
 +      (Fwrite_region, build_annotations, Fverify_visited_file_modtime)
 +      (Fset_visited_file_modtime, auto_save_error, auto_save_1)
 +      (Fdo_auto_save, Fset_buffer_auto_saved): Use B_.
 +      * minibuf.c (read_minibuf, get_minibuffer, Fread_buffer): Use B_.
 +      * marker.c (Fmarker_buffer, Fset_marker, set_marker_restricted)
 +      (set_marker_both, set_marker_restricted_both, unchain_marker):
 +      Use B_.
 +      * insdel.c (check_markers, insert_char, insert_1_both)
 +      (insert_from_string_1, insert_from_gap, insert_from_buffer_1)
 +      (adjust_after_replace, replace_range, del_range_2)
 +      (modify_region, prepare_to_modify_buffer)
 +      (Fcombine_after_change_execute): Use B_.
 +      * filelock.c (unlock_all_files, Flock_buffer, Funlock_buffer)
 +      (unlock_buffer): Use B_.
 +      * keymap.c (Flocal_key_binding, Fuse_local_map)
 +      (Fcurrent_local_map, push_key_description)
 +      (Fdescribe_buffer_bindings): Use B_.
 +      * keyboard.c (command_loop_1, read_char_minibuf_menu_prompt)
 +      (read_key_sequence): Use B_.
 +      * fringe.c (get_logical_cursor_bitmap)
 +      (get_logical_fringe_bitmap, update_window_fringes): Use B_.
 +      * xfns.c (x_create_tip_frame, Fx_show_tip): Use B_.
 +      * xfaces.c (compute_char_face): Use B_.
 +      * character.c (chars_in_text, Fget_byte): Use B_.
 +      * category.c (check_category_table, Fcategory_table)
 +      (Fset_category_table, char_category_set): Use B_.
 +      * coding.c (decode_coding, encode_coding)
 +      (make_conversion_work_buffer, decode_coding_gap)
 +      (decode_coding_object, encode_coding_object)
 +      (Fdetect_coding_region, Ffind_coding_systems_region_internal)
 +      (Funencodable_char_position, Fcheck_coding_systems_region):
 +      Use B_.
 +      * charset.c (Ffind_charset_region): Use B_.
 +      * window.c (window_display_table, unshow_buffer, window_loop)
 +      (window_min_size_2, set_window_buffer, Fset_window_buffer)
 +      (select_window, Fforce_window_update, temp_output_buffer_show)
 +      (Fset_window_configuration, save_window_save): Use B_.
 +      * xdisp.c (pos_visible_p, init_iterator, reseat_1)
 +      (message_dolog, update_echo_area, ensure_echo_area_buffers)
 +      (with_echo_area_buffer, setup_echo_area_for_printing)
 +      (set_message_1, update_menu_bar, update_tool_bar)
 +      (text_outside_line_unchanged_p, redisplay_internal)
 +      (try_scrolling, try_cursor_movement, redisplay_window)
 +      (try_window_reusing_current_matrix, row_containing_pos)
 +      (try_window_id, get_overlay_arrow_glyph_row, display_line)
 +      (Fcurrent_bidi_paragraph_direction, display_mode_lines)
 +      (decode_mode_spec_coding, decode_mode_spec, display_count_lines)
 +      (get_window_cursor_type, note_mouse_highlight): Use B_.
 +      * frame.c (make_frame_visible_1): Use B_.
 +      * dispnew.c (Fframe_or_buffer_changed_p): Use B_.
 +      * dispextern.h (WINDOW_WANTS_HEADER_LINE_P)
 +      (WINDOW_WANTS_MODELINE_P): Use B_.
 +      * syntax.h (Vstandard_syntax_table): Update.
 +      (CURRENT_SYNTAX_TABLE, SETUP_BUFFER_SYNTAX_TABLE): Use B_.
 +      * intervals.h (TEXT_PROP_MEANS_INVISIBLE): Update.
 +      (TEXT_PROP_MEANS_INVISIBLE): Use B_.
 +      * character.h (FETCH_CHAR_ADVANCE): Update.
 +      (INC_BOTH, ASCII_CHAR_WIDTH, DEC_BOTH): Use B_.
 +      * category.h (Vstandard_category_table): Update.
 +      * lisp.h (DEFVAR_BUFFER_DEFAULTS): Update for change to field
 +      names.
 +      (DOWNCASE_TABLE, UPCASE_TABLE): Use B_.
 +      * buffer.c (swapfield_): New macro.
 +      (Fbuffer_swap_text): Use swapfield_ where appropriate.
 +      (Fbuffer_live_p, Fget_file_buffer, get_truename_buffer)
 +      (Fget_buffer_create, clone_per_buffer_values)
 +      (Fmake_indirect_buffer, reset_buffer)
 +      (reset_buffer_local_variables, Fbuffer_name, Fbuffer_file_name)
 +      (Fbuffer_local_value, buffer_lisp_local_variables)
 +      (Fset_buffer_modified_p, Frestore_buffer_modified_p)
 +      (Frename_buffer, Fother_buffer, Fbuffer_enable_undo)
 +      (Fkill_buffer, Fset_buffer_major_mode, set_buffer_internal_1)
 +      (set_buffer_temp, Fset_buffer, set_buffer_if_live)
 +      (Fbarf_if_buffer_read_only, Fbury_buffer, Ferase_buffer)
 +      (Fbuffer_swap_text, Fset_buffer_multibyte)
 +      (swap_out_buffer_local_variables, record_overlay_string)
 +      (overlay_strings, init_buffer_once, init_buffer, syms_of_buffer):
 +      Use B_.
 +      * buffer.h (struct buffer): Rename all Lisp_Object fields.
 +      (BUFFER_INTERNAL_FIELD, B_): New macro.
 +      (FETCH_CHAR, FETCH_CHAR_AS_MULTIBYTE): Use B_.
 +
 +2011-02-14  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_tool_bar_menu_proxy): Handle case when tool bar label
 +      is null.
 +
 +2011-02-13  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * callproc.c (Fcall_process):
 +      * process.c (create_process): Replace Gtk with GConf in SIGPIPE
 +      comment.
 +
 +2011-02-12  Martin Rudalics  <rudalics@gmx.at>
  
        * window.c (select_window): Check inhibit_point_swap argument when
        deciding whether to return immediately.
  
 -2011-02-08  Jan Djärv  <jan.h.d@swipnet.se>
 +2011-02-12  Jan Djärv  <jan.h.d@swipnet.se>
  
        * nsterm.m (setFrame, initFrame): Make sure pixel_height doesn't become
        zero (Bug#7348).
  
 -2011-02-03  Glenn Morris  <rgm@gnu.org>
 +2011-02-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * config.in (TERMINFO): New definition.
 +
 +      * s/netbsd.h: Use it to choose between terminfo and termcap
 +      (Bug#7642).
 +
 +2011-02-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * md5.c (md5_process_bytes): Use sizeof, not __alignof__.
 +      The difference doesn't matter here, in practice, and sizeof is
 +      more portable to non-GCC compilers.  Also, this makes the code
 +      match the already-existing comment.
 +
 +2011-02-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * process.c (create_process): Reset SIGPIPE handler in the child.
 +      * callproc.c (Fcall_process): Likewise.  (Bug#5238)
 +
 +2011-02-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c <this_line_min_pos>: New variable.
 +      (move_it_in_display_line_to): Record in this_line_min_pos the
 +      smallest position iterated across.
 +      (display_line): Use this_line_min_pos to record the smallest
 +      position in the line even if it is not displayed due to
 +      hscrolling.  (Bug#7939)
 +
 +2011-02-12  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Port to Sun C 5.11, which has __attribute__ ((__aligned (N))).
 +      * md5.h (ATTRIBUTE_ALIGNED): New macro.
 +      (struct md5_ctx): Use it.
 +
 +      Port to Solaris 10, which doesn't support FC_HINT_STYLE.
 +      * xftfont.c (FC_HINT_STYLE): #define to "hintstyle" if not
 +      defined.
 +      * xsettings.c (parse_settings, apply_xft_settings): Don't assume
 +      FC_HINT_STYLE is supported.
 +
 +2011-02-11  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (x_set_frame_alpha): Access data before it is free:d.
 +      Make sure we don't do x_catch_errors twice.
 +
 +2011-02-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (really-lwlib): Depend on globals.h, for parallel builds.
 +
 +2011-02-09  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (GLOBAL_SOURCES, SOME_MACHINE_OBJECTS, obj):
 +      New macros.
 +      (globals.h, gl-stamp): New targets.
 +      (clean): Clean gl-stamp and globals.h.
 +
 +2011-02-09  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * Makefile.in (gl-stamp): Create globals.h here.
 +      (globals.h): Don't do it here.
 +      (mostlyclean): Clean globals.h and gl-stamp.
 +
 +2011-02-09  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * Makefile.in ($(otherobj)): Depend on globals.h.
 +      Otherwise 'make -j10' failed on my host, because the build lacked
 +      necessary dependencies, e.g., vm-limit.o depends on globals.h.
 +
 +2011-02-08  Tom Tromey  <tromey@redhat.com>
 +
 +      * Makefile.in (NS_OBJC_OBJ): New variable.
 +      (base_obj): Rename from 'obj'.
 +      (obj): New variable.
 +      (globals.h, gl-stamp, $(obj)): New targets.
 +      (GLOBAL_SOURCES): New variable.
 +      * globals.h: Remove.
 +      * nsselect.m (Vselection_alist): Define.  Reverts part of
 +      2011-01-19T22:11:33Z!jan.h.d@swipnet.se.
 +      * buffer.c: Don't use "no_cell" for name of kill-buffer-hook's
 +      variable.
 +      * xselect.c (Vselection_alist): Define.  Reverts part of 2011-01-19T23:32:42Z!eggert@cs.ucla.edu.
 +
 +2011-02-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * font.c (Ffont_get): Do not cache :otf value.
 +
 +2011-02-07  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      conform to C89 pointer rules
 +
 +      * dired.c (scmp, file_name_completion):
 +      Change types between char * and unsigned char *, to satisfy C89
 +      rules about pointer type compatibility.
 +      * casefiddle.c (casify_object, casify_region): Likewise.
 +      * search.c (Freplace_match, Fregexp_quote): Likewise.
 +      * alloc.c (make_string, make_specified_string, make_pure_string):
 +      Likewise.
 +      * data.c (Fstring_to_number): Likewise.
 +      * print.c (float_to_string, PRINTFINISH, printchar, strout):
 +      (print_object): Likewise.
 +      * editfns.c (init_editfns, Fchar_to_string, Fbyte_to_string):
 +      (Fuser_full_name, Fsubst_char_in_region, Ftranslate_region_internal):
 +      (Fformat): Likewise.
 +      * callint.c (Fcall_interactively): Likewise.
 +      * fns.c (string_make_multibyte, string_to_multibyte):
 +      (string_make_unibyte, Fstring_as_unibyte, Fstring_to_unibyte):
 +      (Fbase64_encode_region, base64_encode_1, Fbase64_decode_region, Fmd5):
 +      Likewise.
 +      * lread.c (read1, hash_string): Likewise.
 +      * process.c (read_process_output, send_process, Fprocess_send_region):
 +      Likewise.
 +      * callproc.c (Fcall_process): Likewise.
 +      * doprnt.c (doprnt): Likewise.
 +      * indent.c (compute_motion): Likewise.
 +      * xfont.c (xfont_decode_coding_xlfd): Likewise.
 +      * ralloc.c (resize_bloc): Likewise.
 +      * image.c (tiff_load): Likewise.
 +      * xml.c (make_dom, parse_region): Likewise.
 +      * character.c (strwidth): Make its argument const char *, not const
 +      unsigned char *, since more callers prefer it that way.  All callers
 +      changed.
 +
 +2011-02-06  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * xterm.c (x_alloc_nearest_color_1): Avoid unportable int assumption.
 +      Emacs assumes two's complement elsewhere, but the assumption is
 +      easy to remove here, and this suppresses a warning with Sun C 5.8.
 +
 +      conform to C89 pointer rules
 +
 +      * xterm.c (x_draw_fringe_bitmap, handle_one_xevent, x_bitmap_icon):
 +      (same_x_server, x_term_init):
 +      Change types between char * and unsigned char *, to satisfy C89
 +      rules about pointer type compatibility.
 +      * doc.c (get_doc_string, Fsnarf_documentation):
 +      (Fsubstitute_command_keys): Likewise.
 +      * xfns.c (Fx_open_connection, Fx_window_property): Likewise.
 +      * bitmaps/gray.xbm (gray_bits): Likewise.
 +      * image.c (xbm_read_bitmap_data, xbm_load_image, xbm_load): Likewise.
 +      * keyboard.c (echo_char, MULTI_LETTER_MOD, tty_read_avail_input):
 +      Likewise.
 +      * keymap.c (Ftext_char_description): Likewise.
 +      * minibuf.c (Fread_buffer): Likewise.
 +      * fileio.c (IS_DRIVE) [defined WINDOWSNT]:
 +      (DRIVE_LETTER) [defined DOS_NT]:
 +      (report_file_error, Ffile_name_directory, Ffile_name_nondirectory):
 +      (make_temp_name, Fexpand_file_name, file_name_absolute_p):
 +      (search_embedded_absfilename, Fsubstitute_in_file_name):
 +      (barf_or_query_if_file_exists, Fmake_directory_internal):
 +      (Fdelete_directory_internal, Ffile_name_absolute_p, read_non_regular):
 +      (Finsert_file_contents, Fwrite_region):
 +      Likewise.
 +      * insdel.c (insert, insert_and_inherit, insert_before_markers):
 +      (insert_before_markers_and_inherit, insert_1, insert_1_both):
 +      Likewise.  This changes these functions' signatures, which is
 +      more convenient since most callers use char *.  All remaining
 +      callers changed.
 +      * editfns.c (general_insert_function): Change signature to
 +      match changes to insert functions' signatures.
 +      * keymap.c (map_keymap_char_table_item, map_keymap_internal):
 +      Use explicit cast when converting between void * and function pointer
 +      types, as C89 requires this.
 +
 +2011-02-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      don't ignore chdir failure
 +      * sysdep.c (sys_subshell) [!defined DOS_NT]: Diagnose chdir
 +      failure and exit.
 +      (sys_subshell) [defined DOS_NT]: Mark with a FIXME the two
 +      remaining unchecked chdir calls in this function; some DOS/NT
 +      expert needs to fix them.
 +      * emacs.c (main): Mark with a FIXME the unchecked chdir calls
 +      in this function; some NextStep expert needs to fix them.
 +
 +2011-02-05  Glenn Morris  <rgm@gnu.org>
  
        * xfaces.c (Finternal_set_lisp_face_attribute):
        Try to clarify some error messages.  (Bug#2659)
  
 -2011-02-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-02-05  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * editfns.c (save_restriction_restore): Don't forget to invalidate the
        current_column cache (bug#7946).
  
 -2011-02-02  Kenichi Handa  <handa@m17n.org>
 +2011-02-05  Kenichi Handa  <handa@m17n.org>
  
        * ftfont.c (ftfont_open): Use FC_DUAL only when it is defined.
  
        * xftfont.c (xftfont_open): Likewise.
  
 -2011-02-01  Andreas Schwab  <schwab@linux-m68k.org>
 +2011-02-05  Andreas Schwab  <schwab@linux-m68k.org>
  
        * window.c (Fselect_window): Add missing return value.
  
 -2011-01-29  Andreas Schwab  <schwab@linux-m68k.org>
 +2011-02-05  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      xstrcasecmp: conform to C89 pointer rules
 +      * xfaces.c (xstrcasecmp): Change args from const unsigned char *
 +      to const char *, since they're usually low-level C strings, and
 +      this stays compatible with C89 pointer rules.  All callers changed.
 +
 +      * charset.c: Conform to C89 pointer rules.
 +      (define_charset_internal): Switch between char * and unsigned char *.
 +
 +      * xmenu.c: Conform to C89 const rules.
 +      (xmenu_show, xdialog_show): Declare local var as char *, not
 +      const char *, to stay compatible with C89 const rules.
 +
 +      * xdisp.c: Conform to C89 pointer rules.
 +      (store_mode_line_noprop, display_string, reseat_to_string):
 +      (c_string_pos, number_of_chars, message_dolog):
 +      (message_log_check_duplicate, set_message_1, store_mode_line_noprop):
 +      (display_mode_element, display_string):
 +      Switch between char * and unsigned char * to stay compatible wth
 +      C89 pointer rules.
 +
 +      * regex.c: Conform to C89 pointer rules.
 +      (re_wctype): Add cast, as C89 does not allow assigning between
 +      char * and unsigned char *.
 +      (regex_compile): Likewise.
 +
 +      sync from gnulib to remove HAVE_STDBOOL_H
 +      * config.in: Regenerate.
 +
 +2011-02-04  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (LISP_H, PROCESS_H): New variables.
 +      Replace all uses of lisp.h with $(LISP_H), and all uses of
 +      process.h with $(PROCESS_H).
 +      ($(BLD)/editfns.$(O)): Depend on ../lib/strftime.h.
 +      ($(BLD)/print.$(O)): Depend on ../lib/ftoastr.h and ../lib/intprops.h.
 +
 +      * deps.mk: Update for recent changes: gnutls support, gnulib
 +      imports, addition of globals.h.
 +
 +      * makefile.w32-in ($(BLD)/sysdep.$(O)): Depend on
 +      ../lib/ignore-value.h.
 +
 +2011-02-03  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      allow C code to suppress warnings about ignored return values
 +
 +      We need to go through the code and for each such warning, either
 +      fix the code to pay attention to the returned value, or tell GCC
 +      that we really do want to ignore the returned value.  Here is one
 +      example of how to do the latter.
 +      * sysdep.c: Include <ignore-value.h>.
 +      (sys_subshell): Suppress an undesirable warning about not checking
 +      the returned value of 'write', as there's nothing useful one can
 +      do with that returned value.
 +
 +2011-02-03  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (x_connection_closed): Remove all calls that calls
 +      XSync (Bug#7949).
 +
 +2011-02-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * image.c (tiff_load): Avoid compiler warning in 2nd arg to
 +      TIFFClientOpen.
 +
 +2011-02-01  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsmfns.c (ice_connection_closed): Call delete_read_fd.
 +      (x_session_check_input): Change args and return type so it can be used
 +      as argument to add_read_fd.  Make static.  Remove call to select.
 +      Call kbd_buffer_store_event for emacs_event.
 +      (smc_save_yourself_CB): Also store initial argv to SmRestartCommand.
 +      (ice_conn_watch_CB): Call add_read_fd.
 +
 +      * xterm.c (XTread_socket): Remove HAVE_X_SM block with call to
 +      x_session_check_input.
 +      (x_session_initialized): Remove definition.
 +      (x_initialize): Remove setting of x_session_initialized.
 +
 +      * xterm.h (x_session_check_input): Remove declaration.
 +
 +2011-02-01  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      format-time-string now supports subsecond time stamp resolution
 +      * editfns.c (emacs_nmemftime): Rename from emacs_memftimeu,
 +      for consistency with its new argument and with gnulib nstrftime.
 +      All callers changed.  New argument NS.
 +      (Fformat_time_string): Check that the time argument's microseconds
 +      component, if any, is in range; this avoids integer overflow and
 +      also nstrftime needs this.  Document %N.
 +
 +2011-01-31  Andreas Schwab  <schwab@linux-m68k.org>
  
        * image.c (DEF_IMGLIB_FN): Add parameter rettype, use it instead
        of int.  All uses adjusted.
        (PNG_JMPBUF, png_load, jpeg_load, tiff_load, gif_load)
        (svg_load_image): Remove casts.
  
 -2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * image.c (fn_png_longjmp, fn_png_set_longjmp_fn): New png
        function definitions for compiling with libpng-1.5.
        (my_png_error, png_load): Use them.  Suggested by Thomas Klausner
        (Bug#7908).
  
 +2011-01-31  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * s/ms-w32.h (HAVE_STRFTIME): Don't define.
 +
 +      * makefile.w32-in (OBJ2): Remove strftime.$(O).
 +      ($(BLD)/strftime.$(O)): Remove prerequisites.
 +
 +2011-01-31  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      src/emacs.c now gets version number from configure.in
 +      * emacs.c (emacs_version): Set to VERSION so that it
 +      is determined automatically from ../configure.in.
 +
 +2011-01-31  Jim Meyering  <meyering@redhat.com>
 +
 +      * charset.c (load_charset_map): Don't deref NULL on failed malloc.
 +      Use xmalloc rather than malloc.
 +
 +2011-01-30  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      strftime: import from gnulib
 +      * Makefile.in (obj): Remove strftime.o, as gnulib now does this for us.
 +      * deps.mk (strftime.o): Remove.
 +      * editfns.c: Include <strftime.h>, supplied by gnulib.
 +      (emacs_strftimeu): Remove decl.
 +      (emacs_memftimeu): Use nstrftime (the gnulib name) rather than
 +      emacs_strftimeu.
 +      * config.in: Regenerate.
 +      * strftime.c: Remove; we now use strftime from gnulib.
 +
 +      Use SSDATA when the context wants char *.
 +      * alloc.c, buffer.c, bytecode.c, callproc.c, dired.c:
 +      * dispnew.c, doc.c, editfns.c, emacs.c, fileio.c, filelock.c:
 +      * fns.c, font.c, frame.c, image.c, indent.c, keyboard.c:
 +      * lread.c, minibuf.c, print.c, process.c, search.c, widget.c:
 +      * xdisp.c, xfaces.c, xfns.c, xml.c, xselect.c, xterm.c:
 +      Use SSDATA (not SDATA) when the context of the expression wants
 +      char * (not unsigned char *).
 +
 +2011-01-30  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * .gdbinit: Read global lisp variables as globals.f_V*.
 +
 +2011-01-30  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * font.c (PROP_MATCH): Remove parameter N and use strlen instead.
 +      All uses changed.
 +      (PROP_SAVE): Likewise.
 +
 +2011-01-29  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (make_lispy_position): Fix typo in last change
 +      (Bug#7935).
 +
 +2011-01-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * s/ms-w32.h (HAVE_MKTIME): Remove.
 +
 +      * makefile.w32-in (LOCAL_FLAGS): Add -I../lib.
 +      (GNULIB): New variable.
 +      (LIBS): Add $(GNULIB).
 +      $(TEMACS): Depend on $(GNULIB).
 +      <top-level>: Fix font-lock disrupted by a lone `"'.
 +
 +2011-01-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsselect.m (ns_string_from_pasteboard): Get length of string
 +      and use make_string instead of build_string (Bug#7934).
 +      (ns_string_to_pasteboard_internal): Use initWithBytesNoCopy
 +      instead of stringWithUTF8String  (Bug#7934).
 +
 +2011-01-29  Anders Lindgren  <andlind@gmail.com>  (tiny change)
 +
 +      * nsfont.m (nsfont_open): Ensure that fonts with inexact
 +      descenders would not become one pixel too tall (Bug#7887).
 +
  2011-01-28  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * m/intel386.h: Define NO_ARG_ARRAY.  Suggested by Dan Nicolaescu.
 +      * keyboard.c (make_lispy_position): For clicks on right fringe or
 +      margin, compute text position using the X coordinate relative to
 +      the left of the text area (Bug#7839).
 +
 +2011-01-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * ftfont.c (ftfont_spec_pattern): Check each extra property
 +      value.
 +
 +2011-01-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * xdisp.c (safe_eval_handler): Distinguish symbols and strings.
  
  2011-01-27  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * font.c (font_parse_fcname): Require GTK-style font sizes to
 -      occur at the end of the font string (Bug#7853).
 +      * font.c (font_parse_fcname): Undefine a temporary macro.
 +
 +2011-01-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Let the debugger continue to the normal handler (bug#7825).
 +      * eval.c (maybe_call_debugger): Declare before new use.
 +      (find_handler_clause): Don't call debugger any more.
 +      Ignore Vstack_trace_on_error.
 +      Use XCAR/XCDR.
 +      (syms_of_eval): Remove Vstack_trace_on_error.
 +      (Fsignal): Only modify handlerlist when we know we need to do it.
 +      Call the debugger when necessary.
 +      * globals.h (Vstack_trace_on_error): Remove.
  
  2011-01-26  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * font.c (font_parse_fcname): Fix typo in string length.
 +      * font.c (font_parse_fcname): Rewrite GTK font name parser.
  
 -2011-01-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-25  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * xdisp.c (handle_fontified_prop): Be careful with font-lock changing
        the buffer's point-max (bug#7876).
  
 -2011-01-23  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-25  Chong Yidong  <cyd@stupidchicken.com>
  
        * lisp.h (XPNTR): Obey DATA_SEG_BITS in all non-USE_LSB_TAG cases.
 -      Remove unused HAVE_SHM branch (Bug#6811).
 +      Remove unused case (Bug#6811).
 +
 +2011-01-23  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (x_set_offset): Set dont_constrain to 0 so the call to
 +      setFrameTopLeftPoint is constrained.
 +
 +2011-01-23  Paul Eggert  <eggert@cs.ucla.edu>
  
 -2011-01-23  Peter O'Gorman  <bug-gnu-emacs@mlists.thewrittenword.com>  (tiny change)
 +      Check return values of some library calls.
 +      * emacs.c (main): Check dup result.
 +      * frame.c: Include <limits.h>, for INT_MIN and INT_MAX.
 +      (frame_name_fnn_p): Check strtol result.
  
 -      * s/hpux11.h: Set CANNOT_DUMP on IA64 (Bug#6811).
 +      * image.c (x_create_bitmap_from_xpm_data): Add cast to fix type clash
 +      when calling XpmCreatePixmapFromData.
 +
 +      Promote SSDATA macro from gtkutil.c and xsmfns.c to lisp.h.
 +      * lisp.h (SSDATA): New macro.
 +      All uses of (char *) SDATA (x) replaced with SSDATA (x),
 +      and all uses of (unsigned char *) SDATA (x) replaced with SDATA (x).
 +      * gtkutil.c (SSDATA): Remove, as lisp.h now defines this.
 +      * xsmfns.c (SSDATA): Likewise.
  
  2011-01-22  Martin Rudalics  <rudalics@gmx.at>
  
        (inhibit_point_swap): Variable deleted.
        (Fset_window_configuration): Call select_window directly.
  
 -2011-01-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (constrainFrameRect): Only constrain the first time called.
 +
 +2011-01-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (x_set_offset, windowDidMove): When calculating y, use first
 +      screen, not the window screen.
 +      (x_set_window_size): Remove constraints.
 +      Calculate origin.y only if zooming is 0 and without referring to a
 +      screen.
 +      (windowWillResize): Don't modify frameSize.
 +      (windowDidBecomeKey, mouseDown): Set dont_constrain to 1.
 +      (initFrameFromEmacs): Initialize ns_userRect.
 +      (windowShouldZoom): Set zooming to one.  Remove all other code.
 +      (windowWillUseStandardFrame): Move static ns_userRect to EmacsView.
 +      Zero it after restore.
 +      (constrainFrameRect): New method for EmacsWindow.
 +      (mouseDragged): Always post NSWindowDidResizeNotification after call to
 +      windowWillResize.
 +
 +      * nsterm.h (ns_output): Add dont_constrain and zooming.
 +      (EmacsView): Add ns_userRect.
 +
 +      * nsterm.m (keyDown): If ns_right_alternate_modifier is Qleft, check
 +      if ns_alternate_modifier is none.
 +
 +2011-01-20  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * unexmacosx.c: Add comment about include order.
 +
 +2011-01-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * minibuf.c (syms_of_minibuf) <read-expression-history>:
 +      Give it a doc string.
 +      * globals.h: Add Vread_expression_history.
 +
 +      * macros.c (syms_of_macros) <kbd-macro-termination-hook>:
 +      Give it a doc string.
 +      * globals.h: Add Vkbd_macro_termination_hook.
 +
 +2011-01-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fns.c (Fyes_or_no_p): Revert 2011-01-07 change, removing ARGS.
 +
 +2011-01-19  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Fix X11 compilation failure.
 +      * globals.h (struct emacs_globals): Document f_Vselection_alist.
 +      * xselect.c (Vselection_alist): Remove declaration, moving its
 +      documentation to globals.h.  This fixes a compilation failure
 +      induced by the earlier change to globals.h today.
 +
 +2011-01-19  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * unexmacosx.c: Include config.h before unistd.h (Bug#7859).
 +
 +      * nsterm.m (ns_input_file, ns_input_font, ns_input_fontsize)
 +      (ns_input_line, ns_input_color, ns_input_text, ns_working_text)
 +      (ns_input_spi_name, ns_input_spi_arg)
 +      (ns_alternate_modifier, ns_right_alternate_modifier)
 +      (ns_command_modifier, ns_right_command_modifier, ns_control_modifier)
 +      (ns_right_control_modifier, ns_function_modifier)
 +      (ns_antialias_text, ns_confirm_quit): Move to globals.h.
 +      (Vx_toolkit_scroll_bars, x_use_underline_position_properties)
 +      (x_underline_at_descent_line): Remove declaration.
 +      (syms_of_nsterm): Remove & from DEFVAR_LISP and DEFVAR_BOOL.
 +
 +      * nsselect.m (Vns_sent_selection_hooks, Vns_lost_selection_hooks
 +      (Vselection_alist, Vselection_converter_alist): Move to globals.h.
 +      (syms_of_nsselect): Remove & from DEFVAR_LISP.
 +
 +      * nsmenu.m (Voverriding_local_map, Voverriding_local_map_menu_flag):
 +      Remove declaration.
 +
 +      * nsfont.m (Vns_reg_to_script, ns_antialias_text): Move to
 +      globals.h.
 +      (syms_of_nsfont): Remove & from DEFVAR_LISP.
 +
 +      * nsfns.m (Vmenu_bar_mode, Vtool_bar_mode): Remove declaration.
 +      (Vns_icon_type_alist, Vns_version_string): Move to globals.h.
 +      (syms_of_nsfns): Remove & from DEFVAR_LISP calls.
 +
 +      * globals.h (struct emacs_globals): Add f_ns_input_file,
 +      f_ns_input_font, f_ns_input_fontsize, f_ns_input_line,
 +      f_ns_input_color, f_ns_input_text, f_ns_working_text,
 +      f_ns_input_spi_name, f_ns_input_spi_arg, f_ns_alternate_modifier,
 +      f_ns_right_alternate_modifier, f_ns_command_modifier,
 +      f_ns_right_command_modifier, f_ns_control_modifier,
 +      f_ns_right_control_modifier, f_ns_function_modifier,
 +      f_ns_antialias_text, f_ns_confirm_quit, f_Vns_icon_type_alist,
 +      f_Vns_version_string, f_Vns_sent_selection_hooks,
 +      f_Vns_lost_selection_hooks, f_Vselection_alist, f_Vns_reg_to_script
 +      and corresponding defines.
 +
 +2011-01-19  Sam Steingold  <sds@gnu.org>
 +
 +      * w32.c (check_windows_init_file): Remove declarations of
 +      Vwindow_system, Vload_path, Qfile_exists_p to fix compilation.
 +      * w32fns.c: Fix an error introduced by the previous patch.
 +
 +2011-01-19  Tom Tromey  <tromey@redhat.com>
 +
 +      * window.c: Fix error introduced by previous patch.
 +
 +2011-01-18  Tom Tromey  <tromey@parfait>
 +
 +      * globals.h: New file.
 +      * xterm.h (Vx_pixel_size_width_font_regexp): Remove declaration.
 +      * window.h (Vinitial_window_system, Vminibuf_scroll_window)
 +      (Vwindow_system_version): Remove declaration.
 +      * w32term.h (Vw32_enable_palette)
 +      (Vx_pixel_size_width_font_regexp): Remove declaration.
 +      * w32menu.c (Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag): Remove declaration.
 +      * w32inevt.c (Vw32_alt_is_meta, Vw32_apps_modifier)
 +      (Vw32_capslock_is_shiftlock, Vw32_enable_caps_lock)
 +      (Vw32_enable_num_lock, Vw32_lwindow_modifier)
 +      (Vw32_pass_lwindow_to_system, Vw32_pass_rwindow_to_system)
 +      (Vw32_phantom_key_code, Vw32_recognize_altgr)
 +      (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
 +      (w32_use_full_screen_buffer): Remove declaration.
 +      * w32.c (Vsystem_configuration, Vw32_downcase_file_names)
 +      (Vw32_generate_fake_inodes, Vw32_get_true_file_attributes)
 +      (w32_num_mouse_buttons, w32_pipe_read_delay): Remove declaration.
 +      * termopts.h (Vtruncate_partial_width_windows, inverse_video)
 +      (no_redraw_on_reenter, visible_bell): Remove declaration.
 +      * sysdep.c (Vsystem_name): Remove declaration.
 +      * syntax.h (parse_sexp_lookup_properties): Remove declaration.
 +      * menu.h (Vmenu_updating_frame): Remove declaration.
 +      * macros.h (Vexecuting_kbd_macro, executing_kbd_macro_index):
 +      Remove declaration.
 +      * lisp.h (Vafter_init_time, Vafter_load_alist)
 +      (Vauto_save_list_file_name, Vbefore_init_time, Vcommand_history)
 +      (Vcompletion_regexp_list, Vcurrent_load_list)
 +      (Vcurrent_prefix_arg, Vdata_directory, Vdebug_on_error)
 +      (Vdoc_directory, Vdoc_file_name, Vdynamic_library_alist)
 +      (Vexec_directory, Vexec_path, Vexec_suffixes)
 +      (Vface_font_rescale_alist, Vface_ignored_fonts, Vfeatures)
 +      (Vhelp_form, Vhistory_length, Vinhibit_field_text_motion)
 +      (Vinhibit_quit, Vinhibit_read_only, Vinhibit_redisplay)
 +      (Vinstallation_directory, Vinvocation_directory)
 +      (Vinvocation_name, Vload_file_rep_suffixes, Vload_history)
 +      (Vload_suffixes, Vmark_even_if_inactive, Vmemory_full)
 +      (Vmessage_log_max, Vobarray, Vprint_length, Vprint_level)
 +      (Vpurify_flag, Vquit_flag, Vsaved_region_selection)
 +      (Vscalable_fonts_allowed, Vselect_active_regions)
 +      (Vshell_file_name, Vstandard_input, Vstandard_output)
 +      (Vsystem_name, Vtemporary_file_directory, Vthrow_on_input)
 +      (Vtop_level, Vtty_erase_char, Vundo_outer_limit)
 +      (Vuser_login_name, Vwindow_scroll_functions)
 +      (Vwindow_system_version, Vx_no_window_manager)
 +      (Vx_resource_class, Vx_resource_name, baud_rate)
 +      (completion_ignore_case, debug_on_next_call, gc_cons_threshold)
 +      (history_delete_duplicates, inhibit_x_resources)
 +      (last_nonmenu_event, load_in_progress, max_specpdl_size)
 +      (minibuffer_auto_raise, print_escape_newlines, scroll_margin)
 +      (use_dialog_box, use_file_dialog): Remove declaration.
 +      Include globals.h.
 +      * keymap.h (Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag, meta_prefix_char):
 +      Remove declaration.
 +      * keyboard.h (Vdouble_click_time, Vfunction_key_map)
 +      (Vinput_method_function, Vkey_translation_map)
 +      (Vlucid_menu_bar_dirty_flag, Vthis_original_command)
 +      (do_mouse_tracking, extra_keyboard_modifiers)
 +      (num_nonmacro_input_events): Remove declaration.
 +      * intervals.h (Vchar_property_alias_alist)
 +      (Vdefault_text_properties, Vinhibit_point_motion_hooks)
 +      (Vtext_property_default_nonsticky): Remove declaration.
 +      * gtkutil.h (x_gtk_file_dialog_help_text)
 +      (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
 +      (x_gtk_whole_detached_tool_bar): Remove declaration.
 +      * frame.h (Vdefault_frame_alist, Vframe_alpha_lower_limit)
 +      (Vmenu_bar_mode, Vmouse_highlight, Vterminal_frame)
 +      (Vtool_bar_mode, Vx_resource_class, Vx_resource_name)
 +      (focus_follows_mouse): Remove declaration.
 +      * fontset.h (Valternate_fontname_alist, Vfontset_alias_alist)
 +      (Vignore_relative_composition, Votf_script_alist)
 +      (Vuse_default_ascent, Vvertical_centering_font_regexp):
 +      Remove declaration.
 +      * font.h (Vfont_log): Remove declaration.
 +      * dosfns.h (Vdos_display_scancodes, Vdos_version)
 +      (Vdos_windows_version, dos_codepage, dos_country_code)
 +      (dos_decimal_point, dos_hyper_key, dos_keyboard_layout)
 +      (dos_keypad_mode, dos_super_key, dos_timezone_offset):
 +      Remove declaration.
 +      * disptab.h (Vglyph_table, Vstandard_display_table):
 +      Remove declaration.
 +      * dispextern.h (Vface_remapping_alist, Vglyphless_char_display)
 +      (Vmouse_autoselect_window, Voverflow_newline_into_fringe)
 +      (Vshow_trailing_whitespace, Vtool_bar_button_margin)
 +      (Vtool_bar_style, cursor_in_echo_area, display_hourglass_p)
 +      (inverse_video, mode_line_in_non_selected_windows)
 +      (tool_bar_button_relief, tool_bar_max_label_size)
 +      (underline_minimum_offset)
 +      (unibyte_display_via_language_environment, x_stretch_cursor_p):
 +      Remove declaration.
 +      * composite.h (Vauto_composition_function)
 +      (Vcomposition_function_table): Remove declaration.
 +      * commands.h (Vexecuting_kbd_macro)
 +      (Vminibuffer_local_completion_map)
 +      (Vminibuffer_local_filename_completion_map)
 +      (Vminibuffer_local_filename_must_match_map)
 +      (Vminibuffer_local_map, Vminibuffer_local_must_match_map)
 +      (Vminibuffer_local_ns_map, Vthis_command)
 +      (Vunread_command_events, cursor_in_echo_area)
 +      (last_command_event, last_nonmenu_event, unread_command_char):
 +      Remove declaration.
 +      * coding.h (Vcoding_system_for_read, Vcoding_system_for_write)
 +      (Vdefault_file_name_coding_system)
 +      (Vdefault_process_coding_system, Vfile_name_coding_system)
 +      (Vlast_coding_system_used, Vlocale_coding_system)
 +      (Vselect_safe_coding_system_function)
 +      (Vtranslation_table_for_input, coding_system_require_warning)
 +      (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
 +      (eol_mnemonic_unix, inherit_process_coding_system):
 +      Remove declaration.
 +      * charset.h (Vcharset_list, Vcurrent_iso639_language):
 +      Remove declaration.
 +      * character.h (Vauto_fill_chars, Vchar_direction_table)
 +      (Vchar_script_table, Vchar_width_table, Vprintable_chars)
 +      (Vscript_representative_chars, Vtranslation_table_vector)
 +      (Vunicode_category_table): Remove declaration.
 +      * ccl.h (Vfont_ccl_encoder_alist): Remove declaration.
 +      * buffer.h (Vafter_change_functions, Vbefore_change_functions)
 +      (Vdeactivate_mark, Vfirst_change_hook, Vtransient_mark_mode)
 +      (inhibit_modification_hooks): Remove declaration.
 +      * xterm.c (syms_of_xterm): Update.
 +      (Vx_alt_keysym, Vx_hyper_keysym, Vx_keysym_table)
 +      (Vx_meta_keysym, Vx_super_keysym, Vx_toolkit_scroll_bars)
 +      (x_mouse_click_focus_ignore_position)
 +      (x_underline_at_descent_line)
 +      (x_use_underline_position_properties): Remove.
 +      * xsmfns.c (syms_of_xsmfns): Update.
 +      (Vx_session_id, Vx_session_previous_id): Remove.
 +      * xsettings.c (syms_of_xsettings): Update.
 +      (Vxft_settings, use_system_font): Remove.
 +      * xselect.c (syms_of_xselect): Update.
 +      (Vselection_converter_alist, Vx_lost_selection_functions)
 +      (Vx_sent_selection_functions, x_selection_timeout): Remove.
 +      * xfns.c (syms_of_xfns): Update.
 +      (Vgtk_version_string, Vmotif_version_string)
 +      (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
 +      (Vx_max_tooltip_size, Vx_mode_pointer_shape)
 +      (Vx_no_window_manager, Vx_nontext_pointer_shape)
 +      (Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
 +      (Vx_sensitive_text_pointer_shape)
 +      (Vx_window_horizontal_drag_shape, x_gtk_file_dialog_help_text)
 +      (x_gtk_show_hidden_files, x_gtk_use_old_file_dialog)
 +      (x_gtk_use_system_tooltips, x_gtk_whole_detached_tool_bar):
 +      Remove.
 +      * xfaces.c (syms_of_xfaces): Update.
 +      (Vface_default_stipple, Vface_font_rescale_alist)
 +      (Vface_ignored_fonts, Vface_new_frame_defaults)
 +      (Vface_remapping_alist, Vfont_list_limit)
 +      (Vscalable_fonts_allowed, Vtty_defined_color_alist): Remove.
 +      * xdisp.c (syms_of_xdisp): Update.
 +      (Vauto_resize_tool_bars, Vblink_cursor_alist)
 +      (Vdisplay_pixels_per_inch, Vfontification_functions)
 +      (Vframe_title_format, Vglobal_mode_string)
 +      (Vglyphless_char_display, Vhourglass_delay, Vhscroll_step)
 +      (Vicon_title_format, Vinhibit_redisplay)
 +      (Vline_number_display_limit, Vline_prefix)
 +      (Vmax_mini_window_height, Vmenu_bar_update_hook)
 +      (Vmenu_updating_frame, Vmessage_log_max)
 +      (Vmouse_autoselect_window, Vnobreak_char_display)
 +      (Voverlay_arrow_position, Voverlay_arrow_string)
 +      (Voverlay_arrow_variable_list, Vredisplay_end_trigger_functions)
 +      (Vresize_mini_windows, Vshow_trailing_whitespace)
 +      (Vtool_bar_border, Vtool_bar_button_margin, Vtool_bar_style)
 +      (Vtruncate_partial_width_windows, Vvoid_text_area_pointer)
 +      (Vwindow_scroll_functions, Vwindow_size_change_functions)
 +      (Vwindow_text_change_functions, Vwrap_prefix)
 +      (auto_raise_tool_bar_buttons_p, automatic_hscrolling_p)
 +      (debug_end_pos, display_hourglass_p, emacs_scroll_step)
 +      (highlight_nonselected_windows, hscroll_margin)
 +      (inhibit_eval_during_redisplay, inhibit_free_realized_faces)
 +      (inhibit_menubar_update, inhibit_try_cursor_movement)
 +      (inhibit_try_window_id, inhibit_try_window_reusing)
 +      (line_number_display_limit_width)
 +      (make_cursor_line_fully_visible_p, message_truncate_lines)
 +      (mode_line_inverse_video, multiple_frames, overline_margin)
 +      (scroll_conservatively, scroll_margin, tool_bar_button_relief)
 +      (tool_bar_max_label_size, underline_minimum_offset)
 +      (unibyte_display_via_language_environment, x_stretch_cursor_p):
 +      Remove.
 +      * window.c (syms_of_window): Update.
 +      (Vminibuf_scroll_window, Vother_window_scroll_buffer)
 +      (Vrecenter_redisplay, Vscroll_preserve_screen_position)
 +      (Vtemp_buffer_show_function, Vwindow_configuration_change_hook)
 +      (Vwindow_point_insertion_type, auto_window_vscroll_p)
 +      (mode_line_in_non_selected_windows, next_screen_context_lines)
 +      (window_min_height, window_min_width): Remove.
 +      (scroll_margin): Remove declaration.
 +      * w32term.c (syms_of_w32term): Update.
 +      (Vw32_capslock_is_shiftlock, Vw32_grab_focus_on_raise)
 +      (Vw32_recognize_altgr, Vw32_swap_mouse_buttons)
 +      (Vx_toolkit_scroll_bars, w32_num_mouse_buttons)
 +      (w32_use_visible_system_caret, x_underline_at_descent_line)
 +      (x_use_underline_position_properties): Remove.
 +      (Vcommand_line_args, Vsystem_name, extra_keyboard_modifiers):
 +      Remove declaration.
 +      * w32select.c (syms_of_w32select): Update.
 +      (Vnext_selection_coding_system, Vselection_coding_system): Remove.
 +      * w32proc.c (syms_of_ntproc): Update.
 +      (Vw32_downcase_file_names, Vw32_generate_fake_inodes)
 +      (Vw32_get_true_file_attributes, Vw32_quote_process_args)
 +      (Vw32_start_process_inherit_error_mode)
 +      (Vw32_start_process_share_console)
 +      (Vw32_start_process_show_window, w32_pipe_read_delay): Remove.
 +      (Vsystem_name): Remove declaration.
 +      * w32font.c (syms_of_w32font): Update.
 +      (Vw32_charset_info_alist): Remove.
 +      * w32fns.c (globals_of_w32fns, syms_of_w32fns): Update.
 +      (Vw32_alt_is_meta, Vw32_apps_modifier, Vw32_bdf_filename_alist)
 +      (Vw32_color_map, Vw32_enable_caps_lock, Vw32_enable_num_lock)
 +      (Vw32_enable_palette, Vw32_lwindow_modifier)
 +      (Vw32_pass_alt_to_system, Vw32_pass_lwindow_to_system)
 +      (Vw32_pass_rwindow_to_system, Vw32_phantom_key_code)
 +      (Vw32_rwindow_modifier, Vw32_scroll_lock_modifier)
 +      (Vx_cursor_fore_pixel, Vx_hourglass_pointer_shape)
 +      (Vx_max_tooltip_size, Vx_mode_pointer_shape)
 +      (Vx_no_window_manager, Vx_nontext_pointer_shape)
 +      (Vx_pixel_size_width_font_regexp, Vx_pointer_shape)
 +      (Vx_sensitive_text_pointer_shape)
 +      (Vx_window_horizontal_drag_shape, w32_ansi_code_page)
 +      (w32_enable_synthesized_fonts, w32_mouse_button_tolerance)
 +      (w32_mouse_move_interval)
 +      (w32_pass_extra_mouse_buttons_to_system)
 +      (w32_pass_multimedia_buttons_to_system, w32_quit_key)
 +      (w32_strict_fontnames, w32_strict_painting): Remove.
 +      (Vhourglass_delay, Vmenu_bar_mode, Vtool_bar_mode)
 +      (Vw32_recognize_altgr, Vwindow_system_version)
 +      (w32_num_mouse_buttons, w32_use_visible_system_caret):
 +      Remove declaration.
 +      * w32console.c (syms_of_ntterm): Update.
 +      (w32_use_full_screen_buffer): Remove.
 +      (Vtty_defined_color_alist): Remove declaration.
 +      * w16select.c (syms_of_win16select): Update.
 +      (Vnext_selection_coding_system, Vselection_coding_system): Remove.
 +      * undo.c (syms_of_undo): Update.
 +      (Vundo_outer_limit, Vundo_outer_limit_function)
 +      (undo_inhibit_record_point, undo_limit, undo_strong_limit):
 +      Remove.
 +      * textprop.c (syms_of_textprop): Update.
 +      (Vchar_property_alias_alist, Vdefault_text_properties)
 +      (Vinhibit_point_motion_hooks, Vtext_property_default_nonsticky):
 +      Remove.
 +      * terminal.c (syms_of_terminal): Update.
 +      (Vdelete_terminal_functions, Vring_bell_function): Remove.
 +      * term.c (syms_of_term): Update.
 +      (Vresume_tty_functions, Vsuspend_tty_functions)
 +      (no_redraw_on_reenter, system_uses_terminfo, visible_cursor):
 +      Remove.
 +      * syntax.c (syms_of_syntax): Update.
 +      (Vfind_word_boundary_function_table, multibyte_syntax_as_symbol)
 +      (open_paren_in_column_0_is_defun_start)
 +      (parse_sexp_ignore_comments, parse_sexp_lookup_properties)
 +      (words_include_escapes): Remove.
 +      * search.c (syms_of_search): Update.
 +      (Vinhibit_changing_match_data, Vsearch_spaces_regexp): Remove.
 +      * process.c (syms_of_process): Update.
 +      (Vprocess_adaptive_read_buffering, Vprocess_connection_type)
 +      (delete_exited_processes): Remove.
 +      * print.c (syms_of_print): Update.
 +      (Vfloat_output_format, Vprint_charset_text_property)
 +      (Vprint_circle, Vprint_continuous_numbering, Vprint_gensym)
 +      (Vprint_length, Vprint_level, Vprint_number_table)
 +      (Vstandard_output, print_escape_multibyte)
 +      (print_escape_newlines, print_escape_nonascii, print_quoted):
 +      Remove.
 +      * msdos.c (syms_of_msdos): Update.
 +      (Vdos_unsupported_char_glyph): Remove.
 +      (unibyte_display_via_language_environment): Remove declaration.
 +      * minibuf.c (syms_of_minibuf): Update.
 +      (Vcompletion_regexp_list, Vhistory_add_new_input)
 +      (Vhistory_length, Vminibuffer_completing_file_name)
 +      (Vminibuffer_completion_confirm)
 +      (Vminibuffer_completion_predicate, Vminibuffer_completion_table)
 +      (Vminibuffer_exit_hook, Vminibuffer_help_form)
 +      (Vminibuffer_history_position, Vminibuffer_history_variable)
 +      (Vminibuffer_prompt_properties, Vminibuffer_setup_hook)
 +      (Vread_buffer_function, Vread_expression_map)
 +      (completion_ignore_case, enable_recursive_minibuffers)
 +      (history_delete_duplicates, minibuffer_allow_text_properties)
 +      (minibuffer_auto_raise, read_buffer_completion_ignore_case):
 +      Remove.
 +      * marker.c (syms_of_marker): Update.
 +      (byte_debug_flag): Remove.
 +      * macros.c (syms_of_macros): Update.
 +      (Vexecuting_kbd_macro, executing_kbd_macro_index): Remove.
 +      * lread.c (syms_of_lread): Update.
 +      (Vafter_load_alist, Vbyte_boolean_vars)
 +      (Vbytecomp_version_regexp, Vcurrent_load_list)
 +      (Veval_buffer_list, Vload_file_name, Vload_file_rep_suffixes)
 +      (Vload_history, Vload_path, Vload_read_function)
 +      (Vload_source_file_function, Vload_suffixes, Vobarray)
 +      (Vold_style_backquotes, Vpreloaded_file_list, Vread_circle)
 +      (Vread_symbol_positions_list, Vread_with_symbol_positions)
 +      (Vsource_directory, Vstandard_input, Vuser_init_file, Vvalues)
 +      (force_load_messages, load_convert_to_unibyte)
 +      (load_dangerous_libraries, load_force_doc_strings)
 +      (load_in_progress): Remove.
 +      * keymap.c (syms_of_keymap): Update.
 +      (Vdefine_key_rebound_commands, Vemulation_mode_map_alists)
 +      (Vminibuffer_local_completion_map)
 +      (Vminibuffer_local_filename_completion_map)
 +      (Vminibuffer_local_filename_must_match_map)
 +      (Vminibuffer_local_map, Vminibuffer_local_must_match_map)
 +      (Vminibuffer_local_ns_map, Vminor_mode_map_alist)
 +      (Vminor_mode_overriding_map_alist, Vwhere_is_preferred_modifier):
 +      Remove.
 +      * keyboard.c (syms_of_keyboard): Update.
 +      (Vauto_save_timeout, Vcommand_error_function)
 +      (Vcommand_hook_internal, Vdeactivate_mark)
 +      (Vdeferred_action_function, Vdeferred_action_list)
 +      (Vdisable_point_adjustment, Vdouble_click_time)
 +      (Vecho_keystrokes, Venable_disabled_menus_and_buttons)
 +      (Vfunction_key_map, Vglobal_disable_point_adjustment)
 +      (Vhelp_char, Vhelp_event_list, Vhelp_form)
 +      (Vinput_method_function, Vinput_method_previous_message)
 +      (Vkey_translation_map, Vlast_event_frame)
 +      (Vlucid_menu_bar_dirty_flag, Vmenu_bar_final_items)
 +      (Vminibuffer_message_timeout, Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag, Vpost_command_hook)
 +      (Vpre_command_hook, Vprefix_help_command)
 +      (Vsaved_region_selection, Vselect_active_regions)
 +      (Vshow_help_function, Vspecial_event_map, Vsuggest_key_bindings)
 +      (Vthis_command, Vthis_command_keys_shift_translated)
 +      (Vthis_original_command, Vthrow_on_input, Vtimer_idle_list)
 +      (Vtimer_list, Vtool_bar_separator_image_expression, Vtop_level)
 +      (Vtty_erase_char, Vunread_command_events)
 +      (Vunread_input_method_events, Vunread_post_input_method_events)
 +      (auto_save_interval, cannot_suspend, do_mouse_tracking)
 +      (double_click_fuzz, extra_keyboard_modifiers)
 +      (inhibit_local_menu_bar_menus, last_command_event)
 +      (last_input_event, last_nonmenu_event, menu_prompt_more_char)
 +      (menu_prompting, meta_prefix_char, num_input_keys)
 +      (num_nonmacro_input_events, polling_period, unread_command_char):
 +      Remove.
 +      * insdel.c (syms_of_insdel): Update.
 +      (Vcombine_after_change_calls, check_markers_debug_flag): Remove.
 +      * indent.c (syms_of_indent): Update.
 +      (indent_tabs_mode): Remove.
 +      * image.c (syms_of_image): Update.
 +      (Vimage_cache_eviction_delay, Vimage_types)
 +      (Vimagemagick_render_type, Vmax_image_size, Vx_bitmap_file_path)
 +      (cross_disabled_images): Remove.
 +      * fringe.c (syms_of_fringe): Update.
 +      (Vfringe_bitmaps, Voverflow_newline_into_fringe): Remove.
 +      * frame.c (syms_of_frame): Update.
 +      (Vdefault_frame_alist, Vdefault_frame_scroll_bars)
 +      (Vdelete_frame_functions, Vframe_alpha_lower_limit)
 +      (Vmake_pointer_invisible, Vmenu_bar_mode, Vmouse_highlight)
 +      (Vmouse_position_function, Vterminal_frame, Vtool_bar_mode)
 +      (Vx_resource_class, Vx_resource_name, focus_follows_mouse):
 +      Remove.
 +      * fontset.c (syms_of_fontset): Update.
 +      (Valternate_fontname_alist, Vfont_encoding_charset_alist)
 +      (Vfontset_alias_alist, Vignore_relative_composition)
 +      (Votf_script_alist, Vuse_default_ascent)
 +      (Vvertical_centering_font_regexp): Remove.
 +      * font.c (syms_of_font): Update.
 +      (Vfont_encoding_alist, Vfont_log, Vfont_slant_table)
 +      (Vfont_weight_table, Vfont_width_table): Remove.
 +      * fns.c (syms_of_fns): Update.
 +      (Vfeatures, use_dialog_box, use_file_dialog): Remove.
 +      * filelock.c (syms_of_filelock): Update.
 +      (Vtemporary_file_directory): Remove.
 +      * fileio.c (syms_of_fileio): Update.
 +      (Vafter_insert_file_functions, Vauto_save_include_big_deletions)
 +      (Vauto_save_list_file_name, Vauto_save_visited_file_name)
 +      (Vdefault_file_name_coding_system, Vfile_name_coding_system)
 +      (Vfile_name_handler_alist, Vinhibit_file_name_handlers)
 +      (Vinhibit_file_name_operation, Vset_auto_coding_function)
 +      (Vwrite_region_annotate_functions)
 +      (Vwrite_region_annotations_so_far)
 +      (Vwrite_region_post_annotation_function)
 +      (delete_by_moving_to_trash, write_region_inhibit_fsync): Remove.
 +      (Vw32_get_true_file_attributes): Remove declaration.
 +      * eval.c (syms_of_eval): Update.
 +      (Vdebug_ignored_errors, Vdebug_on_error, Vdebug_on_signal)
 +      (Vdebugger, Vinhibit_quit, Vmacro_declaration_function)
 +      (Vquit_flag, Vsignal_hook_function, Vstack_trace_on_error)
 +      (debug_on_next_call, debug_on_quit, debugger_may_continue)
 +      (max_lisp_eval_depth, max_specpdl_size): Remove.
 +      * emacs.c (syms_of_emacs): Update.
 +      (Vafter_init_time, Vbefore_init_time, Vcommand_line_args)
 +      (Vdynamic_library_alist, Vemacs_copyright, Vemacs_version)
 +      (Vinstallation_directory, Vinvocation_directory)
 +      (Vinvocation_name, Vkill_emacs_hook, Vpath_separator)
 +      (Vprevious_system_messages_locale, Vprevious_system_time_locale)
 +      (Vsystem_configuration, Vsystem_configuration_options)
 +      (Vsystem_messages_locale, Vsystem_time_locale, Vsystem_type)
 +      (inhibit_x_resources, noninteractive1): Remove.
 +      * editfns.c (syms_of_editfns): Update.
 +      (Vbuffer_access_fontified_property)
 +      (Vbuffer_access_fontify_functions, Vinhibit_field_text_motion)
 +      (Voperating_system_release, Vsystem_name, Vuser_full_name)
 +      (Vuser_login_name, Vuser_real_login_name): Remove.
 +      * dosfns.c (syms_of_dosfns): Update.
 +      (Vdos_display_scancodes, Vdos_version, Vdos_windows_version)
 +      (dos_codepage, dos_country_code, dos_decimal_point)
 +      (dos_hyper_key, dos_keyboard_layout, dos_keypad_mode)
 +      (dos_super_key, dos_timezone_offset): Remove.
 +      * doc.c (syms_of_doc): Update.
 +      (Vbuild_files, Vdoc_file_name): Remove.
 +      * dispnew.c (syms_of_display): Update.
 +      (Vglyph_table, Vinitial_window_system)
 +      (Vredisplay_preemption_period, Vstandard_display_table)
 +      (Vwindow_system_version, baud_rate, cursor_in_echo_area)
 +      (inverse_video, redisplay_dont_pause, visible_bell): Remove.
 +      * dired.c (syms_of_dired): Update.
 +      (Vcompletion_ignored_extensions): Remove.
 +      (Vw32_get_true_file_attributes): Remove declaration.
 +      * dbusbind.c (syms_of_dbusbind): Update.
 +      (Vdbus_debug, Vdbus_registered_buses)
 +      (Vdbus_registered_objects_table): Remove.
 +      * data.c (syms_of_data): Update.
 +      (Vmost_negative_fixnum, Vmost_positive_fixnum): Remove.
 +      * composite.c (syms_of_composite): Update.
 +      (Vauto_composition_function, Vauto_composition_mode)
 +      (Vcompose_chars_after_function, Vcomposition_function_table):
 +      Remove.
 +      * coding.c (syms_of_coding): Update.
 +      (Vcharset_revision_table, Vcoding_category_list)
 +      (Vcoding_system_alist, Vcoding_system_for_read)
 +      (Vcoding_system_for_write, Vcoding_system_list)
 +      (Vdefault_process_coding_system, Venable_character_translation)
 +      (Vfile_coding_system_alist, Vlast_code_conversion_error)
 +      (Vlast_coding_system_used, Vlatin_extra_code_table)
 +      (Vlocale_coding_system, Vnetwork_coding_system_alist)
 +      (Vprocess_coding_system_alist)
 +      (Vselect_safe_coding_system_function)
 +      (Vstandard_translation_table_for_decode)
 +      (Vstandard_translation_table_for_encode)
 +      (Vtranslation_table_for_input, coding_system_require_warning)
 +      (eol_mnemonic_dos, eol_mnemonic_mac, eol_mnemonic_undecided)
 +      (eol_mnemonic_unix, inherit_process_coding_system)
 +      (inhibit_eol_conversion, inhibit_iso_escape_detection)
 +      (inhibit_null_byte_detection): Remove.
 +      * cmds.c (syms_of_cmds): Update.
 +      (Vpost_self_insert_hook): Remove.
 +      * charset.c (syms_of_charset): Update.
 +      (Vcharset_list, Vcharset_map_path, Vcurrent_iso639_language)
 +      (inhibit_load_charset_map): Remove.
 +      * character.c (syms_of_character): Update.
 +      (Vauto_fill_chars, Vchar_direction_table, Vchar_script_table)
 +      (Vchar_width_table, Vprintable_chars)
 +      (Vscript_representative_chars, Vtranslation_table_vector)
 +      (Vunicode_category_table): Remove.
 +      * ccl.c (syms_of_ccl): Update.
 +      (Vcode_conversion_map_vector, Vfont_ccl_encoder_alist)
 +      (Vtranslation_hash_table_vector): Remove.
 +      * category.c (syms_of_category): Update.
 +      (Vword_combining_categories, Vword_separating_categories): Remove.
 +      * callproc.c (syms_of_callproc): Update.
 +      (Vconfigure_info_directory, Vdata_directory, Vdoc_directory)
 +      (Vexec_directory, Vexec_path, Vexec_suffixes)
 +      (Vinitial_environment, Vprocess_environment)
 +      (Vshared_game_score_directory, Vshell_file_name): Remove.
 +      * callint.c (syms_of_callint): Update.
 +      (Vcommand_debug_status, Vcommand_history, Vcurrent_prefix_arg)
 +      (Vmark_even_if_inactive, Vmouse_leave_buffer_hook): Remove.
 +      * bytecode.c (syms_of_bytecode): Update.
 +      (Vbyte_code_meter, byte_metering_on): Remove.
 +      * buffer.c (syms_of_buffer): Update.
 +      (Vafter_change_functions, Vbefore_change_functions)
 +      (Vchange_major_mode_hook, Vfirst_change_hook)
 +      (Vinhibit_read_only, Vkill_buffer_query_functions)
 +      (Vtransient_mark_mode, inhibit_modification_hooks): Remove.
 +      * alloc.c (syms_of_alloc): Update.
 +      (Vgc_cons_percentage, Vgc_elapsed, Vmemory_full)
 +      (Vmemory_signal_data, Vpost_gc_hook, Vpurify_flag)
 +      (cons_cells_consed, floats_consed, garbage_collection_messages)
 +      (gc_cons_threshold, gcs_done, intervals_consed)
 +      (misc_objects_consed, pure_bytes_used, string_chars_consed)
 +      (strings_consed, symbols_consed, vector_cells_consed): Remove.
 +
 +      * lisp.h (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL)
 +      (DEFVAR_INT): Assume global is in `globals'.
 +      * alloc.c (globals): Define.
 +
 +2011-01-18  Tom Tromey  <tromey@redhat.com>
 +
 +      * image.c (Vimagemagick_render_type): Remove redundant
 +      definition.
 +
 +2011-01-18  Tom Tromey  <tromey@redhat.com>
 +
 +      * xdisp.c (emacs_scroll_step): Rename from scroll_step.
 +      (try_scrolling): Rename argument to 'arg_scroll_conservatively'.
 +      (redisplay_window): Update.
 +      (syms_of_xdisp): Update.
 +
 +2011-01-18  Tom Tromey  <tromey@redhat.com>
 +
 +      * gtkutil.h (x_gtk_use_old_file_dialog, x_gtk_show_hidden_files)
 +      (x_gtk_file_dialog_help_text, x_gtk_whole_detached_tool_bar):
 +      Declare.
 +      * gtkutil.c (xg_uses_old_file_dialog):
 +      (xg_get_file_with_chooser):
 +      (xg_tool_bar_detach_callback): Don't redeclare globals.
 +
 +2011-01-18  Tom Tromey  <tromey@redhat.com>
 +
 +      * lisp.h (DEFVAR_BUFFER_DEFAULTS): New macro.
 +      * buffer.c (syms_of_buffer): Use DEFVAR_BUFFER_DEFAULTS.
 +
 +2011-01-18  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      * lisp.h (DECL_ALIGN): Define if HAVE_ATTRIBUTE_ALIGNED, not if
 +      defined __GNUC__.  ../configure now checks for this GCC feature,
 +      which is now also supported by IBM and Oracle compilers.
 +      (USE_LSB_TAG) [defined DECL_ALIGN]: Also define if defined __sun,
 +      since Solaris malloc returns mult-of-8.
 +
 +2011-01-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * image.c (syms_of_image): Don't access XSYMBOL's internals directly.
  
 -2011-01-16  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-17  Paul Eggert  <eggert@cs.ucla.edu>
 +
 +      Give a name FLOAT_TO_STRING_BUFSIZE to the constant 350.
 +      * lisp.h (FLOAT_TO_STRING_BUFSIZE): New macro.
 +      * data.c (Fnumber_to_string): Use it.
 +      * print.c (float_to_string, print_object): Likewise.
 +
 +      Include <unistd.h> unilaterally.
 +      * alloc.c, atimer.c, buffer.c, callproc.c, dired.c, dispnew.c, doc.c:
 +      * doprnt.c, editfns.c, emacs.c, fileio.c, filelock.c, fns.c:
 +      * getloadavg.c, getpagesize.h, gmalloc.c, image.c, keyboard.c:
 +      * lread.c, process.c, process.h, ralloc.c, regex.c, sysdep.c:
 +      * systty.h, term.c, termcap.c, xfns.c, xrdb.c, xselect.c, xsmfns.c:
 +      * xterm.c:
 +      Include <unistd.h> without worrying about HAVE_UNISTD_H, since
 +      unistd.h is always present now, possibly supplied by gnulib.
 +
 +      * mktime.c: Remove; moving to ../lib.
 +
 +      Use gnulib's mktime module.
 +      * deps.mk (mktime.o): Remove rule.
 +
 +      Use gnulib's ftoastr module.
 +      * print.c: Include ftoastr.h.
 +      (FLT_RADIX, DBL_MANT_DIG, DBL_DIG, DBL_MIN, DOUBLE_DIGITS_BOUND):
 +      Remove; no longer needed.
 +      (float_to_string): Use dtoastr rather than rolling our own code,
 +      which had an off-by-one bug on non-IEEE hosts.
 +
 +      Automate syncing from gnulib.
 +      * Makefile.in (lib): New macro.
 +      (ALL_CFLAGS): Add -I$(lib) -I$(srcdir)/../lib.
 +      ($(lib)/libgnu.a): New rule.
 +      (temacs$(EXEEXT)): Also link $(lib)/libgnu.a.
 +
 +      * xfns.c (x_real_positions): Fix signedness of local var 'ign'.
 +      XGetGeometry wants unsigned int *, not int *, for its last 4 args,
 +      so change the type of 'ign' to unsigned int from int.
 +
 +      * regex.c (analyse_first): Remove unreachable 'continue' statement.
 +
 +      * xterm.h (struct x_display_info): Remove stray semicolon.
 +      The extra semicolon didn't conform to the C standard.
 +      Problem reported by Sun cc.
 +
 +      * lisp.h: Redo flags and XSET slightly to avoid overflow diagnostics.
 +      These changes make compilation easier to follow with Sun cc.
 +      (ARRAY_MARK_FLAG): Make it signed, so that it can be assigned to
 +      EMACS_INT values without provoking overflow diagnostics.
 +      (PSEUDOVECTOR_FLAG): Likewise, for consistency.
 +      (XSET) [! USE_LSB_TAG]: Use unsigned left shift to avoid overflow
 +      diagnostic with signed left shift.
 +
 +      * fileio.c (make_temp_name): Remove unreachable code.
 +
 +      * fontset.c (free_realized_fontset): Mark unreachable code with if (0).
 +      Previously it was marked by preceding it with "return;", but
 +      Sun cc complains about this.
  
 -      * image.c (syms_of_image): Don't use SET_SYMBOL_VALUE.  (Bug#7848)
 +      * coding.c (decode_coding_emacs_mule): Remove unreachable code.
 +      This is a typo left over from 2009-03-06T07:51:52Z!handa@m17n.org,
 +      which fixed Bug#2370.  Caught by Sun cc.
  
  2011-01-15  Martin Rudalics  <rudalics@gmx.at>
  
        (Fset_window_configuration): Set inhibit_point_swap to 1 instead
        of setting selected_window to nil (Bug#7728).
  
 -2011-01-12  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-11  Tassilo Horn  <tassilo@member.fsf.org>
  
 -      * config.in (TERMINFO): New definition.
 +      * image.c (imagemagick_load_image, Finit_image_library):
 +      Free intermediate image after creating a MagickWand from it.
 +      Terminate MagickWand environment after image loading.
  
 -      * s/netbsd.h: Use it to choose between terminfo and termcap
 -      (Bug#7642).
 +2011-01-10  Michael Albinus  <michael.albinus@gmx.de>
  
 -2011-01-03  Jan Djärv  <jan.h.d@swipnet.se>
 +      * dbusbind.c (Fdbus_register_service): Raise an error in case of
 +      unexpected return values.
 +      (Fdbus_register_method): Remove connection initialization.
  
 -      * coding.h (ENCODE_UTF_8): Remove "Used by ..." comment.
 +2011-01-10  Jan Moringen  <jan.moringen@uni-bielefeld.de>
  
 -      * nsfns.m (ns_set_name_iconic): Remove.
 -      (ns_get_screen): Don't assign integer to f.
 -      (ns_set_name_internal): New function (Bug#7517).
 -      (Vicon_title_format): Extern declare.
 -      (ns_set_name): Call ns_set_name_internal.
 -      (x_explicitly_set_name): Remove call to ns_set_name_iconic.
 -      (x_implicitly_set_name): Ditto.
 -      (x_set_title): Remove commet about EXPLICIT.  Call ns_set_name_internal.
 -      (ns_set_name_as_filename): Encode name with ENCODE_UTF_8.
 -      Always use buffer name for title and buffer filename only for
 -      RepresentedFilename.  Handle bad UTF-8 in buffer name (Bug#7517).
 +      * dbusbind.c (QCdbus_request_name_allow_replacement): New symbol;
 +      used by Fdbus_register_service.
 +      (QCdbus_request_name_replace_existing): Likewise.
 +      (QCdbus_request_name_do_not_queue): Likewise.
 +      (QCdbus_request_name_reply_primary_owner): Likewise.
 +      (QCdbus_request_name_reply_in_queue): Likewise.
 +      (QCdbus_request_name_reply_exists): Likewise.
 +      (QCdbus_request_name_reply_already_owner): Likewise.
 +      (Fdbus_register_service): New function.
 +      (Fdbus_register_method): Use Fdbus_register_service to do the name
 +      registration.
 +      (syms_of_dbusbind): Add symbols dbus-register-service,
 +      :allow-replacement, :replace-existing, :do-not-queue,
 +      :primary-owner, :existing, :in-queue and :already-owner.
 +
 +2011-01-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * gtkutil.c (update_frame_tool_bar): Don't advance tool-bar index
 +      when removing extra buttons.
 +
 +2011-01-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fns.c (Fyes_or_no_p): Doc fix.
 +
 +2011-01-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * fns.c (Fyes_or_no_p): Add usage.
 +
 +2011-01-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * makefile.w32-in ($(EMACS)):
 +      * Makefile.in (emacs$(EXEEXT)): -batch implies -q.
 +
 +      * xdisp.c (syms_of_xdisp) <Qrisky_local_variable>: Move from here...
 +      * emacs.c (syms_of_emacs) <Qrisky_local_variable>: ...to here.
 +
 +2011-01-07  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * image.c (imagemagick_load_image): Fix some resource leaks and
 +      error handling.
 +
 +2011-01-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fns.c (Fyes_or_no_p): Accept format string args.
 +
 +2011-01-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.c (no_site_lisp): New int.
 +      (USAGE1): Add --no-site-lisp, mention -Q uses it.
 +      (main): Set no_site_lisp.
 +      (standard_args): Add --no-site-lisp.
 +      * lisp.h (no_site_lisp): New int.
 +      * lread.c (init_lread): If no_site_lisp, don't re-add site-lisp
 +      directories to Vload_path.
 +
 +2011-01-05  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * alloc.c (mark_stack): Use __builtin_unwind_init if available.
 +
 +2011-01-04  Jan Moringen  <jan.moringen@uni-bielefeld.de>
 +
 +      * dbusbind.c (Fdbus_register_method): Add optional parameter
 +      dont_register_service.  Updated docstring accordingly.
 +
 +2011-01-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.c (emacs_copyright): Update short copyright year to 2011.
  
  2011-01-03  Eli Zaretskii  <eliz@gnu.org>
  
        * image.c (png_jmpbuf): Remove definition.
        (my_png_error, png_load): Don't use png_jmpbuf.
  
 -2010-12-31  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * keyboard.c (Vselect_active_regions): Doc fix.  (Bug#7702)
 +
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * image.c <Qlibpng_version>: New variable.
        (syms_of_image): Intern and staticpro it.  Set its value to the
        (my_png_error, png_load): Use it instead of #ifdef'ing according
        to PNG_LIBPNG_VER_MAJOR and PNG_LIBPNG_VER_MINOR.
  
 -2010-12-27  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * .gdbinit (xgetptr): Fix the union+lsb case.
        (xbacktrace): Fix the union case.
  
 -2010-12-26  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2011-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        * window.c (Fmove_to_window_line): Avoid abort when called in a buffer
        different from selected-window's.
  
 -2010-12-25  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * keyboard.c (parse_menu_item): Prepend "  " to the key sequence
        equivalent of a menu item when the key sequence is given by the
        * xdisp.c (Fformat_mode_line): Doc fix: no need to state that only
        the basic faces are supported.
  
 -2010-12-24  Jan Djärv  <jan.h.d@swipnet.se>
 +2011-01-02  Jan Djärv  <jan.h.d@swipnet.se>
  
        * xterm.c (x_check_fullscreen): Fix pixel/character mixup.
  
 -2010-12-17  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (Fformat_mode_line): Fix last change.
  
 -2010-12-16  Chong Yidong  <cyd@stupidchicken.com>
 +2011-01-02  Chong Yidong  <cyd@stupidchicken.com>
  
        * xdisp.c (Fformat_mode_line): Restrict the FACE argument to basic
        faces (Bug#7587).
  
 -2010-12-13  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-02  Eli Zaretskii  <eliz@gnu.org>
  
        * fileio.c (Fexpand_file_name): One more doc fix.
  
 -2010-12-12  Eli Zaretskii  <eliz@gnu.org>
 +2011-01-01  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * fileio.c (Fexpand_file_name): Doc fix.  (Bug#7617)
 +      * gtkutil.c (xg_get_tool_bar_widgets): Use NULL for a missing
 +      image or label in the container.
 +      (xg_make_tool_item): Replace VERT_ONLY arg with HORIZ, TEXT_IMAGE.
 +      (xg_show_toolbar_item): Function deleted.
 +      (xg_tool_item_stale_p): New function.
 +      (update_frame_tool_bar): Calculate tool-bar style once per call.
 +      Instead of hiding text labels, omit them.  Don't use
 +      xg_show_toolbar_item; create new GtkToolItems from scratch if
 +      necessary, instead of trying to re-use them.  This avoids an
 +      annoying animation when changing tool-bars.
  
 -2010-12-11  Eli Zaretskii  <eliz@gnu.org>
 +2010-12-31  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * w32fns.c (Fx_show_tip): Call try_window with last argument
 -      TRY_WINDOW_IGNORE_FONTS_CHANGE.  Delete the TODO ifdef: problem
 -      solved.  Round up the tip height to an integral multiple of the
 -      frame's line height.  Add FRAME_COLUMN_WIDTH to the tip width.
 -      (Bug#7398)
 +      * nsfns.m (ns_set_name_as_filename): Always use buffer name for
 +      title and buffer filename only for RepresentedFilename.
 +      Handle bad UTF-8 in buffer name (Bug#7517).
 +
 +2010-12-30  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * coding.h (ENCODE_UTF_8): Remove "Used by ..." comment.
 +
 +      * nsfns.m (ns_set_name_iconic): Remove.
 +      (ns_set_name_internal): New function (Bug#7517).
 +      (Vicon_title_format): Extern declare.
 +      (ns_set_name): Call ns_set_name_internal.
 +      (x_explicitly_set_name): Remove call to ns_set_name_iconic.
 +      (x_implicitly_set_name): Ditto.
 +      (x_set_title): Remove commet about EXPLICIT.  Call ns_set_name_internal.
 +      (ns_set_name_as_filename): Encode name with ENCODE_UTF_8 (Bug#7517).
 +
 +2010-12-29  Štěpán Němec  <stepnem@gmail.com>  (tiny change)
 +
 +      * window.c (syms_of_window): Add missing defsubr for
 +      window-use-time.
 +
 +2010-12-28  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * xterm.h (x_alloc_lighter_color_for_widget): Restore declaration.
 +      * xterm.c (x_alloc_lighter_color_for_widget): Restore.
 +
 +2010-12-27  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * buffer.c: Remove unused declarations.
 +      * buffer.h: Likewise.
 +      * charset.h: Likewise.
 +      * composite.h: Likewise.
 +      * dispextern.h: Likewise.
 +      * dispnew.c: Likewise.
 +      * font.h: Likewise.
 +      * fontset.c: Likewise.
 +      * fontset.h: Likewise.
 +      * intervals.h: Likewise.
 +      * keymap.h: Likewise.
 +      * lisp.h: Likewise.
 +      * syntax.c: Likewise.
 +      * syntax.h: Likewise.
 +      * termhooks.h: Likewise.
 +      * window.h: Likewise.
 +      * xsettings.h: Likewise.
 +      * xterm.c: Likewise.
 +      * xterm.h: Likewise.
 +
 +      * chartab.c (sub_char_table_ref): Make static.
 +      * dispnew.c (line_hash_code, required_matrix_height)
 +      (required_matrix_width): Likewise.
 +      * eval.c (interactive_p, apply_lambda): Likewise.
 +      * fns.c (string_make_multibyte, copy_hash_table, hash_clear):
 +      Likewise.
 +      * font.c (QCadstyle, QCregistry, font_make_spec)
 +      (font_parse_fcname, font_encode_char, font_at): Likewise.
 +      * frame.c (x_frame_get_arg): Likewise.
 +      * keymap.c (get_keyelt): Likewise.
 +      * lread.c (read_filtered_event): Likewise.
 +      * print.c (write_string_1): Likewise.
 +      * window.c (delete_window, window_height, window_width)
 +      (foreach_window): Likewise.
 +      * xrdb.c (x_get_customization_string, x_get_resource): Likewise.
 +      * xterm.c (x_scroll_bar_clear, xembed_set_info)
 +      (xembed_send_message): Likewise.
 +
 +      * eval.c (run_hook_list_with_args): Delete.
 +      * font.c (font_unparse_gtkname, font_update_lface): Likewise.
 +      * terminal.c (get_terminal_param): Likewise.
 +      * xterm.c (x_alloc_lighter_color_for_widget): Likewise.
 +
 +      * scroll.c: Fix comment.
 +
 +      * dispnew.c (add_window_display_history)
 +      (add_frame_display_history, glyph_row_slice_p)
 +      (find_glyph_row_slice, flush_stdout)
 +      (check_matrix_pointer_lossage, matrix_row)
 +      (check_matrix_invariants, check_window_matrix_pointers)
 +      (check_matrix_pointers, window_to_frame_vpos)
 +      (window_to_frame_hpos): Prototize.
 +      * textprop.c (erase_properties): Likewise.
 +
 +2010-12-22  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * print.c (PRINT_NUMBER_OBJECT, PRINT_NUMBER_STATUS): Remove.
 +      (print_preprocess): Fix handling of uninterned symbols in last change.
 +
 +      * print.c (print, print_preprocess, print_object): Use a hash table
 +      rather than a linear table for Vprint_number_table.
 +
 +2010-12-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.c (focus_follows_mouse): Default to 0 (Bug#7269).
 +
 +2010-12-20  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (Vtool_bar_separator_image_expression): New variable.
 +      (parse_tool_bar_item): Use it to obtain image separators for
 +      displays not using native tool-bar separators.
 +
 +      * xdisp.c (build_desired_tool_bar_string): Don't handle separators
 +      specially, since this is now done in parse_tool_bar_item.
 +
 +2010-12-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Minor clean up to silence some gcc warnings.
 +      * window.c (Fset_window_buffer):
 +      * xterm.c (x_set_frame_alpha): Restructure code to silence
 +      compiler warning.
 +      (handle_one_xevent): Remove unused var `p'.
 +      (do_ewmh_fullscreen): Remove unused var `lval'.
 +      (xembed_set_info): Remove unused var `atom'.
 +      * textprop.c (Fremove_list_of_text_properties): Add braces to silence
 +      compiler warning.
 +      * fontset.c (fontset_id_valid_p, dump_fontset):
 +      * ftfont.c (ftfont_drive_otf): Modernize k&r declaration.
 +      * eval.c (Feval, Ffuncall): Avoid unneeded gotos.
 +      * dispnew.c (update_frame, update_frame_1): Compile the `do_pause'
 +      label only when it's used.
 +      * image.c (x_create_bitmap_from_xpm_data):
 +      * dispextern.h (x_create_bitmap_from_xpm_data): Use const char** like
 +      its callers.
 +      * coding.c (detect_coding_utf_16): Remove unused vars `src_base' and
 +      `consumed_chars'.
 +      (DECODE_EMACS_MULE_21_COMPOSITION): Remove unused var `charbuf_base'.
 +      (decode_coding_emacs_mule): Remove unused label `retry'.
 +      (detect_eol): Add parens to silence compiler warning.
 +      * alloc.c (bytes_used_when_reconsidered): Move to the #ifdef where
 +      it's used to silence the compiler.
 +      (make_number): Modernize k&r declaration.
 +      (mark_char_table): Add parens to silence compiler warning.
 +
 +2010-12-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (parse_tool_bar_item): Allow menu separators in
 +      tool-bar maps.
 +      (menu_separator_name_p): New function, from gtkutil.c.
 +      (separator_names): Move from gtkutil.c.
 +
 +      * keyboard.h (menu_separator_name_p): Add prototype.
 +
 +      * gtkutil.c (XG_BIN_CHILD): New macro.
 +      (xg_get_menu_item_label, xg_update_menubar)
 +      (xg_update_menu_item, xg_tool_bar_menu_proxy)
 +      (xg_show_toolbar_item, update_frame_tool_bar): Use it.
 +      (separator_names, xg_separator_p): Move to keyboard.c.
 +      (create_menus, xg_update_submenu, update_frame_tool_bar):
 +      Use menu_separator_name_p.
 +
 +      * nsmenu.m (name_is_separator): Function deleted.
 +      (addItemWithWidgetValue): Use menu_separator_name_p.
 +
 +      * w32menu.c (name_is_separator): Function deleted.
 +      (add_menu_item): Use menu_separator_name_p.
 +
 +2010-12-16  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_draw_window_cursor): If the cursor color is the
 +      same as the background, use the face forground as cursor.
 +
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fileio.c (Fexpand_file_name): Doc fix.  (Bug#7617)
 +
 +2010-12-13  Eli Zaretskii  <eliz@gnu.org>
  
        * xdisp.c (string_pos_nchars_ahead, c_string_pos)
        (face_before_or_after_it_pos, next_element_from_string)
        (string_char_and_length): Update commentary: MAXLEN is no longer
        needed.
  
 -2010-12-10  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-12-13  Jan Djärv  <jan.h.d@swipnet.se>
  
        * keyboard.c (kbd_buffer_get_event): Construct SAVE_SESSION_EVENT
        as (Qsave_session arg).
        (Fhandle_save_session): If event has Qt as argument,
        call Fkill_emacs (Bug#7552).
  
 -2010-12-07  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * buffer.c (transient-mark-mode): Doc fix (Bug#7465).
 +
 +2010-12-13  Jan Djärv  <jan.h.d@swipnet.se>
  
        * xsmfns.c (smc_die_CB): Call Fkill_emacs (Bug#7552).
  
 -2010-12-06  Chong Yidong  <cyd@stupidchicken.com>
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
  
        * dispextern.h (struct it): New member overlay_strings_charpos.
  
        (next_overlay_string): Load overlay strings at recorded position,
        which may not be the same as the iterator's charpos (Bug#7016).
  
 -2010-12-05  Jan Djärv  <jan.h.d@swipnet.se>
 -
 -      * nsterm.m (ns_dumpglyphs_image): If drawing cursor, fill background
 -      with cursor color and draw a rectangle around the image (Bug#7412).
 -
 -2010-12-05  Chong Yidong  <cyd@stupidchicken.com>
 +2010-12-13  Chong Yidong  <cyd@stupidchicken.com>
  
        * xdisp.c (try_scrolling): Avoid infloop if the first line is
        obscured due to a vscroll (Bug#7537).
  
 -2010-12-02  Jan Djärv  <jhd@zeplinf.localdomain>
 +2010-12-13  Jan Djärv  <jhd@zeplinf.localdomain>
  
        * nsterm.h (FRAME_NS_TOOLBAR_HEIGHT): Rename to FRAME_TOOLBAR_HEIGHT.
  
        (x_set_offset): Handle XNegative and YNegative in
        f->size_hint_flags (Bug#7510).
  
 -2010-11-25  Kenichi Handa  <handa@m17n.org>
 +2010-12-11  Eli Zaretskii  <eliz@gnu.org>
  
 -      * charset.c (emacs_mule_charset): Make it an array of charset ID;
 -      i.e. integer.
 -      (Fdefine_charset_internal): Adjusted for the above change.
 -      (init_charset_once): Likewise.
 +      * w32fns.c (Fx_show_tip): Call try_window with last argument
 +      TRY_WINDOW_IGNORE_FONTS_CHANGE.  Delete the TODO ifdef: problem
 +      solved.  Round up the tip height to an integral multiple of the
 +      frame's line height.  Add FRAME_COLUMN_WIDTH to the tip width.
 +      (Bug#7398)
  
 -      * charset.h (emacs_mule_charset): Adjust the prototype.  Delete
 -      duplicated extern.
 +2010-12-08  Glenn Morris  <rgm@gnu.org>
  
 -      * coding.c (emacs_mule_char): Adjust for the change of
 -      emacs_mule_charset.
 +      * fileio.c (Fverify_visited_file_modtime): Default to current buffer.
  
 -      * lread.c (read_emacs_mule_char): Adjust for the change of
 +2010-12-06  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c (parse_region): Ignore blank HTML nodes.
 +      (make_dom): Return CDATA sections (like <style>foo</style>) as
 +      text nodes.
 +
 +2010-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lread.c (read1): Allow newstyle unquote outside of backquote.
 +      Disallow old-style backquotes inside new-style backquotes.
 +      Don't count unquotes to figure out when we're "syntactically inside
 +      but semantically outside of a backquote" any more.
 +      Extend the restriction no-unescaped-commas-and-backquotes-in-symbols
 +      to all contexts.
 +
 +2010-12-05  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * process.c: Remove checks for HAVE_SYS_IOCTL_H (Bug#7484).
 +
 +2010-12-04  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * Makefile.in (M_FILE): Substitute @M_FILE@ instead of @machfile@.
 +      (S_FILE): Substitute @S_FILE@ instead of @opsysfile@.
 +      * m/arm.h, m/sh3.h, m/xtensa.h: Remove files.
 +
 +2010-12-03  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * lisp.h (union Lisp_Object): Explicitly declare signedness of
 +      bit-field.
 +      (XINT): Remove variant for EXPLICIT_SIGN_EXTEND.
 +      * m/alpha.h (EXPLICIT_SIGN_EXTEND): Don't define.
 +      * m/amdx86-64.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/ia64.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/ibms390.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/ibms390x.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/iris4d.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/m68k.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/sparc.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/template.h (EXPLICIT_SIGN_EXTEND): Likewise.
 +      * m/hp800.h: Remove file.
 +      * m/mips.h: Remove file.
 +
 +2010-12-03  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_dumpglyphs_image): If drawing cursor, fill background
 +      with cursor color and draw a rectangle around the image (Bug#7412).
 +
 +2010-12-03  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * frame.c (x_set_font): Remove unused variable.
 +
 +2010-12-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsmenu.m (update_frame_tool_bar): Remove NSLog on invalid image.
 +
 +      * nsterm.m (ns_draw_glyph_string): Switch fore- and background if
 +      drawing text under filled box cursor (Bug#7479).
 +
 +2010-11-27  Kenichi Handa  <handa@m17n.org>
 +
 +      * charset.c (emacs_mule_charset): Make it an array of charset ID;
 +      i.e. integer.
 +      (Fdefine_charset_internal): Adjust for the above change.
 +      (init_charset_once): Likewise.
 +
 +      * charset.h (emacs_mule_charset): Adjust the prototype.
 +      Delete duplicated extern.
 +
 +      * coding.c (emacs_mule_char): Adjust for the change of
 +      emacs_mule_charset.
 +
 +      * lread.c (read_emacs_mule_char): Adjust for the change of
        emacs_mule_charset.
  
 -2010-11-22  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-27  Eli Zaretskii  <eliz@gnu.org>
  
        * w32.c (_PROCESS_MEMORY_COUNTERS_EX): Don't define with versions
        of w32api >= 3.15.  (Bug#6989)  (Bug#7452)
  
 -2010-11-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-11-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
        * alloc.c (mark_terminals): Ensure that the image cache is marked
        even if the terminal object was marked earlier (Bug#6301).
  
        * editfns.c (Fbyte_to_string): Signal an error arg is not a byte.
  
 -2010-11-20  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-11-27  Jan Djärv  <jan.h.d@swipnet.se>
  
        * gtkutil.c (menubar_map_cb): New function (Bug#7425).
        (xg_update_frame_menubar): Connect signal map to menubar_map_cb.
        Use 23 as menubar height if 0.  (Bug#7425).
  
 -2010-11-14  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-11-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (set_message_1): Force paragraph direction in echo area
 +      be left-to-right.
 +
 +      * keyboard.c (make_lispy_position): Put a meaningful value in yret
 +      when the click is on the header or mode line.
 +
 +2010-11-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (set_cursor_from_row): Don't forget to consider the
 +      `cursor' property of the first character in overlay strings.
 +      (Bug#7474)  (Bug#7481)
 +
 +2010-11-24  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (NSLeftControlKeyMask, NSLeftCommandKeyMask)
 +      (NSLeftAlternateKeyMask): New defines.
 +      (keyDown): Parse left and right keys separately (Bug#7458).
 +      Compare Left key masks exactly (Bug#7458).
 +
 +2010-11-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * intervals.c (temp_set_point_both): Define before calling, to
 +      avoid GCC warnings.
 +
 +2010-11-23  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * nsmenu.m: Use #include <config.h> instead of "config.h".
 +
 +      * term.c (Qglyphless_char,last_glyphless_glyph_frame)
 +      (last_glyphless_glyph_face_id, last_glyphless_glyph_merged_face_id):
 +      Move declarations ...
 +      * lisp.h (Qglyphless_char,last_glyphless_glyph_frame)
 +      (last_glyphless_glyph_face_id, last_glyphless_glyph_merged_face_id):
 +      ... here.
 +
 +      * emacs.c (gdb_use_union, gdb_valbits,gdb_gctypebits)
 +      (gdb_data_seg_bits, gdb_array_mark_flag, PVEC_FLAG)
 +      (gdb_pvec_type):
 +      * print.c (print_output_debug_flag):
 +      * lisp.h (debug_print): Mark as EXTERNALLY_VISIBLE.
 +      (safe_debug_print): New declaration.
 +
 +      * xterm.c:
 +      * systty.h:
 +      * sound.c: Include <sys/ioctl.h> unconditionally.
 +
 +2010-11-22  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * alloc.c (mark_maybe_object): Return early if given a Lisp
 +      integer (Bug#6301).
 +
 +2010-11-21  Ken Brown  <kbrown@cornell.edu>
 +
 +      * sheap.c (STATIC_HEAP_SIZE): Revert previous change.
 +
 +2010-11-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_right_command_modifier, ns_right_control_modifier):
 +      Define (Bug#7458).
 +      (NSRightCommandKeyMask, NSRightControlKeyMask): Define (Bug#7458).
 +      (EV_MODIFIERS): Check for NSRightCommandKeyMask and
 +      NSRightControlKeyMask also (Bug#7458).
 +      (keyDown): Ditto (Bug#7458).
 +      (syms_of_nsterm): Defvar ns-right-command-modifier and
 +      ns-right-control-modifier (Bug#7458).
 +
 +2010-11-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * sysdep.c (sys_subshell): Remove SET_EMACS_PRIORITY.
 +      * emacs.c (emacs_priority, syms_of_emacs): Remove emacs_priority.
 +
 +      * intervals.h (temp_set_point, temp_set_point_both):
 +      * buffer.h (offset_intervals, copy_intervals): Remove INLINE.
 +
 +2010-11-20  Ken Brown  <kbrown@cornell.edu>
 +
 +      * sheap.c (STATIC_HEAP_SIZE): Increase to 13MB.
 +
 +2010-11-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * term.c (produce_glyphless_glyph): Use \uNNNN, \UNNNNNN, or
 +      \xNNNNNN for hex-code display of glyphless characters.
 +
 +2010-11-20  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_make_tool_item): Take vert_only as argument.
 +      Set important to ! vert_only.
 +      (xg_show_toolbar_item): Don't show label horizontally if
 +      tool item isn't important.
 +      (update_frame_tool_bar): Get TOOL_BAR_ITEM_VERT_ONLY and pass it to
 +      xg_make_tool_item, or update important on existing tool item.
 +
 +      * keyboard.c (QCvert_only): New variable.
 +      (parse_tool_bar_item): Check for QCvert_only.
 +      (syms_of_keyboard): Initialize QCvert_only.
 +
 +      * dispextern.h (tool_bar_item_idx): Add TOOL_BAR_ITEM_VERT_ONLY.
 +
 +2010-11-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdos.c (dos_rawgetc): Use gen_help_event, instead of doing the
 +      same in-line.
 +
 +2010-11-20  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * xfaces.c (lookup_face): Make static.
 +      * dispnew.c (copy_row_except_pointers): Likewise.
 +      * syntax.c (dec_bytepos): Likewise.
 +      (inc_bytepos): Remove.
 +      * dispextern.h (lookup_face): Remove declaration.
 +
 +2010-11-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (set_cursor_from_row): Display cursor after all the
 +      glyphs that come from an overlay.  Don't overstep the last glyph
 +      when skipping glyphs from an overlay.  (Bug#6687)
 +
 +2010-11-18  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * alloc.c (refill_memory_reserve): Move declaration ...
 +      * lisp.h (refill_memory_reserve): ... here.
 +
 +      * strftime.c (_strftime_copytm): Add declaration.
 +
 +      * callproc.c (syms_of_callproc): Use intern_c_string.
 +
 +      Move declarations from .c files to .h files.
 +      * process.c (timers_run):
 +      * minibuf.c (quit_char):
 +      * lread.c (read_emacs_mule_char):
 +      * keyboard.c (minibuf_level, message_enable_multibyte)
 +      (pending_malloc_warning):
 +      * insdel.c (Vselect_active_regions, Vsaved_region_selection)
 +      (Qonly): Remove declarations.
 +      * lisp.h (pending_malloc_warning, Vsaved_region_selection)
 +      (Vselect_active_regions):
 +      * keyboard.h (timers_run): Add declarations.
 +
 +      * strftime.c (my_strftime_gmtime_r, my_strftime_localtime_r)
 +      (tm_diff): Convert definitions to standard C.
 +      (extra_args_spec_iso): Remove, unused.
 +
 +2010-11-18  Jan Djärv  <jan.h.d@swipnet.se>
  
        * xsettings.c (init_gconf): Check HAVE_G_TYPE_INIT.
  
        * config.in (HAVE_G_TYPE_INIT): New symbol.
  
 -2010-11-12  Eli Zaretskii  <eliz@gnu.org>
 +2010-11-18  Eli Zaretskii  <eliz@gnu.org>
  
        * lread.c (Fload): Mention `load-in-progress' and
        `load-file-name'.  (Bug#7346)
  
 -2010-11-09  Eli Zaretskii  <eliz@gnu.org>
 -
        * keyboard.c (kbd_buffer_nr_stored): Define only ifdef subprocesses.
        (kbd_buffer_store_event_hold, kbd_buffer_get_event)
        (tty_read_avail_input): Call kbd_buffer_nr_stored only ifdef
  
        * Makefile.in: Don't use ## comment, it breaks the MSDOS build.
  
 -      * xfns.c (x_real_positions): Fix declaration-after-statement
 -      problem.
 +2010-11-17  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-11-05  Chong Yidong  <cyd@stupidchicken.com>
 -
 -      * image.c (free_image): Don't garbage the frame here, since this
 -      function can be called while redisplaying (Bug#7210).
 -      (uncache_image): Garbage the frame here (Bug#6426).
 +      * xdisp.c (set_cursor_from_row): Fix cursor positioning in empty
 +      lines on text-mode terminals.  (bug#7417)
  
 -2010-11-04  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * process.c (Fmake_network_process): Don't apply Bug#5173 fix for
 -      Windows.
 +      * xterm.c (get_current_wm_state): Rename from get_current_vm_state.
 +      (do_ewmh_fullscreen, x_handle_net_wm_state): Update callers.
  
 -2010-11-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-11-17  Kenichi Handa  <handa@m17n.org>
  
 -      * process.c (Fmake_network_process): Don't call turn_on_atimers around
 -      `connect' (Bug#5723).
 +      * coding.c (Fset_terminal_coding_system_internal): Fix previous
 +      change (set charset-ID list instead of charset-symbol list).
  
 -2010-11-04  Helmut Eller  <eller.helmut@gmail.com>
 +2010-11-16  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * process.c (Fmake_network_process): Call `select' for interrupted
 -      `connect' rather than creating new socket (Bug#5173).
 +      * keyboard.c (make_lispy_position): For text area clicks, record Y
 +      pixel position relative to the text area, excluding header line.
 +      Also change X and Y to Lisp_Objects, not pointers; don't return
 +      coordinate values via pointers.  Pass ON_TEXT_AREA coordinate to
 +      buffer_posn_from_coords counting from the start of the text area.
 +      (Fposn_at_x_y, make_lispy_event): Callers changed.
  
 -2010-11-04  Kenichi Handa  <handa@m17n.org>
 +      * window.c (coordinates_in_window): Change X and Y to ints rather
 +      than pointers; don't return coordinates via pointers.
 +      (struct check_window_data): Change X and Y from pointers to ints.
 +      (window_from_coordinates): Remove args WX and WY; don't return
 +      coordinates via pointers.
 +      (Fcoordinates_in_window_p, window_from_coordinates):
 +      (check_window_containing, Fwindow_at): Callers changed.
 +      (window_relative_x_coord): New function.
  
 -      * font.c (font_delete_unmatched): Check Vface_ignored_fonts.
 -      Don't sheck SPEC if it is nil.
 -      (font_list_entities): Call font_delete_unmatched if
 -      Vface_ignored_fonts is non-nil.
 +      * window.h (window_from_coordinates, window_relative_x_coord):
 +      Update prototypes.
  
 -2010-11-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      * dispnew.c (buffer_posn_from_coords): Assume that X counts from
 +      the start of the text area.
  
 -      * dispextern.h (TRY_WINDOW_CHECK_MARGINS)
 -      (TRY_WINDOW_IGNORE_FONTS_CHANGE): New defines.
 +      * xdisp.c (remember_mouse_glyph): Change window_from_coordinates
 +      call.  Use window_relative_x_coord.
 +      (note_mouse_highlight): Change window_from_coordinates call.
  
 -      * xdisp.c (try_window): Change arg from CHECK_MARGINS to FLAGS.
 -      Don't abort with fonts change if TRY_WINDOW_IGNORE_FONTS_CHANGE is
 -      set in FLAGS.  Callers with non-zero CHECK_MARGINS changed to use
 -      TRY_WINDOW_CHECK_MARGINS.
 +      * w32term.c (w32_read_socket):
 +      * msdos.c (dos_rawgetc):
 +      * xterm.c (handle_one_xevent): Likewise.
  
 -      * xfns.c (Fx_show_tip): Undo last change.  Call try_window with
 -      TRY_WINDOW_IGNORE_FONTS_CHANGE (Bug#2423).
 +2010-11-16  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-11-04  Jan Djärv  <jan.h.d@swipnet.se>
 +      * strftime.c (LOCALE_PARAM_DECL): Update for standard C.
 +      (LOCALE_PARAM, LOCALE_PARAM_PROTO): Remove, unused.
 +      (memcpy_lowcase, so_week_days, extra_args_spec, emacs_strftimeu):
 +      Convert definitions to standard C.
 +      * regex.c: Do not include <stdlib.h>, config.h does it.
 +      Include unistd.h.
 +      (xrealloc, init_syntax_once, re_match, regcomp, regexec)
 +      (regerror, regfree): Convert definitions to standard C.
 +      * mktime.c (my_mktime_localtime_r, ydhms_tm_diff, ranged_convert)
 +      (__mktime_internal): Convert definitions to standard C.
  
 -      * xfns.c (x_real_positions): Only use _NET_FRAME_EXTENTS if our
 -      parent is the root window.  Check this after traversing window tree.
 +2010-11-15  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * xterm.c (x_term_init): Initialize Xatom_net_frame_extents.
 +      * w32proc.c:
 +      * w32inevt.c:
 +      * w32heap.c:
 +      * w32.c: Remove config.h include guards.
  
 -      * xterm.h (struct x_display_info): Xatom_net_frame_extents is new.
 +      * callproc.c (child_setup): Reorder code to simplify #ifdefs.
 +      No code changes.
  
 -      * xfns.c (x_real_positions): Try to get _NET_FRAME_EXTENTS first
 -      before traversing window tree (Bug#5721).
 +      * process.c: Include <sys/ioctl.h> unconditionally,
 +      keyboard.c already does it.
  
 -2010-11-03  Glenn Morris  <rgm@gnu.org>
 +      * keyboard.c (pending_malloc_warning): Add const to match
 +      definition in alloc.c.
 +      (Fset_input_interrupt_mode): Simplify #ifdefs.
  
 -      * Makefile.in (CRT_DIR): New variable, set by configure.
 -      * m/amdx86-64.h, m/ibms390x.h (START_FILES, LIB_STANDARD):
 -      Use $CRT_DIR rather than HAVE_LIB64_DIR.  (Bug#5655)
 +2010-11-15  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-11-01  Jan Djärv  <jan.h.d@swipnet.se>
 +      Clean up systty.h macros.
 +      * systty.h (EMACS_GET_TTY_PGRP, EMACS_SET_TTY_PGRP, EMACS_GET_TTY)
 +      (EMACS_SET_TTY): Remove unneeded abstraction, instead inline the
 +      definition in all uses.
 +      (EMACS_TTY_TABS_OK): Remove, it has a single user.
 +      * sysdep.c (discard_tty_input, child_setup_tty)
 +      (init_sys_modes, tabs_safe_p, reset_sys_modes):
 +      * emacs.c (shut_down_emacs):
 +      * callproc.c (child_setup):
 +      * term.c (dissociate_if_controlling_tty): Inline removed macros.
  
 -      * process.c (kbd_is_on_hold): New variable.
 -      (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
 -      New functions.
 -      (wait_reading_process_output): If kbd_on_hold_p returns non-zero,
 -      select on empty input mask.
 -      (init_process): Initialize kbd_is_on_hold to 0.
 +      * data.c (sign_extend_temp, sign_extend_lisp_int): Remove, unused.
  
 -      * process.h (hold_keyboard_input, unhold_keyboard_input)
 -      (kbd_on_hold_p): Declare.
 +2010-11-14  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * keyboard.c (input_available_signal): Declare.
 -      (kbd_buffer_nr_stored): New function.
 -      (kbd_buffer_store_event_hold): If kbd_buffer_nr_stored returns
 -      more than KBD_BUFFER_SIZE/2, stop reding input (Bug#6571).
 -      (kbd_buffer_get_event): If input is suspended and kbd_buffer_nr_stored
 -      returns less than KBD_BUFFER_SIZE/4, resume reding input (Bug#6571).
 -      (tty_read_avail_input): If input is on hold, return.
 -      Don't read more that free slots in kbd_buffer (Bug#6571).
 +      * w32fns.c (Fx_create_frame):
 +      * nsfns.m (Fx_create_frame): Don't check for the cursorColor
 +      resource here; it's now done at startup.
  
 -2010-10-31  Chong Yidong  <cyd@stupidchicken.com>
 +2010-11-14  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xterm.c (x_connection_closed): Print informative error message
 -      when aborting on GTK.  This requires using shut_down_emacs
 -      directly instead of Fkill_emacs.
 +      * xterm.c (set_wm_state): Add Qnil to final cons.
  
 -2010-10-25  Michael Albinus  <michael.albinus@gmx.de>
 +      * xselect.c (x_send_client_event): Remove unused variables cons and
 +      size.
  
 -      * dbusbind.c (Fdbus_call_method_asynchronously)
 -      (Fdbus_register_signal, Fdbus_register_method): Check, whether
 -      `dbus-registered-objects-table' is initialized.
 +2010-11-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +      * keyboard.c (modify_event_symbol): Add const to array elements of
 +      arg NAME_TABLE.
 +      (lispy_accent_keys, lispy_function_keys, lispy_multimedia_keys)
 +      (lispy_kana_keys, iso_lispy_function_keys, lispy_wheel_names)
 +      (lispy_wheel_names, lispy_drag_n_drop_names, modifier_names):
 +      Add const to array elements.
 +      (scroll_bar_parts): Make static.  Fix position of const.
  
 -      * xterm.c (x_connection_closed): Kill Emacs unconditionally.
 +      * w32fns.c (lispy_function_keys): Add const to extern.
  
 -2010-10-22  Eli Zaretskii  <eliz@gnu.org>
 +      * w32inevt.c (lispy_function_keys): Likewise.
  
 -      * frame.c (Fframep, Fwindow_system): Deprecate use as a predicate.
 +2010-11-14  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * dispnew.c (syms_of_display) <initial-window-system, window-system>:
 -      Deprecate use as a boolean flag.
 +      * xfns.c (Fx_create_frame): Don't check for the cursorColor
 +      resource here; it's now done at startup.
  
 -2010-10-18  Ken Brown  <kbrown@cornell.edu>
 +2010-11-13  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * s/cygwin.h (SIGNALS_VIA_CHARACTERS): New define (bug#7225).
 +      * xmenu.c: Make it clear that ../lwlib/lwlib.h is only needed for Motif.
  
 -2010-10-15  Kenichi Handa  <handa@m17n.org>
 +      Fix compilation on Solaris.
 +      * sysdep.c: Do not #include <term.h>.
 +      (tputs): Add declaration, similar to what cm.c does.  (Bug#7178)
  
 -      Fix incorrect font metrics when the same font is opened with
 -      different pixelsizes.
 +      * s/ms-w32.h (HAVE_TERMIOS_H): Do not undef, not used anymore.
  
 -      * xftfont.c: Include composite.h.
 -      (xftfont_shape): New function.
 -      (syms_of_xftfont): Set xftfont_driver.shape.
 +2010-11-13  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-10-13  Damyan Pepper  <damyanp@gmail.com>
 +      * xterm.c (set_wm_state): Don't put Atom in cons, call
 +      make_fixnum_or_float on them first.
 +      (x_term_init): Initialize Xatom_net_supporting_wm_check and
 +      Xatom_net_supported correctly.
  
 -      Fix handling of font properties on Windows (bug#6303).
 -      * font.c (font_filter_properties): New function, refactored from
 -      ftfont_filter_properties.
 -      * font.h (font_filter_properties): Declare.
 -      * ftfont.c (ftfont_filter_properties): Use font_filter_properties.
 -      * w32font.c (w32font_booleans, w32font_non_booleans): New variables.
 -      (w32font_filter_properties): New function.
 -      (w32font_driver): Add w32font_filter_properties.
 +      * xselect.c (x_send_client_event): Move CHECK_STRING ...
 +      (Fx_send_client_event): to here.
  
 -2010-10-12  Juanma Barranquero  <lekktu@gmail.com>
 +2010-11-13  Martin Rudalics  <rudalics@gmx.at>
  
 -      * font.c (Ffont_variation_glyphs):
 -      * ccl.c (Fccl_execute_on_string): Fix typo in docstring.
 +      * window.c (Fwindow_use_time): New function.
  
 -2010-10-10  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-11-13  Eli Zaretskii  <eliz@gnu.org>
  
 -      * nsterm.m (Qleft): Declare.
 -      (ns_right_alternate_modifier): New variable
 -      (NSRightAlternateKeyMask): New define.
 -      (EV_MODIFIERS): Parse NSRightAlternateKeyMask if
 -      ns_right_alternate_modifier isn't Qleft.
 -      (keyDown): If ns_right_alternate_modifier isn't Qleft, use it
 -      as emacs modifier for NSRightAlternateKeyMask.
 -      (syms_of_nsterm): DEFVAR_LISP ns-right-alternate-modifier.
 +      * xdisp.c (set_cursor_from_row): Fix cursor positioning on
 +      zero-width characters.
  
 -2010-10-08  Michael Albinus  <michael.albinus@gmx.de>
 +      * .gdbinit (pgx): Adapt to latest changes in `struct glyph'.
  
 -      * dbusbind.c (xd_get_dispatch_status): Return a Lisp_Object.
 -      (xd_pending_messages): Catch xd_get_dispatch_status calls.
 +      * w32term.c (x_draw_glyphless_glyph_string_foreground): Draw the
 +      box before drawing the glyphs inside it.
  
 -2010-10-08  Kenichi Handa  <handa@m17n.org>
 +      * xdisp.c (syms_of_xdisp) <glyphless-char-display>: Doc fix.
  
 -      * coding.c (complement_process_encoding_system): Fix previous change.
 +      * dispextern.h (enum glyphless_display_method):
 +      Rename GLYPHLESS_DISPLAY_HEXA_CODE to GLYPHLESS_DISPLAY_HEX_CODE.
 +      All users changed.
  
 -2010-10-03  Michael Albinus  <michael.albinus@gmx.de>
 +      * term.c (append_glyphless_glyph, produce_glyphless_glyph):
 +      Fix comments.
 +      (produce_glyphless_glyph): Enclose "U+nnnn" and "empty box"
 +      whitespace in "[]", to simulate a box.  Don't use uninitialized
 +      variable `width'.
  
 -      * dbusbind.c (syms_of_dbusbind): Move putenv call ...
 -      (Fdbus_init_bus): ... here.  (Bug#7113)
 +2010-11-11  Julien Danjou  <julien@danjou.info>
  
 -2010-10-03  Glenn Morris  <rgm@gnu.org>
 +      * xsettings.c (init_xsettings): Use already fetch atoms.
  
 -      * buffer.c (before-change-functions, after-change-functions):
 -      Three-year overdue doc fix following 2007-08-13 change.
 +      * xsmfns.c (create_client_leader_window): Use SM_CLIENT_ID atom
 +      from dpyinfo.
  
 -2010-10-02  Kenichi Handa  <handa@m17n.org>
 +      * xselect.c (Fx_send_client_event): Split and create
 +      x_send_client_event.
  
 -      * coding.c (coding_inherit_eol_type): If parent doesn't specify
 -      eol-format, inherit from the system's default.
 -      (complement_process_encoding_system): Make a new coding system
 -      inherit the original eol-format.
 +      * lisp.h: Do not EXFUN Fx_send_client_event.
  
 -2010-09-30  Kenichi Handa  <handa@m17n.org>
 +      * xterm.c (x_set_frame_alpha): Use _NET_WM_WINDOW_OPACITY atom
 +      from dpyinfo.
 +      (wm_supports): Use atoms from dpyinfo.
 +      (do_ewmh_fullscreen): Use atoms from dpyinfo.
 +      (x_ewmh_activate_frame): Use atoms from dpyinfo.
 +      (xembed_set_info): Use atoms from dpyinfo.
 +      (x_term_init): Fetch _XEMBED_INFO, _NET_SUPPORTED,
 +      _NET_SUPPORTING_WM_CHECK, _NET_WM_WINDOW_OPACITY and
 +      _NET_ACTIVE_WINDOW, XSETTINGS  atoms.
 +      Get all atoms in one round-trip.
 +      (set_wm_state): Use x_send_client_event rather than
 +      Fx_send_client_event, using Atom directly.
 +      (x_ewmh_activate_frame): Ditto.
 +      (x_set_sticky): Pass atoms to set_wm_state.
 +      (do_ewmh_fullscreen): Ditto.
  
 -      * coding.c (complement_process_encoding_system): New function.
 +      * xterm.h (x_display_info): Add Xatom_net_supported,
 +      Xatom_net_supporting_wm_check, Xatom_net_active_window,
 +      Xatom_net_wm_window_opacity, Xatom_XEMBED_INFO, SM_CLIENT_ID.
  
 -      * coding.h (complement_process_encoding_system): Extern it.
 +      * xfns.c (Fx_show_tip): Fix typo in docstring.
  
 -      * callproc.c (Fcall_process): Complement the coding system for
 -      encoding arguments.
 -      (Fcall_process_region): Complement the coding system for encoding
 -      the input to the process.
 +2010-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * process.c (Fstart_process): Complement the coding system for
 -      encoding arguments.
 -      (send_process): Complement the coding system for encoding what
 -      sent to the process.
 +      * cmds.c (Fself_insert_command): Don't call XFASTINT without checking
 +      it's not negative.
  
 -2010-09-29  Kenichi Handa  <handa@m17n.org>
 +2010-11-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      * xfont.c (xfont_open): Fix setting of font->average_width from
 -      :avgwidth property (Bug#7123).
 +      * font.c (font_filter_properties): Add const to array elements of
 +      properties args.
  
 -2010-09-28  Michael Albinus  <michael.albinus@gmx.de>
 +      * font.h (font_filter_properties): Likewise.
  
 -      * dbusbind.c (syms_of_dbusbind): Use putenv instead of setenv, it
 -      is more portable.
 +      * ftfont.c (ftfont_booleans, ftfont_non_booleans): Add const to array
 +      elements.
  
 -      * keyboard.c (gobble_input): Move call of xd_read_queued_messages ...
 -      (kbd_buffer_get_event): ... here.  This is needed for cygwin, which
 -      has not defined SIGIO.
 +      * w32font.c (w32font_booleans, w32font_non_booleans): Likewise.
  
 -2010-09-27  Michael Albinus  <michael.albinus@gmx.de>
 +2010-11-10  Michael Albinus  <michael.albinus@gmx.de>
  
 -      * dbusbind.c (syms_of_dbusbind): Set $DBUS_FATAL_WARNINGS to "0".
 -      (Bug#7113)
 +      * dbusbind.c (QCdbus_type_unix_fd): New Lisp object.
 +      (XD_BASIC_DBUS_TYPE, xd_symbol_to_dbus_type, xd_signature)
 +      (xd_append_arg, xd_retrieve_arg): Support DBUS_TYPE_UNIX_FD.
 +      (Fdbus_call_method): Add DBUS_TYPE_UNIX_FD type mapping to doc string.
 +      (syms_of_dbusbind): Initialize QCdbus_type_unix_fd).
  
 -2010-09-26  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-11-10  Glenn Morris  <rgm@gnu.org>
  
 -      * xgselect.c (xg_select): Clear file descriptors not set from
 -      rfds and wfds.
 +      * emacs.c (syms_of_emacs) <system-type>: Doc fix.
  
 -2010-09-21  Stefan Monnier  <monnier@iro.umontreal.ca>
 +2010-11-09  Eli Zaretskii  <eliz@gnu.org>
  
 -      * syntax.c (back_comment): Detect the case where a 1-char comment
 -      starter is also the 2nd char of a 2-char comment ender.
 +      * xfns.c (x_real_positions): Fix declaration-after-statement problem.
  
 -2010-09-17  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-11-09  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * gtkutil.c (xg_tool_bar_menu_proxy): Set gtk-menu-items to TRUE.
 +      * image.c (free_image): Don't garbage the frame here, since this
 +      function can be called while redisplaying (Bug#7210).
 +      (uncache_image): Garbage the frame here (Bug#6426).
  
 -2010-09-12  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-11-09  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xterm.c (get_current_vm_state): New function.
 -      (do_ewmh_fullscreen): Call get_current_vm_state and compare with
 -      want_fullscreen so set_wm_state calls are few (Bug#7013).
 -      (x_handle_net_wm_state): Move code to get_current_vm_state and
 -      call that function.
 +      * xfns.c (x_real_positions): Only use _NET_FRAME_EXTENTS if our
 +      parent is the root window.  Check this after traversing window tree.
  
 -2010-09-11  Courtney Bane  <emacs-bugs-7626@cbane.org>  (tiny change)
 +      * xterm.c (x_term_init): Initialize Xatom_net_frame_extents.
  
 -      * term.c (tty_set_terminal_modes): Don't initialize twice (bug#7002).
 +      * xterm.h (struct x_display_info): Xatom_net_frame_extents is new.
  
 -2010-09-08  Kenichi Handa  <handa@m17n.org>
 +      * xfns.c (x_real_positions): Try to get _NET_FRAME_EXTENTS first
 +      before traversing window tree (Bug#5721).
  
 -      * coding.c (encode_coding_iso_2022): Don't optimize for ASCII if
 -      we may use designation or locking-shift.
 +2010-11-07  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-09-07  Kenichi Handa  <handa@m17n.org>
 +      * xfns.c (set_machine_and_pid_properties): Let X set WM_CLIENT_MACHINE.
  
 -      * coding.c (detect_coding_emacs_mule): Fix checking of multibyte
 -      sequence when the source is multibyte.
 +      * xdisp.c (note_mode_line_or_margin_highlight):
 +      Initialize Cursor to No_Cursor for HAVE_WINDOW_SYSTEM also.
  
 -2010-08-31  Kenichi Handa  <handa@m17n.org>
 +2010-11-06  Eli Zaretskii  <eliz@gnu.org>
  
 -      * dispextern.h (FACE_FOR_CHAR): Use an ASCII face for 8-bit
 -      characters.
 +      * xfns.c (Fx_show_tip): If any of the tool-tip text lines is R2L,
 +      adjust width of tool-tip frame to the width of text, excluding the
 +      stretch glyph at the beginning of R2L glyph rows.
  
 -      * term.c (encode_terminal_code): Fix the previous change.
 -      (produce_glyphs): Don't set it->char_to_display here.
 -      Don't handle unibyte-display-via-language-environment here.
 -      (produce_special_glyphs): Set temp_it.char_to_display before
 -      calling produce_glyphs.
 +      * w32fns.c (Fx_show_tip): Likewise.
  
 -      * xdisp.c (get_next_display_element): Set it->char_to_display
 -      here.  Convert all 8-bit bytes from unibyte buffer/string to 8-bit
 -      characters.
 -      (get_overlay_arrow_glyph_row): Set it.char_to_display too before
 -      calling PRODUCE_GLYPHS.
 -      (append_space_for_newline): Save and store it->char_to_display.
 -      Set it->char_to_display before calling PRODUCE_GLYPHS.
 -      (extend_face_to_end_of_line): Set it->char_to_display before
 -      calling PRODUCE_GLYPHS.
 -      (get_glyph_face_and_encoding): Set the glyph code an 8-bit
 -      character to its byte value.
 -      (get_char_glyph_code): New function.
 -      (produce_stretch_glyph): Set it2.char_to_display too before
 -      calling x_produce_glyphs.
 -      (x_produce_glyphs): Simplify by using the same code for ASCII and
 -      non-ASCII characters.  Don't set it->char_to_display here.
 -      Don't handle unibyte-display-via-language-environment here.  For a
 -      character of no glyph, use font->space_width instead of FONT_WIDTH.
 +2010-11-06  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-08-29  Kenichi Handa  <handa@m17n.org>
 +      * nsfont.m: Include termchar for new mouse-highlight.
 +      (nsfont_draw): Use MOUSE_HL_INFO.
  
 -      * term.c (encode_terminal_code): Encode byte chars to the
 -      correspnding bytes.
 +2010-11-05  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-08-17  Andreas Schwab  <schwab@linux-m68k.org>
 +      Unify mouse-highlight code for all GUI and TTY sessions.
 +
 +      * term.c: Remove static mouse_face_* variables.  All users
 +      changed.
 +      (term_show_mouse_face, term_clear_mouse_face)
 +      (fast_find_position, term_mouse_highlight): Functions deleted.
 +      (tty_draw_row_with_mouse_face): New function.
 +      (term_mouse_movement): Call note_mouse_highlight instead of
 +      term_mouse_highlight.
 +
 +      * nsterm.m (ns_update_window_begin, ns_update_window_end)
 +      (ns_update_end, x_destroy_window, ns_frame_up_to_date)
 +      (ns_dumpglyphs_box_or_relief, ns_maybe_dumpglyphs_background)
 +      (ns_dumpglyphs_image, ns_dumpglyphs_stretch)
 +      (ns_initialize_display_info, keyDown, mouseMoved, mouseExited):
 +      Replace Display_Info with Mouse_HLInfo everywhere where
 +      mouse_face_* members were accessed for mouse highlight purposes.
 +
 +      * xterm.c (x_update_window_begin, x_update_window_end)
 +      (x_update_end, XTframe_up_to_date, x_set_mouse_face_gc)
 +      (handle_one_xevent, x_free_frame_resources, x_term_init):
 +      Replace Display_Info with Mouse_HLInfo everywhere where mouse_face_*
 +      members were accessed for mouse highlight purposes.
 +
 +      * w32term.c (x_update_window_begin, x_update_window_end)
 +      (x_update_end, w32_read_socket, x_free_frame_resources)
 +      (w32_initialize_display_info): Replace Display_Info with
 +      Mouse_HLInfo everywhere where mouse_face_* members were accessed
 +      for mouse highlight purposes.
 +
 +      * xdisp.c (show_mouse_face, note_mode_line_or_margin_highlight)
 +      (note_mouse_highlight) [HAVE_WINDOW_SYSTEM]: Don't run GUI code
 +      unless the frame is on a window-system.
 +      (get_tool_bar_item, handle_tool_bar_click)
 +      (note_tool_bar_highlight, draw_glyphs, erase_phys_cursor)
 +      (show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
 +      (note_mode_line_or_margin_highlight, note_mouse_highlight)
 +      (x_clear_window_mouse_face, cancel_mouse_face, expose_frame):
 +      Replace Display_Info with Mouse_HLInfo everywhere where
 +      mouse_face_* members were accessed for mouse highlight purposes.
 +      (coords_in_mouse_face_p): Move prototype out of the
 +      HAVE_WINDOW_SYSTEM conditional.
 +      (x_y_to_hpos_vpos, frame_to_window_pixel_xy): Move out of the
 +      HAVE_WINDOW_SYSTEM block.
 +      (try_window_id) [HAVE_GPM || MSDOS]:
 +      Call x_clear_window_mouse_face.
 +      (draw_row_with_mouse_face): Implementation for HAVE_WINDOW_SYSTEM
 +      systems.  Call tty_draw_row_with_mouse_face for TTY systems.
 +      (show_mouse_face): Call draw_row_with_mouse_face, instead of
 +      calling draw_glyphs directly.
 +      (show_mouse_face, clear_mouse_face, coords_in_mouse_face_p)
 +      (cursor_in_mouse_face_p, rows_from_pos_range)
 +      (mouse_face_from_buffer_pos, mouse_face_from_string_pos)
 +      (note_mode_line_or_margin_highlight, note_mouse_highlight)
 +      (x_clear_window_mouse_face, cancel_mouse_face): Move out of the
 +      HAVE_WINDOW_SYSTEM block.  Ifdef away window-system specific
 +      fragments.
 +      (note_mouse_highlight): Call popup_activated for MSDOS as well.
 +      Clear mouse highlight if pointer is over glyphs whose OBJECT is an
 +      integer.
 +      (mouse_face_from_buffer_pos): Add parentheses around && within ||.
 +      (x_consider_frame_title, tool_bar_lines_needed):
 +      Move prototypes to HAVE_WINDOW_SYSTEM-only part.
 +      (get_window_cursor_type): Move inside a HAVE_WINDOW_SYSTEM-only
 +      part.  Remove "#ifdef HAVE_WINDOW_SYSTEM" from body of function.
 +      (null_glyph_slice): Move declaration into HAVE_WINDOW_SYSTEM-only
 +      part.
 +
 +      * dispnew.c (mirror_make_current): Set Y coordinate of the
 +      mode-line and header-line rows.
 +      (init_display): Setup initial frame's output_data for text
 +      terminal frames.
 +
 +      * xmenu.c (popup_activated): Don't define on MSDOS, which now has
 +      its own definition on msdos.c.
 +
 +      * msdos.c (show_mouse_face, clear_mouse_face)
 +      (fast_find_position, IT_note_mode_line_highlight)
 +      (IT_note_mouse_highlight): Functions deleted.
 +      (IT_frame_up_to_date, dos_rawgetc): Call note_mouse_highlight
 +      instead of IT_note_mouse_highlight.
 +      (draw_row_with_mouse_face, popup_activated): New functions.
 +      (dos_set_window_size, draw_row_with_mouse_face, IT_update_begin)
 +      (IT_update_end, IT_frame_up_to_date, internal_terminal_init)
 +      (dos_rawgetc): Replace Display_Info with Mouse_HLInfo everywhere
 +      where mouse_face_* members were accessed for mouse highlight
 +      purposes.
 +
 +      * msdos.h (initialize_msdos_display): Add prototype.
 +
 +      * frame.h (MOUSE_HL_INFO): New macro.
 +
 +      * lisp.h (Mouse_HLInfo): New data type.
 +
 +      * xterm.h (struct x_display_info):
 +      * w32term.h (struct w32_display_info):
 +      * nsterm.h (struct ns_display_info):
 +      * termchar.h (struct tty_display_info): Use it instead of
 +      mouse_face_* members.
 +
 +      * dispextern.h (show_mouse_face, clear_mouse_face): Update type of
 +      1st argument.
 +      (frame_to_window_pixel_xy, note_mouse_highlight)
 +      (x_clear_window_mouse_face, cancel_mouse_face, clear_mouse_face)
 +      (show_mouse_face, cursor_in_mouse_face_p): Move prototypes out of
 +      HAVE_WINDOW_SYSTEM conditional.
 +      (draw_row_with_mouse_face): Declare prototype.
 +      (tty_draw_row_with_mouse_face): Declare prototype.
 +
 +2010-11-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * term.c (append_glyphless_glyph, produce_glyphless_glyph):
 +      Remove unused variables.
 +
 +2010-11-05  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +
 +      * nsterm.m (EmacsView-mouseExited:): Correct error in conditional
 +      logic pointed out by Eli Zaretskii.
 +
 +2010-11-04  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * coding.c (coding-category-list): Refer to set-coding-system-priority
 +      instead of the obsolete set-coding-priority in the doc string.
 +
 +2010-11-04  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +
 +      * nsfont.m (nsfont_draw): Correct previous patch to return
 +      correct value.
 +      * nsimage.m (EmacsImage-setXBMColor:): Correct previous patch:
 +      don't change the method signature, change the return.
 +
 +2010-11-04  Ismail Donmez  <ismail@namtrac.org>  (tiny change)
 +
 +      * nsfont.m (nsfont_draw)
 +      * nsimage.m (EmacsImage-setXBMColor:)
 +      * nsterm.m (EmacsView-performDragOperation:): Correct empty return.
 +
 +2010-11-03  Julien Danjou  <julien@danjou.info>
 +
 +      * image.c (gif_load): Add support for transparency and specified
 +      :background.
 +
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
 +
 +      * dispextern.h (lookup_glyphless_char_display): Extern it.
 +
 +      * termhooks.h (struct terminal): New member charset_list.
 +
 +      * coding.c (Fset_terminal_coding_system_internal): Set the
 +      `charset_list' member of struct terminal.
 +
 +      * term.c (produce_glyphs): Handle the case it->what == IT_GLYPHLESS.
 +      (append_glyphless_glyph, produce_glyphless_glyph): New functions.
 +
 +      * xdisp.c (lookup_glyphless_char_display): Make it non-static.
 +      (lookup_glyphless_char_display): Set it->what at the end.
 +      (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
 +      (last_glyphless_glyph_merged_face_id): Make them non-static.
 +
 +      * w32term.c (x_draw_glyphless_glyph_string_foreground):
 +      Fix the arg with_background for font->driver->draw.
 +
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
 +
 +      * w32gui.h (STORE_XCHAR2B, XCHAR2B_BYTE1, XCHAR2B_BYTE2):
 +      Surround chp by parentheses.
 +
 +2010-11-01  Kenichi Handa  <handa@m17n.org>
 +
 +      Implement various display methods for glyphless characters.
 +
 +      * xdisp.c (Qglyphless_char, Vglyphless_char_display)
 +      (Qglyphless_char_display, Qhexa_code, Qempty_box, Qthin_space)
 +      (Qzero_width): New variables.
 +      (THIN_SPACE_WIDTH): New macro.
 +      (lookup_glyphless_char_display): New funciton.
 +      (last_glyphless_glyph_frame, last_glyphless_glyph_face_id)
 +      (last_glyphless_glyph_merged_face_id): New variables.
 +      (get_next_display_element): Check glyphless characters.
 +      (redisplay_internal): Initialize last_glyphless_glyph_frame and
 +      last_glyphless_glyph_face_id.
 +      (fill_glyphless_glyph_string): New function.
 +      (BUILD_GLYPHLESS_GLYPH_STRING): New macro.
 +      (BUILD_GLYPH_STRINGS): Handle the case GLYPHLESS_GLYPH.
 +      (append_glyphless_glyph, produce_glyphless_glyph): New functions.
 +      (x_produce_glyphs): If a suitable font is not found, produce a
 +      glyphless glyph.  Handle the case it->what == IT_GLYPHLESS.
 +      (syms_of_xdisp): Intern and staticpro Qglyphless_char,
 +      Qglyphless_char_display, Qhexa_code, Qempty_box, Qthin_space, and
 +      Qzero_width.
 +      (Vglyphless_char_display): Declare it as a Lisp variable.
 +
 +      * dispextern.h (enum glyph_type): Add GLYPHLESS_GLYPH.
 +      (struct glyph): Change the size of the member "type" to 3.
 +      Add glyphless to the union slice and u.
 +      (enum display_element_type): Add IT_GLYPHLESS.
 +      (enum glyphless_display_method): New enum.
 +      (struct it): New member glyphless_method.
 +      (Vglyphless_char_display): Extern it.
 +
 +      * xterm.c (x_draw_glyphless_glyph_string_foreground): New function.
 +      (x_draw_glyph_string): Handle the case GLYPHLESS_GLYPH.
 +
 +      * w32term.c (x_draw_glyphless_glyph_string_foreground): New function.
 +      (x_draw_glyph_string): Handle the case GLYPHLESS_GLYPH.
 +
 +      * nsterm.m (ns_draw_glyph_string): Handle the case
 +      GLYPHLESS_GLYPH (the detail is not yet implemented).
 +
 +2010-10-31  Glenn Morris  <rgm@gnu.org>
 +
 +      * xterm.c (x_connection_closed) [USE_X_TOOLKIT]: Fix merge, maybe.
 +
 +      * frame.c (syms_of_frame) <tool-bar-mode>:
 +      Default to nil if !HAVE_WINDOW_SYSTEM.  (Bug#7299)
 +
 +2010-10-31  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xterm.c (x_connection_closed): Print informative error message
 +      when aborting on GTK.  This requires using shut_down_emacs
 +      directly instead of Fkill_emacs.
 +
 +2010-10-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacs.c (main): Call syms_of_filelock unconditionally.
 +
 +      * filelock.c (syms_of_filelock): Move out of #ifdef CLASH_DETECTION
 +      clause, but keep part of it conditioned on CLASH_DETECTION.
 +
 +2010-10-29  Glenn Morris  <rgm@gnu.org>
 +
 +      * nsfns.m (Fx-display-save-under, Fx-open-connection)
 +      (Fxw-color-defined-p, Fxw-display-color-p, Fx-show-tip):
 +      * w32fns.c (Fxw_color_defined_p, Fx_open_connection):
 +      * xfns.c (Fxw_color_defined_p, Fx_open_connection):
 +      Sync docs between X, W32, NS.
 +
 +      * buffer.c (syms_of_buffer) <abbrev-mode, transient-mark-mode>:
 +      * frame.c (syms_of_frame) <tool-bar-mode>: Move doc here from Lisp.
 +
 +2010-10-26  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * eval.c (init_eval_once): Set max_lisp_eval_depth to 600;
 +      otherwise, bootstrapping on Windows fails to compile macroexp.el.
 +
 +2010-10-26  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * cmds.c (internal_self_insert): Don't insert if argument N is
 +      zero or negative.  (Bug#7281)
 +
 +2010-10-26  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (qttip_cb): Set title to empty for ATK (Bug#7278).
 +
 +2010-10-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (SOME_MACHINE_LISP): Remove easymenu.elc.
 +
 +2010-10-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * w32fns.c (Fx_synchronize, Fx_change_window_property)
 +      (Fx_window_property, Fx_file_dialog):
 +      * xfns.c (Fx_synchronize, Fx_change_window_property)
 +      (Fx_window_property, Fx_file_dialog): Sync docs between w32 and X.
 +
 +2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xterm.c (x_connection_closed): Kill Emacs unconditionally.
 +
 +2010-10-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * frame.c (Fframep, Fwindow_system): Deprecate use as a predicate.
 +
 +      * dispnew.c (syms_of_display) <initial-window-system, window-system>:
 +      Deprecate use as a boolean flag.
 +
 +2010-10-24  Jim Meyering  <jim@meyering.net>
 +
 +      * emacs.c (argmatch): Don't treat "--" as "--chdir".
 +
 +2010-10-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * w16select.c (syms_of_win16select) <selection-coding-system>:
 +      <next-selection-coding-system>:
 +      * w32select.c (syms_of_w32select) <selection-coding-system>:
 +      <next-selection-coding-system>:
 +      Sync docs with select.el.
 +
 +      * xfaces.c (syms_of_xfaces) <tty-defined-color-alist>: Sync doc with
 +      Lisp version.
 +
 +      * w32term.c (syms_of_w32term) <x-use-underline-position-properties>:
 +      Sync doc with the xterm.c version.
 +
 +      * w32term.c (syms_of_w32term) <x-toolkit-scroll-bars>:
 +      * xterm.c (syms_of_xterm) <x-toolkit-scroll-bars>: Sync docs.
 +
 +2010-10-23  Glenn Morris  <rgm@gnu.org>
 +
 +      * buffer.c (syms_of_buffer) <cursor-in-non-selected-windows>:
 +      * frame.c (syms_of_frame) <menu-bar-mode>:
 +      * xdisp.c (syms_of_xdisp) <auto-hscroll-mode, display-hourglass>:
 +      <hourglass-delay>: Sync docs with Lisp.
 +
 +2010-10-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Implement mouse highlight for bidi-reordered lines.
 +
 +      * xdisp.c (fast_find_string_pos): #ifdef away, not used anymore.
 +      (mouse_face_from_string_pos): New function, replaces
 +      fast_find_string_pos.
 +      (note_mouse_highlight): Call it instead of fast_find_string_pos.
 +      (note_mode_line_or_margin_highlight): Support bidi-reordered
 +      strings and R2L glyph rows.  Fix comments.
 +      (note_mouse_highlight): When bidi reordering is turned on in a
 +      buffer, call next-single-property-change and
 +      previous-single-property-change with last argument nil.
 +      Clear mouse highlight when mouse pointer is in a R2L row on the stretch
 +      glyph that stands for no text beyond the line end.
 +      (row_containing_pos): Don't return too early when CHARPOS is in a
 +      bidi-reordered continued line.  Return immediately when the first
 +      hit is found in a line that is not continued, or when an exact
 +      match for CHARPOS is found.
 +      (rows_from_pos_range): New function.
 +      (mouse_face_from_buffer_pos): Use it instead of calling
 +      row_containing_pos for START_CHARPOS and END_CHARPOS.  Rewrite the
 +      function to support mouse highlight in bidi-reordered lines and
 +      not to assume that START_CHARPOS is always in mouse_face_beg_row.
 +      If necessary, swap mouse_face_beg_row and mouse_face_end_row so
 +      that the former is always above the latter or identical to it.
 +      (show_mouse_face): Support drawing highlighted R2L lines.
 +      (coords_in_mouse_face_p): New function, bidi-aware.
 +      (cursor_in_mouse_face_p, note_mouse_highlight, erase_phys_cursor):
 +      Call it instead of comparing with mouse-face members of dpyinfo.
 +      (note_mode_line_or_margin_highlight): Fix confusingly swapped
 +      usage of hpos and vpos.
 +
 +2010-10-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xrdb.c: Include keyboard.h for MOTIF.
 +
 +      * xmenu.c: Revert 2010-07-27 change: lwlib.h is needed for
 +      MOTIF (Bug#7263).
 +
 +      * xfns.c: Include Xm/TextF and Xm/List.
 +      (file_dialog_cb, file_dialog_unmap_cb, clean_up_file_dialog):
 +      Make ANSI prototypes.
 +
 +2010-10-22  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (SOME_MACHINE_LISP): Add w32-vars.
 +      Remove ccl and duplicate mouse.
 +
 +2010-10-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * insdel.c (prepare_to_modify_buffer): Don't set
 +      saved-region-selection if modification hooks are disabled.
 +
 +2010-10-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cmds.c (Fdelete_char): Doc fix.
 +
 +2010-10-19  Ken Brown  <kbrown@cornell.edu>
 +
 +      * s/cygwin.h (SIGNALS_VIA_CHARACTERS): New define (bug#7225).
 +
 +2010-10-19  Kenichi Handa  <handa@m17n.org>
 +
 +      Fix incorrect font metrics when the same font is opened with
 +      different pixelsizes.
 +
 +      * xftfont.c: Include composite.h.
 +      (xftfont_shape): New function.
 +      (syms_of_xftfont): Set xftfont_driver.shape.
 +
 +2010-10-18  Julien Danjou  <julien@danjou.info>
 +
 +      * frame.c (Fframe_pointer_visible_p):
 +      Add `frame-pointer-visible-p' to get the pointer visibility.
 +
 +2010-10-18  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (emacs_gnutls_read): Return 0 if we get a
 +      non-"EAGAIN"-like error to signal to Emacs that the socket should
 +      be closed.
 +
 +2010-10-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * unexcoff.c (make_hdr): Fix prototype according to changes in
 +      2010-10-03T13:59:56Z!dann@ics.uci.edu.
 +
 +      * image.c (tiff_load): Cast 3rd argument to avoid compiler warning.
 +
 +2010-10-15  Tassilo Horn  <tassilo@member.fsf.org>
 +
 +      * Makefile.in (really-oldXMenu): Fix typo in variable name that
 +      made building the X menu fail.
 +      (really-oldXMenu): Fix my previous fix.
 +
 +2010-10-14  Damyan Pepper  <damyanp@gmail.com>
 +
 +      Fix handling of font properties on Windows (bug#6303).
 +      * font.c (font_filter_properties): New function, refactored from
 +      ftfont_filter_properties.
 +      * font.h (font_filter_properties): Declare.
 +      * ftfont.c (ftfont_filter_properties): Use font_filter_properties.
 +      * w32font.c (w32font_booleans, w32font_non_booleans): New variables.
 +      (w32font_filter_properties): New function.
 +      (w32font_driver): Add w32font_filter_properties.
 +
 +2010-10-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * font.c (Ffont_variation_glyphs):
 +      * ccl.c (Fccl_execute_on_string): Fix typo in docstring.
 +
 +2010-10-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32fns.c (w32_wnd_proc, file_dialog_callback):
 +      * w32font.c (w32_generic_family):
 +      * w32inevt.c (key_event):
 +      * w32menu.c (fill_in_menu):
 +      * w32proc.c (reader_thread, w32_executable_type, compare_env)
 +      (merge_and_sort_env, int_from_hex, enum_locale_fn, enum_codepage_fn):
 +      * w32term.c (w32_read_socket): Make static.
 +
 +2010-10-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * image.c (DEF_IMGLIB_FN): Add argument to adapt to strict
 +      prototypes; all callers changed.
 +
 +2010-10-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (TLIB2): Rename from TLIBW32.
 +      (OBJ2): New macro.
 +      (WIN32OBJ, FONTOBJ): Remove.
 +      (OBJ1): Redistribute object files with OBJ2.
 +      (LIBS, $(TEMACS)): Use TLIB2.
 +      (make-buildobj-CMD, make-buildobj-SH): Use OBJ2.
 +      ($(TLIB2), TAGS, TAGS-LISP, TAGS-gmake): Depend on OBJ2.
 +
 +2010-10-13  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * emacs.c (Vdynamic_library_alist)
 +      (syms_of_emacs) <dynamic-library-alist>: Move from image.c and rename.
 +      Doc fix.
 +
 +      * lisp.h (Vdynamic_library_alist): Declare extern.
 +
 +      * image.c (Vimage_library_alist)
 +      (syms_of_image) <image-library-alist>: Move to emacs.c and rename.
 +      (lookup_image_type): Use Vdynamic_library_alist.
 +      (Finit_image_library): Doc fix.
 +
 +2010-10-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (lispsource, libsrc, etc, oldxmenudir, lwlibdir)
 +      (lispdir): Remove trailing /, update all uses.
 +
 +2010-10-12  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (Qleft): Declare.
 +      (ns_right_alternate_modifier): New variable
 +      (NSRightAlternateKeyMask): New define.
 +      (EV_MODIFIERS): Parse NSRightAlternateKeyMask if
 +      ns_right_alternate_modifier isn't Qleft.
 +      (keyDown): If ns_right_alternate_modifier isn't Qleft, use it
 +      as emacs modifier for NSRightAlternateKeyMask.
 +      (syms_of_nsterm): DEFVAR_LISP ns-right-alternate-modifier.
 +
 +2010-10-10  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (emacs_gnutls_write): If we're trying to write before
 +      gnutls is ready, return EAGAIN as the errno.
 +
 +2010-10-10  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vm-limit.c:
 +      * unexhp9k800.c:
 +      * unexelf.c:
 +      * unexaix.c:
 +      * termcap.c: Remove #ifdef emacs / #ifndef emacs code, unused.
 +
 +      * Makefile.in (temacs): Use $(ALL_CFLAGS) on the link line.
 +      (PROFILING_LDFLAGS): Remove, not needed anymore.
 +
 +      * Makefile.in: Use $(...) everywhere instead of ${...}
 +      (CRT_DIR): Move near potential user.
 +      (START_FILE): Move near CRT_DIR, it might use it.
 +
 +      * sysdep.c (LPASS8): Remove, unused.
 +      (emacs_ospeed): Change from being a global to a local in the only
 +      user: init_baud_rate.
 +
 +2010-10-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (syms_of_gnutls): All the bootprops are keywords.
 +      (emacs_gnutls_write): Remove the debuggin fsync call.
 +      (emacs_gnutls_read): Return -1 if we got an error from
 +      gnutls_read.  This allows us to actually read lots of data from
 +      the GnuTLS stream.
 +      (emacs_gnutls_write): Check for GNUTLS_E_AGAIN and not EINTR.
 +      According to the documentation, this is correct, and it seems to
 +      make things work.
 +
 +2010-10-09  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xterm.c (x_draw_relief_rect): Clear corner pixels.
 +
 +2010-10-08  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * keyboard.c: Revert last change; it was not intended to be
 +      synchronized with the trunk.
 +
 +2010-10-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * coding.c (complement_process_encoding_system): Fix previous change.
 +
 +2010-10-08  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (syms_of_dbusbind): Move putenv call ...
 +      (Fdbus_init_bus): ... here.  (Bug#7113)
 +
 +2010-10-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * buffer.c (before-change-functions, after-change-functions):
 +      Three-year overdue doc fix following 2007-08-13 change.
 +
 +2010-10-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * coding.c (coding_inherit_eol_type): If parent doesn't specify
 +      eol-format, inherit from the system's default.
 +      (complement_process_encoding_system): Make a new coding system
 +      inherit the original eol-format.
 +
 +2010-10-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * coding.c (complement_process_encoding_system): New function.
 +
 +      * coding.h (complement_process_encoding_system): Extern it.
 +
 +      * callproc.c (Fcall_process): Complement the coding system for
 +      encoding arguments.
 +      (Fcall_process_region): Complement the coding system for encoding
 +      the input to the process.
 +
 +      * process.c (Fstart_process): Complement the coding system for
 +      encoding arguments.
 +      (send_process): Complement the coding system for encoding what
 +      sent to the process.
 +
 +2010-10-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * xfont.c (xfont_open): Fix setting of font->average_width from
 +      :avgwidth property (Bug#7123).
 +
 +2010-10-08  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (syms_of_dbusbind): Use putenv instead of setenv, it
 +      is more portable.
 +
 +      * keyboard.c (gobble_input): Move call of xd_read_queued_messages ...
 +      (kbd_buffer_get_event): ... here.  This is needed for cygwin, which
 +      has not defined SIGIO.
 +
 +2010-10-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xterm.c (x_draw_relief_rect): If box width is larger than 1,
 +      draw the outermost line using the black relief, for legibility.
 +      Omit drawing the four corner pixels.
 +
 +2010-10-04  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (echo_prompt): Function moved into read_key_sequence.
 +      (read_key_sequence): Inline echo_prompt.
 +      (echo_dash): Add a dash only if key is continued (Bug#7137).
 +
 +2010-10-04  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove O_RDONLY, O_WRONLY definitions, not needed.
 +      * unexcoff.c:
 +      * lread.c:
 +      * fileio.c:
 +      * doc.c:
 +      * callproc.c:
 +      * alloc.c:
 +      * termcap.c: Remove O_RDONLY O_WRONLY definitions.
 +
 +2010-10-03  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnutls.h (GNUTLS_LOG2): Convenience macro.
 +
 +      * gnutls.c: Add property list symbol holders.
 +      (emacs_gnutls_handshake): Clarify how sockets are passed to
 +      GnuTLS.
 +      (gnutls_log_function2): Convenience function using GNUTLS_LOG2.
 +      (Fgnutls_boot): Get all parameters from a plist.  Require trustfiles
 +      and keyfiles to be a list of file names.  Default to "NORMAL" for
 +      the priority string.  Improve logging.
 +
 +2010-10-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * fileio.c (Vdirectory_sep_char): Remove.
 +
 +2010-10-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * termhooks.h: Remove #ifdef CONSP.
 +
 +      * xterm.c (NO_INLINE, noinline): Move definitions to ../configure.in.
 +
 +      Include <fcntl.h> unconditionally.
 +      * termcap.c:
 +      * sysdep.c:
 +      * lread.c:
 +      * keyboard.c:
 +      * filelock.c:
 +      * fileio.c:
 +      * doc.c:
 +      * callproc.c:
 +      * alloc.c: Remove include guards for <fcntl.h>, process.c already
 +      does it.
 +
 +      * process.c: Do not include <sys/wait.h>, syswait.h does it.
 +
 +      * sysdep.c (flush_pending_output): Remove code, does not do
 +      anything on any platform.
 +
 +      Remove unused code.
 +      * sysdep.c (select_alarm, sys_select, read_input_waiting):
 +      Remove select emulation, all systems support select.
 +      (set_exclusive_use): Remove, the only user is in an #if 0 block.
 +      * process.c (create_process): Remove #if 0 code.
 +
 +      Remove unused arguments for unexec.
 +      The third one is never used, and the last two are always passed as zero.
 +      * emacs.c (unexec): Add declaration.
 +      (Fdump_emacs): Only pass the first two arguments to unexec.
 +      Simplify #ifdef.
 +      * unexw32.c (unexec):
 +      * unexsol.c (unexec):
 +      * unexhp9k800.c (unexec):
 +      * unexcw.c (unexec): Remove the last 3 arguments, unused.
 +      * unexelf.c (unexec): Remove the last 3 arguments, unused.
 +      (find_section): Use const.
 +      * unexmacosx.c (unexec): Remove the last 3 arguments, unused.
 +      (unexec_error): Declare it NO_RETURN.
 +      * unexcoff.c (make_hdr): Assume bss_start is always zero, remove
 +      it as an argument, remove data_start and entry_address arguments, unused.
 +      (unexec): Remove bss_start, data_start and
 +      entry_address arguments.
 +      * unexaix.c (make_hdr): Assume bss_start is always zero, remove
 +      it as an argument, remove data_start and entry_address arguments, unused.
 +      (unexec): Remove bss_start, data_start and
 +      entry_address arguments.
 +
 +2010-10-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (TAGS, TAGS-LISP, TAGS-gmake): Add $(FONTOBJ).
 +
 +      * gnutls.c (emacs_gnutls_handshake, gnutls_make_error)
 +      (gnutls_emacs_global_init, gnutls_emacs_global_deinit): Make static.
 +      (Fgnutls_get_initstage, Fgnutls_deinit, Fgnutls_boot, Fgnutls_bye):
 +      Fix typos in docstrings.
 +      (Fgnutls_error_fatalp, Fgnutls_error_string): Doc fixes.
 +      (Fgnutls_errorp): Doc fix; use ERR for the argument name.
 +
 +2010-10-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (command_loop_1): Make sure the mark is really alive
 +      before using it (Bug#7044).
 +
 +2010-10-02  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in (tags): Rename target to full-tags.
 +
 +2010-10-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * emacs.c (main): Remove !WINDOWSNT conditional.
 +      (Fkill_emacs): Don't mention exemption on MS-Windows.
 +
 +2010-10-02  Glenn Morris  <rgm@gnu.org>
 +
 +      * character.c (Fchar_bytes): Remove obsolete function.
 +      (syms_of_character): Remove Schar_bytes.
 +
 +      * emacs.c (fatal_error_signal): Also run Fkill_emacs on SIGINT.
 +      (main) [!WINDOWSNT]: Handle SIGINT with fatal_error_signal
 +      in batch-mode.
 +      (Fkill_emacs): Doc fix.  Also run the hook in batch mode.
 +      (kill-emacs-hook): Doc fix.
 +
 +2010-10-02  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c (Flibxml_parse_xml_region, Flibxml_parse_html_region)
 +      (parse_region): Rework to take regions instead of strings, and
 +      renamed to reflect that these are the libxml functions.
 +
 +2010-10-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * term.c (init_tty) [DOS_NT]: Don't call Wcm_clear after setting
 +      screen dimensions in tty->Wcm.
 +
 +      * xdisp.c (set_cursor_from_row): When the row is truncated and
 +      point is outside the range of displayed characters, position the
 +      cursor inside the scroll margin.  (Bug#6349)
 +
 +2010-10-01  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Do not include stdlib.h and string.h, config.h does it.
 +      * xfont.c:
 +      * w32term.c:
 +      * w32reg.c:
 +      * w32inevt.c:
 +      * w32heap.c:
 +      * w32console.c:
 +      * w16select.c:
 +      * unexsol.c:
 +      * term.c:
 +      * sound.c:
 +      * scroll.c (m):
 +      * gtkutil.c:
 +      * font.c:
 +      * filelock.c:
 +      * fileio.c:
 +      * dosfns.c:
 +      * dbusbind.c:
 +      * bidi.c:
 +      * callproc.c:
 +      * process.c:
 +      * msdos.c:
 +      * charset.c: Do not include stdlib.h and string.h, config.h does it.
 +
 +      * callproc.c (SIGCHLD): Remove conditional definition, syssignal.h
 +      defines it.
 +
 +      * process.c: Move #include <pty.h> earlier.
 +      (SIGCHLD): Remove conditional definition, syssignal.h defines it.
 +      (pty_name): Move definition later.
 +
 +      * nsselect.m (syms_of_nsselect):
 +      * nsmenu.m (syms_of_nsmenu):
 +      * nsfns.m (syms_of_nsfns):
 +      * msdos.c (syms_of_msdos):
 +
 +      * image.c (syms_of_image):
 +      * charset.c (syms_of_charset): Use intern_c_string instead of intern.
 +
 +      * point.h: Remove, unused.
 +
 +2010-10-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in (TAGS, frc, TAGS-LISP, ../nt/TAGS, tags)
 +      (TAGS-gmake, TAGS-nmake, TAGS-LISP-gmake, TAGS-LISP-nmake)
 +      (nt-TAGS-gmake, nt-TAGS-nmake): New targets.
 +
 +2010-09-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xml.c (parse_string): Use const.
 +
 +2010-09-30  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eval.c (Fbacktrace): Don't overwrite print-level on exit.
 +      Also only override Vprint_level if it isn't already bound, and increase
 +      the level to 8 to produce more useful backtraces for bug reports.
 +
 +2010-09-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in: ecrt0.c does not exist anymore, do not mention it.
 +
 +2010-09-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32console.c (vga_stdcolor_name): Remove unused function;
 +      presumed dead after 2007-11-30T13:57:21Z!jasonr@gnu.org.
 +
 +2010-09-29  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (emacs_gnutls_handshake): Made into internal function.
 +      (Fgnutls_boot): Start the handshake.
 +      (emacs_gnutls_read): Perform the handshake from the reader loop.
 +      (Fgnutls_boot): Remove some debugging messages.
 +      Change indentation throughout to use the Emacs style.
 +      (emacs_gnutls_handshake): Cast the fds to something that's
 +      possibly the expected length.
 +      (emacs_gnutls_write): Return -1 if we try to write before handshake.
 +
 +      * process.h (Lisp_Process): Add a gnutls_p field to Lisp_Process.
 +
 +      * process.c (make_process): Set the gnutls_p field to zero by
 +      default.
 +      (read_process_output): Always call the gnutls_read function if the
 +      stream is a gnutls stream.
 +      (send_process): Ditto for writes.
 +
 +      * gnutls.c (emacs_gnutls_write, emacs_gnutls_read): Refuse to read
 +      or write anything until the state is GNUTLS_STAGE_READY.
 +      (Fgnutls_boot): Mark the stream as being a gnutls stream.
 +
 +2010-09-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (reseat_1): Initialize bidi_it.paragraph_dir to
 +      NEUTRAL_DIR.
 +      (handle_invisible_prop, iterate_out_of_display_property)
 +      (next_element_from_buffer): If bidi_it.first_elt is set, call
 +      bidi_paragraph_init with NO_DEFAULT_P argument non-zero.
 +      (Bug#7128)
 +
 +      * print.c (print_object): Fix format string and argument types for
 +      printing a Lisp_Misc_Marker.
 +
 +      * xdisp.c (pos_visible_p, c_string_pos, number_of_chars)
 +      (load_overlay_strings, get_overlay_strings_1)
 +      (get_overlay_strings, forward_to_next_line_start)
 +      (back_to_previous_visible_line_start, reseat, reseat_to_string)
 +      (get_next_display_element, next_element_from_string)
 +      (next_element_from_c_string, next_element_from_buffer)
 +      (move_it_vertically_backward, move_it_by_lines, add_to_log)
 +      (message_dolog, message_log_check_duplicate, message2_nolog)
 +      (message3, message3_nolog, vmessage, set_message, set_message_1)
 +      (hscroll_window_tree, text_outside_line_unchanged_p)
 +      (set_cursor_from_row, set_vertical_scroll_bar, redisplay_window)
 +      (find_last_unchanged_at_beg_row)
 +      (find_first_unchanged_at_end_row, row_containing_pos)
 +      (trailing_whitespace_p, display_mode_element, decode_mode_spec)
 +      (display_count_lines, x_produce_glyphs, note_mouse_highlight):
 +      Use EMACS_INT for buffer and string positions.
 +
 +      * dispextern.h (struct it) <string_nchars>: Declare EMACS_INT.
 +      (row_containing_pos): Adjust prototype.
 +
 +      * lisp.h (pos_visible_p, message2, message2_nolog, message3)
 +      (message2_nolog, set_message): Adjust prototypes.
 +
 +2010-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * gnutls.c (Fgnutls_boot): Remove unused vars `data' and `srp_cred'.
 +      (Fgnutls_boot): Use SDATA.
 +      (Fgnutls_handshake): Remove unused var `max_log_level'.
 +
 +2010-09-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (syms_of_dbusbind): Set $DBUS_FATAL_WARNINGS to "0".
 +      (Bug#7113)
 +
 +2010-09-27  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xgselect.c (xg_select): Clear file descriptors not set from
 +      rfds and wfds.
 +
 +      * process.c (wait_reading_process_output): Add missing FD_CLR
 +      for write_mask (must mirror connect_wait_mask).
 +
 +2010-09-27  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * gnutls.c (gnutls_log_function): Show level and "gnutls.c"
 +      prefix.
 +      (Fgnutls_boot): Use changed process members.  Use log level with a
 +      function parameter to set it.  Bring back Emacs-level debugging
 +      messages at log level 1 and 2.
 +
 +      * process.c (make_process): Initialize gnutls_log_level.
 +
 +      * process.h: Add gnutls_log_level and rename x509_cred and
 +      anon_cred to have the gnutls_ prefix for consistency.
 +
 +      * gnutls.h (GNUTLS_LOG): Add convenience macro.
 +
 +2010-09-27  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32.c (g_b_init_get_sid_identifier_authority)
 +      (GetSidIdentifierAuthority_Proc, get_sid_identifier_authority):
 +      Remove, not used.
 +      (globals_of_w32): Don't set g_b_init_get_sid_identifier_authority.
 +      (init_winsock): Remove useless assignment.
 +      (open_process_token, get_token_information, lookup_account_sid)
 +      (get_sid_sub_authority, get_sid_sub_authority_count, get_file_security)
 +      (get_security_descriptor_owner, get_security_descriptor_group)
 +      (is_valid_sid, equal_sid, get_length_sid, copy_sid)
 +      (get_native_system_info, get_system_times, init_user_info, crlf_to_lf)
 +      (is_unc_volume, GetCachedVolumeInformation, get_volume_info)
 +      (is_fat_volume, open_unc_volume, read_unc_volume, close_unc_volume)
 +      (unc_volume_file_attributes, convert_from_time_t)
 +      (create_toolhelp32_snapshot, process32_first, process32_next)
 +      (open_thread_token, impersonate_self, revert_to_self)
 +      (get_process_memory_info, get_process_working_set_size)
 +      (global_memory_status, global_memory_status_ex, socket_to_fd)
 +      (shutdown_handler): Make static.
 +
 +2010-09-27  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (dbus_fd_cb, xd_get_dispatch_status)
 +      (xd_pending_messages): Functions removed.
 +      (xd_read_queued_messages): Add parameters fd, *data, for_read in
 +      order to be compatible with add_read_fd.  Determine bus from data,
 +      and call xd_read_message just for this bus.
 +      (xd_add_watch): Use xd_read_queued_messages as callback function.
 +      Add data.
 +
 +      * lisp.h (xd_pending_messages, xd_read_queued_messages): Remove.
 +
 +2010-09-27  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * gnutls.c (gnutls_log_function): Add more debugging.
 +      (emacs_gnutls_read): Don't infloop while reading.
 +
 +2010-09-27  Kenichi Handa  <handa@m17n.org>
 +
 +      These changes are to remove restriction on the number of glyphs in
 +      one composition.
 +
 +      * dispextern.h (struct glyph): Change the member "slice" to union.
 +      Remove u.cmp.from and u.cmp.to.  Give more bits to u.cmp.id.
 +      (GLYPH_SLICE_EQUAL_P): Adjust for the above change.
 +
 +      * dispnew.c (buffer_posn_from_coords): Use glyph->slice.img
 +      instead of glyph->slice.
 +      (marginal_area_string): Likewise.
 +
 +      * term.c (encode_terminal_code): Use glyph->slice.cmp instead of
 +      glyph->u.cmp.
 +      (append_composite_glyph): Likewise.
 +
 +      * xdisp.c (dump_glyph): Use glyph->slice.cmp instead of
 +      glyph->u.cmp.
 +      (fill_gstring_glyph_string, x_get_glyph_overhangs)
 +      (append_composite_glyph): Likewise.
 +      (fill_image_glyph_string): Use glyph->slice.img instead of
 +      glyph->slice.
 +      (append_glyph, produce_image_glyph, append_stretch_glyph)
 +      (note_mouse_highlight): Likewise.
 +
 +2010-09-26  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * process.c (add_keyboard_wait_descriptor)
 +      (delete_keyboard_wait_descriptor): Reinstate ifdef subprocesses.
 +      (wait_reading_process_output): Don't pass write_mask to select
 +      if SELECT_CANT_DO_WRITE_MASK is defined.
 +      (SELECT_CANT_DO_WRITE_MASK): Define if SELECT_CANT_DO_WRITE_MASK.
 +
 +      * process.h (add_read_fd, delete_read_fd, add_write_fd)
 +      (delete_write_fd): Declare.
 +
 +      * process.c (gpm_wait_mask, max_gpm_desc): Remove.
 +      (write_mask): New variable.
 +      (max_input_desc): Rename from max_keyboard_desc.
 +      (fd_callback_info): New variable.
 +      (add_read_fd, delete_read_fd, add_write_fd, delete_write_fd):
 +      New functions.
 +      (Fmake_network_process): FD_SET write_mask.
 +      (deactivate_process): FD_CLR write_mask.
 +      (wait_reading_process_output): Connecting renamed to Writeok.
 +      check_connect removed.  check_write is new.  Remove references to gpm.
 +      Use Writeok/check_write unconditionally (i.e. no #ifdef
 +      NON_BLOCKING_CONNECT) instead of Connecting.
 +      Loop over file descriptors and call callbacks in fd_callback_info
 +      if file descriptor is ready for I/O.
 +      (add_gpm_wait_descriptor): Just call add_keyboard_wait_descriptor.
 +      (delete_gpm_wait_descriptor): Just call delete_keyboard_wait_descriptor.
 +      (keyboard_bit_set): Use max_input_desc.
 +      (add_keyboard_wait_descriptor, delete_keyboard_wait_descriptor):
 +      Remove #ifdef subprocesses.  Use max_input_desc.
 +      (init_process): Initialize write_mask and fd_callback_info.
 +
 +      * keyboard.c (readable_events, gobble_input): Remove DBUS code.
 +
 +      * dbusbind.c: Include process.h.
 +      (dbus_fd_cb, xd_find_watch_fd, xd_toggle_watch)
 +      (xd_read_message_1): New functions.
 +      (xd_add_watch, xd_remove_watch): Call xd_find_watch_fd.
 +      Handle watch for both read and write.
 +      (Fdbus_init_bus): Also register xd_toggle_watch.
 +      (Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
 +      (Fdbus_method_error_internal, Fdbus_send_signal): Remove call
 +      to dbus_connection_flush.
 +      (xd_read_message): Move most of the code to xd_read_message_1.
 +      Call xd_read_message_1 until status is COMPLETE.
 +
 +2010-09-26  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * term.c: Do not include sys/ioctl.h, not needed.
 +      (init_tty): Reorder code to reduce the number of #ifdefs.
 +      No code changes.
 +
 +2010-09-26  Teodor Zlatanov  <tzz@lifelogs.com>
 +
 +      * process.h: Set up GnuTLS support.
 +
 +      * process.c (make_process, Fstart_process)
 +      (read_process_output, send_process): Set up GnuTLS support for
 +      process input/output file descriptors.
 +
 +      * gnutls.h: The GnuTLS glue for Emacs, macros and enums.
 +
 +      * gnutls.c: The source code for GnuTLS support in Emacs.
 +
 +      * emacs.c: Set up GnuTLS support and call syms_of_gnutls.
 +
 +      * config.in: Set up GnuTLS support.
 +
 +      * Makefile.in (LIBGNUTLS_LIBS, LIBGNUTLS_CFLAGS, ALL_CFLAGS)
 +      (obj, LIBES): Set up GnuTLS support.
 +
 +2010-09-26  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32.c (get_emacs_configuration_options): Fix previous change.
 +
 +2010-09-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * insdel.c (prepare_to_modify_buffer): Ensure the mark marker is
 +      alive before using it (Bug#6977).
 +
 +2010-09-25  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xdisp.c (face_before_or_after_it_pos): EMACS_INT/int fixup.
 +
 +      * dispextern.h: EMACS_INT/int fixup.
 +
 +      * xdisp.c (string_pos_nchars_ahead, init_iterator): EMACS_INT/int
 +      fixup.
 +
 +      * xrdb.c (magic_file_p): EMACS_INT/int fixup.
 +
 +2010-09-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * window.c (Fpos_visible_in_window_p, Fdelete_other_windows)
 +      (Fselect_window, window_scroll_pixel_based)
 +      (window_scroll_line_based, Frecenter, Fset_window_configuration):
 +      Use EMACS_INT for buffer positions.
 +
 +      * textprop.c (validate_interval_range, interval_of)
 +      (property_change_between_p, Fadd_text_properties)
 +      (set_text_properties_1, Fremove_text_properties)
 +      (Fremove_list_of_text_properties, Ftext_property_any)
 +      (Ftext_property_not_all, copy_text_properties)
 +      (text_property_list, extend_property_ranges)
 +      (verify_interval_modification): Use EMACS_INT for buffer
 +      positions.
 +
 +      * term.c (fast_find_position, term_mouse_highlight): Use EMACS_INT
 +      for buffer positions.
 +
 +      * process.c (read_process_output, send_process)
 +      (Fprocess_send_region, status_notify): Use EMACS_INT for buffer
 +      and string positions and size.
 +
 +      * print.c (print_object, print_string, strout): Use EMACS_INT for
 +      string indices.
 +
 +      * minibuf.c (string_to_object): Use EMACS_INT for string position
 +      and size.
 +
 +      * marker.c (verify_bytepos): Use EMACS_INT for buffer positions.
 +
 +      * lread.c <read_from_string_index, read_from_string_index_byte>
 +      <read_from_string_limit, readchar_count>: Define EMACS_INT.
 +      (readchar, unreadchar, read_internal_start): Use EMACS_INT for
 +      buffer positions and string length.
 +
 +      * keyboard.c <last_point_position, last_non_minibuf_size>: Declare
 +      EMACS_INT.
 +      (echo_truncate, adjust_point_for_property, read_char)
 +      (gen_help_event, make_lispy_event, modify_event_symbol)
 +      (Fexecute_extended_command, stuff_buffered_input): Use EMACS_INT
 +      for buffer positions and string length.
 +
 +      * keyboard.h (gen_help_event): Adjust prototype.
 +
 +      * termhooks.h <struct input_event>: Make `code' member EMACS_INT.
 +
 +      * commands.h <last_point_position>: Declare EMACS_INT.
 +
 +      * xdisp.c <help_echo_pos>: Define as EMACS_INT.
 +      (truncate_echo_area): Accept EMACS_INT argument.
 +
 +      * dispextern.h <help_echo_pos>: Declare EMACS_INT.
 +
 +      * lisp.h (truncate_echo_area): Adjust prototype.
 +
 +      * composite.c (composition_adjust_point): Return EMACS_INT.
 +
 +      * composite.h (composition_adjust_point): Adjust prototype.
 +
 +2010-09-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * process.c (Fmake_network_process): When arg :host is 'local,
 +      use address 127.0.0.1, not name "localhost".  (Bug#6781)
 +
 +2010-09-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * indent.c (Fcurrent_indentation, indented_beyond_p)
 +      (compute_motion): Use EMACS_INT for buffer position variables.
 +
 +      * lisp.h (indented_beyond_p): Adjust prototype.
 +
 +      * buffer.c (overlay_strings): Return EMACS_INT.
 +
 +      * buffer.h (overlay_strings): Adjust prototype.
 +
 +      * region-cache.c (pp_cache): Adjust format to arguments.
 +
 +      * eval.c <specpdl_size, lisp_eval_depth>: Declare EMACS_INT.
 +      (call_debugger): Use EMACS_INT for specpdl_size related variables.
 +      (verror): Use EMACS_INT for size of allocated buffer.
 +
 +      * keyboard.c (make_lispy_position): Use EMACS_INT for buffer
 +      positions.
 +
 +      * xdisp.c (redisplay_internal, try_window_id)
 +      (set_cursor_from_row, find_first_unchanged_at_end_row):
 +      Use EMACS_INT for buffer positions.
 +
 +      * dispextern.h (set_cursor_from_row): Adjust prototype.
 +
 +      * dispnew.c (increment_matrix_positions)
 +      (increment_row_positions, copy_glyph_row_contents)
 +      (mode_line_string, marginal_area_string): Use EMACS_INT for buffer
 +      positions.
 +
 +      * dispextern.h (mode_line_string, marginal_area_string)
 +      (increment_matrix_positions, increment_row_positions):
 +      Adjust prototypes.
 +
 +      * data.c (Faref, Faset): Use EMACS_INT for string length and
 +      positions.
 +
 +      * cmds.c (internal_self_insert): Use EMACS_INT for the count of
 +      characters to insert.
 +
 +      * ccl.c (Fccl_execute_on_string): Use EMACS_INT for string
 +      position and size.
 +
 +      * syntax.c (scan_words, update_syntax_table)
 +      (prev_char_comend_first, back_comment, skip_chars)
 +      (skip_syntaxes, Fforward_comment, Fbackward_prefix_chars):
 +      Use EMACS_INT for buffer and string positions.
 +
 +      * syntax.h (scan_words, update_syntax_table): Adjust prototypes.
 +
 +      * casefiddle.c (operate_on_word): Use EMACS_INT for buffer
 +      positions.
 +
 +2010-09-24  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * scroll.c (calculate_scrolling, line_ins_del)
 +      (calculate_direct_scrolling, scroll_cost): Fix EMACS_INT/int
 +      conversion.
 +
 +      * region-cache.c (move_cache_gap, set_cache_region, pp_cache)
 +      (region_cache_backward, region_cache_forward)
 +      (revalidate_region_cache, set_cache_region): FIX EMACS_INT/int
 +      conversion.
 +
 +      * xdisp.c (message_dolog): Fix EMACS_INT/int conversion.
 +
 +      * eval.c (verror): Fix EMACS_INT/int conversion.
 +
 +      * print.c (PRINTDECLARE, PRINTPREPARE, strout, print_string)
 +      (print_preprocess, print_check_string_charset_prop)
 +      (print_object): Fix EMACS_INT/int conversion.
 +
 +      * xdisp.c (message_dolog): Fix EMACS_INT/int conversion.
 +
 +2010-09-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * callproc.c (Fcall_process): Use EMACS_INT for count of
 +      characters read from the subprocess.
 +
 +      * bidi.c (struct bidi_paragraph_info): Use EMACS_INT for buffer
 +      positions.
 +      (bidi_cache_search, bidi_cache_find): Use EMACS_INT for buffer
 +      positions.
 +
 +      * buffer.c (struct sortvec): Use EMACS_INT for buffer positions.
 +      (struct sortstrlist, overlay_str_len): Use EMACS_INT for string
 +      length.
 +      (advance_to_char_boundary, Fset_buffer_multibyte)
 +      (overlays_at, overlays_in, mouse_face_overlay_overlaps)
 +      (overlay_touches_p, record_overlay_string, overlay_strings)
 +      (recenter_overlay_lists, fix_start_end_in_overlays)
 +      (modify_overlay, Fmove_overlay, report_overlay_modification)
 +      (evaporate_overlays): Use EMACS_INT for buffer positions.
 +
 +      * lisp.h (fix_start_end_in_overlays, overlay_touches_p):
 +      Adjust prototypes.
 +
 +      * dispextern.h (struct bidi_saved_info): Use EMACS_INT for buffer
 +      positions.
 +
 +      * fns.c (Fcompare_strings, Fstring_lessp, concat)
 +      (string_make_unibyte, Fstring_as_unibyte, Fsubstring)
 +      (Fsubstring_no_properties, substring_both, Ffillarray)
 +      (Fclear_string, mapcar1, Fmapconcat, Fmapcar, Fmapc)
 +      (Fbase64_encode_region, Fbase64_encode_string, base64_encode_1)
 +      (Fbase64_decode_region, Fbase64_decode_string, base64_decode_1)
 +      (Fmd5): Use EMACS_INT for buffer and string positions and length
 +      variables and arguments.
 +
 +      * lisp.h (substring_both): Adjust prototype.
 +
 +2010-09-24  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Remove W32 API function pointer unused since 2005-02-15 (revno 2005-02-15T23:19:26Z!jasonr@gnu.org).
 +      * w32fns.c (clipboard_sequence_fn): Don't declare.
 +      (globals_of_w32fns): Don't initialize it.
 +
 +2010-09-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * syntax.c (back_comment): Detect the case where a 1-char comment
 +      starter is also the 2nd char of a 2-char comment ender.
 +
 +2010-09-23  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_tool_bar_menu_proxy): Set gtk-menu-items to TRUE.
 +
 +2010-09-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * eval.c (verror): EMACS_INT/int cleanup.
 +
 +      * lisp.h (SPECPDL_INDEX): Cast to int, since we're not going to
 +      unwind_protect more than 2GB worth of functions.
 +
 +      * editfns.c (Finsert_char): EMACS_INT/int cleanup.
 +
 +      * lisp.h: Have oblookup take EMACS_INT to allow interning big
 +      string and avoid compiler warnings.
 +      (USE_SAFE_ALLOCA): Cast to int to avoid compilation warnings in
 +      all users.
 +
 +      * lread.c (oblookup): EMACS_INT/int cleanup.
 +
 +      * cmds.c (Fforward_line, Fdelete_char): EMACS_INT/int cleanup.
 +
 +2010-09-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * editfns.c (clip_to_bounds): Return an EMACS_INT value.
 +
 +      * lisp.h (clip_to_bounds): Adjust prototype.
 +
 +      * intervals.c (adjust_for_invis_intang): Return EMACS_INT value.
 +
 +2010-09-23  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * lisp.h: doprnt.c EMACS_INT/int cleanup.
 +
 +      * doprnt.c (doprnt): EMACS_INT/int cleanup.
 +
 +      * doc.c (Fsnarf_documentation, get_doc_string): EMACS_INT/int
 +      cleanup.
 +
 +      * lisp.h: Change the definition of all marker.c functions that
 +      take and return buffer stuff to be EMACS_INT instead of int.
 +
 +      * marker.c (buf_charpos_to_bytepos, CONSIDER, set_marker_both)
 +      (buf_charpos_to_bytepos, bytepos_to_charpos)
 +      (buf_bytepos_to_charpos, Fbuffer_has_markers_at)
 +      (set_marker_restricted, set_marker_both): Convert int to EMACS_INT
 +      for all buffer positions.
 +
 +2010-09-23  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * intervals.c (traverse_intervals, rotate_right, rotate_left)
 +      (split_interval_right, find_interval, next_interval)
 +      (delete_node, delete_interval, interval_deletion_adjustment)
 +      (adjust_intervals_for_deletion, merge_interval_right)
 +      (merge_interval_left, graft_intervals_into_buffer)
 +      (copy_intervals): Convert EMACS_UINTs to EMACS_INT.
 +
 +      * intervals.h (traverse_intervals): Update prototype.
 +
 +2010-09-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * indent.c (compute_motion): Use EMACS_INT for arguments to
 +      region_cache_forward.
 +
 +      * region-cache.c (struct boundary, struct region_cache):
 +      Use EMACS_INT for positions.
 +      (find_cache_boundary, move_cache_gap, insert_cache_boundary)
 +      (delete_cache_boundaries, set_cache_region)
 +      (invalidate_region_cache, know_region_cache)
 +      (region_cache_forward, region_cache_backward, pp_cache):
 +      Use EMACS_INT for buffer positions.
 +
 +      * region-cache.h (know_region_cache, invalidate_region_cache)
 +      (region_cache_forward, region_cache_backward): Adjust prototypes.
 +
 +      * search.c (string_match_1, fast_c_string_match_ignore_case)
 +      (looking_at_1, scan_buffer, scan_newline)
 +      (find_next_newline_no_quit, find_before_next_newline)
 +      (search_command, trivial_regexp_p, search_buffer, simple_search)
 +      (boyer_moore, wordify, Freplace_match): Use EMACS_INT for buffer
 +      and string positions and length.
 +
 +      * lisp.h (scan_buffer, scan_newline, find_next_newline_no_quit)
 +      (find_before_next_newline): Adjust prototypes.
 +
 +      * editfns.c (transpose_markers, update_buffer_properties)
 +      (buildmark, clip_to_bounds, Fgoto_char, overlays_around)
 +      (get_pos_property, Fconstrain_to_field)
 +      (Fline_beginning_position, Fline_end_position, Fprevious_char)
 +      (Fchar_after, Fchar_before, Finsert_char)
 +      (Finsert_buffer_substring, Fcompare_buffer_substrings)
 +      (Fsubst_char_in_region, Fformat, Ftranspose_regions):
 +      Use EMACS_INT for buffer and string position variables.
 +      (Finsert_char): Protect against too large insertions.
 +
 +      * lisp.h (clip_to_bounds): Adjust prototype.
 +
 +      * intervals.c (traverse_intervals, rotate_right, rotate_left)
 +      (balance_an_interval, split_interval_right, split_interval_left)
 +      (find_interval, next_interval, update_interval)
 +      (adjust_intervals_for_insertion, delete_node, delete_interval)
 +      (interval_deletion_adjustment, adjust_intervals_for_deletion)
 +      (offset_intervals, merge_interval_right, merge_interval_left)
 +      (graft_intervals_into_buffer, adjust_for_invis_intang)
 +      (move_if_not_intangible, get_local_map, copy_intervals)
 +      (copy_intervals_to_string, compare_string_intervals)
 +      (set_intervals_multibyte_1): Use EMACS_INT for buffer positions
 +      and for interval tree size.
 +
 +      * intervals.h (traverse_intervals, split_interval_right)
 +      (split_interval_left, find_interval, offset_intervals)
 +      (graft_intervals_into_buffer, copy_intervals)
 +      (copy_intervals_to_string, move_if_not_intangible, get_local_map)
 +      (update_interval): Adjust prototypes.
 +
 +      * xdisp.c (check_point_in_composition, reconsider_clip_changes):
 +      Use EMACS_INT for buffer position variables and arguments.
 +
 +      * composite.c (get_composition_id, find_composition)
 +      (run_composition_function, compose_text)
 +      (composition_gstring_width, autocmp_chars)
 +      (composition_update_it, Ffind_composition_internal): Use EMACS_INT
 +      for buffer positions and string length variables and arguments.
 +
 +      * composite.h (get_composition_id, find_composition, compose_text)
 +      (composition_gstring_width): Adjust prototypes.
 +
 +      * editfns.c (Fformat): Use EMACS_INT for string size variables.
 +
 +      * xdisp.c (store_mode_line_noprop, display_mode_element):
 +      Use EMACS_INT for string positions.
 +
 +      * intervals.c (get_property_and_range): Use EMACS_INT for buffer
 +      position arguments.
 +
 +      * intervals.h (get_property_and_range): Adjust prototype.
 +
 +      * character.c (parse_str_as_multibyte, str_as_multibyte)
 +      (parse_str_to_multibyte, str_to_multibyte, str_as_unibyte)
 +      (string_count_byte8, string_escape_byte8, c_string_width)
 +      (strwidth, lisp_string_width, multibyte_chars_in_text):
 +      Use EMACS_INT for string length variables and arguments.
 +
 +      * character.h (parse_str_as_multibyte, str_as_multibyte)
 +      (parse_str_to_multibyte, str_to_multibyte, str_as_unibyte)
 +      (c_string_width, strwidth, lisp_string_width):
 +      Adjust prototypes.
 +
 +      * font.c (font_intern_prop): Use EMACS_INT for string length
 +      variables.
 +
 +      * font.c (font_intern_prop): Use EMACS_INT for string length
 +      variables.
 +
 +      * fns.c (Fstring_as_multibyte): Use EMACS_INT for string length
 +      variables.
 +
 +      * alloc.c <total_string_size>: Declare as EMACS_INT, not int.
 +      (Fmake_string): Protect against too large strings.
 +      (live_string_p, live_cons_p, live_symbol_p, live_float_p)
 +      (live_misc_p): Use ptrdiff_t instead of int for pointer
 +      differences.
 +      (string_bytes, check_sblock, check_string_free_list)
 +      (allocate_string_data, compact_small_strings, Fmake_string)
 +      (Fmake_bool_vector, make_string, make_unibyte_string)
 +      (make_multibyte_string, make_string_from_bytes)
 +      (make_specified_string_string, Fmake_list, Fmake_vector):
 +      Use EMACS_INT for string length variables and arguments.
 +      (find_string_data_in_pure, make_pure_string, make_pure_c_string)
 +      (Fpurecopy): Use EMACS_INT for string size.
 +      (mark_vectorlike, mark_char_table, mark_object): Use EMACS_UINT
 +      for vector size.
 +
 +      * lisp.h (make_string, make_unibyte_string, make_multibyte_string)
 +      (make_string_from_bytes, make_specified_string_string)
 +      (make_pure_string, string_bytes, check_point_in_composition):
 +      Adjust prototypes.
 +
 +2010-09-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * editfns.c (Fsubst_char_in_region, Ftranslate_region_internal)
 +      (check_translation): Use EMACS_INT for buffer positions and
 +      length.
 +
 +      * undo.c (record_marker_adjustment, record_delete)
 +      (record_change, record_point, record_insert)
 +      (record_property_change, Fprimitive_undo): Use EMACS_INT for
 +      buffer positions.
 +
 +      * lisp.h (record_marker_adjustment, record_delete)
 +      (record_change, record_point, record_insert)
 +      (record_property_change, Fprimitive_undo): Adjust prototypes.
 +
 +2010-09-22  Juanma Barranquero  <lekktu@gmail.com>
 +            Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (get_emacs_configuration_options): Fix buffer overrun.
 +
 +2010-09-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * minibuf.c (Fminibuffer_contents)
 +      (Fminibuffer_contents_no_properties)
 +      (Fminibuffer_completion_contents): Use EMACS_INT for minibuffer
 +      positions.
 +
 +      * keyboard.c (command_loop_1): Use EMACS_INT to compare point with
 +      mark.
 +
 +      * alloc.c (make_uninit_string, make_uninit_multibyte_string)
 +      (allocate_string_data): Accept EMACS_INT for string length.
 +
 +      * editfns.c (Ffield_string, Ffield_string_no_properties)
 +      (make_buffer_string, make_buffer_string_both, Fbuffer_substring)
 +      (Fbuffer_substring_no_properties, find_field, Fdelete_field)
 +      (Ffield_string, Ffield_string_no_properties, Ffield_beginning)
 +      (Ffield_end): Use EMACS_INT for buffer positions.
 +
 +      * insdel.c (prepare_to_modify_buffer): Use EMACS_INT to compare
 +      point with mark.
 +
 +      * lisp.h (allocate_string_data, make_uninit_string)
 +      (make_uninit_multibyte_string, make_buffer_string)
 +      (make_buffer_string_both): Adjust prototypes.
 +
 +2010-09-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xml.c: Switch to GNU indentation.
 +      (make_dom): Change parse tree format to match xml.el.
 +      (Fxml_parse_html_string_internal): Rename from html-parse-string.
 +      (Fxml_parse_string_internal): Rename from xml-parse-string.
 +
 +2010-09-22  Kenichi Handa  <handa@m17n.org>
 +
 +      * xdisp.c (compute_stop_pos): Call composition_compute_stop_pos
 +      only if we are not at a composition.
 +      (set_iterator_to_next): Give it->end_charpos to
 +      composition_compute_stop_pos.
 +      (set_iterator_to_next, next_element_from_buffer): Likewise.
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix position when the
 +      current display element is a grapheme cluster in bidi-reordered
 +      region.
 +
 +2010-09-21  Ari Roponen  <ari.roponen@gmail.com>  (tiny change)
 +
 +      * doc.c (Fsnarf_documentation): Use memmove instead of memcpy as
 +      the regions may overlap.
 +
 +2010-09-21  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/sysdep.$(O)): Update dependencies.
 +
 +2010-09-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * emacs.c: Do not include sys/ioctl.h, not needed.
 +
 +      * doprnt.c: Do not include stdlib.h, config.h does it.
 +      Move #include before macro definition.
 +
 +2010-09-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (temacs): Link using $(CC) not $(LD).
 +      (LD_FIRSTFLAG): Define using autoconf.
 +      (LD): Remove.
 +
 +      Remove HAVE_TERMIOS definitions.
 +      * s/usg5-4-common.h (HAVE_TERMIOS):
 +      * s/template.h (HAVE_TERMIOS):
 +      * s/gnu-linux.h (HAVE_TERMIOS):
 +      * s/darwin.h (HAVE_TERMIOS):
 +      * s/cygwin.h (HAVE_TERMIOS):
 +      * s/bsd-common.h (HAVE_TERMIOS):
 +      * s/aix4-2.h (HAVE_TERMIOS):
 +      * s/hpux10-20.h (HAVE_TERMIOS): Do not define, it is assumed
 +      defined on all non-MS platforms.
 +      (HAVE_PSTAT_GETDYNAMIC): Do not define, autoconf does it.
 +
 +      * xterm.c (xt_action_hook): Use const.
 +
 +2010-09-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Don't make W32 code conditional on HAVE_SOCKETS, it's always defined.
 +      * w32.c: Remove top-level uses of #ifdef HAVE_SOCKETS.
 +      (gethostname) [!HAVE_SOCKETS]: Remove.
 +      (SOCK_REPLACE_HANDLE): Remove macro.
 +      (socket_to_fd, sys_close, _sys_read_ahead, sys_read, sys_write)
 +      (term_ntproc, init_ntproc): Don't conditionalize on HAVE_SOCKETS.
 +      * w32proc.c: Remove top-level uses of #ifdef HAVE_SOCKETS.
 +      (syms_of_ntproc): Don't conditionalize on HAVE_SOCKETS.
 +
 +2010-09-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * deps.mk (xml.o): Add dependencies.
 +
 +      * xdisp.c (Fcurrent_bidi_paragraph_direction):
 +      Call bidi_paragraph_init with NO_DEFAULT_P non-zero.  (Bug#7038)
 +
 +      * bidi.c (bidi_paragraph_init): Accept an additional argument
 +      NO_DEFAULT_P; all callers changed.  If NO_DEFAULT_P is non-zero,
 +      search back until a paragraph with a strong directional character
 +      is found, and use that to determine paragraph's base direction.
 +
 +      * dispextern.h (bidi_paragraph_init): Update prototype.
 +
 +2010-09-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (_PROCESS_MEMORY_COUNTERS_EX): Don't define with versions
 +      of w32api >= 3.15.  (Bug#6989)
 +
 +2010-09-17  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * process.c (wait_reading_process_output): Don't message about
 +      accept-process-output unless the time limit really is zero.
 +
 +2010-09-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * frame.c (Ftool_bar_pixel_width): YAILOM (Yet another
 +      int/Lisp_Object mixup).
 +
 +2010-09-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * keyboard.c (parse_tool_bar_item): For QClabel, set TOOL_BAR_ITEM_LABEL
 +      not HELP.
 +
 +2010-09-17  Stephen Berman  <stephen.berman@gmx.net>
 +
 +      * frame.c (Ftool_bar_pixel_width): New function to expose tool
 +      bar's pixel width to Lisp (Bug#7048).
 +
 +2010-09-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * cmds.c (syms_of_cmds) <post-self-insert-hook>: Fix typos in docstring.
 +
 +2010-09-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_pack_tool_bar): Call gtk_handle_box_set_handle_position
 +      with argument top/left if tool bar is vertical/horizontal (Bug#7051).
 +
 +2010-09-17  Kenichi Handa  <handa@m17n.org>
 +
 +      * ftfont.c (ftfont_check_otf): Fix previous change.
 +
 +2010-09-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * ftfont.c (ftfont_check_otf): Fix the case of checking just
 +      existence of GSUB or GPOS.
 +
 +2010-09-14  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * cmds.c (syms_of_cmds) <post-self-insert-hook>: Fix typos in docstring.
 +
 +2010-09-14  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c (parse_buffer): Rename to parse_string(), since that's
 +      what it does.
 +      (parse_string): Return nil when the document can't be parsed.
 +
 +2010-09-14  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (get_current_vm_state): New function.
 +      (do_ewmh_fullscreen): Call get_current_vm_state and compare with
 +      want_fullscreen so set_wm_state calls are few (Bug#7013).
 +      (x_handle_net_wm_state): Move code to get_current_vm_state and
 +      call that function.
 +
 +2010-09-14  Courtney Bane  <emacs-bugs-7626@cbane.org>  (tiny change)
 +
 +      * term.c (tty_set_terminal_modes): Don't initialize twice (bug#7002).
 +
 +2010-09-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * coding.c (encode_coding_iso_2022): Don't optimize for ASCII if
 +      we may use designation or locking-shift.
 +
 +2010-09-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * coding.c (detect_coding_emacs_mule): Fix checking of multibyte
 +      sequence when the source is multibyte.
 +
 +2010-09-14  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * xml.c (Fxml_parse_string, Fxml_parse_string): Revert last change.
 +      Don't make first argument optional.  Doc fix.
 +
 +2010-09-14  Leo  <sdl.web@gmail.com>  (tiny change)
 +
 +      * xml.c (Fxml_parse_string, Fhtml_parse_string): Fix up the
 +      parameters for the doc string.
 +
 +2010-09-12  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c (Fhtml_parse_string, Fxml_parse_string): Mention BASE-URL.
 +
 +2010-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * fns.c (Fy_or_n_p): Move to lisp/subr.el.
 +      (syms_of_fns): Don't defsubr Sy_or_n_p.
 +      * lisp.h: Don't declare Fy_or_n_p.
 +      * fileio.c (barf_or_query_if_file_exists): Fy_or_n_p -> y-or-n-p.
 +
 +2010-09-09  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c (Fxml_parse_buffer): New function to parse XML files.
 +
 +2010-09-08  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 +
 +      * xml.c: New file.
 +      (Fhtml_parse_buffer): New function to interface to the libxml2
 +      html parsing function.
 +
 +2010-09-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * biditype.h: Regenerate.
 +
 +2010-09-04  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * nsimage.m (ns_load_image): Check argument types.
 +
 +      * image.c: Remove all uses of gcpro.
 +      (xpm_load): Check all lisp types.
 +      (pbm_load): Likewise.
 +      (png_load): Likewise.
 +      (jpeg_load): Likewise.
 +      (tiff_load): Likewise.
 +      (gif_load): Likewise.
 +      (imagemagick_load_image): Likewise.
 +      (imagemagick_load): Likewise.
 +      (svg_load): Likewise.
 +      (gs_load): Likewise.
 +
 +2010-09-04  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32uniscribe.c (uniscribe_shape): Update commentary.
 +      Don't try to reorder grapheme clusters, since LGSTRING should always
 +      hold them in the logical order.
 +      (uniscribe_encode_char, uniscribe_shape): Force ScriptShape to
 +      return glyph codes in the logical order.
 +
 +2010-09-04  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * image.c (imagemagick_image_p): Replace bcopy by memcpy.
 +      (imagemagick_load_image): Fix type mismatch.
 +      (Fimagemagick_types): Likewise.  Doc fix.
 +
 +2010-09-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.h (struct dpyinfo): Remove cut_buffers_initialized.
 +
 +      * xterm.c (x_term_init): Don't set dpyinfo->cut_buffers_initialized.
 +
 +      * xselect.c: Remove declaration of cut-buffer objects and functions.
 +      (symbol_to_x_atom): Remove mapping to XA_CUT_BUFFERn.
 +      (x_atom_to_symbol): Remove mapping to QCUT_BUFFERn.
 +      (Fx_get_cut_buffer_internal, Fx_store_cut_buffer_internal)
 +      (Fx_rotate_cut_buffers_internal): Remove.
 +      (syms_of_xselect): Remove defsubr of above.
 +      Remove intern of QCUT_BUFFERn.
 +
 +2010-09-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * cmds.c (Vblink_paren_function): Remove.
 +      (internal_self_insert): Make it insert N chars at a time.
 +      Don't call blink-paren-function.
 +      (Fself_insert_command): Adjust accordingly.
 +      (syms_of_cmds): Don't declare blink-paren-function.
 +
 +2010-08-31  Kenichi Handa  <handa@m17n.org>
 +
 +      * dispextern.h (FACE_FOR_CHAR): Use an ASCII face for 8-bit
 +      characters.
 +
 +      * term.c (encode_terminal_code): Fix the previous change.
 +      (produce_glyphs): Don't set it->char_to_display here.
 +      Don't handle unibyte-display-via-language-environment here.
 +      (produce_special_glyphs): Set temp_it.char_to_display before
 +      calling produce_glyphs.
 +
 +      * xdisp.c (get_next_display_element): Set it->char_to_display
 +      here.  Convert all 8-bit bytes from unibyte buffer/string to 8-bit
 +      characters.
 +      (get_overlay_arrow_glyph_row): Set it.char_to_display too before
 +      calling PRODUCE_GLYPHS.
 +      (append_space_for_newline): Save and store it->char_to_display.
 +      Set it->char_to_display before calling PRODUCE_GLYPHS.
 +      (extend_face_to_end_of_line): Set it->char_to_display before
 +      calling PRODUCE_GLYPHS.
 +      (get_glyph_face_and_encoding): Set the glyph code an 8-bit
 +      character to its byte value.
 +      (get_char_glyph_code): New function.
 +      (produce_stretch_glyph): Set it2.char_to_display too before
 +      calling x_produce_glyphs.
 +      (x_produce_glyphs): Simplify by using the same code for ASCII and
 +      non-ASCII characters.  Don't set it->char_to_display here.
 +      Don't handle unibyte-display-via-language-environment here.  For a
 +      character of no glyph, use font->space_width instead of FONT_WIDTH.
 +
 +2010-08-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keyboard.c (Fwindow_system): Fix compilation for USE_LISP_UNION_TYPE.
 +
 +2010-08-31  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (command_loop_1): Don't call x-set-selection on tty.
 +
 +2010-08-30  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * marker.c (Fcopy_marker): Make the first arg optional.
 +
 +2010-08-30  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.c (composition_update_it): Fix computing of
 +      cmp_it->width.
 +
 +2010-08-29  Kenichi Handa  <handa@m17n.org>
 +
 +      * term.c (encode_terminal_code): Encode byte chars to the
 +      corresponding bytes.
 +
 +2010-08-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_draw_window_cursor): Draw BAR_CURSOR correct for R2L.
 +
 +2010-08-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * xdisp.c (compute_stop_pos): Pay attention to bidi scan direction
 +      on calling composition_compute_stop_pos.
 +
 +2010-08-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * fontset.c (reorder_font_vector): Prefer a font-spec specifying
 +      :otf.
 +
 +      * composite.c (composition_compute_stop_pos): Don't break
 +      composition at PT.
 +      (composition_reseat_it): Likewise.  Fix calculation of character
 +      position starting a composition.
 +      (Fcomposition_get_gstring): Don't limit the number of components
 +      for automatic composition.
 +
 +2010-08-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.c (composition_compute_stop_pos): In forward search,
 +      pay attention to the possibility that some character after ENDPOS
 +      will be composed with charactrs before ENDPOS.
 +
 +2010-08-24  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (command_loop_1): Don't clobber primary selection
 +      during handle-switch-frame (Bug#6872).
 +
 +2010-08-23  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c: Accept UNIX domain sockets as bus address.
 +      (Fdbus_close_bus): New function.
 +      (Vdbus_registered_buses): New variable.
 +      (xd_initialize): Implement string as bus address.
 +      (Fdbus_init_bus): Add bus to Vdbus_registered_buses).
 +      (Fdbus_get_unique_name, Fdbus_call_method)
 +      (Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
 +      (Fdbus_method_error_internal, Fdbus_send_signal)
 +      (Fdbus_register_signal, Fdbus_register_method): Remove bus type
 +      check.  This is done in xd_initialize_bus.  Adapt doc string, if
 +      necessary.
 +      (xd_pending_messages, xd_read_queued_messages): Loop over buses in
 +      Vdbus_registered_buses.
 +      (Vdbus_registered_objects_table): Create hash.
 +
 +2010-08-22  Juri Linkov  <juri@jurta.org>
 +
 +      * keyboard.c (Fexecute_extended_command): Move reading a command name
 +      with `completing-read' to a new Elisp function `read-extended-command'.
 +      Call it to read a command to `function'  (bug#5364, bug#5214).
 +
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * emacs.c (main): Remove handling of --unibyte arg (Bug#6886).
 +
 +2010-08-22  Andreas Schwab  <schwab@linux-m68k.org>
  
        * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA_LISP
        instead of SAFE_ALLOCA.
  
 -2010-08-17  Chong Yidong  <cyd@stupidchicken.com>
 +2010-08-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA
 +      (Bug#6214).
 +
 +2010-08-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * doc.c (Fsnarf_documentation): Set skip_file only if p[1] is S.
 +
 +2010-08-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * doc.c (Fsnarf_documentation): Initialize skip_file before
 +      build-files test.
 +
 +2010-08-22  Peter O'Gorman  <pogma@thewrittenword.com>  (tiny change)
 +
 +      * s/hpux10-20.h (HAVE_TERMIOS, NO_TERMIO, ORDINARY_LINK):
 +      New definitions.
 +      (HAVE_TERMIO): Remove.
 +
 +2010-08-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * deps.mk (sysdep.o, msdos.o): Depend on sysselect.h.
 +
 +      * sysselect.h [WINDOWSNT]: Don't define the FD_* and select stuff
 +      for w32.
 +
 +      * s/ms-w32.h (HAVE_SYS_TIMEB_H): Don't #undef HAVE_SYS_SELECT_H,
 +      it's done in nt/config.nt.
 +
 +      * makefile.w32-in ($(BLD)/sysdep.$(O)): Depend on sysselect.h.
 +
 +      * unexcoff.c (report_error, make_hdr, write_segment)
 +      (copy_text_and_data, copy_sym, mark_x, adjust_lnnoptrs, unexec):
 +      Convert argument lists and prototypes to ANSI C.
 +      (make_hdr, write_segment): Remove unused variables.
 +      (unexec): Remove commented-out line.  Initialize `new' to shut up
 +      compiler warnings.
 +
 +2010-08-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Simplify termio code.
 +      All non-MSDOS non-WINDOWSNT platforms define HAVE_TERMIOS, so
 +      HAVE_TERMIO code is obsolete.
 +      Replace HAVE_TERMIOS conditionals with !DOS_NT.
 +      * systty.h: Do not define HAVE_TCATTR.
 +      Remove HAVE_TERMIO, HAVE_LTCHARS and HAVE_TCHARS code.
 +      Do not define EMACS_HAVE_TTY_PGRP.  Only define
 +      EMACS_GET_TTY_PGRP for !DOS_NT.
 +      * sysdep.c: Include sysselect.h unconditionally.  Do not include
 +      sys/ioctl.h and termios.h, systty.h does it.
 +      Use HAVE_SYS_UTSNAME_H instead of USG as an include guard.
 +      (init_baud_rate): Remove HAVE_TERMIO code.
 +      (child_setup_tty): Remove HAVE_TERMIO code.
 +      (emacs_get_tty, emacs_set_tty): Remove HAVE_TERMIO, HAVE_TCHARS
 +      and HAVE_LTCHARS code.  Use !DOS_NT instead of HAVE_TCATTR.
 +      (new_ltchars, new_tchars): Remove, unused.
 +      (init_sys_modes): Remove HAVE_TERMIO, HAVE_TCHARS and HAVE_LTCHARS
 +      code.  Remove special casing for __mips__, it was a no-op.
 +      Remove HAVE_TCATTR conditional, it is implied by HAVE_TERMIOS.
 +      (init_sys_modes): Remove HPUX special case.
 +      * process.c: Include stdlib.h unconditionally.  Do not include
 +      fcntl.h, systty.h does it.  Remove conditional code for
 +      HAVE_SERIAL, it is always true.
 +      (process_send_signal): Remove HAVE_TERMIOS conditional, it's
 +      always true when SIGNALS_VIA_CHARACTERS is true.
 +      (Fcontinue_process, Fprocess_send_eof): Simplify conditionals:
 +      !WINDOWSNT means HAVE_TERMIOS.
 +      (create_process): Remove HAVE_TERMIOS, it's inside a HAVE_PTYS
 +      conditional, which is true for all HAVE_TERMIOS systems.
 +      * keyboard.c (init_keyboard): Do not use HAVE_TERMIO, use !DOS_NT
 +      instead of HAVE_TERMIOS.
 +      * emacs.c (shut_down_emacs): Use !defined DOS_NT instead of
 +      EMACS_HAVE_TTY_PGRP.
 +      * callproc.c (child_setup): Move EMACS_SET_TTY_PGRP use to the
 +      non-MSDOS, non-WINDOWSNT code, it's only defined for such systems
 +      anyway.
 +
 +2010-08-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix off-by-one error in
 +      mirroring pixel positions.
 +
 +2010-08-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * alloc.c (malloc_sbrk_used, malloc_sbrk_unused): Remove,
 +      write only.
 +      (init_alloc_once): Remove writes to malloc_sbrk_unused, and
 +      malloc_sbrk_used, nothing uses them.
 +
 +      * puresize.h: Remove code assuming PNTR_COMPARISON_TYPE is not
 +      defined, unconditionally defined in lisp.h.
 +
 +      * term.c: Do not include <termios.h>, systty.h does it.
 +
 +      * s/unixware.h (HAVE_TCATTR):
 +      * s/aix4-2.h (HAVE_TCATTR): Remove definitions, not needed.
 +      systty.h defines it when HAVE_TERMIOS is defined.
 +
 +2010-08-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix last change for text
 +      terminals: add one-character offset for R2L lines.
 +
 +      * emacs.c <emacs_version>: Add a comment regarding
 +      msdos/mainmake.v2's dependency on the syntax of this declaration.
 +
 +2010-08-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (buffer_posn_from_coords): Fix calculation of buffer
 +      position for R2L lines by mirroring the pixel position wrt the
 +      text are box.  Improve commentary.
 +
 +2010-08-20  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * image.c (imagemagick_clear_image): Remove debugging output.
 +
 +2010-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * cmds.c (Vself_insert_face, Vself_insert_face_command): Remove.
 +      (Qpost_self_insert_hook, Vpost_self_insert_hook): New vars.
 +      (internal_self_insert): Run Qpost_self_insert_hook rather than handle
 +      self-insert-face.
 +      (syms_of_cmds): Initialize the new vars.
 +
 +2010-08-19  Jason Rumney  <jasonr@gnu.org>
 +
 +      * w32menu.c (set_frame_menubar): Remove call to undefined function.
 +
 +      * w32fns.c (w32_wnd_proc): Don't check context before initializing.
 +
 +2010-08-19  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsselect.m (nxatoms_of_nsselect): Use "Selection" and "Secondary".
 +
 +2010-08-18  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xterm.c (x_draw_bar_cursor):
 +      * w32term.c (x_draw_bar_cursor): If the character under cursor is
 +      R2L, draw the bar cursor on its right rather than on its left.
 +
 +2010-08-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (Fdefmacro): Only obey one declaration.
 +
 +      * casefiddle.c (casify_region): Setup gl_state.
 +
 +2010-08-18  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsterm.m (ns_define_frame_cursor): Call x_update_cursor (Bug#6868).
 +
 +2010-08-18  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (update_frame_tool_bar): Literal strings are const char*.
 +
 +2010-08-18  David De La Harpe Golden  <david@harpegolden.net>
 +
 +      * nsselect.m (QCLIPBOARD, NXPrimaryPboard): Define.
 +      (symbol_to_nsstring): Map QCLIPBOARD => NSGeneralPboard,
 +      QPRIMARY => NXPrimaryPboard.
 +      (ns_string_to_symbol): NSGeneralPboard => QCLIPBOARD,
 +      NXPrimaryPboard => QPRIMARY.
 +      (nxatoms_of_nsselect): NXPrimaryPboard = PrimarySelection,
 +      NXSecondaryPboard = SecondarySelection.
 +      (syms_of_nsselect): Intern QCLIPBOARD (Bug#6677).
 +
 +2010-08-18  Joakim Verona  <joakim@verona.se>
 +
 +      * image.c: Add support for ImageMagick.  When HAVE_IMAGEMAGICK is
 +      defined:
 +      (imagemagick_image_p): New function to test for ImageMagic image.
 +      (imagemagick_load): New function to load ImageMagick image.
 +      (imagemagick_load_image): New function, helper for imagemagick_load.
 +      (imagemagick-types): New function.
 +      (Qimagemagick): New Lisp_object.
 +      (imagemagick-render-type): New variable, decides which renderer to use.
 +
 +2010-08-17  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * gtkutil.c (update_frame_tool_bar): Don't assume TOOL_BAR_ITEM_LABEL
 +      is a string.
 +
 +2010-08-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfns.m (ns_frame_parm_handlers): Add a slot for the
 +      x_set_tool_bar_position handler.
 +
 +2010-08-17  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c <w32_frame_parm_handlers>: Add a slot for the
 +      x_set_tool_bar_position handler, needed to support changes from
 +      2010-07-29T16:49:59Z!jan.h.d@swipnet.se for positioning the tool bar.  (Bug#6796)
 +
 +2010-08-16  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsselect.m: Include keyboard.h for QPRIMARY, remove its
 +      declaration (Bug#6863).
 +      (syms_of_nsselect): Don't intern QPRIMARY.
 +
 +      * xselect.c: Remove declaration of QPRIMARY (Bug#6864).
 +
 +      * keyboard.h (QPRIMARY): Declare (Bug#6864).
 +
 +2010-08-16  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (command_loop_1): Avoid setting selection twice,
 +      since it's done in deactivate-mark as well.
 +      (Vselect_active_regions): Change default to t.  Replace `lazy'
 +      with non-default value `only', meaning only set PRIMARY for
 +      temporarily active regions.
 +
 +      * insdel.c (prepare_to_modify_buffer): Handle `only' value of
 +      select-active-regions.
 +
 +2010-08-15  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * keyboard.c (parse_tool_bar_item): Put in a bad label if :label
 +      isn't a string.
 +
 +2010-08-15  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * keyboard.c (parse_tool_bar_item): Avoid excessive use of strlen.
 +
 +2010-08-15  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * keyboard.c (parse_tool_bar_item): malloc buf.
 +      Set TOOL_BAR_ITEM_LABEL to empty string if not set to
 +      new_lbl (Bug#6855).
 +
 +2010-08-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xterm.c (x_draw_stretch_glyph_string):
 +      * w32term.c (x_draw_stretch_glyph_string): In R2L rows, display
 +      the cursor on the right edge of the stretch glyph.
 +
 +      * xdisp.c (window_box_right_offset, window_box_right):
 +      Fix commentary.
 +
 +      * xdisp.c (Fcurrent_bidi_paragraph_direction): Fix paragraph
 +      direction when point is inside a run of whitespace characters.
 +
 +      * bidi.c (bidi_at_paragraph_end): Remove obsolete comment.
 +
 +2010-08-14  Jason Rumney  <jasonr@gnu.org>
 +
 +      * keyboard.c (lispy_function_keys): Do not define VK_PACKET (bug#4836)
 +
 +2010-08-14  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fns.c (Fmake_hash_table): Doc fix (Bug#6851).
 +
 +2010-08-13  Jason Rumney  <jasonr@gnu.org>
 +
 +      * w32menu.c (simple_dialog_show): Use unicode message box if available.
 +      (MessageBoxW_Proc): New function typedef.
 +      (unicode-message-box): New function pointer.
 +      (globals_of_w32menu): Import it from user32.dll.  (Bug#5629)
 +
 +2010-08-13  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * frame.h (Qtool_bar_position): Declare.
 +
 +      * xfns.c (Fx_create_frame): Call x_default_parameter for
 +      Qtool_bar_position.
 +
 +2010-08-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * unexcoff.c: Remove the parts used when "emacs" is not defined.
 +      (report_error, report_error_1): Ditto.
 +      (write_segment): Remove "#if 0" unused code.
 +      (make_hdr): Remove code that was "#ifndef NO_REMAP" before
 +      NO_REMAP was removed (in 2010-07-29T03:25:08Z!dann@ics.uci.edu).
 +      (start_of_text): Remove unused function (was used only if NO_REMAP
 +      was NOT defined).
 +
 +      * msdos.c (IT_set_face): Fix format string to match argument
 +      types.
 +      (IT_write_glyphs, IT_note_mode_line_highlight)
 +      (IT_set_frame_parameters): Remove unused variables.
 +      (x_set_menu_bar_lines): Declare set_menu_bar_lines.
 +      (IT_set_terminal_modes): Disambiguate expression in if clause.
 +      (Fmsdos_remember_default_colors): Return Qnil.
 +      (IT_set_frame_parameters): Add parens to disambiguate boolean
 +      expression for logging the cursor type to termscript.
 +      (keyboard_layout_list, keypad_translate_map)
 +      (grey_key_translate_map): Add braces in inner initializers.
 +      (dos_rawgetc): Add parens in condition for mouse-3 button-press.
 +      (dos_rawgetc): Remove unused label.
 +      (XMenuActivate): Add braces to remove ambiguous `else'.
 +      (dos_ttraw): Always return a value.
 +      (spawnve): Declare.
 +      (run_msdos_command): Cast 3rd arg of spawnve to "char **".
 +
 +      * dosfns.h (x_set_title): Declare.
 +
 +      * w16select.c (Fw16_set_clipboard_data, Fw16_get_clipboard_data):
 +      Remove unused variables.
 +
 +      * dosfns.c (Fint86, Fdos_memget, Fdos_memput): Remove unused
 +      variables.
 +      (init_dosfns): Declare get_lim_data.
 +      (system_process_attributes): Declare Fget_internal_run_time.
 +
 +      * xmenu.c (xmenu_show) [!USE_X_TOOLKIT && !USE_GTK]: Fix argument
 +      list to be consistent with menu.h.
 +
 +      * w32menu.c (add_menu_item, name_is_separator): Shut up compiler
 +      warnings due to mixing of "char *" and "const char *".
 +
 +2010-08-12  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Introduce a new comment style "c" flag.
 +      * syntax.c (SYNTAX_FLAGS_COMMENT_STYLEB)
 +      (SYNTAX_FLAGS_COMMENT_STYLEC): New macros.
 +      (SYNTAX_FLAGS_COMMENT_STYLE): Use them, add an argument.
 +      (syntax_prefix_flag_p): New function.
 +      (Fstring_to_syntax): Understand new "c" flag.
 +      (Finternal_describe_syntax_value): Recognize new flag; use the
 +      SYNTAX_FLAGS_* macros.
 +      (scan_sexps_forward, Fparse_partial_sexp): Change representation of
 +      comment style to accomodate the new styles.
 +      (back_comment, forw_comment, Fforward_comment, scan_lists)
 +      (scan_sexps_forward): Update code to obey the new comment style flag.
 +
 +      * syntax.h: Move SYNTAX_FLAGS_FOO() macros to syntax.c.
 +
 +      * casefiddle.c (casify_region): Use the new syntax_prefix_flag_p.
 +
 +2010-08-11  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfns.c (x_defined_color): If USE_GTK, call xg_check_special_colors
 +      first.
 +      (Fx_hide_tip): Check FRAME_LIVE_P (f) before calling xg_hide_tooltip.
 +
 +      * gtkutil.h (xg_check_special_colors): Declare.
 +
 +      * gtkutil.c (xg_check_special_colors, style_changed_cb): New functions.
 +      (xg_create_frame_widgets): Connect theme name changes to
 +      style_changed_cb.
 +
 +      * xterm.c (emacs_class): New char[] for EMACS_CLASS.
 +      (xim_open_dpy, xim_initialize, xim_close_dpy): Use emacs_class.
 +      (x_term_init): Use char[] display_opt and name_opt instead of
 +      string literal.  file is const char*.
 +
 +      * xsmfns.c (NOSPLASH_OPT): Change to char[].
 +      (smc_save_yourself_CB): Do xstrdup on all ->type and ->name for
 +      props.  Free them at the end.
 +
 +      * xselect.c (Fx_get_atom_name): Use char empty[] instead of literal "".
 +
 +      * xrdb.c (get_system_app): Make path const and use char *p for
 +      non-const char.
 +
 +      * xmenu.c (Fx_popup_dialog): error_name is const char*.
 +      (xmenu_show): error parameter is const char **.  pane_string is const
 +      char *.
 +      (button_names): Is const char *.
 +      (xdialog_show): error_name and pane_string is const.
 +
 +      * process.h (synch_process_death): Is const char*.
 +
 +      * w32menu.c (w32_menu_show):
 +      * nsmenu.m (ns_menu_show): error parameter is const char **.
 +
 +      * menu.h (w32_menu_show, ns_menu_show, xmenu_show): error parameter
 +      is const char **.
 +
 +      * menu.c (Fx_popup_menu): error_name is const.
 +
 +      * keyboard.h (_widget_value): Add defined USE_GTK.  Replace Boolean
 +      with unsigned char and XtPointer with void *.
 +
 +      * gtkutil.h: Replace widget_value with struct _widget_value.
 +      (enum button_type, struct _widget_value): Remove and use the one from
 +      keyboard.h.
 +
 +      * gtkutil.c (get_utf8_string): Always return an allocated string.
 +      Parameter is const.
 +      (create_dialog, xg_create_one_menuitem, create_menus)
 +      (xg_item_label_same_p, xg_update_menu_item): Free result from
 +      get_utf8_string.
 +      (xg_separator_p, xg_item_label_same_p): label is const.
 +
 +      * font.h (font_open_by_name): Make name const.
 +
 +      * font.c (font_open_by_name): Make name const.
 +
 +      * floatfns.c (matherr): Use a const char* variable for x->name.
 +
 +      * emacs.c (main): Pass char[] to putenv instead of literal.
 +
 +      * callproc.c (synch_process_death): Make const.
 +      (Fcall_process): Make signame const.
 +
 +      * nsterm.h (parseKeyEquiv, addSubmenuWithTitle)
 +      (addDisplayItemWithImage): Use const char*.
 +
 +      * nsmenu.m (parseKeyEquiv, addSubmenuWithTitle)
 +      (addDisplayItemWithImage, update_frame_tool_bar): Use const char*.
 +
 +      * nsfont.m (ns_descriptor_to_entity): Use const char*.
 +
 +      * keyboard.h (_widget_value): name, value and key are const char*.
 +
 +      * unexmacosx.c (unexec_error): Use const char *.
 +
 +2010-08-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * font.h (font_parse_xlfd, font_parse_fcname, font_unparse_fcname)
 +      (font_parse_name, font_open_by_name):
 +      * font.c (font_parse_xlfd, font_parse_fcname, font_unparse_fcname)
 +      (font_parse_name, font_open_by_name): Remove const.
 +
 +2010-08-09  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      Use autoconf determined WORDS_BIGENDIAN instead of hardcoded
 +      definition.
 +
 +      * m/alpha.h: Don't define/undef WORDS_BIG_ENDIAN.
 +      * m/amdx86-64.h: Likewise.
 +      * m/arm.h: Likewise.
 +      * m/hp800.h: Likewise.
 +      * m/ia64.h: Likewise.
 +      * m/ibmrs6000.h: Likewise.
 +      * m/ibms390.h: Likewise.
 +      * m/intel386.h: Likewise.
 +      * m/iris4d.h: Likewise.
 +      * m/m68k.h: Likewise.
 +      * m/macppc.h: Likewise.
 +      * m/mips.h: Likewise.
 +      * m/sh3.h: Likewise.
 +      * m/sparc.h: Likewise.
 +      * m/template.h: Likewise.
 +      * m/vax.h: Likewise.
 +      * m/xtensa.h: Likewise.
 +      * fringe.c (init_fringe_bitmap): Test WORDS_BIGENDIAN instead of
 +      WORDS_BIG_ENDIAN.
 +      * lisp.h: Likewise.
 +      * md5.c: Likewise.
 +      * sound.c (le2hl, le2hs, be2hl, be2hs): Likewise.
 +
 +2010-08-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Use const char* instead of char*.
 +      Reduce the number of warnings with -Wwrite-strings.
 +      * xrdb.c (get_environ_db, get_system_name):
 +      * unexelf.c (find_section):
 +      * term.c (string_cost, string_cost_one_line, per_line_cost)
 +      (get_named_tty, init_tty):
 +      * sysdep.c (sys_subshell):
 +      * sound.c (sound_perror, sound_warning, vox_open, vox_init)
 +      (alsa_sound_perror, alsa_open, alsa_configure, alsa_init):
 +      * search.c (Freplace_match):
 +      * process.c (Fmake_network_process, send_process, init_process):
 +      * lread.c (Fload, init_lread):
 +      * keymap.c (Fdescribe_buffer_bindings, describe_map_tree):
 +      * keyboard.c (parse_tool_bar_item, struct event_head):
 +      * gtkutil.h (xg_get_font_name):
 +      * gtkutil.c (get_dialog_title, create_dialog, xg_get_font_name)
 +      (make_widget_for_menu_item, make_menu_item, create_menus)
 +      (xg_make_tool_item):
 +      * font.c (parse_matrix, font_parse_name):
 +      * floatfns.c (rounding_driver, float_error_fn_name):
 +      * filelock.c (get_boot_time_1, lock_file_1):
 +      * fileio.c (barf_or_query_if_file_exists, check_writable):
 +      * editfns.c (get_system_name, get_operating_system_release)
 +      (Fencode_time, Fset_time_zone_rule):
 +      * dispextern.h (string_cost, per_line_cost, get_named_tty, init_tty):
 +      * buffer.c (defvar_per_buffer): Use const.
 +
 +2010-08-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * charset.c: Include <stdlib.h>.
 +      (struct charset_sort_data): New struct.
 +      (charset_compare): New function.
 +      (Fsort_charsets): New function.
 +      (syms_of_charset): Declare Fsort_charsets as a Lisp function.
 +
 +      * coding.c (decode_coding_iso_2022): Fix checking of dimension
 +      number in CTEXT extended segment.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32fns.c (syms_of_w32fns) <x-max-tooltip-size>: Fix typo in docstring.
 +      * xfns.c (syms_of_xfns) <x-max-tooltip-size>: Reflow docstring.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * fns.c (Fsubstring_no_properties, Fnthcdr, Ffeaturep)
 +      (Fhash_table_size): Fix typos in docstrings.
 +      (Fmake_hash_table): Doc fix.
 +
 +2010-08-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * minibuf.c (syms_of_minibuf) <read-buffer-function>:
 +      Doc fix (bug#5625).
 +
 +2010-08-08  Ken Brown  <kbrown@cornell.edu>
 +
 +      * dired.c (DIRENTRY_NONEMPTY) [cygwin]: Use d_ino instead of
 +      the MSDOS definition.
 +
 +2010-08-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Use const char* instead of char*.
 +      * xterm.c (x_create_toolkit_scroll_bar):
 +      * xfont.c (xfont_list_pattern):
 +      * xfns.c (x_default_scroll_bar_color_parameter)
 +      (xic_create_fontsetname, x_default_font_parameter)
 +      (x_screen_planes):
 +      * xdisp.c (c_string_pos, number_of_chars, reseat_to_string)
 +      (store_mode_line_string, decode_mode_spec, display_string):
 +      * menu.c (digest_single_submenu):
 +      * keymap.h (initial_define_key, initial_define_lispy_key):
 +      * keymap.c (initial_define_key, initial_define_lispy_key):
 +      * image.c (image_error, image_keyword):
 +      * gtkutil.h (xg_create_widget, xg_create_scroll_bar):
 +      * gtkutil.c (xg_create_widget, xg_create_scroll_bar):
 +      * ftfont.c (struct fc_charset_table, ftfont_spec_pattern)
 +      (ftfont_list, ftfont_match):
 +      * frame.c (frame_parm_table):
 +      * font.h (font_intern_prop, font_parse_xlfd, font_parse_fcname)
 +      (font_unparse_fcname, font_unparse_fcname, font_open_by_name)
 +      (font_add_log, font_deferred_log):
 +      * font.c (font_intern_prop, font_parse_xlfd, font_parse_fcname)
 +      (font_unparse_fcname, font_unparse_fcname, font_open_by_name)
 +      (font_add_log, font_deferred_log):
 +      * emacs.c (argmatch):
 +      * dispextern.h (struct it):
 +      * coding.c (ENCODE_DESIGNATION):
 +      * charset.c (define_charset_internal): Use const.
 +
 +      * s/freebsd.h (DECLARE_GETPWUID_WITH_UID_T): Remove, unused.
 +
 +      * xrdb.c: Remove include guard.
 +      Remove DECLARE_GETPWUID_WITH_UID_T conditional it had no effect.
 +      Remove #if 0 code.  Replace malloc->xmalloc, free->xfree,
 +      realloc->xrealloc instead of using #defines.
 +
 +2010-08-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * cmds.c (Fforward_line, Fbeginning_of_line, Fend_of_line):
 +      * editfns.c (Fline_beginning_position, Fline_end_position):
 +      State in the doc strings that start and end of line are in the
 +      logical order.
 +
 +      * xdisp.c (display_line): Move the handling of overlay arrow after
 +      the call to find_row_edges.  (Bug#6699)
 +
 +2010-08-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * keyboard.c (command_loop_1):
 +      * insdel.c (prepare_to_modify_buffer): Don't call validate_region.
 +
 +2010-08-07  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * insdel.c (prepare_to_modify_buffer): Save active region text to
 +      Vsaved_region_selection.
 +
 +      * xselect.c (QPRIMARY): Move to keyboard.c.
 +
 +      * keyboard.c (Vselect_active_regions): Move from simple.el.
 +      (Vsaved_region_selection, Qx_set_selection, QPRIMARY, Qlazy): New vars.
 +      (command_loop_1): Set window selection prior to deactivating the mark.
 +
 +2010-08-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * alloc.c (lisp_malloc):
 +      * buffer.c (set_buffer_internal, set_buffer_internal_1):
 +      * charset.h (emacs_mule_charset):
 +      * dispextern.h (inhibit_free_realized_faces, redraw_frame)
 +      (redraw_garbaged_frames, scroll_cost, update_frame, scrolling)
 +      (bitch_at_user):
 +      * lisp.h (Fcheck_coding_system, Fget_text_property)
 +      (Qfunction, Qcompletion_ignore_case, QCwidth, QCsize):
 +      Remove duplicate declarations.
 +
 +2010-08-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * process.c: Simplify include logic.
 +
 +      * keyboard.h (quit_char): Add declaration.
 +      * process.h (QCport, QCspeed, QCprocess, QCbytesize, QCstopbits)
 +      (QCparity, Qodd, Qeven, QCflowcontrol, Qhw, Qsw, QCsummary):
 +      Add declarations.
 +      * sysdep.c:
 +      * w32.c: Remove the above declarations.
 +
 +      Remove extern declarations in .c files, .h files have them.
 +      * xterm.c:
 +      * xdisp.c:
 +      * msdos.c:
 +      * image.c:
 +      * gtkutil.c:
 +      * fileio.c:
 +      * eval.c: Remove declarations.
 +
 +      * frame.c (frame_params): Make const.
 +
 +      * lisp.h (fatal_error_signal, emacs_root_dir): Add declaration.
 +
 +      * emacs.c (emacs_copyright, emacs_version): Make static.
 +      (Vinitial_window_system, Vauto_save_list_file_name)
 +      (Vinhibit_redisplay): Remove declarations.
 +      (main): Remove HAVE_SHM code, unused.  Remove _I386 conditional
 +      for AIX.
 +
 +      Use const for some arrays and functions.
 +      * xterm.h (xg_set_icon_from_xpm_data):
 +      * xfns.c (xg_set_icon_from_xpm_data):
 +      * term.c (fkeys):
 +      * keyboard.c (lispy_accent_keys, lispy_function_keys)
 +      (lispy_multimedia_keys, lispy_kana_keys, iso_lispy_function_keys)
 +      (lispy_drag_n_drop_names, scroll_bar_parts, modify_event_symbol)
 +      (frame.c frame_parms):
 +      * emacs-icon.h (gnu_xpm_bits):
 +      * callint.c (callint_argfuns): Use const.
 +
 +2010-08-06  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * sysdep.c: Move include term.h last of includes (Bug#6812).
 +
 +2010-08-06  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispnew.c (realloc_glyph_pool): Zero out newly allocated glyphs.
 +
 +      * msdos.c (IT_display_cursor): Log cursor position on termscript.
 +
 +      * .gdbinit (pgx): Display the avoid_cursor_p flag.
 +
 +2010-08-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/xdisp.$(O)): Update dependencies.
 +
 +2010-08-06  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.h (x_get_focus_frame): Declare.
 +
 +      * keyboard.h (poll_for_input_1): Unconditionally declare.
 +
 +      * nsterm.h (x_set_menu_bar_lines): Declare.
 +
 +      * window.c: Don't include menu.h, it depends on lots of other .h-files.
 +
 +      * xfaces.c (x_create_gc, x_free_gc): Convert to ANSI C prototypes.
 +
 +      * window.c: Include menu.h.
 +
 +      * unexmacosx.c (print_region_list, print_regions)
 +      (build_region_list, find_emacs_zone_regions)
 +      (unexec_regions_merge, read_load_commands, dump_it)
 +      (unexec_init_emacs_zone): Convert to ANSI C prototypes.
 +
 +      * term.c: Check HAVE_SYS_IOCTL_H.
 +
 +      * sysdep.c: Check HAVE_TERM_H.
 +
 +      * process.c: Check HAVE_UTIL_H.  Include nsterm.h if HAVE_NS.
 +
 +      * nsterm.m (ns_init_paths, ns_alloc_autorelease_pool)
 +      (ns_ring_bell, ns_defined_color, hide_hourglass)
 +      (x_display_pixel_height, x_display_pixel_width, syms_of_nsterm):
 +      Convert to ANSI C prototypes.
 +      (x_set_window_size, ns_draw_fringe_bitmap, judge): Move declarations
 +      before code.
 +
 +      * nsterm.h : Include sysselect.h.
 +      (x_sync, x_get_focus_frame, x_set_mouse_position)
 +      (x_set_mouse_pixel_position, x_make_frame_visible)
 +      (x_make_frame_invisible, x_iconify_frame, x_char_width, x_char_height)
 +      (x_pixel_width, x_pixel_height, x_set_frame_alpha, x_set_tool_bar_lines)
 +      (x_activate_menubar, free_frame_menubar, ns_init_paths, ns_select)
 +      (syms_of_nsterm, syms_of_nsfns, syms_of_nsmenu, syms_of_nsselect):
 +      Declare.
 +
 +      * nsmenu.m (popup_activated, name_is_separator)
 +      (syms_of_nsmenu): Convert to ANSI C prototypes.
 +      (runMenuAt): Prototypes and move declarations before code.
 +
 +      * nsimage.m (ns_load_image): Move NSTRACE after declarations.
 +
 +      * nsfont.m (ns_fallback_entity, syms_of_nsfont): Convert to ANSI C
 +      prototypes.
 +
 +      * nsfns.m (have_menus_p, ns_display_info_for_name)
 +      (x_set_cursor_type, ns_appkit_version_str)
 +      (ns_appkit_version_int, ns_do_applescript)
 +      (x_set_scroll_bar_default_width, x_sync, compute_tip_xy)
 +      (syms_of_nsfns): Convert to ANSI C prototypes.
 +
 +      * menu.h (x_set_menu_bar_line): Declare.
 +      (free_menubar_widget_value_tree et.al): Add HAVE_NS for these functions.
 +
 +      * lisp.h (fmod_float): Declare.
 +
 +      * 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): Convert to ANSI C prototypes.
 +
 +      * emacs.c: Include nsterm.h if HAVE_NS.
 +
 +      * bidi.c (bidi_dump_cached_states): Fix fprintf warning.
 +
 +2010-08-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * process.c: Remove HAVE_SOCKETS #ifdefs inside #ifdef
 +      subprocesses, only MSDOS does not define HAVE_SOCKETS.
 +      (socket_options): Use const char* for name.
 +
 +2010-08-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Fix changes in 2010-08-05T23:15:24Z!dann@ics.uci.edu..2010-08-05T23:34:12Z!dann@ics.uci.edu for Windows build.
 +
 +      * xmenu.c [USE_X_TOOLKIT || USE_GTK]:
 +      Don't declare xmalloc_widget_value and digest_single_submenu.
 +
 +      * w32font.c (Qlatin): Remove declaration.
 +
 +      * menu.h (xmalloc_widget_value, digest_single_submenu): Declare.
 +
 +      * dired.c (compile_pattern): Restore declaration.
 +
 +2010-08-05  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove extern declarations in .c files, .h files have them.
 +      * data.c:
 +      * dired.c:
 +      * editfns.c:
 +      * filelock.c:
 +      * fns.c:
 +      * font.c:
 +      * fontset.c:
 +      * frame.c:
 +      * fringe.c:
 +      * ftfont.c:
 +      * gtkutil.c:
 +      * indent.c:
 +      * keyboard.c:
 +      * keymap.c:
 +      * lread.c:
 +      * menu.c:
 +      * print.c:
 +      * search.c:
 +      * sound.c:
 +      * window.c:
 +      * xdisp.c:
 +      * xfaces.c:
 +      * xfns.c:
 +      * xfont.c:
 +      * xftfont.c:
 +      * xmenu.c:
 +      * xterm.c: Remove declarations.
 +
 +      Cleanup syssignal.h.
 +      * syssignal.h (sighold, sigrelse, RETSIGTYPE): Remove, unused.
 +      (main_thread): Move down to remove #ifdef.
 +      (SIGMASKTYPE, SIGEMPTYMASK, SIGFULLMASK, sigmask, sigunblock):
 +      Remove conditional definition following unconditional ones.
 +
 +      * lisp.h: Remove HAVE_SHM code, unused.
 +      (QCmap, QCrehash_size, QCrehash_threshold, QCsize, QCtest)
 +      (QCweakness, Qabove_handle, Qbackquote, Qbar, Qbelow_handle)
 +      (Qborder, Qbottom, Qbox, Qcircular_list, Qcomma, Qcomma_at)
 +      (Qcomma_dot, Qcursor, Qdefault, Qdown, Qend_scroll, Qeq, Qeql)
 +      (Qequal, Qfile_exists_p, Qfont_param, Qfringe, Qfunction)
 +      (Qfunction_documentation, Qhandle, Qhbar, Qheader_line, Qhollow)
 +      (Qidentity, Qleft_margin, Qmenu, Qmenu_bar_update_hook)
 +      (Qmode_line_inactive, Qmouse, Qoverriding_local_map)
 +      (Qoverriding_terminal_local_map, Qratio, Qregion, Qright_margin)
 +      (Qscroll_bar, Qtool_bar, Qtop, Qup, Qvertical_border, Qwhen)
 +      (Qwindow_scroll_functions, Vafter_load_alist)
 +      (Vauto_save_list_file_name, Vface_alternative_font_family_alist)
 +      (Vface_alternative_font_registry_alist, Vface_font_rescale_alist)
 +      (Vface_ignored_fonts, Vinhibit_redisplay, Vminibuffer_list)
 +      (Vprint_length, Vprint_level, Vscalable_fonts_allowed)
 +      (Vshell_file_name, Vsystem_name, Vwindow_scroll_functions)
 +      (Vwindow_system_version, Vx_no_window_manager, initial_argc)
 +      (initial_argv, last_nonmenu_event, load_in_progress)
 +      (noninteractive_need_newline, scroll_margin): Add declarations.
 +
 +      * keyboard.h (xmalloc_widget_value, digest_single_submenu):
 +      Remove declarations, menu.h has them.
 +      (QCbutton, QCtoggle, QCradio, QClabel, extra_keyboard_modifiers)
 +      (Vinput_method_function, Qinput_method_function)
 +      (Qevent_symbol_element_mask, last_event_timestamp):
 +      * dispextern.h (Voverflow_newline_into_fringe):
 +      * font.h (QCantialias, Qp, syms_of_ftfont, syms_of_xfns)
 +      (syms_of_ftxfont, syms_of_xftfont, syms_of_bdffont)
 +      (syms_of_w32font, syms_of_nsfont):
 +      * fontset.h (find_font_encoding, Qlatin):
 +      * frame.h (Qtooltip, Qrun_hook_with_args, Vmenu_bar_mode)
 +      (Vtool_bar_mode, set_frame_menubar):
 +      * ftfont.h (ftfont_font_format, ftfont_get_fc_charset):
 +      * xterm.h (Qx_gtk_map_stock):
 +      * keymap.h (meta_prefix_char): Add declarations.
 +
 +      * term.c: Remove dead code.
 +
 +      Fix emacs -Q -f server-start & emacsclient -t on GNU/Linux.
 +      * term.c (dissociate_if_controlling_tty): Use USG5 instead of
 +      USG.  This is equivalent to defined (USG) && !defined (BSD_PGRPS),
 +      which is what was there before BSD_PGRPS was removed.
 +
 +2010-08-05  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * deps.mk (unexcoff.o): Rename unexec.[co] => unexcoff.[co].
 +
 +      * unexcoff.c: Renamed from unexec.c.
 +
 +2010-08-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * sysdep.c (child_setup_tty): Comment-out left-over non-ICANON code.
 +
 +2010-08-03  Johan Bockgård  <bojohan@gnu.org>
 +
 +      * data.c (Flocal_variable_p): Handle variable aliases correctly.
 +      (Bug#6744)
 +
 +2010-08-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (x_create_toolkit_scroll_bar): Only set XtNbeNiceToColormap
 +      to TRUE if depth of screen is < 16.
 +
 +      * gtkutil.c (hierarchy_ch_cb, qttip_cb): Do not define unless
 +      USE_GTK_TOOLTIP.
 +      (xg_prepare_tooltip): Return 0 unless USE_GTK_TOOLTIP.
 +      (xg_show_tooltip, xg_hide_tooltip): Do nothing unless USE_GTK_TOOLTIP.
 +      (xg_create_frame_widgets): Surround tooltip-related code with ifdef
 +      USE_GTK_TOOLTIP.
 +      (xg_free_frame_widgets): Don't delete ttip_* unless USE_GTK_TOOLTIP.
 +
 +      * xterm.h (USE_GTK_TOOLTIP): New define.
 +      (struct x_output): Put ttip_* inside ifdef USE_GTK_TOOLTIP.
 +
 +      * sysdep.c (child_setup_tty): Enable ICANON in lflags and set VEOF
 +      to Control-D (Bug#6771).
 +
 +2010-08-02  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * editfns.c (Fregion_beginning, Fregion_end): Doc fixes (bug#6493).
 +      Wording by Drew Adams <drew.adams@oracle.com>.
 +
 +2010-08-01  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.h (struct x_output): Add ttip_widget, ttip_window and
 +      ttip_lbl.
 +
 +      * xterm.c (x_clear_frame): Check FRAME_GTK_WIDGET (f) before
 +      calling gtk_widget_queue_draw.
 +      (x_free_frame_resources): Call xg_free_frame_widgets.
 +
 +      * xfns.c (x_gtk_use_system_tooltips): New variable.
 +      (Fx_show_tip): If USE_GTK and x_gtk_use_system_tooltips, call
 +      new gtkutil tooltip functions to show the tooltip.
 +      (Fx_hide_tip): Call xg_hide_tooltip.
 +      (syms_of_xfns): Defvar x-gtk-use-system-tooltips.
 +
 +      * gtkutil.h (xg_free_frame_widgets, xg_prepare_tooltip)
 +      (xg_show_tooltip, xg_hide_tooltip): Declare.
 +
 +      * gtkutil.c (hierarchy_ch_cb, qttip_cb, xg_prepare_tooltip)
 +      (xg_show_tooltip, xg_hide_tooltip, xg_free_frame_widgets):
 +      New functions.
 +      (xg_create_frame_widgets): Set ttip_* to 0.  Set a dummy tooltip
 +      text so qttip_cb is called.  Connect query-tooltip to qttip_cb.
 +      Remove code that is commented out.
 +
 +2010-08-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keymap.c (Fdefine_key, Flookup_key): Say what event is invalid.
 +
 +2010-07-31  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xselect.c (x_own_selection): Use list4.
 +
 +2010-07-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * buffer.c (Qwindow): Do not define, already defined in data.c.
 +      (syms_of_buffer): Do not intern and staticpro Qwindow.  (Bug#6760)
 +
 +2010-07-29  Chad Brown  <yandros@mit.edu>
 +
 +      Replace tests for SYSV_SYSTEM_DIR with HAVE_DIRENT_H, set via autoconf.
 +      * dired.c, sysdep.c: Test HAVE_DIRENT_H instead of SYSV_SYSTEM_DIR.
 +      * config.in: Undef HAVE_DIRENT_H.
 +      * s/aix4-2.h, s/bsd-common.h, s/cygwin.h, s/gnu-linux.h,
 +      * s/msdos.h, s/usg5-4.h: Don't define SYSV_SYSTEM_DIR.
 +
 +2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Rename s/usg5-4.h -> s/usg5-4-common.h.
 +      * s/usg5-4.h: Rename file to ...
 +      * s/usg5-4-common.h: ... this for consistency with what we do for BSD.
 +      * s/unixware.h:
 +      * s/sol2-6.h:
 +      * s/irix6-5.h: Update includes accordingly.
 +
 +2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfns.c (x_set_tool_bar_position): Remove debug fprintf.
 +
 +      * xterm.h (struct x_output): Add toolbar_top_height,
 +      toolbar_bottom_height, toolbar_left_width, toolbar_right_width.
 +      Remove toolbar_height.
 +      If USE_GTK: Add hbox_widget and toolbar_in_hbox.
 +      (FRAME_TOOLBAR_TOP_HEIGHT, FRAME_TOOLBAR_BOTTOM_HEIGHT)
 +      (FRAME_TOOLBAR_LEFT_WIDTH, FRAME_TOOLBAR_RIGHT_WIDTH): New macros.
 +      (FRAME_TOOLBAR_HEIGHT): Is now TOP_HEIGHT + BOTTOM_HEIGHT.
 +
 +      * xterm.c (x_set_window_size_1): Add FRAME_TOOLBAR_WIDTH to pixelwidth.
 +
 +      * xfns.c (x_set_tool_bar_position): New function.
 +      (xic_set_statusarea): Use FRAME_TOOLBAR_TOP_HEIGHT.
 +      (x_frame_parm_handlers): Add x_set_tool_bar_position.
 +      (syms_of_xfns): If USE_GTK, provide move-toolbar.
 +
 +      * window.c (calc_absolute_offset): Check for FRAME_TOOLBAR_TOP_HEIGHT
 +      and FRAME_TOOLBAR_LEFT_WIDTH.
 +
 +      * gtkutil.h (xg_change_toolbar_position): Declare.
 +
 +      * gtkutil.c (FRAME_TOTAL_PIXEL_WIDTH): New macro.
 +      (xg_frame_set_char_size): Add FRAME_TOOLBAR_WIDTH to pixelwidth.
 +      (xg_height_or_width_changed): Use FRAME_TOTAL_PIXEL_WIDTH.
 +      (xg_create_frame_widgets): Create a hobox for placing widgets
 +      vertically.  Use gtk_box_pack_start.
 +      (xg_height_or_width_changed): Rename from xg_height_changed.
 +      (x_wm_set_size_hint): Add FRAME_TOOLBAR_WIDTH to base_width.
 +      (xg_update_frame_menubar, free_frame_menubar): Change to
 +      xg_height_or_width_changed.
 +      (xg_tool_bar_detach_callback): Update left/right/top/bottom tool bar
 +      size correctly.  Remove hardcoded 4, instead use handlebox size -
 +      toolbar size.
 +      (xg_tool_bar_attach_callback): Update left/right/top/bottom tool bar
 +      size correctly.  Use handlebox size + toolbar size as additional size.
 +      (xg_pack_tool_bar): POS is a new parameter.
 +      Set orientation of tool bar based on pos.
 +      Only make handlebox_widget if NULL.
 +      Check if tool bar goes to vbox or hbox depending on pos.
 +      (xg_update_tool_bar_sizes): New function.
 +      (update_frame_tool_bar): Remove old_req, new_req.  Do not get tool bar
 +      height, call xg_update_tool_bar_sizes instead.
 +      (free_frame_tool_bar): Remove from hbox or vbox depending on
 +      toolbar_in_hbox,  Set all FRAME_TOOLBAR_*_(WIDTH|HEIGHT) to zero.
 +      (xg_change_toolbar_position): New function.
 +
 +      * frame.h (struct frame): Add tool_bar_position.
 +      (Qbottom): Declare.
 +
 +      * frame.c (Qtool_bar_position): New variable.
 +      (make_frame): Set tool_bar_position to Qtop.
 +      (frame_parms): Add tool-bar-position.
 +      (x_report_frame_params): Store tool_bar_position.
 +      (x_set_fringe_width): Reset wm size hint after fringe changes.
 +
 +2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Make lisp_time_argument declaration work on all systems.
 +      * lisp.h (lisp_time_argument): Move declaration ...
 +      * systime.h (lisp_time_argument): ... here
 +      * editfns.c (lisp_time_argument): Remove declaration.  (Bug#6751)
 +
 +2010-07-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * vm-limit.c (POINTER): Add typedef for it.
 +      (start_of_data): Change return type from POINTER to char *.
 +
 +      * frame.h (Qtty_color_mode): Move declaration out of ifdef
 +      HAVE_WINDOW_SYSTEM.
 +
 +2010-07-29  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vm-limit.c: Do not include sys/resource.h, mem-limits.h does it.
 +      Remove reference to __osf__, unused.
 +
 +      * mem-limits.h: Remove duplicated includes.
 +      (NULL): Remove definition, unused.
 +      (POINTER): Remove definition.
 +      (start_of_data): Use char* in prototype, as the function
 +      definition does.
 +
 +      Remove extern declarations from .c files, and them to .h files.
 +      * keyboard.h (Qhelp_echo, waiting_for_input)
 +      (input_available_clear_time, ignore_mouse_drag_p)
 +      (Vdouble_click_time, real_this_command, Vthis_original_command):
 +      * keymap.h (Qremap, Qmenu_item, Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag):
 +      * lisp.h (Qinteractive_form, use_file_dialog)
 +      (Qcursor_in_echo_area, QCascent, QCmargin, QCrelief, Qcount)
 +      (Qextension_data, QCconversion, QCcolor_symbols, QCheuristic_mask)
 +      (QCindex, QCmatrix, QCcolor_adjustment, QCmask)
 +      (Qrisky_local_variable, map_char_table_for_charset, Vprint_level)
 +      (Qfunction, debug_on_next_call, Qfield)
 +      (Vinhibit_field_text_motion, Vuser_login_name, lisp_time_argument)
 +      (Qpriority, Qwindow, Qevaporate, Qbefore_string, Qafter_string)
 +      (Qfile_directory_p, Qinsert_file_contents)
 +      (Qcompletion_ignore_case, Qcompletion_ignore_case)
 +      (Vcompletion_regexp_list, Vhistory_length, completion_ignore_case)
 +      (history_delete_duplicates, minibuffer_auto_raise, Qonly)
 +      (Qfile_name_handler_alist, Qfront_sticky, Qrear_nonsticky)
 +      (Qminibuffer_prompt)
 +      (Vtemporary_file_directory,char_ins_del_vector, Qface):
 +      * xterm.h (gray_bitmap_width, gray_bitmap_height)
 +      (gray_bitmap_bits, xic_create_fontsetname):
 +      * coding.h (Vtranslation_table_for_input): Add extern declarations.
 +
 +      * xsmfns.c (Vuser_login_name):
 +      * xrdb.c (Vdouble_click_time):
 +      * xfaces.c (xic_create_fontsetname):
 +      * w32select.c (waiting_for_input):
 +      * print.c (minibuffer_auto_raise):
 +      * msdos.c (Qhelp_echo):
 +      * macros.c (real_this_command):
 +      * keymap.c (Voverriding_local_map):
 +      * xterm.c (poll_for_input_1, gray_bitmap_width)
 +      (gray_bitmap_height, gray_bitmap_bits;
 +      * xmenu.c ( Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag; Qmenu_item; use_dialog_box)
 +      (use_file_dialog, Xt_app_con):
 +      * xdisp.c (minibuffer_auto_raise, Voverriding_local_map)
 +      (Voverriding_local_map_menu_flag, Qmenu_item, Qface, Qinvisible)
 +      (Qwidth, Qinvisible, Qwindow, Qpriority, Qtool_bar_lines)
 +      (Qtool_bar_lines, ignore_mouse_drag_p):
 +      * minibuf.c (Voverriding_local_map, Qfield, Qfront_sticky)
 +      (Qrear_nonsticky, nconc2):
 +      * keyboard.c (current_global_map, minibuf_level, Qmenu_item)
 +      (Vhistory_length, Vtranslation_table_for_input, Qcomposition)
 +      (Qdisplay, Qafter_string, Qbefore_string, Qundefined):
 +      * fileio.c (use_dialog_box, use_file_dialog, Vuser_login_name)
 +      (minibuf_level, minibuffer_auto_raise, lisp_time_argument):
 +      * eval.c (Qinteractive_form, Qrisky_local_variable, Qfunction)
 +      (gc_in_progress):
 +      * doc.c (Voverriding_local_map, Qremap):
 +      * dired.c (completion_ignore_case, Qcompletion_ignore_case)
 +      (Vcompletion_regexp_list):
 +      * coding.c (Qmac, Qinsert_file_contents, Qwrite_region)
 +      (Qcompletion_ignore_case):
 +      * callint.c (Qcursor_in_echo_area, Qfile_directory_p, Qonly)
 +      (Vhistory_length, Vthis_original_command, real_this_command)
 +      (Qface, Qminibuffer_prompt, history_delete_duplicates):
 +      * image.c (Qrisky_local_variable):
 +      * fontset.c (QCname):
 +      * fns.c (minibuffer_auto_raise, QCname):
 +      * dispnew.c (char_ins_del_cost):
 +      * composite.c (font_fill_lglyph_metrics):
 +      * cmds.c (Qface, Vtranslation_table_for_input):
 +      * charset.c (map_char_table_for_charset, Qfile_name_handler_alist):
 +      * ccl.c (charset_unicode):
 +      * callproc.c (Vtemporary_file_directory):
 +      * buffer.c (emacs_strerror): Remove extern declarations.
 +
 +      * data.c (Qwindow): Make non-static, used from other files too.
 +      * frame.c (validate_x_resource_name): Remove shadow definition for i.
 +
 +      * unexec.c (make_hdr): Remove references to NO_REMAP, COFF,
 +      SEGMENT_MASK, SECTION_ALIGNMENT, ADJUST_EXEC_HEADER.
 +      * s/usg5-4.h (COFF):
 +      * s/template.h:
 +      * s/msdos.h (COFF, NO_REMAP):
 +      * s/ms-w32.h (NO_REMAP):
 +      * s/hpux10-20.h (NO_REMAP):
 +      * m/sparc.h (SEGMENT_MASK):
 +      * m/m68k.h (NO_REMAP):
 +      * m/intel386.h (SEGMENT_MASK):
 +      * m/arm.h (NO_REMAP):
 +      * m/alpha.h (COFF):
 +      * m/template.h: Remove references to unused defines.
 +
 +2010-07-28  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c (Ftool_bar_get_system_style): Also check for
 +      Qtext_image_horiz.
 +
 +      * xdisp.c (Qtext_image_horiz): Define.
 +      (syms_of_xdisp): Initialize Qtext_image_horiz.  Add text-image-horiz
 +      to documentation of tool-bar-style.
 +
 +      * lisp.h (Qtext_image_horiz): Declare.
 +
 +      * gtkutil.c (xg_make_tool_item, xg_show_toolbar_item): Handle tool bar
 +      style text_image_horiz.
 +
 +2010-07-27  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * emacs.c (Fkill_emacs): Remove return statement.
 +
 +      * term.c (Qspace, QCalign_to, QCwidth): Remove declarations.
 +      (encode_terminal_code, produce_composite_glyph): Remove unused variables.
 +      (set_tty_color_mode, term_mouse_highlight, term_get_fkeys):
 +      Remove local extern declarations.
 +
 +      * xmenu.c: Do not included lwlib.h, not needed.
 +
 +      * m/iris4d.h (XUINT, XSET): Remove, not needed.
 +
 +      * process.c: Move definitions earlier to minimize #ifdefs.
 +
 +      * xterm.h (x_get_customization_string, x_load_resources)
 +      (x_get_resource, x_text_icon, x_text_icon, x_check_errors)
 +      (x_check_errors, x_property_data_to_lisp, defined_color)
 +      (xic_set_xfontset, x_defined_color): Use const.
 +
 +      * xterm.c (xlwmenu_window_p, xlwmenu_redisplay): Remove declarations.
 +      (x_text_icon, x_check_errors, x_connection_closed): Use const.
 +
 +      * xselect.c (selection_data_to_lisp_data)
 +      (x_property_data_to_lisp):
 +      * xrdb.c (x_get_string_resource, file_p)
 +      (x_get_customization_string, magic_file_p, search_magic_path)
 +      (get_system_app, get_user_app, x_load_resources, x_get_resource)
 +      (x_get_string_resource): Use const.
 +
 +      * xfns.c: Include xlwmenu.h when USE_LUCID.
 +      (x_defined_color, xic_set_xfontset): Use const.
 +      (Fx_hide_tip): Remove local extern declaration.
 +
 +      * xfaces.c (Qmouse_face): Remove declaration.
 +      (face_color_gray_p, tty_defined_color, defined_color)
 +      (face_color_gray_p, face_color_supported_p): Add const.
 +
 +      * xdisp.c (do_mouse_tracking): Remove declaration.
 +      (add_to_log): Use const.
 +
 +      * minibuf.c (Qmouse_face): Remove declaration.
 +
 +      * msdos.c (IT_note_mouse_highlight): Remove local extern declaration.
 +
 +      * keyboard.h (do_mouse_tracking): Add declaration.
 +
 +      * image.c (QCwidth, QCheight, QCforeground, QCbackground, QCfile)
 +      (QCdata, QCtype, Qcenter): Remove declarations.
 +
 +      * frame.c (x_get_resource_string, x_get_string_resource)
 +      (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg)
 +      (x_default_parameter): Use const.
 +
 +      * font.c (Qnormal, QCtype, QCfamily, QCweight, QCslant, QCwidth)
 +      (QCheight, QCsize, QCname): Remove declarations.
 +
 +      * emacs.c (main): Remove local extern declaration.
 +
 +      * editfns.c (region_limit, syms_of_editfns): Remove local extern
 +      declarations.
 +
 +      * dispnew.c: Remove duplicate #include <unistd.h>.
 +      (update_window, update_frame_1, init_display): Remove local extern
 +      declarations.
 +
 +      * dispextern.h (add_to_log): Remove declaration.
 +      (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg)
 +      (x_frame_get_and_record_arg, x_default_parameter): Add const.
 +
 +      * dired.c (scmp): Add const.
 +      (directory_files_internal): Remove local extern declaration.
 +
 +      * data.c (Finteractive_form): Use const.
 +
 +      * composite.c (syms_of_composite): Remove local extern declarations.
 +
 +      * charset.c (add_to_log): Remove declaration.
 +
 +      * character.c (strwidth, parse_str_to_multibyte): Add const.
 +
 +      * character.h (strwidth, parse_str_to_multibyte): Likewise.
 +
 +      * buffer.c (Fset_buffer_multibyte): Remove local extern declaration.
 +
 +      * lisp.h (Fkill_emacs): Mark as NO_RETURN.
 +      (Lisp_Subr): Make doc and intspec constant.
 +      (QCsize, Qspace, Qcenter, QCalign_to, QCdata, QCfile, QCtype)
 +      (Qlocal, Qapply, Qnormal, QCfamily, QCweight, QCslant, QCwidth)
 +      (QCheight, QCsize, QCname, QCwidth, QCforeground)
 +      (QCbackground, add_to_log, stack_base, Vmark_even_if_inactive)
 +      (display_arg): Add declarations.
 +
 +2010-07-27  Christoph Scholtes  <cschol2112@gmail.com>
 +
 +      * minibuf.c (Fread_buffer): Doc fix (bug#6528).
 +
 +      * window.c (Fwindow_height): Doc fix (bug#6518).
 +
 +2010-07-27  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * buffer.c (syms_of_buffer) <fringe-indicator-alist>: Doc fix.
 +
 +2010-07-26  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * keyboard.c (Ftop_level, Fexit_recursive_edit)
 +      (Fabort_recursive_edit): Remove return statements in NO_RETURN
 +      functions.
 +
 +      * frame.h (Qtty_color_mode): Add declaration.
 +
 +      * lisp.h (Ftop_level, Fexit_recursive_edit)
 +      (Fabort_recursive_edit): Mark as NO_RETURN.
 +
 +2010-07-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * font.c (Ffont_shape_gstring): Terminate GSTRING by nil if the
 +      number of glyphs gets smaller than the original length.  (Bug#6621)
 +
 +2010-07-26  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * lread.c (unreadpure, mapatoms_1): Make static.
 +
 +2010-07-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * terminfo.c (tparam): Fix prototype of tparm.
 +
 +2010-07-25  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * emacs.c (main) [PROFILING]: Use __executable_start if defined to
 +      find start of text segment.
 +      * dispnew.c (safe_bcopy): Don't define if HAVE___EXECUTABLE_START
 +      is defined.
 +
 +      * callproc.c (set_initial_environment): Avoid unbalanced braces.
 +
 +2010-07-25  Ken Brown  <kbrown@cornell.edu>
 +
 +      * vm-limit.c (check_memory_limits): Fix previous change;
 +      accidentally reverted an earlier change.
 +
 +2010-07-25  Ken Brown  <kbrown@cornell.edu>
 +
 +      * mem-limits.h (BSD4_2) [cygwin]: Don't define here; instead...
 +      * vm-limit.c: ...add 'defined (CYGWIN)' here (Bug#6715).
 +
 +2010-07-25  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * callproc.c (relocate_fd): Set inside #ifndef WINDOWSNT.
 +      * dired.c (opendir, readdir): Fix prototypes.
 +      * editfns.c (w32_get_internal_run_time): Fix prototypes.
 +      * keyboard.c (input_available_signal): Declare inside #ifdef SIGIO.
 +      * ndir.h (opendir, readdir, seekdir, closedir): Fix prototypes.
 +      (telldir): Remove declaration.
 +      * ralloc.c (real_morecore, __morecore): Fix prototypes.
 +      * sound.c (alsa_sound_perror): Declare inside #ifdef HAVE_ALSA.
 +      * syssignal.h (strsignal): Fix prototype.
 +      * term.c (tparam): Fix prototype.
 +      (term_get_fkeys_address, term_get_fkeys_kboard, term_get_fkeys_1)
 +      (term_get_fkeys): Set inside "#ifndef DOS_NT".
 +      * vm-limit.c (check_memory_limits): Fix prototypes of real_morecore
 +      and __morecore.
 +      * w32gui.h (XParseGeometry): Fix prototype.
 +      * w32heap.h (get_data_start, get_data_end, init_heap): Fix prototypes.
 +      * w32term.c (my_set_focus): Declare inside #if 0.
 +      * w32term.h (x_window_to_frame, x_display_info_for_name, w32_term_init)
 +      (w32_fill_rect, w32_clear_window, init_crit, delete_crit, signal_quit)
 +      (drain_message_queue, get_next_msg, post_msg, parse_button)
 +      (ClipboardSequence_Proc): Fix prototypes.
 +      (wait_for_sync): Remove declaration.
 +
 +2010-07-24  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32fns.c (w32_to_x_color): Remove, unused.
 +
 +2010-07-24  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * lisp.h: Remove leftover P_.
 +
 +2010-07-24  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * ecrt0.c, unexalpha.c: Remove files, unused.
 +
 +2010-07-24  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * cmds.c (internal_self_insert): Make static.
 +      * lisp.h (internal_self_insert): Remove declaration.
 +
 +2010-07-23  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * alloc.c (free_float):
 +      * font.c [ENABLE_CHECKING] (font_match_xlfd, font_check_xlfd_parse):
 +      * frame.c (delete_frame_handler):
 +      * ralloc.c (reorder_bloc):
 +      * w32menu.c (menubar_id_to_frame, add_left_right_boundary):
 +      Remove unused static functions.
 +
 +      * menu.c (cleanup_popup_menu): Set inside "#ifdef HAVE_NS";
 +      it is called only from NS code.
 +
 +      * w32term.c (my_set_focus): #ifdef away; it is called only from
 +      "#ifdef 0" code.
 +
 +      * w32fns.c (x_edge_detection):
 +      * xfaces.c (may_use_scalable_font_p):
 +      Remove obsolete static declarations.
 +
 +2010-07-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * alloc.c (emacs_blocked_free, emacs_blocked_malloc)
 +      (emacs_blocked_realloc, uninterrupt_malloc):
 +      * fringe.c (w32_reset_fringes):
 +      * image.c (convert_mono_to_color_image, lookup_rgb_color)
 +      (init_color_table, XPutPixel, jpeg_resync_to_restart_wrapper):
 +      * sound.c (be2hs, do_play_sound):
 +      * vm-limit.c (get_lim_data, ret_lim_data):
 +      * w32term.c (x_free_frame_resources):
 +      * xfaces.c (x_create_gc, x_free_gc):
 +      Convert definitions to standard C.
 +
 +2010-07-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (Feval, Ffuncall): Use the new names.
 +
 +      * lisp.h (struct Lisp_Subr): Rename `am' to aMANY and add aUNEVALLED.
 +      (DEFUN): Add braces around the union initialisation and use ## to
 +      specify the right union alternative and avoid a cast.
 +
 +2010-07-18  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/keyboard.$(O)): Update dependencies.
 +
 +2010-07-17  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.c (make_initial_frame): Use set_menu_bar_lines (Bug#6660).
 +
 +2010-07-17  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_event_is_for_menubar): Also check that event window
 +      is related to the menu bar (Bug#6499).
 +      (xg_frame_resized): GTK_IS_MAPPED => gtk_widget_get_mapped, for Gtk 3.0.
 +
 +2010-07-16  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.h (x_menubar_window_to_frame): Second parameter is XEvent*.
 +
 +      * xterm.c (handle_one_xevent): Pass event to x_menubar_window_to_frame.
 +
 +      * xmenu.c (x_activate_menubar): Revert previous fix for Bug#6499,
 +      i.e. don't put back ButtonRelease (Bug#6608).
 +
 +      * xfns.c (x_menubar_window_to_frame): Take XEvent as second parameter
 +      instead of Window.  Call xg_event_is_for_menubar when
 +      USE_GTK (Bug#6499).
 +
 +      * gtkutil.h (xg_event_is_for_menubar): Declare.
 +
 +      * gtkutil.c (xg_event_is_for_menubar): New function (Bug#6499).
 +
 +2010-07-16  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c (x_set_foreground_color): Fix setting the cursor color
 +      when it's the same as the old foreground.  (Bug#6609)
 +
 +2010-07-16  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xmenu.c (free_frame_menubar): Only call x_set_window_size if
 +      widget is non-null (Bug#6645).
 +
 +2010-07-15  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * xterm.c (x_fully_uncatch_errors, x_trace_wire, x_check_font):
 +      Convert old-style definition.
 +
 +      * xmenu.c (create_and_show_popup_menu, xmenu_show): Fix type of
 +      timestamp argument.
 +
 +2010-07-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fringe.c (update_window_fringes): Restore mistakenly reverted
 +      code from 2010-04-17T12:33:05Z!eliz@gnu.org merged in 2010-04-20T13:31:28Z!eliz@gnu.org.
 +
 +2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (xm_scroll_callback, x_process_timeouts): K&R => prototype.
 +      (SET_SAVED_KEY_EVENT): Remove (not used).
 +      (SET_SAVED_MENU_EVENT): Rename to SET_SAVED_BUTTON_EVENT and
 +      remove size parameter.
 +      (handle_one_xevent): Check popup_activated () for menu for Xt also.
 +      Remove #ifdef USE_GTK around finish = X_EVENT_DROP.
 +      Remove #ifdef USE_MOTIF code that did SET_SAVED_BUTTON_EVENT for
 +      ButtonRelease.
 +      (x_set_window_size_1): scroll_bar_actual_width is always
 +      SCROLL_BAR_COLS * COLUMN_WIDTH for the purpose of frame sizing.
 +
 +      * xdisp.c (pending_menu_activation): Remove extern declaration.
 +      (prepare_menu_bars): Remove setting of pending_menu_activation.
 +
 +      * xmenu.c (pending_menu_activation): Remove.
 +      (x_activate_menubar): Set popup_activated_flag for Xt also.
 +      Remove setting of pending_menu_activation.
 +      (set_frame_menubar): Remove check of pending_menu_activation.
 +      Declare menubar_size before code.  Correct spelling in comment.
 +
 +2010-07-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * font.c (font_open_entity): Cancel previous change.
 +      (Ffont_get): Don't check FONT_ENTITY_INDEX of a font-object.
 +
 +2010-07-13  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Remove subprocesses #ifdefs.
 +      * process.c <inhibit_sentinels>: Move to the common part.
 +      (Fwaiting_for_user_input_p): Move to the common part; return nil
 +      if async subprocesses aren't supported.
 +      * sysdep.c (wait_for_termination) [!MSDOS]: Don't compile on
 +      MS-DOS.  Remove "#ifdef subprocesses".
 +      (sys_subshell, sys_select): Remove "#ifdef subprocesses".
 +      (gettimeofday): Remove "#ifdef subprocesses".
 +      (wait_without_blocking): Remove function.
 +      (flush_pending_output, child_setup_tty): Don't compile on MS-DOS.
 +      Remove "#ifdef subprocesses".
 +      (child_setup_tty): Use WINDOWSNT instead of DOS_NT, since not
 +      compiled on MS-DOS.
 +      * callproc.c (Fcall_process) [!MSDOS]: Don't call
 +      wait_for_termination on MS-DOS.
 +      * emacs.c (shut_down_emacs): Remove "#ifndef subprocesses" from
 +      initialization of inhibit_sentinels.
 +      * keyboard.c (record_asynch_buffer_change): Remove "#ifdef
 +      subprocesses" conditional.
 +      * callproc.c (Fcall_process) [!subprocesses]: Don't call
 +      wait_for_termination, since `buffer' cannot be an integer when
 +      async subprocesses are not supported
 +      * xdisp.c (decode_mode_spec): Use `MSDOS' instead of `subprocesses'
 +      for ifdefing away the call to Fprocess_status.
 +
 +      * process.c (add_keyboard_wait_descriptor) [!subprocesses]: Ifdef
 +      away the entire body of the function.
 +
 +2010-07-13  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove subprocesses #ifdefs from term.c.
 +      * process.c (add_keyboard_wait_descriptor)
 +      (delete_keyboard_wait_descriptor): Move to common section, do
 +      nothing when subprocesses is not defined.
 +      * term.c (Fsuspend_tty, Fresume_tty, init_tty):
 +      Remove subprocesses #ifdefs.
 +
 +      Convert maybe_fatal to standard C.
 +      * lisp.h (verror): Declare.
 +      * eval.c (verror): New function containing the code from ...
 +      (error): ... this.  Call verror.
 +      * term.c (vfatal): New function containing the code from ...
 +      (fatal): ... this.  Call vfatal.
 +      (maybe_fatal): Convert to standard C, use variable number of
 +      arguments.  Declare as non-return.
 +      (init_tty): Fix maybe_fatal call.
 +
 +2010-07-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xterm.c (x_scroll_bar_set_handle, x_scroll_bar_expose)
 +      (_scroll_bar_note_movement): Convert definitions to standard C.
 +      * xmenu.c (menu_help_callback, pop_down_menu, xmenu_show):
 +      * xfns.c (hack_wm_protocols, x_window, x_window): Likewise.
 +
 +2010-07-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xterm.c (x_frame_of_widget, x_alloc_nearest_color_for_widget)
 +      (x_alloc_lighter_color_for_widget, cvt_string_to_pixel)
 +      (cvt_pixel_dtor, x_window_to_menu_bar, xt_action_hook)
 +      (xaw_jump_callback, xaw_scroll_callback)
 +      (x_create_toolkit_scroll_bar, x_set_toolkit_scroll_bar_thumb)
 +      (x_wm_set_size_hint, x_activate_timeout_atimer):
 +      Convert definitions to standard C.
 +      * xmenu.c (menubar_id_to_frame, popup_get_selection)
 +      (popup_activate_callback, popup_deactivate_callback)
 +      (menu_highlight_callback, menubar_selection_callback)
 +      (apply_systemfont_to_dialog, apply_systemfont_to_menu)
 +      (free_frame_menubar, popup_selection_callback, as)
 +      (create_and_show_popup_menu, dialog_selection_callback)
 +      (create_and_show_dialog):
 +      * xfns.c (hack_wm_protocols, x_window):
 +      * xfaces.c (x_update_menu_appearance):
 +      * widget.c (get_default_char_pixel_size, pixel_to_char_size)
 +      (char_to_pixel_size, round_size_to_char, get_wm_shell)
 +      (set_frame_size, update_wm_hints, setup_frame_gcs)
 +      (update_various_frame_slots, update_from_various_frame_slots)
 +      (EmacsFrameInitialize, EmacsFrameRealize, EmacsFrameResize)
 +      (EmacsFrameSetValues, EmacsFrameQueryGeometry)
 +      (EmacsFrameSetCharSize, widget_store_internal_border): Likewise.
 +
 +2010-07-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * dbusbind.c (xd_initialize): Don't compare boolean with a constant.
 +
 +2010-07-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * process.c (setup_process_coding_systems): Move to the part
 +      shared by non-subprocesses systems, and make its body empty when
 +      subprocesses is not defined.
 +      (close_process_descs): Move to the part shared by non-subprocesses
 +      systems.
 +      (wait_reading_process_output) [!subprocesses]: Convert arg list to
 +      ANSI C.
 +
 +2010-07-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * editfns.c (transpose_markers): Convert old-style definition.
 +      * emacs.c (abort, shut_down_emacs, fixup_locale)
 +      (synchronize_system_time_locale)
 +      (synchronize_system_messages_locale, syms_of_emacs): Likewise.
 +      * floatfns.c (extract_float, matherr, init_floatfns)
 +      (syms_of_floatfns): Likewise.
 +      * fns.c (make_hash_table): Likewise.
 +      * ftfont.c (ftfont_get_otf, ftfont_otf_features)
 +      (ftfont_otf_capability, ftfont_get_glyph_id, ftfont_get_metrics)
 +      (ftfont_drive_otf, ftfont_shape_by_flt, ftfont_shape)
 +      (ftfont_variation_glyphs): Likewise.
 +      * gtkutil.c (xg_create_widget, xg_modify_menubar_widgets): Likewise.
 +      * keymap.c (describe_map_tree, describe_map, describe_vector): Likewise.
 +      * lread.c (read_filtered_event): Likewise.
 +      * minibuf.c (read_minibuf_noninteractive, read_minibuf): Likewise.
 +      * process.c (wait_reading_process_output): Likewise.
 +      * scroll.c (do_line_insertion_deletion_costs): Likewise.
 +      * search.c (search_buffer, boyer_moore): Likewise.
 +      * syntax.c (scan_sexps_forward): Likewise.
 +      * xdisp.c (try_scrolling): Likewise.
 +      * xfaces.c (face_at_buffer_position, face_for_overlay_string)
 +      (face_at_string_position): Likewise.
 +      * xfns.c (x_default_scroll_bar_color_parameter): Likewise.
 +      * xselect.c (x_get_window_property, receive_incremental_selection)
 +      (x_get_window_property_as_lisp_data, lisp_data_to_selection_data):
 +      Likewise.
 +      * xterm.c (x_draw_relief_rect, x_draw_box_rect): Likewise.
 +
 +2010-07-12  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * callproc.c (child_setup): Remove subprocesses conditional.
 +      Remove code dealing with SET_EMACS_PRIORITY, unused.
 +
 +      * buffer.c (Fset_buffer_multibyte): Remove subprocesses conditional.
 +      * process.c (close_process_descs): Use DOS_NT instead of WINDOWSNT.
 +
 +      * emacs.c (__do_global_ctors, __do_global_ctors_aux)
 +      (__do_global_dtors, __main): Use void in definition.
 +      (main): Remove code dealing with SET_EMACS_PRIORITY, unused.
 +      Remove SYMS_MACHINE code, unused.  Remove SYMS_SYSTEM, inline
 +      the only users from ...
 +      * s/ms-w32.h (SYMS_SYSTEM): ... here and ...
 +      * s/msdos.h (SYMS_SYSTEM): ... here.  Remove.
 +      (HAVE_VOLATILE): Remove, unused.
 +
 +      Convert more function definitions to standard C.
 +      * xdisp.c (window_box_edges, handle_single_display_spec)
 +      (display_string): Convert definition to standard C.
 +      * scroll.c (do_direct_scrolling, scrolling_1):
 +      * dispnew.c (allocate_matrices_for_frame_redisplay)
 +      (mirrored_line_dance):
 +      * coding.c (code_convert_string):
 +      * charset.c (map_charset_chars):
 +      * ccl.c (Fccl_program_p, Fccl_execute, Fccl_execute_on_string)
 +      (Fregister_ccl_program, Fregister_code_conversion_map):
 +      * keyboard.c (kbd_buffer_nr_stored): Likewise.
 +      (head_table): Make static and const.
 +
 +2010-07-12  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * Makefile.in (C_WARNINGS_SWITCH, PROFILING_CFLAGS)
 +      (PROFILING_LDFLAGS): Set from substitution.
 +      (ALL_CFLAGS): Add C_WARNINGS_SWITCH and PROFILING_CFLAGS, put
 +      CFLAGS last.
 +
 +2010-07-12  Kenichi Handa  <handa@m17n.org>
 +
 +      * Makefile.in (lisp): Change hebrew.el to hebrew.elc.
 +      (shortlisp): Likewise.
 +
 +      * font.h (enum font_property_index): New member FONT_ENTITY_INDEX.
 +
 +      * font.c (font_open_entity): Record ENTITY in FONT_OBJECT's slot
 +      of FONT_ENTITY_INDEX.
 +      (Ffont_get): If KEY is :otf and the font-object doesn't have the
 +      property, get the property value dynamically.
 +      (Ffont_put): Accept font-entity and font-object too.
 +      (Ffont_get_glyhphs): Rename from Fget_font_glyphs.  Arguments and
 +      return value changed.
 +      (syms_of_font): Adjust for the above change.
 +
 +2010-07-11  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * blockinput.h: Remove obsolete comment.
 +
 +      * lisp.h: Include <stddef.h>.
 +      (OFFSETOF): Don't define.
 +      (VECSIZE): Use offsetof instead of OFFSETOF.
 +      (PSEUDOVECSIZE): Likewise.
 +      * process.c (conv_sockaddr_to_lisp): Likewise.
 +      * alloc.c: Don't include <stddef.h>.
 +      * buffer.h (PER_BUFFER_VAR_OFFSET): Use offsetof.
 +
 +      * process.c: Remove obsolete comment.
 +
 +2010-07-11  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfaces.c (Vface_remapping_alist): Doc fix (Bug#6091).
 +
 +2010-07-11  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * callint.c (Fcall_interactively): Use strchr, strrchr instead of
 +      index, rindex.
 +      * doc.c (get_doc_string, Fsnarf_documentation): Likewise.
 +      * editfns.c (Fuser_full_name, Fformat): Likewise.
 +      * emacs.c (argmatch, sort_args, decode_env_path): Likewise.
 +      * fileio.c (Ffile_symlink_p): Likewise.
 +      * filelock.c (current_lock_owner): Likewise.
 +      * font.c (font_parse_name, font_parse_family_registry): Likewise.
 +      * fontset.c (fontset_pattern_regexp): Likewise.
 +      * lread.c (read1): Likewise.
 +      * sysdep.c (init_system_name): Likewise.
 +      * xfns.c (select_visual): Likewise.
 +      * s/hpux10-20.h (index, rindex): Don't define.
 +      * s/ms-w32.h (index): Likewise.
 +      * s/usg5-4.h: Likewise.
 +
 +      * callproc.c (relocate_fd): Use F_DUPFD if defined.
 +
 +      * alloc.c (pending_malloc_warning, malloc_warning): Add const.
 +      * callproc.c (relocate_fd, getenv_internal_1, getenv_internal)
 +      (egetenv): Likewise.
 +      * doprnt.c (doprnt): Likewise.
 +      * editfns.c (set_time_zone_rule, format2): Likewise.
 +      * emacs.c (decode_env_path): Likewise.
 +      * eval.c (signal_error, error): Likewise.
 +      * insdel.c (replace_range_2): Likewise.
 +      * keyboard.c (cmd_error_internal): Likewise.
 +      * lread.c (isfloat_string, make_symbol, dir_warning): Likewise.
 +      * print.c (write_string, write_string_1, print_error_message):
 +      Likewise.
 +      * vm-limit.c (warn_function, memory_warnings): Likewise.
 +      * xdisp.c (message1, message1_nolog, message_with_string)
 +      (vmessage, message, message_nolog): Likewise.
 +      * emacs.c: Remove duplicate declaration.
 +      * keyboard.h: Likewise.
 +      * lisp.h: Update prototypes.
 +
 +      * eval.c: Fix indentation problem.
 +
 +      * keyboard.c: Include "process.h"
 +
 +      * eval.c: Remove obsolete noinline declaration.
 +      * fns.c: Likewise.
 +
 +2010-07-11  Ken Raeburn  <raeburn@raeburn.org>
 +
 +      * doprnt.c (doprnt): Take a va_list argument instead of count and
 +      pointer.
 +      * eval.c (error): Change to a standard-C variadic function.
 +      * xdisp.c (vmessage): Rename from message, made static, and
 +      changed to take a va_list argument.
 +      (message): New variadic wrapper.
 +      (message_nolog): Now a variadic function, calling vmessage.
 +      * lisp.h: Include stdarg.h for va_list.
 +      (doprnt, error, message, message_nolog): Decls updated.
 +
 +2010-07-11  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * process.c (syms_of_process) <delete-exited-processes>: Define
 +      even if !subprocesses.
 +      (delete_exited_processes): Ditto.
 +
 +      * msdos.c (syms_of_msdos) <delete-exited-processes>: Remove DEFVAR.
 +      (delete_exited_processes): Don't define.
 +
 +2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.c (make_frame): Initialize menu_bar_lines and
 +      tool_bar_lines members.
 +      (make_initial_frame, make_terminal_frame):
 +      Initialize menu_bar_lines using value of menu-bar-mode.
 +
 +      * msdos.c (IT_set_frame_parameters): Don't set menu-bar-lines.
 +
 +2010-07-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * process.c: Reshuffle #include's.  Condition some of the global
 +      and static variables on `subprocesses'.
 +      (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
 +      Leave only one implementation.
 +      (Fget_buffer_process, Fprocess_inherit_coding_system_flag)
 +      (kill_buffer_processes, Flist_system_processes)
 +      (Fprocess_attributes, init_process, syms_of_process): Unify the
 +      implementations for with subprocesses and without them.
 +
 +2010-07-09  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xmenu.c (set_frame_menubar): Must realize menubar_widget to get the
 +      correct size for Motif.
 +      (free_frame_menubar): Call x_set_window_size to update frame size.
 +
 +      * xfns.c (x_window): Set borderWidth to 0 for pane and
 +      EmacsFrame.  Frame size calculation is wrong otherwise.
 +
 +2010-07-09  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * dbusbind.c (xd_initialize): Add new argument RAISE_ERROR, which
 +      allows to suppress errors when polling in Emacs' main loop.
 +      (Fdbus_init_bus, Fdbus_get_unique_name, Fdbus_call_method)
 +      (Fdbus_call_method_asynchronously, Fdbus_method_return_internal)
 +      (Fdbus_method_error_internal, Fdbus_send_signal)
 +      (xd_get_dispatch_status, xd_read_message, Fdbus_register_signal)
 +      (Fdbus_register_method): Use it.  (Bug#6579)
 +
 +2010-07-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * alloc.c: Convert DEFUNs to standard C.
 +      * buffer.c:
 +      * bytecode.c:
 +      * callint.c:
 +      * callproc.c:
 +      * casefiddle.c:
 +      * casetab.c:
 +      * category.c:
 +      * character.c:
 +      * charset.c:
 +      * chartab.c:
 +      * cmds.c:
 +      * coding.c:
 +      * composite.c:
 +      * data.c:
 +      * dbusbind.c:
 +      * dired.c:
 +      * dispnew.c:
 +      * doc.c:
 +      * dosfns.c:
 +      * editfns.c:
 +      * emacs.c:
 +      * eval.c:
 +      * fileio.c:
 +      * filelock.c:
 +      * floatfns.c:
 +      * fns.c:
 +      * font.c:
 +      * fontset.c:
 +      * frame.c:
 +      * fringe.c:
 +      * image.c:
 +      * indent.c:
 +      * insdel.c:
 +      * keyboard.c:
 +      * keymap.c:
 +      * lread.c:
 +      * macros.c:
 +      * marker.c:
 +      * menu.c:
 +      * minibuf.c:
 +      * msdos.c:
 +      * nsfns.m:
 +      * nsmenu.m:
 +      * nsselect.m:
 +      * print.c:
 +      * process.c:
 +      * search.c:
 +      * sound.c:
 +      * syntax.c:
 +      * term.c:
 +      * terminal.c:
 +      * textprop.c:
 +      * undo.c:
 +      * w16select.c:
 +      * w32console.c:
 +      * w32fns.c:
 +      * w32font.c:
 +      * w32menu.c:
 +      * w32proc.c:
 +      * w32select.c:
 +      * window.c:
 +      * xdisp.c:
 +      * xfaces.c:
 +      * xfns.c:
 +      * xmenu.c:
 +      * xselect.c:
 +      * xsettings.c:
 +      * xsmfns.c: Likewise.
 +
 +2010-07-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * process.c (kbd_is_on_hold, hold_keyboard_input)
 +      (unhold_keyboard_input, kbd_on_hold_p) [!subprocesses]: Define.
 +
 +2010-07-08  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xmenu.c (set_frame_menubar, create_and_show_popup_menu)
 +      (create_and_show_dialog): Don't call apply_systemfont_to_(menu|dialog)
 +      unless USE_LUCID.
 +
 +2010-07-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xdisp.c (store_mode_line_noprop_char): Remove K&R alternative
 +      declaration.
 +
 +      Clean up include guards.
 +      * tparam.c: Remove include guards for config.h, string.h and code
 +      that assumes #ifndef emacs.
 +      * termcap.c:
 +      * unexalpha.c:
 +      * sysdep.c:
 +      * filemode.c:
 +      * filelock.c:
 +      * bidi.c: Likewise.
 +
 +      Remove prefix-args.c
 +      * prefix-args.c: Remove file.
 +      * autodeps.mk (ALLOBJS): Remove reference to prefix-args.
 +      * Makefile.in (temacs${EXEEXT}): Remove references to
 +      PRE_EDIT_LDFLAGS and POST_EDIT_LDFLAGS.
 +      (mostlyclean): Remove reference to prefix-args.
 +      (prefix-args): Remove.
 +
 +      Simplify cstart_of_data, start_of_code and related code.
 +      * mem-limits.h: Remove !emacs and _LIBC conditional code.
 +      (start_of_data): Merge into start_of_data function.
 +      * sysdep.c (start_of_text): Remove.  Move simplified versions of
 +      it in the only users: unexaix.c and unexec.c.
 +      (read_input_waiting): Remove local declaration of quit_char.
 +      (start, etext): Remove declarations.
 +      (start_of_data): Merge with the version in mem-limits.h and move
 +      to vm-limits.c.
 +      * vm-limit.c (start_of_data): Merged and simplified version of the
 +      code formerly in mem-limits.h and sysdep.c.
 +      * unexec.c (start): New declaration, moved from sysdep.c.
 +      (start_of_text): Simplified version of the code formerly in sysdep.c.
 +      * unexaix.c (start_of_text): Simplified version of the code
 +      formerly in sysdep.c.
 +      * m/alpha.h (HAVE_TEXT_START): Remove.
 +      (TEXT_START): Move ...
 +      * unexalpha.c (TEXT_START): ... here.
 +      * s/hpux10-20.h (TEXT_START): Remove.
 +      * s/darwin.h (TEXT_START):
 +      * m/mips.h (TEXT_START):
 +      * m/macppc.h (HAVE_TEXT_START):
 +      * m/m68k.h (TEXT_START):
 +      * m/iris4d.h (TEXT_START):
 +      * m/intel386.h (TEXT_START):
 +      * m/ibmrs6000.h (TEXT_START):
 +      * m/ia64.h (HAVE_TEXT_START):
 +      * s/msdos.h (TEXT_START): Likewise.
 +
 +2010-07-07  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * alloc.c (overrun_check_malloc, overrun_check_realloc)
 +      (overrun_check_free, xstrdup, allocate_string)
 +      (allocate_string_data, compact_small_strings, Fmake_string)
 +      (make_unibyte_string, make_multibyte_string)
 +      (make_string_from_bytes, make_specified_string, make_float)
 +      (Fcons, allocate_terminal, allocate_frame, make_pure_string)
 +      (Fgarbage_collect): Replace bcopy, safe_bcopy, bzero, bcmp by
 +      memcpy, memmove, memset, memcmp.
 +      * atimer.c (start_atimer, set_alarm): Likewise.
 +      * buffer.c (clone_per_buffer_values, report_overlay_modification)
 +      (mmap_realloc, init_buffer_once): Likewise.
 +      * callint.c (Fcall_interactively): Likewise.
 +      * callproc.c (Fcall_process, Fcall_process_region, child_setup)
 +      (getenv_internal_1): Likewise.
 +      * casefiddle.c (casify_object): Likewise.
 +      * ccl.c (ccl_driver): Likewise.
 +      * character.c (str_as_multibyte, str_to_multibyte): Likewise.
 +      * charset.c (load_charset_map_from_file)
 +      (load_charset_map_from_file, load_charset_map_from_vector)
 +      (Fdefine_charset_internal): Likewise.
 +      * cm.c (Wcm_clear): Likewise.
 +      * coding.c (decode_eol, decode_coding_object)
 +      (Fset_coding_system_priority, make_subsidiaries): Likewise.
 +      * data.c (Faset): Likewise.
 +      * dired.c (directory_files_internal, file_name_completion_stat):
 +      Likewise.
 +      * dispnew.c (new_glyph_matrix, adjust_glyph_matrix)
 +      (clear_glyph_row, copy_row_except_pointers)
 +      (copy_glyph_row_contents, new_glyph_pool, realloc_glyph_pool)
 +      (save_current_matrix, restore_current_matrix)
 +      (build_frame_matrix_from_leaf_window, mirrored_line_dance)
 +      (mirror_line_dance, scrolling_window): Likewise.
 +      * doc.c (Fsnarf_documentation, Fsubstitute_command_keys):
 +      Likewise.
 +      * doprnt.c (doprnt): Likewise.
 +      * editfns.c (Fuser_full_name, make_buffer_string_both)
 +      (Fmessage_box, Fformat, Ftranspose_regions): Likewise.
 +      * emacs.c (sort_args): Likewise.
 +      * eval.c (Fapply, Ffuncall): Likewise.
 +      * fileio.c (Ffile_name_directory, make_temp_name)
 +      (Fexpand_file_name, search_embedded_absfilename)
 +      (Fsubstitute_in_file_name, Ffile_symlink_p, Finsert_file_contents)
 +      (auto_save_error): Likewise.
 +      * fns.c (Fstring_equal, Fcopy_sequence, concat)
 +      (string_to_multibyte, Fstring_as_unibyte, Fstring_as_multibyte)
 +      (internal_equal, Fclear_string, larger_vector, copy_hash_table)
 +      (Fmake_hash_table): Likewise.
 +      * fringe.c (Fdefine_fringe_bitmap): Likewise.
 +      * ftfont.c (ftfont_text_extents): Likewise.
 +      * getloadavg.c (getloadavg): Likewise.
 +      * image.c (define_image_type, make_image, make_image_cache)
 +      (x_create_x_image_and_pixmap, xbm_image_p)
 +      (w32_create_pixmap_from_bitmap_data, xbm_load, xpm_lookup_color)
 +      (xpm_image_p, x_create_bitmap_from_xpm_data, xpm_load)
 +      (init_color_table, x_build_heuristic_mask, pbm_image_p, pbm_load)
 +      (png_image_p, png_read_from_memory, png_load, jpeg_image_p)
 +      (tiff_image_p, tiff_read_from_memory, gif_image_p)
 +      (gif_read_from_memory, gif_load, svg_image_p, gs_image_p):
 +      Likewise.
 +      * indent.c (scan_for_column, compute_motion): Likewise.
 +      * insdel.c (gap_left, gap_right, make_gap_smaller, copy_text)
 +      (insert_1_both, insert_from_gap, replace_range_2): Likewise.
 +      * intervals.c (reproduce_tree, reproduce_tree_obj): Likewise.
 +      * keyboard.c (echo_char, save_getcjmp, restore_getcjmp)
 +      (kbd_buffer_store_event_hold, apply_modifiers_uncached)
 +      (store_user_signal_events, menu_bar_items, tool_bar_items)
 +      (process_tool_bar_item, append_tool_bar_item)
 +      (read_char_minibuf_menu_prompt, read_key_sequence)
 +      (Fread_key_sequence, Fread_key_sequence_vector, Frecent_keys):
 +      Likewise.
 +      * keymap.c (current_minor_maps, Fdescribe_buffer_bindings):
 +      Likewise.
 +      * lisp.h (STRING_COPYIN): Likewise.
 +      * lread.c (Fload, read1, oblookup): Likewise.
 +      * msdos.c (Frecent_doskeys): Likewise.
 +      * nsfns.m (Fx_create_frame): Likewise.
 +      * nsfont.m (nsfont_open, nsfont_text_extents, ns_glyph_metrics):
 +      Likewise.
 +      * nsimage.m (EmacsImage-initFromSkipXBM:width:height:)
 +      (EmacsImage-initForXPMWithDepth:width:height:flip:length:):
 +      Likewise.
 +      * nsmenu.m (ns_update_menubar): Likewise.
 +      * nsterm.m (ns_draw_fringe_bitmap, ns_term_init): Likewise.
 +      * print.c (print_unwind, printchar, strout, print_string)
 +      (print_error_message): Likewise.
 +      * process.c (conv_lisp_to_sockaddr, set_socket_option)
 +      (Fmake_network_process, Fnetwork_interface_list)
 +      (Fnetwork_interface_info, read_process_output, Fprocess_send_eof)
 +      (init_process): Likewise.
 +      * ralloc.c (resize_bloc, r_alloc_sbrk, r_alloc_init): Likewise.
 +      * regex.c (init_syntax_once, regex_compile, re_compile_fastmap):
 +      Likewise.
 +      * scroll.c (do_scrolling, do_direct_scrolling)
 +      (scrolling_max_lines_saved): Likewise.
 +      * search.c (search_buffer, wordify, Freplace_match): Likewise.
 +      * sound.c (wav_init, au_init, Fplay_sound_internal): Likewise.
 +      * syntax.c (skip_chars, skip_syntaxes): Likewise.
 +      * sysdep.c (child_setup_tty, sys_subshell, emacs_get_tty)
 +      (emacs_set_tty): Likewise.
 +      * term.c (encode_terminal_code, calculate_costs)
 +      (produce_special_glyphs, create_tty_output, init_tty, delete_tty):
 +      Likewise.
 +      * termcap.c (tgetst1, gobble_line): Likewise.
 +      * termhooks.h (EVENT_INIT): Likewise.
 +      * tparam.c (tparam1): Likewise.
 +      * unexalpha.c (unexec): Likewise.
 +      * unexec.c (write_segment): Likewise.
 +      * unexmacosx.c (unexec_write_zero): Likewise.
 +      * w32fns.c (w32_wnd_proc, Fx_create_frame, x_create_tip_frame)
 +      (Fx_file_dialog, Fsystem_move_file_to_trash): Likewise.
 +      * w32font.c (w32font_list_family, w32font_text_extents)
 +      (w32font_list_internal, w32font_match_internal)
 +      (w32font_open_internal, compute_metrics, Fx_select_font):
 +      Likewise.
 +      * w32menu.c (set_frame_menubar, add_menu_item)
 +      (w32_menu_display_help, w32_free_submenu_strings): Likewise.
 +      * w32term.c (XCreateGC, w32_initialize_display_info): Likewise.
 +      * w32uniscribe.c (uniscribe_list_family): Likewise.
 +      * w32xfns.c (get_next_msg, post_msg, prepend_msg): Likewise.
 +      * window.c (make_window, replace_window, set_window_buffer)
 +      (Fsplit_window): Likewise.
 +      * xdisp.c (init_iterator, RECORD_OVERLAY_STRING, reseat_to_string)
 +      (add_to_log, message3, x_consider_frame_title)
 +      (append_space_for_newline, extend_face_to_end_of_line)
 +      (decode_mode_spec_coding, init_glyph_string): Likewise.
 +      * xfaces.c (x_create_gc, get_lface_attributes_no_remap)
 +      (Finternal_copy_lisp_face, Finternal_merge_in_global_face)
 +      (face_attr_equal_p, make_realized_face, make_face_cache)
 +      (free_realized_faces, lookup_named_face, smaller_face)
 +      (face_with_height, lookup_derived_face)
 +      (x_supports_face_attributes_p, Finternal_set_font_selection_order)
 +      (Finternal_set_font_selection_order, realize_default_face)
 +      (compute_char_face, face_at_buffer_position)
 +      (face_for_overlay_string, face_at_string_position, merge_faces):
 +      Likewise.
 +      * xfns.c (xic_create_fontsetname, Fx_create_frame)
 +      (Fx_window_property, x_create_tip_frame)
 +      (Fx_backspace_delete_keys_p): Likewise.
 +      * xfont.c (xfont_list, xfont_match, xfont_list_family)
 +      (xfont_text_extents): Likewise.
 +      * xmenu.c (set_frame_menubar, xmenu_show): Likewise.
 +      * xrdb.c (magic_file_p, x_get_resource): Likewise.
 +      * xselect.c (x_queue_event, x_get_window_property)
 +      (receive_incremental_selection): Likewise.
 +      * xsmfns.c (x_session_check_input): Likewise.
 +      * xterm.c (x_send_scroll_bar_event, SET_SAVED_MENU_EVENT)
 +      (handle_one_xevent, x_check_errors, xim_initialize, x_term_init):
 +      Likewise.
 +      * character.h (BCOPY_SHORT): Removed.
 +      * config.in: Regenerate.
 +      * dispnew.c (safe_bcopy): Only define as dummy if PROFILING.
 +      * emacs.c (main) [PROFILING]: Don't declare
 +      dump_opcode_frequencies.
 +      * lisp.h (safe_bcopy): Remove declaration.
 +      (memset) [!HAVE_MEMSET]: Declare.
 +      (memcpy) [!HAVE_MEMCPY]: Likewise.
 +      (memmove) [!HAVE_MEMMOVE]: Likewise.
 +      (memcmp) [!HAVE_MEMCMP]: Likewise.
 +      * s/ms-w32.h (bzero, bcopy, bcmp, GAP_USE_BCOPY)
 +      (BCOPY_UPWARD_SAFE, BCOPY_DOWNWARD_SAFE, HAVE_BCOPY, HAVE_BCMP):
 +      Don't define.
 +      (HAVE_MEMCMP, HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET): Define.
 +      * s/msdos.h (GAP_USE_BCOPY, BCOPY_UPWARD_SAFE)
 +      (BCOPY_DOWNWARD_SAFE): Don't define.
 +      * sysdep.c (memset) [!HAVE_MEMSET]: Define.
 +      (memcpy) [!HAVE_MEMCPY]: Define.
 +      (memmove) [!HAVE_MEMMOVE]: Define.
 +      (memcmp) [!HAVE_MEMCMP]: Define.
 +
 +2010-07-07  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * process.c (kbd_is_on_hold): New variable.
 +      (hold_keyboard_input, unhold_keyboard_input, kbd_on_hold_p):
 +      New functions.
 +      (wait_reading_process_output): If kbd_on_hold_p returns non-zero,
 +      select on empty input mask.
 +      (init_process): Initialize kbd_is_on_hold to 0.
 +
 +      * process.h (hold_keyboard_input, unhold_keyboard_input)
 +      (kbd_on_hold_p): Declare.
 +
 +      * keyboard.c (input_available_signal): Declare.
 +      (kbd_buffer_nr_stored): New function.
 +      (kbd_buffer_store_event_hold): If kbd_buffer_nr_stored returns
 +      more than KBD_BUFFER_SIZE/2, stop reding input (Bug#6571).
 +      (kbd_buffer_get_event): If input is suspended and kbd_buffer_nr_stored
 +      returns less than KBD_BUFFER_SIZE/4, resume reding input (Bug#6571).
 +      (tty_read_avail_input): If input is on hold, return.
 +      Don't read more that free slots in kbd_buffer (Bug#6571).
 +
 +2010-07-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdos.h:
 +      * msdos.c:
 +      * dosfns.c:
 +      * w16select.c: Convert function definitions to ANSI C.
 +
 +      * msdos.h (ctrl_break_func, install_ctrl_break_check):
 +      Remove unused prototypes.
 +
 +2010-07-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * coding.c, sysdep.c: Convert some more functions to standard C.
 +
 +2010-07-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * coding.c (decode_coding_gap, encode_coding_gap, decode_coding_object)
 +      (encode_coding_object): Use SPECPDL_INDEX.
 +      (syms_of_coding): Use DOS_NT.
 +
 +2010-07-07  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * intervals.h (interval): Use EMACS_UINT instead of unsigned EMACS_INT.
 +
 +      Make the function member of Lisp_Subr use standard C prototypes.
 +      * lisp.h (struct Lisp_Subr): Use a union for the function member.
 +      (DECL_ALIGN): Add a cast for the function.
 +      * eval.c (Feval, Ffuncall): Use the proper type for each type
 +      function call.
 +
 +2010-07-06  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fringe.c (draw_fringe_bitmap_1): Use lookup_named_face to get
 +      fringe face id, so face-remapping-alist works (Bug#6091).
 +
 +2010-07-06  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32.c, w32console.c, w32fns.c, w32font.c, w32heap.c, w32inevt.c
 +      * w32menu.c, w32proc.c, w32reg.c, w32select.c, w32term.c
 +      * w32uniscribe.c, w32xfns.c: Convert function definitions to standard C.
 +
 +2010-07-06  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * xterm.c (x_get_keysym_name): Change type of parameter to int.
 +      * lisp.h: Declare x_get_keysym_name.
 +      * keyboard.c (modify_event_symbol): Don't declare
 +      x_get_keysym_name here.
 +
 +2010-07-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * ecrt0.c: Revert conversion to standard C.
 +
 +2010-07-05  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * vm-limit.c (memory_warnings):
 +      * keyboard.c (modify_event_symbol):
 +      * floatfns.c (rounding_driver, ceiling2, floor2, truncate2)
 +      (round2, emacs_rint):
 +      * process.c (send_process, old_sigpipe): Convert function
 +      definitions and declarations to standard C.
 +
 +2010-07-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * buffer.c, cm.c, eval.c, keyboard.c, process.c, term.c, vm-limit.c,
 +      * xdisp.c: Convert function definitions to standard C.
 +
 +      * cm.c (cmputc): Arg C is now int, not char.
 +      * process.c (Fmake_network_process): Cast sockaddr_in* to sockaddr*.
 +
 +2010-07-05  James Cloos  <cloos@jhcloos.com>
 +
 +      * xterm.h (Xatom_net_wm_name, Xatom_net_wm_icon_name): New.
 +
 +      * xterm.c (x_term_init): Intern the _NET_WM_NAME and
 +      _NET_WM_ICON_NAME atoms.
 +
 +      * xfns.c (x_set_name_internal): Set the EWMH _NET_WM_NAME
 +      and _NET_WM_ICON_NAME properties, too, matching what is
 +      done in the Gtk+ case.
 +
 +2010-07-05  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (XTring_bell, XTset_terminal_window): Fix wrong prototype.
 +
 +      * xsmfns.c (SSDATA): New macro.
 +      (smc_save_yourself_CB, x_session_initialize): Use SSDATA for strings
 +      passed to strlen/strcpy/strcat.
 +      (create_client_leader_window): Surround with #ifndef USE_GTK.
 +      Cast 7:th arg to XChangeProperty to (unsigned char *).
 +
 +      * xsettings.c (something_changedCB, parse_settings)
 +      (apply_xft_settings): Reformat prototype.
 +      (something_changedCB, init_gconf): Remove unused variable i.
 +      (read_settings): Remove unused variable long_len.
 +
 +      * gtkutil.c (xg_get_pixbuf_from_pix_and_mask)
 +      (xg_get_image_for_pixmap, create_dialog)
 +      (xg_get_file_with_selection, xg_get_file_name, update_cl_data)
 +      (menuitem_highlight_callback, make_menu_item)
 +      (xg_create_one_menuitem, create_menus, xg_update_menu_item)
 +      (xg_create_scroll_bar, xg_update_scrollbar_pos)
 +      (xg_set_toolkit_scroll_bar_thumb, xg_tool_bar_button_cb)
 +      (xg_tool_bar_proxy_help_callback, xg_tool_bar_detach_callback)
 +      (xg_tool_bar_attach_callback, xg_tool_bar_help_callback)
 +      (xg_tool_bar_item_expose_callback): Reformat prototype.
 +      (xg_update_menubar): GList *group => GSList *group.
 +      (xg_modify_menubar_widgets): Initialize witem to 0, check witem != 0
 +      before use.
 +      (update_frame_tool_bar): 4:th param to xg_get_image_for_pixmap changed
 +      to GTK_IMAGE (wimage).
 +
 +2010-07-05  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * atimer.c: Use "" instead of <> for local includes for
 +      consistency with the rest of the code.
 +
 +      * xsmfns.c (smc_save_yourself_CB, smc_error_handler):
 +      * xrdb.c (get_system_name):
 +      * window.c (shrink_windows):
 +      * syntax.c (forw_comment):
 +      * scroll.c (calculate_scrolling, calculate_direct_scrolling)
 +      (ins_del_costs):
 +      * mem-limits.h (start_of_data):
 +      * lread.c (readevalloop):
 +      * gtkutil.c (xg_dialog_response_cb, xg_get_file_with_chooser)
 +      (xg_get_file_with_selection, xg_update_menubar, xg_update_submenu):
 +      * frame.c (x_get_focus_frame):
 +      * floatfns.c (fmod_float):
 +      * fileio.c (choose_write_coding_system):
 +      * emacs.c (fatal_error_signal, init_cmdargs, argmatch)
 +      (malloc_initialize_hook, sort_args, synchronize_locale):
 +      * doprnt.c (doprnt):
 +      * dired.c (compile_pattern):
 +      * data.c (fmod_float):
 +      * chartab.c (map_sub_char_table, map_sub_char_table_for_charset)
 +      (map_char_table_for_charset):
 +      * charset.c (define_charset_internal):
 +      * alloc.c (Fgarbage_collect): Convert declarations or definitions
 +      to standard C.
 +
 +2010-07-04  Tetsurou Okazaki  <okazaki@be.to>  (tiny change)
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lread.c (read1): Fix up last change to not mess up `c'.
 +
 +2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * strftime.c: Revert conversion to standard C (2010-07-04T07:50:25Z!dann@ics.uci.edu).
 +
 +2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Fix prototypes.
 +
 +      * atimer.c (start_atimer): Use EMACS_TIME, not struct timeval.
 +      * dired.c (file_name_completion_stat): Use DIRENTRY, not struct dirent.
 +      * fileio.c (read_non_regular, read_non_regular_quit): Add Lisp_Object
 +      arg, as required by internal_condition_case_1.
 +      * print.c (strout): Use const char* for arg PTR.
 +      * regex.c (bcmp_translate): Use RE_TRANSLATE_TYPE, not Lisp_Object.
 +      (analyse_first): Fix "const const".
 +      * sysdep.c (set_file_times): Use EMACS_TIME, not struct timeval.
 +      * unexelf.c (round_up, find_section): Use ElfW macro for arguments.
 +      * xgselect.c (xg_select): Use SELECT_TYPE, EMACS_TIME.
 +
 +2010-07-04  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * alloc.c: Convert function definitions to standard C.
 +      * atimer.c:
 +      * bidi.c:
 +      * bytecode.c:
 +      * callint.c:
 +      * callproc.c:
 +      * casefiddle.c:
 +      * casetab.c:
 +      * category.c:
 +      * ccl.c:
 +      * character.c:
 +      * charset.c:
 +      * chartab.c:
 +      * cmds.c:
 +      * coding.c:
 +      * composite.c:
 +      * data.c:
 +      * dbusbind.c:
 +      * dired.c:
 +      * dispnew.c:
 +      * doc.c:
 +      * doprnt.c:
 +      * ecrt0.c:
 +      * editfns.c:
 +      * fileio.c:
 +      * filelock.c:
 +      * filemode.c:
 +      * fns.c:
 +      * font.c:
 +      * fontset.c:
 +      * frame.c:
 +      * fringe.c:
 +      * ftfont.c:
 +      * ftxfont.c:
 +      * gtkutil.c:
 +      * indent.c:
 +      * insdel.c:
 +      * intervals.c:
 +      * keymap.c:
 +      * lread.c:
 +      * macros.c:
 +      * marker.c:
 +      * md5.c:
 +      * menu.c:
 +      * minibuf.c:
 +      * prefix-args.c:
 +      * print.c:
 +      * ralloc.c:
 +      * regex.c:
 +      * region-cache.c:
 +      * scroll.c:
 +      * search.c:
 +      * sound.c:
 +      * strftime.c:
 +      * syntax.c:
 +      * sysdep.c:
 +      * termcap.c:
 +      * terminal.c:
 +      * terminfo.c:
 +      * textprop.c:
 +      * tparam.c:
 +      * undo.c:
 +      * unexelf.c:
 +      * window.c:
 +      * xfaces.c:
 +      * xfns.c:
 +      * xfont.c:
 +      * xftfont.c:
 +      * xgselect.c:
 +      * xmenu.c:
 +      * xrdb.c:
 +      * xselect.c:
 +      * xsettings.c:
 +      * xsmfns.c:
 +      * xterm.c: Likewise.
 +
 +2010-07-03  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * msdos.c (IT_set_frame_parameters): Fix setting of colors in
 +      frames other than the initial one.  Fix reversal of colors when
 +      `reverse' is specified in the frame parameters.
 +      Call update_face_from_frame_parameter instead of
 +      internal-set-lisp-face-attribute.  Initialize screen colors from
 +      initial_screen_colors[] when f->default_face_done_p is zero,
 +      instead of depending on being called with default-frame-alist as
 +      the alist argument.
 +
 +      * xfaces.c (update_face_from_frame_parameter): Move out of
 +      HAVE_WINDOW_SYSTEM portion.  Condition window-system only parts
 +      with HAVE_WINDOW_SYSTEM.
 +
 +      * msdos.c (IT_set_frame_parameters): Set menu-bar-lines according
 +      to menu-bar-mode, if not set in the frame parameters or in
 +      default-frame-alist.
 +
 +      * w32console.c (sys_tputs): Adjust argument list to prototype in
 +      term.c.
 +
 +2010-07-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * lisp.h (memory_warnings): Fix prototype.
 +
 +      * cm.h (evalcost): Fix prototype.
 +
 +      * cm.c (evalcost): Fix arg type.
 +
 +2010-07-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * term.c (term_clear_mouse_face, Fidentity):
 +      * syssignal.h (signal_handler_t):
 +      * lisp.h (memory_warnings):
 +      * coding.h (preferred_coding_system):
 +      * cm.h (evalcost):
 +      * blockinput.h (reinvoke_input_signal): Convert to standard C prototypes.
 +
 +2010-07-02  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dosfns.h (msdos_stdcolor_idx, msdos_stdcolor_name): Remove P_
 +      from prototypes.
 +
 +      * msdos.h (load_pixmap): Don't define away.
 +
 +2010-07-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * lisp.h:
 +      * atimer.h: Remove define for P_.
 +
 +      * alloc.c: Remove __P and P_ from .c and .m files.
 +      * atimer.c:
 +      * buffer.c:
 +      * callint.c:
 +      * category.c:
 +      * charset.c:
 +      * chartab.c:
 +      * cm.c:
 +      * coding.c:
 +      * composite.c:
 +      * data.c:
 +      * dired.c:
 +      * dispnew.c:
 +      * doc.c:
 +      * editfns.c:
 +      * emacs.c:
 +      * eval.c:
 +      * fileio.c:
 +      * filelock.c:
 +      * fns.c:
 +      * font.c:
 +      * fontset.c:
 +      * frame.c:
 +      * ftfont.c:
 +      * ftxfont.c:
 +      * gmalloc.c:
 +      * gtkutil.c:
 +      * image.c:
 +      * indent.c:
 +      * intervals.c:
 +      * keyboard.c:
 +      * keymap.c:
 +      * lread.c:
 +      * marker.c:
 +      * menu.c:
 +      * minibuf.c:
 +      * print.c:
 +      * process.c:
 +      * scroll.c:
 +      * search.c:
 +      * sound.c:
 +      * strftime.c:
 +      * syntax.c:
 +      * sysdep.c:
 +      * term.c:
 +      * terminal.c:
 +      * textprop.c:
 +      * unexalpha.c:
 +      * w32console.c:
 +      * w32fns.c:
 +      * w32font.c:
 +      * w32menu.c:
 +      * w32term.c:
 +      * w32uniscribe.c:
 +      * window.c:
 +      * xdisp.c:
 +      * xfaces.c:
 +      * xfns.c:
 +      * xfont.c:
 +      * xftfont.c:
 +      * xmenu.c:
 +      * xselect.c:
 +      * xterm.c: Likewise.
 +
 +      Remove P_ and __P macros.
 +      * atimer.h: Remove P_ and __P macros.
 +      * buffer.h:
 +      * category.h:
 +      * ccl.h:
 +      * character.h:
 +      * charset.h:
 +      * cm.h:
 +      * coding.h:
 +      * composite.h:
 +      * dispextern.h:
 +      * disptab.h:
 +      * dosfns.h:
 +      * font.h:
 +      * fontset.h:
 +      * frame.h:
 +      * gtkutil.h:
 +      * indent.h:
 +      * intervals.h:
 +      * keyboard.h:
 +      * keymap.h:
 +      * lisp.h:
 +      * macros.h:
 +      * md5.h:
 +      * menu.h:
 +      * msdos.h:
 +      * nsterm.h:
 +      * puresize.h:
 +      * region-cache.h:
 +      * syntax.h:
 +      * syssignal.h:
 +      * systime.h:
 +      * termhooks.h:
 +      * w32font.h:
 +      * w32term.h:
 +      * widget.h:
 +      * window.h:
 +      * xgselect.h:
 +      * xsettings.h:
 +      * xterm.h: Likewise.
 +
 +2010-07-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * lisp.h: Document that USE_LISP_UNION_TYPE is now enabled using autoconf.
 +
 +      Cleanup old code.
 +      * dired.c (BSD4_3): Remove all uses, redundant with BSD4_2.
 +      * syssignal.h: Remove code for Lynx, not supported anymore.
 +      * vm-limit.c: Remove unused code the depends on emacs not being
 +      defined and NO_LIM_DATA being defined.
 +      * mem-limits.h: Remove dead code.
 +
 +2010-07-01  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * window.c (Fwindow_absolute_pixel_edges): Doc fix.
 +
 +      * window.c (calc_absolute_offset, Fwindow_absolute_pixel_edges)
 +      (Fwindow_inside_absolute_pixel_edges): New functions (bug#5721).
 +
 +      * nsfns.m (compute_tip_xy): Do not convert coordinates from frame
 +      parameters, they are already absolute.
 +
 +      * nsterm.m (x_set_window_size, initFrameFromEmacs):
 +      Rename FRAME_NS_TOOLBAR_HEIGHT to FRAME_TOOLBAR_HEIGHT.
 +
 +      * nsterm.h (FRAME_NS_TOOLBAR_HEIGHT): Rename to FRAME_TOOLBAR_HEIGHT.
 +
 +      * nsmenu.m (update_frame_tool_bar, free_frame_tool_bar):
 +      Update FRAME_TOOLBAR_HEIGHT.
 +
 +      * nsmenu.m (free_frame_tool_bar, update_frame_tool_bar):
 +      Add BLOCK/UNBLOCK_INPUT so asserts don't trigger.
 +
 +2010-06-30  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.c (get_future_frame_param, Fmake_terminal_frame):
 +      Don't check default-frame-alist.
 +
 +2010-06-30  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * process.c (create_process): Avoid using invalid file descriptors.
 +
 +      * callproc.c (child_setup): Avoid closing a file descriptor twice.
 +
 +2010-06-30  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c (Ffont_get_system_normal_font, Ffont_get_system_font):
 +      Improve documentation.  Return font regardless of use_system_font.
 +      (syms_of_xsettings): Improve documentation for font-use-system-font.
 +
 +2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfaces.c (realize_face): Garbage the frame if a face is removed
 +      (Bug#6593).
 +
 +2010-07-05  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * keyboard.c: Remove duplicate <setjmp.h>.
 +      (read_key_sequence): Remove volatile qualifiers.
 +
 +2010-07-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * dispextern.h (FRINGE_HEIGHT_BITS): New define.
 +      (struct glyph_row): New members left_fringe_offset and
 +      right_fringe_offset.
 +
 +      * xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap
 +      specially.
 +      * w32term.c (w32_draw_fringe_bitmap): Likewise.
 +      * nsterm.m (ns_draw_fringe_bitmap): Likewise.
 +
 +      * fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here.
 +      Take account of bitmap offset.
 +      (draw_window_fringes): Take account of window vscroll.
 +      (update_window_fringes): Likewise.  Extend top-aligned top indicator
 +      or bottom-aligned bottom indicator to adjacent rows if it doesn't fit
 +      in one row.  Don't set redraw_fringe_bitmaps_p outside row comparison.
 +      Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325).
 +
 +2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * w32fns.c (Qtooltip): Declare.
 +      Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
 +
 +2010-07-03  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid
 +      grab on just Press (Bug#6499).
 +
 +2010-07-02  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * frame.c (Qtooltip): New var.
 +      (delete_frame): Use it.  Fix faulty if statement.  Don't update
 +      mode line for tooltip frames.  Suggested by Martin Rudalics.
 +
 +      * xfns.c (x_create_tip_frame):
 +      * w32fns.c (x_create_tip_frame): Use it.
 +
 +2010-06-17  Naohiro Aota  <naota@elisp.net>  (tiny change)
 +
 +      * xftfont.c (xftfont_open): Check font width one by one also when
 +      spacing is dual.
 +
 +      * ftfont.c (ftfont_open): Ditto.
 +
 +2010-06-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * s/sol2-6.h (INHIBIT_X11R6_XIM): Remove, handled by configure now.
 +
 +      * Makefile.in (CANNOT_DUMP): Update for configure name change.
 +
 +      * s/freebsd.h (USE_MMAP_FOR_BUFFERS):
 +      * s/irix6-5.h (USE_MMAP_FOR_BUFFERS):
 +      * s/darwin.h (SYSTEM_MALLOC):
 +      * s/sol2-10.h (SYSTEM_MALLOC): Move to configure.
 +
 +2010-06-29  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * nsfns.m: extern declare Vmenu_bar_mode, Vtool_bar_mode.
 +      (ns_get_screen): Don't assign integer to f.
 +      (Fx_display_color_cells): Declarations before statements.
 +
 +2010-06-28  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xfns.c (x_default_font_parameter): Remove got_from_system
 +      (Bug#6526).
 +
 +      * xterm.h (gtk_widget_get_window, gtk_widget_get_mapped)
 +      (gtk_adjustment_get_page_size, gtk_adjustment_get_upper):
 +      New defines based on what configure finds.
 +
 +      * xterm.c (XTflash): Use gtk_widget_get_window.
 +      (xg_scroll_callback): Use gtk_adjustment_get_upper and
 +      gtk_adjustment_get_page_size.
 +      (handle_one_xevent): Use gtk_widget_get_mapped.
 +      (x_term_init): Remove HAVE_GTK_MULTIDISPLAY and associated error
 +      messages.
 +
 +      * xmenu.c (create_and_show_popup_menu): Call gtk_widget_get_mapped.
 +
 +      * gtkutil.h: Replace HAVE_GTK_FILE_BOTH with
 +      HAVE_GTK_FILE_SELECTION_NEW.
 +
 +      * gtkutil.c (xg_display_open, xg_display_close):
 +      Remove HAVE_GTK_MULTIDISPLAY, it is always defined.
 +      (xg_display_open): Return type is void.
 +      (gtk_widget_set_has_window)
 +      (gtk_dialog_get_action_area, gtk_dialog_get_content_area)
 +      (gtk_widget_get_sensitive, gtk_adjustment_set_page_size)
 +      (gtk_adjustment_set_page_increment)
 +      (gtk_adjustment_get_step_increment): #define these if not found
 +      by configure.
 +      (remove_submenu): New define based on Gtk+ version.
 +      (xg_set_cursor, xg_frame_resized, xg_event_is_for_scrollbar):
 +      Use gtk_widget_get_window.
 +      (xg_frame_resized, xg_update_frame_menubar): Use gtk_widget_get_mapped.
 +      (xg_create_frame_widgets): Use gtk_widget_set_has_window.
 +      (create_dialog): Use gtk_dialog_get_action_area and
 +      gtk_dialog_get_content_area.
 +      (xg_uses_old_file_dialog, xg_get_file_name): Remove HAVE_GTK_FILE_BOTH
 +      and HAVE_GTK_FILE_CHOOSER_DIALOG_NEW.  File chooser is always
 +      available, so checking for HAVE_GTK_FILE_SELECTION_NEW is enough.
 +      (xg_update_menubar, xg_update_submenu, xg_show_toolbar_item):
 +      Use g_object_ref and g_object_unref.
 +      (xg_update_menu_item, xg_tool_bar_menu_proxy):
 +      Use gtk_widget_get_sensitive.
 +      (xg_update_submenu): Use remove_submenu.
 +      (xg_update_scrollbar_pos): Don't use GtkFixedChild, use child
 +      properties instead to get old x and y position.
 +      (xg_set_toolkit_scroll_bar_thumb): Use gtk_adjustment_get_page_size,
 +      gtk_adjustment_get_step_increment, gtk_adjustment_set_page_size,
 +      gtk_adjustment_set_step_increment and gtk_adjustment_set_page_increment.
 +      (xg_get_tool_bar_widgets): New function.
 +      (xg_tool_bar_menu_proxy, xg_show_toolbar_item)
 +      (update_frame_tool_bar): Call xg_get_tool_bar_widgets.
 +      (toolbar_set_orientation): New #define based on if configure
 +      finds gtk_orientable_set_orientation.
 +      (xg_create_tool_bar): Call toolbar_set_orientation.
 +      (xg_make_tool_item, xg_show_toolbar_item): Call gtk_box_pack_start
 +      instead of gtk_box_pack_start_defaults.
 +
 +2010-06-28  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * cmds.c (Fdelete_backward_char): Move into Lisp.
 +
 +2010-06-27  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * s/freebsd.h (BSD4_2): Remove redundant definition.
 +      bsd-common.h defines it already.
 +
 +2010-06-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfns.c (Fx_create_frame): Don't consult X resouces when setting
 +      menu-bar-lines and tool-bar-lines.  Use menu-bar-mode and
 +      tool-bar-mode, which are now set using these X resources at
 +      startup, to determine the defaults (Bug#2249).
 +
 +      * w32fns.c (Fx_create_frame):
 +      * nsfns.m (Fx_create_frame): Likewise.
 +
 +      * frame.c (Vmenu_bar_mode, Vtool_bar_mode): New vars.
 +
 +2010-06-24  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * gtkutil.c (xg_update_scrollbar_pos):
 +      Avoid C99 mid-block variable declaration.
 +
 +2010-06-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (x_scroll_bar_create): Remove call to xg_show_scroll_bar.
 +
 +      * gtkutil.h (xg_show_scroll_bar): Remove.
 +
 +      * gtkutil.c (xg_update_scrollbar_pos): Show/hide scroll bar as needed
 +      if height is less than scroll bar min size.
 +      (xg_show_scroll_bar): Remove, show moved to xg_update_scrollbar_pos.
 +
 +      * xfns.c (x_default_font_parameter): Try to open font from system
 +      before using it (bug#6478).  Rename got_from_gconf to got_from_system.
 +
 +2010-06-22  Keith Packard  <keithp@keithp.com>  (tiny change)
 +
 +      * font.c (font_parse_fcname): Allow . for sizes like 7.5 (bug#6437).
 +
 +2010-06-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (try_scrolling): When scroll-conservatively is set to
 +      most-positive-fixnum, be extra accurate when scrolling window
 +      start, to avoid missing the cursor line.
 +
 +2010-06-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (try_scrolling): Compute the limit for searching point
 +      in forward scroll from scroll_max, instead of an arbitrary limit
 +      of 10 screen lines.
 +      See http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00766.html
 +      and
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00773.html
 +      for details.
 +
 +2010-06-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * editfns.c (Fbyte_to_string): Pacify compiler.
 +
 +2010-06-16  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * lread.c (read1): Phase out old-style backquotes a bit more.
 +
 +2010-06-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * makefile.w32-in ($(BLD)/bidi.$(O)): Depend on biditype.h and
 +      bidimirror.h.
 +
 +      * deps.mk (bidi.o): Depend on biditype.h and bidimirror.h.
 +
 +      * bidi.c (bidi_initialize): Remove explicit initialization of
 +      bidi_type_table; include biditype.h instead.  Don't support
 +      entries whose second codepoint is zero.  Initialize bidi_mirror_table.
 +      (bidi_mirror_char): Use bidi_mirror_table.
 +
 +      * biditype.h: New file.
 +
 +      * bidimirror.h: New file.
 +
 +      * window.c (syms_of_window): Doc fix (bug#6409).
 +
 +2010-06-12  Romain Francoise  <romain@orebokech.com>
 +
 +      * Makefile.in (lisp, shortlisp): Use new location of vc-hooks and
 +      ediff-hook.
 +
 +2010-06-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * editfns.c (Fbyte_to_string): Pacify compiler.
 +
 +      * m/ibms390x.h: Rather than duplicating ibms390.h, just include it.
 +
 +2010-06-26  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * alloc.c (Fmake_byte_code): Don't access undefined argument
 +      (Bug#6517).
 +
 +2010-06-25  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xdisp.c (next_element_from_image): Ensure that after-strings are
 +      read the next time we hit handle_stop (Bug#1336).
 +
 +2010-06-23  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * lread.c (read1): Signal error if #s is not followed by paren.
 +
 +2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image.c (free_image): Mark frame as garbaged (Bug#6426).
 +
 +      * keymap.c (Fdefine_key): Doc fix (Bug#6460).
 +
 +2010-06-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * editfns.c (Fbyte_to_string): Pacify compiler.
 +
 +2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
 +      Check `object's type before accessing its guts.
 +
 +2010-06-09  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * s/usg5-4.h: Fix previous change.
 +      Suggested by Lawrence Mitchell <wence@gmx.li>
 +
 +2010-06-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * minibuf.c (Fall_completions): Add more checks.
 +
 +2010-06-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * minibuf.c (Fall_completions): Check COLLECTION's size (bug#6378).
 +
 +2010-06-08  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * lread.c (X_OK): Remove, unused.
 +
 +      * dispnew.c: Remove obsolete comment.
 +
 +      Remove INCLUDED_FCNTL.
 +      * xterm.c (INCLUDED_FCNTL):
 +      * callproc.c (INCLUDED_FCNTL):
 +      * alloc.c (INCLUDED_FCNTL):
 +      * systty.h (INCLUDED_FCNTL): Remove all uses, not needed anymore.
 +      (emacs_get_tty, emacs_set_tty): Declare unconditionally.
 +
 +2010-06-07  Martin Rudalics  <rudalics@gmx.at>
 +
 +      * window.c (Fselect_window): Move `record_buffer' up to the
 +      beginning of this function, so the buffer gets recorded
 +      even if the selected window does not change.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-06/msg00137.html
 +
 +2010-06-07  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * cmds.c (Fforward_char, Fbackward_char): Fix typos in docstrings.
 +      (Fforward_line, Fbeginning_of_line): Reflow docstrings.
 +
 +2010-06-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove BSTRING related code, all platforms define it.
 +      * s/usg5-4.h (BSTRING): Remove definition.
 +      * s/template.h (BSTRING):
 +      * s/msdos.h (BSTRING):
 +      * s/ms-w32.h (BSTRING):
 +      * s/hpux10-20.h (BSTRING):
 +      * s/gnu-linux.h (BSTRING):
 +      * s/darwin.h (BSTRING):
 +      * s/cygwin.h (BSTRING):
 +      * s/bsd-common.h (BSTRING):
 +      * s/aix4-2.h (BSTRING): Likewise.
 +      * sysdep.c: Remove code depending on BSTRING not being defined.
 +
 +2010-06-05  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Remove obsolete macro BASE_LEADING_CODE_P.
 +      * character.h (BASE_LEADING_CODE_P): Remove.
 +      * regex.c [!emacs] (BASE_LEADING_CODE_P): Remove.
 +      * buffer.c (Fset_buffer_multibyte):
 +      * indent.c (scan_for_column, compute_motion):
 +      * insdel.c (count_combining_before, count_combining_after):
 +      Use LEADING_CODE_P instead of BASE_LEADING_CODE_P.
 +
 +2010-06-04  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Turn `directory-sep-char' into a noop.
 +
 +      * lisp.h [WINDOWSNT] (Vdirectory_sep_char): Don't declare.
 +      (DIRECTORY_SEP): Define unconditionally.
 +
 +      * s/ms-w32.h (DIRECTORY_SEP): Remove.
 +
 +      * emacs.c (decode_env_path): Don't check DIRECTORY_SEP,
 +      call dostounix_filename directly.
 +
 +      * fileio.c (CORRECT_DIR_SEPS): Remove.
 +      (Ffile_name_directory, directory_file_name, Fexpand_file_name)
 +      (Fsubstitute_in_file_name): Use dostounix_filename instead.
 +      (file_name_as_directory): Use dostounix_filename, DIRECTORY_SEP.
 +      (syms_of_fileio) <directory-sep-char>: Move to subr.el.
 +
 +      * w32proc.c (CORRECT_DIR_SEPS): Remove.
 +      (Fw32_short_file_name, Fw32_long_file_name): Use dostounix_filename.
 +
 +2010-06-03  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * process.c (conv_lisp_to_sockaddr): Fix conversion of IPv4 address.
 +      (Bug#6346)
 +
 +2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * ccl.c (Fccl_program_p): Fix typo in docstring.
 +
 +2010-06-03  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Move UNEXEC definition to autoconf.
 +      * s/usg5-4.h (UNEXEC): Remove, move to configure.in.
 +      * s/sol2-10.h (UNEXEC):
 +      * s/irix6-5.h (UNEXEC):
 +      * s/hpux10-20.h (UNEXEC):
 +      * s/gnu-linux.h (UNEXEC):
 +      * s/darwin.h (UNEXEC):
 +      * s/cygwin.h (UNEXEC):
 +      * s/bsd-common.h (UNEXEC):
 +      * s/aix4-2.h (UNEXEC):
 +      * m/alpha.h (UNEXEC): Likewise.
 +      * Makefile.in (UNEXEC_OBJ): Define using @UNEXEC_OBJ@.
 +
 +2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      Remove obsolete pre-unicode2 macros.
 +      * character.h (MULTIBYTE_FORM_LENGTH, PARSE_MULTIBYTE_SEQ): Remove.
 +      * composite.c (composition_reseat_it):
 +      * data.c (Faset):
 +      * fns.c (Ffillarray):
 +      * regex.c (re_search_2): Use BYTES_BY_CHAR_HEAD.
 +      [!emacs] (BYTES_BY_CHAR_HEAD): Define instead of MULTIBYTE_FORM_LENGTH.
 +
 +2010-06-03  Juri Linkov  <juri@jurta.org>
 +
 +      * buffer.c (Fother_buffer): Add CHECK_FRAME.
 +      (Fswitch_to_buffer): Remove unused variable `err'.
 +
 +2010-06-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * m/template.h (NO_SOCK_SIGIO): Remove, no longer used.
 +
 +      * m/hp800.h (alloca) [__NetBSD__ && __GNUC__]: No need to define it,
 +      now that AH_BOTTOM does it.
 +
 +      * m/hp800.h (HAVE_ALLOCA):
 +      * m/ibms390x.h (HAVE_ALLOCA): Do not define, no longer needed.
 +
 +      * m/ia64.h, s/gnu-linux.h, s/gnu.h, s/netbsd.h, s/usg5-4.h:
 +      Remove NOT_C_CODE tests, it is always true now.
 +
 +2010-06-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Fix config.h includes.
 +      * xsettings.c:
 +      * xgselect.c:
 +      * nsterm.m:
 +      * nsselect.m:
 +      * nsimage.m:
 +      * nsfont.m:
 +      * nsfns.m:
 +      * dbusbind.c: Use #include <config.h> instead of "config.h" as all
 +      other files do.
 +
 +      * gmalloc.c: Remove BROKEN_PROTOTYPES reference, unused.
 +
 +      * s/sol2-6.h: Remove obsolete comments.
 +
 +      Remove unnecessary alloca.h includes.
 +      * keymap.c: Do not include alloca.h, config.h does that.
 +      * sysdep.c: Likewise.  Do not define fwrite, not used.
 +
 +2010-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * sysdep.c (child_setup_tty): Move the non-canonical initialization to
 +      the HAVE_TERMIO where it belongs (bug#6149).
 +
 +2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * keymap.c (Fwhere_is_internal): Fix handling of remapping (in thread
 +      of bug#6305).
 +
 +2010-05-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_move_to_visually_next): Make sure the sentinel
 +      state is always cached (bug#6306).
 +
 +2010-05-29  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix cursor motion in bidi-reordered continued lines.
 +      * xdisp.c (try_cursor_movement): Backup to non-continuation line
 +      only after finding point's row.  Fix the logic.  Rewrite the loop
 +      over continuation lines in bidi-reordered buffers.
 +      Return CURSOR_MOVEMENT_MUST_SCROLL upon failure to find a suitable row,
 +      rather than CURSOR_MOVEMENT_CANNOT_BE_USED.
 +
 +2010-05-28  Michael Albinus  <michael.albinus@gmx.de>
 +
 +      * fileio.c (Fdelete_file): Pass TRASH arg to handler call.
 +
 +2010-05-28  Kenichi Handa  <handa@m17n.org>
 +
 +      * font.c (font_delete_unmatched): Check Vface_ignored_fonts.
 +      Don't sheck SPEC if it is nil.
 +      (font_list_entities): Call font_delete_unmatched if
 +      Vface_ignored_fonts is non-nil.  (Bug#6287)
 +
 +2010-05-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBES): Remove $LOADLIBES, it is never set.
 +
 +2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * fileio.c (Fdelete_file): Change meaning of optional arg to mean
 +      whether to trash.
 +      (internal_delete_file, Frename_file): Callers changed.
 +      (delete_by_moving_to_trash): Doc fix.
 +      (Fdelete_directory_internal): Don't move to trash.
 +
 +      * callproc.c (delete_temp_file):
 +      * buffer.c (Fkill_buffer): Callers changed.
 +
 +      * lisp.h: Update prototype.
 +
 +2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xdisp.c (redisplay_window): After redisplay, check if point is
 +      still valid before setting it (Bug#6177).
 +
 +2010-05-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in, autodeps.mk, deps.mk, ns.mk:
 +      Convert comments to Makefile format.
 +
 +      * Makefile.in (bootstrap-clean): No more Makefile.c.
 +
 +2010-05-26  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (YMF_PASS_LDFLAGS): Remove.
 +      (temacs${EXEEXT}): Use PRE_EDIT_LDFLAGS, POST_EDIT_LDFLAGS.
 +
 +      * Makefile.in (NS_IMPL_GNUSTEP_INC, NS_IMPL_GNUSTEP_TEMACS_LDFLAGS):
 +      Remove.
 +      (TEMACS_LDFLAGS): Do not use NS_IMPL_GNUSTEP_TEMACS_LDFLAGS.
 +
 +2010-05-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.c (composition_compute_stop_pos): Fix condition for
 +      backward scanning.
 +
 +2010-05-25  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (@NS_IMPL_GNUSTEP_INC@, NS_IMPL_GNUSTEP_TEMACS_LDFLAGS):
 +      Move before TEMACS_LDFLAGS.
 +      (TEMACS_LDFLAGS): Use $NS_IMPL_GNUSTEP_TEMACS_LDFLAGS.
 +      (temacs${EXEEXT}): Do not use $NS_IMPL_GNUSTEP_TEMACS_LDFLAGS.
 +
 +      * Makefile.in (NOT_C_CODE): No longer define.
 +      (config.h): No longer include.
 +
 +      * Makefile.in (LD_SWITCH_SYSTEM_TEMACS): Move definition after some
 +      variables it may reference.
 +
 +      * Makefile.in (LD_SWITCH_SYSTEM_EXTRA): Remove.
 +      (TEMACS_LDFLAGS): Remove LD_SWITCH_SYSTEM_EXTRA.
 +
 +2010-05-25  Kenichi Handa  <handa@m17n.org>
 +
 +      * dispextern.h (struct composition_it): New members rule_idx and
 +      charpos.
 +
 +      * xdisp.c (set_iterator_to_next): While scanning backward, assume
 +      that the character positions of IT point the last character of the
 +      current grapheme cluster.
 +      (next_element_from_composition): Don't change character positions
 +      of IT.
 +      (append_composite_glyph): Set glyph->charpos to
 +      it->cmp_it.charpos.
 +
 +      * composite.c (autocmp_chars): Change the first argument to RULE,
 +      and try composition with RULE only.
 +      (composition_compute_stop_pos): Record the index number of the
 +      composition rule in CMP_IT->rule_idx.
 +      (composition_reseat_it): Call autocmp_chars repeatedly until the
 +      correct rule of the composition is found.
 +      (composition_update_it): Set CMP_IT->charpos.  Assume the CHARPOS
 +      is at the last character of the current grapheme cluster when
 +      CMP_IT->reversed_p is nonzero.
 +
 +2010-05-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * editfns.c (Fbyte_to_string): New function.
 +
 +2010-05-24  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * process.c (Fmake_network_process): Set :host to nil if it's not used.
 +      Suggested by Masatake YAMATO <yamato@redhat.com>.
 +
 +2010-05-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * dispextern.h (init_iterator): Sync prototype with changed definition.
 +
 +2010-05-20  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 +
 +      * s/netbsd.h: If terminfo is found, use it in preference to
 +      termcap.  (Bug#6190)  [Backport from trunk]
 +
 +2010-05-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Redesign and reimplement bidi-aware edge positions of glyph rows.
 +
 +      * dispextern.h (struct glyph_row): New members minpos and maxpos.
 +      (MATRIX_ROW_START_CHARPOS, MATRIX_ROW_START_BYTEPOS)
 +      (MATRIX_ROW_END_CHARPOS, MATRIX_ROW_END_BYTEPOS): Reference minpos
 +      and maxpos members instead of start.pos and end.pos, respectively.
 +
 +      * xdisp.c (display_line): Compare IT_CHARPOS with the position in
 +      row->start.pos, rather than with MATRIX_ROW_START_CHARPOS.
 +      (cursor_row_p): Use row->end.pos rather than MATRIX_ROW_END_CHARPOS.
 +      (try_window_reusing_current_matrix, try_window_id):
 +      Use ROW->minpos rather than ROW->start.pos.
 +      (init_from_display_pos, init_iterator): Use EMACS_INT for
 +      character and byte positions.
 +      (find_row_edges): Rename from find_row_end.  Accept additional
 +      arguments for minimum and maximum buffer positions seen by
 +      display_line for this row.  Don't use iterator to find the
 +      position following the maximum one; instead, increment the
 +      position found by display_line directly.  Fix logic; eol_pos
 +      should be tested before the rest.  Handle the case of characters
 +      delivered from display vector (bug#6036).  Fix tests related to
 +      it->method.  Handle the truncated_on_right_p rows.
 +      (RECORD_MAX_MIN_POS): New macro.
 +      (display_line): Use it to record the minimum and maximum buffer
 +      positions for glyphs in the row being assembled.  Record the
 +      position of the newline that terminates the line.  If word wrap is
 +      in effect, restore minimum and maximum positions seen up to the
 +      wrap point, when iterator returns to it.
 +      (try_window_reusing_current_matrix): Give up if in bidi-reordered
 +      row and cursor not already at point.  Restore original pre-bidi
 +      code for unidirectional buffers.
 +
 +      * dispnew.c (increment_row_positions, check_matrix_invariants):
 +      Increment and check row->start.pos and row->end.pos, in addition
 +      to MATRIX_ROW_START_CHARPOS and MATRIX_ROW_END_CHARPOS.
 +
 +      * .gdbinit (prowlims): Display row->minpos and row->maxpos.
 +      Display truncated_on_left_p and truncated_on_right_p flags.
 +      Formatting fixes.
 +      (pmtxrows): Display the ordinal number of each row.  Don't display
 +      rows beyond the last one.
 +
 +      * bidi.c (bidi_cache_iterator_state): Don't zero out new_paragraph:
 +      it is not copied by bidi_copy_it.
 +
 +2010-05-22  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32.c (sys_write): Break writes into chunks smaller than 32MB.
 +      (Bug#6237)
 +
 +2010-05-22  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * image.c (Fimage_flush): Rename from image-refresh.
 +
 +2010-05-21  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xdisp.c (redisplay_internal): Clear caches even if redisplaying
 +      just one window.
 +
 +      * image.c (Vimage_cache_eviction_delay): Decrease to 300.
 +      (clear_image_cache): If the number of cached images is unusually
 +      large, decrease the cache eviction delay (Bug#6230).
 +
 +2010-05-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (${ns_appdir}, ${ns_appbindir}Emacs, ns-app):
 +      Move these rules to ns.mk.
 +      * ns.mk: New file.
 +
 +      * Makefile.in (../src/$(OLDXMENU), $(OLDXMENU)): Always define rules.
 +
 +      * Makefile.in (CANNOT_DUMP): New, set by configure.
 +      (emacs${EXEEXT}, bootstrap-emacs${EXEEXT}): Use $CANNOT_DUMP.
 +
 +2010-05-20  Juri Linkov  <juri@jurta.org>
 +
 +      * fileio.c (Fdelete_file): Change interative spec to use
 +      `read-file-name' like in `find-file-read-args' where the default
 +      value is `default-directory' instead of `buffer-file-name'.
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00533.html
 +
 +2010-05-20  Kevin Ryde  <user42@zip.com.au>
 +
 +      * keyboard.c (Vlast_command, Vkeyboard_translate_table)
 +      (Voverriding_terminal_local_map, Vsystem_key_alist)
 +      (Vlocal_function_key_map): Fix manual link in docstring (Bug#6224).
 +
 +2010-05-20  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (DEPDIR): New constant.
 +      (DEPFLAGS): Set with configure, not cpp.
 +      (MKDEPDIR): New, set by configure.
 +      (.c.o, .m.o, ecrt0.o): Use $MKDEPDIR.
 +      (clean): Use $DEPDIR.
 +      (deps_frag): Include from configure.
 +      Move static/dynamic dependency stuff to deps.mk/autodeps.mk.
 +      * deps.mk, autodeps.mk: New files, extracted from Makefile.in.
 +
 +      * bidi.c (bidi_cache_shrink, bidi_cache_iterator_state):
 +      Fix reallocation of the cache.  (Bug#6210)
 +
 +2010-05-19  Glenn Morris  <rgm@gnu.org>
 +
 +      * s/msdos.h (ORDINARY_LINK): Move to sed2v2.inp.
 +
 +      * Makefile.in (LD, YMF_PASS_LDFLAGS): Set with configure, not cpp.
 +      (GNULIB_VAR): Remove.
 +      (LIBES): Use LIB_GCC instead of GNULIB_VAR.
 +
 +      * m/ibms390x.h (LINKER):
 +      * m/macppc.h (LINKER) [GNU_LINUX]:
 +      * s/aix4-2.h (ORDINARY_LINK):
 +      * s/cygwin.h (LINKER):
 +      * s/darwin.h (ORDINARY_LINK):
 +      * s/gnu.h (ORDINARY_LINK):
 +      * s/netbsd.h (LINKER):
 +      * s/usg5-4.h (ORDINARY_LINK):
 +      Move to configure.
 +
 +      * s/aix4-2.h (LINKER): Remove; this file sets ORDINARY_LINK.
 +
 +2010-05-18  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to
 +      prevent stack overflow if number of arguments is too large
 +      (Bug#6214).
 +
 +2010-05-18  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * charset.c (load_charset_map_from_file): Don't call close after fclose.
 +
 +2010-05-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * s/gnu-linux.h: Combine two conditionals.
 +
 +      * Makefile.in (otherobj): Include $(VMLIMIT_OBJ) separately from
 +      $(POST_ALLOC_OBJ).
 +
 +      * Makefile.in (RALLOC_OBJ): New, set by configure.
 +      (rallocobj): Replace with the previous variable.
 +      (otherobj): Use $RALLOC_OBJ.
 +
 +      * s/gnu.h (REL_ALLOC) [DOUG_LEA_MALLOC]:
 +      * s/gnu-linux.h (REL_ALLOC) [DOUG_LEA_MALLOC]: Move undef to configure.
 +
 +      * Makefile.in (GMALLOC_OBJ, VMLIMIT_OBJ): New, set by configure.
 +      (gmallocobj, vmlimitobj): Replace with previous two variables.
 +      (otherobj): Use $GMALLOC_OBJ, $VMLIMIT_OBJ.
 +
 +2010-05-17  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (OLDXMENU_DEPS): New, set by configure.
 +      (stamp-oldxmenu): Use $OLDXMENU_DEPS.
  
 -      * eval.c (Flet, Feval, Fapply, apply_lambda): Use SAFE_ALLOCA
 -      (Bug#6214).
 +2010-05-16  Glenn Morris  <rgm@gnu.org>
  
 -2010-08-14  Jan Djärv  <jan.h.d@swipnet.se>
 +      * Makefile.in (${ns_appbindir}Emacs, ns-app): Always define these rules.
  
 -      * doc.c (Fsnarf_documentation): Set skip_file only if p[1] is S.
 +      * Makefile.in (clean): Get rid of HAVE_NS conditional.
  
 -2010-08-13  Jan Djärv  <jan.h.d@swipnet.se>
 +      * Makefile.in (ns_appdir, ns_appbindir): Now configure adds the
 +      trailing "/".
  
 -      * doc.c (Fsnarf_documentation): Initialize skip_file before
 -      build-files test.
 +      * Makefile.in (TEMACS_LDFLAGS2): New, set by configure.
 +      (temacs${EXEEXT}): Combine the NS_IMPL_GNUSTEP case with the default.
  
 -2010-08-09  Peter O'Gorman <pogma@thewrittenword.com>  (tiny change)
 +      * Makefile.in (GNUSTEP_SYSTEM_LIBRARIES): Remove, unused.
 +      (NS_IMPL_GNUSTEP_TEMACS_LDFLAGS): New, set by configure.
 +      (LD) [NS_IMPL_GNUSTEP]: Set to $(CC) -rdynamic.
 +      (temacs${EXEEXT}): Remove $LOCALCPP, never defined or referenced.
 +      Make most of the NS_IMPL_GNUSTEP case the same as the default case.
  
 -      * s/hpux10-20.h (HAVE_TERMIOS, NO_TERMIO, ORDINARY_LINK):
 -      New definitions.
 -      (HAVE_TERMIO): Remove.
 +      * Makefile.in (temacs${EXEEXT}) [!NS_IMPL_GNUSTEP]:
 +      Remove ${STARTFLAGS}, nothing ever sets it.
 +
 +2010-05-16  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * m/ia64.h (UNEXEC): Remove, set in s/*.h.
 +
 +2010-05-16  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBX_BASE): Always define.
 +
 +      * Makefile.in (LIBX_OTHER): Move out of cpp section.
 +
 +      * Makefile.in (LIBXT): Always define.
 +
 +2010-05-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (OLDXMENU, LIBXMENU, LIBX_OTHER): Always define.
 +
 +      * Makefile.in (FONT_DRIVERS): Remove, replace with $FONT_OBJ.
 +      (obj, SOME_MACHINE_OBJECTS): Use $FONT_OBJ.
 +
 +2010-05-15  Ken Raeburn  <raeburn@raeburn.org>
 +
 +      * lisp.h (XFLOAT_DATA): Use "0?x:x" to generate an rvalue.  (Bug#5916)
 +      (LISP_MAKE_RVALUE) [!USE_LISP_UNION_TYPE && !__GNUC__]: Likewise.
 +
 +      * emacs.c (main): Initialize initial-environment and
 +      process-environment before generating from env, not after.
 +
 +      Handle --version reasonably in CANNOT_DUMP configuration.
 +      * emacs.c (emacs_version, emacs_copyright): New string variables.
 +      (Vemacs_version, Vemacs_copyright): New Lisp_Object variables.
 +      (syms_of_emacs): Defvar them, and initialize them from the C
 +      string variables.
 +      (main): If initialization hasn't been done, print initial version
 +      info from the C strings, instead of starting an interactive session.
 +
 +2010-05-15  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_paragraph_init): Don't leave alone garbage values
 +      of bidi_it->paragraph_dir.  Call bidi_initialize if needed.
 +      (bidi_paragraph_init): Remove redundant assertion that we are at
 +      the beginning of a line after call to bidi_find_paragraph_start.
 +
 +      * xdisp.c (Fcurrent_bidi_paragraph_direction): New function.
 +      (syms_of_xdisp): Defsubr it.
 +
 +      * cmds.c (Fforward_char, Fbackward_char): Doc fix.
 +
 +      * Makefile.in: Fix MSDOS-related comments.
 +
 +2010-05-15  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (OLDXMENU_TARGET): New, set by configure.
 +      (really-lwlib, really-oldXMenu): Always define.
 +      ($OLDXMENU): Depend on $OLDXMENU_TARGET.
 +
 +      * Makefile.in: Simplify cpp conditional.
 +
 +      * Makefile.in (${ns_appdir}): Simplify using umask.
 +
 +      * Makefile.in (${ns_appdir}): Remove references to CVS-related files.
 +
 +2010-05-14  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (specbind): Remove left-over duplicate test.
 +      Disallow let-binding frame-local vars.  Add comment.
 +
 +2010-05-14  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Make the cache of bidi iterator states dynamically allocated.
 +      * bidi.c (bidi_cache_shrink): New function.
 +      (bidi_init_it): Call it.
 +      (bidi_cache_iterator_state): Enlarge the cache if needed.
 +
 +      * bidi.c (bidi_move_to_visually_next): Rename from
 +      bidi_get_next_char_visually.  All callers changed.
 +
 +2010-05-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * dispextern.h (struct composition_it): New member reversed_p.
 +
 +      * composite.c (composition_compute_stop_pos): Search backward if
 +      ENDPOS < CHARPOS.
 +      (composition_reseat_it): Handle the case that ENDPOS < CHARPOS.
 +      Set CMP_IT->reversed_p.
 +      (composition_update_it): Pay attention to CMP_IT->reversed_p.
 +
 +      * xdisp.c (set_iterator_to_next):
 +      Call composition_compute_stop_pos with negative ENDPOS if we are
 +      scanning backward.  Call composition_compute_stop_pos if scan
 +      direction is changed.
 +      (next_element_from_buffer): Call composition_compute_stop_pos with
 +      negative ENDPOS if we are scanning backward.
 +      (next_element_from_composition): Pay attention to
 +      IT->cmp_it.reversed_p.
 +
 +2010-05-14  Kenichi Handa  <handa@m17n.org>
 +
 +      * font.c (font_range): Return the range for the font found at first.
 +
 +2010-05-14  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Always define.
 +
 +      * Makefile.in (mktime, X11, register): Move undefs to configure.
 +
 +      * Makefile.in (MSDOS_OBJ): Default to empty, let msdos scripts set it.
 +      (MSDOS_X_OBJ): New variable.
 +      (MSDOS_SUPPORT_REAL): New constant.
 +      (MSDOS_SUPPORT): Set as a variable, not with cpp.
 +      (obj): Use MSDOS_X_OBJ.
 +      (lisp): Use MSDOS_SUPPORT as a variable.
 +
 +      * Makefile.in (REAL_MOUSE_SUPPORT): New constant.
 +      (GPM_MOUSE_SUPPORT): Now it's a constant.
 +      (MOUSE_SUPPORT, TOOLTIP_SUPPORT, WINDOW_SUPPORT): Set with configure,
 +      not cpp.
 +
 +      * Makefile.in (@NS_IMPL_GNUSTEP_INC@): Use in place of #ifdef.
 +      (ns_appresdir): Remove, unused.
 +
 +      * Makefile.in (SHELL): Move outside cpp section.
 +
 +      * s/netbsd.h (AMPERSAND_FULL_NAME): Remove (defined in AH_BOTTOM).
 +
 +2010-05-13  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (FONT_DRIVERS): Place with other HAVE_X_WINDOWS stuff.
 +      (TOOLTIP_SUPPORT): Place with other HAVE_WINDOW_SYSTEM stuff.
 +
 +      * Makefile.in (FONT_DRIVERS): If HAVE_X_WINDOWS is defined,
 +      HAVE_WINDOW_SYSTEM must be too.
 +
 +      * Makefile.in (WINNT_SUPPORT): Remove, nt build does not use this file.
 +      (lisp): Remove WINNT_SUPPORT.
 +
 +      * Makefile.in (OLDXMENU, LIBXMENU) [!HAVE_MENUS]:
 +      Let configure set these variables (to empty) in this case as well.
 +
 +      * Makefile.in (LD_SWITCH_X_SITE): Define as a variable, not via cpp.
 +      (LIBX_BASE): Use $LD_SWITCH_X_SITE.
 +
 +      * Makefile.in (C_SWITCH_X_SYSTEM, C_SWITCH_X_SITE, LIB_STANDARD)
 +      (LIB_MATH, FONTCONFIG_CFLAGS, FONTCONFIG_LIBS, FREETYPE_CFLAGS)
 +      (FREETYPE_LIBS, LIBOTF_CFLAGS, LIBOTF_LIBS, M17N_FLT_CFLAGS)
 +      (M17N_FLT_LIBS, GNU_OBJC_CFLAGS, GNUSTEP_SYSTEM_LIBRARIES, LIBGPM)
 +      (LIBRESOLV, UNEXEC_OBJ): For clarity, define variables to hold
 +      the values output by configure.
 +      (ALL_CFLAGS, obj, LIBES, temacs${EXEEXT}): Use the above variables.
 +
 +2010-05-12  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (YMF_PASS_LDFLAGS, LD, LINKER): Simplify the logic.
 +      (LINKER_WAS_SPECIFIED): Remove.
 +
 +      * Makefile.in (LIB_GCC): Set using configure, not cpp.
 +      (GNULIB_VAR) [!ORDINARY_LINK]: Always set to $LIB_GCC.
 +      * m/arm.h (LIB_GCC) [GNU_LINUX]:
 +      * s/cygwin.h (LIB_GCC):
 +      * s/freebsd.h (LIB_GCC):
 +      * s/gnu-linux.h (LIB_GCC):
 +      * s/msdos.h (LIB_GCC):
 +      * s/netbsd.h (LIB_GCC):
 +      Move to configure.
 +
 +2010-05-11  Karel Klíč  <kklic@redhat.com>
 +
 +      * ftfont.c: Fix incorrect parentheses of #if condition for
 +      definining M17N_FLT_USE_NEW_FEATURE.
 +
 +2010-05-11  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBS_SYSTEM) [MSDOS]: Do not reset.
 +      * s/msdos.h (MSDOS_LIBS_SYSTEM): Remove.
 +
 +2010-05-10  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (init_iterator): Don't turn on bidi reordering in
 +      unibyte buffers.  See
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-05/msg00263.html.
 +
 +2010-05-10  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBS_SYSTEM): Set using configure, not cpp.
 +      (LIBS_SYSTEM) [MSDOS]: Reset with MSDOS_LIBS_SYSTEM.
 +      (LIBES): Use LIBS_SYSTEM as a variable.
 +      * s/msdos.h (LIBS_SYSTEM): Rename to MSDOS_LIBS_SYSTEM.  Always define.
 +      * s/aix4-2.h (LIBS_SYSTEM):
 +      * s/freebsd.h (LIBS_SYSTEM):
 +      * s/hpux10-20.h (LIBS_SYSTEM):
 +      * s/sol2-6.h (LIBS_SYSTEM):
 +      * s/unixware.h (LIBS_SYSTEM):
 +      Move to configure.
 +
 +      * s/aix4-2.h (MAIL_USE_LOCKF):
 +      * s/bsd-common.h (MAIL_USE_FLOCK):
 +      * s/darwin.h (MAIL_USE_FLOCK):
 +      * s/gnu-linux.h (MAIL_USE_FLOCK):
 +      * s/irix6-5.h (MAIL_USE_FLOCK):
 +      * s/template.h (MAIL_USE_FLOCK):
 +      Move to configure.
 +
 +2010-05-08  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Version 23.2 released.
 +
 +2010-05-08  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * composite.c (autocmp_chars): Save point as marker before calling
 +      auto-composition-function (Bug#5984).
 +
 +      * lisp.h (restore_point_unwind): Add prototype.
 +
 +      * fileio.c (restore_point_unwind): Remove static attribute.
 +
 +2010-05-08  Kenichi Handa  <handa@m17n.org>
 +
 +      * ftfont.c (M17N_FLT_USE_NEW_FEATURE): Define it if we can use the
 +      new feature of libotf and m17n-flt.
 +      (ftfont_check_otf) [M17N_FLT_USE_NEW_FEATURE]:
 +      Call OTF_check_features even if no specific feature is given.
 +      (PACK_OTF_TAG) [M17N_FLT_USE_NEW_FEATURE]: New macro.
 +      (ftfont_drive_otf) [M17N_FLT_USE_NEW_FEATURE]: Handle the case
 +      that OUT is NULL.  Use OTF_drive_gsub_with_log and
 +      OTF_drive_gpos_with_log instead of OTF_drive_gsub and
 +      OTF_drive_gpos.
 +      (ftfont_try_otf) [M17N_FLT_USE_NEW_FEATURE]: New function.
 +      (ftfont_shape_by_flt) [M17N_FLT_USE_NEW_FEATURE]:
 +      Setup mflt_enable_new_feature and mflt_try_otf.
 +
 +2010-05-08  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c (Ftool_bar_get_system_style): Correct comment.
 +
 +      * gtkutil.c (xg_pack_tool_bar): Change show_all to show for handle
 +      box and toolbar (Bug #6139).
 +      (xg_create_tool_bar): Remove comment (Bug #6139).
 +      (xg_make_tool_item): Remove gtk_widget_show_all (Bug #6139).
 +      (xg_show_toolbar_item): Add gtk_widget_show for weventbox (Bug #6139).
 +
 +2010-05-08  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/eval.$(O), $(BLD)/w32fns.$(O)):
 +      Update dependencies.
 +
 +2010-05-08  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * fringe.c (update_window_fringes): Set up truncation bitmaps for
 +      R2L lines.
 +
 +2010-05-08  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (THIS_IS_MAKEFILE): Remove, unused.
 +
 +      * Makefile.in (LIBS_TERMCAP): Set with configure, not cpp.
 +      (TERMCAP_OBJ): New, set by configure, replacing termcapobj.
 +      (termcapobj): Replace with TERMCAP_OBJ.
 +      (otherobj): Use $TERMCAP_OBJ instead of $termcapobj.
 +      (LIBES): Use LIBS_TERMCAP as a variable.
 +
 +      * s/freebsd.h (osreldate.h): No longer include, since this file
 +      does not use __FreeBSD_version any more.
 +
 +      * s/aix4-2.h (TERMINFO):
 +      * s/cygwin.h (TERMINFO):
 +      * s/darwin.h (TERMINFO, LIBS_TERMCAP) [HAVE_LIBNCURSES]:
 +      * s/freebsd.h (TERMINFO, LIBS_TERMCAP):
 +      * s/gnu-linux.h (TERMINFO, LIBS_TERMCAP) [HAVE_LIBNCURSES]:
 +      * s/gnu.h (TERMINFO, LIBS_TERMCAP) [HAVE_LIBNCURSES]:
 +      * s/hpux10-20.h (TERMINFO, LIBS_TERMCAP):
 +      * s/irix6-5.h (TERMINFO):
 +      * s/netbsd.h (LIBS_TERMCAP):
 +      * s/openbsd.h (TERMINFO, LIBS_TERMCAP):
 +      * s/sol2-6.h (LIBS_TERMCAP) [!TERMINFO]:
 +      * s/usg5-4.h (TERMINFO):
 +      Move to configure.
 +
 +2010-05-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * eval.c (unbind_to): Don't unbind a local binding into the global
 +      binding when the local binding disappeared.  Inversely, don't unbind
 +      a global binding into a newly created local binding.
 +      * data.c (set_internal): Make its `buf' arg into a `where' arg so we
 +      can specify the frame to use, when applicable.  Adjust callers.
 +
 +2010-05-07  Vincent Belaïche  <vincent.belaiche@gmail.com>
 +            Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * floatfns.c (Fisnan, Fcopysign, Ffrexp, Fldexp): New functions.
 +
 +2010-05-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * w32fns.c: Include w32.h.
 +      (Fw32_shell_execute): Decode the error message before passing it
 +      to `error'.  (Bug#6126)
 +
 +      * msdos.c (dos_set_window_size):
 +      * w16select.c (Fx_selection_exists_p): Use `Fsymbol_value (foo)'
 +      instead of `XSYMBOL (foo)->value'.
 +
 +2010-05-07  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix the MS-DOS build, broken by autoconfiscation.
 +
 +      * Makefile.in: Don't use Make-style comments past the "start of
 +      cpp stuff" line.
 +      (MSDOS_OBJ): Remove xmenu.o (it is now defined by XMENU_OBJ).
 +
 +      * s/msdos.h (UNEXEC): Don't define (@unexec@ in Makefile.in is
 +      edited directly by msdos/sed1v2.inp).
 +
 +2010-05-07  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LD_SWITCH_SYSTEM): Set with configure, not cpp.
 +      (LD_SWITCH_SYSTEM_EXTRA): New variable, set by configure.
 +      (TEMACS_LDFLAGS): Use $LD_SWITCH_SYSTEM and $LD_SWITCH_SYSTEM_EXTRA,
 +      move out of cpp section.
 +      * s/freebsd.h (LD_SWITCH_SYSTEM):
 +      * s/gnu-linux.h (LD_SWITCH_SYSTEM):
 +      * s/netbsd.h (LD_SWITCH_SYSTEM):
 +      * s/openbsd.h (LD_SWITCH_SYSTEM): Move to configure.in.
 +
 +2010-05-07  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Define LIB_STANDARD and START_FILES using autoconf.
 +      * s/usg5-4.h (LIB_STANDARD):
 +      * s/netbsd.h (START_FILES):
 +      * s/irix6-5.h (LIB_STANDARD):
 +      * s/hpux10-20.h (LIB_STANDARD, START_FILES):
 +      * s/gnu-linux.h (START_FILES, LIB_STANDARD):
 +      * s/freebsd.h (START_FILES):
 +      * s/darwin.h (START_FILES):
 +      * s/cygwin.h (START_FILES):
 +      * s/aix4-2.h (LIB_STANDARD):
 +      * m/ibmrs6000.h (START_FILES): Remove, move logic to configure.in.
 +      * Makefile.in (STARTFILES): Rename to START_FILES, define using
 +      autoconf, not cpp.
 +
 +2010-05-06  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove NEED_BSDTTY and NEED_UNISTD_H.
 +      * s/hpux10-20.h (NEED_BSDTTY): Remove.
 +      * s/aix4-2.h (NEED_UNISTD_H): Remove.
 +      * systty.h: Simplify conditionals for including <sys/bsdtty.h>,
 +      <sys/ptyio.h> and <unistd.h>.
 +
 +      * emacs.c (main): Remove NO_DIR_LIBRARY conditional, unused.
 +
 +      * Makefile.in (STARTFILES): Conditionally define to make the usage clear.
 +      * s/gnu.h (START_FILES): Remove empty definition.
 +
 +2010-05-06  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xterm.c (x_draw_image_relief): Move declaration of extra to beginning.
 +
 +2010-05-06  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (CPP, LN_S): Remove unused variables.
 +
 +2010-05-05  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * syntax.c (Fchar_syntax): Check the arg is a character (bug#6080).
 +
 +2010-05-05  Lawrence Mitchell  <wence@gmx.li>
 +
 +      * m/sparc.h: Fix typo in earlier change.
 +
 +2010-05-04  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Misc tweaks.
 +      * eval.c (Fdefvaralias): Remove unintended nested if.
 +      (internal_condition_case_2, internal_condition_case_n): Use ANSI type.
 +
 +2010-05-04  Bernhard Herzog  <bh@intevation.de>  (tiny change)
 +
 +      * xsmfns.c (smc_save_yourself_CB): strlen(client_id) => strlen(cwd).
 +
 +2010-05-04  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove BSD_PGRPS.
 +      * s/bsd-common.h (BSD_PGRPS): Remove undef.
 +      * s/gnu-linux.h (BSD_PGRPS): Remove.
 +      * term.c (dissociate_if_controlling_tty):
 +      * sysdep.c (narrow_foreground_group, widen_foreground_group)
 +      (init_sys_modes, reset_sys_modes):
 +      * emacs.c (main):
 +      * callproc.c (Fcall_process, child_setup): Remove code depending
 +      on BSD_PGRPS.
 +
 +      Remove POSIX_SIGNALS.
 +      * s/usg5-4.h (POSIX_SIGNALS):
 +      * s/netbsd.h (POSIX_SIGNALS):
 +      * s/msdos.h (POSIX_SIGNALS):
 +      * s/ms-w32.h (POSIX_SIGNALS):
 +      * s/hpux11.h (POSIX_SIGNALS):
 +      * s/gnu.h (POSIX_SIGNALS):
 +      * s/gnu-linux.h (POSIX_SIGNALS):
 +      * s/freebsd.h (POSIX_SIGNALS):
 +      * s/darwin.h (POSIX_SIGNALS):
 +      * s/cygwin.h (POSIX_SIGNALS):
 +      * s/aix4-2.h (POSIX_SIGNALS): Remove definition.
 +      * s/unixware.h:
 +      * s/sol2-6.h: Remove comments on POSIX_SIGNALS.
 +      * process.c (create_process):
 +      * syssignal.h:
 +      * sysdep.c (wait_for_termination, init_signals):
 +      * process.c (create_process):
 +      * msdos.c: POSIX_SIGNALS is always defined on all platforms,
 +      remove all code that assumes the contrary.
 +
 +2010-05-04  Glenn Morris  <rgm@gnu.org>
 +
 +      * s/gnu-linux.h (LD_SWITCH_SYSTEM): Use LD_SWITCH_X_SITE_AUX as a shell
 +      variable.
 +      * s/netbsd.h (LD_SWITCH_SYSTEM_tmp): Remove.
 +      (LD_SWITCH_SYSTEM): Use $LD_SWITCH_X_SITE_AUX_RPATH.
 +      * s/openbsd.h (LD_SWITCH_SYSTEM_tmp): Remove.
 +      (LD_SWITCH_SYSTEM): Use $LD_SWITCH_X_SITE_AUX_RPATH instead of
 +      LD_SWITCH_SYSTEM_tmp.
 +      * Makefile.in (LD_SWITCH_X_SITE_AUX, LD_SWITCH_X_SITE_AUX_RPATH):
 +      New variables, set by configure.
 +
 +      * s/aix4-2.h (LD_SWITCH_SYSTEM_TEMACS): Move to configure.in.
 +      * s/darwin.h (HEADERPAD_EXTRA, LIBS_NSGUI): Remove.
 +      (LD_SWITCH_SYSTEM_TEMACS): Move to configure.in.
 +      * Makefile.in (LD_SWITCH_SYSTEM_TEMACS): New variable, set by configure.
 +      (TEMACS_LDFLAGS): Use $LD_SWITCH_SYSTEM_TEMACS.
 +
 +      * s/aix4-2.h (C_SWITCH_SYSTEM):
 +      * m/alpha.h (C_SWITCH_MACHINE):
 +      Move to configure.in.
 +      * Makefile.in (C_SWITCH_MACHINE, C_SWITCH_SYSTEM):
 +      New variables, set by configure.
 +      (ALL_CFLAGS): Use $C_SWITCH_MACHINE and $C_SWITCH_SYSTEM in place of
 +      $c_switch_machine and $c_switch_system.
 +
 +2010-05-04  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * s/hpux10-20.h (LIB_STANDARD): New definition.
 +      * Makefile.in (ORDINARY_LINK): Remove setting LIB_STANDARD based
 +      on it, not used anymore.
 +
 +2010-05-03  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * eval.c (internal_condition_case_n): Rename from
 +      internal_condition_case_2.
 +      (internal_condition_case_2): New function.
 +
 +      * xdisp.c (safe_call): Use internal_condition_case_n.
 +
 +      * fileio.c (Fdelete_file, internal_delete_file): New arg FORCE.
 +      (internal_delete_file, Frename_file): Callers changed.
 +
 +      * buffer.c (Fkill_buffer):
 +      * callproc.c (delete_temp_file): Callers changed (Bug#6070).
 +
 +      * lisp.h: Update prototypes.
 +
 +2010-05-03  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBX_EXTRA, LIBX_BASE): New variables.
 +      (LIBXT_OTHER, LIBX_OTHER): New, set by configure.
 +      (LIBXT): Set with configure, not cpp.
 +      (LIBX): Remove.
 +      (LIBES): Replace $LIBX with $LIBX_BASE and $LIBX_OTHER.
 +
 +2010-05-02  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * m/amdx86-64.h (START_FILES, LIB_STANDARD): Remove.
 +      The FreeBSD is not needed, the default works, Solaris version is
 +      not needed, and the remaining case is not supported by configure.
 +
 +2010-05-02  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsmfns.c (CHDIR_OPT): New define.
 +      (smc_save_yourself_CB): Add CHDIR_OPT to options to use when
 +      restarting emacs.
 +
 +      * xterm.c (x_connection_closed): Call Fkill_emacs instead of
 +      shut_down_emacs.
 +
 +      * emacs.c (USAGE1): Mention --chdir.
 +      (main): Handle --chdir.
 +      (standard_args): Add --chdir.
 +      (fatal_error_signal): Call Fkill_emacs for SIGTERM and SIGHUP (Bug
 +      #5552).
 +
 +2010-05-01  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove LD_SWITCH_MACHINE.
 +      * Makefile.in (LD_SWITCH_MACHINE): Remove definition, unused.
 +      (TEMACS_LDFLAGS): Do not use LD_SWITCH_MACHINE.
 +
 +      Clean up IRIX code.
 +      * m/iris4d.h (TERMINFO, FIRST_PTY_LETTER): Move definitions ...
 +      * s/irix6-5.h (TERMINFO, FIRST_PTY_LETTER): ... here.
 +
 +      Clean up AIX code.
 +      * m/ibmrs6000.inp: Remove file, unused.
 +      * m/ibmrs6000.h (IBMR2AIX): Remove, unused.
 +      (LD_SWITCH_MACHINE): Rename to LD_SWITCH_SYSTEM_TEMACS, and move
 +      definition ...
 +      * s/aix4-2.h (LD_SWITCH_SYSTEM_TEMACS): ... here.
 +
 +      * sysdep.c (child_setup_tty, init_sys_modes): Remove !IBMR2AIX code,
 +      unused.
 +
 +2010-05-01  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Emulate POSIX_SIGNALS on MS-Windows.
 +
 +      * s/ms-w32.h (POSIX_SIGNALS, struct sigaction, SIG_BLOCK)
 +      (SIG_SETMASK, SIG_UNBLOCK): Define.
 +
 +      * sysdep.c (sys_signal) [WINDOWSNT]: #ifdef away.
 +      (wait_for_termination) [WINDOWSNT]: Move MS-Windows specific code
 +      from non-POSIX_SIGNALS section to POSIX_SIGNALS section.
 +
 +      * w32.c (sigemptyset, sigaddset, sigfillset, sigprocmask):
 +      New stubs.
 +
 +      Miscellaneous fixes of bidi display.
 +
 +      * xdisp.c (find_row_end): New function, refactored from display_line.
 +      (display_line): Use it.
 +      (extend_face_to_end_of_line): In almost-filled rows, extend only
 +      if the row is R2L and not continued.
 +      (display_line): Fix prepending of truncation glyphs to R2L rows.
 +      Preserve overlay and string info in row->end.
 +      (insert_left_trunc_glyphs): Support addition of left truncation
 +      glyphs to R2L rows.
 +      (set_cursor_from_row): Don't place cursor on the vertical border
 +      glyph between adjacent windows.  Fix a crash when a display string
 +      is continued to the next line.  Don't return zero if cursor was
 +      found by `cursor' property of a display string.
 +      (try_cursor_movement): Don't assume that row->end == (row+1)->start,
 +      test for that explicitly.
 +
 +2010-05-01  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (gmallocobj, rallocobj, vmlimitobj): Initialize to null,
 +      for clarity.
 +      (OTHER_OBJ): Remove.
 +      (PRE_ALLOC_OBJ, POST_ALLOC_OBJ): New, set by configure.
 +      (otherobj): Use PRE_ALLOC_OBJ, POST_ALLOC_OBJ rather than OTHER_OBJ.
 +
 +2010-05-01  Karel Klíč  <kklic@redhat.com>
 +
 +      * fileio.c (Ffile_selinux_context): Context functions may return null.
 +
 +2010-04-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * s/gnu.h (POSIX_SIGNALS, START_FILES): New definitions.
 +
 +2010-04-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (vmlimitobj) [!SYSTEM_MALLOC]: New variable.  (Bug#6065)
 +      (OTHER_OBJ): Define as a separate variable, for clarity.
 +
 +2010-04-30  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c: Include limits.h and update file comment.
 +
 +2010-04-30  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (OLDXMENU, LIBXMENU) [HAVE_MENUS]:
 +      Set with configure, not cpp.
 +      (LIBW): Remove, replace with $TOOLKIT_LIBW.
 +
 +      * Makefile.in (mallocobj): Remove.
 +      (otherobj): Simplify using @OTHER_OBJ@.
 +
 +      * Makefile.in (dispnew.o, frame.o, fringe.o, font.o, fontset.o)
 +      (keyboard.o, window.o, xdisp.o, xfaces.o, menu.o):
 +      Don't bother making nsgui.h dependency platform-specific.
 +
 +      * Makefile.in (nsfns.o): Remove duplicate nsgui.h dependency.
 +
 +2010-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * process.c (read_process_output, exec_sentinel): Don't burp if the
 +      sentinel/filter kills the current buffer (bug#6060).
 +
 +      Fix wrong-docstring problem introduced with hash-consing.  (Bug#6008)
 +      * eval.c (Fautoload): Set doc to a unique number rather than to 0.
 +      Remove unused var `args'.
 +      * lisp.h (XSETCARFASTINT, XSETCDRFASTINT): Remove.
 +      (LOADHIST_ATTACH): Wrap with do...while to avoid surprises for callers.
 +      * doc.c (store_function_docstring): Use XSETCAR.
 +
 +2010-04-28  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (BASE_WINDOW_SUPPORT, X_WINDOW_SUPPORT): New variables.
 +      (WINDOW_SUPPORT) [HAVE_WINDOW_SYSTEM]: Use them.
 +
 +      * Makefile.in (CYGWIN_OBJ): Set with configure, not cpp.
 +
 +      * Makefile.in (GPM_MOUSE_SUPPORT): New, set by configure.
 +      (MOUSE_SUPPORT) [!HAVE_MOUSE]: Use $GPM_MOUSE_SUPPORT.
 +
 +      * Makefile.in (FONT_OBJ): New, set by configure.
 +      (FONT_DRIVERS): Use $FONT_OBJ.
 +
 +      * Makefile.in (LIBXMU): Set with configure, not cpp.
 +      * s/aix4-2.h (LIBXMU):
 +      * s/hpux10-20.h (LIBXMU):
 +      Remove definition, now set in configure.
 +
 +      * Makefile.in (NS_OBJ, NS_SUPPORT): Set with configure, not cpp.
 +
 +      * m/amdx86-64.h [i386]: Move this test to configure.in.
 +
 +2010-04-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBXTR6): Set with configure, not cpp.
 +      * s/unixware.h (NEED_LIBW): Remove definition.
 +
 +      * Makefile.in (LUCID_LIBW, MOTIF_LIBW): Remove, replacing by...
 +      (TOOLKIT_LIBW): New, set by configure.
 +      (@X_TOOLKIT_TYPE@): No longer define it.
 +
 +      * Makefile.in (LIBXP): Remove, since included in MOTIF_LIBW.
 +      (MOTIF_LIBW): Set with configure, not cpp.
 +      * s/aix4-2.h (LIB_MOTIF):
 +      * s/gnu-linux.h (LIB_MOTIF):
 +      * s/unixware.h (LIB_MOTIF): Move to configure.in.
 +
 +2010-04-27  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Reduce CPP usage.
 +      * Makefile.in (LIB_X11_LIB): Remove, inline in the only user.
 +      (obj): Use autoconf for unexec instead of cpp.
 +      (C_SWITCH_SYSTEM, C_SWITCH_MACHINE, C_SWITCH_X_SITE):
 +      Remove definitions and undefs.  Inline definitions in the only user.
 +      (ALL_CFLAGS): Substitute C_SWITCH_X_SYSTEM using autoconf.
 +
 +2010-04-27  Glenn Morris  <rgm@gnu.org>
 +
 +      * m/amdx86-64.h (START_FILES, LIB_STANDARD): Change the logic around,
 +      since the defaults (set by the system file) are fine in most cases.
 +      [GNU_LINUX, __OpenBSD__, __NetBSD__, __APPLE__]: Remove sections.
 +      * m/ibms390x.h (START_FILES, LIB_STANDARD):
 +      * m/macppc.h (START_FILES, LIB_STANDARD) [GNU_LINUX]:
 +      * m/sparc.h (START_FILES, LIB_STANDARD) [__linux__]:
 +      Remove definitions, since they are set correctly in s/gnu-linux.h.
 +      * s/freebsd.h (START_FILES, LIB_STANDARD):
 +      * s/gnu-linux.h (START_FILES, LIB_STANDARD):
 +      * s/hpux10-20.h (START_FILES):
 +      * s/netbsd.h (START_FILES, LIB_STANDARD, START_FILES_1, END_FILES_1):
 +      Use $CRT_DIR in place of fixed /usr/lib, /lib directories.
 +
 +      * Makefile.in (LIBXP, LUCID_LIBW, WIDGET_OBJ): Set via configure.
 +      (MOTIF_LIBW): Use $LIBXP.
 +      (otherobj): Use $WIDGET_OBJ.
 +
 +2010-04-26  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (LIBS_MACHINE): Remove, unused.
 +
 +      Use autoconf instead of cpp for LIB_MATH.
 +      * s/darwin.h (LIB_MATH): Do not define here, move to configure.
 +      * s/cygwin.h (LIB_MATH): Likewise.
 +      * Makefile.in (LIB_MATH): Do not define with cpp.
 +      (LIBES): Use autoconf for LIB_MATH.
 +
 +2010-04-26  Kenichi Handa  <handa@m17n.org>
 +
 +      * composite.c (Ffind_composition_internal): Fix the return value
 +      for an automatic composition.
 +
 +2010-04-25  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove all NO_ARG_ARRAY uses.
 +      * fns.c (concat2, concat3, nconc2):
 +      * eval.c (apply1, call1, call2, call3, call4, call5, call6)
 +      (call7): Remove NO_ARG_ARRAY usage, assume it's always true.
 +      * m/xtensa.h (NO_ARG_ARRAY):
 +      * m/template.h (NO_ARG_ARRAY):
 +      * m/sparc.h (NO_ARG_ARRAY):
 +      * m/sh3.h (NO_ARG_ARRAY):
 +      * m/mips.h (NO_ARG_ARRAY):
 +      * m/macppc.h (NO_ARG_ARRAY):
 +      * m/iris4d.h (NO_ARG_ARRAY):
 +      * m/intel386.h (NO_ARG_ARRAY):
 +      * m/ibms390x.h (NO_ARG_ARRAY):
 +      * m/ibms390.h (NO_ARG_ARRAY):
 +      * m/ibmrs6000.h (NO_ARG_ARRAY):
 +      * m/ia64.h (NO_ARG_ARRAY):
 +      * m/hp800.h (NO_ARG_ARRAY):
 +      * m/arm.h (NO_ARG_ARRAY):
 +      * m/amdx86-64.h (NO_ARG_ARRAY):
 +      * m/alpha.h (NO_ARG_ARRAY): Remove definition.
 +
 +2010-04-25  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (display_line): Don't assume 2nd call to
 +      get_next_display_element cannot return zero.  (Bug#6030)
 +      (iterate_out_of_display_property): New function, body from pop_it.
 +      (pop_it): Use it.
 +
 +2010-04-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * m/amdx86-64.h (START_FILES, LIB_STANDARD) [__OpenBSD__]:
 +      For clarity, revert to using fixed /usr/lib rather than $CRT_DIR.
 +      (START_FILES, LIB_STANDARD) [__FreeBSD__]: Merge into the generic case,
 +      since CRT_DIR defaults to /usr/lib.  Suggested by Dan Nicolaescu.
 +
 +2010-04-24  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (display_line): Use `reseat' instead of `reseat_1', and
 +      use `get_next_display_element' and `set_iterator_to_next' to
 +      advance to the next character, when looking for the character that
 +      begins the next row.
 +
 +      * .gdbinit: Add a "set Fmake_symbol" line to force GDB to load the
 +      definition of "struct Lisp_Symbol".
 +
 +2010-04-24  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (CRT_DIR): New variable, set by configure.
 +      * m/amdx86-64.h, m/ibms390x.h (START_FILES, LIB_STANDARD):
 +      Use $CRT_DIR rather than HAVE_LIB64_DIR.  (Bug#5655)
 +
 +2010-04-23  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in: Remove C_SWITCH_X_MACHINE, unused.
 +
 +      * s/cygwin.h (LIBS_DEBUG): Remove, unused.
 +
 +      Remove redundant flags.
 +      * s/freebsd.h (C_SWITCH_SYSTEM):
 +      * s/hpux10-20.h (C_SWITCH_X_SYSTEM, LD_SWITCH_X_DEFAULT):
 +      * s/netbsd.h (C_SWITCH_SYSTEM):
 +      * s/openbsd.h (LD_SWITCH_X_DEFAULT): Remove, configure takes care
 +      of these.
 +
 +      Simplify m/intel386.h.
 +      * m/intel386.h (CRT0_DUMMIES): Remove, inline value in the only
 +      user: ecrt0.c.
 +      (SOLARIS2): Remove LOAD_AVE_TYPE, LOAD_AVE_CVT, LIBS_MACHINE, unused.
 +      (USG5_4): Move LOAD_AVE_TYPE, LOAD_AVE_CVT, FSCALE definitions to
 +      the only user: s/unixware.h.
 +      * ecrt0.c: Remove #ifndef static.  Inline CRT0_DUMMIES definition
 +      from m/intel386.h.
 +      * s/unixware.h (LOAD_AVE_TYPE, LOAD_AVE_CVT, FSCALE):
 +      Definitions moved here from m/intel386.h.
 +
 +      * m/mips.h: Remove #if 0 code.
 +
 +2010-04-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix display of composed characters from L2R scripts in bidi buffers.
 +      * xdisp.c (set_iterator_to_next, next_element_from_composition):
 +      After advancing IT past the composition, resync the bidi iterator
 +      with IT's position.  (Bug#5977)
 +
 +2010-04-23  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * Makefile.in (LD_SWITCH_MACHINE_TEMACS): Remove, unused.
 +      (TEMACS_LDFLAGS): Don't use LD_SWITCH_SYSTEM_TEMACS.
 +
 +2010-04-23  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * gtkutil.c: Include xsettings.h for Ftool_bar_get_system_style.
 +
 +2010-04-23  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Support `display' text properties and overlay strings in bidi buffers.
 +      * xdisp.c (pop_it): When the stack is popped after displaying
 +      from a string, bidi-iterate to exit from the text portion covered
 +      by the `display' property or overlay.  (Bug#5988, bug#5920)
 +
 +2010-04-23  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * m/macppc.h (LD_SWITCH_SYSTEM_TEMACS): Remove #undef.
 +      (LD_SWITCH_MACHINE_TEMACS): Remove, configure sets nocombreloc.
 +
 +      * s/netbsd.h (LD_SWITCH_SYSTEM_TEMACS): Remove, configure sets nocombreloc.
 +      * s/openbsd.h (LD_SWITCH_SYSTEM_TEMACS): Remove.
 +
 +      Simplify STARTFILES definition.
 +      * s/hpux10-20.h (START_FILES): Explicitly define here instead of
 +      relying on Makefile.in to define it.
 +      * s/cygwin.h (START_FILES): Likewise.
 +      * Makefile.in (STARTFILES): Remove conditional code, not needed anymore.
 +
 +      Clean up Solaris code.
 +      * s/sol2-6.h (LD_SWITCH_SYSTEM_TEMACS, C_SWITCH_X_SYSTEM)
 +      (LIB_MOTIF): Remove, configure takes care of this.
 +      (NOT_USING_MOTIF): Remove, unused.
 +      * xrdb.c: Remove #if 0-ed #include.
 +      (SYSV): Remove conditional for old SysV.
 +      * sysdep.c (closedir): Remove conditional code for Solaris,
 +      Solaris has closedir.
 +
 +2010-04-22  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c (read_and_apply_settings): Check if current_font is
 +      NULL before strcmp (Bug#6001).
 +
 +2010-04-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Clean up HP-UX files.
 +      * m/hp800.h (NO_REMAP, VIRT_ADDR_VARIES, DATA_SEG_BITS)
 +      (DATA_START, TEXT_START, LOAD_AVE_TYPE, LOAD_AVE_CVT)
 +      (LDAV_SYMBOL, index, rindex): Move definitions only used in HP-UX ...
 +      * s/hpux10-20.h: ... to the only user, here.
 +
 +2010-04-21  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_find_paragraph_start, bidi_at_paragraph_end): Don't
 +      use buffer-local values of paragraph-start and paragraph-separate.
 +      <paragraph_start_re, paragraph_separate_re>: Rename from
 +      fallback_paragraph_start_re and fallback_paragraph_separate_re.
 +      (Bug#5992)
 +
 +2010-04-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * xsettings.c: Qmonospace_font_name, Qtool_bar_style and
 +      current_tool_bar_style are new.
 +      (store_config_changed_event): Rename from store_font_changed_event.
 +      (XSETTINGS_TOOL_BAR_STYLE): New define.
 +      (SEEN_FONT, SEEN_TB_STYLE): New enum values.
 +      (struct xsettings): Add font and tb_style, set xft stuff inside #ifdef
 +      HAVE_XFT.
 +      (something_changedCB): store_font_changed_event is now
 +      store_config_changed_event.
 +      (parse_settings): Rename from parse_xft_settings.
 +      Read non-xft xsettings outside #ifdef HAVE_XFT.
 +      (read_settings): Rename from read_xft_settings.
 +      (apply_xft_settings): Take current settings as parameter.  Do not
 +      call read_(xft)_settings.
 +      (read_and_apply_settings): New function.
 +      (xft_settings_event): Do non-xft stuff out of HAVE_XFT.
 +      Call read_and_apply_settings if there are settings to be read.
 +      (init_xsettings): Rename from init_xfd_settings.
 +      Call read_and_apply_settings unconditionally.
 +      (xsettings_initialize): Call init_xsettings.
 +      (Ftool_bar_get_system_style): New function.
 +      (syms_of_xsettings): Define Qmonospace_font_name and
 +      Qtool_bar_style.  Initialize current_tool_bar_style to nil.
 +      defsubr Stool_bar_get_system_style.  Fprovide on
 +      dynamic-setting.
 +      Move misplaced HAVE_GCONF
 +
 +      * xsettings.h (Ftool_bar_get_system_style): Declare.
 +
 +      * xdisp.c: Vtool_bar_style, tool_bar_max_label_size,
 +      Qtext, Qboth, Qboth_horiz are new.
 +      (syms_of_xdisp): Intern Qtext, Qboth, Qboth_horiz, DEFVAR
 +      Vtool_bar_style, tool_bar_max_label_size.
 +
 +      * lisp.h: Extern declare Qtext, Qboth, Qboth_horiz.
 +
 +      * keyboard.c: QClabel is new.
 +      (parse_tool_bar_item): Take out QClabel from tool bar items.
 +      Try to construct a label if ther is no QClabel.
 +      (syms_of_keyboard): Intern :label as QClabel.
 +
 +      * dispextern.h (tool_bar_item_idx): TOOL_BAR_ITEM_LABEL is new.
 +      (Vtool_bar_style, tool_bar_max_label_size, DEFAULT_TOOL_BAR_LABEL_SIZE):
 +      New.
 +
 +      * Makefile.in (SOME_MACHINE_LISP): font-setting.el renamed to
 +      dynamic-setting.el.
 +
 +      * gtkutil.c (xg_tool_bar_menu_proxy): Handle label in tool bar item.
 +      (xg_make_tool_item, xg_show_toolbar_item): New function.
 +      (update_frame_tool_bar): Take label from TOOL_BAR_ITEM_LABEL.
 +      Call xg_make_tool_item to make a tool bar item.
 +      Call xg_show_toolbar_item.  Use wtoolbar instead of x->toolbar_widget.
 +
 +      * xterm.c (x_draw_image_relief): Take Vtool_bar_button_margin
 +      into account for toolbars.
 +
 +2010-04-21  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * data.c (make_blv): Declarations before code (Bug#5993).
 +
 +2010-04-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (DBUS_OBJ, GTK_OBJ, XMENU_OBJ, XOBJ):
 +      Define using autoconf, not cpp.
 +      (LIBXSM): New variable, set by autoconf.
 +      (LIBXT): Use $LIBXSM.
 +
 +2010-04-21  Dan Nicolaescu  <local_user@dannlt>
 +
 +      Remove NOMULTIPLEJOBS, unused.
 +      * s/template.h (NOMULTIPLEJOBS):
 +      * s/msdos.h (NOMULTIPLEJOBS): Remove, unused.
 +
 +      Simplify LD_SWITCH_SYSTEM_TEMACS usage.
 +      * s/freebsd.h (LD_SWITCH_SYSTEM_TEMACS):
 +      * s/gnu-linux.h (LD_SWITCH_SYSTEM_TEMACS): Remove, configure
 +      detects -znocombreloc and passes it to the linker
 +      * s/hpux10-20.h (LD_SWITCH_SYSTEM_TEMACS): Remove, empty.
 +
 +2010-04-21  Glenn Morris  <rgm@gnu.org>
 +
 +      * Makefile.in (LIBSELINUX_LIBS): Move out of #ifdef.
 +
 +2010-04-21  Karel Klíč  <kklic@redhat.com>
 +
 +      * Makefile.in (LIBSELINUX_LIBS): New.
 +      (LIBES): Add $LIBSELINUX_LIBS.
 +      * eval.c, lisp.h (call7): New function.
 +      * fileio.c [HAVE_LIBSELINUX]: Include selinux headers.
 +      (Ffile_selinux_context, Fset_file_selinux_context):
 +      New functions.
 +      (Fcopy_file): New parameter preserve-selinux-context.
 +      (Frename_file): Preserve selinux context when renaming by copy-file.
 +
 +2010-04-21  Juanma Barranquero  <lekktu@gmail.com>
 +            Eli Zaretskii  <eliz@gnu.org>
 +
 +      Don't depend on cm.c or termcap.c on Windows, use stubs.
 +      * makefile.w32-in (OBJ1): Remove cm.$(O) and termcap.$(O).
 +      ($(BLD)/cm.$(O), $(BLD)/termcap.$(O)): Remove.
 +      * w32console.c (current_tty, cost): New vars; lifted from cm.c.
 +      (evalcost, cmputc, cmcheckmagic, cmcostinit, cmgoto, Wcm_clear)
 +      (sys_tputs, sys_tgetstr): New stubs.
 +      * s/ms-w32.h (chcheckmagic, cmcostinit, cmgoto, cmputc, Wcm_clear)
 +      (tputs, tgetstr): New; define to sys_*.
 +
 +2010-04-20  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * buffer.c (syms_of_buffer) <bidi-display-reordering>: Doc fix.
 +
 +2010-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * data.c (Fmake_variable_buffer_local, Fmake_local_variable):
 +      Just signal a warning rather than an error when inside a let.
 +      (Fmake_variable_frame_local): Add the same test.
 +
 +      * font.c (syms_of_font): Make the style table vars read-only.
 +
 +      * buffer.h (struct buffer): Remove unused var `direction_reversed'.
 +      * buffer.c (init_buffer_once, syms_of_buffer): Remove its initialization.
 +
 +      * bidi.c (bidi_initialize): Simplify fallback_paragraph_*_re init.
 +
 +2010-04-20  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Fix R2L paragraph display on TTY.
 +
 +      * xdisp.c (unproduce_glyphs): New function.
 +      (display_line): Use it when produced glyphs are discarded from R2L
 +      glyph rows.
 +      (append_composite_glyph): In R2L rows, prepend the glyph rather
 +      than appending it.
 +
 +      * term.c (append_composite_glyph): In R2L rows, prepend the glyph
 +      rather than append it.  Set up the resolved_level and bidi_type
 +      attributes of the appended glyph.
 +      (produce_special_glyphs): Mirror the backslash continuation
 +      character in R2L lines.
 +
 +      Implement display of R2L paragraphs in GUI sessions.
 +
 +      * xdisp.c [HAVE_WINDOW_SYSTEM]: Add prototype for
 +      append_stretch_glyph.
 +      (set_cursor_from_row) <cursor_x>: Remove unused variable.
 +      Fix off-by-one error in computing x at end of text in the row.
 +      (append_stretch_glyph): In reversed row, prepend the glyph rather
 +      than append it.  Set resolved_level and bidi_type of the glyph.
 +      (extend_face_to_end_of_line): If the row is reversed, prepend a
 +      stretch glyph whose width is such that the rightmost glyph will be
 +      drawn at the right margin of the window.  Fix off-by-one error on
 +      TTY frames in testing whether a line needs face extension.
 +      Fix face extension at ZV.  If this is the last glyph row, use
 +      DEFAULT_FACE_ID, to avoid painting the rest of the window with the
 +      region face.
 +      (set_cursor_from_row, display_line):
 +      Use MATRIX_ROW_CONTINUATION_LINE_P instead of testing value of
 +      row->continuation_lines_width.
 +      (next_element_from_buffer): Don't call bidi_paragraph_init if we
 +      are at ZV.  Fixes a crash when reseated to ZV by
 +      try_window_reusing_current_matrix.
 +      (display_and_set_cursor, erase_phys_cursor): Handle negative HPOS,
 +      which happens with R2L glyph rows.  Fixes a crash when inserting a
 +      character at end of an R2L line.
 +      (set_cursor_from_row): Don't be fooled by truncated rows: don't
 +      treat them as having zero-width characters.  Improve comments.
 +      Don't reverse pos_before and pos_after for reversed glyph rows.
 +      Set cursor.x to negative value when the cursor might be on the
 +      left fringe.
 +      (IT_OVERFLOW_NEWLINE_INTO_FRINGE): For R2L lines, consider the
 +      left fringe, not the right one.
 +      (notice_overwritten_cursor, draw_phys_cursor_glyph)
 +      (erase_phys_cursor): For reversed cursor_row, support cursor on
 +      the left fringe.
 +
 +      * fringe.c (update_window_fringes): For R2L rows, swap the bitmaps
 +      of continuation indicators on the fringes.
 +      (draw_fringe_bitmap): For reversed glyph rows, allow cursor on the
 +      left fringe.
 +
 +      * w32term.c (w32_draw_window_cursor): For reversed glyph rows,
 +      draw cursor on the left fringe.
 +
 +      * xterm.c (x_draw_window_cursor): For reversed glyph rows, draw
 +      cursor on the left fringe.
 +
 +      * dispnew.c (update_text_area): Handle reversed desired rows when
 +      the cursor is on the left fringe.
 +      (set_window_cursor_after_update): Limit cursor's hpos by -1 from
 +      below, not by 0, for when the cursor is on the left fringe.
 +
 +2010-04-20  Jan Djärv  <jan.h.d@swipnet.se>
 +
 +      * gtkutil.c (xg_event_is_for_scrollbar): Check if grabbed
 +      widget is a scrollbar.
 +
 +2010-04-20  Kenichi Handa  <handa@m17n.org>
 +
 +      * charset.c (char_charset): Consider Vcharset_non_preferred_head
 +      only when the arg CHARSET_LIST is nil.
 +
 +2010-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Make variable forwarding explicit rather the using special values.
 +      Basically, this makes the structure of buffer-local values and object
 +      forwarding explicit in the type of Lisp_Symbols rather than use
 +      special Lisp_Objects for that.  This tends to lead to slightly more
 +      verbose code, but is more C-like, simpler, and makes it easier to make
 +      sure we handled all cases, among other things by letting the compiler
 +      help us check it.
 +      * lisp.h (enum Lisp_Misc_Type, union Lisp_Misc):
 +      Removing forwarding objects.
 +      (enum Lisp_Fwd_Type, enum symbol_redirect, union Lisp_Fwd): New types.
 +      (struct Lisp_Symbol): Make the various forms of variable-forwarding
 +      explicit rather than hiding them inside Lisp_Object "values".
 +      (XFWDTYPE): New macro.
 +      (XINTFWD, XBOOLFWD, XOBJFWD, XKBOARD_OBJFWD): Redefine.
 +      (XBUFFER_LOCAL_VALUE): Remove.
 +      (SYMBOL_VAL, SYMBOL_ALIAS, SYMBOL_BLV, SYMBOL_FWD, SET_SYMBOL_VAL)
 +      (SET_SYMBOL_ALIAS, SET_SYMBOL_BLV, SET_SYMBOL_FWD): New macros.
 +      (SYMBOL_VALUE, SET_SYMBOL_VALUE): Remove.
 +      (struct Lisp_Intfwd, struct Lisp_Boolfwd, struct Lisp_Objfwd)
 +      (struct Lisp_Buffer_Objfwd, struct Lisp_Kboard_Objfwd):
 +      Remove the Lisp_Misc_* header.
 +      (struct Lisp_Buffer_Local_Value): Redefine.
 +      (BLV_FOUND, SET_BLV_FOUND, BLV_VALUE, SET_BLV_VALUE): New macros.
 +      (struct Lisp_Misc_Any): Add filler to get the right size.
 +      (struct Lisp_Free): Use struct Lisp_Misc_Any rather than struct
 +      Lisp_Intfwd.
 +      (DEFVAR_LISP, DEFVAR_LISP_NOPRO, DEFVAR_BOOL, DEFVAR_INT)
 +      (DEFVAR_KBOARD): Allocate a forwarding object.
 +      * data.c (do_blv_forwarding, store_blv_forwarding): New macros.
 +      (let_shadows_global_binding_p): New function.
 +      (union Lisp_Val_Fwd): New type.
 +      (make_blv): New function.
 +      (swap_in_symval_forwarding, indirect_variable, do_symval_forwarding)
 +      (store_symval_forwarding, swap_in_global_binding, Fboundp)
 +      (swap_in_symval_forwarding, find_symbol_value, Fset)
 +      (let_shadows_buffer_binding_p, 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):
 +      * xdisp.c (select_frame_for_redisplay):
 +      * lread.c (Fintern, Funintern, init_obarray, defvar_int)
 +      (defvar_bool, defvar_lisp_nopro, defvar_lisp, defvar_kboard):
 +      * frame.c (store_frame_param):
 +      * eval.c (Fdefvaralias, Fuser_variable_p, specbind, unbind_to):
 +      * bytecode.c (Fbyte_code) <varref, varset>: Adapt to the new symbol
 +      value structure.
 +      * buffer.c (PER_BUFFER_SYMBOL): Move from buffer.h.
 +      (clone_per_buffer_values): Only adjust markers into the current buffer.
 +      (reset_buffer_local_variables): PER_BUFFER_IDX is never -2.
 +      (Fbuffer_local_value, set_buffer_internal_1)
 +      (swap_out_buffer_local_variables):
 +      Adapt to the new symbol value structure.
 +      (DEFVAR_PER_BUFFER): Allocate a Lisp_Buffer_Objfwd object.
 +      (defvar_per_buffer): Take a new arg for the fwd object.
 +      (buffer_lisp_local_variables): Return a proper alist (different fix
 +      for bug#4138).
 +      * alloc.c (Fmake_symbol): Use SET_SYMBOL_VAL.
 +      (Fgarbage_collect): Don't handle buffer_defaults specially.
 +      (mark_object): Handle new symbol value structure rather than the old
 +      special Lisp_Misc_* objects.
 +      (gc_sweep) <symbols>: Free also the buffer-local-value objects.
 +      * term.c (set_tty_color_mode):
 +      * bidi.c (bidi_initialize): Don't access the ->value field directly.
 +      * buffer.h (PER_BUFFER_VAR_OFFSET): Don't bother with
 +      a buffer_local_flags.
 +      * print.c (print_object): Get rid of impossible forwarding objects.
 +
 +2010-04-19  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_get_type, bidi_get_category)
 +      (bidi_at_paragraph_end, bidi_resolve_weak, bidi_resolve_neutral)
 +      (bidi_type_of_next_char, bidi_level_of_next_char):
 +      Declare static.  Use `INLINE' rather than `inline'.
 +
 +2010-04-19  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * dired.c (Ffile_attributes): Fix typo in docstring.
 +
 +2010-04-19  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +
 +      * nsmenu.m (EmacsDialog-runDialogAt:): Declare ret as
 +      NSInteger (Bug#5811).
 +
 +2010-04-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
 +      (PTY_OPEN): New defines.  Use openpty (Bug#726, Bug#5819).
 +
 +2010-04-19  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2010-08-06  Kenichi Handa  <handa@m17n.org>
 +      * frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.
  
 -      * charset.c: Include <stdlib.h>
 -      (struct charset_sort_data): New struct.
 -      (charset_compare): New function.
 -      (Fsort_charsets): New function.
 -      (syms_of_charset): Declare Fsort_charsets as a Lisp function.
 +2010-04-19  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * coding.c (decode_coding_iso_2022): Fix checking of dimension
 -      number in CTEXT extended segment.
 +      * xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for
 +      terminal frames (Bug#5837).
  
 -2010-08-01  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-19  Eli Zaretskii  <eliz@gnu.org>
  
 -      * w32fns.c (syms_of_w32fns) <x-max-tooltip-size>: Fix typo in docstring.
 -      * xfns.c (syms_of_xfns) <x-max-tooltip-size>: Reflow docstring.
 +      * .gdbinit (xsubchartable): New command.
  
 -2010-07-30  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-19  Eli Zaretskii  <eliz@gnu.org>
  
 -      * fns.c (Fsubstring_no_properties, Fnthcdr, Ffeaturep)
 -      (Fhash_table_size): Fix typos in docstrings.
 -      (Fmake_hash_table): Doc fix.
 +      * xdisp.c (display_line): Don't write beyond the last glyph row in
 +      the desired matrix.  Fixes a crash in "emacs -nw" (bug#5972), see
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00075.html
 +      and
 +      http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00213.html
  
 -2010-07-28  Juanma Barranquero  <lekktu@gmail.com>
 +2010-04-18  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * minibuf.c (syms_of_minibuf) <read-buffer-function>:
 -      Doc fix (bug#5625).
 +      * alloc.c (Fpurecopy): Hash-cons if requested.
 +      (syms_of_alloc): Update purify-flag docstring.
  
 -2010-07-27  Ken Brown  <kbrown@cornell.edu>
 +2010-04-18  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * dired.c (DIRENTRY_NONEMPTY) [cygwin]: Use d_ino instead of
 -      the MSDOS definition.
 +      * gtkutil.c (xg_set_geometry): Set size in geometry string also.
 +      (x_wm_set_size_hint): Set USER_POS in hint_flags (Bug#5968).
  
 -2010-07-25  Christoph Scholtes  <cschol2112@gmail.com>
 +2010-04-17  Eli Zaretskii  <eliz@gnu.org>
  
 -      * minibuf.c (Fread_buffer): Doc fix (bug#6528).
 +      Fix a crash when an NSM character is inserted at BEGV.
  
 -2010-07-22  Christoph Scholtes  <cschol2112@gmail.com>
 +      * bidi.c (bidi_init_it): Fix initialization of bidi_it->prev.
 +      (bidi_resolve_weak): Don't use prev.type_after_w1 if it is
 +      NEUTRAL_B or UNKNOWN_BT.
  
 -      * window.c (Fwindow_height): Doc fix (bug#6518).
 +2010-04-16  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-07-21  Juanma Barranquero  <lekktu@gmail.com>
 +      * xdisp.c (set_cursor_from_row): Don't consider possibility of
 +      other rows with cursor unless they are different from this row and
 +      this row is part of a continued line.  (Bug#5943)
  
 -      * buffer.c (syms_of_buffer) <fringe-indicator-alist>: Doc fix.
 +2010-04-16  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-07-17  Jan Djärv  <jan.h.d@swipnet.se>
 +      * s/freebsd.h: Restore osreldate.h include.
 +      Suggested by Naohiro Aota.
  
 -      * gtkutil.c (xg_event_is_for_menubar): Also check that event window
 -      is related to the menu bar (Bug#6499).
 +2010-04-16  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-07-14  Jan Djärv  <jan.h.d@swipnet.se>
 +      * xmenu.c (apply_systemfont_to_menu): *childs was incorrectly used.
  
 -      * xterm.h (x_menubar_window_to_frame): Second parameter is XEvent*.
 +2010-04-16  Ken Brown  <kbrown@cornell.edu>  (tiny change)
  
 -      * xterm.c (handle_one_xevent): Pass event to x_menubar_window_to_frame.
 +      * s/cygwin.h: Avoid linking against static libgcc.
  
 -      * xmenu.c (x_activate_menubar): Revert previous fix for Bug#6499,
 -      i.e. don't put back ButtonRelease (Bug#6608).
 +2010-04-15  Juri Linkov  <juri@jurta.org>
  
 -      * xfns.c (x_menubar_window_to_frame): Take XEvent as second parameter
 -      instead of Window.  Call xg_event_is_for_menubar when
 -      USE_GTK (Bug#6499).
 +      * window.c: Add Qscroll_command.
 +      Remove Vscroll_preserve_screen_position_commands.
 +      (window_scroll_pixel_based, window_scroll_line_based): Check the
 +      `scroll-command' property on the last command instead of searching
 +      the last command in Vscroll_preserve_screen_position_commands.
 +      (syms_of_window): Initialize and staticpro `Qscroll_command'.
 +      Put Qscroll_command property on Qscroll_up and Qscroll_down.
 +      (scroll-preserve-screen-position): Doc fix.
 +      (Vscroll_preserve_screen_position_commands): Remove variable.
  
 -      * gtkutil.h (xg_event_is_for_menubar): Declare.
 +2010-04-15  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * gtkutil.c (xg_event_is_for_menubar): New function (Bug#6499).
 +      * xdisp.c (message): Do not use NO_ARG_ARRAY.
  
 -2010-07-14  Eli Zaretskii  <eliz@gnu.org>
 +2010-04-14  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * w32fns.c (x_set_foreground_color): Fix setting the cursor color
 -      when it's the same as the old foreground.  (Bug#6609)
 +      Reduce cpp use in Makefile.in.
 +      * Makefile.in (DBUS_CFLAGS, DBUS_LIBS, GCONF_CFLAGS, GCONF_LIBS)
 +      (LIBSOUND, CFLAGS_SOUND, RSVG_LIBS, RSVG_CFLAGS, INTERVALS_H)
 +      (GETLOADAVG_LIBS, RUN_TEMACS): Move to the autoconf section.
 +      (ORDINARY_LINK): Remove, defined in src/s/gnu.h.
 +      (CRT0_COMPILE): Remove, inline it in the only user.
  
 -2010-07-10  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-14  Juri Linkov  <juri@jurta.org>
  
 -      * xfaces.c (realize_face): Garbage the frame if a face is removed
 -      (Bug#6593).
 +      * window.c (keys_of_window): Rebind `C-v' from `scroll-up' to
 +      `scroll-up-command' and `M-v' from `scroll-down' to
 +      `scroll-down-command'.
  
 -2010-07-05  Andreas Schwab  <schwab@linux-m68k.org>
 +2010-04-14  Juri Linkov  <juri@jurta.org>
  
 -      * keyboard.c: Remove duplicate <setjmp.h>.
 -      (read_key_sequence): Remove volatile qualifiers.
 +      * window.c (Vscroll_preserve_screen_position_commands): New variable
 +      with the default value as the list of Qscroll_down and Qscroll_up.
 +      (window_scroll_pixel_based, window_scroll_line_based): Search the
 +      last command in the list Vscroll_preserve_screen_position_commands
 +      instead of comparing with Qscroll_up and Qscroll_down.
  
 -2010-07-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-04-13  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * dispextern.h (FRINGE_HEIGHT_BITS): New define.
 -      (struct glyph_row): New members left_fringe_offset and
 -      right_fringe_offset.
 +      * gtkutil.c (xg_set_geometry): Set geometry for PPosition also.
 +      (x_wm_set_size_hint): Dont set position flags, gtk_window_parse_geometry
 +      does that.
  
 -      * xterm.c (x_draw_fringe_bitmap): Don't clip bottom aligned bitmap
 -      specially.
 -      * w32term.c (w32_draw_fringe_bitmap): Likewise.
 -      * nsterm.m (ns_draw_fringe_bitmap): Likewise.
 +      * xfns.c (Fx_create_frame, x_create_tip_frame): Set default border width
 +      to zero.
  
 -      * fringe.c (draw_fringe_bitmap_1): Don't clip bitmap here.
 -      Take account of bitmap offset.
 -      (draw_window_fringes): Take account of window vscroll.
 -      (update_window_fringes): Likewise.  Extend top-aligned top indicator
 -      or bottom-aligned bottom indicator to adjacent rows if it doesn't fit
 -      in one row.  Don't set redraw_fringe_bitmaps_p outside row comparison.
 -      Set left_fringe_offset and right_fringe_offset (Bug#5634, Bug#6325).
 +2010-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-07-04  Juanma Barranquero  <lekktu@gmail.com>
 +      * term.c (init_tty): Move common text outside of #ifdef TERMINFO.
  
 -      * w32fns.c (Qtooltip): Declare.
 -      Suggested by Andy Moreton <andrewjmoreton@gmail.com>.
 +      Try to solve the problem of spurious EOF chars in long lines of text
 +      sent to interactive subprocesses.
 +      * sysdep.c (child_setup_tty): Do not enable ICANON any more.
 +      (system_process_attributes): Remove unused var `ttotal'.
 +      * process.c (send_process): Don't bother breaking long line with EOF
 +      chars when talking to ttys any more.
 +      (wait_reading_process_output): Output a warning when called in such
 +      a way that it could block without being interruptible.
  
 -2010-07-03  Jan Djärv  <jan.h.d@swipnet.se>
 +      Try to detect file modification within the same second.
 +      * buffer.h (struct buffer): New field modtime_size.
 +      * buffer.c (reset_buffer): Initialize it.
 +      * fileio.c (Finsert_file_contents, Fwrite_region): Set it.
 +      (Fverify_visited_file_modtime): Check it.
 +      (Fclear_visited_file_modtime, Fset_visited_file_modtime): Clear it.
 +      (Fset_visited_file_modtime): Set (or clear) it.
  
 -      * xmenu.c (x_activate_menubar): Send Press/Release for Gtk+ to avoid
 -      grab on just Press (Bug#6499).
 +2010-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-07-02  Chong Yidong  <cyd@stupidchicken.com>
 +      * process.c (status_notify): Remove unused var `ro'.
  
 -      * frame.c (Qtooltip): New var.
 -      (delete_frame): Use it.  Fix faulty if statement.  Don't update
 -      mode line for tooltip frames.  Suggested by Martin Rudalics.
 +2010-04-12  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * xfns.c (x_create_tip_frame):
 -      * w32fns.c (x_create_tip_frame): Use it.
 +      * xfns.c (select_visual): Don't call error if XGetVisualInfo returns
 +      more than one visual (Bug#5938).
  
 -2010-06-30  Naohiro Aota  <naota@elisp.net>  (tiny change)
 +2010-04-12  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * xftfont.c (xftfont_open): Check font width one by one also when
 -      spacing is dual.
 +      * Makefile.in (C_SWITCH_SYSTEM,C_SWITCH_MACHINE,C_SWITCH_X_SITE):
 +      Undefine.
  
 -      * ftfont.c (ftfont_open): Ditto.
 +2010-04-11  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-06-26  Andreas Schwab  <schwab@linux-m68k.org>
 +      Remove C_SWITCH_SYSTEM_TEMACS.
 +      * s/darwin.h (C_SWITCH_SYSTEM_TEMACS): Remove.
 +      (malloc, realloc, free): Use emacs, not temacs for conditional
 +      definition.
  
 -      * alloc.c (Fmake_byte_code): Don't access undefined argument
 -      (Bug#6517).
 +      * Makefile.in (C_SWITCH_SYSTEM_TEMACS): Remove.
 +      (ALL_CFLAGS): Do not use C_SWITCH_SYSTEM_TEMACS.
  
 -2010-06-25  Chong Yidong  <cyd@stupidchicken.com>
 +      Use autoconf, not cpp for some variables.
 +      * Makefile.in (C_SWITCH_SYSTEM, C_SWITCH_MACHINE)
 +      (C_SWITCH_X_SITE): Define using autoconf, not cpp.
 +      (ALL_CFLAGS): Use them as make variables.
 +      (really-lwlib, really-oldXMenu): Do not pass them.
  
 -      * xdisp.c (next_element_from_image): Ensure that after-strings are
 -      read the next time we hit handle_stop (Bug#1336).
 +2010-04-11  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-06-23  Andreas Schwab  <schwab@linux-m68k.org>
 +      * xmenu.c (apply_systemfont_to_dialog): New.
 +      (create_and_show_dialog): Call apply_systemfont_to_dialog if HAVE_XFT.
  
 -      * lread.c (read1): Signal error if #s is not followed by paren.
 +2010-04-11  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -2010-06-19  Chong Yidong  <cyd@stupidchicken.com>
 +      * process.c (exec_sentinel): Preserve current-buffer.
  
 -      * image.c (free_image): Mark frame as garbaged (Bug#6426).
 +      * process.c (read_process_output): Move the save-current-buffer to
 +      apply to both the filter and the non-filter branches.
  
 -      * keymap.c (Fdefine_key): Doc fix (Bug#6460).
 +2010-04-10  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-06-15  Glenn Morris  <rgm@gnu.org>
 +      * s/msdos.h (UNEXEC): New definition.
  
 -      * editfns.c (Fbyte_to_string): Pacify compiler.
 +2010-04-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -2010-06-09  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * dispextern.h (TRY_WINDOW_CHECK_MARGINS)
 +      (TRY_WINDOW_IGNORE_FONTS_CHANGE): New defines.
  
 -      * dbusbind.c (xd_append_arg): Don't "make-unibyte" the string.
 -      Check `object's type before accessing its guts.
 +      * xdisp.c (try_window): Change arg from CHECK_MARGINS to FLAGS.
 +      Don't abort with fonts change if TRY_WINDOW_IGNORE_FONTS_CHANGE is
 +      set in FLAGS.  Callers with non-zero CHECK_MARGINS changed to use
 +      TRY_WINDOW_CHECK_MARGINS.
  
 -2010-06-08  Andreas Schwab  <schwab@linux-m68k.org>
 +      * xfns.c (Fx_show_tip): Undo last change.  Call try_window with
 +      TRY_WINDOW_IGNORE_FONTS_CHANGE (Bug#2423).  Subtract last glyph's
 +      width only when it is for padding.
  
 -      * minibuf.c (Fall_completions): Add more checks.
 +2010-04-09  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-06-08  Juanma Barranquero  <lekktu@gmail.com>
 +      * xfns.c (Fx_show_tip): Call try_window in a loop until
 +      fonts_changed_p is zero (Bug#2423).
  
 -      * minibuf.c (Fall_completions): Check COLLECTION's size (bug#6378).
 +2010-04-08  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-06-03  Andreas Schwab  <schwab@linux-m68k.org>
 +      * xdisp.c (set_cursor_from_row): Don't dereference glyphs beyond
 +      the end of TEXT_AREA.  (Bug#5856)
  
 -      * process.c (conv_lisp_to_sockaddr): Fix conversion of IPv4
 -      address.  (Bug#6346)
 +2010-04-08  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-06-03  Juanma Barranquero  <lekktu@gmail.com>
 +      * xsettings.c (XSETTINGS_FONT_NAME): Move XSETTINGS_FONT_NAME out of
 +      HAVE_GCONF.
  
 -      * ccl.c (Fccl_program_p): Fix typo in docstring.
 +2010-04-08  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * bidi.c (bidi_resolve_weak): Use prev.type_after_w1, instead of
 +      prev.orig_type, for resolving type of NSM.  (Bug#5858)
  
 -      * keymap.c (Fwhere_is_internal): Fix handling of remapping (in thread
 -      of bug#6305).
 +2010-04-08  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-05-27  Chong Yidong  <cyd@stupidchicken.com>
 +      * xsettings.c (current_font, SYSTEM_FONT, XSETTINGS_FONT_NAME): New.
 +      (parse_xft_settings): Also check for XSETTINGS_FONT_NAME and save that
 +      in current_font.
 +      (init_gconf): Read value of SYSTEM_FONT and save it in current_font.
 +      (Ffont_get_system_normal_font, xsettings_get_system_normal_font):
 +      New functions.
 +      (syms_of_xsettings): Initialize current_font.
 +      defsubr Sfont_get_system_normal_font.
  
 -      * xdisp.c (redisplay_window): After redisplay, check if point is
 -      still valid before setting it (Bug#6177).
 +      * xsettings.h (Ffont_get_system_normal_font)
 +      (xsettings_get_system_normal_font): Declare.
  
 -2010-05-20  enami tsugutomo  <tsugutomo.enami@jp.sony.com>
 +      * xfns.c (extern xlwmenu_default_font): Remove.
 +      (Fx_create_frame): Remove setting of xlwmenu_default_font, moved
 +      to xlwmenu.c.
  
 -      * s/netbsd.h: If terminfo is found, use it in preference to
 -      termcap.  (Bug#6190)  [Backport from trunk]
 +      * menu.c (digest_single_submenu): If USE_LUCID and HAVE_XFT, encode
 +      menu items in UTF-8.
  
 -2010-05-20  Kevin Ryde  <user42@zip.com.au>
 +      * xmenu.c: Include xsettings.h and xlwmenu.h if USE_LUCID.
 +      (apply_systemfont_to_menu): New function.
 +      (set_frame_menubar, create_and_show_popup_menu):
 +      Call apply_systemfont_to_menu.
  
 -      * keyboard.c (Vlast_command, Vkeyboard_translate_table)
 -      (Voverriding_terminal_local_map, Vsystem_key_alist)
 -      (Vlocal_function_key_map): Fix manual link in docstring (Bug#6224).
 +2010-04-07  Jan Djärv  <jan.h.d@swipnet.se>
  
 -2010-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
 +      * frame.h (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Don't use
 +      FRAME_LINE_TO_PIXEL_Y.
  
 -      * editfns.c (Fbyte_to_string): New function.
 +      * xterm.c (x_set_window_size_1): Don't add border_width/height to
 +      pixelwidth/height.
  
 -2010-05-18  Chong Yidong  <cyd@stupidchicken.com>
 +2010-04-07  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * character.c (Fstring, Funibyte_string): Use SAFE_ALLOCA to
 -      prevent stack overflow if number of arguments is too large
 -      (Bug#6214).
 +      Simplify code for HP machines.
 +      * m/hp800.h (LOAD_AVE_TYPE, LOAD_AVE_CVT, NO_REMAP): Do not define
 +      for GNU_LINUX, not needed.
 +      (UNEXEC, NEED_BSDTTY): Move definitions...
 +      * s/hpux10-20.h (UNEXEC, NEED_BSDTTY): ... here.
  
 -2010-05-11  Eli Zaretskii  <eliz@gnu.org>
 +      * m/iris4d.h (UNEXEC): Move definition ...
 +      * s/irix6-5.h (UNEXEC): ... here.
  
 -      * makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(SRC)/w32.h.
 +2010-04-04  Jan Djärv  <jan.h.d@swipnet.se>
  
 -      * w32fns.c: Include w32.h.
 -      (Fw32_shell_execute): Decode the error message before passing it
 -      to `error'.  (Bug#6126)
 +      * xfns.c (set_machine_and_pid_properties): New function.
 +      (Fx_create_frame): Call set_machine_and_pid_properties.
  
 -2010-05-11  Karel Klic  <kklic@redhat.com>
 +2010-04-03  Eli Zaretskii  <eliz@gnu.org>
  
 -      * ftfont.c: Fix incorrect parentheses of #if condition for
 -      definining M17N_FLT_USE_NEW_FEATURE.
 +      * bidi.c (bidi_resolve_explicit, bidi_level_of_next_char):
 +      Check bidi_it->bytepos against ZV_BYTE instead of bidi_it->ch against
 +      BIDI_EOB.  Fixes infloop with vertical cursor motion at ZV.
  
 -2010-05-07  Chong Yidong  <cyd@stupidchicken.com>
 +      * w32fns.c (x_create_tip_frame): Copy `parms' before we modify it
 +      in this function.  (Bug#5703)
  
 -      * Version 23.2 released.
 +2010-04-03  Chong Yidong  <cyd@stupidchicken.com>
  
 -2010-04-30  Andreas Schwab  <schwab@linux-m68k.org>
 +      * nsterm.h: Fix last change.
  
 -      * composite.c (autocmp_chars): Save point as marker before calling
 -      auto-composition-function (Bug#5984).
 +2010-04-03  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -      * lisp.h (restore_point_unwind): Add prototype.
 +      * m/intel386.h (NO_REMAP): Move definition ...
 +      * s/msdos.h (NO_REMAP): ... here.
  
 -      * fileio.c (restore_point_unwind): Remove static attribute.
 +      * m/vax.h (CRT0_DUMMIES): Remove, unused.
  
 -2010-04-23  Kenichi Handa  <handa@m17n.org>
 +      * ecrt0.c: Remove MSDOS, m68k and __sparc__ conditionals, file not
 +      used on those platforms.
  
 -      * ftfont.c (M17N_FLT_USE_NEW_FEATURE): Define it if we can use the
 -      new feature of libotf and m17n-flt.
 -      (ftfont_check_otf) [M17N_FLT_USE_NEW_FEATURE]:
 -      Call OTF_check_features even if no specific feature is given.
 -      (PACK_OTF_TAG) [M17N_FLT_USE_NEW_FEATURE]: New macro.
 -      (ftfont_drive_otf) [M17N_FLT_USE_NEW_FEATURE]: Handle the case
 -      that OUT is NULL.  Use OTF_drive_gsub_with_log and
 -      OTF_drive_gpos_with_log instead of OTF_drive_gsub and
 -      OTF_drive_gpos.
 -      (ftfont_try_otf) [M17N_FLT_USE_NEW_FEATURE]: New function.
 -      (ftfont_shape_by_flt) [M17N_FLT_USE_NEW_FEATURE]:
 -      Setup mflt_enable_new_feature and mflt_try_otf.
 +2010-04-02  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-04-19  Juanma Barranquero  <lekktu@gmail.com>
 +      Remove extern errno declarations.
 +      * xterm.c:
 +      * xrdb.c:
 +      * w32term.c:
 +      * unexec.c:
 +      * unexaix.c:
 +      * sysdep.c:
 +      * process.c:
 +      * lread.c:
 +      * keyboard.c:
 +      * floatfns.c:
 +      * filelock.c:
 +      * fileio.c:
 +      * emacs.c (main):
 +      * ecrt0.c:
 +      * dispnew.c:
 +      * callproc.c:
 +      * buffer.c: Remove errno extern declarations.
 +      * s/netbsd.h (NEED_ERRNO): Remove.
  
 -      * dired.c (Ffile_attributes): Fix typo in docstring.
 +2010-04-01  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-04-13  Adrian Robert  <Adrian.B.Robert@gmail.com>
 +      Remove all uses of LIBX11_SYSTEM.
 +      * Makefile.in (LIBX11_SYSTEM): Remove.
 +      * s/msdos.h (LIBX11_SYSTEM): Do not define, define LIBS_SYSTEM
 +      instead.
  
 -      * nsmenu.m (EmacsDialog-runDialogAt:): Declare ret as
 -      NSInteger (Bug#5811).
 +2010-04-01  Eli Zaretskii  <eliz@gnu.org>
  
 -2010-04-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +      Remove support for DJGPP v1.x (bug#5813).
  
 -      * s/darwin.h (PTY_ITERATION, PTY_NAME_SPRINTF, PTY_TTY_NAME_SPRINTF)
 -      (PTY_OPEN): New defines.  Use openpty (Bug#726, Bug#5819).
 +      * w16select.c (__dpmi_int): Remove DJGPP v1.x compatibility.
 +      * s/msdos.h:
 +      * unexec.c (make_hdr, copy_text_and_data):
 +      * sysdep.c (wait_for_termination, sys_subshell):
 +      * msdos.c (dos_set_window_size, msdos_set_cursor_shape)
 +      (IT_set_terminal_modes, __write, _rename, gethostname)
 +      (gettimeofday, alarm, fork, kill, dos_ttraw, dos_ttcooked)
 +      (run_msdos_command, abort): Remove DJGPP v1.x code and tests of
 +      the value of __DJGPP__.
 +      (nice, pause, sigsetmask, sigblock): Remove DJGPP v1.x
 +      compatibility code.
 +      * lread.c:
 +      * gmalloc.c (memalign):
 +      * fileio.c (Fcopy_file, check_executable, Ffile_modes):
 +      * emacs.c (main):
 +      * dosfns.c (init_dosfns):
 +      * dired.c (file_name_completion_stat): Remove tests of __DJGPP__.
  
 -2010-04-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-04-01  Eli Zaretskii  <eliz@gnu.org>
  
 -      * frame.h (FRAME_LINE_TO_PIXEL_Y): Add missing parenthesis.
 +      * xdisp.c (set_cursor_from_row): Fix cursor positioning when the
 +      string with `cursor' property comes from an `after-string'
 +      overlay.  (Bug#5816)
  
 -2010-04-07  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-04-01  Glenn Morris  <rgm@gnu.org>
  
 -      * frame.h (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Don't use
 -      FRAME_LINE_TO_PIXEL_Y.
 +      * Makefile.in (LIBTIFF, LIBJPEG, LIBPNG, LIBGIF, LIBXPM, XFT_LIBS):
 +      Define as Makefile variables.
 +      (LIBX): Use above variables rather than directly using autoconf.
  
 -      * xterm.c (x_set_window_size_1): Don't add border_width/height to
 -      pixelwidth/height.
 +2010-03-31  Dan Nicolaescu  <dann@ics.uci.edu>
  
 -2010-04-05  Chong Yidong  <cyd@stupidchicken.com>
 +      Clean up BSD_SYSTEM use.
 +      * xterm.c:
 +      * process.c:
 +      * emacs.c: Use HAVE_SYS_IOCTL_H instead of BSD_SYSTEM as a guard
 +      for including <sys/ioctl.h>.
 +      * sysdep.c (wait_without_blocking): Remove BSD_SYSTEM case, this
 +      code is only used for MSDOS.
  
 -      * xdisp.c (prepare_menu_bars): Don't call ns_set_doc_edited for
 -      terminal frames (Bug#5837).
 +2010-03-31  Juri Linkov  <juri@jurta.org>
 +
 +      * image.c: Add `Qextension_data'.
 +      (syms_of_image): Initialize and staticpro `Qextension_data'.
 +      (Fimage_metadata): Rename from `Fimage_extension_data'.
 +      (gif_load): Put GIF extension data to the property
 +      `Qextension_data'.
  
  2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
  
  2010-03-31  Eli Zaretskii  <eliz@gnu.org>
  
 -      * w32fns.c (x_create_tip_frame): Copy `parms' before we modify it
 -      in this function.  (Bug#5703)
 +      * xdisp.c (highlight_trailing_whitespace): Support highlight of
 +      trailing whitespace in right-to-left rows.
  
 -2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
  
 -      * nsterm.h: Fix last change.
 +      Get rid of the direct_output optimizations.
 +      * keyboard.c (nonundocount): Remove extern declaration.
 +      (command_loop_1): Remove brittle optimisation for cheap and
 +      common operations.
 +      * xdisp.c (redisplay_internal): Don't bother checking
 +      redisplay_performed_directly_p any more.
 +      * sysdep.c (init_sys_modes): Don't call direct_output_forward_char
 +      any more.
 +      * dispnew.c (redisplay_performed_directly_p)
 +      (direct_output_for_insert, direct_output_forward_char):
 +      * dispextern.h (redisplay_performed_directly_p)
 +      (direct_output_for_insert, direct_output_forward_char): Remove.
 +      * cmds.c (nonundocount): Make it static.
  
 -2010-03-30  Bernhard Herzog  <bh@intevation.de>  (tiny change)
 +2010-03-31  Bernhard Herzog  <bh@intevation.de>  (tiny change)
  
        * menu.c (Fx_popup_menu): Use last_event_timestamp (Bug#4930).
  
 -2010-03-30  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-03-31  Jan Djärv  <jan.h.d@swipnet.se>
  
        * xdisp.c (note_mouse_highlight): Don't do highlight if pointer is
        invisible (Bug#5766).
  
 -2010-03-29  Adrian Robert  <adrian.b.robert@gmail.com>
 +2010-03-31  Adrian Robert  <adrian.b.robert@gmail.com>
  
 -      * xdisp.c (x_consider_frame_title, update_window_cursor): Remove
 -      HAVE_NS conditionals.
 +      * xdisp.c (x_consider_frame_title, update_window_cursor):
 +      Remove HAVE_NS conditionals.
        (prepare_menu_bars) [HAVE_NS]: Call ns_set_doc_edited.
  
        * nsfns.m (x_implicitly_set_name): If frame-title-format is t, use
  
        * nsterm.m: Remove unneeded prototype.
  
 -2010-03-28  Glenn Morris  <rgm@gnu.org>
 +2010-03-31  Glenn Morris  <rgm@gnu.org>
  
        * Makefile.in (SOME_MACHINE_OBJECTS): Ensure dbus stuff is always
        in the DOC file.  (Bug#5336)
  
 -2010-03-24  Chong Yidong  <cyd@stupidchicken.com>
 +2010-03-31  Chong Yidong  <cyd@stupidchicken.com>
  
        * xdisp.c (pos_visible_p): Revert 2008-01-25 change (Bug#5730).
  
 -2010-03-20  Jan Djärv  <jan.h.d@swipnet.se>
 +2010-03-31  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * window.c (keys_of_window): Remove redundant/overridden bindings.
 +
 +2010-03-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * xdisp.c (BUFFER_POS_REACHED_P, move_it_in_display_line_to):
 +      Restore original behavior when the iterator is not bidi_p.
 +
 +2010-03-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * xdisp.c (syms_of_xdisp): Use intern_c_string instead of intern.
 +
 +2010-03-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      * bidi.c (bidi_cache_iterator_state): Invalidate the cache if we
 +      are outside the range of cached character positions.
 +
 +2010-03-30  Juanma Barranquero  <lekktu@gmail.com>
 +
 +      * makefile.w32-in ($(BLD)/bidi.$(O)): Add dependency on w32gui.h.
 +
 +2010-03-30  Eli Zaretskii  <eliz@gnu.org>
 +
 +      Initial support for bidirectional editing.
 +
 +      * Makefile.in (obj): Include bidi.o.
 +      (bidi.o): New target.
 +
 +      * makefile.w32-in (OBJ1): Add $(BLD)/bidi.$(O).
 +      ($(BLD)/bidi.$(O)): New target.
 +
 +      * bidi.c: New file.
 +
 +      * buffer.h (struct buffer): New members bidi_display_reordering
 +      and bidi_paragraph_direction.
 +
 +      * buffer.c (init_buffer_once): Initialize bidi_display_reordering
 +      and bidi_paragraph_direction.
 +      (syms_of_buffer): Declare Lisp variables bidi-display-reordering
 +      and bidi-paragraph-direction.
 +      (Fbuffer_swap_text): Swap the values of
 +      bidi_display_reordering and bidi_paragraph_direction.
 +
 +      * dispextern.h (BIDI_MAXLEVEL, BIDI_AT_BASE_LEVEL): New macros.
 +      (bidi_type_t, bidi_dir_t): New types.
 +      (bidi_saved_info, bidi_stack, bidi_it): New structures.
 +      (struct it): New members bidi_p, bidi_it, paragraph_embedding,
 +      prev_stop, base_level_stop, and eol_pos.
 +      (bidi_init_it, bidi_get_next_char_visually): New prototypes.
 +      (IT_STACK_SIZE): Enlarge to 5.
 +      (struct glyph_row): New member reversed_p.
 +      <string_buffer_position>: Update prototype.
 +      (PRODUCE_GLYPHS): Set the reversed_p flag in the iterator's
 +      glyph_row if bidi_it.paragraph_dir == R2L.
 +      (struct glyph): New members resolved_level and bidi_type.
 +
 +      * dispnew.c (direct_output_forward_char): Give up if we need bidi
 +      processing or buffer's direction is right-to-left.
 +      (prepare_desired_row): Preserve the reversed_p flag.
 +      (row_equal_p): Compare the reversed_p attributes as well.
 +
 +      * xdisp.c (init_iterator): Initialize it->bidi_p.
 +      Call bidi_init_it and set it->paragraph_embedding from the current
 +      buffer's value of bidi_paragraph_direction.
 +      (reseat_1): Initialize bidi_it.first_elt.
 +      (set_iterator_to_next, next_element_from_buffer): Use the value of
 +      paragraph_embedding to determine the paragraph direction.
 +      (set_iterator_to_next): Under bidi reordering, call
 +      bidi_get_next_char_visually.  Call bidi_paragraph_init if the
 +      new_paragraph flag is set in the bidi iterator.
 +      (next_element_from_buffer): If bidi_it.first_elt is set,
 +      initialize paragraph direction and find the first character to
 +      display in the visual order.  If reseated to a middle of a line,
 +      prime the bidi iterator starting at the line's beginning.
 +      Handle the situation where we overstepped stop_charpos due to
 +      non-linearity of the bidi iteration.  Likewise for when we back up
 +      beyond the previous stop_charpos.  When moving across stop_charpos,
 +      record it in prev_stop.
 +      (display_line): Set row->end and it->start for the next row to the
 +      next character in logical order.  Always extend reversed_p rows to
 +      the end of line, even if they end at ZV.  Copy the reversed_p flag
 +      to the next glyph row.  Keep calling set_cursor_from_row for
 +      bidi-reordered rows even if we already have a possible candidate
 +      for cursor position.  Set row_end after all the row's glyphs have
 +      been produced, by looping over the glyphs.  Record the position
 +      after EOL in it->eol_pos, and use it to set end_pos of the last
 +      row produced for a continued line.
 +      <Qright_to_left, Qleft_to_right>: New variables.
 +      (syms_of_xdisp): Initialize and staticpro them.
 +      (string_buffer_position_lim): New function.
 +      (string_buffer_position): Most of code moved to
 +      string_buffer_position_lim.  Last argument and return value are
 +      now EMACS_INT; all callers changed.
 +      (set_cursor_from_row): Rewritten to support bidirectional text and
 +      reversed glyph rows.
 +      (text_outside_line_unchanged_p, try_window_id):
 +      Disable optimizations if we are reordering bidirectional text and the
 +      paragraph direction can be affected by the change.
 +      (append_glyph, append_composite_glyph)
 +      (produce_image_glyph, append_stretch_glyph): Set the
 +      resolved_level and bidi_type members of each glyph.
 +      (append_glyph): If the glyph row is reversed, prepend the glyph
 +      rather than appending it.
 +      (handle_stop_backwards): New function.
 +      (reseat_1, pop_it, push_it): Set prev_stop and base_level_stop.
 +      (reseat): Call handle_stop_backwards to recompute prev_stop and
 +      base_level_stop for the new position.
 +      (handle_invisible_prop): Under bidi iteration, skip invisible text
 +      using bidi_get_next_char_visually.  If we are `reseat'ed, init the
 +      paragraph direction.  Update IT->prev_stop after skipping
 +      invisible text.
 +      (move_it_in_display_line_to): New variables prev_method
 +      and prev_pos.  Compare for strict equality in
 +      BUFFER_POS_REACHED_P.
 +      (try_cursor_movement): Examine all the candidate rows that occlude
 +      point, to return the best match.  If rows are bidi-reordered
 +      and point moved backwards, back up to the row that is not a
 +      continuation line, and start looking for a suitable row from
 +      there.
 +
 +      * term.c (append_glyph): Reverse glyphs by pre-pending them,
 +      rather than appending, if the glyph_row's reversed_p flag is set.
 +      Set the resolved_level and bidi_type members of each glyph.
 +
 +      * .gdbinit (pbiditype): New command.
 +      (pgx): Use it to display bidi level and type of the glyph.
 +      (pitx): Display some bidi information about the iterator.
 +      (prowlims, pmtxrows): New commands.
 +
 +2010-03-30  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove all uses of C_DEBUG_SWITCH and LIBS_DEBUG.
 +      * s/usg5-4.h (LIBS_DEBUG):
 +      * s/irix6-5.h (C_DEBUG_SWITCH):
 +      * s/gnu-linux.h (LIBS_DEBUG):
 +      * s/darwin.h (LIBS_DEBUG):
 +      * s/bsd-common.h (LIBS_DEBUG):
 +      * s/aix4-2.h (LIBS_DEBUG, C_DEBUG_SWITCH):
 +      * m/iris4d.h (LIBS_DEBUG):
 +      * m/hp800.h (LIBS_DEBUG): Remove definitions.
 +
 +      * Makefile.in (LIBES): Remove reference to LIBS_DEBUG.
 +      (LIBS_DEBUG): Remove definition.
 +
 +2010-03-27  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * process.c (Fmake_network_process): Don't apply Bug#5173 fix for
 +      Windows.
 +
 +2010-03-25  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +
 +      * process.c (Fmake_network_process): Don't call turn_on_atimers around
 +      `connect' (Bug#5723).
 +
 +2010-03-25  Helmut Eller  <eller.helmut@gmail.com>
 +
 +      * process.c (Fmake_network_process): Call `select' for interrupted
 +      `connect' rather than creating new socket (Bug#5173).
 +
 +2010-03-24  Jan Djärv  <jan.h.d@swipnet.se>
  
        * frame.c (x_get_arg): Handle RES_TYPE_BOOLEAN_NUMBER (bug #5736).
  
  
        * dispextern.h (resource_types): RES_TYPE_BOOLEAN_NUMBER is new.
  
 -2010-03-20  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +2010-03-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
        * xfns.c (Fx_create_frame) [USE_LUCID]: Add BLOCK_INPUT around
        XLoadQueryFont.
  
 -2010-03-16  Kenichi Handa  <handa@m17n.org>
 +2010-03-24  Kenichi Handa  <handa@m17n.org>
  
        * coding.c (decode_coding_ccl): Fix previous change for the
        multibyte case.
        case that the output buffer is fullfilled.
        (encode_coding): Setup ccl program here.
  
 -2010-03-15  Andreas Politz  <politza@fh-trier.de>  (tiny change)
 +2010-03-23  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * s/gnu-linux.h (LIBS_SYSTEM): Remove, same as default.
 +
 +      Simplify LIBS_MACHINE definitions.
 +      * m/hp800.h (LIBS_MACHINE): Remove, same as default.
 +      * m/iris4d.h (LIBS_MACHINE): Likewise.
 +      * m/ibmrs6000.h (LIBS_MACHINE): Rename to LIBS_SYSTEM and move ...
 +      * s/aix4-2.h (LIBS_SYSTEM): ... here.
 +      * s/netbsd.h: Remove commented out code.
 +
 +2010-03-22  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove dead code dealing with POSIX_SIGNALS.
 +      * atimer.c (set_alarm): Remove dead code, all USG systems define
 +      POSIX_SIGNALS.
 +      * data.c (arith_error): Likewise.
 +      * keyboard.c (input_available_signal, handle_user_signal)
 +      (interrupt_signal): Likewise.
 +      * process.c (sigchld_handler): Likewise.
 +      (create_process): Remove if 0 code.  Remove HPUX conditional when
 +      !defined (POSIX_SIGNALS), it cannot be true.
 +      * syssignal.h: Remove USG5_4 and USG conditionals when
 +      !POSIX_SIGNALS, they cannot be true.
 +
 +      * keyboard.c (Fset_input_interrupt_mode): Remove code depending on
 +      NO_SOCK_SIGIO, not used anymore.
 +
 +2010-03-21  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      * m/vax.h (BSD_SYSTEM, BSD4_2): Remove conditionals, we only
 +      support vax on BSDs.
 +
 +      * m/ibmrs6000.h (ORDINARY_LINK): Move definition ...
 +      * s/aix4-2.h (ORDINARY_LINK): ... here.
 +
 +2010-03-21  Andreas Schwab  <schwab@linux-m68k.org>
 +
 +      * Makefile.in (abs_builddir): Define.
 +      (bootstrap_exe): Use it.
 +      (VPATH): Use $(srcdir) instead of @srcdir@.
 +
 +2010-03-20  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      * Makefile.in (bootstrap_exe): Use an absolute name.
 +
 +2010-03-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove support for old GNU/Linux using libc version 5.
 +      * m/alpha.h (LINUX_SBRK_BUG): Remove definition.
 +      * emacs.c (main): Remove code depending on LINUX_SBRK_BUG.
 +
 +      Consolidate redundant definitions in s/bsd-common.h.
 +      * s/bsd-common.h (BSD4_2, TABDLY, TAB3, HAVE_TERMIOS, NO_TERMIO)
 +      (LIBS_DEBUG, SYSV_SYSTEM_DIR, UNEXEC, NARROWPROTO, BSD_PGRPS)
 +      (LDAV_SYMBOL, KERNEL_FILE): Define (or undefine) here instead of
 +      doing it in all files that include this one.
 +      * s/gnu.h (BSD4_2, TABDLY, TAB3, HAVE_TERMIOS, NO_TERMIO)
 +      (LIBS_DEBUG, SYSV_SYSTEM_DIR, UNEXEC, NARROWPROTO, BSD_PGRPS)
 +      (LDAV_SYMBOL, KERNEL_FILE): Remove.
 +      * s/freebsd.h (BSD4_2, TABDLY, TAB3, HAVE_TERMIOS, NO_TERMIO)
 +      (LIBS_DEBUG, SYSV_SYSTEM_DIR, UNEXEC, NARROWPROTO, BSD_PGRPS)
 +      (LDAV_SYMBOL, KERNEL_FILE): Remove.
 +      * s/netbsd.h (BSD4_2, TABDLY, TAB3, HAVE_TERMIOS, NO_TERMIO)
 +      (LIBS_DEBUG, SYSV_SYSTEM_DIR, UNEXEC, NARROWPROTO, BSD_PGRPS)
 +      (LDAV_SYMBOL, KERNEL_FILE): Remove.
 +
 +      Consolidate redundant definitions.
 +      * s/usg5-4.h (sigsetmask, PTY_TTY_NAME_SPRINTF): Do not define,
 +      it's undefined in all files that include this one.
 +      (POSIX_SIGNALS): Define here instead of doing it in all files that
 +      include this one.
 +      * s/irix6-5.h (sigsetmask, PTY_TTY_NAME_SPRINTF): Do not undef.
 +      (POSIX_SIGNALS): Do not define.
 +      * s/sol2-6.h (sigsetmask, PTY_TTY_NAME_SPRINTF): Do not undef.
 +      (POSIX_SIGNALS): Do not define.
 +      * s/unixware.h (sigsetmask, PTY_TTY_NAME_SPRINTF): Do not undef.
 +      (POSIX_SIGNALS): Do not define.
 +
 +      Remove support for old UNIX System V systems.
 +      * s/unixware.h: Add the contents of s/usg-5-4-2.h.
 +      * s/usg-5-4-2.h: Remove.
 +
 +      Remove support for Solaris on PPC and for old versions.
 +      * s/sol2-6.h: Add the contents of s/sol-2.3.h, s/sol-2.4.h, s/sol-2.5.h.
 +      (LD_SWITCH_SYSTEM, USE_MMAP_FOR_BUFFERS): Remove #defines/#undef
 +      that cancel each other.
 +      * s/sol2-3.h:
 +      * s/sol2-4.h:
 +      * s/sol2-5.h: Remove.
 +      * m/ibmrs6000.h: Remove code for USG5_4, this file is only used on AIX.
 +      (NO_REMAP): Remove, unused.
 +      (UNEXEC): Move definition ...
 +      * s/aix4-2.h (UNEXEC): ... here.
 +
 +      * s/openbsd.h: Remove support for non-ELF and for systems that do
 +      not support shared libraries.
 +      * s/netbsd.h:
 +      * s/freebsd.h: Likewise.
 +
 +2010-03-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove non-working support for lynxos 3.0.
 +      * s/lynxos.h: Remove file.
 +
 +      * unexec.c (unexec, adjust_lnnoptrs): Do not depend on
 +      COFF_BSD_SYMBOLS, nothing defines it anymore.
 +
 +2010-03-20  Dan Nicolaescu  <dann@ics.uci.edu>
 +
 +      Remove obsolete uses of HAVE_SHM.
 +      * emacs.c (standard_args):
 +      (Fdump_emacs):
 +      (syms_of_emacs): Remove code depending on HAVE_SHM.
 +
 +      * alloc.c: Remove HAVE_SHM dependent definition.
 +
 +      * Makefile.in (RUN_TEMACS): Do not depend on HAVE_SHM.
 +
 +2010-03-18  Glenn Morris  <rgm@gnu.org>
 +
 +      * emacs.c (USAGE4): Hard-code bug address.
 +      (REPORT_EMACS_BUG_ADDRESS, REPORT_EMACS_BUG_PRETEST_ADDRESS): Remove.
 +      (bug_reporting_address): Remove.
 +      (main): Don't call bug_reporting_address.
 +
 +      * Makefile.in (XFT_LIBS, LIBXPM, LIBJPEG, LIBPNG, LIBTIFF, LIBGIF)
 +      (LIBGPM, LIBRESOLV): Set using autoconf rather than cpp.
 +
 +2010-03-15  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfns.c (Fx_create_frame):
 +      * frame.c (Vdefault_frame_scroll_bars): Put non-GTK X scroll-bars
 +      on left.
 +
 +2010-03-13  Andreas Politz  <politza@fh-trier.de>  (tiny change)
  
        * editfns.c (Fformat): Account for string precision when computing
        field width (Bug#5710).
  
 +2010-03-12  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * xfns.c (Fx_create_frame): Set default to Qright.
 +
 +      * frame.c (Vdefault_frame_scroll_bars): Set default to Qright for
 +      all window systems.
 +
 +2010-03-12  Eli Zaretskii  <eliz@gnu.org>
 +
 +      These changes remove termcap.c from the build on Posix platforms.
 +      * Makefile.in (termcapobj): Move termcap.o from here...
 +      (MSDOS_OBJ): ...to here.
 +      (termcapobj) [!LIBS_TERMCAP]: Remove specialized value, as it is
 +      now identical to when LIBS_TERMCAP is defined.
 +
 +      * term.c: Remove (ifdef'ed away) inclusion of termcap.h.
 +
 +      * cm.c: Remove (ifdef'ed away) inclusion of termcap.h.
 +
 +      * config.in: Regenerated.  (See top-level ChangeLog.)
 +
 +2010-03-10  Chong Yidong  <cyd@stupidchicken.com>
 +
 +      * Branch for 23.2.
 +
 +2010-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
 +
 +      Cleanup setup of gl_state in various parts of the code.
 +      * syntax.h (SETUP_BUFFER_SYNTAX_TABLE): New macro.
 +      (SETUP_SYNTAX_TABLE, SETUP_SYNTAX_TABLE_FOR_OBJECT):
 +      * syntax.c (find_defun_start, Fchar_syntax, Fmatching_paren)
 +      (skip_chars):
 +      * regex.c (regex_compile): Use it.
 +      (re_compile_pattern): Don't set gl_state.current_syntax_table since
 +      it's now set in regex_compile when/if we need it.
 +
  2010-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>
  
        Make it possible to C-g in a tight bytecode loop again (bug#5680).
        (scroll_end_callback): Remove.
        (xg_create_scroll_bar): Add parameter end_callback, bind it to
        button-release-event.  Replace value-changed event with change-value,
 -      bug #5177,
 +      bug #5177.
        (xg_event_is_for_scrollbar): Only return true if button is less than 4,
        bug #5177.
  
  
  2009-12-12  Eli Zaretskii  <eliz@gnu.org>
  
 -      * dispextern.h (struct text_pos): Use EMACS_INT;
 +      * dispextern.h (struct text_pos): Use EMACS_INT.
        (struct glyph): Use EMACS_INT for charpos.
        (struct it): Use EMACS_INT for stop_charpos, end_charpos,
        region_beg_charpos, region_end_charpos,
        (store_symval_forwarding): Take into account the fact that Ints can
        now have more than one tag.
        * buffer.c (syms_of_buffer): Use LISP_INT_TAG.
 -      buffer_slot_type_mismatch):
 +      (buffer_slot_type_mismatch):
        * xfaces.c (face_attr_equal_p):
        * print.c (print_object):
        * alloc.c (mark_maybe_object, mark_object, survives_gc_p):
  2009-09-18  Adrian Robert  <Adrian.B.Robert@gmail.com>
  
        * emacs.c (inhibit_x_resources): Update doc string for NS.
 -      (main) [HAVE_NS]: Don't process --no-init-file option.  Remove
 -      legacy code for -NXHost.  Fix error printf in daemon case.
 +      (main) [HAVE_NS]: Don't process --no-init-file option.
 +      Remove legacy code for -NXHost.  Fix error printf in daemon case.
  
        * nsterm.h (ns_no_defaults): Remove.
  
        (ns_use_qd_smoothing): Remove legacy variable.
        (EmacsView-windowShouldZoom:): Set frame left_pos, top_pos and
        don't update the NSWindow itself.
 -      (EmacsView-windowWillUseStandardFrame:defaultFrame:): Improve
 -      state detection and store user rect ourselves.  (Bug #3581)
 +      (EmacsView-windowWillUseStandardFrame:defaultFrame:):
 +      Improve state detection and store user rect ourselves.  (Bug #3581)
  
        * nsfont.m (nsfont_draw) [NS_IMPL_COCOA]: Don't use
        ns_use_qd_smoothing.
        * xterm.h: Rename x_non_menubar_window_to_frame to
        x_menubar_window_to_frame.
  
 -      * xterm.c: Remove declarations also in xterm.h
 +      * xterm.c: Remove declarations also in xterm.h.
        (XTmouse_position): Do not return valid positions
        for clicks in the menubar and the toolbar for Gtk+.
  
  
        * makefile.w32-in ($(BLD)/doc.$(O)): Depend on buildobj.h, not on
        $(SRC)/buildobj.h.
 -      (buildobj.h): Renamed from $(SRC)/buildobj.h.
 +      (buildobj.h): Rename from $(SRC)/buildobj.h.
        (make-buildobj-CMD, make-buildobj-SH): Create buildobj.h, not
        $(SRC)/buildobj.h.
        (clean): Add buildobj.h.
  2009-08-21  Adrian Robert  <Adrian.B.Robert@gmail.com>
  
        * nsterm.m (ns_get_color): Update documentation properly for last
 -      change, and clean up loose ends in the code left by it.  Fix
 -      longstanding bug with 16-bit hex parsing, and add support for
 +      change, and clean up loose ends in the code left by it.
 +      Fix longstanding bug with 16-bit hex parsing, and add support for
        yet another X11 format (rgb:r/g/b) for compatibility.
        * nsfns.m (EmacsDialogPanel-runDialogAt): Add declaration of
        timer_check() to avoid crash on Leopard/PPC.  Bug #2154.
  2009-07-04  Eli Zaretskii  <eliz@gnu.org>
  
        Emulation of `getloadavg' on MS-Windows.
 -      * w32.c: Include float.h
 +      * w32.c: Include float.h.
        (g_b_init_get_native_system_info, g_b_init_get_system_times)
        (GetNativeSystemInfo_Proc, GetSystemTimes_Proc): Declare.
        (get_native_system_info, get_system_times): New functions.
        (Fdefine_coding_system_internal): Likewise.
        (setup_coding_system): Likewise.  Remove unneeded casts.
        (detect_coding_iso_2022): Compare Viso_2022_charset_list with
 -      CODING_ATTR_CHARSET_LIST, not CODING_ATTR_SAFE_CHARSETS.  Remove
 -      unneeded casts.
 +      CODING_ATTR_CHARSET_LIST, not CODING_ATTR_SAFE_CHARSETS.
 +      Remove unneeded casts.
  
        * insdel.c (del_range_2): Don't modify gap contents when called
        from decode_coding_object.  (Bug#1809)
  
        * lisp.h: Define Qfont_spec, Qfont_entity, Qfont_object extern.
  
 -      * font.c (Qfont_spec, Qfont_entity, Qfont_object): Definitions
 -      moved to data.c.
 +      * font.c (Qfont_spec, Qfont_entity, Qfont_object):
 +      Definitions moved to data.c.
  
  2009-02-20  Adrian Robert  <Adrian.B.Robert@gmail.com>
  
        here; it will be done in init_frame_faces.
  
        * xterm.h (struct xim_inst_t): Definition moved from xterm.c.
 -      (struct x_display_info): Remove unused member null_pixel.  New
 -      member xim_callback_data.
 +      (struct x_display_info): Remove unused member null_pixel.
 +      New member xim_callback_data.
  
        * xterm.c (struct xim_inst_t): Definition moved to xterm.h.
        (xim_initialize): Save pointer to callback function data.
  
  2008-12-13  Kenichi Handa  <handa@m17n.org>
  
 -      * font.c (font_rescale_ratio): Moved from xfaces.c.
 +      * font.c (font_rescale_ratio): Move from xfaces.c.
        Argument type changed.  Handle a font-spec too.
        (font_score): Check Vface_font_rescale_alist.
        (font_open_entity): Likewise.  (Bug#1547)
  
 -      * xfaces.c (font_rescale_ratio): Moved to font.c.
 +      * xfaces.c (font_rescale_ratio): Move to font.c.
  
  2008-12-13  Chong Yidong  <cyd@stupidchicken.com>
  
  
  2008-12-12  Jason Rumney  <jasonr@gnu.org>
  
 -      * w32fns.c (x_display_info_for_name, Fx_open_connection): Set
 -      Vwindow_system_version to the real w32 major version.
 +      * w32fns.c (x_display_info_for_name, Fx_open_connection):
 +      Set Vwindow_system_version to the real w32 major version.
  
  2008-12-12  Dan Nicolaescu  <dann@ics.uci.edu>
  
  
  2008-12-11  Chong Yidong  <cyd@stupidchicken.com>
  
 -      * term.c (tty_free_frame_resources): Renamed from delete_tty_output;
 +      * term.c (tty_free_frame_resources): Rename from delete_tty_output;
        all callers changed.  Call free_frame_faces to free the face cache.
  
  2008-12-11  Jason Rumney  <jasonr@gnu.org>
        (set_category_set): Extern it.
  
        * category.c (hash_get_category_set): New function.
 -      (Fmodify_category_entry): Adjusted for the change of
 +      (Fmodify_category_entry): Adjust for the change of
        char_table_ref_and_range.  Call hash_get_category_set to get a
        category set to store in the table.
  
        (SET_TEMP_CHARSET_WORK_ENCODER, GET_TEMP_CHARSET_WORK_ENCODER)
        (SET_TEMP_CHARSET_WORK_DECODER, GET_TEMP_CHARSET_WORK_DECODER):
        New macros.
 -      (load_charset_map): Meaning of control_flag changed.  If
 -      inhibit_load_charset_map is nonzero, setup a table in
 +      (load_charset_map): Meaning of control_flag changed.
 +      If inhibit_load_charset_map is nonzero, setup a table in
        temp_charset_work.
        (load_charset): New argument control_flag.
        (map_charset_for_dump): New function.
        (syms_of_charset): Make `inhibit-load-charset-map' a Lisp
        variable.
  
 -      * chartab.c (sub_char_table_ref_and_range): Adjusted for the
 +      * chartab.c (sub_char_table_ref_and_range): Adjust for the
        change of char_table_ref_and_range.
        (char_table_ref_and_range): Change the meaning of argument FROM
        and TO.  Now the caller must provide initial values for *FROM
        and *TO.
  
 -      * fontset.c (fontset_add): Adjusted for the change of
 +      * fontset.c (fontset_add): Adjust for the change of
        char_table_ref_and_range.
        (fontset_get_font_group): Likewise.
        (Ffontset_info): Likewise.
  
 -      * keymap.c (describe_vector): Adjusted for the change of
 +      * keymap.c (describe_vector): Adjust for the change of
        char_table_ref_and_range.  For char-table, put boundary between
        non-ASCII and 8-bit characters.
  
        <after-change-functions>: Reflow docstrings.
  
  2008-08-04  Adrian Robert  <Adrian.B.Robert@gmail.com>
 -          Ken Raeburn  <raeburn@gnu.org>
 +            Ken Raeburn  <raeburn@gnu.org>
  
        Dock menu customization, based on a patch by Ken Raeburn, plus some
        other fixes.
  
        * s/darwin.h: Add #define DARWIN_OS.  Get rid of C_SWITCH_SYSTEM def.
        Change LIBS_MACGUI to LIBS_NSGUI.  Move temacs-conditionalized defs
 -      closer to C_SWITCH_SYSTEM_TEMACS so usage is understood.  Expand
 -      comment on NO_SOCK_SIGIO.
 +      closer to C_SWITCH_SYSTEM_TEMACS so usage is understood.
 +      Expand comment on NO_SOCK_SIGIO.
  
  2008-08-03  Chong Yidong  <cyd@stupidchicken.com>
  
  
  2008-07-15  Chris Hall  <chris@web.workinglinux.com>  (tiny change)
  
 -      * callproc.c (set_initial_environment): Initialize
 -      Vprocess_environment under CANNOT_DUMP (fixes crash when
 +      * callproc.c (set_initial_environment):
 +      Initialize Vprocess_environment under CANNOT_DUMP (fixes crash when
        batch-compiling for bootstrap).
  
  2008-07-15  Chris Hall  <chris@web.workinglinux.com>  (tiny change)
 -          YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 +            YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
  
 -      (make_initial_frame): Call init_frame_faces(f) in CANNOT_DUMP case --
 -      fix crash due to different init order.
 +      * frame.c (make_initial_frame): Call init_frame_faces(f) in
 +      CANNOT_DUMP case -- fix crash due to different init order.
  
  2008-07-15  Adrian Robert  <Adrian.B.Robert@gmail.com>
  
        * m/macppc.h:
        * m/alpha.h: Use GNU_LINUX instead of LINUX.  Reorganize conditionals.
  
 -      * m/ibms390x.h (XINT, XUINT): Don't define, same as the default
 +      * m/ibms390x.h (XINT, XUINT): Don't define, same as the default.
        (SPECIAL_EMACS_INT):
        * m/ia64.h (SPECIAL_EMACS_INT):
        * m/amdx86-64.h (SPECIAL_EMACS_INT):
  2008-07-10  Dan Nicolaescu  <dann@ics.uci.edu>
  
        * fileio.c:
 -      * sysdep.c
 +      * sysdep.c:
        * systty.h:
        * m/ibmrs6000.h:
        * m/iris4d.h:
  
        * xftfont.c (struct xftfont_info): New member ft_size.  Make the
        member order compatible with struct ftfont_info.
 -      (xftfont_open): Add FC_CHARSET to the pattern.  Set
 -      xftfont_info->ft_size.  Don't unlock the face.  Check BDF
 +      (xftfont_open): Add FC_CHARSET to the pattern.
 +      Set xftfont_info->ft_size.  Don't unlock the face.  Check BDF
        properties if appropriate.
        (xftfont_close): Unlock the face.
        (xftfont_anchor_point, xftfont_shape): Deleted.
        (USG_SHARED_LIBRARIES): Remove duplicate definition.
  
  2008-06-26  Juanma Barranquero  <lekktu@gmail.com>
 -          Eli Zaretskii  <eliz@gnu.org>
 +            Eli Zaretskii  <eliz@gnu.org>
  
        * makefile.w32-in (LOCAL_FLAGS):
        Don't include WINDOWSNT, DOS_NT and _UCHAR_T.
        truncate only if the window width is below that integer.
        (start_display, resize_mini_window, produce_stretch_glyph)
        (display_string, move_it_in_display_line_to): Use line_wrap.
 -      (back_to_previous_visible_line_start, reseat_1): Reset
 -      string_from_display_prop_p.
 +      (back_to_previous_visible_line_start, reseat_1):
 +      Reset string_from_display_prop_p.
        (display_line): Extend default face to end of line when wrapping.
  
  2008-06-24  Kim F. Storm  <storm@cua.dk>
        the property of LFACE_FONT of LFACE (if any).
  
  2008-06-21  Seiji Zenitani  <zenitani@mac.com>
 -          Ryo Yoshitake  <ryo@shiftmode.net>
 +            Ryo Yoshitake  <ryo@shiftmode.net>
  
        * xterm.c (x_set_frame_alpha): Add x_catch_errors for bug#437.
  
        definitions from xmenu.c.  Suggested by Adrian Robert.
  
        * xmenu.c: Remove platform-independent menu definitions.
 -      (menu_items menu_items_inuse, menu_items_allocated)
 +      (menu_items, menu_items_inuse, menu_items_allocated)
        (menu_items_used, menu_items_n_panes)
        (menu_items_submenu_depth): Move to keyboard.h.
        (init_menu_items, finish_menu_items, unuse_menu_items)
        * xterm.c (x_set_frame_alpha): Move declarations before statements.
  
  2008-05-21  Seiji Zenitani  <zenitani@mac.com>
 -          Ryo Yoshitake  <ryo@shiftmode.net>
 +            Ryo Yoshitake  <ryo@shiftmode.net>
  
        * frame.c (Qalpha): Add a new frame parameter `alpha'.
        (Vframe_alpha_lower_limit): New variable.
        (struct glyph_string): New member underline_position and
        underline_thickness.
        (enum lface_attribute_index): Remove LFACE_AVGWIDTH_INDEX.
 -      (struct face): Change type of `font' to `struct font *'.  Remove
 -      members `font_name', `font_info_id'.
 +      (struct face): Change type of `font' to `struct font *'.
 +      Remove members `font_name', `font_info_id'.
        (per_char_metric, encode_char): Delete externs.
        (calc_pixel_width_or_height): Adjust the prototype.
  
        (FONT_WEIGHT_NAME_NUMERIC, FONT_SLANT_NAME_NUMERIC)
        (FONT_WIDTH_NAME_NUMERIC, FONT_SET_STYLE): New macros.
        (struct font_spec, struct font_entity): New structs.
 -      (FONT_ENCODING_NOT_DECIDED): Moved from fontset.h.
 +      (FONT_ENCODING_NOT_DECIDED): Move from fontset.h.
        (struct font): Many members from old "struct font_info" moved to
        here.  Members font and entity deleted.
        (FONT_SPEC_P, FONT_ENTITY_P, FONT_OBJECT_P, FONTP): Modified for
        (CHECK_FONT_SPEC, CHECK_FONT_ENTITY, CHECK_FONT_OBJECT)
        (CHECK_FONT_GET_OBJECT): Likewise.
        (XFONT_SPEC, XFONT_ENTITY, XFONT_OBJECT, XSETFONT): New macros.
 -      (PT_PER_INCH, POINT_TO_PIXEL, PIXEL_TO_POINT): Moved from font.h.
 -      (struct font_driver): New members case_sensitive anc check.  Type
 -      of the member list and open changed.
 +      (PT_PER_INCH, POINT_TO_PIXEL, PIXEL_TO_POINT): Move from font.h.
 +      (struct font_driver): New members case_sensitive anc check.
 +      Type of the member list and open changed.
        (enable_font_backend, font_symbolic_weight, font_symbolic_slant)
        (font_symbolic_width, font_find_object, font_get_spec)
        (font_set_lface_from_name): Delete extern.
        (enable_font_backend): Delete it.
        (Qfont_spec, Qfont_entity, Qfont_object): New variables.
        (CHECK_VALIDATE_FONT_SPEC): Delete it.
 -      (PT_PER_INCH, POINT_TO_PIXEL, PIXEL_TO_POINT): Moved to font.h.
 +      (PT_PER_INCH, POINT_TO_PIXEL, PIXEL_TO_POINT): Move to font.h.
        (null_string): Delete it.
        (null_vector): Make it static.
        (font_family_alist): Delete it.
        (QCextra, QClanguage): Delete it.
        (QClang, QCavgwidth, QCfont_entity, QCfc_unknown_spec): New variables.
        (font_make_spec, font_make_entity, font_make_object)
 -      (font_intern_prop): Renamed from intern_downcase.  Don't downcase
 +      (font_intern_prop): Rename from intern_downcase.  Don't downcase
        the string.  Callers changed.
 -      (font_pixel_size): Adjusted for the format change of font-related
 +      (font_pixel_size): Adjust for the format change of font-related
        objects.
        (prop_name_to_numeric, prop_numeric_to_name): Delete them.
        (font_style_to_value, font_style_symbolic): New function.
        (font_registry_charsets): Use Fassoc_string instead of
        assq_no_quit.
        (font_prop_validate_symbol): Don't return null_string.
 -      (font_prop_validate_style): Adjusted for the change of
 +      (font_prop_validate_style): Adjust for the change of
        style-related values in a font vector.
        (font_property_table): Delete entries for QClanguage and
        QCantialias, add entries for QCavgwidth.
        (get_font_prop_index): Delete the 2nd argument FROM.
        (font_prop_validate): Arguments changed.
 -      (font_put_extra): Adjusted for the change of font-related objects.
 +      (font_put_extra): Adjust for the change of font-related objects.
        (font_expand_wildcards, font_parse_xlfd, font_unparse_xlfd)
        (font_parse_fcname, font_unparse_fcname)
        (font_prepare_composition): Likewise.
 -      (font_parse_family_registry): Renamed from font_merge_old_spec.
 +      (font_parse_family_registry): Rename from font_merge_old_spec.
        (otf_open): Delete the 1st arg entity.
 -      (font_otf_capability): Adjusted for the above change.
 +      (font_otf_capability): Adjust for the above change.
        (font_score): New arg alternate_families.  Adjusted for the change
        of font-related objects.
        (font_sort_entites): New arg best_only.
        (font_match_p): Check alternate families.
        (font_find_object): Delete it.
        (font_check_object): New function.
 -      (font_clear_cache): Adjusted for the change of font-related objects.
 +      (font_clear_cache): Adjust for the change of font-related objects.
        (font_delete_unmatched): New arg.
        (font_list_entities): Call font_driver->list with a spec that
        doesn't specify style-related properties.
        (font_matching_entity): Arguments changed.  Caller changed.
 -      (font_open_entity): Adjusted for the change of font-related objects.
 +      (font_open_entity): Adjust for the change of font-related objects.
        (font_close_object, font_has_char, font_encode_char)
        (font_get_name, font_get_spec): Likewise.
        (font_spec_from_name, font_clear_prop, font_update_lface):
        New functions.
        (font_find_for_lface, font_open_for_lface, font_load_for_lface)
        (font_prepare_for_face, font_done_for_face, font_open_by_name)
 -      (font_at): Adjusted for the change of font-related objects.
 +      (font_at): Adjust for the change of font-related objects.
        (font_range): New function.
        (Ffontp, Ffont_spec, Ffont_get, Ffont_put, Flist_fonts)
 -      (Ffont_xlfd_name): Adjusted for the change of font-related objects.
 +      (Ffont_xlfd_name): Adjust for the change of font-related objects.
        (Fcopy_font_spec, Fmerge_font_spec): New function.
 -      (Ffont_family_list): Renamed from list-families.
 +      (Ffont_family_list): Rename from list-families.
        (Finternal_set_font_style_table): Arguments changed.
        (Ffont_fill_gstring, Ffont_shape_text, Fopen_font)
 -      (Ffont_drive_otf, Fquery_font, Ffont_match_p): Adjusted for the
 +      (Ffont_drive_otf, Fquery_font, Ffont_match_p): Adjust for the
        change of font-related objects.
        (syms_of_font): Delete "ifdef USE_FONT_BACKEND".  DEFSYM new symbols.
  
        * fontset.h (struct font_info): Delete it.  Most members go to
        struct font.
 -      (FONT_ENCODING_NOT_DECIDED): Moved to font.h.
 +      (FONT_ENCODING_NOT_DECIDED): Move to font.h.
        (enum FONT_SPEC_INDEX): Delete it.
        (font_info, list_fonts_func, load_font_func, query_font_func)
        (set_frame_fontset_func, find_ccl_program_func)
 -      (get_font_repertory_func, new_fontset_from_font_name): Delete
 -      externs.
 +      (get_font_repertory_func, new_fontset_from_font_name):
 +      Delete externs.
        (fontset_from_font_name): Extern it.
        (FS_LOAD_FONT, FONT_INFO_ID, FONT_INFO_FROM_ID)
        (FONT_INFO_FROM_FACE): Deleted.
        (face_for_char): Likewise.  Call face_for_char with font_object.
        (fs_load_font): Delete.  Delete #pragma surrounding it.
        (fs_query_fontset): Use strcasecmp instead of strcmp.
 -      (generate_ascii_font_name): Adjusted for the format change of
 +      (generate_ascii_font_name): Adjust for the format change of
        font-spec.
        (Fset_fontset_font): Likewise.  Use new macros to set elements of
        font-def.
        (Fnew_fontset): Use font_unparse_xlfd to generate
        FONTSET_ASCII (fontset).
        (new_fontset_from_font_name): Deleted.
 -      (fontset_from_font): Renamed from new_fontset_from_font.  Check if
 +      (fontset_from_font): Rename from new_fontset_from_font.  Check if
        a fontset is already created for the font.  FIx updating of
        Vfontset_alias_alist.
        (fontset_ascii_font): Deleted.
 -      (Ffont_info): Adjusted for the format change of font-spec.
 +      (Ffont_info): Adjust for the format change of font-spec.
        (Finternal_char_font): Likewise.
        (Ffontset_info): Likewise.
        (syms_of_fontset): Don't check load_font_func.
        (x_set_font_backend): Use FRAME_FONT macro to check if a font is
        already set for the frame.
  
 -      * ftfont.c (ftfont_pattern_entity): Argument FRAME removed.  Make
 -      a font-entity by font_make_entity.  Use font_intern_prop instead
 +      * ftfont.c (ftfont_pattern_entity): Argument FRAME removed.
 +      Make a font-entity by font_make_entity.  Use font_intern_prop instead
        of intern_downcase.  Use FONT_SET_STYLE to set a style-related
        font property.  If a font is scalable, set avgwidth property to 0.
        Set font-entity property by font_put_extra.
        (ftfont_list_generic_family): Argument SPEC and REGISTRY removed.
 -      (ffont_driver): Adjusted for the change of struct font_driver.
 +      (ffont_driver): Adjust for the change of struct font_driver.
        (ftfont_spec_pattern): New function.
        (ftfont_list): Return a list, not vector.
        (ftfont_match): Use ftfont_spec_pattern to get a pattern.
        font property.  Don't update dpyinfo->smallest_font_height and
        dpyinfo->smallest_char_width.
        (ftfont_close): Don't free `struct font'.
 -      (ftfont_has_char): Adjusted for the format change of font-entity.
 +      (ftfont_has_char): Adjust for the format change of font-entity.
        (ftfont_encode_char, ftfont_text_extents): Likewise.
  
        * ftxfont.c (ftxfont_list): Return a list, not vector.
        font property.  Don't update dpyinfo->smallest_font_height and
        dpyinfo->smallest_char_width.
        (ftxfont_close): Don't decrease FRAME_X_DISPLAY_INFO (f)->n_fonts.
 -      (ftxfont_draw): Adjusted for the change of struct font.
 +      (ftxfont_draw): Adjust for the change of struct font.
  
 -      * image.c (image_ascent): Don't include "charset.h".  Include
 -      "character.h" and "font.h".
 +      * image.c (image_ascent): Don't include "charset.h".
 +      Include "character.h" and "font.h".
  
        * lisp.h (enum pvec_type): New member PREV_FONT.
        (Fassoc_string): EXFUN it.
        'struct font *'.
        (get_char_face_and_encoding): Assign the whole encoding task to
        the `encode-char' method of a font driver.
 -      (fill_composite_glyph_string): Adjusted for the change of `struct
 +      (fill_composite_glyph_string): Adjust for the change of `struct
        face' and `struct glyph_string'.
        (fill_glyph_string): Likewise.
        (get_per_char_metric): Arguments changed.
 -      (x_get_glyph_overhangs): Adjusted for the change of `struct face'
 +      (x_get_glyph_overhangs): Adjust for the change of `struct face'
        and `struct glyph_string'.
        (produce_stretch_glyph, calc_line_height_property)
        (x_produce_glyphs): Likewise.
  
        * xfaces.c: Throughout the file, delete all USE_FONT_BACKEND
        conditionals.  Don't check enable_font_backend.  Delete all codes
 -      used only when USE_FONT_BACKEND is not defined.  Use
 -      FONT_XXX_NAME_NUMERIC instead of face_numeric_xxx.
 +      used only when USE_FONT_BACKEND is not defined.
 +      Use FONT_XXX_NAME_NUMERIC instead of face_numeric_xxx.
        (QCfoundry, QCadstyle, QCregistry, QCspacing, QCsize, QCavgwidth)
        (Qp): Extern them.
        (clear_font_table, load_face_font, xlfd_lookup_field_contents):
        by FONTP.
        (lface_fully_specified_p): Don't check LFACE_AVGWIDTH.
        (set_lface_from_font_name): Delete it.
 -      (set_lface_from_font): Renamed from
 +      (set_lface_from_font): Rename from
        set_lface_from_font_and_fontset.  Caller changed.  Don't set
        LFACE_AVGWIDTH.  Use FONT_XXX_FOR_FACE to get a symbol suitable
        for face.
        * xfont.c: Include <stdlib.h> and "ccl.h".
        (struct xfont_info): New structure.
        (xfont_query_font): Deleted.
 -      (xfont_find_ccl_program): Renamed from x_find_ccl_program and
 +      (xfont_find_ccl_program): Rename from x_find_ccl_program and
        moved from xterm.c.
 -      (xfont_driver): Adjusted for the change of struct font_driver.
 +      (xfont_driver): Adjust for the change of struct font_driver.
        (compare_font_names): New function.
 -      (xfont_list_pattern): Sort font names case insensitively.  Make
 -      font_entity by calling font_make_entity.  Avoid auto-scaled fonts.
 +      (xfont_list_pattern): Sort font names case insensitively.
 +      Make font_entity by calling font_make_entity.  Avoid auto-scaled fonts.
        (xfont_list): Return a list, not vector.
        (xfont_match): If the font doesn't have QCname property, generate
        a name from the other font properties.
        font property.  Don't update dpyinfo->smallest_font_height and
        dpyinfo->smallest_char_width.
        (xfont_close): Don't free struct font.
 -      (xfont_prepare_face): Adjusted for the change of struct font.
 +      (xfont_prepare_face): Adjust for the change of struct font.
        (xfont_done_face): Deleted.
 -      (xfont_has_char): Adjusted for the change of struct font.
 +      (xfont_has_char): Adjust for the change of struct font.
        (xfont_encode_char, xfont_draw): Likewise.
        (xfont_check): New function.
  
 -      * xftfont.c (xftfont_list): Adjusted for the change of `list'
 +      * xftfont.c (xftfont_list): Adjust for the change of `list'
        callback function.
 -      (xftfont_match): Adjusted for the format change of font-entity.
 -      (xftfont_open): Adjusted for the format change of font-entity and
 +      (xftfont_match): Adjust for the format change of font-entity.
 +      (xftfont_open): Adjust for the format change of font-entity and
        font-object.  Adjusted for the change of struct font.  Return a
        font-object.  Don't update dpyinfo->smallest_font_height and
        dpyinfo->smallest_char_width.
        used only when USE_FONT_BACKEND is not defined.  Don't include ccl.h.
        (x_per_char_metric, x_encode_char): Deleted.
        (x_set_cursor_gc, x_set_mouse_face_gc): Don't set GCFont.
 -      (x_compute_glyph_string_overhangs): Adjusted for the change of
 +      (x_compute_glyph_string_overhangs): Adjust for the change of
        `struct face'.
        (x_draw_glyph_string_foreground)
        (x_draw_composite_glyph_string_foreground): Likewise.
        (x_draw_glyph_string): Likewise.  Use font->underline_position and
        font->underline_thickness.
 -      (x_new_font): Renamed from x_new_fontset2.
 +      (x_new_font): Rename from x_new_fontset2.
        (x_new_fontset, x_get_font_info, x_list_fonts): Deleted.
        (x_check_font): Call `check' method of a font driver.
        (x_font_min_bounds, x_compute_min_glyph_bounds, x_load_font)
        (x_query_font, x_get_font_repertory): Deleted.
 -      (x_find_ccl_program): Renamed and moved to xfont.c.
 -      (x_redisplay_interface): Adjusted for the change of `struct
 +      (x_find_ccl_program): Rename and moved to xfont.c.
 +      (x_redisplay_interface): Adjust for the change of `struct
        redisplay_interface'.
  
        * w32fns.c: Throughout the file, delete all USE_FONT_BACKEND
        (w32font_close): Don't free struct font.  Adjusted for the change
        of struct w32font_info.
        (w32font_encode_char, w32font_text_extents, w32font_draw):
 -      Adjusted for the change of struct w32font_info.
 +      Adjust for the change of struct w32font_info.
        (w32font_draw): Likewise.
        (w32font_list_internal): Return a list, not vector.
        (w32font_open_internal): Change the 4th arg to font-object.
        Use FONT_SET_STYLE to set a style-related font property.  If a
        font is scalable, set avgwidth property to 0.  Set font-entity
        property by font_put_extra.
 -      (font_matches_spec): Adjusted for the format change of font-entity.
 +      (font_matches_spec): Adjust for the format change of font-entity.
        (w32_weight_table, w32_decode_weight): New variables.
        (w32_encode_weight): New function.
 -      (fill_in_logfont): Adjusted for the format change of font-spec.
 +      (fill_in_logfont): Adjust for the format change of font-spec.
        (w32font_full_name): Use FONT_WEIGHT_SYMBOLIC to get a symbol
        weight value.
 -      (w32font_driver): Adjusted for the change of struct font_driver.
 +      (w32font_driver): Adjust for the change of struct font_driver.
  
        * w32term.h: Throughout the file, delete all USE_FONT_BACKEND
        conditionals.  Don't check enable_font_backend.  Surround non-used
        code by "#ifdef OLD_FONT" and "endif".
        (FONT_WIDTH, FONT_HEIGHT, FONT_BASE, FONT_DESCENT)
 -      (FONT_AVG_WIDTH): Adjusted for the change of struct font.
 +      (FONT_AVG_WIDTH): Adjust for the change of struct font.
  
        * w32term.c: Throughout the file, delete all USE_FONT_BACKEND
        conditionals.  Don't check enable_font_backend.  Delete all codes
        * w32uniscribe.c: Delete USE_FONT_BACKEND conditional.
        (uniscribe_open): Return value changed to font-object.
        Adjusted for the format change of font-object.
 -      (uniscribe_otf_capability): Adjusted for the change of struct font.
 +      (uniscribe_otf_capability): Adjust for the change of struct font.
        (add_opentype_font_name_to_list): Don't downcase names.
 -      (uniscribe_font_driver): Adjusted for the change of struct
 +      (uniscribe_font_driver): Adjust for the change of struct
        font_driver.
  
  2008-05-13  Chong Yidong  <cyd@stupidchicken.com>
        Report an error when image size is invalid.
        Read two bytes at a time when raw images have max_color_idx above 255.
  
 -2008-04-05  Eli Zaretskii  <eliz@gnu.org>
 -
 -      * w32.c (readdir): If FindFirstFile/FindNextFile return in
 -      cFileName a file name that includes `?' characters, use the 8+3
 -      alias in cAlternateFileName instead.
 -
  2008-04-05  Kenichi Handa  <handa@ni.aist.go.jp>
  
        * ccl.c (ccl_driver): If ccl->quit_silently is nonzero, don't
        * xterm.c (handle_one_xevent): For Gtk+ and ConfigureNotify, call
        xg_frame_resized when the event is for the edit widget.
  
 -      * gtkutil.h (xg_frame_resized): Renamed from xg_resize_widgets.
 +      * gtkutil.h (xg_frame_resized): Rename from xg_resize_widgets.
  
        * gtkutil.c (xg_resize_outer_widget): Only do one of set_geometry or
        set_char_size.
 -      (xg_frame_resized): Renamed from xg_resize_widgets.  Remove all
 +      (xg_frame_resized): Rename from xg_resize_widgets.  Remove all
        operations on widgets here.  Just set frame size if needed.
        (flush_and_sync, x_wm_size_hint_off, xg_pack_tool_bar): New functions.
        (xg_frame_set_char_size): Call x_wm_size_hint_off before resizing.
  
  2008-02-01  Kenichi Handa  <handa@ni.aist.go.jp>
  
 -      * coding.c (decode_coding_object, encode_coding_object): Adjust
 -      marker positions after conversion.
 +      * coding.c (decode_coding_object, encode_coding_object):
 +      Adjust marker positions after conversion.
  
        * lisp.h (struct Lisp_Marker): New member need_adjustment.
  
  
  2008-02-01  Jason Rumney  <jasonr@gnu.org>
  
 -      * w32term.c (x_set_glyph_string_clipping): Use
 -      get_glyph_string_clip_rects.
 +      * w32term.c (x_set_glyph_string_clipping):
 +      Use get_glyph_string_clip_rects.
        (x_set_glyph_string_clipping_exactly, x_draw_glyph_string):
        Adjust for the change of struct glyph_string.
  
        * xftfont.c (xftfont_draw): Adjust for the change of struct
        glyph_string.
  
 -      * xterm.c (x_set_glyph_string_clipping): Use
 -      get_glyph_string_clip_rects.
 +      * xterm.c (x_set_glyph_string_clipping):
 +      Use get_glyph_string_clip_rects.
        (x_set_glyph_string_clipping_exactly, x_draw_glyph_string):
        Adjust for the change of struct glyph_string.
  
        constant.  Save QCspacing value.  Save list of scripts instead of
        binary subranges.
        (w32_generic_family, logfonts_match, font_matches_spec): New functions.
 -      (add_font_entity_to_list): Use font_callback_data struct.  Filter
 -      unwanted fonts.
 +      (add_font_entity_to_list): Use font_callback_data struct.
 +      Filter unwanted fonts.
        (add_one_font_entity_to_list): Use font_callback_data struct.
        (w32_registry): Default to iso10646_1.
        (fill_in_logfont): Use dpi from extra slot.  Don't bother with
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Fix
 -      indexing into elements of s->cmp and s->char2b.
 +      * xterm.c (x_draw_composite_glyph_string_foreground):
 +      Fix indexing into elements of s->cmp and s->char2b.
  
  2008-02-01  Juanma Barranquero  <lekktu@gmail.com>
  
  
        * font.c (font_parse_fcname, font_parse_name): Don't change :name
        property of FONT.
 -      (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE, check_gstring): Define
 -      them unconditionally.
 +      (LGSTRING_HEADER_SIZE, LGSTRING_GLYPH_SIZE, check_gstring):
 +      Define them unconditionally.
        (font_matching_entity): New function.
        (font_open_by_name): Try font_matching_entity if exact match is
        not found.
        (font_prepare_composition): Set cmp->glyph_len.
        (font_open_entity): Set font->scalable.
        (Ffont_get): Handle :otf property.
 -      (Ffont_otf_gsub, Ffont_otf_gpos, Ffont_otf_alternates): New
 -      functions.
 +      (Ffont_otf_gsub, Ffont_otf_gpos, Ffont_otf_alternates):
 +      New functions.
        (Fquery_font): Use font->font.full_name.
        (syms_of_font): Defsubr Sfont_otf_gsub, Sfont_otf_gpos, and
        Sfont_otf_alternates.
        (font_at): New function.
        (Ffont_get): If FONT is a font-object, get entity from it.
        (Ffont_make_gstring): Initialize elements of glyphs with nil.
 -      (Ffont_fill_gstring): Use macro LGSTRING_XXX and LGLYPH_XXX.  Fix
 -      range check.
 +      (Ffont_fill_gstring): Use macro LGSTRING_XXX and LGLYPH_XXX.
 +      Fix range check.
        (Ffont_at): New function.
        (syms_of_font): Defsubr Sfont_at.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        * font.h (LGLYPH_XOFF, LGLYPH_YOFF, LGLYPH_WIDTH, LGLYPH_WADJUST)
 -      (LGLYPH_SET_WIDTH): Adjusted for the change of LGLYPH format.
 +      (LGLYPH_SET_WIDTH): Adjust for the change of LGLYPH format.
        (LGLYPH_ADJUSTMENT, LGLYPH_SET_ADJUSTMENT): New macros.
  
        * font.c (font_merge_old_spec): Treat '*' in foundry as a wild card.
        (font_prop_validate_extra): Delete.
        (font_prop_validate_spacing): New function.
        (font_property_table): Add elements for all known properties.
 -      (get_font_prop_index): Rename from check_font_prop_name.  New
 -      argument FROM.  Change caller.
 +      (get_font_prop_index): Rename from check_font_prop_name.
 +      New argument FROM.  Change caller.
        (font_prop_validate): Validate all known properties.
        (font_put_extra): Delete argument force.  Change caller.
        (font_expand_wildcards): Make it static.  Fix the way of shrinking
        (font_open_for_lface, font_open_by_name): Fix handling of font size.
        (Ffont_spec): Add QCname property that contains only unknown properties.
  
 -      * ftfont.c (ftfont_list): Use assq_no_quit, not Fassq.  Don't
 -      include weight in listing pattern, instead check weight of each
 +      * ftfont.c (ftfont_list): Use assq_no_quit, not Fassq.
 +      Don't include weight in listing pattern, instead check weight of each
        listed font.  Don't include scalable in pattern.  Pay attention to
        FONT_PIXEL_SIZE_QUANTUM.
  
  
        * font.c (XLFD_SMALLNUM_MASK): Delete this macro.
        (XLFD_LARGENUM_MASK): Delete XLFD_ENCODING_MASK from it.
 -      (font_expand_wildcards): Fix handling ENCODING field.  Avoid
 -      unnecessary checks for weight, slant, and swidth.
 +      (font_expand_wildcards): Fix handling ENCODING field.
 +      Avoid unnecessary checks for weight, slant, and swidth.
        (font_parse_fcname): New function.
        (font_unparse_fcname): New function.
        (font_parse_name): New function.
        * font.c (enum xlfd_field_index): Rename XLFD_XXX_SIZE_INDEX to
        XLFD_XXX_INDEX.
        (enum xlfd_field_mask): New enum.
 -      (intern_font_field): Changed argument.  Change caller.  If digits
 +      (intern_font_field): Change argument.  Change caller.  If digits
        are followed by non-digits, return a symbol.
        (font_expand_wildcards): New function.
        (font_parse_xlfd): Fix wildcard handling.
        * xfns.c [USE_FONT_BACKEND]: Include "font.h".
        (x_default_font_parameter) [USE_FONT_BACKEND]: New function.
        (Fx_create_frame) [USE_FONT_BACKEND]: If enable_font_backend is
 -      nonzero, register all available font drivers.  Call
 -      x_default_font_parameter for deciding a font.
 +      nonzero, register all available font drivers.
 +      Call x_default_font_parameter for deciding a font.
        (x_create_tip_frame) [USE_FONT_BACKEND]: Likewise.
  
        * xterm.c [USE_FONT_BACKEND]: Include "font.h".
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * coding.c (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION): Fix
 -      condition to terminate the loop.
 +      * coding.c (DECODE_EMACS_MULE_20_RELATIVE_COMPOSITION):
 +      Fix condition to terminate the loop.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * xterm.c (x_set_glyph_string_clipping_exactly): Set
 -      src->clip_head and src->clip_tail temporarily instead of src->hl.
 +      * xterm.c (x_set_glyph_string_clipping_exactly):
 +      Set src->clip_head and src->clip_tail temporarily instead of src->hl.
  
        * ccl.c (CCL_WRITE_STRING): Handle a flag bit for multibyte
        character sequence.
        (BUILD_COMPOSITE_GLYPH_STRING): If C is TAB, set s->face to NULL.
        (x_produce_glyphs): If CH is TAB, set cmp->offsets properly.
  
 -      * xterm.c (x_draw_composite_glyph_string_foreground): Check
 -      s->face is NULL or not.
 +      * xterm.c (x_draw_composite_glyph_string_foreground):
 +      Check s->face is NULL or not.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        Qnil.  Use JIS_TO_SJIS instead of ENCODE_SJIS.
        (decode_mac_font_name): Use decode_coding_c_string instead of
        decode_coding.
 -      (x_load_font): Initialize fontp->fontset to -1.  Set
 -      fontp->encoding_type.
 +      (x_load_font): Initialize fontp->fontset to -1.
 +      Set fontp->encoding_type.
  
  2008-02-01  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
 -      byte length even if that target charcter is an ASCII.
 +      byte length even if that target character is an ASCII.
        (simple_search): Fix calculation of byte length of matched text.
        (boyer_moore): Fix handling of case-equivalent multibyte characters.
  
        (emacs${EXEEXT}): Run $(RUN_TEMACS) unconditionally.
        (UNIDATA): New variable.
        (${lispsource}international/charprop.el): Depends on ${UNIDATA}.
 -      (bootstrap-emacs${EXEEXT}): Depends on charprop.el.  Run
 -      $(RUN_TEMACS) unconditionally.
 +      (bootstrap-emacs${EXEEXT}): Depends on charprop.el.
 +      Run $(RUN_TEMACS) unconditionally.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
  
        * w32select.c (validate_coding_system)
        (setup_windows_coding_system): New functions.
 -      (convert_to_handle_as_coded, Fw32_get_clipboard_data): Use
 -      setup_windows_coding_system.
 -      (setup_config, Fw32_get_clipboard_data): Use
 -      validate_coding_system.
 +      (convert_to_handle_as_coded, Fw32_get_clipboard_data):
 +      Use setup_windows_coding_system.
 +      (setup_config, Fw32_get_clipboard_data):
 +      Use validate_coding_system.
        (Fx_selection_exists): Move call to setup_config to a place
        where signals are allowed.
  
  
        * fontset.c (fs_load_font): Use fast_string_match_ignore_case
        instead of fast_c_string_match_ignore_case.
 -      (find_font_encoding): Change argument to Lisp_Object.  Use
 -      fast_string_match_ignore_case instead of
 +      (find_font_encoding): Change argument to Lisp_Object.
 +      Use fast_string_match_ignore_case instead of
        fast_c_string_match_ignore_case.  Change caller.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
        Qundecided.
        (Fterminal_coding_system): Return nil if terminal coding system is
        `undecided'.
 -      (syms_of_coding): Define coding-system `undecided' here.  Setup
 -      terminal_coding as `undecided'.
 +      (syms_of_coding): Define coding-system `undecided' here.
 +      Setup terminal_coding as `undecided'.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * xdisp.c (message_dolog, set_message_1): Call
 -      unibyte_char_to_multibyte with arg type int.
 +      * xdisp.c (message_dolog, set_message_1):
 +      Call unibyte_char_to_multibyte with arg type int.
  
        * lread.c (read1): Fix reading of a char-table.
  
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * coding.c (Ffind_coding_systems_region_internal): Include
 -      raw-text and no-conversion in the result.
 +      * coding.c (Ffind_coding_systems_region_internal):
 +      Include raw-text and no-conversion in the result.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
  
        * fontset.c: Include "intervals.h".
        (fontset_face): Fix comparing of Lisp_Objects.
 -      (free_face_fontset, new_fontset_from_font_name): Fix
 -      Lisp_Object/int mixup.
 +      (free_face_fontset, new_fontset_from_font_name):
 +      Fix Lisp_Object/int mixup.
  
        * editfns.c (Ftranslate_region_internal): Fix Lisp_Object/int mixup.
  
        * coding.c: Add many prototypes for static functions.
        (get_translation_table): Allow max_lookup to be NULL.
        (decode_coding, Ffind_coding_systems_region_internal)
 -      (Funencodable_char_position, Fcheck_coding_systems_region): Call
 -      get_translation_table with max_lookup NULL.
 +      (Funencodable_char_position, Fcheck_coding_systems_region):
 +      Call get_translation_table with max_lookup NULL.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        (Fdefine_coding_system_internal): Accept list of translation
        tables as :encode-translation-table and :decode-translation-table.
        (Fcoding_system_put): New function.
 -      (syms_of_coding): Declare new symbols.  Defsubr
 -      Scoding_system_put.
 +      (syms_of_coding): Declare new symbols.
 +      Defsubr Scoding_system_put.
        (decode_coding_sjis, encode_coding_sjis): Handle 4th charset,
        typically JISX0212.
  
        * chartab.c (map_sub_char_table_for_charset): Fix args to
        c_function with.
  
 -      * coding.h (enum coding_result_code): Delete
 -      CODING_RESULT_INSUFFICIENT_CMP, add CODING_RESULT_INVALID_SRC.
 +      * coding.h (enum coding_result_code):
 +      Delete CODING_RESULT_INSUFFICIENT_CMP, add CODING_RESULT_INVALID_SRC.
  
        * coding.c (Qinsufficient_source, Qinconsistent_eol)
        (Qinvalid_source, Qinterrupted, Qinsufficient_memory): New variables.
  
        * w32console.c: Include character.h.  Use terminal_encode_buffer
        from term.c.
 -      (write_glyphs): Use new version of encode_terminal_code.  Use
 -      encode_coding_object in place of encode_coding.
 +      (write_glyphs): Use new version of encode_terminal_code.
 +      Use encode_coding_object in place of encode_coding.
  
        * w32bdf.c (w32_load_bdf_font): Clear font_info before filling.
        encoding becomes encoding_type.
        * charset.h (charset_unicode): Extern it.
  
        * charset.c (string_xstring_p): Check by (C >= 0x100).
 -      (find_charsets_in_text): Change format of the arc CHARSETS.  New
 -      arg MULTIBYTE.
 +      (find_charsets_in_text): Change format of the arc CHARSETS.
 +      New arg MULTIBYTE.
        (Ffind_charset_region, Ffind_charset_string): Adjust for the
        change of find_charsets_in_text.
        (Fsplit_char): Fix doc.  Never return unknown.
  
        * chartab.c (char_table_translate): Use CHARACTERP, not INTEGERP.
  
 -      * coding.c (Fdefine_coding_system_alias): Update
 -      Vcoding_system_list.
 +      * coding.c (Fdefine_coding_system_alias):
 +      Update Vcoding_system_list.
  
        * fontset.c (load_font_get_repertory): Pay attention to the case
        that ENCODING of a font is specified by a char-table.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * term.c (encode_terminal_code): Don't handle glyph-table.  Check
 -      if a character is encodable by the terminal coding system.  If
 -      not, produces proper number of `?'s.  Update
 +      * term.c (encode_terminal_code): Don't handle glyph-table.
 +      Check if a character is encodable by the terminal coding system.
 +      If not, produces proper number of `?'s.  Update
        terminal_encode_buffer and terminal_encode_buf_size if necessary.
        (produce_glyphs): Check by CHAR_BYTE8_P, not SINGLE_BYTE_CHAR_P.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * term.c (terminal_encode_buffer, terminal_encode_buf_size): New
 -      variables.
 +      * term.c (terminal_encode_buffer, terminal_encode_buf_size):
 +      New variables.
        (encode_terminal_code): Change argument.  Encode multiple
        characters at once.  Store the result of encoding in
        terminal_encode_buffer.
  
        * casetab.c (set_case_table): Remove unused var.
  
 -      * window.c (Fdisplay_buffer, Fframe_selected_window): Remove
 -      unused vars.
 +      * window.c (Fdisplay_buffer, Fframe_selected_window):
 +      Remove unused vars.
  
  2008-02-01  Dave Love  <fx@gnu.org>
  
        (update_compositions, Ffind_composition_internal): Make buffer
        positions EMACS_INT.
  
 -      * composite.h (find_composition, update_compositions): Make
 -      position args EMACS_INT.
 +      * composite.h (find_composition, update_compositions):
 +      Make position args EMACS_INT.
  
        * keyboard.c (adjust_point_for_property): Make beg and end EMACS_INT.
  
  
  2008-02-01  Andreas Schwab  <schwab@suse.de>
  
 -      * chartab.c (map_char_table, map_char_table_for_charset): Protect
 -      `range' from GC.
 +      * chartab.c (map_char_table, map_char_table_for_charset):
 +      Protect `range' from GC.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        (re_match_2_internal): Don't check RE_TARGET_MULTIBYTE_P (bufp).
        It is the same as RE_MULTIBYTE_P (bufp) now.
        <exactn>: Translate via multibyte.
 -      <anychar>: Fetch a character by RE_STRING_CHAR_AND_LENGTH.  Don't
 -      translate it.
 +      <anychar>: Fetch a character by RE_STRING_CHAR_AND_LENGTH.
 +      Don't translate it.
        <charset, charset_not>: Fetch a character by
        RE_STRING_CHAR_AND_LENGTH.  Translate via multibyte.
        <duplicate>: Call bcmp_translate with the last arg `multibyte'.
        FONT_SPEC_INDEX.  If font_spec is a string, extract the registry
        name by using split_font_name_into_vector.
        (Fnew_fontset): If no ASCII font is specified in FONTLIST,
 -      generate a proper font name from the fontset name.  Update
 -      Vfontset_alias_alist.
 +      generate a proper font name from the fontset name.
 +      Update Vfontset_alias_alist.
        (n_auto_fontsets): New variable.
        (new_fontset_from_font_name): New function.
        (Ffont_info): Store the information about fonts generated from the
        sequence is valid in this coding system.  Change callers.
        (MAX_ANNOTATION_LENGTH): New macro.
        (ADD_ANNOTATION_DATA): New macro.
 -      (ADD_COMPOSITION_DATA): Change argument.  Change callers.  Call
 -      ADD_ANNOTATION_DATA.  Change the format of annotation data.
 +      (ADD_COMPOSITION_DATA): Change argument.  Change callers.
 +      Call ADD_ANNOTATION_DATA.  Change the format of annotation data.
        (ADD_CHARSET_DATA): New macro.
        (emacs_mule_char): New argument ID.  Change callers.
        (decode_coding_emacs_mule, decode_coding_iso_2022)
        (produce_composition): Adjust for the new annotation data format.
        (produce_charset): New function.
        (produce_annotation): Handle charset annotation.
 -      (handle_composition_annotation, handle_charset_annotation): New
 -      functions.
 +      (handle_composition_annotation, handle_charset_annotation):
 +      New functions.
        (consume_chars): Handle charset annotation.  Utilize the above two
        functions.
        (encode_coding_object): If SRC_OBJECT and DST_OBJECT are the same
  
        * coding.c (detect_coding_charset): If only ASCII bytes are found,
        return 0.
 -      (Fdefine_coding_system_internal): Setup
 -      CODING_ATTR_ASCII_COMPAT (attrs) correctly.
 +      (Fdefine_coding_system_internal):
 +      Setup CODING_ATTR_ASCII_COMPAT (attrs) correctly.
  
  2008-02-01  Dave Love  <fx@gnu.org>
  
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * coding.c (decode_coding): Fix args to translate_chars.  Pay
 -      attention to Vstandard_translation_table_for_decode.
 +      * coding.c (decode_coding): Fix args to translate_chars.
 +      Pay attention to Vstandard_translation_table_for_decode.
        (encode_coding): Fix args to translate_chars.  Pay attention to
        Vstandard_translation_table_for_encode.
  
  
        * character.h (CHAR_STRING, CHAR_STRING_ADVANCE): Call char_string
        if C is greater than MAX_3_BYTE_CHAR.
 -      (STRING_CHAR, STRING_CHAR_AND_LENGTH, STRING_CHAR_ADVANCE): Call
 -      string_char instead of string_char_with_unification.
 +      (STRING_CHAR, STRING_CHAR_AND_LENGTH, STRING_CHAR_ADVANCE):
 +      Call string_char instead of string_char_with_unification.
  
  2008-02-01  Dave Love  <fx@gnu.org>
  
  
        * keyboard.c (read_key_sequence): Fix type error.
  
 -      * buffer.c (Fset_buffer_multibyte, Fset_buffer_multibyte): Fix
 -      type error.
 +      * buffer.c (Fset_buffer_multibyte, Fset_buffer_multibyte):
 +      Fix type error.
  
        * fontset.c (fontset_add): Return Lisp_Object.
  
        * regex.h (struct re_pattern_buffer): New member target_multibyte.
  
        * regex.c (RE_TARGET_MULTIBYTE_P): New macro.
 -      (GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte.  If
 -      that is zero, convert an eight-bit char to multibyte.
 +      (GET_CHAR_BEFORE_2): Check target_multibyte, not multibyte.
 +      If that is zero, convert an eight-bit char to multibyte.
        (MAKE_CHAR_MULTIBYTE, CHAR_LEADING_CODE): New dummy new macros for
        non-emacs case.
        (PATFETCH): Convert an eight-bit char to multibyte.
        multibyte always 1.
        (re_search_2): In emacs, set the locale variable multibyte to 1,
        otherwise to 0.  New local variable target_multibyte.  Check it
 -      to decide the multibyteness of STR1 and STR2.  If
 -      target_multibyte is zero, convert unibyte chars to multibyte
 +      to decide the multibyteness of STR1 and STR2.
 +      If target_multibyte is zero, convert unibyte chars to multibyte
        before translating and checking fastmap.
        (TARGET_CHAR_AND_LENGTH): New macro.
        (re_match_2_internal): In emacs, set the locale variable multibyte
 -      to 1, otherwise to 0.  New local variable target_multibyte.  Check
 -      it to decide the multibyteness of STR1 and STR2.  Use
 -      TARGET_CHAR_AND_LENGTH to fetch a character from D.
 +      to 1, otherwise to 0.  New local variable target_multibyte.
 +      Check it to decide the multibyteness of STR1 and STR2.
 +      Use TARGET_CHAR_AND_LENGTH to fetch a character from D.
        <charset, charset_not>: If multibyte is nonzero, check fastmap
        only for ASCII chars.  Call bcmp_translate with
        target_multibyte, not with multibyte.
  
        * lisp.h (Fset_buffer_multibyte): Adjust prototype.
  
 -      * xdisp.c (setup_echo_area_for_printing, set_message_1): Adjust
 -      for the change of Fset_buffer_multibyte.
 +      * xdisp.c (setup_echo_area_for_printing, set_message_1):
 +      Adjust for the change of Fset_buffer_multibyte.
  
        * fns.c (Fstring_to_multibyte): New function.
        (syms_of_fns): Declare Fstring_to_multibyte as Lisp subroutine.
        (find_font_encoding): New function.
        (list_fontsets): Use STRINGP, not ! NILP.
        (accumulate_script_ranges): New function.
 -      (Fset_fontset_font, Fnew_fontset, Ffontset_info): Completely
 -      re-written to handle new fontset structure.
 +      (Fset_fontset_font, Fnew_fontset, Ffontset_info):
 +      Completely re-written to handle new fontset structure.
        (Ffontset_font): Return a copy of element.
 -      (syms_of_fontset): Define symbols Qprepend and Qappend.  Fix
 -      docstring of font-encoding-alist.
 +      (syms_of_fontset): Define symbols Qprepend and Qappend.
 +      Fix docstring of font-encoding-alist.
  
        * lisp.h (CHAR_TABLE_REF): Remove unnecessary check (IDX >= 0).
        (Fset_fotset_font): Fix arguments to 5.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * xdisp.c (face_before_or_after_it_pos): Call
 -      FETCH_MULTIBYTE_CHAR with byte postion, not char position.
 +      * xdisp.c (face_before_or_after_it_pos):
 +      Call FETCH_MULTIBYTE_CHAR with byte postion, not char position.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        * charset.c (charset_ordered_list_tick): New variable.
        (Fdefine_charset_internal): Increment charset_ordered_list_tick.
        (Funify_charset): New optional arg DEUNIFY.  If it is non-nil,
 -      deunify intead of unify a charset.
 +      deunify instead of unify a charset.
        (string_xstring_p): Add `const' to local variables.
        (find_charsets_in_text): Add `const' to arguments and local variables.
 -      (encode_char): Adjust for the change of Funify_charset.  Fix
 -      detecting of invalid code.
 +      (encode_char): Adjust for the change of Funify_charset.
 +      Fix detecting of invalid code.
        (Fset_charset_priority): Increment charset_ordered_list_tick.
        (Fmap_charset_chars): Fix handling of default value for FROM_CODE
        and TO_CODE.
  
  2008-02-01  Dave Love  <fx@gnu.org>
  
 -      * casetab.c (init_casetab_once, init_casetab_once): Fix
 -      CHAR_TABLE_SET call.
 +      * casetab.c (init_casetab_once, init_casetab_once):
 +      Fix CHAR_TABLE_SET call.
  
        * category.c (Fmodify_category_entry): Fix CATEGORY_MEMBER call.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        * category.c (Fmodify_category_entry): Don't modify the contents
 -      of category_set for characters out of the range.  Avoid
 -      unnecessary modification.
 +      of category_set for characters out of the range.
 +      Avoid unnecessary modification.
  
        * character.h (MAYBE_UNIFY_CHAR): Adjust for the change of
        Vchar_unify_table.  The default value of the table is now nil.
        * character.c (syms_of_character): Setup Vchar_width_table for
        eight-bit-control and raw-byte chars.
  
 -      * charset.h (enum define_charset_arg_index): Delete
 -      charset_arg_parents and add charset_arg_subset and
 +      * charset.h (enum define_charset_arg_index):
 +      Delete charset_arg_parents and add charset_arg_subset and
        charset_arg_superset.
        (enum charset_attr_index): Delete charset_parents and add
        charset_subset and charset_superset.
  
        * charset.c (load_charset_map): Set the default value of encoder
        and deunifier char-tables to nil.
 -      (map_charset_chars): Change argument.  Change callers.  Use
 -      map_char_table_for_charset instead of map_char_table.
 +      (map_charset_chars): Change argument.  Change callers.
 +      Use map_char_table_for_charset instead of map_char_table.
        (Fmap_charset_chars): New optional args from_code and to_code.
        (Fdefine_charset_internal): Adjust for the change of
        `define-charset' (:parents -> :subset or :superset).
        Fdefine_charset_internal.
        (Ffind_charset_string): Setup the vector `charsets' correctly.
  
 -      * chartab.c (sub_char_table_ref_and_range): New arg default.  Fix
 -      the previous change.
 +      * chartab.c (sub_char_table_ref_and_range): New arg default.
 +      Fix the previous change.
        (char_table_ref_and_range): Adjust for the above change.
        (map_sub_char_table_for_charset): New function.
        (map_char_table_for_charset): New function.
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        * coding.c (ONE_MORE_BYTE_NO_CHECK): Increment consumed_chars.
 -      (emacs_mule_char): New arg src.  Delete arg `composition'.  Change
 -      caller.  Handle 2-byte and 3-byte charsets correctly.
 +      (emacs_mule_char): New arg src.  Delete arg `composition'.
 +      Change caller.  Handle 2-byte and 3-byte charsets correctly.
        (DECODE_EMACS_MULE_COMPOSITION_RULE_20): Rename from
        DECODE_EMACS_MULE_COMPOSITION_RULE.  Change caller.
        (DECODE_EMACS_MULE_COMPOSITION_RULE_21): New macro.
 -      (DECODE_EMACS_MULE_21_COMPOSITION): Call
 -      DECODE_EMACS_MULE_COMPOSITION_RULE_21.  Produce correct annotation
 +      (DECODE_EMACS_MULE_21_COMPOSITION):
 +      Call DECODE_EMACS_MULE_COMPOSITION_RULE_21.  Produce correct annotation
        sequence.
        (decode_coding_emacs_mule): Handle composition correctly.  Rewind
        `src' and `consumed_chars' correctly before calling emacs_mule_char.
  
        * character.h (string_escape_byte8): Declare.
  
 -      * charset.c (load_charset_map, load_charset_map_from_file): Remove
 -      unused vars.
 +      * charset.c (load_charset_map, load_charset_map_from_file):
 +      Remove unused vars.
        (Fdefine_charset_internal, Fsplit_char, syms_of_charset)
        (Fmap_charset_chars): Doc fix.
  
        * coding.c (coding_set_source): Delete the local variable beg_byte.
        (encode_coding_charset, Fdefine_coding_system_internal):
        Delete the local variable charset.
 -      (Fdefine_coding_system_internal): Setup
 -      attrs[coding_attr_charset_valids] correctly.
 +      (Fdefine_coding_system_internal):
 +      Setup attrs[coding_attr_charset_valids] correctly.
  
        * charset.c (CODE_POINT_TO_INDEX): Utilize `code_space_mask'
        member to check if CODE is valid or not.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
 -      * coding.c (decode_coding_charset, encode_coding_charset): Handle
 -      multiple charsets correctly.
 +      * coding.c (decode_coding_charset, encode_coding_charset):
 +      Handle multiple charsets correctly.
  
  2008-02-01  Kenichi Handa  <handa@m17n.org>
  
        (SUB_CHAR_TABLE_P): Check PVEC_CHAR_TABLE.
        (GC_SUB_CHAR_TABLE_P): New macro.
        (Fencode_coding_string, Fdecode_coding_string): Update EXFUN.
 -      (code_convert_string_norecord): Deleted extern.
 +      (code_convert_string_norecord): Delete extern.
        (init_character_once, syms_of_character, init_charset)
        (syms_of_composite, Qeq, Fmakehash, insert_from_gap): Extern them.
  
@@@ -31203,9 -22687,10 +31208,9 @@@ See ChangeLog.10 for earlier changes
  
  ;; Local Variables:
  ;; coding: utf-8
 -;; add-log-time-zone-rule: t
  ;; End:
  
 -    Copyright (C) 2007, 2008, 2009, 2010, 2011  Free Software Foundation, Inc.
 +  Copyright (C) 2007-2011  Free Software Foundation, Inc.
  
    This file is part of GNU Emacs.
  
  
    You should have received a copy of the GNU General Public License
    along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 -
 -;; arch-tag: dfb6ad96-1550-4905-9e53-d2059ee84c40
diff --combined src/font.c
index d77eafb6ad2121355bd2569a8aa777b1769f445d,08309d3697b098ac3954d216583e74dd03c1fed8..35821ae34f9f5fa0283e49affd8559691f13ff05
@@@ -1,9 -1,8 +1,9 @@@
  /* font.c -- "Font" primitives.
 -   Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
 -   Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
 -     National Institute of Advanced Industrial Science and Technology (AIST)
 -     Registration Number H13PRO009
 +
 +Copyright (C) 2006-2011  Free Software Foundation, Inc.
 +Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
 +  National Institute of Advanced Industrial Science and Technology (AIST)
 +  Registration Number H13PRO009
  
  This file is part of GNU Emacs.
  
@@@ -22,6 -21,7 +22,6 @@@ along with GNU Emacs.  If not, see <htt
  
  #include <config.h>
  #include <stdio.h>
 -#include <stdlib.h>
  #include <ctype.h>
  #include <setjmp.h>
  
  #include "nsterm.h"
  #endif /* HAVE_NS */
  
 -#ifdef HAVE_NS
 -extern Lisp_Object Qfontsize;
 -#endif
 -
  Lisp_Object Qopentype;
  
  /* Important character set strings.  */
@@@ -62,6 -66,8 +62,6 @@@ static Lisp_Object QCf
     font_driver *)->list when a specified font is not found. */
  static Lisp_Object null_vector;
  
 -static Lisp_Object Vfont_weight_table, Vfont_slant_table, Vfont_width_table;
 -
  /* Vector of Vfont_weight_table, Vfont_slant_table, and Vfont_width_table. */
  static Lisp_Object font_style_table;
  
@@@ -121,8 -127,13 +121,8 @@@ static const struct table_entry width_t
    { 200, { "ultra-expanded", "ultraexpanded", "wide" }}
  };
  
 -extern Lisp_Object Qnormal;
 -
 -/* Symbols representing keys of normal font properties.  */
 -extern Lisp_Object QCtype, QCfamily, QCweight, QCslant, QCwidth;
 -extern Lisp_Object QCheight, QCsize, QCname;
 -
 -Lisp_Object QCfoundry, QCadstyle, QCregistry;
 +Lisp_Object QCfoundry;
 +static Lisp_Object QCadstyle, QCregistry;
  /* Symbols representing keys of font extra info.  */
  Lisp_Object QCspacing, QCdpi, QCscalable, QCotf, QClang, QCscript, QCavgwidth;
  Lisp_Object QCantialias, QCfont_entity, QCfc_unknown_spec;
@@@ -134,6 -145,8 +134,6 @@@ Lisp_Object Qja, Qko
  
  Lisp_Object QCuser_spec;
  
 -Lisp_Object Vfont_encoding_alist;
 -
  /* Alist of font registry symbol and the corresponding charsets
     information.  The information is retrieved from
     Vfont_encoding_alist on demand.
@@@ -161,8 -174,8 +161,8 @@@ static struct font_driver_list *font_dr
  
  /* Creaters of font-related Lisp object.  */
  
 -Lisp_Object
 -font_make_spec ()
 +static Lisp_Object
 +font_make_spec (void)
  {
    Lisp_Object font_spec;
    struct font_spec *spec
  }
  
  Lisp_Object
 -font_make_entity ()
 +font_make_entity (void)
  {
    Lisp_Object font_entity;
    struct font_entity *entity
     not nil, copy properties from ENTITY to the font-object.  If
     PIXELSIZE is positive, set the `size' property to PIXELSIZE.  */
  Lisp_Object
 -font_make_object (size, entity, pixelsize)
 -     int size;
 -     Lisp_Object entity;
 -     int pixelsize;
 +font_make_object (int size, Lisp_Object entity, int pixelsize)
  {
    Lisp_Object font_object;
    struct font *font
  
  \f
  
 -static int font_pixel_size P_ ((FRAME_PTR f, Lisp_Object));
 -static Lisp_Object font_open_entity P_ ((FRAME_PTR, Lisp_Object, int));
 -static Lisp_Object font_matching_entity P_ ((FRAME_PTR, Lisp_Object *,
 -                                           Lisp_Object));
 +static int font_pixel_size (FRAME_PTR f, Lisp_Object);
 +static Lisp_Object font_open_entity (FRAME_PTR, Lisp_Object, int);
 +static Lisp_Object font_matching_entity (FRAME_PTR, Lisp_Object *,
 +                                         Lisp_Object);
 +static unsigned font_encode_char (Lisp_Object, int);
  
  /* Number of registered font drivers.  */
  static int num_font_drivers;
     STR.  */
  
  Lisp_Object
 -font_intern_prop (str, len, force_symbol)
 -     char *str;
 -     int len;
 -     int force_symbol;
 +font_intern_prop (const char *str, int len, int force_symbol)
  {
    int i;
    Lisp_Object tem;
    Lisp_Object obarray;
 -  int nbytes, nchars;
 +  EMACS_INT nbytes, nchars;
  
    if (len == 1 && *str == '*')
      return Qnil;
  /* Return a pixel size of font-spec SPEC on frame F.  */
  
  static int
 -font_pixel_size (f, spec)
 -     FRAME_PTR f;
 -     Lisp_Object spec;
 +font_pixel_size (FRAME_PTR f, Lisp_Object spec)
  {
  #ifdef HAVE_WINDOW_SYSTEM
    Lisp_Object size = AREF (spec, FONT_SIZE_INDEX);
     VAL is an integer.  */
  
  int
 -font_style_to_value (prop, val, noerror)
 -     enum font_property_index prop;
 -     Lisp_Object val;
 -     int noerror;
 +font_style_to_value (enum font_property_index prop, Lisp_Object val, int noerror)
  {
    Lisp_Object table = AREF (font_style_table, prop - FONT_WEIGHT_INDEX);
    int len = ASIZE (table);
  
    if (SYMBOLP (val))
      {
 -      unsigned char *s;
 +      char *s;
        Lisp_Object args[2], elt;
  
        /* At first try exact match.  */
            return ((XINT (AREF (AREF (table, i), 0)) << 8)
                    | (i << 4) | (j - 1));
        /* Try also with case-folding match.  */
 -      s = SDATA (SYMBOL_NAME (val));
 +      s = SSDATA (SYMBOL_NAME (val));
        for (i = 0; i < len; i++)
        for (j = 1; j < ASIZE (AREF (table, i)); j++)
          {
            elt = AREF (AREF (table, i), j);
 -          if (xstrcasecmp (s, SDATA (SYMBOL_NAME (elt))) == 0)
 +          if (xstrcasecmp (s, SSDATA (SYMBOL_NAME (elt))) == 0)
              return ((XINT (AREF (AREF (table, i), 0)) << 8)
                      | (i << 4) | (j - 1));
          }
  }
  
  Lisp_Object
 -font_style_symbolic (font, prop, for_face)
 -     Lisp_Object font;
 -     enum font_property_index prop;
 -     int for_face;
 +font_style_symbolic (Lisp_Object font, enum font_property_index prop, int for_face)
  {
    Lisp_Object val = AREF (font, prop);
    Lisp_Object table, elt;
    return (for_face ? AREF (elt, 1) : AREF (elt, (i & 0xF) + 1));
  }
  
 -extern Lisp_Object Vface_alternative_font_family_alist;
 -
 -extern Lisp_Object find_font_encoding P_ ((Lisp_Object));
 -
 -
  /* Return ENCODING or a cons of ENCODING and REPERTORY of the font
     FONTNAME.  ENCODING is a charset symbol that specifies the encoding
     of the font.  REPERTORY is a charset symbol or nil.  */
  
  Lisp_Object
 -find_font_encoding (fontname)
 -     Lisp_Object fontname;
 +find_font_encoding (Lisp_Object fontname)
  {
    Lisp_Object tail, elt;
  
     REGISTRY is available, return 0.  Otherwise return -1.  */
  
  int
 -font_registry_charsets (registry, encoding, repertory)
 -     Lisp_Object registry;
 -     struct charset **encoding, **repertory;
 +font_registry_charsets (Lisp_Object registry, struct charset **encoding, struct charset **repertory)
  {
    Lisp_Object val;
    int encoding_id, repertory_id;
  /* Font property value validaters.  See the comment of
     font_property_table for the meaning of the arguments.  */
  
 -static Lisp_Object font_prop_validate P_ ((int, Lisp_Object, Lisp_Object));
 -static Lisp_Object font_prop_validate_symbol P_ ((Lisp_Object, Lisp_Object));
 -static Lisp_Object font_prop_validate_style P_ ((Lisp_Object, Lisp_Object));
 -static Lisp_Object font_prop_validate_non_neg P_ ((Lisp_Object, Lisp_Object));
 -static Lisp_Object font_prop_validate_spacing P_ ((Lisp_Object, Lisp_Object));
 -static int get_font_prop_index P_ ((Lisp_Object));
 +static Lisp_Object font_prop_validate (int, Lisp_Object, Lisp_Object);
 +static Lisp_Object font_prop_validate_symbol (Lisp_Object, Lisp_Object);
 +static Lisp_Object font_prop_validate_style (Lisp_Object, Lisp_Object);
 +static Lisp_Object font_prop_validate_non_neg (Lisp_Object, Lisp_Object);
 +static Lisp_Object font_prop_validate_spacing (Lisp_Object, Lisp_Object);
 +static int get_font_prop_index (Lisp_Object);
  
  static Lisp_Object
 -font_prop_validate_symbol (prop, val)
 -     Lisp_Object prop, val;
 +font_prop_validate_symbol (Lisp_Object prop, Lisp_Object val)
  {
    if (STRINGP (val))
      val = Fintern (val, Qnil);
  
  
  static Lisp_Object
 -font_prop_validate_style (style, val)
 -     Lisp_Object style, val;
 +font_prop_validate_style (Lisp_Object style, Lisp_Object val)
  {
    enum font_property_index prop = (EQ (style, QCweight) ? FONT_WEIGHT_INDEX
                                   : EQ (style, QCslant) ? FONT_SLANT_INDEX
  }
  
  static Lisp_Object
 -font_prop_validate_non_neg (prop, val)
 -     Lisp_Object prop, val;
 +font_prop_validate_non_neg (Lisp_Object prop, Lisp_Object val)
  {
    return (NATNUMP (val) || (FLOATP (val) && XFLOAT_DATA (val) >= 0)
          ? val : Qerror);
  }
  
  static Lisp_Object
 -font_prop_validate_spacing (prop, val)
 -     Lisp_Object prop, val;
 +font_prop_validate_spacing (Lisp_Object prop, Lisp_Object val)
  {
    if (NILP (val) || (NATNUMP (val) && XINT (val) <= FONT_SPACING_CHARCELL))
      return val;
  }
  
  static Lisp_Object
 -font_prop_validate_otf (prop, val)
 -     Lisp_Object prop, val;
 +font_prop_validate_otf (Lisp_Object prop, Lisp_Object val)
  {
    Lisp_Object tail, tmp;
    int i;
  
  /* Structure of known font property keys and validater of the
     values.  */
 -struct
 +static const struct
  {
    /* Pointer to the key symbol.  */
    Lisp_Object *key;
    /* Function to validate PROP's value VAL, or NULL if any value is
       ok.  The value is VAL or its regularized value if VAL is valid,
       and Qerror if not.  */
 -  Lisp_Object (*validater) P_ ((Lisp_Object prop, Lisp_Object val));
 +  Lisp_Object (*validater) (Lisp_Object prop, Lisp_Object val);
  } font_property_table[] =
    { { &QCtype, font_prop_validate_symbol },
      { &QCfoundry, font_prop_validate_symbol },
     already known property.  */
  
  static int
 -get_font_prop_index (key)
 -     Lisp_Object key;
 +get_font_prop_index (Lisp_Object key)
  {
    int i;
  
     signal an error.  The value is VAL or the regularized one.  */
  
  static Lisp_Object
 -font_prop_validate (idx, prop, val)
 -     int idx;
 -     Lisp_Object prop, val;
 +font_prop_validate (int idx, Lisp_Object prop, Lisp_Object val)
  {
    Lisp_Object validated;
  
     keeping the sorting order.  Don't check the validity of VAL.  */
  
  Lisp_Object
 -font_put_extra (font, prop, val)
 -     Lisp_Object font, prop, val;
 +font_put_extra (Lisp_Object font, Lisp_Object prop, Lisp_Object val)
  {
    Lisp_Object extra = AREF (font, FONT_EXTRA_INDEX);
    Lisp_Object slot = (NILP (extra) ? Qnil : assq_no_quit (prop, extra));
  \f
  /* Font name parser and unparser */
  
 -static int parse_matrix P_ ((char *));
 -static int font_expand_wildcards P_ ((Lisp_Object *, int));
 -static int font_parse_name P_ ((char *, Lisp_Object));
 +static int parse_matrix (const char *);
 +static int font_expand_wildcards (Lisp_Object *, int);
 +static int font_parse_name (char *, Lisp_Object);
  
  /* An enumerator for each field of an XLFD font name.  */
  enum xlfd_field_index
@@@ -756,7 -799,8 +756,7 @@@ enum xlfd_field_mas
     -1.  */
  
  static int
 -parse_matrix (p)
 -     char *p;
 +parse_matrix (const char *p)
  {
    double matrix[4];
    char *end;
     field position by its contents.  */
  
  static int
 -font_expand_wildcards (field, n)
 -     Lisp_Object field[XLFD_LAST_INDEX];
 -     int n;
 +font_expand_wildcards (Lisp_Object *field, int n)
  {
    /* Copy of FIELD.  */
    Lisp_Object tmp[XLFD_LAST_INDEX];
  }
  
  
 -#ifdef ENABLE_CHECKING
 -/* Match a 14-field XLFD pattern against a full XLFD font name.  */
 -static int
 -font_match_xlfd (char *pattern, char *name)
 -{
 -  while (*pattern && *name)
 -    {
 -      if (*pattern == *name)
 -      pattern++;
 -      else if (*pattern == '*')
 -      if (*name == pattern[1])
 -        pattern += 2;
 -      else
 -        ;
 -      else
 -      return 0;
 -      name++;
 -    }
 -  return 1;
 -}
 -
 -/* Make sure the font object matches the XLFD font name.  */
 -static int
 -font_check_xlfd_parse (Lisp_Object font, char *name)
 -{
 -  char name_check[256];
 -  font_unparse_xlfd (font, 0, name_check, 255);
 -  return font_match_xlfd (name_check, name);
 -}
 -
 -#endif
 -
 -
  /* Parse NAME (null terminated) as XLFD and store information in FONT
     (font-spec or font-entity).  Size property of FONT is set as
     follows:
     a fully specified XLFD.  */
  
  int
 -font_parse_xlfd (name, font)
 -     char *name;
 -     Lisp_Object font;
 +font_parse_xlfd (char *name, Lisp_Object font)
  {
    int len = strlen (name);
    int i, j, n;
     0, use PIXEL_SIZE instead.  */
  
  int
 -font_unparse_xlfd (font, pixel_size, name, nbytes)
 -     Lisp_Object font;
 -     int pixel_size;
 -     char *name;
 -     int nbytes;
 +font_unparse_xlfd (Lisp_Object font, int pixel_size, char *name, int nbytes)
  {
    char *f[XLFD_REGISTRY_INDEX + 1];
    Lisp_Object val;
          if (SYMBOLP (val))
            val = SYMBOL_NAME (val);
          if (j == XLFD_REGISTRY_INDEX
 -            && ! strchr ((char *) SDATA (val), '-'))
 +            && ! strchr (SSDATA (val), '-'))
            {
              /* Change "jisx0208*" and "jisx0208" to "jisx0208*-*".  */
              if (SDATA (val)[SBYTES (val) - 1] == '*')
                }
            }
          else
 -          f[j] = (char *) SDATA (val), len += SBYTES (val) + 1;
 +          f[j] = SSDATA (val), len += SBYTES (val) + 1;
        }
      }
  
        else
        {
          val = SYMBOL_NAME (val);
 -        f[j] = (char *) SDATA (val), len += SBYTES (val) + 1;
 +        f[j] = SSDATA (val), len += SBYTES (val) + 1;
        }
      }
  
  
     This function tries to guess which format it is.  */
  
 -int
 -font_parse_fcname (name, font)
 -     char *name;
 -     Lisp_Object font;
 +static int
 +font_parse_fcname (char *name, Lisp_Object font)
  {
    char *p, *q;
    char *size_beg = NULL, *size_end = NULL;
                  word_len = q - p;
                  val = font_intern_prop (p, q - p, 1);
  
 -#define PROP_MATCH(STR,N) ((word_len == N) && memcmp (p, STR, N) == 0)
 +#define PROP_MATCH(STR) (word_len == strlen (STR)             \
 +                       && memcmp (p, STR, strlen (STR)) == 0)
  
 -                if (PROP_MATCH ("light", 5)
 -                    || PROP_MATCH ("medium", 6)
 -                    || PROP_MATCH ("demibold", 8)
 -                    || PROP_MATCH ("bold", 4)
 -                    || PROP_MATCH ("black", 5))
 +                if (PROP_MATCH ("light")
 +                    || PROP_MATCH ("medium")
 +                    || PROP_MATCH ("demibold")
 +                    || PROP_MATCH ("bold")
 +                    || PROP_MATCH ("black"))
                    FONT_SET_STYLE (font, FONT_WEIGHT_INDEX, val);
 -                else if (PROP_MATCH ("roman", 5)
 -                         || PROP_MATCH ("italic", 6)
 -                         || PROP_MATCH ("oblique", 7))
 +                else if (PROP_MATCH ("roman")
 +                         || PROP_MATCH ("italic")
 +                         || PROP_MATCH ("oblique"))
                    FONT_SET_STYLE (font, FONT_SLANT_INDEX, val);
 -                else if (PROP_MATCH ("charcell", 8))
 +                else if (PROP_MATCH ("charcell"))
                    ASET (font, FONT_SPACING_INDEX,
                          make_number (FONT_SPACING_CHARCELL));
 -                else if (PROP_MATCH ("mono", 4))
 +                else if (PROP_MATCH ("mono"))
                    ASET (font, FONT_SPACING_INDEX,
                          make_number (FONT_SPACING_MONO));
 -                else if (PROP_MATCH ("proportional", 12))
 +                else if (PROP_MATCH ("proportional"))
                    ASET (font, FONT_SPACING_INDEX,
                          make_number (FONT_SPACING_PROPORTIONAL));
  #undef PROP_MATCH
        /* Either a fontconfig-style name with no size and property
         data, or a GTK-style name.  */
        Lisp_Object prop;
 -      int word_len, prop_found = 0;
 +      Lisp_Object weight = Qnil, slant = Qnil;
 +      Lisp_Object width  = Qnil, size  = Qnil;
 +      char *word_start;
 +      int word_len;
 +      int size_found = 0;
 +
 +      /* Scan backwards from the end, looking for a size.  */
 +      for (p = name + len - 1; p >= name; p--)
 +      if (!isdigit (*p))
 +        break;
 +
 +      if ((p < name + len - 1) && ((p + 1 == name) || *p == ' '))
 +      /* Found a font size.  */
 +      size = make_float (strtod (p + 1, NULL));
 +      else
 +      p = name + len;
  
 -      for (p = name; *p; p = *q ? q + 1 : q)
 +      /* Now P points to the termination of the string, sans size.
 +       Scan backwards, looking for font properties.  */
 +      for (; p > name; p = q)
        {
 -        if (isdigit (*p))
 +        for (q = p - 1; q >= name; q--)
            {
 -            int size_found = 1;
 -
 -            for (q = p + 1; *q && *q != ' '; q++)
 -              if (! isdigit (*q))
 -                {
 -                  size_found = 0;
 -                  break;
 -                }
 -            /* GTK font sizes must occur at the end.  */
 -            if (size_found && *q == '\0')
 -              {
 -                double point_size = strtod (p, &q);
 -                ASET (font, FONT_SIZE_INDEX, make_float (point_size));
 -                continue;
 -              }
 +            if (q > name && *(q-1) == '\\')
 +              --q;   /* Skip quoting backslashes.  */
 +            else if (*q == ' ')
 +              break;
            }
  
 -        for (q = p + 1; *q && *q != ' '; q++)
 -          if (*q == '\\' && q[1])
 -            q++;
 -        word_len = q - p;
 -
 -#define PROP_MATCH(STR,N) ((word_len == N) && memcmp (p, STR, N) == 0)
 -
 -        if (PROP_MATCH ("Ultra-Light", 11))
 -          {
 -            prop_found = 1;
 -            prop = font_intern_prop ("ultra-light", 11, 1);
 -            FONT_SET_STYLE (font, FONT_WEIGHT_INDEX, prop);
 -          }
 -        else if (PROP_MATCH ("Light", 5))
 -          {
 -            prop_found = 1;
 -            prop = font_intern_prop ("light", 5, 1);
 -            FONT_SET_STYLE (font, FONT_WEIGHT_INDEX, prop);
 -          }
 -        else if (PROP_MATCH ("Book", 4))
 -          {
 -            prop_found = 1;
 -            prop = font_intern_prop ("book", 4, 1);
 -            FONT_SET_STYLE (font, FONT_WEIGHT_INDEX, prop);
 -          }
 -        else if (PROP_MATCH ("Medium", 6))
 -          {
 -            prop_found = 1;
 -            prop = font_intern_prop ("medium", 6, 1);
 -            FONT_SET_STYLE (font, FONT_WEIGHT_INDEX, prop);
 -          }
 -        else if (PROP_MATCH ("Semi-Bold", 9))
 -          {
 -            prop_found = 1;
 -            prop = font_intern_prop ("semi-bold", 9, 1);
 -            FONT_SET_STYLE (font, FONT_WEIGHT_INDEX, prop);
 -          }
 -        else if (PROP_MATCH ("Bold", 4))
 -          {
 -            prop_found = 1;
 -            prop = font_intern_prop ("bold", 4, 1);
 -            FONT_SET_STYLE (font, FONT_WEIGHT_INDEX, prop);
 -          }
 -        else if (PROP_MATCH ("Italic", 6))
 -          {
 -            prop_found = 1;
 -            prop = font_intern_prop ("italic", 6, 1);
 -            FONT_SET_STYLE (font, FONT_SLANT_INDEX, prop);
 -          }
 -        else if (PROP_MATCH ("Oblique", 7))
 -          {
 -            prop_found = 1;
 -            prop = font_intern_prop ("oblique", 7, 1);
 -            FONT_SET_STYLE (font, FONT_SLANT_INDEX, prop);
 -          }
 -        else if (PROP_MATCH ("Semi-Condensed", 14))
 -          {
 -            prop_found = 1;
 -            prop = font_intern_prop ("semi-condensed", 14, 1);
 -            FONT_SET_STYLE (font, FONT_WIDTH_INDEX, prop);
 -          }
 -        else if (PROP_MATCH ("Condensed", 9))
 +        word_start = q + 1;
 +        word_len = p - word_start;
 +
 +#define PROP_MATCH(STR)                                               \
 +        (word_len == strlen (STR)                             \
 +         && memcmp (word_start, STR, strlen (STR)) == 0)
 +#define PROP_SAVE(VAR, STR)                                   \
 +        (VAR = NILP (VAR) ? font_intern_prop (STR, strlen (STR), 1) : VAR)
 +
 +        if (PROP_MATCH ("Ultra-Light"))
 +          PROP_SAVE (weight, "ultra-light");
 +        else if (PROP_MATCH ("Light"))
 +          PROP_SAVE (weight, "light");
 +        else if (PROP_MATCH ("Book"))
 +          PROP_SAVE (weight, "book");
 +        else if (PROP_MATCH ("Medium"))
 +          PROP_SAVE (weight, "medium");
 +        else if (PROP_MATCH ("Semi-Bold"))
 +          PROP_SAVE (weight, "semi-bold");
 +        else if (PROP_MATCH ("Bold"))
 +          PROP_SAVE (weight, "bold");
 +        else if (PROP_MATCH ("Italic"))
 +          PROP_SAVE (slant, "italic");
 +        else if (PROP_MATCH ("Oblique"))
 +          PROP_SAVE (slant, "oblique");
 +        else if (PROP_MATCH ("Semi-Condensed"))
 +          PROP_SAVE (width, "semi-condensed");
 +        else if (PROP_MATCH ("Condensed"))
 +          PROP_SAVE (width, "condensed");
 +        /* An unknown word must be part of the font name.  */
 +        else
            {
 -            prop_found = 1;
 -            prop = font_intern_prop ("condensed", 9, 1);
 -            FONT_SET_STYLE (font, FONT_WIDTH_INDEX, prop);
 +            family_end = p;
 +            break;
            }
 -        else {
 -          if (prop_found)
 -            return -1; /* Unknown property in GTK-style font name.  */
 -          family_end = q;
 -        }
        }
  #undef PROP_MATCH
 +#undef PROP_SAVE
  
        if (family_end)
 -      {
 -        Lisp_Object family;
 -        family = font_intern_prop (name, family_end - name, 1);
 -        ASET (font, FONT_FAMILY_INDEX, family);
 -      }
 +      ASET (font, FONT_FAMILY_INDEX,
 +            font_intern_prop (name, family_end - name, 1));
 +      if (!NILP (size))
 +      ASET (font, FONT_SIZE_INDEX, size);
 +      if (!NILP (weight))
 +      FONT_SET_STYLE (font, FONT_WEIGHT_INDEX, weight);
 +      if (!NILP (slant))
 +      FONT_SET_STYLE (font, FONT_SLANT_INDEX, slant);
 +      if (!NILP (width))
 +      FONT_SET_STYLE (font, FONT_WIDTH_INDEX, width);
      }
  
    return 0;
     FONT_SIZE_INDEX of FONT is 0, use PIXEL_SIZE instead.  */
  
  int
 -font_unparse_fcname (font, pixel_size, name, nbytes)
 -     Lisp_Object font;
 -     int pixel_size;
 -     char *name;
 -     int nbytes;
 +font_unparse_fcname (Lisp_Object font, int pixel_size, char *name, int nbytes)
  {
    Lisp_Object family, foundry;
    Lisp_Object tail, val;
    int i, len = 1;
    char *p;
    Lisp_Object styles[3];
 -  char *style_names[3] = { "weight", "slant", "width" };
 +  const char *style_names[3] = { "weight", "slant", "width" };
    char work[256];
  
    family = AREF (font, FONT_FAMILY_INDEX);
    return (p - name);
  }
  
 -/* Store GTK-style font name of FONT (font-spec or font-entity) in
 -   NAME (NBYTES length), and return the name length.  F is the frame
 -   on which the font is displayed; it is used to calculate the point
 -   size.  */
 -
 -int
 -font_unparse_gtkname (font, f, name, nbytes)
 -     Lisp_Object font;
 -     struct frame *f;
 -     char *name;
 -     int nbytes;
 -{
 -  char *p;
 -  int len = 1;
 -  Lisp_Object family, weight, slant, size;
 -  int point_size = -1;
 -
 -  family = AREF (font, FONT_FAMILY_INDEX);
 -  if (! NILP (family))
 -    {
 -      if (! SYMBOLP (family))
 -      return -1;
 -      family = SYMBOL_NAME (family);
 -      len += SBYTES (family);
 -    }
 -
 -  weight = font_style_symbolic (font, FONT_WEIGHT_INDEX, 0);
 -  if (EQ (weight, Qnormal))
 -    weight = Qnil;
 -  else if (! NILP (weight))
 -    {
 -      weight = SYMBOL_NAME (weight);
 -      len += SBYTES (weight);
 -    }
 -
 -  slant = font_style_symbolic (font, FONT_SLANT_INDEX, 0);
 -  if (EQ (slant, Qnormal))
 -    slant = Qnil;
 -  else if (! NILP (slant))
 -    {
 -      slant = SYMBOL_NAME (slant);
 -      len += SBYTES (slant);
 -    }
 -
 -  size = AREF (font, FONT_SIZE_INDEX);
 -  /* Convert pixel size to point size.  */
 -  if (INTEGERP (size))
 -    {
 -      Lisp_Object font_dpi = AREF (font, FONT_DPI_INDEX);
 -      int dpi = 75;
 -      if (INTEGERP (font_dpi))
 -      dpi = XINT (font_dpi);
 -      else if (f)
 -      dpi = f->resy;
 -      point_size = PIXEL_TO_POINT (XINT (size), dpi);
 -      len += 11;
 -    }
 -  else if (FLOATP (size))
 -    {
 -      point_size = (int) XFLOAT_DATA (size);
 -      len += 11;
 -    }
 -
 -  if (len > nbytes)
 -    return -1;
 -
 -  p = name + sprintf (name, "%s", SDATA (family));
 -
 -  if (! NILP (weight))
 -    {
 -      char *q = p;
 -      p += sprintf (p, " %s", SDATA (weight));
 -      q[1] = toupper (q[1]);
 -    }
 -
 -  if (! NILP (slant))
 -    {
 -      char *q = p;
 -      p += sprintf (p, " %s", SDATA (slant));
 -      q[1] = toupper (q[1]);
 -    }
 -
 -  if (point_size > 0)
 -    p += sprintf (p, " %d", point_size);
 -
 -  return (p - name);
 -}
 -
  /* Parse NAME (null terminated) and store information in FONT
     (font-spec or font-entity).  If NAME is successfully parsed, return
     0.  Otherwise return -1.  */
  
  static int
 -font_parse_name (name, font)
 -     char *name;
 -     Lisp_Object font;
 +font_parse_name (char *name, Lisp_Object font)
  {
 -  if (name[0] == '-' || index (name, '*') || index (name, '?'))
 +  if (name[0] == '-' || strchr (name, '*') || strchr (name, '?'))
      return font_parse_xlfd (name, font);
    return font_parse_fcname (name, font);
  }
     part.  */
  
  void
 -font_parse_family_registry (family, registry, font_spec)
 -     Lisp_Object family, registry, font_spec;
 +font_parse_family_registry (Lisp_Object family, Lisp_Object registry, Lisp_Object font_spec)
  {
    int len;
    char *p0, *p1;
      {
        CHECK_STRING (family);
        len = SBYTES (family);
 -      p0 = (char *) SDATA (family);
 -      p1 = index (p0, '-');
 +      p0 = SSDATA (family);
 +      p1 = strchr (p0, '-');
        if (p1)
        {
          if ((*p0 != '*' && p1 - p0 > 0)
        /* Convert "XXX" and "XXX*" to "XXX*-*".  */
        CHECK_STRING (registry);
        len = SBYTES (registry);
 -      p0 = (char *) SDATA (registry);
 -      p1 = index (p0, '-');
 +      p0 = SSDATA (registry);
 +      p1 = strchr (p0, '-');
        if (! p1)
        {
          if (SDATA (registry)[len - 1] == '*')
@@@ -1831,7 -2037,7 +1831,7 @@@ otf_open (file
      otf = XSAVE_VALUE (XCDR (val))->pointer;
    else
      {
 -      otf = STRINGP (file) ? OTF_open ((char *) SDATA (file)) : NULL;
 +      otf = STRINGP (file) ? OTF_open (SSDATA (file)) : NULL;
        val = make_save_value (otf, 0);
        otf_list = Fcons (Fcons (file, val), otf_list);
      }
@@@ -2015,13 -2221,17 +2015,13 @@@ font_otf_Anchor (anchor
  \f
  /* Font sorting */
  
 -static unsigned font_score P_ ((Lisp_Object, Lisp_Object *));
 -static int font_compare P_ ((const void *, const void *));
 -static Lisp_Object font_sort_entities P_ ((Lisp_Object, Lisp_Object,
 -                                        Lisp_Object, int));
 -
 -/* Return a rescaling ratio of FONT_ENTITY.  */
 -extern Lisp_Object Vface_font_rescale_alist;
 +static unsigned font_score (Lisp_Object, Lisp_Object *);
 +static int font_compare (const void *, const void *);
 +static Lisp_Object font_sort_entities (Lisp_Object, Lisp_Object,
 +                                       Lisp_Object, int);
  
  static double
 -font_rescale_ratio (font_entity)
 -     Lisp_Object font_entity;
 +font_rescale_ratio (Lisp_Object font_entity)
  {
    Lisp_Object tail, elt;
    Lisp_Object name = Qnil;
@@@ -2068,7 -2278,8 +2068,7 @@@ static int sort_shift_bits[FONT_SIZE_IN
     SPEC_PROP.  */
  
  static unsigned
 -font_score (entity, spec_prop)
 -     Lisp_Object entity, *spec_prop;
 +font_score (Lisp_Object entity, Lisp_Object *spec_prop)
  {
    unsigned score = 0;
    int i;
@@@ -2142,7 -2353,8 +2142,7 @@@ struct font_sort_dat
  /* The comparison function for qsort.  */
  
  static int
 -font_compare (d1, d2)
 -     const void *d1, *d2;
 +font_compare (const void *d1, const void *d2)
  {
    const struct font_sort_data *data1 = d1;
    const struct font_sort_data *data2 = d2;
     such a case.  */
  
  static Lisp_Object
 -font_sort_entities (list, prefer, frame, best_only)
 -     Lisp_Object list, prefer, frame;
 -     int best_only;
 +font_sort_entities (Lisp_Object list, Lisp_Object prefer, Lisp_Object frame, int best_only)
  {
    Lisp_Object prefer_prop[FONT_SPEC_MAX];
    int len, maxlen, i;
     function with font_sort_order after setting up it.  */
  
  void
 -font_update_sort_order (order)
 -     int *order;
 +font_update_sort_order (int *order)
  {
    int i, shift_bits;
  
  }
  
  static int
 -font_check_otf_features (script, langsys, features, table)
 -     Lisp_Object script, langsys, features, table;
 +font_check_otf_features (Lisp_Object script, Lisp_Object langsys, Lisp_Object features, Lisp_Object table)
  {
    Lisp_Object val;
    int negative;
@@@ -2369,7 -2585,8 +2369,7 @@@ font_check_otf (Lisp_Object spec, Lisp_
     specification SPEC.  */
  
  int
 -font_match_p (spec, font)
 -     Lisp_Object spec, font;
 +font_match_p (Lisp_Object spec, Lisp_Object font)
  {
    Lisp_Object prop[FONT_SPEC_MAX], *props;
    Lisp_Object extra, font_extra;
     is a number frames sharing this cache, and FONT-CACHE-DATA is a
     cons (FONT-SPEC FONT-ENTITY ...).  */
  
 -static void font_prepare_cache P_ ((FRAME_PTR, struct font_driver *));
 -static void font_finish_cache P_ ((FRAME_PTR, struct font_driver *));
 -static Lisp_Object font_get_cache P_ ((FRAME_PTR, struct font_driver *));
 -static void font_clear_cache P_ ((FRAME_PTR, Lisp_Object,
 -                                struct font_driver *));
 +static void font_prepare_cache (FRAME_PTR, struct font_driver *);
 +static void font_finish_cache (FRAME_PTR, struct font_driver *);
 +static Lisp_Object font_get_cache (FRAME_PTR, struct font_driver *);
 +static void font_clear_cache (FRAME_PTR, Lisp_Object,
 +                              struct font_driver *);
  
  static void
 -font_prepare_cache (f, driver)
 -     FRAME_PTR f;
 -     struct font_driver *driver;
 +font_prepare_cache (FRAME_PTR f, struct font_driver *driver)
  {
    Lisp_Object cache, val;
  
  
  
  static void
 -font_finish_cache (f, driver)
 -     FRAME_PTR f;
 -     struct font_driver *driver;
 +font_finish_cache (FRAME_PTR f, struct font_driver *driver)
  {
    Lisp_Object cache, val, tmp;
  
  
  
  static Lisp_Object
 -font_get_cache (f, driver)
 -     FRAME_PTR f;
 -     struct font_driver *driver;
 +font_get_cache (FRAME_PTR f, struct font_driver *driver)
  {
    Lisp_Object val = driver->get_cache (f);
    Lisp_Object type = driver->type;
  static int num_fonts;
  
  static void
 -font_clear_cache (f, cache, driver)
 -     FRAME_PTR f;
 -     Lisp_Object cache;
 -     struct font_driver *driver;
 +font_clear_cache (FRAME_PTR f, Lisp_Object cache, struct font_driver *driver)
  {
    Lisp_Object tail, elt;
    Lisp_Object tail2, entity;
@@@ -2602,8 -2828,12 +2602,8 @@@ static Lisp_Object scratch_font_spec, s
       (2) doesn't match with any regexps in Vface_ignored_fonts (if non-nil).
  */
  
 -extern Lisp_Object Vface_ignored_fonts;
 -
  Lisp_Object
 -font_delete_unmatched (vec, spec, size)
 -     Lisp_Object vec, spec;
 -     int size;
 +font_delete_unmatched (Lisp_Object vec, Lisp_Object spec, int size)
  {
    Lisp_Object entity, val;
    enum font_property_index prop;
     same font-driver.  */
  
  Lisp_Object
 -font_list_entities (frame, spec)
 -     Lisp_Object frame, spec;
 +font_list_entities (Lisp_Object frame, Lisp_Object spec)
  {
    FRAME_PTR f = XFRAME (frame);
    struct font_driver_list *driver_list = f->font_driver_list;
     font-related attributes.  */
  
  static Lisp_Object
 -font_matching_entity (f, attrs, spec)
 -     FRAME_PTR f;
 -     Lisp_Object *attrs, spec;
 +font_matching_entity (FRAME_PTR f, Lisp_Object *attrs, Lisp_Object spec)
  {
    struct font_driver_list *driver_list = f->font_driver_list;
    Lisp_Object ftype, size, entity;
     opened font object.  */
  
  static Lisp_Object
 -font_open_entity (f, entity, pixel_size)
 -     FRAME_PTR f;
 -     Lisp_Object entity;
 -     int pixel_size;
 +font_open_entity (FRAME_PTR f, Lisp_Object entity, int pixel_size)
  {
    struct font_driver_list *driver_list;
    Lisp_Object objlist, size, val, font_object;
    struct font *font;
    int min_width, height;
-   int scaled_pixel_size;
+   int scaled_pixel_size = pixel_size;
  
    font_assert (FONT_ENTITY_P (entity));
    size = AREF (entity, FONT_SIZE_INDEX);
      return Qnil;
    ASET (entity, FONT_OBJLIST_INDEX,
        Fcons (font_object, AREF (entity, FONT_OBJLIST_INDEX)));
 -  ASET (font_object, FONT_OBJLIST_INDEX, Qnil);
    num_fonts++;
  
    font = XFONT_OBJECT (font_object);
  /* Close FONT_OBJECT that is opened on frame F.  */
  
  void
 -font_close_object (f, font_object)
 -     FRAME_PTR f;
 -     Lisp_Object font_object;
 +font_close_object (FRAME_PTR f, Lisp_Object font_object)
  {
    struct font *font = XFONT_OBJECT (font_object);
  
     FONT is a font-entity and it must be opened to check.  */
  
  int
 -font_has_char (f, font, c)
 -     FRAME_PTR f;
 -     Lisp_Object font;
 -     int c;
 +font_has_char (FRAME_PTR f, Lisp_Object font, int c)
  {
    struct font *fontp;
  
  
  /* Return the glyph ID of FONT_OBJECT for character C.  */
  
 -unsigned
 -font_encode_char (font_object, c)
 -     Lisp_Object font_object;
 -     int c;
 +static unsigned
 +font_encode_char (Lisp_Object font_object, int c)
  {
    struct font *font;
  
  /* Return the name of FONT_OBJECT.  */
  
  Lisp_Object
 -font_get_name (font_object)
 -     Lisp_Object font_object;
 +font_get_name (Lisp_Object font_object)
  {
    font_assert (FONT_OBJECT_P (font_object));
    return AREF (font_object, FONT_NAME_INDEX);
  /* Return the specification of FONT_OBJECT.  */
  
  Lisp_Object
 -font_get_spec (font_object)
 -     Lisp_Object font_object;
 +font_get_spec (Lisp_Object font_object)
  {
    Lisp_Object spec = font_make_spec ();
    int i;
     could not be parsed by font_parse_name, return Qnil.  */
  
  Lisp_Object
 -font_spec_from_name (font_name)
 -     Lisp_Object font_name;
 +font_spec_from_name (Lisp_Object font_name)
  {
    Lisp_Object spec = Ffont_spec (0, NULL);
  
    CHECK_STRING (font_name);
 -  if (font_parse_name ((char *) SDATA (font_name), spec) == -1)
 +  if (font_parse_name (SSDATA (font_name), spec) == -1)
      return Qnil;
    font_put_extra (spec, QCname, font_name);
    font_put_extra (spec, QCuser_spec, font_name);
  
  
  void
 -font_clear_prop (attrs, prop)
 -     Lisp_Object *attrs;
 -     enum font_property_index prop;
 +font_clear_prop (Lisp_Object *attrs, enum font_property_index prop)
  {
    Lisp_Object font = attrs[LFACE_FONT_INDEX];
  
    attrs[LFACE_FONT_INDEX] = font;
  }
  
 -void
 -font_update_lface (f, attrs)
 -     FRAME_PTR f;
 -     Lisp_Object *attrs;
 -{
 -  Lisp_Object spec;
 -
 -  spec = attrs[LFACE_FONT_INDEX];
 -  if (! FONT_SPEC_P (spec))
 -    return;
 -
 -  if (! NILP (AREF (spec, FONT_FOUNDRY_INDEX)))
 -    attrs[LFACE_FOUNDRY_INDEX] = SYMBOL_NAME (AREF (spec, FONT_FOUNDRY_INDEX));
 -  if (! NILP (AREF (spec, FONT_FAMILY_INDEX)))
 -    attrs[LFACE_FAMILY_INDEX] = SYMBOL_NAME (AREF (spec, FONT_FAMILY_INDEX));
 -  if (! NILP (AREF (spec, FONT_WEIGHT_INDEX)))
 -    attrs[LFACE_WEIGHT_INDEX] = FONT_WEIGHT_FOR_FACE (spec);
 -  if (! NILP (AREF (spec, FONT_SLANT_INDEX)))
 -    attrs[LFACE_SLANT_INDEX] = FONT_SLANT_FOR_FACE (spec);
 -  if (! NILP (AREF (spec, FONT_WIDTH_INDEX)))
 -    attrs[LFACE_SWIDTH_INDEX] = FONT_WIDTH_FOR_FACE (spec);
 -  if (! NILP (AREF (spec, FONT_SIZE_INDEX)))
 -    {
 -      int point;
 -
 -      if (INTEGERP (AREF (spec, FONT_SIZE_INDEX)))
 -      {
 -        Lisp_Object val;
 -        int dpi = f->resy;
 -
 -        val = Ffont_get (spec, QCdpi);
 -        if (! NILP (val))
 -          dpi = XINT (val);
 -        point = PIXEL_TO_POINT (XINT (AREF (spec, FONT_SIZE_INDEX)) * 10,
 -                                dpi);
 -        attrs[LFACE_HEIGHT_INDEX] = make_number (point);
 -      }
 -      else if (FLOATP (AREF (spec, FONT_SIZE_INDEX)))
 -      {
 -        point = XFLOAT_DATA (AREF (spec, FONT_SIZE_INDEX)) * 10;
 -        attrs[LFACE_HEIGHT_INDEX] = make_number (point);
 -      }
 -    }
 -}
 -
 -
  /* Selecte a font from ENTITIES (list of font-entity vectors) that
     supports C and matches best with ATTRS and PIXEL_SIZE.  */
  
  static Lisp_Object
 -font_select_entity (frame, entities, attrs, pixel_size, c)
 -     Lisp_Object frame, entities, *attrs;
 -     int pixel_size, c;
 +font_select_entity (Lisp_Object frame, Lisp_Object entities, Lisp_Object *attrs, int pixel_size, int c)
  {
    Lisp_Object font_entity;
    Lisp_Object prefer;
     character that the entity must support.  */
  
  Lisp_Object
 -font_find_for_lface (f, attrs, spec, c)
 -     FRAME_PTR f;
 -     Lisp_Object *attrs;
 -     Lisp_Object spec;
 -     int c;
 +font_find_for_lface (FRAME_PTR f, Lisp_Object *attrs, Lisp_Object spec, int c)
  {
    Lisp_Object work;
    Lisp_Object frame, entities, val;
    XSETFRAME (frame, f);
    size = AREF (spec, FONT_SIZE_INDEX);
    pixel_size = font_pixel_size (f, spec);
-   if (pixel_size == 0)
+   if (pixel_size == 0 && INTEGERP (attrs[LFACE_HEIGHT_INDEX]))
      {
        double pt = XINT (attrs[LFACE_HEIGHT_INDEX]);
  
    else if (STRINGP (attrs[LFACE_FOUNDRY_INDEX]))
      {
        val = attrs[LFACE_FOUNDRY_INDEX];
 -      foundry[0] = font_intern_prop ((char *) SDATA (val), SBYTES (val), 1);
 +      foundry[0] = font_intern_prop (SSDATA (val), SBYTES (val), 1);
        foundry[1] = Qnil;
        foundry[2] = null_vector;
      }
    if (NILP (val) && STRINGP (attrs[LFACE_FAMILY_INDEX]))
      {
        val = attrs[LFACE_FAMILY_INDEX];
 -      val = font_intern_prop ((char *) SDATA (val), SBYTES (val), 1);
 +      val = font_intern_prop (SSDATA (val), SBYTES (val), 1);
      }
    if (NILP (val))
      {
  
  
  Lisp_Object
 -font_open_for_lface (f, entity, attrs, spec)
 -     FRAME_PTR f;
 -     Lisp_Object entity;
 -     Lisp_Object *attrs;
 -     Lisp_Object spec;
 +font_open_for_lface (FRAME_PTR f, Lisp_Object entity, Lisp_Object *attrs, Lisp_Object spec)
  {
    int size;
  
     font-object.  */
  
  Lisp_Object
 -font_load_for_lface (f, attrs, spec)
 -     FRAME_PTR f;
 -     Lisp_Object *attrs, spec;
 +font_load_for_lface (FRAME_PTR f, Lisp_Object *attrs, Lisp_Object spec)
  {
    Lisp_Object entity, name;
  
        if (NILP (entity))
        return Qnil;
      }
 -  /* Don't loose the original name that was put in initially.  We need
 +  /* Don't lose the original name that was put in initially.  We need
       it to re-apply the font when font parameters (like hinting or dpi) have
       changed.  */
    entity = font_open_for_lface (f, entity, attrs, spec);
  /* Make FACE on frame F ready to use the font opened for FACE.  */
  
  void
 -font_prepare_for_face (f, face)
 -     FRAME_PTR f;
 -     struct face *face;
 +font_prepare_for_face (FRAME_PTR f, struct face *face)
  {
    if (face->font->driver->prepare_face)
      face->font->driver->prepare_face (f, face);
  /* Make FACE on frame F stop using the font opened for FACE.  */
  
  void
 -font_done_for_face (f, face)
 -     FRAME_PTR f;
 -     struct face *face;
 +font_done_for_face (FRAME_PTR f, struct face *face)
  {
    if (face->font->driver->done_face)
      face->font->driver->done_face (f, face);
     font is found, return Qnil.  */
  
  Lisp_Object
 -font_open_by_spec (f, spec)
 -     FRAME_PTR f;
 -     Lisp_Object spec;
 +font_open_by_spec (FRAME_PTR f, Lisp_Object spec)
  {
    Lisp_Object attrs[LFACE_VECTOR_SIZE];
  
     found, return Qnil.  */
  
  Lisp_Object
 -font_open_by_name (f, name)
 -     FRAME_PTR f;
 -     char *name;
 +font_open_by_name (FRAME_PTR f, const char *name)
  {
    Lisp_Object args[2];
    Lisp_Object spec, ret;
    args[1] = make_unibyte_string (name, strlen (name));
    spec = Ffont_spec (2, args);
    ret = font_open_by_spec (f, spec);
 -  /* Do not loose name originally put in.  */
 +  /* Do not lose name originally put in.  */
    if (!NILP (ret))
      font_put_extra (ret, QCuser_spec, args[1]);
  
     (e.g. syms_of_xfont).  */
  
  void
 -register_font_driver (driver, f)
 -     struct font_driver *driver;
 -     FRAME_PTR f;
 +register_font_driver (struct font_driver *driver, FRAME_PTR f)
  {
    struct font_driver_list *root = f ? f->font_driver_list : font_driver_list;
    struct font_driver_list *prev, *list;
  }
  
  void
 -free_font_driver_list (f)
 -     FRAME_PTR f;
 +free_font_driver_list (FRAME_PTR f)
  {
    struct font_driver_list *list, *next;
  
     F.  */
  
  Lisp_Object
 -font_update_drivers (f, new_drivers)
 -     FRAME_PTR f;
 -     Lisp_Object new_drivers;
 +font_update_drivers (FRAME_PTR f, Lisp_Object new_drivers)
  {
    Lisp_Object active_drivers = Qnil;
    struct font_driver *driver;
  }
  
  int
 -font_put_frame_data (f, driver, data)
 -     FRAME_PTR f;
 -     struct font_driver *driver;
 -     void *data;
 +font_put_frame_data (FRAME_PTR f, struct font_driver *driver, void *data)
  {
    struct font_data_list *list, *prev;
  
  
  
  void *
 -font_get_frame_data (f, driver)
 -     FRAME_PTR f;
 -     struct font_driver *driver;
 +font_get_frame_data (FRAME_PTR f, struct font_driver *driver)
  {
    struct font_data_list *list;
  
     arrays of strings.  This function is intended for use by the font
     drivers to implement their specific font_filter_properties.  */
  void
 -font_filter_properties (font, alist, boolean_properties, non_boolean_properties)
 -     Lisp_Object font;
 -     Lisp_Object alist;
 -     const char *boolean_properties[];
 -     const char *non_boolean_properties[];
 +font_filter_properties (Lisp_Object font,
 +                      Lisp_Object alist,
 +                      const char *const boolean_properties[],
 +                      const char *const non_boolean_properties[])
  {
    Lisp_Object it;
    int i;
        {
          Lisp_Object key = XCAR (XCAR (it));
          Lisp_Object val = XCDR (XCAR (it));
 -        char *keystr = SDATA (SYMBOL_NAME (key));
 +        char *keystr = SSDATA (SYMBOL_NAME (key));
  
          if (strcmp (boolean_properties[i], keystr) == 0)
            {
              const char *str = INTEGERP (val) ? (XINT (val) ? "true" : "false")
 -            : SYMBOLP (val) ? (const char *) SDATA (SYMBOL_NAME (val))
 +            : SYMBOLP (val) ? SSDATA (SYMBOL_NAME (val))
              : "true";
  
              if (strcmp ("false", str) == 0 || strcmp ("False", str) == 0
        {
          Lisp_Object key = XCAR (XCAR (it));
          Lisp_Object val = XCDR (XCAR (it));
 -        char *keystr = SDATA (SYMBOL_NAME (key));
 +        char *keystr = SSDATA (SYMBOL_NAME (key));
          if (strcmp (non_boolean_properties[i], keystr) == 0)
            Ffont_put (font, key, val);
        }
     at index POS.  If C is negative, get C from the current buffer or
     STRING.  */
  
 -Lisp_Object
 -font_at (c, pos, face, w, string)
 -     int c;
 -     EMACS_INT pos;
 -     struct face *face;
 -     struct window *w;
 -     Lisp_Object string;
 +static Lisp_Object
 +font_at (int c, EMACS_INT pos, struct face *face, struct window *w,
 +       Lisp_Object string)
  {
    FRAME_PTR f;
    int multibyte;
    Lisp_Object font_object;
  
    multibyte = (NILP (string)
 -             ? ! NILP (current_buffer->enable_multibyte_characters)
 +             ? ! NILP (BVAR (current_buffer, enable_multibyte_characters))
               : STRING_MULTIBYTE (string));
    if (c < 0)
      {
     It is assured that the current buffer (or STRING) is multibyte.  */
  
  Lisp_Object
 -font_range (pos, limit, w, face, string)
 -     EMACS_INT pos, *limit;
 -     struct window *w;
 -     struct face *face;
 -     Lisp_Object string;
 +font_range (EMACS_INT pos, EMACS_INT *limit, struct window *w, struct face *face, Lisp_Object string)
  {
 -  EMACS_INT pos_byte, ignore, start, start_byte;
 +  EMACS_INT pos_byte, ignore;
    int c;
    Lisp_Object font_object = Qnil;
  
        pos_byte = string_char_to_byte (string, pos);
      }
  
 -  start = pos, start_byte = pos_byte;
    while (pos < *limit)
      {
        Lisp_Object category;
        FETCH_CHAR_ADVANCE_NO_CHECK (c, pos, pos_byte);
        else
        FETCH_STRING_CHAR_ADVANCE_NO_CHECK (c, string, pos, pos_byte);
 +      category = CHAR_TABLE_REF (Vunicode_category_table, c);
 +      if (EQ (category, QCf)
 +        || CHAR_VARIATION_SELECTOR_P (c))
 +      continue;
        if (NILP (font_object))
        {
          font_object = font_for_char (face, c, pos - 1, string);
            return Qnil;
          continue;
        }
 -
 -      category = CHAR_TABLE_REF (Vunicode_category_table, c);
 -      if (! EQ (category, QCf)
 -        && ! CHAR_VARIATION_SELECTOR_P (c)
 -        && font_encode_char (font_object, c) == FONT_INVALID_CODE)
 -      {
 -        Lisp_Object f = font_for_char (face, c, pos - 1, string);
 -        EMACS_INT i, i_byte;
 -
 -
 -        if (NILP (f))
 -          {
 -            *limit = pos - 1;
 -            return font_object;
 -          }
 -        i = start, i_byte = start_byte;
 -        while (i < pos - 1)
 -          {
 -
 -            if (NILP (string))
 -              FETCH_CHAR_ADVANCE_NO_CHECK (c, i, i_byte);
 -            else
 -              FETCH_STRING_CHAR_ADVANCE_NO_CHECK (c, string, i, i_byte);
 -            category = CHAR_TABLE_REF (Vunicode_category_table, c);
 -            if (! EQ (category, QCf)
 -                && ! CHAR_VARIATION_SELECTOR_P (c)
 -                && font_encode_char (f, c) == FONT_INVALID_CODE)
 -              {
 -                *limit = pos - 1;
 -                return font_object;
 -              }
 -          }
 -        font_object = f;
 -      }
 +      if (font_encode_char (font_object, c) == FONT_INVALID_CODE)
 +      *limit = pos - 1;
      }
    return font_object;
  }
@@@ -3771,7 -4134,8 +3771,7 @@@ Return nil otherwise
  Optional 2nd argument EXTRA-TYPE, if non-nil, specifies to check
  which kind of font it is.  It must be one of `font-spec', `font-entity',
  `font-object'.  */)
 -     (object, extra_type)
 -     Lisp_Object object, extra_type;
 +  (Lisp_Object object, Lisp_Object extra_type)
  {
    if (NILP (extra_type))
      return (FONTP (object) ? Qt : Qnil);
@@@ -3849,7 -4213,9 +3849,7 @@@ be an OpenType font, and whose GPOS tab
  language system must contain `mark' feature.
  
  usage: (font-spec ARGS...)  */)
 -     (nargs, args)
 -     int nargs;
 -     Lisp_Object *args;
 +  (int nargs, Lisp_Object *args)
  {
    Lisp_Object spec = font_make_spec ();
    int i;
        if (EQ (key, QCname))
        {
          CHECK_STRING (val);
 -        font_parse_name ((char *) SDATA (val), spec);
 +        font_parse_name (SSDATA (val), spec);
          font_put_extra (spec, key, val);
        }
        else
  
  DEFUN ("copy-font-spec", Fcopy_font_spec, Scopy_font_spec, 1, 1, 0,
         doc: /* Return a copy of FONT as a font-spec.  */)
 -     (font)
 -     Lisp_Object font;
 +  (Lisp_Object font)
  {
    Lisp_Object new_spec, tail, prev, extra;
    int i;
@@@ -3918,7 -4285,8 +3918,7 @@@ DEFUN ("merge-font-spec", Fmerge_font_s
         doc: /* Merge font-specs FROM and TO, and return a new font-spec.
  Every specified properties in FROM override the corresponding
  properties in TO.  */)
 -     (from, to)
 -     Lisp_Object from, to;
 +  (Lisp_Object from, Lisp_Object to)
  {
    Lisp_Object extra, tail;
    int i;
  DEFUN ("font-get", Ffont_get, Sfont_get, 2, 2, 0,
         doc: /* Return the value of FONT's property KEY.
  FONT is a font-spec, a font-entity, or a font-object.
 -KEY must be one of these symbols:
 +KEY is any symbol, but these are reserved for specific meanings:
    :family, :weight, :slant, :width, :foundry, :adstyle, :registry,
 -  :size, :name, :script
 +  :size, :name, :script, :otf
  See the documentation of `font-spec' for their meanings.
 -If FONT is a font-entity or font-object, the value of :script may be
 -a list of scripts that are supported by the font.  */)
 -     (font, key)
 -     Lisp_Object font, key;
 +In addition, if FONT is a font-entity or a font-object, values of
 +:script and :otf are different from those of a font-spec as below:
 +
 +The value of :script may be a list of scripts that are supported by the font.
 +
 +The value of :otf is a cons (GSUB . GPOS) where GSUB and GPOS are lists
 +representing the OpenType features supported by the font by this form:
 +  ((SCRIPT (LANGSYS FEATURE ...) ...) ...)
 +SCRIPT, LANGSYS, and FEATURE are all symbols representing OpenType
 +Layout tags.  */)
 +  (Lisp_Object font, Lisp_Object key)
  {
    int idx;
 +  Lisp_Object val;
  
    CHECK_FONT (font);
    CHECK_SYMBOL (key);
      return font_style_symbolic (font, idx, 0);
    if (idx >= 0 && idx < FONT_EXTRA_INDEX)
      return AREF (font, idx);
 -  return Fcdr (Fassq (key, AREF (font, FONT_EXTRA_INDEX)));
 +  val = Fassq (key, AREF (font, FONT_EXTRA_INDEX));
 +  if (NILP (val) && EQ (key, QCotf) && FONT_OBJECT_P (font))
 +    {
 +      struct font *fontp = XFONT_OBJECT (font);
 +
 +      if (fontp->driver->otf_capability)
 +      val = fontp->driver->otf_capability (fontp);
 +      else
 +      val = Fcons (Qnil, Qnil);
 +    }
 +  else
 +    val = Fcdr (val);
 +  return val;
  }
  
  #ifdef HAVE_WINDOW_SYSTEM
@@@ -4003,7 -4351,8 +4003,7 @@@ may be omitted from the list if they ar
  
  The optional argument FRAME specifies the frame that the face attributes
  are to be displayed on.  If omitted, the selected frame is used.  */)
 -     (font, frame)
 -     Lisp_Object font, frame;
 +  (Lisp_Object font, Lisp_Object frame)
  {
    struct frame *f;
    Lisp_Object plist[10];
  #endif
  
  DEFUN ("font-put", Ffont_put, Sfont_put, 3, 3, 0,
 -       doc: /* Set one property of FONT-SPEC: give property PROP value VAL.  */)
 -     (font_spec, prop, val)
 -     Lisp_Object font_spec, prop, val;
 +       doc: /* Set one property of FONT: give property KEY value VAL.
 +FONT is a font-spec, a font-entity, or a font-object.
 +
 +If FONT is a font-spec, KEY can be any symbol.  But if KEY is the one
 +accepted by the function `font-spec' (which see), VAL must be what
 +allowed in `font-spec'.
 +
 +If FONT is a font-entity or a font-object, KEY must not be the one
 +accepted by `font-spec'.  */)
 +  (Lisp_Object font, Lisp_Object prop, Lisp_Object val)
  {
    int idx;
  
 -  CHECK_FONT_SPEC (font_spec);
    idx = get_font_prop_index (prop);
    if (idx >= 0 && idx < FONT_EXTRA_INDEX)
 -    ASET (font_spec, idx, font_prop_validate (idx, Qnil, val));
 +    {
 +      CHECK_FONT_SPEC (font);
 +      ASET (font, idx, font_prop_validate (idx, Qnil, val));
 +    }
    else
 -    font_put_extra (font_spec, prop, font_prop_validate (0, prop, val));
 +    {
 +      if (EQ (prop, QCname)
 +        || EQ (prop, QCscript)
 +        || EQ (prop, QClang)
 +        || EQ (prop, QCotf))
 +      CHECK_FONT_SPEC (font);
 +      else
 +      CHECK_FONT (font);
 +      font_put_extra (font, prop, font_prop_validate (0, prop, val));
 +    }
    return val;
  }
  
@@@ -4116,7 -4447,8 +4116,7 @@@ Optional 3rd argument NUM, if non-nil, 
  Optional 4th argument PREFER, if non-nil, is a font-spec to
  control the order of the returned list.  Fonts are sorted by
  how close they are to PREFER.  */)
 -     (font_spec, frame, num, prefer)
 -     Lisp_Object font_spec, frame, num, prefer;
 +  (Lisp_Object font_spec, Lisp_Object frame, Lisp_Object num, Lisp_Object prefer)
  {
    Lisp_Object vec, list;
    int n = 0;
  DEFUN ("font-family-list", Ffont_family_list, Sfont_family_list, 0, 1, 0,
         doc: /* List available font families on the current frame.
  Optional argument FRAME, if non-nil, specifies the target frame.  */)
 -     (frame)
 -     Lisp_Object frame;
 +  (Lisp_Object frame)
  {
    FRAME_PTR f;
    struct font_driver_list *driver_list;
  DEFUN ("find-font", Ffind_font, Sfind_font, 1, 2, 0,
         doc: /* Return a font-entity matching with FONT-SPEC on the current frame.
  Optional 2nd argument FRAME, if non-nil, specifies the target frame.  */)
 -     (font_spec, frame)
 -     Lisp_Object font_spec, frame;
 +  (Lisp_Object font_spec, Lisp_Object frame)
  {
    Lisp_Object val = Flist_fonts (font_spec, frame, make_number (1), Qnil);
  
@@@ -4209,7 -4543,8 +4209,7 @@@ FONT is a font-spec, font-entity, or fo
  If the name is too long for XLFD (maximum 255 chars), return nil.
  If the 2nd optional arg FOLD-WILDCARDS is non-nil,
  the consecutive wildcards are folded to one.  */)
 -     (font, fold_wildcards)
 -     Lisp_Object font, fold_wildcards;
 +  (Lisp_Object font, Lisp_Object fold_wildcards)
  {
    char name[256];
    int pixel_size = 0;
        {
          if (NILP (fold_wildcards))
            return font_name;
 -        strcpy (name, (char *) SDATA (font_name));
 +        strcpy (name, SSDATA (font_name));
          goto done;
        }
        pixel_size = XFONT_OBJECT (font)->pixel_size;
  
  DEFUN ("clear-font-cache", Fclear_font_cache, Sclear_font_cache, 0, 0, 0,
         doc: /* Clear font cache.  */)
 -     ()
 +  (void)
  {
    Lisp_Object list, frame;
  
  
  \f
  void
 -font_fill_lglyph_metrics (glyph, font_object)
 -     Lisp_Object glyph, font_object;
 +font_fill_lglyph_metrics (Lisp_Object glyph, Lisp_Object font_object)
  {
    struct font *font = XFONT_OBJECT (font_object);
    unsigned code;
@@@ -4310,7 -4646,8 +4310,7 @@@ header of the glyph-string
  
  If the shaping was successful, the value is GSTRING itself or a newly
  created glyph-string.  Otherwise, the value is nil.  */)
 -     (gstring)
 -     Lisp_Object gstring;
 +  (Lisp_Object gstring)
  {
    struct font *font;
    Lisp_Object font_object, n, glyph;
      }
    if (i == 3 || XINT (n) == 0)
      return Qnil;
 +  if (XINT (n) < LGSTRING_GLYPH_LEN (gstring))
 +    LGSTRING_SET_GLYPH (gstring, XINT (n), Qnil);
  
    glyph = LGSTRING_GLYPH (gstring, 0);
    from = LGLYPH_FROM (glyph);
@@@ -4389,7 -4724,8 +4389,7 @@@ wher
    VARIATION-SELECTOR is a character code of variation selection
      (#xFE00..#xFE0F or #xE0100..#xE01EF)
    GLYPH-ID is a glyph code of the corresponding variation glyph.  */)
 -     (font_object, character)
 -     Lisp_Object font_object, character;
 +  (Lisp_Object font_object, Lisp_Object character)
  {
    unsigned variations[256];
    struct font *font;
@@@ -4457,7 -4793,8 +4457,7 @@@ produced in GSTRING-OUT, and the value 
  
  See the documentation of `font-make-gstring' for the format of
  glyph-string.  */)
 -     (otf_features, gstring_in, from, to, gstring_out, index)
 -     Lisp_Object otf_features, gstring_in, from, to, gstring_out, index;
 +  (Lisp_Object otf_features, Lisp_Object gstring_in, Lisp_Object from, Lisp_Object to, Lisp_Object gstring_out, Lisp_Object index)
  {
    Lisp_Object font_object = LGSTRING_FONT (gstring_in);
    Lisp_Object val;
@@@ -4507,7 -4844,8 +4507,7 @@@ The value is a list of cons cells of th
  where GLYPH-ID is a glyph index of the font, and CHARACTER is a
  character code corresponding to the glyph or nil if there's no
  corresponding character.  */)
 -     (font_object, character, otf_features)
 -     Lisp_Object font_object, character, otf_features;
 +  (Lisp_Object font_object, Lisp_Object character, Lisp_Object otf_features)
  {
    struct font *font;
    Lisp_Object gstring_in, gstring_out, g;
  
  DEFUN ("open-font", Fopen_font, Sopen_font, 1, 3, 0,
         doc: /* Open FONT-ENTITY.  */)
 -     (font_entity, size, frame)
 -     Lisp_Object font_entity;
 -     Lisp_Object size;
 -     Lisp_Object frame;
 +  (Lisp_Object font_entity, Lisp_Object size, Lisp_Object frame)
  {
    int isize;
  
  
  DEFUN ("close-font", Fclose_font, Sclose_font, 1, 2, 0,
         doc: /* Close FONT-OBJECT.  */)
 -     (font_object, frame)
 -     Lisp_Object font_object, frame;
 +  (Lisp_Object font_object, Lisp_Object frame)
  {
    CHECK_FONT_OBJECT (font_object);
    if (NILP (frame))
@@@ -4625,7 -4967,8 +4625,7 @@@ representing the default langsys
  FEATURE is a symbol representing OpenType feature tag.
  
  If the font is not OpenType font, CAPABILITY is nil.  */)
 -     (font_object)
 -     Lisp_Object font_object;
 +  (Lisp_Object font_object)
  {
    struct font *font;
    Lisp_Object val;
    return val;
  }
  
 -DEFUN ("get-font-glyphs", Fget_font_glyphs, Sget_font_glyphs, 2, 2, 0,
 -       doc: /* Return a vector of glyphs of FONT-OBJECT for drawing STRING.
 -Each element is a vector [GLYPH-CODE LBEARING RBEARING WIDTH ASCENT DESCENT].  */)
 -     (font_object, string)
 -     Lisp_Object font_object, string;
 +DEFUN ("font-get-glyphs", Ffont_get_glyphs, Sfont_get_glyphs, 3, 4, 0,
 +       doc:
 +       /* Return a vector of FONT-OBJECT's glyphs for the specified characters.
 +FROM and TO are positions (integers or markers) specifying a region
 +of the current buffer.
 +If the optional fourth arg OBJECT is not nil, it is a string or a
 +vector containing the target characters.
 +
 +Each element is a vector containing information of a glyph in this format:
 +  [FROM-IDX TO-IDX C CODE WIDTH LBEARING RBEARING ASCENT DESCENT ADJUSTMENT]
 +where
 +  FROM is an index numbers of a character the glyph corresponds to.
 +  TO is the same as FROM.
 +  C is the character of the glyph.
 +  CODE is the glyph-code of C in FONT-OBJECT.
 +  WIDTH thru DESCENT are the metrics (in pixels) of the glyph.
 +  ADJUSTMENT is always nil.
 +If FONT-OBJECT doesn't have a glyph for a character,
 +the corresponding element is nil.  */)
 +  (Lisp_Object font_object, Lisp_Object from, Lisp_Object to,
 +   Lisp_Object object)
  {
    struct font *font;
 -  int i, len;
 -  Lisp_Object vec;
 +  int i, len, c;
 +  Lisp_Object *chars, vec;
 +  USE_SAFE_ALLOCA;
  
    CHECK_FONT_GET_OBJECT (font_object, font);
 -  CHECK_STRING (string);
 -  len = SCHARS (string);
 +  if (NILP (object))
 +    {
 +      EMACS_INT charpos, bytepos;
 +
 +      validate_region (&from, &to);
 +      if (EQ (from, to))
 +      return Qnil;
 +      len = XFASTINT (to) - XFASTINT (from);
 +      SAFE_ALLOCA_LISP (chars, len);
 +      charpos = XFASTINT (from);
 +      bytepos = CHAR_TO_BYTE (charpos);
 +      for (i = 0; charpos < XFASTINT (to); i++)
 +      {
 +        FETCH_CHAR_ADVANCE (c, charpos, bytepos);
 +        chars[i] = make_number (c);
 +      }
 +    }
 +  else if (STRINGP (object))
 +    {
 +      const unsigned char *p;
 +
 +      CHECK_NUMBER (from);
 +      CHECK_NUMBER (to);
 +      if (XINT (from) < 0 || XINT (from) > XINT (to)
 +        || XINT (to) > SCHARS (object))
 +      args_out_of_range_3 (object, from, to);
 +      if (EQ (from, to))
 +      return Qnil;
 +      len = XFASTINT (to) - XFASTINT (from);
 +      SAFE_ALLOCA_LISP (chars, len);
 +      p = SDATA (object);
 +      if (STRING_MULTIBYTE (object))
 +      for (i = 0; i < len; i++)
 +        {
 +          c = STRING_CHAR_ADVANCE (p);
 +          chars[i] = make_number (c);
 +        }
 +      else
 +      for (i = 0; i < len; i++)
 +        chars[i] = make_number (p[i]);
 +    }
 +  else
 +    {
 +      CHECK_VECTOR (object);
 +      CHECK_NUMBER (from);
 +      CHECK_NUMBER (to);
 +      if (XINT (from) < 0 || XINT (from) > XINT (to)
 +        || XINT (to) > ASIZE (object))
 +      args_out_of_range_3 (object, from, to);
 +      if (EQ (from, to))
 +      return Qnil;
 +      len = XFASTINT (to) - XFASTINT (from);
 +      for (i = 0; i < len; i++)
 +      {
 +        Lisp_Object elt = AREF (object, XFASTINT (from) + i);
 +        CHECK_CHARACTER (elt);
 +      }
 +      chars = &(AREF (object, XFASTINT (from)));
 +    }
 +
    vec = Fmake_vector (make_number (len), Qnil);
    for (i = 0; i < len; i++)
      {
 -      Lisp_Object ch = Faref (string, make_number (i));
 -      Lisp_Object val;
 -      int c = XINT (ch);
 +      Lisp_Object g;
 +      int c = XFASTINT (chars[i]);
        unsigned code;
        EMACS_INT cod;
        struct font_metrics metrics;
        cod = code = font->driver->encode_char (font, c);
        if (code == FONT_INVALID_CODE)
        continue;
 -      val = Fmake_vector (make_number (6), Qnil);
 -      if (cod <= MOST_POSITIVE_FIXNUM)
 -      ASET (val, 0, make_number (code));
 -      else
 -      ASET (val, 0, Fcons (make_number (code >> 16),
 -                           make_number (code & 0xFFFF)));
 +      g = Fmake_vector (make_number (LGLYPH_SIZE), Qnil);
 +      LGLYPH_SET_FROM (g, i);
 +      LGLYPH_SET_TO (g, i);
 +      LGLYPH_SET_CHAR (g, c);
 +      LGLYPH_SET_CODE (g, code);
        font->driver->text_extents (font, &code, 1, &metrics);
 -      ASET (val, 1, make_number (metrics.lbearing));
 -      ASET (val, 2, make_number (metrics.rbearing));
 -      ASET (val, 3, make_number (metrics.width));
 -      ASET (val, 4, make_number (metrics.ascent));
 -      ASET (val, 5, make_number (metrics.descent));
 -      ASET (vec, i, val);
 -    }
 +      LGLYPH_SET_WIDTH (g, metrics.width);
 +      LGLYPH_SET_LBEARING (g, metrics.lbearing);
 +      LGLYPH_SET_RBEARING (g, metrics.rbearing);
 +      LGLYPH_SET_ASCENT (g, metrics.ascent);
 +      LGLYPH_SET_DESCENT (g, metrics.descent);
 +      ASET (vec, i, g);
 +    }
 +  if (! VECTORP (object))
 +    SAFE_FREE ();
    return vec;
  }
  
  DEFUN ("font-match-p", Ffont_match_p, Sfont_match_p, 2, 2, 0,
         doc: /* Return t if and only if font-spec SPEC matches with FONT.
  FONT is a font-spec, font-entity, or font-object. */)
 -     (spec, font)
 -     Lisp_Object spec, font;
 +  (Lisp_Object spec, Lisp_Object font)
  {
    CHECK_FONT_SPEC (spec);
    CHECK_FONT (font);
@@@ -4779,7 -5048,8 +4779,7 @@@ DEFUN ("font-at", Ffont_at, Sfont_at, 1
         doc: /* Return a font-object for displaying a character at POSITION.
  Optional second arg WINDOW, if non-nil, is a window displaying
  the current buffer.  It defaults to the currently selected window.  */)
 -     (position, window, string)
 -     Lisp_Object position, window, string;
 +  (Lisp_Object position, Lisp_Object window, Lisp_Object string)
  {
    struct window *w;
    EMACS_INT pos;
@@@ -4812,7 -5082,8 +4812,7 @@@ DEFUN ("draw-string", Fdraw_string, Sdr
         doc: /*  Draw STRING by FONT-OBJECT on the top left corner of the current frame.
  The value is a number of glyphs drawn.
  Type C-l to recover what previously shown.  */)
 -     (font_object, string)
 -     Lisp_Object font_object, string;
 +  (Lisp_Object font_object, Lisp_Object string)
  {
    Lisp_Object frame = selected_frame;
    FRAME_PTR f = XFRAME (frame);
@@@ -4866,7 -5137,8 +4866,7 @@@ wher
    RELATIVE-COMPOSE and DEFAULT-ASCENT are the numbers controlling
      how to compose characters.
  If the named font is not yet loaded, return nil.  */)
 -     (name, frame)
 -     Lisp_Object name, frame;
 +  (Lisp_Object name, Lisp_Object frame)
  {
    FRAME_PTR f;
    struct font *font;
  
        if (fontset >= 0)
        name = fontset_ascii (fontset);
 -      font_object = font_open_by_name (f, (char *) SDATA (name));
 +      font_object = font_open_by_name (f, SSDATA (name));
      }
    else if (FONT_OBJECT_P (name))
      font_object = name;
    build_style_table ((TBL), sizeof TBL / sizeof (struct table_entry))
  
  static Lisp_Object
 -build_style_table (entry, nelement)
 -     struct table_entry *entry;
 -     int nelement;
 +build_style_table (const struct table_entry *entry, int nelement)
  {
    int i, j;
    Lisp_Object table, elt;
    return table;
  }
  
 -Lisp_Object Vfont_log;
 -
  /* The deferred font-log data of the form [ACTION ARG RESULT].
     If ACTION is not nil, that is added to the log when font_add_log is
     called next time.  At that time, ACTION is set back to nil.  */
@@@ -4957,7 -5233,9 +4957,7 @@@ static Lisp_Object Vfont_log_deferred
     opening), ARG is the argument for the action, and RESULT is the
     result of the action.  */
  void
 -font_add_log (action, arg, result)
 -     char *action;
 -     Lisp_Object arg, result;
 +font_add_log (const char *action, Lisp_Object arg, Lisp_Object result)
  {
    Lisp_Object tail, val;
    int i;
      return;
    if (STRINGP (AREF (Vfont_log_deferred, 0)))
      {
 -      char *str = (char *) SDATA (AREF (Vfont_log_deferred, 0));
 +      char *str = SSDATA (AREF (Vfont_log_deferred, 0));
  
        ASET (Vfont_log_deferred, 0, Qnil);
        font_add_log (str, AREF (Vfont_log_deferred, 1),
     as font_add_log.  */
  
  void
 -font_deferred_log (action, arg, result)
 -     char *action;
 -     Lisp_Object arg, result;
 +font_deferred_log (const char *action, Lisp_Object arg, Lisp_Object result)
  {
    if (EQ (Vfont_log, Qt))
      return;
    ASET (Vfont_log_deferred, 2, result);
  }
  
 -extern void syms_of_ftfont P_ (());
 -extern void syms_of_xfont P_ (());
 -extern void syms_of_xftfont P_ (());
 -extern void syms_of_ftxfont P_ (());
 -extern void syms_of_bdffont P_ (());
 -extern void syms_of_w32font P_ (());
 -extern void syms_of_atmfont P_ (());
 -extern void syms_of_nsfont P_ (());
 -
  void
 -syms_of_font ()
 +syms_of_font (void)
  {
    sort_shift_bits[FONT_TYPE_INDEX] = 0;
    sort_shift_bits[FONT_SLANT_INDEX] = 2;
    defsubr (&Sopen_font);
    defsubr (&Sclose_font);
    defsubr (&Squery_font);
 -  defsubr (&Sget_font_glyphs);
 +  defsubr (&Sfont_get_glyphs);
    defsubr (&Sfont_match_p);
    defsubr (&Sfont_at);
  #if 0
    defsubr (&Sfont_info);
  #endif
  
 -  DEFVAR_LISP ("font-encoding-alist", &Vfont_encoding_alist,
 +  DEFVAR_LISP ("font-encoding-alist", Vfont_encoding_alist,
               doc: /*
  Alist of fontname patterns vs the corresponding encoding and repertory info.
  Each element looks like (REGEXP . (ENCODING . REPERTORY)),
@@@ -5174,30 -5463,22 +5174,30 @@@ non-nil value in the table are supporte
  gets the repertory information by an opened font and ENCODING.  */);
    Vfont_encoding_alist = Qnil;
  
 -  DEFVAR_LISP_NOPRO ("font-weight-table", &Vfont_weight_table,
 +  /* FIXME: These 3 vars are not quite what they appear: setq on them
 +     won't have any effect other than disconnect them from the style
 +     table used by the font display code.  So we make them read-only,
 +     to avoid this confusing situation.  */
 +
 +  DEFVAR_LISP_NOPRO ("font-weight-table", Vfont_weight_table,
               doc: /*  Vector of valid font weight values.
  Each element has the form:
      [NUMERIC-VALUE SYMBOLIC-NAME ALIAS-NAME ...]
  NUMERIC-VALUE is an integer, and SYMBOLIC-NAME and ALIAS-NAME are symbols. */);
    Vfont_weight_table = BUILD_STYLE_TABLE (weight_table);
 +  XSYMBOL (intern_c_string ("font-weight-table"))->constant = 1;
  
 -  DEFVAR_LISP_NOPRO ("font-slant-table", &Vfont_slant_table,
 +  DEFVAR_LISP_NOPRO ("font-slant-table", Vfont_slant_table,
               doc: /*  Vector of font slant symbols vs the corresponding numeric values.
  See `font-weight-table' for the format of the vector. */);
    Vfont_slant_table = BUILD_STYLE_TABLE (slant_table);
 +  XSYMBOL (intern_c_string ("font-slant-table"))->constant = 1;
  
 -  DEFVAR_LISP_NOPRO ("font-width-table", &Vfont_width_table,
 +  DEFVAR_LISP_NOPRO ("font-width-table", Vfont_width_table,
               doc: /*  Alist of font width symbols vs the corresponding numeric values.
  See `font-weight-table' for the format of the vector. */);
    Vfont_width_table = BUILD_STYLE_TABLE (width_table);
 +  XSYMBOL (intern_c_string ("font-width-table"))->constant = 1;
  
    staticpro (&font_style_table);
    font_style_table = Fmake_vector (make_number (3), Qnil);
    ASET (font_style_table, 1, Vfont_slant_table);
    ASET (font_style_table, 2, Vfont_width_table);
  
 -  DEFVAR_LISP ("font-log", &Vfont_log, doc: /*
 +  DEFVAR_LISP ("font-log", Vfont_log, doc: /*
  *Logging list of font related actions and results.
  The value t means to suppress the logging.
  The initial value is set to nil if the environment variable
@@@ -5240,7 -5521,10 +5240,7 @@@ EMACS_FONT_LOG is set.  Otherwise, it i
  }
  
  void
 -init_font ()
 +init_font (void)
  {
    Vfont_log = egetenv ("EMACS_FONT_LOG") ? Qnil : Qt;
  }
 -
 -/* arch-tag: 74c9475d-5976-4c93-a327-942ae3072846
 -   (do not change this comment) */