changeset 90787:91bf6e05918b

Merge from emacs--devo--0 Patches applied: * emacs--devo--0 (patch 662-669) - Update from CVS - Fix read-only prompt problem in isearch - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 207-208) - Merge from emacs--devo--0 - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-184
author Miles Bader <miles@gnu.org>
date Sun, 18 Mar 2007 14:11:08 +0000
parents ca12f314faac (current diff) 6582d03c2a6e (diff)
children a12805fdabe8
files admin/FOR-RELEASE admin/notes/copyright etc/ChangeLog etc/Makefile etc/NEWS etc/PROBLEMS etc/Xkeymap.txt etc/emacs.csh etc/ms-7bkermit etc/ms-kermit etc/ulimit.hack lisp/ChangeLog lisp/ChangeLog.10 lisp/ChangeLog.7 lisp/abbrev.el lisp/complete.el lisp/cus-edit.el lisp/diff-mode.el lisp/emacs-lisp/authors.el lisp/emacs-lisp/bytecomp.el lisp/emacs-lisp/edebug.el lisp/emacs-lisp/lisp-mode.el lisp/emacs-lisp/re-builder.el lisp/faces.el lisp/files.el lisp/gnus/ChangeLog lisp/icomplete.el lisp/international/isearch-x.el lisp/isearch.el lisp/jit-lock.el lisp/mail/emacsbug.el lisp/mouse.el lisp/net/ange-ftp.el lisp/net/rcirc.el lisp/net/tramp-smb.el lisp/net/tramp.el lisp/pcomplete.el lisp/progmodes/cc-engine.el lisp/progmodes/cc-mode.el lisp/progmodes/cperl-mode.el lisp/progmodes/grep.el lisp/progmodes/gud.el lisp/progmodes/hideshow.el lisp/progmodes/python.el lisp/replace.el lisp/ses.el lisp/shell.el lisp/simple.el lisp/smerge-mode.el lisp/startup.el lisp/term/x-win.el lisp/textmodes/org.el lisp/type-break.el lisp/woman.el lispref/ChangeLog lispref/compile.texi lispref/display.texi lispref/markers.texi lispref/minibuf.texi lispref/modes.texi lispref/nonascii.texi lispref/sequences.texi lispref/strings.texi lispref/syntax.texi lispref/variables.texi man/ChangeLog man/custom.texi man/faq.texi man/gnus.texi nt/ChangeLog nt/INSTALL src/ChangeLog src/keyboard.c src/keymap.c src/macfns.c src/macterm.c src/macterm.h src/minibuf.c src/process.c src/sound.c src/window.c src/xdisp.c src/xselect.c src/xterm.c
diffstat 87 files changed, 2038 insertions(+), 598 deletions(-) [+]
line wrap: on
line diff
--- a/admin/FOR-RELEASE	Sun Mar 18 14:00:43 2007 +0000
+++ b/admin/FOR-RELEASE	Sun Mar 18 14:11:08 2007 +0000
@@ -40,7 +40,8 @@
 and KDE projects, to use the new Emacs icons in etc/images/icons.
 
 * WINDOWS SUPPORT BUGS.
-These don't need to be fixed to start pretest, but we call the
+
+These don't need to be fixed before a release, but we call the
 attention of Windows users to fixing them.
 
 ** Drew Adams 12 Aug bug rpt: overlay  display artifact: trace left behind
@@ -50,9 +51,7 @@
 ** henman@it.to-be.co.jp 09 Aug 2006: ispell.el problem on Cygwin.
   (Did we decide that is unreproducible?)
 
-** make-network-process :nowait t doesn't work for non-local targets
-   on Windows.  This has been "fixed" for Emacs 22 by defining
-   BROKEN_NON_BLOCKING_CONNECT in ms-w32.h.
+** lennart.borgman@gmail.com, Feb 22: C-h k does not catch text properies keymaps
 
 
 * BUGS
@@ -60,12 +59,7 @@
 ** Fix up copyright confusions.
   See end of admin/notes/copyright.
 
-** simon.marshall@misys.com, Jan 12:
-  Font-lock decides function call is function declaration in C++
-
-** md5i@cs.cmu.edu, Feb 20: move-end-of-line in comint buffers
-
-** daniel@bigwalter.net, Feb 25: Echoing of keys and process I/O
+** david.hansen@gmx.net, Mar 7: shell.el patch to install
 
 * DOCUMENTATION
 
--- a/admin/notes/copyright	Sun Mar 18 14:00:43 2007 +0000
+++ b/admin/notes/copyright	Sun Mar 18 14:11:08 2007 +0000
@@ -15,19 +15,26 @@
 
 Summary for the impatient:
 
-1. Don't add a file to Emacs written by someone other than yourself
-without thinking about the legal aspect (make sure they have an
-assignment, adjust the copyright statements in the file). NB the
-ChangeLog entry should be in the name of the author of the code, not
-the person who installs it.
+1. Don't add code to Emacs written by someone other than yourself
+without thinking about the legal aspect. Even if the changes are
+trivial, consider if they combine with previous changes by the same
+author to make a non-trivial total. If so, make sure they have an
+assignment. If adding a whole file adjust the copyright statements in
+the file.
 
-2. With images, add the legal info to a README file in the directory
+2. When installing code written by someone else, the ChangeLog entry
+should be in the name of the author of the code, not the person who
+installs it. I think it is helpful to put the author (if not yourself)
+in the CVS log as well; and to not install any of your own changes in
+the same commit.
+
+3. With images, add the legal info to a README file in the directory
 containing the image.
 
-3. If you add a lot of text to a previously trivial file that had no
+4. If you add a lot of text to a previously trivial file that had no
 legal notices, consider if you should add a copyright statement.
 
-4. Please don't just add an FSF copyright without checking that is the
+5. Please don't just add an FSF copyright without checking that is the
 right thing to do.
 
 
@@ -133,11 +140,15 @@
 src/m/news-r6.h
   public domain, leave alone.
 
+etc/BABYL, ms-kermit
+  no notices (see below).
+
 etc/edt-user.doc
   - update BOTH notices in this file
 
 etc/emacs.csh
-  - keep simple license for this simple file
+ - written by Michael DeCorte, who has no assignment. But trivial
+ enough to not need license.
 
 etc/future-bug
  - doesn't need a humourless disclaimer, because Karl Fogel says we
@@ -159,6 +170,12 @@
   licenses that they have. They are distributed with Emacs but they
   are not part of Emacs."
 
+etc/HELLO
+  standard notices. Just a note that although the file itself is not
+  really copyrightable, in the wider context of it being part of
+  Emacs (and written by those with assignments), a standard notice is
+  fine.
+
 etc/MAILINGLISTS
   rms: simple license is fine for this file
 
@@ -361,6 +378,20 @@
 
 ** Some notes on resolved issues, for historical information only
 
+etc/TERMS
+rms: "surely written either by me or by ESR. (If you can figure out
+which year, I can probably tell you which.) Either way, we have papers
+for it." Present in Emacs-16.56 (15-jul-85).
+
+etc/ulimit.hack
+  Very obsolete file removed March 2007. Doesn't say who the author
+is, but web-search suggests Karl Kleinpaste, who has no Emacs
+assignment. Trivial anyway.
+http://groups.google.com/group/comp.unix.shell/browse_thread/thread/bf3df496994\
+9f1df/7e5922c67b3a98fb
+http://groups.google.com/group/comp.unix.questions/msg/cc7e49cacfd1ccb4
+    (original 1987 source)
+
 lisp/term/README
   - had no copyright notice till Feb 2007. ChangeLog.3 suggests it was
   written by Eric Raymond. When asked by rms on 14 Feb 2007 he said:
@@ -381,11 +412,16 @@
 admin/check-doc-strings
   File says it's in the public domain, but that might not make it so.
 
+etc/BABYL
+  File written long ago by authors with no assignment. Keep them
+  without notices for now, try and contact authors if possible. Be
+  ready to remove these files if the authors ever object.
 
+etc/ms-kermit
 etc/e/eterm-color.ti
 src/acldef.h, chpdef.h, ndir.h
   On legal advice from Matt Norwood, the following comment was added
-  to these files in Feb 2007:
+  to these files in Feb/Mar 2007:
 
     The code here is forced by the interface, and is not subject to
     copyright, constituting the only possible expression of the
@@ -396,6 +432,19 @@
   and possibly add a list of all authors who have changed these files.
   (details in email from Matt Norwood to rms, 2007/02/03).
 
