changeset 90718:f1d13e615070

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 523-544) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 168-171) - Update from CVS - Merge from emacs--devo--0 Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-150
author Miles Bader <miles@gnu.org>
date Thu, 07 Dec 2006 04:14:14 +0000
parents 06937e972ad0 (current diff) 961428a4bccd (diff)
children 3bba05d0a63c
files .cvsignore AUTHORS ChangeLog Makefile.in admin/ChangeLog admin/FOR-RELEASE admin/admin.el admin/alloc-colors.c admin/build-configs admin/cus-test.el admin/diff-tar-files admin/make-emacs admin/revdiff config.bat configure configure.in etc/ChangeLog etc/NEWS etc/emacsclient.1 etc/etags.1 leim/ChangeLog leim/makefile.w32-in leim/quail/greek.el lib-src/ChangeLog lib-src/emacsclient.c lib-src/etags.c lib-src/makefile.w32-in lisp/ChangeLog lisp/abbrev.el lisp/abbrevlist.el lisp/add-log.el lisp/align.el lisp/allout.el lisp/arc-mode.el lisp/array.el lisp/autoarg.el lisp/autoinsert.el lisp/avoid.el lisp/bindings.el lisp/case-table.el lisp/cdl.el lisp/chistory.el lisp/cmuscheme.el lisp/comint.el lisp/compare-w.el lisp/complete.el lisp/completion.el lisp/cus-dep.el lisp/cvs-status.el lisp/delim-col.el lisp/descr-text.el lisp/diff-mode.el lisp/dired.el lisp/dirtrack.el lisp/disp-table.el lisp/dos-fns.el lisp/dos-vars.el lisp/dos-w32.el lisp/double.el lisp/ebuff-menu.el lisp/echistory.el lisp/ediff-diff.el lisp/ediff-vers.el lisp/edmacro.el lisp/ehelp.el lisp/electric.el lisp/elide-head.el lisp/emacs-lisp/authors.el lisp/emacs-lisp/bytecomp.el lisp/emacs-lisp/easy-mmode.el lisp/emacs-lisp/find-func.el lisp/emacs-lock.el lisp/emulation/cua-base.el lisp/expand.el lisp/facemenu.el lisp/ffap.el lisp/filecache.el lisp/files.el lisp/find-dired.el lisp/find-file.el lisp/find-lisp.el lisp/flow-ctrl.el lisp/foldout.el lisp/font-core.el lisp/format.el lisp/forms.el lisp/generic-x.el lisp/gnus/ChangeLog lisp/gnus/gnus-agent.el lisp/gnus/gnus-art.el lisp/gnus/gnus-group.el lisp/gnus/gnus-start.el lisp/gnus/gnus-sum.el lisp/gnus/gnus.el lisp/gnus/mm-util.el lisp/gnus/nneething.el lisp/help-macro.el lisp/help.el lisp/hexl.el lisp/hilit-chg.el lisp/hippie-exp.el lisp/icomplete.el lisp/ido.el lisp/ielm.el lisp/imenu.el lisp/indent.el lisp/info-look.el lisp/informat.el lisp/international/fontset.el lisp/international/mule.el lisp/jka-compr.el lisp/kermit.el lisp/kmacro.el lisp/language/thai-word.el lisp/ledit.el lisp/loadhist.el lisp/locate.el lisp/log-edit.el lisp/ls-lisp.el lisp/macros.el lisp/mail/smtpmail.el lisp/makesum.el lisp/master.el lisp/menu-bar.el lisp/midnight.el lisp/misc.el lisp/mouse-copy.el lisp/mouse.el lisp/net/rcirc.el lisp/net/tramp.el lisp/newcomment.el lisp/novice.el lisp/outline.el lisp/paren.el lisp/paths.el lisp/pcmpl-cvs.el lisp/pcmpl-gnu.el lisp/pcmpl-linux.el lisp/pcmpl-rpm.el lisp/pcmpl-unix.el lisp/pcvs-defs.el lisp/pcvs-info.el lisp/pcvs-parse.el lisp/pcvs.el lisp/play/gomoku.el lisp/play/landmark.el lisp/progmodes/ada-mode.el lisp/progmodes/ada-xref.el lisp/progmodes/cc-align.el lisp/progmodes/cc-awk.el lisp/progmodes/cc-cmds.el lisp/progmodes/cc-compat.el lisp/progmodes/cc-defs.el lisp/progmodes/cc-engine.el lisp/progmodes/cc-langs.el lisp/progmodes/cc-menus.el lisp/progmodes/cc-mode.el lisp/progmodes/cc-styles.el lisp/progmodes/cc-vars.el lisp/progmodes/compile.el lisp/progmodes/cperl-mode.el lisp/progmodes/f90.el lisp/progmodes/fortran.el lisp/progmodes/gdb-ui.el lisp/progmodes/gud.el lisp/progmodes/hideshow.el lisp/progmodes/idlwave.el lisp/progmodes/octave-mod.el lisp/progmodes/python.el lisp/progmodes/sql.el lisp/progmodes/vhdl-mode.el lisp/register.el lisp/repeat.el lisp/reposition.el lisp/resume.el lisp/rot13.el lisp/s-region.el lisp/scroll-all.el lisp/select.el lisp/server.el lisp/shell.el lisp/simple.el lisp/skeleton.el lisp/sort.el lisp/soundex.el lisp/speedbar.el lisp/startup.el lisp/strokes.el lisp/subr.el lisp/tabify.el lisp/talk.el lisp/tar-mode.el lisp/tempo.el lisp/term.el lisp/terminal.el lisp/textmodes/org.el lisp/textmodes/sgml-mode.el lisp/thingatpt.el lisp/time-stamp.el lisp/timezone.el lisp/tmm.el lisp/type-break.el lisp/userlock.el lisp/vc-hooks.el lisp/vcursor.el lisp/vms-patch.el lisp/vmsproc.el lisp/vt-control.el lisp/vt100-led.el lisp/whitespace.el lisp/wid-browse.el lisp/widget.el lisp/windmove.el lisp/woman.el lispintro/ChangeLog lispintro/Makefile.in lispintro/emacs-lisp-intro.texi lispref/ChangeLog lispref/commands.texi lispref/customize.texi lispref/frames.texi lispref/modes.texi lispref/searching.texi mac/ChangeLog mac/INSTALL mac/inc/config.h make-dist man/ChangeLog man/ack.texi man/anti.texi man/building.texi man/emacs.texi man/faq.texi man/misc.texi man/msdog.texi man/mule.texi man/texinfo.tex man/text.texi msdos/ChangeLog msdos/sed1v2.inp msdos/sed2v2.inp src/ChangeLog src/Makefile.in src/abbrev.c src/buffer.c src/config.in src/emacs.c src/fileio.c src/fns.c src/gtkutil.c src/keyboard.c src/m/amdx86-64.h src/m/ibmrs6000.h src/m/pfa50.h src/msdos.c src/process.c src/regex.c src/s/aix4-2.h src/s/openbsd.h src/sound.c src/strftime.c src/syntax.c src/sysdep.c src/w16select.c src/w32fns.c src/w32term.c src/window.c src/xdisp.c src/xfaces.c src/xselect.c src/xterm.c update-subdirs
diffstat 290 files changed, 3693 insertions(+), 1996 deletions(-) [+]
line wrap: on
line diff
--- a/.cvsignore	Thu Dec 07 00:45:27 2006 +0000
+++ b/.cvsignore	Thu Dec 07 04:14:14 2006 +0000
@@ -10,5 +10,6 @@
 Makefile
 emacs*.tar.gz
 leim*.tar.gz
+lock
 *.xdelta
 autom4te.cache
--- a/AUTHORS	Thu Dec 07 00:45:27 2006 +0000
+++ b/AUTHORS	Thu Dec 07 04:14:14 2006 +0000
@@ -154,8 +154,6 @@
 
 Andy Petrusenco: changed w32term.c
 
-Anna Bigatti: changed cal-html.el
-
 Anna M. Bigatti: wrote cal-html.el
 
 Ari Roponen: changed atimer.c startup.el
--- a/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,28 @@
+2006-12-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* configure.in (HAVE_SYNC): New test.
+
+	* configure: Regenerate.
+
+2006-12-03  Glenn Morris  <rgm@gnu.org>
+
+	* Makefile.in: Fix Copyright format.
+
+	* configure.in (AH_TOP): Add missing Copyright year.
+
+	* update-subdirs: Add missing Copyright years.
+
+2006-11-27  Chris Moore  <christopher.ian.moore@gmail.com>  (tiny change)
+
+	* Makefile.in: Touch only the parts of the share/emacs directory
+	specific to this version.
+
+2006-11-26  Chong Yidong  <cyd@stupidchicken.com>
+
+	* configure.in (HAVE_X86_64_LIB64_DIR): New test.
+
+	* configure: Regenerate.
+
 2006-11-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* configure.in (HAVE_CANCELMENUTRACKING): Remove test.
@@ -356,7 +381,7 @@
 
 	Update FSF's address in GPL notices.
 
-2005-06-19  J,bi(Br,bt(Bme Marant  <jerome@marant.org>
+2005-06-19  J,Ai(Br,At(Bme Marant  <jerome@marant.org>
 
 	* Makefile.in (epaths-force): Protect both lisppath and
 	buildlisppath from whitespace.
@@ -445,7 +470,7 @@
 	* Makefile.in (install-arch-indep, uninstall): Add url and org
 	manuals.
 
-2004-12-07  Stefan  <monnier@iro.umontreal.ca>
+2004-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* configure.in (INLINE, RE_TRANSLATE_P): Move patches mistakenly
 	committed to src/config.in.
@@ -515,7 +540,7 @@
 	* configure.in (HAVE_RANDOM_HEAPSTART): Change AC_MSG_ERROR to
 	AC_MSG_WARN.  Move output of warning message to end of configure run.
 
-2004-10-05  Jan Dj,Ad(Brv.  <jan.h.d@swipnet.se>
+2004-10-05  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* configure.in (HAVE_RANDOM_HEAPSTART): Rename HAVE_EXECSHIELD.
 	Run test to see if heap start address is random.
@@ -637,7 +662,7 @@
 
 	* configure.in <darwin>: Use fink packages if available.
 
-2004-01-25  Jerome Marant  <jmarant@free.fr>  (tiny change)
+2004-01-25  J,Ai(Br,At(Bme Marant  <jmarant@free.fr>  (tiny change)
 
 	* make-dist (lispref): Do include lispref/index.texi.
 
@@ -946,7 +971,7 @@
 
 	* configure.in (*-sunos5*, *-solaris*): Use sol2-8.
 
-2002-11-14  Francesco Potorti`  <pot@gnu.org>
+2002-11-14  Francesco Potort,Al(B  <pot@gnu.org>
 
 	* configure.in (*-sunos5.8*, *-solaris2.8*): New configurations.
 
@@ -1200,7 +1225,7 @@
 
 	These changes make Leim part of the standard distribution:
 
-	* README: Add info about the `leim' directory
+	* README: Add info about the `leim' directory.
 
 	* INSTALL: Remove text that describes Leim as a separate package.
 
@@ -1768,8 +1793,7 @@
 2000-08-24  Gerd Moellmann  <gerd@gnu.org>
 
 	* configure.in <making srcdir absolute>: Unset CDPATH in case $PWD
-	contains a relative path.  Protect against unusable values of
-	$PWD.
+	contains a relative path.  Protect against unusable values of $PWD.
 
 2000-08-08  Eli Zaretskii  <eliz@is.elta.co.il>
 
@@ -1780,8 +1804,7 @@
 
 2000-08-07  Gerd Moellmann  <gerd@gnu.org>
 
-	* Makefile.in (config.status): Prepend `$(srcdir)/' to
-	`configure'.
+	* Makefile.in (config.status): Prepend `$(srcdir)/' to `configure'.
 
 2000-08-03  Gerd Moellmann  <gerd@gnu.org>
 
@@ -2147,7 +2170,7 @@
 
 1999-08-18  Dave Love  <fx@gnu.org>
 
-	* configure.in: : Check for termcap.h.
+	* configure.in: Check for termcap.h.
 
 1999-08-15  Gerd Moellmann  <gerd@gnu.org>
 
@@ -2260,8 +2283,8 @@
 
 1998-12-04  Andreas Schwab  <schwab@delysid.gnu.org>
 
-	* Makefile.in: Don't install customize info file.  Run
-	install-info on viper info file.
+	* Makefile.in: Don't install customize info file.
+	Run install-info on viper info file.
 
 1998-11-29  Richard Stallman  <rms@psilocin.ai.mit.edu>
 
@@ -2481,7 +2504,7 @@
 
 1997-09-30  Karl Eichwalder  <ke@suse.de>
 
-	* Makefile.in (install-arch-indep): install the widget info file.
+	* Makefile.in (install-arch-indep): Install the widget info file.
 
 1997-09-24  Jonathan I. Kamens  <jik@kamens.brookline.ma.us>
 
@@ -2493,8 +2516,7 @@
 
 1997-09-21  Erik Naggum  <erik@naggum.no>
 
-	* make-dist (making links to `src'): Keep timestamp on copied
-	files.
+	* make-dist (making links to `src'): Keep timestamp on copied files.
 
 	* make-delta: New script to produce delta distributions.
 
@@ -2655,7 +2677,7 @@
 	* make-dist (etc): Really avoid symlinks now.
 	(lisp): Don't delete from subdirs the things we never copy.
 
-1997-07-07  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
+1997-07-07  Kenichi Handa  <handa@psilocin.gnu.ai.mit.edu>
 
 	* Makefile.in (install-arch-indep): Correct the target name.
 	The first letter `i' was dropped by the previous change of mine.
@@ -2680,12 +2702,12 @@
 
 	* Makefile.in (install-leim): Correct previous change.
 
-1997-07-02  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
+1997-07-02  Kenichi Handa  <handa@psilocin.gnu.ai.mit.edu>
 
 	* Makefile.in (install-leim): New target.
 	(install): Depend on install-leim.
 
-1997-07-01  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
+1997-07-01  Kenichi Handa  <handa@psilocin.gnu.ai.mit.edu>
 
 	* Makefile.in (SUBDIR): Add leim.
 	(SUBDIR_MAKEFILES): Add leim/Makefile.
@@ -2721,16 +2743,14 @@
 
 1997-06-22  Dave Love  <d.love@dl.ac.uk>
 
-	* Makefile.in (lib-src): Depend on src/config.h (e.g. for
-	movemail.o).
-	(src/config.h): New target to re-configure if src/config.in
-	is patched.
+	* Makefile.in (lib-src): Depend on src/config.h (e.g. for movemail.o).
+	(src/config.h): New target to re-configure if src/config.in is patched.
 
 1997-06-18  Richard Stallman  <rms@psilocin.gnu.ai.mit.edu>
 
 	* configure.in (shutdown): Check for `shutdown' function.
 
-1997-06-18  Ken'ichi Handa  <handa@psilocin.gnu.ai.mit.edu>
+1997-06-18  Kenichi Handa  <handa@psilocin.gnu.ai.mit.edu>
 
 	* update-subdirs: Include the directory "language" in subdirs.
 
@@ -2767,15 +2787,14 @@
 1997-04-09  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
 
 	* configure.in (doug_lea_malloc):  First check for SYSTEM_MALLOC,
-	in case it is desirable to disable the GNU malloc features with
-	glibc.
+	in case it is desirable to disable the GNU malloc features with glibc.
 
 1997-04-08  Marcus G. Daniels  <marcus@cathcart.sysc.pdx.edu>
 
 	* configure.in (DOUG_LEA_MALLOC):
 	Define if malloc_{get,set}_state exist.
 
-1997-03-05  Ken'ichi Handa  <handa@etl.go.jp>
+1997-03-05  Kenichi Handa  <handa@etl.go.jp>
 
 	* make-dist: Make links for files under lisp/language.
 
@@ -2967,7 +2986,7 @@
 
 1996-07-11  Bill Mann  <dvmann@dvncr.praxisint.com>
 
-	* configure.in: Use s/usg5-4-3.h for ncr-i[3456]86-sysv4.3
+	* configure.in: Use s/usg5-4-3.h for ncr-i[3456]86-sysv4.3.
 
 1996-07-07  Karl Heuer  <kwzh@gnu.ai.mit.edu>
 
@@ -3490,8 +3509,8 @@
 
 1995-06-22  Paul Eggert  <eggert@twinsun.com>
 
-	* configure.in: Treat SunOS 4.1.4 like SunOS 4.1.3.
-	(Likewise for SunOS 4.1.5 thorugh 4.1.9, should they ever exist.)
+	* configure.in: Treat SunOS 4.1.4 like SunOS 4.1.3.  (Likewise for
+	SunOS 4.1.5 thorugh 4.1.9, should they ever exist.)
 
 1995-06-22  Paul Eggert  <eggert@twinsun.com>
 
@@ -3563,7 +3582,7 @@
 
 1995-05-22  enami tsugutomo  <enami@sys.ptg.sony.co.jp>
 
-	* configure.in: pass arg to sqrt.
+	* configure.in: Pass arg to sqrt.
 
 1995-05-18  Karl Heuer  <kwzh@hal.gnu.ai.mit.edu>
 
@@ -3575,8 +3594,7 @@
 
 1995-05-09  David J. MacKenzie  <djm@geech.gnu.ai.mit.edu>
 
-	* configure.in: Use sqrt (more portable) instead of fmod in -lm
-	check.
+	* configure.in: Use sqrt (more portable) instead of fmod in -lm check.
 
 1995-05-09  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 
@@ -3593,9 +3611,9 @@
 
 1995-05-06  David J. MacKenzie  <djm@geech.gnu.ai.mit.edu>
 
-	* configure.in: Make sure CDPATH doesn't mess up PWD check.  Check
-	whether X bitmaps are in X11/bitmaps instead of bitmaps.  Use fmod
-	instead of logb in -lm check.
+	* configure.in: Make sure CDPATH doesn't mess up PWD check.
+	Check whether X bitmaps are in X11/bitmaps instead of bitmaps.
+	Use fmod instead of logb in -lm check.
 
 1995-05-03  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 
@@ -3615,7 +3633,7 @@
 	* configure.in (*-sun-sunos4.1.3*): Use shared libraries,
 	since that's what the header file expects.
 
-1995-04-24  Francesco Potorti`  (pot@cnuce.cnr.it)
+1995-04-24  Francesco Potort,Al(B  (pot@cnuce.cnr.it)
 
 	* configure.in (m68k-motorola-sysv*): Distinguish between 68030
 	and 68040 based machines when choosing options for gnucc.
@@ -3644,7 +3662,7 @@
 1995-04-06  Simon Leinen  <simon@lia.di.epfl.ch>
 
 	* Makefile.in (install-arch-indep, dist):
-	look for `update-subdir' in $(srcdir).
+	Look for `update-subdir' in $(srcdir).
 
 1995-04-06  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
 
@@ -3680,8 +3698,8 @@
 
 1995-02-02  David J. MacKenzie  <djm@geech.gnu.ai.mit.edu>
 
-	* configure.in: Create a .gdbinit that sources the real one, if
-	using a different build directory.
+	* configure.in: Create a .gdbinit that sources the real one,
+	if using a different build directory.
 
 1995-01-23  Karl Heuer  <kwzh@hal.gnu.ai.mit.edu>
 
@@ -6396,8 +6414,8 @@
 ;; add-log-time-zone-rule: t
 ;; End:
 
-    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2006
-	Free Software Foundation, Inc.
+    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
+	2003, 2004, 2005, 2006  Free Software Foundation, Inc.
   Copying and distribution of this file, with or without modification,
   are permitted provided the copyright notice and this notice are preserved.
 
--- a/INSTALL	Thu Dec 07 00:45:27 2006 +0000
+++ b/INSTALL	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 GNU Emacs Installation Guide
-Copyright (c) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2006 
-Free software Foundation, Inc.
+Copyright (c) 1992, 1994, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
+2005, 2006  Free Software Foundation, Inc.
 See the end of the file for copying permissions.
 
 
--- a/Makefile.in	Thu Dec 07 00:45:27 2006 +0000
+++ b/Makefile.in	Thu Dec 07 04:14:14 2006 +0000
@@ -2,8 +2,8 @@
 # DIST: make most of the changes to this file you might want, so try
 # DIST: that first.
 
-# Copyright (C) 1992,93,94,95,96,97,98,1999,2000,01,02,03,04,2005,2006
-#   Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+#   2001, 2002, 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 # This file is part of GNU Emacs.
 
@@ -518,7 +518,7 @@
 	     ${INSTALL_INFO} --info-dir=$(DESTDIR)${infodir} $(DESTDIR)${infodir}/$$elt); \
 	  done; \
 	else true; fi
-	-chmod -R a+r $(DESTDIR)${datadir}/emacs ${COPYDESTS} $(DESTDIR)${infodir}
+	-chmod -R a+r $(DESTDIR)${datadir}/emacs/${version} $(DESTDIR)${datadir}/emacs/site-lisp ${COPYDESTS} $(DESTDIR)${infodir}
 	thisdir=`/bin/pwd`; \
 	cd ${srcdir}/etc; \
 	for page in emacs emacsclient etags ctags ; do \
--- a/README	Thu Dec 07 00:45:27 2006 +0000
+++ b/README	Thu Dec 07 04:14:14 2006 +0000
@@ -1,28 +1,29 @@
 This directory tree holds version 22.0.91 of GNU Emacs, the extensible,
 customizable, self-documenting real-time display editor.
 
-You may encounter bugs in this release.  If you do, please report
-them; your bug reports are valuable contributions to the FSF, since
-they allow us to notice and fix problems on machines we don't have, or
-in code we don't use often.  See the file BUGS for more information on
-how to report bugs.
+The file INSTALL in this directory says how to build and install GNU
+Emacs on various systems, once you have unpacked or checked out the
+entire Emacs file tree.
 
 See the file etc/NEWS for information on new features and other
 user-visible changes in recent versions of Emacs.
 
-The file INSTALL in this directory says how to bring up GNU Emacs on
-various systems, once you have loaded the entire subtree of this
-directory.
-
 The file etc/PROBLEMS contains information on many common problems that
 occur in building, installing and running Emacs.
 
-Reports of bugs in Emacs should be sent to the mailing list
-bug-gnu-emacs@gnu.org.  See the "Bugs" section of the Emacs
-manual for more information on how to report bugs.  (The file `BUGS'
-in this directory explains how you can find and read that section
-using the Info files that come with Emacs.)  See `etc/MAILINGLISTS'
-for more information on mailing lists relating to GNU packages.
+You may encounter bugs in this release.  If you do, please report
+them; your bug reports are valuable contributions to the FSF, since
+they allow us to notice and fix problems on machines we don't have, or
+in code we don't use often.  Please send bug reports for released
+versions of Emacs sent to the mailing list bug-gnu-emacs@gnu.org.
+Please send bug reports for pretest versions of Emacs, and versions
+from the Savannah.gnu.org repository, to emacs-pretest-bugs@gnu.org.
+
+See the "Bugs" section of the Emacs manual for more information on how
+to report bugs.  (The file `BUGS' in this directory explains how you
+can find and read that section using the Info files that come with
+Emacs.)  See `etc/MAILINGLISTS' for more information on mailing lists
+relating to GNU packages.
 
 The `etc' subdirectory contains several other files, named in capital
 letters, which you might consider looking at when installing GNU
@@ -86,20 +87,3 @@
 that aren't part of the standard distribution of the OS.  The
 platform-specific README files and installation instructions should
 list the required tools.
-
-VMS info:
-
-Emacs 19.x and above do not compile out of the box on OpenVMS.
-Richard Levitte <levitte@lp.se> is distributing and maintaining a
-version of Emacs (currently based on version 19.28, but soon moving to
-19.34 and then 20.1) that compiles and works on OpenVMS 5.5 and above
-on both VAX and Alpha architectures.  For more information see
-
-  http://www.lp.se/gnu-vms/software/released1/emacs.html
-
-There is also some effort going on with Emacs 21.  Source code is
-available at ftp://ftp.nvg.ntnu.no/pub/vms/emacs/.  Look for most
-recent stuff with ls -lta.
-
-It is a working "development" version (editing and much more works).
-More developers are needed; contact roart@nvg.ntnu.no.
--- a/admin/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/admin/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,8 @@
+2006-11-25  Juanma Barranquero  <lekktu@gmail.com>
+
+	* admin.el (set-version): Set version number in
+	lib-src/makefile.w32-in.
+
 2006-11-06  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* FOR-RELEASE (BUGS): Remove "Build failure under Suse 10.0" was
@@ -395,7 +400,8 @@
 ;; add-log-time-zone-rule: t
 ;; End:
 
-    Copyright (C) 2001 Free Software Foundation, Inc.
+    Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+	Foundation, Inc.
   Copying and distribution of this file, with or without modification,
   are permitted provided the copyright notice and this notice are preserved.
 
--- a/admin/FOR-RELEASE	Thu Dec 07 00:45:27 2006 +0000
+++ b/admin/FOR-RELEASE	Thu Dec 07 04:14:14 2006 +0000
@@ -43,11 +43,21 @@
 
 * BUGS
 
+** make-network-process :nowait t doesn't work for non-local targets
+   on Windows.
+   If it cannot be fixed, (featurep 'make-network-process '(:nowait t))
+   should return nil.
+
 ** Document use of gpg-agent
 
-** seltenreich@gmx.de, Nov 19: Failed assertion on make-frame-on-display
+** monnier@iro.umontreal.ca, Nov 24:
+  gnus-summary-tick-article-forward doesn't work any more?
 
-** jbuehler@spirentcom.com, Nov 20: AIX 5.2 loadup failure
+** christopher.ian.moore@gmail.com, Nov 30: too much recursion in gnus-sort-threads-1.
+
+** dooglus@gmail.com, Dec 1: Replacement of spaces in wdired
+
+** Should CC mode set beginning-of-defun-function?
 
 * DOCUMENTATION
 
--- a/admin/admin.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/admin/admin.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,7 @@
 ;;; admin.el --- utilities for Emacs administration
 
-;; Copyright (C) 2001, 2005 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
 
@@ -88,6 +89,9 @@
   (set-version-in-file root "lispref/elisp.texi" version
 		       (rx (and "EMACSVER" (1+ space)
 				(submatch (1+ (in "0-9."))))))
+  (set-version-in-file root "lib-src/makefile.w32-in" version
+		       (rx (and "VERSION" (0+ space) "=" (0+ space)
+				(submatch (1+ (in "0-9."))))))
   ;; nt/emacs.rc also contains the version number, but in an awkward
   ;; format. It must contain four components, separated by commas, and
   ;; in two places those commas are followed by space, in two other
--- a/admin/alloc-colors.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/admin/alloc-colors.c	Thu Dec 07 04:14:14 2006 +0000
@@ -1,5 +1,6 @@
 /* Allocate X colors.  Used for testing with dense colormaps.
-   Copyright (C) 2001, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+     Foundation, Inc.
 
 This file is part of GNU Emacs.
 
--- a/admin/build-configs	Thu Dec 07 00:45:27 2006 +0000
+++ b/admin/build-configs	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,7 @@
 #! /usr/bin/perl
 
-# Copyright (C) 2001, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+#   Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
--- a/admin/cus-test.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/admin/cus-test.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,7 @@
 ;;; cus-test.el --- tests for custom types and load problems
 
-;; Copyright (C) 1998, 2000, 2002, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 2000, 2002, 2003, 2004, 2005, 2006  Free
+;;   Software Foundation, Inc.
 
 ;; Author: Markus Rost <markus.rost@mathematik.uni-regensburg.de>
 ;; Maintainer: Markus Rost <rost@math.ohio-state.edu>
--- a/admin/diff-tar-files	Thu Dec 07 00:45:27 2006 +0000
+++ b/admin/diff-tar-files	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,7 @@
 #! /bin/sh
 
-# Copyright (C) 2001, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+#   Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
--- a/admin/make-emacs	Thu Dec 07 00:45:27 2006 +0000
+++ b/admin/make-emacs	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,7 @@
 #! /usr/bin/perl
 
-# Copyright (C) 2001, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+#   Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
--- a/admin/revdiff	Thu Dec 07 00:45:27 2006 +0000
+++ b/admin/revdiff	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,7 @@
 #! /usr/bin/perl
 
-# Copyright (C) 2001, 2006 Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+#   Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
--- a/config.bat	Thu Dec 07 00:45:27 2006 +0000
+++ b/config.bat	Thu Dec 07 04:14:14 2006 +0000
@@ -1,8 +1,8 @@
 @echo off
 rem   ----------------------------------------------------------------------
 rem   Configuration script for MSDOS
-rem   Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2004, 2006
-rem   Free Software Foundation, Inc.
+rem   Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003
+rem   2004, 2005, 2006  Free Software Foundation, Inc.
 
 rem   This file is part of GNU Emacs.
 
--- a/configure	Thu Dec 07 00:45:27 2006 +0000
+++ b/configure	Thu Dec 07 04:14:14 2006 +0000
@@ -5193,6 +5193,19 @@
 
 
 
+### The standard library on x86-64 GNU/Linux distributions can
+### be located in either /usr/lib64 or /usr/lib.
+case "${canonical}" in
+  x86_64-*-linux-gnu* )
+    if test -d /usr/lib64; then
+
+cat >>confdefs.h <<\_ACEOF
+#define HAVE_X86_64_LIB64_DIR 1
+_ACEOF
+
+fi
+esac
+
 
 
 
@@ -15097,6 +15110,7 @@
 
 
 
+
 for ac_func in gethostname getdomainname dup2 \
 rename closedir mkdir rmdir sysinfo getrusage get_current_dir_name \
 random lrand48 bcopy bcmp logb frexp fmod rint cbrt ftime res_init setsid \
@@ -15104,7 +15118,7 @@
 utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \
 __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
 sendto recvfrom getsockopt setsockopt getsockname getpeername \
-gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \
+gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \
 memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign
 do
 as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
--- a/configure.in	Thu Dec 07 00:45:27 2006 +0000
+++ b/configure.in	Thu Dec 07 04:14:14 2006 +0000
@@ -1494,6 +1494,16 @@
 AC_SYS_LARGEFILE
 
 
+### The standard library on x86-64 GNU/Linux distributions can 
+### be located in either /usr/lib64 or /usr/lib.
+case "${canonical}" in
+  x86_64-*-linux-gnu* )
+    if test -d /usr/lib64; then
+      AC_DEFINE(HAVE_X86_64_LIB64_DIR, 1,
+        [Define to 1 if the file /usr/lib64 exists.])
+fi
+esac
+
 dnl This function defintion taken from Gnome 2.0
 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
@@ -2572,7 +2582,7 @@
 utimes setrlimit setpgid getcwd getwd shutdown getaddrinfo \
 __fpending mblen mbrlen mbsinit strsignal setitimer ualarm index rindex \
 sendto recvfrom getsockopt setsockopt getsockname getpeername \
-gai_strerror mkstemp getline getdelim mremap memmove fsync bzero \
+gai_strerror mkstemp getline getdelim mremap memmove fsync sync bzero \
 memset memcmp difftime memcpy mempcpy mblen mbrlen posix_memalign)
 
 AC_CHECK_HEADERS(sys/un.h)
@@ -2957,7 +2967,7 @@
 fi
 
 AH_TOP([/* GNU Emacs site configuration template file.
-   Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004, 2005, 2006
+   Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005, 2006
              Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
--- a/etc/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/etc/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,23 @@
+2006-12-05  Micha,Ak(Bl Cadilhac  <michael.cadilhac@lrde.org>
+
+	* NEWS (Changes to cmuscheme): Mention the alternative for
+	`~/.emacs_SCHEMEPROG' which is `~/.emacs.d/init_SCHEMEPROG.scm'.
+	(Init file changes): Same for `~/.emacs_SHELL' versus
+	`~/.emacs.d/init_SHELL.sh'.
+
+2006-12-01  Juanma Barranquero  <lekktu@gmail.com>
+
+	* DEVEL.HUMOR: Another entry.
+
+2006-08-14  Masatake YAMATO  <jet@gyve.org>
+
+	* etags.1: Added / to the end of DEVAR regex.
+
+2006-11-22  Juanma Barranquero  <lekktu@gmail.com>
+
+	* emacsclient.1 (DESCRIPTION): Suggest also `server-mode'.
+	(OPTIONS): Document `-f', `--server-file' and EMACS_SERVER_FILE.
+
 2006-11-20  Michael Olson  <mwolson@gnu.org>
 
 	* NEWS: Change M-x erc-select to M-x erc.
--- a/etc/DEVEL.HUMOR	Thu Dec 07 00:45:27 2006 +0000
+++ b/etc/DEVEL.HUMOR	Thu Dec 07 04:14:14 2006 +0000
@@ -157,3 +157,14 @@
 serious effort', reminiscent of mathematicians' use of 'trivial' as
 synonymous with 'provable with serious effort'?"
                                               -- RMS and David Kastrup
+
+----------------------------------------------------------------------
+
+Re: New Emacs Icon and Tango
+
+  "What about using the 'happy face' with gnu horns?"
+  "It would make Emacs the object of ridicule until the end of time."
+  "Isn't it already?"
+  "It's the object of ridicule until the end of _tape_.  The jury is
+still out about that end of time thing."
+                 -- Kim F. Storm, Miles Bader, RMS and David Kastrup
--- a/etc/NEWS	Thu Dec 07 00:45:27 2006 +0000
+++ b/etc/NEWS	Thu Dec 07 04:14:14 2006 +0000
@@ -310,8 +310,8 @@
 +++
 ** Init file changes
 If the init file ~/.emacs does not exist, Emacs will try
-~/.emacs.d/init.el or ~/.emacs.d/init.elc.  You can also put the shell
-init file .emacs_SHELL under ~/.emacs.d.
+~/.emacs.d/init.el or ~/.emacs.d/init.elc.  Likewise, if the shell init file
+~/.emacs_SHELL is not found, Emacs will try ~/.emacs.d/init_SHELL.sh.
 
 +++
 ** Emacs now reads the standard abbrevs file ~/.abbrev_defs
@@ -1109,6 +1109,21 @@
 jit-lock-context-time determines the delay after which contextual
 refontification takes place.
 
+---
+*** lazy-lock is considered obsolete.
+
+The `lazy-lock' package is superseded by `jit-lock' and is considered
+obsolete.  `jit-lock' is activated by default; if you wish to continue
+using `lazy-lock', activate it in your ~/.emacs like this:
+
+  (setq font-lock-support-mode 'lazy-lock-mode)
+
+If you invoke `lazy-lock-mode' directly rather than through
+`font-lock-support-mode', it now issues a warning:
+
+  "Use font-lock-support-mode rather than calling lazy-lock-mode"
+
+
 ** Menu support:
 
 ---
@@ -1260,7 +1275,7 @@
 emulator) works.  Use `set-keyboard-coding-system' (or customize
 keyboard-coding-system) if you prefer META to work (the old default)
 or if the locale doesn't describe the character set actually generated
-by the keyboard.  See Info node `Single-Byte Character Support'.
+by the keyboard.  See Info node `Unibyte Mode'.
 
 +++
 *** The new command `revert-buffer-with-coding-system' (C-x RET r)
@@ -2222,9 +2237,9 @@
 *** Emacs now offers to start Scheme if the user tries to
 evaluate a Scheme expression but no Scheme subprocess is running.
 
-*** If a file `.emacs_NAME' (where NAME is the name of the Scheme interpreter)
-exists in the user's home directory or in ~/.emacs.d, its
-contents are sent to the Scheme subprocess upon startup.
+*** If the file ~/.emacs_NAME or ~/.emacs.d/init_NAME.scm (where NAME
+is the name of the Scheme interpreter) exists, its contents are sent
+to the Scheme subprocess upon startup.
 
 *** There are new commands to instruct the Scheme interpreter to trace
 procedure calls (`scheme-trace-procedure') and to expand syntactic forms
@@ -3873,8 +3888,9 @@
 ** The variable `memory-full' now remains t until
 there is no longer a shortage of memory.
 
++++
 ** When Emacs receives a USR1 or USR2 signal, this generates
-an input event: usr1-signal or usr2-signal.
+input event sequences: [signal usr1] or [signal usr2].
 
 * Lisp Changes in Emacs 22.1
 
--- a/etc/emacsclient.1	Thu Dec 07 00:45:27 2006 +0000
+++ b/etc/emacsclient.1	Thu Dec 07 04:14:14 2006 +0000
@@ -29,10 +29,10 @@
 
 For
 .B emacsclient
-to work, you need an already running Emacs with a server.  Within Emacs, call
-the function
-`server-start'.  (Your `.emacs' file can do this automatically if you
-add the expression `(server-start)' to it.)
+to work, you need an already running Emacs with a server.  Within Emacs,
+call the functions `server-start' or `server-mode'.  (Your `.emacs' file
+can do this automatically if you add either `(server-start)' or
+`(server-mode 1)' to it.)
 
 When you've finished editing the buffer, type `C-x #'
 (`server-edit').  This saves the file and sends a message back to the
@@ -57,7 +57,11 @@
 Lisp expressions.
 .TP
 .B \-s, \-\-socket-name=FILENAME
-Use socket named FILENAME for communication.
+use socket named FILENAME for communication.
+.TP
+.B \-f, \-\-server-file=FILENAME
+use TCP configuration file FILENAME for communication.
+This can also be specified via the `EMACS_SERVER_FILE' environment variable.
 .TP
 .B \-a, \-\-alternate-editor=EDITOR
 if the Emacs server is not running, run the specified editor instead.
--- a/etc/etags.1	Thu Dec 07 00:45:27 2006 +0000
+++ b/etc/etags.1	Thu Dec 07 04:14:14 2006 +0000
@@ -205,7 +205,7 @@
 
 Tag the DEFVAR macros in the emacs source files:
 .br
-\fI\-\-regex\='/[ \\t]*DEFVAR_[A-Z_ \\t(]+"\\([^"]+\\)"\/'\fP
+\fI\-\-regex\='/[ \\t]*DEFVAR_[A-Z_ \\t(]+"\\([^"]+\\)"/'\fP
 .\"" This comment is to avoid confusion to Emacs syntax highlighting
 .br
 
--- a/leim/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/leim/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,12 @@
+2006-12-05  Juanma Barranquero  <lekktu@gmail.com>
+
+	* makefile.w32-in (MISC): Add $(srcdir)/quail/sisheng.elc.
+
+2006-11-29  Juanma Barranquero  <lekktu@gmail.com>
+
+	* quail/greek.el ("greek-mizuochi"): Remove spurious initial newline
+	in docstring.
+
 2006-11-04  Romain Francoise  <romain@orebokech.com>
 
 	* Makefile.in (bootstrap-clean): New target.
@@ -98,19 +107,16 @@
 
 2005-06-04  Eli Zaretskii  <eliz@gnu.org>
 
-	* makefile.w32-in (distclean): Fix a typo (colon was after
-	"clean").
+	* makefile.w32-in (distclean): Fix a typo (colon was after "clean").
 	(extraclean): New target, emulates Makefile.in.
 
 2005-04-06  Kenichi Handa  <handa@m17n.org>
 
-	* quail/sgml-input.el ("sgml"): Enable quail-completion by typing
-	TAB.
+	* quail/sgml-input.el ("sgml"): Enable quail-completion by typing TAB.
 
 2005-03-26  Kenichi Handa  <handa@m17n.org>
 
-	* quail/latin-ltx.el ("TeX"): Enable quail-completion by typing
-	TAB.
+	* quail/latin-ltx.el ("TeX"): Enable quail-completion by typing TAB.
 
 2005-03-18  Kenichi Handa  <handa@m17n.org>
 
@@ -170,7 +176,7 @@
 
 2004-07-01  David Kastrup  <dak@gnu.org>
 
-	* quail/greek.el ("((") ("))"): add quotation mark shorthands.
+	* quail/greek.el ("((") ("))"): Add quotation mark shorthands.
 
 2004-06-30  Andreas Schwab  <schwab@suse.de>
 
@@ -221,7 +227,7 @@
 
 2004-05-01  Kenichi Handa  <handa@m17n.org>
 
-	* Makefile.in (OTHERS): Raname from MISC.
+	* Makefile.in (OTHERS): Rename from MISC.
 	(MISC): Rename from MISC-DIC.
 	(WORLD): Adjute for the above changes.
 	(TIT-MISC, NON-TIT-MISC): New targets.
--- a/leim/makefile.w32-in	Thu Dec 07 00:45:27 2006 +0000
+++ b/leim/makefile.w32-in	Thu Dec 07 04:14:14 2006 +0000
@@ -119,7 +119,8 @@
 	$(srcdir)/quail/ethiopic.elc \
 	$(srcdir)/quail/ipa.elc \
 	$(srcdir)/quail/hebrew.elc \
-	$(srcdir)/quail/georgian.elc
+	$(srcdir)/quail/georgian.elc \
+	$(srcdir)/quail/sisheng.elc
 
 MISC_DIC=\
 	quail/tsang-b5.elc	\
--- a/leim/quail/greek.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/leim/quail/greek.el	Thu Dec 07 04:14:14 2006 +0000
@@ -137,8 +137,8 @@
 
 ;;
 
-(quail-define-package "greek-mizuochi" "Greek" "CG" t "
-The Mizuochi input method for Classical Greek using mule-unicode-0100-24ff.
+(quail-define-package "greek-mizuochi" "Greek" "CG" t
+"The Mizuochi input method for Classical Greek using mule-unicode-0100-24ff.
 
 -------------------------------------
 character     capital	      small
--- a/lib-src/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/lib-src/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,78 @@
+2006-12-06  Christoph Conrad  <christoph.conrad@gmx.de>
+
+	* makefile.w32-in ($(BLD)/emacsclient.exe, $(BLD)/emacsclientw.exe):
+	Use $(USER32) for compatibility with Visual Studio .NET 2003.
+
+2006-11-30  Juanma Barranquero  <lekktu@gmail.com>
+
+	* emacsclient.c (emacs_pid): New variable.
+	(message): Remove leftover code.
+	(get_server_config): Set emacs_pid.  Don't allow Emacs to grab the
+	focus yet; emacsclient can still display an informational message
+	before sending requests to Emacs.
+	(main): Allow Emacs to grab the focus.  Simplify message() call.
+
+2006-11-30  Michael Mauger  <mmaug@yahoo.com>
+
+	* emacsclient.c (message): Make sure the message is properly
+	written even if it contains printf escapes, and flush the result.
+	(set_tcp_socket): Make the message for non-local connections
+	informational rather than an error.
+
+2006-11-28  Kevin Ryde <user42@zip.com.au>  (tiny change)
+
+	* etags.c (readline): Check for double quote after #line.
+
+2006-11-28  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>  (tiny change)
+
+	* etags.c (readline): sscanf could in principle return 2.
+
+2006-11-28  Francesco Potort,Al(B  <pot@gnu.org>
+
+	* etags.c (readline): lno is unsigned.
+	(TeX_commands): Use p++ (rather than *p++) to increment p.
+	(Lua_functions): Explicitly discard LOOKING_AT's return value.
+
+2006-11-27  Juanma Barranquero  <lekktu@gmail.com>
+
+	* makefile.w32-in (TRES): New macro (copied from nt/makefile.w32-in).
+	($(TRES)): New rule (copied from nt/makefile.w32-in).
+	($(BLD)/emacsclientw.exe): Add dependency.
+
+2006-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+	* makefile.w32-in ($(BLD)/emacsclient.$(O)): Depend on
+	makefile.w32-in.
+
+2006-11-25  Juanma Barranquero  <lekktu@gmail.com>
+
+	* makefile.w32-in (VERSION): New macro.
+	(ECLIENT_CFLAGS): Add -DVERSION.
+
+2006-11-25  Jason Rumney  <jasonr@gnu.org>
+
+	* emacsclient.c (file_name_absolute_p) [WINDOWSNT]: Use isalpha().
+
+2006-11-24  Michael Mauger  <mmaug@yahoo.com>
+
+	* emacsclient.c (file_name_absolute_p) [WINDOWSNT]: Support
+	absolute file names with forward slashes.
+
+2006-11-23  Juanma Barranquero  <lekktu@gmail.com>
+
+	* emacsclient.c (print_help_and_exit): Tweak message contents and
+	tabs/spaces to improve alignment in message boxes.
+
+2006-11-22  Lennart Borgman  <lennart.borgman.073@student.lu.se>
+
+	* emacsclient.c: Include <stdarg.h>.
+	[WINDOWSNT]: Include <windows.h>.
+	(w32_check_console_app): New function.
+	(message): New function.
+	(decode_options, print_help_and_exit, fail, main)
+	(initialize_sockets, get_server_config, set_tcp_socket)
+	(set_local_socket, set_socket): Use message().
+
 2006-11-13  Jason Rumney  <jasonr@gnu.org>
 
 	* emacsclient.c [WINDOWSNT]: Let config.h define HAVE_SOCKETS and
--- a/lib-src/emacsclient.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/lib-src/emacsclient.c	Thu Dec 07 04:14:14 2006 +0000
@@ -34,6 +34,7 @@
 
 # include <malloc.h>
 # include <stdlib.h>
+# include <windows.h>
 
 # define NO_SOCKETS_IN_FILE_SYSTEM
 
@@ -58,6 +59,7 @@
 
 #undef signal
 
+#include <stdarg.h>
 #include <ctype.h>
 #include <stdio.h>
 #include "getopt.h"
@@ -127,6 +129,9 @@
 /* If non-NULL, the filename of the authentication file.  */
 char *server_file = NULL;
 
+/* PID of the Emacs server process.  */
+int emacs_pid = 0;
+
 void print_help_and_exit () NO_RETURN;
 
 struct option longopts[] =
@@ -144,6 +149,53 @@
   { 0, 0, 0, 0 }
 };
 
+/* Message functions. */
+
+#ifdef WINDOWSNT
+/* I first tried to check for STDOUT.  The check did not work,
+   I get a valid handle also in nonconsole apps.
+   Instead I test for console title, which seems to work.  */
+int
+w32_window_app()
+{
+  static int window_app = -1;
+  char szTitle[MAX_PATH];
+
+  if (window_app < 0)
+    window_app = (GetConsoleTitleA (szTitle, MAX_PATH) == 0);
+
+  return window_app;
+}
+#endif
+
+void
+message (int is_error, char *message, ...)
+{
+  char msg [2048];
+  va_list args;
+
+  va_start (args, message);
+  vsprintf (msg, message, args);
+  va_end (args);
+
+#ifdef WINDOWSNT
+  if (w32_window_app ())
+    {
+      if (is_error)
+	MessageBox (NULL, msg, "Emacsclient ERROR", MB_ICONERROR);
+      else
+	MessageBox (NULL, msg, "Emacsclient", MB_ICONINFORMATION);
+    }
+  else
+#endif
+    {
+      FILE *f = is_error ? stderr : stdout;
+
+      fputs (msg, f);
+      fflush (f);
+    }
+}
+
 /* Decode the options from argv and argc.
    The global variable `optind' will say how many arguments we used up.  */
 
@@ -201,7 +253,7 @@
 	  break;
 
 	case 'V':
-	  printf ("emacsclient %s\n", VERSION);
+	  message (FALSE, "emacsclient %s\n", VERSION);
 	  exit (EXIT_SUCCESS);
 	  break;
 
@@ -210,7 +262,7 @@
 	  break;
 
 	default:
-	  fprintf (stderr, "Try `%s --help' for more information\n", progname);
+	  message (TRUE, "Try `%s --help' for more information\n", progname);
 	  exit (EXIT_FAILURE);
 	  break;
 	}
@@ -220,25 +272,26 @@
 void
 print_help_and_exit ()
 {
-  printf (
+  message (FALSE,
 	  "Usage: %s [OPTIONS] FILE...\n\
 Tell the Emacs server to visit the specified files.\n\
 Every FILE can be either just a FILENAME or [+LINE[:COLUMN]] FILENAME.\n\
 \n\
 The following OPTIONS are accepted:\n\
--V, --version           Just print a version info and return\n\
--H, --help              Print this usage information message\n\
--n, --no-wait           Don't wait for the server to return\n\
--e, --eval              Evaluate the FILE arguments as ELisp expressions\n\
--d, --display=DISPLAY   Visit the file in the given display\n"
+\n\
+-V, --version		Just print version info and return\n\
+-H, --help   		Print this usage information message\n\
+-e, --eval   		Evaluate FILE arguments as Lisp expressions\n\
+-n, --no-wait		Don't wait for the server to return\n\
+-d, --display=DISPLAY	Visit the file in the given display\n"
 #ifndef NO_SOCKETS_IN_FILE_SYSTEM
 "-s, --socket-name=FILENAME\n\
-                        Set the filename of the UNIX socket for communication\n"
+			Set filename of the UNIX socket for communication\n"
 #endif
 "-f, --server-file=FILENAME\n\
-			Set the filename of the TCP configuration file\n\
+			Set filename of the TCP authentication file\n\
 -a, --alternate-editor=EDITOR\n\
-                        Editor to fallback to if the server is not running\n\
+			Editor to fallback to if server is not running\n\
 \n\
 Report bugs to bug-gnu-emacs@gnu.org.\n", progname);
   exit (EXIT_SUCCESS);
@@ -261,7 +314,7 @@
       argv[i] = (char *)alternate_editor;
 #endif
       execvp (alternate_editor, argv + i);
-      fprintf (stderr, "%s: error executing alternate editor \"%s\"\n",
+      message (TRUE, "%s: error executing alternate editor \"%s\"\n",
                progname, alternate_editor);
     }
   exit (EXIT_FAILURE);
@@ -275,9 +328,8 @@
      int argc;
      char **argv;
 {
-  fprintf (stderr, "%s: Sorry, the Emacs server is supported only\n",
+  message (TRUE, "%s: Sorry, the Emacs server is supported only\non systems with Berkely sockets.\n",
 	   argv[0]);
-  fprintf (stderr, "on systems with Berkeley sockets.\n");
 
   fail (argc, argv);
 }
@@ -399,8 +451,8 @@
 
 #ifdef WINDOWSNT
   /* X:\xxx is always absolute; X:xxx is an error and will fail.  */
-  if (islower (tolower (filename[0]))
-      && filename[1] == ':' && filename[2] == '\\')
+  if (isalpha (filename[0])
+      && filename[1] == ':' && (filename[2] == '\\' || filename[2] == '/'))
     return TRUE;
 
   /* Both \xxx and \\xxx\yyy are absolute.  */
@@ -411,7 +463,7 @@
 }
 
 #ifdef WINDOWSNT
-/* Wrapper to make WSACleanup a cdecl, as required by atexit().	 */
+/* Wrapper to make WSACleanup a cdecl, as required by atexit().  */
 void
 __cdecl close_winsock ()
 {
@@ -426,7 +478,7 @@
 
   if (WSAStartup (MAKEWORD (2, 0), &wsaData))
     {
-      fprintf (stderr, "%s: error initializing WinSock2", progname);
+      message (TRUE, "%s: error initializing WinSock2", progname);
       exit (EXIT_FAILURE);
     }
 
@@ -482,7 +534,7 @@
     }
   else
     {
-      fprintf (stderr, "%s: invalid configuration info", progname);
+      message (TRUE, "%s: invalid configuration info", progname);
       exit (EXIT_FAILURE);
     }
 
@@ -492,35 +544,13 @@
 
   if (! fread (authentication, AUTH_KEY_LENGTH, 1, config))
     {
-      fprintf (stderr, "%s: cannot read authentication info", progname);
+      message (TRUE, "%s: cannot read authentication info", progname);
       exit (EXIT_FAILURE);
     }
 
   fclose (config);
 
-#ifdef WINDOWSNT
-  /*
-    Modern Windows restrict which processes can set the foreground window.
-    So, for emacsclient to be able to force Emacs into the foreground, we
-    have to call AllowSetForegroundWindow().  Unfortunately, older Windows
-    (W95, W98 and NT) don't have this function, so we have to check first.
-
-    We're doing this here because it has to be done before sending info
-    to Emacs, and otherwise we'll need a global variable just to pass around
-    the pid, which is also inelegant.
-   */
-  {
-    HMODULE hUser32;
-
-    if (hUser32 = LoadLibrary ("user32.dll"))
-      {
-        FARPROC set_fg;
-        if (set_fg = GetProcAddress (hUser32, "AllowSetForegroundWindow"))
-          set_fg (atoi (pid));
-        FreeLibrary (hUser32);
-      }
-  }
-#endif
+  emacs_pid = atoi (pid);
 
   return TRUE;
 }
@@ -537,7 +567,7 @@
     return INVALID_SOCKET;
 
   if (server.sin_addr.s_addr != inet_addr ("127.0.0.1"))
-    fprintf (stderr, "%s: connected to remote socket at %s\n",
+    message (FALSE, "%s: connected to remote socket at %s\n",
              progname, inet_ntoa (server.sin_addr));
 
   /*
@@ -545,8 +575,7 @@
    */
   if ((s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
     {
-      fprintf (stderr, "%s: ", progname);
-      perror ("socket");
+      message (TRUE, "%s: socket: %s\n", progname, strerror (errno));
       return INVALID_SOCKET;
     }
 
@@ -555,8 +584,7 @@
    */
   if (connect (s, (struct sockaddr *) &server, sizeof server) < 0)
     {
-      fprintf (stderr, "%s: ", progname);
-      perror ("connect");
+      message (TRUE, "%s: connect: %s\n", progname, strerror (errno));
       return INVALID_SOCKET;
     }
 
@@ -608,8 +636,7 @@
 
   if ((s = socket (AF_UNIX, SOCK_STREAM, 0)) < 0)
     {
-      fprintf (stderr, "%s: ", progname);
-      perror ("socket");
+      message (TRUE, "%s: socket: %s\n", progname, strerror (errno));
       return INVALID_SOCKET;
     }
 
@@ -639,7 +666,7 @@
       strcpy (server.sun_path, socket_name);
     else
       {
-	fprintf (stderr, "%s: socket-name %s too long",
+	message (TRUE, "%s: socket-name %s too long",
 		 progname, socket_name);
 	exit (EXIT_FAILURE);
       }
@@ -674,7 +701,7 @@
 		  strcpy (server.sun_path, socket_name);
 		else
 		  {
-		    fprintf (stderr, "%s: socket-name %s too long",
+		    message (TRUE, "%s: socket-name %s too long",
 			     progname, socket_name);
 		    exit (EXIT_FAILURE);
 		  }
@@ -694,7 +721,7 @@
            we are root. */
         if (0 != geteuid ())
           {
-            fprintf (stderr, "%s: Invalid socket owner\n", progname);
+            message (TRUE, "%s: Invalid socket owner\n", progname);
 	    return INVALID_SOCKET;
           }
         break;
@@ -702,12 +729,12 @@
       case 2:
         /* `stat' failed */
         if (saved_errno == ENOENT)
-          fprintf (stderr,
+          message (TRUE,
                    "%s: can't find socket; have you started the server?\n\
 To start the server in Emacs, type \"M-x server-start\".\n",
 		   progname);
         else
-          fprintf (stderr, "%s: can't stat %s: %s\n",
+          message (TRUE, "%s: can't stat %s: %s\n",
 		   progname, server.sun_path, strerror (saved_errno));
         return INVALID_SOCKET;
       }
@@ -716,8 +743,7 @@
   if (connect (s, (struct sockaddr *) &server, strlen (server.sun_path) + 2)
       < 0)
     {
-      fprintf (stderr, "%s: ", progname);
-      perror ("connect");
+      message (TRUE, "%s: connect: %s\n", progname, strerror (errno));
       return INVALID_SOCKET;
     }
 
@@ -740,7 +766,7 @@
       if ((s != INVALID_SOCKET) || alternate_editor)
         return s;
 
-      fprintf (stderr, "%s: error accessing socket \"%s\"",
+      message (TRUE, "%s: error accessing socket \"%s\"",
                progname, socket_name);
       exit (EXIT_FAILURE);
     }
@@ -756,7 +782,7 @@
       if ((s != INVALID_SOCKET) || alternate_editor)
         return s;
 
-      fprintf (stderr, "%s: error accessing server file \"%s\"",
+      message (TRUE, "%s: error accessing server file \"%s\"",
                progname, server_file);
       exit (EXIT_FAILURE);
     }
@@ -775,7 +801,7 @@
     return s;
 
   /* No implicit or explicit socket, and no alternate editor.  */
-  fprintf (stderr, "%s: No socket or alternate editor.  Please use:\n\n"
+  message (TRUE, "%s: No socket or alternate editor.  Please use:\n\n"
 #ifndef NO_SOCKETS_IN_FILE_SYSTEM
 "\t--socket-name\n"
 #endif
@@ -802,8 +828,8 @@
 
   if ((argc - optind < 1) && !eval)
     {
-      fprintf (stderr, "%s: file name or argument required\n", progname);
-      fprintf (stderr, "Try `%s --help' for more information\n", progname);
+      message (TRUE, "%s: file name or argument required\nTry `%s --help' for more information\n",
+              progname, progname);
       exit (EXIT_FAILURE);
     }
 
@@ -818,15 +844,37 @@
   if (cwd == 0)
     {
       /* getwd puts message in STRING if it fails.  */
+      message (TRUE, "%s: %s (%s)\n", progname,
 #ifdef HAVE_GETCWD
-      fprintf (stderr, "%s: %s (%s)\n", progname,
-	       "Cannot get current working directory", strerror (errno));
+	       "Cannot get current working directory",
 #else
-      fprintf (stderr, "%s: %s (%s)\n", progname, string, strerror (errno));
+	       string,
 #endif
+	       strerror (errno));
       fail (argc, argv);
     }
 
+#ifdef WINDOWSNT
+  /*
+    Modern Windows restrict which processes can set the foreground window.
+    emacsclient can allow Emacs to grab the focus by calling the function
+    AllowSetForegroundWindow().  Unfortunately, older Windows (W95, W98
+    and NT) lack this function, so we have to check its availability.
+   */
+  if (emacs_pid)
+    {
+      HMODULE hUser32;
+
+      if (hUser32 = LoadLibrary ("user32.dll"))
+	{
+	  FARPROC set_fg;
+	  if (set_fg = GetProcAddress (hUser32, "AllowSetForegroundWindow"))
+	    set_fg (emacs_pid);
+	  FreeLibrary (hUser32);
+	}
+    }
+#endif
+
   if (nowait)
     SEND_STRING ("-nowait ");
 
--- a/lib-src/etags.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/lib-src/etags.c	Thu Dec 07 04:14:14 2006 +0000
@@ -41,7 +41,7 @@
  * configuration file containing regexp definitions for etags.
  */
 
-char pot_etags_version[] = "@(#) pot revision number is 17.20";
+char pot_etags_version[] = "@(#) pot revision number is $Revision: 3.61 $";
 
 #define	TRUE	1
 #define	FALSE	0
@@ -4955,7 +4955,7 @@
       if (bp[0] != 'f' && bp[0] != 'l')
 	continue;
 
-      LOOKING_AT (bp, "local");	/* skip possible "local" */
+      (void)LOOKING_AT (bp, "local"); /* skip possible "local" */
 
       if (LOOKING_AT (bp, "function"))
 	get_tag (bp, NULL);
@@ -5137,7 +5137,7 @@
 		if (!opgrp || *p == TEX_clgrp)
 		  {
 		    while (*p != '\0' && *p != TEX_opgrp && *p != TEX_clgrp)
-		      *p++;
+		      p++;
 		    linelen = p - lb.buffer + 1;
 		  }
 		make_tag (cp, namelen, TRUE,
@@ -6256,15 +6256,14 @@
       /* Check whether this is a #line directive. */
       if (result > 12 && strneq (lbp->buffer, "#line ", 6))
 	{
-	  int start, lno;
-
-	  if (DEBUG) start = 0;	/* shut up the compiler */
-	  if (sscanf (lbp->buffer, "#line %d %n\"", &lno, &start) >= 1
-	      && lbp->buffer[start] == '"')
+	  unsigned int lno;
+	  int start = 0;
+
+	  if (sscanf (lbp->buffer, "#line %u \"%n", &lno, &start) >= 1
+	      && start > 0)	/* double quote character found */
 	    {
-	      char *endp = lbp->buffer + ++start;
-
-	      assert (start > 0);
+	      char *endp = lbp->buffer + start;
+
 	      while ((endp = etags_strchr (endp, '"')) != NULL
 		     && endp[-1] == '\\')
 		endp++;
--- a/lib-src/makefile.w32-in	Thu Dec 07 00:45:27 2006 +0000
+++ b/lib-src/makefile.w32-in	Thu Dec 07 04:14:14 2006 +0000
@@ -24,11 +24,13 @@
 
 .PHONY: $(ALL)
 
+VERSION		= 22.0.91
+
 LOCAL_FLAGS	= -DWINDOWSNT -DDOS_NT -DSTDC_HEADERS=1 -DNO_LDAV=1 \
 		  -DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../nt/inc \
 		  -I../src
 
-LIBS	      = $(BASE_LIBS) $(ADVAPI32)
+LIBS 		= $(BASE_LIBS) $(ADVAPI32)
 
 $(BLD)/make-docfile.exe: 	$(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O)
 		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O) $(LIBS)
@@ -68,21 +70,27 @@
 # put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
 		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(MOVEMAILOBJS) $(WSOCK32) $(LIBS)
 
-ECLIENT_CFLAGS = -DHAVE_GETCWD -DHAVE_STRERROR
+ECLIENT_CFLAGS = -DHAVE_GETCWD -DHAVE_STRERROR -DVERSION="\"$(VERSION)\""
 ECLIENTOBJS =	$(BLD)/emacsclient.$(O) \
 		$(BLD)/getopt.$(O) \
 		$(BLD)/getopt1.$(O) \
 		$(BLD)/ntlib.$(O)
+TRES =		../nt/$(BLD)/emacs.res
+
+$(TRES):	../nt/emacs.rc
+		$(RC) $(RC_OUT)../nt/$(BLD)/emacs.res $(ALL_DEPS)
 
 $(BLD)/emacsclient.exe:		$(ECLIENTOBJS)
 # put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
-		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(LIBS)
+		$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(USER32) $(LIBS)
 
-$(BLD)/emacsclientw.exe:	$(ECLIENTOBJS)
+$(BLD)/emacsclientw.exe:	$(ECLIENTOBJS) $(TRES)
 # put wsock32.lib before $(LIBS) to ensure we don't link to ws2_32.lib
-		$(LINK) $(LINK_OUT)$@ -mwindows $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(LIBS)
+		$(LINK) $(LINK_OUT)$@ $(TRES) -mwindows $(LINK_FLAGS) $(ECLIENTOBJS) $(WSOCK32) $(USER32) $(LIBS)
 
-$(BLD)/emacsclient.$(O):	emacsclient.c
+# emacsclient.$(O) depends on makefile.w32-in because makefile.w32-in
+# can be edited to define VERSION string, which is part of ECLIENT_CFLAGS.
+$(BLD)/emacsclient.$(O):	emacsclient.c makefile.w32-in
 		$(CC) $(CFLAGS) $(ECLIENT_CFLAGS) $(CC_OUT)$@ emacsclient.c
 
 ETAGSOBJ      = $(BLD)/etags.$(O) \
--- a/lisp/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,23 +1,533 @@
+2006-12-05  J.D. Smith  <jdsmith@as.arizona.edu>
+
+	* progmodes/idlwave.el (idlwave-xml-create-class-method-lists):
+	Trim out spurious class inheritance "None" entries.
+
+2006-12-05  Kim F. Storm  <storm@cua.dk>
+
+	* emulation/cua-base.el (cua-paste-pop-rotate-temporarily): Doc fix.
+	(cua-paste-pop): Rework last change for cua-paste-pop-rotate-temporarily,
+	so first M-y and C-y works alike, pasting the head of the kill-ring, and
+	prefix arg C-u M-y inserts the text inserted by the last M-y command.
+
+2006-12-05  Micha,Ak(Bl Cadilhac  <michael.cadilhac@lrde.org>
+
+	* cmuscheme.el (run-scheme, scheme-start-file): Search the start
+	file in ~/.emacs.d as `init_SCHEMENAME.scm' instead.
+
+	* shell.el (shell): Search the start file in ~/.emacs.d as
+	`init_SHELLNAME.sh' instead.
+
+2006-12-05  Glenn Morris  <rgm@gnu.org>
+
+	* progmodes/cperl-mode.el (cperl-mode)
+	* progmodes/f90.el (f90-mode-abbrev-table)
+	* progmodes/fortran.el (fortran-mode-abbrev-table)
+	* progmodes/octave-mod.el (octave-abbrev-table)
+	* progmodes/sql.el (sql-mode-abbrev-table): Define abbrevs even
+	if abbrev-table is non-nil (saved user abbrevs may have been
+	restored).
+
+	* progmodes/vhdl-mode.el (vhdl-mode-abbrev-table-init): Do not
+	clear abbrev table, else saved abbrevs will not be restored.
+
+2006-12-04  Juanma Barranquero  <lekktu@gmail.com>
+
+	* facemenu.el (facemenu-unlisted-faces): Put obsolescence info in
+	the call to `make-obsolete-variable', not in the docstring.
+
+2006-12-04  Chong Yidong  <cyd@stupidchicken.com>
+
+	* facemenu.el (facemenu-unlisted-faces): Define as obsolete variable.
+
+2006-12-04  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+	* progmodes/ebnf-abn.el:
+	* progmodes/ebnf-bnf.el:
+	* progmodes/ebnf-dtd.el:
+	* progmodes/ebnf-ebx.el:
+	* progmodes/ebnf-iso.el:
+	* progmodes/ebnf-otz.el:
+	* progmodes/ebnf-yac.el:
+	* progmodes/ebnf2ps.el:
+	* delim-col.el:
+	* printing.el:
+	* ps-bdf.el:
+	* ps-mule.el:
+	* ps-print.el: Remove 'Time-stamp' comment mark.
+
+	* printing.el (pr-menu-bind): Replace 'easy-menu-change' by
+	'easy-menu-add-item' when called in Emacs 21 or higher.
+
+2006-12-04  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+	* progmodes/ada-xref.el (ada-check-current): Doc fix.
+	(ada-make-body-gnatstub): Doc fix.  Remove redundant `progn'.
+
+2006-12-04  Kim F. Storm  <storm@cua.dk>
+
+	* bindings.el (global-map): Bind [signal t] to ignore, to have
+	user signals ignored by default.
+
+2006-12-04  Juanma Barranquero  <lekktu@gmail.com>
+
+	* descr-text.el (describe-char-unicode-data): Use a hidden buffer for
+	Unicode data file pointed to by `describe-char-unicodedata-file'.
+
+2006-12-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* textmodes/sgml-mode.el (sgml-font-lock-keywords-1): Fix pathological
+	O(n^2) regexp-search by anchoring the search.
+
+2006-12-04  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* whitespace.el (whitespace-cleanup-internal): Use current
+	argument for recursive call.
+
+2006-12-04  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (tramp-methods): Add "ControlPath" and
+	"ControlMaster" to scp, scp1 and scp2 methods.  Suggested by
+	Andreas Schwab <schwab@suse.de>.
+	(tramp-do-copy-or-rename-file-out-of-band)
+	(tramp-open-connection-rsh): Compute format spec for ?t.
+	(tramp-process-actions): Trace command parameters.
+
+2006-12-04  Nick Roberts  <nickrob@snap.net.nz>
+
+	* simple.el (toggle-truncate-lines): Clarify doc string.
+
+	* progmodes/gdb-ui.el (gdb-var-delete-children): New function.
+	(gdb-speedbar-expand-node): Use it.
+
+2006-12-04  Richard Stallman  <rms@gnu.org>
+
+	* progmodes/python.el (python-indent): Add safe-local-variable prop.
+
+	* dired.el (dired-revert): Turn off dired-after-readin-hook
+	around call to dired-readin.
+
+	* menu-bar.el (menu-bar-make-toggle): Add "globally"
+	to echo area messages.
+	<indicate-empty-lines, case-fold-search>:
+	Add "globally" to Help string.
+	<case-fold-search>: MESSAGE arg need not say "globally".
+	(menu-bar-edit-menu <paste-from-menu>): Rename from select-and-paste.
+
+2006-12-03  Liam Healy  <lnp@healy.washington.dc.us>  (tiny change)
+
+	* outline.el (outline-end-of-subtree): Don't leave an empty
+	line hidden as we would a real next heading.
+
+2006-12-03  Ken Manheimer  <ken.manheimer@gmail.com>
+
+	* allout.el (allout-ascend): Add an optional argument to preserve
+	original position of point when unsuccessful.  Also, fix a
+	docstring error.
+	(allout-yank-processing): Fix depth shift of multiple-topic so yanks
+	work again, using allout-ascend's new option.
+	(allout-setup-mode-map): Extract from allout-mode to initialize
+	allout-mode-map.  Call it on file load, so the mode docstring
+	substitutions work even if allout mode has not yet been invoked.
+	(allout-mode): Use new allout-setup-mode-map to track any keybinding
+	customizations since the map was last processed.  Also,	refine the
+	docstring so it's ship-shape for release.
+	(allout-default-layout, allout-beginning-of-line-cycles)
+	(allout-distinctive-bullets-string, allout-use-mode-specific-leader)
+	(allout-encrypt-unencrypted-on-saves, allout-inhibit-auto-fill)
+	(allout-version, allout-layout, allout-infer-body-reindent)
+	(allout-infer-header-lead-and-primary-bullet, allout-view-change-hook)
+	(allout-init, allout-mode, allout-next-heading, allout-chart-subtree)
+	(allout-previous-heading, allout-goto-prefix-doublechecked)
+	(allout-current-bullet-pos, allout-next-sibling-leap)
+	(allout-pre-command-business, allout-encrypted-type-prefix)
+	(allout-make-topic-prefix, allout-open-topic, allout-rebullet-heading)
+	(allout-rebullet-topic, allout-rebullet-topic-grunt)
+	(allout-flag-region, allout-expose-topic, allout-expose-topic)
+	(allout-old-expose-topic, allout-listify-exposed)
+	(allout-process-exposed, allout-latex-verb-quote)
+	(allout-latex-verbatim-quote-curr-line, allout-adjust-file-variable)
+	(allout-toggle-current-subtree-encryption)
+	(allout-toggle-subtree-encryption, allout-bullet-isearch):
+	Remove extraneous open-paren and close paren string escapes.
+
+2006-12-03  Juanma Barranquero  <lekktu@gmail.com>
+
+	* progmodes/ada-xref.el (is-windows, ada-find-in-src-path): Doc fixes.
+	(ada-xref-pos-ring-max, ada-xref-project-files, ada-xref-initialize)
+	(ada-prj-default-comp-cmd, ada-quote-cmd, ada-compile-current):
+	Fix typos in docstrings.
+
+2006-12-03  Glenn Morris  <rgm@gnu.org>
+
+	* progmodes/cc-align.el
+	* progmodes/cc-awk.el
+	* progmodes/cc-cmds.el
+	* progmodes/cc-compat.el
+	* progmodes/cc-defs.el
+	* progmodes/cc-engine.el
+	* progmodes/cc-langs.el
+	* progmodes/cc-menus.el
+	* progmodes/cc-mode.el
+	* progmodes/cc-styles.el
+	* progmodes/cc-vars.el
+	* progmodes/vhdl-mode.el: Fix Copyright format.
+
+2006-12-02  Chong Yidong  <cyd@stupidchicken.com>
+
+	* mouse.el (mouse-drag-track): Suppress automatic hscrolling for
+	initial down event.
+
+2006-12-02  Kim F. Storm  <storm@cua.dk>
+
+	* emulation/cua-base.el (cua-toggle-set-mark): Doc fix.
+	(cua-repeat-replace-region): Make M-v more robust.
+	(cua-paste-pop-rotate-temporarily): New defcustom.
+	(cua-paste-pop): Use it.
+	(cua-auto-mark-last-change): New defcustom.
+	(cua-pop-to-last-change): New helper function.
+	(cua-set-mark): Use them.
+
+2006-12-01  Nick Roberts  <nickrob@snap.net.nz>
+
+	* menu-bar.el (toggle-case-fold-search): Clarify doc/help string and
+	mini-buffer message.
+
+2006-12-01  Juanma Barranquero  <lekktu@gmail.com>
+
+	* descr-text.el (describe-char-unicodedata-file): Fix typo in docstring.
+
+2006-12-01  Ben North  <ben@redfrontdoor.org>
+
+	* paren.el: Fix the highlight overlay extension when the user types a
+	sequence of char very fast just before the open parenthesis.
+
+2006-12-01  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+	* ps-mule.el: Eliminate Emacs 20 compatibility.
+
+	* ps-print.el: Eliminate Emacs 20 & 21 compatibility.
+	(ps-print-version): New Version 6.7.
+	(ps-print-quote): Replace '?\ ' by '?\s'.
+
+2006-11-30  Juanma Barranquero  <lekktu@gmail.com>
+
+	* hexl.el (hexl-goto-address, hexl-forward-char, hexl-forward-short)
+	(hexl-forward-word, hexl-previous-line, hexl-beginning-of-1k-page)
+	(hexl-end-of-1k-page): Doc fixes.
+	(hexl-address-region, hexl-ascii-region, hexl-highlight-line-range):
+	Fix typos in docstrings.
+
+2006-11-30  Micha,Ak(Bl Cadilhac  <michael.cadilhac@lrde.org>
+
+	* ido.el (ido-local-file-exists-p): New.  Tell if a file exists
+	locally, i.e. without using file name handlers.
+	(ido-read-internal): Allow mono letter host names, avoiding the
+	`c:' problem by testing if the file exists locally.
+	(ido-complete, ido-make-file-list, ido-exhibit): Ditto.
+
+2006-11-30  Masatake YAMATO  <jet@gyve.org>
+
+	* hexl.el (hl-line-range-function, hl-line-face): Declare variables
+	to avoid bytecomp warnings.
+	(hexl-mode-old-ruler-function): New variable.
+	(hexl-follow-line): Bind `hexl-mode-old-hl-line-range-function'
+	and `hl-line-range-function' after `require' hl-line.
+	Then bind `hl-line-range-function' and `hl-line-face'.
+	Don't require frame.  Don't use `with-no-warnings'.
+	(hexl-activate-ruler): Store the original value of
+	`ruler-mode-ruler-function' to `hexl-mode-old-ruler-function'.
+	(hexl-mode-exit): Restore the original value of
+	`ruler-mode-ruler-function'.
+
+2006-11-30  Alin C. Soare  <alinsoar@voila.fr>  (tiny change)
+
+	* hexl.el (hexl-mode-old-hl-line-range-function): New variable.
+	(hexl-mode-old-hl-line-face): New variable.
+	(hexl-mode, hexl-mode-exit): Fix the highlighting of the current
+	line when exit from the hexl-mode.
+
+2006-11-30  Juanma Barranquero  <lekktu@gmail.com>
+
+	* emacs-lisp/bytecomp.el (byte-optimize, byte-compile-warnings):
+	Doc fixes.
+
+	* international/fontset.el (create-fontset-from-ascii-font)
+	(create-fontset-from-fontset-spec, x-compose-font-name): Doc fixes.
+	(fontset-name-p): Fix typo in docstring.
+
+	* progmodes/cc-cmds.el (c-indent-exp): Fix typo in docstring.
+
+2006-11-30  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+	* ps-bdf.el: Fix maintainer email.
+
+	* ps-mule.el: Fix maintainer email.  Define functions for Emacs 20
+	compatibility.
+
+	* ps-print.el: Fix maintainer email.  Define functions for Emacs 20 &
+	21 compatibility.
+	(ps-print-quote): Replace '?\s' by '?\ ' to keep compatibility with
+	Emacs 20 & 21.
+
+2006-11-29  J.D. Smith  <jdsmith@as.arizona.edu>
+
+	* progmodes/idlwave.el (idlwave-auto-fill):
+	Remove paragraph-start let to prevent auto-fill giving up.
+
+2006-11-28  Juanma Barranquero  <lekktu@gmail.com>
+
+	* vt100-led.el (led-state): Fix typo in previous change.
+
+2006-11-27  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>
+
+	* emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
+	Fix interactive spec of the functions getting defined to make them
+	work as documented.
+
+2006-11-28  Chong Yidong  <cyd@stupidchicken.com>
+
+	* startup.el (fancy-splash-screens): Hide initial splash buffer.
+
+2006-11-28  Kim F. Storm  <storm@cua.dk>
+
+	* icomplete.el (icomplete-tidy, icomplete-exhibit): Check that
+	icomplete-mode is enabled.
+
+2006-11-28  Carsten Dominik  <dominik@science.uva.nl>
+
+	* textmodes/org.el (require): Require gnus-sum during compilation
+	to avoid problem with a macro call.
+
+2006-11-28  Glenn Morris  <rgm@gnu.org>
+
+	* emacs-lisp/authors.el (authors-aliases): Add new alias.
+
+	* progmodes/fortran.el (fortran-font-lock-keywords-4): Add `min'.
+	(fortran-window-create-momentarily): Do not need string-to-char.
+
+2006-11-28  Richard Stallman  <rms@gnu.org>
+
+	* emacs-lisp/bytecomp.el (byte-compile-get-constant):
+	Replace incorrect use of assoc-default with a loop.
+
+	* term.el (term-exec-1): Set envvar INSIDE_EMACS.
+
+	* simple.el (next-error-find-buffer): Improve messages.
+
+	* files.el (revert-buffer): Special error message if file
+	is now not readable.
+
+	* facemenu.el (facemenu-add-new-face): Improve doc strings of
+	constructed commands.
+
+	* comint.el (comint-exec-1): Provide Emacs version and `comint'
+	in INSIDE_EMACS.
+
+2006-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* diff-mode.el (diff-mode-map): Add a binding for unified->context.
+
+	* server.el: Remove spurious * in docstrings.
+	(server-process-filter): Exit from recursive editing before processing
+	a new request.
+
+2006-11-27  J.D. Smith  <jdsmith@as.arizona.edu>
+
+	* progmodes/hideshow.el (hs-already-hidden-p): Move to end of
+	line so hidden blocks will be correctly identified.
+
+2006-11-27  Juanma Barranquero  <lekktu@gmail.com>
+
+	* ledit.el (ledit-save-defun, ledit-mode):
+	* resume.el (resume-emacs-args-buffer):
+	* rot13.el (rot13-display-table, rot13-translate-table, rot13)
+	(rot13-string, rot13-region, rot13-other-window, toggle-rot13-mode):
+	* vmsproc.el (subprocess-input, start-subprocess, subprocess-command)
+	(command-send-input, command-kill-line):
+	* vt100-led.el (led-state, led-on): Fix typos in docstrings.
+
+	* autoarg.el (autoarg-kp-mode): Doc fix.
+
+	* emacs-lock.el (toggle-emacs-lock): Doc fix.  Simplify.
+	(emacs-lock-check-buffer-lock): Doc fix.  Use `when'.
+	(check-emacs-lock): Doc fix.  Simplify.
+
+	* iimage.el (iimage-mode-image-regex-alist): Doc fix.
+	(iimage-mode-buffer): Fix typos in docstring.
+
+	* misc.el (zap-up-to-char): Doc fix.
+
+	* time-stamp.el: Fix comment and obsolescence string for old
+	functions.  Use `dolist' instead of `while'.
+
+	* userlock.el (ask-user-about-lock-help): Fix typos in output message.
+
+	* disp-table.el (standard-display-8bit, standard-display-default):
+	* ebuff-menu.el (electric-buffer-list):
+	* ehelp.el (electric-help-command-loop):
+	* font-core.el (font-lock-mode):
+	* help-macro.el (make-help-screen):
+	* help.el (describe-minor-mode-completion-table-for-indicator)
+	(lookup-minor-mode-from-indicator):
+	* indent.el (tab-to-tab-stop, move-to-tab-stop):
+	* info-look.el (info-lookup-guess-custom-symbol):
+	* locate.el (locate-main-listing-line-p, locate-mode, locate-do-setup):
+	* longlines.el (longlines-wrap-line):
+	* macros.el (insert-kbd-macro):
+	* menu-bar.el (menu-bar-update-buffers):
+	* misc.el (copy-from-above-command):
+	* mouse.el (mouse-popup-menubar, mouse-buffer-menu-alist):
+	* newcomment.el (comment-indent):
+	* novice.el (disabled-command-function):
+	* sort.el (sort-fields-syntax-table):
+	* subr.el (momentary-string-display):
+	* tar-mode.el (tar-header-block-summarize)
+	(tar-clear-modification-flags):
+	* terminal.el (terminal-cease-edit, te-more-break-unwind, te-newline)
+	(te-clear-rest-of-line, te-clear-rest-of-screen, te-clear-screen)
+	(te-insert-lines, te-delete-lines, te-delete, te-insert-spaces)
+	(te-delete-char, te-down-vertically-or-scroll):
+	* time-stamp.el (time-stamp-string-preprocess):
+	* tmm.el (tmm-add-one-shortcut): "?\ " -> "?\s".
+
+2006-11-26  Nick Roberts  <nickrob@snap.net.nz>
+
+	* speedbar.el (speedbar-timer-fn): Revert to old behaviour when not
+	in GUD mode.
+
+	* progmodes/gud.el (gud-install-speedbar-variables): Remove bindings:
+	speedbar-expand-line-descendants, speedbar-contract-line-descendants.
+
+2006-11-26  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* progmodes/cc-vars.el (c-backslash-column): Add . at end of sentence.
+
+2006-11-26  Stephen Leake  <stephen_leake@stephe-leake.org>
+
+	* progmodes/ada-mode.el (ada-which-compiler): Fix typo in docstring.
+	(ada-compile-goto-error): Adapt to new argument profile of
+	compilation-goto-locus in Emacs 22.  Don't check if the various
+	compile functions are defined; we already do "(require 'compile)".
+
+2006-11-26  Kim F. Storm  <storm@cua.dk>
+
+	* kmacro.el: Fix commentary.
+
+2006-11-26  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gud.el (gdb): Explain how to run in text command mode
+	more clearly.  Say in error message that multiple debugging
+	requires restarting GDB.
+
+2006-11-25  Juanma Barranquero  <lekktu@gmail.com>
+
+	* international/fontset.el (create-fontset-from-fontset-spec): Doc fix.
+
+2006-11-25  Pavel Kobiakov  <pk_at_work@yahoo.com>
+
+	* progmodes/flymake.el (flymake-posn-at-point-as-event): New function.
+	(flymake-popup-menu): Use it instead of posn-at-point.
+
+2006-11-25  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* progmodes/cc-vars.el (c-backslash-column):
+	Mention c-backslash-max-column in documentation for c-backslash-column.
+
+2006-11-24  Lars Hansen  <larsh@soem.dk>
+
+	* net/tramp.el (tramp-default-method): Under Windows, change from
+	plink to pscp.
+	(tramp-copy-failed-regexp, tramp-action-copy-failed): Add.
+	(tramp-actions-copy-out-of-band):
+	Add pair (tramp-copy-failed-regexp tramp-action-copy-failed).
+	(tramp-action-out-of-band): Move "Permission denied" handling to
+	tramp-action-copy-failed.
+	(tramp-do-copy-or-rename-file-out-of-band): unwind-protect killing of
+	process buffer.
+
+2006-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* pgg-pgp.el (pgg-pgp-process-region): Change `args' from a list of
+	strings to a single string.  Quote `errors-file-name'.
+	(pgg-pgp-encrypt-region, pgg-pgp-decrypt-region, pgg-pgp-sign-region)
+	(pgg-pgp-verify-region, pgg-pgp-insert-key, pgg-pgp-snarf-keys-region):
+	Adjust calls.  Use `shell-quote-argument'.
+
+	* international/mule.el (load-with-code-conversion)
+	(with-category-table): Use with-current-buffer.
+	(after-insert-file-set-coding): Use restore-buffer-modified-p.
+
+2006-11-24  Eli Zaretskii  <eliz@gnu.org>
+
+	* mail/smtpmail.el (smtpmail-send-it):
+	Copy buffer-file-coding-system from the mail buffer.  Possibly add a
+	MIME header for the message encoding.
+	Bind coding-system-for-write around the call to mail-do-fcc.
+	Use smtpmail-code-conv-from to encode queued mail messages.
+
+2006-11-24  Juanma Barranquero  <lekktu@gmail.com>
+
+	* tabify.el (tabify-regexp): Doc fix.
+
+	* net/rcirc.el (rcirc-buffer-maximum-lines):
+	* progmodes/gud.el (jdb): Fix space/tab mixup in docstrings.
+
+	* play/gomoku.el (gomoku-terminate-game, gomoku-human-takes-back)
+	(gomoku-prompt-for-move, gomoku-human-plays, gomoku-offer-a-draw):
+	Fix typos in output messages.
+	(gomoku-vector-length, gomoku-init-board): Fix typos in docstrings.
+
+2006-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* hexl.el (hexl-mode): Don't try to guess the max-address: get it from
+	the horse's mouth.
+	(hexlify-buffer): Don't re-encode an arg that's already encoded.
+
+2006-11-23  Michael Kifer  <kifer@cs.stonybrook.edu>
+
+	* ediff-diff.el (ediff-exec-process, ediff-same-file-contents):
+	Remove condition-case.
+
+2006-11-23  Glenn Morris  <rgm@gnu.org>
+
+	* progmodes/f90.el (f90-comment-indent): Do not move point in
+	default case.
+
+2006-11-21  Romain Francoise  <romain@orebokech.com>
+
+	* emacs-lisp/find-func.el (find-library-name): Don't strip ".el"
+	from library name (reverts change of 2005-10-25).
+
+2006-11-21  Lennart Borgman  <lennart.borgman.073@student.lu.se>
+
+	* tutorial.el (tutorial--default-keys): Add newline and
+	delete-backward-char bindings.
+	(tutorial--detailed-help): Save excursion when finding keys.
+	Correct warning string for M-x FOO case.
+	(tutorial--display-changes): Print special keys in tutorial style.
+	Tweak search regexp for changed keys.
+
 2006-11-21  Bob Rogers  <rogers-emacs@rgrjr.dyndns.org>  (tiny change)
 
-	* thingatpt.el (thing-at-point-url-at-point):  Don't add a
+	* thingatpt.el (thing-at-point-url-at-point): Don't add a
 	redundant scheme.
 
 2006-11-21  Diane Murray  <disumu@x3y2z1.net>  (tiny change)
 
-	* thingatpt.el (thing-at-point-uri-schemes): Added schemes that
+	* thingatpt.el (thing-at-point-uri-schemes): Add schemes that
 	are new to the list at IANA.  Also added irc, mms, mmsh.
 
 2006-11-20  J.D. Smith  <jdsmith@as.arizona.edu>
 
-	* progmodes/idlw-help.el (idlwave-html-help-location): Fail
-	gracefully for missing help packages.
+	* progmodes/idlw-help.el (idlwave-html-help-location):
+	Fail gracefully for missing help packages.
 	(idlwave-help-assistant-open-link): Open full links.
 	(idlwave-help-assistant-help-with-topic): Direct help link.
 
-	* progmodes/idlwave.el (idlwave-mode): Set
-	add-log-current-defun-function.
-	(idlwave-current-routine-fullname): Added, to support add-log.
+	* progmodes/idlwave.el (idlwave-mode):
+	Set add-log-current-defun-function.
+	(idlwave-current-routine-fullname): Add, to support add-log.
 	(idlwave-convert-xml-system-routine-info): Simplify XML parsing
 	to reflect improvements to xml-parse-file.
 	(idlwave-mode-menu-def): New binding for help-with-topic.
@@ -47,15 +557,15 @@
 
 	* emacs-lisp/regexp-opt.el (regexp-opt): Doc fix.
 
-2006-11-19  Micha,bk(Bl Cadilhac  <michael.cadilhac@lrde.org>
+2006-11-19  Micha,Ak(Bl Cadilhac  <michael.cadilhac@lrde.org>
 
 	* progmodes/glasses.el (glasses-separate-parentheses-exceptions): New.
 	Exceptions to the rule "add a space between an identifier and an
 	opening parenthesis".  Defaulted to the `#define' problem of cpp.
-	(glasses-parenthesis-exception-p): New.	 Check if the region is an
+	(glasses-parenthesis-exception-p): New.  Check if the region is an
 	exception regarding to that.
 	(glasses-make-readable): Use it.
-	(glasses-convert-to-unreadable): Ditto.	 Modify the file also if
+	(glasses-convert-to-unreadable): Ditto.  Modify the file also if
 	`glasses-convert-on-write-p' and `glasses-separate-parentheses-p' are t.
 
 2006-11-19  Chong Yidong  <cyd@stupidchicken.com>
@@ -99,7 +609,7 @@
 2006-11-17  Carsten Dominik  <dominik@science.uva.nl>
 
 	* textmodes/org.el (org-scan-tags): Re-align code fixed.
-	(org-detach-overlay): Renamed from `org-detatch-overlay'.
+	(org-detach-overlay): Rename from `org-detatch-overlay'.
 	(org-table-convert-region): Insert space after column separator.
 	(org-agenda-kill): New command.
 	(org-metaleft): Call `org-outdent-item' on bullets.
@@ -120,7 +630,7 @@
 
 2006-11-16  Kim F. Storm  <storm@cua.dk>
 
-	* ido.el (ido-file-internal): Use current buffer's file name as	default
+	* ido.el (ido-file-internal): Use current buffer's file name as default
 	choice for ido-find-alternate-file.  Suggested by Matt Hodges.
 
 2006-11-15  Ken Manheimer  <ken.manheimer@gmail.com>
@@ -256,8 +766,8 @@
 	Delete support for old versions of `align'.
 	(ada-search-prev-end-stmt): Handle additional keyword `private'.
 	(ada-check-defun-name): Simplify handling of `declare'.
-	(ada-goto-matching-start): Handle nested `begin ... end'. Handle
-	`declare', `protected', `procedure', `function'.
+	(ada-goto-matching-start): Handle nested `begin ... end'.
+	Handle `declare', `protected', `procedure', `function'.
 	(ada-create-menu): Presence of arm95 is not conditional on using
 	GNAT compiler.
 
@@ -340,15 +850,14 @@
 2006-11-10  Carsten Dominik  <carsten.dominik@gmail.com>
 
 	* textmodes/org.el (org-show-hierarchy-above)
-	(org-show-following-heading): Fixed typo in default value.
+	(org-show-following-heading): Fix typo in default value.
 	(org-scan-tags): Make the search case-sensitive.
 	(org-tags-sparse-tree): Don't overrule
 	`org-show-following-heading' and `org-show-hierarchy-above'.
 	(org-reveal): New command.
-	(org-show-context): Renamed from `org-show-hierarchy-above'.
+	(org-show-context): Rename from `org-show-hierarchy-above'.
 	(org-fast-tag-selection-single-key): New option.
-	(org-fast-tag-show-exit, org-set-current-tags-overlay): New
-	functions.
+	(org-fast-tag-show-exit, org-set-current-tags-overlay): New functions.
 	(org-tags-overlay): New variable.
 	(org-agenda-todo-ignore-deadlines): New option.
 	("session"): Add circular data structure `org-mark-ring' to
@@ -356,32 +865,29 @@
 	(org-agenda-window-setup, org-agenda-restore-windows-after-quit):
 	New options.
 	(org-agenda-quit): Use `org-agenda-restore-windows-after-quit'.
-	(org-prepare-agenda, org-agenda-quit): Use
-	`org-agenda-window-setup'.
-	(org-pre-agenda-window-conf, org-blank-before-new-entry): New
-	variables.
+	(org-prepare-agenda, org-agenda-quit): Use `org-agenda-window-setup'.
+	(org-pre-agenda-window-conf, org-blank-before-new-entry): New vars.
 	(org-finalize-agenda): Activate bracket links in agenda.
 	(org-at-timestamp-p, org-at-date-range-p): Additional argument
 	INACTIVE-OK.
-	(org-show-hierarchy-above, org-show-following-heading): List
-	values allowed for fine-tuned configuration.
+	(org-show-hierarchy-above, org-show-following-heading):
+	List values allowed for fine-tuned configuration.
 	(org-show-hierarchy-above): New argument CONTEXT, use the
 	fine-tuned settings in `org-show-hierarchy-above' and
 	`org-show-following-heading'.
 	(org-display-custom-time): New function.
-	(org-toggle-time-stamp-overlays, org-insert-time-stamp): New
-	function.
+	(org-toggle-time-stamp-overlays, org-insert-time-stamp): New function.
 	(org-display-custom-times, org-time-stamp-custom-formats):
 	(org-maybe-intangible): New macro.
-	(org-activate-bracket-links, org-hide-wide-columns): Use
-	`org-maybe-intangible'.
+	(org-activate-bracket-links, org-hide-wide-columns):
+	Use `org-maybe-intangible'.
 	(org-open-file): Use `shell-quote-argument'.
 	(org-display-internal-link-with-indirect-buffer): New option.
 	(org-file-remote-p): Get regexp from list.
 	(org-link-expand-abbrev): New function.
 	(org-link-abbrev-alist): New option.
-	(org-open-at-point, org-cleaned-string-for-export): Call
-	`org-link-expand-abbrev'.
+	(org-open-at-point, org-cleaned-string-for-export):
+	Call `org-link-expand-abbrev'.
 	(org-timeline, org-agenda-list, org-todo-list)
 	(org-tags-view): Remove the KEEP-MODES argument.
 	(org-finalize-agenda-hook): New hook.
@@ -390,8 +896,7 @@
 	(org-open-at-point): Call `org-follow-timestamp-link'.
 	(org-log-note-marker, org-log-note-purpose)
 	(org-log-note-window-configuration): New variables.
-	(org-add-log-maybe, org-add-log-note, org-store-log-note): New
-	functions.
+	(org-add-log-maybe, org-add-log-note, org-store-log-note): New funs.
 	(org-log-note-headings): New option.
 	(org-dblock-write:clocktable): Bug fix, removed infinite loop.
 	(org-store-link): Support for dired-mode.
@@ -406,14 +911,12 @@
 	the text property inticating the agenda type.
 	(org-agenda-post-command-hook): Get agenda type from text property
 	at point.
-	(org-agenda): Handle command sets.  Set
-	`org-agenda-last-arguments' and obey
-	`org-agenda-overriding-arguments'.
-	(org-agenda-overriding-arguments, org-agenda-last-arguments): New
-	variables.
+	(org-agenda): Handle command sets.  Set `org-agenda-last-arguments'
+	and obey `org-agenda-overriding-arguments'.
+	(org-agenda-overriding-arguments, org-agenda-last-arguments): New vars.
 	(org-agenda-goto-today, org-agenda-later, org-agenda-earlier)
-	(org-agenda-week-view, org-agenda-day-view): Use
-	`org-agenda-overriding-arguments' to make updating work with
+	(org-agenda-week-view, org-agenda-day-view):
+	Use `org-agenda-overriding-arguments' to make updating work with
 	multi-block agendas.
 	(org-agenda-prefix-format): Allow different formats for the
 	different agenda entry types.
@@ -424,11 +927,11 @@
 	`org-select-agenda-window' instead.
 	(org-respect-restriction): Variable removed.
 	(org-cmp-tag): New function.
-	(org-agenda-sorting-strategy, org-entries-lessp): Implement
-	sorting by last tag.
+	(org-agenda-sorting-strategy, org-entries-lessp):
+	Implement sorting by last tag.
 	(org-complete): Better completion in in-buffer option lines.
 	(org-in-item-p): New function.
-	(org-org-menu): Added entries for checkboxes.
+	(org-org-menu): Add entries for checkboxes.
 	(org-cycle): Extra brouping in outline-regexp, because it is used
 	in a search with "^" prepended.
 	(org-provide-checkbox-statistics): New option.
@@ -436,16 +939,16 @@
 	(org-update-checkbox-count-maybe)
 	(org-get-checkbox-statistics-face): New functions.
 	(org-update-checkbox-count): New command.
-	(org-insert-item, org-toggle-checkbox): Call
-	`org-update-checkbox-count-maybe'.
+	(org-insert-item, org-toggle-checkbox):
+	Call `org-update-checkbox-count-maybe'.
 	(org-export-as-html): XEmacs compatibility for coding system.
 	(org-force-cycle-archived): New command.
 	(org-cycle-hide-archived-subtrees): Display message when ARCHIVE
 	overrules cycling.
 	(org-fix-position-after-promote): If the line contains only a todo
 	keyword, add a final space.
-	(org-promote-subtree, org-demote-subtree): Call
-	`org-fix-position-after-promote'.
+	(org-promote-subtree, org-demote-subtree):
+	Call `org-fix-position-after-promote'.
 
 2006-11-10  Glenn Morris  <rgm@gnu.org>
 
@@ -551,8 +1054,8 @@
 
 2006-11-08  Kenichi Handa  <handa@m17n.org>
 
-	* international/mule-cmds.el (set-default-coding-systems): Always
-	set default-file-name-coding-system to utf-8 for Mac Darwin.
+	* international/mule-cmds.el (set-default-coding-systems):
+	Always set default-file-name-coding-system to utf-8 for Mac Darwin.
 
 2006-11-08  Juanma Barranquero  <lekktu@gmail.com>
 
@@ -787,8 +1290,7 @@
 
 2006-11-04  Yoni Rabkin Katzenell  <yoni-r@actcom.com>  (tiny change)
 
-	* faces.el (faces-sample-overlay, describe-face): Revert last
-	changes.
+	* faces.el (faces-sample-overlay, describe-face): Revert last changes.
 	(faces-sample-overlay): Remove variable.
 	(describe-face): Insert sample text in the face being described.
 
@@ -799,12 +1301,12 @@
 	(whitespace-buffer): Use `remove-overlays' instead of
 	`whitespace-unhighlight-the-space' and `overlay-recenter' to
 	speed up overlay handling.
-	(whitespace-buffer-leading, whitespace-buffer-trailing): Make
-	these functions highlight the text removed by
+	(whitespace-buffer-leading, whitespace-buffer-trailing):
+	Make these functions highlight the text removed by
 	`whitespace-buffer-leading-cleanup' and
 	`whitespace-buffer-trailing-cleanup' respectively.
-	(whitespace-buffer-search): Use `with-local-quit'.  Move
-	`format' out of loop to speed up scanning larger buffers.
+	(whitespace-buffer-search): Use `with-local-quit'.
+	Move `format' out of loop to speed up scanning larger buffers.
 	(whitespace-unhighlight-the-space): Remove `remove-hook' since
 	that function is never added to a hook.
 	(whitespace-spacetab-regexp, whitespace-ateol-regexp)
@@ -835,7 +1337,7 @@
 	(allout-deannotate-hidden): New function to remove was-hidden
 	annotation.
 	(allout-hide-by-annotation): Use new allout-deannotate-hidden.
-	(allout-remove-exposure-annotation): Replaced by
+	(allout-remove-exposure-annotation): Replace by
 	allout-deannotate-hidden.
 	(allout-yank-processing): Signal that yank processing is happening
 	with allout-during-yank-processing.  Also, wrap
@@ -961,10 +1463,10 @@
 
 2006-10-30  Lennart Borgman  <lennart.borgman.073@student.lu.se>
 
-	* help-fns.el (help-with-tutorial): Moved to tutorial.el.
+	* help-fns.el (help-with-tutorial): Move to tutorial.el.
 
 	* tutorial.el: New file.
-	(help-with-tutorial): Moved here from help-fns.el. Added help for
+	(help-with-tutorial): Move here from help-fns.el. Added help for
 	rebound keys.  Fixed resume of tutorial.
 	(tutorial--describe-nonstandard-key, tutorial--sort-keys)
 	(tutorial--find-changed-keys, tutorial--display-changes)
@@ -2201,7 +2703,7 @@
 	* select.el (xselect-convert-to-string): If UTF8_STRING is requested
 	and the data doesn't look like UTF8, send STRING instead.
 
-2006-09-16  Agustin Martin  <agustin.martin@hispalinux.es>
+2006-09-16  Agust,Am(Bn Mart,Am(Bn  <agustin.martin@hispalinux.es>
 
 	* textmodes/flyspell.el (flyspell-check-region-doublons):
 	New function to detect duplicated words.
@@ -2646,7 +3148,7 @@
 
 	* dired.el (dired-log-summary): Add doc string.
 
-	* cus-edit.el (custom-menu-create): Bind deactivate-mark here
+	* cus-edit.el (custom-menu-create): Bind deactivate-mark here.
 	(custom-group-menu-create): Not here.
 
 2006-09-08  Carsten Dominik  <dominik@science.uva.nl>
@@ -6939,8 +7441,7 @@
 	(defcustom, defface, defgroup): Replace reference to Customization
 	chapter in manual with hyperlink.
 
-	* cus-edit.el (customize-package-emacs-version-alist):
-	New variable.
+	* cus-edit.el (customize-package-emacs-version-alist): New variable.
 	(customize-changed-options): Add check for custom-package-version.
 	(customize-package-emacs-version): New function to look up Emacs
 	version corresponding to the given package version.
@@ -7019,7 +7520,7 @@
 	* files.el (hack-local-variables-confirm) <offer-save>:
 	Clarify message text.  Suggested by Ralf Angeli.
 
-2006-04-08  Michael Cadilhac  <michael.cadilhac@lrde.org>
+2006-04-08  Micha,Ak(Bl Cadilhac  <michael.cadilhac@lrde.org>
 
 	* rect.el (kill-rectangle): Don't barf if `kill-read-only-ok' is set.
 	(delete-extract-rectangle-line): Use `filter-buffer-substring'
@@ -9873,7 +10374,7 @@
 	(find-variable-other-frame, find-variable-at-point):
 	Fix docstrings.
 
-2006-01-21  Francesco Potorti`  <pot@gnu.org>
+2006-01-21  Francesco Potort,Al(B  <pot@gnu.org>
 
 	* mail/rmailout.el (rmail-output): Don't use content-type if it is nil.
 
@@ -13847,7 +14348,7 @@
 	since the last ping.
 	(rcirc-mode): Give rcirc-topic a local binding here.
 
-2005-11-19  Michael Cadilhac  <michael.cadilhac@lrde.org>
+2005-11-19  Micha,Ak(Bl Cadilhac  <michael.cadilhac@lrde.org>
 
 	* subr.el (read-passwd): Fontify the prompt as we do with other
 	prompts.
@@ -15458,7 +15959,7 @@
 
 	* dired-x.el (dired-virtual): Don't use `dired-insert-headerline'.
 
-2005-10-25  Michael Cadilhac  <michael.cadilhac-@t-lrde.epita.fr>
+2005-10-25  Micha,Ak(Bl Cadilhac  <michael.cadilhac-@t-lrde.epita.fr>
 
 	* play/blackbox.el (blackbox-redefine-key): New function.
 	(blackbox-mode-map): Use it to remap existing bindings for cursor
@@ -16722,7 +17223,7 @@
 	* progmodes/gdb-ui.el (gdb-fringe-width -> gdb-buffer-fringe-width):
 	Typo.
 
-2005-10-06  Michael Cadilhac  <michael.cadilhac-@t-lrde.epita.fr>
+2005-10-06  Micha,Ak(Bl Cadilhac  <michael.cadilhac-@t-lrde.epita.fr>
 
 	* play/zone.el (zone): Wrap body with save-window-excursion.
 
@@ -17890,7 +18391,7 @@
 
 	* mail/sendmail.el (default-sendmail-coding-system): Doc fix.
 
-2005-09-09  Emilio Lopes  <eclig@gmx.net>
+2005-09-09  Emilio C. Lopes  <eclig@gmx.net>
 
 	* woman.el: Format- and whitespace-related changes.
 
@@ -20142,7 +20643,7 @@
 	* server.el: Bind "C-x #" in a way that works even if C-x is
 	redefined to a command key, not a prefix key.
 
-2005-07-16  Johan Bockgard  <bojohan@users.sourceforge.net>  (tiny change)
+2005-07-16  Johan Bockg,Ae(Brd  <bojohan@users.sourceforge.net>  (tiny change)
 
 	* emacs-lisp/cl-macs.el (cl-make-type-test): Defer evaluation of
 	cl-make-type-test till execution time.
@@ -20152,7 +20653,7 @@
 	* dired-x.el (dired-do-relsymlink-regexp): Add missing optional
 	arg ARG and use it.
 
-2005-07-16  Johan Bockgard  <bojohan@users.sourceforge.net>  (tiny change)
+2005-07-16  Johan Bockg,Ae(Brd  <bojohan@users.sourceforge.net>  (tiny change)
 
 	* emacs-lisp/cl-macs.el (cl-make-type-test): Add `atom' type.
 
@@ -28222,7 +28723,7 @@
 
 	* emacs-lisp/lisp.el (buffer-end): Doc fix.
 
-2005-02-05  Arne_J,Ax(Brgensen  <arne@arnested.dk>  (tiny change)
+2005-02-05  Arne J,Ax(Brgensen  <arne@arnested.dk>  (tiny change)
 
 	* net/ldap.el (ldap-search-internal): Support attributes with
 	optional descriptions separated by a semi-colon, as in
@@ -29339,7 +29840,7 @@
 	(calc-edit-macro-finish-edit): New functions.
 	(calc-user-define-edit): Use new functions to edit named calc macros.
 
-2005-01-01  Stefan  <monnier@iro.umontreal.ca>
+2005-01-01  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* files.el (hack-local-variables): Cleanup prefix/suffix matching.
 
--- a/lisp/abbrev.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/abbrev.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; abbrev.el --- abbrev mode commands for Emacs
 
-;; Copyright (C) 1985, 1986, 1987, 1992, 2002, 2003, 2004,
+;; Copyright (C) 1985, 1986, 1987, 1992, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/abbrevlist.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/abbrevlist.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; abbrevlist.el --- list one abbrev table alphabetically ordered
 
-;; Copyright (C) 1986, 1992, 2002, 2003, 2004,
+;; Copyright (C) 1986, 1992, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 ;; Suggested by a previous version by Gildea.
 
--- a/lisp/add-log.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/add-log.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 ;;; add-log.el --- change log maintenance commands for Emacs
 
-;; Copyright (C) 1985, 1986, 1988, 1993, 1994, 1997, 1998, 2000, 2002,
-;;   2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1988, 1993, 1994, 1997, 1998, 2000, 2001,
+;;   2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: tools
--- a/lisp/align.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/align.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; align.el --- align text to a specific column, by regexp
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <johnw@gnu.org>
--- a/lisp/allout.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/allout.el	Thu Dec 07 04:14:14 2006 +0000
@@ -162,7 +162,7 @@
  :   - repeat spec - apply the preceeding element to all siblings at
        current level, *up to* those siblings that would be covered by specs
        following the `:' on the list.  Ie, apply to all topics at level but
-       trailing ones accounted for by trailing specs.  \(Only the first of
+       trailing ones accounted for by trailing specs.  (Only the first of
        multiple colons at the same level is honored - later ones are ignored.)
  *   - completely exposes the topic, including bodies
  +   - exposes all subtopics, but not the bodies
@@ -230,9 +230,9 @@
  - if the cursor is on the headline and not the start of the headline:
    then it goes to the start of the headline
  - if the cursor is on the start of the headline:
-   then it goes to the bullet character \(for hotspot navigation\)
+   then it goes to the bullet character (for hotspot navigation)
  - if the cursor is on the bullet character:
-   then it goes to the first column of that line \(the headline\)
+   then it goes to the first column of that line (the headline)
  - if the cursor is on the first column of the headline:
    then it goes to the start of the headline within the item body.
 
@@ -324,14 +324,14 @@
 
 These bullets are used to distinguish topics from the run-of-the-mill
 ones.  They are not used in the standard topic headers created by
-the topic-opening, shifting, and rebulleting \(eg, on topic shift,
+the topic-opening, shifting, and rebulleting (eg, on topic shift,
 topic paste, blanket rebulleting) routines, but are offered among the
 choices for rebulleting.  They are not altered by the above automatic
 rebulleting, so they can be used to characterize topics, eg:
 
  `?' question topics
- `\(' parenthetic comment \(with a matching close paren inside)
- `[' meta-note \(with a matching close ] inside)
+ `(' parenthetic comment (with a matching close paren inside)
+ `[' meta-note (with a matching close ] inside)
  `\"' a quotation
  `=' value settings
  `~' \"more or less\"
@@ -367,13 +367,13 @@
 do not escape any regulare-expression characters.
 
 Value t means to first check for assoc value in `allout-mode-leaders'
-alist, then use comment-start string, if any, then use default \(`.').
+alist, then use comment-start string, if any, then use default (`.').
 \(See note about use of comment-start strings, below.)
 
 Set to the symbol for either of `allout-mode-leaders' or
 `comment-start' to use only one of them, respectively.
 
-Value nil means to always use the default \(`.') and leave
+Value nil means to always use the default (`.') and leave
 `allout-primary-bullet' unaltered.
 
 comment-start strings that do not end in spaces are tripled in
@@ -605,7 +605,7 @@
 mostly covers both deliberate file writes and auto-saves.
 
  - Yes: encrypt all topics pending encryption, even if it's the one
-        currently being edited.  \(In that case, the currently edited topic
+        currently being edited.  (In that case, the currently edited topic
         will be automatically decrypted before any user interaction, so they
         can continue editing but the copy on the file system will be
         encrypted.)
@@ -619,7 +619,7 @@
  - No: leave it to the user to encrypt any unencrypted topics.
 
 For practical reasons, auto-saves always use the 'except-current policy
-when auto-encryption is enabled.  \(Otherwise, spurious passphrase prompts
+when auto-encryption is enabled.  (Otherwise, spurious passphrase prompts
 and unavoidable timing collisions are too disruptive.)  If security for a
 file requires that even the current topic is never auto-saved in the clear,
 disable auto-saves for that file."
@@ -717,8 +717,8 @@
 
 You can customize this setting to set it for all allout buffers, or set it
 in individual buffers if you want to inhibit auto-fill only in particular
-buffers.  \(You could use a function on `allout-mode-hook' to inhibit
-auto-fill according, eg, to the major mode.\)
+buffers.  (You could use a function on `allout-mode-hook' to inhibit
+auto-fill according, eg, to the major mode.)
 
 If you don't set this and auto-fill-mode is enabled, allout will use the
 value that `normal-auto-fill-function', if any, when allout mode starts, or
@@ -783,7 +783,7 @@
 ;;;_  : Version
 ;;;_   = allout-version
 (defvar allout-version "2.2.1"
-  "Version of currently loaded outline package.  \(allout.el)")
+  "Version of currently loaded outline package.  (allout.el)")
 ;;;_   > allout-version
 (defun allout-version (&optional here)
   "Return string describing the loaded outline version."
@@ -800,7 +800,7 @@
 (defvar allout-layout nil            ; LEAVE GLOBAL VALUE NIL - see docstring.
   "Buffer-specific setting for allout layout.
 
-In buffers where this is non-nil \(and if `allout-init' has been run, to
+In buffers where this is non-nil (and if `allout-init' has been run, to
 enable this behavior), `allout-mode' will be automatically activated.  The
 layout dictated by the value will be used to set the initial exposure when
 `allout-mode' is activated.
@@ -812,12 +812,12 @@
 example, the following lines at the bottom of an Emacs Lisp file:
 
 ;;;Local variables:
-;;;allout-layout: \(0 : -1 -1 0)
+;;;allout-layout: (0 : -1 -1 0)
 ;;;End:
 
 dictate activation of `allout-mode' mode when the file is visited
 \(presuming allout-init was already run), followed by the
-equivalent of `\(allout-expose-topic 0 : -1 -1 0)'.  \(This is
+equivalent of `(allout-expose-topic 0 : -1 -1 0)'.  (This is
 the layout used for the allout.el source file.)
 
 `allout-default-layout' describes the specification format.
@@ -930,7 +930,7 @@
        `allout-use-mode-specific-leader'
 and    `allout-mode-leaders'.
 
-Apply this via \(re)activation of `allout-mode', rather than
+Apply this via (re)activation of `allout-mode', rather than
 invoking it directly."
   (let* ((use-leader (and (boundp 'allout-use-mode-specific-leader)
 			  (if (or (stringp allout-use-mode-specific-leader)
@@ -977,7 +977,7 @@
 (defun allout-infer-body-reindent ()
   "Determine proper setting for `allout-reindent-bodies'.
 
-Depends on default setting of `allout-reindent-bodies' \(which see)
+Depends on default setting of `allout-reindent-bodies' (which see)
 and presence of setting for `comment-start', to tell whether the
 file is programming code."
   (if (and allout-reindent-bodies
@@ -1295,7 +1295,7 @@
   "Symbol for use as allout invisible-text overlay category.")
 ;;;_   x allout-view-change-hook
 (defvar allout-view-change-hook nil
-  "*\(Deprecated\) A hook run after allout outline exposure changes.
+  "*(Deprecated) A hook run after allout outline exposure changes.
 
 Switch to using `allout-exposure-change-hook' instead.  Both hooks are
 currently respected, but the other conveys the details of the exposure
@@ -1531,12 +1531,12 @@
 
 MODE is one of the following symbols:
 
- - nil \(or no argument) deactivate auto-activation/layout;
+ - nil (or no argument) deactivate auto-activation/layout;
  - `activate', enable auto-activation only;
  - `ask', enable auto-activation, and enable auto-layout but with
    confirmation for layout operation solicited from user each time;
  - `report', just report and return the current auto-activation state;
- - anything else \(eg, t) for auto-activation and auto-layout, without
+ - anything else (eg, t) for auto-activation and auto-layout, without
    any confirmation check.
 
 Use this function to setup your Emacs session for automatic activation
@@ -1598,7 +1598,7 @@
 			((eq mode 'ask)
 			 (message
 			  (concat "Outline mode auto-activation and "
-				  "-layout \(upon confirmation) enabled."))
+				  "-layout (upon confirmation) enabled."))
 			 'ask)
 			((message
 			  "Outline mode auto-activation and -layout enabled.")
@@ -1649,92 +1649,111 @@
 Allout outline mode provides extensive outline oriented formatting and
 manipulation.  It enables structural editing of outlines, as well as
 navigation and exposure.  It also is specifically aimed at
-accommodating syntax-sensitive text like programming languages.  \(For
+accommodating syntax-sensitive text like programming languages.  (For
 an example, see the allout code itself, which is organized as an allout
 outline.)
 
-In addition to outline navigation and exposure, allout includes:
-
- - topic-oriented repositioning, promotion/demotion, cut, and paste
- - integral outline exposure-layout
+In addition to typical outline navigation and exposure, allout includes:
+
+ - topic-oriented authoring, including keystroke-based topic creation,
+   repositioning, promotion/demotion, cut, and paste
  - incremental search with dynamic exposure and reconcealment of hidden text
- - automatic topic-number maintenance
+ - adjustable format, so programming code can be developed in outline-structure
  - easy topic encryption and decryption
- - \"Hot-spot\" operation, for single-keystroke maneuvering and
-    exposure control.  \(See the allout-mode docstring.)
+ - \"Hot-spot\" operation, for single-keystroke maneuvering and exposure control
+ - integral outline layout, for automatic initial exposure when visiting a file
+ - independent extensibility, using comprehensive exposure and authoring hooks
 
 and many other features.
 
-Below is a description of the bindings, and then explanation of
+Below is a description of the key bindings, and then explanation of
 special `allout-mode' features and terminology.  See also the outline
 menubar additions for quick reference to many of the features, and see
 the docstring of the function `allout-init' for instructions on
 priming your emacs session for automatic activation of `allout-mode'.
 
-
-The bindings are dictated by the `allout-keybindings-list' and
-`allout-command-prefix' variables.
-
-	Navigation:				   Exposure Control:
-	----------                                 ----------------
-\\[allout-next-visible-heading] allout-next-visible-heading     | \\[allout-hide-current-subtree] allout-hide-current-subtree
-\\[allout-previous-visible-heading] allout-previous-visible-heading | \\[allout-show-children] allout-show-children
-\\[allout-up-current-level] allout-up-current-level         | \\[allout-show-current-subtree] allout-show-current-subtree
-\\[allout-forward-current-level] allout-forward-current-level    | \\[allout-show-current-entry] allout-show-current-entry
-\\[allout-backward-current-level] allout-backward-current-level   | \\[allout-show-all] allout-show-all
-\\[allout-end-of-entry] allout-end-of-entry
-\\[allout-beginning-of-current-entry] allout-beginning-of-current-entry, alternately, goes to hot-spot
-
-	Topic Header Production:
-	-----------------------
-\\[allout-open-sibtopic]	allout-open-sibtopic	Create a new sibling after current topic.
-\\[allout-open-subtopic]	allout-open-subtopic	... an offspring of current topic.
-\\[allout-open-supertopic]	allout-open-supertopic	... a sibling of the current topic's parent.
-
-	Topic Level and Prefix Adjustment:
-	---------------------------------
-\\[allout-shift-in]	allout-shift-in	Shift current topic and all offspring deeper.
-\\[allout-shift-out]	allout-shift-out	... less deep.
-\\[allout-rebullet-current-heading]	allout-rebullet-current-heading Prompt for alternate bullet for
-					 current topic.
-\\[allout-rebullet-topic]	allout-rebullet-topic	Reconcile bullets of topic and its offspring
-				- distinctive bullets are not changed, others
-				  alternated according to nesting depth.
-\\[allout-number-siblings]	allout-number-siblings	Number bullets of topic and siblings - the
-				offspring are not affected.  With repeat
-				count, revoke numbering.
-
-	Topic-oriented Killing and Yanking:
-	----------------------------------
-\\[allout-kill-topic]	allout-kill-topic	Kill current topic, including offspring.
-\\[allout-copy-topic-as-kill]	allout-copy-topic-as-kill Copy current topic, including offspring.
-\\[allout-kill-line]	allout-kill-line	kill-line, attending to outline structure.
-\\[allout-copy-line-as-kill]	allout-copy-line-as-kill Copy line but don't delete it.
-\\[allout-yank]	allout-yank		Yank, adjusting depth of yanked topic to
-				depth of heading if yanking into bare topic
-				heading (ie, prefix sans text).
-\\[allout-yank-pop]	allout-yank-pop	Is to allout-yank as yank-pop is to yank
-
-	Topic-oriented Encryption:
-	-------------------------
-\\[allout-toggle-current-subtree-encryption]	allout-toggle-current-subtree-encryption Encrypt/Decrypt topic content
-
-	Misc commands:
-	-------------
-M-x outlineify-sticky		Activate outline mode for current buffer,
-				and establish a default file-var setting
-				for `allout-layout'.
-\\[allout-mark-topic]   	allout-mark-topic
-\\[allout-copy-exposed-to-buffer]     allout-copy-exposed-to-buffer
-				Duplicate outline, sans concealed text, to
-				buffer with name derived from derived from that
-				of current buffer - \"*BUFFERNAME exposed*\".
-\\[allout-flatten-exposed-to-buffer]	allout-flatten-exposed-to-buffer
-				Like above 'copy-exposed', but convert topic
-				prefixes to section.subsection... numeric
-				format.
-\\[eval-expression] (allout-init t)	Setup Emacs session for outline mode
-				auto-activation.
+The bindings are dictated by the customizable `allout-keybindings-list'
+variable.  We recommend customizing `allout-command-prefix' to use just
+`\\C-c' as the command prefix, if the allout bindings don't conflict with
+any personal bindings you have on \\C-c.  In any case, outline structure
+navigation and authoring is simplified by positioning the cursor on an
+item's bullet character, the \"hot-spot\" - then you can invoke allout
+commands with just the un-prefixed, un-control-shifted command letters.
+This is described further in the HOT-SPOT Operation section.
+
+        Exposure Control:
+        ----------------
+\\[allout-hide-current-subtree]   `allout-hide-current-subtree'
+\\[allout-show-children] `allout-show-children'
+\\[allout-show-current-subtree] `allout-show-current-subtree'
+\\[allout-show-current-entry] `allout-show-current-entry'
+\\[allout-show-all]   `allout-show-all'
+
+        Navigation:
+        ----------
+\\[allout-next-visible-heading] `allout-next-visible-heading'
+\\[allout-previous-visible-heading] `allout-previous-visible-heading'
+\\[allout-up-current-level] `allout-up-current-level'
+\\[allout-forward-current-level] `allout-forward-current-level'
+\\[allout-backward-current-level] `allout-backward-current-level'
+\\[allout-end-of-entry] `allout-end-of-entry'
+\\[allout-beginning-of-current-entry] `allout-beginning-of-current-entry' (alternately, goes to hot-spot)
+\\[allout-beginning-of-line]  `allout-beginning-of-line' - like regular beginning-of-line, but
+     if immediately repeated cycles to the beginning of the current item
+     and then to the hot-spot (if `allout-beginning-of-line-cycles' is set).
+
+
+        Topic Header Production:
+        -----------------------
+\\[allout-open-sibtopic] `allout-open-sibtopic' Create a new sibling after current topic.
+\\[allout-open-subtopic]   `allout-open-subtopic' ... an offspring of current topic.
+\\[allout-open-supertopic] `allout-open-supertopic' ... a sibling of the current topic's parent.
+
+        Topic Level and Prefix Adjustment:
+        ---------------------------------
+\\[allout-shift-in] `allout-shift-in'   Shift current topic and all offspring deeper
+\\[allout-shift-out] `allout-shift-out' ... less deep
+\\[allout-rebullet-current-heading] `allout-rebullet-current-heading' Prompt for alternate bullet for
+            current topic
+\\[allout-rebullet-topic] `allout-rebullet-topic'   Reconcile bullets of topic and
+            its' offspring - distinctive bullets are not changed, others
+            are alternated according to nesting depth.
+\\[allout-number-siblings] `allout-number-siblings'  Number bullets of topic and siblings -
+           the offspring are not affected.
+           With repeat count, revoke numbering.
+
+        Topic-oriented Killing and Yanking:
+        ----------------------------------
+\\[allout-kill-topic] `allout-kill-topic'   Kill current topic, including offspring.
+\\[allout-copy-topic-as-kill] `allout-copy-topic-as-kill' Copy current topic, including offspring.
+\\[allout-kill-line]     `allout-kill-line'    kill-line, attending to outline structure.
+\\[allout-copy-line-as-kill]     `allout-copy-line-as-kill' Copy line but don't delete it.
+\\[allout-yank] `allout-yank'        Yank, adjusting depth of yanked topic to
+                             depth of heading if yanking into bare topic
+                             heading (ie, prefix sans text).
+\\[allout-yank-pop]     `allout-yank-pop'       Is to allout-yank as yank-pop is to yank
+
+        Topic-oriented Encryption:
+        -------------------------
+\\[allout-toggle-current-subtree-encryption] `allout-toggle-current-subtree-encryption'
+          Encrypt/Decrypt topic content
+
+        Misc commands:
+        -------------
+M-x outlineify-sticky       Activate outline mode for current buffer,
+                            and establish a default file-var setting
+                            for `allout-layout'.
+\\[allout-mark-topic]       `allout-mark-topic'
+\\[allout-copy-exposed-to-buffer] `allout-copy-exposed-to-buffer'
+                            Duplicate outline, sans concealed text, to
+                            buffer with name derived from derived from that
+                            of current buffer - \"*BUFFERNAME exposed*\".
+\\[allout-flatten-exposed-to-buffer] `allout-flatten-exposed-to-buffer'
+                            Like above 'copy-exposed', but convert topic
+                            prefixes to section.subsection... numeric
+                            format.
+\\[eval-expression] (allout-init t) Setup Emacs session for outline mode
+                            auto-activation.
 
                   Topic Encryption
 
@@ -1742,17 +1761,22 @@
 symmetric and key-pair modes, passphrase timeout, passphrase
 consistency checking, user-provided hinting for symmetric key
 mode, and auto-encryption of topics pending encryption on save.
-\(Topics pending encryption are, by default, automatically
-encrypted during file saves; if you're editing the contents of
-such a topic, it is automatically decrypted for continued
-editing.)  The aim is reliable topic privacy while preventing
-accidents like neglected encryption before saves, forgetting
-which passphrase was used, and other practical pitfalls.
-
-See `allout-toggle-current-subtree-encryption' function docstring and
-`allout-encrypt-unencrypted-on-saves' customization variable for details.
-
-		 HOT-SPOT Operation
+
+Topics pending encryption are, by default, automatically
+encrypted during file saves.  If the contents of the topic
+containing the cursor was encrypted for a save, it is
+automatically decrypted for continued editing.
+
+The aim of these measures is reliable topic privacy while
+preventing accidents like neglected encryption before saves,
+forgetting which passphrase was used, and other practical
+pitfalls.
+
+See `allout-toggle-current-subtree-encryption' function docstring
+and `allout-encrypt-unencrypted-on-saves' customization variable
+for details.
+
+                 HOT-SPOT Operation
 
 Hot-spot operation provides a means for easy, single-keystroke outline
 navigation and exposure control.
@@ -1765,85 +1789,108 @@
 
 Thus, by positioning the cursor on a topic bullet, you can
 execute the outline navigation and manipulation commands with a
-single keystroke.  Regular navigation keys (eg, \\[forward-char], \\[next-line]) never get
+single keystroke.  Regular navigation keys (eg, \\[forward-char], \\[next-line]) don't get
 this special translation, so you can use them to get out of the
-hot-spot and back to normal operation.
-
-Note that the command `allout-beginning-of-current-entry' \(\\[allout-beginning-of-current-entry]\)
-will move to the hot-spot when the cursor is already located at the
-beginning of the current entry, so you usually can hit \\[allout-beginning-of-current-entry]
-twice in a row to get to the hot-spot.
-
-			    Terminology
+hot-spot and back to normal editing operation.
+
+In allout-mode, the normal beginning-of-line command (\\[allout-beginning-of-line]]) is
+replaced with one that makes it easy to get to the hot-spot.  If you
+repeat it immediately it cycles (if `allout-beginning-of-line-cycles'
+is set) to the beginning of the item and then, if you hit it again
+immediately, to the hot-spot.  Similarly, `allout-beginning-of-current-entry'
+\(\\[allout-beginning-of-current-entry]) moves to the hot-spot when the cursor is already located
+at the beginning of the current entry.
+
+                             Extending Allout
+
+Allout exposure and authoring activites all have associated
+hooks, by which independent code can cooperate with allout
+without changes to the allout core.  Here are key ones:
+
+`allout-mode-hook'
+`allout-mode-deactivate-hook'
+`allout-exposure-change-hook'
+`allout-structure-added-hook'
+`allout-structure-deleted-hook'
+`allout-structure-shifted-hook'
+
+                            Terminology
 
 Topic hierarchy constituents - TOPICS and SUBTOPICS:
 
-TOPIC:	A basic, coherent component of an Emacs outline.  It can
-	contain and be contained by other topics.
-CURRENT topic:
-	The visible topic most immediately containing the cursor.
-DEPTH:	The degree of nesting of a topic; it increases with
-	containment.  Also called the:
-LEVEL:	The same as DEPTH.
+ITEM:   A unitary outline element, including the HEADER and ENTRY text.
+TOPIC:  An ITEM and any ITEMs contained within it, ie having greater DEPTH
+        and with no intervening items of lower DEPTH than the container.
+CURRENT ITEM:
+        The visible ITEM most immediately containing the cursor.
+DEPTH:  The degree of nesting of an ITEM; it increases with containment.
+        The DEPTH is determined by the HEADER PREFIX.  The DEPTH is also
+        called the:
+LEVEL:  The same as DEPTH.
 
 ANCESTORS:
-	The topics that contain a topic.
-PARENT:	A topic's immediate ancestor.  It has a depth one less than
-	the topic.
+        Those ITEMs whose TOPICs contain an ITEM.
+PARENT: An ITEM's immediate ANCESTOR.  It has a DEPTH one less than that
+        of the ITEM.
 OFFSPRING:
-	The topics contained by a topic;
+        The ITEMs contained within an ITEM's TOPIC.
 SUBTOPIC:
-	An immediate offspring of a topic;
-CHILDREN:
-	The immediate offspring of a topic.
+        An OFFSPRING of its ANCESTOR TOPICs.
+CHILD:
+        An immediate SUBTOPIC of its PARENT.
 SIBLINGS:
-	Topics having the same parent and depth.
+        TOPICs having the same PARENT and DEPTH.
 
 Topic text constituents:
 
-HEADER:	The first line of a topic, include the topic PREFIX and header
-	text.
-PREFIX: The leading text of a topic which distinguishes it from normal
-        text.  It has a strict form, which consists of a prefix-lead
-        string, padding, and a bullet.  The bullet may be followed by a
+HEADER: The first line of an ITEM, include the ITEM PREFIX and HEADER
+        text.
+ENTRY:  The text content of an ITEM, before any OFFSPRING, but including
+        the HEADER text and distinct from the ITEM PREFIX.
+BODY:   Same as ENTRY.
+PREFIX: The leading text of an ITEM which distinguishes it from normal
+        ENTRY text.  Allout recognizes the outline structure according
+        to the strict PREFIX format.  It consists of a PREFIX-LEAD string,
+        PREFIX-PADDING, and a BULLET.  The BULLET might be followed by a
         number, indicating the ordinal number of the topic among its
-        siblings, a space, and then the header text.
-
-	The relative length of the PREFIX determines the nesting depth
-	of the topic.
+        siblings, or an asterisk indicating encryption, plus an optional
+        space.  After that is the ITEM HEADER text, which is not part of
+        the PREFIX.
+
+        The relative length of the PREFIX determines the nesting DEPTH
+        of the ITEM.
 PREFIX-LEAD:
-	The string at the beginning of a topic prefix, normally a `.'.
-	It can be customized by changing the setting of
-	`allout-header-prefix' and then reinitializing `allout-mode'.
-
-	By setting the prefix-lead to the comment-string of a
-	programming language, you can embed outline structuring in
-	program code without interfering with the language processing
-	of that code.  See `allout-use-mode-specific-leader'
-	docstring for more detail.
+        The string at the beginning of a HEADER PREFIX, by default a `.'.
+        It can be customized by changing the setting of
+        `allout-header-prefix' and then reinitializing `allout-mode'.
+
+        When the PREFIX-LEAD is set to the comment-string of a
+        programming language, outline structuring can be embedded in
+        program code without interfering with processing of the text
+        (by emacs or the language processor) as program code.  This
+        setting happens automatically when allout mode is used in
+        programming-mode buffers.  See `allout-use-mode-specific-leader'
+        docstring for more detail.
 PREFIX-PADDING:
-	Spaces or asterisks which separate the prefix-lead and the
-	bullet, determining the depth of the topic.
-BULLET: A character at the end of the topic prefix, it must be one of
-	the characters listed on `allout-plain-bullets-string' or
+        Spaces or asterisks which separate the PREFIX-LEAD and the
+        bullet, determining the ITEM's DEPTH.
+BULLET: A character at the end of the ITEM PREFIX, it must be one of
+        the characters listed on `allout-plain-bullets-string' or
         `allout-distinctive-bullets-string'.  (See the documentation
         for these variables for more details.)  The default choice of
-	bullet when generating topics varies in a cycle with the depth of
-	the topic.
-ENTRY:	The text contained in a topic before any offspring.
-BODY:	Same as ENTRY.
-
+        BULLET when generating ITEMs varies in a cycle with the DEPTH of
+        the ITEM.
 
 EXPOSURE:
- 	The state of a topic which determines the on-screen visibility
-	of its offspring and contained text.
+        The state of a TOPIC which determines the on-screen visibility
+        of its OFFSPRING and contained ENTRY text.
 CONCEALED:
-	Topics and entry text whose display is inhibited.  Contiguous
-	units of concealed text is represented by `...' ellipses.
-
-	Concealed topics are effectively collapsed within an ancestor.
-CLOSED:	A topic whose immediate offspring and body-text is concealed.
-OPEN:	A topic that is not closed, though its offspring or body may be."
+        TOPICs and ENTRY text whose EXPOSURE is inhibited.  Concealed
+        text is represented by \"...\" ellipses.
+
+        CONCEALED TOPICs are effectively collapsed within an ANCESTOR.
+CLOSED: A TOPIC whose immediate OFFSPRING and body-text is CONCEALED.
+OPEN:	A TOPIC that is not CLOSED, though its OFFSPRING or BODY may be."
 ;;;_    . Code
   (interactive "P")
 
@@ -1934,22 +1981,8 @@
          extend))
 
       ;; Produce map from current version of allout-keybindings-list:
-      (setq allout-mode-map
-            (produce-allout-mode-map allout-keybindings-list))
-      (substitute-key-definition 'beginning-of-line
-                                 'allout-beginning-of-line
-                                 allout-mode-map global-map)
-      (substitute-key-definition 'move-beginning-of-line
-                                 'allout-beginning-of-line
-                                 allout-mode-map global-map)
-      (substitute-key-definition 'end-of-line
-                                 'allout-end-of-line
-                                 allout-mode-map global-map)
-      (substitute-key-definition 'move-end-of-line
-                                 'allout-end-of-line
-                                 allout-mode-map global-map)
+      (allout-setup-mode-map)
       (produce-allout-mode-menubar-entries)
-      (fset 'allout-mode-map allout-mode-map)
 
       ;; Include on minor-mode-map-alist, if not already there:
       (if (not (member '(allout-mode . allout-mode-map)
@@ -2039,6 +2072,31 @@
     allout-mode
     )					; let*
   )  					; defun
+
+(defun allout-setup-mode-map ()
+  "Establish allout-mode bindings."
+  (setq-default allout-mode-map
+                (produce-allout-mode-map allout-keybindings-list))
+  (setq allout-mode-map
+        (produce-allout-mode-map allout-keybindings-list))
+  (substitute-key-definition 'beginning-of-line
+                             'allout-beginning-of-line
+                             allout-mode-map global-map)
+  (substitute-key-definition 'move-beginning-of-line
+                             'allout-beginning-of-line
+                             allout-mode-map global-map)
+  (substitute-key-definition 'end-of-line
+                             'allout-end-of-line
+                             allout-mode-map global-map)
+  (substitute-key-definition 'move-end-of-line
+                             'allout-end-of-line
+                             allout-mode-map global-map)
+  (fset 'allout-mode-map allout-mode-map))
+
+;; ensure that allout-mode-map has some setting even if allout-mode hasn't
+;; been invoked:
+(allout-setup-mode-map)
+
 ;;;_  > allout-minor-mode
 (defalias 'allout-minor-mode 'allout-mode)
 
@@ -2453,7 +2511,7 @@
             (t (allout-end-of-entry))))))
 ;;;_   > allout-next-heading ()
 (defsubst allout-next-heading ()
-  "Move to the heading for the topic \(possibly invisible) after this one.
+  "Move to the heading for the topic (possibly invisible) after this one.
 
 Returns the location of the heading, or nil if none found.
 
@@ -2476,7 +2534,7 @@
   (if (not (allout-goto-prefix-doublechecked)) (allout-next-heading)))
 ;;;_   > allout-previous-heading ()
 (defun allout-previous-heading ()
-  "Move to the prior \(possibly invisible) heading line.
+  "Move to the prior (possibly invisible) heading line.
 
 Return the location of the beginning of the heading, or nil if not found.
 
@@ -2526,7 +2584,7 @@
 (defun allout-chart-subtree (&optional levels visible orig-depth prev-depth)
   "Produce a location \"chart\" of subtopics of the containing topic.
 
-Optional argument LEVELS specifies a depth limit \(relative to start
+Optional argument LEVELS specifies a depth limit (relative to start
 depth) for the chart.  Null LEVELS means no limit.
 
 When optional argument VISIBLE is non-nil, the chart includes
@@ -2663,7 +2721,7 @@
     result))
 ;;;_   X allout-chart-spec (chart spec &optional exposing)
 ;; (defun allout-chart-spec (chart spec &optional exposing)
-;;   "Not yet \(if ever) implemented.
+;;   "Not yet (if ever) implemented.
 
 ;; Produce exposure directives given topic/subtree CHART and an exposure SPEC.
 
@@ -2684,7 +2742,7 @@
 ;;  - bare positive values indicate that this topic header should be
 ;;    opened.
 ;;  - Lists signify the beginning and end points of regions that should
-;;    be flagged, and the flag to employ.  (For concealment: `\(\?r\)', and
+;;    be flagged, and the flag to employ.  (For concealment: `(\?r)', and
 ;;    exposure:"
 ;;   (while spec
 ;;     (cond ((listp spec)
@@ -2721,7 +2779,7 @@
 (defun allout-goto-prefix-doublechecked ()
   "Put point at beginning of immediately containing outline topic.
 
-Like `allout-goto-prefix', but shallow topics \(according to
+Like `allout-goto-prefix', but shallow topics (according to
 `allout-doublecheck-at-and-shallower') are checked and
 disqualified for child containment discontinuity, according to
 `allout-aberrant-container-p'."
@@ -2749,7 +2807,7 @@
     (allout-current-depth)))
 ;;;_   > allout-current-bullet-pos ()
 (defun allout-current-bullet-pos ()
-  "Return position of current \(visible) topic's bullet."
+  "Return position of current (visible) topic's bullet."
 
   (if (not (allout-current-depth))
       nil
@@ -2887,19 +2945,31 @@
         (if (interactive-p) (allout-end-of-prefix))
         (and last-ascended allout-recent-depth))))
 ;;;_   > allout-ascend ()
-(defun allout-ascend ()
-  "Ascend one level, returning t if successful, nil if not."
+(defun allout-ascend (&optional dont-move-if-unsuccessful)
+  "Ascend one level, returning resulting depth if successful, nil if not.
+
+Point is left at the beginning of the level whether or not
+successful, unless optional DONT-MOVE-IF-UNSUCCESSFUL is set, in
+which case point is returned to its original starting location."
+  (if dont-move-if-unsuccessful
+      (setq dont-move-if-unsuccessful (point)))
   (prog1
       (if (allout-beginning-of-level)
           (let ((bolevel (point))
                 (bolevel-depth allout-recent-depth))
             (allout-previous-heading)
-            (if (< allout-recent-depth bolevel-depth)
-                allout-recent-depth
-              ;; some topic after file's first is at lower depth than first:
-              (goto-char bolevel)
-              (allout-depth)
-              nil)))
+            (cond ((< allout-recent-depth bolevel-depth)
+                   allout-recent-depth)
+                  ((= allout-recent-depth bolevel-depth)
+                   (if dont-move-if-unsuccessful
+                       (goto-char dont-move-if-unsuccessful))
+                   (allout-depth)
+                   nil)
+                  (t
+                   ;; some topic after very first is lower depth than first:
+                   (goto-char bolevel)
+                   (allout-depth)
+                   nil))))
     (if (interactive-p) (allout-end-of-prefix))))
 ;;;_   > allout-descend-to-depth (depth)
 (defun allout-descend-to-depth (depth)
@@ -2990,7 +3060,7 @@
 
 Costs more than regular `allout-next-sibling' for short traversals:
 
- - we have to check the prior \(next, if travelling backwards)
+ - we have to check the prior (next, if travelling backwards)
    item to confirm connectivity with the prior topic, and
  - if confirmed, we have to reestablish the allout-recent-* settings with
    some extra navigation
@@ -3219,7 +3289,7 @@
 the cursor which has moved as a result of such reinterpretation is
 positioned on the bullet character of the destination topic.
 
-The upshot is that you can get easy, single \(ie, unmodified\) key
+The upshot is that you can get easy, single (ie, unmodified) key
 outline maneuvering operations by positioning the cursor on the bullet
 char.  When in this mode you can use regular cursor-positioning
 command/keystrokes to relocate the cursor off of a bullet character to
@@ -3329,7 +3399,7 @@
                    (allout-get-bullet)))))
 ;;;_   > allout-encrypted-type-prefix (&optional prefix)
 (defun allout-encrypted-type-prefix (&optional prefix)
-  "True if current header prefix bullet is for an encrypted entry \(body)."
+  "True if current header prefix bullet is for an encrypted entry (body)."
   (and allout-topic-encryption-bullet
         (string= allout-topic-encryption-bullet
                  (if prefix
@@ -3380,8 +3450,8 @@
 
 If SOLICIT is non-nil, then the choice of bullet is solicited from
 user.  If it's a character, then that character is offered as the
-default, otherwise the one suited to the context \(according to
-distinction or depth) is offered.  \(This overrides other options,
+default, otherwise the one suited to the context (according to
+distinction or depth) is offered.  (This overrides other options,
 including, eg, a distinctive PRIOR-BULLET.)  If non-nil, then the
 context-specific bullet is used.
 
@@ -3505,7 +3575,7 @@
 
 When adding an offspring, it will be added immediately after the parent if
 the other offspring are exposed, or after the last child if the offspring
-are hidden.  \(The intervening offspring will be exposed in the latter
+are hidden.  (The intervening offspring will be exposed in the latter
 case.)
 
 If OFFER-RECENT-BULLET is true, offer to use the bullet of the prior sibling.
@@ -3823,7 +3893,7 @@
 
 If SOLICIT is non-nil, then the choice of bullet is solicited from
 user.  If it's a character, then that character is offered as the
-default, otherwise the one suited to the context \(according to
+default, otherwise the one suited to the context (according to
 distinction or depth) is offered.  If non-nil, then the
 context-specific bullet is just used.
 
@@ -3921,7 +3991,7 @@
 Descends into invisible as well as visible topics, however.
 
 When optional sans-offspring is non-nil, subtopics are not
-shifted.  \(Shifting a topic outwards without shifting its
+shifted.  (Shifting a topic outwards without shifting its
 offspring is disallowed, since this would create a \"containment
 discontinuity\", where the depth difference between a topic and
 its immediate offspring is greater than one.)
@@ -3962,7 +4032,7 @@
 itself: STARTING-DEPTH, STARTING-POINT, and INDEX.
 
 Finally, if optional SANS-OFFSPRING is non-nil then the offspring
-are not shifted.  \(Shifting a topic outwards without shifting
+are not shifted.  (Shifting a topic outwards without shifting
 its offspring is disallowed, since this would create a
 \"containment discontinuity\", where the depth difference between
 a topic and its immediate offspring is greater than one..)"
@@ -4445,7 +4515,7 @@
                   (while more
                     (allout-back-to-current-heading)
                                         ; go as high as we can in each bunch:
-                    (while (allout-ascend))
+                    (while (allout-ascend t))
                     (save-excursion
                       (allout-unprotected
                        (allout-rebullet-topic-grunt (- adjust-to-depth
@@ -4598,9 +4668,9 @@
   "Conceal text between FROM and TO if FLAG is non-nil, else reveal it.
 
 Exposure-change hook `allout-exposure-change-hook' is run with the same
-arguments as this function, after the exposure changes are made.  \(The old
+arguments as this function, after the exposure changes are made.  (The old
 `allout-view-change-hook' is being deprecated, and eventually will not be
-invoked.\)"
+invoked.)"
 
   ;; We use outline invisibility spec.
   (remove-overlays from to 'category 'allout-exposure-category)
@@ -4900,7 +4970,7 @@
 
 Successive specs on a list are applied to successive sibling topics.
 
-A simple spec \(either a number, one of a few symbols, or the null
+A simple spec (either a number, one of a few symbols, or the null
 list) dictates the exposure for the corresponding topic.
 
 Non-null lists recursively designate exposure specs for respective
@@ -4923,7 +4993,7 @@
        apply prior element to all siblings at current level, *up to*
        those siblings that would be covered by specs following the `:'
        on the list.  Ie, apply to all topics at level but the last
-       ones.  \(Only first of multiple colons at same level is
+       ones.  (Only first of multiple colons at same level is
        respected - subsequent ones are discarded.)
   *  - completely opens the topic, including bodies.
   +  - shows all the sub headers, but not the bodies
@@ -5006,7 +5076,7 @@
 ;;;_   > allout-old-expose-topic (spec &rest followers)
 (defun allout-old-expose-topic (spec &rest followers)
 
-  "Deprecated.  Use `allout-expose-topic' \(with different schema
+  "Deprecated.  Use `allout-expose-topic' (with different schema
 format) instead.
 
 Dictate wholesale exposure scheme for current topic, according to SPEC.
@@ -5203,7 +5273,7 @@
 
  list - Present prefix as numeric section.subsection..., starting with
 	section indicated by the list, innermost nesting first.
- `indent' \(symbol) -  Convert header prefixes to all white space,
+ `indent' (symbol) -  Convert header prefixes to all white space,
 		       except for distinctive bullets.
 
 The elements of the list produced are lists that represents a topic
@@ -5332,7 +5402,7 @@
  X`flat-indented' - Prefix is like `flat' for first topic at each
  X		   level, but subsequent topics have only leaf topic
  X		   number, padded with blanks to line up with first.
- `indent' \(symbol) -  Convert header prefixes to all white space,
+ `indent' (symbol) -  Convert header prefixes to all white space,
 		       except for distinctive bullets.
 
 Defaults:
@@ -5484,7 +5554,7 @@
 ;;;_   > allout-latex-verb-quote (string &optional flow)
 (defun allout-latex-verb-quote (string &optional flow)
   "Return copy of STRING for literal reproduction across LaTeX processing.
-Expresses the original characters \(including carriage returns) of the
+Expresses the original characters (including carriage returns) of the
 string across LaTeX processing."
   (mapconcat (function
 	      (lambda (char)
@@ -5496,9 +5566,9 @@
 	     ""))
 ;;;_   > allout-latex-verbatim-quote-curr-line ()
 (defun allout-latex-verbatim-quote-curr-line ()
-  "Express line for exact \(literal) representation across LaTeX processing.
-
-Adjust line contents so it is unaltered \(from the original line)
+  "Express line for exact (literal) representation across LaTeX processing.
+
+Adjust line contents so it is unaltered (from the original line)
 across LaTeX processing, within the context of a `verbatim'
 environment.  Leaves point at the end of the line."
   (let ((inhibit-field-text-motion t))
@@ -5673,7 +5743,7 @@
   "Encrypt clear or decrypt encoded text of visibly-containing topic's contents.
 
 Optional FETCH-PASS universal argument provokes key-pair encryption with
-single universal argument.  With doubled universal argument \(value = 16),
+single universal argument.  With doubled universal argument (value = 16),
 it forces prompting for the passphrase regardless of availability from the
 passphrase cache.  With no universal argument, the appropriate passphrase
 is obtained from the cache, if available, else from the user.
@@ -5684,10 +5754,10 @@
 encryption, include the option ``armor'' in your ~/.gnupg/gpg.conf file.
 
 Both symmetric-key and key-pair encryption is implemented.  Symmetric is
-the default, use a single \(x4) universal argument for keypair mode.
+the default, use a single (x4) universal argument for keypair mode.
 
 Encrypted topic's bullet is set to a `~' to signal that the contents of the
-topic \(body and subtopics, but not heading) is pending encryption or
+topic (body and subtopics, but not heading) is pending encryption or
 encrypted.  `*' asterisk immediately after the bullet signals that the body
 is encrypted, its' absence means the topic is meant to be encrypted but is
 not.  When a file with topics pending encryption is saved, topics pending
@@ -5695,7 +5765,7 @@
 auto-encryption specifics.
 
 \**NOTE WELL** that automatic encryption that happens during saves will
-default to symmetric encryption - you must manually \(re)encrypt key-pair
+default to symmetric encryption - you must manually (re)encrypt key-pair
 encrypted topics if you want them to continue to use the key-pair cipher.
 
 Level-one topics, with prefix consisting solely of an `*' asterisk, cannot be
@@ -5708,7 +5778,7 @@
 passphrase cache from a recent encryption action.
 
 The solicited passphrase is retained for reuse in a buffer-specific cache
-for some set period of time \(default, 60 seconds), after which the string
+for some set period of time (default, 60 seconds), after which the string
 is nulled.  The passphrase cache timeout is customized by setting
 `pgg-passphrase-cache-expiry'.
 
@@ -5731,7 +5801,7 @@
 Similarly, `allout-passphrase-hint-string' stores a user-provided reminder
 about their passphrase, and `allout-passphrase-hint-handling' specifies
 when the hint is presented, or if passphrase hints are disabled.  If
-enabled \(see the `allout-passphrase-hint-handling' docstring for details),
+enabled (see the `allout-passphrase-hint-handling' docstring for details),
 the hint string is stored in the local-variables section of the file, and
 solicited whenever the passphrase is changed."
   (interactive "P")
@@ -5742,10 +5812,10 @@
   )
 ;;;_  > allout-toggle-subtree-encryption (&optional fetch-pass)
 (defun allout-toggle-subtree-encryption (&optional fetch-pass)
-  "Encrypt clear text or decrypt encoded topic contents \(body and subtopics.)
+  "Encrypt clear text or decrypt encoded topic contents (body and subtopics.)
 
 Optional FETCH-PASS universal argument provokes key-pair encryption with
-single universal argument.  With doubled universal argument \(value = 16),
+single universal argument.  With doubled universal argument (value = 16),
 it forces prompting for the passphrase regardless of availability from the
 passphrase cache.  With no universal argument, the appropriate passphrase
 is obtained from the cache, if available, else from the user.
@@ -6489,7 +6559,7 @@
 When enabled, an entry for the variable is created if not already present,
 or changed if established with a different value.  The section for the file
 variables, itself, is created if not already present.  When created, the
-section lines \(including the section line) exist as second-level topics in
+section lines (including the section line) exist as second-level topics in
 a top-level topic at the end of the file.
 
 `enable-local-variables' must be true for any of this to happen."
@@ -6818,7 +6888,7 @@
 ;;;_ #10 Unfinished
 ;;;_  > allout-bullet-isearch (&optional bullet)
 (defun allout-bullet-isearch (&optional bullet)
-  "Isearch \(regexp) for topic with bullet BULLET."
+  "Isearch (regexp) for topic with bullet BULLET."
   (interactive)
   (if (not bullet)
       (setq bullet (solicit-char-in-string
--- a/lisp/arc-mode.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/arc-mode.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; arc-mode.el --- simple editing of archives
 
-;; Copyright (C) 1995, 1997, 1998, 2002, 2003, 2004,
+;; Copyright (C) 1995, 1997, 1998, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Morten Welinder <terra@gnu.org>
--- a/lisp/array.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/array.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; array.el --- array editing commands for GNU Emacs
 
-;; Copyright (C) 1987, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1987, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author David M. Brown
--- a/lisp/autoarg.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/autoarg.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; autoarg.el --- make digit keys supply prefix args
 
-;; Copyright (C) 1998, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author:  Dave Love <fx@gnu.org>
@@ -119,7 +119,7 @@
 With ARG, turn Autoarg mode on if ARG is positive, off otherwise.
 \\<autoarg-kp-mode-map>
 This is similar to \\[autoarg-mode] but rebinds the keypad keys `kp-1'
-&c to supply digit arguments.
+etc. to supply digit arguments.
 
 \\{autoarg-kp-mode-map}"
   nil " Aakp" autoarg-kp-mode-map :global t :group 'keyboard
--- a/lisp/autoinsert.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/autoinsert.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 ;;; autoinsert.el --- automatic mode-dependent insertion of text into new files
 
-;; Copyright (C) 1985, 1986, 1987, 1994, 1995, 1998, 2000, 2002, 2003,
-;;   2004, 2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1994, 1995, 1998, 2000, 2001, 2002,
+;;   2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Charlie Martin <crm@cs.duke.edu>
 ;; Adapted-By: Daniel Pfeiffer <occitan@esperanto.org>
--- a/lisp/avoid.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/avoid.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; avoid.el --- make mouse pointer stay out of the way of editing
 
-;; Copyright (C) 1993, 1994, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1993, 1994, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Boris Goldowsky <boris@gnu.org>
--- a/lisp/bindings.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/bindings.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1058,6 +1058,10 @@
 
 (define-key ctl-x-4-map "c" 'clone-indirect-buffer-other-window)
 
+;; Signal handlers
+(define-key global-map [signal] (make-sparse-keymap))
+(define-key global-map [signal t] 'ignore)
+
 ;; Don't look for autoload cookies in this file.
 ;; Local Variables:
 ;; no-update-autoloads: t
--- a/lisp/case-table.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/case-table.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; case-table.el --- code to extend the character set and support case tables
 
-;; Copyright (C) 1988, 1994, 2002, 2003, 2004,
+;; Copyright (C) 1988, 1994, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Howard Gayle
--- a/lisp/cdl.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/cdl.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cdl.el --- Common Data Language (CDL) utility functions for GNU Emacs
 
-;; Copyright (C) 1993, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: ATAE@spva.physics.imperial.ac.uk (Ata Etemadi)
--- a/lisp/chistory.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/chistory.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; chistory.el --- list command history
 
-;; Copyright (C) 1985, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: K. Shane Hartman
--- a/lisp/cmuscheme.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/cmuscheme.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cmuscheme.el --- Scheme process in a buffer. Adapted from tea.el
 
-;; Copyright (C) 1988, 1994, 1997, 2002, 2003, 2004,
+;; Copyright (C) 1988, 1994, 1997, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Olin Shivers <olin.shivers@cs.cmu.edu>
@@ -244,7 +244,8 @@
 If there is a process already running in `*scheme*', switch to that buffer.
 With argument, allows you to edit the command line (default is value
 of `scheme-program-name').
-If a file `~/.emacs_SCHEMENAME' exists, it is given as initial input.
+If the file `~/.emacs_SCHEMENAME' or `~/.emacs.d/init_SCHEMENAME.scm' exists,
+it is given as initial input.
 Note that this may lose due to a timing error if the Scheme processor
 discards input when it starts up.
 Runs the hook `inferior-scheme-mode-hook' \(after the `comint-mode-hook'
@@ -268,12 +269,12 @@
   "Return the name of the start file corresponding to PROG.
 Search in the directories \"~\" and \"~/.emacs.d\", in this
 order.  Return nil if no start file found."
-  (let* ((name (concat ".emacs_" (file-name-nondirectory prog)))
-         (start-file (concat "~/" name)))
+  (let ((progname (file-name-nondirectory prog))
+	(start-file (concat "~/.emacs_" progname))
+	(alt-start-file (concat "~/.emacs.d/init_" progname ".scm")))
     (if (file-exists-p start-file)
         start-file
-      (let ((start-file (concat "~/.emacs.d/" name)))
-        (and (file-exists-p start-file) start-file)))))
+      (and (file-exists-p alt-start-file) alt-start-file))))
 
 (defun scheme-send-region (start end)
   "Send the current region to the inferior Scheme process."
--- a/lisp/comint.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/comint.el	Thu Dec 07 04:14:14 2006 +0000
@@ -770,7 +770,7 @@
 		  (format "TERMCAP=emacs:co#%d:tc=unknown:" (window-width))))
 	  (unless (getenv "EMACS")
 	    (list "EMACS=t"))
-	  (list "INSIDE_EMACS=t")
+	  (list (format "INSIDE_EMACS=%s,comint" emacs-version))
 	  process-environment))
 	(default-directory
 	  (if (file-accessible-directory-p default-directory)
--- a/lisp/compare-w.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/compare-w.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; compare-w.el --- compare text between windows for Emacs
 
-;; Copyright (C) 1986, 1989, 1993, 1997, 2002, 2003, 2004,
+;; Copyright (C) 1986, 1989, 1993, 1997, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/complete.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/complete.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 ;;; complete.el --- partial completion mechanism plus other goodies
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 1999, 2000, 2002, 2003, 2004,
-;;   2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1991, 1992, 1993, 1999, 2000, 2001, 2002, 2003,
+;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <daveg@synaptics.com>
 ;; Keywords: abbrev convenience
--- a/lisp/completion.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/completion.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; completion.el --- dynamic word-completion code
 
-;; Copyright (C) 1990, 1993, 1995, 1997, 2002, 2003, 2004,
+;; Copyright (C) 1990, 1993, 1995, 1997, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/cus-dep.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/cus-dep.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cus-dep.el --- find customization dependencies
 ;;
-;; Copyright (C) 1997, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
--- a/lisp/cvs-status.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/cvs-status.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; cvs-status.el --- major mode for browsing `cvs status' output -*- coding: utf-8 -*-
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
--- a/lisp/delim-col.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/delim-col.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; delim-col.el --- prettify all columns in a region or rectangle
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Vinicius Jose Latorre <viniciusjl@ig.com.br>
--- a/lisp/descr-text.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/descr-text.el	Thu Dec 07 04:14:14 2006 +0000
@@ -206,13 +206,13 @@
 
 (defcustom describe-char-unicodedata-file nil
   "Location of Unicode data file.
-This is the UnicodeData.txt file from the Unicode consortium, used for
+This is the UnicodeData.txt file from the Unicode Consortium, used for
 diagnostics.  If it is non-nil `describe-char' will print data
 looked up from it.  This facility is mostly of use to people doing
 multilingual development.
 
-This is a fairly large file, not typically present on GNU systems.  At
-the time of writing it is at the URL
+This is a fairly large file, not typically present on GNU systems.
+At the time of writing it is at the URL
 `http://www.unicode.org/Public/UNIDATA/UnicodeData.txt'."
   :group 'mule
   :version "22.1"
@@ -234,11 +234,10 @@
   (when describe-char-unicodedata-file
     (unless (file-exists-p describe-char-unicodedata-file)
       (error "`unicodedata-file' %s not found" describe-char-unicodedata-file))
-    (with-current-buffer
-	;; Find file in fundamental mode to avoid, e.g. flyspell turned
-	;; on for .txt.  Don't use RAWFILE arg in case of DOS line endings.
-	(let ((auto-mode-alist))
-	  (find-file-noselect describe-char-unicodedata-file))
+    (with-current-buffer (get-buffer-create " *Unicode Data*")
+      (when (zerop (buffer-size))
+	;; Don't use -literally in case of DOS line endings.
+	(insert-file-contents describe-char-unicodedata-file))
       (goto-char (point-min))
       (let ((hex (format "%04X" char))
 	    found first last)
--- a/lisp/diff-mode.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/diff-mode.el	Thu Dec 07 04:14:14 2006 +0000
@@ -120,8 +120,8 @@
     ("\C-m" . diff-goto-source)
     ([mouse-2] . diff-goto-source)
     ;; From XEmacs' diff-mode.
-;; Standard M-w is useful, so don't change M-W.
-;;    ("W" . widen)
+    ;; Standard M-w is useful, so don't change M-W.
+    ;;("W" . widen)
     ;;("." . diff-goto-source)		;display-buffer
     ;;("f" . diff-goto-source)		;find-file
     ("o" . diff-goto-source)		;other-window
@@ -153,6 +153,8 @@
     ("\C-c\C-s" . diff-split-hunk)
     ("\C-c\C-t" . diff-test-hunk)
     ("\C-c\C-u" . diff-context->unified)
+    ;; `d' because it duplicates the context :-(  --Stef
+    ("\C-c\C-d" . diff-unified->context)
     ("\C-c\C-w" . diff-refine-hunk)
     ("\C-c\C-f" . next-error-follow-minor-mode))
   "Keymap for `diff-mode'.  See also `diff-mode-shared-map'.")
--- a/lisp/dired.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/dired.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1045,9 +1045,9 @@
     ;; treat top level dir extra (it may contain wildcards)
     (dired-uncache
      (if (consp dired-directory) (car dired-directory) dired-directory))
-    (dired-readin)
+    ;; Run dired-after-readin-hook just once, below.
     (let ((dired-after-readin-hook nil))
-      ;; don't run that hook for each subdir...
+      (dired-readin)
       (dired-insert-old-subdirs old-subdir-alist))
     (dired-mark-remembered mark-alist)	; mark files that were marked
     ;; ... run the hook for the whole buffer, and only after markers
--- a/lisp/dirtrack.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/dirtrack.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; dirtrack.el --- Directory Tracking by watching the prompt
 
-;; Copyright (C) 1996, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Peter Breton <pbreton@cs.umb.edu>
--- a/lisp/disp-table.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/disp-table.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; disp-table.el --- functions for dealing with char tables
 
-;; Copyright (C) 1987, 1994, 1995, 1999, 2002, 2003, 2004,
+;; Copyright (C) 1987, 1994, 1995, 1999, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Erik Naggum <erik@naggum.no>
@@ -117,7 +117,7 @@
   (or standard-display-table
       (setq standard-display-table (make-display-table)))
   (while (<= l h)
-    (aset standard-display-table l (if (or (< l ?\ ) (>= l 127)) (vector l)))
+    (aset standard-display-table l (if (or (< l ?\s) (>= l 127)) (vector l)))
     (setq l (1+ l))))
 
 ;;;###autoload
@@ -126,7 +126,7 @@
   (or standard-display-table
       (setq standard-display-table (make-display-table)))
   (while (<= l h)
-    (if (and (>= l ?\ ) (characterp l))
+    (if (and (>= l ?\s) (characterp l))
 	(aset standard-display-table l nil))
     (setq l (1+ l))))
 
--- a/lisp/dos-fns.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/dos-fns.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; dos-fns.el --- MS-Dos specific functions
 
-;; Copyright (C) 1991, 1993, 1995, 1996, 2002, 2003, 2004,
+;; Copyright (C) 1991, 1993, 1995, 1996, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: Morten Welinder <terra@diku.dk>
--- a/lisp/dos-vars.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/dos-vars.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; dos-vars.el --- MS-Dos specific user options
 
-;; Copyright (C) 1998, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1998, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/dos-w32.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/dos-w32.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;; dos-w32.el --- Functions shared among MS-DOS and W32 (NT/95) platforms
 
-;; Copyright (C) 1996, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Maintainer: Geoff Voelker <voelker@cs.washington.edu>
--- a/lisp/double.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/double.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; double.el --- support for keyboard remapping with double clicking
 
-;; Copyright (C) 1994, 1997, 1998, 2002, 2003, 2004,
+;; Copyright (C) 1994, 1997, 1998, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
--- a/lisp/ebuff-menu.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/ebuff-menu.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ebuff-menu.el --- electric-buffer-list mode
 
-;; Copyright (C) 1985, 1986, 1994, 2002, 2003, 2004,
+;; Copyright (C) 1985, 1986, 1994, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Richard Mlynarik <mly@ai.mit.edu>
@@ -73,7 +73,7 @@
 		  (catch 'electric-buffer-menu-select
 		    (message "<<< Press Return to bury the buffer list >>>")
 		    (if (eq (setq unread-command-events (list (read-event)))
-			    ?\ )
+			    ?\s)
 			(progn (setq unread-command-events nil)
 			       (throw 'electric-buffer-menu-select nil)))
 		    (let ((start-point (point))
--- a/lisp/echistory.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/echistory.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; echistory.el --- Electric Command History Mode
 
-;; Copyright (C) 1985, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: K. Shane Hartman
--- a/lisp/ediff-diff.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/ediff-diff.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1274,9 +1274,7 @@
 		;; Similarly for Windows-*
 		;; In DOS, must synchronize because DOS doesn't have
 		;; asynchronous processes.
-		(condition-case nil
-		    (apply 'call-process program nil buffer nil args)
-		  (error (format "Cannot execute program %S." program)))
+		(apply 'call-process program nil buffer nil args)
 	      ;; On other systems, do it asynchronously.
 	      (setq proc (get-buffer-process buffer))
 	      (if proc (kill-process proc))
@@ -1447,14 +1445,12 @@
   "Return t if files F1 and F2 have identical contents."
   (if (and (not (file-directory-p f1))
            (not (file-directory-p f2)))
-      (condition-case nil
-	  (let ((res
-		 (apply 'call-process ediff-cmp-program nil nil nil
-			(append ediff-cmp-options (list (expand-file-name f1)
-							(expand-file-name f2))))
-		 ))
-	    (and (numberp res) (eq res 0)))
-	(error (format "Cannot execute program %S." ediff-cmp-program)))
+      (let ((res
+	     (apply 'call-process ediff-cmp-program nil nil nil
+		    (append ediff-cmp-options (list (expand-file-name f1)
+						    (expand-file-name f2))))
+	     ))
+	(and (numberp res) (eq res 0)))
     ))
 
 
--- a/lisp/ediff-vers.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/ediff-vers.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ediff-vers.el --- version control interface to Ediff
 
-;; Copyright (C) 1995, 1996, 1997, 2002, 2003, 2004,
+;; Copyright (C) 1995, 1996, 1997, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
--- a/lisp/edmacro.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/edmacro.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; edmacro.el --- keyboard macro editor
 
-;; Copyright (C) 1993, 1994, 2002, 2003, 2004,
+;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Dave Gillespie <daveg@synaptics.com>
--- a/lisp/ehelp.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/ehelp.el	Thu Dec 07 04:14:14 2006 +0000
@@ -197,7 +197,7 @@
     (if (pos-visible-in-window-p (point-max))
 	(progn (message "%s" (substitute-command-keys "<<< Press Space to bury the help buffer, Press \\[electric-help-retain] to retain it >>>"))
 	       (if (equal (setq unread-command-events (list (read-event)))
-			  '(?\ ))
+			  '(?\s))
 		   (progn (setq unread-command-events nil)
 			  (throw 'exit t)))))
     (let (up down both neither
--- a/lisp/electric.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/electric.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; electric.el --- window maker and Command loop for `electric' modes
 
-;; Copyright (C) 1985, 1986, 1995, 2002, 2003, 2004,
+;; Copyright (C) 1985, 1986, 1995, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: K. Shane Hartman
--- a/lisp/elide-head.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/elide-head.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; elide-head.el --- hide headers in files
 
-;; Copyright (C) 1999, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Dave Love <fx@gnu.org>
--- a/lisp/emacs-lisp/authors.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/emacs-lisp/authors.el	Thu Dec 07 04:14:14 2006 +0000
@@ -43,6 +43,7 @@
 (defconst authors-aliases
   '(
     ("Andrew Csillag" "Drew Csillag")
+    ("Anna M. Bigatti" "Anna Bigatti")
     ("Barry A. Warsaw" "Barry A. Warsaw, Century Computing, Inc."
      "Barry A. Warsaw, ITB" "Barry Warsaw")
     ("Bj,Av(Brn Torkelsson" "Bjorn Torkelsson")
--- a/lisp/emacs-lisp/bytecomp.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/emacs-lisp/bytecomp.el	Thu Dec 07 04:14:14 2006 +0000
@@ -264,11 +264,12 @@
 ;; this way can never be run in Emacs 18, and may even cause it to crash.")
 
 (defcustom byte-optimize t
-  "*Enables optimization in the byte compiler.
-nil means don't do any optimization.
-t means do all optimizations.
-`source' means do source-level optimizations only.
-`byte' means do code-level optimizations only."
+  "*Enable optimization in the byte compiler.
+Possible values are:
+  nil      - no optimization
+  t        - all optimizations
+  `source' - source-level optimizations only
+  `byte'   - code-level optimizations only"
   :group 'bytecomp
   :type '(choice (const :tag "none" nil)
 		 (const :tag "all" t)
@@ -336,7 +337,7 @@
 (defcustom byte-compile-warnings t
   "*List of warnings that the byte-compiler should issue (t for all).
 
-Elements of the list may be be:
+Elements of the list may be:
 
   free-vars   references to variables not in the current lexical scope.
   unresolved  calls to unknown functions.
@@ -2864,8 +2865,12 @@
 
 (defmacro byte-compile-get-constant (const)
   `(or (if (stringp ,const)
-	   (assoc-default ,const byte-compile-constants
-			  'equal-including-properties nil)
+	   ;; In a string constant, treat properties as significant.
+	   (let (result)
+	     (dolist (elt byte-compile-constants)
+	       (if (equal-including-properties (car elt) ,const)
+		   (setq result elt)))
+	     result)
 	 (assq ,const byte-compile-constants))
        (car (setq byte-compile-constants
 		  (cons (list ,const) byte-compile-constants)))))
--- a/lisp/emacs-lisp/easy-mmode.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/emacs-lisp/easy-mmode.el	Thu Dec 07 04:14:14 2006 +0000
@@ -500,7 +500,7 @@
 		    ,(concat "^No \\(previous\\|next\\) " (regexp-quote name)))
        (defun ,next-sym (&optional count)
 	 ,(format "Go to the next COUNT'th %s." name)
-	 (interactive)
+	 (interactive "p")
 	 (unless count (setq count 1))
 	 (if (< count 0) (,prev-sym (- count))
 	   (if (looking-at ,re) (setq count (1+ count)))
@@ -523,7 +523,7 @@
        (put ',next-sym 'definition-name ',base)
        (defun ,prev-sym (&optional count)
 	 ,(format "Go to the previous COUNT'th %s" (or name base-name))
-	 (interactive)
+	 (interactive "p")
 	 (unless count (setq count 1))
 	 (if (< count 0) (,next-sym (- count))
            (let (was-narrowed)
--- a/lisp/emacs-lisp/find-func.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/emacs-lisp/find-func.el	Thu Dec 07 04:14:14 2006 +0000
@@ -147,9 +147,9 @@
 
 (defun find-library-name (library)
   "Return the absolute file name of the Lisp source of LIBRARY."
-  ;; Strip off the extension to take advantage of library suffixes in
-  ;; the call to `locate-file'.
-  (if (string-match "\\.el\\(c\\(\\..*\\)?\\)?\\'" library)
+  ;; If the library is byte-compiled, try to find a source library by
+  ;; the same name.
+  (if (string-match "\\.el\\(c\\(\\..*\\)?\\)\\'" library)
       (setq library (replace-match "" t t library)))
   (or (locate-file library
 		   (or find-function-source-path load-path)
--- a/lisp/emacs-lock.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/emacs-lock.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
-;;; emacs-lock.el --- prevents you from exiting emacs if a buffer is locked
+;;; emacs-lock.el --- prevents you from exiting Emacs if a buffer is locked
 
-;; Copyright (C) 1994, 1997, 2002, 2003, 2004,
+;; Copyright (C) 1994, 1997, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc
 
 ;; Author: Tom Wurgler <twurgler@goodyear.com>
@@ -27,12 +27,12 @@
 ;;; Commentary:
 
 ;; This code sets a buffer-local variable to t if toggle-emacs-lock is run,
-;; then if the user attempts to exit emacs, the locked buffer name will be
+;; then if the user attempts to exit Emacs, the locked buffer name will be
 ;; displayed and the exit aborted.  This is just a way of protecting
 ;; yourself from yourself.  For example, if you have a shell running a big
-;; program and exiting emacs would abort that program, you may want to lock
+;; program and exiting Emacs would abort that program, you may want to lock
 ;; that buffer, then if you forget about it after a while, you won't
-;; accidentally exit emacs.  To unlock the buffer, just goto the buffer and
+;; accidentally exit Emacs.  To unlock the buffer, just goto the buffer and
 ;; run toggle-emacs-lock again.
 
 ;;; Code:
@@ -48,34 +48,30 @@
 
 (defun check-emacs-lock ()
   "Check if variable `emacs-lock-from-exiting' is t for any buffer.
-If any t is found, signal error and display the locked buffer name."
-  (let ((buffers (buffer-list)))
-    (save-excursion
-      (while buffers
-	(set-buffer (car buffers))
-	(if emacs-lock-from-exiting
-	    (error "Emacs is locked from exit due to buffer: %s" (buffer-name))
-	  (setq buffers (cdr buffers)))))))
+If any locked buffer is found, signal error and display the buffer's name."
+  (save-excursion
+    (dolist (buffer (buffer-list))
+      (set-buffer buffer)
+      (when emacs-lock-from-exiting
+	(error "Emacs is locked from exit due to buffer: %s" (buffer-name))))))
 
 (defun toggle-emacs-lock ()
-  "Toggle `emacs-lock-from-exiting' between t and nil for the current buffer.
+  "Toggle `emacs-lock-from-exiting' for the current buffer.
 See `check-emacs-lock'."
   (interactive)
-  (if emacs-lock-from-exiting
-      (setq emacs-lock-from-exiting nil)
-    (setq emacs-lock-from-exiting t))
+  (setq emacs-lock-from-exiting (not emacs-lock-from-exiting))
   (if emacs-lock-from-exiting
       (message "Buffer is now locked")
     (message "Buffer is now unlocked")))
 
 (defun emacs-lock-check-buffer-lock ()
   "Check if variable `emacs-lock-from-exiting' is t for a buffer.
-If t is found, signal error and display the locked buffer name."
-  (if emacs-lock-from-exiting
-      (error "Buffer `%s' is locked, can't delete it" (buffer-name))))
+If the buffer is locked, signal error and display its name."
+  (when emacs-lock-from-exiting
+    (error "Buffer `%s' is locked, can't delete it" (buffer-name))))
 
 ; These next defuns make it so if you exit a shell that is locked,  the lock
-; is shut off for that shell so you can exit emacs.  Same for telnet.
+; is shut off for that shell so you can exit Emacs.  Same for telnet.
 ; Also, if a shell or a telnet buffer was locked and the process killed,
 ; turn the lock back on again if the process is restarted.
 
--- a/lisp/emulation/cua-base.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/emulation/cua-base.el	Thu Dec 07 04:14:14 2006 +0000
@@ -317,11 +317,19 @@
   :group 'cua)
 
 (defcustom cua-toggle-set-mark t
-  "*In non-nil, the `cua-set-mark' command toggles the mark."
+  "*If non-nil, the `cua-set-mark' command toggles the mark."
   :type '(choice (const :tag "Disabled" nil)
 		 (other :tag "Enabled" t))
   :group 'cua)
 
+(defcustom cua-auto-mark-last-change nil
+  "*If non-nil, set implicit mark at position of last buffer change.
+This means that \\[universal-argument] \\[cua-set-mark] will jump to the position
+of the last buffer change before jumping to the explicit marks on the mark ring.
+See `cua-set-mark' for details."
+  :type 'boolean
+  :group 'cua)
+
 (defcustom cua-enable-register-prefix 'not-ctrl-u
   "*If non-nil, registers are supported via numeric prefix arg.
 If the value is t, any numeric prefix arg in the range 0 to 9 will be
@@ -358,6 +366,15 @@
   :type 'boolean
   :group 'cua)
 
+(defcustom cua-paste-pop-rotate-temporarily nil
+  "*If non-nil, \\[cua-paste-pop] only rotates the kill-ring temporarily.
+This means that both \\[yank] and the first \\[yank-pop] in a sequence always insert
+the most recently killed text.  Each immediately following \\[cua-paste-pop] replaces
+the previous text with the next older element on the `kill-ring'.
+With prefix arg, \\[universal-argument] \\[yank-pop] inserts the same text as the most
+recent \\[yank-pop] (or \\[yank]) command."
+  :type 'boolean
+  :group 'cua)
 
 ;;; Rectangle Customization
 
@@ -912,15 +929,53 @@
 	(clipboard-yank))
        (t (yank arg)))))))
 
+
+;; cua-paste-pop-rotate-temporarily == t mechanism:
+;;
+;; C-y M-y M-y => only rotates kill ring temporarily,
+;;                so next C-y yanks what previous C-y yanked,
+;;
+;; M-y M-y M-y => equivalent to C-y M-y M-y
+;;
+;; But: After another command, C-u M-y remembers the temporary
+;;      kill-ring position, so
+;; C-u M-y     => yanks what the last M-y yanked
+;;
+
+(defvar cua-paste-pop-count nil)
+
 (defun cua-paste-pop (arg)
   "Replace a just-pasted text or rectangle with a different text.
-See `yank-pop' for details."
+See `yank-pop' for details about the default behaviour.  For an alternative
+behaviour, see `cua-paste-pop-rotate-temporarily'."
   (interactive "P")
-  (if (eq last-command 'cua--paste-rectangle)
-      (progn
-	(undo)
-	(yank arg))
-    (yank-pop (prefix-numeric-value arg))))
+  (cond
+   ((eq last-command 'cua--paste-rectangle)
+    (undo)
+    (yank arg))
+   ((not cua-paste-pop-rotate-temporarily)
+    (yank-pop (prefix-numeric-value arg)))
+   (t
+    (let ((rotate (if (consp arg) 1 (prefix-numeric-value arg))))
+      (cond
+       ((or (null cua-paste-pop-count)
+	    (eq last-command 'yank)
+	    (eq last-command 'cua-paste))
+	(setq cua-paste-pop-count rotate)
+	(setq last-command 'yank)
+	(yank-pop cua-paste-pop-count))
+       ((and (eq last-command 'cua-paste-pop) (not (consp arg)))
+	(setq cua-paste-pop-count (+ cua-paste-pop-count rotate))
+	(setq last-command 'yank)
+	(yank-pop cua-paste-pop-count))
+       (t
+	(setq cua-paste-pop-count
+	      (if (consp arg) (+ cua-paste-pop-count rotate -1) 1))
+	(yank (1+ cua-paste-pop-count)))))
+    ;; Undo rotating the kill-ring, so next C-y will
+    ;; yank the original head.
+    (setq kill-ring-yank-pointer kill-ring)
+    (setq this-command 'cua-paste-pop))))
 
 (defun cua-exchange-point-and-mark (arg)
   "Exchanges point and mark, but don't activate the mark.
@@ -961,14 +1016,14 @@
 		(if (and s (= (cdr u) s))
 		    (setq s (car u))
 		  (setq s (car u) e (cdr u)))))))
-	  (setq cua--repeat-replace-text
-		(cond ((and s e (<= s e) (= s (mark t)))
-		       (filter-buffer-substring s e nil t))
-		      ((and (null s) (eq u elt)) ;; nothing inserted
-		       "")
-		      (t
-		       (message "Cannot locate replacement text")
-		       nil))))))
+	  (cond ((and s e (<= s e) (= s (mark t)))
+		 (setq cua--repeat-replace-text
+		       (filter-buffer-substring s e nil t)))
+		((and (null s) (eq u elt)) ;; nothing inserted
+		 (setq cua--repeat-replace-text
+		       ""))
+		(t
+		 (message "Cannot locate replacement text"))))))
     (setq cua--last-deleted-region-pos nil))
   (if (and cua--last-deleted-region-text
 	   cua--repeat-replace-text
@@ -985,6 +1040,28 @@
 
 ;;; Shift activated / extended region
 
+(defun cua-pop-to-last-change ()
+  (let ((undo-list buffer-undo-list)
+	pos elt)
+    (while (and (not pos)
+		(consp undo-list))
+      (setq elt (car undo-list)
+	    undo-list (cdr undo-list))
+      (cond
+       ((integerp elt)
+	(setq pos elt))
+       ((not (consp elt)))
+       ((and (integerp (cdr elt))
+	     (or (integerp (car elt)) (stringp (car elt))))
+	(setq pos (cdr elt)))
+       ((and (eq (car elt) 'apply) (consp (cdr elt)) (integerp (cadr elt)))
+	(setq pos (nth 3 elt)))))
+    (when (and pos
+	       (/= pos (point))
+	       (>= pos (point-min)) (<= pos (point-max)))
+      (goto-char pos)
+      t)))
+
 (defun cua-set-mark (&optional arg)
   "Set mark at where point is, clear mark, or jump to mark.
 
@@ -993,12 +1070,15 @@
 global mark ring if last mark was set in another buffer.
 
 With argument, jump to mark, and pop a new position for mark off
-the local mark ring \(this does not affect the global mark ring\).
+the local mark ring (this does not affect the global mark ring).
 Use \\[pop-global-mark] to jump to a mark off the global mark ring
-\(see `pop-global-mark'\).
+\(see `pop-global-mark').
+
+If `cua-auto-mark-last-change' is non-nil, this command behaves as if there
+was an implicit mark at the position of the last buffer change.
 
 Repeating the command without the prefix jumps to the next position
-off the local \(or global\) mark ring.
+off the local (or global) mark ring.
 
 With a double \\[universal-argument] prefix argument, unconditionally set mark."
   (interactive "P")
@@ -1013,7 +1093,9 @@
     (pop-global-mark))
    (arg
     (setq this-command 'pop-to-mark-command)
-    (pop-to-mark-command))
+    (or (and cua-auto-mark-last-change
+	     (cua-pop-to-last-change))
+	(pop-to-mark-command)))
    ((and cua-toggle-set-mark mark-active)
     (cua--deactivate)
     (message "Mark Cleared"))
--- a/lisp/erc/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/erc/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,29 @@
+2006-11-28  Juanma Barranquero  <lekktu@gmail.com>
+
+	* erc.el (erc-cmd-BANLIST, erc-cmd-MASSUNBAN): Simplify.
+	(erc-prompt-for-channel-key, erc-ignore-reply-list, erc-send-post-hook)
+	(erc-active-buffer, erc-join-buffer, erc-frame-alist, erc-with-buffer)
+	(erc-modules, erc-display-message-highlight, erc-process-input-line)
+	(erc-cmd-HELP, erc-server-hooks, erc-echo-notice-in-user-buffers)
+	(erc-format-my-nick, erc-echo-notice-in-user-and-target-buffers)
+	(erc-echo-notice-in-first-user-buffer, erc-connection-established)
+	(erc-update-user-nick, erc-update-channel-member, erc-highlight-notice)
+	(erc-command-symbol, erc-add-query, erc-process-script-line)
+	(erc-determine-parameters, erc-client-info, erc-popup-input-buffer):
+	(erc-script-echo): Fix typos in docstrings.
+	(erc-channel-user-op-p, erc-channel-user-voice-p, erc-startup-file-list)
+	(define-erc-module, erc-once-with-server-event)
+	(erc-once-with-server-event-global, erc-debug-irc-protocol)
+	(erc-log-irc-protocol, erc-cmd-LOAD, erc-update-user)
+	(erc-update-current-channel-member, erc-load-script):
+	(erc-mode-line-away-status-format): Doc fixes.
+
+2006-11-24  Juanma Barranquero  <lekktu@gmail.com>
+
+	* erc.el (erc-after-connect, erc-open-ssl-stream)
+	(erc-display-line-1, erc-display-line):
+	* erc-backend.el (005): Fix space/tab mixup in docstrings.
+
 2006-11-20  Michael Olson  <mwolson@gnu.org>
 
 	* erc.el (erc-version-string): Call this Version 5.2 stable
--- a/lisp/erc/erc-backend.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/erc/erc-backend.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1226,7 +1226,7 @@
         (when buffer
           (with-current-buffer buffer
             ;; update the chat partner info.  Add to the list if private
-            ;; message.	 We will accumulate private identities indefinitely
+            ;; message.  We will accumulate private identities indefinitely
             ;; at this point.
             (erc-update-channel-member (if privp nick tgt) nick nick
                                        privp nil nil host login nil nil t)
@@ -1341,7 +1341,7 @@
 According to RFC 2812, suggests alternate servers on the network.
 Many servers, however, use this code to show which parameters they have set,
 for example, the network identifier, maximum allowed topic length, whether
-certain commands are accepted and more.	 See documentation for
+certain commands are accepted and more.  See documentation for
 `erc-server-parameters' for more information on the parameters sent.
 
 A server may send more than one 005 message."
--- a/lisp/erc/erc.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/erc/erc.el	Thu Dec 07 04:14:14 2006 +0000
@@ -474,7 +474,7 @@
     (clrhash erc-channel-users)))
 
 (defsubst erc-channel-user-op-p (nick)
-  "Return `t' if NICK is an operator in the current channel."
+  "Return t if NICK is an operator in the current channel."
   (and nick
        (hash-table-p erc-channel-users)
        (let ((cdata (erc-get-channel-user nick)))
@@ -482,7 +482,7 @@
 	      (erc-channel-user-op (cdr cdata))))))
 
 (defsubst erc-channel-user-voice-p (nick)
-  "Return `t' if NICK has voice in the current channel."
+  "Return t if NICK has voice in the current channel."
   (and nick
        (hash-table-p erc-channel-users)
        (let ((cdata (erc-get-channel-user nick)))
@@ -774,7 +774,7 @@
   :type 'boolean)
 
 (defcustom erc-prompt-for-channel-key nil
-  "Prompt for channel key when using `erc-join-channel' interactively"
+  "Prompt for channel key when using `erc-join-channel' interactively."
   :group 'erc
   :type 'boolean)
 
@@ -807,7 +807,7 @@
 CAVEAT: ERC doesn't know about the user and host of anyone who
 was already in the channel when you joined, but never said
 anything, so it won't be able to match the user and host of those
-people. You can update the ERC internal info using /WHO *."
+people.  You can update the ERC internal info using /WHO *."
   :group 'erc-ignore
   :type '(repeat regexp))
 
@@ -827,9 +827,9 @@
   "List of files to try for a startup script.
 The first existent and readable one will get executed.
 
-If the filename ends with `.el' it is presumed to be an emacs-lisp
+If the filename ends with `.el' it is presumed to be an Emacs Lisp
 script and it gets (load)ed.  Otherwise is is treated as a bunch of
-regular IRC commands"
+regular IRC commands."
   :group 'erc-scripts
   :type '(repeat file))
 
@@ -841,7 +841,7 @@
   :type '(repeat directory))
 
 (defcustom erc-script-echo t
-  "*If not-NIL, echo the IRC script commands locally."
+  "*If non-nil, echo the IRC script commands locally."
   :group 'erc-scripts
   :type 'boolean)
 
@@ -1042,7 +1042,7 @@
 NOTE: The functions on this hook are called _before_ sending a command
 to the server.
 
-This function is called with narrowing, ala `erc-send-modify-hook'"
+This function is called with narrowing, ala `erc-send-modify-hook'."
   :group 'erc-hooks
   :type 'hook
   :options '(erc-make-read-only))
@@ -1198,7 +1198,7 @@
 ENABLE-BODY is a list of expressions used to enable the mode.
 DISABLE-BODY is a list of expressions used to disable the mode.
 If LOCAL-P is non-nil, the mode will be created as a buffer-local
-mode.  Rather than a global one.
+mode, rather than a global one.
 
 This will define a minor mode called erc-NAME-mode, possibly
 an alias erc-ALIAS-mode, as well as the helper functions
@@ -1266,7 +1266,7 @@
 This function temporarily adds a function to EVENT's hook to
 execute FORMS.  After FORMS are run, the function is removed from
 EVENT's hook.  The last expression of FORMS should be either nil
-or t.  nil indicates that the other functions on EVENT's hook
+or t, where nil indicates that the other functions on EVENT's hook
 should be run too, and t indicates that other functions should
 not be run.
 
@@ -1294,7 +1294,7 @@
 This function temporarily prepends a function to EVENT's hook to
 execute FORMS.  After FORMS are run, the function is removed from
 EVENT's hook.  The last expression of FORMS should be either nil
-or t.  nil indicates that the other functions on EVENT's hook
+or t, where nil indicates that the other functions on EVENT's hook
 should be run too, and t indicates that other functions should
 not be run.
 
@@ -1390,7 +1390,7 @@
 (defvar erc-active-buffer nil
   "The current active buffer, the one where the user typed the last command.
 Defaults to the server buffer, and should only be set in the
-server buffer")
+server buffer.")
 (make-variable-buffer-local 'erc-active-buffer)
 
 (defun erc-active-buffer ()
@@ -1447,7 +1447,7 @@
 'window-noselect - in another window, but don't select that one,
 'frame - in another frame,
 'bury - bury it in a new buffer,
-any other value - in place of the current buffer"
+any other value - in place of the current buffer."
   :group 'erc-buffers
   :type '(choice (const window)
 		 (const window-noselect)
@@ -1457,7 +1457,7 @@
 
 (defcustom erc-frame-alist nil
   "*Alist of frame parameters for creating erc frames.
-A value of `nil means to use `default-frame-alist'."
+A value of nil means to use `default-frame-alist'."
   :group 'erc-buffers
   :type '(repeat (cons :format "%v"
 		       (symbol :tag "Parameter")
@@ -1573,7 +1573,7 @@
 If TARGET is a buffer, use it.  Otherwise, use the buffer
 matching TARGET in the process specified by PROCESS.
 
-If PROCESS is nil, use the current `erc-server-process'
+If PROCESS is nil, use the current `erc-server-process'.
 See `erc-get-buffer' for details.
 
 See also `with-current-buffer'.
@@ -1762,7 +1762,7 @@
 (defcustom erc-modules '(netsplit fill button match track completion readonly
 				  ring autojoin noncommands irccontrols
 				  stamp list)
-  "A list of modules which erc should enable.
+  "A list of modules which ERC should enable.
 If you set the value of this without using `customize' remember to call
 \(erc-update-modules) after you change it.  When using `customize', modules
 removed from the list will be disabled."
@@ -2022,7 +2022,7 @@
 
 (defcustom erc-after-connect nil
   "Hook called after connecting to a server.
-This hook gets executed when an end of MOTD has been received.	All
+This hook gets executed when an end of MOTD has been received.  All
 functions in here get called with the parameters SERVER and NICK."
   :group 'erc-hooks
   :type 'hook)
@@ -2119,7 +2119,7 @@
 (defun erc-open-ssl-stream (name buffer host port)
   "Open an SSL stream to an IRC server.
 The process will be given the name NAME, its target buffer will be
-BUFFER.	 HOST and PORT specify the connection target."
+BUFFER.  HOST and PORT specify the connection target."
   (when (require 'tls)
     (let ((proc (open-tls-stream name buffer host port)))
       ;; Ugly hack, but it works for now. Problem is it is
@@ -2137,7 +2137,7 @@
 
 The buffer is created if it doesn't exist.
 
-NOTE: If this variable is non-nil, and you kill the the only
+NOTE: If this variable is non-nil, and you kill the only
 visible \"*erc-protocol*\" buffer, it will be recreated shortly,
 but you won't see it.
 
@@ -2152,7 +2152,7 @@
 The buffer is created if it doesn't exist.
 
 If OUTBOUND is non-nil, STRING is being sent to the IRC server
-and appears in erc-input-face in the buffer."
+and appears in face `erc-input-face' in the buffer."
   (when erc-debug-irc-protocol
     (let ((network-name (or (ignore-errors (erc-network-name))
 			    "???")))
@@ -2236,7 +2236,7 @@
 
 (defun erc-display-line-1 (string buffer)
   "Display STRING in `erc-mode' BUFFER.
-Auxiliary function used in `erc-display-line'.	The line gets filtered to
+Auxiliary function used in `erc-display-line'.  The line gets filtered to
 interpret the control characters.  Then, `erc-insert-pre-hook' gets called.
 If `erc-insert-this' is still t, STRING gets inserted into the buffer.
 Afterwards, `erc-insert-modify' and `erc-insert-post-hook' get called.
@@ -2320,8 +2320,8 @@
 The BUFFER can be an actual buffer, a list of buffers, 'all or 'active.
 If BUFFER = 'all, the string is displayed in all the ERC buffers for the
 current session.  'active means the current active buffer
-\(`erc-active-buffer').	 If the buffer can't be resolved, the current
-buffer is used.	 `erc-display-line-1' is used to display STRING.
+\(`erc-active-buffer').  If the buffer can't be resolved, the current
+buffer is used.  `erc-display-line-1' is used to display STRING.
 
 If STRING is nil, the function does nothing."
   (let ((inhibit-point-motion-hooks t)
@@ -2347,9 +2347,9 @@
 	(erc-display-line-1 string (current-buffer))))))
 
 (defun erc-display-message-highlight (type string)
-  "Highlight STRING according to TYPE, where erc-TYPE-face is an erc face.
-
-See also `erc-make-notice'"
+  "Highlight STRING according to TYPE, where erc-TYPE-face is an ERC face.
+
+See also `erc-make-notice'."
   (cond ((eq type 'notice)
 	 (erc-make-notice string))
 	(t
@@ -2435,7 +2435,7 @@
 otherwise.
 
 If the command in the LINE is not bound as a function `erc-cmd-<COMMAND>',
-it is passed to `erc-cmd-default'.  If LINE is not a command (ie. doesn't
+it is passed to `erc-cmd-default'.  If LINE is not a command (i.e. doesn't
 start with /<COMMAND>) then it is sent as a message.
 
 An optional FORCE argument forces sending the line when flood
@@ -2661,7 +2661,7 @@
 
 If FUNC contains a valid function or variable, help about that
 will be displayed.  If FUNC is empty, display an apropos about
-erc commands.  Otherwise, do apropos in the erc namespace
+ERC commands.  Otherwise, do `apropos' in the ERC namespace
 \(\"erc-.*LINE\"\).
 
 Examples:
@@ -2787,9 +2787,9 @@
 
 (defun erc-cmd-LOAD (line)
   "Load the script provided in the LINE.
-If LINE continues beyond the file name,
-the rest of it is put in a (local) variable
-`erc-script-args', which can be used in elisp scripts.
+If LINE continues beyond the file name, the rest of
+it is put in a (local) variable `erc-script-args',
+which can be used in Emacs Lisp scripts.
 
 The optional FORCE argument is ignored here - you can't force loading
 a script after exceeding the flood threshold."
@@ -3356,7 +3356,7 @@
 				  (and (boundp 'fill-column)
 				       fill-column)
 				  (1- (window-width))))
-	     (separator (make-string erc-fill-column (string-to-char "=")))
+	     (separator (make-string erc-fill-column ?=))
 	     (fmt (concat
 		   "%-" (number-to-string (/ erc-fill-column 2)) "s"
 		   "%" (number-to-string (/ erc-fill-column 2)) "s")))
@@ -3422,7 +3422,7 @@
        (lambda (x)
 	 (erc-server-send
 	  (format "MODE %s -%s %s" (erc-default-target)
-		  (make-string (length x) (string-to-char "b"))
+		  (make-string (length x) ?b)
 			(mapconcat 'identity x " "))))
        (erc-group-list bans 3))))
 	t))))
@@ -3800,7 +3800,7 @@
 
 (defgroup erc-server-hooks nil
   "Server event callbacks.
-Every server event - like numeric replies - has it's own hook.
+Every server event - like numeric replies - has its own hook.
 Those hooks are all called using `run-hook-with-args-until-success'.
 They receive as first argument the process object from where the event
 originated from,
@@ -3879,7 +3879,7 @@
       (concat voice op (erc-server-user-nickname user)))))
 
 (defun erc-format-my-nick ()
-  "Return the beginning of this user's message, correctly propertized"
+  "Return the beginning of this user's message, correctly propertized."
   (if erc-show-my-nick
       (let ((open "<")
 	    (close "> ")
@@ -3948,7 +3948,7 @@
 sender is a member.
 
 See also: `erc-echo-notice-in-first-user-buffer',
-`erc-buffer-list-with-nick'"
+`erc-buffer-list-with-nick'."
   (let ((buffers (erc-buffer-list-with-nick sender erc-server-process)))
     (if buffers
 	(progn (erc-display-message parsed nil buffers s) t)
@@ -3963,7 +3963,7 @@
 default target.
 
 See also: `erc-echo-notice-in-user-buffers',
-`erc-buffer-list-with-nick'"
+`erc-buffer-list-with-nick'."
   (let ((buffers (erc-buffer-list-with-nick sender erc-server-process)))
     (add-to-list 'buffers buffer)
     (if buffers
@@ -3978,7 +3978,7 @@
 sender is a member.
 
 See also: `erc-echo-notice-in-user-buffers',
-`erc-buffer-list-with-nick'"
+`erc-buffer-list-with-nick'."
   (let ((buffers (erc-buffer-list-with-nick sender erc-server-process)))
     (if buffers
 	(progn (erc-display-message parsed nil (car buffers) s) t)
@@ -4061,7 +4061,7 @@
 (defun erc-connection-established (proc parsed)
   "Run just after connection.
 
-Set user modes and run `erc-after-connect hook'."
+Set user modes and run `erc-after-connect' hook."
   (unless erc-server-connected ; only once per session
     (let ((server (or erc-server-announced-name (erc-response.sender parsed)))
 	  (nick (car (erc-response.command-args parsed ))))
@@ -4391,7 +4391,7 @@
   "Updates the stored user information for the user with nickname
 NICK.
 
-See also: `erc-update-user'"
+See also: `erc-update-user'."
   (erc-update-user (erc-get-server-user nick) new-nick
 		   host login full-name info))
 
@@ -4402,9 +4402,9 @@
 non-nil and not equal to the existing values for USER are used to
 replace the stored values in USER.
 
-If, any only if a change is made,
+If, and only if, a change is made,
 `erc-channel-members-changed-hook' is run for each channel for
-which USER is a member, and `t' is returned."
+which USER is a member, and t is returned."
   (let (changed)
     (when user
       (when (and new-nick
@@ -4441,10 +4441,10 @@
 	update-message-time)
   "Updates the stored user information for the user with nickname
 NICK.  `erc-update-user' is called to handle changes to nickname,
-host, login, full-name, and info.  If `op' or `voice' are
-non-nil, they must be equal to either `on' or `off', in which
-case the operator or voice status of USER in the current channel
-is changed accordingly.  If `update-message-time' is non-nil, the
+HOST, LOGIN, FULL-NAME, and INFO.  If OP or VOICE are non-nil,
+they must be equal to either `on' or `off', in which case the
+operator or voice status of the user in the current channel is
+changed accordingly.  If UPDATE-MESSAGE-TIME is non-nil, the
 last-message-time of the user in the current channel is set
 to (current-time).
 
@@ -4453,7 +4453,7 @@
 lists.
 
 If, and only if, changes are made, or the user is added,
-`erc-channel-members-updated-hook' is run, and `t' is returned.
+`erc-channel-members-updated-hook' is run, and t is returned.
 
 See also: `erc-update-user' and `erc-update-channel-member'."
   (let* (changed user-changed
@@ -4519,7 +4519,7 @@
   "Updates user and channel information for the user with
 nickname NICK in channel CHANNEL.
 
-See also: `erc-update-current-channel-member'"
+See also: `erc-update-current-channel-member'."
   (erc-with-buffer
    (channel)
    (erc-update-current-channel-member nick new-nick add op voice host
@@ -4527,8 +4527,8 @@
 				      update-message-time)))
 
 (defun erc-remove-current-channel-member (nick)
-  "Remove NICK from current channel membership list.  Runs
-`erc-channel-members-changed-hook'."
+  "Remove NICK from current channel membership list.
+Runs `erc-channel-members-changed-hook'."
   (let ((channel-data (erc-get-channel-user nick)))
     (when channel-data
       (erc-remove-channel-user nick)
@@ -4733,7 +4733,7 @@
 
 (defun erc-highlight-notice (s)
   "Highlight notice message S and return it.
-See also variable `erc-notice-highlight-type'"
+See also variable `erc-notice-highlight-type'."
   (cond
    ((eq erc-notice-highlight-type 'prefix)
     (erc-put-text-property 0 (length erc-notice-prefix)
@@ -4950,7 +4950,7 @@
 	  (run-hooks 'erc-send-post-hook))))))
 
 (defun erc-command-symbol (command)
-  "Return the erc command symbol for COMMAND if it exists and is bound."
+  "Return the ERC command symbol for COMMAND if it exists and is bound."
   (let ((cmd (intern-soft (format "erc-cmd-%s" (upcase command)))))
     (when (fboundp cmd) cmd)))
 
@@ -5049,7 +5049,7 @@
 (defun erc-add-query (nickname)
   "Add QUERY'd NICKNAME to the default channel list.
 
-The previous default target of QUERY type gets removed"
+The previous default target of QUERY type gets removed."
   (let ((d1 (car erc-default-recipients))
 	(d2 (cdr erc-default-recipients))
 	(qt (cons 'QUERY (downcase nickname))))
@@ -5274,8 +5274,8 @@
 
 FILE must be the full name, it is not searched in the
 `erc-script-path'.  If the filename ends with `.el', then load it
-as a emacs-lisp program.  Otherwise, treat it as a regular IRC
-script"
+as an Emacs Lisp program.  Otherwise, treat it as a regular IRC
+script."
   (erc-log (concat "erc-load-script: " file))
   (cond
    ((string-match "\\.el$" file)
@@ -5287,13 +5287,13 @@
   "Process an IRC script LINE.
 
 Does script-specific substitutions (script arguments, current nick,
-server, etc.)  in LINE and returns it.
+server, etc.) in LINE and returns it.
 
 Substitutions are: %C and %c = current target (channel or nick),
 %S %s = current server, %N %n = my current nick, and %x is x verbatim,
 where x is any other character;
 $* = the entire argument string, $1 = the first argument, $2 = the second,
-end so on."
+and so on."
   (if (not args) (setq args ""))
   (let* ((arg-esc-regexp "\\(\\$\\(\\*\\|[1-9][0-9]*\\)\\)\\([^0-9]\\|$\\)")
 	 (percent-regexp "\\(%.\\)")
@@ -5418,10 +5418,10 @@
   "Determine the connection and authentication parameters.
 Sets the buffer local variables:
 
-- erc-session-server
-- erc-session-port
-- erc-session-full-name
-- erc-server-current-nick"
+- `erc-session-server'
+- `erc-session-port'
+- `erc-session-full-name'
+- `erc-server-current-nick'"
   (setq erc-session-server (erc-compute-server server)
 	erc-session-port (or port erc-default-port)
 	erc-session-user-full-name (erc-compute-full-name name))
@@ -5563,7 +5563,7 @@
 
 (defun erc-client-info (s)
   "Return CTCP CLIENTINFO on command S.
-If S is NIL or an empty string then return general CLIENTINFO"
+If S is nil or an empty string then return general CLIENTINFO."
   (if (or (not s) (string= s ""))
       (concat
        (apply #'concat
@@ -5701,7 +5701,7 @@
   "(AWAY since %a %b %d %H:%M) "
   "When you're away on a server, this is shown in the mode line.
 This should be a string with substitution variables recognized by
-format-time-message."
+`format-time-string'."
   :group 'erc-mode-line-and-header
   :type 'string)
 
@@ -5918,7 +5918,7 @@
 	(balance-windows)))))
 
 (defun erc-popup-input-buffer ()
-  "Provide a input buffer."
+  "Provide an input buffer."
    (interactive)
    (let ((buffer-name (generate-new-buffer-name "*ERC input*"))
 	 (mode (intern
--- a/lisp/expand.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/expand.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; expand.el --- make abbreviations more usable
 
-;; Copyright (C) 1995, 1996, 2002, 2003, 2004,
+;; Copyright (C) 1995, 1996, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Frederic Lepied <Frederic.Lepied@sugix.frmug.org>
--- a/lisp/facemenu.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/facemenu.el	Thu Dec 07 04:14:14 2006 +0000
@@ -132,6 +132,15 @@
   :type 'boolean
   :group 'facemenu)
 
+(defvar facemenu-unlisted-faces
+  `(modeline region secondary-selection highlight scratch-face
+    ,(purecopy "^font-lock-") ,(purecopy "^gnus-") ,(purecopy "^message-")
+    ,(purecopy "^ediff-") ,(purecopy "^term-") ,(purecopy "^vc-")
+    ,(purecopy "^widget-") ,(purecopy "^custom-") ,(purecopy "^vm-"))
+  "*List of faces that are of no interest to the user.")
+(make-obsolete-variable 'facemenu-unlisted-faces 'facemenu-listed-faces
+			"since 22.1,\nand has no effect on the Face menu")
+
 (defcustom facemenu-listed-faces nil
   "*List of faces to include in the Face menu.
 Each element should be a symbol, the name of a face.
@@ -685,8 +694,11 @@
 	    symbol (intern name)))
     (setq menu 'facemenu-face-menu)
     (setq docstring
-	  (format "Select face `%s' for subsequent insertion."
-		  name))
+	  (format "Select face `%s' for subsequent insertion.
+If the mark is active and there is no prefix argument,
+apply face `%s' to the region instead.
+This command was defined by `facemenu-add-new-face'."
+		  name name))
     (cond ((facemenu-iterate ; check if equivalent face is already in the menu
 	    (lambda (m) (and (listp m)
 			     (symbolp (car m))
--- a/lisp/ffap.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/ffap.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ffap.el --- find file (or url) at point
 
-;; Copyright (C) 1995, 1996, 1997, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Michelangelo Grigni <mic@mathcs.emory.edu>
--- a/lisp/filecache.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/filecache.el	Thu Dec 07 04:14:14 2006 +0000
@@ -4,7 +4,7 @@
 ;; Created: Sun Nov 10 1996
 ;; Keywords: convenience
 ;;
-;; Copyright (C) 1996, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1996, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
--- a/lisp/files.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/files.el	Thu Dec 07 04:14:14 2006 +0000
@@ -4081,6 +4081,11 @@
 			      "File %s no longer exists!"
 			    "Cannot revert nonexistent file %s")
 			  file-name))
+		  ((not (file-readable-p file-name))
+		   (error (if buffer-file-number
+			      "File %s no longer readable!"
+			    "Cannot revert unreadable file %s")
+			  file-name))
 		  (t
 		   ;; Bind buffer-file-name to nil
 		   ;; so that we don't try to lock the file.
--- a/lisp/find-dired.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/find-dired.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; find-dired.el --- run a `find' command and dired the output
 
-;; Copyright (C) 1992, 1994, 1995, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1992, 1994, 1995, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Roland McGrath <roland@gnu.org>,
--- a/lisp/find-file.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/find-file.el	Thu Dec 07 04:14:14 2006 +0000
@@ -4,7 +4,7 @@
 ;; Maintainer: FSF
 ;; Keywords: c, matching, tools
 
-;; Copyright (C) 1994, 1995, 2002, 2003, 2004,
+;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
--- a/lisp/find-lisp.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/find-lisp.el	Thu Dec 07 04:14:14 2006 +0000
@@ -3,9 +3,8 @@
 ;; Author: Peter Breton
 ;; Created: Fri Mar 26 1999
 ;; Keywords: unix
-;; Time-stamp: <2006-02-06 13:40:10 ttn>
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
--- a/lisp/flow-ctrl.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/flow-ctrl.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; flow-ctrl.el --- help for lusers on cu(1) or ttys with wired-in ^S/^Q flow control
 
-;; Copyright (C) 1990, 1991, 1994, 2002, 2003, 2004,
+;; Copyright (C) 1990, 1991, 1994, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author Kevin Gallagher
--- a/lisp/foldout.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/foldout.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; foldout.el --- folding extensions for outline-mode and outline-minor-mode
 
-;; Copyright (C) 1994, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Kevin Broadey <KevinB@bartley.demon.co.uk>
--- a/lisp/font-core.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/font-core.el	Thu Dec 07 04:14:14 2006 +0000
@@ -149,7 +149,7 @@
   nil nil nil
   ;; Don't turn on Font Lock mode if we don't have a display (we're running a
   ;; batch job) or if the buffer is invisible (the name starts with a space).
-  (when (or noninteractive (eq (aref (buffer-name) 0) ?\ ))
+  (when (or noninteractive (eq (aref (buffer-name) 0) ?\s))
     (setq font-lock-mode nil))
   (funcall font-lock-function font-lock-mode)
   ;; Arrange to unfontify this buffer if we change major mode later.
--- a/lisp/format.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/format.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; format.el --- read and save files in multiple formats
 
-;; Copyright (C) 1994, 1995, 1997, 1999, 2002, 2003, 2004,
+;; Copyright (C) 1994, 1995, 1997, 1999, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Boris Goldowsky <boris@gnu.org>
--- a/lisp/forms.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/forms.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; forms.el --- Forms mode: edit a file as a form to fill in
 
-;; Copyright (C) 1991, 1994, 1995, 1996, 1997, 2002, 2003,
+;; Copyright (C) 1991, 1994, 1995, 1996, 1997, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Johan Vromans <jvromans@squirrel.nl>
--- a/lisp/generic-x.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/generic-x.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; generic-x.el --- A collection of generic modes
 
-;; Copyright (C) 1997, 1998, 2002, 2003, 2004,
+;; Copyright (C) 1997, 1998, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author:  Peter Breton <pbreton@cs.umb.edu>
--- a/lisp/gnus/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,43 @@
+2006-12-06  Chris Moore  <dooglus@gmail.com>  (tiny change)
+
+	* gnus-sum.el (gnus-sort-threads, gnus-summary-limit-children):
+	Use `max' to avoid the value of `max-lisp-eval-depth' decreasing.
+
+2006-12-04  Jouni K. Sepp,Ad(Bnen  <jks@iki.fi>  (tiny change)
+
+	* mm-url.el (mm-url-predefined-programs): Call curl with correct
+	options.
+
+2006-11-30  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mml2015.el (mml2015-pgg-clear-verify): Replace encode-coding-string
+	with mm-encode-coding-string.
+
+2006-11-29  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* nneething.el (nneething-decode-file-name): Replace
+	decode-coding-string with mm-decode-coding-string.
+
+2006-11-24  Juanma Barranquero  <lekktu@gmail.com>
+
+	* gnus-agent.el (gnus-agent-expire-unagentized-dirs)
+	(gnus-agent-regenerate-group): Fix space/tab mixup in messages.
+
+	* gnus-art.el (gnus-article-x-face-command, gnus-numeric-save-name):
+	* gnus-group.el (gnus-group-sort-function, gnus-group-line-format)
+	(gnus-group-mode, gnus-group-read-group, gnus-group-delete-group)
+	(gnus-group-make-directory-group, gnus-group-transpose-groups):
+	* gnus-start.el (gnus-options-subscribe, gnus-options-not-subscribe)
+	(gnus-subscribe-newsgroup, gnus-1):
+	* gnus-sum.el (gnus-summary-make-false-root, gnus-make-threads):
+	* gnus.el (gnus-nntp-server, gnus-use-cross-reference)
+	(gnus-valid-select-methods, total-expire, gnus-summary-line-format)
+	(gnus-group-read-only-p): Fix space/tab mixup in docstrings.
+
+2006-11-21  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* mm-util.el (mm-string-to-multibyte): Alias to identity in XEmacs.
+
 2006-11-18  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>
 
 	* mm-uu.el (mm-uu-pgp-signed-extract-1): Make last fix more thorough
--- a/lisp/gnus/gnus-agent.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/gnus-agent.el	Thu Dec 07 04:14:14 2006 +0000
@@ -13,7 +13,7 @@
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
@@ -1167,7 +1167,7 @@
             ;; For each article that I processed that is no longer
             ;; undownloaded, remove its processable mark.
 
-	    (mapc #'gnus-summary-remove-process-mark 
+	    (mapc #'gnus-summary-remove-process-mark
 		  (gnus-sorted-ndifference gnus-newsgroup-processable gnus-newsgroup-undownloaded))
 
             ;; The preceeding call to (gnus-agent-summary-fetch-group)
@@ -1972,11 +1972,11 @@
 		   ;; First, we'll fix the sort.
 		   (sort-numeric-fields 1 (point-min) (point-max))
 
-		   ;; but now we have to consider that we may have duplicate rows...	  
+		   ;; but now we have to consider that we may have duplicate rows...
 		   ;; so reset to beginning of file
 		   (goto-char (point-min))
 		   (setq last -134217728)
-	  
+
 		   ;; and throw a code that restarts this scan
 		   (throw 'problems t))
 		 nil))))))
@@ -3470,7 +3470,7 @@
                    (or gnus-expert-user
                        (gnus-y-or-n-p
                         "gnus-agent-expire has identified local directories that are\
- not currently required by any agentized group.	 Do you wish to consider\
+ not currently required by any agentized group.  Do you wish to consider\
  deleting them?")))
           (while to-remove
             (let ((dir (pop to-remove)))
@@ -3756,7 +3756,7 @@
              (dir (file-name-directory file))
              point
              (downloaded (if (file-exists-p dir)
-			   (sort (delq nil (mapcar (lambda (name) 
+			   (sort (delq nil (mapcar (lambda (name)
 						     (and (not (file-directory-p (nnheader-concat dir name)))
 							  (string-to-number name)))
 						   (directory-files dir nil "^[0-9]+$" t)))
@@ -3802,7 +3802,7 @@
                                ((= l1 l2)
                                 (forward-line -1)
                                 (gnus-message 4 "gnus-agent-regenerate-group: NOV\
- entries contained duplicate of article %s.	 Duplicate deleted." l1)
+ entries contained duplicate of article %s.  Duplicate deleted." l1)
                                 (gnus-delete-line)
                                 (setq nov-arts (cdr nov-arts))))))
                       (t
@@ -3923,7 +3923,7 @@
                 (gnus-agent-possibly-alter-active group group-active)))))
 
         (when (and reread gnus-agent-article-alist)
-	(gnus-agent-synchronize-group-flags 
+	(gnus-agent-synchronize-group-flags
            group
 	 (list (list
            (if (listp reread)
--- a/lisp/gnus/gnus-art.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/gnus-art.el	Thu Dec 07 04:14:14 2006 +0000
@@ -15,7 +15,7 @@
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
@@ -265,7 +265,7 @@
 display -"))
   "*String or function to be executed to display an X-Face header.
 If it is a string, the command will be executed in a sub-shell
-asynchronously.	 The compressed face will be piped to this command."
+asynchronously.  The compressed face will be piped to this command."
   :type `(choice string
 		 (function-item gnus-display-x-face-in-from)
 		 function)
@@ -3641,7 +3641,7 @@
 (defun gnus-numeric-save-name (newsgroup headers &optional last-file)
   "Generate file name from NEWSGROUP, HEADERS, and optional LAST-FILE.
 If variable `gnus-use-long-file-name' is non-nil, it is
-~/News/news.group/num.	Otherwise, it is like ~/News/news/group/num."
+~/News/news.group/num.  Otherwise, it is like ~/News/news/group/num."
   (let ((default
 	  (expand-file-name
 	   (concat (if (gnus-use-long-file-name 'not-save)
--- a/lisp/gnus/gnus-group.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/gnus-group.el	Thu Dec 07 04:14:14 2006 +0000
@@ -131,7 +131,7 @@
 `gnus-group-sort-by-score', `gnus-group-sort-by-method',
 `gnus-group-sort-by-server', and `gnus-group-sort-by-rank'.
 
-This variable can also be a list of sorting functions.	In that case,
+This variable can also be a list of sorting functions.  In that case,
 the most significant sort function should be the last function in the
 list."
   :group 'gnus-group-listing
@@ -193,7 +193,7 @@
 
 Note that this format specification is not always respected.  For
 reasons of efficiency, when listing killed groups, this specification
-is ignored altogether.	If the spec is changed considerably, your
+is ignored altogether.  If the spec is changed considerably, your
 output may end up looking strange when listing both alive and killed
 groups.
 
@@ -1115,7 +1115,7 @@
 
 All normal editing commands are switched off.
 \\<gnus-group-mode-map>
-The group buffer lists (some of) the groups available.	For instance,
+The group buffer lists (some of) the groups available.  For instance,
 `\\[gnus-group-list-groups]' will list all subscribed groups with unread articles, while `\\[gnus-group-list-zombies]'
 lists all zombie groups.
 
@@ -2006,7 +2006,7 @@
 If the prefix argument ALL is non-nil, already read articles become
 readable.  IF ALL is a number, fetch this number of articles.  If the
 optional argument NO-ARTICLE is non-nil, no article will be
-auto-selected upon group entry.	 If GROUP is non-nil, fetch that
+auto-selected upon group entry.  If GROUP is non-nil, fetch that
 group."
   (interactive "P")
   (let ((no-display (eq all 0))
@@ -2446,7 +2446,7 @@
   "Delete the current group.  Only meaningful with editable groups.
 If FORCE (the prefix) is non-nil, all the articles in the group will
 be deleted.  This is \"deleted\" as in \"removed forever from the face
-of the Earth\".	 There is no undo.  The user will be prompted before
+of the Earth\".  There is no undo.  The user will be prompted before
 doing the deletion.
 Note that you also have to specify FORCE if you want the group to
 be removed from the server, even when it's empty."
@@ -2825,7 +2825,7 @@
 (defun gnus-group-make-directory-group (dir)
   "Create an nndir group.
 The user will be prompted for a directory.  The contents of this
-directory will be used as a newsgroup.	The directory should contain
+directory will be used as a newsgroup.  The directory should contain
 mail messages or news articles in files that have numeric names."
   (interactive
    (list (read-file-name "Create group from directory: ")))
@@ -3495,7 +3495,7 @@
 
 (defun gnus-group-transpose-groups (n)
   "Move the current newsgroup up N places.
-If given a negative prefix, move down instead.	The difference between
+If given a negative prefix, move down instead.  The difference between
 N and the number of steps taken is returned."
   (interactive "p")
   (unless (gnus-group-group-name)
@@ -4211,7 +4211,7 @@
 	(unless entry
 	  (error "Trying to change non-existent group %s" method-only-group))
 	;; We have received parts of the actual group info - either the
-	;; select method or the group parameters.	 We first check
+	;; select method or the group parameters.  We first check
 	;; whether we have to extend the info, and if so, do that.
 	(let ((len (length info))
 	      (total (if (eq part 'method) 5 6)))
--- a/lisp/gnus/gnus-start.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/gnus-start.el	Thu Dec 07 04:14:14 2006 +0000
@@ -15,7 +15,7 @@
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
@@ -352,7 +352,7 @@
 
 (defcustom gnus-options-subscribe nil
   "*All new groups matching this regexp will be subscribed unconditionally.
-Note that this variable deals only with new newsgroups.	 This variable
+Note that this variable deals only with new newsgroups.  This variable
 does not affect old newsgroups.
 
 New groups that match this regexp will not be handled by
@@ -364,7 +364,7 @@
 
 (defcustom gnus-options-not-subscribe nil
   "*All new groups matching this regexp will be ignored.
-Note that this variable deals only with new newsgroups.	 This variable
+Note that this variable deals only with new newsgroups.  This variable
 does not affect old (already subscribed) newsgroups."
   :group 'gnus-group-new
   :type '(choice regexp
@@ -622,7 +622,7 @@
 
 (defun gnus-subscribe-newsgroup (newsgroup &optional next)
   "Subscribe new NEWSGROUP.
-If NEXT is non-nil, it is inserted before NEXT.	 Otherwise it is made
+If NEXT is non-nil, it is inserted before NEXT.  Otherwise it is made
 the first newsgroup."
   (save-excursion
     (goto-char (point-min))
@@ -734,7 +734,7 @@
 (defun gnus-1 (&optional arg dont-connect slave)
   "Read network news.
 If ARG is non-nil and a positive number, Gnus will use that as the
-startup level.	If ARG is non-nil and not a positive number, Gnus will
+startup level.  If ARG is non-nil and not a positive number, Gnus will
 prompt the user for the name of an NNTP server to use."
   (interactive "P")
 
--- a/lisp/gnus/gnus-sum.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/gnus-sum.el	Thu Dec 07 04:14:14 2006 +0000
@@ -15,7 +15,7 @@
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
@@ -110,7 +110,7 @@
 If this variable is `adopt', Gnus will make one of the \"children\"
 the parent and mark all the step-children as such.
 If this variable is `empty', the \"children\" are printed with empty
-subject fields.	 (Or rather, they will be printed with a string
+subject fields.  (Or rather, they will be printed with a string
 given by the `gnus-summary-same-subject' variable.)"
   :group 'gnus-thread
   :type '(choice (const :tag "off" nil)
@@ -3975,7 +3975,7 @@
     infloop))
 
 (defun gnus-make-threads ()
-  "Go through the dependency hashtb and find the roots.	 Return all threads."
+  "Go through the dependency hashtb and find the roots.  Return all threads."
   (let (threads)
     (while (catch 'infloop
 	     (mapatoms
@@ -4481,7 +4481,7 @@
     ;; First go up in this thread until we find the root.
     (setq last-id (gnus-root-id id)
 	  headers (message-flatten-list (gnus-id-to-thread last-id)))
-    ;; We have now found the real root of this thread.	It might have
+    ;; We have now found the real root of this thread.  It might have
     ;; been gathered into some loose thread, so we have to search
     ;; through the threads to find the thread we wanted.
     (let ((threads gnus-newsgroup-threads)
@@ -4561,7 +4561,7 @@
   (if (not gnus-thread-sort-functions)
       threads
     (gnus-message 8 "Sorting threads...")
-    (let ((max-lisp-eval-depth 5000))
+    (let ((max-lisp-eval-depth (max 5000 max-lisp-eval-depth)))
       (prog1 (gnus-sort-threads-1
 	 threads
 	 (gnus-make-sort-function gnus-thread-sort-functions))
@@ -5927,7 +5927,7 @@
       (let ((case-fold-search t)
 	    in-reply-to header p lines chars)
 	(goto-char (point-min))
-	;; Search to the beginning of the next header.	Error messages
+	;; Search to the beginning of the next header.  Error messages
 	;; do not begin with 2 or 3.
 	(while (re-search-forward "^[23][0-9]+ " nil t)
 	  (setq id nil
@@ -5935,7 +5935,7 @@
 	  ;; This implementation of this function, with nine
 	  ;; search-forwards instead of the one re-search-forward and
 	  ;; a case (which basically was the old function) is actually
-	  ;; about twice as fast, even though it looks messier.	 You
+	  ;; about twice as fast, even though it looks messier.  You
 	  ;; can't have everything, I guess.  Speed and elegance
 	  ;; doesn't always go hand in hand.
 	  (setq
@@ -8165,7 +8165,7 @@
   ;; will really go down to a leaf article first, before slowly
   ;; working its way up towards the root.
   (when thread
-    (let* ((max-lisp-eval-depth 5000)
+    (let* ((max-lisp-eval-depth (max 5000 max-lisp-eval-depth))
 	   (children
 	   (if (cdr thread)
 	       (apply '+ (mapcar 'gnus-summary-limit-children
--- a/lisp/gnus/gnus.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/gnus.el	Thu Dec 07 04:14:14 2006 +0000
@@ -16,7 +16,7 @@
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
@@ -1335,7 +1335,7 @@
 
 (defcustom gnus-nntp-server nil
   "*The name of the host running the NNTP server.
-This variable is semi-obsolete.	 Use the `gnus-select-method'
+This variable is semi-obsolete.  Use the `gnus-select-method'
 variable instead."
   :group 'gnus-server
   :type '(choice (const :tag "disable" nil)
@@ -1478,7 +1478,7 @@
 (defcustom gnus-use-cross-reference t
   "*Non-nil means that cross referenced articles will be marked as read.
 If nil, ignore cross references.  If t, mark articles as read in
-subscribed newsgroups.	If neither t nor nil, mark as read in all
+subscribed newsgroups.  If neither t nor nil, mark as read in all
 newsgroups."
   :group 'gnus-server
   :type '(choice (const :tag "off" nil)
@@ -1697,7 +1697,7 @@
 this method (i. e., `post', `mail', `none' or whatever) or other
 properties that this method has (like being respoolable).
 If you implement a new select method, all you should have to change is
-this variable.	I think."
+this variable.  I think."
   :group 'gnus-server
   :type '(repeat (group (string :tag "Name")
 			(radio-button-choice (const :format "%v " post)
@@ -1851,7 +1851,7 @@
  "*Groups in which to perform expiry of all read articles.
 Use with extreme caution.  All groups that match this regexp will be
 expiring - which means that all read articles will be deleted after
-\(say) one week.	 (This only goes for mail groups and the like, of
+\(say) one week.  (This only goes for mail groups and the like, of
 course.)"
  :variable-group nnmail-expire
  :variable-type '(choice (const nil)
@@ -2983,7 +2983,7 @@
 The %U (status), %R (replied) and %z (zcore) specs have to be handled
 with care.  For reasons of efficiency, Gnus will compute what column
 these characters will end up in, and \"hard-code\" that.  This means that
-it is invalid to have these specs after a variable-length spec.	 Well,
+it is invalid to have these specs after a variable-length spec.  Well,
 you might not be arrested, but your summary buffer will look strange,
 which is bad enough.
 
@@ -3368,7 +3368,7 @@
 
 (defun gnus-group-read-only-p (&optional group)
   "Check whether GROUP supports editing or not.
-If GROUP is nil, `gnus-newsgroup-name' will be checked instead.	 Note
+If GROUP is nil, `gnus-newsgroup-name' will be checked instead.  Note
 that that variable is buffer-local to the summary buffers."
   (let ((group (or group gnus-newsgroup-name)))
     (not (gnus-check-backend-function 'request-replace-article group))))
@@ -4043,7 +4043,7 @@
     (not method)))
 
 (defun gnus-server-extend-method (group method)
-  ;; This function "extends" a virtual server.	If the server is
+  ;; This function "extends" a virtual server.  If the server is
   ;; "hello", and the select method is ("hello" (my-var "something"))
   ;; in the group "alt.alt", this will result in a new virtual server
   ;; called "hello+alt.alt".
--- a/lisp/gnus/mm-url.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/mm-url.el	Thu Dec 07 04:14:14 2006 +0000
@@ -64,7 +64,7 @@
   '((wget "wget" "--user-agent=mm-url" "-q" "-O" "-")
     (w3m  "w3m" "-dump_source")
     (lynx "lynx" "-source")
-    (curl "curl" "--silent" "--user-agent mm-url" "--location")))
+    (curl "curl" "--silent" "--user-agent" "mm-url" "--location")))
 
 (defcustom mm-url-program
   (cond
--- a/lisp/gnus/mm-util.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/mm-util.el	Thu Dec 07 04:14:14 2006 +0000
@@ -92,12 +92,6 @@
      ;; (string-to-multibyte s)   ~= (decode-coding-string s 'binary)
      ;; (string-make-multibyte s) ~= (decode-coding-string s locale-coding-system)
      (string-as-multibyte . identity)
-     (string-to-multibyte
-      . (lambda (string)
-	  "Return a multibyte string with the same individual chars as string."
-	  (mapconcat
-	   (lambda (ch) (mm-string-as-multibyte (char-to-string ch)))
-	   string "")))
      (multibyte-string-p . ignore)
      (insert-byte . insert-char)
      (multibyte-char-to-unibyte . identity))))
@@ -128,6 +122,19 @@
 	  (setq start (- (length string) tail))))
       string))))
 
+(defalias 'mm-string-to-multibyte
+  (cond
+   ((featurep 'xemacs)
+    'identity)
+   ((fboundp 'string-to-multibyte)
+    'string-to-multibyte)
+   (t
+    (lambda (string)
+      "Return a multibyte string with the same individual chars as string."
+      (mapconcat
+       (lambda (ch) (mm-string-as-multibyte (char-to-string ch)))
+       string "")))))
+
 (eval-and-compile
   (defalias 'mm-char-or-char-int-p
     (cond
--- a/lisp/gnus/mml2015.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/mml2015.el	Thu Dec 07 04:14:14 2006 +0000
@@ -785,7 +785,7 @@
     (if (condition-case err
 	    (prog1
 		(mm-with-unibyte-buffer
-		  (insert (encode-coding-string text coding-system))
+		  (insert (mm-encode-coding-string text coding-system))
 		  (pgg-verify-region (point-min) (point-max) nil t))
 	      (goto-char (point-min))
 	      (while (search-forward "\r\n" nil t)
--- a/lisp/gnus/nneething.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/gnus/nneething.el	Thu Dec 07 04:14:14 2006 +0000
@@ -303,7 +303,7 @@
       (setq buf (cons (string (string-to-number (match-string 1 file) 16))
 		      (cons (substring file pos (match-beginning 0)) buf))
 	    pos (match-end 0)))
-    (decode-coding-string
+    (mm-decode-coding-string
      (apply (function concat)
 	    (nreverse (cons (substring file pos) buf)))
      (or coding-system nnmail-pathname-coding-system))))
--- a/lisp/help-macro.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/help-macro.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; help-macro.el --- makes command line help such as help-for-help
 
-;; Copyright (C) 1993, 1994, 2002, 2003, 2004,
+;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Lynn Slater <lrs@indetech.com>
@@ -152,7 +152,7 @@
 				 (progn
 				   (if (eq (car-safe char) 'switch-frame)
 				       (handle-switch-frame char))
-				   (if (memq char '(?\C-v ?\ ))
+				   (if (memq char '(?\C-v ?\s))
 				       (scroll-up))
 				   (if (or (memq char '(?\177 ?\M-v
 							delete backspace))
--- a/lisp/help.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/help.el	Thu Dec 07 04:14:14 2006 +0000
@@ -887,7 +887,7 @@
 		    (cond
 		     ((= 0 (length i))
 		      nil)
-		     ((eq (aref i 0) ?\ )
+		     ((eq (aref i 0) ?\s)
 		      (substring i 1))
 		     (t
 		      i))))
@@ -909,7 +909,7 @@
   "Return a minor mode symbol from its indicator on the modeline."
   ;; remove first space if existed
   (if (and (< 0 (length indicator))
-	   (eq (aref indicator 0) ?\ ))
+	   (eq (aref indicator 0) ?\s))
       (setq indicator (substring indicator 1)))
   (let ((minor-modes minor-mode-alist)
 	result)
@@ -920,7 +920,7 @@
 	;; remove first space if existed
 	(if (and (stringp anindicator)
 		 (> (length anindicator) 0)
-		 (eq (aref anindicator 0) ?\ ))
+		 (eq (aref anindicator 0) ?\s))
 	    (setq anindicator (substring anindicator 1)))
 	(if (equal indicator anindicator)
 	    (setq result minor-mode
--- a/lisp/hexl.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/hexl.el	Thu Dec 07 04:14:14 2006 +0000
@@ -87,12 +87,12 @@
 
 (defface hexl-address-region
   '((t (:inherit header-line)))
-  "Face used in address are of hexl-mode buffer."
+  "Face used in address area of hexl-mode buffer."
   :group 'hexl)
 
 (defface hexl-ascii-region
   '((t (:inherit header-line)))
-  "Face used in ascii are of hexl-mode buffer."
+  "Face used in ascii area of hexl-mode buffer."
   :group 'hexl)
 
 (defvar hexl-max-address 0
@@ -100,15 +100,22 @@
 
 (defvar hexl-mode-map nil)
 
+;; Variable declarations for suppressing warnings from the byte-compiler.
 (defvar ruler-mode)
 (defvar ruler-mode-ruler-function)
 (defvar hl-line-mode)
+(defvar hl-line-range-function)
+(defvar hl-line-face)
 
+;; Variables where the original values are stored to.
 (defvar hexl-mode-old-hl-line-mode)
+(defvar hexl-mode-old-hl-line-range-function)
+(defvar hexl-mode-old-hl-line-face)
 (defvar hexl-mode-old-local-map)
 (defvar hexl-mode-old-mode-name)
 (defvar hexl-mode-old-major-mode)
 (defvar hexl-mode-old-ruler-mode)
+(defvar hexl-mode-old-ruler-function)
 (defvar hexl-mode-old-isearch-search-fun-function)
 (defvar hexl-mode-old-require-final-newline)
 (defvar hexl-mode-old-syntax-table)
@@ -207,31 +214,27 @@
   (unless (eq major-mode 'hexl-mode)
     (let ((modified (buffer-modified-p))
 	  (inhibit-read-only t)
-	  (original-point (- (point) (point-min)))
-	  max-address)
+	  (original-point (- (point) (point-min))))
       (and (eobp) (not (bobp))
 	   (setq original-point (1- original-point)))
-      (if (not (or (eq arg 1) (not arg)))
-	  ;; if no argument then we guess at hexl-max-address
-          (setq max-address (+ (* (/ (1- (buffer-size)) 68) 16) 15))
-        (setq max-address (1- (buffer-size)))
+      ;; If `hexl-mode' is invoked with an argument the buffer is assumed to
+      ;; be in hexl format.
+      (when (memq arg '(1 nil))
 	;; If the buffer's EOL type is -dos, we need to account for
 	;; extra CR characters added when hexlify-buffer writes the
 	;; buffer to a file.
+        ;; FIXME: This doesn't take into account multibyte coding systems.
 	(when (eq (coding-system-eol-type buffer-file-coding-system) 1)
-	  (setq max-address (+ (count-lines (point-min) (point-max))
-			       max-address))
-	  ;; But if there's no newline at the last line, we are off by
-	  ;; one; adjust.
-	  (or (eq (char-before (point-max)) ?\n)
-	      (setq max-address (1- max-address)))
-	  (setq original-point (+ (count-lines (point-min) (point))
+          (setq original-point (+ (count-lines (point-min) (point))
 				  original-point))
 	  (or (bolp) (setq original-point (1- original-point))))
         (hexlify-buffer)
         (restore-buffer-modified-p modified))
-      (make-local-variable 'hexl-max-address)
-      (setq hexl-max-address max-address)
+      (set (make-local-variable 'hexl-max-address)
+           (let* ((full-lines (/ (buffer-size) 68))
+                  (last-line (% (buffer-size) 68))
+                  (last-line-bytes (% last-line 52)))
+             (+ last-line-bytes (* full-lines 16) -1)))
       (condition-case nil
 	  (hexl-goto-address original-point)
 	(error nil)))
@@ -390,8 +393,16 @@
 
   (if (and (boundp 'ruler-mode) ruler-mode (not hexl-mode-old-ruler-mode))
       (ruler-mode 0))
+  (when (boundp 'hexl-mode-old-ruler-function)
+    (setq ruler-mode-ruler-function hexl-mode-old-ruler-function))
+
   (if (and (boundp 'hl-line-mode) hl-line-mode (not hexl-mode-old-hl-line-mode))
       (hl-line-mode 0))
+  (when (boundp 'hexl-mode-old-hl-line-range-function)
+    (setq hl-line-range-function hexl-mode-old-hl-line-range-function))
+  (when (boundp hexl-mode-old-hl-line-face)
+    (setq hl-line-face hexl-mode-old-hl-line-face))
+ 
   (setq require-final-newline hexl-mode-old-require-final-newline)
   (setq mode-name hexl-mode-old-mode-name)
   (setq isearch-search-fun-function hexl-mode-old-isearch-search-fun-function)
@@ -444,7 +455,7 @@
 
 (defun hexl-goto-address (address)
   "Goto hexl-mode (decimal) address ADDRESS.
-Signal error if ADDRESS out of range."
+Signal error if ADDRESS is out of range."
   (interactive "nAddress: ")
   (if (or (< address 0) (> address hexl-max-address))
       (error "Out of hexl region"))
@@ -485,7 +496,7 @@
   (hexl-goto-address (- (hexl-current-address) arg)))
 
 (defun hexl-forward-char (arg)
-  "Move right ARG bytes (left if ARG negative) in hexl-mode."
+  "Move to right ARG bytes (left if ARG negative) in hexl-mode."
   (interactive "p")
   (hexl-goto-address (+ (hexl-current-address) arg)))
 
@@ -524,7 +535,7 @@
 		       address)))
 
 (defun hexl-forward-short (arg)
-  "Move right ARG shorts (left if ARG negative) in hexl-mode."
+  "Move to right ARG shorts (left if ARG negative) in hexl-mode."
   (interactive "p")
   (hexl-backward-short (- arg)))
 
@@ -563,13 +574,13 @@
 		       address)))
 
 (defun hexl-forward-word (arg)
-  "Move right ARG words (left if ARG negative) in hexl-mode."
+  "Move to right ARG words (left if ARG negative) in hexl-mode."
   (interactive "p")
   (hexl-backward-word (- arg)))
 
 (defun hexl-previous-line (arg)
   "Move vertically up ARG lines [16 bytes] (down if ARG negative) in hexl-mode.
-If there is byte at the target address move to the last byte in that line."
+If there is no byte at the target address move to the last byte in that line."
   (interactive "p")
   (hexl-next-line (- arg)))
 
@@ -655,12 +666,12 @@
     (recenter 0)))
 
 (defun hexl-beginning-of-1k-page ()
-  "Go to beginning of 1k boundary."
+  "Go to beginning of 1KB boundary."
   (interactive)
   (hexl-goto-address (logand (hexl-current-address) -1024)))
 
 (defun hexl-end-of-1k-page ()
-  "Go to end of 1k boundary."
+  "Go to end of 1KB boundary."
   (interactive)
   (hexl-goto-address (let ((address (logior (hexl-current-address) 1023)))
 		       (if (> address hexl-max-address)
@@ -709,7 +720,9 @@
            ;; Manually encode the args, otherwise they're encoded using
            ;; coding-system-for-write (i.e. buffer-file-coding-system) which
            ;; may not be what we want (e.g. utf-16 on a non-utf-16 system).
-           (mapcar (lambda (s) (encode-coding-string s locale-coding-system))
+           (mapcar (lambda (s)
+                     (if (not (multibyte-string-p s)) s
+                       (encode-coding-string s locale-coding-system)))
                    (split-string hexl-options)))
     (if (> (point) (hexl-address-to-marker hexl-max-address))
 	(hexl-goto-address hexl-max-address))))
@@ -931,24 +944,31 @@
 (defun hexl-activate-ruler ()
   "Activate `ruler-mode'."
   (require 'ruler-mode)
+  (unless (boundp 'hexl-mode-old-ruler-function)
+    (set (make-local-variable 'hexl-mode-old-ruler-function)
+	 ruler-mode-ruler-function))
   (set (make-local-variable 'ruler-mode-ruler-function)
        'hexl-mode-ruler)
   (ruler-mode 1))
 
 (defun hexl-follow-line ()
   "Activate `hl-line-mode'."
-  (require 'frame)
   (require 'hl-line)
-  (with-no-warnings
-    (set (make-local-variable 'hl-line-range-function)
-	 'hexl-highlight-line-range)
-    (set (make-local-variable 'hl-line-face)
-	 'highlight))
+  (unless (boundp 'hexl-mode-old-hl-line-range-function)
+    (set (make-local-variable 'hexl-mode-old-hl-line-range-function)
+	 hl-line-range-function))
+  (unless (boundp 'hexl-mode-old-hl-line-face)
+    (set (make-local-variable 'hexl-mode-old-hl-line-face)
+	 hl-line-face))
+  (set (make-local-variable 'hl-line-range-function)
+       'hexl-highlight-line-range)
+  (set (make-local-variable 'hl-line-face)
+       'highlight)
   (hl-line-mode 1))
 
 (defun hexl-highlight-line-range ()
   "Return the range of address region for the point.
-This function is assumed to be used as call back function for `hl-line-mode'."
+This function is assumed to be used as callback function for `hl-line-mode'."
   (cons
    (line-beginning-position)
    ;; 9 stands for (length "87654321:")
--- a/lisp/hilit-chg.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/hilit-chg.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; hilit-chg.el --- minor mode displaying buffer changes with special face
 
-;; Copyright (C) 1998, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1998, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Richard Sharman <rsharman@pobox.com>
--- a/lisp/hippie-exp.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/hippie-exp.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; hippie-exp.el --- expand text trying various ways to find its expansion
 
-;; Copyright (C) 1992, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1992, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Anders Holst <aho@sans.kth.se>
--- a/lisp/icomplete.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/icomplete.el	Thu Dec 07 04:14:14 2006 +0000
@@ -216,7 +216,7 @@
   "Remove completions display \(if any) prior to new user input.
 Should be run in on the minibuffer `pre-command-hook'.  See `icomplete-mode'
 and `minibuffer-setup-hook'."
-  (when icomplete-eoinput
+  (when (and icomplete-mode icomplete-eoinput)
 
     (unless (>= icomplete-eoinput (point-max))
       (let ((buffer-undo-list t)) ; prevent entry
@@ -230,7 +230,7 @@
   "Insert icomplete completions display.
 Should be run via minibuffer `post-command-hook'.  See `icomplete-mode'
 and `minibuffer-setup-hook'."
-  (when (icomplete-simple-completing-p)
+  (when (and icomplete-mode (icomplete-simple-completing-p))
     (save-excursion
       (goto-char (point-max))
       ;; Register the end of input, so we know where the extra stuff
--- a/lisp/ido.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/ido.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1142,6 +1142,11 @@
 	  (pop-to-buffer b t t)
 	  (setq truncate-lines t)))))
 
+(defun ido-local-file-exists-p (file)
+  "Tell if FILE exists locally."
+  (let (file-name-handler-alist)
+    (file-exists-p file)))
+
 (defun ido-unc-hosts (&optional query)
   "Return list of UNC host names."
   (let ((hosts
@@ -2068,8 +2073,9 @@
 	      (ido-set-current-directory (file-name-directory (substring ido-current-directory 0 -1))))
 	  (setq ido-set-default-item t))
 
-	 ((and (string-match (if ido-enable-tramp-completion "..[:@]\\'" "..:\\'") ido-selected)
-	       (ido-is-root-directory)) ;; Ange-ftp or Tramp
+	 ((and (string-match (if ido-enable-tramp-completion ".[:@]\\'" ".:\\'") ido-selected)
+	       (ido-is-root-directory) ;; Ange-ftp or Tramp
+	       (not (ido-local-file-exists-p ido-selected)))
 	  (ido-set-current-directory ido-current-directory ido-selected)
 	  (ido-trace "tramp prefix" ido-selected)
 	  (if (ido-is-slow-ftp-host)
@@ -2079,7 +2085,7 @@
 
 	 ((or (string-match "[/\\][^/\\]" ido-selected)
 	      (and (memq system-type '(windows-nt ms-dos))
-		   (string-match "\\`.:" ido-selected)))
+		   (string-match "\\`[a-zA-Z]:" ido-selected)))
 	  (ido-set-current-directory (file-name-directory ido-selected))
 	  (setq ido-set-default-item t))
 
@@ -2428,7 +2434,8 @@
      ((and (= 1 (length ido-matches))
 	   (not (and ido-enable-tramp-completion
 		     (string-equal ido-current-directory "/")
-		     (string-match "..[@:]\\'" (ido-name (car ido-matches))))))
+		     (string-match ".[@:]\\'" (ido-name (car ido-matches)))))
+		     (not (ido-local-file-exists-p (ido-name (car ido-matches)))))
       ;; only one choice, so select it.
       (if (not ido-confirm-unique-completion)
 	  (exit-minibuffer)
@@ -3438,9 +3445,11 @@
       (let ((default-directory ido-current-directory))
 	(ido-to-end ;; move ftp hosts and visited files to end
 	 (delq nil (mapcar
-		    (lambda (x) (if (or (string-match "..:\\'" x)
+		    (lambda (x) (if (or (and (string-match ".:\\'" x)
+					     (not (ido-local-file-exists-p x)))
 					(and (not (ido-final-slash x))
-					     (get-file-buffer x))) x))
+					     (let (file-name-handler-alist)
+					       (get-file-buffer x)))) x))
 		    ido-temp-list)))))
     (ido-to-end  ;; move . files to end
      (delq nil (mapcar
@@ -4154,8 +4163,9 @@
 	    (setq refresh t))
 	  ))
 
-	 ((and (string-match (if ido-enable-tramp-completion "..[:@]\\'" "..:\\'") contents)
-	       (ido-is-root-directory)) ;; Ange-ftp or tramp
+	 ((and (string-match (if ido-enable-tramp-completion ".[:@]\\'" ".:\\'") contents)
+	       (ido-is-root-directory) ;; Ange-ftp or tramp
+	       (not (ido-local-file-exists-p contents)))
 	  (ido-set-current-directory ido-current-directory contents)
 	  (when (ido-is-slow-ftp-host)
 	    (setq ido-exit 'fallback)
--- a/lisp/ielm.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/ielm.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ielm.el --- interaction mode for Emacs Lisp
 
-;; Copyright (C) 1994, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: David Smith <maa036@lancaster.ac.uk>
--- a/lisp/iimage.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/iimage.el	Thu Dec 07 04:14:14 2006 +0000
@@ -87,7 +87,7 @@
 Each element looks like (REGEXP . NUM).
 NUM specifies which parenthesized expression in the regexp.
 
-image filename regex exsamples:
+Examples of image filename regexps:
     file://foo.png
     `file://foo.png'
     \\[\\[foo.gif]]
@@ -116,7 +116,7 @@
     (locate-library filename t path)))
 
 (defun iimage-mode-buffer (arg)
-"Display/Undisplay Images.
+"Display/undisplay images.
 With numeric ARG, display the images if and only if ARG is positive."
   (interactive)
   (let ((ing (if (numberp arg)
--- a/lisp/imenu.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/imenu.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; imenu.el --- framework for mode-specific buffer indexes
 
-;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2002, 2003, 2004,
+;; Copyright (C) 1994, 1995, 1996, 1997, 1998, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Ake Stenhoff <etxaksf@aom.ericsson.se>
--- a/lisp/indent.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/indent.el	Thu Dec 07 04:14:14 2006 +0000
@@ -512,7 +512,7 @@
 	(let ((opoint (point)))
 	  (delete-horizontal-space t)
 	  (indent-to (car tabs)))
-      (insert ?\ ))))
+      (insert ?\s))))
 
 (defun move-to-tab-stop ()
   "Move point to next defined tab-stop column.
@@ -529,11 +529,11 @@
 	    (goto-char before)
 	    ;; If we just added a tab, or moved over one,
 	    ;; delete any superfluous spaces before the old point.
-	    (if (and (eq (preceding-char) ?\ )
+	    (if (and (eq (preceding-char) ?\s)
 		     (eq (following-char) ?\t))
 		(let ((tabend (* (/ (current-column) tab-width) tab-width)))
 		  (while (and (> (current-column) tabend)
-			      (eq (preceding-char) ?\ ))
+			      (eq (preceding-char) ?\s))
 		    (forward-char -1))
 		  (delete-region (point) before))))))))
 
--- a/lisp/info-look.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/info-look.el	Thu Dec 07 04:14:14 2006 +0000
@@ -583,7 +583,7 @@
 			      (point) 'face nil (line-end-position)))
 		   (> end beg))
 	    (subst-char-in-string
-	     ?\ ?\- (buffer-substring-no-properties beg end)))
+	     ?\s ?\- (buffer-substring-no-properties beg end)))
 	   ((or (and (looking-at (concat "[" significant-chars "]"))
 		     (save-excursion
 		       (skip-chars-backward significant-chars)
--- a/lisp/informat.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/informat.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; informat.el --- info support functions package for Emacs
 
-;; Copyright (C) 1986, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/international/fontset.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/international/fontset.el	Thu Dec 07 04:14:14 2006 +0000
@@ -596,12 +596,13 @@
 
 (defun x-compose-font-name (fields &optional reduce)
   "Compose X fontname from FIELDS.
-FIELDS is a vector of XLFD fields, the length 12.
+FIELDS is a vector of XLFD fields, of length 12.
 If a field is nil, wild-card letter `*' is embedded.
-Optional argument REDUCE is always ignored.  It exists just for
-backward compatibility."
+Optional argument REDUCE exists just for backward compatibility,
+and is always ignored."
   (concat "-" (mapconcat (lambda (x) (or x "*")) fields "-")))
 
+
 (defun x-must-resolve-font-name (xlfd-fields)
   "Like `x-resolve-font-name', but always return a font name.
 XLFD-FIELDS is a vector of XLFD (X Logical Font Description) fields.
@@ -656,7 +657,7 @@
 (defun fontset-name-p (fontset)
   "Return non-nil if FONTSET is valid as fontset name.
 A valid fontset name should conform to XLFD (X Logical Font Description)
-with \"fontset\" in `<CHARSET_REGISTRY> field."
+with \"fontset\" in `<CHARSET_REGISTRY>' field."
   (and (string-match xlfd-tight-regexp fontset)
        (string= (match-string (1+ xlfd-regexp-registry-subnum) fontset)
 		"fontset")))
@@ -768,7 +769,7 @@
 					 &optional style-variant noerror)
   "Create a fontset from fontset specification string FONTSET-SPEC.
 FONTSET-SPEC is a string of the format:
-	FONTSET-NAME,SCRIPT-NAME0:FONT-NAME0,SCRIPT-NAME1:FONT-NAME1, ...
+	FONTSET-NAME,SCRIPT0:FONT0,SCRIPT1:FONT1, ...
 Any number of SPACE, TAB, and NEWLINE can be put before and after commas.
 
 When a frame uses the fontset as the `font' parameter, the frame's
@@ -777,8 +778,8 @@
 is \"ascii\", use the corresponding FONT-NAMEn as the default font
 name.
 
-Optional 2nd and 3rd arguments are ignored.  They exist just for
-backward compatibility.
+Optional 2nd and 3rd arguments exist just for backward compatibility,
+and are ignored.
 
 It returns a name of the created fontset.
 
@@ -817,11 +818,11 @@
 					    fontset-name)
   "Create a fontset from an ASCII font FONT.
 
-Optional 1st arg RESOLVED-FONT is a resolved name of FONT.  If
-omitted, `x-resolve-font-name' is called to get the resolved name.  At
-this time, if FONT is not available, an error is signaled.
+Optional 2nd arg RESOLVED-FONT is a resolved name of FONT.
+If omitted, `x-resolve-font-name' is called to get the resolved name.
+At this time, if FONT is not available, an error is signaled.
 
-Optional 2nd arg FONTSET-NAME is a string to be used in
+Optional 3rd arg FONTSET-NAME is a string to be used in
 `<CHARSET_ENCODING>' fields of a new fontset name.  If it is omitted,
 an appropriate name is generated automatically.
 
--- a/lisp/international/mule.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/international/mule.el	Thu Dec 07 04:14:14 2006 +0000
@@ -329,8 +329,7 @@
 	  (let ((load-file-name fullname)
 		(set-auto-coding-for-load t)
 		(inhibit-file-name-operation nil))
-	    (save-excursion
-	      (set-buffer buffer)
+	    (with-current-buffer buffer
 	      ;; Don't let deactivate-mark remain set.
 	      (let (deactivate-mark)
 		(insert-file-contents fullname))
@@ -2203,8 +2202,7 @@
 	   (progn
 	     (set-category-table ,table)
 	     ,@body)
-	 (save-current-buffer
-	   (set-buffer ,old-buffer)
+	 (with-current-buffer ,old-buffer
 	   (set-category-table ,old-table))))))
 
 (defun define-translation-hash-table (symbol table)
--- a/lisp/jka-compr.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/jka-compr.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; jka-compr.el --- reading/writing/loading compressed files
 
-;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2003,
+;; Copyright (C) 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: jka@ece.cmu.edu (Jay K. Adams)
--- a/lisp/kermit.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/kermit.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; kermit.el --- additions to shell mode for use with kermit
 
-;; Copyright (C) 1988, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1988, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Jeff Norden <jeff@colgate.csnet>
--- a/lisp/kmacro.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/kmacro.el	Thu Dec 07 04:14:14 2006 +0000
@@ -24,15 +24,14 @@
 
 ;;; Commentary:
 
-;; The kmacro package is an alternative user interface to emacs'
-;; keyboard macro functionality.  This functionality is normally bound
-;; to C-x (, C-x ), and C-x e, but these bindings are too hard to
-;; type to be really useful for doing small repeated tasks.
+;; The kmacro package provides the user interface to emacs' basic
+;; keyboard macro functionality.  With kmacro, two function keys are
+;; dedicated to keyboard macros, by default F3 and F4.
 
-;; With kmacro, two function keys are dedicated to keyboard macros,
-;; by default F3 and F4.  Personally, I prefer F1 and F2, but those
-;; keys already have default bindings.
-;;
+;; Note: The traditional bindings C-x (, C-x ), and C-x e are still
+;; supported, but for some users these bindings are too hard to type
+;; to be really useful for doing small repeated tasks.
+
 ;; To start defining a keyboard macro, use F3.  To end the macro,
 ;; use F4, and to call the macro also use F4.  This makes it very
 ;; easy to repeat a macro immediately after defining it.
@@ -55,7 +54,6 @@
 ;; elements with C-x C-k C-t.  To delete the first element in the
 ;; macro ring, use C-x C-k C-d.
 ;;
-;;
 ;; You can also use C-x C-k C-s to start a macro, and C-x C-k C-k to
 ;; end it; then use C-k to execute it immediately, or C-x C-k C-k to
 ;; execute it later.
--- a/lisp/language/thai-word.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/language/thai-word.el	Thu Dec 07 04:14:14 2006 +0000
@@ -10805,7 +10805,7 @@
 
 
 ;; Move point forward to the end of Thai word which follows point and
-;; update VEC.	VEC is a vector of three elements used to cache word
+;; update VEC.  VEC is a vector of three elements used to cache word
 ;; end positions.  The Nth element, if non-nil, is a list of end
 ;; points of the Nth word, or t indicating that there is no Thai
 ;; character.  LIMIT limits the point movement.
@@ -10886,7 +10886,7 @@
 	  nil)
 	(progn
 	  ;; We found four succeeding Thai words (or LIMIT has been
-	  ;; reached).	Move to the end of the first word.
+	  ;; reached).  Move to the end of the first word.
 	  (goto-char (car v0))
 	  ;; Update VEC for the next function call.  If no larger word
 	  ;; positions have been found, set the corresponding vector
@@ -10899,7 +10899,7 @@
 	      (aset vec 1 v2)
 	      (aset vec 2 v3)))) ; exit function successfully
 
-      ;; We didn't find four consecutive words.	 If we have found a
+      ;; We didn't find four consecutive words.  If we have found a
       ;; `second best' solution and the length of those two words is
       ;; longer than the longest word we can see at the current point,
       ;; adopt the second best solution.  This decision is based on
--- a/lisp/ledit.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/ledit.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ledit.el --- Emacs side of ledit interface
 
-;; Copyright (C) 1985, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -57,7 +57,7 @@
 *Shell commands to execute to resume Lisp compiler job.")
 
 (defun ledit-save-defun ()
-  "Save the current defun in the ledit buffer"
+  "Save the current defun in the ledit buffer."
   (interactive)
   (save-excursion
    (end-of-defun)
@@ -141,6 +141,7 @@
   \\[ledit-go-to-lisp] -- transfer to Lisp job and transmit saved text.
   \\[ledit-go-to-liszt] -- transfer to Liszt (Lisp compiler) job
 	   and transmit saved text.
+
 \\{ledit-mode-map}
 To make Lisp mode automatically change to Ledit mode,
 do (setq lisp-mode-hook 'ledit-from-lisp-mode)"
--- a/lisp/loadhist.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/loadhist.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; loadhist.el --- lisp functions for working with feature groups
 
-;; Copyright (C) 1995, 1998, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1995, 1998, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Eric S. Raymond <esr@snark.thyrsus.com>
--- a/lisp/locate.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/locate.el	Thu Dec 07 04:14:14 2006 +0000
@@ -430,7 +430,7 @@
   (save-excursion
     (forward-line 0)
     (looking-at (concat "."
-			(make-string (1- locate-filename-indentation) ?\ )
+			(make-string (1- locate-filename-indentation) ?\s)
 			"\\(/\\|[A-Za-z]:\\)"))))
 
 (defun locate-mouse-view-file (event)
@@ -478,7 +478,7 @@
   ;; This should support both Unix and Windoze style names
   (setq directory-listing-before-filename-regexp
 	(concat "^."
-		(make-string (1- locate-filename-indentation) ?\ )
+		(make-string (1- locate-filename-indentation) ?\s)
 		"\\(/\\|[A-Za-z]:\\)\\|"
 		(default-value 'directory-listing-before-filename-regexp)))
   (make-local-variable 'dired-actual-switches)
@@ -486,7 +486,7 @@
   (make-local-variable 'dired-permission-flags-regexp)
   (setq dired-permission-flags-regexp
 	(concat "^.\\("
-		(make-string (1- locate-filename-indentation) ?\ )
+		(make-string (1- locate-filename-indentation) ?\s)
 		"\\)\\|"
 		(default-value 'dired-permission-flags-regexp)))
   (make-local-variable 'revert-buffer-function)
@@ -511,7 +511,7 @@
     (locate-insert-header search-string)
 
     (while (not (eobp))
-      (insert-char ?\  locate-filename-indentation t)
+      (insert-char ?\s locate-filename-indentation t)
       (locate-set-properties)
       (forward-line 1)))
   (goto-char (point-min)))
--- a/lisp/log-edit.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/log-edit.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; log-edit.el --- Major mode for editing CVS commit messages
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
--- a/lisp/longlines.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/longlines.el	Thu Dec 07 04:14:14 2006 +0000
@@ -258,7 +258,7 @@
 		     (if (> longlines-wrap-point (point))
 			 (setq longlines-wrap-point
 			       (1- longlines-wrap-point))))
-		 (insert-before-markers-and-inherit ?\ )
+		 (insert-before-markers-and-inherit ?\s)
 		 (backward-char 1)
 		 (delete-char -1)
 		 (forward-char 1))
--- a/lisp/ls-lisp.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/ls-lisp.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; ls-lisp.el --- emulate insert-directory completely in Emacs Lisp
 
-;; Copyright (C) 1992, 1994, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1992, 1994, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Sebastian Kremer <sk@thp.uni-koeln.de>
--- a/lisp/macros.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/macros.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; macros.el --- non-primitive commands for keyboard macros
 
-;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1995, 2002, 2003,
+;; Copyright (C) 1985, 1986, 1987, 1992, 1994, 1995, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -130,7 +130,7 @@
       (if (vectorp definition)
 	  (let ((len (length definition)) (i 0) char mods)
 	    (while (< i len)
-	      (insert (if (zerop i) ?\[ ?\ ))
+	      (insert (if (zerop i) ?\[ ?\s))
 	      (setq char (aref definition i)
 		    i (1+ i))
 	      (cond ((not (numberp char))
--- a/lisp/mail/smtpmail.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/mail/smtpmail.el	Thu Dec 07 04:14:14 2006 +0000
@@ -244,6 +244,11 @@
 	(save-excursion
 	  (set-buffer tembuf)
 	  (erase-buffer)
+	  ;; Use the same buffer-file-coding-system as in the mail
+	  ;; buffer, otherwise any write-region invocations (e.g., in
+	  ;; mail-do-fcc below) will annoy with asking for a suitable
+	  ;; encoding.
+	  (set-buffer-file-coding-system smtpmail-code-conv-from nil t)
 	  (insert-buffer-substring mailbuf)
 	  (goto-char (point-max))
 	  ;; require one newline at the end.
@@ -326,6 +331,22 @@
 	    (goto-char (point-min))
 	    (unless (re-search-forward "^Date:" delimline t)
 	      (insert "Date: " (message-make-date) "\n"))
+	    ;; Possibly add a MIME header for the current coding system
+	    (let (charset)
+	      (goto-char (point-min))
+	      (and (eq mail-send-nonascii 'mime)
+		   (not (re-search-forward "^MIME-version:" delimline t))
+		   (progn (skip-chars-forward "\0-\177")
+			  (/= (point) (point-max)))
+		   smtpmail-code-conv-from
+		   (setq charset
+			 (coding-system-get smtpmail-code-conv-from
+					    'mime-charset))
+		   (goto-char delimline)
+		   (insert "MIME-version: 1.0\n"
+			   "Content-type: text/plain; charset="
+			   (symbol-name charset)
+			   "\nContent-Transfer-Encoding: 8bit\n")))
 	    ;; Insert an extra newline if we need it to work around
 	    ;; Sun's bug that swallows newlines.
 	    (goto-char (1+ delimline))
@@ -334,7 +355,10 @@
 	    ;; Find and handle any FCC fields.
 	    (goto-char (point-min))
 	    (if (re-search-forward "^FCC:" delimline t)
-		(mail-do-fcc delimline))
+		;; Force mail-do-fcc to use the encoding of the mail
+		;; buffer to encode outgoing messages on FCC files.
+		(let ((coding-system-for-write smtpmail-code-conv-from))
+		  (mail-do-fcc delimline)))
 	    (if mail-interactive
 		(with-current-buffer errbuf
 		  (erase-buffer))))
@@ -370,6 +394,7 @@
 		(make-directory smtpmail-queue-dir t))
 	      (with-current-buffer buffer-data
 		(erase-buffer)
+		(set-buffer-file-coding-system smtpmail-code-conv-from nil t)
 		(insert-buffer-substring tembuf)
 		(write-file file-data)
 		(set-buffer buffer-elisp)
--- a/lisp/makesum.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/makesum.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; makesum.el --- generate key binding summary for Emacs
 
-;; Copyright (C) 1985, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1985, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/master.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/master.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,7 @@
 ;;; master.el --- make a buffer the master over another buffer
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005 Alexander Schroeder
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+;;   Free Software Foundation, Inc.
 
 ;; Author: Alex Schroeder <alex@gnu.org>
 ;; Maintainer: Alex Schroeder <alex@gnu.org>
--- a/lisp/menu-bar.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/menu-bar.el	Thu Dec 07 04:14:14 2006 +0000
@@ -462,9 +462,10 @@
 	      "Delete the text in region between mark and current position"))
 (defvar yank-menu (cons "Select Yank" nil))
 (fset 'yank-menu (cons 'keymap yank-menu))
-(define-key menu-bar-edit-menu [select-paste]
-  '(menu-item "Select and Paste" yank-menu
-	      :enable (and (cdr yank-menu) (not buffer-read-only))))
+(define-key menu-bar-edit-menu [paste-from-menu]
+  '(menu-item "Paste from kill menu" yank-menu
+	      :enable (and (cdr yank-menu) (not buffer-read-only))
+	      :help "Choose a string from the kill ring and paste it"))
 (define-key menu-bar-edit-menu [paste]
   '(menu-item "Paste" yank
 	      :enable (and
@@ -623,8 +624,8 @@
 		 (let ((set (or (get ',variable 'custom-set) 'set-default))
 		       (get (or (get ',variable 'custom-get) 'default-value)))
 		   (funcall set ',variable (not (funcall get ',variable))))))
-	   (message ,message "enabled")
-  	 (message ,message "disabled"))
+	   (message ,message "enabled globally")
+  	 (message ,message "disabled globally"))
        ;; The function `customize-mark-as-set' must only be called when
        ;; a variable is set interactively, as the purpose is to mark it as
        ;; a candidate for "Save Options", and we do not want to save options
@@ -814,7 +815,7 @@
   (menu-bar-make-toggle toggle-indicate-empty-lines indicate-empty-lines
 			"Empty Line Indicators"
 			"Indicating of empty lines %s"
-			"Indicate trailing empty lines in fringe"))
+			"Indicate trailing empty lines in fringe, globally"))
 
 (defun menu-bar-showhide-fringe-menu-customize ()
   "Show customization buffer for `fringe-mode'."
@@ -1018,9 +1019,9 @@
 
 (define-key menu-bar-options-menu [case-fold-search]
   (menu-bar-make-toggle toggle-case-fold-search case-fold-search
-			"Case-Insensitive Search"
-			"Case-Insensitive Search %s"
-			"Ignore letter-case in search"))
+	    "Case-Insensitive Search"
+	    "Case-Insensitive Search %s"
+	    "Globally ignore letter-case in search"))
 
 (defun menu-bar-text-mode-auto-fill ()
   (interactive)
@@ -1596,14 +1597,14 @@
 			       name))))
 		 ;; Compute the maximum length of any name.
 		 (dolist (buf buffer-list)
-		   (unless (eq ?\  (aref (cdr buf) 0))
+		   (unless (eq ?\s (aref (cdr buf) 0))
 		     (setq menu-bar-update-buffers-maxbuf
 			   (max menu-bar-update-buffers-maxbuf
 				(length (cdr buf))))))
 		 ;; Set ALIST to an alist of the form
 		 ;; ITEM-STRING . BUFFER
 		 (dolist (buf buffer-list)
-		   (unless (eq ?\  (aref (cdr buf) 0))
+		   (unless (eq ?\s (aref (cdr buf) 0))
 		     (push (menu-bar-update-buffers-1 buf) alist)))
 		 ;; Now make the actual list of items, and add
 		 ;; some miscellaneous buffer commands to the end.
--- a/lisp/midnight.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/midnight.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; midnight.el --- run something every midnight, e.g., kill old buffers
 
-;; Copyright (C) 1998, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1998, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Sam Steingold <sds@usa.net>
--- a/lisp/misc.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/misc.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; misc.el --- some nonstandard basic editing commands for Emacs
 
-;; Copyright (C) 1989, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1989, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -48,7 +48,7 @@
       (if (< cc (current-column))
 	  (if (= (preceding-char) ?\t)
 	      (progn
-		(setq string (make-string (min n (- (current-column) cc)) ?\ ))
+		(setq string (make-string (min n (- (current-column) cc)) ?\s))
 		(setq n (- n (min n (- (current-column) cc)))))
 	    ;; In middle of ctl char => copy that whole char.
 	    (backward-char 1)))
@@ -62,7 +62,7 @@
 ;; Variation of `zap-to-char'.
 
 (defun zap-up-to-char (arg char)
-  "Kill up to, but not including ARG'th occurrence of CHAR.
+  "Kill up to, but not including ARGth occurrence of CHAR.
 Case is ignored if `case-fold-search' is non-nil in the current buffer.
 Goes backward if ARG is negative; error if CHAR not found.
 Ignores CHAR at point."
--- a/lisp/mouse-copy.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/mouse-copy.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; mouse-copy.el --- one-click text copy and move
 
-;; Copyright (C) 1996, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1996, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: John Heidemann <johnh@ISI.EDU>
--- a/lisp/mouse.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/mouse.el	Thu Dec 07 04:14:14 2006 +0000
@@ -241,7 +241,7 @@
 			  (cons 'keymap
 				(cons (concat
 				       (capitalize (subst-char-in-string
-						    ?- ?\  (symbol-name
+						    ?- ?\s (symbol-name
 							    minor-mode)))
 				       " Menu")
 				      (cdr menu)))))
@@ -925,7 +925,11 @@
 	 (click-count (1- (event-click-count start-event)))
 	 (remap-double-click (and on-link
 				  (eq mouse-1-click-follows-link 'double)
-				  (= click-count 1))))
+				  (= click-count 1)))
+	 ;; Suppress automatic hscrolling, because that is a nuisance
+	 ;; when setting point near the right fringe (but see below).
+	 (automatic-hscrolling-saved automatic-hscrolling)
+	 (automatic-hscrolling nil))
     (setq mouse-selection-click-count click-count)
     ;; In case the down click is in the middle of some intangible text,
     ;; use the end of that text, and put it in START-POINT.
@@ -946,6 +950,11 @@
                      (memq (car-safe event) '(switch-frame select-window))))
           (if (memq (car-safe event) '(switch-frame select-window))
 	      nil
+	    ;; Automatic hscrolling did not occur during the call to
+	    ;; `read-event'; but if the user subsequently drags the
+	    ;; mouse, go ahead and hscroll.
+	    (let ((automatic-hscrolling automatic-hscrolling-saved))
+	      (redisplay))
 	    (setq end (event-end event)
 		  end-point (posn-point end))
 	    (if (numberp end-point)
@@ -1885,7 +1894,7 @@
     (setq tail buffers)
     (while tail
       (let ((elt (car tail)))
-	(if (/= (aref (buffer-name elt) 0) ?\ )
+	(if (/= (aref (buffer-name elt) 0) ?\s)
 	    (setq head
 		  (cons
 		   (cons
--- a/lisp/net/rcirc.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/net/rcirc.el	Thu Dec 07 04:14:14 2006 +0000
@@ -15,7 +15,7 @@
 
 ;; This file is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
@@ -137,7 +137,7 @@
 (defcustom rcirc-buffer-maximum-lines nil
   "*The maximum size in lines for rcirc buffers.
 Channel buffers are truncated from the top to be no greater than this
-number.	 If zero or nil, no truncating is done."
+number.  If zero or nil, no truncating is done."
   :type '(choice (const :tag "No truncation" nil)
 		 (integer :tag "Number of lines"))
   :group 'rcirc)
@@ -341,12 +341,12 @@
 	(when (string= rcirc-default-server (process-name p))
 	  (setq connected p)))
       (if (not connected)
-	  (rcirc-connect rcirc-default-server rcirc-default-port 
+	  (rcirc-connect rcirc-default-server rcirc-default-port
 			 rcirc-default-nick rcirc-default-user-name
 			 rcirc-default-user-full-name
 			 (rcirc-startup-channels rcirc-default-server))
 	(switch-to-buffer (process-buffer connected))
-	(message "Connected to %s" 
+	(message "Connected to %s"
 		 (process-contact (get-buffer-process (current-buffer))
 				  :host))))))
 ;;;###autoload
@@ -569,7 +569,7 @@
 
 (defun rcirc-nick (process)
   "Return PROCESS nick."
-  (with-rcirc-process-buffer process 
+  (with-rcirc-process-buffer process
     (or rcirc-nick rcirc-default-nick)))
 
 (defun rcirc-buffer-nick (&optional buffer)
@@ -970,7 +970,7 @@
 
 (defvar rcirc-multiline-minor-mode-map (make-sparse-keymap)
   "Keymap for multiline mode in rcirc.")
-(define-key rcirc-multiline-minor-mode-map 
+(define-key rcirc-multiline-minor-mode-map
   (kbd "C-c C-c") 'rcirc-multiline-minor-submit)
 (define-key rcirc-multiline-minor-mode-map
   (kbd "C-x C-s") 'rcirc-multiline-minor-submit)
@@ -1079,7 +1079,7 @@
 		   "%")
 		  ((or (eq key ?n) (eq key ?N))
 		   ;; %n/%N -- nick
-		   (let ((nick (concat (if (string= (with-rcirc-process-buffer 
+		   (let ((nick (concat (if (string= (with-rcirc-process-buffer
 							process
 						      rcirc-server)
 						    sender)
@@ -1092,7 +1092,7 @@
 				     (cond ((string= sender (rcirc-nick process))
 					    'rcirc-my-nick)
 					   ((and rcirc-bright-nicks
-						 (string-match 
+						 (string-match
 						  (regexp-opt rcirc-bright-nicks)
 						  sender))
 					    'rcirc-bright-nick)
@@ -1206,7 +1206,7 @@
 
 	    (let ((text-start (make-marker)))
 	      (set-marker text-start
-			  (or (next-single-property-change fill-start 
+			  (or (next-single-property-change fill-start
 							   'rcirc-text)
 			      rcirc-prompt-end-marker))
 	      ;; squeeze spaces out of text before rcirc-text
@@ -1402,7 +1402,7 @@
 		   (append global-mode-string '(rcirc-activity-string))))
 	(add-hook 'window-configuration-change-hook
 		  'rcirc-window-configuration-change))
-    (setq global-mode-string 
+    (setq global-mode-string
 	  (delete 'rcirc-activity-string global-mode-string))
     (remove-hook 'window-configuration-change-hook
 		 'rcirc-window-configuration-change)))
@@ -1461,7 +1461,7 @@
   (interactive "P")
   (let* ((pair (rcirc-split-activity rcirc-activity))
 	 (lopri (car pair))
-	 (hipri (cdr pair)))		
+	 (hipri (cdr pair)))
     (if (or (and (not arg) hipri)
 	    (and arg lopri))
 	(progn
@@ -1476,10 +1476,10 @@
 	    (message "No more IRC activity.  Go back to work.")
 	    (funcall rcirc-switch-to-buffer-function rcirc-last-non-irc-buffer)
 	    (setq rcirc-last-non-irc-buffer nil))
-	(message (concat 
+	(message (concat
 		  "No IRC activity."
 		  (when lopri
-		    (concat 
+		    (concat
 		     "  Type C-u "
 		     (key-description (this-command-keys))
 		     " for low priority activity."))))))))
@@ -1669,7 +1669,7 @@
   (if (null message)
       (progn
         (setq target (completing-read "Message nick: "
-                                      (with-rcirc-server-buffer 
+                                      (with-rcirc-server-buffer
 					rcirc-nick-table)))
         (when (> (length target) 0)
           (setq message (read-string (format "Message %s: " target)))
@@ -1775,7 +1775,7 @@
   "Kick NICK from current channel."
   (interactive (list
                 (concat (completing-read "Kick nick: "
-                                         (rcirc-channel-nicks 
+                                         (rcirc-channel-nicks
 					  (rcirc-buffer-process)
 					  rcirc-target))
                         (read-from-minibuffer "Kick reason: "))))
@@ -1812,7 +1812,7 @@
 ones added to the list automatically are marked with an asterisk."
   (interactive "sToggle ignoring of nick: ")
   (setq rcirc-ignore-list (rcirc-add-or-remove rcirc-ignore-list nick))
-  (rcirc-print process nil "IGNORE" target 
+  (rcirc-print process nil "IGNORE" target
 	       (mapconcat
 		(lambda (nick)
 		  (concat nick
@@ -1824,14 +1824,14 @@
   "Manage the bright nick list."
   (interactive "sToggle emphasis of nick: ")
   (setq rcirc-bright-nicks (rcirc-add-or-remove rcirc-bright-nicks nick))
-  (rcirc-print process nil "BRIGHT" target 
+  (rcirc-print process nil "BRIGHT" target
 	       (mapconcat 'identity rcirc-bright-nicks " ")))
 
 (defun-rcirc-command dim (nick)
   "Manage the dim nick list."
   (interactive "sToggle deemphasis of nick: ")
   (setq rcirc-dim-nicks (rcirc-add-or-remove rcirc-dim-nicks nick))
-  (rcirc-print process nil "DIM" target 
+  (rcirc-print process nil "DIM" target
 	       (mapconcat 'identity rcirc-dim-nicks " ")))
 
 (defun-rcirc-command keyword (keyword)
@@ -1840,7 +1840,7 @@
 keywords when no KEYWORD is given."
   (interactive "sToggle highlighting of keyword: ")
   (setq rcirc-keywords (rcirc-add-or-remove rcirc-keywords keyword))
-  (rcirc-print process nil "KEYWORD" target 
+  (rcirc-print process nil "KEYWORD" target
 	       (mapconcat 'identity rcirc-keywords " ")))
 
 
@@ -1865,8 +1865,8 @@
 (defvar rcirc-url-regexp
   (rx-to-string
    `(and word-boundary
-	 (or (and 
-	      (or (and (or "http" "https" "ftp" "file" "gopher" "news" 
+	 (or (and
+	      (or (and (or "http" "https" "ftp" "file" "gopher" "news"
 			   "telnet" "wais" "mailto")
 		       "://")
 		  "www.")
@@ -1876,7 +1876,7 @@
 	     (and (1+ (char "-a-zA-Z0-9_."))
 		  (or ".com" ".net" ".org")
 		  word-boundary))
-	 (optional 
+	 (optional
 	  (and "/"
 	       (1+ (char "-a-zA-Z0-9_=!?#$\@~`%&*+|\\/:;.,{}[]()"))
 	       (char "-a-zA-Z0-9_=#$\@~`%&*+|\\/:;{}[]()")))))
@@ -1957,11 +1957,11 @@
 
 (defun rcirc-markup-my-nick (process sender response channel-buffer)
   (with-syntax-table rcirc-nick-syntax-table
-    (while (re-search-forward (concat "\\b" 
+    (while (re-search-forward (concat "\\b"
 				      (regexp-quote (rcirc-nick process))
 				      "\\b")
 			      nil t)
-      (rcirc-add-face (match-beginning 0) (match-end 0) 
+      (rcirc-add-face (match-beginning 0) (match-end 0)
 		      'rcirc-nick-in-message)
       (when (string= response "PRIVMSG")
 	(rcirc-add-face (point-min) (point-max) 'rcirc-nick-in-message-full-line)
@@ -2409,7 +2409,7 @@
 (defface rcirc-nick-in-message-full-line
   '((t (:bold t)))
   "The face used emphasize the entire message when your nick is mentioned."
-  :group 'rcirc-faces)  
+  :group 'rcirc-faces)
 
 (defface rcirc-prompt			; comint-highlight-prompt
   '((((min-colors 88) (background dark)) (:foreground "cyan1"))
--- a/lisp/net/tramp.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/net/tramp.el	Thu Dec 07 04:14:14 2006 +0000
@@ -326,24 +326,35 @@
               (tramp-login-program        "ssh")
               (tramp-copy-program         "scp")
               (tramp-remote-sh            "/bin/sh")
-              (tramp-login-args           ("-e" "none"))
-              (tramp-copy-args            nil)
+              (tramp-login-args           ("-o" "ControlPath=%t.%%r@%%h:%%p"
+					   "-o" "ControlMaster=yes"
+					   "-e" "none"))
+              (tramp-copy-args            ("-o" "ControlPath=%t.%%r@%%h:%%p"
+					   "-o" "ControlMaster=auto"))
               (tramp-copy-keep-date-arg   "-p")
 	      (tramp-password-end-of-line nil))
      ("scp1"  (tramp-connection-function  tramp-open-connection-rsh)
               (tramp-login-program        "ssh")
               (tramp-copy-program         "scp")
               (tramp-remote-sh            "/bin/sh")
-              (tramp-login-args           ("-1" "-e" "none"))
-              (tramp-copy-args            ("-1"))
+              (tramp-login-args           ("-o" "ControlPath=%t.%%r@%%h:%%p"
+					   "-o" "ControlMaster=yes"
+					   "-1" "-e" "none"))
+              (tramp-copy-args            ("-o" "ControlPath=%t.%%r@%%h:%%p"
+					   "-o" "ControlMaster=auto"
+					   "-1"))
               (tramp-copy-keep-date-arg   "-p")
 	      (tramp-password-end-of-line nil))
      ("scp2"  (tramp-connection-function  tramp-open-connection-rsh)
               (tramp-login-program        "ssh")
               (tramp-copy-program         "scp")
               (tramp-remote-sh            "/bin/sh")
-              (tramp-login-args           ("-2" "-e" "none"))
-              (tramp-copy-args            ("-2"))
+              (tramp-login-args           ("-o" "ControlPath=%t.%%r@%%h:%%p"
+					   "-o" "ControlMaster=yes"
+					   "-2" "-e" "none"))
+              (tramp-copy-args            ("-o" "ControlPath=%t.%%r@%%h:%%p"
+					   "-o" "ControlMaster=auto"
+					   "-2"))
               (tramp-copy-keep-date-arg   "-p")
 	      (tramp-password-end-of-line nil))
      ("scp1_old"
@@ -566,6 +577,7 @@
     If `tramp-connection-function' is `tramp-open-connection-su', then
     \"%u\" in this list is replaced by the user name, and \"%%\" can
     be used to obtain a literal percent character.
+    \"%t\" is replaced by the temporary file name for `scp'-like methods.
   * `tramp-copy-program'
     This specifies the name of the program to use for remotely copying
     the file; this might be the absolute filename of rcp or the name of
@@ -673,8 +685,8 @@
 
 (defcustom tramp-default-method
   (if (and (fboundp 'executable-find)
-	   (executable-find "plink"))
-      "plink"
+	   (executable-find "pscp"))
+      "pscp"
     "scp")
   "*Default method to use for transferring files.
 See `tramp-methods' for possibilities.
@@ -943,6 +955,17 @@
   :group 'tramp
   :type 'regexp)
 
+(defcustom tramp-copy-failed-regexp
+  (concat "\\(.+: "
+          (regexp-opt '("Permission denied"
+                        "not a regular file"
+                        "is a directory"
+                        "No such file or directory") t)
+          "\\)\\s-*")
+  "Regular expression matching copy problems in (s)cp operations."
+  :group 'tramp
+  :type 'regexp)
+
 (defcustom tramp-process-alive-regexp
   ""
   "Regular expression indicating a process has finished.
@@ -1340,6 +1363,7 @@
 (defcustom tramp-actions-copy-out-of-band
   '((tramp-password-prompt-regexp tramp-action-password)
     (tramp-wrong-passwd-regexp tramp-action-permission-denied)
+    (tramp-copy-failed-regexp tramp-action-copy-failed)
     (tramp-process-alive-regexp tramp-action-out-of-band))
   "List of pattern/action pairs.
 This list is used for copying/renaming with out-of-band methods.
@@ -3140,6 +3164,14 @@
 	      v2-user v2-host
 	      (tramp-shell-quote-argument v2-localname))))
 
+    ;; Handle ControlMaster/ControlPath
+    (setq copy-args
+	  (mapcar
+	   (lambda (x)
+	     (format-spec
+	      x `((?t . ,(format "/tmp/%s" tramp-temp-name-prefix)))))
+	   copy-args))
+
     ;; Handle keep-date argument
     (when keep-date
       (if t1
@@ -3174,12 +3206,13 @@
       (message "Transferring %s to %s..." filename newname)
 
       ;; Use rcp-like program for file transfer.
-      (let ((p (apply 'start-process (buffer-name trampbuf) trampbuf
-		      copy-program copy-args)))
-	(tramp-set-process-query-on-exit-flag p nil)
-	(tramp-process-actions p multi-method method user host
-			       tramp-actions-copy-out-of-band))
-      (kill-buffer trampbuf)
+      (unwind-protect
+          (let ((p (apply 'start-process (buffer-name trampbuf) trampbuf
+                          copy-program copy-args)))
+            (tramp-set-process-query-on-exit-flag p nil)
+            (tramp-process-actions p multi-method method user host
+                                   tramp-actions-copy-out-of-band))
+        (kill-buffer trampbuf))
       (message "Transferring %s to %s...done" filename newname)
 
       ;; Set the mode.
@@ -5353,6 +5386,11 @@
   (kill-process p)
   (throw 'tramp-action 'permission-denied))
 
+(defun tramp-action-copy-failed (p multi-method method user host)
+  "Signal copy failed."
+  (kill-process p)
+  (error "%s" (match-string 1)))
+
 (defun tramp-action-yesno (p multi-method method user host)
   "Ask the user for confirmation using `yes-or-no-p'.
 Send \"yes\" to remote process on confirmation, abort otherwise.
@@ -5409,9 +5447,6 @@
 	       (tramp-message 10 "'set mode' error ignored.")
 	       (tramp-message 9 "Process has finished.")
 	       (throw 'tramp-action 'ok))
-	   (goto-char (point-min))
-	   (when (re-search-forward "^.cp.?: \\(.+: Permission denied.?\\)$" nil t)
-	     (error "Remote host: %s" (match-string 1)))
 	   (tramp-message 9 "Process has died.")
 	   (throw 'tramp-action 'process-died)))
 	(t nil)))
@@ -5476,6 +5511,7 @@
 
 (defun tramp-process-actions (p multi-method method user host actions)
   "Perform actions until success."
+  (tramp-message 10 "%s" (mapconcat 'identity (process-command p) " "))
   (let (exit)
     (while (not exit)
       (tramp-message 9 "Waiting for prompts from remote shell")
@@ -5646,10 +5682,14 @@
 			multi-method
 			(tramp-find-method multi-method method user host)
 			user host 'tramp-login-program))
-	  (login-args (tramp-get-method-parameter
-		     multi-method
-		     (tramp-find-method multi-method method user host)
-		     user host 'tramp-login-args))
+	  (login-args (mapcar
+		       (lambda (x)
+			 (format-spec
+			  x `((?t . ,(format "/tmp/%s" tramp-temp-name-prefix)))))
+		       (tramp-get-method-parameter
+			multi-method
+			(tramp-find-method multi-method method user host)
+			user host 'tramp-login-args)))
 	  (real-host host))
       ;; The following should be changed.  We need a more general
       ;; mechanism to parse extra host args.
--- a/lisp/newcomment.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/newcomment.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; newcomment.el --- (un)comment regions of buffers
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: code extracted from Emacs-20's simple.el
@@ -551,8 +551,8 @@
 	    (indent-to comment-column)
 	    ;; Ensure there's a space before the comment for things
 	    ;; like sh where it matters (as well as being neater).
-	    (unless (memq (char-before) '(nil ?\n ?\t ?\ ))
-	      (insert ?\ ))
+	    (unless (memq (char-before) '(nil ?\n ?\t ?\s))
+	      (insert ?\s))
 	    (setq begpos (point))
 	    (insert starter)
 	    (setq cpos (point-marker))
--- a/lisp/novice.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/novice.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; novice.el --- handling of disabled commands ("novice mode") for Emacs
 
-;; Copyright (C) 1985, 1986, 1987, 1994, 2002, 2003, 2004,
+;; Copyright (C) 1985, 1986, 1987, 1994, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -95,7 +95,7 @@
        (while (progn (setq char (read-event))
 		     (or (not (numberp char))
 			 (not (memq (downcase char)
-				    '(?! ?y ?n ?\  ?\C-g)))))
+				    '(?! ?y ?n ?\s ?\C-g)))))
 	 (ding)
 	 (message "Please type y, n, ! or SPC (the space bar): "))))
     (setq char (downcase char))
--- a/lisp/outline.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/outline.el	Thu Dec 07 04:14:14 2006 +0000
@@ -894,7 +894,8 @@
 		(or first (> (funcall outline-level) level)))
       (setq first nil)
       (outline-next-heading))
-    (if (bolp)
+    (if (and (bolp) (not (eolp)))
+	;; We stopped at a nonempty line (the next heading).
 	(progn
 	  ;; Go to end of line before heading
 	  (forward-char -1)
--- a/lisp/paren.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/paren.el	Thu Dec 07 04:14:14 2006 +0000
@@ -220,7 +220,7 @@
 			(point))))
 	      (if show-paren-overlay-1
 		  (move-overlay show-paren-overlay-1 from to (current-buffer))
-		(setq show-paren-overlay-1 (make-overlay from to)))
+		(setq show-paren-overlay-1 (make-overlay from to nil t)))
 	      ;; Always set the overlay face, since it varies.
 	      (overlay-put show-paren-overlay-1 'priority show-paren-priority)
 	      (overlay-put show-paren-overlay-1 'face face)))
@@ -243,7 +243,7 @@
 			  (forward-point (- dir))))))
 	    (if show-paren-overlay
 		(move-overlay show-paren-overlay from to (current-buffer))
-	      (setq show-paren-overlay (make-overlay from to))))
+	      (setq show-paren-overlay (make-overlay from to nil t))))
 	  ;;
 	  ;; Always set the overlay face, since it varies.
 	  (overlay-put show-paren-overlay 'priority show-paren-priority)
--- a/lisp/paths.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/paths.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; paths.el --- define pathnames for use by various Emacs commands -*- no-byte-compile: t -*-
 
-;; Copyright (C) 1986, 1988, 1994, 1999, 2000, 2002, 2003,
+;; Copyright (C) 1986, 1988, 1994, 1999, 2000, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/pcmpl-cvs.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/pcmpl-cvs.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; pcmpl-cvs.el --- functions for dealing with cvs completions
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <johnw@gnu.org>
--- a/lisp/pcmpl-gnu.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/pcmpl-gnu.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; pcmpl-gnu.el --- completions for GNU project tools
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
--- a/lisp/pcmpl-linux.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/pcmpl-linux.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; pcmpl-linux.el --- functions for dealing with GNU/Linux completions
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
--- a/lisp/pcmpl-rpm.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/pcmpl-rpm.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; pcmpl-rpm.el --- functions for dealing with rpm completions
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
--- a/lisp/pcmpl-unix.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/pcmpl-unix.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; pcmpl-unix.el --- standard UNIX completions
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; This file is part of GNU Emacs.
--- a/lisp/pcvs-defs.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/pcvs-defs.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 ;;; pcvs-defs.el --- variable definitions for PCL-CVS
 
 ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;;   2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;;   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
 ;; Keywords: pcl-cvs
--- a/lisp/pcvs-info.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/pcvs-info.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 ;;; pcvs-info.el --- internal representation of a fileinfo entry
 
 ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;;   2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;;   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
 ;; Keywords: pcl-cvs
--- a/lisp/pcvs-parse.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/pcvs-parse.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 ;;; pcvs-parse.el --- the CVS output parser
 
 ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;;   2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;;   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
 ;; Keywords: pcl-cvs
--- a/lisp/pcvs.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/pcvs.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 ;;; pcvs.el --- a front-end to CVS
 
 ;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-;;   2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;;   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: (The PCL-CVS Trust) pcl-cvs@cyclic.com
 ;;	(Per Cederqvist) ceder@lysator.liu.se
--- a/lisp/pgg-pgp.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/pgg-pgp.el	Thu Dec 07 04:14:14 2006 +0000
@@ -63,9 +63,9 @@
 (defun pgg-pgp-process-region (start end passphrase program args)
   (let* ((errors-file-name (pgg-make-temp-file "pgg-errors"))
 	 (args
-	  (append args
+	  (concat args
 		  pgg-pgp-extra-args
-		  (list (concat "2>" errors-file-name))))
+                  " 2>" (shell-quote-argument errors-file-name)))
 	 (shell-file-name pgg-pgp-shell-file-name)
 	 (shell-command-switch pgg-pgp-shell-command-switch)
 	 (process-environment process-environment)
@@ -83,9 +83,8 @@
 	  (let ((coding-system-for-read 'binary)
 		(coding-system-for-write 'binary))
 	    (setq process
-		  (apply #'funcall
-			 #'start-process-shell-command "*PGP*" output-buffer
-			 program args)))
+		  (start-process-shell-command "*PGP*" output-buffer
+                                               (concat program " " args))))
 	  (set-process-sentinel process #'ignore)
 	  (when passphrase
 	    (process-send-string process (concat passphrase "\n")))
@@ -142,15 +141,14 @@
 				    pgg-pgp-user-id)
 			    pgg-pgp-user-id))))
 	 (args
-	  (append
-	   `("+encrypttoself=off +verbose=1" "+batchmode"
-	     "+language=us" "-fate"
-	     ,@(if recipients
-		   (mapcar (lambda (rcpt) (concat "\"" rcpt "\""))
-			   (append recipients
-				   (if pgg-encrypt-for-me
-				       (list pgg-pgp-user-id))))))
-	   (if sign '("-s" "-u" pgg-pgp-user-id)))))
+	  (concat
+	   "+encrypttoself=off +verbose=1 +batchmode +language=us -fate "
+           (if recipients
+               (mapconcat 'shell-quote-argument
+                          (append recipients
+                                  (if pgg-encrypt-for-me
+                                      (list pgg-pgp-user-id)))))
+           (if sign (concat " -s -u " (shell-quote-argument pgg-pgp-user-id))))))
     (pgg-pgp-process-region start end nil pgg-pgp-program args)
     (pgg-process-when-success nil)))
 
@@ -166,7 +164,7 @@
 	      (pgg-read-passphrase
 	       (format "PGP passphrase for %s: " pgg-pgp-user-id) key)))
 	 (args
-	  '("+verbose=1" "+batchmode" "+language=us" "-f")))
+	  "+verbose=1 +batchmode +language=us -f"))
     (pgg-pgp-process-region start end passphrase pgg-pgp-program args)
     (pgg-process-when-success
       (if pgg-cache-passphrase
@@ -184,9 +182,9 @@
 	       (format "PGP passphrase for %s: " pgg-pgp-user-id)
 	       (pgg-pgp-lookup-key pgg-pgp-user-id 'sign))))
 	 (args
-	  (list (if clearsign "-fast" "-fbast")
-		"+verbose=1" "+language=us" "+batchmode"
-		"-u" pgg-pgp-user-id)))
+	  (concat (if clearsign "-fast" "-fbast")
+		" +verbose=1 +language=us +batchmode"
+		" -u " (shell-quote-argument pgg-pgp-user-id))))
     (pgg-pgp-process-region start end passphrase pgg-pgp-program args)
     (pgg-process-when-success
       (goto-char (point-min))
@@ -204,7 +202,7 @@
 (defun pgg-pgp-verify-region (start end &optional signature)
   "Verify region between START and END as the detached signature SIGNATURE."
   (let* ((orig-file (pgg-make-temp-file "pgg"))
-	 (args '("+verbose=1" "+batchmode" "+language=us"))
+	 (args "+verbose=1 +batchmode +language=us")
 	 (orig-mode (default-file-modes)))
     (unwind-protect
 	(progn
@@ -216,8 +214,8 @@
     (if (stringp signature)
 	(progn
 	  (copy-file signature (setq signature (concat orig-file ".asc")))
-	  (setq args (append args (list signature orig-file))))
-      (setq args (append args (list orig-file))))
+	  (setq args (concat args " " (shell-quote-argument signature)))))
+    (setq args (concat args " " (shell-quote-argument orig-file)))
     (pgg-pgp-process-region (point)(point) nil pgg-pgp-program args)
     (delete-file orig-file)
     (if signature (delete-file signature))
@@ -237,8 +235,8 @@
   "Insert public key at point."
   (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id))
 	 (args
-	  (list "+verbose=1" "+batchmode" "+language=us" "-kxaf"
-		(concat "\"" pgg-pgp-user-id "\""))))
+	  (concat "+verbose=1 +batchmode +language=us -kxaf "
+                  (shell-quote-argument pgg-pgp-user-id))))
     (pgg-pgp-process-region (point)(point) nil pgg-pgp-program args)
     (insert-buffer-substring pgg-output-buffer)))
 
@@ -247,8 +245,8 @@
   (let* ((pgg-pgp-user-id (or pgg-pgp-user-id pgg-default-user-id))
 	 (key-file (pgg-make-temp-file "pgg"))
 	 (args
-	  (list "+verbose=1" "+batchmode" "+language=us" "-kaf"
-		key-file)))
+	  (concat "+verbose=1 +batchmode +language=us -kaf "
+                  (shell-quote-argument key-file))))
     (let ((coding-system-for-write 'raw-text-dos))
       (write-region start end key-file))
     (pgg-pgp-process-region start end nil pgg-pgp-program args)
@@ -257,5 +255,5 @@
 
 (provide 'pgg-pgp)
 
-;;; arch-tag: 076b7801-37b2-49a6-97c3-218fdecde33c
+;; arch-tag: 076b7801-37b2-49a6-97c3-218fdecde33c
 ;;; pgg-pgp.el ends here
--- a/lisp/play/gomoku.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/play/gomoku.el	Thu Dec 07 04:14:14 2006 +0000
@@ -29,7 +29,7 @@
 
 ;; RULES:
 ;;
-;; Gomoku is a game played between two players on a rectangular board.	Each
+;; Gomoku is a game played between two players on a rectangular board.  Each
 ;; player, in turn, marks a free square of its choice. The winner is the first
 ;; one to mark five contiguous squares in any direction (horizontally,
 ;; vertically or diagonally).
@@ -212,9 +212,9 @@
 ;;;
 
 ;; The board is a rectangular grid. We code empty squares with 0, X's with 1
-;; and O's with 6. The rectangle is recorded in a one dimensional vector
-;; containing padding squares (coded with -1). These squares allow us to
-;; detect when we are trying to move out of the board.	We denote a square by
+;; and O's with 6.  The rectangle is recorded in a one dimensional vector
+;; containing padding squares (coded with -1).  These squares allow us to
+;; detect when we are trying to move out of the board.  We denote a square by
 ;; its (X,Y) coords, or by the INDEX corresponding to them in the vector.  The
 ;; leftmost topmost square has coords (1,1) and index gomoku-board-width + 2.
 ;; Similarly, vectors between squares may be given by two DX, DY coords or by
@@ -230,7 +230,7 @@
   "Vector recording the actual state of the Gomoku board.")
 
 (defvar gomoku-vector-length nil
-  "Length of gomoku-board vector.")
+  "Length of `gomoku-board' vector.")
 
 (defvar gomoku-draw-limit nil
   ;; This is usually set to 70% of the number of squares.
@@ -250,7 +250,7 @@
   (/ index (1+ gomoku-board-width)))
 
 (defun gomoku-init-board ()
-  "Create the gomoku-board vector and fill it with initial values."
+  "Create the `gomoku-board' vector and fill it with initial values."
   (setq gomoku-board (make-vector gomoku-vector-length 0))
   ;; Every square is 0 (i.e. empty) except padding squares:
   (let ((i 0) (ii (1- gomoku-vector-length)))
@@ -671,11 +671,11 @@
      (cond ((< gomoku-number-of-moves 20)
 	    "This was a REALLY QUICK win.")
 	   (gomoku-human-refused-draw
-	    "I won... Too bad you refused my offer of a draw!")
+	    "I won...  Too bad you refused my offer of a draw!")
 	   (gomoku-human-took-back
-	    "I won... Taking moves back will not help you!")
+	    "I won...  Taking moves back will not help you!")
 	   ((not gomoku-emacs-played-first)
-	    "I won... Playing first did not help you much!")
+	    "I won...  Playing first did not help you much!")
 	   ((and (zerop gomoku-number-of-human-wins)
 		 (zerop gomoku-number-of-draws)
 		 (> gomoku-number-of-emacs-wins 1))
@@ -875,9 +875,9 @@
     (let (square score)
       (setq square (gomoku-point-square))
       (cond ((null square)
-	     (error "Your point is not on a square. Retry!"))
+	     (error "Your point is not on a square.  Retry!"))
 	    ((not (zerop (aref gomoku-board square)))
-	     (error "Your point is not on a free square. Retry!"))
+	     (error "Your point is not on a free square.  Retry!"))
 	    (t
 	     (setq score (aref gomoku-score-table square))
 	     (gomoku-play-move square 1)
@@ -902,7 +902,7 @@
     (sit-for 4)
     (gomoku-prompt-for-other-game))
    ((zerop gomoku-number-of-human-moves)
-    (message "You have not played yet... Your move?"))
+    (message "You have not played yet...  Your move?"))
    (t
     (message "One moment, please...")
     ;; It is possible for the user to let Emacs play several consecutive
@@ -937,7 +937,7 @@
 (defun gomoku-prompt-for-move ()
   "Display a message asking for Human's move."
   (message (if (zerop gomoku-number-of-human-moves)
-	       "Your move? (move to a free square and hit X, RET ...)"
+	       "Your move?  (Move to a free square and hit X, RET ...)"
 	       "Your move?"))
   ;; This may seem silly, but if one omits the following line (or a similar
   ;; one), the cursor may very well go to some place where POINT is not.
@@ -951,7 +951,7 @@
 
 (defun gomoku-offer-a-draw ()
   "Offer a draw and return t if Human accepted it."
-  (or (y-or-n-p "I offer you a draw. Do you accept it? ")
+  (or (y-or-n-p "I offer you a draw.  Do you accept it? ")
       (not (setq gomoku-human-refused-draw t))))
 
 ;;;
--- a/lisp/play/landmark.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/play/landmark.el	Thu Dec 07 04:14:14 2006 +0000
@@ -75,7 +75,7 @@
 ;; The board is a rectangular grid. We code empty squares with 0, X's with 1
 ;; and O's with 6. The rectangle is recorded in a one dimensional vector
 ;; containing padding squares (coded with -1). These squares allow us to
-;; detect when we are trying to move out of the board.	We denote a square by
+;; detect when we are trying to move out of the board.  We denote a square by
 ;; its (X,Y) coords, or by the INDEX corresponding to them in the vector.  The
 ;; leftmost topmost square has coords (1,1) and index lm-board-width + 2.
 ;; Similarly, vectors between squares may be given by two DX, DY coords or by
--- a/lisp/progmodes/ada-mode.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/ada-mode.el	Thu Dec 07 04:14:14 2006 +0000
@@ -27,13 +27,13 @@
 ;; Boston, MA 02110-1301, USA.
 
 ;;; Commentary:
-;;; This mode is a major mode for editing Ada83 and Ada95 source code.
-;;; This is a major rewrite of the file packaged with Emacs-20.  The
-;;; ada-mode is composed of four Lisp files, ada-mode.el, ada-xref.el,
-;;; ada-prj.el and ada-stmt.el. Only this file (ada-mode.el) is
-;;; completely independent from the GNU Ada compiler Gnat, distributed
-;;; by Ada Core Technologies. All the other files rely heavily on
-;;; features provided only by Gnat.
+;;; This mode is a major mode for editing Ada code.  This is a major
+;;; rewrite of the file packaged with Emacs-20.  The Ada mode is
+;;; composed of four Lisp files: ada-mode.el, ada-xref.el, ada-prj.el
+;;; and ada-stmt.el.  Only this file (ada-mode.el) is completely
+;;; independent from the GNU Ada compiler GNAT, distributed by Ada
+;;; Core Technologies.  All the other files rely heavily on features
+;;; provided only by GNAT.
 ;;;
 ;;; Note: this mode will not work with Emacs 19. If you are on a VMS
 ;;; system, where the latest version of Emacs is 19.28, you will need
@@ -77,7 +77,7 @@
 ;;; (yet) been recoded in this new mode.  Perhaps you prefer sticking
 ;;; to his version.
 ;;;
-;;; A complete rewrite for Emacs-20 / Gnat-3.11 has been done by Ada Core
+;;; A complete rewrite for Emacs-20 / GNAT-3.11 has been done by Ada Core
 ;;; Technologies.
 
 ;;; Credits:
@@ -437,7 +437,7 @@
   "*Name of the compiler to use.
 This will determine what features are made available through the Ada mode.
 The possible choices are:
-`gnat': Use Ada Core Technologies' Gnat compiler.  Add some cross-referencing
+`gnat': Use Ada Core Technologies' GNAT compiler.  Add some cross-referencing
     features.
 `generic': Use a generic compiler."
   :type '(choice (const gnat)
@@ -794,33 +794,24 @@
 				  (match-string 1))))
 	  (error-pos (point-marker))
 	  source)
+
+      ;; set source marker
       (save-excursion
-	(save-restriction
-	  (widen)
-	  ;;  Use funcall so as to prevent byte-compiler warnings
-	  ;;  `ada-find-file' is not defined if ada-xref wasn't loaded. But
-	  ;;  if we can find it, we should use it instead of
-	  ;;  `compilation-find-file', since the latter doesn't know anything
-	  ;;  about source path.
-
-	  (if (functionp 'ada-find-file)
-	      (setq file (funcall (symbol-function 'ada-find-file)
-				  (match-string 1)))
-	    (setq file (funcall (symbol-function 'compilation-find-file)
-				(point-marker) (match-string 1)
-				"./")))
-	  (set-buffer file)
-
-	  (if (stringp line)
-	      (goto-line (string-to-number line)))
-	  (setq source (point-marker))))
-      (funcall (symbol-function 'compilation-goto-locus)
-	       (cons source error-pos))
+        (compilation-find-file (point-marker) (match-string 1) "./")
+        (set-buffer file)
+
+        (if (stringp line)
+            (goto-line (string-to-number line)))
+
+        (setq source (point-marker)))
+
+      (compilation-goto-locus error-pos source nil)
+
       ))
 
    ;; otherwise, default behavior
    (t
-    (funcall (symbol-function 'compile-goto-error)))
+    (compile-goto-error))
    )
   (recenter))
 
--- a/lisp/progmodes/ada-xref.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/ada-xref.el	Thu Dec 07 04:14:14 2006 +0000
@@ -117,7 +117,7 @@
 	  " ${comp_opt}")
   "*Default command to be used to compile a single file.
 Emacs will substitute the current filename for ${full_current}, or add
-the filename at the end. This is the same syntax as in the project file."
+the filename at the end.  This is the same syntax as in the project file."
   :type 'string :group 'ada)
 
 (defcustom ada-prj-default-debugger "${cross_prefix}gdb"
@@ -148,7 +148,7 @@
   :type 'boolean :group 'ada)
 
 (defconst is-windows (memq system-type (quote (windows-nt)))
-  "True if we are running on Windows NT or Windows 95.")
+  "True if we are running on Windows.")
 
 (defcustom ada-tight-gvd-integration nil
   "*If non-nil, a new Emacs frame will be swallowed in GVD when debugging.
@@ -208,7 +208,7 @@
 \"&&\" for now.")
 
 (defconst ada-xref-pos-ring-max 16
-  "Number of positions kept in the list ada-xref-pos-ring.")
+  "Number of positions kept in the list `ada-xref-pos-ring'.")
 
 (defvar ada-operator-re
   "\\+\\|-\\|/\\|\\*\\*\\|\\*\\|=\\|&\\|abs\\|mod\\|rem\\|and\\|not\\|or\\|xor\\|<=\\|<\\|>=\\|>"
@@ -218,11 +218,11 @@
   "Associative list of project files with properties.
 It has the format: (project project ...)
 A project has the format: (project-file . project-plist)
-\(See 'apropos plist' for operations on property lists).  See
-ada-xref-set-default-prj-values for the list of valid properties.  The
-current project is retrieved with ada-xref-current-project.  Properties
-are retrieved with ada-xref-get-project-field, set with
-ada-xref-set-project-field.  If project properties are accessed with no
+\(See 'apropos plist' for operations on property lists).
+See `ada-xref-set-default-prj-values' for the list of valid properties.
+The current project is retrieved with `ada-xref-current-project'.
+Properties are retrieved with `ada-xref-get-project-field', set with
+`ada-xref-set-project-field'.  If project properties are accessed with no
 project file, a (nil . default-properties) entry is created.")
 
 
@@ -257,7 +257,7 @@
 ;; -----------------------------------------------------------------------
 
 (defun ada-quote-cmd (cmd)
-  "Duplicate all \\ characters in CMD so that it can be passed to `compile'."
+  "Duplicate all `\\' characters in CMD so that it can be passed to `compile'."
   (mapconcat 'identity (split-string cmd "\\\\") "\\\\"))
 
 (defun ada-find-executable (exec-name)
@@ -418,8 +418,8 @@
 Project variables are substituted.
 
 Note that for src_dir and obj_dir, you should rather use
-`ada-xref-get-src-dir-field' or `ada-xref-get-obj-dir-field' which will in
-addition return the default paths."
+`ada-xref-get-src-dir-field' or `ada-xref-get-obj-dir-field'
+which will in addition return the default paths."
 
   (let* ((project-plist (cdr (ada-xref-current-project)))
 	 value)
@@ -1166,7 +1166,7 @@
   "Recompile the current file.
 If ARG is not nil, ask for user confirmation of the command.
 PRJ-FIELD is the name of the field to use in the project file to get the
-command, and should be either comp_cmd (default) or check_cmd."
+command, and should be either `comp_cmd' (default) or `check_cmd'."
   (interactive "P")
   (ada-require-project-file)
   (let* ((field (if prj-field prj-field 'comp_cmd))
@@ -1190,7 +1190,7 @@
     (compile (ada-quote-cmd cmd))))
 
 (defun ada-check-current (&optional arg)
-  "Recompile the current file.
+  "Check the current file for syntax errors.
 If ARG is not nil, ask for user confirmation of the command."
   (interactive "P")
   (ada-compile-current arg 'check_cmd))
@@ -1368,8 +1368,8 @@
   "Update the cross-references for FILE.
 This in fact recompiles FILE to create ALI-FILE-NAME.
 This function returns the name of the file that was recompiled to generate
-the cross-reference information.  Note that the ali file can then be deduced by
-replacing the file extension with `.ali'."
+the cross-reference information.  Note that the ali file can then be deduced
+by replacing the file extension with `.ali'."
   ;; kill old buffer
   (if (and ali-file-name
 	   (get-file-buffer ali-file-name))
@@ -1539,8 +1539,8 @@
 
 (defun ada-get-ada-file-name (file original-file)
   "Create the complete file name (+directory) for FILE.
-The original file (where the user was) is ORIGINAL-FILE.  Search in project
-file for possible paths."
+The original file (where the user was) is ORIGINAL-FILE.
+Search in project file for possible paths."
 
   (save-excursion
 
@@ -1940,9 +1940,8 @@
 anywhere in the object path.
 This command requires the external `egrep' program to be available.
 
-This works well when one is using an external librarie and wants
-to find the declaration and documentation of the subprograms one is
-is using."
+This works well when one is using an external librarie and wants to find
+the declaration and documentation of the subprograms one is using."
 ;; FIXME: what does this function do?
   (let (list
 	(dirs (ada-xref-get-obj-dir-field))
@@ -2212,6 +2211,7 @@
 (defun ada-make-body-gnatstub (&optional interactive)
   "Create an Ada package body in the current buffer.
 This function uses the `gnatstub' program to create the body.
+If INTERACTIVE is nil, kill the current buffer.
 This function typically is to be hooked into `ff-file-created-hook'."
   (interactive "p")
   (ada-require-project-file)
@@ -2221,9 +2221,8 @@
   ;; If the current buffer is the body (as is the case when calling this
   ;; function from ff-file-created-hook), then kill this temporary buffer
   (unless interactive
-    (progn
-      (set-buffer-modified-p nil)
-      (kill-buffer (current-buffer))))
+    (set-buffer-modified-p nil)
+    (kill-buffer (current-buffer)))
 
 
   ;;  Make sure the current buffer is the spec (this might not be the case
@@ -2274,7 +2273,7 @@
 (defun ada-xref-initialize ()
   "Function called by `ada-mode-hook' to initialize the ada-xref.el package.
 For instance, it creates the gnat-specific menus, sets some hooks for
-`find-file'..."
+`find-file'."
   (remove-hook 'ff-file-created-hook 'ada-make-body) ; from global hook
   (remove-hook 'ff-file-created-hook 'ada-make-body t) ; from local hook
   (add-hook 'ff-file-created-hook 'ada-make-body-gnatstub nil t)
--- a/lisp/progmodes/cc-align.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-align.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 ;;; cc-align.el --- custom indentation functions for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
-;; Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-awk.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-awk.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 ;;; cc-awk.el --- AWK specific code within cc-mode.
 
-;; Copyright (C) 1988,94,96,2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
-;; Software Foundation, Inc.
+;; Copyright (C) 1988, 1994, 1996, 2000, 2001, 2002, 2003, 2004, 2005,
+;;   2006  Free Software Foundation, Inc.
 
 ;; Author: Alan Mackenzie <acm@muc.de> (originally based on awk-mode.el)
 ;; Maintainer: FSF
--- a/lisp/progmodes/cc-cmds.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-cmds.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 ;;; cc-cmds.el --- user level commands for CC Mode
 
-;; Copyright (C) 1985, 1987, 1992-2003, 2004, 2005, 2006 Free Software
-;; Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
@@ -271,7 +272,7 @@
 ;; 	      fmt))
     (setq mode-name
 	  (if (> (length fmt) 1)
-	      (concat bare-mode-name fmt) 
+	      (concat bare-mode-name fmt)
 	bare-mode-name))
     (force-mode-line-update)))
 
@@ -536,7 +537,7 @@
        ;; shut this up too
        (c-echo-syntactic-information-p nil)
        symb-newlines)		     ; e.g. (substatement-open . (after))
-    
+
     (setq symb-newlines
 	  ;; Do not try to insert newlines around a special
 	  ;; (Pike-style) brace list.
@@ -1661,12 +1662,12 @@
 (defun c-narrow-to-comment-innards (range)
   ;; Narrow to the "inside" of the comment (block) defined by range, as
   ;; follows:
-  ;; 
+  ;;
   ;; A c-style block comment has its opening "/*" and its closing "*/" (if
   ;; present) removed.  A c++-style line comment retains its opening "//" but
   ;; has any final NL removed.  If POINT is currently outwith these innards,
   ;; move it to the appropriate boundary.
-  ;; 
+  ;;
   ;; This narrowing simplifies the sentence movement functions, since it
   ;; eliminates awkward things at the boundaries of the comment (block).
   ;;
@@ -1694,7 +1695,7 @@
   ;; of the comment and return T.
   ;;
   ;; The BOS is either text which follows a regexp match of sentence-end,
-  ;; or text which is a beginning of "paragraph".  
+  ;; or text which is a beginning of "paragraph".
   ;; Comment-prefixes are treated like WS when calculating BOSes or BOPs.
   ;;
   ;; This code was adapted from GNU Emacs's forward-sentence in paragraphs.el.
@@ -2104,7 +2105,7 @@
 	   ((looking-at c-string-limit-regexp) ; Just gone back over a string terminator?
 	    (goto-char last)
 	    (throw 'done '(t . literal)))
-	 
+
 	   ;; Nothing special: go back word characters.
 	   (t (skip-syntax-backward "w_")) ; Speedup only.
 	   ))))))
@@ -2136,7 +2137,7 @@
   ;; As a clarification of "after the end-of-statement", if a comment or
   ;; whitespace follows a completed AWK statement, that statement is treated
   ;; as ending just after the last non-ws character before the comment.
-  ;; 
+  ;;
   ;; Note that this function moves within either preprocessor commands
   ;; (macros) or normal code, but not both within the same invocation.
   ;;
@@ -2427,7 +2428,7 @@
 
 	(if (/= count 0) (setq count (1- count))))
       (c-keep-region-active))))
-			       
+
 
 
 ;; set up electric character functions to work with pending-del,
@@ -2560,7 +2561,7 @@
   (interactive "p")
   (c-forward-conditional (- count) -1)
   (c-keep-region-active))
-  
+
 (defun c-up-conditional-with-else (count)
   "Move back to the containing preprocessor conditional, including \"#else\".
 Just like `c-up-conditional', except it also stops at \"#else\"
@@ -2782,7 +2783,7 @@
 
 (defun c-indent-exp (&optional shutup-p)
   "Indent each line in the balanced expression following point syntactically.
-If optional SHUTUP-P is non-nil, no errors are signalled if no
+If optional SHUTUP-P is non-nil, no errors are signaled if no
 balanced expression is found."
   (interactive "*P")
   (let ((here (point-marker))
@@ -3611,7 +3612,7 @@
 	hang-ender-stuck
 	;; auto-fill-spaces is the exact sequence of whitespace between a
 	;; comment's last word and the comment ender, temporarily replaced
-	;; with 'x's before calling FUN when FILL-PARAGRAPH is nil.  
+	;; with 'x's before calling FUN when FILL-PARAGRAPH is nil.
 	auto-fill-spaces
 	(here (point))
 	(c-lit-limits c-lit-limits)
--- a/lisp/progmodes/cc-compat.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-compat.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 ;;; cc-compat.el --- cc-mode compatibility with c-mode.el confusion
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
-;; Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;	       1994-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-defs.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-defs.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 ;;; cc-defs.el --- compile time definitions for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
-;; Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-engine.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-engine.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 ;;; cc-engine.el --- core syntax guessing engine for CC mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software Foundation,
-;; Inc.
+;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-langs.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-langs.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 ;;; cc-langs.el --- language specific settings for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
-;; Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-menus.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-menus.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 ;;; cc-menus.el --- imenu support for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
-;; Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-mode.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-mode.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 ;;; cc-mode.el --- major mode for editing C and similar languages
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
-;; Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; Authors:    2003- Alan Mackenzie
 ;;             1998- Martin Stjernholm
--- a/lisp/progmodes/cc-styles.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-styles.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 ;;; cc-styles.el --- support for styles in CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
-;; Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
--- a/lisp/progmodes/cc-vars.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cc-vars.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 ;;; cc-vars.el --- user customization variables for CC Mode
 
-;; Copyright (C) 1985,1987,1992-2003, 2004, 2005, 2006 Free Software
-;; Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1992, 1993, 1994, 1995, 1996, 1997, 1998,
+;;   1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006  Free Software
+;;   Foundation, Inc.
 
 ;; Authors:    1998- Martin Stjernholm
 ;;             1992-1999 Barry A. Warsaw
@@ -809,7 +810,7 @@
 This is used by the functions that automatically insert or align the
 line continuation backslashes in multiline macros.  If any line in the
 macro exceeds this column then the next tab stop from that line is
-used as alignment column instead."
+used as alignment column instead.  See also `c-backslash-max-column'."
   :type 'integer
   :group 'c)
 ;;;###autoload(put 'c-backslash-column 'safe-local-variable 'integerp)
--- a/lisp/progmodes/compile.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/compile.el	Thu Dec 07 04:14:14 2006 +0000
@@ -61,7 +61,7 @@
 
 ;; TYPE is 0 for info or 1 for warning if the message matcher identified it as
 ;; such, 2 otherwise (for a real error).  END-LOC is a LOC pointing to the
-;; other end, if the parsed message contained a range.	If the end of the
+;; other end, if the parsed message contained a range.  If the end of the
 ;; range didn't specify a COLUMN, it defaults to -1, meaning end of line.
 ;; These are the value of the `message' text-properties in the compilation
 ;; buffer.
@@ -499,7 +499,7 @@
 
 ;; A weak per-compilation-buffer hash indexed by (FILENAME . DIRECTORY).  Each
 ;; value is a FILE-STRUCTURE as described above, with the car eq to the hash
-;; key.	 This holds the tree seen from root, for storing new nodes.
+;; key.  This holds the tree seen from root, for storing new nodes.
 (defvar compilation-locs ())
 
 (defvar compilation-debug nil
@@ -627,12 +627,12 @@
       keymap compilation-button-map
       help-echo "mouse-2: visit this directory")))
 
-;; Data type `reverse-ordered-alist' retriever.	 This function retrieves the
+;; Data type `reverse-ordered-alist' retriever.  This function retrieves the
 ;; KEY element from the ALIST, creating it in the right position if not already
 ;; present. ALIST structure is
 ;; '(ANCHOR (KEY1 ...) (KEY2 ...)... (KEYn ALIST ...))
 ;; ANCHOR is ignored, but necessary so that elements can be inserted.  KEY1
-;; may be nil.	The other KEYs are ordered backwards so that growing line
+;; may be nil.  The other KEYs are ordered backwards so that growing line
 ;; numbers can be inserted in front and searching can abort after half the
 ;; list on average.
 (eval-when-compile		    ;Don't keep it at runtime if not needed.
--- a/lisp/progmodes/cperl-mode.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/cperl-mode.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1681,9 +1681,8 @@
 			  [(control c) (control h) f])))
   (setq major-mode cperl-use-major-mode)
   (setq mode-name "CPerl")
-  (if (not cperl-mode-abbrev-table)
-      (let ((prev-a-c abbrevs-changed))
-	(define-abbrev-table 'cperl-mode-abbrev-table '(
+  (let ((prev-a-c abbrevs-changed))
+    (define-abbrev-table 'cperl-mode-abbrev-table '(
 		("if" "if" cperl-electric-keyword 0)
 		("elsif" "elsif" cperl-electric-keyword 0)
 		("while" "while" cperl-electric-keyword 0)
@@ -1704,7 +1703,7 @@
 		("over" "over" cperl-electric-pod 0)
 		("head1" "head1" cperl-electric-pod 0)
 		("head2" "head2" cperl-electric-pod 0)))
-	(setq abbrevs-changed prev-a-c)))
+	(setq abbrevs-changed prev-a-c))
   (setq local-abbrev-table cperl-mode-abbrev-table)
   (if (cperl-val 'cperl-electric-keywords)
       (abbrev-mode 1))
--- a/lisp/progmodes/f90.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/f90.el	Thu Dec 07 04:14:14 2006 +0000
@@ -674,76 +674,78 @@
 
 ;; Abbrevs have generally two letters, except standard types `c, `i, `r, `t.
 (defvar f90-mode-abbrev-table
-  (let (abbrevs-changed)
+  (progn
     (define-abbrev-table 'f90-mode-abbrev-table nil)
-    ;; Use the 6th arg (SYSTEM-FLAG) of define-abbrev if possible.
-    ;; A little baroque to quieten the byte-compiler.
-    (mapcar
-     (function (lambda (element)
-                 (condition-case nil
-                     (apply 'define-abbrev f90-mode-abbrev-table
-                            (append element '(nil 0 t)))
-                   (wrong-number-of-arguments
-                    (apply 'define-abbrev f90-mode-abbrev-table
-                           (append element '(nil 0)))))))
-     '(("`al"  "allocate"     )
-       ("`ab"  "allocatable"  )
-       ("`as"  "assignment"   )
-       ("`ba"  "backspace"    )
-       ("`bd"  "block data"   )
-       ("`c"   "character"    )
-       ("`cl"  "close"        )
-       ("`cm"  "common"       )
-       ("`cx"  "complex"      )
-       ("`cn"  "contains"     )
-       ("`cy"  "cycle"        )
-       ("`de"  "deallocate"   )
-       ("`df"  "define"       )
-       ("`di"  "dimension"    )
-       ("`dp"  "double precision")
-       ("`dw"  "do while"     )
-       ("`el"  "else"         )
-       ("`eli" "else if"      )
-       ("`elw" "elsewhere"    )
-       ("`eq"  "equivalence"  )
-       ("`ex"  "external"     )
-       ("`ey"  "entry"        )
-       ("`fl"  "forall"       )
-       ("`fo"  "format"       )
-       ("`fu"  "function"     )
-       ("`fa"  ".false."      )
-       ("`im"  "implicit none")
-       ("`in"  "include"      )
-       ("`i"   "integer"      )
-       ("`it"  "intent"       )
-       ("`if"  "interface"    )
-       ("`lo"  "logical"      )
-       ("`mo"  "module"       )
-       ("`na"  "namelist"     )
-       ("`nu"  "nullify"      )
-       ("`op"  "optional"     )
-       ("`pa"  "parameter"    )
-       ("`po"  "pointer"      )
-       ("`pr"  "print"        )
-       ("`pi"  "private"      )
-       ("`pm"  "program"      )
-       ("`pu"  "public"       )
-       ("`r"   "real"         )
-       ("`rc"  "recursive"    )
-       ("`rt"  "return"       )
-       ("`rw"  "rewind"       )
-       ("`se"  "select"       )
-       ("`sq"  "sequence"     )
-       ("`su"  "subroutine"   )
-       ("`ta"  "target"       )
-       ("`tr"  ".true."       )
-       ("`t"   "type"         )
-       ("`wh"  "where"        )
-       ("`wr"  "write"        )))
     f90-mode-abbrev-table)
   "Abbrev table for F90 mode.")
+
+(let (abbrevs-changed)
+  ;; Use the 6th arg (SYSTEM-FLAG) of define-abbrev if possible.
+  ;; A little baroque to quieten the byte-compiler.
+  (mapcar
+   (function (lambda (element)
+               (condition-case nil
+                   (apply 'define-abbrev f90-mode-abbrev-table
+                          (append element '(nil 0 t)))
+                 (wrong-number-of-arguments
+                  (apply 'define-abbrev f90-mode-abbrev-table
+                         (append element '(nil 0)))))))
+   '(("`al"  "allocate"     )
+     ("`ab"  "allocatable"  )
+     ("`as"  "assignment"   )
+     ("`ba"  "backspace"    )
+     ("`bd"  "block data"   )
+     ("`c"   "character"    )
+     ("`cl"  "close"        )
+     ("`cm"  "common"       )
+     ("`cx"  "complex"      )
+     ("`cn"  "contains"     )
+     ("`cy"  "cycle"        )
+     ("`de"  "deallocate"   )
+     ("`df"  "define"       )
+     ("`di"  "dimension"    )
+     ("`dp"  "double precision")
+     ("`dw"  "do while"     )
+     ("`el"  "else"         )
+     ("`eli" "else if"      )
+     ("`elw" "elsewhere"    )
+     ("`eq"  "equivalence"  )
+     ("`ex"  "external"     )
+     ("`ey"  "entry"        )
+     ("`fl"  "forall"       )
+     ("`fo"  "format"       )
+     ("`fu"  "function"     )
+     ("`fa"  ".false."      )
+     ("`im"  "implicit none")
+     ("`in"  "include"      )
+     ("`i"   "integer"      )
+     ("`it"  "intent"       )
+     ("`if"  "interface"    )
+     ("`lo"  "logical"      )
+     ("`mo"  "module"       )
+     ("`na"  "namelist"     )
+     ("`nu"  "nullify"      )
+     ("`op"  "optional"     )
+     ("`pa"  "parameter"    )
+     ("`po"  "pointer"      )
+     ("`pr"  "print"        )
+     ("`pi"  "private"      )
+     ("`pm"  "program"      )
+     ("`pu"  "public"       )
+     ("`r"   "real"         )
+     ("`rc"  "recursive"    )
+     ("`rt"  "return"       )
+     ("`rw"  "rewind"       )
+     ("`se"  "select"       )
+     ("`sq"  "sequence"     )
+     ("`su"  "subroutine"   )
+     ("`ta"  "target"       )
+     ("`tr"  ".true."       )
+     ("`t"   "type"         )
+     ("`wh"  "where"        )
+     ("`wr"  "write"        ))))
+
 
-
 ;;;###autoload
 (defun f90-mode ()
   "Major mode for editing Fortran 90,95 code in free format.
@@ -1007,8 +1009,9 @@
 		(skip-chars-backward " \t")
 		(bolp)))
 	 (f90-calculate-indent))
-	(t (skip-chars-backward " \t")
-	   (max (if (bolp) 0 (1+ (current-column))) comment-column))))
+	(t (save-excursion
+             (skip-chars-backward " \t")
+             (max (if (bolp) 0 (1+ (current-column))) comment-column)))))
 
 (defsubst f90-present-statement-cont ()
   "Return continuation properties of present statement.
--- a/lisp/progmodes/flymake.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/flymake.el	Thu Dec 07 04:14:14 2006 +0000
@@ -2,8 +2,8 @@
 
 ;; Copyright (C) 2003, 2004, 2005, 2006  Free Software Foundation
 
-;; Author:  Pavel Kobiakov <pk_at_work@yahoo.com>
-;; Maintainer: Pavel Kobiakov <pk_at_work@yahoo.com>
+;; Author:  Pavel Kobyakov <pk_at_work@yahoo.com>
+;; Maintainer: Pavel Kobyakov <pk_at_work@yahoo.com>
 ;; Version: 0.3
 ;; Keywords: c languages tools
 
@@ -117,6 +117,30 @@
       'line-end-position
     (lambda (&optional arg) (save-excursion (end-of-line arg) (point)))))
 
+(defun flymake-posn-at-point-as-event (&optional position window dx dy)
+  "Return pixel position of top left corner of glyph at POSITION,
+relative to top left corner of WINDOW, as a mouse-1 click
+event (identical to the event that would be triggered by clicking
+mouse button 1 at the top left corner of the glyph).
+
+POSITION and WINDOW default to the position of point in the
+selected window.
+
+DX and DY specify optional offsets from the top left of the glyph."
+  (unless window (setq window (selected-window)))
+  (unless position (setq position (window-point window)))
+  (unless dx (setq dx 0))
+  (unless dy (setq dy 0))
+
+  (let* ((pos (posn-at-point position window))
+         (x-y (posn-x-y pos))
+         (edges (window-inside-pixel-edges window))
+         (win-x-y (window-pixel-edges window)))
+    ;; adjust for window edges
+    (setcar (nthcdr 2 pos)
+            (cons (+ (car x-y) (car  edges) (- (car win-x-y))  dx)
+                  (+ (cdr x-y) (cadr edges) (- (cadr win-x-y)) dy)))
+    (list 'mouse-1 pos)))
 
 (defun flymake-popup-menu (menu-data)
   "Pop up the flymake menu at point, using the data MENU-DATA.
@@ -134,7 +158,7 @@
 	(popup-menu (flymake-make-xemacs-menu menu-data)
                     (make-event 'button-press fake-event-props)))
     (x-popup-menu (if (eval-when-compile (fboundp 'posn-at-point))
-                      (posn-at-point)
+                      (flymake-posn-at-point-as-event)
                     (list (flymake-get-point-pixel-pos) (selected-window)))
                   (flymake-make-emacs-menu menu-data))))
 
--- a/lisp/progmodes/fortran.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/fortran.el	Thu Dec 07 04:14:14 2006 +0000
@@ -385,8 +385,8 @@
                             "dabs" "cabs" "mod" "amod" "dmod" "isign"
                             "sign" "dsign" "idim" "dim" "ddim" "dprod"
                             "max" "max0" "amax1" "dmax1" "amax0" "max1"
-                            "min0" "amin1" "dmin1" "amin0" "min1" "len"
-                            "index" "lge" "lgt" "lle" "llt" "aimag"
+                            "min" "min0" "amin1" "dmin1" "amin0" "min1"
+                            "len" "index" "lge" "lgt" "lle" "llt" "aimag"
                             "conjg" "sqrt" "dsqrt" "csqrt" "exp" "dexp"
                             "cexp" "log" "alog" "dlog" "clog" "log10"
                             "alog10" "dlog10" "sin" "dsin" "csin" "cos"
@@ -604,80 +604,82 @@
 
 
 (defvar fortran-mode-abbrev-table
-  (let (abbrevs-changed)
+  (progn
     (define-abbrev-table 'fortran-mode-abbrev-table nil)
-    ;; Use the 6th arg (SYSTEM-FLAG) of define-abbrev if possible.
-    ;; Only use `apply' to quieten the byte-compiler.
-    (mapcar
-     (function (lambda (element)
-                 (condition-case nil
-                     (apply 'define-abbrev fortran-mode-abbrev-table
-                            (append element '(nil 0 t)))
-                   (wrong-number-of-arguments
-                    (apply 'define-abbrev fortran-mode-abbrev-table
-                           (append element '(nil 0)))))))
-     '((";au"   "automatic"         )
-       (";b"    "byte"              )
-       (";bd"   "block data"        )
-       (";ch"   "character"         )
-       (";cl"   "close"             )
-       (";c"    "continue"          )
-       (";cm"   "common"            )
-       (";cx"   "complex"           )
-       (";df"   "define"            )
-       (";di"   "dimension"         )
-       (";do"   "double"            )
-       (";dc"   "double complex"    )
-       (";dp"   "double precision"  )
-       (";dw"   "do while"          )
-       (";e"    "else"              )
-       (";ed"   "enddo"             )
-       (";el"   "elseif"            )
-       (";en"   "endif"             )
-       (";eq"   "equivalence"       )
-       (";ew"   "endwhere"          )
-       (";ex"   "external"          )
-       (";ey"   "entry"             )
-       (";f"    "format"            )
-       (";fa"   ".false."           )
-       (";fu"   "function"          )
-       (";g"    "goto"              )
-       (";im"   "implicit"          )
-       (";ib"   "implicit byte"     )
-       (";ic"   "implicit complex"  )
-       (";ich"  "implicit character")
-       (";ii"   "implicit integer"  )
-       (";il"   "implicit logical"  )
-       (";ir"   "implicit real"     )
-       (";inc"  "include"           )
-       (";in"   "integer"           )
-       (";intr" "intrinsic"         )
-       (";l"    "logical"           )
-       (";n"    "namelist"          )
-       (";o"    "open"              )   ; was ;op
-       (";pa"   "parameter"         )
-       (";pr"   "program"           )
-       (";ps"   "pause"             )
-       (";p"    "print"             )
-       (";rc"   "record"            )
-       (";re"   "real"              )
-       (";r"    "read"              )
-       (";rt"   "return"            )
-       (";rw"   "rewind"            )
-       (";s"    "stop"              )
-       (";sa"   "save"              )
-       (";st"   "structure"         )
-       (";sc"   "static"            )
-       (";su"   "subroutine"        )
-       (";tr"   ".true."            )
-       (";ty"   "type"              )
-       (";vo"   "volatile"          )
-       (";w"    "write"             )
-       (";wh"   "where"             )))
-    fortran-mode-abbrev-table))
+    fortran-mode-abbrev-table)
+  "Abbrev table for Fortran mode.")
+
+(let (abbrevs-changed)
+  ;; Use the 6th arg (SYSTEM-FLAG) of define-abbrev if possible.
+  ;; Only use `apply' to quieten the byte-compiler.
+  (mapcar
+   (function (lambda (element)
+               (condition-case nil
+                   (apply 'define-abbrev fortran-mode-abbrev-table
+                          (append element '(nil 0 t)))
+                 (wrong-number-of-arguments
+                  (apply 'define-abbrev fortran-mode-abbrev-table
+                         (append element '(nil 0)))))))
+   '((";au"   "automatic"         )
+     (";b"    "byte"              )
+     (";bd"   "block data"        )
+     (";ch"   "character"         )
+     (";cl"   "close"             )
+     (";c"    "continue"          )
+     (";cm"   "common"            )
+     (";cx"   "complex"           )
+     (";df"   "define"            )
+     (";di"   "dimension"         )
+     (";do"   "double"            )
+     (";dc"   "double complex"    )
+     (";dp"   "double precision"  )
+     (";dw"   "do while"          )
+     (";e"    "else"              )
+     (";ed"   "enddo"             )
+     (";el"   "elseif"            )
+     (";en"   "endif"             )
+     (";eq"   "equivalence"       )
+     (";ew"   "endwhere"          )
+     (";ex"   "external"          )
+     (";ey"   "entry"             )
+     (";f"    "format"            )
+     (";fa"   ".false."           )
+     (";fu"   "function"          )
+     (";g"    "goto"              )
+     (";im"   "implicit"          )
+     (";ib"   "implicit byte"     )
+     (";ic"   "implicit complex"  )
+     (";ich"  "implicit character")
+     (";ii"   "implicit integer"  )
+     (";il"   "implicit logical"  )
+     (";ir"   "implicit real"     )
+     (";inc"  "include"           )
+     (";in"   "integer"           )
+     (";intr" "intrinsic"         )
+     (";l"    "logical"           )
+     (";n"    "namelist"          )
+     (";o"    "open"              )     ; was ;op
+     (";pa"   "parameter"         )
+     (";pr"   "program"           )
+     (";ps"   "pause"             )
+     (";p"    "print"             )
+     (";rc"   "record"            )
+     (";re"   "real"              )
+     (";r"    "read"              )
+     (";rt"   "return"            )
+     (";rw"   "rewind"            )
+     (";s"    "stop"              )
+     (";sa"   "save"              )
+     (";st"   "structure"         )
+     (";sc"   "static"            )
+     (";su"   "subroutine"        )
+     (";tr"   ".true."            )
+     (";ty"   "type"              )
+     (";vo"   "volatile"          )
+     (";w"    "write"             )
+     (";wh"   "where"             ))))
 
 
-
 ;;;###autoload
 (defun fortran-mode ()
   "Major mode for editing Fortran code in fixed format.
@@ -968,7 +970,7 @@
 	    (error (error "No room for Fortran window")))
 	  (message "Type SPC to continue editing.")
 	  (let ((char (read-event)))
-	    (or (equal char (string-to-char " "))
+	    (or (equal char ?\s)
 		(setq unread-command-events (list char))))))
     (fortran-window-create)))
 
--- a/lisp/progmodes/gdb-ui.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/gdb-ui.el	Thu Dec 07 04:14:14 2006 +0000
@@ -40,8 +40,8 @@
 ;; This file has evolved from gdba.el that was included with GDB 5.0 and
 ;; written by Tom Lord and Jim Kingdon.  It uses GDB's annotation interface.
 ;; You don't need to know about annotations to use this mode as a debugger,
-;; but if you are interested developing the mode itself, then see the
-;; Annotations section in the GDB info manual.
+;; but if you are interested developing the mode itself, see the Annotations
+;; section in the GDB info manual.
 
 ;; GDB developers plan to make the annotation interface obsolete.  A new
 ;; interface called GDB/MI (machine interface) has been designed to replace
@@ -51,9 +51,9 @@
 ;; still under development and is part of a process to migrate Emacs from
 ;; annotations to GDB/MI.
 
-;; This mode SHOULD WORK WITH GDB 5.0 onwards but you will NEED GDB 6.0
-;; onwards to use watch expressions.  It works best with GDB 6.4 where
-;; watch expressions will update more quickly.
+;; This mode SHOULD WORK WITH GDB 5.0 or later but you will NEED AT LEAST
+;; GDB 6.0 to use watch expressions.  It works best with GDB 6.4 or later
+;; where watch expressions will update more quickly.
 
 ;;; Windows Platforms:
 
@@ -81,12 +81,14 @@
 ;;    "gdb --annotate=2 myprog" to keep source buffer/selected frame fixed.
 
 ;;; Problems with watch expressions, GDB/MI:
+
 ;; 1) They go out of scope when the inferior is re-run.
 ;; 2) -stack-list-locals has a type field but also prints type in values field.
 ;; 3) VARNUM increments even when variable object is not created
 ;;    (maybe trivial).
 
 ;;; TODO:
+
 ;; 1) Use MI command -data-read-memory for memory window.
 ;; 2) Use tree-widget.el instead of the speedbar for watch-expressions?
 ;; 3) Mark breakpoint locations on scroll-bar of source buffer?
@@ -871,6 +873,14 @@
 	      (if (string-match (concat (car var) "\\.") (car varchild))
 		  (setq gdb-var-list (delq varchild gdb-var-list)))))))))
 
+(defun gdb-var-delete-children (varnum)
+  "Delete children of variable object point from the speedbar."
+  (gdb-enqueue-input
+   (list
+    (if (eq (buffer-local-value 'gud-minor-mode gud-comint-buffer) 'gdba)
+	(concat "server interpreter mi \"-var-delete -c " varnum "\"\n")
+      (concat "-var-delete -c " varnum "\n")) 'ignore)))
+
 (defun gdb-edit-value (text token indent)
   "Assign a value to a variable displayed in the speedbar."
   (let* ((var (nth (- (count-lines (point-min) (point)) 2) gdb-var-list))
@@ -914,6 +924,7 @@
 	       (dolist (var gdb-var-list)
 		 (if (string-match (concat token "\\.") (car var))
 		     (setq gdb-var-list (delq var gdb-var-list))))
+	       (gdb-var-delete-children token)
 	       (speedbar-change-expand-button-char ?+)
 	       (speedbar-delete-subblock indent))
 	      (t (error "Ooops...  not sure what to do")))
--- a/lisp/progmodes/gud.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/gud.el	Thu Dec 07 04:14:14 2006 +0000
@@ -394,8 +394,6 @@
     (define-key gud-speedbar-key-map "e" 'speedbar-edit-line)
     (define-key gud-speedbar-key-map "\C-m" 'speedbar-edit-line)
     (define-key gud-speedbar-key-map " " 'speedbar-toggle-line-expansion)
-    (define-key gud-speedbar-key-map "[" 'speedbar-expand-line-descendants)
-    (define-key gud-speedbar-key-map "]" 'speedbar-contract-line-descendants)
     (define-key gud-speedbar-key-map "D" 'gdb-var-delete)
     (define-key gud-speedbar-key-map "p" 'gud-pp))
 
@@ -624,7 +622,7 @@
 
     ;; Does the remaining text look like it might end with the
     ;; beginning of another marker?  If it does, then keep it in
-    ;; gud-marker-acc until we receive the rest of it.	Since we
+    ;; gud-marker-acc until we receive the rest of it.  Since we
     ;; know the full marker regexp above failed, it's pretty simple to
     ;; test for marker starts.
     (if (string-match "\n\\(\032.*\\)?\\'" gud-marker-acc)
@@ -680,15 +678,19 @@
 default this command starts GDB using a graphical interface.  See
 `gdba' for more information.
 
-To run GDB in text command mode, set `gud-gdb-command-name' to
-\"gdb --fullname\" and include the pathname, if necessary."
+To run GDB in text command mode, replace the GDB \"--annotate=3\"
+option with \"--fullname\" either in the minibuffer for the
+current Emacs session, or the custom variable
+`gud-gdb-command-name' for all future sessions.  You need to use
+text command mode to debug multiple programs within one Emacs
+session."
   (interactive (list (gud-query-cmdline 'gdb)))
 
   (if (and gud-comint-buffer
 	   (buffer-name gud-comint-buffer)
 	   (get-buffer-process gud-comint-buffer)
 	   (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba)))
-      (error "Multiple debugging is only supported with \"gdb --fullname\""))
+      (error "Multiple debugging requires restarting in text command mode"))
 
   (gud-common-init command-line nil 'gud-gdb-marker-filter)
   (set (make-local-variable 'gud-minor-mode) 'gdb)
@@ -1457,7 +1459,7 @@
 
     ;; Does the remaining text look like it might end with the
     ;; beginning of another marker?  If it does, then keep it in
-    ;; gud-marker-acc until we receive the rest of it.	Since we
+    ;; gud-marker-acc until we receive the rest of it.  Since we
     ;; know the full marker regexp above failed, it's pretty simple to
     ;; test for marker starts.
     (if (string-match "\032.*\\'" gud-marker-acc)
@@ -1562,7 +1564,7 @@
 
     ;; Does the remaining text look like it might end with the
     ;; beginning of another marker?  If it does, then keep it in
-    ;; gud-marker-acc until we receive the rest of it.	Since we
+    ;; gud-marker-acc until we receive the rest of it.  Since we
     ;; know the full marker regexp above failed, it's pretty simple to
     ;; test for marker starts.
     (if (string-match gud-pdb-marker-regexp-start gud-marker-acc)
@@ -1861,7 +1863,7 @@
     (forward-char))
   (forward-char))
 
-;; Move point past the following block.	 There may be (legal) cruft before
+;; Move point past the following block.  There may be (legal) cruft before
 ;; the block's opening brace.  There must be a block or it's the end of life
 ;; in petticoat junction.
 (defun gud-jdb-skip-block ()
@@ -2049,7 +2051,7 @@
 	massaged-args)))
 
 ;; Search for an association with P, a fully qualified class name, in
-;; gud-jdb-class-source-alist.	The asssociation gives the fully
+;; gud-jdb-class-source-alist.  The asssociation gives the fully
 ;; qualified file name of the source file which produced the class.
 (defun gud-jdb-find-source-file (p)
   (cdr (assoc p gud-jdb-class-source-alist)))
@@ -2217,7 +2219,7 @@
 (defun jdb (command-line)
   "Run jdb with command line COMMAND-LINE in a buffer.
 The buffer is named \"*gud*\" if no initial class is given or
-\"*gud-<initial-class-basename>*\" if there is.	 If the \"-classpath\"
+\"*gud-<initial-class-basename>*\" if there is.  If the \"-classpath\"
 switch is given, omit all whitespace between it and its value.
 
 See `gud-jdb-use-classpath' and `gud-jdb-classpath' documentation for
@@ -2794,7 +2796,7 @@
 	    (cond ((or (< pos (point-min)) (> pos (point-max)))
 		   (widen)
 		   (goto-char pos))))
-	  (when window 
+	  (when window
 	    (set-window-point window gud-overlay-arrow-position)
 	    (if (memq gud-minor-mode '(gdbmi gdba))
 		(setq gdb-source-window window)))))))
--- a/lisp/progmodes/hideshow.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/hideshow.el	Thu Dec 07 04:14:14 2006 +0000
@@ -706,6 +706,7 @@
       (if (and c-reg (nth 0 c-reg))
           ;; point is inside a comment, and that comment is hidable
           (goto-char (nth 0 c-reg))
+	(end-of-line)
         (when (and (not c-reg)
                    (hs-find-block-beginning)
                    (looking-at hs-block-start-regexp))
--- a/lisp/progmodes/idlwave.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/idlwave.el	Thu Dec 07 04:14:14 2006 +0000
@@ -3486,8 +3486,6 @@
 	  (idlwave-indent-line)
 	  ;; Prevent actions do-auto-fill which calls indent-line-function.
 	  (let (idlwave-do-actions
-		(paragraph-start ".")
-		(paragraph-separate ".")
 		(fill-nobreak-predicate
 		 (if (and (idlwave-in-quote)
 			  idlwave-auto-fill-split-string)
@@ -4653,7 +4651,11 @@
 	      props (car (cdr pelem)))
 	(cond
 	 ((eq ptype 'SUPERCLASS)
-	  (push (cdr (assq 'name props)) inherits))
+	  (let ((pname (cdr (assq 'name props)))
+		(plink (cdr (assq 'link props))))
+	    (unless (and (string= pname "None")
+			 (string= plink "None"))
+	      (push pname inherits))))
 
 	 ((eq ptype 'PROPERTY)
 	  (let ((pname (cdr (assq 'name props)))
--- a/lisp/progmodes/octave-mod.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/octave-mod.el	Thu Dec 07 04:14:14 2006 +0000
@@ -61,37 +61,38 @@
 Used in `octave-mode' and inferior-octave-mode buffers.
 All Octave abbrevs start with a grave accent (`).")
 (unless octave-abbrev-table
-  (let ((ac abbrevs-changed))
-    (define-abbrev-table 'octave-abbrev-table ())
-    (define-abbrev octave-abbrev-table "`a" "all_va_args" nil 0 t)
-    (define-abbrev octave-abbrev-table "`b" "break" nil 0 t)
-    (define-abbrev octave-abbrev-table "`cs" "case" nil 0 t)
-    (define-abbrev octave-abbrev-table "`ca" "catch" nil 0 t)
-    (define-abbrev octave-abbrev-table "`c" "continue" nil 0 t)
-    (define-abbrev octave-abbrev-table "`el" "else" nil 0 t)
-    (define-abbrev octave-abbrev-table "`eli" "elseif" nil 0 t)
-    (define-abbrev octave-abbrev-table "`et" "end_try_catch" nil 0 t)
-    (define-abbrev octave-abbrev-table "`eu" "end_unwind_protect" nil 0 t)
-    (define-abbrev octave-abbrev-table "`ef" "endfor" nil 0 t)
-    (define-abbrev octave-abbrev-table "`efu" "endfunction" nil 0 t)
-    (define-abbrev octave-abbrev-table "`ei" "endif" nil 0 t)
-    (define-abbrev octave-abbrev-table "`es" "endswitch" nil 0 t)
-    (define-abbrev octave-abbrev-table "`ew" "endwhile" nil 0 t)
-    (define-abbrev octave-abbrev-table "`f" "for" nil 0 t)
-    (define-abbrev octave-abbrev-table "`fu" "function" nil 0 t)
-    (define-abbrev octave-abbrev-table "`gl" "global" nil 0 t)
-    (define-abbrev octave-abbrev-table "`gp" "gplot" nil 0 t)
-    (define-abbrev octave-abbrev-table "`gs" "gsplot" nil 0 t)
-    (define-abbrev octave-abbrev-table "`if" "if ()" nil 0 t)
-    (define-abbrev octave-abbrev-table "`o" "otherwise" nil 0 t)
-    (define-abbrev octave-abbrev-table "`rp" "replot" nil 0 t)
-    (define-abbrev octave-abbrev-table "`r" "return" nil 0 t)
-    (define-abbrev octave-abbrev-table "`s" "switch" nil 0 t)
-    (define-abbrev octave-abbrev-table "`t" "try" nil 0 t)
-    (define-abbrev octave-abbrev-table "`up" "unwind_protect" nil 0 t)
-    (define-abbrev octave-abbrev-table "`upc" "unwind_protect_cleanup" nil 0 t)
-    (define-abbrev octave-abbrev-table "`w" "while ()" nil 0 t)
-    (setq abbrevs-changed ac)))
+  (define-abbrev-table 'octave-abbrev-table ()))
+
+(let ((ac abbrevs-changed))
+  (define-abbrev octave-abbrev-table "`a" "all_va_args" nil 0 t)
+  (define-abbrev octave-abbrev-table "`b" "break" nil 0 t)
+  (define-abbrev octave-abbrev-table "`cs" "case" nil 0 t)
+  (define-abbrev octave-abbrev-table "`ca" "catch" nil 0 t)
+  (define-abbrev octave-abbrev-table "`c" "continue" nil 0 t)
+  (define-abbrev octave-abbrev-table "`el" "else" nil 0 t)
+  (define-abbrev octave-abbrev-table "`eli" "elseif" nil 0 t)
+  (define-abbrev octave-abbrev-table "`et" "end_try_catch" nil 0 t)
+  (define-abbrev octave-abbrev-table "`eu" "end_unwind_protect" nil 0 t)
+  (define-abbrev octave-abbrev-table "`ef" "endfor" nil 0 t)
+  (define-abbrev octave-abbrev-table "`efu" "endfunction" nil 0 t)
+  (define-abbrev octave-abbrev-table "`ei" "endif" nil 0 t)
+  (define-abbrev octave-abbrev-table "`es" "endswitch" nil 0 t)
+  (define-abbrev octave-abbrev-table "`ew" "endwhile" nil 0 t)
+  (define-abbrev octave-abbrev-table "`f" "for" nil 0 t)
+  (define-abbrev octave-abbrev-table "`fu" "function" nil 0 t)
+  (define-abbrev octave-abbrev-table "`gl" "global" nil 0 t)
+  (define-abbrev octave-abbrev-table "`gp" "gplot" nil 0 t)
+  (define-abbrev octave-abbrev-table "`gs" "gsplot" nil 0 t)
+  (define-abbrev octave-abbrev-table "`if" "if ()" nil 0 t)
+  (define-abbrev octave-abbrev-table "`o" "otherwise" nil 0 t)
+  (define-abbrev octave-abbrev-table "`rp" "replot" nil 0 t)
+  (define-abbrev octave-abbrev-table "`r" "return" nil 0 t)
+  (define-abbrev octave-abbrev-table "`s" "switch" nil 0 t)
+  (define-abbrev octave-abbrev-table "`t" "try" nil 0 t)
+  (define-abbrev octave-abbrev-table "`up" "unwind_protect" nil 0 t)
+  (define-abbrev octave-abbrev-table "`upc" "unwind_protect_cleanup" nil 0 t)
+  (define-abbrev octave-abbrev-table "`w" "while ()" nil 0 t)
+  (setq abbrevs-changed ac))
 
 (defvar octave-comment-char ?#
   "Character to start an Octave comment.")
--- a/lisp/progmodes/python.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/python.el	Thu Dec 07 04:14:14 2006 +0000
@@ -408,6 +408,7 @@
 See also `\\[python-guess-indent]'"
   :group 'python
   :type 'integer)
+(put 'python-indent 'safe-local-variable 'integerp)
 
 (defcustom python-guess-indent t
   "Non-nil means Python mode guesses `python-indent' for the buffer."
--- a/lisp/progmodes/sql.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/sql.el	Thu Dec 07 04:14:14 2006 +0000
@@ -847,23 +847,24 @@
 (defvar sql-mode-abbrev-table nil
   "Abbrev table used in `sql-mode' and `sql-interactive-mode'.")
 (unless sql-mode-abbrev-table
-  (define-abbrev-table 'sql-mode-abbrev-table nil)
-  (mapcar
-    ;; In Emacs 21.3+, provide SYSTEM-FLAG to define-abbrev.
-   '(lambda (abbrev)
-      (let ((name (car abbrev))
-	    (expansion (cdr abbrev)))
-	(condition-case nil
-	    (define-abbrev sql-mode-abbrev-table name expansion nil 0 t)
-	  (error
-	   (define-abbrev sql-mode-abbrev-table name expansion)))))
-   '(("ins" "insert")
-    ("upd" "update")
-    ("del" "delete")
-    ("sel" "select")
-    ("proc" "procedure")
-    ("func" "function")
-    ("cr" "create"))))
+  (define-abbrev-table 'sql-mode-abbrev-table nil))
+
+(mapcar
+ ;; In Emacs 21.3+, provide SYSTEM-FLAG to define-abbrev.
+ '(lambda (abbrev)
+    (let ((name (car abbrev))
+          (expansion (cdr abbrev)))
+      (condition-case nil
+          (define-abbrev sql-mode-abbrev-table name expansion nil 0 t)
+        (error
+         (define-abbrev sql-mode-abbrev-table name expansion)))))
+ '(("ins" "insert")
+   ("upd" "update")
+   ("del" "delete")
+   ("sel" "select")
+   ("proc" "procedure")
+   ("func" "function")
+   ("cr" "create")))
 
 ;; Syntax Table
 
--- a/lisp/progmodes/vhdl-mode.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/progmodes/vhdl-mode.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,12 +1,13 @@
 ;;; vhdl-mode.el --- major mode for editing VHDL code
 
-;; Copyright (C) 1992-2003, 2004, 2005, 2006  Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
+;;   2001, 2002, 2003, 2004, 2005, 2006  Free Software Foundation, Inc.
 
 ;; Authors:     Reto Zimmermann <reto@gnu.org>
 ;;              Rodney J. Whitby <software.vhdl-mode@rwhitby.net>
 ;; Maintainer:  Reto Zimmermann <reto@gnu.org>
 ;; Keywords:    languages vhdl
-;; WWW:         http://opensource.ethz.ch/emacs/vhdl-mode.html
+;; WWW:         http://www.iis.ee.ethz.ch/~zimmi/emacs/vhdl-mode.html
 
 (defconst vhdl-version "3.33.6"
   "VHDL Mode version number.")
@@ -2892,7 +2893,6 @@
 
 (defun vhdl-mode-abbrev-table-init ()
   "Initialize `vhdl-mode-abbrev-table'."
-  (when vhdl-mode-abbrev-table (clear-abbrev-table vhdl-mode-abbrev-table))
   (define-abbrev-table 'vhdl-mode-abbrev-table
     (append
      (when (memq 'vhdl vhdl-electric-keywords)
--- a/lisp/register.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/register.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; register.el --- register commands for Emacs
 
-;; Copyright (C) 1985, 1993, 1994, 2002, 2003, 2004,
+;; Copyright (C) 1985, 1993, 1994, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/repeat.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/repeat.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; repeat.el --- convenient way to repeat the previous command
 
-;; Copyright (C) 1998, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1998, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Will Mengarini <seldon@eskimo.com>
--- a/lisp/reposition.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/reposition.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; reposition.el --- center a Lisp function or comment on the screen
 
-;; Copyright (C) 1991, 1994, 2002, 2003, 2004,
+;; Copyright (C) 1991, 1994, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Michael D. Ernst <mernst@theory.lcs.mit.edu>
--- a/lisp/resume.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/resume.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; resume.el --- process command line args from within a suspended Emacs job
 
-;; Copyright (C) 1992, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1992, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Joe Wells <jbw@bucsf.bu.edu>
@@ -52,7 +52,7 @@
   "*This file is where arguments are placed for a suspended Emacs job.")
 
 (defvar resume-emacs-args-buffer " *Command Line Args*"
-  "Buffer that is used by resume-process-args.")
+  "Buffer that is used by `resume-process-args'.")
 
 (defun resume-process-args ()
   "Handler for command line args given when Emacs is resumed."
--- a/lisp/rot13.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/rot13.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
-;;; rot13.el --- display a buffer in rot13
+;;; rot13.el --- display a buffer in ROT13
 
-;; Copyright (C) 1988, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1988, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Howard Gayle
@@ -27,7 +27,7 @@
 
 ;; The entry point, `rot13-other-window', performs a Caesar cipher
 ;; encrypt/decrypt on the current buffer and displays the result in another
-;; window.  Rot13 encryption is sometimes used on USENET as a read-at-your-
+;; window.  ROT13 encryption is sometimes used on USENET as a read-at-your-
 ;; own-risk wrapper for material some might consider offensive, such as
 ;; ethnic humor.
 ;;
@@ -48,7 +48,7 @@
       (aset table (+ i ?A) (vector (+ (% (+ i 13) 26) ?A)))
       (setq i (1+ i)))
     table)
-  "Char table for rot 13 display.")
+  "Char table for ROT13 display.")
 
 (defvar rot13-translate-table
   (let ((str (make-string 127 0))
@@ -62,11 +62,11 @@
       (aset str (+ i ?A) (+ (% (+ i 13) 26) ?A))
       (setq i (1+ i)))
     str)
-  "String table for rot 13 translation.")
+  "String table for ROT13 translation.")
 
 ;;;###autoload
 (defun rot13 (object &optional start end)
-  "Return Rot13 encryption of OBJECT, a buffer or string."
+  "Return ROT13 encryption of OBJECT, a buffer or string."
   (if (bufferp object)
       (with-current-buffer object
 	(rot13-region start end))
@@ -74,7 +74,7 @@
 
 ;;;###autoload
 (defun rot13-string (string)
-  "Return Rot13 encryption of STRING."
+  "Return ROT13 encryption of STRING."
   (with-temp-buffer
     (insert string)
     (rot13-region (point-min) (point-max))
@@ -82,18 +82,18 @@
 
 ;;;###autoload
 (defun rot13-region (start end)
-  "Rot13 encrypt the region between START and END in current buffer."
+  "ROT13 encrypt the region between START and END in current buffer."
   (interactive "r")
   (translate-region start end rot13-translate-table))
 
 ;;;###autoload
 (defun rot13-other-window ()
-  "Display current buffer in rot 13 in another window.
+  "Display current buffer in ROT13 in another window.
 The text itself is not modified, only the way it is displayed is affected.
 
-To terminate the rot13 display, delete that window.  As long as that window
+To terminate the ROT13 display, delete that window.  As long as that window
 is not deleted, any buffer displayed in it will become instantly encoded
-in rot 13.
+in ROT13.
 
 See also `toggle-rot13-mode'."
   (interactive)
@@ -102,7 +102,7 @@
 
 ;;;###autoload
 (defun toggle-rot13-mode ()
-  "Toggle the use of rot 13 encoding for the current window."
+  "Toggle the use of ROT13 encoding for the current window."
   (interactive)
   (if (eq (window-display-table (selected-window)) rot13-display-table)
       (set-window-display-table (selected-window) nil)
--- a/lisp/s-region.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/s-region.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; s-region.el --- set region using shift key
 
-;; Copyright (C) 1994, 1995, 2002, 2003, 2004,
+;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Morten Welinder <terra@diku.dk>
--- a/lisp/sb-image.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/sb-image.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; sb-image --- Image management for speedbar
 
-;; Copyright (C) 1999, 2000, 2001, 2002, 2003,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Eric M. Ludlam <zappo@gnu.org>
--- a/lisp/scroll-all.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/scroll-all.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; scroll-all.el --- scroll all buffers together minor mode
 
-;; Copyright (C) 1997, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Gary D. Foster <Gary.Foster@corp.sun.com>
@@ -28,7 +28,7 @@
 ;;    up or down lines in any buffer causes all the buffers to mirror
 ;;    the scrolling.  It hooks into the post-command-hook to check for
 ;;    potential scrolling commands and if we're locked, mirrors them in all
-;;    windows.	This allows us to grab line-at-a-time scrolling as well as
+;;    windows.  This allows us to grab line-at-a-time scrolling as well as
 ;;    screen-at-a-time scrolling, and doesn't remap any of the keyboard
 ;;    commands to do it.
 
--- a/lisp/select.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/select.el	Thu Dec 07 04:14:14 2006 +0000
@@ -3,7 +3,7 @@
 ;; Maintainer: FSF
 ;; Keywords: internal
 
-;; Copyright (C) 1993, 1994, 2002, 2003, 2004,
+;; Copyright (C) 1993, 1994, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 ;; Based partially on earlier release by Lucid.
 
--- a/lisp/server.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/server.el	Thu Dec 07 04:14:14 2006 +0000
@@ -113,23 +113,23 @@
 (put 'server-auth-dir 'risky-local-variable t)
 
 (defcustom server-raise-frame t
-  "*If non-nil, raise frame when switching to a buffer."
+  "If non-nil, raise frame when switching to a buffer."
   :group 'server
   :type 'boolean
   :version "22.1")
 
 (defcustom server-visit-hook nil
-  "*Hook run when visiting a file for the Emacs server."
+  "Hook run when visiting a file for the Emacs server."
   :group 'server
   :type 'hook)
 
 (defcustom server-switch-hook nil
-  "*Hook run when switching to a buffer for the Emacs server."
+  "Hook run when switching to a buffer for the Emacs server."
   :group 'server
   :type 'hook)
 
 (defcustom server-done-hook nil
-  "*Hook run when done editing a buffer for the Emacs server."
+  "Hook run when done editing a buffer for the Emacs server."
   :group 'server
   :type 'hook)
 
@@ -149,7 +149,7 @@
 (put 'server-buffer-clients 'permanent-local t)
 
 (defcustom server-window nil
-  "*Specification of the window to use for selecting Emacs server buffers.
+  "Specification of the window to use for selecting Emacs server buffers.
 If nil, use the selected window.
 If it is a function, it should take one argument (a buffer) and
 display and select it.  A common value is `pop-to-buffer'.
@@ -168,14 +168,14 @@
 		 (function :tag "Other function")))
 
 (defcustom server-temp-file-regexp "^/tmp/Re\\|/draft$"
-  "*Regexp matching names of temporary files.
+  "Regexp matching names of temporary files.
 These are deleted and reused after each edit by the programs that
 invoke the Emacs server."
   :group 'server
   :type 'regexp)
 
 (defcustom server-kill-new-buffers t
-  "*Whether to kill buffers when done with them.
+  "Whether to kill buffers when done with them.
 If non-nil, kill a buffer unless it already existed before editing
 it with Emacs server.  If nil, kill only buffers as specified by
 `server-temp-file-regexp'.
@@ -403,6 +403,16 @@
     (when prev
       (setq string (concat prev string))
       (process-put proc :previous-string nil)))
+  (when (> (recursion-depth) 0)
+    ;; We're inside a minibuffer already, so if the emacs-client is trying
+    ;; to open a frame on a new display, we might end up with an unusable
+    ;; frame because input from that display will be blocked (until exiting
+    ;; the minibuffer).  Better exit this minibuffer right away.
+    ;; Similarly with recursive-edits such as the splash screen.
+    (process-put proc :previous-string string)
+    (run-with-timer 0 nil (lexical-let ((proc proc))
+                            (lambda () (server-process-filter proc ""))))
+    (top-level))
   ;; If the input is multiple lines,
   ;; process each line individually.
   (while (string-match "\n" string)
--- a/lisp/shell.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/shell.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; shell.el --- specialized comint.el for running the shell
 
-;; Copyright (C) 1988, 1993, 1994, 1995, 1996, 1997, 2000,
+;; Copyright (C) 1988, 1993, 1994, 1995, 1996, 1997, 2000, 2001,
 ;;   2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Olin Shivers <shivers@cs.cmu.edu>
@@ -521,9 +521,9 @@
 Program used comes from variable `explicit-shell-file-name',
  or (if that is nil) from the ESHELL environment variable,
  or else from SHELL if there is no ESHELL.
-If a file `~/.emacs_SHELLNAME' exists, it is given as initial input
- (Note that this may lose due to a timing error if the shell
-  discards input when it starts up.)
+If a file `~/.emacs_SHELLNAME' exists, or `~/.emacs.d/init_SHELLNAME.sh',
+it is given as initial input (Note that this may lose due to a timing
+error if the shell discards input when it starts up).
 The buffer is put in Shell mode, giving commands for sending input
 and controlling the subjobs of the shell.  See `shell-mode'.
 See also the variable `shell-prompt-pattern'.
@@ -556,8 +556,8 @@
 	   (name (file-name-nondirectory prog))
 	   (startfile (concat "~/.emacs_" name))
 	   (xargs-name (intern-soft (concat "explicit-" name "-args"))))
-      (if (not (file-exists-p startfile))
-	  (setq startfile (concat "~/.emacs.d/.emacs_" name)))
+      (unless (file-exists-p startfile)
+	(setq startfile (concat "~/.emacs.d/init_" name ".sh")))
       (apply 'make-comint-in-buffer "shell" buffer prog
 	     (if (file-exists-p startfile) startfile)
 	     (if (and xargs-name (boundp xargs-name))
--- a/lisp/simple.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/simple.el	Thu Dec 07 04:14:14 2006 +0000
@@ -262,10 +262,10 @@
 	(next-error-buffer-p (current-buffer) nil
 			     extra-test-inclusive extra-test-exclusive)
 	(progn
-	  (message "This is the only next-error capable buffer")
+	  (message "This is the only buffer with error message locations")
 	  (current-buffer)))
    ;; 6. Give up.
-   (error "No next-error capable buffer found")))
+   (error "No buffers contain error message locations")))
 
 (defun next-error (&optional arg reset)
   "Visit next `next-error' message and corresponding source code.
@@ -4329,7 +4329,7 @@
 (defvaralias 'default-indicate-unused-lines 'default-indicate-empty-lines)
 
 (defun toggle-truncate-lines (&optional arg)
-  "Toggle whether to fold or truncate long lines on the screen.
+  "Toggle whether to fold or truncate long lines for the current buffer.
 With arg, truncate long lines iff arg is positive.
 Note that in side-by-side windows, truncation is always enabled."
   (interactive "P")
--- a/lisp/skeleton.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/skeleton.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; skeleton.el --- Lisp language extension for writing statement skeletons
 
-;; Copyright (C) 1993, 1994, 1995, 1996, 2002, 2003,
+;; Copyright (C) 1993, 1994, 1995, 1996, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Daniel Pfeiffer <occitan@esperanto.org>
--- a/lisp/sort.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/sort.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; sort.el --- commands to sort text in an Emacs buffer
 
-;; Copyright (C) 1986, 1987, 1994, 1995, 2002, 2003,
+;; Copyright (C) 1986, 1987, 1994, 1995, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Howie Kaye
@@ -248,7 +248,7 @@
     (while (< i 256)
       (modify-syntax-entry i "w" table)
       (setq i (1+ i)))
-    (modify-syntax-entry ?\  " " table)
+    (modify-syntax-entry ?\s " " table)
     (modify-syntax-entry ?\t " " table)
     (modify-syntax-entry ?\n " " table)
     (modify-syntax-entry ?\. "_" table)	; for floating pt. numbers. -wsr
--- a/lisp/soundex.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/soundex.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; soundex.el --- implement Soundex algorithm
 
-;; Copyright (C) 1993, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1993, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Christian Plaunt <chris@bliss.berkeley.edu>
--- a/lisp/speedbar.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/speedbar.el	Thu Dec 07 04:14:14 2006 +0000
@@ -2681,7 +2681,15 @@
 			     "Updating speedbar to special mode: %s...done"
 			     major-mode)
 			    (speedbar-message nil))))
-		    (speedbar-update-localized-contents))
+
+ 		  ;; Update all the contents if directories change!
+ 		  (unless (and (or (member major-mode speedbar-ignored-modes)
+				   (eq af (speedbar-current-frame))
+				   (not (buffer-file-name)))
+			       ;; Always update for GUD.
+			       (not (string-equal "GUD"
+				     speedbar-initial-expansion-list-name)))
+		    (speedbar-update-localized-contents)))
 		(select-frame af))
 	    ;; Now run stealthy updates of time-consuming items
 	    (speedbar-stealthy-updates)))))
--- a/lisp/startup.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/startup.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1376,7 +1376,7 @@
 	    timer)
 	(save-selected-window
 	  (select-frame frame)
-	  (switch-to-buffer "GNU Emacs")
+	  (switch-to-buffer " GNU Emacs")
 	  (setq splash-buffer (current-buffer))
 	  (catch 'stop-splashing
 	    (unwind-protect
--- a/lisp/strokes.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/strokes.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; strokes.el --- control Emacs through mouse strokes
 
-;; Copyright (C) 1997, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1997, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: David Bakhash <cadet@alum.mit.edu>
--- a/lisp/subr.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/subr.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1892,7 +1892,7 @@
 input (as a command if nothing else).
 Display MESSAGE (optional fourth arg) in the echo area.
 If MESSAGE is nil, instructions to type EXIT-CHAR are displayed there."
-  (or exit-char (setq exit-char ?\ ))
+  (or exit-char (setq exit-char ?\s))
   (let ((inhibit-read-only t)
 	;; Don't modify the undo list at all.
 	(buffer-undo-list t)
--- a/lisp/tabify.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/tabify.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; tabify.el --- tab conversion commands for Emacs
 
-;; Copyright (C) 1985, 1994, 2002, 2003, 2004,
+;; Copyright (C) 1985, 1994, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -52,7 +52,7 @@
 
 (defvar tabify-regexp " [ \t]+"
   "Regexp matching whitespace that tabify should consider.
-Usually this will be \" [ \\t]+\" to match two or more spaces or tabs.
+Usually this will be \" [ \\t]+\" to match a space followed by whitespace.
 \"^\\t* [ \\t]+\" is also useful, for tabifying only initial whitespace.")
 
 ;;;###autoload
--- a/lisp/talk.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/talk.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; talk.el --- allow several users to talk to each other through Emacs
 
-;; Copyright (C) 1995, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1995, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/tar-mode.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/tar-mode.el	Thu Dec 07 04:14:14 2006 +0000
@@ -361,7 +361,7 @@
 		  ((eq type 29) ?M)	; multivolume continuation
 		  ((eq type 35) ?S)	; sparse
 		  ((eq type 38) ?V)	; volume header
-		  (t ?\ )
+		  (t ?\s)
 		  )
 	    (tar-grind-file-mode mode)
 	    (if (= 0 (length uname)) uid uname)
@@ -937,7 +937,7 @@
   (save-excursion
     (goto-char (point-min))
     (while (< (point) tar-header-offset)
-      (if (not (eq (following-char) ?\ ))
+      (if (not (eq (following-char) ?\s))
 	  (progn (delete-char 1) (insert " ")))
       (forward-line 1))))
 
--- a/lisp/tempo.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/tempo.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; tempo.el --- Flexible template insertion
 
-;; Copyright (C) 1994, 1995, 2002, 2003, 2004,
+;; Copyright (C) 1994, 1995, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: David K}gedal <davidk@lysator.liu.se>
--- a/lisp/term.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/term.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; term.el --- general command interpreter in a window stuff
 
-;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2002, 2003,
+;; Copyright (C) 1988, 1990, 1992, 1994, 1995, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Per Bothner <per@bothner.com>
@@ -1420,8 +1420,12 @@
 	   (format "TERMINFO=%s" data-directory)
 	   (format term-termcap-format "TERMCAP="
 		   term-term-name term-height term-width)
-	   ;; Breaks `./configure' of w3 and url which try to run $EMACS.
+	   ;; We are going to get rid of the binding for EMACS,
+	   ;; probably in Emacs 23, because it breaks
+	   ;; `./configure' of some packages that expect it to
+	   ;; say where to find EMACS.
 	   (format "EMACS=%s (term:%s)" emacs-version term-protocol-version)
+	   (format "INSIDE_EMACS=%s,term:%s" emacs-version term-protocol-version)
 	   (format "LINES=%d" term-height)
 	   (format "COLUMNS=%d" term-width))
 	  process-environment))
--- a/lisp/terminal.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/terminal.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; terminal.el --- terminal emulator for GNU Emacs
 
-;; Copyright (C) 1986, 1987, 1988, 1989, 1993, 1994, 2002, 2003,
+;; Copyright (C) 1986, 1987, 1988, 1989, 1993, 1994, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Richard Mlynarik <mly@eddie.mit.edu>
@@ -567,10 +567,10 @@
         (let ((p (point)))
           (cond ((search-forward "\n" (+ p width) 'move)
                  (forward-char -1)
-                 (insert-char ?\  (- width (- (point) p)))
+                 (insert-char ?\s (- width (- (point) p)))
                  (forward-char 1))
                 ((eobp)
-                 (insert-char ?\  (- width (- (point) p))))
+                 (insert-char ?\s (- width (- (point) p))))
                 ((= (following-char) ?\n)
                  (forward-char 1))
                 (t
@@ -642,7 +642,7 @@
 	   (forward-char 1)
 	   (delete-region (point)
 			  (+ (point) (length terminal-more-break-insertion)))
-	   (insert-char ?\  te-width)
+	   (insert-char ?\s te-width)
 	   (goto-char te-more-old-point)))
     (setq te-more-old-point nil)
     (let ((te-more-count 259259))
@@ -693,7 +693,7 @@
 		   (insert ?\n))))
     (forward-char 1)
     (delete-region (point) (+ (point) te-width)))
-  (insert-char ?\  te-width)
+  (insert-char ?\s te-width)
   (beginning-of-line)
   (te-set-window-start))
 
@@ -717,7 +717,7 @@
   (save-excursion
     (let ((n (- (point) (progn (end-of-line) (point)))))
       (delete-region (point) (+ (point) n))
-      (insert-char ?\  (- n)))))
+      (insert-char ?\s (- n)))))
 
 
 ;; ^p C
@@ -727,7 +727,7 @@
     (while (progn (end-of-line) (not (eobp)))
       (forward-char 1) (end-of-line)
       (delete-region (- (point) te-width) (point))
-      (insert-char ?\  te-width))))
+      (insert-char ?\s te-width))))
 
 
 ;; ^p ^l
@@ -737,7 +737,7 @@
   (let ((i 0))
     (while (< i te-height)
       (setq i (1+ i))
-      (insert-char ?\  te-width)
+      (insert-char ?\s te-width)
       (insert ?\n)))
   (delete-region (1- (point-max)) (point-max))
   (goto-char (point-min))
@@ -750,13 +750,13 @@
       ();(error "fooI")
     (save-excursion
       (let* ((line (- te-height (/ (- (point) (point-min)) (1+ te-width)) -1))
-	     (n (min (- (te-get-char) ?\ ) line))
+	     (n (min (- (te-get-char) ?\s) line))
 	     (i 0))
 	(delete-region (- (point-max) (* n (1+ te-width))) (point-max))
 	(if (eq (point) (point-max)) (insert ?\n))
 	(while (< i n)
 	  (setq i (1+ i))
-	  (insert-char ?\  te-width)
+	  (insert-char ?\s te-width)
 	  (or (eq i line) (insert ?\n))))))
   (setq te-more-count -1))
 
@@ -766,7 +766,7 @@
   (if (not (bolp))
       ();(error "fooD")
     (let* ((line (- te-height (/ (- (point) (point-min)) (1+ te-width)) -1))
-	   (n (min (- (te-get-char) ?\ ) line))
+	   (n (min (- (te-get-char) ?\s) line))
 	   (i 0))
       (delete-region (point)
 		     (min (+ (point) (* n (1+ te-width))) (point-max)))
@@ -774,7 +774,7 @@
 	(goto-char (point-max))
 	(while (< i n)
 	  (setq i (1+ i))
-	  (insert-char ?\  te-width)
+	  (insert-char ?\s te-width)
 	  (or (eq i line) (insert ?\n))))))
   (setq te-more-count -1))
 
@@ -798,7 +798,7 @@
   (if (bolp)
       ()
     (delete-region (1- (point)) (point))
-    (insert ?\ )
+    (insert ?\s)
     (forward-char -1)))
 
 ;; ^p ^g
@@ -815,7 +815,7 @@
 	nil
       (delete-char (- n))
       (goto-char p)
-      (insert-char ?\  n))
+      (insert-char ?\s n))
     (goto-char p)))
 
 ;; ^p d count+32  (should be ^p ^d but cretinous un*x won't send ^d chars!!!)
@@ -825,7 +825,7 @@
 		 (- (progn (end-of-line) (point)) p))))
     (if (<= n 0)
 	nil
-      (insert-char ?\  n)
+      (insert-char ?\s n)
       (goto-char p)
       (delete-char n))
     (goto-char p)))
@@ -862,7 +862,7 @@
 	  (delete-char 1)
 	  (goto-char (point-max))
 	  (insert ?\n)
-	  (insert-char ?\  te-width)
+	  (insert-char ?\s te-width)
 	  (beginning-of-line))
       (forward-line 1))
     (move-to-column column))
--- a/lisp/textmodes/org.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/textmodes/org.el	Thu Dec 07 04:14:14 2006 +0000
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 4.56
+;; Version: 4.56b
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -101,6 +101,7 @@
 
 (eval-when-compile
   (require 'cl)
+  (require 'gnus-sum)
   (require 'calendar))
 ;; For XEmacs, noutline is not yet provided by outline.el, so arrange for
 ;; the file noutline.el being loaded.
@@ -113,7 +114,7 @@
 
 ;;; Customization variables
 
-(defvar org-version "4.56"
+(defvar org-version "4.56b"
   "The version number of the file org.el.")
 (defun org-version ()
   (interactive)
--- a/lisp/textmodes/sgml-mode.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/textmodes/sgml-mode.el	Thu Dec 07 04:14:14 2006 +0000
@@ -263,7 +263,10 @@
      (1 (if (match-end 2) sgml-namespace-face font-lock-function-name-face))
      (2 font-lock-function-name-face nil t))
     ;; FIXME: this doesn't cover the variables using a default value.
-    (,(concat "\\(" sgml-namespace-re "\\)\\(?::\\("
+    ;; The first shy-group is an important anchor: it prevents an O(n^2)
+    ;; pathological case where we otherwise keep retrying a failing match
+    ;; against a very long word at every possible position within the word.
+    (,(concat "\\(?:^\\|[ \t]\\)\\(" sgml-namespace-re "\\)\\(?::\\("
 	      sgml-name-re "\\)\\)?=[\"']")
      (1 (if (match-end 2) sgml-namespace-face font-lock-variable-name-face))
      (2 font-lock-variable-name-face nil t))
--- a/lisp/thingatpt.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/thingatpt.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 ;;; thingatpt.el --- get the `thing' at point
 
-;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000
-;;   2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000,
+;;   2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Mike Williams <mikew@gopher.dosli.govt.nz>
 ;; Maintainer: FSF
--- a/lisp/time-stamp.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/time-stamp.el	Thu Dec 07 04:14:14 2006 +0000
@@ -491,7 +491,7 @@
 		 (or (eq ?. cur-char)
 		     (eq ?, cur-char) (eq ?: cur-char) (eq ?@ cur-char)
 		     (eq ?- cur-char) (eq ?+ cur-char) (eq ?_ cur-char)
-		     (eq ?\  cur-char) (eq ?# cur-char) (eq ?^ cur-char)
+		     (eq ?\s cur-char) (eq ?# cur-char) (eq ?^ cur-char)
 		     (and (eq ?\( cur-char)
 			  (not (eq prev-char ?\\))
 			  (setq paren-level (1+ paren-level)))
@@ -712,21 +712,14 @@
 ;;; These functions have been obsolete since 1995
 ;;; and will be removed in Emacs 23.
 ;;; Meanwhile, discourage other packages from using them.
-(let ((obsolete-functions '(time-stamp-month-dd-yyyy
-			    time-stamp-dd/mm/yyyy
-			    time-stamp-mon-dd-yyyy
-			    time-stamp-dd-mon-yy
-			    time-stamp-yy/mm/dd
-			    time-stamp-yyyy/mm/dd
-			    time-stamp-yyyy-mm-dd
-			    time-stamp-yymmdd
-			    time-stamp-hh:mm:ss
-			    time-stamp-hhmm)))
-  (while obsolete-functions
-    (make-obsolete (car obsolete-functions)
-		   "use time-stamp-string or format-time-string instead."
-		   "20.1")
-    (setq obsolete-functions (cdr obsolete-functions))))
+(dolist (function '(time-stamp-month-dd-yyyy time-stamp-dd/mm/yyyy
+		    time-stamp-mon-dd-yyyy   time-stamp-dd-mon-yy
+		    time-stamp-yy/mm/dd      time-stamp-yyyy/mm/dd
+		    time-stamp-yyyy-mm-dd    time-stamp-yymmdd
+		    time-stamp-hh:mm:ss      time-stamp-hhmm))
+  (make-obsolete function
+		 "use `time-stamp-string' or `format-time-string' instead."
+		 "20.1"))
 
 ;;; pretty form, suitable for a title page
 
--- a/lisp/timezone.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/timezone.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; timezone.el --- time zone package for GNU Emacs
 
-;; Copyright (C) 1990, 1991, 1992, 1993, 1996, 1999, 2002, 2003,
+;; Copyright (C) 1990, 1991, 1992, 1993, 1996, 1999, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Masanobu Umeda
--- a/lisp/tmm.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/tmm.el	Thu Dec 07 04:14:14 2006 +0000
@@ -305,7 +305,7 @@
       (if char (setq tmm-short-cuts (cons char tmm-short-cuts)))
       (cons (concat (if char (concat (char-to-string char) tmm-mid-prompt)
                       ;; keep them lined up in columns
-                      (make-string (1+ (length tmm-mid-prompt)) ?\ ))
+                      (make-string (1+ (length tmm-mid-prompt)) ?\s))
                     str)
             (cdr elt))))))
 
--- a/lisp/tutorial.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/tutorial.el	Thu Dec 07 04:14:14 2006 +0000
@@ -255,6 +255,7 @@
              (backward-sentence [?\M-a])
              (forward-sentence [?\M-e])
 
+             (newline "\r")
 
              (beginning-of-buffer [?\M-<])
              (end-of-buffer [?\M->])
@@ -280,6 +281,7 @@
              ;; C-u 8 * to insert ********.
 
              (delete-backward-char [backspace])
+             (delete-backward-char "\d")
              (delete-char [?\C-d])
 
              (backward-kill-word [(meta backspace)])
@@ -375,7 +377,10 @@
              ;;(tutorial-arg     (button-get button 'tutorial-arg))
              (explain-key-desc (button-get button 'explain-key-desc))
              (changed-keys (with-current-buffer tutorial-buffer
-                             (tutorial--find-changed-keys tutorial--default-keys))))
+                             (save-excursion
+                               (goto-char (point-min))
+                               (tutorial--find-changed-keys
+				tutorial--default-keys)))))
         (when changed-keys
           (insert
            "The following key bindings used in the tutorial had been changed
@@ -416,7 +421,10 @@
                 (when (listp where)
                   (setq where "list"))
                 ;; Tell where the old binding is now:
-                (insert (format " %-11s " where))
+                (insert (format " %-11s "
+                                (if (string= "" where)
+                                    (format "M-x %s" def-fun-txt)
+                                  where)))
                 ;; Insert a link with more information, for example
                 ;; current binding and keymap or information about
                 ;; cua-mode replacements:
@@ -616,14 +624,21 @@
                   (let ((here (point))
 			(case-fold-search nil)
                         (key-desc (key-description key)))
+                    (cond ((string= "ESC" key-desc)
+			   (setq key-desc "<ESC>"))
+			  ((string= "RET" key-desc)
+			   (setq key-desc "<Return>"))
+			  ((string= "DEL" key-desc)
+			   (setq key-desc "<Delback>")))
                     (while (re-search-forward
-			    (concat (regexp-quote key-desc)
-				    "[[:space:]]") nil t)
-                      (put-text-property (match-beginning 0)
-                                         (match-end 0)
+			    (concat "[[:space:]]\\("
+                                    (regexp-quote key-desc)
+				    "\\)[[:space:]]") nil t)
+                      (put-text-property (match-beginning 1)
+                                         (match-end 1)
                                          'tutorial-remark 'only-colored)
-                      (put-text-property (match-beginning 0)
-                                         (match-end 0)
+                      (put-text-property (match-beginning 1)
+                                         (match-end 1)
                                          'face 'tutorial-warning-face)
                       (forward-line)
                       (let ((s  (get-lang-string tutorial--lang 'tut-chgdkey))
--- a/lisp/type-break.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/type-break.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; type-break.el --- encourage rests from typing at appropriate intervals
 
-;; Copyright (C) 1994, 1995, 1997, 2000, 2002, 2003,
+;; Copyright (C) 1994, 1995, 1997, 2000, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Noah Friedman
--- a/lisp/url/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/url/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,19 @@
+2006-11-26  Magnus Henoch  <mange@freemail.hu>
+
+	* url-http.el (url-http-wait-for-headers-change-function): Use
+	`when' instead of `if' when possible.
+	(url-http): Define url-http-response-version.
+	(url-http-parse-response): Set it.
+	(url-http-parse-headers): Use it to determine keep-alive behavior.
+
+2006-11-23  Diane Murray  <disumu@x3y2z1.net>
+
+	* url-http.el (url-http-content-length-after-change-function): Use
+	`url-lazy-message'.
+
+	* url-util.el (url-display-percentage): Only show a message if
+	`url-show-status' is non-nil.
+
 2006-11-15  Magnus Henoch  <mange@freemail.hu>
 
 	* url-http.el (url-http): Make proxy-object buffer-local, to
--- a/lisp/url/url-http.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/url/url-http.el	Thu Dec 07 04:14:14 2006 +0000
@@ -358,14 +358,19 @@
 
 (defun url-http-parse-response ()
   "Parse just the response code."
-  (declare (special url-http-end-of-headers url-http-response-status))
+  (declare (special url-http-end-of-headers url-http-response-status
+		    url-http-response-version))
   (if (not url-http-end-of-headers)
       (error "Trying to parse HTTP response code in odd buffer: %s" (buffer-name)))
   (url-http-debug "url-http-parse-response called in (%s)" (buffer-name))
   (goto-char (point-min))
   (skip-chars-forward " \t\n")		; Skip any blank crap
   (skip-chars-forward "HTTP/")		; Skip HTTP Version
-  (read (current-buffer))
+  (setq url-http-response-version
+	(buffer-substring (point)
+			  (progn
+			    (skip-chars-forward "[0-9].")
+			    (point))))
   (setq url-http-response-status (read (current-buffer))))
 
 (defun url-http-handle-cookies ()
@@ -391,6 +396,7 @@
   ;; The comments after each status code handled are taken from RFC
   ;; 2616 (HTTP/1.1)
   (declare (special url-http-end-of-headers url-http-response-status
+		    url-http-response-version
 		    url-http-method url-http-data url-http-process
 		    url-callback-function url-callback-arguments))
 
@@ -407,9 +413,19 @@
   (mail-narrow-to-head)
   ;;(narrow-to-region (point-min) url-http-end-of-headers)
   (let ((connection (mail-fetch-field "Connection")))
-    (if (and connection
-	     (string= (downcase connection) "close"))
+    ;; In HTTP 1.0, keep the connection only if there is a
+    ;; "Connection: keep-alive" header.
+    ;; In HTTP 1.1 (and greater), keep the connection unless there is a
+    ;; "Connection: close" header
+    (cond 
+     ((string= url-http-response-version "1.0")
+      (unless (and connection
+		   (string= (downcase connection) "keep-alive"))
 	(delete-process url-http-process)))
+     (t
+      (when (and connection
+		 (string= (downcase connection) "close"))
+	(delete-process url-http-process)))))
   (let ((class nil)
 	(success nil))
     (setq class (/ url-http-response-status 100))
@@ -819,7 +835,7 @@
       (progn
 	;; Found the end of the document!  Wheee!
 	(url-display-percentage nil nil)
-	(message "Reading... done.")
+	(url-lazy-message "Reading... done.")
 	(if (url-http-parse-headers)
 	    (url-http-activate-callback)))))
 
@@ -928,123 +944,121 @@
 		    url-http-response-status))
   (url-http-debug "url-http-wait-for-headers-change-function (%s)"
 		  (buffer-name))
-  (if (not (bobp))
-      (let ((end-of-headers nil)
-	    (old-http nil)
-	    (content-length nil))
-	(goto-char (point-min))
-	(if (and (looking-at ".*\n")	; have one line at least
-		 (not (looking-at "^HTTP/[1-9]\\.[0-9]")))
-	    ;; Not HTTP/x.y data, must be 0.9
-	    ;; God, I wish this could die.
-	    (setq end-of-headers t
-		  url-http-end-of-headers 0
-		  old-http t)
-	  (if (re-search-forward "^\r*$" nil t)
-	      ;; Saw the end of the headers
-	      (progn
-		(url-http-debug "Saw end of headers... (%s)" (buffer-name))
-		(setq url-http-end-of-headers (set-marker (make-marker)
-							  (point))
-		      end-of-headers t)
-		(url-http-clean-headers))))
+  (when (not (bobp))
+    (let ((end-of-headers nil)
+	  (old-http nil)
+	  (content-length nil))
+      (goto-char (point-min))
+      (if (and (looking-at ".*\n")	; have one line at least
+	       (not (looking-at "^HTTP/[1-9]\\.[0-9]")))
+	  ;; Not HTTP/x.y data, must be 0.9
+	  ;; God, I wish this could die.
+	  (setq end-of-headers t
+		url-http-end-of-headers 0
+		old-http t)
+	(when (re-search-forward "^\r*$" nil t)
+	  ;; Saw the end of the headers
+	  (url-http-debug "Saw end of headers... (%s)" (buffer-name))
+	  (setq url-http-end-of-headers (set-marker (make-marker)
+						    (point))
+		end-of-headers t)
+	  (url-http-clean-headers)))
+
+      (if (not end-of-headers)
+	  ;; Haven't seen the end of the headers yet, need to wait
+	  ;; for more data to arrive.
+	  nil
+	(if old-http
+	    (message "HTTP/0.9 How I hate thee!")
+	  (progn
+	    (url-http-parse-response)
+	    (mail-narrow-to-head)
+	    ;;(narrow-to-region (point-min) url-http-end-of-headers)
+	    (setq url-http-transfer-encoding (mail-fetch-field
+					      "transfer-encoding")
+		  url-http-content-type (mail-fetch-field "content-type"))
+	    (if (mail-fetch-field "content-length")
+		(setq url-http-content-length
+		      (string-to-number (mail-fetch-field "content-length"))))
+	    (widen)))
+	(when url-http-transfer-encoding
+	  (setq url-http-transfer-encoding
+		(downcase url-http-transfer-encoding)))
 
-	(if (not end-of-headers)
-	    ;; Haven't seen the end of the headers yet, need to wait
-	    ;; for more data to arrive.
-	    nil
-	  (if old-http
-	      (message "HTTP/0.9 How I hate thee!")
-	    (progn
-	      (url-http-parse-response)
-	      (mail-narrow-to-head)
-	      ;;(narrow-to-region (point-min) url-http-end-of-headers)
-	      (setq url-http-transfer-encoding (mail-fetch-field
-						"transfer-encoding")
-		    url-http-content-type (mail-fetch-field "content-type"))
-	      (if (mail-fetch-field "content-length")
-		  (setq url-http-content-length
-			(string-to-number (mail-fetch-field "content-length"))))
-	      (widen)))
-	  (if url-http-transfer-encoding
-	      (setq url-http-transfer-encoding
-		    (downcase url-http-transfer-encoding)))
-
+	(cond
+	 ((or (= url-http-response-status 204)
+	      (= url-http-response-status 205))
+	  (url-http-debug "%d response must have headers only (%s)."
+			  url-http-response-status (buffer-name))
+	  (when (url-http-parse-headers)
+	    (url-http-activate-callback)))
+	 ((string= "HEAD" url-http-method)
+	  ;; A HEAD request is _ALWAYS_ terminated by the header
+	  ;; information, regardless of any entity headers,
+	  ;; according to section 4.4 of the HTTP/1.1 draft.
+	  (url-http-debug "HEAD request must have headers only (%s)."
+			  (buffer-name))
+	  (when (url-http-parse-headers)
+	    (url-http-activate-callback)))
+	 ((string= "CONNECT" url-http-method)
+	  ;; A CONNECT request is finished, but we cannot stick this
+	  ;; back on the free connectin list
+	  (url-http-debug "CONNECT request must have headers only.")
+	  (when (url-http-parse-headers)
+	    (url-http-activate-callback)))
+	 ((equal url-http-response-status 304)
+	  ;; Only allowed to have a header section.  We have to handle
+	  ;; this here instead of in url-http-parse-headers because if
+	  ;; you have a cached copy of something without a known
+	  ;; content-length, and try to retrieve it from the cache, we'd
+	  ;; fall into the 'being dumb' section and wait for the
+	  ;; connection to terminate, which means we'd wait for 10
+	  ;; seconds for the keep-alives to time out on some servers.
+	  (when (url-http-parse-headers)
+	    (url-http-activate-callback)))
+	 (old-http
+	  ;; HTTP/0.9 always signaled end-of-connection by closing the
+	  ;; connection.
+	  (url-http-debug
+	   "Saw HTTP/0.9 response, connection closed means end of document.")
+	  (setq url-http-after-change-function
+		'url-http-simple-after-change-function))
+	 ((equal url-http-transfer-encoding "chunked")
+	  (url-http-debug "Saw chunked encoding.")
+	  (setq url-http-after-change-function
+		'url-http-chunked-encoding-after-change-function)
+	  (when (> nd url-http-end-of-headers)
+	    (url-http-debug
+	     "Calling initial chunked-encoding for extra data at end of headers")
+	    (url-http-chunked-encoding-after-change-function
+	     (marker-position url-http-end-of-headers) nd
+	     (- nd url-http-end-of-headers))))
+	 ((integerp url-http-content-length)
+	  (url-http-debug
+	   "Got a content-length, being smart about document end.")
+	  (setq url-http-after-change-function
+		'url-http-content-length-after-change-function)
 	  (cond
-	   ((or (= url-http-response-status 204)
-		(= url-http-response-status 205))
-	    (url-http-debug "%d response must have headers only (%s)."
-			    url-http-response-status (buffer-name))
-	    (if (url-http-parse-headers)
-		(url-http-activate-callback)))
-	   ((string= "HEAD" url-http-method)
-	    ;; A HEAD request is _ALWAYS_ terminated by the header
-	    ;; information, regardless of any entity headers,
-	    ;; according to section 4.4 of the HTTP/1.1 draft.
-	    (url-http-debug "HEAD request must have headers only (%s)."
-			    (buffer-name))
-	    (if (url-http-parse-headers)
-		(url-http-activate-callback)))
-	   ((string= "CONNECT" url-http-method)
-	    ;; A CONNECT request is finished, but we cannot stick this
-	    ;; back on the free connectin list
-	    (url-http-debug "CONNECT request must have headers only.")
-	    (if (url-http-parse-headers)
-		(url-http-activate-callback)))
-	   ((equal url-http-response-status 304)
-	    ;; Only allowed to have a header section.  We have to handle
-	    ;; this here instead of in url-http-parse-headers because if
-	    ;; you have a cached copy of something without a known
-	    ;; content-length, and try to retrieve it from the cache, we'd
-	    ;; fall into the 'being dumb' section and wait for the
-	    ;; connection to terminate, which means we'd wait for 10
-	    ;; seconds for the keep-alives to time out on some servers.
-	    (if (url-http-parse-headers)
-		(url-http-activate-callback)))
-	   (old-http
-	    ;; HTTP/0.9 always signaled end-of-connection by closing the
-	    ;; connection.
+	   ((= 0 url-http-content-length)
+	    ;; We got a NULL body!  Activate the callback
+	    ;; immediately!
 	    (url-http-debug
-	     "Saw HTTP/0.9 response, connection closed means end of document.")
-	    (setq url-http-after-change-function
-		  'url-http-simple-after-change-function))
-	   ((equal url-http-transfer-encoding "chunked")
-	    (url-http-debug "Saw chunked encoding.")
-	    (setq url-http-after-change-function
-		  'url-http-chunked-encoding-after-change-function)
-	    (if (> nd url-http-end-of-headers)
-		(progn
-		  (url-http-debug
-		   "Calling initial chunked-encoding for extra data at end of headers")
-		  (url-http-chunked-encoding-after-change-function
-		   (marker-position url-http-end-of-headers) nd
-		   (- nd url-http-end-of-headers)))))
-	   ((integerp url-http-content-length)
-	    (url-http-debug
-	     "Got a content-length, being smart about document end.")
-	    (setq url-http-after-change-function
-		  'url-http-content-length-after-change-function)
-	    (cond
-	     ((= 0 url-http-content-length)
-	      ;; We got a NULL body!  Activate the callback
-	      ;; immediately!
-	      (url-http-debug
-	       "Got 0-length content-length, activating callback immediately.")
-	      (if (url-http-parse-headers)
-		  (url-http-activate-callback)))
-	     ((> nd url-http-end-of-headers)
-	      ;; Have some leftover data
-	      (url-http-debug "Calling initial content-length for extra data at end of headers")
-	      (url-http-content-length-after-change-function
-	       (marker-position url-http-end-of-headers)
-	       nd
-	       (- nd url-http-end-of-headers)))
-	     (t
-	      nil)))
+	     "Got 0-length content-length, activating callback immediately.")
+	    (when (url-http-parse-headers)
+	      (url-http-activate-callback)))
+	   ((> nd url-http-end-of-headers)
+	    ;; Have some leftover data
+	    (url-http-debug "Calling initial content-length for extra data at end of headers")
+	    (url-http-content-length-after-change-function
+	     (marker-position url-http-end-of-headers)
+	     nd
+	     (- nd url-http-end-of-headers)))
 	   (t
-	    (url-http-debug "No content-length, being dumb.")
-	    (setq url-http-after-change-function
-		  'url-http-simple-after-change-function)))))
+	    nil)))
+	 (t
+	  (url-http-debug "No content-length, being dumb.")
+	  (setq url-http-after-change-function
+		'url-http-simple-after-change-function)))))
     ;; We are still at the beginning of the buffer... must just be
     ;; waiting for a response.
     (url-http-debug "Spinning waiting for headers..."))
@@ -1095,6 +1109,7 @@
 		       url-http-content-length
 		       url-http-transfer-encoding
 		       url-http-after-change-function
+		       url-http-response-version
 		       url-http-response-status
 		       url-http-chunked-length
 		       url-http-chunked-counter
--- a/lisp/url/url-util.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/url/url-util.el	Thu Dec 07 04:14:14 2006 +0000
@@ -244,12 +244,13 @@
 
 ;;;###autoload
 (defun url-display-percentage (fmt perc &rest args)
-  (if (null fmt)
-      (if (fboundp 'clear-progress-display)
-	  (clear-progress-display))
-    (if (and (fboundp 'progress-display) perc)
-	(apply 'progress-display fmt perc args)
-      (apply 'message fmt args))))
+  (when url-show-status
+    (if (null fmt)
+	(if (fboundp 'clear-progress-display)
+	    (clear-progress-display))
+      (if (and (fboundp 'progress-display) perc)
+	  (apply 'progress-display fmt perc args)
+	(apply 'message fmt args)))))
 
 ;;;###autoload
 (defun url-percentage (x y)
--- a/lisp/userlock.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/userlock.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; userlock.el --- handle file access contention between multiple users
 
-;; Copyright (C) 1985, 1986, 2002, 2003, 2004,
+;; Copyright (C) 1985, 1986, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
@@ -87,9 +87,9 @@
 (defun ask-user-about-lock-help ()
   (with-output-to-temp-buffer "*Help*"
     (princ "It has been detected that you want to modify a file that someone else has
-already started modifying in EMACS.
+already started modifying in Emacs.
 
-You can <s>teal the file; The other user becomes the
+You can <s>teal the file; the other user becomes the
   intruder if (s)he ever unmodifies the file and then changes it again.
 You can <p>roceed; you edit at your own (and the other user's) risk.
 You can <q>uit; don't modify this file.")
--- a/lisp/vc-hooks.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/vc-hooks.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 ;;; vc-hooks.el --- resident support for version-control
 
-;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2002,
-;;   2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+;; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+;;   2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author:     FSF (see vc.el for full credits)
 ;; Maintainer: Andre Spiegel <spiegel@gnu.org>
--- a/lisp/vcursor.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/vcursor.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; vcursor.el --- manipulate an alternative ("virtual") cursor
 
-;; Copyright (C) 1994, 1996, 1998, 2002, 2003,
+;; Copyright (C) 1994, 1996, 1998, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author:   Peter Stephenson <pws@ibmth.df.unipi.it>
--- a/lisp/vms-patch.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/vms-patch.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; vms-patch.el --- override parts of files.el for VMS
 
-;; Copyright (C) 1986, 1992, 2002, 2003, 2004,
+;; Copyright (C) 1986, 1992, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
--- a/lisp/vmsproc.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/vmsproc.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; vmsproc.el --- run asynchronous VMS subprocesses under Emacs
 
-;; Copyright (C) 1986, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1986, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Mukesh Prasad
@@ -44,7 +44,7 @@
     map))
 
 (defun subprocess-input (name str)
-  "Handles input from a subprocess.  Called by Emacs."
+  "Handle input from a subprocess.  Called by Emacs."
   (if display-subprocess-window
       (display-buffer subprocess-buf))
   (with-current-buffer subprocess-buf
@@ -56,7 +56,7 @@
   (setq subprocess-running nil))
 
 (defun start-subprocess ()
-  "Spawns an asynchronous subprocess with output redirected to
+  "Spawn an asynchronous subprocess with output redirected to
 the buffer *COMMAND*.  Within this buffer, use C-m to send
 the last line to the subprocess or to bring another line to
 the end."
@@ -98,7 +98,7 @@
   ;;     (delete-file output-filename))))
 
 (defun subprocess-command ()
-  "Starts asynchronous subprocess if not running and switches to its window."
+  "Start asynchronous subprocess if not running and switch to its window."
   (interactive)
   (if (not subprocess-running)
       (start-subprocess))
@@ -106,8 +106,8 @@
        (progn (pop-to-buffer subprocess-buf) (goto-char (point-max)))))
 
 (defun command-send-input ()
-  "If at last line of buffer, sends the current line to
-the spawned subprocess.  Otherwise brings back current
+  "If at last line of buffer, send the current line to
+the spawned subprocess.  Otherwise bring back current
 line to the last line for resubmission."
   (interactive)
   (beginning-of-line)
@@ -134,7 +134,7 @@
          current-line)))))
 
 (defun command-kill-line ()
-  "Kills the current line.  Used in command mode."
+  "Kill the current line.  Used in command mode."
   (interactive)
   (beginning-of-line)
   (kill-line))
--- a/lisp/vt-control.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/vt-control.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; vt-control.el --- Common VTxxx control functions
 
-;; Copyright (C) 1993, 1994, 2002, 2003,
+;; Copyright (C) 1993, 1994, 2001, 2002, 2003,
 ;;   2004, 2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Rob Riepel <riepel@networking.stanford.edu>
--- a/lisp/vt100-led.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/vt100-led.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; vt100-led.el --- functions for LED control on VT-100 terminals & clones
 
-;; Copyright (C) 1988, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1988, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Howard Gayle
@@ -29,7 +29,7 @@
 ;;; Code:
 
 (defvar led-state (make-vector 5 nil)
-   "The internal state of the LEDs.  Choices are nil, t, `flash.
+   "The internal state of the LEDs.  Choices are nil, t, `flash'.
 Element 0 is not used.")
 
 (defun led-flash (l)
@@ -46,7 +46,7 @@
   (led-update))
 
 (defun led-on (l)
-  "Turn on LED l."
+  "Turn on LED L."
   (aset led-state l t)
   (led-update))
 
--- a/lisp/whitespace.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/whitespace.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; whitespace.el --- warn about and clean bogus whitespaces in the file
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 
 ;; Author: Rajesh Vaidheeswarran <rv@gnu.org>
@@ -571,7 +571,7 @@
 
 	;; Call this recursively till everything is taken care of
 	(if whitespace-any
-	    (whitespace-cleanup-internal)
+	    (whitespace-cleanup-internal region-only)
 	  ;; if we are done, talk to the user
 	  (progn
 	    (unless whitespace-silent
--- a/lisp/wid-browse.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/wid-browse.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; wid-browse.el --- functions for browsing widgets
 ;;
-;; Copyright (C) 1997, 2002, 2003, 2004, 2005,
+;; Copyright (C) 1997, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
--- a/lisp/widget.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/widget.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; widget.el --- a library of user interface components
 ;;
-;; Copyright (C) 1996, 1997, 2002, 2003, 2004,
+;; Copyright (C) 1996, 1997, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
--- a/lisp/windmove.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/windmove.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; windmove.el --- directional window-selection routines
 ;;
-;; Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004,
+;; Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
 ;;   2005, 2006 Free Software Foundation, Inc.
 ;;
 ;; Author: Hovav Shacham (hovav@cs.stanford.edu)
--- a/lisp/woman.el	Thu Dec 07 00:45:27 2006 +0000
+++ b/lisp/woman.el	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,6 @@
 ;;; woman.el --- browse UN*X manual pages `wo (without) man'
 
-;; Copyright (C) 2000, 2002, 2003, 2004, 2005,
+;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005,
 ;;   2006 Free Software Foundation, Inc.
 
 ;; Author: Francis J. Wright <F.J.Wright@qmul.ac.uk>
--- a/lispintro/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/lispintro/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,12 @@
+2006-11-27  Andreas Schwab  <schwab@suse.de>
+
+	* Makefile.in (usermanualdir): Define.
+	(emacs-lisp-intro.dvi): Pass -I options to texi2dvi instead of
+	using TEXINPUTS.
+
+	* emacs-lisp-intro.texi: Input texinfo instead of ../man/texinfo
+	to fix building outside source directory.
+
 2006-11-09  Robert J. Chassell  <bob@rattlesnake.com>
 
 	* emacs-lisp-intro.texi: Copy descriptions from detailed master
--- a/lispintro/Makefile.in	Thu Dec 07 00:45:27 2006 +0000
+++ b/lispintro/Makefile.in	Thu Dec 07 04:14:14 2006 +0000
@@ -26,6 +26,7 @@
 VPATH = @srcdir@
 
 infodir = ../info
+usermanualdir = $(srcdir)/../man
 
 INFO_SOURCES = ${srcdir}/emacs-lisp-intro.texi
 # The file name eintr must fit within 5 characters, to allow for
@@ -36,7 +37,6 @@
 MAKEINFO = makeinfo
 TEXI2DVI = texi2dvi
 DVIPS = dvips
-ENVADD = TEXINPUTS="$(srcdir):$(TEXINPUTS)" MAKEINFO="$(MAKEINFO) -I$(srcdir)"
 
 .SUFFIXES: .dvi .ps .texi
 
@@ -48,7 +48,7 @@
 	cd $(srcdir); $(MAKEINFO) emacs-lisp-intro.texi -o $(infodir)/eintr
 
 emacs-lisp-intro.dvi: ${INFO_SOURCES}
-	$(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-lisp-intro.texi
+	$(TEXI2DVI) -I $(srcdir) -I $(usermanualdir) $(srcdir)/emacs-lisp-intro.texi
 
 emacs-lisp-intro.html: $(INFO_SOURCES)
 	$(MAKEINFO) --html -o $@ $(srcdir)/emacs-lisp-intro.texi
--- a/lispintro/emacs-lisp-intro.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/lispintro/emacs-lisp-intro.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -1,6 +1,4 @@
-\input ../man/texinfo                                  @c -*-texinfo-*-
-@c \input texinfo                                      @c -*-texinfo-*-
-@c change to   \input texinfo   if building on own.
+\input texinfo                                      @c -*-texinfo-*-
 @comment %**start of header
 @setfilename ../info/eintr
 @c setfilename emacs-lisp-intro.info
--- a/lispref/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/lispref/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,28 @@
+2006-12-04  Kim F. Storm  <storm@cua.dk>
+
+	* commands.texi (Misc Events): Update signal events.
+	(Event Examples): Add signal example.
+
+2006-11-29  Richard Stallman  <rms@gnu.org>
+
+	* frames.texi (Visibility of Frames): Explain visible windows
+	can be covered by others.  Add xref for raise-frame.
+
+2006-11-28  Richard Stallman  <rms@gnu.org>
+
+	* searching.texi (Regexp Special): Update when ^ is special.
+
+2006-11-27  Eli Zaretskii  <eliz@gnu.org>
+
+	* customize.texi (Customization, Common Keywords)
+	(Group Definitions, Variable Definitions, Composite Types)
+	(Type Keywords, Customization Types): Add index entries for
+	various customization keywords.
+
+2006-11-23  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* modes.texi (Multiline Font Lock): Rephrase some parts for clarity.
+
 2006-11-10  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* frames.texi (Window System Selections): Remove clipboard from
--- a/lispref/commands.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/lispref/commands.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -1586,13 +1586,14 @@
 parameters are used to display the help-echo text are described in
 @ref{Text help-echo}.
 
-@cindex @code{usr1-signal} event
-@cindex @code{usr2-signal} event
-@item usr1-signal
-@itemx usr2-signal
-These events are generated when the Emacs process receives the signals
-@code{SIGUSR1} and @code{SIGUSR2}.  They contain no additional data
-because signals do not carry additional information.
+@cindex @code{signal usr1} event
+@cindex @code{signal usr2} event
+@cindex user signals
+@item signal usr1
+@itemx signal usr2
+These event sequences are generated when the Emacs process receives
+the signals @code{SIGUSR1} and @code{SIGUSR2}.  They contain no
+additional data because signals do not carry additional information.
 @end table
 
   If one of these events arrives in the middle of a key sequence---that
@@ -1632,6 +1633,16 @@
                    -453816))
 @end smallexample
 
+To handle a SIGUSR1 signal, define an interactive function, and
+bind it to the @code{signal usr1} event sequence:
+
+@smallexample
+(defun usr1-handler ()
+  (interactive)
+  (message "Got USR1 signal"))
+(global-set-key [signal usr1] 'usr1-handler)
+@end smallexample
+
 @node Classifying Events
 @subsection Classifying Events
 @cindex event type
--- a/lispref/customize.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/lispref/customize.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -7,6 +7,7 @@
 @node Customization, Loading, Macros, Top
 @chapter Writing Customization Definitions
 
+@cindex customization definitions
   This chapter describes how to declare user options for customization,
 and also customization groups for classifying them.  We use the term
 @dfn{customization item} to include both kinds of customization
@@ -23,6 +24,7 @@
 @node Common Keywords
 @section Common Item Keywords
 
+@cindex customization keywords
   All kinds of customization declarations (for variables and groups, and
 for faces) accept keyword arguments for specifying various information.
 This section describes some keywords that apply to all kinds.
@@ -34,6 +36,7 @@
 
 @table @code
 @item :tag @var{label}
+@kindex tag@r{, customization keyword}
 Use @var{label}, a string, instead of the item's name, to label the
 item in customization menus and buffers.  @strong{Don't use a tag
 which is substantially different from the item's real name; that would
@@ -45,6 +48,7 @@
   :tag "Cursor In Non-selected Windows"
 @end example
 
+@kindex group@r{, customization keyword}
 @item :group @var{group}
 Put this customization item in group @var{group}.  When you use
 @code{:group} in a @code{defgroup}, it makes the new group a subgroup of
@@ -55,6 +59,7 @@
 item.  Please don't overdo this, since the result would be annoying.
 
 @item :link @var{link-data}
+@kindex link@r{, customization keyword}
 Include an external link after the documentation string for this item.
 This is a sentence containing an active field which references some
 other documentation.
@@ -114,11 +119,13 @@
 none at all.
 
 @item :load @var{file}
+@kindex load@r{, customization keyword}
 Load file @var{file} (a string) before displaying this customization
 item.  Loading is done with @code{load-library}, and only if the file is
 not already loaded.
 
 @item :require @var{feature}
+@kindex require@r{, customization keyword}
 Execute @code{(require '@var{feature})} when your saved customizations
 set the value of this item.  @var{feature} should be a symbol.
 
@@ -127,11 +134,13 @@
 any effect unless the code which implements the mode is loaded.
 
 @item :version @var{version}
+@kindex version@r{, customization keyword}
 This option specifies that the item was first introduced in Emacs
 version @var{version}, or that its default value was changed in that
 version.  The value @var{version} must be a string.
 
 @item :package-version '(@var{package} . @var{version})
+@kindex package-version@r{, customization keyword}
 This option specifies that the item was first introduced in
 @var{package} version @var{version}, or that its meaning or default
 value was changed in that version.  The value of @var{package} is a
@@ -179,6 +188,7 @@
 @node Group Definitions
 @section Defining Custom Groups
 
+@cindex custom groups, how to define
   Each Emacs Lisp package should have one main customization group which
 contains all the options, faces and other groups in the package.  If the
 package has a small number of options and faces, use just one group and
@@ -221,6 +231,7 @@
 
 @table @code
 @item :prefix @var{prefix}
+@kindex prefix@r{, @code{defgroup} keyword}
 If the name of an item in the group starts with @var{prefix}, then the
 tag for that item is constructed (by default) by omitting @var{prefix}.
 
@@ -249,6 +260,8 @@
 @node Variable Definitions
 @section Defining Customization Variables
 
+@cindex customization variables, how to define
+@cindex declare user-editable variables
   Use @code{defcustom} to declare user-editable variables.
 
 @defmac defcustom option standard doc [keyword value]@dots{}
@@ -297,6 +310,7 @@
 @xref{Customization Types}, for more information.
 
 @item :options @var{list}
+@kindex options@r{, @code{defcustom} keyword}
 Specify @var{list} as the list of reasonable values for use in this
 option.  The user is not restricted to using only these values, but they
 are offered as convenient alternatives.
@@ -306,6 +320,7 @@
 individual types for a description of how to use @code{:options}.
 
 @item :set @var{setfunction}
+@kindex set@r{, @code{defcustom} keyword}
 Specify @var{setfunction} as the way to change the value of this
 option.  The function @var{setfunction} should take two arguments, a
 symbol (the option name) and the new value, and should do whatever is
@@ -314,6 +329,7 @@
 @var{setfunction} is @code{set-default}.
 
 @item :get @var{getfunction}
+@kindex get@r{, @code{defcustom} keyword}
 Specify @var{getfunction} as the way to extract the value of this
 option.  The function @var{getfunction} should take one argument, a
 symbol, and should return whatever customize should use as the
@@ -327,6 +343,7 @@
 that really is stored in a Lisp variable.
 
 @item :initialize @var{function}
+@kindex initialize@r{, @code{defcustom} keyword}
 @var{function} should be a function used to initialize the variable
 when the @code{defcustom} is evaluated.  It should take two arguments,
 the option name (a symbol) and the value.  Here are some predefined
@@ -374,6 +391,7 @@
 @end table
 
 @item :set-after @var{variables}
+@kindex set-after@r{, @code{defcustom} keyword}
 When setting variables according to saved customizations, make sure to
 set the variables @var{variables} before this one; in other words, delay
 setting this variable until after those others have been handled.  Use
@@ -425,11 +443,13 @@
 @node Customization Types
 @section Customization Types
 
+@cindex customization types
   When you define a user option with @code{defcustom}, you must specify
 its @dfn{customization type}.  That is a Lisp object which describes (1)
 which values are legitimate and (2) how to display the value in the
 customization buffer for editing.
 
+@kindex type@r{, @code{defcustom} keyword}
   You specify the customization type in @code{defcustom} with the
 @code{:type} keyword.  The argument of @code{:type} is evaluated, but
 only once when the @code{defcustom} is executed, so it isn't useful
@@ -905,10 +925,12 @@
 @code{choice}.
 
 @item :match-alternatives @var{criteria}
+@kindex match-alternatives@r{, customization keyword}
 Use @var{criteria} to match possible values.  This is used only in
 @code{restricted-sexp}.
 
 @item :args @var{argument-list}
+@kindex args@r{, customization keyword}
 Use the elements of @var{argument-list} as the arguments of the type
 construct.  For instance, @code{(const :args (foo))} is equivalent to
 @code{(const foo)}.  You rarely need to write @code{:args} explicitly,
@@ -986,6 +1008,7 @@
 essential to specify a valid default with @code{:value}.
 
 @item :format @var{format-string}
+@kindex format@r{, customization keyword}
 This string will be inserted in the buffer to represent the value
 corresponding to the type.  The following @samp{%} escapes are available
 for use in @var{format-string}:
@@ -1024,14 +1047,18 @@
 @end table
 
 @item :action @var{action}
+@kindex action@r{, customization keyword}
 Perform @var{action} if the user clicks on a button.
 
 @item :button-face @var{face}
+@kindex button-face@r{, customization keyword}
 Use the face @var{face} (a face name or a list of face names) for button
 text displayed with @samp{%[@dots{}%]}.
 
 @item :button-prefix @var{prefix}
 @itemx :button-suffix @var{suffix}
+@kindex button-prefix@r{, customization keyword}
+@kindex button-suffix@r{, customization keyword}
 These specify the text to display before and after a button.
 Each can be:
 
@@ -1051,6 +1078,7 @@
 that corresponds to this type.
 
 @item :doc @var{doc}
+@kindex doc@r{, customization keyword}
 Use @var{doc} as the documentation string for this value (or part of the
 value) that corresponds to this type.  In order for this to work, you
 must specify a value for @code{:format}, and use @samp{%d} or @samp{%h}
@@ -1061,6 +1089,7 @@
 @code{:choice} type or the parts of some other composite type.
 
 @item :help-echo @var{motion-doc}
+@kindex help-echo@r{, customization keyword}
 When you move to this item with @code{widget-forward} or
 @code{widget-backward}, it will display the string @var{motion-doc} in
 the echo area.  In addition, @var{motion-doc} is used as the mouse
@@ -1069,6 +1098,7 @@
 argument, the widget.
 
 @item :match @var{function}
+@kindex match@r{, customization keyword}
 Specify how to decide whether a value matches the type.  The
 corresponding value, @var{function}, should be a function that accepts
 two arguments, a widget and a value; it should return non-@code{nil} if
--- a/lispref/frames.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/lispref/frames.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -1203,17 +1203,19 @@
 @cindex frame visibility
 
 A window frame may be @dfn{visible}, @dfn{invisible}, or
-@dfn{iconified}.  If it is visible, you can see its contents.  If it is
-iconified, the frame's contents do not appear on the screen, but an icon
-does.  If the frame is invisible, it doesn't show on the screen, not
-even as an icon.
+@dfn{iconified}.  If it is visible, you can see its contents, unless
+other windows cover it.  If it is iconified, the frame's contents do
+not appear on the screen, but an icon does.  If the frame is
+invisible, it doesn't show on the screen, not even as an icon.
 
 Visibility is meaningless for terminal frames, since only the selected
 one is actually displayed in any case.
 
 @deffn Command make-frame-visible &optional frame
-This function makes frame @var{frame} visible.  If you omit @var{frame},
-it makes the selected frame visible.
+This function makes frame @var{frame} visible.  If you omit
+@var{frame}, it makes the selected frame visible.  This does not raise
+the frame, but you can do that with @code{raise-frame} if you wish
+(@pxref{Raising and Lowering}).
 @end deffn
 
 @deffn Command make-frame-invisible &optional frame force
--- a/lispref/modes.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/lispref/modes.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -3067,16 +3067,19 @@
 some cases you can do this automatically by setting the
 @code{font-lock-multiline} variable, which see.
 @item
-Rely on @code{jit-lock-contextually}.  This will only rehighlight the part
-of the construct that follows the actual change, and will do it after
-a short delay.  This only works if the highlighting of the various
-parts of your multiline construct never depends on text in subsequent
-lines.  Since @code{jit-lock-contextually} is activated by default,
-this can be an attractive solution.
+Make sure @code{jit-lock-contextually} is set and rely on it doing its
+job.  This will only rehighlight the part of the construct that
+follows the actual change, and will do it after a short delay.
+This only works if the highlighting of the various parts of your
+multiline construct never depends on text in subsequent lines.
+Since @code{jit-lock-contextually} is activated by default, this can
+be an attractive solution.
 @item
 Place a @code{jit-lock-defer-multiline} property on the construct.
-This works only if @code{jit-lock-contextually} is used, but it can
-handle the case where highlighting depends on subsequent lines.
+This works only if @code{jit-lock-contextually} is used, and with the
+same delay before rehighlighting, but like @code{font-lock-multiline},
+it also handles the case where highlighting depends on
+subsequent lines.
 @end itemize
 
 @menu
@@ -3089,7 +3092,7 @@
 @subsubsection Font Lock Multiline
 
   One way to ensure reliable rehighlighting of multiline Font Lock
-constructs is to put on the text property @code{font-lock-multiline}.
+constructs is to put on them the text property @code{font-lock-multiline}.
 It should be present and non-@code{nil} for text that is part of a
 multiline construct.
 
--- a/lispref/searching.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/lispref/searching.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -438,7 +438,8 @@
 beginning of the string or after a newline character.
 
 For historical compatibility reasons, @samp{^} can be used only at the
-beginning of the regular expression, or after @samp{\(} or @samp{\|}.
+beginning of the regular expression, or after @samp{\(}, @samp{\(?:}
+or @samp{\|}.
 
 @item @samp{$}
 @cindex @samp{$} in regexp
--- a/mac/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/mac/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,12 @@
+2006-12-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* inc/config.h: Sync with src/config.in.
+
+2006-11-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* INSTALL: Add descriptions about configuration and invocation.
+	Capitalize `Carbon'.
+
 2006-11-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* inc/config.h: Sync with src/config.in.
--- a/mac/INSTALL	Thu Dec 07 00:45:27 2006 +0000
+++ b/mac/INSTALL	Thu Dec 07 04:14:14 2006 +0000
@@ -29,7 +29,7 @@
 must install as root using the sudo command.  However, it is not
 recommended; see the notes section below for more details.
 
-The --enable-carbon-app specifies that the carbon GUI application
+The --enable-carbon-app specifies that the Carbon GUI application
 should be installed into /Application.  If you want it to install in a
 different location, specify --enable-carbon-app=<mydir>
 
@@ -43,23 +43,31 @@
 -k' instead of `make' and safely ignore the error messages and use the
 existing info files.
 
-After Emacs is installed, you can run it by typing `emacs -nw' from a
-terminal (make sure your path contains /usr/local/bin) or by
-double-clicking on /Applications/Emacs.app in the Finder.  To start
-Emacs as a GUI application from the terminal, the pathname to the
-executable in the bundle, i.e.,
+After Emacs is installed, you can run a text-only terminal version by
+typing `emacs' from a terminal (make sure your path contains
+/usr/local/bin) or a GUI application by double-clicking on
+/Applications/Emacs.app in the Finder.  Even in the terminal version,
+some Carbon-specific functions such as `mac-set-file-creator' are
+still meaningful.
+
+To start Emacs as a GUI application from the terminal, the pathname to
+the executable in the bundle, i.e.,
 
   /Application/Emacs.app/Contents/MacOS/Emacs
 
 must be typed to the shell to enable Emacs to locate its resources
-correctly.  You may want to create a symlink or alias to this path to
-quickly access both the terminal and GUI versions.
+correctly.  You may want to create an alias to this path to quickly
+access both the terminal and GUI versions.  You can specify some
+standard Emacs options when invoking Emacs in this way.
 
-If you are building Emacs to run on Mac OS X and X Window System,
-instead of typing `./configure' above, type
+Emacs on Mac OS X is not configured to use X11 unless either it is
+requested or the use of Carbon is disabled explicitly.  So, if you are
+building Emacs to run on X Window System, you need to specify like:
 
   ./configure --with-x
 
+Note that the Carbon-specific functions mentioned above are not
+available on the X11-enabled build.
 
 To use colors in a terminal, put the following lines in the file
 ~/.termcap and log in again.
@@ -130,7 +138,7 @@
 a script that will greatly simplify the process.  It is called
 make-package and it is contained in this directory.  It will generate
 a disc image containing a installer bundle.  By default the installer
-will place the emacs common files in /usr/local/* and the carbon
+will place the emacs common files in /usr/local/* and the Carbon
 application in /Applications.  Typical usage would be
 
 ./make-package
--- a/mac/inc/config.h	Thu Dec 07 00:45:27 2006 +0000
+++ b/mac/inc/config.h	Thu Dec 07 04:14:14 2006 +0000
@@ -588,6 +588,9 @@
 /* Define to 1 if `struct utimbuf' is declared by <utime.h>. */
 #define HAVE_STRUCT_UTIMBUF 1
 
+/* Define to 1 if you have the `sync' function. */
+/* #undef HAVE_SYNC */
+
 /* Define to 1 if you have the `sysinfo' function. */
 /* #undef HAVE_SYSINFO */
 
@@ -715,6 +718,9 @@
 /* Define to 1 if you have the X11R6 or newer version of Xt. */
 /* #undef HAVE_X11XTR6 */
 
+/* Define to 1 if the file /usr/lib64 exists. */
+/* #undef HAVE_X86_64_LIB64_DIR */
+
 /* Define to 1 if you have the Xaw3d library (-lXaw3d). */
 /* #undef HAVE_XAW3D */
 
--- a/make-dist	Thu Dec 07 00:45:27 2006 +0000
+++ b/make-dist	Thu Dec 07 04:14:14 2006 +0000
@@ -6,8 +6,8 @@
 #### be distributed.  This means that if you add a file with an odd name,
 #### you should make sure that this script will include it.
 
-# Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002, 2005, 2006
-#   Free Software Foundation, Inc.
+# Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005,
+#   2006  Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #
--- a/man/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,55 @@
+2006-12-06  Richard Stallman  <rms@gnu.org>
+
+	* text.texi (Outline Format): Say to set outline-regexp
+	and outline-level with major modes and file local variables.
+
+2006-12-05  Micha,Ak(Bl Cadilhac  <michael.cadilhac@lrde.org>
+
+	* anti.texi (Antinews): Mention the alternative to
+	`~/.emacs_SHELLNAME', which is `~/.emacs.d/init_SHELLNAME.sh'.
+
+	* faq.texi (^M in the shell buffer): Ditto.
+
+	* misc.texi (Interactive Shell): Ditto.
+
+2006-12-04  Eli Zaretskii  <eliz@gnu.org>
+
+	* emacs.texi (Acknowledgments): Fix Arne J@o{}rgensen's name.
+
+	* ack.texi (Acknowledgments): Fix Arne J@o{}rgensen's name.
+
+2006-12-01  Eli Zaretskii  <eliz@gnu.org>
+
+	* mule.texi (Enabling Multibyte): Rephrase the confusing reference to a
+	colon in the mode line.
+
+	* msdog.texi (Windows Processes) [@ifnottex]: Mention
+	w32-shell-execute.
+
+2006-11-26  Nick Roberts  <nickrob@snap.net.nz>
+
+	* building.texi (Watch Expressions): Mention SPC for expanding/
+	contracting watch expressions.
+
+2006-11-26  Kim F. Storm  <storm@cua.dk>
+
+	* kmacro.texi (Basic Keyboard Macro): Mention F3/F4 more.
+
+2006-11-26  Nick Roberts  <nickrob@snap.net.nz>
+
+	* building.texi (Debugger Operation): Define text command mode.
+	Clarify how tooltips work.
+	(GDB Graphical Interface): Explain how to run in text command mode
+	more clearly.
+
+2006-11-25  Juanma Barranquero  <lekktu@gmail.com>
+
+	* mule.texi (Defining Fontsets): Fix use of `charset' and `font'.
+
+2006-11-22  Juanma Barranquero  <lekktu@gmail.com>
+
+	* anti.texi (Antinews): Mention --server-file and TCP sockets.
+
 2006-11-20  Michael Olson  <mwolson@gnu.org>
 
 	* erc.texi: Call this the 5.2 stable pre-release of ERC.
--- a/man/ack.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/ack.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -517,7 +517,7 @@
 @end itemize
 
 @item
-Arne J@/orgensen wrote @file{latexenc.el}, a package to
+Arne J@o{}rgensen wrote @file{latexenc.el}, a package to
 automatically guess the correct coding system in LaTeX files.
 
 @item
--- a/man/anti.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/anti.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -66,7 +66,8 @@
 We have standardized on one location for the user init file: the file
 named @file{.emacs} in your home directory.  Emacs will not look for
 the init file in @file{~/.emacs.d/init.el}.  Similarly, don't try
-putting @file{.emacs_SHELL} in @file{~/.emacs.d}; Emacs won't find it.
+putting @file{.emacs_SHELL} as @file{init_SHELL.sh} in
+@file{~/.emacs.d}; Emacs won't find it.
 
 @item
 Emacs will not read @file{~/.abbrev_defs} automatically.  If you want
@@ -212,8 +213,9 @@
 command and @code{server-name} user option have been eliminated.
 
 @item
-The @file{emacsclient} program no longer accepts the @samp{--eval} and
-@samp{--display} command line options.
+The @file{emacsclient} program no longer accepts the @samp{--eval},
+@samp{--display} and @samp{--server-file} command line options, and
+can only establish local connections using Unix domain sockets.
 
 @item
 The command @code{quail-show-key}, for showing how to input a
--- a/man/building.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/building.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -536,10 +536,11 @@
 @subsection Debugger Operation
 
 @cindex fringes, and current execution line in GUD
-  When you run a debugger with GUD using the textual interface, the
-debugger uses an Emacs buffer for its ordinary input and output.  This
-is called the GUD buffer.  Input and output from the program you are
-debugging also use this buffer.
+  Generally when you run a debugger with GUD, the debugger uses an Emacs
+buffer for its ordinary input and output.  This is called the GUD
+buffer.  Input and output from the program you are debugging also use
+this buffer.  We call this @dfn{text command mode}.  The GDB Graphical
+Interface can use further buffers (@pxref{GDB Graphical Interface}).
 
   The debugger displays the source files of the program by visiting
 them in Emacs buffers.  An arrow in the left fringe indicates the
@@ -563,13 +564,13 @@
   The Tooltip facility (@pxref{Tooltips}) provides support for GUD@.
 You activate this feature by turning on the minor mode
 @code{gud-tooltip-mode}.  Then you can display a variable's value in a
-tooltip simply by pointing at it with the mouse.  In graphical mode,
-with a C program, you can also display the @code{#define} directive
-associated with an identifier when the program is not executing.  This
-operates in the GUD buffer and in source buffers with major modes in
-the list @code{gud-tooltip-modes}.  If the variable
-@code{gud-tooltip-echo-area} is non-@code{nil} then the variable's
-value is displayed in the echo area.
+tooltip simply by pointing at it with the mouse.  This operates in the
+GUD buffer and in source buffers with major modes in the list
+@code{gud-tooltip-modes}.  If the variable @code{gud-tooltip-echo-area}
+is non-@code{nil} then the variable's value is displayed in the echo
+area.  When debugging a C program using the GDB Graphical Interface, you
+can also display macro definitions associated with an identifier when
+the program is not executing.
 
   GUD tooltips are disabled when you use GDB in text command mode
 (@pxref{GDB Graphical Interface}), because displaying an expression's
@@ -828,11 +829,13 @@
 @vindex gud-gdb-command-name
 @findex gdba
   You can also run GDB in text command mode, like other debuggers.  To
-do this, set @code{gud-gdb-command-name} to @code{"gdb --fullname"} or
-edit the startup command in the minibuffer to say that.  You need to
-do use text command mode to run multiple debugging sessions within one
-Emacs session.  If you have customized @code{gud-gdb-command-name} in
-that way, you can use @kbd{M-x gdba} to invoke GDB in graphical mode.
+do this, replace the GDB @code{"--annotate=3"} option with
+@code{"--fullname"} either in the minibuffer for the current Emacs
+session, or the custom variable @code{gud-gdb-command-name} for all
+future sessions.  You need to use text command mode to debug multiple
+programs within one Emacs session.  If you have customized
+@code{gud-gdb-command-name} in this way, you can use @kbd{M-x gdba} to
+invoke GDB in graphical mode.
 
 @menu
 * GDB-UI Layout::               Control the number of displayed buffers.
@@ -1097,7 +1100,7 @@
 in which they were defined.
 
   To expand or contract a complex data type, click @kbd{Mouse-2}
-on the tag to the left of the expression.
+or press @key{SPC} on the tag to the left of the expression.
 
 @kindex D @r{(GDB speedbar)}
 @findex gdb-var-delete
--- a/man/emacs.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/emacs.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -1050,7 +1050,7 @@
 Holst, Jeffrey C.@: Honig, Kurt Hornik, Tom Houlder, Joakim Hove,
 Denis Howe, Lars Ingebrigtsen, Andrew Innes, Seiichiro Inoue, Pavel
 Janik, Paul Jarc, Ulf Jasper, Michael K. Johnson, Kyle Jones, Terry
-Jones, Simon Josefsson, Arne J@/orgensen, Tomoji Kagatani, Brewster
+Jones, Simon Josefsson, Arne J@o{}rgensen, Tomoji Kagatani, Brewster
 Kahle, Lute Kamstra, David Kastrup, David Kaufman, Henry Kautz, Taichi
 Kawabata, Howard Kaye, Michael Kifer, Richard King, Peter Kleiweg,
 Shuhei Kobayashi, Pavel Kobiakov, Larry K.@: Kolodney, David M.@:
--- a/man/faq.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/faq.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -2761,7 +2761,7 @@
 endif
 @end example
 
-Or put this in your @file{.emacs_tcsh} file:
+Or put this in your @file{.emacs_tcsh} or @file{~/.emacs.d/init_tcsh.sh} file:
 
 @example
 unset edit
--- a/man/kmacro.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/kmacro.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -46,19 +46,19 @@
 @section Basic Use
 
 @table @kbd
-@item C-x (
-@itemx @key{F3}
+@item @key{F3}
+@itemx C-x (
 Start defining a keyboard macro (@code{kmacro-start-macro}).
+@item @key{F4}
+If a keyboard macro is being defined, end the definition; otherwise,
+execute the most recent keyboard macro
+(@code{kmacro-end-or-call-macro}).
 @item C-x )
 End the definition of a keyboard macro (@code{kmacro-end-macro}).
 @item C-x e
 Execute the most recent keyboard macro (@code{kmacro-end-and-call-macro}).
 First end the definition of the keyboard macro, if currently defining it.
 To immediately execute the keyboard macro again, just repeat the @kbd{e}.
-@item @key{F4}
-If a keyboard macro is being defined, end the definition; otherwise,
-execute the most recent keyboard macro
-(@code{kmacro-end-or-call-macro}).
 @item C-u C-x (
 Re-execute last keyboard macro, then add more keys to its definition.
 @item C-u C-u C-x (
@@ -68,17 +68,19 @@
 (@code{apply-macro-to-region-lines}).
 @end table
 
+@kindex F3
+@kindex F4
 @kindex C-x (
 @kindex C-x )
 @kindex C-x e
 @findex kmacro-start-macro
 @findex kmacro-end-macro
 @findex kmacro-end-and-call-macro
-  To start defining a keyboard macro, type the @kbd{C-x (} command
+  To start defining a keyboard macro, type the @kbd{F3} or @kbd{C-x (} command
 (@code{kmacro-start-macro}).  From then on, your keys continue to be
 executed, but also become part of the definition of the macro.  @samp{Def}
 appears in the mode line to remind you of what is going on.  When you are
-finished, the @kbd{C-x )} command (@code{kmacro-end-macro}) terminates the
+finished, the @kbd{F4} or @kbd{C-x )} command (@code{kmacro-end-macro}) terminates the
 definition (without becoming part of it!).  For example,
 
 @example
@@ -115,7 +117,14 @@
 
   The key @key{F4} is like a combination of @kbd{C-x )} and @kbd{C-x
 e}.  If you're defining a macro, @key{F4} ends the definition.
-Otherwise it executes the last macro.
+Otherwise it executes the last macro.  For example,
+
+@example
+F3 xyz F4 F4 F4
+@end example
+
+@noindent
+inserts @samp{xyzxyzxyz} in the current buffer.
 
   If you wish to repeat an operation at regularly spaced places in the
 text, define a macro and include as part of the macro the commands to move
@@ -152,7 +161,8 @@
 macro as part of the process.
 
   After you have terminated the definition of a keyboard macro, you can add
-to the end of its definition by typing @kbd{C-u C-x (}.  This is equivalent
+to the end of its definition by typing @kbd{C-u F3} or @kbd{C-u C-x (}.
+This is equivalent
 to plain @kbd{C-x (} followed by retyping the whole definition so far.  As
 a consequence it re-executes the macro as previously defined.
 
--- a/man/misc.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/misc.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -478,7 +478,8 @@
 @file{~/.emacs_@var{shellname}} as input, if it exists, where
 @var{shellname} is the name of the file that the shell was loaded
 from.  For example, if you use bash, the file sent to it is
-@file{~/.emacs_bash}.
+@file{~/.emacs_bash}.  If this file is not found, Emacs tries to fallback
+on @file{~/.emacs.d/init_@var{shellname}.sh}.
 
   To specify a coding system for the shell, you can use the command
 @kbd{C-x @key{RET} c} immediately before @kbd{M-x shell}.  You can
--- a/man/msdog.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/msdog.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -518,6 +518,16 @@
 any quote characters that appear; otherwise chose a suitable escape
 character based on the type of the program.
 
+@ifnottex
+@findex w32-shell-execute
+  The function @code{w32-shell-execute} can be useful for writing
+customized commands that run MS-Windows applications registered to
+handle a certain standard Windows operation for a specific type of
+document or file.  This function is a wrapper around the Windows
+@code{ShellExecute} API.  See the MS-Windows API documentation for
+more details.
+@end ifnottex
+
 @node Windows Printing
 @section Printing and MS-Windows
 
--- a/man/mule.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/mule.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -212,11 +212,13 @@
 load a Lisp file as unibyte, on any one occasion, by typing @kbd{C-x
 @key{RET} c raw-text @key{RET}} immediately before loading it.
 
-  The mode line indicates whether multibyte character support is enabled
-in the current buffer.  If it is, there are two or more characters (most
-often two dashes) before the colon near the beginning of the mode line.
-When multibyte characters are not enabled, nothing precedes the colon
-except a single dash.
+  The mode line indicates whether multibyte character support is
+enabled in the current buffer.  If it is, there are two or more
+characters (most often two dashes) near the beginning of the mode
+line, before the indication of the visited file's end-of-line
+convention (colon, backslash, etc.).  When multibyte characters
+are not enabled, nothing precedes the colon except a single dash.
+@xref{Mode Line}, for more details about this.
 
 @node Language Environments
 @section Language Environments
@@ -1302,7 +1304,7 @@
 The resource value should have this form:
 
 @smallexample
-@var{fontpattern}, @r{[}@var{charsetname}:@var{fontname}@r{]@dots{}}
+@var{fontpattern}, @r{[}@var{charset}:@var{font}@r{]@dots{}}
 @end smallexample
 
 @noindent
--- a/man/texinfo.tex	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/texinfo.tex	Thu Dec 07 04:14:14 2006 +0000
@@ -3,7 +3,7 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2006-08-26.17}
+\def\texinfoversion{2006-11-08.17}
 %
 % Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free
@@ -157,6 +157,18 @@
 \chardef\spacecat = 10
 \def\spaceisspace{\catcode`\ =\spacecat}
 
+% sometimes characters are active, so we need control sequences.
+\chardef\colonChar = `\:
+\chardef\commaChar = `\,
+\chardef\dashChar  = `\-
+\chardef\dotChar   = `\.
+\chardef\exclamChar= `\!
+\chardef\lquoteChar= `\`
+\chardef\questChar = `\?
+\chardef\rquoteChar= `\'
+\chardef\semiChar  = `\;
+\chardef\underChar = `\_
+
 % Ignore a token.
 %
 \def\gobble#1{}
@@ -1243,6 +1255,11 @@
   \HyPsdSubst{)}{\realbackslash)}{#1}%
 }
 
+\newhelp\nopdfimagehelp{Texinfo supports .png, .jpg, .jpeg, and .pdf images
+with PDF output, and none of those formats could be found.  (.eps cannot
+be supported due to the design of the PDF format; use regular TeX (DVI
+output) for that.)}
+
 \ifpdf
   \input pdfcolor
   \pdfcatalog{/PageMode /UseOutlines}%
@@ -1250,6 +1267,36 @@
   \def\dopdfimage#1#2#3{%
     \def\imagewidth{#2}\setbox0 = \hbox{\ignorespaces #2}%
     \def\imageheight{#3}\setbox2 = \hbox{\ignorespaces #3}%
+    %
+    % pdftex (and the PDF format) support .png, .jpg, .pdf (among
+    % others).  Let's try in that order.
+    \let\pdfimgext=\empty
+    \begingroup
+      \openin 1 #1.png \ifeof 1
+        \openin 1 #1.jpg \ifeof 1
+          \openin 1 #1.jpeg \ifeof 1
+            \openin 1 #1.JPG \ifeof 1
+              \openin 1 #1.pdf \ifeof 1
+                \errhelp = \nopdfimagehelp
+                \errmessage{Could not find image file #1 for pdf}%
+              \else
+                \gdef\pdfimgext{pdf}%
+              \fi
+            \else
+              \gdef\pdfimgext{JPG}%
+            \fi
+          \else
+            \gdef\pdfimgext{jpeg}%
+          \fi
+        \else
+          \gdef\pdfimgext{jpg}%
+        \fi
+      \else
+        \gdef\pdfimgext{png}%
+      \fi
+      \closein 1
+    \endgroup
+    %
     % without \immediate, pdftex seg faults when the same image is
     % included twice.  (Version 3.14159-pre-1.0-unofficial-20010704.)
     \ifnum\pdftexversion < 14
@@ -1260,9 +1307,9 @@
       \ifdim \wd0 >0pt width \imagewidth \fi
       \ifdim \wd2 >0pt height \imageheight \fi
       \ifnum\pdftexversion<13
-         #1.pdf%
+         #1.\pdfimgext
        \else
-         {#1.pdf}%
+         {#1.\pdfimgext}%
        \fi
     \ifnum\pdftexversion < 14 \else
       \pdfrefximage \pdflastximage
@@ -1976,13 +2023,6 @@
 % Can't use plain's \frenchspacing because it uses the `\x notation, and
 % sometimes \x has an active definition that messes things up.
 %
-\chardef\colonChar = `\:
-\chardef\commaChar = `\,
-\chardef\dotChar   = `\.
-\chardef\exclamChar= `\!
-\chardef\questChar = `\?
-\chardef\semiChar  = `\;
-%
 \catcode`@=11
   \def\plainfrenchspacing{%
     \sfcode\dotChar  =\@m \sfcode\questChar=\@m \sfcode\exclamChar=\@m
@@ -2010,6 +2050,7 @@
      \hbox{\raise0.4pt\hbox{\vphantom{\angleleft}}#1}}%
     \kern-0.4pt\hrule}%
   \kern-.06em\raise0.4pt\hbox{\angleright}}}}
+\def\key #1{{\nohyphenation \uppercase{#1}}\null}
 % The old definition, with no lozenge:
 %\def\key #1{{\ttsl \nohyphenation \uppercase{#1}}\null}
 \def\ctrl #1{{\tt \rawbackslash \hat}#1}
@@ -2051,11 +2092,14 @@
 % and arrange explicitly to hyphenate at a dash.
 %  -- rms.
 {
-  \catcode`\-=\active \catcode`\_=\active \catcode`\'=\active
+  \catcode`\-=\active \catcode`\_=\active
+  \catcode`\'=\active \catcode`\`=\active
   %
   \global\def\code{\begingroup
-    \catcode`\-=\active  \catcode`\_=\active \catcode`\'=\active
-    \let'\singlequotechar
+    \catcode\rquoteChar=\active \catcode\lquoteChar=\active
+    \let'\codequoteright \let`\codequoteleft
+    %
+    \catcode\dashChar=\active  \catcode\underChar=\active
     \ifallowcodebreaks
      \let-\codedash
      \let_\codeunder
@@ -5410,7 +5454,7 @@
 % evince), the lilypond developers report.  xpdf does work with the
 % regular 0x27.  
 % 
-\def\singlequotechar{%
+\def\codequoteright{%
   \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax
     '%
   \else
@@ -5418,6 +5462,18 @@
   \fi
 }
 %
+% and a similar option for the left quote char vs. a grave accent.
+% Modern fonts display ASCII 0x60 as a grave accent, so some people like
+% the code environments to do likewise.
+% 
+\def\codequoteleft{%
+  \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax
+    `%
+  \else
+    \char'22
+  \fi
+}
+%
 \begingroup
   \catcode`\^^I=\active
   \gdef\tabexpand{%
@@ -5431,12 +5487,15 @@
     }%
   }
   \catcode`\'=\active
-  \gdef\quoteexpand{%
-    \catcode`\'=\active
-    \def'{\singlequotechar}
-  }%
+  \gdef\rquoteexpand{\catcode\rquoteChar=\active \def'{\codequoteright}}%
+  %
+  \catcode`\`=\active
+  \gdef\lquoteexpand{\catcode\lquoteChar=\active \def`{\codequoteleft}}%
+  %
+  \gdef\quoteexpand{\rquoteexpand \lquoteexpand}%
 \endgroup
-%
+
+% start the verbatim environment.
 \def\setupverbatim{%
   \let\nonarrowing = t%
   \nonfillstart
--- a/man/text.texi	Thu Dec 07 00:45:27 2006 +0000
+++ b/man/text.texi	Thu Dec 07 04:14:14 2006 +0000
@@ -1039,29 +1039,33 @@
 deeper heading lines and their body lines is called a @dfn{subtree}.
 
 @vindex outline-regexp
-  You can customize the criterion for distinguishing heading lines
-by setting the variable @code{outline-regexp}.  Any line whose
-beginning has a match for this regexp is considered a heading line.
-Matches that start within a line (not at the left margin) do not count.
-The length of the matching text determines the level of the heading;
-longer matches make a more deeply nested level.  Thus, for example,
-if a text formatter has commands @samp{@@chapter}, @samp{@@section}
-and @samp{@@subsection} to divide the document into chapters and
-sections, you could make those lines count as heading lines by
-setting @code{outline-regexp} to @samp{"@@chap\\|@@\\(sub\\)*section"}.
-Note the trick: the two words @samp{chapter} and @samp{section} are equally
+  You can customize the criterion for distinguishing heading lines by
+setting the variable @code{outline-regexp}.  (The recommended ways to
+do this are in a major mode function or with a file local variable.)
+Any line whose beginning has a match for this regexp is considered a
+heading line.  Matches that start within a line (not at the left
+margin) do not count.
+
+  The length of the matching text determines the level of the heading;
+longer matches make a more deeply nested level.  Thus, for example, if
+a text formatter has commands @samp{@@chapter}, @samp{@@section} and
+@samp{@@subsection} to divide the document into chapters and sections,
+you could make those lines count as heading lines by setting
+@code{outline-regexp} to @samp{"@@chap\\|@@\\(sub\\)*section"}.  Note
+the trick: the two words @samp{chapter} and @samp{section} are equally
 long, but by defining the regexp to match only @samp{chap} we ensure
 that the length of the text matched on a chapter heading is shorter,
-so that Outline mode will know that sections are contained in chapters.
-This works as long as no other command starts with @samp{@@chap}.
+so that Outline mode will know that sections are contained in
+chapters.  This works as long as no other command starts with
+@samp{@@chap}.
 
 @vindex outline-level
-  You can change the rule for calculating the level of a heading line
-by setting the variable @code{outline-level}.  The value of
-@code{outline-level} should be a function that takes no arguments and
-returns the level of the current heading.  Some major modes such as C,
-Nroff, and Emacs Lisp mode set this variable and @code{outline-regexp}
-in order to work with Outline minor mode.
+  You can explicitly specify a rule for calculating the level of a
+heading line by setting the variable @code{outline-level}.  The value
+of @code{outline-level} should be a function that takes no arguments
+and returns the level of the current heading.  The recommended ways to
+set this variable are in a major mode command or with a file local
+variable.
 
 @node Outline Motion
 @subsection Outline Motion Commands
--- a/msdos/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/msdos/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,11 @@
+2006-12-04  Eli Zaretskii  <eliz@gnu.org>
+
+	* sed2v2.inp (HAVE_SYNC): Define.
+
+2006-11-25  Eli Zaretskii  <eliz@gnu.org>
+
+	* sed1v2.inp (CFLAGS_SOUND): Edit out.
+
 2006-09-15  Jay Belanger  <belanger@truman.edu>
 
 	* COPYING: Replace "Library Public License" by "Lesser Public
--- a/msdos/sed1v2.inp	Thu Dec 07 00:45:27 2006 +0000
+++ b/msdos/sed1v2.inp	Thu Dec 07 04:14:14 2006 +0000
@@ -36,6 +36,7 @@
 /^LIBOBJS *=/s/@[^@\n]*@/getloadavg.o/
 /^GETLOADAVG_LIBS *=/s/@[^@\n]*@//
 /^LIBSOUND *=/s/@LIBSOUND@//
+/^CFLAGS_SOUND *=/s/@CFLAGS_SOUND@//
 /^EXEEXT *=/s/@EXEEXT@//
 /^LN_S *=/s/@[^@\n]*@/ln -s/
 /^M_FILE *=/s!@[^@\n]*@!m/intel386.h!
--- a/msdos/sed2v2.inp	Thu Dec 07 00:45:27 2006 +0000
+++ b/msdos/sed2v2.inp	Thu Dec 07 04:14:14 2006 +0000
@@ -51,6 +51,7 @@
 /^#undef HAVE_RINDEX *$/s/^.*$/#define HAVE_RINDEX 1/
 /^#undef HAVE_MKSTEMP *$/s/^.*$/#define HAVE_MKSTEMP 1/
 /^#undef HAVE_STRUCT_TM_TM_ZONE *$/s/^.*$/#define HAVE_STRUCT_TM_TM_ZONE 1/
+/^#undef HAVE_SYNC *$/s/^.*$/#define HAVE_SYNC 1/
 /^#undef PACKAGE_BUGREPORT/s/^.*$/#define PACKAGE_BUGREPORT ""/
 /^#undef PACKAGE_NAME/s/^.*$/#define PACKAGE_NAME ""/
 /^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/
--- a/src/ChangeLog	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/ChangeLog	Thu Dec 07 04:14:14 2006 +0000
@@ -1,3 +1,147 @@
+2006-12-05  Glenn Morris  <rgm@gnu.org>
+
+	* abbrev.c (Qforce): New Lisp_Object.
+	(Fdefine_abbrev): Do not overwrite non-system abbrevs with system
+	abbrevs, unless 'force is applied.
+	(syms_of_abbrev): Add Qforce.
+
+2006-12-04  Kim F. Storm  <storm@cua.dk>
+
+	* process.c (parse_signal): Rename macro from handle_signal.
+	(Fsignal_process): Also accept lower-case variants of signal
+	names (to align with signal names generated by Emacs itself).
+
+	* emacs.c (handle_USR1_signal, handle_USR2_signal): Replace by...
+	(handle_user_signal): ... this, which generates two USER_SIGNAL_EVENTs
+	first with code == 0 [signal] and one with code == sig number.
+	(main): Use it as handler for SIGUR1 and SIGUSR2.
+
+	* keyboard.c (kbd_buffer_store_event_hold): Don't throw-on-input
+	if first event in [signal xxx] sequence.
+	(lispy_user_signals, Qusr1_signal, Qusr2_signal): Remove.
+	(syms_of_keyboard): Don't intern and staticpro them.
+	(Qsignal): Declare here.
+	(syms_of_keyboard): Intern and staticpro it.
+	(make_lispy_event): Use it.  Intern symbols on the fly for other
+	USER_SIGNAL_EVENTs events.
+
+	* process.c (Qsignal): Declare extern.
+	(syms_of_process): Don't intern/staticpro it here.
+
+	* process.c (read_process_output): Abort if carryover < 0.
+
+2006-12-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* config.in: Regenerate.
+
+	* fileio.c [__NetBSD__]: Don't define `unix'.
+	(Funix_sync, syms_of_fileio): Use `#ifdef HAVE_SYNC' instead of
+	`#ifdef unix'.
+
+2006-12-04  Glenn Morris  <rgm@gnu.org>
+
+	* Makefile.in (version): New variable, set by configure.
+	(bootstrapclean, mostlyclean): Also remove emacs-${version}.
+
+2006-12-03  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* gtkutil.c (update_frame_tool_bar): Handle modifying a toolbar item
+	without an image.
+
+2006-12-01  Eli Zaretskii  <eliz@gnu.org>
+
+	* w32fns.c (Fw32_shell_execute): Doc fix.
+
+2006-11-30  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xdisp.c (move_it_to): Correctly count tab glyphs for continued
+	lines ending in tab.
+
+2006-11-30  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* xterm.c (x_raise_frame): Move setting of _NET_ACTIVE_WINDOW
+	property ...
+	(XTframe_raise_lower): ... to here.
+
+2006-11-30  Kenichi Handa  <handa@m17n.org>
+
+	* regex.c (regex_compile): Fix previous change.
+
+2006-11-29  Juanma Barranquero  <lekktu@gmail.com>
+
+	* sound.c (Fplay_sound_internal): Remove spurious newline in docstring.
+
+2006-11-28  Chong Yidong  <cyd@stupidchicken.com>
+
+	* config.in: Regenerate.
+
+2006-11-28  Kenichi Handa  <handa@m17n.org>
+
+	* regex.c (regex_compile): Don't call SET_LIST_BIT with a
+	multibyte character.
+
+2006-11-27  Chong Yidong  <cyd@stupidchicken.com>
+
+	* s/aix4-2.h: Undefine _NO_PROTO.  Suggested by Joe Buehler.
+
+2006-11-27  Kim F. Storm  <storm@cua.dk>
+
+	* window.c (set_window_buffer): Refactor recent changes.
+
+2006-11-27  Jason Rumney  <jasonr@gnu.org>
+
+	* w32term.c (w32_msg_worker): Declare correctly.
+	(w32_initialize): Don't cast w32_msg_worker.
+
+	* w32fns.c (w32_msg_worker): Define as WINAPI and arg as void pointer.
+
+2006-11-26  Chong Yidong  <cyd@stupidchicken.com>
+
+	* m/amdx86-64.h: Look for standard libs in /usr/lib64 only if that
+	directory exists.
+
+2006-11-25  Eli Zaretskii  <eliz@gnu.org>
+
+	* w16select.c (Fw16_set_clipboard_data): Fix the call to sit_for
+	as per the calling sequence change on 2006-07-11.
+
+2006-11-25  Chong Yidong  <cyd@stupidchicken.com>
+
+	* window.c (set_window_buffer): Use BLOCK_INPUT.
+
+2006-11-24  Juanma Barranquero  <lekktu@gmail.com>
+
+	* fns.c (substring_both): Add missing address operator.
+
+2006-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* fns.c: Use AREF/ASIZE macros.
+	(concat): Provide the full ANSI prototype.
+
+2006-11-24  Juanma Barranquero  <lekktu@gmail.com>
+
+	* buffer.c (syms_of_buffer) <buffer-undo-list>: Doc fix.
+
+2006-11-23  William Smith  <William.Smith@global360.com>  (tiny change)
+
+	* strftime.c (HAVE_SYS__MBSTATE_T_H): Fix typo.
+
+2006-11-02  Alfred M. Szmidt  <ams@gnu.org>  (tiny change)
+
+	* s/openbsd.h (LD_SWITCH_SYSTEM): Remove /usr/pkg/lib and
+	/usr/pkg/lib from the library search path.
+	(LD_SWITCH_X_DEFAULT): New macro.
+
+2006-11-22  Chong Yidong  <cyd@stupidchicken.com>
+
+	* window.c (set_window_buffer): Clear mouse highlight if it is in
+	this window.
+
+2006-11-21  Chong Yidong  <cyd@stupidchicken.com>
+
+	* xfaces.c (realize_default_face): Check if the default font name
+	exists on this display before trying to use it.
+
 2006-11-21  Richard Stallman  <rms@gnu.org>
 
 	* fileio.c: Break line before &&, not after.
@@ -18,15 +162,13 @@
 
 2006-11-19  Andreas Schwab  <schwab@gnu.org>
 
-	* xfaces.c (Fdisplay_supports_face_attributes_p): Initialize
-	supports.
+	* xfaces.c (Fdisplay_supports_face_attributes_p): Initialize supports.
 
 	* xmenu.c (Fx_popup_menu): Initialize selection.
 
 2006-11-18  Andreas Schwab  <schwab@suse.de>
 
-	* s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Update call to
-	mark_memory.
+	* s/gnu-linux.h (GC_MARK_SECONDARY_STACK): Update call to mark_memory.
 
 2006-11-17  Tetsurou Okazaki  <okazaki@be.to>  (tiny change)
 
@@ -44,8 +186,7 @@
 
 2006-11-14  Kenichi Handa  <handa@m17n.org>
 
-	* coding.c (code_convert_region): Initialize
-	coding->heading_ascii.
+	* coding.c (code_convert_region): Initialize coding->heading_ascii.
 	(decode_coding_string, code_convert_region): Likewise.
 
 2006-11-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
@@ -142,7 +283,7 @@
 
 2006-11-05  Mark Davies  <mark@mcs.vuw.ac.nz>  (tiny change)
 
-	* s/netbsd.h (POSIX_SIGNALS): Defined.
+	* s/netbsd.h (POSIX_SIGNALS): Define.
 
 2006-11-05  Martin Rudalics  <rudalics@gmx.at>
 
@@ -175,8 +316,8 @@
 	(unexec_regions_merge): Don't merge if null pages of preceding region
 	is not too small.  Use long format in printf.
 	(copy_segment, copy_data_segment): Show filesize.
-	(copy_data_segment): Write filesize bytes of region data.  Adjust
-	filesize in segment command accordingly.
+	(copy_data_segment): Write filesize bytes of region data.
+	Adjust filesize in segment command accordingly.
 	(dump_it): Use long format in printf.
 
 2006-11-05  Juanma Barranquero  <lekktu@gmail.com>
@@ -275,8 +416,8 @@
 	`swap_nibbles' static const.
 	(atsu_get_text_layout_with_text_ptr): Make variables `lengths',
 	`tags', `sizes', `values' static const.
-	(mac_draw_string_common): Make variables `context' static.  Make
-	variables `tags', `sizes', and `values' static const.
+	(mac_draw_string_common): Make variables `context' static.
+	Make variables `tags', `sizes', and `values' static const.
 	(pcm_get_status, x_detect_focus_change, x_scroll_bar_handle_click)
 	(xlfdpat_create, xlfdpat_block_match_1, xlfdpat_match)
 	(mac_to_x_fontname, parse_x_font_name, add_mac_font_name)
@@ -287,8 +428,8 @@
 	(fn_keycode_to_keycode_table): Make static const.
 	(mac_load_query_font): Make variables `tags', `sizes', `values',
 	`types', and `selectors' static const.
-	(mac_handle_command_event, mac_handle_window_event): Make
-	variables `names' and `types' static const.
+	(mac_handle_command_event, mac_handle_window_event):
+	Make variables `names' and `types' static const.
 	(init_command_handler, install_window_handler): Make variables
 	`specs*' static const.
 	(mac_handle_font_event, mac_handle_text_input_event)
@@ -375,12 +516,12 @@
 2006-10-19  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* xselect.c (x_handle_selection_request): If the converted_selection
-	is NIL or XCDR (converted_selection) is NIL, decline the request.
+	is nil or XCDR (converted_selection) is nil, decline the request.
 
 2006-10-16  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* gtkutil.c (get_utf8_string): Remove warnings with casts.
-	(xg_tool_bar_button_cb): Ditto
+	(xg_tool_bar_button_cb): Ditto.
 	(xg_tool_bar_callback): Ditto.
 
 2006-10-16  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
@@ -2480,8 +2621,8 @@
 	(struct sound_device): Add period_size.
 	(wav_play, au_play): Use period_size if set.
 
-	* Makefile.in (CFLAGS_SOUND): New flags for ALSA
-	(ALL_CFLAGS): Add CFLAGS_SOUND
+	* Makefile.in (CFLAGS_SOUND): New flags for ALSA.
+	(ALL_CFLAGS): Add CFLAGS_SOUND.
 
 2006-05-18  Kenichi Handa  <handa@m17n.org>
 
@@ -4105,8 +4246,8 @@
 
 2006-01-31  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
-	* gtkutil.c (update_frame_tool_bar): Use new tool bar functions
-	(gtk_toolbar_insert) so we can have tool bars of different sizes.
+	* gtkutil.c (update_frame_tool_bar): Use new tool bar function
+	gtk_toolbar_insert() so we can have tool bars of different sizes.
 
 2006-01-30  Luc Teirlinck  <teirllm@auburn.edu>
 
@@ -4434,7 +4575,7 @@
 
 2005-12-27  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
-	* xfns.c: x_show_hidden_files, new variable.
+	* xfns.c (x_show_hidden_files): New variable.
 	(syms_of_xfns): Defvar it.
 
 	* gtkutil.c (xg_toggle_visibility_cb): New function.
@@ -6719,7 +6860,7 @@
 
 	* w32console.c (initialize_w32_display): Detect when the console
 	dimensions are insane, and default to 80x25 instead.
-	(w32_use_full_screen_buffer): Default to NIL.
+	(w32_use_full_screen_buffer): Default to nil.
 
 2005-07-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
@@ -9928,7 +10069,7 @@
 
 	* xterm.c (x_calc_absolute_position): Don't subtract outer_pixel_diff
 	for left and top calculations.  Remove call to x_real_positions.
-	[Bug report by Drew Adams in November]
+	[Bug report by Drew Adams in November.]
 	(x_check_expected_move): Do not set change_gravity to 1 when calling
 	x_set_offset.
 
@@ -9978,8 +10119,8 @@
 	new variables main_thread and alloc_mutex,
 	define (UN)BLOCK_INPUT_ALLOC to use alloc_mutex to protect
 	emacs_blocked_* calls and only do (UN)BLOCK_INPUT in the main thread.
-	If not HAVE_GTK_AND_PTHREAD, (UN)BLOCK_INPUT_ALLOC is the same as
-	(UN)BLOCK_INPUT.
+	If not HAVE_GTK_AND_PTHREAD, (UN)BLOCK_INPUT_ALLOC is the same
+	as (UN)BLOCK_INPUT.
 	(emacs_blocked_free, emacs_blocked_malloc)
 	(emacs_blocked_realloc): Use (UN)BLOCK_INPUT_ALLOC.
 	(uninterrupt_malloc): Initialize main_thread and alloc_mutex.
@@ -9989,7 +10130,7 @@
 
 	* emacs.c (Fdump_emacs): Call reset_malloc_hooks.
 
-	* keyboard.c: Conditionally include pthread.h
+	* keyboard.c: Conditionally include pthread.h.
 	(handle_async_input, input_available_signalt): If not in the main
 	thread, block signal, send signal to main thread and return.
 
@@ -10799,7 +10940,7 @@
 
 2004-11-02  Kim F. Storm  <storm@cua.dk>
 
-	* Makefile.in (callproc.o): Depend on blockinput.h atimer.h systime.h.
+	* Makefile.in (callproc.o): Depend on blockinput.h, atimer.h, systime.h.
 
 2004-11-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
@@ -10860,10 +11001,9 @@
 	* w32fns.c (Fx_file_dialog): Add parameter only_dir_p.
 	Check only_dir_p instead of comparing prompt to "Dired".
 
-	* gtkutil.c (xg_get_file_with_chooser)
-	(xg_get_file_with_selection): New functions, only defined ifdef
-	HAVE_GTK_FILE_CHOOSER_DIALOG_NEW and HAVE_GTK_FILE_SELECTION_NEW
-	respectively.
+	* gtkutil.c (xg_get_file_with_chooser, xg_get_file_with_selection):
+	New functions, only defined ifdef HAVE_GTK_FILE_CHOOSER_DIALOG_NEW
+	and HAVE_GTK_FILE_SELECTION_NEW respectively.
 	(xg_get_file_name): Add parameter only_dir_p.
 	Call xg_get_file_with_chooser or xg_get_file_with_selection
 	depending on HAVE_GTK_FILE* and the value of use_old_gtk_file_dialog.
@@ -10900,7 +11040,7 @@
 	tool_bar_items to assignment of result.
 
 	* atimer.c (alarm_signal_handler): Do not call set_alarm if
-	pending_atmers is non-zero.
+	pending_atimers is non-zero.
 
 2004-10-31  Kim F. Storm  <storm@cua.dk>
 
@@ -11238,7 +11378,7 @@
 	precedence.
 	(XTread_socket) [TARGET_API_MAC_CARBON]: Don't specify drag area.
 
-2004-10-05  Jan Dj,Ad(Brv.  <jan.h.d@swipnet.se>
+2004-10-05  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* config.in: Regenerate.
 
@@ -14515,14 +14655,14 @@
 	* xterm.c (handle_one_xevent): Call x_handle_dnd_message for
 	ClientMessages.
 
-	* xselect.c: Include termhooks.h and X11/Xproto.h
+	* xselect.c: Include termhooks.h and X11/Xproto.h.
 	(x_check_property_data, x_fill_property_data)
 	(x_property_data_to_lisp, mouse_position_for_drop)
 	(Fx_get_atom_name, x_handle_dnd_message): New functions for DND support.
 	(Fx_send_client_event): Move here from xfns.c.
 	(syms_of_xselect): Add Sx_get_atom_name and Sx_send_client_message.
 
-	* xfns.c (x-send-client-message): Move to xselect.c
+	* xfns.c (x-send-client-message): Move to xselect.c.
 	(Fx_change_window_property): Add optional arguments TYPE, FORMAT and
 	OUTER_P.
 	(Fx_window_property): Add optional arguments TYPE, SOURCE, DELETE_P,
@@ -15617,7 +15757,7 @@
 	Set BUF_INTERVALS (buffer)->up_obj when appropriate.
 	Handle over_used when splitting UNDER.
 
-2003-09-30  YAMAMOTO  Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+2003-09-30  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
 	* regex.c (regex_compile): Free the stack when returning from function.
 
@@ -18083,7 +18223,7 @@
 
 2003-03-23  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
-	* xdisp.c (get_glyph_string_clip_rect): Remove ; at end of #endif
+	* xdisp.c (get_glyph_string_clip_rect): Remove ; at end of #endif.
 
 	* gtkutil.h: Take two more arguments to xg_update_scrollbar_pos.
 	(XG_SB_RANGE): New define.
@@ -18320,7 +18460,7 @@
 	* gtkutil.c: Removed handle_fixed_child, struct xg_last_sb_pos.
 	(xg_resize_widgets): Don't call foreach(handle_fixed_child).
 	(xg_gtk_scroll_destroy): Remove free of struct xg_last_sb_pos.
-	(scroll_bar_button_cb): Set bar->dragging to NIL on button release.
+	(scroll_bar_button_cb): Set bar->dragging to nil on button release.
 	(xg_create_scroll_bar): Pass bar to button event callback.
 	(xg_find_top_left_in_fixed): New function.
 	(xg_update_scrollbar_pos): Don't call gdk_window_clear on
@@ -18621,7 +18761,7 @@
 2003-02-25  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* keyboard.c (cancel_hourglass_unwind): Surround with
-	#ifdef HAVE_X_WINDOWS
+	#ifdef HAVE_X_WINDOWS.
 
 2003-02-25  Kenichi Handa  <handa@m17n.org>
 
@@ -19182,7 +19322,7 @@
 
 2003-01-21  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
-	* gtkutil.c: Must include stdio.h before termhooks.h
+	* gtkutil.c: Must include stdio.h before termhooks.h.
 
 2003-01-21  Dave Love  <fx@gnu.org>
 
@@ -19228,7 +19368,7 @@
 	* xterm.c (handle_one_xevent): Surround popup_activated
 	with #ifdef:s for non-toolkit version.
 
-	* Makefile.in (XOBJ): Add gtkutil.o if USE_GTK
+	* Makefile.in (XOBJ): Add gtkutil.o if USE_GTK.
 	(gtkutil.o): New file.
 	(TOOLKIT_DEFINES): Set to -DUSE_GTK if HAVE_GTK.
 	(LIBW): Set to @GTK_LIBS@ if USE_GTK.
@@ -19274,7 +19414,7 @@
 	(syms_of_xterm): Set Vx_toolkit_scroll_bars for USE_GTK.
 
 	* xmenu.c: Include gtkutil.h for USE_GTK.
-	(Fx_popup_menu): Use current position if x and y is NIL.
+	(Fx_popup_menu): Use current position if x and y are nil.
 	(single_menu_item, single_menu_item, Fx_popup_dialog):
 	Check for USE_GTK.
 	(popup_widget_loop): New function for USE_GTK.
@@ -19304,7 +19444,7 @@
 	(x_set_tool_bar_lines): Call update_frame_tool_bar for USE_GTK.
 	(x_set_name, x_set_title): Call gtk_window_set_title for USE_GTK.
 	(x_window): Call xg_create_frame_widgets for USE_GTK.
-	(Fx_create_frame): Check for USE_GTK
+	(Fx_create_frame): Check for USE_GTK.
 	(Fx_file_dialog): New implementation for USE_GTK.
 
 	* xdisp.c: Add check for USE_GTK for extern void set_frame_menubar.
@@ -19331,7 +19471,7 @@
 	* dispnew.c (adjust_frame_glyphs_for_window_redisplay):
 	Add check for USE_GTK.
 
-	* config.in: Added HAVE_GTK
+	* config.in: Added HAVE_GTK.
 
 	* alloc.c (Fgarbage_collect): Call xg_mark_data for GTK.
 
@@ -19855,7 +19995,7 @@
 
 	* alloca.c: Undo ifdef change accidentally made on 12-04.
 
-2002-12-06  Francesco Potorti`  <pot@gnu.org>
+2002-12-06  Francesco Potort,Al(B  <pot@gnu.org>
 
 	* xfns.c (png_load): Avoid double gamma correction for PNG images.
 
@@ -20176,7 +20316,7 @@
 	* fns.c (Fcopy_sequence): Doc fix.
 	(Fmap_char_table): Cast `call2'.
 
-2002-11-14  Francesco Potorti`  <pot@gnu.org>
+2002-11-14  Francesco Potort,Al(B  <pot@gnu.org>
 
 	* s/sol2-8.h: New file.
 
@@ -20557,7 +20697,7 @@
 	Only when it is non-nil, handle composition sequence.
 	(setup_coding_system) <0>: Don't force composition handling.
 
-	* Makefile.in (lisp, shortlisp): Add utf-16.elc
+	* Makefile.in (lisp, shortlisp): Add utf-16.elc.
 
 2002-09-29  Richard M. Stallman  <rms@gnu.org>
 
--- a/src/Makefile.in	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/Makefile.in	Thu Dec 07 04:14:14 2006 +0000
@@ -38,6 +38,7 @@
 LDFLAGS=@LDFLAGS@
 LN_S=@LN_S@
 EXEEXT=@EXEEXT@
+version=@version@
 # Substitute an assignment for the MAKE variable, because
 # BSD doesn't have it as a default.
 @SET_MAKE@
@@ -1347,11 +1348,11 @@
 ${libsrc}emacstool${EXEEXT}: ${libsrc}emacstool.c
 	cd ${libsrc}; ${MAKE} ${MFLAGS} emacstool${EXEEXT}
 bootstrapclean:
-	rm -f bootstrap-emacs${EXEEXT}
+	rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
 mostlyclean:
 	rm -f temacs${EXEEXT} prefix-args${EXEEXT} core *.core \#* *.o libXMenu11.a liblw.a
 	rm -f ../etc/DOC
-	rm -f bootstrap-emacs${EXEEXT}
+	rm -f bootstrap-emacs${EXEEXT} emacs-${version}${EXEEXT}
 	rm -f buildobj.lst
 clean: mostlyclean
 	rm -f emacs-*${EXEEXT} emacs${EXEEXT}
--- a/src/abbrev.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/abbrev.c	Thu Dec 07 04:14:14 2006 +0000
@@ -83,7 +83,7 @@
 
 Lisp_Object Vpre_abbrev_expand_hook, Qpre_abbrev_expand_hook;
 
-Lisp_Object Qsystem_type, Qcount;
+Lisp_Object Qsystem_type, Qcount, Qforce;
 
 DEFUN ("make-abbrev-table", Fmake_abbrev_table, Smake_abbrev_table, 0, 0, 0,
        doc: /* Create a new, empty abbrev table object.  */)
@@ -107,7 +107,7 @@
     XVECTOR (table)->contents[i] = make_number (0);
   return Qnil;
 }
-
+
 DEFUN ("define-abbrev", Fdefine_abbrev, Sdefine_abbrev, 3, 6, 0,
        doc: /* Define an abbrev in TABLE named NAME, to expand to EXPANSION and call HOOK.
 NAME must be a string.
@@ -123,7 +123,9 @@
 \(The default is zero.)
 
 SYSTEM-FLAG, if non-nil, says that this is a "system" abbreviation
-which should not be saved in the user's abbreviation file.  */)
+which should not be saved in the user's abbreviation file.
+Unless SYSTEM-FLAG is `force', a system abbreviation will not
+overwrite a non-system abbreviation of the same name.  */)
      (table, name, expansion, hook, count, system_flag)
      Lisp_Object table, name, expansion, hook, count, system_flag;
 {
@@ -131,6 +133,16 @@
   CHECK_VECTOR (table);
   CHECK_STRING (name);
 
+  /* If defining a system abbrev, do not overwrite a non-system abbrev
+     of the same name, unless 'force is used. */
+  if (!NILP (system_flag) && !EQ (system_flag, Qforce))
+    {
+      sym = Fintern_soft (name, table);
+
+      if (!NILP (SYMBOL_VALUE (sym)) &&
+          NILP (Fplist_get (XSYMBOL (sym)->plist, Qsystem_type))) return Qnil;
+    }
+
   if (NILP (count))
     count = make_number (0);
   else
@@ -646,6 +658,9 @@
   Qcount = intern ("count");
   staticpro (&Qcount);
 
+  Qforce = intern ("force");
+  staticpro (&Qforce);
+
   DEFVAR_LISP ("abbrev-table-name-list", &Vabbrev_table_name_list,
 	       doc: /* List of symbols whose values are abbrev tables.  */);
   Vabbrev_table_name_list = Fcons (intern ("fundamental-mode-abbrev-table"),
--- a/src/buffer.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/buffer.c	Thu Dec 07 04:14:14 2006 +0000
@@ -5934,8 +5934,8 @@
 location given by the integer.  Undoing an entry of this form places
 point at POSITION.
 
-nil marks undo boundaries.  The undo command treats the changes
-between two undo boundaries as a single step to be undone.
+Entries with value `nil' mark undo boundaries.  The undo command treats
+the changes between two undo boundaries as a single step to be undone.
 
 If the value of the variable is t, undo information is not recorded.  */);
 
--- a/src/config.in	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/config.in	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,7 @@
 /* src/config.in.  Generated from configure.in by autoheader.  */
 
 /* GNU Emacs site configuration template file.
-   Copyright (C) 1988, 1993, 1994, 1999, 2000, 2002, 2004, 2005, 2006
+   Copyright (C) 1988, 1993, 1994, 1999, 2000, 2001, 2002, 2004, 2005, 2006
              Free Software Foundation, Inc.
 
 This file is part of GNU Emacs.
@@ -577,6 +577,9 @@
 /* Define to 1 if `struct utimbuf' is declared by <utime.h>. */
 #undef HAVE_STRUCT_UTIMBUF
 
+/* Define to 1 if you have the `sync' function. */
+#undef HAVE_SYNC
+
 /* Define to 1 if you have the `sysinfo' function. */
 #undef HAVE_SYSINFO
 
@@ -700,6 +703,9 @@
 /* Define to 1 if you have the X11R6 or newer version of Xt. */
 #undef HAVE_X11XTR6
 
+/* Define to 1 if the file /usr/lib64 exists. */
+#undef HAVE_X86_64_LIB64_DIR
+
 /* Define to 1 if you have the Xaw3d library (-lXaw3d). */
 #undef HAVE_XAW3D
 
--- a/src/emacs.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/emacs.c	Thu Dec 07 04:14:14 2006 +0000
@@ -361,9 +361,9 @@
 #endif
 
 
-#ifdef SIGUSR1
+#if defined (SIGUSR1) || defined (SIGUSR2)
 SIGTYPE
-handle_USR1_signal (sig)
+handle_user_signal (sig)
      int sig;
 {
   struct input_event buf;
@@ -374,25 +374,10 @@
   buf.frame_or_window = selected_frame;
 
   kbd_buffer_store_event (&buf);
-}
-#endif /* SIGUSR1 */
-
-#ifdef SIGUSR2
-SIGTYPE
-handle_USR2_signal (sig)
-     int sig;
-{
-  struct input_event buf;
-
-  SIGNAL_THREAD_CHECK (sig);
-  bzero (&buf, sizeof buf);
-  buf.kind = USER_SIGNAL_EVENT;
-  buf.code = 1;
-  buf.frame_or_window = selected_frame;
-
+  buf.code = sig;
   kbd_buffer_store_event (&buf);
 }
-#endif /* SIGUSR2 */
+#endif
 
 /* Handle bus errors, invalid instruction, etc.  */
 SIGTYPE
@@ -1229,10 +1214,10 @@
       signal (SIGILL, fatal_error_signal);
       signal (SIGTRAP, fatal_error_signal);
 #ifdef SIGUSR1
-      signal (SIGUSR1, handle_USR1_signal);
+      signal (SIGUSR1, handle_user_signal);
+#endif
 #ifdef SIGUSR2
-      signal (SIGUSR2, handle_USR2_signal);
-#endif
+      signal (SIGUSR2, handle_user_signal);
 #endif
 #ifdef SIGABRT
       signal (SIGABRT, fatal_error_signal);
--- a/src/fileio.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/fileio.c	Thu Dec 07 04:14:14 2006 +0000
@@ -3546,11 +3546,7 @@
   return Qt;
 }
 
-#ifdef __NetBSD__
-#define unix 42
-#endif
-
-#ifdef unix
+#ifdef HAVE_SYNC
 DEFUN ("unix-sync", Funix_sync, Sunix_sync, 0, 0, "",
        doc: /* Tell Unix to finish all pending disk updates.  */)
      ()
@@ -3559,7 +3555,7 @@
   return Qnil;
 }
 
-#endif /* unix */
+#endif /* HAVE_SYNC */
 
 DEFUN ("file-newer-than-file-p", Ffile_newer_than_file_p, Sfile_newer_than_file_p, 2, 2, 0,
        doc: /* Return t if file FILE1 is newer than file FILE2.
@@ -6709,7 +6705,7 @@
   defsubr (&Sread_file_name);
   defsubr (&Snext_read_file_uses_dialog_p);
 
-#ifdef unix
+#ifdef HAVE_SYNC
   defsubr (&Sunix_sync);
 #endif
 }
--- a/src/fns.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/fns.c	Thu Dec 07 04:14:14 2006 +0000
@@ -150,13 +150,13 @@
   if (STRINGP (sequence))
     XSETFASTINT (val, SCHARS (sequence));
   else if (VECTORP (sequence))
-    XSETFASTINT (val, XVECTOR (sequence)->size);
+    XSETFASTINT (val, ASIZE (sequence));
   else if (CHAR_TABLE_P (sequence))
     XSETFASTINT (val, MAX_CHAR);
   else if (BOOL_VECTOR_P (sequence))
     XSETFASTINT (val, XBOOL_VECTOR (sequence)->size);
   else if (COMPILEDP (sequence))
-    XSETFASTINT (val, XVECTOR (sequence)->size & PSEUDOVECTOR_SIZE_MASK);
+    XSETFASTINT (val, ASIZE (sequence) & PSEUDOVECTOR_SIZE_MASK);
   else if (CONSP (sequence))
     {
       i = 0;
@@ -389,9 +389,9 @@
 /* "gcc -O3" enables automatic function inlining, which optimizes out
    the arguments for the invocations of this function, whereas it
    expects these values on the stack.  */
-static Lisp_Object concat () __attribute__((noinline));
+static Lisp_Object concat P_ ((int nargs, Lisp_Object *args, enum Lisp_Type target_type, int last_special)) __attribute__((noinline));
 #else  /* !__GNUC__ */
-static Lisp_Object concat ();
+static Lisp_Object concat P_ ((int nargs, Lisp_Object *args, enum Lisp_Type target_type, int last_special));
 #endif
 
 /* ARGSUSED */
@@ -576,7 +576,7 @@
 	  if (VECTORP (this))
 	    for (i = 0; i < len; i++)
 	      {
-		ch = XVECTOR (this)->contents[i];
+		ch = AREF (this, i);
 		CHECK_CHARACTER (ch);
 		this_len_byte = CHAR_BYTES (XINT (ch));
 		result_len_byte += this_len_byte;
@@ -727,7 +727,7 @@
 		thisindex++;
 	      }
 	    else
-	      elt = XVECTOR (this)->contents[thisindex++];
+	      elt = AREF (this, thisindex++);
 
 	    /* Store this element into the result.  */
 	    if (toindex < 0)
@@ -737,7 +737,7 @@
 		tail = XCDR (tail);
 	      }
 	    else if (VECTORP (val))
-	      XVECTOR (val)->contents[toindex++] = elt;
+	      AREF (val, toindex++) = elt;
 	    else
 	      {
 		CHECK_NUMBER (elt);
@@ -1180,7 +1180,7 @@
       size_byte = SBYTES (string);
     }
   else
-    size = XVECTOR (string)->size;
+    size = ASIZE (string);
 
   if (NILP (to))
     {
@@ -1218,8 +1218,7 @@
 			    string, make_number (0), res, Qnil);
     }
   else
-    res = Fvector (to_char - from_char,
-		   XVECTOR (string)->contents + from_char);
+    res = Fvector (to_char - from_char, &AREF (string, from_char));
 
   return res;
 }
@@ -1303,7 +1302,7 @@
       size_byte = SBYTES (string);
     }
   else
-    size = XVECTOR (string)->size;
+    size = ASIZE (string);
 
   if (!(0 <= from && from <= to && to <= size))
     args_out_of_range_3 (string, make_number (from), make_number (to));
@@ -1317,8 +1316,7 @@
 			    string, make_number (0), res, Qnil);
     }
   else
-    res = Fvector (to - from,
-		   XVECTOR (string)->contents + from);
+    res = Fvector (to - from, &AREF (string, from));
 
   return res;
 }
@@ -2180,11 +2178,11 @@
     case Lisp_Vectorlike:
       {
 	register int i;
-	EMACS_INT size = XVECTOR (o1)->size;
+	EMACS_INT size = ASIZE (o1);
 	/* Pseudovectors have the type encoded in the size field, so this test
 	   actually checks that the objects have the same type as well as the
 	   same size.  */
-	if (XVECTOR (o2)->size != size)
+	if (ASIZE (o2) != size)
 	  return 0;
 	/* Boolvectors are compared much like strings.  */
 	if (BOOL_VECTOR_P (o1))
@@ -2215,8 +2213,8 @@
 	for (i = 0; i < size; i++)
 	  {
 	    Lisp_Object v1, v2;
-	    v1 = XVECTOR (o1)->contents [i];
-	    v2 = XVECTOR (o2)->contents [i];
+	    v1 = AREF (o1, i);
+	    v2 = AREF (o2, i);
 	    if (!internal_equal (v1, v2, depth + 1, props))
 	      return 0;
 	  }
@@ -2257,7 +2255,7 @@
   if (VECTORP (array))
     {
       register Lisp_Object *p = XVECTOR (array)->contents;
-      size = XVECTOR (array)->size;
+      size = ASIZE (array);
       for (index = 0; index < size; index++)
 	p[index] = item;
     }
@@ -2422,14 +2420,14 @@
   else
     GCPRO2 (fn, seq);
   /* We need not explicitly protect `tail' because it is used only on lists, and
-    1) lists are not relocated and 2) the list is marked via `seq' so will not be freed */
+    1) lists are not relocated and 2) the list is marked via `seq' so will not
+    be freed */
 
   if (VECTORP (seq))
     {
       for (i = 0; i < leni; i++)
 	{
-	  dummy = XVECTOR (seq)->contents[i];
-	  dummy = call1 (fn, dummy);
+	  dummy = call1 (fn, AREF (seq, i));
 	  if (vals)
 	    vals[i] = dummy;
 	}
@@ -2440,11 +2438,7 @@
 	{
 	  int byte;
 	  byte = XBOOL_VECTOR (seq)->data[i / BOOL_VECTOR_BITS_PER_CHAR];
-	  if (byte & (1 << (i % BOOL_VECTOR_BITS_PER_CHAR)))
-	    dummy = Qt;
-	  else
-	    dummy = Qnil;
-
+	  dummy = (byte & (1 << (i % BOOL_VECTOR_BITS_PER_CHAR))) ? Qt : Qnil;
 	  dummy = call1 (fn, dummy);
 	  if (vals)
 	    vals[i] = dummy;
@@ -3757,7 +3751,7 @@
   int i, old_size;
 
   xassert (VECTORP (vec));
-  old_size = XVECTOR (vec)->size;
+  old_size = ASIZE (vec);
   xassert (new_size >= old_size);
 
   v = allocate_vector (new_size);
@@ -4089,7 +4083,7 @@
 	if (!NILP (HASH_HASH (h, i)))
 	  {
 	    unsigned hash_code = XUINT (HASH_HASH (h, i));
-	    int start_of_bucket = hash_code % XVECTOR (h->index)->size;
+	    int start_of_bucket = hash_code % ASIZE (h->index);
 	    HASH_NEXT (h, i) = HASH_INDEX (h, start_of_bucket);
 	    HASH_INDEX (h, start_of_bucket) = make_number (i);
 	  }
@@ -4115,7 +4109,7 @@
   if (hash)
     *hash = hash_code;
 
-  start_of_bucket = hash_code % XVECTOR (h->index)->size;
+  start_of_bucket = hash_code % ASIZE (h->index);
   idx = HASH_INDEX (h, start_of_bucket);
 
   /* We need not gcpro idx since it's either an integer or nil.  */
@@ -4162,7 +4156,7 @@
   HASH_HASH (h, i) = make_number (hash);
 
   /* Add new entry to its collision chain.  */
-  start_of_bucket = hash % XVECTOR (h->index)->size;
+  start_of_bucket = hash % ASIZE (h->index);
   HASH_NEXT (h, i) = HASH_INDEX (h, start_of_bucket);
   HASH_INDEX (h, start_of_bucket) = make_number (i);
   return i;
@@ -4181,7 +4175,7 @@
   Lisp_Object idx, prev;
 
   hash_code = h->hashfn (h, key);
-  start_of_bucket = hash_code % XVECTOR (h->index)->size;
+  start_of_bucket = hash_code % ASIZE (h->index);
   idx = HASH_INDEX (h, start_of_bucket);
   prev = Qnil;
 
@@ -4237,8 +4231,8 @@
 	  HASH_HASH (h, i) = Qnil;
 	}
 
-      for (i = 0; i < XVECTOR (h->index)->size; ++i)
-	XVECTOR (h->index)->contents[i] = Qnil;
+      for (i = 0; i < ASIZE (h->index); ++i)
+	AREF (h->index, i) = Qnil;
 
       h->next_free = make_number (0);
       h->count = make_number (0);
@@ -4263,7 +4257,7 @@
 {
   int bucket, n, marked;
 
-  n = XVECTOR (h->index)->size & ~ARRAY_MARK_FLAG;
+  n = ASIZE (h->index) & ~ARRAY_MARK_FLAG;
   marked = 0;
 
   for (bucket = 0; bucket < n; ++bucket)
@@ -4477,13 +4471,13 @@
      Lisp_Object vec;
      int depth;
 {
-  unsigned hash = XVECTOR (vec)->size;
+  unsigned hash = ASIZE (vec);
   int i, n;
 
-  n = min (SXHASH_MAX_LEN, XVECTOR (vec)->size);
+  n = min (SXHASH_MAX_LEN, ASIZE (vec));
   for (i = 0; i < n; ++i)
     {
-      unsigned hash2 = sxhash (XVECTOR (vec)->contents[i], depth + 1);
+      unsigned hash2 = sxhash (AREF (vec, i), depth + 1);
       hash = SXHASH_COMBINE (hash, hash2);
     }
 
--- a/src/gtkutil.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/gtkutil.c	Thu Dec 07 04:14:14 2006 +0000
@@ -3684,6 +3684,9 @@
       struct image *img;
       Lisp_Object image;
       GtkWidget *wicon = iter ? GTK_WIDGET (iter->data) : 0;
+      GtkToolItem *ti = NULL;
+      GtkWidget *wvbox;
+      GList *chlist;
 
       if (iter) iter = g_list_next (iter);
 
@@ -3723,22 +3726,40 @@
           if (wicon)
 	    gtk_widget_hide (wicon);
 	  else
+            /* Insert an empty (non-image) button */
 	    gtk_toolbar_insert (GTK_TOOLBAR (x->toolbar_widget),
 				gtk_tool_button_new (NULL, ""),
 				i);
           continue;
         }
 
-      if (! wicon)
+      if (wicon)
+        {
+          /* The child of the tool bar is a button.  Inside that button
+             is a vbox.  Inside that vbox is the GtkImage.  */
+          wvbox = gtk_bin_get_child (GTK_BIN (wicon));
+          chlist = gtk_container_get_children (GTK_CONTAINER (wvbox));
+          if (chlist == NULL)
+            /* In this case, we inserted an empty button (above) with no image */
+            ti = GTK_TOOL_ITEM (wicon);
+        }
+
+      if (! wicon || ti != NULL)
         {
           GtkWidget *w = xg_get_image_for_pixmap (f, img, x->widget, NULL);
-          GtkToolItem *ti = gtk_tool_button_new (w, "");
-
           gtk_misc_set_padding (GTK_MISC (w), hmargin, vmargin);
 
-          gtk_toolbar_insert (GTK_TOOLBAR (x->toolbar_widget),
-                              ti,
-                              i);
+
+          if (ti == NULL)
+            {
+              ti = gtk_tool_button_new (w, "");
+
+              gtk_toolbar_insert (GTK_TOOLBAR (x->toolbar_widget), ti, i);
+            }
+          else
+            gtk_tool_button_set_icon_widget (GTK_TOOL_BUTTON (ti), w);
+
+
           /* The EMACS_INT cast avoids a warning. */
           g_signal_connect (GTK_WIDGET (ti), "clicked",
                             GTK_SIGNAL_FUNC (xg_tool_bar_callback),
--- a/src/keyboard.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/keyboard.c	Thu Dec 07 04:14:14 2006 +0000
@@ -3784,7 +3784,8 @@
   if (!NILP (Vthrow_on_input)
       && event->kind != FOCUS_IN_EVENT
       && event->kind != HELP_EVENT
-      && event->kind != DEICONIFY_EVENT)
+      && event->kind != DEICONIFY_EVENT
+      && !(event->kind == USER_SIGNAL_EVENT && event->code == 0))
     {
       Vquit_flag = Vthrow_on_input;
       /* If we're inside a function that wants immediate quits,
@@ -5073,13 +5074,7 @@
 };
 
 /* User signal events.  */
-Lisp_Object Qusr1_signal, Qusr2_signal;
-
-Lisp_Object *lispy_user_signals[] =
-{
-  &Qusr1_signal, &Qusr2_signal
-};
-
+Lisp_Object Qsignal;
 
 /* A vector, indexed by button number, giving the down-going location
    of currently depressed buttons, both scroll bar and non-scroll bar.
@@ -5706,7 +5701,7 @@
 	position = make_lispy_position (f, &event->x, &event->y,
 					event->timestamp);
 
-	/* Set double or triple modifiers to indicate the wheel speed.	*/
+	/* Set double or triple modifiers to indicate the wheel speed.  */
 	{
 	  /* On window-system frames, use the value of
 	     double-click-fuzz as is.  On other frames, interpret it
@@ -5760,7 +5755,7 @@
 
 	  if (event->modifiers & up_modifier)
 	    {
-	      /* Emit a wheel-up event.	 */
+	      /* Emit a wheel-up event.  */
 	      event->modifiers &= ~up_modifier;
 	      symbol_num = 0;
 	    }
@@ -5775,7 +5770,7 @@
 	       the up_modifier set.  */
 	    abort ();
 
-	  /* Get the symbol we should use for the wheel event.	*/
+	  /* Get the symbol we should use for the wheel event.  */
 	  head = modify_event_symbol (symbol_num,
 				      event->modifiers,
 				      Qmouse_click,
@@ -5953,7 +5948,21 @@
 
     case USER_SIGNAL_EVENT:
       /* A user signal.  */
-      return *lispy_user_signals[event->code];
+      switch (event->code)
+	{
+	case 0:
+	  return Qsignal;
+#ifdef SIGUSR1
+	case SIGUSR1:
+	  return intern ("usr1");
+#endif
+#ifdef SIGUSR2
+	case SIGUSR2:
+	  return intern ("usr2");
+#endif
+	default:
+	  return make_number (event->code);
+	}
 
     case SAVE_SESSION_EVENT:
       return Qsave_session;
@@ -11025,10 +11034,8 @@
   staticpro (&Qmac_apple_event);
 #endif
 
-  Qusr1_signal = intern ("usr1-signal");
-  staticpro (&Qusr1_signal);
-  Qusr2_signal = intern ("usr2-signal");
-  staticpro (&Qusr2_signal);
+  Qsignal = intern ("signal");
+  staticpro (&Qsignal);
 
   Qmenu_enable = intern ("menu-enable");
   staticpro (&Qmenu_enable);
--- a/src/m/amdx86-64.h	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/m/amdx86-64.h	Thu Dec 07 04:14:14 2006 +0000
@@ -128,7 +128,11 @@
 #else /* !__OpenBSD__ && !__FreeBSD__ */
 
 #undef START_FILES
+#ifdef HAVE_X86_64_LIB64_DIR
 #define START_FILES pre-crt0.o /usr/lib64/crt1.o /usr/lib64/crti.o
+#else
+#define START_FILES pre-crt0.o /usr/lib/crt1.o /usr/lib/crti.o
+#endif
 
 /* The duplicate -lgcc is intentional in the definition of LIB_STANDARD.
    The reason is that some functions in libgcc.a call functions from libc.a,
@@ -136,7 +140,11 @@
    versions of ld are one-pass linkers, we need to mention -lgcc twice,
    or else we risk getting unresolved externals.  */
 #undef LIB_STANDARD
+#ifdef HAVE_X86_64_LIB64_DIR
 #define LIB_STANDARD -lgcc -lc -lgcc /usr/lib64/crtn.o
+#else
+#define LIB_STANDARD -lgcc -lc -lgcc /usr/lib/crtn.o
+#endif
 
 #endif /* __FreeBSD__ */
 
--- a/src/m/ibmrs6000.h	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/m/ibmrs6000.h	Thu Dec 07 04:14:14 2006 +0000
@@ -44,7 +44,7 @@
 #define IBMR2AIX
 
 /* Use type int rather than a union, to represent Lisp_Object */
-/* This is desirable for most machines.	 */
+/* This is desirable for most machines.  */
 
 #define NO_UNION_TYPE
 
@@ -72,7 +72,7 @@
 
 /* The data segment in this machine always starts at address 0x20000000.
    An address of data cannot be stored correctly in a Lisp object;
-   we always lose the high bits.  We must tell XPNTR to add them back.	*/
+   we always lose the high bits.  We must tell XPNTR to add them back.  */
 
 #ifndef USG5_4
 #define DATA_SEG_BITS 0x20000000
@@ -86,7 +86,7 @@
 #define PURE_SEG_BITS 0x30000000
 
 /* Use shared memory.  */
-/* This is turned off because it does not always work.	See etc/AIX.DUMP.  */
+/* This is turned off because it does not always work.  See etc/AIX.DUMP.  */
 /* #define HAVE_SHM */
 #define SHMKEY 5305035		/* used for shared memory code segments */
 #endif /* CANNOT_DUMP */
--- a/src/m/pfa50.h	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/m/pfa50.h	Thu Dec 07 04:14:14 2006 +0000
@@ -50,7 +50,7 @@
 #define NO_REMAP
 
 /* Define TEXT_START_ADDR if your linker don't set execute point to _start.
-   If it needed, temacs always CORE-DUMP.	*/
+   If it needed, temacs always CORE-DUMP.  */
 
 #define TEXT_START_ADDR __start
 
--- a/src/msdos.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/msdos.c	Thu Dec 07 04:14:14 2006 +0000
@@ -2639,7 +2639,7 @@
 #define Ctrl	0x0200	/* ctrl scan-code */
 #define Shift	0x0400	/* shift scan-code */
 
-static int extended_kbd; /* 101 (102) keyboard present.	*/
+static int extended_kbd; /* 101 (102) keyboard present. */
 
 struct kbd_translate {
   unsigned char  sc;
--- a/src/process.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/process.c	Thu Dec 07 04:14:14 2006 +0000
@@ -149,7 +149,8 @@
 #include "atimer.h"
 
 Lisp_Object Qprocessp;
-Lisp_Object Qrun, Qstop, Qsignal;
+Lisp_Object Qrun, Qstop;
+extern Lisp_Object Qsignal;
 Lisp_Object Qopen, Qclosed, Qconnect, Qfailed, Qlisten;
 Lisp_Object Qlocal, Qipv4, Qdatagram;
 #ifdef AF_INET6
@@ -6127,8 +6128,8 @@
 
  got_it:
 
-#define handle_signal(NAME, VALUE)		\
-  else if (!strcmp (name, NAME))		\
+#define parse_signal(NAME, VALUE)		\
+  else if (!strcasecmp (name, NAME))		\
     XSETINT (sigcode, VALUE)
 
   if (INTEGERP (sigcode))
@@ -6140,106 +6141,106 @@
       CHECK_SYMBOL (sigcode);
       name = SDATA (SYMBOL_NAME (sigcode));
 
-      if (!strncmp(name, "SIG", 3))
+      if (!strncasecmp(name, "sig", 3))
 	name += 3;
 
       if (0)
 	;
+#ifdef SIGUSR1
+      parse_signal ("usr1", SIGUSR1);
+#endif
+#ifdef SIGUSR2
+      parse_signal ("usr2", SIGUSR2);
+#endif
+#ifdef SIGTERM
+      parse_signal ("term", SIGTERM);
+#endif
 #ifdef SIGHUP
-      handle_signal ("HUP", SIGHUP);
+      parse_signal ("hup", SIGHUP);
 #endif
 #ifdef SIGINT
-      handle_signal ("INT", SIGINT);
+      parse_signal ("int", SIGINT);
 #endif
 #ifdef SIGQUIT
-      handle_signal ("QUIT", SIGQUIT);
+      parse_signal ("quit", SIGQUIT);
 #endif
 #ifdef SIGILL
-      handle_signal ("ILL", SIGILL);
+      parse_signal ("ill", SIGILL);
 #endif
 #ifdef SIGABRT
-      handle_signal ("ABRT", SIGABRT);
+      parse_signal ("abrt", SIGABRT);
 #endif
 #ifdef SIGEMT
-      handle_signal ("EMT", SIGEMT);
+      parse_signal ("emt", SIGEMT);
 #endif
 #ifdef SIGKILL
-      handle_signal ("KILL", SIGKILL);
+      parse_signal ("kill", SIGKILL);
 #endif
 #ifdef SIGFPE
-      handle_signal ("FPE", SIGFPE);
+      parse_signal ("fpe", SIGFPE);
 #endif
 #ifdef SIGBUS
-      handle_signal ("BUS", SIGBUS);
+      parse_signal ("bus", SIGBUS);
 #endif
 #ifdef SIGSEGV
-      handle_signal ("SEGV", SIGSEGV);
+      parse_signal ("segv", SIGSEGV);
 #endif
 #ifdef SIGSYS
-      handle_signal ("SYS", SIGSYS);
+      parse_signal ("sys", SIGSYS);
 #endif
 #ifdef SIGPIPE
-      handle_signal ("PIPE", SIGPIPE);
+      parse_signal ("pipe", SIGPIPE);
 #endif
 #ifdef SIGALRM
-      handle_signal ("ALRM", SIGALRM);
-#endif
-#ifdef SIGTERM
-      handle_signal ("TERM", SIGTERM);
+      parse_signal ("alrm", SIGALRM);
 #endif
 #ifdef SIGURG
-      handle_signal ("URG", SIGURG);
+      parse_signal ("urg", SIGURG);
 #endif
 #ifdef SIGSTOP
-      handle_signal ("STOP", SIGSTOP);
+      parse_signal ("stop", SIGSTOP);
 #endif
 #ifdef SIGTSTP
-      handle_signal ("TSTP", SIGTSTP);
+      parse_signal ("tstp", SIGTSTP);
 #endif
 #ifdef SIGCONT
-      handle_signal ("CONT", SIGCONT);
+      parse_signal ("cont", SIGCONT);
 #endif
 #ifdef SIGCHLD
-      handle_signal ("CHLD", SIGCHLD);
+      parse_signal ("chld", SIGCHLD);
 #endif
 #ifdef SIGTTIN
-      handle_signal ("TTIN", SIGTTIN);
+      parse_signal ("ttin", SIGTTIN);
 #endif
 #ifdef SIGTTOU
-      handle_signal ("TTOU", SIGTTOU);
+      parse_signal ("ttou", SIGTTOU);
 #endif
 #ifdef SIGIO
-      handle_signal ("IO", SIGIO);
+      parse_signal ("io", SIGIO);
 #endif
 #ifdef SIGXCPU
-      handle_signal ("XCPU", SIGXCPU);
+      parse_signal ("xcpu", SIGXCPU);
 #endif
 #ifdef SIGXFSZ
-      handle_signal ("XFSZ", SIGXFSZ);
+      parse_signal ("xfsz", SIGXFSZ);
 #endif
 #ifdef SIGVTALRM
-      handle_signal ("VTALRM", SIGVTALRM);
+      parse_signal ("vtalrm", SIGVTALRM);
 #endif
 #ifdef SIGPROF
-      handle_signal ("PROF", SIGPROF);
+      parse_signal ("prof", SIGPROF);
 #endif
 #ifdef SIGWINCH
-      handle_signal ("WINCH", SIGWINCH);
+      parse_signal ("winch", SIGWINCH);
 #endif
 #ifdef SIGINFO
-      handle_signal ("INFO", SIGINFO);
-#endif
-#ifdef SIGUSR1
-      handle_signal ("USR1", SIGUSR1);
-#endif
-#ifdef SIGUSR2
-      handle_signal ("USR2", SIGUSR2);
+      parse_signal ("info", SIGINFO);
 #endif
       else
 	error ("Undefined signal name %s", name);
     }
 
-#undef handle_signal
+#undef parse_signal
 
   return make_number (kill (pid, XINT (sigcode)));
 }
@@ -6985,8 +6986,6 @@
   staticpro (&Qrun);
   Qstop = intern ("stop");
   staticpro (&Qstop);
-  Qsignal = intern ("signal");
-  staticpro (&Qsignal);
 
   /* Qexit is already staticpro'd by syms_of_eval; don't staticpro it
      here again.
--- a/src/regex.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/regex.c	Thu Dec 07 04:14:14 2006 +0000
@@ -12,13 +12,13 @@
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
-   USA.	 */
+   USA.  */
 
 /* TODO:
    - structure the opcode space into opcode+flag.
@@ -139,7 +139,7 @@
 # endif
 # define free xfree
 
-/* Converts the pointer to the char to BEG-based offset from the start.	 */
+/* Converts the pointer to the char to BEG-based offset from the start.  */
 # define PTR_TO_OFFSET(d) POS_AS_IN_BUFFER (POINTER_TO_OFFSET (d))
 # define POS_AS_IN_BUFFER(p) ((p) + (NILP (re_match_object) || BUFFERP (re_match_object)))
 
@@ -565,7 +565,7 @@
 
 #  define REGEX_REALLOCATE_STACK(source, osize, nsize)			\
    REGEX_REALLOCATE (source, osize, nsize)
-/* No need to explicitly free anything.	 */
+/* No need to explicitly free anything.  */
 #  define REGEX_FREE_STACK(arg) ((void)0)
 
 # endif /* not REGEX_MALLOC */
@@ -679,7 +679,7 @@
   jump,
 
 	/* Followed by two-byte relative address of place to resume at
-	   in case of failure.	*/
+	   in case of failure.  */
   on_failure_jump,
 
 	/* Like on_failure_jump, but pushes a placeholder instead of the
@@ -716,7 +716,7 @@
   jump_n,
 
 	/* Set the following two-byte relative address to the
-	   subsequent two-byte number.	The address *includes* the two
+	   subsequent two-byte number.  The address *includes* the two
 	   bytes of number.  */
   set_number_at,
 
@@ -724,7 +724,7 @@
   wordend,	/* Succeeds if at word end.  */
 
   wordbound,	/* Succeeds if at a word boundary.  */
-  notwordbound,	/* Succeeds if not at a word boundary.	*/
+  notwordbound,	/* Succeeds if not at a word boundary.  */
 
   symbeg,       /* Succeeds if at symbol beginning.  */
   symend,       /* Succeeds if at symbol end.  */
@@ -742,8 +742,8 @@
   after_dot,	/* Succeeds if after point.  */
 
   /* Matches any character whose category-set contains the specified
-     category.	The operator is followed by a byte which contains a
-     category code (mnemonic ASCII character).	*/
+     category.  The operator is followed by a byte which contains a
+     category code (mnemonic ASCII character).  */
   categoryspec,
 
   /* Matches any character whose category-set does not contain the
@@ -832,7 +832,7 @@
 
 /* Store a multibyte character in three contiguous bytes starting
    DESTINATION, and increment DESTINATION to the byte after where the
-   character is stored.	 Therefore, DESTINATION must be an lvalue.  */
+   character is stored.  Therefore, DESTINATION must be an lvalue.  */
 
 #define STORE_CHARACTER_AND_INCR(destination, character)	\
   do {								\
@@ -843,7 +843,7 @@
   } while (0)
 
 /* Put into DESTINATION a character stored in three contiguous bytes
-   starting at SOURCE.	*/
+   starting at SOURCE.  */
 
 #define EXTRACT_CHARACTER(destination, source)	\
   do {						\
@@ -879,13 +879,13 @@
    && (p)[2 + (c) / BYTEWIDTH] & (1 << ((c) % BYTEWIDTH)))
 
 /* Return the address of end of RANGE_TABLE.  COUNT is number of
-   ranges (which is a pair of (start, end)) in the RANGE_TABLE.	 `* 2'
-   is start of range and end of range.	`* 3' is size of each start
+   ranges (which is a pair of (start, end)) in the RANGE_TABLE.  `* 2'
+   is start of range and end of range.  `* 3' is size of each start
    and end.  */
 #define CHARSET_RANGE_TABLE_END(range_table, count)	\
   ((range_table) + (count) * 2 * 3)
 
-/* Test if C is in RANGE_TABLE.	 A flag NOT is negated if C is in.
+/* Test if C is in RANGE_TABLE.  A flag NOT is negated if C is in.
    COUNT is number of ranges in RANGE_TABLE.  */
 #define CHARSET_LOOKUP_RANGE_TABLE_RAW(not, c, range_table, count)	\
   do									\
@@ -1692,7 +1692,7 @@
      REGSTART, REGEND -- arrays of string positions.
 
    Also assumes the variables `fail_stack' and (if debugging), `bufp',
-   `pend', `string1', `size1', `string2', and `size2'.	*/
+   `pend', `string1', `size1', `string2', and `size2'.  */
 
 #define POP_FAILURE_POINT(str, pat)                                     \
 do {									\
@@ -1961,7 +1961,7 @@
 {
   int *table;			/* actual work area.  */
   int allocated;		/* allocated size for work area in bytes.  */
-  int used;			/* actually used size in words.	 */
+  int used;			/* actually used size in words.  */
   int bits;			/* flag to record character classes */
 };
 
@@ -2000,7 +2000,7 @@
     (work_area).table[(work_area).used++] = (range_end);		\
   } while (0)
 
-/* Free allocated memory for WORK_AREA.	 */
+/* Free allocated memory for WORK_AREA.  */
 #define FREE_RANGE_TABLE_WORK_AREA(work_area)	\
   do {						\
     if ((work_area).table)			\
@@ -2534,7 +2534,7 @@
   re_char *beg_interval;
 
   /* Address of the place where a forward jump should go to the end of
-     the containing expression.	 Each alternative of an `or' -- except the
+     the containing expression.  Each alternative of an `or' -- except the
      last -- ends with a forward jump of this sort.  */
   unsigned char *fixup_alt_jump = 0;
 
@@ -2609,11 +2609,11 @@
       if (bufp->buffer)
 	{ /* If zero allocated, but buffer is non-null, try to realloc
 	     enough space.  This loses if buffer's address is bogus, but
-	     that is the user's responsibility.	 */
+	     that is the user's responsibility.  */
 	  RETALLOC (bufp->buffer, INIT_BUF_SIZE, unsigned char);
 	}
       else
-	{ /* Caller did not allocate a buffer.	Do it for them.	 */
+	{ /* Caller did not allocate a buffer.  Do it for them.  */
 	  bufp->buffer = TALLOC (INIT_BUF_SIZE, unsigned char);
 	}
       if (!bufp->buffer) FREE_STACK_RETURN (REG_ESPACE);
@@ -2677,15 +2677,15 @@
 	    p = pattern = whitespace_regexp;
 	    pend = p + strlen (p);
 	    break;
-	  }    
+	  }
 
 	case '^':
 	  {
-	    if (   /* If at start of pattern, it's an operator.	 */
+	    if (   /* If at start of pattern, it's an operator.  */
 		   p == pattern + 1
-		   /* If context independent, it's an operator.	 */
+		   /* If context independent, it's an operator.  */
 		|| syntax & RE_CONTEXT_INDEP_ANCHORS
-		   /* Otherwise, depends on what's come before.	 */
+		   /* Otherwise, depends on what's come before.  */
 		|| at_begline_loc_p (pattern, p, syntax))
 	      BUF_PUSH ((syntax & RE_NO_NEWLINE_ANCHOR) ? begbuf : begline);
 	    else
@@ -2698,7 +2698,7 @@
 	  {
 	    if (   /* If at end of pattern, it's an operator.  */
 		   p == pend
-		   /* If context independent, it's an operator.	 */
+		   /* If context independent, it's an operator.  */
 		|| syntax & RE_CONTEXT_INDEP_ANCHORS
 		   /* Otherwise, depends on what's next.  */
 		|| at_endline_loc_p (p, pend, syntax))
@@ -2726,14 +2726,14 @@
 	    }
 
 	  {
-	    /* 1 means zero (many) matches is allowed.	*/
+	    /* 1 means zero (many) matches is allowed.  */
 	    boolean zero_times_ok = 0, many_times_ok = 0;
 	    boolean greedy = 1;
 
 	    /* If there is a sequence of repetition chars, collapse it
 	       down to just one (the right one).  We can't combine
 	       interval operators with these because of, e.g., `a{2}*',
-	       which should only match an even number of `a's.	*/
+	       which should only match an even number of `a's.  */
 
 	    for (;;)
 	      {
@@ -2773,7 +2773,7 @@
 	      break;
 
 	    /* Now we know whether or not zero matches is allowed
-	       and also whether or not two or more matches is allowed.	*/
+	       and also whether or not two or more matches is allowed.  */
 	    if (greedy)
 	      {
 		if (many_times_ok)
@@ -2880,7 +2880,7 @@
 	    laststart = b;
 
 	    /* We test `*p == '^' twice, instead of using an if
-	       statement, so we only need one BUF_PUSH.	 */
+	       statement, so we only need one BUF_PUSH.  */
 	    BUF_PUSH (*p == '^' ? charset_not : charset);
 	    if (*p == '^')
 	      p++;
@@ -2888,7 +2888,7 @@
 	    /* Remember the first position in the bracket expression.  */
 	    p1 = p;
 
-	    /* Push the number of bytes in the bitmap.	*/
+	    /* Push the number of bytes in the bitmap.  */
 	    BUF_PUSH ((1 << BYTEWIDTH) / BYTEWIDTH);
 
 	    /* Clear the whole map.  */
@@ -2899,7 +2899,7 @@
 		&& (syntax & RE_HAT_LISTS_NOT_NEWLINE))
 	      SET_LIST_BIT ('\n');
 
-	    /* Read in characters and ranges, setting map bits.	 */
+	    /* Read in characters and ranges, setting map bits.  */
 	    for (;;)
 	      {
 		boolean escaped_char = false;
@@ -2923,7 +2923,7 @@
 		  }
 		else
 		  {
-		    /* Could be the end of the bracket expression.	If it's
+		    /* Could be the end of the bracket expression.  If it's
 		       not (i.e., when the bracket expression is `[]' so
 		       far), the ']' character bit gets set way below.  */
 		    if (c == ']' && p2 != p1)
@@ -2936,7 +2936,7 @@
 		if (!escaped_char &&
 		    syntax & RE_CHAR_CLASSES && c == '[' && *p == ':')
 		  {
-		    /* Leave room for the null.	 */
+		    /* Leave room for the null.  */
 		    unsigned char str[CHAR_CLASS_MAX_LENGTH + 1];
 		    const unsigned char *class_beg;
 
@@ -3034,7 +3034,7 @@
 
 			/* Because the `:' may starts the range, we
 			   can't simply set bit and repeat the loop.
-			   Instead, just set it to C and handle below.	*/
+			   Instead, just set it to C and handle below.  */
 			c = ':';
 		      }
 		  }
@@ -3095,7 +3095,7 @@
 	      }
 
 	    /* Discard any (non)matching list bytes that are all 0 at the
-	       end of the map.	Decrease the map-length byte too.  */
+	       end of the map.  Decrease the map-length byte too.  */
 	    while ((int) b[-1] > 0 && b[b[-1] - 1] == 0)
 	      b[-1]--;
 	    b += b[-1];
@@ -3214,7 +3214,7 @@
 		  }
 
 		/* These are the values to restore when we hit end of this
-		   group.	 They are all relative offsets, so that if the
+		   group.  They are all relative offsets, so that if the
 		   whole pattern moves because of realloc, they will still
 		   be valid.  */
 		COMPILE_STACK_TOP.begalt_offset = begalt - bufp->buffer;
@@ -3270,7 +3270,7 @@
 	      {
 		/* We don't just want to restore into `regnum', because
 		   later groups should continue to be numbered higher,
-		   as in `(ab)c(de)' -- the second group is #2.	 */
+		   as in `(ab)c(de)' -- the second group is #2.  */
 		regnum_t this_group_regnum;
 
 		compile_stack.avail--;
@@ -3287,7 +3287,7 @@
 		pending_exact = 0;
 
 		/* We're at the end of the group, so now we know how many
-		   groups were inside this one.	 */
+		   groups were inside this one.  */
 		if (this_group_regnum <= MAX_REGNUM && this_group_regnum > 0)
 		  BUF_PUSH_2 (stop_memory, this_group_regnum);
 	      }
@@ -3302,7 +3302,7 @@
 		goto normal_char;
 
 	      /* Insert before the previous alternative a jump which
-		 jumps to this alternative if the former fails.	 */
+		 jumps to this alternative if the former fails.  */
 	      GET_BUFFER_SPACE (3);
 	      INSERT_JUMP (on_failure_jump, begalt, b + 6);
 	      pending_exact = 0;
@@ -3439,7 +3439,7 @@
 			b += 5;
 
 			/* Code to initialize the lower bound.  Insert
-			   before the `succeed_n'.	 The `5' is the last two
+			   before the `succeed_n'.  The `5' is the last two
 			   bytes of this `set_number_at', plus 3 bytes of
 			   the following `succeed_n'.  */
 			insert_op2 (set_number_at, laststart, 5, lower_bound, b);
@@ -3509,7 +3509,7 @@
 
 #ifdef emacs
 	    /* There is no way to specify the before_dot and after_dot
-	       operators.  rms says this is ok.	 --karl	 */
+	       operators.  rms says this is ok.  --karl  */
 	    case '=':
 	      BUF_PUSH (at_dot);
 	      break;
@@ -3654,7 +3654,7 @@
 	      /* We have only one byte following the exactn for the count.  */
 	      || *pending_exact >= (1 << BYTEWIDTH) - MAX_MULTIBYTE_LENGTH
 
-	      /* If followed by a repetition operator.	*/
+	      /* If followed by a repetition operator.  */
 	      || (p != pend && (*p == '*' || *p == '^'))
 	      || ((syntax & RE_BK_PLUS_QM)
 		  ? p + 1 < pend && *p == '\\' && (p[1] == '+' || p[1] == '?')
@@ -3759,7 +3759,7 @@
 
 /* Subroutines for `regex_compile'.  */
 
-/* Store OP at LOC followed by two-byte integer parameter ARG.	*/
+/* Store OP at LOC followed by two-byte integer parameter ARG.  */
 
 static void
 store_op1 (op, loc, arg)
@@ -3911,7 +3911,7 @@
   boolean not;
 
   /* If all elements for base leading-codes in fastmap is set, this
-     flag is set true.	*/
+     flag is set true.  */
   boolean match_any_multibyte_characters = false;
 
   assert (p);
@@ -3959,7 +3959,7 @@
 
 
       /* Following are the cases which match a character.  These end
-	 with `break'.	*/
+	 with `break'.  */
 
 	case exactn:
 	  if (fastmap)
@@ -4180,7 +4180,7 @@
 
       /* Getting here means we have found the possible starting
 	 characters for one path of the pattern -- and that the empty
-	 string does not match.	 We need not follow this path further.  */
+	 string does not match.  We need not follow this path further.  */
       return 0;
     } /* while p */
 
@@ -4215,7 +4215,7 @@
 
   assert (fastmap && bufp->buffer);
 
-  bzero (fastmap, 1 << BYTEWIDTH);  /* Assume nothing's valid.	*/
+  bzero (fastmap, 1 << BYTEWIDTH);  /* Assume nothing's valid.  */
   bufp->fastmap_accurate = 1;	    /* It will be when we're done.  */
 
   analysis = analyse_first (bufp->buffer, bufp->buffer + bufp->used,
@@ -4260,7 +4260,7 @@
 }
 WEAK_ALIAS (__re_set_registers, re_set_registers)
 
-/* Searching routines.	*/
+/* Searching routines.  */
 
 /* Like re_search_2, below, but only one string is specified, and
    doesn't let you say where to stop matching. */
@@ -4399,7 +4399,7 @@
       /* If a fastmap is supplied, skip quickly over characters that
 	 cannot be the start of a match.  If the pattern can match the
 	 null string, however, we don't need to skip characters; we want
-	 the first null string.	 */
+	 the first null string.  */
       if (fastmap && startpos < total_size && !bufp->can_be_null)
 	{
 	  register re_char *d;
@@ -4407,7 +4407,7 @@
 
 	  d = POS_ADDR_VSTRING (startpos);
 
-	  if (range > 0)	/* Searching forwards.	*/
+	  if (range > 0)	/* Searching forwards.  */
 	    {
 	      register int lim = 0;
 	      int irange = range;
@@ -4469,7 +4469,7 @@
 		}
 	      startpos += irange - range;
 	    }
-	  else				/* Searching backwards.	 */
+	  else				/* Searching backwards.  */
 	    {
 	      int room = (startpos >= size1
 			  ? size2 + size1 - startpos
@@ -4598,7 +4598,7 @@
      }									\
 
 /* Test if at very beginning or at very end of the virtual concatenation
-   of `string1' and `string2'.	If only one string, it's `string2'.  */
+   of `string1' and `string2'.  If only one string, it's `string2'.  */
 #define AT_STRINGS_BEG(d) ((d) == (size1 ? string1 : string2) || !size2)
 #define AT_STRINGS_END(d) ((d) == end2)
 
@@ -4619,7 +4619,7 @@
 
    The DEC Alpha C compiler 3.x generates incorrect code for the
    test	 WORDCHAR_P (d - 1) != WORDCHAR_P (d)  in the expansion of
-   AT_WORD_BOUNDARY, so this code is disabled.	Expanding the
+   AT_WORD_BOUNDARY, so this code is disabled.  Expanding the
    macro and introducing temporary variables works around the bug.  */
 
 #if 0
@@ -4821,7 +4821,7 @@
 	{
 	  /* Now, we are sure that P2 has no range table.
 	     So, for the size of bitmap in P2, `p2[1]' is
-	     enough.	But P1 may have range table, so the
+	     enough.  But P1 may have range table, so the
 	     size of bitmap table of P1 is extracted by
 	     using macro `CHARSET_BITMAP_SIZE'.
 
@@ -4853,7 +4853,7 @@
 	    {
 	      int idx;
 	      /* We win if the charset_not inside the loop lists
-		 every character listed in the charset after.	 */
+		 every character listed in the charset after.  */
 	      for (idx = 0; idx < (int) p2[1]; idx++)
 		if (! (p2[2 + idx] == 0
 		       || (idx < CHARSET_BITMAP_SIZE (p1)
@@ -4947,7 +4947,7 @@
 
 #ifdef emacs
 /* In Emacs, this is the string or buffer in which we
-   are matching.  It is used for looking up syntax properties.	*/
+   are matching.  It is used for looking up syntax properties.  */
 Lisp_Object re_match_object;
 #endif
 
@@ -4957,11 +4957,11 @@
    matching at STOP.
 
    If REGS is non-null and the `no_sub' field of BUFP is nonzero, we
-   store offsets for the substring each group matched in REGS.	See the
+   store offsets for the substring each group matched in REGS.  See the
    documentation for exactly how many groups we fill.
 
    We return -1 if no match, -2 if an internal error (such as the
-   failure stack overflowing).	Otherwise, we return the length of the
+   failure stack overflowing).  Otherwise, we return the length of the
    matched substring.  */
 
 int
@@ -5011,7 +5011,7 @@
 
 
 /* This is a separate function so that we can force an alloca cleanup
-   afterwards.	*/
+   afterwards.  */
 static int
 re_match_2_internal (bufp, string1, size1, string2, size2, pos, regs, stop)
      struct re_pattern_buffer *bufp;
@@ -5030,7 +5030,7 @@
   re_char *end1, *end2;
 
   /* Pointers into string1 and string2, just past the last characters in
-     each to consider matching.	 */
+     each to consider matching.  */
   re_char *end_match_1, *end_match_2;
 
   /* Where we are in the data, and the end of the current string.  */
@@ -5059,8 +5059,8 @@
      the subexpressions we're currently inside, plus the number of such
      registers, and, finally, two char *'s.  The first char * is where
      to resume scanning the pattern; the second one is where to resume
-     scanning the strings.	*/
-#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global.	 */
+     scanning the strings.  */
+#ifdef MATCH_MAY_ALLOCATE /* otherwise, this is global.  */
   fail_stack_type fail_stack;
 #endif
 #ifdef DEBUG
@@ -5074,7 +5074,7 @@
 #endif
 
   /* We fill all the registers internally, independent of what we
-     return, for use in backreferences.	 The number here includes
+     return, for use in backreferences.  The number here includes
      an element for register zero.  */
   size_t num_regs = bufp->re_nsub + 1;
 
@@ -5100,7 +5100,7 @@
 
   /* Logically, this is `best_regend[0]'.  But we don't want to have to
      allocate space for that if we're not allocating space for anything
-     else (see below).	Also, we never need info about register 0 for
+     else (see below).  Also, we never need info about register 0 for
      any of the other register vectors, and it seems rather a kludge to
      treat `best_regend' differently than the rest.  So we keep track of
      the end of the best match so far in a separate variable.  We
@@ -5158,7 +5158,7 @@
     regstart[reg] = regend[reg] = NULL;
 
   /* We move `string1' into `string2' if the latter's empty -- but not if
-     `string1' is null.	 */
+     `string1' is null.  */
   if (size2 == 0 && string1 != NULL)
     {
       string2 = string1;
@@ -5215,7 +5215,7 @@
   DEBUG_PRINT_DOUBLE_STRING (d, string1, size1, string2, size2);
   DEBUG_PRINT1 ("'\n");
 
-  /* This loops over pattern commands.	It exits by returning from the
+  /* This loops over pattern commands.  It exits by returning from the
      function if the match is complete, or it drops through if the match
      fails at this starting point in the input data.  */
   for (;;)
@@ -5238,7 +5238,7 @@
 	      boolean best_match_p;
 
 	      /* AIX compiler got confused when this was combined
-		 with the previous declaration.	 */
+		 with the previous declaration.  */
 	      if (same_str_p)
 		best_match_p = d > match_end;
 	      else
@@ -5276,7 +5276,7 @@
 		     end_match_1' while the restored d is in string2.
 		     For example, the pattern `x.*y.*z' against the
 		     strings `x-' and `y-z-', if the two strings are
-		     not consecutive in memory.	 */
+		     not consecutive in memory.  */
 		  DEBUG_PRINT1 ("Restoring best registers.\n");
 
 		  d = match_end;
@@ -5299,7 +5299,7 @@
 	    {
 	      /* Have the register data arrays been allocated?	*/
 	      if (bufp->regs_allocated == REGS_UNALLOCATED)
-		{ /* No.  So allocate them with malloc.	 We need one
+		{ /* No.  So allocate them with malloc.  We need one
 		     extra element beyond `num_regs' for the `-1' marker
 		     GNU code uses.  */
 		  regs->num_regs = MAX (RE_NREGS, num_regs + 1);
@@ -5331,7 +5331,7 @@
 	      else
 		{
 		  /* These braces fend off a "empty body in an else-statement"
-		     warning under GCC when assert expands to nothing.	*/
+		     warning under GCC when assert expands to nothing.  */
 		  assert (bufp->regs_allocated == REGS_FIXED);
 		}
 
@@ -5363,7 +5363,7 @@
 		 were in the pattern, set the extra elements to -1.  If
 		 we (re)allocated the registers, this is the case,
 		 because we always allocate enough to have at least one
-		 -1 at the end.	 */
+		 -1 at the end.  */
 	      for (reg = num_regs; reg < regs->num_regs; reg++)
 		regs->start[reg] = regs->end[reg] = -1;
 	    } /* regs && !bufp->no_sub */
@@ -5381,7 +5381,7 @@
 	  return mcnt;
 	}
 
-      /* Otherwise match next pattern command.	*/
+      /* Otherwise match next pattern command.  */
       switch (SWITCH_ENUM_CAST ((re_opcode_t) *p++))
 	{
 	/* Ignore these.  Used to ignore the n of succeed_n's which
@@ -5394,9 +5394,9 @@
 	  DEBUG_PRINT1 ("EXECUTING succeed.\n");
 	  goto succeed_label;
 
-	/* Match the next n pattern characters exactly.	 The following
+	/* Match the next n pattern characters exactly.  The following
 	   byte in the pattern defines n, and the n bytes after that
-	   are the characters to match.	 */
+	   are the characters to match.  */
 	case exactn:
 	  mcnt = *p++;
 	  DEBUG_PRINT2 ("EXECUTING exactn %d.\n", mcnt);
@@ -5568,7 +5568,7 @@
 	/* The beginning of a group is represented by start_memory.
 	   The argument is the register number.  The text
 	   matched within the group is recorded (in the internal
-	   registers data structure) under the register number.	 */
+	   registers data structure) under the register number.  */
 	case start_memory:
 	  DEBUG_PRINT2 ("EXECUTING start_memory %d:\n", *p);
 
@@ -5617,14 +5617,14 @@
 	case duplicate:
 	  {
 	    register re_char *d2, *dend2;
-	    int regno = *p++;	/* Get which register to match against.	 */
+	    int regno = *p++;	/* Get which register to match against.  */
 	    DEBUG_PRINT2 ("EXECUTING duplicate %d.\n", regno);
 
-	    /* Can't back reference a group which we've never matched.	*/
+	    /* Can't back reference a group which we've never matched.  */
 	    if (REG_UNSET (regstart[regno]) || REG_UNSET (regend[regno]))
 	      goto fail;
 
-	    /* Where in input to try to start matching.	 */
+	    /* Where in input to try to start matching.  */
 	    d2 = regstart[regno];
 
 	    /* Remember the start point to rollback upon failure.  */
@@ -5737,7 +5737,7 @@
 	   pushes NULL as the value for the string on the stack.  Then
 	   `POP_FAILURE_POINT' will keep the current value for the
 	   string, instead of restoring it.  To see why, consider
-	   matching `foo\nbar' against `.*\n'.	The .* matches the foo;
+	   matching `foo\nbar' against `.*\n'.  The .* matches the foo;
 	   then the . fails against the \n.  But the next thing we want
 	   to do is match the \n against the \n; if we restored the
 	   string value, we would be back at the foo.
@@ -5882,7 +5882,7 @@
 	  IMMEDIATE_QUIT_CHECK;
 	  EXTRACT_NUMBER_AND_INCR (mcnt, p);	/* Get the amount to jump.  */
 	  DEBUG_PRINT2 ("EXECUTING jump %d ", mcnt);
-	  p += mcnt;				/* Do the jump.	 */
+	  p += mcnt;				/* Do the jump.  */
 	  DEBUG_PRINT2 ("(to %p).\n", p);
 	  break;
 
@@ -5976,7 +5976,7 @@
 	      if (/* Case 2: Only one of S1 and S2 is Sword.  */
 		  ((s1 == Sword) != (s2 == Sword))
 		  /* Case 3: Both of S1 and S2 are Sword, and macro
-		     WORD_BOUNDARY_P (C1, C2) returns nonzero.	*/
+		     WORD_BOUNDARY_P (C1, C2) returns nonzero.  */
 		  || ((s1 == Sword) && WORD_BOUNDARY_P (c1, c2)))
 		not = !not;
 	    }
@@ -5990,7 +5990,7 @@
 
 	  /* We FAIL in one of the following cases: */
 
-	  /* Case 1: D is at the end of string.	 */
+	  /* Case 1: D is at the end of string.  */
 	  if (AT_STRINGS_END (d))
 	    goto fail;
 	  else
@@ -6023,7 +6023,7 @@
 		  s1 = SYNTAX (c1);
 
 		  /* ... and S1 is Sword, and WORD_BOUNDARY_P (C1, C2)
-		     returns 0.	 */
+		     returns 0.  */
 		  if ((s1 == Sword) && !WORD_BOUNDARY_P (c1, c2))
 		    goto fail;
 		}
@@ -6068,7 +6068,7 @@
 		  s2 = SYNTAX (c2);
 
 		  /* ... and S2 is Sword, and WORD_BOUNDARY_P (C1, C2)
-		     returns 0.	 */
+		     returns 0.  */
 		  if ((s2 == Sword) && !WORD_BOUNDARY_P (c1, c2))
 	  goto fail;
 		}
@@ -6080,7 +6080,7 @@
 
 	  /* We FAIL in one of the following cases: */
 
-	  /* Case 1: D is at the end of string.	 */
+	  /* Case 1: D is at the end of string.  */
 	  if (AT_STRINGS_END (d))
 	    goto fail;
 	  else
@@ -6097,7 +6097,7 @@
 	      PREFETCH ();
 	      c2 = RE_STRING_CHAR (d, dend - d);
 	      s2 = SYNTAX (c2);
-	
+
 	      /* Case 2: S2 is neither Sword nor Ssymbol. */
 	      if (s2 != Sword && s2 != Ssymbol)
 		goto fail;
--- a/src/s/aix4-2.h	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/s/aix4-2.h	Thu Dec 07 04:14:14 2006 +0000
@@ -20,5 +20,19 @@
 */
 #define BROKEN_GET_CURRENT_DIR_NAME 1
 
+/* aix3-1.h defined _NO_PROTO, probably to work around an AIX compiler
+   that did not handle prototypes.  On (at least) AIX 5.2, this causes
+   the proper prototype to be thrown away for lseek64, so compiled
+   Lisp files do not load correctly and compilation fails.
+
+   The AIX compiler should have learned about function prototypes long
+   ago, so we can probably go ahead and undefine _NO_PROTO.  However,
+   if someone can demonstrate that this problem still exists for AIX
+   4, this should be moved into a new file (aix5.h).
+*/
+
+#undef _NO_PROTO
+
+
 /* arch-tag: 38fe75ea-6aef-42bd-8449-bc34d921a562
    (do not change this comment) */
--- a/src/s/openbsd.h	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/s/openbsd.h	Thu Dec 07 04:14:14 2006 +0000
@@ -21,13 +21,18 @@
 #undef LD_SWITCH_SYSTEM
 #ifdef __ELF__
 
-/*  Han Boetes <han@mijncomputer.nl> says this
-    is necessary,  otherwise Emacs dumps core on elf systems.  */
-#define LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_tmp -Z -L/usr/pkg/lib -L/usr/local/lib
+  /*  Han Boetes <han@mijncomputer.nl> says this
+      is necessary,  otherwise Emacs dumps core on elf systems.  */
+#define LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_tmp -Z
+
+/* The version of gcc on OpenBSD doesn't search /usr/local/lib by
+   default.  */
+#define LD_SWITCH_X_DEFAULT -L/usr/local/lib
 
 #else
-
-#define LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_tmp -L/usr/pkg/lib -L/usr/local/lib
+  
+#define LD_SWITCH_SYSTEM LD_SWITCH_SYSTEM_tmp
+#define LD_SWITCH_X_DEFAULT -L/usr/local/lib
 
 #endif
 
--- a/src/sound.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/sound.c	Thu Dec 07 04:14:14 2006 +0000
@@ -1015,14 +1015,14 @@
 
   val = sd->format;
   err = snd_pcm_hw_params_set_format (p->handle, p->hwparams, val);
-  if (err < 0) 
+  if (err < 0)
     alsa_sound_perror ("Could not set sound format", err);
 
   uval = sd->sample_rate;
   err = snd_pcm_hw_params_set_rate_near (p->handle, p->hwparams, &uval, 0);
   if (err < 0)
     alsa_sound_perror ("Could not set sample rate", err);
-  
+
   val = sd->channels;
   err = snd_pcm_hw_params_set_channels (p->handle, p->hwparams, val);
   if (err < 0)
@@ -1072,11 +1072,11 @@
   p->hwparams = NULL;
   snd_pcm_sw_params_free (p->swparams);
   p->swparams = NULL;
-  
+
   err = snd_pcm_prepare (p->handle);
   if (err < 0)
     alsa_sound_perror ("Could not prepare audio interface for use", err);
-  
+
   if (sd->volume > 0)
     {
       int chn;
@@ -1098,7 +1098,7 @@
                     long pmin, pmax;
                     snd_mixer_selem_get_playback_volume_range (e, &pmin, &pmax);
                     long vol = pmin + (sd->volume * (pmax - pmin)) / 100;
-                    
+
                     for (chn = 0; chn <= SND_MIXER_SCHN_LAST; chn++)
                       snd_mixer_selem_set_playback_volume (e, chn, vol);
                   }
@@ -1230,9 +1230,9 @@
                                        err);
                 }
             }
-          else 
+          else
             alsa_sound_perror ("Error writing to sound device", err);
-          
+
         }
       else
         nwritten += err * fact;
@@ -1374,7 +1374,7 @@
 DEFUN ("play-sound-internal", Fplay_sound_internal, Splay_sound_internal, 1, 1, 0,
        doc: /* Play sound SOUND.
 
-Internal use only, use `play-sound' instead.\n  */)
+Internal use only, use `play-sound' instead.  */)
      (sound)
      Lisp_Object sound;
 {
--- a/src/strftime.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/strftime.c	Thu Dec 07 04:14:14 2006 +0000
@@ -69,9 +69,9 @@
 #if DO_MULTIBYTE
 # if HAVE_MBRLEN
 #  include <wchar.h>
-#   ifdef HAVE_SYS__MBSTATE_H	/* previously tested __hpux */
-#     include <sys/_mbstate_t.h>
-#   endif
+#  ifdef HAVE_SYS__MBSTATE_T_H       /* previously tested __hpux */
+#   include <sys/_mbstate_t.h>
+#  endif
 #  if !defined (mbsinit) && !defined (HAVE_MBSINIT)
 #   define mbsinit(ps) 1
 #  endif /* !defined (mbsinit) && !defined (HAVE_MBSINIT) */
--- a/src/syntax.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/syntax.c	Thu Dec 07 04:14:14 2006 +0000
@@ -1481,7 +1481,7 @@
 	      const unsigned char *class_beg = str + i_byte + 1;
 	      const unsigned char *class_end = class_beg;
 	      const unsigned char *class_limit = str + size_byte - 2;
-	      /* Leave room for the null.	 */
+	      /* Leave room for the null.  */
 	      unsigned char class_name[CHAR_CLASS_MAX_LENGTH + 1];
 	      re_wctype_t cc;
 
--- a/src/sysdep.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/sysdep.c	Thu Dec 07 04:14:14 2006 +0000
@@ -3756,7 +3756,7 @@
  *					sdcsvax!rmr or rmr@uscd
  *
  * Severely hacked over by John Gilmore to make a 4.2BSD compatible
- * subroutine.	11Mar86; hoptoad!gnu
+ * subroutine.  11Mar86; hoptoad!gnu
  *
  * Modified by rmtodd@uokmax 6-28-87 -- when making an already existing dir,
  * subroutine didn't return EEXIST.  It does now.
--- a/src/w16select.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/w16select.c	Thu Dec 07 04:14:14 2006 +0000
@@ -590,7 +590,7 @@
 	    message2 (system_error_msg, sizeof (system_error_msg) - 1, 0);
 	    break;
 	}
-      sit_for (2, 0, 0, 1, 1);
+      sit_for (make_number (2), 0, 2);
     }
 
  done:
--- a/src/w32fns.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/w32fns.c	Thu Dec 07 04:14:14 2006 +0000
@@ -2690,9 +2690,8 @@
   PostThreadMessage (dwWindowsThreadId, WM_NULL, 0, 0);
 }
 
-DWORD
-w32_msg_worker (dw)
-     DWORD dw;
+DWORD WINAPI
+w32_msg_worker (void *arg)
 {
   MSG msg;
   deferred_msg dummy_buf;
@@ -8107,17 +8106,39 @@
        doc: /* Get Windows to perform OPERATION on DOCUMENT.
 This is a wrapper around the ShellExecute system function, which
 invokes the application registered to handle OPERATION for DOCUMENT.
-OPERATION is typically \"open\", \"print\" or \"explore\" (but can be
-nil for the default action), and DOCUMENT is typically the name of a
-document file or URL, but can also be a program executable to run or
-a directory to open in the Windows Explorer.
-
-If DOCUMENT is a program executable, PARAMETERS can be a string
-containing command line parameters, but otherwise should be nil.
-
-SHOW-FLAG can be used to control whether the invoked application is hidden
-or minimized.  If SHOW-FLAG is nil, the application is displayed normally,
-otherwise it is an integer representing a ShowWindow flag:
+
+OPERATION is either nil or a string that names a supported operation.
+What operations can be used depends on the particular DOCUMENT and its
+handler application, but typically it is one of the following common
+operations:
+
+ \"open\"    - open DOCUMENT, which could be a file, a directory, or an
+               executable program.  If it is an application, that
+               application is launched in the current buffer's default
+               directory.  Otherwise, the application associated with
+               DOCUMENT is launched in the buffer's default directory.
+ \"print\"   - print DOCUMENT, which must be a file
+ \"explore\" - start the Windows Explorer on DOCUMENT
+ \"edit\"    - launch an editor and open DOCUMENT for editing; which
+               editor is launched depends on the association for the
+               specified DOCUMENT
+ \"find\"    - initiate search starting from DOCUMENT which must specify
+               a directory
+ nil       - invoke the default OPERATION, or \"open\" if default is
+               not defined or unavailable
+
+DOCUMENT is typically the name of a document file or a URL, but can
+also be a program executable to run, or a directory to open in the
+Windows Explorer.
+
+If DOCUMENT is a program executable, the optional arg PARAMETERS can
+be a string containing command line parameters that will be passed to
+the program; otherwise, PARAMETERS should be nil or unspecified.
+
+Second optional argument SHOW-FLAG can be used to control how the
+application will be displayed when it is invoked.  If SHOW-FLAG is nil
+or unspceified, the application is displayed normally, otherwise it is
+an integer representing a ShowWindow flag:
 
   0 - start hidden
   1 - start normally
--- a/src/w32term.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/w32term.c	Thu Dec 07 04:14:14 2006 +0000
@@ -4590,7 +4590,7 @@
 		/* Ignore any mouse motion that happened before this
 		   event; any subsequent mouse-movement Emacs events
 		   should reflect only motion after the
-		   ButtonPress.	 */
+		   ButtonPress.  */
 		f->mouse_moved = 0;
 	      }
 	    last_mouse_frame = f;
@@ -6450,7 +6450,7 @@
 
 /* Set up use of W32.  */
 
-DWORD w32_msg_worker ();
+DWORD WINAPI w32_msg_worker (void * arg);
 
 void
 x_flush (struct frame * f)
@@ -6555,8 +6555,8 @@
     PeekMessage (&msg, NULL, 0, 0, PM_NOREMOVE);
 
     hWindowsThread = CreateThread (NULL, 0,
-			       (LPTHREAD_START_ROUTINE) w32_msg_worker,
-			       0, 0, &dwWindowsThreadId);
+                                   w32_msg_worker,
+                                   0, 0, &dwWindowsThreadId);
 
     GetMessage (&msg, NULL, WM_EMACS_DONE, WM_EMACS_DONE);
   }
--- a/src/window.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/window.c	Thu Dec 07 04:14:14 2006 +0000
@@ -3265,6 +3265,10 @@
   struct window *w = XWINDOW (window);
   struct buffer *b = XBUFFER (buffer);
   int count = SPECPDL_INDEX ();
+#ifdef HAVE_WINDOW_SYSTEM
+  struct frame *f = XFRAME (w->frame);
+  Display_Info *dpyinfo;
+#endif
 
   w->buffer = buffer;
 
@@ -3345,6 +3349,15 @@
 	call1 (Vrun_hooks, Qwindow_configuration_change_hook);
     }
 
+#ifdef HAVE_WINDOW_SYSTEM
+  BLOCK_INPUT;
+  if (f && FRAME_X_OUTPUT (f)
+      && (dpyinfo = FRAME_X_DISPLAY_INFO (f))
+      && EQ (window, dpyinfo->mouse_face_window))
+    clear_mouse_face (dpyinfo);
+  UNBLOCK_INPUT;
+#endif
+
   unbind_to (count, Qnil);
 }
 
--- a/src/xdisp.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/xdisp.c	Thu Dec 07 04:14:14 2006 +0000
@@ -6986,7 +6986,12 @@
 	  break;
 
 	case MOVE_LINE_CONTINUED:
-	  it->continuation_lines_width += it->current_x;
+	  /* For continued lines ending in a tab, some of the glyphs
+	     associated with the tab are displayed on the current
+	     line.  Since it->current_x does not include these glyphs,
+	     we use it->last_visible_x instead.  */
+	  it->continuation_lines_width +=
+	    (it->c == '\t') ? it->last_visible_x : it->current_x;
 	  break;
 
 	default:
@@ -17533,7 +17538,7 @@
 
 /* Write a null-terminated, right justified decimal and "human
    readable" representation of the nonnegative integer D to BUF using
-   a minimal field width WIDTH.	 D should be smaller than 999.5e24. */
+   a minimal field width WIDTH.  D should be smaller than 999.5e24. */
 
 static const char power_letter[] =
   {
--- a/src/xfaces.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/xfaces.c	Thu Dec 07 04:14:14 2006 +0000
@@ -7534,10 +7534,18 @@
 #ifdef HAVE_WINDOW_SYSTEM
 #ifdef HAVE_X_WINDOWS
   if (face->font != FRAME_FONT (f))
-    /* As the font specified for the frame was not acceptable as a
-       font for the default face (perhaps because auto-scaled fonts
-       are rejected), we must adjust the frame font.  */
-    x_set_font (f, build_string (face->font_name), Qnil);
+    {
+      /* This can happen when making a frame on a display that does
+	 not support the default font.  */
+      if (!face->font)
+	return 0;
+
+      /* Otherwise, the font specified for the frame was not
+	 acceptable as a font for the default face (perhaps because
+	 auto-scaled fonts are rejected), so we must adjust the frame
+	 font.  */
+      x_set_font (f, build_string (face->font_name), Qnil);
+    }
 #endif	/* HAVE_X_WINDOWS */
 #endif	/* HAVE_WINDOW_SYSTEM */
   return 1;
--- a/src/xselect.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/xselect.c	Thu Dec 07 04:14:14 2006 +0000
@@ -835,7 +835,7 @@
 	    break;
 
 	  /* Now wait for the requester to ack this chunk by deleting the
-	     property.	 This can run random lisp code or signal.  */
+	     property.  This can run random lisp code or signal.  */
 	  TRACE1 ("Waiting for increment ACK (deletion of %s)",
 		  XGetAtomName (display, reply.property));
 	  wait_for_property_change (wait_object);
@@ -2710,11 +2710,11 @@
   else
     error ("ATOM must be a symbol or a string");
 
-  for (i = 0; i < dpyinfo->x_dnd_atoms_length; ++i) 
+  for (i = 0; i < dpyinfo->x_dnd_atoms_length; ++i)
     if (dpyinfo->x_dnd_atoms[i] == x_atom)
       return Qnil;
 
-  if (dpyinfo->x_dnd_atoms_length == dpyinfo->x_dnd_atoms_size) 
+  if (dpyinfo->x_dnd_atoms_length == dpyinfo->x_dnd_atoms_size)
     {
       dpyinfo->x_dnd_atoms_size *= 2;
       dpyinfo->x_dnd_atoms = xrealloc (dpyinfo->x_dnd_atoms,
@@ -2744,7 +2744,7 @@
   int idata[5];
   size_t i;
 
-  for (i = 0; i < dpyinfo->x_dnd_atoms_length; ++i) 
+  for (i = 0; i < dpyinfo->x_dnd_atoms_length; ++i)
     if (dpyinfo->x_dnd_atoms[i] == event->message_type) break;
 
   if (i == dpyinfo->x_dnd_atoms_length) return 0;
--- a/src/xterm.c	Thu Dec 07 00:45:27 2006 +0000
+++ b/src/xterm.c	Thu Dec 07 04:14:14 2006 +0000
@@ -9022,23 +9022,10 @@
 x_raise_frame (f)
      struct frame *f;
 {
-  Lisp_Object frame;
-  const char *atom = "_NET_ACTIVE_WINDOW";
-
   BLOCK_INPUT;
   if (f->async_visible)
     XRaiseWindow (FRAME_X_DISPLAY (f), FRAME_OUTER_WINDOW (f));
 
-  XSETFRAME (frame, f);
-  /* See Window Manager Specification/Extended Window Manager Hints at
-     http://freedesktop.org/wiki/Standards_2fwm_2dspec */
-
-  Fx_send_client_event (frame, make_number (0), frame,
-                        make_unibyte_string (atom, strlen (atom)),
-                        make_number (32),
-                        Fcons (make_number (1),
-                               Fcons (make_number (time (NULL) * 1000),
-                                      Qnil)));
   XFlush (FRAME_X_DISPLAY (f));
   UNBLOCK_INPUT;
 }
@@ -9064,7 +9051,22 @@
      int raise_flag;
 {
   if (raise_flag)
-    x_raise_frame (f);
+    {
+      Lisp_Object frame;
+      const char *atom = "_NET_ACTIVE_WINDOW";
+
+      x_raise_frame (f);
+      /* See Window Manager Specification/Extended Window Manager Hints at
+         http://freedesktop.org/wiki/Standards_2fwm_2dspec */
+
+      XSETFRAME (frame, f);
+      Fx_send_client_event (frame, make_number (0), frame,
+                            make_unibyte_string (atom, strlen (atom)),
+                            make_number (32),
+                            Fcons (make_number (1),
+                                   Fcons (make_number (time (NULL) * 1000),
+                                          Qnil)));
+    }
   else
     x_lower_frame (f);
 }
--- a/update-subdirs	Thu Dec 07 00:45:27 2006 +0000
+++ b/update-subdirs	Thu Dec 07 04:14:14 2006 +0000
@@ -1,7 +1,8 @@
 #!/bin/sh
 # Write into $1/subdirs.el a list of subdirs of directory $1.
 
-# Copyright (C) 1994,95,97,1999,2001,2004,2006  Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1997, 1999, 2001, 2002, 2003, 2004, 2005,
+#   2006  Free Software Foundation, Inc.
 #
 # This file is part of GNU Emacs.
 #