+etc/ms-7bkermit
+  Says it was written by Andy Lowry and Joel Spolsky. No entry for
+either in copyright.list. NB this file is not "constrained" like
+ms-kermit (rms: "We know it isn't. A comment at the front says it has
+other bindings which might be handy."). File removed March 2007.
+Re-add if clear up status at some point.
+
+etc/Xkeymap.txt
+  No info on author. File removed March 2007. rms: "It says it is
+RLK's way of remapping his keyboard, so it is not constrained. I think
+it was written by RLK. Let's delete it; if we contact RLK again, we
+can put it back."
+
 
 src/m/mips4.h, news-risc.h, pmax.h
 src/s/aix3-2.h, bsd386.h, hpux8.h, hpux9.h, irix4-0.h, irix5-0.h,
@@ -493,11 +542,6 @@
 noted in this file.
 
 
-etc/BABYL
-  File says it was written in 1983 by Eugene Ciccarelli, who has no
-  assignment. RMS: "The lawyer said we can keep BABYL."
-
-
 REMOVED etc/gnu.xpm, nt/icons/emacs21.ico, nt/icons/sink.ico
   - Restore if find legal info. emacs21.ico is not due to Davenport.
   Voelker could not immediately recall anything, but will check and
@@ -528,8 +572,7 @@
 
 *** These are copyright issues still to be addressed:
 
-
-etc/ms-kermit - no copyright, but ms-7bkermit has one
+Do we need an assignment from Kevin Rodgers? (rms)
 
 
 
--- a/etc/ChangeLog	Sun Mar 18 14:00:43 2007 +0000
+++ b/etc/ChangeLog	Sun Mar 18 14:11:08 2007 +0000
@@ -1,3 +1,14 @@
+2007-03-11  Glenn Morris  <rgm@gnu.org>
+
+	* ms-7bkermit, ulimit.hack, Xkeymap.txt: Remove files.
+
+	* Makefile (SOURCES): ulimit.hack is removed.
+
+2007-03-04  David Kastrup  <dak@gnu.org>
+
+	* NEWS (fontification): Mention that the new default for
+	jit-lock-stealth-time is now nil.
+
 2007-03-01  Kim F. Storm  <storm@cua.dk>
 
 	* ORDERS: Reformat text.
@@ -574,7 +585,7 @@
 	* NEWS.21, NEWS.20: ... new files for Emacs 21 and Emacs 20 news.
 	* ONEWS, ONEWS.1, ONEWS.2, ONEWS.3, ONEWS.4: Remove (rename) files ...
 	* NEWS.19, NEWS.18, NEWS.1-17: ... and organize news about older Emacs
-	versions in separte files.  Update copyright notices.
+	versions in separate files.  Update copyright notices.
 
 2006-06-03  Eli Zaretskii  <eliz@gnu.org>
 
--- a/etc/Makefile	Sun Mar 18 14:00:43 2007 +0000
+++ b/etc/Makefile	Sun Mar 18 14:11:08 2007 +0000
@@ -37,7 +37,7 @@
 	-rm -f DOC* core *.dvi *.log
 
 SOURCES = [0-9A-QS-Z]* README *.[ch16] emacs.* etags.* ledit.l ms-* \
-	spook-lines tasks.texi termcap.* ulimit.hack *.tex
+	spook-lines tasks.texi termcap.* *.tex
 
 unlock:
 	chmod u+w $(SOURCES)
--- a/etc/NEWS	Sun Mar 18 14:00:43 2007 +0000
+++ b/etc/NEWS	Sun Mar 18 14:11:08 2007 +0000
@@ -1130,10 +1130,16 @@
 
 ---
 *** The default settings for JIT stealth lock parameters are changed.
-The default value for the user option jit-lock-stealth-time is now 16
-instead of 3, and the default value of jit-lock-stealth-nice is now
-0.5 instead of 0.125.  The new defaults should lower the CPU usage
-when Emacs is fontifying in the background.
+The default value for the user option jit-lock-stealth-time is now nil
+instead of 3.  This setting of jit-lock-stealth-time disables stealth
+fontification: on today's machines, it may be a bug in font lock
+patterns if fontification otherwise noticeably degrades interactivity.
+If you find movement in infrequently visited buffers sluggish (and the
+major mode maintainer has no better idea), customizing
+jit-lock-stealth-time to a non-nil value will let Emacs fontify
+buffers in the background when it considers the system to be idle.
+jit-lock-stealth-nice is now 0.5 instead of 0.125 which is supposed to
+cause less load than the old defaults.
 
 ---
 *** jit-lock can now be delayed with `jit-lock-defer-time'.
--- a/etc/PROBLEMS	Sun Mar 18 14:00:43 2007 +0000
+++ b/etc/PROBLEMS	Sun Mar 18 14:11:08 2007 +0000
@@ -2399,6 +2399,8 @@
 info.  Cygwin users are advised not to use these versions of GCC for
 compiling Emacs.  GCC versions 4.0.3 and 4.1.1 reportedly build a
 working Cygwin binary of Emacs, so we recommend these GCC versions.
+Note that these two versions of GCC, 4.0.3 and 4.1.1, are the _only_
+versions known to succeed in building Emacs (as of v22.1).
 
 *** Building the native MS-Windows port with Cygwin GCC can fail.
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/Xkeymap.txt	Sun Mar 18 14:11:08 2007 +0000
@@ -0,0 +1,120 @@
+#						-*-Mode: Fundamental-*-
+# X keymap file for rlk with some emacsified bindings
+#
+# Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+#   Free Software Foundation, Inc.
+# See the end of the file for license conditions.
+#
+# This file contains the default keyboard mapping.  The first column contains a X keyboard code; the other
+# 16 columns contain the mapping of the keycode to a character string, with various combinations
+# of the SHIFT, LOCK, META, and CONTROL keys down.  See the man page for "keycomp" for more information.
+#
+# Keycode constants for non-typewriter keys are found in <X/Xkeyboard.h>.
+#
+# It is easiest to edit this file with an EMACS window running across the entire width of the display, with
+# tab stop set to 4.
+#
+# E1=Find, E2=Insert Here, E3=Remove, E4=Select, E5=Prev Screen, E6=Next Screen
+#     uns   L     S     SL    M     ML    MS    MSL   C     CL    CS     CSL   CM    CML   CMS   CMSL
+0212  0023, 0023, 0023, 0023, 0223, 0223, 0223, 0223, 0022, 0022, 0022, 0022, 0222, 0222, 0222, 0222,  /* E1 */
+0213  U,    U,    U,    U,    U,    U,    U,    U,    U,    U,    U,     U,    U,    U,    U,    U,    /* E2 */
+0214  0004, 0004, 0177, 0177, 0304, 0304, 0377, 0377, 0004, 0004, 0177,  0177, 0204, 0204, 0377, 0377  /* E3 */
+0215  U,    U,    U,    U,    U,    U,    U,    U,    U,    U,    U,     U,    U,    U,    U,    U,    /* E4 */
+0216  0326, 0326, 0326, 0326, 0326, 0326, 0326, 0326, "\255\226" "\255\226" "\255\226" "\255\226" "\255\226" "\255\226" "\255\226" "\255\226"  /* E5 */
+0217  0026, 0026, 0026, 0026, 0026, 0026, 0026, 0026, 0226, 0226, 0226, 0226, 0226, 0226, 0226, 0226, /* E6 */
+0247  0002, 0002, 0002, 0002, 0302, 0302, 0302, 0302, 0202, 0202, 0202, 0202, 0202, 0202, 0202, 0202, /* Left arrow */
+0250  0006, 0006, 0006, 0006, 0306, 0306, 0306, 0306, 0206, 0206, 0206, 0206, 0206, 0206, 0206, 0206, /* Right arrow */
+0251  0016, 0016, 0016, 0016, 0316, 0316, 0316, 0316, 0216, 0216, 0216, 0216, 0216, 0216, 0216, 0216, /* Down arrow */
+0252  0020, 0020, 0020, 0020, 0320, 0320, 0320, 0320, 0220, 0220, 0220, 0220, 0220, 0220, 0220, 0220, /* Up arrow */
+0222  0260, '0',  0260, '0',  0260, '0',  0260, '0',  0260, '0',  0260, '0',  0260, '0',  0260, '0',  /* KP 0 */
+0224  0256, '.',  0256, '.',  0256, '.',  0256, '.',  0256, '.',  0256, '.',  0256, '.',  0256, '.',  /* KP . */
+0225  '\n', '\n', '\n', '\n', 0312, 0312, 0312, 0312, 0212, 0212, 0212, 0212, 0212, 0212, 0212, 0212, /* KP Enter */
+0226  0261, '1',  0261, '1',  0261, '1',  0261, '1',  0261, '1',  0261, '1',  0261, '1',  0261, '1',  /* KP 1 */
+0227  0262, '2',  0262, '2',  0262, '2',  0262, '2',  0262, '2',  0262, '2',  0262, '2',  0262, '2',  /* KP 2 */
+0230  0263, '3',  0263, '3',  0263, '3',  0263, '3',  0263, '3',  0263, '3',  0263, '3',  0263, '3',  /* KP 3 */
+0231  0264, '4',  0264, '4',  0264, '4',  0264, '4',  0264, '4',  0264, '4',  0264, '4',  0264, '4',  /* KP 4 */
+0232  0265, '5',  0265, '5',  0265, '5',  0265, '5',  0265, '5',  0265, '5',  0265, '5',  0265, '5',  /* KP 5 */
+0233  0266, '6',  0266, '6',  0266, '6',  0266, '6',  0266, '6',  0266, '6',  0266, '6',  0266, '6',  /* KP 6 */
+0234  0254, ',',  0254, ',',  0254, ',',  0254, ',',  0254, ',',  0254, ',',  0254, ',',  0254, ',',  /* KP , */
+0235  0267, '7',  0267, '7',  0267, '7',  0267, '7',  0267, '7',  0267, '7',  0267, '7',  0267, '7',  /* KP 7 */
+0236  0270, '8',  0270, '8',  0270, '8',  0270, '8',  0270, '8',  0270, '8',  0270, '8',  0270, '8',  /* KP 8 */
+0237  0271, '9',  0271, '9',  0271, '9',  0271, '9',  0271, '9',  0271, '9',  0271, '9',  0271, '9',  /* KP 9 */
+0240  0255, '-',  0255, '-',  0255, '-',  0255, '-',  0255, '-',  0255, '-',  0255, '-',  0255, '-',  /* KP - */
+0174  0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, 0010, /* F15/Help */
+0175  0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, 0037, /* F16/(Un)Do */
+0161  0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, 0033, /* F11/ESC */
+0162  '\b', '\b', '\b', '\b', '\b', '\b', U,    U,    '\b', '\b', U,    U,    U,    U,    U,    U,    /* F12/BS */
+0163  '\n', '\n', '\n', '\n', '\n', '\n', U,    U,    '\n', '\n', U,    U,    U,    U,    U,    U,    /* F13/LF */
+0274  0177, 0177, 0177, 0177, 0377, 0377, 0377, 0377, 0030, 0030, 0177, 0177, 0377, 0377, 0377, 0377, /* back */
+0275  '\r', '\r', '\r', '\r', 0215, 0215, 0215, 0215, '\r', '\r', U,    U,    U,    U,    U,    U,    /* Return */
+0276  '\t', '\t', '\t', '\t', 0211, 0211, 0211, 0211, "\021\t" "\021\t" "\021\t" "\021\t" "\021\t" "\021\t" "\021\t" "\021\t" /* Tab */
+0277  '`',  '`',  '~',  '~',  0340, 0340, 0376, 0376, 0036, 0036, 0036, 0036, U,    U,    U,    U,    /* ` */
+0300  '1',  '1',  '!',  '!',  0261, 0261, 0241, 0241, '1',  '1',  '!',  '!',  U,    U,    U,    U,    /* 1 */
+0301  'q',  'Q',  'Q',  'Q',  0361, 0361, 0321, 0321, 0021, 0021, 0021, 0021, 0221, 0221, 0221, 0221, /* q */
+0302  'a',  'A',  'A',  'A',  0341, 0341, 0301, 0301, 0001, 0001, 0001, 0001, 0201, 0201, 0201, 0201, /* a */
+0303  'z',  'Z',  'Z',  'Z',  0372, 0372, 0332, 0332, 0032, 0032, 0032, 0032, 0232, 0232, 0232, 0232, /* z */
+0305  '2',  '2',  '@',  '@',  0262, 0262, 0300, 0300, 0000, 0000, 0000, 0000, 0262, 0262, 0200, 0200, /* 2 */
+0306  'w',  'W',  'W',  'W',  0367, 0367, 0327, 0327, 0027, 0027, 0027, 0027, 0227, 0227, 0227, 0227, /* w */
+0307  's',  'S',  'S',  'S',  0363, 0363, 0323, 0323, 0023, 0023, 0023, 0023, 0223, 0223, 0223, 0223, /* s */
+0310  'x',  'X',  'X',  'X',  0370, 0370, 0330, 0330, 0030, 0030, 0030, 0030, 0230, 0230, 0230, 0230, /* x */
+0311  '<',  '<',  '>',  '>',  0274, 0274, 0276, 0276, U,    U,    U,    U,    U,    U,    U,    U,    /* < */
+0313  '3',  '3',  '#',  '#',  0263, 0263, 0243, 0243, 0033, 0033, '#',  '#',  U,    U,    U,    U,    /* 3 */
+0314  'e',  'E',  'E',  'E',  0345, 0345, 0305, 0305, 0005, 0005, 0005, 0005, 0205, 0205, 0205, 0205, /* e */
+0315  'd',  'D',  'D',  'D',  0344, 0344, 0304, 0304, 0004, 0004, 0004, 0004, 0204, 0204, 0204, 0204, /* d */
+0316  'c',  'C',  'C',  'C',  0343, 0343, 0303, 0303, 0003, 0003, 0003, 0003, 0203, 0203, 0203, 0203, /* c */
+0320  '4',  '4',  '$',  '$',  0264, 0264, 0244, 0244, 0034, 0034,  '$', '$',  U,    U,    U,    U,    /* 4 */
+0321  'r',  'R',  'R',  'R',  0362, 0362, 0322, 0322, 0022, 0022, 0022, 0022, 0222, 0222, 0222, 0222, /* r */
+0322  'f',  'F',  'F',  'F',  0346, 0346, 0306, 0306, 0006, 0006, 0006, 0006, 0206, 0206, 0206, 0206, /* f */
+0323  'v',  'V',  'V',  'V',  0366, 0366, 0326, 0326, 0026, 0026, 0026, 0026, 0226, 0226, 0226, 0226, /* v */
+0324  ' ',  ' ',  ' ',  ' ',  0240, 0240, 0240, 0240, 0000, 0000, 0000, 0000, 0200, 0200, 0200, 0200, /* space */
+0326  '5',  '5',  '%',  '%',  0265, 0265, 0245, 0245, 0035, 0035,  '%', '%',  U,    U,    U,    U,    /* 5 */
+0327  't',  'T',  'T',  'T',  0364, 0364, 0324, 0324, 0024, 0024, 0024, 0024, 0224, 0224, 0224, 0224, /* t */
+0330  'g',  'G',  'G',  'G',  0347, 0347, 0307, 0307, 0007, 0007, 0007, 0007, 0207, 0207, 0207, 0207, /* g */
+0331  'b',  'B',  'B',  'B',  0342, 0342, 0302, 0302, 0002, 0002, 0002, 0002, 0202, 0202, 0202, 0202, /* b */
+0333  '6',  '6',  '^',  '^',  0266, 0266, 0336, 0336, 0036, 0036, 0036, 0036, U,    U,    U,    U,    /* 6 */
+0334  'y',  'Y',  'Y',  'Y',  0371, 0371, 0331, 0331, 0031, 0031, 0031, 0031, 0231, 0231, 0231, 0231, /* y */
+0335  'h',  'H',  'H',  'H',  0350, 0350, 0310, 0310, 0010, 0010, 0010, 0010, 0210, 0210, 0210, 0210, /* h */
+0336  'n',  'N',  'N',  'N',  0356, 0356, 0316, 0316, 0016, 0016, 0016, 0016, 0216, 0216, 0216, 0216, /* n */
+0340  '7',  '7',  '&',  '&',  0267, 0267, 0246, 0246, 0037, 0037,  '&', '&',  U,    U,    U,    U,    /* 7 */
+0341  'u',  'U',  'U',  'U',  0365, 0365, 0325, 0325, 0025, 0025, 0025, 0025, 0225, 0225, 0225, 0225, /* u */
+0342  'j',  'J',  'J',  'J',  0352, 0352, 0312, 0312, 0012, 0012, 0012, 0012, 0212, 0212, 0212, 0212, /* j */
+0343  'm',  'M',  'M',  'M',  0355, 0355, 0315, 0315, 0015, 0015, 0015, 0015, 0215, 0215, 0215, 0215, /* m */
+0345  '8',  '8',  '*',  '*',  0270, 0270, 0252, 0252, 0177, 0177,  '*', '*',  U,    U,    U,    U,    /* 8 */
+0346  'i',  'I',  'I',  'I',  0351, 0351, 0311, 0311, 0011, 0011, 0011, 0011, 0211, 0211, 0211, 0211, /* i */
+0347  'k',  'K',  'K',  'K',  0353, 0353, 0313, 0313, 0013, 0013, 0013, 0013, 0213, 0213, 0213, 0213, /* k */
+0350  ',',  ',',  '<',  '<',  0254, 0254, 0274, 0274, U,    U,    U,    U,    U,    U,    U,    U,    /* , */
+0352  '9',  '9',  '(',  '(',  0271, 0271, 0250, 0250, '9',  '9',  '(',  '(',  U,    U,    U,    U,    /* 9 */
+0353  'o',  'O',  'O',  'O',  0357, 0357, 0317, 0317, 0017, 0017, 0017, 0017, 0217, 0217, 0217, 0217, /* o */
+0354  'l',  'L',  'L',  'L',  0354, 0354, 0314, 0314, 0014, 0014, 0014, 0014, 0214, 0214, 0214, 0214, /* l */
+0355  '.',  '.',  '>',  '>',  0256, 0256, 0276, 0276, U,    U,    U,    U,    U,    U,    U,    U,    /* . */
+0357  '0',  '0',  ')',  ')',  0260, 0260, 0251, 0251, '0',  '0',  ')',  ')',  U,    U,    U,    U,    /* 0 */
+0360  'p',  'P',  'P',  'P',  0360, 0360, 0320, 0320, 0020, 0020, 0020, 0020, 0220, 0220, 0220, 0220, /* p */
+0362  ';',  ';',  ':',  ':',  0273, 0273, 0272, 0272, U,    U,    U,    U,    U,    U,    U,    U,    /* ; */
+0363  '/',  '/',  '?',  '?',  0257, 0257, 0277, 0277, 0037, 0037, 0037, 0037, 0237, 0237, 0237, 0237, /* / */
+0365  '=',  '=',  '+',  '+',  0275, 0275, 0253, 0253, U,    U,    U,    U,    U,    U,    U,    U,    /* = */
+0366  ']',  ']',  '}',  '}',  0335, 0335, 0376, 0376, 0035, 0035, 0035, 0035, 0335, 0335, 0335, 0335, /* ] */
+0367  '\\', '\\', '|',  '|',  0334, 0334, 0374, 0374, 0034, 0034, 0034, 0034, 0334, 0334, 0334, 0334, /* \ */
+0371  '-',  '-',  '_',  '_',  0255, 0255, 0337, 0337, 0037, 0037, 0037, 0037, 0337, 0337, 0337, 0337, /* - */
+0372  '[',  '[',  '{',  '{',  0333, 0333, 0373, 0373, 0033, 0033, 0033, 0033, 0333, 0333, 0333, 0333, /* [ */
+0373  '\'', '\'', '"',  '"',  0247, 0247, 0242, 0242, U,    U,    U,    U,    U,    U,    U,    U,    /* ' */
+#
+# local variables:
+# tab-width: 4
+# End:
+#
+# This document is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+# 
+# This document is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+# 
+# You should have received a copy of the GNU General Public License
+# along with this document; see the file COPYING.  If not, write to the
+# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+#
+# arch-tag: cbaa71af-719b-4647-a2c1-cd4d36a4fc64
--- a/etc/emacs.csh	Sun Mar 18 14:00:43 2007 +0000
+++ b/etc/emacs.csh	Sun Mar 18 14:11:08 2007 +0000
@@ -1,22 +1,7 @@
 ### emacs.csh
 
-## Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
-##   Free Software Foundation, Inc.
-
 ## Author: Michael DeCorte
 
-## COPYING PERMISSIONS:
-
-## Permission is hereby granted, free of charge, to any person
-## obtaining a copy of this file, to deal in the file without
-## restriction, including without limitation the rights to use, copy,
-## modify, merge, publish, distribute, sublicense, and/or sell copies
-## of the file, and to permit persons to whom the file is furnished to
-## do so, subject to the following condition:
-##
-## The above copyright notice and this permission notice shall be
-## included in all copies or substantial portions of the file.
-
 ### Commentary:
 
 ## This defines a csh command named `edit' which resumes an
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/ms-7bkermit	Sun Mar 18 14:11:08 2007 +0000
@@ -0,0 +1,333 @@
+;;; Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+;;;   Free Software Foundation, Inc.
+
+;;; This file is designed for 7-bit connections.
+;;; Use the file ms-kermit if you have an 8-bit connection.
+
+;;; This kermit script maps the IBM-PC keyboard for use with Gnu Emacs.
+;;; The ALT key is used to generate Meta characters and, in conjunction
+;;; with the CTRL key, Control-Meta characters.  A few other useful
+;;; mappings are also performed.
+;;; Andy Lowry, May 1989
+
+;;; Exchange ESC and backquote... tilde stays put (shift-backquote)
+set key \27 `
+set key ` \27
+
+;;; BACKSPACE deletes backward one character
+set key scan \270 \127
+
+;;; The following mappings affect certain special keys... all the keys
+;;; are duplicated on the numeric keypad when NUM LOCK is off, but
+;;; the keypad versions are NOT mapped (string definition space too small
+;;; for that)
+
+;;; INSERT toggles overwrite mode
+set key scan \4434 \27xoverwrite-mode\13
+;;; HOME moves point to beginning of buffer
+set key scan \4423 \27<
+;;; PAGE-UP scrolls backward one screen
+set key scan \4425 \27v
+;;; DELETE deletes one character *forward*
+set key scan \4435 \4
+;;; END moves point to end of buffer
+set key scan \4431 \27>
+;;; PAGE-DOWN scrolls forward one screen
+set key scan \4433 \22
+;;; ARROW keys move in the appropriate directions
+set key scan \4424 \16
+set key scan \4427 \2
+set key scan \4432 \14
+set key scan \4429 \6
+
+;;; META versions of all the printing characters except uppercase
+;;; letters are generated by using the ALT key.  The definition string
+;;; consists of an ESC character followed by the META-ized character.
+;;; The characters are listed roughly left-to-right and top-to-bottom
+;;; as they appear on the keyboard
+set key scan \2345 \27`
+set key scan \2424 \27\o61	; need to use char code, since digit
+set key scan \2425 \27\o62	; would not terminate '\27'
+set key scan \2426 \27\o63
+set key scan \2427 \27\o64
+set key scan \2428 \27\o65
+set key scan \2429 \27\o66
+set key scan \2430 \27\o67
+set key scan \2431 \27\o70
+set key scan \2432 \27\o71
+set key scan \2433 \27\o60
+set key scan \2434 \27\45
+set key scan \2435 \27=
+set key scan \2857 \27~
+set key scan \2936 \27!
+set key scan \2937 \27@
+set key scan \2938 \27#
+set key scan \2939 \27$
+set key scan \2940 \27%
+set key scan \2941 \27^
+set key scan \2942 \27&
+set key scan \2943 \27*
+set key scan \2944 \27(
+set key scan \2945 \27)
+set key scan \2946 \27_
+set key scan \2947 \27+
+set key scan \2469 \27\9
+set key scan \2320 \27q
+set key scan \2321 \27w
+set key scan \2322 \27e
+set key scan \2323 \27r
+set key scan \2324 \27t
+set key scan \2325 \27y
+set key scan \2326 \27u
+set key scan \2327 \27i
+set key scan \2328 \27o
+set key scan \2329 \27p
+set key scan \2330 \27[
+set key scan \2842 \27{
+set key scan \2331 \27]
+set key scan \2843 \27}
+set key scan \2347 \27\
+set key scan \2859 \27|
+set key scan \2334 \27a
+set key scan \2335 \27s
+set key scan \2336 \27d
+set key scan \2337 \27f
+set key scan \2338 \27g
+set key scan \2339 \27h
+set key scan \2340 \27j
+set key scan \2341 \27k
+set key scan \2342 \27l
+set key scan \2343 \27\59
+set key scan \2855 \27:
+set key scan \2344 \27'
+set key scan \2856 \27"
+set key scan \2348 \27z
+set key scan \2349 \27x
+set key scan \2350 \27c
+set key scan \2351 \27v
+set key scan \2352 \27b
+set key scan \2353 \27n
+set key scan \2354 \27m
+set key scan \2355 \27,
+set key scan \2867 \27<
+set key scan \2356 \27.
+set key scan \2868 \27>
+set key scan \2357 \27/
+set key scan \2869 \27?
+
+;;; CONTROL-META characters are generated by using both the CTRL and
+;;; ALT keys simultaneously.  All the lowercase letters are included.
+;;; The definition string consists of an ESC character followed by
+;;; the control character corresponding to the letter.
+set key scan \3344 \27\17
+set key scan \3345 \27\23
+set key scan \3346 \27\5
+set key scan \3347 \27\18
+set key scan \3348 \27\20
+set key scan \3349 \27\25
+set key scan \3350 \27\21
+set key scan \3351 \27\9
+set key scan \3352 \27\15
+set key scan \3353 \27\16
+set key scan \3358 \27\1
+set key scan \3359 \27\19
+set key scan \3360 \27\4
+set key scan \3361 \27\6
+set key scan \3362 \27\7
+set key scan \3363 \27\8
+set key scan \3364 \27\10
+set key scan \3365 \27\11
+set key scan \3366 \27\12
+set key scan \3372 \27\26
+set key scan \3373 \27\24
+set key scan \3374 \27\3
+set key scan \3375 \27\22
+set key scan \3376 \27\2
+set key scan \3377 \27\14
+set key scan \3378 \27\13
+
+end of msiem2.ini
+------------------
+
+msiema.hlp
+-----------
+Date:     Wed, 14 Sep 88 05:20:08 GMT
+From:     spolsky@YALE.ARPA
+Subject:  Using MS kermit 2.31 with emacs
+Keywords: MS-DOS Kermit 2.31, EMACS, Meta Key
+
+If you are using kermit (version 2.31 only) with emacs on a mainframe, the
+following file may help you. It assigns all the Alt-keys so that the Alt key
+may be used as a "Meta" shift, e.g. Alt-x produces M-x, etc.  Note that it
+will distinguish correctly between upper and lower case and accepts all
+printables. (If anybody has the patience to do the Meta-Ctrl combinations,
+please post them!)  This actually sends "escapes" so you don't need 8 bits.
+This file also sets up the cursor keys to behave as expected.
+
+On extended keyboards (the ones with a separate cursor pad, like PS/2s) you
+also get assignments for Page Up/Down, Home, End, Insert, Delete, etc.
+
+Please let me know if you find any problems with this.
+
+Joel Spolsky             bitnet: spolsky@yalecs     uucp: ...!yale!spolsky
+Yale University          arpa:   spolsky@yale.edu   voicenet: 203-436-1483
+
+[Ed. - Thanks, Joel!  Your key definitions file has been put in the kermit
+distribution area as msiema.ini ("ms" for MS-Kermit, "i" because it's an
+initialization file, "ema" for EMACS), along with this message as msiema.hlp.]
+
+end of msiema.hlp
+-----------------
+
+
+msiema.ini
+------------
+; Emacs keyboard layout for Kermit 2.31
+; by Joel Spolsky, Yale Univ.  Save this in a file, then
+; initialize it by issuing the kermit command
+; take filename
+; It will set up the keyboard to allow ALT to be used
+; as a meta-key, and will allow cursor keys to be used
+; with emacs.
+
+; First, define all the ALT keys to send ESC+key
+; to simulate "meta"
+
+set key \2320 \27q  ;; letters: unshifted
+set key \2321 \27w
+set key \2322 \27e
+set key \2323 \27r
+set key \2324 \27t
+set key \2325 \27y
+set key \2326 \27u
+set key \2327 \27i
+set key \2328 \27o
+set key \2329 \27p
+set key \2334 \27a
+set key \2335 \27s
+set key \2336 \27d
+set key \2337 \27f
+set key \2338 \27g
+set key \2339 \27h
+set key \2340 \27j
+set key \2341 \27k
+set key \2342 \27l
+set key \2348 \27z
+set key \2349 \27x
+set key \2350 \27c
+set key \2351 \27v
+set key \2352 \27b
+set key \2353 \27n
+set key \2354 \27m
+set key \2832 \27Q ;; letters: shifted
+set key \2833 \27W
+set key \2834 \27E
+set key \2835 \27R
+set key \2836 \27T
+set key \2837 \27Y
+set key \2838 \27U
+set key \2839 \27I
+set key \2840 \27O
+set key \2841 \27P
+set key \2846 \27A
+set key \2847 \27S
+set key \2848 \27D
+set key \2849 \27F
+set key \2850 \27G
+set key \2851 \27H
+set key \2852 \27J
+set key \2853 \27K
+set key \2854 \27L
+set key \2860 \27Z
+set key \2861 \27X
+set key \2862 \27C
+set key \2863 \27V
+set key \2864 \27B
+set key \2865 \27N
+set key \2866 \27M
+set key \2857 \27\126    ; ALT + ~   ;; special symbols begin here
+set key \2345 \27\96     ; ALT + `
+set key \2936 \27\33     ; ALT + !
+set key \2937 \27\64     ; ALT + @
+set key \2938 \27\35     ; ALT + #
+set key \2939 \27\36     ; ALT + $
+set key \2940 \27\37     ; ALT + %
+set key \2941 \27\94     ; ALT + ^
+set key \2942 \27\38     ; ALT + &
+set key \2943 \27\42     ; ALT + *
+set key \2944 \27\40     ; ALT + (
+set key \2945 \27\41     ; ALT + )
+set key \2946 \27\95     ; ALT + _
+set key \2947 \27\43     ; ALT + +
+set key \2842 \27\123    ; ALT + {
+set key \2843 \27\125    ; ALT + }
+set key \2330 \27\91     ; ALT + [
+set key \2331 \27\93     ; ALT + ]
+set key \2859 \27\124    ; ALT + :
+set key \2347 \27\92     ; ALT + \
+set key \2867 \27<       ; ALT + <
+set key \2868 \27>       ; ALT + >
+set key \2343 \27\59     ; ALT + ;
+set key \2855 \27\58     ; ALT + :
+set key \2344 \27\39     ; ALT + '
+set key \2856 \27\34     ; ALT + "
+set key \2355 \27\44     ; ALT + ,
+set key \2356 \27\46     ; ALT + .
+set key \2357 \27\47     ; ALT + /
+set key \2869 \27\63     ; ALT + ?
+set key \2424 \27\49  ;; numbers
+set key \2425 \27\50
+set key \2426 \27\51
+set key \2427 \27\52
+set key \2428 \27\53
+set key \2429 \27\54
+set key \2430 \27\55
+set key \2431 \27\56
+set key \2432 \27\57
+set key \2433 \27\48
+
+;; These 6 special keys for extended (PS/2) keyboards:
+set key \4434 \25      ;; Insert is like ^Y - yank from kill ring
+set key \4435 \23      ;; Delete is like ^W - kill to ring
+set key \4423 \1       ;; Home is ^A
+set key \4431 \5       ;; End is ^E
+set key \4425 \27V     ;; Page up is Esc-V
+set key \4433 \22      ;; Page dn is ^v
+
+set key \328 \16       ;; up cursor is ^P
+set key \331 \2        ;; left cursor is ^B
+set key \333 \6        ;; right cursor is ^F
+set key \336 \14       ;; down cursor is ^N
+set key \4427 \2       ;; left cursor on extended kbd
+set key \4432 \14      ;; down cursor on extended kbd
+set key \4424 \16      ;; up cursor on extended kbd
+set key \4429 \6       ;; right cursor on extended kbd
+
+set key \5491 \27b     ;; ctrl-left cursor is M-b
+set key \5492 \27f     ;; ctrl-right cursor is M-f
+
+;; move kermit's screen scroll (playback) features to Alt- Home,End,PgUp,PgDn
+;; (this is an issue for extended keyboards only)
+
+set key \2455 \khomscn
+set key \2463 \kendscn
+set key \2457 \kupscn
+set key \2465 \kdnscn
+
+;;; COPYING PERMISSIONS:
+;;; 
+;;;   This document is free software; you can redistribute it and/or modify
+;;;   it under the terms of the GNU General Public License as published by
+;;;   the Free Software Foundation; either version 2 of the License, or
+;;;   (at your option) any later version.
+;;;
+;;;   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
+;;;   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 St, Fifth Floor, Boston, MA  02110-1301  USA
+
+;;; arch-tag: b066a884-e956-4f46-9d9c-13502f6cf7a6
--- a/etc/ms-kermit	Sun Mar 18 14:00:43 2007 +0000
+++ b/etc/ms-kermit	Sun Mar 18 14:11:08 2007 +0000
@@ -1,3 +1,7 @@
+;;; The code here is forced by the interface, and is not subject to
+;;; copyright, constituting the only possible expression of the algorithm
+;;; in this format.
+
 ;;; This file is designed for an 8-bit connection.
 ;;; Use the file ms-7bkermit if you have a 7-bit connection.
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/ulimit.hack	Sun Mar 18 14:11:08 2007 +0000
@@ -0,0 +1,59 @@
+#!/bin/sh
+#
+# ulimit.hack: Create an intermediate program for use in
+# between kernel initialization and init startup.
+# This is needed on a 3b system if the standard CDLIMIT is
+# so small that the dumped Emacs file cannot be written.
+# This program causes everyone to get a bigger CDLIMIT value
+# so that the dumped Emacs can be written out.
+#
+# Users of V.3.1 and later should not use this; see etc/MACHINES
+# and reconfig your kernel's CDLIMIT parameter instead.
+#
+# Caveat: Heaven help you if you screw this up.  This puts
+# a new program in as /etc/init, which then execs the real init.
+#
+cat > ulimit.init.c << \EOF
+main(argc, argv)
+int argc;
+char *argv[];
+{
+	ulimit(2, 262144L);	/* "2" is the "set" command. */
+	/* 262,144 allows for 128Mb files to be written. */
+	/* If that value isn't suitable, roll your own.  */
+	execv("/etc/real.init", argv);
+}
+EOF
+#
+# Compile it and put it in place of the usual init program.
+#
+cc ulimit.init.c -o ulimit.init
+mv /etc/init /etc/real.init
+mv ulimit.init /etc/ulimit.init
+ln /etc/ulimit.init /etc/init
+mv ulimit.init.c /etc/ulimit.init.c	# to keep src for this hack nearby.
+chmod 0754 /etc/init
+exit 0
+#
+# Upon system reboot, all processes will inherit the new large ulimit.
+
+# Copyright (C) 1999, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+#   Free Software Foundation, Inc.
+
+# COPYING PERMISSIONS:
+#
+#   This document is free software; you can redistribute it and/or modify
+#   it under the terms of the GNU General Public License as published by
+#   the Free Software Foundation; either version 2 of the License, or
+#   (at your option) any later version.
+#
+#   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
+#   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 St, Fifth Floor, Boston, MA  02110-1301  USA
+
+# arch-tag: 6f9a7072-9d07-4431-b0bb-e867648ad0b4
--- a/lisp/ChangeLog	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/ChangeLog	Sun Mar 18 14:11:08 2007 +0000
@@ -1,3 +1,272 @@
+2007-03-11  Richard Stallman  <rms@gnu.org>
+
+	* emacs-lisp/bytecomp.el (byte-compile-warning-prefix): 
+	Correctly compute line number.
+	
+2007-03-11  Guanpeng Xu  <herberteuler@hotmail.com>
+
+	* type-break.el (type-break-get-previous-count): 
+	Repeat previous change here.
+
+2007-03-11  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* progmodes/grep.el (grep-find-ignored-directories): Add .git and
+	.bzr to list.
+
+2007-03-11  Andreas Schwab  <schwab@suse.de>
+
+	* diff-mode.el (diff-apply-hunk): Use proper format string for
+	error.
+
+2007-03-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* mail/emacsbug.el (report-emacs-bug): Don't hard code the "X" name.
+
+2007-03-10  Chong Yidong  <cyd@stupidchicken.com>
+
+	* faces.el (face-set-after-frame-default): Recalculate face
+	customizations after applying X resources.
+
+2007-03-10  Ryan Yeske  <rcyeske@gmail.com>
+
+	* net/rcirc.el (rcirc-timeout-seconds): New variable.
+	(rcirc-keepalive-seconds): Remove variable.
+	(rcirc-server-name, rcirc-timeout-timer, rcirc-connecting)
+	(rcirc-process, rcirc-user-disconnect): New variables.
+	(rcirc-connect): Initalize new variables.
+	(rcirc-keepalive): Don't send keepalive pings before connection
+	is completed.
+	(rcirc-sentinel): Do mark all channels with activity when
+	connection is dropped.  Run hook with process buffer local.
+	(rcirc-reschedule-timeout, rcirc-delete-process): New functions.
+	(rcirc-buffer-process): Return value of rcirc-process if
+	rcirc-server-buffer is nil.
+	(rcirc-server-name): Return the reported server name.
+	(rcirc-update-prompt): Simplify computation of the server name.
+	(rcirc-format-response-string): Likewise.
+	(rcirc-handler-001): Mark server as connected, record the reported
+	server name, and schedule a timeout.
+	(rcirc-track-nick): Add a spec for the tty class.
+	(rcirc-user-non-nick): Remove function.
+	(rcirc-nick-prefix-chars): Add variable.
+	(rcirc-user-nick): Use above variable.
+
+2007-03-10  Johan Bockg,be(Brd  <bojohan@dd.chalmers.se>
+
+	* icomplete.el (icomplete-tidy, icomplete-exhibit):
+	Bind deactivate-mark to nil.
+
+2007-03-10  Martin Rudalics  <rudalics@gmx.at>
+
+	* complete.el (PC-do-completion): Bind dirlength to nil to avoid
+	that buffer contents get erased during completion.
+
+2007-03-10  Glenn Morris  <rgm@gnu.org>
+
+	* woman.el (woman-change-fonts): Add a hack to deal with
+	font-escape followed by "." at start of a line.
+	(woman2-IP): Add a hack to deal with consecutive requests.
+	(woman2-tagged-paragraph): Extend existing hack to handle "sp".
+
+2007-03-10  Alan Mackenzie  <acm@muc.de>
+
+	* progmodes/cc-mode.el (c-before-change): Wrap in save-match-data.
+
+2007-03-09  Richard Stallman  <rms@gnu.org>
+
+	* abbrev.el (abbrev): Add `provide'.
+
+2007-03-09  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* net/ange-ftp.el (ange-ftp-try-passive-mode): Doc fix.
+
+2007-03-09  Martin Rudalics  <rudalics@gmx.at>
+
+	* complete.el (PC-try-completion): New function.
+	(PC-do-completion, read-file-name-internal): Use it instead of
+	try-completion.
+
+2007-03-08  Alan Mackenzie  <acm@muc.de>
+
+	Remove stale tokens from `c-found-types' cache.
+
+	* progmodes/cc-mode.el (c-unfind-enclosing-token)
+	(c-unfind-coalesced-tokens, c-before-change): New functions.
+	(c-maybe-stale-found-type): New variable.
+
+	* progmodes/cc-engine.el (c-partial-ws-p, c-unfind-type)
+	(c-trim-found-types): New functions.
+
+2007-03-08  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* smerge-mode.el (smerge-remove-props): Don't mark the buffer modified.
+	(debug-ignored-errors): Add entry from smerge-match-conflict.
+
+2007-03-08  J.D. Smith  <jdsmith@as.arizona.edu>
+
+	* progmodes/idlw-help.el (idlwave-do-context-help1): Don't visit
+	special help topics for keywords.
+	(idlwave-help-assistant-command): Include ".exe" for ms-dos
+	etc. Assistant command.
+
+2007-03-08  Chong Yidong  <cyd@stupidchicken.com>
+
+	* replace.el (occur-engine): Move buffer-undo-list binding...
+	(occur-1): ...to here.
+
+	* complete.el (PC-bindings): Rebind M-TAB in read-expression-map.
+
+	* simple.el (minibuffer-completing-symbol): New var.
+	(eval-expression): Use it.
+	(completion-setup-function): Don't bind completion-base-size when
+	completing a symbol in the minibuffer.
+
+2007-03-08  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gud.el (gdb): Pop up current GUD buffer if user
+	tries to start a second session in graphical mode.
+
+2007-03-07  Miles Bader  <miles@gnu.org>
+
+	* international/isearch-x.el
+	(isearch-process-search-multibyte-characters):
+	Strip text-properties from PROMPT to avoid an error from read-string.
+
+2007-03-07  Kim F. Storm  <storm@cua.dk>
+
+	* complete.el (PC-bindings): Remap lisp-complete-symbol to
+	PC-lisp-complete-symbol instead of binding M-TAB in global-map.
+
+2007-03-07  Micha,Ak(Bl Cadilhac  <michael@cadilhac.name>
+
+	* complete.el (PC-do-completion): Delete duplicates in the list of
+	possible completions.
+
+2007-03-07  Glenn Morris  <rgm@gnu.org>
+
+	* ses.el (ses-mode): Doc fix.
+
+2007-03-06  Kim F. Storm  <storm@cua.dk>
+
+	* isearch.el (isearch-message-prefix): Undo 2007-03-01 change.
+
+2007-03-06  Kenichi Handa  <handa@m17n.org>
+
+	* term/x-win.el (x-select-utf8-or-ctext): Improve the strategy.
+
+2007-03-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* simple.el (completion-setup-function): Improve last fix so it doesn't
+	set it to a relative directory name either.
+
+2007-03-05  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
+
+	* ps-print.el: Replace some (defvar VAR) by (defvar VAR nil).
+
+2007-03-05  Richard Stallman  <rms@gnu.org>
+
+	* emacs-lisp/re-builder.el (reb-re-syntax): Fix custom type.
+
+	* files.el (find-file-noselect): No error if file no longer exists.
+	Display a message and avoid other questions.
+
+2007-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* pcomplete.el (pcomplete-show-completions): Improve last change, so
+	as not to use an invisible window and to create a window if none exist.
+
+	* progmodes/python.el (python-send-command): Restart proc if necessary.
+	(python-proc): Simplify.
+
+2007-03-05  David Hansen  <david.hansen@gmx.net>  (tiny change)
+
+	* pcomplete.el (pcomplete-show-completions): Search all frames for
+	completions buffer.
+
+2007-03-05  Chong Yidong  <cyd@stupidchicken.com>
+
+	* cus-edit.el (customize-save-variable): Clear customized-value
+	property (saved values are now put in theme-value property).
+	(customize-set-variable): Doc fix.
+
+	* complete.el (PC-do-completion): If completion-ignore-case is
+	non-nil, replace field with completion string before exiting.
+
+2007-03-05  Michael Albinus  <michael.albinus@gmx.de>
+
+	* net/tramp.el (tramp-make-temp-file): New parameter FILENAME.
+	Append its extension to the resulting temporary file name.
+	(tramp-handle-file-local-copy, tramp-handle-write-region): Apply it.
+
+	* net/tramp-smb.el (tramp-smb-handle-file-local-copy)
+	(tramp-smb-handle-write-region): Apply it.
+
+2007-03-05  Alin C. Soare  <alinsoar@voila.fr>  (tiny change)
+
+	* emacs-lisp/lisp-mode.el (calculate-lisp-indent):
+	Redo previous change.
+
+2007-03-04  Kevin Rodgers  <kevin.d.rodgers@gmail.com>
+
+	* diff-mode.el (diff-mode): Doc fix.
+
+2007-03-05  Kenichi Handa  <handa@m17n.org>
+
+	* international/characters.el: Set category `l' (latin)
+	for more characters.
+
+2007-03-04  Kim F. Storm  <storm@cua.dk>
+
+	* emacs-lisp/authors.el (authors-aliases): Add alias.
+
+2007-03-04  Glenn Morris  <rgm@gnu.org>
+
+	* progmodes/hideshow.el (hs-minor-mode): Turn mode off and show
+	all when switching major mode.
+	(hs-minor-mode, hs-c-start-regexp, hs-block-start-regexp)
+	(hs-block-start-mdata-select, hs-block-end-regexp)
+	(hs-forward-sexp-func, hs-adjust-block-beginning):
+	Do not make these variables permanent-local.
+
+2007-03-04  Richard Stallman  <rms@gnu.org>
+
+	* progmodes/cperl-mode.el (cperl-mode):
+	Modify cperl-compilation-error-regexp-alist by appending.
+
+	* emacs-lisp/edebug.el (edebug-kill-buffer): New function.
+	(edebug-mode): Add the hook.
+	(edebug-recursive-edit): Remove the hook on exiting.
+
+	* type-break.el (type-break-get-previous-time):
+	Handle end-of-file errors specially
+	so they don't get reported wrong in .emacs.
+
+	* startup.el (fancy-splash-text): Clarify text.
+
+	* simple.el (beginning-of-buffer, end-of-buffer):
+	Avoid treating plain C-u like numeric arg.
+
+	* simple.el (completion-setup-function): Don't set
+	default-directory to nil.
+
+	* shell.el (shell-dirstack-query): Doc fix.
+
+	* mouse.el (mouse-drag-mode-line-1, mouse-drag-vertical-line):
+	Don't select the window -- pass it to primitives instead.
+
+	* faces.el (minibuffer-prompt): Use medium blue by default.
+
+2007-03-04  David Kastrup  <dak@gnu.org>
+
+	* jit-lock.el (jit-lock-stealth-time): Change default to nil.
+	Preserve 16 as default value for "seconds" when customizing.
+
+2007-03-04  Carsten Dominik  <dominik@science.uva.nl>
+
+	* textmodes/org.el (org-self-insert-command)
+	(orgtbl-self-insert-command, org-delete-char)
+	(org-delete-backward-char): Set the `flyspell-delayed' property.
+
 2007-03-03  Chong Yidong  <cyd@stupidchicken.com>
 
 	* international/mule.el (find-auto-coding): Don't search for
@@ -116,7 +385,8 @@
 
 2007-02-26  Andrey Zhdanov  <susuman@hotmail.com>  (tiny change)
 
-	(gud-pdb-marker-regexp): Add optional <module> keyword for Python 2.5.
+	* progmodes/gud.el (gud-pdb-marker-regexp): Add optional <module>
+	keyword for Python 2.5.
 
 2007-02-26  Romain Francoise  <romain@orebokech.com>
 
@@ -154,32 +424,32 @@
 	(org-table-toggle-coordinate-overlays): New functions.
 	(org-table-overlay-coordinates, org-table-coordinate-overlays):
 	New variables.
-	(org-startup-with-deadline-check): Option removed.
+	(org-startup-with-deadline-check): Remove option.
 	(org-mode): Remove deadline check on startup.
-	(org-table-limit-column-width): Option removed.
-	(org-table-formula-numbers-only): Option removed.
-	(org-link-style, org-link-format): Options removed.
-	(org-select-agenda-window, org-fit-agenda-window): Options removed.
+	(org-table-limit-column-width): Remove option.
+	(org-table-formula-numbers-only): Remove option.
+	(org-link-style, org-link-format): Remove options.
+	(org-select-agenda-window, org-fit-agenda-window): Remove options.
 	(org-export-ascii-show-new-buffer)
-	(org-export-html-show-new-buffer): Options removed.
-	(org-activate-links): Camel option removed.
-	(org-file-link-context-use-camel-case): Option removed.
-	(org-camel-regexp): Veriable removed.
-	(org-activate-camels): Function removed.
-	(org-store-link): Removed Camel stuff.
-	(org-make-org-heading-camel): Function removed.
-	(org-open-at-point): Removed camel stuff.
-	(org-link-search): Removed camel stuff.
+	(org-export-html-show-new-buffer): Remove options.
+	(org-activate-links): Remove camel option.
+	(org-file-link-context-use-camel-case): Remove option.
+	(org-camel-regexp): Remove variable.
+	(org-activate-camels): Remove function.
+	(org-store-link): Remove Camel stuff.
+	(org-make-org-heading-camel): Remove function.
+	(org-open-at-point): Remove camel stuff.
+	(org-link-search): Remove camel stuff.
 	(org-camel-to-words): Function removed.
 	(org-get-agenda-file-buffer): Make sure we prepare the base
 	buffers, not any indirect buffers.
 	(org-sort-entries): Sort top-level when not on a headline, and no
 	active region.
 	(org-in-regexp): New function.
-	(org-search-not-self): Renamed from `org-search-not-link'.
+	(org-search-not-self): Rename from `org-search-not-link'.
 	(org-open-link-marker): New variable.
 	(org-open-at-point): Set `org-open-link-marker'.
-	(org-print-icalendar-entries): Fixed bug with excluding DONE
+	(org-print-icalendar-entries): Fixe bug with excluding DONE
 	entries from the exported list.
 	(org-edit-formula-lisp-indent): New command.
 	(orgtbl-to-texinfo, orgtbl-to-html): New functions.
@@ -195,7 +465,7 @@
 	(org-upgrade-old-links)
 	(org-table-modify-formulas, org-table-replace-in-formulas)
 	(org-table-find-dataline)
-	(org-table-get-vertical-vector): Functions removed.
+	(org-table-get-vertical-vector): Remove functions.
 	(org-table-remove-rectangle-highlight)
 	(org-time-stamp-format, org-toggle-log-option)
 	(org-table-highlight-rectangle)
@@ -228,17 +498,17 @@
 	(org-table-edit-scroll, org-table-edit-scroll-down)
 	(org-set-frame-title, org-show-reference)
 	(org-unhighlight-once, org-verify-change-for-undo): New functions.
-	(org-show-variable): Command removed.
+	(org-show-variable): Remove command.
 	(org-add-log-maybe): New arguments STATE, FINDPOS
-	(org-table-sort-lines): Rewritten from scratch.
+	(org-table-sort-lines): Rewrite from scratch.
 	(org-link-search): New argument AVOID-POS.
-	(org-print-icalendar-entries): Argument CATEGORY removed.
-	(org-run-agenda-series): Argument WONDOW removed.
+	(org-print-icalendar-entries): Remove argument CATEGORY.
+	(org-run-agenda-series): Remove argument WONDOW.
 	(org-next-link, org-previous-link): New commands.
 	(org-agenda-date-format): New option.
 	(org-table-iterate): New command.
 	(org-table-modify-formulas)
-	(org-table-replace-in-formulas): Functions removed.
+	(org-table-replace-in-formulas): Remove functions.
 	(org-table-fix-formulas): New function.
 	(org-table-insert-column, org-table-delete-column)
 	(org-table-move-column): Use `org-table-fix-formulas'.
@@ -259,8 +529,8 @@
 	(org-read-date): Accept "+N" as input for a date relative to the
 	current date.
 	(org-remove-subtree-entries-from-agenda): New function.
-	(org-agenda-archive, org-agenda-kill): Use
-	`org-remove-subtree-entries-from-agenda'.
+	(org-agenda-archive, org-agenda-kill):
+	Use `org-remove-subtree-entries-from-agenda'.
 	(org-do-sort, org-sort-entries): New functions.
 	(org-sort): New command.
 	(org-table-sort-lines): Use `org-do-sort'.
@@ -268,7 +538,7 @@
 	(org-table-number-regexp): Require 0x... to identify as number
 	in tables.
 	(org-startup-options): New keywords for note taking.
-	(org-upgrade-old-links): Function removed.
+	(org-upgrade-old-links): Remove function.
 	(org-get-repeat): New function.
 	(org-show-context): Also show siblings on current level.
 	(org-show-siblings): New function.
@@ -397,7 +667,7 @@
 	* pgg-gpg.el (pgg-gpg-process-region): Make USE-AGENT nil
 	if PASSPHRASE is given.
 
-2007-02-17  Chris Moore <dooglus@gmail.com>
+2007-02-17  Chris Moore  <dooglus@gmail.com>
 
 	* jka-cmpr-hook.el (jka-compr-compression-info-list):
 	Recognize backups of bz2 compressed files.
@@ -1412,8 +1682,7 @@
 
 2007-01-03  Alan Mackenzie  <acm@muc.de>
 
-	* progmode/cc-cmds.el (c-mask-paragraph): Fix yesterday's buggy
-	patch.
+	* progmode/cc-cmds.el (c-mask-paragraph): Fix yesterday's buggy patch.
 
 2007-01-03  Chris Moore  <christopher.ian.moore@gmail.com>
 
@@ -15669,7 +15938,7 @@
 
 	* progmodes/cc-defs.el (c-emacs-features): Don't assume point-min==1.
 
-2005-12-06  Nozomu Ando  <nand@mac.com>  (tiny patch)
+2005-12-06  Nozomu Ando  <nand@mac.com>
 
 	* mail/smtpmail.el (smtpmail-try-auth-methods): Make password
 	prompts work for AUTH PLAIN.  Also reported by Steve Allan
@@ -29217,7 +29486,7 @@
 	* progmodes/python.el (python-close-block-statement-p)
 	(python-outdent-p, python-current-defun): Use symbol-end.
 
-2005-03-25  Karl Chen  <quarl@cs.berkeley.edu>  (tiny change)
+2005-03-25  Karl Chen  <quarl@cs.berkeley.edu>
 
 	* files.el (save-some-buffers): Doc fix.
 
@@ -31902,7 +32171,7 @@
 	* electric.el (Electric-pop-up-window): Use fit-window-to-buffer
 	instead of calculating the right size.
 
-2005-01-02  Karl Chen  <quarl@cs.berkeley.edu>  (tiny change)
+2005-01-02  Karl Chen  <quarl@cs.berkeley.edu>
 
 	* vc-svn.el (vc-svn-diff): Stay local if possible.
 
--- a/lisp/ChangeLog.10	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/ChangeLog.10	Sun Mar 18 14:11:08 2007 +0000
@@ -2972,7 +2972,7 @@
 	(rename-buffer): Use the `newname' arg as base.
 	(create-file-buffer): Split the file name into base and dirname.
 
-2003-05-09  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
+2003-05-09  Jesper Harder  <harder@ifa.au.dk>
 
 	* mail/smtpmail.el (smtpmail-send-queued-mail): Don't use kill-line.
 
@@ -3275,7 +3275,7 @@
 	* filesets.el (filesets-data): Add another defvar.
 	(filesets-verbosity): Doc fix.
 
-2003-05-02  Tak Ota  <Takaaki.Ota@am.sony.com>  (tiny change)
+2003-05-02  Tak Ota  <Takaaki.Ota@am.sony.com>
 
 	* recentf.el (recentf-cleanup): Swap tests for exclusion and
 	accessibility.
@@ -3492,10 +3492,10 @@
 	(Info-display-images-node): New functions for displaying images.
 	(Info-select-node): Call Info-display-images-node.
 
-2003-04-25  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+2003-04-25  David Ponce <david.ponce@wanadoo.fr>
 
 	* files.el (file-relative-name): Recognize "c:/foo" as absolute
-	file name.  Tiny change from David PONCE <david.ponce@wanadoo.fr>.
+	file name.
 
 2003-04-24  Sam Steingold  <sds@gnu.org>
 
@@ -5595,7 +5595,7 @@
 	beginning-of-defun to the non-existing command
 	sh-beginning-of-compound-command.
 
-2003-02-12  Karl Chen  <quarl@hkn.eecs.berkeley.edu>  (tiny change)
+2003-02-12  Karl Chen  <quarl@hkn.eecs.berkeley.edu>
 
 	* files.el (find-alternate-file): Check whether `dired-directory'
 	is bound.
@@ -11971,7 +11971,7 @@
 	* calendar/appt.el (appt-delete): Use substring-no-properties.
 	(appt-make-list): Don't use prin1-to-string; use the string unchanged.
 
-2002-08-15  Jan Nieuwenhuizen  <janneke@gnu.org>  (tiny change)
+2002-08-15  Jan Nieuwenhuizen  <janneke@gnu.org>
 
 	* server.el (server-process-filter): Simplify code.
 	(server-goto-line-column): New function.
@@ -12378,7 +12378,7 @@
 	* dired.el: Hide disabling of dired-find-alternate-file behind
 	autoload-cookie.
 
-2002-07-31  Tak Ota  <Takaaki.Ota@am.sony.com>  (tiny change)
+2002-07-31  Tak Ota  <Takaaki.Ota@am.sony.com>
 
 	* makefile.w32-in: Revert some changes from 2002-07-23 because they
 	don't work on MSVC/nmake builds.
@@ -22919,14 +22919,15 @@
 	* startup.el: Document command line option --no-window-system
 	instead of --no-windows.
 
+2001-10-30  David Ponce <david.ponce@wanadoo.fr>
+
+	* font-lock.el (java-font-lock-syntactic-face-function): New fun.
+	(font-lock-defaults-alist): Use it.
+
 2001-10-30  Stefan Monnier  <monnier@cs.yale.edu>
 
 	* progmodes/autoconf.el (autoconf-mode): Fix comment-start-skip.
 
-	* font-lock.el (java-font-lock-syntactic-face-function): New fun.
-	(font-lock-defaults-alist): Use it.
-	From David Ponce <david.ponce@wanadoo.fr>
-
 	* progmodes/perl-mode.el (perl-indent-line): Use `eq' to compare
 	output of `char-after'.
 
--- a/lisp/ChangeLog.11	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/ChangeLog.11	Sun Mar 18 14:11:08 2007 +0000
@@ -4993,7 +4993,7 @@
 
 	* international/latin1-disp.el (latin1-char-displayable-p): Likewise.
 
-2004-08-21  Peter Seibel  <peter@javamonkey.com>  (tiny patch)
+2004-08-21  Peter Seibel  <peter@javamonkey.com>  (tiny change)
 
 	* emacs-lisp/cl-indent.el (lisp-indent-defmethod):
 	Correct indentation of DEFMETHODS with non-standard method
@@ -6043,12 +6043,12 @@
 	* international/utf-8.el (ccl-decode-mule-utf-8): Fix previous change.
 	(ccl-untranslated-to-ucs): Fix typo.
 
-2004-06-12  Karl Chen  <quarl@hkn.eecs.berkeley.edu>  (tiny change)
+2004-06-12  Karl Chen  <quarl@hkn.eecs.berkeley.edu>
 
 	* progmodes/python.el (python-open-block-statement-p):
 	Fix indentation after a block opening that contains a comment.
 
-2004-06-12  J,Ai(Br,At(Bme Marant  <jerome@marant.org>  (tiny change)
+2004-06-12  J,Ai(Br,At(Bme Marant  <jerome@marant.org>
 
 	* bindings.el (completion-ignored-extensions): Add file extensions
 	of Python byte-compiled files.
@@ -6982,7 +6982,7 @@
 	(byte-goto-log-buffer): Delete.
 	(byte-compile-log-file): Call compilation-forget-errors.
 
-2004-05-19  Takaaki Ota  <Takaaki.Ota@am.sony.com>  (tiny change)
+2004-05-19  Takaaki Ota  <Takaaki.Ota@am.sony.com>
 
 	* net/ldap.el (ldap-search-internal): Avoid mixing standard error
 	output messages into the search result.
@@ -6996,7 +6996,7 @@
 
 	* international/characters.el: Fix syntax (open/close) of CJK chars.
 
-2004-05-18  Karl Chen  <quarl@hkn.eecs.berkeley.edu>  (tiny change)
+2004-05-18  Karl Chen  <quarl@hkn.eecs.berkeley.edu>
 
 	* help-mode.el (help-go-back): Don't depend on position of back button.
 
@@ -7121,7 +7121,7 @@
 	* calendar/appt.el (appt-disp-window):
 	Use `calendar-set-mode-line' for a centered mode-line.
 
-2004-05-13  Takaaki Ota  <Takaaki.Ota@am.sony.com>  (tiny change)
+2004-05-13  Takaaki Ota  <Takaaki.Ota@am.sony.com>
 
 	* calendar/appt.el (appt-disp-window): Do not split window
 	excessively when `split-height-threshold' is low.
@@ -10484,12 +10484,12 @@
 	* loadhist.el (unload-feature): Doc fix.  Rename flist to
 	unload-hook-features-list.
 
-2004-02-16  Jay Belanger  <belanger@truman.edu>  (tiny change)
+2004-02-16  Jay Belanger  <belanger@truman.edu>
 
 	* calc/calc-embed.el (calc-do-embedded-activate): Add autoload
 	cookie.  Don't check if we are looking-at open-formula.
 
-2004-02-16  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
+2004-02-16  Jesper Harder  <harder@ifa.au.dk>
 
 	* subr.el (match-string-no-properties): Use substring-no-properties.
 
@@ -10564,7 +10564,7 @@
 	* international/ccl.el (ccl-compile-write): Pass `left' to
 	ccl-embed-code to generate correct code of write-expr-register.
 
-2004-02-15  Dan Nicolaescu  <dann@ics.uci.edu>  (tiny change)
+2004-02-15  Dan Nicolaescu  <dann@ics.uci.edu>
 
 	* progmodes/grep.el (grep-compute-defaults): Fix typos.
 
@@ -10766,7 +10766,7 @@
 	* vc.el (with-vc-file): Fix unsafe uses of error.
 	(vc-cancel-version): Likewise.
 
-2004-02-08  Jan Nieuwenhuizen  <jan.nieuwenhuizen@aspiratie.nl>  (tiny change)
+2004-02-08  Jan Nieuwenhuizen  <jan.nieuwenhuizen@aspiratie.nl>
 
 	* progmodes/gud.el (gud-jdb-marker-filter): Add period as optional
 	thousands separator; fixes <class>:<line-number> regexp for
@@ -11113,7 +11113,7 @@
 
 	* mail/smtpmail.el (smtpmail-send-data): Don't append spurious newline.
 
-2004-01-18  David Ponce  <david@dponce.com>  (tiny change)
+2004-01-18  David Ponce  <david@dponce.com>
 
 	* progmodes/which-func.el (which-function-mode): Don't cancel
 	which-func-update-timer if not set.
@@ -11322,7 +11322,7 @@
 
 	* subr.el (functionp): Doc fix.
 
-2004-01-03  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
+2004-01-03  Jesper Harder  <harder@ifa.au.dk>
 
 	* progmodes/idlwave.el (idlwave-make-tags):
 	* textmodes/flyspell.el (flyspell-large-region):.
@@ -11525,7 +11525,7 @@
 	(table--put-cell-indicator-property): Put yank-handler property
 	that indicates the yank handler for the table cell.
 
-2003-12-29  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
+2003-12-29  Jesper Harder  <harder@ifa.au.dk>
 
 	* generic-x.el (etc-modules-conf-generic-mode): A more complete
 	set of keywords.
@@ -11583,7 +11583,7 @@
 	(ido-file-name-all-completions1): Return empty list for
 	non-readable directory.
 	(ido-exhibit): Print [Not readable] if directory is not readable.
-	(ido-expand-directory): New defun (based on tiny fix from Karl Chen).
+	(ido-expand-directory): New defun (based on fix from Karl Chen).
 	(ido-read-file-name, ido-file-internal, ido-read-directory-name):
 	Use it.
 
@@ -11921,7 +11921,7 @@
 	(breakpoint-enabled-icon, breakpoint-disabled-icon): Set :ascent
 	to 100 for icons to avoid increasing line height when shown.
 
-2003-11-17  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
+2003-11-17  Jesper Harder  <harder@ifa.au.dk>
 
 	* newcomment.el (comment-normalize-vars): Initialize properly if
 	comment-start was nil.
@@ -11935,7 +11935,7 @@
 	* international/latin1-disp.el (latin1-display-ucs-per-lynx):
 	Fix docstring.
 
-2003-11-17  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
+2003-11-17  Jesper Harder  <harder@ifa.au.dk>
 
 	* international/latin1-disp.el (latin1-display): Fix docstring.
 
@@ -12665,12 +12665,12 @@
 	* language/chinese.el ("Chinese-GB", "Chinese-BIG5"): Set up for
 	using a Chinese tutorial.
 
-2003-09-28  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
+2003-09-28  Jesper Harder  <harder@ifa.au.dk>
 
 	* mail/smtpmail.el (smtpmail-via-smtp): Don't insert a space
 	between "MAIL FROM:" and "RCPT TO:" and the following address.
 
-2003-09-28  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
+2003-09-28  Jesper Harder  <harder@ifa.au.dk>
 
 	* textmodes/text-mode.el (paragraph-indent-minor-mode): Doc fix.
 
@@ -13685,7 +13685,7 @@
 	* international/fontset.el (setup-default-fontset):
 	Change registry names of Akurti fonts.
 
-2003-07-29  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
+2003-07-29  Jesper Harder  <harder@ifa.au.dk>
 
 	* comint.el (comint-read-noecho): Use `clear-string' instead of
 	`fillarray'.
@@ -13701,7 +13701,7 @@
 	(menu): Add gdb-restore-windows to menu.  Make gdba
 	specific menus only visible from gdba.
 
-2003-07-28  Tak Ota  <Takaaki.Ota@am.sony.com>  (tiny change)
+2003-07-28  Tak Ota  <Takaaki.Ota@am.sony.com>
 
 	* progmodes/compile.el (compilation-environment): New user variable.
 	(compile-internal): Respect it.
@@ -13930,7 +13930,7 @@
 	* desktop.el (desktop-buffer-dired-misc-data, desktop-buffer-dired):
 	Handle `dired-directory' being a list.
 
-2003-07-13  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
+2003-07-13  Jesper Harder  <harder@ifa.au.dk>
 
 	* mail/smtpmail.el (smtpmail-send-it): Create smtpmail-queue-dir if
 	it doesn't exist.
--- a/lisp/ChangeLog.7	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/ChangeLog.7	Sun Mar 18 14:11:08 2007 +0000
@@ -8260,7 +8260,7 @@
 
 	* cal-tex.el (cal-tex-cursor-week-iso): Delete spurious %.
 
-1997-11-02  Kevin Rodgers  <kevinr@airedale.ihs.com>
+1997-11-02  Kevin Rodgers  <kevinr@ihs.com>
 
 	* emacs-lisp/byte-opt.el (byte-optimize-concat): New function.
 
@@ -21588,7 +21588,7 @@
 
 	* time-stamp.el (time-stamp-dd/mm/yyyy): New function.
 
-1996-11-04  Kevin Rodgers  <evinr@ihs.com>
+1996-11-04  Kevin Rodgers  <kevinr@ihs.com>
 
 	* compile.el (compile-highlight-display-limit): New variable.
 	(compilation-handle-exit): Parse error messages here
--- a/lisp/abbrev.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/abbrev.el	Sun Mar 18 14:11:08 2007 +0000
@@ -363,5 +363,7 @@
 	    (if (or noquery (y-or-n-p (format "Expand `%s'? " string)))
 		(expand-abbrev)))))))
 
+(provide 'abbrev)
+
 ;; arch-tag: dbd6f3ae-dfe3-40ba-b00f-f9e3ff960df5
 ;;; abbrev.el ends here
--- a/lisp/complete.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/complete.el	Sun Mar 18 14:11:08 2007 +0000
@@ -147,6 +147,8 @@
     (cond ((not bind)
 	   ;; These bindings are the default bindings.  It would be better to
 	   ;; restore the previous bindings.
+	   (define-key read-expression-map "\e\t" 'lisp-complete-symbol)
+
 	   (define-key completion-map "\t"	'minibuffer-complete)
 	   (define-key completion-map " "	'minibuffer-complete-word)
 	   (define-key completion-map "?"	'minibuffer-completion-help)
@@ -157,8 +159,10 @@
 	   (define-key must-match-map "\n"	'minibuffer-complete-and-exit)
 	   (define-key must-match-map "?"	'minibuffer-completion-help)
 
-	   (define-key global-map "\e\t"	'complete-symbol))
+	   (define-key global-map [remap lisp-complete-symbol]	nil))
 	  (PC-default-bindings
+	   (define-key read-expression-map "\e\t" 'PC-lisp-complete-symbol)
+
 	   (define-key completion-map "\t"	'PC-complete)
 	   (define-key completion-map " "	'PC-complete-word)
 	   (define-key completion-map "?"	'PC-completion-help)
@@ -181,7 +185,7 @@
 	   (define-key must-match-map "\e\n"	'PC-complete-and-exit)
 	   (define-key must-match-map "\e?"	'PC-completion-help)
 
-	   (define-key global-map "\e\t"	'PC-lisp-complete-symbol)))))
+	   (define-key global-map [remap lisp-complete-symbol]	'PC-lisp-complete-symbol)))))
 
 ;;;###autoload
 (define-minor-mode partial-completion-mode
@@ -383,6 +387,29 @@
     (let ((completion-ignore-case nil))
       (test-completion str table pred))))
 
+;; The following function is an attempt to work around two problems:
+
+;; (1) When complete.el was written, (try-completion "" '(("") (""))) used to
+;; return the value "".  With a change from 2002-07-07 it returns t which caused
+;; `PC-lisp-complete-symbol' to fail with a "Wrong type argument: sequencep, t"
+;; error.  `PC-try-completion' returns STRING in this case.
+
+;; (2) (try-completion "" '((""))) returned t before the above-mentioned change.
+;; Since `PC-chop-word' operates on the return value of `try-completion' this
+;; case might have provoked a similar error as in (1).  `PC-try-completion'
+;; returns "" instead.  I don't know whether this is a real problem though.
+
+;; Since `PC-try-completion' is not a guaranteed to fix these bugs reliably, you
+;; should try to look at the following discussions when you encounter problems:
+;; - emacs-pretest-bug ("Partial Completion" starting 2007-02-23),
+;; - emacs-devel ("[address-of-OP: Partial completion]" starting 2007-02-24),
+;; - emacs-devel ("[address-of-OP: EVAL and mouse selection in *Completions*]"
+;;   starting 2007-03-05).
+(defun PC-try-completion (string alist &optional predicate)
+  "Like `try-completion' but return STRING instead of t."
+  (let ((result (try-completion string alist predicate)))
+    (if (eq result t) string result)))
+
 (defun PC-do-completion (&optional mode beg end)
   (or beg (setq beg (minibuffer-prompt-end)))
   (or end (setq end (point-max)))
@@ -390,7 +417,10 @@
 	 (pred minibuffer-completion-predicate)
 	 (filename (funcall PC-completion-as-file-name-predicate))
 	 (dirname nil)		; non-nil only if a filename is being completed
-	 (dirlength 0)
+	 ;; The following used to be "(dirlength 0)" which caused the erasure of
+	 ;; the entire buffer text before `point' when inserting a completion
+	 ;; into a buffer.
+	 dirlength
 	 (str (buffer-substring beg end))
 	 (incname (and filename (string-match "<\\([^\"<>]*\\)>?$" str)))
 	 (ambig nil)
@@ -404,8 +434,15 @@
 
     ;; Check if buffer contents can already be considered complete
     (if (and (eq mode 'exit)
-	     (test-completion-ignore-case str table pred))
-	'complete
+	     (test-completion str table pred))
+	(progn
+	  ;; If completion-ignore-case is non-nil, insert the
+	  ;; completion string since that may have a different case.
+	  (when completion-ignore-case
+	    (setq str (PC-try-completion str table pred))
+	    (delete-region beg end)
+	    (insert str))
+	  'complete)
 
       ;; Do substitutions in directory names
       (and filename
@@ -553,6 +590,9 @@
 		   (setq poss (cons (car p) poss))))
 	    (setq p (cdr p)))))
 
+      ;; If table had duplicates, they can be here.
+      (delete-dups poss)
+
       ;; Handle completion-ignored-extensions
       (and filename
            (not (eq mode 'help))
@@ -623,8 +663,8 @@
 
 	    ;; Check if next few letters are the same in all cases
 	    (if (and (not (eq mode 'help))
-		     (setq prefix (try-completion (PC-chunk-after basestr skip)
-                                                  poss)))
+		     (setq prefix (PC-try-completion
+				   (PC-chunk-after basestr skip) poss)))
 		(let ((first t) i)
 		  ;; Retain capitalization of user input even if
 		  ;; completion-ignore-case is set.
@@ -662,7 +702,7 @@
 			      (setq skip (concat skip
 						 (regexp-quote prefix)
 						 PC-ndelims-regex)
-				    prefix (try-completion
+				    prefix (PC-try-completion
 					    (PC-chunk-after
 					     ;; not basestr, because that does
 					     ;; not reflect insertions
@@ -996,7 +1036,7 @@
               (cond
                ((not completion-table) nil)
                ((eq action 'lambda) (test-completion str2 completion-table nil))
-               ((eq action nil) (try-completion str2 completion-table nil))
+               ((eq action nil) (PC-try-completion str2 completion-table nil))
                ((eq action t) (all-completions str2 completion-table nil)))))
     ad-do-it))
 
--- a/lisp/cus-edit.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/cus-edit.el	Sun Mar 18 14:11:08 2007 +0000
@@ -938,9 +938,6 @@
 If VARIABLE has a `custom-set' property, that is used for setting
 VARIABLE, otherwise `set-default' is used.
 
-The `customized-value' property of the VARIABLE will be set to a list
-with a quoted VALUE as its sole list member.
-
 If VARIABLE has a `variable-interactive' property, that is used as if
 it were the arg to `interactive' (which see) to interactively read the value.
 
@@ -971,9 +968,6 @@
 If VARIABLE has a `custom-set' property, that is used for setting
 VARIABLE, otherwise `set-default' is used.
 
-The `customized-value' property of the VARIABLE will be set to a list
-with a quoted VALUE as its sole list member.
-
 If VARIABLE has a `variable-interactive' property, that is used as if
 it were the arg to `interactive' (which see) to interactively read the value.
 
@@ -993,6 +987,8 @@
  	(comment
  	 (put variable 'variable-comment comment)
  	 (put variable 'saved-variable-comment comment)))
+  (put variable 'customized-value nil)
+  (put variable 'customized-variable-comment nil)
   (custom-save-all)
   value)
 
--- a/lisp/diff-mode.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/diff-mode.el	Sun Mar 18 14:11:08 2007 +0000
@@ -985,7 +985,9 @@
 (define-derived-mode diff-mode fundamental-mode "Diff"
   "Major mode for viewing/editing context diffs.
 Supports unified and context diffs as well as (to a lesser extent)
-normal diffs.
+normal diffs.  If you edit the buffer manually, diff-mode will try
+to update the hunk headers for you on-the-fly.
+
 When the buffer is read-only, the ESC prefix is not necessary.
 If you edit the buffer manually, diff-mode will try to update the hunk
 headers for you on-the-fly.
@@ -993,7 +995,12 @@
 You can also switch between context diff and unified diff with \\[diff-context->unified],
 or vice versa with \\[diff-unified->context] and you can also reverse the direction of
 a diff with \\[diff-reverse-direction].
-\\{diff-mode-map}"
+
+When the buffer is read-only, the Meta- modifier is not necessary
+to run the Diff mode commands:
+
+   \\{diff-mode-map}"
+
   (set (make-local-variable 'font-lock-defaults) diff-font-lock-defaults)
   (set (make-local-variable 'outline-regexp) diff-outline-regexp)
   (set (make-local-variable 'imenu-generic-expression)
@@ -1368,7 +1375,8 @@
                        (yes-or-no-p (format "Really apply this hunk to %s? "
                                             (file-name-nondirectory
                                              buffer-file-name)))))))
-      (error (substitute-command-keys
+      (error "%s"
+	     (substitute-command-keys
               (format "Use %s\\[diff-apply-hunk] to apply it to the other file"
                       (if (not reverse) "\\[universal-argument] ")))))
      ((and switched
--- a/lisp/emacs-lisp/authors.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/emacs-lisp/authors.el	Sun Mar 18 14:11:08 2007 +0000
@@ -70,6 +70,7 @@
     ("Francesco Potort,Al(B" "Francesco Potorti" "Francesco Potorti`")
     ("Frederic Pierresteguy" "Fred Pierresteguy")
     ("Geoff Voelker" "voelker")
+    ("Gerd M,Av(Bllmann" "Gerd Moellmann")
     ("Hallvard B. Furuseth" "Hallvard B Furuseth")
     ("Hrvoje Nik,B9(Bi,Bf(B" "Hrvoje Niksic")
     (nil "(afs@hplb.hpl.hp.com)")
@@ -102,6 +103,7 @@
     ("Kyle Jones" "Kyle E. Jones")
     ("Marcus G. Daniels" "Marcus Daniels")
     ("Mark D. Baushke" "Mark D Baushke")
+    ("Agust,Am(Bn Mart,Am(Bn" "Agustin Martin")
     ("Martin Lorentzon" "Martin Lorentzson")
     ("Matt Swift" "Matthew Swift")
     ("Michael R. Mauger" "Michael Mauger")
--- a/lisp/emacs-lisp/bytecomp.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/emacs-lisp/bytecomp.el	Sun Mar 18 14:11:08 2007 +0000
@@ -972,8 +972,10 @@
 	 (pos (if (and byte-compile-current-file
 		       (integerp byte-compile-read-position))
 		  (with-current-buffer byte-compile-current-buffer
-		    (format "%d:%d:" (count-lines (point-min)
-						  byte-compile-last-position)
+		    (format "%d:%d:" 
+			    (save-excursion
+			      (goto-char byte-compile-last-position)
+			      (1+ (count-lines (point-min) (point-at-bol))))
 			    (save-excursion
 			      (goto-char byte-compile-last-position)
 			      (1+ (current-column)))))
--- a/lisp/emacs-lisp/edebug.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/emacs-lisp/edebug.el	Sun Mar 18 14:11:08 2007 +0000
@@ -2939,6 +2939,7 @@
 		      (edebug-overlay-arrow))
 		  (setq buffer-read-only edebug-buffer-read-only)
 		  (use-local-map edebug-outside-map)
+		  (remove-hook 'kill-buffer-hook 'edebug-kill-buffer t)
 		  )
 	      ;; gotta have a buffer to let its buffer local variables be set
 	      (get-buffer-create " bogus edebug buffer"))
@@ -3942,8 +3943,18 @@
 edebug-unwrap-results
 edebug-global-break-condition
 "
+  ;; If the user kills the buffer in which edebug is currently active,
+  ;; exit to top level, because the edebug command loop can't usefully
+  ;; continue running in such a case.
+  (add-hook 'kill-buffer-hook 'edebug-kill-buffer nil t)
   (use-local-map edebug-mode-map))
 
+(defun edebug-kill-buffer ()
+  "Used on `kill-buffer-hook' when Edebug is operating in a buffer of Lisp code."
+  (let (kill-buffer-hook)
+    (kill-buffer (current-buffer)))
+  (top-level))
+
 ;;; edebug eval list mode
 
 ;; A list of expressions and their evaluations is displayed in *edebug*.
--- a/lisp/emacs-lisp/lisp-mode.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/emacs-lisp/lisp-mode.el	Sun Mar 18 14:11:08 2007 +0000
@@ -909,34 +909,47 @@
         (cond ((elt state 3)
                ;; Inside a string, don't change indentation.
 	       nil)
-              ((save-excursion
-                 ;; test whether current line begins with a constant
-                 (goto-char indent-point)
-                 (skip-chars-forward " \t")
-                 (looking-at ":"))
-               (let ((desired-indent
-                      (save-excursion
-                        (goto-char (1+ containing-sexp))
-                        (parse-partial-sexp (point) calculate-lisp-indent-last-sexp 0 t)
-                        (point)))
-                     (parse-sexp-ignore-comments t))
-                 ;; Align a constant symbol under the last constant symbol
-                 (goto-char calculate-lisp-indent-last-sexp)
-                 (while (> (point) desired-indent)
-                   (if (looking-at ":")
-                       (setq desired-indent (point))
-                     (backward-sexp 1))))
-                 (current-column))
               ((and (integerp lisp-indent-offset) containing-sexp)
                ;; Indent by constant offset
                (goto-char containing-sexp)
                (+ (current-column) lisp-indent-offset))
+              ;; in this case calculate-lisp-indent-last-sexp is not nil
+              (calculate-lisp-indent-last-sexp
+               (or
+                ;; try to align the parameters of a known function
+                (and lisp-indent-function
+                     (not retry)
+                     (funcall lisp-indent-function indent-point state))
+                ;; If the function has no special alignment
+		;; or it does not apply to this argument,
+		;; try to align a constant-symbol under the last
+                ;; preceding constant symbol, if there is such one of
+                ;; the last 2 preceding symbols, in the previous
+                ;; uncommented line.
+                (and (save-excursion
+                       (goto-char indent-point)
+                       (skip-chars-forward " \t")
+                       (looking-at ":"))
+                     (> calculate-lisp-indent-last-sexp
+                        (save-excursion
+                          (goto-char (1+ containing-sexp))
+                          (parse-partial-sexp (point) calculate-lisp-indent-last-sexp 0 t)
+                          (point)))
+                     (let ((parse-sexp-ignore-comments t)
+                           indent)
+                       (goto-char calculate-lisp-indent-last-sexp)
+                       (or (and (looking-at ":")
+                                (setq indent (current-column)))
+                           (and (< (save-excursion (beginning-of-line) (point))
+                                   (prog2 (backward-sexp) (point)))
+                                (looking-at ":")
+                                (setq indent (current-column))))
+                       indent))
+                ;; another symbols or constants not preceded by a constant
+                ;; as defined above.
+                normal-indent))
+              ;; in this case calculate-lisp-indent-last-sexp is nil
               (desired-indent)
-              ((and (boundp 'lisp-indent-function)
-                    lisp-indent-function
-                    (not retry))
-               (or (funcall lisp-indent-function indent-point state)
-                   normal-indent))
               (t
                normal-indent))))))
 
--- a/lisp/emacs-lisp/re-builder.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/emacs-lisp/re-builder.el	Sun Mar 18 14:11:08 2007 +0000
@@ -130,14 +130,13 @@
 
 (defcustom reb-re-syntax 'read
   "*Syntax for the REs in the RE Builder.
-Can either be `read', `string', `sregex' or `lisp-re'."
+Can either be `read', `string', `sregex', `lisp-re', `rx'."
   :group 're-builder
   :type '(choice (const :tag "Read syntax" read)
 		 (const :tag "String syntax" string)
 		 (const :tag "`sregex' syntax" sregex)
 		 (const :tag "`lisp-re' syntax" lisp-re)
-		 (const :tag "`rx' syntax" rx)
-		 (value: string)))
+		 (const :tag "`rx' syntax" rx)))
 
 (defcustom reb-auto-match-limit 200
   "*Positive integer limiting the matches for RE Builder auto updates.
--- a/lisp/faces.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/faces.el	Sun Mar 18 14:11:08 2007 +0000
@@ -1849,7 +1849,11 @@
 	    (face-spec-set face (face-user-default-spec face) frame)
 	    (internal-merge-in-global-face face frame)
 	    (if (memq window-system '(x w32 mac))
-		(make-face-x-resource-internal face frame)))
+		(make-face-x-resource-internal face frame))
+	    ;; If the user has customized the face, don't let X
+	    ;; resources override the customizations.
+	    (if (get face 'theme-face)
+		(custom-theme-recalc-face face)))
 	(error nil)))
     ;; Apply the attributes specified by frame parameters.  This
     ;; rewrites parameters changed by make-face-x-resource-internal
@@ -2197,7 +2201,7 @@
     ;; Don't use blue because many users of the MS-DOS port customize
     ;; their foreground color to be blue.
     (((type pc)) :foreground "magenta")
-    (t :foreground "dark blue"))
+    (t :foreground "medium blue"))
   "Face for minibuffer prompts.
 By default, Emacs automatically adds this face to the value of
 `minibuffer-prompt-properties', which is a list of text properties
--- a/lisp/files.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/files.el	Sun Mar 18 14:11:08 2007 +0000
@@ -1474,11 +1474,12 @@
 	  (error "Aborted"))
 	(if buf
 	    ;; We are using an existing buffer.
-	    (progn
+	    (let (nonexistent)
 	      (or nowarn
 		  (verify-visited-file-modtime buf)
 		  (cond ((not (file-exists-p filename))
-			 (error "File %s no longer exists!" filename))
+			 (setq nonexistent t)
+			 (message "File %s no longer exists!" filename))
 			;; Certain files should be reverted automatically
 			;; if they have changed on disk and not in the buffer.
 			((and (not (buffer-modified-p buf))
@@ -1515,7 +1516,8 @@
 		;; writable and vice versa, but if the buffer agrees
 		;; with the new state of the file, that is ok too.
 		(let ((read-only (not (file-writable-p buffer-file-name))))
-		  (unless (or (eq read-only buffer-file-read-only)
+		  (unless (or nonexistent
+			      (eq read-only buffer-file-read-only)
 			      (eq read-only buffer-read-only))
 		    (when (or nowarn
 			      (let ((question
@@ -1528,6 +1530,7 @@
 
 		(when (and (not (eq (not (null rawfile))
 				    (not (null find-file-literally))))
+			   (not nonexistent)
 			   ;; It is confusing to ask whether to visit
 			   ;; non-literally if they have the file in
 			   ;; hexl-mode.
--- a/lisp/gnus/ChangeLog	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/gnus/ChangeLog	Sun Mar 18 14:11:08 2007 +0000
@@ -906,7 +906,7 @@
 	(spam-mark-junk-as-spam-routine): Use it.  Allow to disable
 	assigning the spam-mark to new messages.
 
-2006-03-20  Adam Sj,Ax(Bgren  <asjo@koldfront.dk>  (tiny change)
+2006-03-20  Adam Sj,Ax(Bgren  <asjo@koldfront.dk>
 
 	(spam-ham-copy-or-move-routine): Don't declare `todo' twice.
 
@@ -1590,7 +1590,7 @@
 	* nnmail.el (nnmail-fancy-expiry-target): Protect against invalid
 	date header.
 
-2005-11-16  Boris Samorodov  <bsam@ipt.ru>  (tiny patch)
+2005-11-16  Boris Samorodov  <bsam@ipt.ru>  (tiny change)
 
 	* imap.el (imap-kerberos4-open): Ignore SSL stuff.
 
@@ -2192,7 +2192,7 @@
 	(gnus-decode-header-function, gnus-newsgroup-name):
 	* spam-stat.el (gnus-original-article-buffer): Add defvars.
 
-2005-08-22  Karl Chen  <quarl@cs.berkeley.edu>  (tiny change)
+2005-08-22  Karl Chen  <quarl@cs.berkeley.edu>
 
 	* gnus-art.el (gnus-treatment-function-alist): Move date-lapsed to
 	the end of the date treatments.
--- a/lisp/gnus/ChangeLog.2	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/gnus/ChangeLog.2	Sun Mar 18 14:11:08 2007 +0000
@@ -76,10 +76,10 @@
 
 	* smime.el (smime-crl-check): Doc fix.
 
-2004-01-02  Edwin Steiner  <edwin.steiner@gmx.net>
+2004-01-02  Edwin Steiner  <edwin.steiner@gmx.net>  (tiny change)
 
 	* gnus-nocem.el (gnus-nocem-enter-article): Use the real group
-	hashtb (tiny patch).
+	hashtb.
 
 2004-01-02  Michael Albinus  <Michael.Albinus@alcatel.de>
 
@@ -463,12 +463,15 @@
 	* mml-smime.el (mml-smime-sign): Replace CRLF with LF in OpenSSL
 	output.  Reported by Arne J,Ax(Brgensen <arne@arnested.dk>.
 
-2003-12-07  Simon Josefsson  <jas@extundo.com>
+2003-12-07  Lloyd Zusman <ljz@asfast.com>  (tiny change)
 
 	* pgg-gpg.el (pgg-gpg-recipient-arg): Add.
-	(pgg-gpg-encrypt-region): Use it.  Tiny patch from Lloyd Zusman
-	<ljz@asfast.com>.
-	(pgg-gpg-recipient-argument): Doc fix.  Renamed fro p-g-r-a.
+	(pgg-gpg-encrypt-region): Use it.
+
+2003-12-07  Simon Josefsson  <jas@extundo.com>
+
+	* pgg-gpg.el (pgg-gpg-recipient-argument): Doc fix.
+	Renamed from p-g-r-a.
 	(pgg-gpg-encrypt-region): Update.
 
 2003-12-07  Jesper Harder  <harder@ifa.au.dk>
@@ -907,10 +910,10 @@
 	* spam.el (spam-spamoracle): doc change, suggested by Jean-Marc
 	Lasgouttes <Jean-Marc.Lasgouttes@inria.fr>
 
-2003-11-04  Katsumi Yamaoka  <yamaoka@jpl.org>
+2003-11-04  Norbert Koch <viteno@xemacs.org>  (tiny change)
 
 	* gnus-score.el (gnus-decay-score): Protect against arithmetic
-	errors.  Tiny patch from Norbert Koch <viteno@xemacs.org>.
+	errors.
 
 2003-10-31  Teodor Zlatanov  <tzz@lifelogs.com>
 
@@ -927,12 +930,14 @@
 	(spam-spamoracle-learn-ham, spam-spamoracle-learn-spam): change
 	spam-log-processing-to-registry invocations appropriately
 
-2003-10-31  Simon Josefsson  <jas@extundo.com>
+2003-10-31  Derek Atkins <warlord@MIT.EDU>  (tiny change)
 
 	* imap.el (imap-kerberos4-open): Ignore output from ATHENA imtest.
-	Tiny patch from Derek Atkins <warlord@MIT.EDU>.
-	(imap-process-connection-type): Improve docstring.  Suggested by
-	Derek Atkins <warlord@MIT.EDU>.
+
+2003-10-31  Simon Josefsson  <jas@extundo.com>
+
+	* imap.el (imap-process-connection-type): Improve docstring.
+	Suggested by Derek Atkins <warlord@MIT.EDU>.
 
 2003-10-31  Teodor Zlatanov  <tzz@lifelogs.com>
 
@@ -964,11 +969,14 @@
 	* message.el (message-forward-make-body-plain): Fix ARG=1 mode
 	after separating m-f-m-b.
 
-2003-10-29  Simon Josefsson  <jas@extundo.com>
+2003-10-29  Andre Srinivasan <andre@e2open.com>  (tiny change)
 
 	* message.el (message-forward-make-body-plain): Remove ignored
-	headers.  Tiny patch from Andre Srinivasan <andre@e2open.com>.
-	(message-forward-make-body-plain): Fix ARG=1.
+	headers.
+
+2003-10-29  Simon Josefsson  <jas@extundo.com>
+
+	* message.el (message-forward-make-body-plain): Fix ARG=1.
 
 2003-10-28  Jesper Harder  <harder@ifa.au.dk>
 
@@ -1582,7 +1590,7 @@
 	(mml-insert-mime-headers): Use it.  Based on (tiny) patch from
 	Lars Balker Rasmussen <lars@balker.org>.
 
-2003-08-30  Gaute Strokkenes  <gs234@srcf.ucam.org>  (tiny change)
+2003-08-30  Gaute B Strokkenes  <gs234@srcf.ucam.org>  (tiny change)
 
 	* mail-source.el (mail-source-fetch-imap): Pass correct buffer to
 	imap-open, reverts 2003-03-17 change.  Reverse remove before
@@ -1656,13 +1664,12 @@
 	* gnus-art.el (gnus-article-edit-done, gnus-article-edit-exit):
 	Redisplay article after editing.
 
-2003-08-20  Simon Josefsson  <jas@extundo.com>
+2003-08-20  Jari Aalto  <jari.aalto@poboxes.com>
 
 	* gnus.el (gnus-read-group): Added check to ask confirmation if
 	Group name contains invalid character. You can use '/' in IMAP,
 	but not in filenames. G m cannot know what the user is creating,
 	so let user decide. See thread m2oeysiev3.fsf@naima.lensflare.org.
-	Tiny patch from letters@hotpop.com (Jari Aalto+mail.linux).
 
 2003-08-13  Reiner Steib  <Reiner.Steib@gmx.de>
 
@@ -1715,7 +1722,7 @@
 	* gnus.el (gnus-refer-article-method): Ditto.
 	* message.el (message-courtesy-message): Ditto.
 
-2003-08-06  Chunyu Wang  <spr@db.cs.hit.edu.cn>  (tiny patch)
+2003-08-06  Chunyu Wang  <spr@db.cs.hit.edu.cn>  (tiny change)
 
 	* gnus-art.el (gnus-header-face-alist): Fix "Newsgroups" entry.
 
@@ -1754,11 +1761,10 @@
 	* gnus-registry.el (gnus-registry-install): add an initial
 	registry read to the loading when gnus-registry-install is set
 
-2003-07-26  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
+2003-07-26  Mark Thomas <swoon@bellatlantic.net>  (tiny change)
 
 	* flow-fill.el (fill-flowed): Empty lines separate paragraphs
-	even if the preceding line ends with a soft break.  Tiny patch
-	from Mark Thomas <swoon@bellatlantic.net>.
+	even if the preceding line ends with a soft break.
 
 2003-07-25  Teodor Zlatanov  <tzz@lifelogs.com>
 
@@ -1843,7 +1849,7 @@
 	* imap.el (imap-arrival-filter): Fix test for missing process
 	buffer.
 
-2003-07-09  Gaute B Strokkenes  <gs234@cam.ac.uk>  (tiny patch).
+2003-07-09  Gaute B Strokkenes  <gs234@cam.ac.uk>  (tiny change)
 
 	* imap.el (imap-wait-for-tag): Clarify comment.  Use timeout zero
 	for second, after-process-has-died, accept-process-output.
@@ -1899,7 +1905,7 @@
 	(message-canlock-generate)
 	(message-generate-new-buffer-clone-locals): Docstring fixes.
 
-2003-07-07  Gaute B Strokkenes	<gs234@cam.ac.uk>  (tiny patch)
+2003-07-07  Gaute B Strokkenes	<gs234@cam.ac.uk>  (tiny change)
 
 	* imap.el (imap-wait-for-tag): After the process has died, look
 	for more output still pending.
@@ -2421,11 +2427,10 @@
 	(rfc2047-syntax-table): Fix building table to work in Emacs 22.
 	(rfc2047-unfold-region): Delete unused var `leading'.
 
-2003-05-12  Simon Josefsson  <jas@extundo.com>
+2003-05-12  Ville Skytt,Ad(B <scop@xemacs.org>  (tiny change)
 
 	* pgg.el (pgg-temp-buffer-show-function): Reuse existing visible
-	output window if one is available.  Tiny patch from Ville Skytt,Ad(B
-	<scop@xemacs.org>.
+	output window if one is available.
 
 2003-05-11  Lars Magne Ingebrigtsen  <larsi@gnus.org>
 
@@ -4750,7 +4755,7 @@
 	* gnus-start.el (gnus-get-unread-articles-in-group): Make sure
 	the entry for the group exists before we alter it.
 
-2003-02-22  David S Goldberg  <david.goldberg6@verizon.net>  (tiny change)
+2003-02-22  David S. Goldberg  <david.goldberg6@verizon.net>  (tiny change)
 
 	* message.el (message-mode): MML tags separate paragraphs.
 
@@ -5037,7 +5042,7 @@
 	code that only worked under Emacs.
 
 2003-02-08  Satyaki Das  <satyaki@chicory.stanford.edu>
-	
+
 	* pgg-gpg.el (pgg-gpg-process-region): Don't blink.
 
 2003-02-08  Jesper Harder  <harder@ifa.au.dk>
@@ -5372,11 +5377,10 @@
 
 	* gnus.el: Oort Gnus v0.14 is released.
 
-2003-01-24  Kai Gro,A_(Bjohann  <kai.grossjohann@uni-duisburg.de>
+2003-01-24  Mark Thomas <swoon@bellatlantic.net>  (tiny change)
 
 	* gnus-sum.el (gnus-summary-prepare-threads): Reset state for %B
-	before beginning.  Tiny patch from Mark Thomas
-	<swoon@bellatlantic.net>.
+	before beginning.
 
 2003-01-24  Teodor Zlatanov  <tzz@lifelogs.com>
 
@@ -13122,7 +13126,7 @@
 
 	* nnfolder.el (nnfolder-marks-changed-p): Ditto.
 
-2001-10-20  David Z Maze  <dmaze@MIT.EDU>
+2001-10-20  David Z. Maze  <dmaze@MIT.EDU>
 
 	* nnml.el (nnml-marks-changed-p): Use `equal' when comparing
 	conses.
--- a/lisp/icomplete.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/icomplete.el	Sun Mar 18 14:11:08 2007 +0000
@@ -219,7 +219,8 @@
   (when (and icomplete-mode icomplete-eoinput)
 
     (unless (>= icomplete-eoinput (point-max))
-      (let ((buffer-undo-list t)) ; prevent entry
+      (let ((buffer-undo-list t) ; prevent entry
+	    deactivate-mark)
 	(delete-region icomplete-eoinput (point-max))))
 
     ;; Reestablish the safe value.
@@ -256,7 +257,8 @@
 			  minibuffer-completion-table
 			  minibuffer-completion-predicate
 			  (not minibuffer-completion-confirm)))))
-		(buffer-undo-list t))
+		(buffer-undo-list t)
+		deactivate-mark)
 	    ;; Do nothing if while-no-input was aborted.
 	    (if (consp text) (insert (car text))))))))
 
--- a/lisp/international/isearch-x.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/international/isearch-x.el	Sun Mar 18 14:11:08 2007 +0000
@@ -103,6 +103,15 @@
 	    (prompt (isearch-message-prefix))
 	    (minibuffer-local-map isearch-minibuffer-local-map)
 	    str junk-hist)
+
+	;; PROMPT contains text-properties from
+	;; `minibuffer-prompt-properties', and some of these can screw up
+	;; its use in `read-string' below (specifically, a read-only
+	;; property will cause it to signal an error), so strip them here;
+	;; read-string will add the same properties itself anyway.
+	;;
+	(set-text-properties 0 (length prompt) nil prompt)
+
 	(if isearch-input-method-function
 	    (let (;; Let input method work rather tersely.
 		  (input-method-verbose-flag nil))
--- a/lisp/isearch.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/isearch.el	Sun Mar 18 14:11:08 2007 +0000
@@ -1953,9 +1953,8 @@
 		       (concat " [" current-input-method-title "]: ")
 		     ": ")
 		   )))
-    (apply 'propertize
-	   (concat (upcase (substring m 0 1)) (substring m 1))
-	   minibuffer-prompt-properties)))
+    (propertize (concat (upcase (substring m 0 1)) (substring m 1))
+		'face 'minibuffer-prompt)))
 
 (defun isearch-message-suffix (&optional c-q-hack ellipsis)
   (concat (if c-q-hack "^Q" "")
--- a/lisp/jit-lock.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/jit-lock.el	Sun Mar 18 14:11:08 2007 +0000
@@ -74,14 +74,14 @@
   :group 'jit-lock)
 
 
-(defcustom jit-lock-stealth-time 16
+(defcustom jit-lock-stealth-time nil
   "*Time in seconds to wait before beginning stealth fontification.
 Stealth fontification occurs if there is no input within this time.
 If nil, stealth fontification is never performed.
 
 The value of this variable is used when JIT Lock mode is turned on."
   :type '(choice (const :tag "never" nil)
-		 (number :tag "seconds"))
+		 (number :tag "seconds" :value 16))
   :group 'jit-lock)
 
 
--- a/lisp/mail/emacsbug.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/mail/emacsbug.el	Sun Mar 18 14:11:08 2007 +0000
@@ -139,7 +139,9 @@
     (insert "\n\nIn " (emacs-version) "\n")
     (if (fboundp 'x-server-vendor)
 	(condition-case nil
-	    (insert "X server distributor `" (x-server-vendor) "', version "
+            ;; This is used not only for X11 but also W32 and others.
+	    (insert "Windowing system distributor `" (x-server-vendor)
+                    "', version "
 		    (mapconcat 'number-to-string (x-server-version) ".") "\n")
 	  (error t)))
     (if (and system-configuration-options
@@ -281,5 +283,5 @@
 
 (provide 'emacsbug)
 
-;;; arch-tag: 248b6523-c3b5-4fec-9a3f-0411fafa7d49
+;; arch-tag: 248b6523-c3b5-4fec-9a3f-0411fafa7d49
 ;;; emacsbug.el ends here
--- a/lisp/mouse.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/mouse.el	Sun Mar 18 14:11:08 2007 +0000
@@ -409,11 +409,6 @@
 	 should-enlarge-minibuffer event mouse y top bot edges wconfig growth)
     (track-mouse
       (progn
-	;; enlarge-window only works on the selected window, so
-	;; we must select the window where the start event originated.
-	;; unwind-protect will restore the old selected window later.
-	(select-window start-event-window)
-
 	;; if this is the bottommost ordinary window, then to
 	;; move its modeline the minibuffer must be enlarged.
 	(setq should-enlarge-minibuffer
@@ -421,7 +416,7 @@
 		   mode-line-p
 		   (not (one-window-p t))
 		   (= (nth 1 (window-edges minibuffer))
-		      (nth 3 (window-edges)))))
+		      (nth 3 (window-edges start-event-window)))))
 
 	;; loop reading events and sampling the position of
 	;; the mouse.
@@ -459,7 +454,7 @@
 
 		(t
 		 (setq y (cdr (cdr mouse))
-		       edges (window-edges)
+		       edges (window-edges start-event-window)
 		       top (nth 1 edges)
 		       bot (nth 3 edges))
 
@@ -572,10 +567,6 @@
       (error "Attempt to drag leftmost scrollbar")))
     (track-mouse
       (progn
-	;; enlarge-window only works on the selected window, so
-	;; we must select the window where the start event originated.
-	;; unwind-protect will restore the old selected window later.
-	(select-window start-event-window)
 	;; loop reading events and sampling the position of
 	;; the mouse.
 	(while (not done)
@@ -611,9 +602,9 @@
 			;; If the scroll bar is on the window's left,
 			;; adjust the window on the left.
 			(if (eq which-side 'right)
-			    (selected-window)
+			    start-event-window
 			  (mouse-drag-vertical-line-rightward-window
-			   (selected-window)))))
+			   start-event-window))))
 		   (setq x (- (car (cdr mouse))
 			      (if (eq which-side 'right) 0 2))
 			 edges (window-edges window)
--- a/lisp/net/ange-ftp.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/net/ange-ftp.el	Sun Mar 18 14:11:08 2007 +0000
@@ -1005,7 +1005,7 @@
 		 (const :tag "Allow" 1)))
 
 (defcustom ange-ftp-try-passive-mode nil
-  "It t, try to use passive mode in ftp, if the client program supports it."
+  "If t, try to use passive mode in ftp, if the client program supports it."
   :group 'ange-ftp
   :type 'boolean
   :version "21.1")
--- a/lisp/net/rcirc.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/net/rcirc.el	Sun Mar 18 14:11:08 2007 +0000
@@ -312,9 +312,8 @@
   "List of urls seen in the current buffer.")
 (put 'rcirc-urls 'permanent-local t)
 
-(defvar rcirc-keepalive-seconds 60
-  "Number of seconds between keepalive pings.
-If nil, do not send keepalive pings.")
+(defvar rcirc-timeout-seconds 60
+  "Kill connection after this many seconds if there is no activity.")
 
 (defconst rcirc-id-string (concat "rcirc on GNU Emacs " emacs-version))
 
@@ -357,7 +356,12 @@
 (defvar rcirc-topic nil)
 (defvar rcirc-keepalive-timer nil)
 (defvar rcirc-last-server-message-time nil)
-(defvar rcirc-server nil)
+(defvar rcirc-server nil)		; server provided by server
+(defvar rcirc-server-name nil)		; server name given by 001 response
+(defvar rcirc-timeout-timer nil)
+(defvar rcirc-user-disconnect nil)
+(defvar rcirc-connecting nil)
+(defvar rcirc-process nil)
 
 ;;;###autoload
 (defun rcirc-connect (&optional server port nick user-name full-name startup-channels)
@@ -374,7 +378,7 @@
 	   (user-name (or user-name rcirc-default-user-name))
 	   (full-name (or full-name rcirc-default-user-full-name))
 	   (startup-channels startup-channels)
-           (process (open-network-stream server nil server port-number)))
+           (process (make-network-process :name server :host server :service port-number)))
       ;; set up process
       (set-process-coding-system process 'raw-text 'raw-text)
       (switch-to-buffer (rcirc-generate-new-buffer-name process nil))
@@ -382,8 +386,12 @@
       (rcirc-mode process nil)
       (set-process-sentinel process 'rcirc-sentinel)
       (set-process-filter process 'rcirc-filter)
+      (make-local-variable 'rcirc-process)
+      (setq rcirc-process process)
       (make-local-variable 'rcirc-server)
       (setq rcirc-server server)
+      (make-local-variable 'rcirc-server-name)
+      (setq rcirc-server-name server)	; update when we get 001 response
       (make-local-variable 'rcirc-buffer-alist)
       (setq rcirc-buffer-alist nil)
       (make-local-variable 'rcirc-nick-table)
@@ -396,6 +404,12 @@
       (setq rcirc-startup-channels startup-channels)
       (make-local-variable 'rcirc-last-server-message-time)
       (setq rcirc-last-server-message-time (current-time))
+      (make-local-variable 'rcirc-timeout-timer)
+      (setq rcirc-timeout-timer nil)
+      (make-local-variable 'rcirc-user-disconnect)
+      (setq rcirc-user-disconnect nil)
+      (make-local-variable 'rcirc-connecting)
+      (setq rcirc-connecting t)
 
       ;; identify
       (rcirc-send-string process (concat "NICK " nick))
@@ -404,10 +418,9 @@
                                       full-name))
 
       ;; setup ping timer if necessary
-      (when rcirc-keepalive-seconds
-	(unless rcirc-keepalive-timer
-	  (setq rcirc-keepalive-timer
-		(run-at-time 0 rcirc-keepalive-seconds 'rcirc-keepalive))))
+      (unless rcirc-keepalive-timer
+	(setq rcirc-keepalive-timer
+	      (run-at-time 0 (/ rcirc-timeout-seconds 2) 'rcirc-keepalive)))
 
       (message "Connecting to %s...done" server)
 
@@ -430,12 +443,11 @@
 last ping."
   (if (rcirc-process-list)
       (mapc (lambda (process)
-              (with-rcirc-process-buffer process
-		(if (> (cadr (time-since rcirc-last-server-message-time))
-		       rcirc-keepalive-seconds)
-		    (kill-process process)
-		  (rcirc-send-string process (concat "PING " rcirc-server)))))
+	      (with-rcirc-process-buffer process
+		(when (not rcirc-connecting)
+		  (rcirc-send-string process (concat "PING " (rcirc-server-name process))))))
             (rcirc-process-list))
+    ;; no processes, clean up timer
     (cancel-timer rcirc-keepalive-timer)
     (setq rcirc-keepalive-timer nil)))
 
@@ -472,12 +484,12 @@
 		       (format "%s: %s (%S)"
 			       (process-name process)
 			       sentinel
-			       (process-status process)) t)
+			       (process-status process)) (not rcirc-target))
 	  ;; remove the prompt from buffers
 	  (let ((inhibit-read-only t))
 	    (delete-region rcirc-prompt-start-marker
-			   rcirc-prompt-end-marker)))))
-    (run-hook-with-args 'rcirc-sentinel-hooks process sentinel)))
+			   rcirc-prompt-end-marker))))
+      (run-hook-with-args 'rcirc-sentinel-hooks process sentinel))))
 
 (defun rcirc-process-list ()
   "Return a list of rcirc processes."
@@ -496,6 +508,7 @@
 (defun rcirc-filter (process output)
   "Called when PROCESS receives OUTPUT."
   (rcirc-debug process output)
+  (rcirc-reschedule-timeout process)
   (with-rcirc-process-buffer process
     (setq rcirc-last-server-message-time (current-time))
     (setq rcirc-process-output (concat rcirc-process-output output))
@@ -506,6 +519,19 @@
             (split-string rcirc-process-output "[\n\r]" t))
       (setq rcirc-process-output nil))))
 
+(defun rcirc-reschedule-timeout (process)
+  (with-rcirc-process-buffer process
+    (when (not rcirc-connecting)
+      (with-rcirc-process-buffer process
+	(when rcirc-timeout-timer (cancel-timer rcirc-timeout-timer))
+	(setq rcirc-timeout-timer (run-at-time rcirc-timeout-seconds nil
+					       'rcirc-delete-process
+					       process))))))
+
+(defun rcirc-delete-process (process)
+  (message "delete process %S" process)
+  (delete-process process))
+
 (defvar rcirc-trap-errors-flag t)
 (defun rcirc-process-server-response (process text)
   (if rcirc-trap-errors-flag
@@ -557,15 +583,16 @@
 (defun rcirc-buffer-process (&optional buffer)
   "Return the process associated with channel BUFFER.
 With no argument or nil as argument, use the current buffer."
-  (get-buffer-process (if buffer
-			  (with-current-buffer buffer
-			    rcirc-server-buffer)
-			rcirc-server-buffer)))
+  (or (get-buffer-process (if buffer
+			      (with-current-buffer buffer
+				rcirc-server-buffer)
+			    rcirc-server-buffer))
+      rcirc-process))
 
 (defun rcirc-server-name (process)
   "Return PROCESS server name, given by the 001 response."
   (with-rcirc-process-buffer process
-    (or rcirc-server rcirc-default-server)))
+    (or rcirc-server-name rcirc-default-server)))
 
 (defun rcirc-nick (process)
   "Return PROCESS nick."
@@ -790,7 +817,7 @@
 	      (setq prompt
 		    (replace-regexp-in-string (car rep) (cdr rep) prompt)))
 	    (list (cons "%n" (rcirc-buffer-nick))
-		  (cons "%s" (with-rcirc-server-buffer (or rcirc-server "")))
+		  (cons "%s" (with-rcirc-server-buffer rcirc-server-name))
 		  (cons "%t" (or rcirc-target ""))))
       (save-excursion
 	(delete-region rcirc-prompt-start-marker rcirc-prompt-end-marker)
@@ -1079,9 +1106,7 @@
 		   "%")
 		  ((or (eq key ?n) (eq key ?N))
 		   ;; %n/%N -- nick
-		   (let ((nick (concat (if (string= (with-rcirc-process-buffer
-							process
-						      rcirc-server)
+		   (let ((nick (concat (if (string= (rcirc-server-name process)
 						    sender)
 					   ""
 					 sender)
@@ -1302,19 +1327,15 @@
 	(rcirc-cmd-join channel process)))))
 
 ;;; nick management
+(defvar rcirc-nick-prefix-chars "~&@%+")
 (defun rcirc-user-nick (user)
   "Return the nick from USER.  Remove any non-nick junk."
   (save-match-data
-    (if (string-match "^[@%+]?\\([^! ]+\\)!?" (or user ""))
+    (if (string-match (concat "^[" rcirc-nick-prefix-chars
+			      "]?\\([^! ]+\\)!?") (or user ""))
 	(match-string 1 user)
       user)))
 
-(defun rcirc-user-non-nick (user)
-  "Return the non-nick portion of USER."
-  (if (string-match "^[@+]?[^! ]+!?\\(.*\\)" (or user ""))
-      (match-string 1 user)
-    user))
-
 (defun rcirc-nick-channels (process nick)
   "Return list of channels for NICK."
   (with-rcirc-process-buffer process
@@ -2009,7 +2030,9 @@
   (rcirc-handler-generic process "001" sender args text)
   ;; set the real server name
   (with-rcirc-process-buffer process
-    (setq rcirc-server sender)
+    (setq rcirc-connecting nil)
+    (rcirc-reschedule-timeout process)
+    (setq rcirc-server-name sender)
     (setq rcirc-nick (car args))
     (rcirc-update-prompt)
     (when rcirc-auto-authenticate-flag (rcirc-authenticate))
@@ -2419,7 +2442,8 @@
   :group 'rcirc-faces)
 
 (defface rcirc-track-nick
-  '((t (:inverse-video t)))
+  '((((type tty)) (:inherit default))
+    (t (:inverse-video t)))
   "The face used in the mode-line when your nick is mentioned."
   :group 'rcirc-faces)
 
--- a/lisp/net/tramp-smb.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/net/tramp-smb.el	Sun Mar 18 14:11:08 2007 +0000
@@ -384,7 +384,7 @@
     (save-excursion
       (let ((share (tramp-smb-get-share localname))
 	    (file (tramp-smb-get-localname localname t))
-	    (tmpfil (tramp-make-temp-file)))
+	    (tmpfil (tramp-make-temp-file filename)))
 	(unless (file-exists-p filename)
 	  (error "Cannot make local copy of non-existing file `%s'" filename))
 	(tramp-message-for-buffer
@@ -595,7 +595,7 @@
 	    (curbuf (current-buffer))
 	    tmpfil)
 	;; Write region into a tmp file.
-	(setq tmpfil (tramp-make-temp-file))
+	(setq tmpfil (tramp-make-temp-file filename))
 	;; We say `no-message' here because we don't want the visited file
 	;; modtime data to be clobbered from the temp file.  We call
 	;; `set-visited-file-modtime' ourselves later on.
--- a/lisp/net/tramp.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/net/tramp.el	Sun Mar 18 14:11:08 2007 +0000
@@ -3771,10 +3771,12 @@
 
 ;; File Editing.
 
-(defsubst tramp-make-temp-file ()
-  (funcall (if (fboundp 'make-temp-file) 'make-temp-file 'make-temp-name)
-	   (expand-file-name tramp-temp-name-prefix
-			     (tramp-temporary-file-directory))))
+(defsubst tramp-make-temp-file (filename)
+  (concat
+   (funcall (if (fboundp 'make-temp-file) 'make-temp-file 'make-temp-name)
+	    (expand-file-name tramp-temp-name-prefix
+			      (tramp-temporary-file-directory)))
+   (file-name-extension filename t)))
 
 (defun tramp-handle-file-local-copy (filename)
   "Like `file-local-copy' for tramp files."
@@ -3794,7 +3796,7 @@
       (unless (file-exists-p filename)
 	(error "Cannot make local copy of non-existing file `%s'"
 	       filename))
-      (setq tmpfil (tramp-make-temp-file))
+      (setq tmpfil (tramp-make-temp-file filename))
 
       (cond ((tramp-method-out-of-band-p multi-method method user host)
 	     ;; `copy-file' handles out-of-band methods
@@ -3846,7 +3848,7 @@
 		     (kill-buffer tmpbuf))
 		 ;; If tramp-decoding-function is not defined for this
 		 ;; method, we invoke tramp-decoding-command instead.
-		 (let ((tmpfil2 (tramp-make-temp-file)))
+		 (let ((tmpfil2 (tramp-make-temp-file filename)))
 		   (write-region (point-min) (point-max) tmpfil2)
 		   (tramp-message
 		    6 "Decoding remote file %s with command %s..."
@@ -4053,7 +4055,7 @@
       ;; Write region into a tmp file.  This isn't really needed if we
       ;; use an encoding function, but currently we use it always
       ;; because this makes the logic simpler.
-      (setq tmpfil (tramp-make-temp-file))
+      (setq tmpfil (tramp-make-temp-file filename))
       ;; Set current buffer.  If connection wasn't open, `file-modes' has
       ;; changed it accidently.
       (set-buffer curbuf)
--- a/lisp/pcomplete.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/pcomplete.el	Sun Mar 18 14:11:08 2007 +0000
@@ -974,18 +974,20 @@
 	    (while (with-current-buffer (get-buffer "*Completions*")
 		     (setq event (pcomplete-read-event)))
 	      (cond
-	       ((event-matches-key-specifier-p event ? )
+	       ((event-matches-key-specifier-p event ?\s)
 		(set-window-configuration pcomplete-last-window-config)
 		(setq pcomplete-last-window-config nil)
 		(throw 'done nil))
 	       ((or (event-matches-key-specifier-p event 'tab)
                     ;; Needed on a terminal
                     (event-matches-key-specifier-p event 9))
-		(save-selected-window
-		  (select-window (get-buffer-window "*Completions*"))
-		  (if (pos-visible-in-window-p (point-max))
-		      (goto-char (point-min))
-		    (scroll-up)))
+                (let ((win (or (get-buffer-window "*Completions*" 0)
+                               (display-buffer "*Completions*"
+                                               'not-this-window))))
+                  (with-selected-window win
+                    (if (pos-visible-in-window-p (point-max))
+                        (goto-char (point-min))
+                      (scroll-up))))
 		(message ""))
 	       (t
 		(setq unread-command-events (list event))
--- a/lisp/progmodes/cc-engine.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/progmodes/cc-engine.el	Sun Mar 18 14:11:08 2007 +0000
@@ -1912,6 +1912,26 @@
       )))
 
 
+;; Other whitespace tools
+(defun c-partial-ws-p (beg end)
+  ;; Is the region (beg end) WS, and is there WS (or BOB/EOB) next to the
+  ;; region?  This is a "heuristic" function.  .....
+  ;; 
+  ;; The motivation for the second bit is to check whether the removal of this
+  ;; space is to check whether removing this region would coalesce two
+  ;; symbols.
+  ;;
+  ;; FIXME!!!  This function doesn't check virtual semicolons in any way.  Be
+  ;; careful about using this function for, e.g. AWK.  (2007/3/7)
+  (save-excursion
+    (let ((end+1 (min (1+ end) (point-max))))
+      (or (progn (goto-char (max (point-min) (1- beg)))
+		 (c-skip-ws-forward end)
+		 (eq (point) end))
+	  (progn (goto-char beg)
+		 (c-skip-ws-forward end+1)
+		 (eq (point) end+1))))))
+
 ;; A system for finding noteworthy parens before the point.
 
 (defvar c-state-cache nil)
@@ -2491,24 +2511,25 @@
   ;; Move to the beginning of the current token.  Do not move if not
   ;; in the middle of one.  BACK-LIMIT may be used to bound the
   ;; backward search; if given it's assumed to be at the boundary
-  ;; between two tokens.
+  ;; between two tokens.  Return non-nil if the point is move, nil
+  ;; otherwise.
   ;;
   ;; This function might do hidden buffer changes.
-  (if (looking-at "\\w\\|\\s_")
-      (skip-syntax-backward "w_" back-limit)
     (let ((start (point)))
-      (when (< (skip-syntax-backward ".()" back-limit) 0)
-	(while (let ((pos (or (and (looking-at c-nonsymbol-token-regexp)
-				   (match-end 0))
-			      ;; `c-nonsymbol-token-regexp' should always match
-			      ;; since we've skipped backward over punctuator
-			      ;; or paren syntax, but consume one char in case
-			      ;; it doesn't so that we don't leave point before
-			      ;; some earlier incorrect token.
-			      (1+ (point)))))
-		 (if (<= pos start)
-		     (goto-char pos))
-		 (< pos start)))))))
+      (if (looking-at "\\w\\|\\s_")
+	  (skip-syntax-backward "w_" back-limit)
+	(when (< (skip-syntax-backward ".()" back-limit) 0)
+	  (while (let ((pos (or (and (looking-at c-nonsymbol-token-regexp)
+				     (match-end 0))
+				;; `c-nonsymbol-token-regexp' should always match
+				;; since we've skipped backward over punctuator
+				;; or paren syntax, but consume one char in case
+				;; it doesn't so that we don't leave point before
+				;; some earlier incorrect token.
+				(1+ (point)))))
+		   (if (<= pos start)
+		       (goto-char pos))))))
+      (< (point) start)))
 
 (defun c-end-of-current-token (&optional back-limit)
   ;; Move to the end of the current token.  Do not move if not in the
@@ -3957,6 +3978,9 @@
 ;; file, and we only use this as a last resort in ambiguous cases (see
 ;; `c-forward-decl-or-cast-1').
 ;;
+;; Not every type need be in this cache.  However, things which have
+;; ceased to be types must be removed from it.
+;;
 ;; Template types in C++ are added here too but with the template
 ;; arglist replaced with "<>" in references or "<" for the one in the
 ;; primary type.  E.g. the type "Foo<A,B>::Bar<C>" is stored as
@@ -3990,6 +4014,10 @@
       (unintern (substring type 0 -1) c-found-types)
       (intern type c-found-types))))
 
+(defun c-unfind-type (name)
+  ;; Remove the "NAME" from c-found-types, if present.
+  (unintern name c-found-types))
+
 (defsubst c-check-type (from to)
   ;; Return non-nil if the given region contains a type in
   ;; `c-found-types'.
@@ -4008,6 +4036,48 @@
 	      c-found-types)
     (sort type-list 'string-lessp)))
 
+(defun c-trim-found-types (beg end old-len)
+  ;; An after change function which, in conjunction with the info in
+  ;; c-maybe-stale-found-type (set in c-before-change), removes a type
+  ;; from `c-found-types', should this type have become stale.  For
+  ;; example, this happens to "foo" when "foo \n bar();" becomes
+  ;; "foo(); \n bar();".  Such stale types, if not removed, foul up
+  ;; the fontification.
+  ;; 
+  ;; Have we, perhaps, added non-ws characters to the front/back of a found
+  ;; type?
+  (when (> end beg)
+    (save-excursion
+      (when (< end (point-max))
+	(goto-char end)
+	(if (and (c-beginning-of-current-token) ; only moves when we started in the middle
+		 (progn (goto-char end)
+			(c-end-of-current-token)))
+	    (c-unfind-type (buffer-substring-no-properties
+			    end (point)))))
+      (when (> beg (point-min))
+	(goto-char beg)
+	(if (and (c-end-of-current-token) ; only moves when we started in the middle
+		 (progn (goto-char beg)
+			(c-beginning-of-current-token)))
+	    (c-unfind-type (buffer-substring-no-properties
+			    (point) beg))))))
+	    
+  (if c-maybe-stale-found-type ; e.g. (c-decl-id-start "foo" 97 107 " (* ooka) " "o")
+      (cond
+       ;; Changing the amount of (already existing) whitespace - don't do anything.
+       ((and (c-partial-ws-p beg end)
+	     (or (= beg end)		; removal of WS
+		 ; (string-match "\\s *\\'" (nth 5 c-maybe-stale-found-type))
+		 (string-match "^[ \t\n\r\f\v]*$" (nth 5 c-maybe-stale-found-type)))))
+
+       ;; The syntactic relationship which defined a "found type" has been
+       ;; destroyed.
+       ((eq (car c-maybe-stale-found-type) 'c-decl-id-start)
+	(c-unfind-type (cadr c-maybe-stale-found-type)))
+;;        ((eq (car c-maybe-stale-found-type) 'c-decl-type-start)  FIXME!!!
+	)))
+
 
 ;; Handling of small scale constructs like types and names.
 
--- a/lisp/progmodes/cc-mode.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/progmodes/cc-mode.el	Sun Mar 18 14:11:08 2007 +0000
@@ -412,8 +412,143 @@
 ;; temporary changes in some font lock support modes, causing extra
 ;; unnecessary work and font lock glitches due to interactions between
 ;; various text properties.
+;; 
+;; (2007-02-12): The macro `combine-after-change-calls' ISN'T used any
+;; more.
 
-(defun c-after-change (beg end len)
+(defun c-unfind-enclosing-token (pos)
+  ;; If POS is wholly inside a token, remove that id from
+  ;; `c-found-types', should it be present.  Return t if we were in an
+  ;; id, else nil.
+  (save-excursion
+    (let ((tok-beg (progn (goto-char pos)
+			  (and (c-beginning-of-current-token) (point))))
+	  (tok-end (progn (goto-char pos)
+			  (and (c-end-of-current-token) (point)))))
+      (when (and tok-beg tok-end)
+	(c-unfind-type (buffer-substring-no-properties tok-beg tok-end))
+	t))))
+
+(defun c-unfind-coalesced-tokens (beg end)
+  ;; unless the non-empty region (beg end) is entirely WS and there's at
+  ;; least one character of WS just before or after this region, remove
+  ;; the tokens which touch the region from `c-found-types' should they
+  ;; be present.
+  (or (c-partial-ws-p beg end)
+      (save-excursion
+	(progn
+	  (goto-char beg)
+	  (or (eq beg (point-min))
+	      (c-skip-ws-backward (1- beg))
+	      (/= (point) beg)
+	      (= (c-backward-token-2) 1)
+	      (c-unfind-type (buffer-substring-no-properties
+			      (point) beg)))
+	  (goto-char end)
+	  (or (eq end (point-max))
+	      (c-skip-ws-forward (1+ end))
+	      (/= (point) end)
+	      (progn (forward-char) (c-end-of-current-token) nil)
+	      (c-unfind-type (buffer-substring-no-properties
+			      end (point))))))))
+
+;; c-maybe-stale-found-type records a place near the region being
+;; changed where an element of `found-types' might become stale.  It 
+;; is set in c-before-change and is either nil, or has the form:
+;;
+;;   (c-decl-id-start "foo" 97 107  " (* ooka) " "o"), where
+;;   
+;; o - `c-decl-id-start' is the c-type text property value at buffer
+;;   pos 96.
+;; 
+;; o - 97 107 is the region potentially containing the stale type -
+;;   this is delimited by a non-nil c-type text property at 96 and
+;;   either another one or a ";", "{", or "}" at 107.
+;; 
+;; o - " (* ooka) " is the (before change) buffer portion containing
+;;   the suspect type (here "ooka").
+;;
+;; o - "o" is the buffer contents which is about to be deleted.  This
+;;   would be the empty string for an insertion.
+(defvar c-maybe-stale-found-type nil)
+(make-variable-buffer-local 'c-maybe-stale-found-type)
+
+(defun c-before-change (beg end)
+  ;; Function to be put on `before-change-function'.  Currently
+  ;; (2007-02) it is used only to remove stale entries from the
+  ;; `c-found-types' cache, and to record entries which a
+  ;; `c-after-change' function might confirm as stale.
+  ;; 
+  ;; Note that this function must be FAST rather than accurate.  Note
+  ;; also that it only has any effect when font locking is enabled.
+  ;; We exploit this by checking for font-lock-*-face instead of doing
+  ;; rigourous syntactic analysis.
+
+  ;; If either change boundary is wholly inside an identifier, delete
+  ;; it/them from the cache.  Don't worry about being inside a string
+  ;; or a comment - "wrongly" removing a symbol from `c-found-types'
+  ;; isn't critical.
+  (setq c-maybe-stale-found-type nil)
+  (save-restriction
+    (save-match-data
+      (widen)
+      (save-excursion
+	;; Are we inserting/deleting stuff in the middle of an identifier?
+	(c-unfind-enclosing-token beg)
+	(c-unfind-enclosing-token end)
+	;; Are we coalescing two tokens together, e.g. "fo o" -> "foo"?
+	(when (< beg end)
+	  (c-unfind-coalesced-tokens beg end))
+	;; Are we (potentially) disrupting the syntactic context which
+	;; makes a type a type?  E.g. by inserting stuff after "foo" in
+	;; "foo bar;", or before "foo" in "typedef foo *bar;"?
+	;;
+	;; We search for appropriate c-type properties "near" the change.
+	;; First, find an appropriate boundary for this property search.
+	(let (lim
+	      type type-pos
+	      marked-id term-pos
+	      (end1
+	       (if (eq (get-text-property end 'face) 'font-lock-comment-face)
+		   (previous-single-property-change end 'face)
+		 end)))
+	  (when (>= end1 beg) ; Don't hassle about changes entirely in comments.
+	    ;; Find a limit for the search for a `c-type' property
+	    (while
+		(and (/= (skip-chars-backward "^;{}") 0)
+		     (> (point) (point-min))
+		     (memq (c-get-char-property (1- (point)) 'face)
+			   '(font-lock-comment-face font-lock-string-face))))
+	    (setq lim (max (point-min) (1- (point))))
+
+	    ;; Look for the latest `c-type' property before end1
+	    (when (and (> end1 1)
+		       (setq type-pos
+			     (if (get-text-property (1- end1) 'c-type)
+				 end1
+			       (previous-single-property-change end1 'c-type nil lim))))
+	      (setq type (get-text-property (max (1- type-pos) lim) 'c-type))
+
+	      (when (memq type '(c-decl-id-start c-decl-type-start))
+		;; Get the identifier, if any, that the property is on.
+		(goto-char (1- type-pos))
+		(setq marked-id
+		      (when (looking-at "\\(\\sw\\|\\s_\\)")
+			(c-beginning-of-current-token)
+			(buffer-substring-no-properties (point) type-pos)))
+
+		(goto-char end1)
+		(skip-chars-forward "^;{}") ; FIXME!!!  loop for comment, maybe
+		(setq lim (point))
+		(setq term-pos
+		      (or (next-single-property-change end 'c-type nil lim) lim))
+		(setq c-maybe-stale-found-type
+		      (list type marked-id
+			    type-pos term-pos
+			    (buffer-substring-no-properties type-pos term-pos)
+			    (buffer-substring-no-properties beg end)))))))))))
+
+(defun c-after-change (beg end old-len)
   ;; Function put on `after-change-functions' to adjust various caches
   ;; etc.  Prefer speed to finesse here, since there will be an order
   ;; of magnitude more calls to this function than any of the
@@ -441,6 +576,7 @@
 	  (when (> beg end)
 	    (setq beg end)))
 
+	(c-trim-found-types beg end old-len) ; maybe we don't need all of these.
 	(c-invalidate-sws-region-after beg end)
 	(c-invalidate-state-cache beg)
 	(c-invalidate-find-decl-cache beg)
@@ -577,6 +713,8 @@
 
   ;; Install the functions that ensure that various internal caches
   ;; don't become invalid due to buffer changes.
+  (make-local-hook 'before-change-functions)
+  (add-hook 'before-change-functions 'c-before-change nil t)
   (make-local-hook 'after-change-functions)
   (add-hook 'after-change-functions 'c-after-change nil t))
 
--- a/lisp/progmodes/cperl-mode.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/progmodes/cperl-mode.el	Sun Mar 18 14:11:08 2007 +0000
@@ -1795,8 +1795,8 @@
 	((boundp 'compilation-error-regexp-alist);; xmeacs 19.x
 	 (make-local-variable 'compilation-error-regexp-alist)
 	 (set 'compilation-error-regexp-alist
-	       (cons cperl-compilation-error-regexp-alist
-		     (symbol-value 'compilation-error-regexp-alist)))))
+	       (append cperl-compilation-error-regexp-alist
+		       (symbol-value 'compilation-error-regexp-alist)))))
   (make-local-variable 'font-lock-defaults)
   (setq	font-lock-defaults
 	(cond
--- a/lisp/progmodes/grep.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/progmodes/grep.el	Sun Mar 18 14:11:08 2007 +0000
@@ -157,7 +157,8 @@
   :type 'alist
   :group 'grep)
 
-(defcustom grep-find-ignored-directories '("CVS" ".svn" "{arch}" ".hg" "_darcs")
+(defcustom grep-find-ignored-directories '("CVS" ".svn" "{arch}" ".hg" "_darcs"
+					   ".git" ".bzr")
   "*List of names of sub-directories which `rgrep' shall not recurse into."
   :type '(repeat string)
   :group 'grep)
--- a/lisp/progmodes/gud.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/progmodes/gud.el	Sun Mar 18 14:11:08 2007 +0000
@@ -690,7 +690,10 @@
 	   (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 requires restarting in text command mode"))
+      (let ((same-window-regexps))
+	(display-buffer gud-comint-buffer)
+	(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)
--- a/lisp/progmodes/hideshow.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/progmodes/hideshow.el	Sun Mar 18 14:11:08 2007 +0000
@@ -906,11 +906,18 @@
   (if hs-minor-mode
       (progn
         (hs-grok-mode-type)
+        ;; Turn off this mode if we change major modes.
+	(add-hook 'change-major-mode-hook
+		  (lambda () (hs-minor-mode -1))
+		  nil t)
         (easy-menu-add hs-minor-mode-menu)
         (set (make-local-variable 'line-move-ignore-invisible) t)
         (add-to-invisibility-spec '(hs . t)))
     (easy-menu-remove hs-minor-mode-menu)
-    (remove-from-invisibility-spec '(hs . t)))
+    (remove-from-invisibility-spec '(hs . t))
+    ;; hs-show-all does nothing unless h-m-m is non-nil.
+    (let ((hs-minor-mode t))
+      (hs-show-all)))
   (run-hooks 'hs-minor-mode-hook))
 
 ;;---------------------------------------------------------------------------
@@ -945,7 +952,7 @@
 (add-to-list 'minor-mode-map-alist (cons 'hs-minor-mode hs-minor-mode-map))
 (add-to-list 'minor-mode-alist '(hs-minor-mode " hs") t)
 
-;; make some variables permanently buffer-local
+;; make some variables buffer-local
 (dolist (var '(hs-minor-mode
                hs-c-start-regexp
                hs-block-start-regexp
@@ -953,8 +960,7 @@
                hs-block-end-regexp
                hs-forward-sexp-func
                hs-adjust-block-beginning))
-  (make-variable-buffer-local var)
-  (put var 'permanent-local t))
+  (make-variable-buffer-local var))
 
 ;;---------------------------------------------------------------------------
 ;; that's it
--- a/lisp/progmodes/idlw-help.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/progmodes/idlw-help.el	Sun Mar 18 14:11:08 2007 +0000
@@ -386,8 +386,7 @@
 			   (< beg (- end 4))))
 	   module keyword cw mod1 mod2 mod3)
       (if (or arg 
-	      (and (not st-ass)
-		   (not classtag)
+	      (and (not classtag)
 		   (not structtag)
 		   (not (member (string-to-char this-word) '(?! ?.)))))
 	  ;; Need the module information
@@ -408,7 +407,8 @@
        (arg (setq mod1 module))
        
        ;; A special topic -- only system help
-       (st-ass (setq mod1 (list (cdr st-ass))))
+       ((and st-ass (not (memq cw '(function-keyword procedure-keyword))))
+	(setq mod1 (list (cdr st-ass))))
        
        ;; A system variable -- only system help
        ((string-match 
@@ -1226,7 +1226,7 @@
 ;; we must pass the -profile argument as well.
 (defvar idlwave-help-assistant-command 
   (if (memq system-type '(ms-dos windows-nt))
-      "bin/bin.x86/idl_assistant"
+      "bin/bin.x86/idl_assistant.exe"
     "bin/idl_assistant")
   "The command, rooted at idlwave-system-directory, which invokes the
 IDL assistant.")
--- a/lisp/progmodes/python.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/progmodes/python.el	Sun Mar 18 14:11:08 2007 +0000
@@ -1383,11 +1383,11 @@
 COMMAND should be a single statement."
   ;; (assert (not (string-match "\n" command)))
   ;; (let ((end (marker-position (process-mark (python-proc)))))
-    (with-current-buffer python-buffer (goto-char (point-max)))
+  (with-current-buffer (process-buffer (python-proc))
+    (goto-char (point-max))
     (compilation-forget-errors)
     (python-send-string command)
-    (with-current-buffer python-buffer
-      (setq compilation-last-buffer (current-buffer)))
+    (setq compilation-last-buffer (current-buffer)))
     ;; No idea what this is for but it breaks the call to
     ;; compilation-fake-loc in python-send-region.  -- Stef
     ;; Must wait until this has completed before re-setting variables below.
@@ -1517,9 +1517,9 @@
   ;; isn't one for `python-buffer'.
   (unless (comint-check-proc python-buffer)
     (run-python nil t))
-  (get-buffer-process (or (if (derived-mode-p 'inferior-python-mode)
-                              (current-buffer)
-                            python-buffer))))
+  (get-buffer-process (if (derived-mode-p 'inferior-python-mode)
+                          (current-buffer)
+                        python-buffer)))
 
 (defun python-set-proc ()
   "Set the default value of `python-buffer' to correspond to this buffer.
--- a/lisp/replace.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/replace.el	Sun Mar 18 14:11:08 2007 +0000
@@ -1049,7 +1049,9 @@
 
     (with-current-buffer occur-buf
       (occur-mode)
-      (let ((inhibit-read-only t))
+      (let ((inhibit-read-only t)
+	    ;; Don't generate undo entries for creation of the initial contents.
+	    (buffer-undo-list t))
 	(erase-buffer)
 	(let ((count (occur-engine
 		      regexp active-bufs occur-buf
@@ -1086,8 +1088,6 @@
 			    title-face prefix-face match-face keep-props)
   (with-current-buffer out-buf
     (let ((globalcount 0)
-	  ;; Don't generate undo entries for creation of the initial contents.
-	  (buffer-undo-list t)
 	  (coding nil))
       ;; Map over all the buffers
       (dolist (buf buffers)
--- a/lisp/ses.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/ses.el	Sun Mar 18 14:11:08 2007 +0000
@@ -1485,7 +1485,7 @@
 ;;;###autoload
 (defun ses-mode ()
   "Major mode for Simple Emacs Spreadsheet.
-See \"ses-example.ses\" (in the etc data directory) for more info.
+See \"ses-example.ses\" (in `data-directory') for more info.
 
 Key definitions:
 \\{ses-mode-map}
--- a/lisp/shell.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/shell.el	Sun Mar 18 14:11:08 2007 +0000
@@ -336,7 +336,7 @@
   "Keep track of last directory for ksh `cd -' command.")
 
 (defvar shell-dirstack-query nil
-  "Command used by `shell-resync-dir' to query the shell.")
+  "Command used by `shell-resync-dirs' to query the shell.")
 
 (defvar shell-mode-map nil)
 (cond ((not shell-mode-map)
--- a/lisp/simple.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/simple.el	Sun Mar 18 14:11:08 2007 +0000
@@ -758,7 +758,7 @@
 			     (/ size 10))
 			(/ (+ 10 (* size (prefix-numeric-value arg))) 10)))
 		 (point-min))))
-  (if arg (forward-line 1)))
+  (if (and arg (not (consp arg))) (forward-line 1)))
 
 (defun end-of-buffer (&optional arg)
   "Move point to the end of the buffer; leave mark at previous position.
@@ -785,7 +785,7 @@
 		 (point-max))))
   ;; If we went to a place in the middle of the buffer,
   ;; adjust it to the beginning of a line.
-  (cond (arg (forward-line 1))
+  (cond ((and arg (not (consp arg))) (forward-line 1))
 	((> (point) (window-end nil t))
 	 ;; If the end of the buffer is not already on the screen,
 	 ;; then scroll specially to put it near, but not at, the bottom.
@@ -1005,6 +1005,9 @@
 
 (defvar read-expression-history nil)
 
+(defvar minibuffer-completing-symbol nil
+  "Non-nil means completing a Lisp symbol in the minibuffer.")
+
 (defcustom eval-expression-print-level 4
   "Value for `print-level' while printing value in `eval-expression'.
 A value of nil means no limit."
@@ -1056,9 +1059,10 @@
 If `eval-expression-debug-on-error' is non-nil, which is the default,
 this command arranges for all errors to enter the debugger."
   (interactive
-   (list (read-from-minibuffer "Eval: "
-			       nil read-expression-map t
-			       'read-expression-history)
+   (list (let ((minibuffer-completing-symbol t))
+	   (read-from-minibuffer "Eval: "
+				 nil read-expression-map t
+				 'read-expression-history))
 	 current-prefix-arg))
 
   (if (null eval-expression-debug-on-error)
@@ -5088,7 +5092,8 @@
     ;; so it will get copied into the completion list buffer.
     (if minibuffer-completing-file-name
 	(with-current-buffer mainbuf
-	  (setq default-directory (file-name-directory mbuf-contents))))
+	  (setq default-directory
+                (file-name-directory (expand-file-name mbuf-contents)))))
     (with-current-buffer standard-output
       (completion-list-mode)
       (set (make-local-variable 'completion-reference-buffer) mainbuf)
@@ -5108,6 +5113,7 @@
 		(save-excursion
 		  (skip-chars-backward completion-root-regexp)
 		  (- (point) (minibuffer-prompt-end)))))
+	     (minibuffer-completing-symbol nil)
 	     ;; Otherwise, in minibuffer, the base size is 0.
 	     ((minibufferp mainbuf) 0)))
       (setq common-string-length
--- a/lisp/smerge-mode.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/smerge-mode.el	Sun Mar 18 14:11:08 2007 +0000
@@ -345,7 +345,9 @@
   ;; during font-locking so inhibit-modification-hooks is non-nil, so we
   ;; can't just modify the buffer and expect font-lock to be triggered as in:
   ;; (put-text-property beg end 'smerge-force-highlighting nil)
-  (remove-text-properties beg end '(fontified nil)))
+  (let ((modified (buffer-modified-p)))
+    (remove-text-properties beg end '(fontified nil))
+    (restore-buffer-modified-p modified)))
 
 (defun smerge-popup-context-menu (event)
   "Pop up the Smerge mode context menu under mouse."
@@ -558,6 +560,8 @@
 	  t)
       (search-failed (error "Point not in conflict region")))))
 
+(add-to-list 'debug-ignored-errors "Point not in conflict region")
+
 (defun smerge-conflict-overlay (pos)
   "Return the conflict overlay at POS if any."
   (let ((ols (overlays-at pos))
--- a/lisp/startup.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/startup.el	Sun Mar 18 14:11:08 2007 +0000
@@ -1143,13 +1143,13 @@
                ;; If there is a specific tutorial for the current language
                ;; environment and it is not English, append its title.
                (concat
-                "Emacs Tutorial\tLearn how to use Emacs efficiently"
+                "Emacs Tutorial\t\tLearn how to use Emacs efficiently"
                 (if (string= en tut)
                     ""
                   (concat " (" title ")"))
                 "\n")))
            :face variable-pitch "\
-Emacs FAQ\tFrequently asked questions and answers
+Emacs FAQ\t\tFrequently asked questions and answers
 View Emacs Manual\tView the Emacs manual using Info
 Absence of Warranty\tGNU Emacs comes with "
 	   :face (variable-pitch :slant oblique)
@@ -1159,12 +1159,13 @@
 Copying Conditions\tConditions for redistributing and changing Emacs
 Getting New Versions\tHow to obtain the latest version of Emacs
 More Manuals / Ordering Manuals       Buying printed manuals from the FSF\n")
-  (:face (variable-pitch :weight bold)
+  (:face variable-pitch
 	 "To quit a partially entered command, type "
 	 :face default
 	 "Control-g"
 	 :face variable-pitch
-	 "."
+	 ".\n"
+	 :face (variable-pitch :weight bold)
 	 "Useful File menu items:\n"
 	 :face variable-pitch
 	 "Exit Emacs\t\t(Or type "
@@ -1299,8 +1300,7 @@
      :face 'variable-pitch
      "Type "
      :face 'default
-     (substitute-command-keys
-      "\\[recenter]")
+     "Control-l"
      :face 'variable-pitch
      " to begin editing"
      (if (equal (buffer-name fancy-splash-outer-buffer)
--- a/lisp/term/x-win.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/term/x-win.el	Sun Mar 18 14:11:08 2007 +0000
@@ -2199,11 +2199,12 @@
 ;;   (1) If their lengthes are different, select the longer one.  This
 ;;   is because an X client may just cut off unsupported characters.
 ;;
-;;   (2) Otherwise, if the Nth character of CTEXT is an ASCII
-;;   character that is different from the Nth character of UTF8,
-;;   select UTF8.  This is because an X client may replace unsupported
-;;   characters with some ASCII character (typically ` ' or `?') in
-;;   CTEXT.
+;;   (2) Otherwise, if they are different at Nth character, and that
+;;   of UTF8 is a Latin character and that of CTEXT belongs to a CJK
+;;   character set, select UTF8.  Also select UTF8 if the Nth
+;;   character of UTF8 is non-ASCII where as that of CTEXT is ASCII.
+;;   This is because an X client may replace unsupported characters
+;;   with some ASCII character (typically ` ' or `?') in CTEXT.
 ;;
 ;;   (3) Otherwise, select CTEXT.  This is because legacy charsets are
 ;;   better for the current Emacs, especially when the selection owner
@@ -2218,10 +2219,16 @@
     (if (/= len-utf8 len-ctext)
 	(if (> len-utf8 len-ctext) utf8 ctext)
       (let ((result (compare-strings utf8 0 len-utf8 ctext 0 len-ctext)))
-	(if (or (eq result t)
-		(>= (aref ctext (1- (abs result))) 128))
+	(if (eq result t)
 	    ctext
-	  utf8)))))
+	  (let ((utf8-char (aref utf8 (1- (abs result))))
+		(ctext-char (aref ctext (1- (abs result)))))
+	    (if (or (and (aref (char-category-set utf8-char) ?l)
+			 (aref (char-category-set ctext-char) ?C))
+		    (and (>= utf8-char 128)
+			 (< ctext-char  128)))
+		utf8
+	      ctext)))))))
 
 ;; Get a selection value of type TYPE by calling x-get-selection with
 ;; an appropiate DATA-TYPE argument decidd by `x-select-request-type'.
--- a/lisp/textmodes/org.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/textmodes/org.el	Sun Mar 18 14:11:08 2007 +0000
@@ -18767,6 +18767,13 @@
 (put 'org-delete-char 'delete-selection 'supersede)
 (put 'org-delete-backward-char 'delete-selection 'supersede)
 
+;; Make `flyspell-mode' delay after some commands
+(put 'org-self-insert-command 'flyspell-delayed t)
+(put 'orgtbl-self-insert-command 'flyspell-delayed t)
+(put 'org-delete-char 'flyspell-delayed t)
+(put 'org-delete-backward-char 'flyspell-delayed t)
+
+
 ;; How to do this: Measure non-white length of current string
 ;; If equal to column width, we should realign.
 
--- a/lisp/type-break.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/type-break.el	Sun Mar 18 14:11:08 2007 +0000
@@ -562,9 +562,12 @@
     (if file
         (timep ;; returns expected format, else nil
          (with-current-buffer (find-file-noselect file 'nowarn)
-           (save-excursion
-             (goto-char (point-min))
-             (read (current-buffer))))))))
+	   (condition-case nil
+	       (save-excursion
+		 (goto-char (point-min))
+		 (read (current-buffer)))
+	     (end-of-file
+	      (error "End of file in `%s'" file))))))))
 
 (defun type-break-get-previous-count ()
   "Get previous keystroke count from `type-break-file-name'.
@@ -576,10 +579,13 @@
               (setq file
                     (with-current-buffer
                         (find-file-noselect file 'nowarn)
-                      (save-excursion
-                        (goto-char (point-min))
-                        (forward-line 1)
-                        (read (current-buffer)))))))
+                    (condition-case nil
+                        (save-excursion
+                          (goto-char (point-min))
+                          (forward-line 1)
+                          (read (current-buffer)))
+                      (end-of-file
+                       (error "End of file in `%s'" file)))))))
         file
       0)))
 
--- a/lisp/woman.el	Sun Mar 18 14:00:43 2007 +0000
+++ b/lisp/woman.el	Sun Mar 18 14:11:08 2007 +0000
@@ -3284,7 +3284,7 @@
 	;; Find font requests, paragraph macros and font escapes:
 	(re-search-forward
 	 "^[.'][ \t]*\\(\\(\\ft\\)\\|\\(.P\\)\\)\\|\\(\\\\f\\)" nil 1)
-      (let (font beg notfont)
+      (let (font beg notfont fescape)
 	;; Match font indicator and leave point at end of sequence:
 	(cond ((match-string 2)
 	       ;; .ft request found
@@ -3299,7 +3299,8 @@
 	       (setq font 'default))
 	      ((match-string 4)
 	       ;; \f escape found
-	       (setq beg (match-beginning 0))
+	       (setq beg (match-beginning 0)
+                     fescape t)
 	       (woman-match-name))
 	      (t (setq notfont t)))
 	(if notfont
@@ -3321,6 +3322,13 @@
 	  ;; Delete font control line or escape sequence:
 	  (cond (beg (delete-region beg (point))
 		     (if (eq font 'previous) (setq font previous-font))))
+          ;; Deal with things like \fB.cvsrc\fR at the start of a line.
+          ;; After removing the font control codes, this would
+          ;; otherwise match woman-request-regexp. The "\\&" which is
+          ;; inserted to prevent this is removed by woman2-process-escapes.
+          (and fescape
+               (looking-at "^\\.")
+               (insert "\\&"))
 	  (woman-set-face previous-pos (point) current-font)
 	  (if beg
 	      ;; Explicit font control
@@ -3665,39 +3673,39 @@
     (unwind-protect
 	(while
 	    ;; Find next control line:
-	    (re-search-forward woman-request-regexp nil t)
-	  (cond
-	   ;; Construct woman function to call:
-	   ((setq fn (intern-soft
-		      (concat "woman2-"
-			      (setq request (match-string 1)))))
-	    ;; Delete request or macro name:
-	    (woman-delete-match 0))
-	   ;; Unrecognised request:
-	   ((prog1 nil
-	      ;; (WoMan-warn ".%s request ignored!" request)
-	      (WoMan-warn-ignored request "ignored!")
-	      ;; (setq fn 'woman2-LP)
-	      ;; AVOID LEAVING A BLANK LINE!
-	      ;; (setq fn 'woman2-format-paragraphs)
-	      ))
-	   ;; .LP assumes it is at eol and leaves a (blank) line,
-	   ;; so leave point at end of line before paragraph:
-	   ((or (looking-at "[ \t]*$")	; no argument
-		woman-ignore)		; ignore all
-	    ;; (beginning-of-line) (kill-line)
-	    ;; AVOID LEAVING A BLANK LINE!
-	    (beginning-of-line) (woman-delete-line 1))
-	   (t (end-of-line) (insert ?\n))
-	   )
-	  (if (not (or fn
-		       (and (not (memq (following-char) '(?. ?')))
-			    (setq fn 'woman2-format-paragraphs))))
-	      ()
-	    ;; Find next control line:
-	    (set-marker to (woman-find-next-control-line))
-	    ;; Call the appropriate function:
-	    (funcall fn to)))
+            (re-search-forward woman-request-regexp nil t)
+          (cond
+           ;; Construct woman function to call:
+           ((setq fn (intern-soft
+                      (concat "woman2-"
+                              (setq request (match-string 1)))))
+            ;; Delete request or macro name:
+            (woman-delete-match 0))
+           ;; Unrecognised request:
+           ((prog1 nil
+              ;; (WoMan-warn ".%s request ignored!" request)
+              (WoMan-warn-ignored request "ignored!")
+              ;; (setq fn 'woman2-LP)
+              ;; AVOID LEAVING A BLANK LINE!
+              ;; (setq fn 'woman2-format-paragraphs)
+              ))
+           ;; .LP assumes it is at eol and leaves a (blank) line,
+           ;; so leave point at end of line before paragraph:
+           ((or (looking-at "[ \t]*$") ; no argument
+                woman-ignore)          ; ignore all
+            ;; (beginning-of-line) (kill-line)
+            ;; AVOID LEAVING A BLANK LINE!
+            (beginning-of-line) (woman-delete-line 1))
+           (t (end-of-line) (insert ?\n))
+           )
+           (if (not (or fn
+                        (and (not (memq (following-char) '(?. ?')))
+                             (setq fn 'woman2-format-paragraphs))))
+               ()
+             ;; Find next control line:
+             (set-marker to (woman-find-next-control-line))
+             ;; Call the appropriate function:
+             (funcall fn to)))
       (if (not (eobp))			; This should not happen, but ...
 	  (woman2-format-paragraphs (copy-marker (point-max) t)
                                     woman-left-margin))
@@ -4193,7 +4201,27 @@
     (let ((i (woman2-get-prevailing-indent 'leave-eol)))
       (beginning-of-line)
       (woman-leave-blank-lines)		; must be here,
-      (woman2-tagged-paragraph to i))))
+      ;;
+      ;; The cvs.1 manpage contains some (possibly buggy) syntax that
+      ;; confuses woman, although the man program displays it ok.
+      ;; Most problems are caused by IP followed by another request on
+      ;; the next line. Without the following hack, the second request
+      ;; gets displayed raw in the output. Note that
+      ;; woman2-tagged-paragraph also contains a hack for similar
+      ;; issues (eg IP followed by SP).
+      ;;
+      ;; i) For IP followed by one or more IPs, we ignore all but the
+      ;; last (mimic man). The hack in w-t-p would only work for two
+      ;; consecutive IPs, and would use the first.
+      ;; ii) For IP followed by SP followed by one or more requests,
+      ;; do nothing. At least in cvs.1, there is usually another IP in
+      ;; there somewhere.
+      (unless (or (looking-at "^\\.IP")
+                  (and (looking-at "^\\.sp")
+                       (save-excursion
+                         (and (zerop (forward-line 1))
+                              (looking-at woman-request-regexp)))))
+        (woman2-tagged-paragraph to i)))))
 
 (defun woman-find-next-control-line-carefully ()
   "Find and return start of next control line, even if already there!"
@@ -4208,17 +4236,21 @@
   (if (not (looking-at "\\s *$"))	; non-empty tag
       (setq woman-leave-blank-lines nil))
 
-  ;; Temporary hack for bash.1 and groff_mmse.7 until code is revised
-  ;; to process all requests uniformly:
-  (cond ((and (= (point) to) (looking-at "^[.'][ \t]*\\(PD\\|br\\|ta\\) *"))
-	 (if (string= (match-string 1) "br")
-	     (woman-delete-line 1)
-	   (woman-delete-match 0)
-	   (if (string= (match-string 1) "ta") ; for GetInt.3
-	       (woman2-ta to)
-	     (woman-set-interparagraph-distance)))
-	 (set-marker to (woman-find-next-control-line-carefully))
-	 ))
+  ;; Temporary hack for bash.1, cvs.1 and groff_mmse.7 until code is revised
+  ;; to process all requests uniformly.
+  ;; This hack deals with IP requests followed by other requests (eg
+  ;; SP) on the very next line. We skip over the SP, otherwise it gets
+  ;; inserted raw in the rendered output.
+  (cond ((and (= (point) to)
+              (looking-at "^[.'][ \t]*\\(PD\\|br\\|ta\\|sp\\) *"))
+         (if (member (match-string 1) '("br" "sp"))
+             (woman-delete-line 1)
+           (woman-delete-match 0)
+           (if (string= (match-string 1) "ta") ; for GetInt.3
+               (woman2-ta to)
+             (woman-set-interparagraph-distance)))
+         (set-marker to (woman-find-next-control-line-carefully))
+         ))
 
   (let ((tag (point)))
     (woman-reset-nospace)
@@ -4274,6 +4306,7 @@
     (let ((i (woman-get-numeric-arg)))
       (woman-delete-line) (or leave-eol (delete-char 1))
       ;; i = 0 if the argument was not a number
+      ;; FIXME should this be >= 0? How else to reset to 0 indent?
       (if (> i 0) (setq woman-prevailing-indent i))))
   woman-prevailing-indent)
 
--- a/lispref/ChangeLog	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/ChangeLog	Sun Mar 18 14:11:08 2007 +0000
@@ -1,3 +1,31 @@
+2007-03-05  Richard Stallman  <rms@gnu.org>
+
+	* variables.texi (File Local Variables): Update
+	enable-local-variables values.
+
+2007-03-04  Richard Stallman  <rms@gnu.org>
+
+	* syntax.texi (Control Parsing): Minor clarification.
+
+	* strings.texi (Formatting Strings): Clarify width, precision, flags.
+
+	* sequences.texi (Sequence Functions): Move string-bytes away,
+	add xref.
+
+	* nonascii.texi (Text Representations): Move string-bytes here.
+
+	* modes.texi (Major Mode Conventions): Fundamental mode is exception.
+
+	* minibuf.texi (Basic Completion): Minor clarification.
+
+	* markers.texi (The Mark): Clarify existence vs activation of mark.
+	Other cleanup.
+
+	* display.texi (Finding Overlays): Write better example.
+
+	* compile.texi (Eval During Compile): Clarify putting macros
+	in eval-when-compile.
+
 2007-02-25  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
 
 	* loading.texi (How Programs Do Loading): Fix anchor position at
--- a/lispref/compile.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/compile.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -454,11 +454,10 @@
   (require 'my-macro-package))  ;; only macros needed from this
 @end lisp
 
-The same sort of thing goes for macros or @code{defalias}es defined
-locally and only for use within the file.  They can be defined while
-compiling, but then not needed when executing.  This is good for code
-that's only a fallback for compatibility with other versions of Emacs.
-For example.
+The same sort of thing goes for macros and @code{defsubst} functions
+defined locally and only for use within the file.  They are needed for
+compiling the file, but in most cases they are not needed for
+execution of the compiled file.  For example,
 
 @lisp
 (eval-when-compile
@@ -467,6 +466,10 @@
       (compatibility code))))
 @end lisp
 
+@noindent
+This is often good for code that's only a fallback for compatibility
+with other versions of Emacs.
+
 @strong{Common Lisp Note:} At top level, @code{eval-when-compile} is analogous to the Common
 Lisp idiom @code{(eval-when (compile eval) @dots{})}.  Elsewhere, the
 Common Lisp @samp{#.} reader macro (but not when interpreting) is closer
--- a/lispref/display.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/display.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -1527,26 +1527,25 @@
 @code{(point-min)}.
 @end defun
 
-  Here's a function which uses @code{next-overlay-change} to search
-for the next character which gets a given property @code{prop} from
-either its overlays or its text properties (@pxref{Property Search}):
+  As an example, here's a simplified (and inefficient) version of the
+primitive function @code{next-single-char-property-change}
+(@pxref{Property Search}).  It searches forward from position
+@var{pos} for the next position where the value of a given property
+@code{prop}, as obtained from either overlays or text properties,
+changes.
 
 @smallexample
-(defun find-overlay-prop (prop)
+(defun next-single-char-property-change (position prop)
   (save-excursion
-    (while (and (not (eobp))
-                (not (get-char-property (point) prop)))
-      (goto-char (min (next-overlay-change (point))
-                      (next-single-property-change (point) prop))))
+    (goto-char position)
+    (let ((propval (get-char-property (point) prop)))
+      (while (and (not (eobp))
+                  (eq (get-char-property (point) prop) propval))
+        (goto-char (min (next-overlay-change (point))
+                        (next-single-property-change (point) prop)))))
     (point)))
 @end smallexample
 
-  Now you can search for a @code{happy} property like this:
-
-@smallexample
-(find-overlay-prop 'happy)
-@end smallexample
-
 @node Width
 @section Width
 
--- a/lispref/markers.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/markers.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -410,10 +410,10 @@
 interactive call, but permits other Lisp programs to specify arguments
 explicitly.  @xref{Interactive Codes}.
 
-  Each buffer has its own value of the mark that is independent of the
-value of the mark in other buffers.  When a buffer is created, the mark
-exists but does not point anywhere.  We consider this state as ``the
-absence of a mark in that buffer.''
+  Each buffer has a marker which represents the value of the mark in
+that buffer, independent of any other buffer.  When a buffer is newly
+created, this marker exists but does not point anywhere.  That means
+the mark ``doesn't exist'' in that buffer as yet.
 
   Once the mark ``exists'' in a buffer, it normally never ceases to
 exist.  However, it may become @dfn{inactive}, if Transient Mark mode is
@@ -452,10 +452,10 @@
 @end defun
 
 @defun mark-marker
-This function returns the current buffer's mark.  This is the very marker
-that records the mark location inside Emacs, not a copy.  Therefore,
-changing this marker's position will directly affect the position of the mark.
-Don't do it unless that is the effect you want.
+This function returns the marker that represents the current buffer's
+mark.  It is not a copy, it is the marker used internally.  Therefore,
+changing this marker's position will directly affect the buffer's
+mark.  Don't do that unless that is the effect you want.
 
 @example
 @group
@@ -472,10 +472,10 @@
 @end group
 @end example
 
-Like any marker, this marker can be set to point at any buffer you like.
-We don't recommend that you make it point at any buffer other than the
-one of which it is the mark.  If you do, it will yield perfectly
-consistent, but rather odd, results.
+Like any marker, this marker can be set to point at any buffer you
+like.  If you make it point at any buffer other than the one of which
+it is the mark, it will yield perfectly consistent, but rather odd,
+results.  We recommend that you not do it!
 @end defun
 
 @ignore
--- a/lispref/minibuf.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/minibuf.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -629,12 +629,11 @@
 If @var{collection} is an alist (@pxref{Association Lists}), the
 permissible completions are the elements of the alist that are either
 strings, symbols, or conses whose @sc{car} is a string or symbol.
-Symbols are converted to strings using @code{symbol-name}.
-Other elements of the alist are ignored. (Remember that in Emacs Lisp,
-the elements of alists do not @emph{have} to be conses.)  As all
-elements of the alist can be strings, this case actually includes
-lists of strings or symbols, even though we usually do not think of
-such lists as alists.
+Symbols are converted to strings using @code{symbol-name}.  Other
+elements of the alist are ignored. (Remember that in Emacs Lisp, the
+elements of alists do not @emph{have} to be conses.)  In particular, a
+list of strings or symbols is allowed, even though we usually do not
+think of such lists as alists.
 
 @cindex obarray in completion
 If @var{collection} is an obarray (@pxref{Creating Symbols}), the names
--- a/lispref/modes.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/modes.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -256,7 +256,9 @@
   The code for existing major modes follows various coding conventions,
 including conventions for local keymap and syntax table initialization,
 global names, and hooks.  Please follow these conventions when you
-define a new major mode.
+define a new major mode.  (Fundamental mode is an exception to many
+of these conventions, because its definition is to present the global
+state of Emacs.)
 
   This list of conventions is only partial, because each major mode
 should aim for consistency in general with other Emacs major modes.
--- a/lispref/nonascii.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/nonascii.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -111,6 +111,13 @@
 Return @code{t} if @var{string} is a multibyte string.
 @end defun
 
+@defun string-bytes string
+@cindex string, number of bytes
+This function returns the number of bytes in @var{string}.
+If @var{string} is a multibyte string, this can be greater than
+@code{(length @var{string})}.
+@end defun
+
 @node Converting Representations
 @section Converting Text Representations
 
--- a/lispref/sequences.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/sequences.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -111,12 +111,8 @@
 @end example
 @end defun
 
-@defun string-bytes string
-@cindex string, number of bytes
-This function returns the number of bytes in @var{string}.
-If @var{string} is a multibyte string, this is greater than
-@code{(length @var{string})}.
-@end defun
+@noindent
+See also @code{string-bytes}, in @ref{Text Representations}.
 
 @defun elt sequence index
 @cindex elements of sequences
--- a/lispref/strings.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/strings.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -821,18 +821,19 @@
 
 @cindex field width
 @cindex padding
-  All the specification characters allow an optional ``width,'' which
-is a digit-string between the @samp{%} and the character.  If the
+  A specification can have a @dfn{width}, which is a signed decimal
+number between the @samp{%} and the specification character.  If the
 printed representation of the object contains fewer characters than
-this width, then it is padded.  The padding is on the left if the
-width is positive (or starts with zero) and on the right if the
-width is negative.  The padding character is normally a space, but if
-the width starts with a zero, zeros are used for padding.  Some of
-these conventions are ignored for specification characters for which
-they do not make sense.  That is, @samp{%s}, @samp{%S} and @samp{%c}
-accept a width starting with 0, but still pad with @emph{spaces} on
-the left.  Also, @samp{%%} accepts a width, but ignores it.  Here are
-some examples of padding:
+this width, @code{format} extends it with padding.  The padding goes
+on the left if the width is positive (or starts with zero) and on the
+right if the width is negative.  The padding character is normally a
+space, but it's @samp{0} if the width starts with a zero.
+
+  Some of these conventions are ignored for specification characters
+for which they do not make sense.  That is, @samp{%s}, @samp{%S} and
+@samp{%c} accept a width starting with 0, but still pad with
+@emph{spaces} on the left.  Also, @samp{%%} accepts a width, but
+ignores it.  Here are some examples of padding:
 
 @example
 (format "%06d is padded on the left with zeros" 123)
@@ -842,15 +843,16 @@
      @result{} "123    is padded on the right"
 @end example
 
+@noindent
 If the width is too small, @code{format} does not truncate the
 object's printed representation.  Thus, you can use a width to specify
 a minimum spacing between columns with no risk of losing information.
 
-  In the following three examples, @samp{%7s} specifies a minimum width
-of 7.  In the first case, the string inserted in place of @samp{%7s} has
-only 3 letters, so 4 blank spaces are inserted for padding.  In the
-second case, the string @code{"specification"} is 13 letters wide but is
-not truncated.  In the third case, the padding is on the right.
+  In the following three examples, @samp{%7s} specifies a minimum
+width of 7.  In the first case, the string inserted in place of
+@samp{%7s} has only 3 letters, it needs 4 blank spaces as padding.  In
+the second case, the string @code{"specification"} is 13 letters wide
+but is not truncated.  In the third case, the padding is on the right.
 
 @smallexample
 @group
@@ -873,32 +875,35 @@
 @end smallexample
 
 @cindex precision in format specifications
-  All the specification characters allow an optional ``precision''
+  All the specification characters allow an optional @dfn{precision}
 before the character (after the width, if present).  The precision is
 a decimal-point @samp{.} followed by a digit-string.  For the
 floating-point specifications (@samp{%e}, @samp{%f}, @samp{%g}), the
 precision specifies how many decimal places to show; if zero, the
 decimal-point itself is also omitted.  For @samp{%s} and @samp{%S},
-the precision truncates the string to the given width, so
-@samp{%.3s} shows only the first three characters of the
-representation for @var{object}.  Precision is ignored for other
-specification characters.
+the precision truncates the string to the given width, so @samp{%.3s}
+shows only the first three characters of the representation for
+@var{object}.  Precision has no effect for other specification
+characters.
 
 @cindex flags in format specifications
-Immediately after the @samp{%} and before the optional width and
+  Immediately after the @samp{%} and before the optional width and
 precision, you can put certain ``flag'' characters.
 
-A space character inserts a space for positive numbers, a plus character
-inserts a plus sign (otherwise nothing is inserted for positive
-numbers).  These flags are ignored except for @samp{%d}, @samp{%e},
-@samp{%f}, @samp{%g}, and if both flags are present the space is
-ignored.
+  @samp{+} as a flag inserts a plus sign before a positive number, so
+that it always has a sign.  A space character as flag inserts a space
+before a positive number.  (Otherwise, positive numbers start with the
+first digit.)  Either of these two flags ensures that positive numbers
+and negative numbers use the same number of columns.  These flags are
+ignored except for @samp{%d}, @samp{%e}, @samp{%f}, @samp{%g}, and if
+both flags are used, the @samp{+} takes precedence.
 
-The flag @samp{#} indicates ``alternate form.''  For @samp{%o} it
-ensures that the result begins with a 0.  For @samp{%x} and @samp{%X}
-the result is prefixed with @samp{0x} or @samp{0X}. For @samp{%e},
-@samp{%f}, and @samp{%g} a decimal point is always shown even if the
-precision is zero.
+  The flag @samp{#} specifies an ``alternate form'' which depends on
+the format in use.  For @samp{%o} it ensures that the result begins
+with a @samp{0}.  For @samp{%x} and @samp{%X}, it prefixes the result
+with @samp{0x} or @samp{0X}.  For @samp{%e}, @samp{%f}, and @samp{%g},
+the @samp{#} flag means include a decimal point even if the precision
+is zero.
 
 @node Case Conversion
 @comment node-name, next, previous, up
--- a/lispref/syntax.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/syntax.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -873,7 +873,8 @@
 @defopt parse-sexp-ignore-comments
 @cindex skipping comments
 If the value is non-@code{nil}, then comments are treated as
-whitespace by the functions in this section and by @code{forward-sexp}.
+whitespace by the functions in this section and by @code{forward-sexp},
+@code{scan-lists} and @code{scan-sexps}.
 @end defopt
 
 @vindex parse-sexp-lookup-properties
--- a/lispref/variables.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/lispref/variables.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -1654,10 +1654,21 @@
 processing of file local variables.
 
 @defopt enable-local-variables
-This variable controls whether to process file local variables.  A
-value of @code{t} means to process them, querying the user if unsafe
-variables are encountered; @code{nil} means ignore them; anything else
-means to query the user for each file.  The default value is @code{t}.
+This variable controls whether to process file local variables.
+The possible values are:
+
+@table @asis
+@item @code{t} (the default)
+Set the safe variables, and query (once) about any unsafe variables.
+@item @code{:safe}
+Set only the safe variables and do not query.
+@item @code{:all}
+Set all the variables and do not query.
+@item @code{nil}
+Don't set any variables.
+@item anything else
+Query (once) about all the variables.
+@end table
 @end defopt
 
 @defun hack-local-variables &optional mode-only
--- a/man/ChangeLog	Sun Mar 18 14:00:43 2007 +0000
+++ b/man/ChangeLog	Sun Mar 18 14:11:08 2007 +0000
@@ -1,3 +1,18 @@
+2007-03-11  Andreas Seltenreich  <uwi7@rz.uni-karlsruhe.de>
+
+	* gnus.texi (Mail and Post): Update documentation for gnus-user-agent.
+	The variable now uses a list of symbols instead of just a symbol.
+	Reported by Christoph Conrad <christoph.conrad@gmx.de>.
+
+2007-03-06  Romain Francoise  <romain@orebokech.com>
+
+	* faq.texi (New in Emacs 22): Don't say "now" too much.  Add MH-E to
+	new packages, and mention Gnus update.
+
+2007-03-04  Richard Stallman  <rms@gnu.org>
+
+	* custom.texi (Safe File Variables): Minor correction.
+
 2007-02-27  Katsumi Yamaoka  <yamaoka@jpl.org>
 
 	* gnus.texi (NNTP): Mention nntp-never-echoes-commands and
--- a/man/custom.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/man/custom.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -1247,7 +1247,7 @@
 variable's value are @code{t}, @code{nil}, and anything else, just as
 for @code{enable-local-variables}.  The default is @code{maybe}, which
 is neither @code{t} nor @code{nil}, so normally Emacs does ask for
-confirmation about processes @code{eval} variables.
+confirmation about processing @code{eval} variables.
 
 @vindex safe-local-eval-forms
   But there is an exception.  The @code{safe-local-eval-forms} is a
--- a/man/faq.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/man/faq.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -1147,39 +1147,40 @@
 @cindex Recently introduced features
 
 @cindex Default features
-Font Lock mode, auto-compression mode, and file name shadow mode are now
-enabled by default.  On graphics displays it is now possible to follow
-links with @kbd{mouse-1}, and the modeline of the selected window is now
-highlighted.  Window fringes are now customizable.  The minibuffer
-prompt is now displayed in a distinct face.
+Font Lock mode, auto-compression mode, and file name shadow mode are
+enabled by default.  On graphics displays it is possible to follow links
+with @kbd{mouse-1}.  The modeline of the selected window is now
+highlighted.  Window fringes are customizable.  The minibuffer prompt is
+displayed in a distinct face.
 
 Emacs now reads abbrev definitions automatically at startup.  The
-maximum size of buffers has been doubled and is now 256M on 32-bit
-machines.  Grep mode is now separate from Compilation mode and has many
-new specific options and commands.
+maximum size of buffers has been doubled and is 256M on 32-bit machines.
+Grep mode is separate from Compilation mode and has many new specific
+options and commands.
 
 The original Emacs macro system has been replaced by the new Kmacro
 package, which provides many new commands and features and a simple
-interface that uses the function keys F3 and F4.  Macros are now stored
+interface that uses the function keys F3 and F4.  Macros are stored
 in a macro ring, and can be debugged and edited interactively.
 
 The GUD (Grand Unified Debugger) package can now be used with a full
 graphical user interface to the debugger which provides many features
 found in traditional development environments, making it easy to
 manipulate breakpoints, add watch points, display the call stack, etc.
-Breakpoints are now displayed in the source buffer.
+Breakpoints are displayed in the source buffer.
 
 @cindex GTK+ Toolkit
 @cindex Drag-and-drop
 @cindex Mouse wheel
-Emacs can now be built with GTK+ widgets, and supports drag-and-drop
-operation on X.  Mouse wheel support is now enabled by default.
+Emacs can be built with GTK+ widgets, and supports drag-and-drop
+operation on X.  Mouse wheel support is enabled by default.
 
 @cindex New modes
-Many new modes and packages have been included in Emacs, such as Calc,
-Tramp and URL, as well as IDO, CUA, rcirc, ERC, conf-mode, python-mode,
-table, tumme, SES, ruler, Flymake, Org, PGG, wdired, t-mouse, longlines,
-dns-mode, savehist, Password, Printing, Reveal, etc.
+Many new modes and packages have been included in Emacs, such as MH-E,
+Calc, Tramp and URL, as well as IDO, CUA, rcirc, ERC, conf-mode,
+python-mode, table, tumme, SES, ruler, Flymake, Org, PGG, wdired,
+t-mouse, longlines, dns-mode, savehist, Password, Printing, Reveal, etc.
+Gnus has been updated to version 5.11.
 
 @cindex Multilingual Environment
 Leim is now part of Emacs.  Unicode support has been much improved, and
--- a/man/gnus.texi	Sun Mar 18 14:00:43 2007 +0000
+++ b/man/gnus.texi	Sun Mar 18 14:11:08 2007 +0000
@@ -11799,12 +11799,12 @@
 @cindex User-Agent
 
 This variable controls which information should be exposed in the
-User-Agent header.  It can be one of the symbols @code{gnus} (show only
-Gnus version), @code{emacs-gnus} (show only Emacs and Gnus versions),
-@code{emacs-gnus-config} (same as @code{emacs-gnus} plus system
-configuration), @code{emacs-gnus-type} (same as @code{emacs-gnus} plus
-system type) or a custom string.  If you set it to a string, be sure to
-use a valid format, see RFC 2616.
+User-Agent header.  It can be a list of symbols or a string.  Valid
+symbols are @code{gnus} (show Gnus version) and @code{emacs} (show Emacs
+version).  In addition to the Emacs version, you can add @code{codename}
+(show (S)XEmacs codename) or either @code{config} (show system
+configuration) or @code{type} (show system type).  If you set it to a
+string, be sure to use a valid format, see RFC 2616.
 
 @end table
 
--- a/nt/ChangeLog	Sun Mar 18 14:00:43 2007 +0000
+++ b/nt/ChangeLog	Sun Mar 18 14:11:08 2007 +0000
@@ -1,7 +1,10 @@
+2007-03-09  Richard Stallman  <rms@gnu.org>
+
+	* INSTALL: Say explicitly this is not for Cygwin.
+
 2007-03-03  Eli Zaretskii  <eliz@gnu.org>
 
-	* INSTALL: Add URL of another site with detailed build
-	instructions.
+	* INSTALL: Add URL of another site with detailed build instructions.
 
 2007-02-16  Glenn Morris  <rgm@gnu.org>
 
@@ -9,8 +12,8 @@
 	* icons/gnu2b48t.ico, icons/gnu3b32.ico, icons/gnu3b32t.ico:
 	* icons/gnu4g48.ico, icons/gnu4g48t.ico, icons/gnu5w32.ico:
 	* icons/gnu5w32t.ico, icons/gnu6w48.ico, icons/gnu6w48t.ico:
-	* icons/gnu7.ico, icons/gnu8.ico, icons/gnu9.ico: Restore all but
-	two of icons deleted in previous change.
+	* icons/gnu7.ico, icons/gnu8.ico, icons/gnu9.ico:
+	Restore all but two of icons deleted in previous change.
 
 2007-02-13  Chong Yidong  <cyd@stupidchicken.com>
 
@@ -21,8 +24,8 @@
 	* icons/gnu4g48.ico, icons/gnu6w48.ico, icons/gnu9.ico:
 	* icons/gnu2b48t.ico, icons/gnu4g48t.ico:
 	* icons/gnu6w48t.ico, icons/gnu2a32.ico, icons/gnu3b32.ico:
-	* icons/gnu5w32.ico, icons/gnu7.ico, icons/sink.ico: Unused icons
-	deleted.
+	* icons/gnu5w32.ico, icons/gnu7.ico, icons/sink.ico:
+	Unused icons deleted.
 
 2007-01-31  Juanma Barranquero  <lekktu@gmail.com>
 
@@ -40,7 +43,7 @@
 
 	* nmake.defs (TEMACS_EXTRA_LINK): Remove duplicated flags from
 	DEBUG_LINK.
-	(DEBUG_LINK): Remove -debugtype:both
+	(DEBUG_LINK): Remove -debugtype:both.
 
 2006-12-27  Eli Zaretskii  <eliz@gnu.org>
 
@@ -812,8 +815,7 @@
 
 	* install.bat: Pass on command line arguments to make.
 
-	* makefile.nt (fast_install): Bring commands up-to-date, and fix
-	typo.
+	* makefile.nt (fast_install): Bring commands up-to-date, and fix typo.
 
 1999-11-21  Andrew Innes  <andrewi@gnu.org>
 
--- a/nt/INSTALL	Sun Mar 18 14:00:43 2007 +0000
+++ b/nt/INSTALL	Sun Mar 18 14:11:08 2007 +0000
@@ -8,8 +8,11 @@
 * For the impatient
 
   Here are the concise instructions for configuring and building the
-  native Win32 binary of Emacs on Windows, for those who want to skip
-  the complex explanations and ``just do it'':
+  native Windows binary of Emacs, for those who want to skip the
+  complex explanations and ``just do it'':
+
+  Do not use this recipe with Cygwin.  For building on Cygwin,
+  use the normal installation instructions, ../INSTALL.
 
   1. Change to the `nt' directory (the directory of this file):
 
@@ -75,6 +78,11 @@
 
 * Preliminaries
 
+  If you want to build a Cygwin port of Emacs, use the instructions in
+  the INSTALL file in the main Emacs directory (the parent of this
+  directory).  These instructions are for building a native Windows
+  binary of Emacs.
+
   If you used WinZip to unpack the distribution, we suggest to
   remove the files and unpack again with a different program!
   WinZip is known to create some subtle and hard to debug problems,
--- a/src/ChangeLog	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/ChangeLog	Sun Mar 18 14:11:08 2007 +0000
@@ -1,12 +1,90 @@
+2007-03-11  Sam Steingold  <sds@gnu.org>
+
+	* process.c (sigchld_handler): Sleep before wait3 to avoid a busyloop.
+
+2007-03-11  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macfns.c (Fx_server_vendor): Change vendor string to "Apple Inc.".
+
+2007-03-10  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macterm.c [USE_CARBON_EVENTS] (mac_handle_mouse_event): Ignore
+	mouse wheel movement on title bar or tool bar.
+
+2007-03-10  Chong Yidong  <cyd@stupidchicken.com>
+
+	* keyboard.c (help_form_saved_window_configs): New var.
+	(read_char_help_form_unwind): New function.
+	(read_char): Don't restore window configuration if a mouse click
+	arrives while the help form is being displayed.
+
+2007-03-10  Kim F. Storm  <storm@cua.dk>
+
+	* xdisp.c (redisplay_window): Don't automatically select a new window
+	start for a contination line during mouse-click.
+
+2007-03-09  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* xterm.c (handle_one_xevent): Ignore buttons > 3 for the tool bar.
+
+2007-03-09  Juanma Barranquero  <lekktu@gmail.com>
+
+	* keymap.c (Fdescribe_buffer_bindings): Check that BUFFER is valid.
+
+2007-03-08  Richard Stallman  <rms@gnu.org>
+
+	* keyboard.c (syms_of_keyboard): Doc fix.
+
+2007-03-08  Chong Yidong  <cyd@stupidchicken.com>
+
+	* minibuf.c (Ftry_completion): Don't short circuit if
+	completion-ignore-case is non-nil.
+
+2007-03-07  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macfns.c (mac_set_scroll_bar_width, mac_frame_parm_handlers):
+	Undo 2006-03-06 changes.
+
+	* macterm.c (XTset_vertical_scroll_bar) [MAC_OSX]: Don't show scroll
+	bar if its width is smaller than that of Aqua small scroll bar.
+
+2007-03-07  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* minibuf.c (read_minibuf): Bind inhibit-read-only a bit longer so as
+	to handle correctly prompts with read-only property.
+
+2007-03-06  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* sound.c (wav_play): Check header->data_length to see how much we
+	shall read.
+	(alsa_period_size): Convert ALSA period size in frames to bytes.
+	(alsa_write): Return if frames is zero.
+
+2007-03-06  Kenichi Handa  <handa@m17n.org>
+
+	* xselect.c (Vselection_coding_system): Documentation improved.
+
+2007-03-05  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macterm.c (x_scroll_bar_create, XTread_socket): Replace #if
+	USE_TOOLKIT_SCROLL_BARS with #ifdef USE_TOOLKIT_SCROLL_BARS.
+	(x_set_window_size): Call SET_FRAME_GARBAGED.  Clear window if
+	internal border width has changed.
+
+	* macterm.h (struct mac_output): New member `internal_border_width'.
+
+2007-03-04  Richard Stallman  <rms@gnu.org>
+
+	* window.c (Fdisplay_buffer): Doc fix.
+
 2007-03-03  Glenn Morris  <rgm@gnu.org>
 
 	* Makefile.in: Don't clear out LIB_X11_LIB, since XFT_LIBS does
 	not include -lX11 on Solaris.
 
-2007-03-02  Stuart D. Herring <herring@lanl.gov>
-
-	* keymap.c (Fkey_binding): Don't consider two-element lists as
-	events.
+2007-03-02  Stuart D. Herring  <herring@lanl.gov>
+
+	* keymap.c (Fkey_binding): Don't consider one-element lists as events.
 
 2007-03-01  Kenichi Handa  <handa@m17n.org>
 
@@ -35,8 +113,8 @@
 	(x_scroll_bar_create, XTset_vertical_scroll_bar)
 	[USE_TOOLKIT_SCROLL_BARS]: Initialize bar->min_handle.
 
-	* macterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]: New
-	member `min_handle'.
+	* macterm.h (struct scroll_bar) [USE_TOOLKIT_SCROLL_BARS]:
+	New member `min_handle'.
 
 2007-02-23  Kim F. Storm  <storm@cua.dk>
 
@@ -59,11 +137,11 @@
 	(mac_flush_display_optional) [USE_CG_DRAWING]: New function.
 	(x_redisplay_interface) [USE_CG_DRAWING]: Set it as handler for
 	flush_display_optional.
-	[USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_press): New
-	argument MOUSE_POS.  All uses changed.  Set bar->dragging to
+	[USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_press):
+	New argument MOUSE_POS.  All uses changed.  Set bar->dragging to
 	negative integer if scroll bar handle is pressed.
-	[USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_release): Negative
-	bar->dragging means scroll bar handle is not dragged.
+	[USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_release):
+	Negative bar->dragging means scroll bar handle is not dragged.
 	[USE_TOOLKIT_SCROLL_BARS] (x_scroll_bar_handle_drag): Get initial
 	offset of scroll bar handle from negative bar->dragging.
 	(XTread_socket) [USE_TOOLKIT_SCROLL_BARS]: Modifiers for scroll
@@ -98,8 +176,7 @@
 
 	* w32menu.c (current_popup_menu): Make available globally.
 	(menubar_selection_callback): Free menu strings before pushing the
-	menu event into the keyboard buffer.  Remove
-	menu_command_in_progress.
+	menu event into the keyboard buffer.  Remove menu_command_in_progress.
 
 	* w32fns.c (current_popup_menu): Use from w32menu.c.
 	(w32_wnd_proc) [WM_EXITMENULOOP, WM_TIMER]: Use menubar_active
@@ -369,8 +446,8 @@
 
 2007-01-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
-	* macmenu.c (create_and_show_dialog) [TARGET_API_MAC_CARBON]: Use
-	DisableControl for disabled items.  Set default button to first
+	* macmenu.c (create_and_show_dialog) [TARGET_API_MAC_CARBON]:
+	Use DisableControl for disabled items.  Set default button to first
 	enabled one.  Use icon of application in execution.
 
 2007-01-13  Eli Zaretskii  <eliz@gnu.org>
--- a/src/keyboard.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/keyboard.c	Sun Mar 18 14:11:08 2007 +0000
@@ -2450,6 +2450,17 @@
 static Lisp_Object kbd_buffer_get_event ();
 static void record_char ();
 
+static Lisp_Object help_form_saved_window_configs;
+static Lisp_Object
+read_char_help_form_unwind (arg)
+{
+  Lisp_Object window_config = XCAR (help_form_saved_window_configs);
+  help_form_saved_window_configs = XCDR (help_form_saved_window_configs);
+  if (!NILP (window_config))
+    Fset_window_configuration (window_config);
+  return Qnil;
+}
+
 #ifdef MULTI_KBOARD
 static jmp_buf wrong_kboard_jmpbuf;
 #endif
@@ -3319,8 +3330,10 @@
       Lisp_Object tem0;
       count = SPECPDL_INDEX ();
 
-      record_unwind_protect (Fset_window_configuration,
-			     Fcurrent_window_configuration (Qnil));
+      help_form_saved_window_configs
+	= Fcons (Fcurrent_window_configuration (Qnil),
+		 help_form_saved_window_configs);
+      record_unwind_protect (read_char_help_form_unwind, Qnil);
 
       tem0 = Feval (Vhelp_form);
       if (STRINGP (tem0))
@@ -3328,7 +3341,12 @@
 
       cancel_echoing ();
       do
-	c = read_char (0, 0, 0, Qnil, 0, NULL);
+	{
+	  c = read_char (0, 0, 0, Qnil, 0, NULL);
+	  if (EVENT_HAS_PARAMETERS (c)
+	      && EQ (EVENT_HEAD_KIND (EVENT_HEAD (c)), Qmouse_click))
+	    XSETCAR (help_form_saved_window_configs, Qnil);
+	}
       while (BUFFERP (c));
       /* Remove the help from the frame */
       unbind_to (count, Qnil);
@@ -11334,6 +11352,9 @@
   menu_bar_items_vector = Qnil;
   staticpro (&menu_bar_items_vector);
 
+  help_form_saved_window_configs = Qnil;
+  staticpro (&help_form_saved_window_configs);
+
   defsubr (&Scurrent_idle_time);
   defsubr (&Sevent_convert_list);
   defsubr (&Sread_key_sequence);
@@ -11396,7 +11417,7 @@
   DEFVAR_LISP ("unread-post-input-method-events", &Vunread_post_input_method_events,
 	       doc: /* List of events to be processed as input by input methods.
 These events are processed before `unread-command-events'
-and actual keyboard input without given to `input-method-function'.  */);
+and actual keyboard input, but are not given to `input-method-function'.  */);
   Vunread_post_input_method_events = Qnil;
 
   DEFVAR_LISP ("unread-input-method-events", &Vunread_input_method_events,
--- a/src/keymap.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/keymap.c	Sun Mar 18 14:11:08 2007 +0000
@@ -2989,6 +2989,8 @@
 You type        Translation\n\
 --------        -----------\n";
 
+  CHECK_BUFFER (buffer);
+
   shadow = Qnil;
   GCPRO1 (shadow);
 
--- a/src/macfns.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/macfns.c	Sun Mar 18 14:11:08 2007 +0000
@@ -1909,24 +1909,6 @@
 #endif /* not MAC_OSX */
 }
 
-void
-mac_set_scroll_bar_width (f, arg, oldval)
-     struct frame *f;
-     Lisp_Object arg, oldval;
-{
-#ifdef MAC_OSX
-  if (INTEGERP (arg) && XINT (arg) > 0)
-    {
-      if (XINT (arg) < (MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH
-			+ MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH) / 2)
-	XSETINT (arg, MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH);
-      else
-	XSETINT (arg, MAC_AQUA_VERTICAL_SCROLL_BAR_WIDTH);
-    }
-#endif
-  x_set_scroll_bar_width (f, arg, oldval);
-}
-
 static void
 mac_set_font (f, arg, oldval)
      struct frame *f;
@@ -3052,7 +3034,7 @@
      (display)
      Lisp_Object display;
 {
-  return build_string ("Apple Computers");
+  return build_string ("Apple Inc.");
 }
 
 DEFUN ("x-server-version", Fx_server_version, Sx_server_version, 0, 1, 0,
@@ -4677,7 +4659,7 @@
   x_set_menu_bar_lines,
   x_set_mouse_color,
   x_explicitly_set_name,
-  mac_set_scroll_bar_width,
+  x_set_scroll_bar_width,
   x_set_title,
   x_set_unsplittable,
   x_set_vertical_scroll_bars,
--- a/src/macterm.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/macterm.c	Sun Mar 18 14:11:08 2007 +0000
@@ -4965,7 +4965,7 @@
 #endif
 #if TARGET_API_MAC_CARBON
   ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p",
-#if USE_TOOLKIT_SCROLL_BARS
+#ifdef USE_TOOLKIT_SCROLL_BARS
 		   false,
 #else
 		   width < disp_height,
@@ -5219,7 +5219,11 @@
 #ifdef USE_TOOLKIT_SCROLL_BARS
   if (NILP (bar->track_top))
     {
-      if (sb_width >= disp_height)
+      if (sb_width >= disp_height
+#ifdef MAC_OSX
+	  || sb_width < MAC_AQUA_SMALL_VERTICAL_SCROLL_BAR_WIDTH
+#endif
+	  )
 	{
 	  XSETINT (bar->track_top, 0);
 	  XSETINT (bar->track_height, 0);
@@ -6242,6 +6246,16 @@
 #endif
     mac_handle_size_change (f, pixelwidth, pixelheight);
 
+  if (f->output_data.mac->internal_border_width
+      != FRAME_INTERNAL_BORDER_WIDTH (f))
+    {
+      mac_clear_window (f);
+      f->output_data.mac->internal_border_width
+	= FRAME_INTERNAL_BORDER_WIDTH (f);
+    }
+
+  SET_FRAME_GARBAGED (f);
+
   UNBLOCK_INPUT;
 }
 
@@ -9995,23 +10009,30 @@
 	if (err != noErr || axis != kEventMouseWheelAxisY)
 	  break;
 
+	err = GetEventParameter (event, kEventParamMouseLocation,
+				 typeQDPoint, NULL, sizeof (Point),
+				 NULL, &point);
+	if (err != noErr)
+	  break;
+
+	SetPortWindowPort (wp);
+	GlobalToLocal (&point);
+	if (point.h < 0 || point.v < 0
+	    || EQ (window_from_coordinates (f, point.h, point.v, 0, 0, 0, 1),
+		   f->tool_bar_window))
+	  break;
+
 	err = GetEventParameter (event, kEventParamMouseWheelDelta,
 				 typeSInt32, NULL, sizeof (SInt32),
 				 NULL, &delta);
 	if (err != noErr)
 	  break;
-	err = GetEventParameter (event, kEventParamMouseLocation,
-				 typeQDPoint, NULL, sizeof (Point),
-				 NULL, &point);
-	if (err != noErr)
-	  break;
+
 	read_socket_inev->kind = WHEEL_EVENT;
 	read_socket_inev->code = 0;
 	read_socket_inev->modifiers =
 	  (mac_event_to_emacs_modifiers (event)
 	   | ((delta < 0) ? down_modifier : up_modifier));
-	SetPortWindowPort (wp);
-	GlobalToLocal (&point);
 	XSETINT (read_socket_inev->x, point.h);
 	XSETINT (read_socket_inev->y, point.v);
 	XSETFRAME (read_socket_inev->frame_or_window, f);
@@ -11042,7 +11063,7 @@
 	    else
 	      {
 		/* A window has been deactivated */
-#if USE_TOOLKIT_SCROLL_BARS
+#ifdef USE_TOOLKIT_SCROLL_BARS
 		if (dpyinfo->grabbed && tracked_scroll_bar)
 		  {
 		    struct input_event event;
--- a/src/macterm.h	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/macterm.h	Sun Mar 18 14:11:08 2007 +0000
@@ -327,6 +327,9 @@
      They are changed only when a different background is involved.  */
   unsigned long relief_background;
 
+  /* Width of the internal border.  */
+  int internal_border_width;
+
   /* Hints for the size and the position of a window.  */
   XSizeHints *size_hints;
 
--- a/src/minibuf.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/minibuf.c	Sun Mar 18 14:11:08 2007 +0000
@@ -700,27 +700,27 @@
     specbind (Qinhibit_read_only, Qt);
     specbind (Qinhibit_modification_hooks, Qt);
     Ferase_buffer ();
+
+    if (!NILP (current_buffer->enable_multibyte_characters)
+	&& ! STRING_MULTIBYTE (minibuf_prompt))
+      minibuf_prompt = Fstring_make_multibyte (minibuf_prompt);
+    
+    /* Insert the prompt, record where it ends.  */
+    Finsert (1, &minibuf_prompt);
+    if (PT > BEG)
+      {
+	Fput_text_property (make_number (BEG), make_number (PT),
+			    Qfront_sticky, Qt, Qnil);
+	Fput_text_property (make_number (BEG), make_number (PT),
+			    Qrear_nonsticky, Qt, Qnil);
+	Fput_text_property (make_number (BEG), make_number (PT),
+			    Qfield, Qt, Qnil);
+	Fadd_text_properties (make_number (BEG), make_number (PT),
+			      Vminibuffer_prompt_properties, Qnil);
+      }
     unbind_to (count1, Qnil);
   }
 
-  if (!NILP (current_buffer->enable_multibyte_characters)
-      && ! STRING_MULTIBYTE (minibuf_prompt))
-    minibuf_prompt = Fstring_make_multibyte (minibuf_prompt);
-
-  /* Insert the prompt, record where it ends.  */
-  Finsert (1, &minibuf_prompt);
-  if (PT > BEG)
-    {
-      Fput_text_property (make_number (BEG), make_number (PT),
-			  Qfront_sticky, Qt, Qnil);
-      Fput_text_property (make_number (BEG), make_number (PT),
-			  Qrear_nonsticky, Qt, Qnil);
-      Fput_text_property (make_number (BEG), make_number (PT),
-			  Qfield, Qt, Qnil);
-      Fadd_text_properties (make_number (BEG), make_number (PT),
-			    Vminibuffer_prompt_properties, Qnil);
-    }
-
   minibuf_prompt_width = (int) current_column (); /* iftc */
 
   /* Put in the initial input.  */
@@ -1483,6 +1483,10 @@
 		matchcount++;
 	      bestmatchsize = matchsize;
 	      if (matchsize <= SCHARS (string)
+		  /* If completion-ignore-case is non-nil, don't
+		     short-circuit because we want to find the best
+		     possible match *including* case differences.  */
+		  && !completion_ignore_case
 		  && matchcount > 1)
 		/* No need to look any further.  */
 		break;
--- a/src/process.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/process.c	Sun Mar 18 14:11:08 2007 +0000
@@ -6401,12 +6401,16 @@
 #define WUNTRACED 0
 #endif /* no WUNTRACED */
       /* Keep trying to get a status until we get a definitive result.  */
-      do
-	{
-	  errno = 0;
-	  pid = wait3 (&w, WNOHANG | WUNTRACED, 0);
-	}
-      while (pid < 0 && errno == EINTR);
+      while (1) {
+        errno = 0;
+        pid = wait3 (&w, WNOHANG | WUNTRACED, 0);
+	if (! (pid < 0 && errno == EINTR))
+          break;
+        /* avoid a busyloop: wait3 is a system call, so we do not want
+           to prevent the kernel from actually sending SIGCHLD to emacs
+           by asking for it all the time */
+        sleep (1);
+      }
 
       if (pid <= 0)
 	{
--- a/src/sound.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/sound.c	Sun Mar 18 14:11:08 2007 +0000
@@ -621,12 +621,18 @@
       char *buffer;
       int nbytes;
       int blksize = sd->period_size ? sd->period_size (sd) : 2048;
+      int data_left = header->data_length;
 
       buffer = (char *) alloca (blksize);
       lseek (s->fd, sizeof *header, SEEK_SET);
-
-      while ((nbytes = emacs_read (s->fd, buffer, blksize)) > 0)
-	sd->write (sd, buffer, nbytes);
+      while (data_left > 0
+             && (nbytes = emacs_read (s->fd, buffer, blksize)) > 0)
+        {
+          /* Don't play possible garbage at the end of file */
+          if (data_left < nbytes) nbytes = data_left;
+          data_left -= nbytes;
+          sd->write (sd, buffer, nbytes);
+        }
 
       if (nbytes < 0)
 	sound_perror ("Error reading sound file");
@@ -986,7 +992,8 @@
        struct sound_device *sd;
 {
   struct alsa_params *p = (struct alsa_params *) sd->data;
-  return p->period_size;
+  int fact = snd_pcm_format_size (sd->format, 1) * sd->channels;
+  return p->period_size * (fact > 0 ? fact : 1);
 }
 
 static void
@@ -1209,9 +1216,10 @@
 
   while (nwritten < nbytes)
     {
-      err = snd_pcm_writei (p->handle,
-                            buffer + nwritten,
-                            (nbytes - nwritten)/fact);
+      snd_pcm_uframes_t frames = (nbytes - nwritten)/fact;
+      if (frames == 0) break;
+      
+      err = snd_pcm_writei (p->handle, buffer + nwritten, frames);
       if (err < 0)
         {
           if (err == -EPIPE)
--- a/src/window.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/window.c	Sun Mar 18 14:11:08 2007 +0000
@@ -3612,11 +3612,12 @@
 `same-window-regexps' customize how certain buffer names are handled.
 The latter two take effect only if NOT-THIS-WINDOW is nil.
 
-If optional argument FRAME is `visible', search all visible frames.
-If FRAME is 0, search all visible and iconified frames.
-If FRAME is t, search all frames.
-If FRAME is a frame, search only that frame.
-If FRAME is nil, search only the selected frame
+If optional argument FRAME is `visible', check all visible frames
+for a window to use.
+If FRAME is 0, check all visible and iconified frames.
+If FRAME is t, check all frames.
+If FRAME is a frame, check only that frame.
+If FRAME is nil, check only the selected frame
  (actually the last nonminibuffer frame),
  unless `pop-up-frames' or `display-buffer-reuse-frames' is non-nil,
  which means search visible and iconified frames.
--- a/src/xdisp.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/xdisp.c	Sun Mar 18 14:11:08 2007 +0000
@@ -13283,8 +13283,15 @@
 
       /* If first window line is a continuation line, and window start
 	 is inside the modified region, but the first change is before
-	 current window start, we must select a new window start.*/
+	 current window start, we must select a new window start.
+
+	 However, if this is the result of a down-mouse event (e.g. by
+	 extending the mouse-drag-overlay), we don't want to select a
+	 new window start, since that would change the position under
+	 the mouse, resulting in an unwanted mouse-movement rather
+	 than a simple mouse-click.  */
       if (NILP (w->start_at_line_beg)
+	  && NILP (do_mouse_tracking)
 	  && CHARPOS (startp) > BEGV)
 	{
 	  /* Make sure beg_unchanged and end_unchanged are up to date.
--- a/src/xselect.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/xselect.c	Sun Mar 18 14:11:08 2007 +0000
@@ -2975,8 +2975,17 @@
 
   DEFVAR_LISP ("selection-coding-system", &Vselection_coding_system,
 	       doc: /* Coding system for communicating with other X clients.
-When sending or receiving text via selection and clipboard, the text is
-encoded or decoded by this coding system.
+
+When sending text via selection and clipboard, if the requested
+data-type is not "UTF8_STRING", the text is encoded by this coding
+system.
+
+When receiving text, if the data-type of the received text is not
+"UTF8_STRING", it is decoded by this coding system.
+
+See also the documentation of the variable `x-select-request-type' how
+to control which data-type to request for receiving text.
+
 The default value is `compound-text-with-extensions'.  */);
   Vselection_coding_system = intern ("compound-text-with-extensions");
 
--- a/src/xterm.c	Sun Mar 18 14:00:43 2007 +0000
+++ b/src/xterm.c	Sun Mar 18 14:11:08 2007 +0000
@@ -5525,7 +5525,7 @@
 
   x_scroll_bar_set_handle (bar, XINT (bar->start), XINT (bar->end), 1);
 
-   /* Switch to scroll bar foreground color. */
+  /* Switch to scroll bar foreground color.  */
   if (f->output_data.x->scroll_bar_foreground_pixel != -1)
     XSetForeground (FRAME_X_DISPLAY (f), gc,
  		    f->output_data.x->scroll_bar_foreground_pixel);
@@ -6979,15 +6979,16 @@
                 int y = event.xbutton.y;
 
                 window = window_from_coordinates (f, x, y, 0, 0, 0, 1);
-                if (EQ (window, f->tool_bar_window))
+                tool_bar_p = EQ (window, f->tool_bar_window);
+
+                if (tool_bar_p && event.xbutton.button < 4)
                   {
-		    if (event.xbutton.type == ButtonPress)
-		      handle_tool_bar_click (f, x, y, 1, 0);
-		    else
-		      handle_tool_bar_click (f, x, y, 0,
-					     x_x_to_emacs_modifiers (dpyinfo,
+                    if (event.xbutton.type == ButtonPress)
+                      handle_tool_bar_click (f, x, y, 1, 0);
+                    else
+                      handle_tool_bar_click (f, x, y, 0,
+                                             x_x_to_emacs_modifiers (dpyinfo,
 								     event.xbutton.state));
-		    tool_bar_p = 1;
                   }
               }