changeset 90237:aa89c814f853

Revision: miles@gnu.org--gnu-2005/emacs--unicode--0--patch-88 Merge from emacs--cvs-trunk--0 Patches applied: * emacs--cvs-trunk--0 (patch 569-579) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 129-132) - Update from CVS - Merge from emacs--cvs-trunk--0
author Miles Bader <miles@gnu.org>
date Fri, 07 Oct 2005 07:15:40 +0000
parents 7871ecd1281b (current diff) e3436c968e43 (diff)
children 654726546910
files ChangeLog admin/ChangeLog admin/FOR-RELEASE admin/admin.el configure configure.in etc/ChangeLog etc/NEWS etc/TODO lisp/ChangeLog lisp/bindings.el lisp/calendar/appt.el lisp/calendar/cal-menu.el lisp/calendar/diary-lib.el lisp/calendar/time-date.el lisp/comint.el lisp/ediff-merg.el lisp/ediff-mult.el lisp/ediff-ptch.el lisp/ediff-util.el lisp/ediff-wind.el lisp/ediff.el lisp/emacs-lisp/eldoc.el lisp/emacs-lisp/lisp-mode.el lisp/emulation/viper-cmd.el lisp/emulation/viper-init.el lisp/emulation/viper.el lisp/gnus/ChangeLog lisp/gnus/gnus-util.el lisp/gnus/message.el lisp/gnus/mm-decode.el lisp/gnus/mm-util.el lisp/gnus/nnmail.el lisp/ido.el lisp/info.el lisp/iswitchb.el lisp/mail/feedmail.el lisp/mail/reply2.pbm lisp/mail/reply2.xpm lisp/mh-e/ChangeLog lisp/mh-e/mh-customize.el lisp/net/ange-ftp.el lisp/net/tramp.el lisp/outline.el lisp/pcvs.el lisp/play/zone.el lisp/progmodes/cc-mode.el lisp/progmodes/cc-styles.el lisp/progmodes/compile.el lisp/progmodes/ebnf2ps.el lisp/progmodes/gdb-ui.el lisp/progmodes/gud.el lisp/progmodes/scheme.el lisp/progmodes/vhdl-mode.el lisp/sb-dir-minus.xpm lisp/sb-dir-plus.xpm lisp/sb-dir.xpm lisp/sb-mail.xpm lisp/sb-pg-minus.xpm lisp/sb-pg-plus.xpm lisp/sb-pg.xpm lisp/sb-tag-gt.xpm lisp/sb-tag-minus.xpm lisp/sb-tag-plus.xpm lisp/sb-tag-type.xpm lisp/sb-tag-v.xpm lisp/sb-tag.xpm lisp/simple.el lisp/speedbar.el lisp/term/mac-win.el lisp/textmodes/artist.el lisp/textmodes/bibtex.el lisp/textmodes/flyspell.el lisp/textmodes/ispell.el lisp/textmodes/tex-mode.el lisp/toolbar/alias.pbm lisp/toolbar/alias.xpm lisp/toolbar/execute.pbm lisp/toolbar/execute.xpm lisp/toolbar/highlight.pbm lisp/toolbar/highlight.xpm lisp/toolbar/mh-logo.xpm lisp/toolbar/page-down.pbm lisp/toolbar/page-down.xpm lisp/toolbar/refile.pbm lisp/toolbar/refile.xpm lisp/toolbar/repack.pbm lisp/toolbar/repack.xpm lisp/toolbar/reply-all.pbm lisp/toolbar/reply-all.xpm lisp/toolbar/reply-from.pbm lisp/toolbar/reply-from.xpm lisp/toolbar/reply-to.pbm lisp/toolbar/reply-to.xpm lisp/toolbar/rescan.pbm lisp/toolbar/rescan.xpm lisp/toolbar/show.pbm lisp/toolbar/show.xpm lisp/toolbar/widen.pbm lisp/toolbar/widen.xpm lisp/wid-edit.el lisp/x-dnd.el lispref/ChangeLog lispref/display.texi lispref/minibuf.texi lispref/windows.texi man/ChangeLog man/building.texi man/ediff.texi man/frames.texi man/mini.texi man/speedbar.texi src/ChangeLog src/alloc.c src/dired.c src/dispextern.h src/editfns.c src/emacs.c src/image.c src/keyboard.c src/macfns.c src/macgui.h src/macterm.c src/minibuf.c src/process.c src/regex.c src/regex.h src/systime.h src/unexelf.c src/window.c src/xdisp.c src/xfaces.c src/xsmfns.c src/xterm.c
diffstat 196 files changed, 6582 insertions(+), 17645 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Thu Oct 06 02:00:50 2005 +0000
+++ b/ChangeLog	Fri Oct 07 07:15:40 2005 +0000
@@ -1,3 +1,9 @@
+2005-10-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* configure.in: Prefer Carbon if --enable-carbon-app or
+	--with-carbon is explicitly specified even when X11 is detected.
+	* configure: Regenerate.
+
 2005-09-15  Ulf Jasper  <ulf.jasper@web.de>
 
 	* Makefile.in (install-arch-indep, uninstall):
--- a/admin/ChangeLog	Thu Oct 06 02:00:50 2005 +0000
+++ b/admin/ChangeLog	Fri Oct 07 07:15:40 2005 +0000
@@ -1,3 +1,7 @@
+2005-10-01  Jason Rumney  <jasonr@gnu.org>
+
+	* admin.el (set-version): Set version numbers in nt/emacs.rc.
+
 2005-08-31  Romain Francoise  <romain@orebokech.com>
 
 	* FOR-RELEASE: (New features): Remove vhdl-mode.el update
--- a/admin/FOR-RELEASE	Thu Oct 06 02:00:50 2005 +0000
+++ b/admin/FOR-RELEASE	Fri Oct 07 07:15:40 2005 +0000
@@ -27,8 +27,6 @@
 
 * NEW FEATURES
 
-** Update Speedbar.
-
 ** Rework how the fringe "angle" bitmap at at bottom of buffer is
 shown to include an indication of whether the last line has a NL or not.
 [Assigned to KFS]
@@ -67,6 +65,8 @@
 
 * BUGS
 
+* Pierre Albarede's Aug 30 bug report about C-v and long lines.
+
 ** Make a new interface for specifying window configurations
 so that we can fix bugs in balance-windows.
 
--- a/admin/admin.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/admin/admin.el	Fri Oct 07 07:15:40 2005 +0000
@@ -87,7 +87,36 @@
 				(submatch (1+ (in "0-9."))))))
   (set-version-in-file root "lispref/elisp.texi" version
 		       (rx (and "EMACSVER" (1+ space)
-				(submatch (1+ (in "0-9.")))))))
+				(submatch (1+ (in "0-9."))))))
+  ;; nt/emacs.rc also contains the version number, but in an awkward
+  ;; format. It must contain four components, separated by commas, and
+  ;; in two places those commas are followed by space, in two other
+  ;; places they are not.
+  (let* ((version-components (append (split-string version "\\.")
+				    '("0" "0")))
+	 (comma-version
+	  (concat (car version-components) ","
+		  (cadr version-components) ","
+		  (cadr (cdr version-components)) "," 
+		  (cadr (cdr (cdr version-components)))))
+	 (comma-space-version
+	  (concat (car version-components) ", "
+		  (cadr version-components) ", "
+		  (cadr (cdr version-components)) ", " 
+		  (cadr (cdr (cdr version-components))))))
+    (set-version-in-file root "nt/emacs.rc" comma-version
+			 (rx (and "FILEVERSION" (1+ space)
+				  (submatch (1+ (in "0-9,"))))))
+    (set-version-in-file root "nt/emacs.rc" comma-version
+			 (rx (and "PRODUCTVERSION" (1+ space)
+				  (submatch (1+ (in "0-9,"))))))
+    (set-version-in-file root "nt/emacs.rc" comma-space-version
+			 (rx (and "\"FileVersion\"" (0+ space) ?, (0+ space)
+				  ?\" (submatch (1+ (in "0-9, "))) "\\0\"")))
+    (set-version-in-file root "nt/emacs.rc" comma-space-version
+			 (rx (and "\"ProductVersion\"" (0+ space) ?,
+				  (0+ space) ?\" (submatch (1+ (in "0-9, ")))
+				  "\\0\"")))))
 
 ;;; arch-tag: 4ea83636-2293-408b-884e-ad64f22a3bf5
 ;; admin.el ends here.
--- a/configure	Thu Oct 06 02:00:50 2005 +0000
+++ b/configure	Fri Oct 07 07:15:40 2005 +0000
@@ -8197,52 +8197,9 @@
   fi
 fi
 
-case "${window_system}" in
-  x11 )
-    HAVE_X_WINDOWS=yes
-    HAVE_X11=yes
-    case "${with_x_toolkit}" in
-      athena | lucid ) USE_X_TOOLKIT=LUCID ;;
-      motif ) USE_X_TOOLKIT=MOTIF ;;
-      gtk ) with_gtk=yes
-            USE_X_TOOLKIT=none ;;
-      no ) USE_X_TOOLKIT=none ;;
-      * ) USE_X_TOOLKIT=maybe ;;
-    esac
-  ;;
-  none )
-    HAVE_X_WINDOWS=no
-    HAVE_X11=no
-    USE_X_TOOLKIT=none
-  ;;
-esac
-
-### If we're using X11, we should use the X menu package.
-HAVE_MENUS=no
-case ${HAVE_X11} in
-  yes ) HAVE_MENUS=yes ;;
-esac
-
-if test "${opsys}" = "hpux9"; then
-  case "${x_libraries}" in
-    *X11R4* )
-      opsysfile="s/hpux9-x11r4.h"
-      ;;
-  esac
-fi
-
-if test "${opsys}" = "hpux9shr"; then
-  case "${x_libraries}" in
-    *X11R4* )
-      opsysfile="s/hpux9shxr4.h"
-      ;;
-  esac
-fi
-
 HAVE_CARBON=no
-if test "${HAVE_X11}" != "yes"; then
-  if test "${with_carbon}" != "no"; then
-     if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
+if test "${with_carbon}" != no; then
+  if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
   echo "$as_me:$LINENO: checking for Carbon/Carbon.h" >&5
 echo $ECHO_N "checking for Carbon/Carbon.h... $ECHO_C" >&6
 if test "${ac_cv_header_Carbon_Carbon_h+set}" = set; then
@@ -8384,7 +8341,57 @@
 fi
 
 
-  fi
+fi
+if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
+  if test "${with_carbon+set}" != set \
+     && test "${carbon_appdir_x+set}" != set; then
+    HAVE_CARBON=no
+  fi
+fi
+if test "${HAVE_CARBON}" = yes; then
+  window_system=mac
+fi
+
+case "${window_system}" in
+  x11 )
+    HAVE_X_WINDOWS=yes
+    HAVE_X11=yes
+    case "${with_x_toolkit}" in
+      athena | lucid ) USE_X_TOOLKIT=LUCID ;;
+      motif ) USE_X_TOOLKIT=MOTIF ;;
+      gtk ) with_gtk=yes
+            USE_X_TOOLKIT=none ;;
+      no ) USE_X_TOOLKIT=none ;;
+      * ) USE_X_TOOLKIT=maybe ;;
+    esac
+  ;;
+  mac | none )
+    HAVE_X_WINDOWS=no
+    HAVE_X11=no
+    USE_X_TOOLKIT=none
+  ;;
+esac
+
+### If we're using X11, we should use the X menu package.
+HAVE_MENUS=no
+case ${HAVE_X11} in
+  yes ) HAVE_MENUS=yes ;;
+esac
+
+if test "${opsys}" = "hpux9"; then
+  case "${x_libraries}" in
+    *X11R4* )
+      opsysfile="s/hpux9-x11r4.h"
+      ;;
+  esac
+fi
+
+if test "${opsys}" = "hpux9shr"; then
+  case "${x_libraries}" in
+    *X11R4* )
+      opsysfile="s/hpux9shxr4.h"
+      ;;
+  esac
 fi
 
 ### Compute the unexec source name from the object name.
@@ -12716,7 +12723,6 @@
 #define HAVE_CARBON 1
 _ACEOF
 
-  window_system=mac
   ## Specify the install directory
   carbon_appdir=
   if test "${carbon_appdir_x}" != ""; then
--- a/configure.in	Thu Oct 06 02:00:50 2005 +0000
+++ b/configure.in	Fri Oct 07 07:15:40 2005 +0000
@@ -1668,6 +1668,20 @@
   fi
 fi
 
+HAVE_CARBON=no
+if test "${with_carbon}" != no; then
+  AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
+fi
+if test "${window_system}" = x11 && test "${HAVE_CARBON}" = yes; then
+  if test "${with_carbon+set}" != set \
+     && test "${carbon_appdir_x+set}" != set; then
+    HAVE_CARBON=no
+  fi
+fi
+if test "${HAVE_CARBON}" = yes; then
+  window_system=mac
+fi
+
 case "${window_system}" in
   x11 )
     HAVE_X_WINDOWS=yes
@@ -1686,7 +1700,7 @@
       * ) USE_X_TOOLKIT=maybe ;;
     esac
   ;;
-  none )
+  mac | none )
     HAVE_X_WINDOWS=no
     HAVE_X11=no
     USE_X_TOOLKIT=none
@@ -1715,13 +1729,6 @@
   esac
 fi
 
-HAVE_CARBON=no
-if test "${HAVE_X11}" != "yes"; then
-  if test "${with_carbon}" != "no"; then
-     AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
-  fi
-fi
-
 ### Compute the unexec source name from the object name.
 UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
 
@@ -2345,7 +2352,6 @@
 ### Use Mac OS X Carbon API to implement GUI.
 if test "${HAVE_CARBON}" = "yes"; then
   AC_DEFINE(HAVE_CARBON, 1, [Define to 1 if you are using the Carbon API on Mac OS X.])
-  window_system=mac
   ## Specify the install directory
   carbon_appdir=
   if test "${carbon_appdir_x}" != ""; then
--- a/etc/ChangeLog	Thu Oct 06 02:00:50 2005 +0000
+++ b/etc/ChangeLog	Fri Oct 07 07:15:40 2005 +0000
@@ -1,3 +1,39 @@
+2005-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* TODO: Clarify the local variables entry.
+
+2005-09-30  Bill Wohler  <wohler@newt.com>
+
+	Moved MH-E image files from toolbar and mail directories into
+	etc/images.
+
+	* images/mail: New directory.
+
+	* images/mail/reply.*: Moved here from lisp/mail/reply2*.
+
+	* images/mail/alias.*, images/mail/refile.*, images/mail/repack.*:
+	* images/mail/reply*: Moved here from lisp/toolbar.
+
+	* images/execute.*, images/highlight.*, images/mh-logo.xpm:
+	* images/page-down.*, images/show.*, images/widen.*: Moved here
+	from lisp/toolbar.
+
+	* images/refresh.*: Moved here from lisp/toolbar/rescan.*.
+	Use GNOME 2.10's refresh icon.
+
+	* images/README: New file that indicates which icons came from
+	GNOME (see lisp/toolbar/README).
+
+2005-09-30  Romain Francoise  <romain@orebokech.com>
+
+	* NEWS: Mention changes to `read-buffer'.
+
+2005-09-30  Chong Yidong  <cyd@stupidchicken.com>
+
+	* images/ezimage: New directory.
+
+	* images/ezimage/*.xpm: Add images used by speedbar.el.
+
 2005-09-30  David Ponce  <david@dponce.com>
 
 	* NEWS: Update recentf changes.
@@ -9,8 +45,7 @@
 2005-09-27  Jay Belanger <belanger@truman.edu>
 
 	* calccard.tex: Update `versionnumber', remove `versiondate'.
-	(Error Recovery): Refer to "initial state" rather than "default
-	state".
+	(Error Recovery): Refer to "initial state" rather than "default state".
 	(Algebra): Mention LaTeX language mode.
 	(Programming): Delete reference to "Z =".
 
@@ -25,8 +60,7 @@
 
 2005-09-15  Kenichi Handa  <handa@m17n.org>
 
-	* PROBLEMS: Fix the paragraph describing the limitation of
-	UTF-8/16/7.
+	* PROBLEMS: Fix the paragraph describing the limitation of UTF-8/16/7.
 
 2005-09-14  Romain Francoise  <romain@orebokech.com>
 
@@ -128,12 +162,11 @@
 2005-07-03  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* PROBLEMS (Fedora Core 4 GNU/Linux: Segfault during dumping):
-	Added it again.
+	Add it again.
 
 2005-06-29  Carsten Dominik  <dominik@science.uva.nl>
 
-	* NEWS: Added an entry for Org-mode, and a change entry for
-	reftex-mode.
+	* NEWS: Add an entry for Org-mode, and a change entry for reftex-mode.
 
 2005-06-28  Richard M. Stallman  <rms@gnu.org>
 
--- a/etc/NEWS	Thu Oct 06 02:00:50 2005 +0000
+++ b/etc/NEWS	Fri Oct 07 07:15:40 2005 +0000
@@ -3774,6 +3774,12 @@
 for compatibility, an internal variable which exists only for this
 purpose.
 
++++
+*** The function `read-buffer' follows the convention for reading from
+the minibuffer with a default value: if DEF is non-nil, the minibuffer
+prompt provided in PROMPT is edited to show the default value provided
+in DEF before the terminal colon and space.
+
 ** Local variables lists:
 
 +++
@@ -4422,6 +4428,9 @@
 and scroll-bar settings.
 
 +++
+*** The new function `window-split-tree' returns a frame's window split tree.
+
++++
 ** Customizable fringe bitmaps
 
 *** New function `define-fringe-bitmap' can now be used to create new
--- a/etc/TODO	Thu Oct 06 02:00:50 2005 +0000
+++ b/etc/TODO	Fri Oct 07 07:15:40 2005 +0000
@@ -47,7 +47,7 @@
 ** Implement something better than the current Refill mode.  This
   probably needs some primitive support.
 
-** Add a command to make a local variables list in the current buffer
+** Add a command to make a "Local Variables" section in the current buffer
   and/or add a variable to the list.
 
 ** Implement primitive and higher-level functions to allow filling
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/README	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,5 @@
+The following icons are from GNOME 2.10:
+
+    refresh.pbm, refresh.xpm
+
+They are not part of Emacs, but distributed and used by Emacs.
Binary file etc/images/execute.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/execute.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,35 @@
+/* XPM */
+static char * mail_exec_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 6 1",
+" 	c None",
+".	c black",
+"X	c #a5d8a5d89550",
+"o	c #d305d305bc3c",
+"O	c #ea03ea03d271",
+"+	c white",
+/* pixels */
+"                        ",
+"                        ",
+"                        ",
+"                 ..     ",
+"             XX  ..     ",
+"         oo  XX  ..     ",
+"     OO  oo  XX  ..     ",
+"     OO  oo  XX  ..     ",
+"     OO  oo  XX  ..     ",
+"     OO  oo  XX  ..     ",
+"     OO  oo  XX  ..     ",
+"     OO  oo  XX  ..     ",
+"     OO  oo  XX  ..     ",
+"     OO  oo  XX         ",
+"     OO  oo             ",
+"     OO      +   ..     ",
+"             XX  ..     ",
+"         oo  XX         ",
+"     OO  oo             ",
+"     OO                 ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/bits.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,20 @@
+/* XPM */
+static char * sb_obj_xpm[] = {
+"15 15 2 1",
+" 	c None",
+".	c #000CFF",
+" ..  .  ..  .  ",
+".  . . .  . .  ",
+".  . . .  . .  ",
+".  . . .  . .  ",
+" ..  .  ..  .  ",
+"               ",
+".  ..  .  ..   ",
+". .  . . .  .  ",
+". .  . . .  .  ",
+". .  . . .  .  ",
+".  ..  .  ..   ",
+"               ",
+" ..  .  ..  .  ",
+".  . . .  . .  ",
+".  . . .  . .  "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/bitsbang.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,21 @@
+/* XPM */
+static char * sb_objod_xpm[] = {
+"15 15 3 1",
+" 	c None",
+".	c #000CFF",
+"+	c #FFFA00",
+" ..  .  ..  .  ",
+".  .++ .  . .  ",
+".  .++ .  . .  ",
+".  . ++.  . .  ",
+" ..  ++ ..  .  ",
+"     ++        ",
+".  ..++.  ..   ",
+". .  .++ .  .  ",
+". .  .++ .  .  ",
+". .  .++ .  .  ",
+".  ..  .  ..   ",
+"       ++      ",
+" ..  . ++.  .  ",
+".  . . .  . .  ",
+".  . . .  . .  "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/box-minus.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_box_minus_xpm[] = {
+"20 15 4 1",
+" 	c None",
+".	c #000000",
+"+	c #828282",
+"@	c #D19200",
+"...+           +..+ ",
+".@@.+          +.@.+",
+"+.@@.+        +.@@@.",
+"+.@@@.+++++++++.@@..",
+" +..@............@.+",
+" +.@..@@@@@@@@@@@..+",
+" +.@@..............+",
+" +.@@.@@@@@@@@@@@@.+",
+" +.@@.@@@@@@@@@@@@.+",
+" +.@@.@@@......@@@.+",
+" +.@@.@@@......@@@.+",
+"  +.@.@@@@@@@@@@@@.+",
+"   +..@@@@@@@@@@@@.+",
+"    +..............+",
+"     ++++++++++++++ "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/box-plus.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_box_plus_xpm[] = {
+"20 15 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #D19200",
+"                    ",
+"  ..............    ",
+" .++++++++++++++.   ",
+" .++@@@@@@+@@@@@+.  ",
+" .+@+@@@@@@+@@@@@+. ",
+" .+@@++++++++++++++.",
+" .+@@+@@@@@@@@@@@@+.",
+" .+@@+@@@@@++@@@@@+.",
+" .+@@+@@@@@++@@@@@+.",
+" .+@@+@@@++++++@@@+.",
+" .+@@+@@@++++++@@@+.",
+"  .+@+@@@@@++@@@@@+.",
+"   .++@@@@@++@@@@@+.",
+"    .++++++++++++++.",
+"     .............. "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/box.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_box_xpm[] = {
+"20 15 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFF993",
+"                    ",
+" ...............    ",
+" .++++++++++++++.   ",
+" .++@@@@@@+@@@@@+.  ",
+" .+@+@@@@@@+@@@@@+. ",
+" .+@@++++++++++++++.",
+" .+@@+@@@@@@@@@@@@+.",
+" .+@@+@@@@@@@@@@@@+.",
+" .+@@+@@@@@@@@@@@@+.",
+" .+@@+@@@@@@@@@@@@+.",
+" .+@@+@@@@@@@@@@@@+.",
+"  .+@+@@@@@@@@@@@@+.",
+".  .++@@@@@@@@@@@@+.",
+"    .++++++++++++++.",
+"     .............. "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/checkmark.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,20 @@
+/* XPM */
+static char * sb_chk_xpm[] = {
+"15 15 2 1",
+" 	c None",
+".	c #FF0000",
+"               ",
+" . .  ..       ",
+" . . .         ",
+" . . .       . ",
+"  .   ..    .  ",
+"           ..  ",
+"          ..   ",
+" ...     ..    ",
+" ...    ..     ",
+" ....  ..      ",
+"  ... ..       ",
+"   ....        ",
+"    ...        ",
+"     .         ",
+"               "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/dir-minus.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * sb_dir_minus_xpm[] = {
+"20 15 5 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #DBDB00",
+"#	c #FFF993",
+" .......            ",
+".+++++++.           ",
+".+@@@@@@+.........  ",
+".+@@@@@@@++++++++.  ",
+".+@@@@@@@@@@@@@@+...",
+".+@@++++++++++++++++",
+".+@@+##############+",
+".+@+##############+.",
+".+@+####++++++####+.",
+".+@+####++++++####+.",
+".+@+##############+.",
+".++##############+..",
+".++##############+. ",
+".+++++++++++++++++. ",
+" .................  "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/dir-plus.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * sb_dir_plus_xpm[] = {
+"20 15 5 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #DBDB00",
+"#	c #FFF993",
+" .......            ",
+".+++++++.           ",
+".+@@@@@@+.......... ",
+".+@@@@@@@++++++++++.",
+".+@@@@@@@@@@@@@@@@+.",
+".+#######++#####@@+.",
+".+#######++######@+.",
+".+#####++++++####@+.",
+".+#####++++++####@+.",
+".+#######++######@+.",
+".+#######++######@+.",
+".+###############@+.",
+".+###############@+.",
+".++++++++++++++++++.",
+" .................. "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/dir.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * sb_dir_xpm[] = {
+"20 15 5 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #DBDB00",
+"#	c #FFF993",
+" .......            ",
+".+++++++.           ",
+".+@@@@@@+.......... ",
+".+@@@@@@@++++++++++.",
+".+@@@@@@@@@@@@@@@@+.",
+".+##############@@+.",
+".+###############@+.",
+".+###############@+.",
+".+###############@+.",
+".+###############@+.",
+".+###############@+.",
+".+###############@+.",
+".+###############@+.",
+".++++++++++++++++++.",
+" .................. "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/doc-minus.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * sb_doc_minus_xpm[] = {
+"15 15 5 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #5A818B",
+"#	c #FFFFFF",
+"      .......  ",
+"     .+++++++. ",
+"    .+@@@@@@+. ",
+"   .+@@@@@@+#. ",
+"   .+@@@@@@+#+.",
+"  .+@####@+##+.",
+" .+@@@@@@@+#+. ",
+" .+@@@@@@+##+. ",
+".++++@@@@+#+.  ",
+".+###++++##+.  ",
+".+########+.   ",
+".++#######+.   ",
+" ..++++##+.    ",
+"   ....+++.    ",
+"       ...     "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/doc-plus.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * sb_doc_plus_xpm[] = {
+"15 15 5 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #5A818B",
+"#	c #FFFFFF",
+"      .......  ",
+"     .+++++++. ",
+"    .+@@@@@@+. ",
+"   .+@@#@@@+#. ",
+"   .+@@#@@@+#+.",
+"  .+@#####+##+.",
+" .+@@@@#@@+#+. ",
+" .+@@@@#@+##+. ",
+".++++@@@@+#+.  ",
+".+###++++##+.  ",
+".+########+.   ",
+".++#######+.   ",
+" ..++++##+.    ",
+"   ....+++.    ",
+"       ...     "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/doc.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * sb_doc_xpm[] = {
+"15 15 5 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #5A818B",
+"#	c #FFFFFF",
+"      .......  ",
+"     .+++++++. ",
+"    .+@@@@@@+. ",
+"   .+@@@@@@+#. ",
+"   .+@@@@@@+#+.",
+"  .+@@@@@@+##+.",
+" .+@@@@@@@+#+. ",
+" .+@@@@@@+##+. ",
+".++++@@@@+#+.  ",
+".+###++++##+.  ",
+".+########+.   ",
+".+########+.   ",
+".++++++##+.    ",
+" ......+++.    ",
+"       ...     "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/info.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_info_xpm[] = {
+"10 15 4 1",
+" 	c None",
+".	c #BEBEBE",
+"+	c #0000FF",
+"@	c #FFFFFF",
+"    ..    ",
+"  ..+++.  ",
+" .+++@++. ",
+" .+++++++ ",
+" .+++++++ ",
+".++@@@++++",
+".++++@++++",
+".++++@++++",
+".++++@++++",
+" .+++@++++",
+" .+++@+++ ",
+" .+@@@@@+ ",
+" .+++++++ ",
+"  .+++++  ",
+"    ++    "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/key.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * key_xpm[] = {
+"16 16 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFF993",
+"    ........    ",
+"   ..++++++..   ",
+"   .+@@@@@@+.   ",
+"   .+@@++@@+.   ",
+"   .+@@@@@@+.   ",
+"   .+@@@@@@+.   ",
+"   .+@@@@@@+.   ",
+"    .+@@@@+.    ",
+"     .+@@+.     ",
+"     .+@@@+.    ",
+"     .+@@+.     ",
+"     .+@@+.     ",
+"     .+@@@+.    ",
+"     .+@@+.     ",
+"      .++.      ",
+"       ..       "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/label.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_label_xpm[] = {
+"10 16 3 1",
+" 	c None",
+".	c gray",
+"+	c blue",
+"     .....",
+"   ..+++++",
+"  .+++++++",
+" .++++++++",
+" .++++++++",
+".+++++++++",
+".+++++++++",
+".+++++++++",
+".+++++++++",
+".+++++++++",
+".+++++++++",
+".+++++++++",
+".+++++++++",
+".+++++++++",
+".+++++++++",
+".+++++++++"};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/lock.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * lock_xpm[] = {
+"16 16 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFF993",
+"     ........   ",
+"    ..++++++..  ",
+"    .++....++.  ",
+"    .+......+.  ",
+"   ..+......+.. ",
+"  ..++++++++++..",
+"  .++@@@@@@@@++.",
+"  .+@@@@@@@@@@+.",
+"  .+@@@@@@@@@@+.",
+"  .+@@@++++@@@+.",
+"  .+@@@@++@@@@+.",
+"  .+@@@@@@@@@@+.",
+"  .+@@@@++@@@@+.",
+"  .+@@@@@@@@@@+.",
+"  .++++++++++++.",
+"  .............."};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/mail.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_mail_xpm[] = {
+"20 15 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFFFFF",
+"................... ",
+".++++++++++++++++++.",
+".++@@@@@@@@@@@@@@++.",
+".+@++@@@@@@@@@@++@+.",
+".+@@@++@@@@@@++@@@+.",
+".+@@@@@++@@++@@@@@+.",
+".+@@@@@@@++@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@@@@+@@@@@@+@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@@+@@@@@@@@@@+@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".++@@@@@@@@@@@@@@++.",
+".++++++++++++++++++.",
+" .................. "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/page-minus.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * sb_pg_minus_xpm[] = {
+"20 15 5 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFFFFF",
+"#	c #ADADAD",
+"       ............ ",
+"      .++++++++++++.",
+"     .++@@@@@@@@@@+.",
+"    .+#+@@@@@@@@@@+.",
+"   .+##+@@@@@@@@@@+.",
+"  .+###+@@@@@@@@@@+.",
+" .+####+@@@@@@@@@@+.",
+".+++++++@++++++@@@+.",
+".+@@@@@@@++++++@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".++++++++++++++++++.",
+" .................. "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/page-plus.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * sb_pg_plus_xpm[] = {
+"20 15 5 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFFFFF",
+"#	c #ADADAD",
+"       ............ ",
+"      .++++++++++++.",
+"     .++@@@@@@@@@@+.",
+"    .+#+@@@@@@@@@@+.",
+"   .+##+@@@@@@@@@@+.",
+"  .+###+@@@++@@@@@+.",
+" .+####+@@@++@@@@@+.",
+".+++++++@++++++@@@+.",
+".+@@@@@@@++++++@@@+.",
+".+@@@@@@@@@++@@@@@+.",
+".+@@@@@@@@@++@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".++++++++++++++++++.",
+" .................. "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/page.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * sb_pg_xpm[] = {
+"20 15 5 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFFFFF",
+"#	c #ADADAD",
+"       ............ ",
+"      .++++++++++++.",
+"     .++@@@@@@@@@@+.",
+"    .+#+@@@@@@@@@@+.",
+"   .+##+@@@@@@@@@@+.",
+"  .+###+@@@@@@@@@@+.",
+" .+####+@@@@@@@@@@+.",
+".+++++++@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".++++++++++++++++++.",
+" .................. "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/tag-gt.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_tag_gt_xpm[] = {
+"20 15 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFF993",
+"                    ",
+"                    ",
+"    ............... ",
+"   .+++++++++++++++.",
+"  .+@@@@@++@@@@@@@+.",
+" .+@@@@@@+++@@@@@@+.",
+".+@@@@@@@++++@@@@@+.",
+".+@++@@@@+++++@@@@+.",
+".+@++@@@@+++++.@@@+.",
+".+@@@@@@@++++.@@@@+.",
+" .+@@@@@@+++.@@@@@+.",
+"  .+@@@@@++.@@@@@@+.",
+".  .++++++.++++++++.",
+"    ............... ",
+"                    "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/tag-minus.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_tag__xpm[] = {
+"20 15 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFF993",
+"                    ",
+"                    ",
+"    ............... ",
+"   .+++++++++++++++.",
+"  .+@@@@@@@@@@@@@@+.",
+" .+@@@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@++@@++++++@@@@@+.",
+".+@++@@++++++@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+" .+@@@@@@@@@@@@@@@+.",
+"  .+@@@@@@@@@@@@@@+.",
+".  .+++++++++++++++.",
+"    ............... ",
+"                    "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/tag-plus.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_tag+_xpm[] = {
+"20 15 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFF993",
+"                    ",
+"                    ",
+"    ............... ",
+"   .+++++++++++++++.",
+"  .+@@@@@@@@@@@@@@+.",
+" .+@@@@@@++@@@@@@@+.",
+".+@@@@@@@++@@@@@@@+.",
+".+@++@@++++++@@@@@+.",
+".+@++@@++++++@@@@@+.",
+".+@@@@@@@++@@@@@@@+.",
+" .+@@@@@@++@@@@@@@+.",
+"  .+@@@@@@@@@@@@@@+.",
+".  .+++++++++++++++.",
+"    ............... ",
+"                    "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/tag-type.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_tag_type_xpm[] = {
+"20 15 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFF993",
+"                    ",
+"                    ",
+"    ............... ",
+"   .+++++++++++++++.",
+"  .+@@@@@@@@@@@@@@+.",
+" .+@@@@@@++++++@@@+.",
+".+@@@@@@@++++++@@@+.",
+".+@++@@@@@@++@@@@@+.",
+".+@++@@@@@@++@@@@@+.",
+".+@@@@@@@@@++@@@@@+.",
+" .+@@@@@@@@++@@@@@+.",
+"  .+@@@@@@@@@@@@@@+.",
+".  .+++++++++++++++.",
+"    ............... ",
+"                    "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/tag-v.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_tag_v_xpm[] = {
+"20 15 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFF993",
+"                    ",
+"                    ",
+"    ............... ",
+"   .+++++++++++++++.",
+"  .+@@@@@@@@@@@@@@+.",
+" .+@@@++++++++++.@+.",
+".+@@@@@++++++++.@@+.",
+".+@++@@@++++++.@@@+.",
+".+@++@@@@++++.@@@@+.",
+".+@@@@@@@@++.@@@@@+.",
+" .+@@@@@@@@.@@@@@@+.",
+"  .+@@@@@@@@@@@@@@+.",
+".  .+++++++++++++++.",
+"    ............... ",
+"                    "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/tag.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char * sb_tag_xpm[] = {
+"20 15 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFF993",
+"                    ",
+"                    ",
+"    ............... ",
+"   .+++++++++++++++.",
+"  .+@@@@@@@@@@@@@@+.",
+" .+@@@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+".+@++@@@@@@@@@@@@@+.",
+".+@++@@@@@@@@@@@@@+.",
+".+@@@@@@@@@@@@@@@@+.",
+" .+@@@@@@@@@@@@@@@+.",
+"  .+@@@@@@@@@@@@@@+.",
+".  .+++++++++++++++.",
+"    ............... ",
+"                    "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/ezimage/unlock.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,23 @@
+/* XPM */
+static char * unlock_xpm[] = {
+"16 16 4 1",
+" 	c None",
+".	c #828282",
+"+	c #000000",
+"@	c #FFF993",
+" .......        ",
+"..+++++..       ",
+".++...++.       ",
+".+.....+.       ",
+".+.....+........",
+"....++++++++++..",
+"  .++@@@@@@@@++.",
+"  .+@@@@@@@@@@+.",
+"  .+@@@@@@@@@@+.",
+"  .+@@@++++@@@+.",
+"  .+@@@@++@@@@+.",
+"  .+@@@@@@@@@@+.",
+"  .+@@@@++@@@@+.",
+"  .+@@@@@@@@@@+.",
+"  .++++++++++++.",
+"  .............."};
Binary file etc/images/highlight.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/highlight.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * highlight_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 4 1",
+" 	c None",
+".	c black",
+"X	c #828282827474",
+"o	c #dd00df007e00",
+/* pixels */
+"                 .....  ",
+"                ..XXX.. ",
+"                .XXXXX. ",
+"               .XXXXX.. ",
+"               .XXXXX.  ",
+"               .XXXXX.  ",
+"              .XXXXX.   ",
+"              .ooXX.    ",
+"              ..ooo.    ",
+"       oooo     ....    ",
+"oo.ooo....oo ...        ",
+"o.o.ooo.oo.o.ooo.o      ",
+".ooo.oo.oo.o.ooooo      ",
+".ooo.oo.oo.o.ooooo      ",
+".ooo.oo...oo.ooooo      ",
+".....oo.oo.o.ooooo      ",
+".ooo.oo.oo.o.ooooo      ",
+".ooo.oo.oo.o.ooo.o      ",
+". oo.o....ooo...o       ",
+"         oo oooo        ",
+"                        ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/mail/alias.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mail/alias.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * alias_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 4 1",
+" 	c None",
+".	c #61b761b7600a",
+"X	c #a5d8a5d89550",
+"o	c black",
+/* pixels */
+"                        ",
+"                        ",
+"                        ",
+"     ......             ",
+"   ...XXXX..XX          ",
+"  o..ooooooo...         ",
+" ooo      oooo..X       ",
+" o.X        ooo...      ",
+" o.X          ooo.XX    ",
+" o.X            oo..    ",
+" o.X             oo.    ",
+" o...            oo..   ",
+"  o.X             o..   ",
+"  o.XX            oX.   ",
+"   o....          oo.   ",
+"    o..XX        oooo   ",
+"     o...XXX   XXoooo   ",
+"      ooo........ooooo  ",
+"        oooooXXooooo.oo ",
+"            ooo    o..oo",
+"                    o...",
+"                     ooo",
+"                      oo",
+"                        "};
Binary file etc/images/mail/refile.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mail/refile.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,36 @@
+/* XPM */
+static char * refile_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 7 1",
+" 	c None",
+".	c black",
+"X	c #a5d8a5d89550",
+"o	c #d305d305bc3c",
+"O	c #ea03ea03d271",
+"+	c #828282827474",
+"@	c #61b761b7600a",
+/* pixels */
+"             .          ",
+"           ..X.         ",
+"         ..XoO....      ",
+"       ..XooooO.+.      ",
+"     ..XooooooOX..  ..  ",
+"    .@@ooooooOOO@. ...  ",
+"    .O@oooooOOOOO..@@.  ",
+"    .OO@oooOOOOOO..@@.  ",
+"  ...OO@XooOOOOO...@@.  ",
+" ..+.O@XooOOOO..@@@@@.  ",
+" .++..XooOOOO..@@@@@@.  ",
+" .++.@oooOO...@@@@@@@.  ",
+" ..+.XooOOO..@@@@@@@.   ",
+"  .++.OOOO.@@@@@@@@.    ",
+"   .+.oOO..@@@@@@@.     ",
+"   .++.OO.@@@@@@@.      ",
+"    .++.O.@@@@@..       ",
+"    ..+.O.@@@@@.        ",
+"     .++..@@@@.         ",
+"     ..++.@@@.          ",
+"       .+.@@.           ",
+"       ...@.            ",
+"        ...             ",
+"         .              "};
Binary file etc/images/mail/repack.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mail/repack.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,35 @@
+/* XPM */
+static char * mail_repack_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 6 1",
+" 	c None",
+".	c black",
+"X	c #a5d8a5d89550",
+"o	c #d305d305bc3c",
+"O	c #ea03ea03d271",
+"+	c #828282827474",
+/* pixels */
+"                        ",
+"                        ",
+"       ..............   ",
+"      .XXXXXXXXXXXX..   ",
+"     .XXXXXXXXXXXX.X.   ",
+"    .XXXXXXXXXXXX.oo.   ",
+"   ..............ooo.   ",
+"   .OOOOOOOOOOOO.oo.    ",
+"   .O++++++++++O.oo.    ",
+"   .O+XXXXXXXX+O.o.     ",
+"    .+XXXXXXXX+.o..     ",
+"    .+XX...XXX+....     ",
+"     ....o.......oo.    ",
+"     ....o.....Oooo.    ",
+"    .OOO...OOOO.oooo.   ",
+"    .++++++++++.oooo.   ",
+"    .+XXXXXXXX+.oooo.   ",
+"   .O+XXXXXXXX+O.ooX.   ",
+"   .O+XXXXXXXX+O.oo..   ",
+"   .O++++++++++O.o..    ",
+"  ..OOOOOOOOOOOO...     ",
+"  ................      ",
+"                        ",
+"                        "};
Binary file etc/images/mail/reply-all.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mail/reply-all.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,38 @@
+/* XPM */
+static char * reply_all_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 9 1",
+" 	c None",
+".	c black",
+"X	c #673e666663d4",
+"o	c #eb46ea1de471",
+"O	c #a852a7bea3d2",
+"+	c #ae51c17b9b26",
+"@	c #8d4d97577838",
+"#	c #7c7c8b8b6e6e",
+"$	c #5e0868be52d3",
+/* pixels */
+"                        ",
+"                        ",
+"              ....      ",
+"         .....XooO.     ",
+"    .....XOooooooO.     ",
+"   .XOooooooooooXOO.    ",
+"   .oXXooooooooOXOo.    ",
+"   .OoOXXooooooXOoo.    ",
+"    .oooOOXOooXXXooO.   ",
+"    ........XXOoOXOo.   ",
+"    ..++++@.ooooooXO.   ",
+"     ..+@@@.oooooooXO.  ",
+"    ..+@@@#.oooooooO..  ",
+"  ..++@@@#$.ooooO...    ",
+" .++++@@#.$    ..       ",
+"  .+@@@#.o  ..   .O .O  ",
+"   .+@#$.   .O.  .O .O  ",
+"    .#$.   .O .o .O .O  ",
+"     .$.   .  .O .O .O  ",
+"      .    ....O .O .O  ",
+"           .O .O .O .O  ",
+"           .O .O .O .O  ",
+"           .O .O .O .O  ",
+"                        "};
Binary file etc/images/mail/reply-from.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mail/reply-from.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,38 @@
+/* XPM */
+static char * reply_from_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 9 1",
+" 	c None",
+".	c black",
+"X	c #673e666663d4",
+"o	c #eb46ea1de471",
+"O	c #a852a7bea3d2",
+"+	c #ae51c17b9b26",
+"@	c #8d4d97577838",
+"#	c #7c7c8b8b6e6e",
+"$	c #5e0868be52d3",
+/* pixels */
+"                        ",
+"                        ",
+"              ....      ",
+"         .....XooO.     ",
+"    .....XOooooooO.     ",
+"   .XOooooooooooXOO.    ",
+"   .oXXooooooooOXOo.    ",
+"   .OoOXXooooooXOoo.    ",
+"    .oooOOXOooXXXooO.   ",
+"    ........XXOoOXOo.   ",
+"    ..++++@.ooooooXO.   ",
+"     ..+@@@.oooooooXO.  ",
+"    ..+@@@#.oooooooO..  ",
+"  ..++@@@#$.ooooO...    ",
+"        #.$.oO...       ",
+"   ...O . ....          ",
+"   ...O                 ",
+"   .O                   ",
+"   ...O ..O .... .O O.  ",
+"   ...O ..O .OO. .....  ",
+"   .O   .O  .  . . . .  ",
+"   .O   .O  .OO. . . .  ",
+"   .O   .O  .... . O .  ",
+"                        "};
Binary file etc/images/mail/reply-to.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mail/reply-to.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,38 @@
+/* XPM */
+static char * reply_to_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 9 1",
+" 	c None",
+".	c black",
+"X	c #673e666663d4",
+"o	c #eb46ea1de471",
+"O	c #a852a7bea3d2",
+"+	c #ae51c17b9b26",
+"@	c #8d4d97577838",
+"#	c #7c7c8b8b6e6e",
+"$	c #5e0868be52d3",
+/* pixels */
+"                        ",
+"                        ",
+"              ....      ",
+"         .....XooO.     ",
+"    .....XOooooooO.     ",
+"   .XOooooooooooXOO.    ",
+"   .oXXooooooooOXOo.    ",
+"   .OoOXXooooooXOoo.    ",
+"    .oooOOXOooXXXooO.   ",
+"    ........XXOoOXOo.   ",
+"    ..++++@.ooooooXO.   ",
+"     ..+@@@.oooooooXO.  ",
+"    ..+@@@#.oooooooO..  ",
+"  ..++@@@#$.ooooO...    ",
+" .++++@@#.$             ",
+"  .+@@@#.o  ......      ",
+"   .+@#$.   OO.OOO      ",
+"    .#$.      .O        ",
+"     .$.      .O  ....  ",
+"      .       .O  .OO.  ",
+"              .O  .  .  ",
+"              .O  .OO.  ",
+"              .O  ....  ",
+"                        "};
Binary file etc/images/mail/reply.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mail/reply.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,38 @@
+/* XPM */
+static char * mail_reply_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 9 1",
+" 	c None",
+".	c black",
+"X	c #673e666663d4",
+"o	c #eb46ea1de471",
+"O	c #a852a7bea3d2",
+"+	c #ae51c17b9b26",
+"@	c #8d4d97577838",
+"#	c #7c7c8b8b6e6e",
+"$	c #5e0868be52d3",
+/* pixels */
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"                        ",
+"              ....      ",
+"         .....XooO.     ",
+"    .....XOooooooO.     ",
+"   .XOooooooooooXOO.    ",
+"   .oXXooooooooOXOo.    ",
+"   .OoOXXooooooXOoo.    ",
+"    .oooOOXOooXXXooO.   ",
+"    ........XXOoOXOo.   ",
+"    ..++++@.ooooooXO.   ",
+"     ..+@@@.oooooooXO.  ",
+"    ..+@@@#.oooooooO..  ",
+"  ..++@@@#$.ooooO...    ",
+" .++++@@#.$.oO...       ",
+"  .+@@@#.o....          ",
+"   .+@#$...             ",
+"    .#$.                ",
+"     .$.                ",
+"      .                 ",
+"                        "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/mh-logo.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,22 @@
+/* XPM */
+static char *mh-e[] = {
+/* width height num_colors chars_per_pixel */
+"    18    13        2            1",
+/* colors */
+"# c #666699",
+". c None s None",
+/* pixels */
+"........##........",
+".......####.......",
+"......######......",
+"......######......",
+"....#########.....",
+"..##############..",
+".##...######....#.",
+"##...#.#.####...#.",
+"....#..#.##.#...#.",
+"...#..##.#.#.#....",
+"...#..#..#..#.#...",
+"...#..#.##..#.##..",
+"...#..#.#..#....#."
+};
Binary file etc/images/page-down.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/page-down.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,34 @@
+/* XPM */
+static char * mail_page_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 5 1",
+" 	c None",
+".	c black",
+"X	c #ea03ea03d271",
+"o	c #a5d8a5d89550",
+"O	c #d305d305bc3c",
+/* pixels */
+"                        ",
+"                        ",
+"   ..................   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XoooooooooooooXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .Xoooooooooo..oXX.   ",
+"   .XXXXXXXXXXX..XXX.   ",
+"   .XXXXXXXXXXX..XXX.   ",
+"   .XooooooXXXX..XXX.   ",
+"   .XXXXXXXXXXX..XXX.   ",
+"   .XXXXXXXXX.O..O.X.   ",
+"   .Xoooooooo.....XX.   ",
+"   .XXXXXXXXXX....XX.   ",
+"   .XXXXXXXXXXX..XXX.   ",
+"   .XXXXXXXXXXXooXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   ..................   ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/refresh.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/refresh.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,113 @@
+/* XPM */
+static char * refresh_xpm[] = {
+"24 24 86 1",
+" 	c None",
+".	c #000000",
+"+	c #F3F6F8",
+"@	c #C8D4DF",
+"#	c #F7F9FA",
+"$	c #0D110C",
+"%	c #6286A5",
+"&	c #A0B6C9",
+"*	c #C9D5E0",
+"=	c #F2F5F7",
+"-	c #172116",
+";	c #819EB6",
+">	c #CAD6E1",
+",	c #CCD7E1",
+"'	c #CED9E3",
+")	c #F6F8F9",
+"!	c #7192AE",
+"~	c #587B99",
+"{	c #CDD8E2",
+"]	c #CFDAE4",
+"^	c #D3DDE6",
+"/	c #D5DEE6",
+"(	c #ADC0D0",
+"_	c #90A9BF",
+":	c #537490",
+"<	c #23323E",
+"[	c #85A1B8",
+"}	c #5E83A3",
+"|	c #6084A3",
+"1	c #6689A7",
+"2	c #678AA8",
+"3	c #48657D",
+"4	c #A8BCCD",
+"5	c #7393AE",
+"6	c #6B8DAA",
+"7	c #5C81A1",
+"8	c #5D82A2",
+"9	c #6588A6",
+"0	c #435F76",
+"a	c #B1C3D2",
+"b	c #50718D",
+"c	c #9FB5C8",
+"d	c #94ACC1",
+"e	c #425D73",
+"f	c #435E74",
+"g	c #B4C5D3",
+"h	c #6C8EAB",
+"i	c #C4D2DD",
+"j	c #5B80A0",
+"k	c #456178",
+"l	c #7595B0",
+"m	c #BFCEDA",
+"n	c #597D9C",
+"o	c #A3B8CA",
+"p	c #B0C2D1",
+"q	c #86A2B9",
+"r	c #6E8FAB",
+"s	c #E1E8EE",
+"t	c #B9C9D6",
+"u	c #6387A6",
+"v	c #4C6B85",
+"w	c #7F9DB6",
+"x	c #BCCCD9",
+"y	c #DDE5EC",
+"z	c #E4EAEF",
+"A	c #D8E1E9",
+"B	c #D1DBE4",
+"C	c #C7D3DE",
+"D	c #B7C8D6",
+"E	c #7091AD",
+"F	c #537592",
+"G	c #9DB3C6",
+"H	c #8CA7BD",
+"I	c #304353",
+"J	c #4E6E89",
+"K	c #829FB7",
+"L	c #92ABC0",
+"M	c #C5D3DE",
+"N	c #7C9AB3",
+"O	c #5A7E9D",
+"P	c #47647C",
+"Q	c #6185A4",
+"R	c #5B7F9E",
+"S	c #4F6F8A",
+"T	c #405A71",
+"U	c #283926",
+"       .                ",
+"       ..               ",
+"       .+.              ",
+"    ....@#.             ",
+"   $%&@@**=.     ..     ",
+"  -;@@**>,').   .!~.    ",
+" .%@**>,{]^/(.   ._:.   ",
+" <&@[}}|%123.     .4.   ",
+".5@678|%920.      .ab.  ",
+".cd7e...1f.   .   .gh.  ",
+".ijb.  .k.   ..   .al.  ",
+".mn.   ..   .'.  .op5.  ",
+".qr.   .   .*s...at4u.  ",
+".vw.      .xyzyABCDEF.  ",
+" .G.     .p'B,@ixaH2I.  ",
+" .JK.   .LM@,>>MmNOP.   ",
+"  .F9.   .9|%Q|}7RS..   ",
+"   ..     .|R~~nJT..    ",
+"           .j~....      ",
+"            UO.         ",
+"             ..         ",
+"              .         ",
+"                        ",
+"                        "};
Binary file etc/images/show.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/show.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,33 @@
+/* XPM */
+static char * mail_show_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 4 1",
+" 	c None",
+".	c black",
+"X	c #ea03ea03d271",
+"o	c #a5d8a5d89550",
+/* pixels */
+"                        ",
+"                        ",
+"   ..................   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XoooooooooooooXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XoooooooooooooXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XooooooXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XoooooooooXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   .XXXXXXXXXXXXXXXX.   ",
+"   ..................   ",
+"                        ",
+"                        ",
+"                        "};
Binary file etc/images/widen.pbm has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/widen.xpm	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,32 @@
+/* XPM */
+static char * widen_xpm[] = {
+/* columns rows colors chars-per-pixel */
+"24 24 3 1",
+" 	c None",
+".	c #8d4d97577838",
+"X	c black",
+/* pixels */
+"                        ",
+"                        ",
+"                        ",
+"  .                  .  ",
+"  .                  .  ",
+"  .                  .  ",
+"  .                  .  ",
+"  .                  .  ",
+"  .   XX        XX   .  ",
+"  .  XX          XX  .  ",
+"  . XX            XX .  ",
+"  .XXXXXXXX  XXXXXXXX.  ",
+"  .XXXXXXXX  XXXXXXXX.  ",
+"  . XX            XX .  ",
+"  .  XX          XX  .  ",
+"  .   XX        XX   .  ",
+"  .                  .  ",
+"  .                  .  ",
+"  .                  .  ",
+"  .                  .  ",
+"  .                  .  ",
+"                        ",
+"                        ",
+"                        "};
--- a/lisp/ChangeLog	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/ChangeLog	Fri Oct 07 07:15:40 2005 +0000
@@ -1,3 +1,423 @@
+2005-10-07  Nick Roberts  <nickrob@snap.net.nz>
+	
+	* progmodes/gud.el (gud-menu-map): Only display un-intuitive
+	gud-break and gud-remove icons when the fringe is not available.
+
+	* progmodes/gdb-ui.el (gdb-fringe-width -> gdb-buffer-fringe-width):
+	Typo.
+
+2005-10-06  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* play/zone.el (zone): Wrap body with save-window-excursion.
+	Suggested by Michael Cadilhac.
+
+2005-10-06  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* calendar/cal-menu.el (calendar-mouse-view-diary-entries):
+	Use the new `list-only' arg to diary-list-entries.
+
+	* calendar/diary-lib.el: Use overlays rather than selective-display.
+	(diary-selective-display): New var.
+	(diary-header-line-format): Use it.
+	(diary-list-entries): Add argument `list-only'.
+	Put the buffer in diary-mode.  Don't add \^M at beg and end.
+	Replace \^M by invisible overlays.
+	(diary-unhide-everything): Replace \^M by invisible overlays.
+	(print-diary-entries): Look for overlays rather than \^M.
+	Add a space to the temp buffer name.
+	(diary-show-all-entries, mark-diary-entries, make-diary-entry):
+	Put the buffer in diary-mode.
+	(list-sexp-diary-entries): Replace \^M by invisible overlays.
+	(diary-anniversary): Make the year arg optional.
+	(diary-time-regexp): New const.
+	(diary-font-lock-keywords): Use it to accept a few more time formats.
+
+	* pcvs.el (cvs-sentinel): Make sure we do re-enable undo.
+
+2005-10-06  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* textmodes/artist.el (artist-ellipse-mirror-quadrant):
+	Fix bug introduced 2005-07-03: Use (car (last ...))
+	to faithfully reproduce replaced artist-last.
+	(artist-set-arrow-points-for-poly): Likewise.
+	Suggested by Johan Bockg,Ae(Brd.
+
+2005-10-06  Juanma Barranquero  <lekktu@gmail.com>
+
+	* dframe.el (x-pointer-hand2, x-pointer-top-left-arrow):
+	* wid-edit.el (widget):
+	* progmodes/gdb-ui.el (gdb-buffer-fringe-width):
+	* progmodes/vhdl-mode.el (speedbar-attached-frame): Add defvars.
+
+2005-10-06  Kenichi Handa  <handa@m17n.org>
+
+	* international/mule-cmds.el (set-language-environment):
+	Fix setting up of case-table for unibyte mode.
+
+	* simple.el (what-cursor-position): If the character is displayed
+	by some `display' text property, show that.  Don't use
+	single-key-description for eight-bit characters in multibyte mode.
+
+2005-10-06  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gdb-ui.el (gdb-fringe-width): New variable.
+	(gdb-ann3): Set it.
+	(gdb-put-breakpoint-icon): Don't take fringe-width from speedbar frame.
+	(gdb-info-frames-custom): Use inverse-video for first five
+	characters of selected frame only.
+	(gdb-get-frame-number): Select frame even when point is on frame
+	number.
+
+2005-10-06  Masatake YAMATO  <jet@gyve.org>
+
+	* progmodes/gdb-ui.el (gdb-info-breakpoints-custom):
+	Put `font-lock-function-name-face'.
+	(gdb-info-frames-custom): Put `font-lock-function-name-face'
+	and `font-lock-variable-name-face'
+	(gdb-registers-font-lock-keywords): New font lock keywords definition.
+	(gdb-registers-mode): Use `gdb-registers-font-lock-keywords`.
+	(gdb-memory-font-lock-keywords): New font lock keywords definition.
+	(gdb-memory-mode): Use `gdb-memory-font-lock-keywords'.
+	(gdb-local-font-lock-keywords): New font lock keywords definition.
+	(gdb-locals-mode): Use `gdb-local-font-lock-keywords'
+	(gdb-threads-font-lock-keywords): New font lock keywords definition.
+	(gdb-threads-mode): Use `gdb-threads-font-lock-keywords'.
+
+2005-10-05  Michael Kifer  <kifer@cs.stonybrook.edu>
+
+	* ediff-merge.el (ediff-merge-region-is-non-clash): New defsubst.
+	(ediff-merge-region-is-non-clash-to-skip): Previously called
+	ediff-merge-region-is-non-clash.
+
+	* ediff-mult.el (ediff-append-custom-diff, ediff-meta-show-patch):
+	Use insert-buffer-substring.
+
+	* ediff-ptch.el (ediff-fixup-patch-map): Use better heuristics for
+	selecting files to patch.  Also bug fixes.
+
+	* ediff-util.el (ediff-setup): Bug fix.
+	(ediff-next-difference): Never skip clashes that differ in white
+	space only.
+
+	* ediff-wind.el (ediff-setup-control-frame)
+	(ediff-destroy-control-frame): Check the menubar feature.
+
+	* viper-cmd.el (viper-normalize-minor-mode-map-alist)
+	(viper-refresh-mode-line): Use make-local-variable to localize
+	some vars instead of make-variable-buffer-local.  Suggested by
+	Stefan Monnier.
+
+	* viper-init.el (viper-make-variable-buffer-local): Delete alias.
+	(viper-restore-cursor-type, viper-set-insert-cursor-type):
+	Use make-local-variable instead of make-variable-buffer-local.
+	Suggested by Stefan Monnier.
+
+	* viper.el (viper-mode): Don't use viper-make-variable-buffer-local.
+	(viper-comint-mode-hook): Use make-local-variable on
+	require-final-newline.
+	(viper-non-hook-settings): Don't use make-variable-buffer-local.
+
+2005-10-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* progmodes/scheme.el (scheme-mode-syntax-table): Mark ; as being
+	also the second char of a comment-start sequence.
+	(scheme-sexp-comment-syntax-table): New var.
+	(lambda, define): Set their scheme-doc-string-elt property.
+	(scheme-font-lock-syntactic-face-function): Handle sexp-comments.
+	Use lisp-font-lock-syntactic-face-function now that it properly
+	handles |...| symbols.
+	(scheme-mode-variables): Set lisp-doc-string-elt-property,
+	parse-sexp-lookup-properties and font-lock-extra-managed-props.
+
+	* emacs-lisp/lisp-mode.el (lisp-mode-syntax-table): Move the nesting
+	bit from # to |.
+	(lisp-font-lock-syntactic-face-function): Distinguish |...| symbols.
+
+	* emacs-lisp/lisp-mode.el (lambda): Add its doc-string-elt property.
+	(lisp-doc-string-elt-property): New var.
+	(lisp-font-lock-syntactic-face-function): Use it.
+	Rewrite to recognize docstrings even for forms not at toplevel.
+
+	* progmodes/scheme.el (scheme-mode-syntax-table): Put the nested
+	annotation on the | part of #| rather than on the # part.
+	(scheme-font-lock-syntactic-face-function): New function, to
+	distinguish strings from |...| symbols.
+	(scheme-mode-variables): Use it.  Also fix up the font-lock-time
+	syntax-table so that #|...|# is properly highlighted.
+
+	* emacs-lisp/lisp-mode.el (lisp-font-lock-syntactic-face-function):
+	Don't mark as docstring the 3rd elem of an unknown toplevel form.
+
+2005-10-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* bindings.el (global-map): Resync [home] and [end] bindings with C-a
+	and C-e.
+
+	* emacs-lisp/eldoc.el: Move comments into docstrings.
+	(eldoc-message-commands): Initialize in its declaration.
+	Add move-beginning-of-line and move-end-of-line.
+	(eldoc-add-command, eldoc-add-command-completions)
+	(eldoc-remove-command, eldoc-remove-command-completions): Simplify.
+
+	* outline.el (outline-mark-subtree): Activate the mark.
+
+	* calendar/appt.el (appt-time-regexp): New var.
+	(appt-add, appt-make-list): Use it.
+	(appt-convert-time): Clean up.
+
+	* textmodes/tex-mode.el (tex-font-lock-syntactic-face-function):
+	Don't set any syntax-table property here.
+	(tex-font-lock-verb): New function.  Do it here.
+	(tex-font-lock-syntactic-keywords): Use it.
+
+2005-10-04  Richard M. Stallman  <rms@gnu.org>
+
+	* wid-edit.el (widget-file-complete): Get the widget start point
+	the right way.  Default directory to `/' if file has none.
+
+	* x-dnd.el (x-dnd-drop-data): Check for dedicated windows.
+
+	* textmodes/flyspell.el (flyspell-mode-on):
+	Call ispell-maybe-find-aspell-dictionaries.
+
+	* textmodes/ispell.el (ispell-word, ispell-region):
+	Call ispell-maybe-find-aspell-dictionaries.
+	(ispell-accept-buffer-local-defs):
+	Don't call ispell-maybe-find-aspell-dictionaries
+
+2005-10-04  Richard M. Stallman  <rms@gnu.org>
+
+	* iswitchb.el (iswitchb-buffer-ignore): Label it risky.
+
+2005-10-04  Emilio C. Lopes  <eclig@gmx.net>
+
+	* iswitchb.el (iswitchb-ignore-buffername-p): Use `functionp'
+	instead of `fboundp' in order to allow for anonymous functions.
+
+2005-10-04  Chong Yidong  <cyd@stupidchicken.com>
+
+	* info.el (Info-next, Info-prev, Info-up): Select info buffer, in
+	case the user clicks on the link while another window is selected.
+	(Info-speedbar-hierarchy-buttons): Use speedbar-current-frame.
+
+	* dframe.el (dframe-update-keymap): Use mouse-1-click-follows-link
+	functionality.
+	(dframe-help-echo): Save point in case mouse tracking is off.
+
+2005-10-04  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* net/ange-ftp.el (ange-ftp-ls): Fix typo introduced in last change.
+
+2005-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* progmodes/cc-styles.el (c-setup-paragraph-variables): Make sure we do
+	not change the global value of those vars.
+
+	* progmodes/cc-mode.el (c-basic-common-init): Remove calls to
+	make-local-variable which we do not need any more.
+
+2005-10-03  Chong Yidong  <cyd@stupidchicken.com>
+
+	* speedbar.el (speedbar-ignored-path-regexp, speedbar-line-path)
+	(speedbar-ignored-path-expressions, speedbar-buffers-line-path)
+	(speedbar-add-ignored-path-regexp, speedbar-buffers-line-path)
+	(speedbar-path-line): Define obsolete aliases.
+	(speedbar-line-directory): Doc fix.
+
+	* progmodes/vhdl-mode.el (vhdl-speedbar-initialize)
+	(vhdl-speedbar-rescan-hierarchy): Call speedbar-line-directory
+	instead of speedbar-line-path.
+
+2005-10-03  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* x-dnd.el (x-dnd-drop-data): Don't set dnd-open-file-other-window
+	to nil if dropping on a window.  Handle dropping on a minibuffer window
+	like dropping on a non-window part of Emacs.
+
+2005-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* net/ange-ftp.el: Use with-current-buffer.
+	(ange-ftp-insert-directory): Do not follow symlinks any more.
+
+	* textmodes/ispell.el (ispell-find-aspell-dictionaries):
+	Remove interactive spec.
+
+2005-10-03  Kim F. Storm  <storm@cua.dk>
+
+	* ido.el (ido-mode): Use custom-initialize-set.
+
+2005-10-02  Richard M. Stallman  <rms@gnu.org>
+
+	* progmodes/ebnf2ps.el (ebnf-eps-production-list):
+	Use insert-buffer-substring.
+
+	* net/tramp.el: Pacify byte compiler warnings in pacification code.
+	(tramp-handle-file-local-copy): Use insert-buffer-substring.
+
+2005-10-02  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* net/ange-ftp.el (ange-ftp-insert-directory): Undo unintended part
+	in last change.
+	(ange-ftp-insert-directory): Fix up the search for the case where
+	`file' is absolute.
+
+2005-10-02  Romain Francoise  <romain@orebokech.com>
+
+	* progmodes/compile.el (compile-goto-error): Delete extra paren.
+
+2005-10-02  Andreas Schwab  <schwab@suse.de>
+
+	* ediff-ptch.el (ediff-fixup-patch-map): Handle file names without
+	directory component in the session info.
+
+2005-10-01  Richard M. Stallman  <rms@gnu.org>
+
+	* comint.el (comint-redirect-subvert-readonly): Doc fix.
+
+	* simple.el (next-error-internal): New function.
+
+	* progmodes/compile.el (compilation-buffer-name): New arg MODE-COMMAND.
+	(compilation-start): Pass new arg to compilation-buffer-name.
+	(compile-goto-error): Use next-error-internal.
+
+2005-10-01  Chong Yidong  <cyd@stupidchicken.com>
+
+	* speedbar.el: Remove RCS tag.
+	(speedbar-check-read-only): Handle non-existent files.
+
+	* dframe.el, ezimage.el, sb-image.el: Remove RCS tags.
+
+	* info.el (Info-speedbar-hierarchy-buttons)
+	(Info-speedbar-goto-node): Call speedbar-select-attached-frame.
+
+2005-10-01  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
+
+	* textmodes/bibtex.el (bibtex-valid-entry-whitespace-re):
+	Do not match newline.
+	(bibtex-realign): Do not use bibtex-valid-entry-whitespace-re.
+	(bibtex-summary): Remove unnecessary save-excursion.
+	(bibtex-fill-field-bounds): Use fill-region-as-paragraph.
+
+2005-10-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* term/mac-win.el: Add charset info for "iso10646-1".
+	Modify default fontset to use ATSUI-compatible fonts for some charsets
+	if available.
+
+2005-10-01  Chong Yidong  <cyd@stupidchicken.com>
+
+	* speedbar.el: Re-apply arch tag.
+	(speedbar-version): Rename to version 1.0.  Suggested by Eric
+	M. Ludlam.
+	Reapply two changes from Emacs CVS' version of speedbar lost
+	during the merge:
+	(speedbar-use-imenu-flag): Avoid unnecessary use of locate-library.
+	(speedbar-frame-parameters): Improve customize type.
+
+2005-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* net/ange-ftp.el (ange-ftp-gwp-start): Use with-current-buffer.
+	(ange-ftp-file-directory-p): Fix the symlink case.
+	(ange-ftp-insert-directory): When listing a single file, get a list of
+	the parent buffer and extract the relevant line.  Inspired from a patch
+	by Katsumi Yamaoka <yamaoka@jpl.org>.
+	(ange-ftp-file-name-sans-versions): Simplify.
+
+2005-09-30  Bill Wohler  <wohler@newt.com>
+
+	Move MH-E image files from toolbar and mail directories into
+	etc/images.
+
+	* mail/reply2.*: Move to etc/images/mail/reply*.
+
+	* toolbar/execute.*, toolbar/highlight.*, toolbar/mh-logo.xpm:
+	* toolbar/page-down.*, toolbar/show.*, toolbar/widen.*: Move to
+	etc/images.
+
+	* toolbar/alias.*, toolbar/refile.*, toolbar/repack.*:
+	* toolbar/reply*: Move to etc/images/mail.
+
+	* toolbar/rescan.*: Move and rename to etc/images/refresh.*.
+
+2005-09-30  Eric M. Ludlam <zappo@gnu.org>
+
+	* speedbar.el: New version 1.0pre3.
+
+	Frame management code (including timer, and mouse click specifics)
+	moved to dframe.el:
+	(speedbar-attached-frame): Removed.  Use dframe-attached-frame.
+	(speedbar-timer): Removed.  Use dframe-timer.
+	(speedbar-close-frame): Removed.  Use dframe-close-frame.
+	(speedbar-activity-change-focus-flag): Removed.  Use
+	dframe-activity-change-focus-flag.
+	(speedbar-update-speed, speedbar-navigating-speed): Obsolete.  Use
+	dframe-update-speed.
+
+	(speedbar-current-frame): New macro.  Use this instead of the
+	variable speedbar-frame.
+
+	(speedbar-use-images, speedbar-expand-image-button-alist)
+	(speedbar-insert-image-button-maybe): Moved to sb-image.el.
+
+	(speedbar-find-image-on-load-path): Removed.  Replaced by
+	defezimage in ezimage.el.
+	(speedbar-expand-image-button-alist): Removed.  Replaced by
+	ezimage-expand-image-button-alist in ezimage.el.
+
+	(speedbar-ignored-directory-regexp)
+	(speedbar-add-ignored-directory-regexp)
+	(speedbar-ignored-directory-expressions)
+	(speedbar-line-directory, speedbar-buffers-line-directory)
+	(speedbar-directory-line, speedbar-buffers-line-directory):
+	Renamed, replacing `path' with `directory'.
+
+	(speedbar-create-directory, speedbar-expand-line-descendants)
+	(speedbar-toggle-line-expansion)
+	(speedbar-contract-line-descendants): New commands.
+
+	(speedbar-query-confirmation-method, speedbar-select-frame-method)
+	(speedbar-use-tool-tips-flag): New options.
+
+	(speedbar-check-read-only, speedbar-require-version)
+	(speedbar-insert-separator, speedbar-buffers-tail-notes)
+	(speedbar-handle-delete-frame, speedbar-try-completion)
+	(speedbar-update-localized-contents): New functions.
+
+	(speedbar-incompatible-version, speedbar-ro-to-do-point)
+	(speedbar-object-read-only-indicator): New variables.
+
+	(speedbar-visiting-tag-hook, speedbar-before-visiting-file-hook):
+	New hooks.
+
+	(speedbar-separator-face): New face.
+
+	(speedbar-supported-extension-expressions): Add `.g' and `.ma?k'.
+	(speedbar-ignored-modes): Add fundamental-mode.
+	(speedbar-directory-unshown-regexp): Add . directories.
+
+	(speedbar-key-map): Remove old SPC and DEL page up/down keys.
+	(speedbar-file-key-map): Add SPC to toggle node expansion, `[' and
+	`]' for full expand/close.
+	(speedbar-buffers-key-map): Add SPC to toggle node expansion.
+
+	(speedbar-check-vc): Support hidden files.
+	(speedbar-vc-check-dir-p): Use vc-state if available for CVS.
+	(speedbar-this-file-in-vc): Use vc-state if available.  If VC
+	state is nil, it is not checked out.
+
+	(speedbar-line-text, speedbar-line-token): Support expand buttons
+	with no text.
+	(speedbar-refresh): Universal argument acts as power-click.
+	(speedbar-fetch-dynamic-tags): If a buffer is in Emacs, switch to
+	that buffer to get variable values.
+
+	And many other bugfixes.
+
+	* dframe.el, ezimage.el, sb-image.el: New files.
+
+	* sb-*.xpm: Remove files.  New image files installed into
+	etc/images/ezimage.
+
 2005-09-30  Kenichi Handa  <handa@m17n.org>
 
 	* ps-mule.el (ps-mule-show-warning): If a character is in
@@ -47,7 +467,7 @@
 
 	* emulation/cua-base.el: Set CUA move property on additional commands:
 	up-list, down-list, backward-up-list, end-of-defun beginning-of-defun,
-	forward-sexp backward-sexp, forward-list, backward-list
+	forward-sexp, backward-sexp, forward-list, backward-list.
 
 2005-09-28  Romain Francoise  <romain@orebokech.com>
 
@@ -107,15 +527,13 @@
 	* progmodes/ebrowse.el (ebrowse-find-pattern):
 	* progmodes/idlw-shell.el (idlwave-shell-set-bp-check):
 	* textmodes/reftex-index.el (reftex-index-initialize-phrases-buffer):
-	End `yes-or-no-p' and `y-or-n-p' prompts with question mark and
-	space.
+	End `yes-or-no-p' and `y-or-n-p' prompts with question mark and space.
 
 	* vc.el (vc-delete-file):
 	* play/gomoku.el (gomoku-terminate-game, gomoku)
 	(gomoku-prompt-for-move, gomoku-human-takes-back):
 	* play/landmark.el (lm-human-takes-back, lm-prompt-for-move)
-	(lm-start-robot, lm-human-plays): Remove extraneous spaces in
-	messages.
+	(lm-start-robot, lm-human-plays): Remove extraneous spaces in messages.
 
 2005-09-24  Dan Nicolaescu  <dann@ics.uci.edu>
 
@@ -12234,14340 +12652,13 @@
 
 	* image.el (insert-sliced-image): Use t for line-height property.
 
-2004-12-31  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-store.el (calcVar-digit, calcVar-oper): Remove the need
-	for "var-" at the beginning of the minibuffer.
-
-2004-12-31  Richard M. Stallman  <rms@gnu.org>
-
-	* faces.el (read-face-name):
-	Don't treat an attribute spec as a list of faces.
-
-	* simple.el (undo): Use undo-equiv-table to detect
-	unexpected changes since previous undo.
-	(undo-list-saved): Variable deleted.
-	(buffer-disable-undo): Don't alter undo-list-saved.
-
-	* files.el (require-final-newline): Allow `visit' and `visit-save'.
-	(mode-require-final-newline): New option.
-	(after-find-file): Handle require-final-newline with new values.
-	(basic-save-buffer): Handle new values of require-final-newline.
-
-	* progmodes/sh-script.el (sh-require-final-newline):
-	Alist value now controls whether to use mode-require-final-newline.
-	(sh-set-shell): Implement that new meaning.
-
-	* progmodes/cc-vars.el (c-require-final-newline): Fix custom type, doc.
-	* progmodes/cc-mode.el (c-common-init): Use mode-require-final-newline.
-	* progmodes/antlr-mode.el (antlr-mode): Use mode-require-final-newline.
-	Delete old-Emacs compatibility code.
-	(antlr-c-common-init): Function deleted.
-
-	* net/snmp-mode.el (snmp-common-mode): Use mode-require-final-newline.
-	* progmodes/vhdl-mode.el (vhdl-mode): Use mode-require-final-newline.
-	* progmodes/simula.el (simula-mode): Use mode-require-final-newline.
-	* progmodes/python.el (python-mode): Use mode-require-final-newline.
-	* progmodes/perl-mode.el (perl-mode): Use mode-require-final-newline.
-	* progmodes/modula2.el (modula-2-mode): Use mode-require-final-newline.
-	* progmodes/mixal-mode.el (mixal-mode): Use mode-require-final-newline.
-	* progmodes/idlwave.el (idlwave-mode): Use mode-require-final-newline.
-	* progmodes/icon.el (icon-mode): Use mode-require-final-newline.
-	* progmodes/fortran.el (fortran-mode): Use mode-require-final-newline.
-	* progmodes/f90.el (f90-mode): Use mode-require-final-newline.
-	* progmodes/cperl-mode.el (cperl-mode): Use mode-require-final-newline.
-	* progmodes/cfengine.el (cfengine-mode): Use
-	mode-require-final-newline.
-	* progmodes/ada-mode.el (ada-mode): Use mode-require-final-newline.
-	* textmodes/text-mode.el (text-mode): Use mode-require-final-newline.
-	* textmodes/texinfo.el (texinfo-mode): Use mode-require-final-newline.
-
-2004-12-31  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-graph.el (calc-graph-show-dumb): Mention C-cC-c as the
-	way to return to Calc.
-
-	* calc/calc-yank.el (calc-edit-mode): Mention C-cC-c as the way to
-	finish, C-xk as the way to cancel the edit.  Add cancel routine to
-	kill-buffer-hook.
-
-	* calc/calc.el (calc-same-interface, calc-quit): Remove obsolete
-	MacEdit code.
-
-	* calc/calc-prog.el: Remove obsolete MacEdit code.
-	(calc-macro-edit-algebraic, calc-macro-edit-variable)
-	(calc-macro-edit-variable-2, calc-macro-edit-quick-digit): Remove.
-
-2004-12-31  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule.el	(buffer-file-coding-system-explicit):
-	Rename for explicit-buffer-file-coding-system.
-	(after-insert-file-set-coding): Adjust for the above change.
-
-	* files.el (revert-buffer): Change explicit-buffer-file-coding-system
-	to buffer-file-coding-system-explicit.
-	(basic-save-buffer-1): Likewise.
-
-2004-12-30  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/artist.el (artist-butlast-fn): Var deleted.
-	(artist-butlast, artist-last): Functions deleted.
-	(artist-ellipse-mirror-quadrant): Call last and butlast directly.
-	(artist-compute-key-compl-table): Call remq directly.
-	(artist-remove-nulls): Function deleted.
-	(artist-vaporize-lines, artist-flood-fill): Use push and pop directly.
-	(artist-push, artist-pop): Macro deleted.
-
-2004-12-30  Andreas Leue  <al@sphenon.de>
-
-	* textmodes/artist.el (artist-version): 1.2.6
-	(artist-prev-next-op-alist): New variable.
-	(artist-select-next-op-in-list): New function.
-	(artist-select-prev-op-in-list): New function.
-	(artist-make-prev-next-op-alist): New function.
-	(artist-is-in-op-list-p): New function.
-	(artist-get-first-non-nil-op): New function.
-	(artist-get-last-non-nil-op): New function.
-	(artist-mode-init): Call artist-get-last-non-nil-op to initialize
-	artist-prev-next-op-alist.
-	(artist-mode-map): Add binding for C-mouse-4 and C-mouse-5 to
-	change drawing operation.
-
-2004-12-30  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el (auto-revert-tail-handler): Put in undo boundaries.
-
-2004-12-31  Masatake YAMATO  <jet@gyve.org>
-
-	* server.el (server-process-filter): Suppress `error', too.
-
-2004-12-30  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-store.el (calc-copy-variable): Fix mistyped variable name.
-	Change the way a variable is displayed in a message.
-
-	* calc/calc-prog.el (calc-user-define-edit, calc-finish-macro-edit)
-	(calc-user-define-permanent, calc-execute-kbd-macro):
-	Replace old function MacEdit-parse-keys with edmacro-parse-keys.
-
-2004-12-30  Kenichi Handa  <handa@m17n.org>
-
-	* files.el (basic-save-buffer-1):
-	Set explicit-buffer-file-coding-system to last-coding-system-used.
-	(revert-buffer): Pay attention to
-	explicit-buffer-file-coding-system (not buffer-file-coding-system)
-	on bind coding-system-for-read.
-
-	* international/mule.el (explicit-buffer-file-coding-system):
-	New buffer local variable.
-	(after-insert-file-set-coding): Set it to coding-system-for-read.
-
-2004-12-29  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el (auto-revert-tail-mode): Doc fix for defvar.
-
-2004-12-29  Sanghyuk Suh  <han9kin@mac.com>
-
-	* term/mac-win.el (mac-drag-n-drop): Handle drag-n-drop events
-	that include line numbers.
-
-2004-12-29  Milan Zamazal  <pdm@zamazal.org>
-
-	* files.el (hack-local-variables): If no PREFIX, set it to "^".
-	Redundant variable PREFIXLEN removed.
-
-2004-12-28  Matt Hodges  <MPHodges@member.fsf.org>
-
-	* eshell/em-hist.el (eshell-previous-matching-input):
-	Start the deletion from the end of the output.
-
-2004-12-29  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
-
-	* term/mac-win.el: Require x-dnd.
-	(mac-drag-n-drop): Sync with W32 version.  Use x-dnd.el functions.
-
-2004-12-29  David Kastrup  <dak@gnu.org>
-
-	* international/mule.el (decode-coding-inserted-region):
-	Don't barf if `buffer-undo-list' is already set to `t'.
-
-2004-12-29  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-prog.el (calc-user-define-formula): Put default values
-	for function names in prompts.
-	(calc-user-define-permanent, calc-user-define-composition)
-	(calc-user-define-formula): Remove the need for "calcFunc-" in the
-	default input for algebraic functions.
-
-2004-12-29  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* vc-rcs.el (vc-rcs-annotate-command):
-	Fix omission bug: Call `vc-setup-buffer'.
-
-2004-12-29  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule.el (recode-region): New function.
-
-2004-12-28  Richard M. Stallman  <rms@gnu.org>
-
-	* simple.el (undo-extra-outer-limit): New variable.
-	(undo-outer-limit-truncate): Test and set it.
-
-	* emacs-lisp/lisp.el (mark-sexp, mark-defun): New arg ALLOW-EXTEND
-	enables the feature to extend the existing region.
-
-	* simple.el (mark-word): New arg ALLOW-EXTEND
-	enables the feature to extend the existing region.
-
-	* textmodes/paragraphs.el (mark-paragraph): New arg ALLOW-EXTEND
-	enables the feature to extend the existing region.
-
-	* startup.el (site-run-file): Don't allow setting it with Custom.
-
-	* simple.el (buffer-disable-undo): Fix previous change.
-
-2004-12-27  Masatake YAMATO  <jet@gyve.org>
-
-	* hexl.el (hexlify-buffer): Remove fontification here.
-	Use font lock mechanism instead.
-	(hexl-font-lock-keywords): New font lock kewords.
-	(hexl-mode-old-font-lock-keywords): New variable.
-	(hexl-mode): Store the old font lock keywords.
-	(hexl-mode-exit): Restore the old font lock keywords.
-
-2004-12-27  Richard M. Stallman  <rms@gnu.org>
-
-	* simple.el (undo): Fix previous change.
-
-2004-12-27  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
-
-	* term/mac-win.el: Sync with x-win.el.  Rearrange the contents.
-	Call mac-clear-font-name-table if invoked on Mac OS 8/9.
-	Call x-open-connection on Mac OS X.
-
-2004-12-27  Richard M. Stallman  <rms@gnu.org>
-
-	* files.el (buffer-save-without-query): New var (buffer-local).
-	(save-some-buffers): Save those buffers first, w/o asking.
-
-	* files.el (insert-directory-ls-version): New variable.
-	(insert-directory): When ls returns an error, test the version
-	number to decide what the return code means.
-	With --dired output format, detect and distinguish lines
-	that are really error messages.
-	(insert-directory-adj-pos): New function.
-
-	* bookmark.el (bookmark-jump): Nice error if BOOKMARK is nil.
-
-	* battery.el (battery-mode-line-format): Remove initial spaces.
-
-	* uniquify.el (uniquify-rationalize-file-buffer-names):
-	Delete interactive spec.
-
-	* type-break.el (type-break-mode): Set buffer-save-without-query.
-	Remove code that tried to set save-some-buffers-always.
-	(type-break-file-keystroke-count): Bind deactivate-mark.
-
-	* mouse.el (mouse-drag-region): Bind mouse-autoselect-window.
-
-	* simple.el (next-error-buffer-p): New arg AVOID-CURRENT.
-	Test that the buffer is live, and maybe reject current buffer too.
-	Clarify.
-	(next-error-find-buffer): Rewrite for clarity.
-
-	* loadup.el: Don't use buffer-disable-undo; do it directly.
-
-	* help-fns.el (describe-function-1): Call symbol-file with `defun'.
-	(describe-variable): Call symbol-file with `defvar'.
-
-	* subr.el (messages-buffer-max-lines): Alias for message-log-max.
-	(symbol-file): Rewritten to handle new load-history format.
-	Now takes an arg TYPE to specify looking for a particular
-	type of definition only.
-
-	* emacs-lisp/debug.el (debugger-make-xrefs):
-	Call symbol-file with `defun'.
-
-	* emacs-lisp/find-func.el (find-function-noselect):
-	Call symbol-file with `defun'.
-	(find-variable-noselect): Call symbol-file with `defvar'.
-
-	* eshell/esh-cmd.el (eshell-find-alias-function):
-	Call symbol-file with `defun'.
-
-	* eshell/esh-test.el (eshell-test-goto-func):
-	Call symbol-file with `defun'.
-
-	* mail/rmail.el (rmail-resend):
-	Let MAIL-ALIAS-FILE arg override mail-personal-alias-file.
-
-	* net/goto-addr.el (goto-address-mail-regexp): Allow = in username.
-
-	* progmodes/compile.el (compilation-find-buffer): Rename arg.
-
-	* textmodes/texinfmt.el (texinfo-format-buffer-1):
-	Call buffer-disable-undo.
-
-	* simple.el (undo-list-saved): New variable (buffer-local).
-	(undo): Set and test it.
-	(buffer-disable-undo): Move here from buffer.c.
-	Clear out undo-list-saved.
-
-	* international/mule.el (decode-coding-inserted-region):
-	Set buffer-undo-list in a correct and optimal way.
-
-	* progmodes/cperl-mode.el (cperl-find-bad-style): Use with-no-warnings.
-	(cperl-font-lock-unfontify-region-function): No need to save and
-	restore info, since font-lock.el does it for us.
-
-	* ansi-color.el (save-buffer-state): Definition deleted.
-	(ansi-color-unfontify-region): Don't use save-buffer-state.
-
-2004-12-27  Dave Love  <fx@gnu.org>
-
-	* wid-edit.el (function): Use restricted-sexp as parent.
-
-2004-12-27  Kevin Ryde  <user42@zip.com.au>
-
-	* simple.el (next-matching-history-element): Use same
-	`interactive' form as previous-matching-history-element.
-
-	* ffap.el (ffap-string-at-point-mode-alist): Add "*" to url chars,
-	it can appear unencoded and has been seen from yahoo.
-
-2004-12-27  Sergey Poznyakoff  <gray@Mirddin.farlep.net>  (tiny change)
-
-	* mail/smtpmail.el (smtpmail-try-auth-methods): Send AUTH CRAM-MD5
-	in upper case.  Reported by Wojciech Polak <polak@gnu.org>.
-
-2004-12-27  Kenichi Handa  <handa@m17n.org>
-
-	* international/utf-8.el (utf-translate-cjk-load-tables):
-	Bind coding-system-for-read to nil while loading subst-*.
-
-2004-12-26  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-store.el (calc-read-var-name): Remove "var-" from
-	default input.
-
-2004-12-26  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* buff-menu.el (Buffer-menu-revert-function): Clear out undo info
-	before reverting and disable undo recording while reverting.
-
-2004-12-26  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* progmodes/hideshow.el (hs-set-up-overlay): New user var.
-	(hs-make-overlay): New function.
-	(hs-isearch-show-temporary): Handle `display' overlay prop specially.
-	(hs-flag-region): Delete function.
-	(hs-hide-comment-region): No longer use `hs-flag-region'.
-	Instead, use `hs-discard-overlays' and `hs-make-overlay'.
-	(hs-hide-block-at-point): Likewise.
-	(hs-hide-level-recursive): Use `hs-discard-overlays'.
-	(hs-hide-all, hs-show-all): Likewise.
-	(hs-show-block): Likewise.
-	Also, use overlay prop `hs-b-offset', not `hs-ofs'.
-
-2004-12-24  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* progmodes/hideshow.el: Require `cl' when compiling.
-	Remove XEmacs and Emacs 19 compatibility.
-	Use `dolist' and `add-to-list' for load-time actions.
-	(hs-discard-overlays): Use `dolist'.
-	(hs-show-block): Likewise.
-
-2004-12-23  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* faces.el (mode-line, mode-line-inactive): Use min-colors.
-
-2004-12-23  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* progmodes/hideshow.el (hs-inside-comment-p): Fix omission bug:
-	When extending backwards, move outside the current comment first.
-
-2004-12-22  Kenichi Handa  <handa@m17n.org>
-
-	* international/quail.el (quail-start-translation): Fix prompt
-	string for the case if input-method-use-echo-area being non-nil.
-	(quail-start-conversion): Likewise.
-	(quail-show-guidance): Don't show guidance if
-	input-method-use-echo-area is non-nil.
-
-2004-12-21  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/ispell.el (ispell-help): Bind resize-mini-windows.
-
-2004-12-21  Markus Rost  <rost@ias.edu>
-
-	* calendar/diary-lib.el (mark-diary-entries):
-	Set mark-diary-entries-in-calendar only after checking for diary-file.
-
-2004-12-21  Richard M. Stallman  <rms@gnu.org>
-
-	* faces.el (escape-glyph): Use blue against light foreground.
-
-	* simple.el (undo-outer-limit-truncate): New function.
-	(undo-outer-limit-function): Use undo-outer-limit-truncate.
-
-2004-12-21  Eli Barzilay  <eli@barzilay.org>
-
-	* calculator.el (calculator-radix-grouping-mode)
-	(calculator-radix-grouping-digits)
-	(calculator-radix-grouping-separator):
-	New defcustoms for the new radix grouping mode functionality.
-	(calculator-mode-hook): Now used in electric mode too,
-	(calculator): Call it.
-	(calculator-mode-map): Some new keys.
-	(calculator-message): New function.  Some new calls.
-	(calculator-op, calculator-set-register): Use it.
-	(calculator-string-to-number): New function, mostly moved and
-	updated code from calculator-curnum-value.
-	(calculator-curnum-value): Use it.
-	(calculator-paste): Use it, and update grabbing the current-kill.
-	(calculator-rotate-displayer)
-	(calculator-rotate-displayer-back): Toggle digit grouping when
-	in radix mode, use calculator-message.
-	(calculator-displayer-prev, calculator-displayer-next):
-	Change digit group size when in radix mode.
-	(calculator-number-to-string): Rename from
-	calculator-num-to-string.  Now deals with digit grouping in
-	radix mode.
-	(calculator-update-display, calculator-put-value): Use the new name.
-	(calculator-fact): Return a floating point number.
-	(calculator-mode): Doc fix.
-
-2004-12-20  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/calendar.el (view-other-diary-entries): Add autoload.
-	* calendar/diary-lib.el (view-other-diary-entries):
-	Use current-prefix-arg in interactive spec.
-
-2004-12-19  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-aent.el (calcAlg-blank-matching-open): Temporarily
-	adjust the syntax of both delimiters of half-open intervals.
-
-2004-12-19  Kim F. Storm  <storm@cua.dk>
-
-	* mouse.el (mouse-1-click-follows-link): Doc fix.
-
-2004-12-18  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
-
-	* term/mac-win.el (encoding-vector, mac-font-encoder-list)
-	(ccl-encode-mac-centraleurroman-font): Use centraleurroman
-	instead of centraleuropean as the name
-
-2004-12-17  Michael Albinus  <michael.albinus@gmx.de>
-
-	Sync with Tramp 2.0.46.
-
-	* net/tramp.el (tramp-maybe-send-perl-script): Change order of
-	parameters wrt Tramp convention.
-	(tramp-handle-file-attributes-with-perl)
-	(tramp-handle-directory-files-and-attributes): Apply it.
-	(tramp-do-copy-or-rename-file-out-of-band): Check for existence of
-	`copy-program'.  Reported by Zack Weinberg
-	<zack@codesourcery.com>.
-	(top): Set `edebug-form-spec' property directly rather than
-	calling `def-edebug-spec'.
-
-	* net/tramp-smb.el (tramp-smb-advice-PC-do-completion): Make the
-	advice less fragile.  Surround temporary redefinition of
-	`substitute-in-file-name' with `unwind-protect'.  Suggested by
-	Matt Hodges <MPHodges@member.fsf.org>.
-
-2004-12-17  Juri Linkov  <juri@jurta.org>
-
-	* replace.el (occur-accumulate-lines, occur-engine):
-	Make forcing deferred font-lock fontification jit-specific.
-
-2004-12-17  Kim F. Storm  <storm@cua.dk>
-
-	* mouse.el (mouse-1-click-follows-link): New defcustom.
-	(mouse-on-link-p): New function.
-	(mouse-drag-region-1): Implement mouse-1-click-follows-link
-	functionality.  Map a mouse-1 click event into a mouse-2 (or
-	other) event when position is inside a link.
-
-	* tooltip.el (tooltip-show-help-function): Replace "mouse-2"
-	prefix in tooltip text with "mouse-1" when this is a link
-	recognized by mouse-1-click-follows-link functionality.
-
-	* help.el (describe-key): Report effective and original binding
-	for mouse-1 when clicked on a link.
-	(describe-mode): Add follow-link property to "minor-mode" button.
-
-	* help-fns.el (describe-variable): Add follow-link property to
-	"below" button.
-
-	* help-mode.el (help-xref): Add follow-link property.
-
-	* apropos.el (apropos-symbol, apropos-function, apropos-macro)
-	(apropos-command, apropos-variable, apropos-face, apropos-group)
-	(apropos-widget, apropos-plist): Add follow-link property.
-
-	* pcvs-defs.el (cvs-mode-map): Map follow-link to a function which
-	checks if position is in a filename, rather than some other
-	clickable item.  Function looks for cvs-filename-face at position.
-
-	* wid-edit.el (widget-specify-field, widget-specify-button):
-	Map a :follow-link keyword into a follow-link property.
-	(link): Add :follow-link keyword, map to RET binding.
-
-	* dired.el (dired-mode-map): Map follow-link to mouse-face.
-
-	* progmodes/compile.el (compilation-minor-mode-map)
-	(compilation-button-map, compilation-mode-map): Likewise.
-
-2004-12-17  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* play/zone.el (zone): Init `line-spacing' from orig buffer.
-	(zone-replace-char): Take `count' and `del-count'
-	instead of `direction'.  Update callers.  When `del-count' is
-	non-nil, delete that many characters, otherwise `count' characters
-	backwards.  Insert the newly-replaced string `count' times.
-	(zone-fret): Handle chars w/ width greater than one.
-	(zone-fall-through-ws): No longer take window width `ww'.
-	Update callers.  Add handling for `char-width' greater than one.
-	(zone-pgm-drip): Update var holding window-end position every cycle.
-
-2004-12-17  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc.el (vc-default-update-changelog): Use insert-file-contents,
-	rather than insert-file.
-
-2004-12-16  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-comb.el (var-RandSeed): Don't initially bind it.
-	(math-init-random-base, math-random-digit): Check to see if
-	var-RandSeed is bound.
-	(math-random-last): Declare it.
-	(math-random-digit): Don't make math-random-last local.
-
-2004-12-16  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* play/zone.el (zone): Fix omission bug: Use a self-disabling
-	one-shot thunk for uniform (error, quit, normal) recovery.
-	Reported by John Paul Wallington.
-	(zone-pgm-random-life): Fix bug:
-	Recognize empty initial field by lack of "@" chars.
-
-2004-12-16  Juri Linkov  <juri@jurta.org>
-
-	* help.el (function-called-at-point):
-	* help-fns.el (variable-at-point): As a last resort try stripping
-	non-word prefixes and suffixes.
-
-	* descr-text.el (describe-property-list): Don't treat syntax-table
-	specially.  Use describe-text-sexp which inserts [show] button
-	for large objects and handles printing errors.  Sort properties
-	by names in alphabetical order instead of by value sizes.
-	Add `mouse-face' to list of properties for `describe-face' widget.
-	(describe-char): Mask out face-id from 19 bits of character.
-	Print face-id separately.
-
-	* replace.el (occur-accumulate-lines, occur-engine):
-	Fontify unfontified matching lines in the source buffer
-	before copying them.
-	(occur-engine): Don't put mouse-face on context lines.
-	(occur-next-error): Set point to line beginning/end
-	before searching for prev/next property to skip multiple
-	matches on a line (not supported by occur engine).
-	Remove redundant prefix-numeric-value.
-
-2004-12-15  Juri Linkov  <juri@jurta.org>
-
-	* replace.el (match): New face.
-	(list-matching-lines-face): Change default from `bold' to `match'.
-
-	* progmodes/grep.el (grep-match-face): New defvar.
-	(grep-mode-font-lock-keywords): Use grep-match-face instead of
-	compilation-column-face to highlight grep matches.
-
-	* apropos.el (apropos-match-face): Change default from
-	`secondary-selection' to `match'.
-
-	* info-look.el (info-lookup-highlight-face): Change default from
-	`highlight' to `match'.
-
-2004-12-15  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/executable.el (executable-interpret): Eliminate
-	obsolete compile-internal, and switch to comint for interaction.
-
-2004-12-15  J.D. Smith  <jdsmith@as.arizona.edu>
-
-	* progmodes/idlwave.el (idlwave-skip-multi-commands): Don't match
-	`&&' when skipping multiple statements on a line.
-
-2004-12-15  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* play/zone.el (zone): Set `truncate-lines'.
-	Also, init `tab-width' with value from original buffer.
-	(zone-shift-up): Rewrite for speed.
-	(zone-shift-down, zone-shift-left, zone-shift-right): Likewise.
-	(zone-pgm-jitter): Remove redundant entries from ops vector.
-	(zone-exploding-remove): Reduce iteration count.
-	(zone-cpos): Convert to defsubst.
-	(zone-replace-char): New defsubst.
-	(zone-park/sit-for): Likewise.
-	(zone-fret): Take window-start arg.
-	Update callers.  Use `zone-park/sit-for'.
-	(zone-fill-out-screen): Rewrite.
-	(zone-fall-through-ws): Likewise.  Update callers.
-	(zone-pgm-drip): Use `zone-replace-char'.
-	Move var inits before while-loop.  Use `zone-park/sit-for'.
-	(zone-pgm-random-life): Handle empty initial field.
-	Use `zone-replace-char' and `zone-park/sit-for'.
-
-2004-12-15  Juri Linkov  <juri@jurta.org>
-
-	* isearch.el (isearch-update): Test isearch-lazy-highlight
-	before calling isearch-lazy-highlight-new-loop.
-	(isearch-lazy-highlight-new-loop):
-	Don't test isearch-lazy-highlight.
-
-	* replace.el (perform-replace): Add isearch-case-fold-search.
-	Use delimited-flag for isearch-regexp.
-	Reset isearch-lazy-highlight-last-string to force lazy
-	highlighting when called from isearch mode.
-	(query-replace-highlight): Revert defcustom type to boolean.
-	(query-replace-lazy-highlight): New defcustom.
-	(query-replace): New face.
-	(perform-replace, replace-highlight, replace-dehighlight):
-	Test query-replace-lazy-highlight instead of special value
-	`isearch' of query-replace-highlight.
-	(replace-dehighlight): Don't call isearch-dehighlight.
-	(replace-highlight): Don't call isearch-highlight.
-	Use face `query-replace' unconditionally.
-
-2004-12-14  Kim F. Storm  <storm@cua.dk>
-
-	* simple.el (inhibit-mark-movement): Remove defvar.
-	(beginning-of-buffer, end-of-buffer): Don't use it.
-
-	* emacs-lisp/lisp.el (beginning-of-defun, end-of-defun):
-	Don't use inhibit-mark-movement.
-
-	* emulation/cua-base.el (cua--preserve-mark-commands): Remove.
-	(cua--undo-push-mark): Remove.
-	(cua--pre-command-handler, cua--post-command-handler):
-	Don't fiddle with inhibit-mark-movement.
-
-2004-12-14  Juri Linkov  <juri@jurta.org>
-
-	* buff-menu.el (list-buffers-noselect): Collect internal info
-	for every buffer in BUFFER-LIST arg too.
-	(Buffer-menu-switch-other-window): Bind pop-up-windows to t.
-	(Buffer-menu-switch-other-window, Buffer-menu-2-window):
-	Bind same-window-buffer-names and same-window-regexps to nil.
-
-2004-12-13  Juri Linkov  <juri@jurta.org>
-
-	* simple.el (next-error-buffer-p, next-error-find-buffer): Doc fix.
-
-	* mail/supercite.el (sc-cite-frame-alist): Doc fix.
-	(sc-cite-region, sc-uncite-region, sc-recite-region):
-	Fix previous change to handle not alist as a symbol, but
-	a citation frame as a symbol that represents a variable name.
-
-2004-12-13  Richard M. Stallman  <rms@gnu.org>
-
-	* filecache.el (file-cache-add-directory-using-find):
-	Only set up file-cache-find-command-posix-flag if we will use it.
-
-	* bindings.el (mode-line-buffer-identification-keymap):
-	Don't cancel the mode-line's usual down-mouse-1 binding.
-
-	* cus-edit.el (custom-face-selected): Handle `default' specs.
-	(custom-face-edit): Increase extra-offset.
-	(custom-display): Handle `default' specs.
-
-	* xml.el (xml-name-re, xml-entity-value-re): Add defvars.
-
-	* emacs-lisp/elint.el (elint-standard-variables)
-	(elint-unknown-builtin-args): Move definitions up.
-
-	* net/browse-url.el (browse-url-url-at-point): Add autoload.
-
-	* info.el (info-xref-visited): Use `default' instead of t.
-	(Info-try-follow-nearest-node): Don't explicitly load browse-url.
-
-	* faces.el (header-line, mode-line-inactive, tool-bar):
-	Use `default' instead of t for setting the defaults.
-	(face-spec-choose): Separate `t' from `default'.
-
-	* subr.el (while-no-input): New macro.
-
-2004-12-13  Frederik Fouvry  <fouvry@CoLi.Uni-SB.DE>  (tiny change)
-
-	* filecache.el (file-cache-add-directory-using-find):
-	Only test file-cache-find-command-posix-flag on some systems.
-
-2004-12-13  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-svn.el (vc-svn-repository-hostname): Adjust to new format.
-	Reported by Ville Skytt,Ad(B <scop@xemacs.org>.
-	(vc-svn-annotate-current-time, vc-svn-annotate-time-of-rev)
-	(vc-svn-annotate-time, vc-svn-annotate-extract-revision-at-line)
-	(vc-svn-annotate-command, vc-svn-annotate-re): Support for svn
-	annotate.
-
-2004-12-12  Juri Linkov  <juri@jurta.org>
-
-	* files.el (find-file-other-window, find-file-other-frame):
-	Add the first buffer to the returned value to return the complete
-	list of all visited buffers.
-	(find-file-read-only, find-file-read-only-other-window)
-	(find-file-read-only-other-frame): Use nil for `mustmatch' arg of
-	`find-file-read-args'.  Signal an error about non-existent file
-	only if file name doesn't contain wildcards.  Toggle read-only in
-	all visited buffers.
-	(find-alternate-file, find-alternate-file-other-window):
-	Add optional arg `wildcards'.  Doc fix.  Set `wildcards' to t when
-	called interactively.  Pass arg `wildcards' to other functions.
-	(find-file-noselect): Doc fix.
-
-	* ffap.el (ffap-dired-wildcards): Set default to "[*?][^/]*\\'".
-	Doc fix.
-	(ffap-directory-finder): New variable.
-	(ffap-string-at-point-mode-alist): Add * and ? to `file'.
-	(ffap-file-at-point): Add /* to immediately rejected names.
-	Return absolute file names matching ffap-dired-wildcards.
-	(ffap-read-file-or-url): Set default value for `completing-read'
-	to `buffer-file-name'.
-	(find-file-at-point): When filename matches ffap-dired-wildcards,
-	call ffap-file-finder with t arg `wildcards', instead of dired.
-	(ffap-other-window, ffap-other-frame): Return visited buffers.
-	(ffap-read-only, ffap-read-only-other-window)
-	(ffap-read-only-other-frame, ffap-alternate-file): New commands.
-	(dired-at-point): Call ffap-directory-finder instead of dired.
-	(ffap-dired-other-window, ffap-dired-other-frame)
-	(ffap-list-directory): New commands.
-	(ffap-bindings): New keybindings for new commands.
-
-2004-12-12  Juri Linkov  <juri@jurta.org>
-
-	* simple.el (beginning-of-buffer, end-of-buffer):
-	* emacs-lisp/lisp.el (beginning-of-defun, end-of-defun):
-	Do not push mark when mark is active in transient-mark-mode.
-
-	* simple.el (mark-word):
-	* emacs-lisp/lisp.el (mark-sexp, mark-defun):
-	* textmodes/paragraphs.el (mark-paragraph):
-	Extend the region when mark is active in transient-mark-mode,
-	regardless of the last command.  Doc fix.
-
-	* simple.el (mark-word): Preserve direction when repeating.
-	Make arg optional.  Interactive "p" -> "P".
-	(transient-mark-mode, inhibit-mark-movement): Doc fix.
-
-	* emacs-lisp/lisp.el (mark-sexp): Reverse the condition for
-	preserving direction, to mark forward instead of backward when mark
-	is equal to point (e.g. when C-SPC C-M-SPC is typed in t-m-m).
-
-2004-12-12  Juri Linkov  <juri@jurta.org>
-
-	* isearch.el (isearch-edit-string): Set 7th arg of
-	`read-from-minibuffer' to `t' to inherit the current input
-	method (whose name is indicated by [IM] in the minibuffer prompt)
-	from the current buffer to the minibuffer.
-	(isearch-lazy-highlight-update): Put body to `with-local-quit'
-	to allow C-g quitting for lazy highlighting looping inside the
-	search with nested repetition operators.  Add overlay to the list
-	before setting its face and other properties to avoid the case of
-	code quitting after placing the new overlay but before it's
-	recorded on the list.  Select the window where isearch was
-	activated, to highlight matches in the right window when isearch
-	switches the current window to the minibuffer.
-
-	* international/isearch-x.el
-	(isearch-process-search-multibyte-characters):
-	Use `isearch-message' as initial input for `read-string' instead
-	of adding it to the minibuffer prompt.  After reading a string
-	remove the initial value of `isearch-message' from the string.
-
-	* replace.el (replace-match-maybe-edit): Doc fix.
-	(perform-replace): Don't call `replace-highlight' when automatic
-	replacement is requested in literal mode, since it is intended
-	only to highlight words during entering a new replacement string
-	for \? in non-literal mode.
-
-	* replace.el (query-replace-highlight): Add new value `isearch'
-	that allows query replacement to use isearch highlighting.
-	Change type from `boolean' to `choice'.  Doc fix.
-	(replace-highlight, replace-dehighlight, perform-replace):
-	Use isearch highlighting if query-replace-highlight eq `isearch'.
-
-2004-12-11  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/checkdoc.el (checkdoc-continue, checkdoc-comments)
-	(checkdoc-message-text, checkdoc-defun): Fix format messages for
-	`error'.
-
-	* textmodes/tex-mode.el (latex-backward-sexp-1): Handle the special
-	case of \end{verbatim}.
-
-2004-12-11  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* term.el (term-termcap-format): Synchronize with terminfo.
-	(term-emulate-terminal): Handle reset.
-	(term-reset-terminal): New function.
-
-2004-12-11  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* play/zone.el (zone-programs): Add `zone-pgm-random-life'.
-	(zone-fill-out-screen): New func.
-	(zone-pgm-drip): Use `zone-fill-out-screen'.
-	Also, no longer go to point-min on every cycle.
-	(zone-pgm-paragraph-spaz): Allow spazzing for texinfo-mode.
-	(zone-pgm-random-life-wait): New user var.
-	(zone-pgm-random-life): New func.
-
-2004-12-10  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* files.el (auto-mode-alist): Map .com to DCL mode.
-
-2004-12-09  Richard M. Stallman  <rms@gnu.org>
-
-	* isearch.el (isearch-mode-map): Treat S-SPC like SPC.
-
-2004-12-09  Nick Roberts  <nickrob@snap.net.nz>
-
-	* xt-mouse.el (xterm-mouse-event): Correct cursor position in a
-	buffer with a display margin.
-
-2004-12-08  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-keypd.el (calc-keypad-mode): Unbind unused mouse events.
-	(calc-keypad-left-click): Set buffer to calc-keymap-buffer.
-
-2004-12-08  Richard M. Stallman  <rms@gnu.org>
-
-	* faces.el: Delete code to set display table.
-	(escape-glyph): Redefine to be less loud.  (Copy minibuffer-prompt.)
-
-2004-12-08  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc.el: Add math-read-preprocess-string to autoloads.
-
-	* calc/calc-ext.el (math-read-replacement-list)
-	(math-read-superscripts, math-read-preprocess-string): Move to
-	calc-aent.el.
-
-	* calc/calc-aent.el (math-read-replacement-list)
-	(math-read-superscripts, math-read-preprocess-string): Move from
-	calc-ext.el.
-
-2004-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* isearch.el (isearch-quote-char): Fix up typo in last change.
-
-2004-12-07  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* mouse.el (mouse-set-font): Handle the case where the command was
-	not invoked using the mouse.
-
-	* edmacro.el: `edit-kbd-macro' is now bound to `C-x C-k e'.
-	(edmacro-finish-edit): Further update for keyboard macros that are
-	lambda forms.
-	(edmacro-sanitize-for-string): Correctly remove Meta modifier.
-
-2004-12-07  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* font-lock.el (font-lock-unfontify-region): Save buffer state.
-	(font-lock-default-unfontify-region): Don't save buffer state any more.
-
-2004-12-07  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-help.el (calc-describe-key):
-	Set calc-summary-indentation even when Calc Summary buffer exists.
-
-2004-12-07  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/holidays.el (holiday-easter-etc): Make arguments
-	optional for backwards compatibility.  Doc fix.
-	Remove un-necessary local vars mandatory, output-list.
-	(holiday-advent): Make arguments optional for backwards
-	compatibility.  Doc fix.
-
-2004-12-06  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* paren.el (show-paren-function): Fix last change (2004-12-02).
-
-	* international/mule-util.el (char-displayable-p): Return nil for
-	unibyte mode.
-
-	* subr.el (subregexp-context-p): New function.
-
-	* isearch.el (isearch-quote-char): Use it.
-
-	* emacs-lisp/regexp-opt.el (regexp-opt-depth): Use it.
-	(regexp-opt-not-groupie*-re): Remove.
-	(regexp-opt): Properly handle inputs with duplicate entries.
-
-2004-12-06  Richard M. Stallman  <rms@gnu.org>
-
-	* info-look.el (info-lookup-maybe-add-help cfengine-mode): Regexp typo.
-
-	* cus-edit.el (custom-file): Doc fix.
-
-	* textmodes/org.el: New file.
-
-2004-12-06  Kenichi Handa  <handa@m17n.org>
-
-	* ldefs-boot.el: Update international/mule-util.el section.
-
-2004-12-05  Sam Steingold  <sds@gnu.org>
-
-	* net/tramp.el (tramp-handle-file-accessible-directory-p):
-	Fix `tramp-time-diff' comparison logic.
-
-2004-12-05  Paul Pogonyshev  <pogonyshev@gmx.net>
-
-	* progmodes/which-func.el (which-function):
-	Use `run-hook-with-args-until-success' instead of a custom loop.
-	Fixes bug with local hooks.
-
-2004-12-05  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
-
-	* textmodes/bibtex.el (bibtex-font-lock-url-regexp):
-	Use delete-dups when calculating the initial value.
-	(bibtex-autokey-get-title): Use <=.
-	(bibtex-goto-line): New function.
-	(bibtex-reposition-window): Use line numbers instead of point
-	positions.  Use window-body-height.
-	(bibtex-find-crossref): Use bibtex-reposition-window.
-	(bibtex-find-entry): Use bibtex-reposition-window.  Always return
-	position of entry if key is found or nil if not found.
-
-2004-12-05  Richard M. Stallman  <rms@gnu.org>
-
-	* cus-edit.el (custom-file): Doc fix.
-
-	* progmodes/sh-script.el (sh-indent-for-then): Change default.
-
-2004-12-03  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* simple.el (blink-matching-open):
-	* textmodes/tex-mode.el (tex-validate-region):
-	Obey syntax-table text properties.
-
-2004-12-02  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* wid-edit.el (widget-specify-field): Add `real-field' property to
-	boundary.
-	(widget-field-at): Use it.
-
-2004-12-02  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/cc-mode.el (awk-mode autoload):
-	Supply t meaning interactive function.
-
-	* isearch.el (search-whitespace-regexp): Remove the group.  Doc fix.
-	(isearch-mode-map): No special definition for space.
-	(isearch-whitespace-chars): Command deleted.
-	(isearch-forward-regexp): Doc fix.
-	(isearch-quote-char): When a space is not inside brackets,
-	use `[ ]' instead of just space.
-	(isearch-lazy-highlight-search): Bind search-spaces-regexp.
-
-	* imenu.el (imenu--generic-function): Delete code to exclude
-	matches in comments.
-
-	* man.el (Man-reverse-face): Change default to `highlight'.
-
-	* replace.el (occur-1): Specify t for KEEP-PROPS to occur-engine.
-	(occur-engine): Use `face' prop rather than `font-lock-face'
-	when specifying use of `match-face'.
-	(occur-accumulate-lines): Change arg from NO-PROPS to KEEP-PROPS.
-
-	* emacs-lisp/elint.el (elint-standard-variables): Update list.
-
-	* add-log.el (add-log-current-defun): Handle the case where point
-	is in the header part of a DEFUN construct.
-
-2004-12-02  Dave Love  <fx@gnu.org>
-
-	* progmodes/python.el (python-font-lock-syntactic-keywords):
-	Fix previous change.
-
-2004-12-02  Richard G Bielawski  <Richard.G.Bielawski@wellsfargo.com>  (tiny change)
-
-	* paren.el (show-paren-function): Check for matching chars
-	specified by text props.
-
-2004-12-02  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc.el (calc-read-key-sequence): Leave the old message visible
-	when reading a new key sequence.
-
-2004-12-02  Kim F. Storm  <storm@cua.dk>
-
-	* faces.el (escape-glyph): Rename from glyph.
-	(standard-display-table): Set it here.  Add escape-glyph face to
-	extra slot characters.
-
-	* disp-table.el: Undo 2004-12-01 change.  Display table is now
-	setup in faces.el.
-
-2004-12-02  Mark A. Hershberger  <mah@everybody.org>
-
-	* xml.el (xml-parse-dtd): Don't show validity messages when
-	xml-validating-parser is nil.
-	(xml-substitute-special): Fix validity error messages to
-	actually show the unexpandable entity.  Added validity error if &
-	isn't followed by an entity.
-	(xml-parse-tag): Concatenate any string following the a
-	<![CDATA[]]> section to the parsed CDATA.
-	(xml-parse-dtd): Skip parameter entity declarations and use of
-	parameter entities.
-
-2004-12-01  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* kmacro.el (kmacro-default-counter-format): New var.
-	(kmacro-set-format): Use it.  Delete `(printf format)' from prompt.
-	(kmacro-display): Remove `nil' from `and' form.  Delete call to
-	`format' inside `message'.
-	(kmacro-start-macro): Use `kmacro-default-counter-format'.
-
-2004-12-01  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* pcvs.el (cvs-header-msg): New function.
-	(cvs-update-header): Use it.  Change calling convention.
-	Correctly handle the case of having simultaneous active processes.
-	(cvs-sentinel): Don't call cvs-update-header any more.
-	(cvs-mode-run): Update call and add cvs-update-header to postproc.
-
-2004-12-01  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-ext.el (calc-inverse, calc-hyperbolic):
-	Change message.
-
-2004-12-01  Juri Linkov  <juri@jurta.org>
-
-	* progmodes/prolog.el (prolog-mode-variables):
-	Fix imenu-generic-expression.
-
-2004-12-01  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* faces.el (glyph): New face.
-
-	* disp-table.el: Add an autoloaded table, that doesn't require
-	this library, with glyph face.
-
-	* textmodes/conf-mode.el (conf-ppd-mode-syntax-table): New var.
-	(conf-ppd-mode): New conf-mode wrapper for printer descriptions.
-	(conf-quote-normal): Allow normalizing only ' or ".
-	(conf-mode): Regexp-quote constructed comment-start and don't
-	match section {} where "name" contains braces.
-
-	* files.el (auto-mode-alist): Add conf-ppd-mode, inittab and acpid
-	files.
-
-2004-12-01  Kenichi Handa  <handa@m17n.org>
-
-	* term/x-win.el (x-last-selected-text-cut-encoded): New variable.
-	(x-select-text): Don't treat eight-bit-control/graphic chars
-	specially.  Store the encoded text in the X cut buffer.
-	(x-cut-buffer-or-selection-value): Compare the X cut buffer text
-	with x-last-selected-text-cut-encoded.
-
-2004-11-30  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* man.el (Man-fontify-manpage): Improve handling of ANSI escapes.
-
-2004-11-30  Markus Rost  <rost@ias.edu>
-
-	* textmodes/tex-mode.el (tex-main-file): Add a compatibility with
-	AUCTeX.
-
-2004-11-30  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-arith.el (math-possible-signs): Made stronger checks
-	on signs of intervals.
-	(math-pow-of-zero): Strengthen checks for positive and negative
-	exponents.
-
-	* calc/calc-aent.el, calc/calc-alg.el, calc/calc-arith.el
-	* calc/calc-bin.el, calc/calc-comb.el, calc/calc-cplx.el
-	* calc/calc-embed.el, calc/calc-fin.el, calc/calc-forms.el
-	* calc/calc-frac.el, calc/calc-funcs.el, calc/calc-graph.el
-	* calc/calc-help.el, calc/calc-incom.el, calc/calc-keypd.el
-	* calc/calc-lang.el, calc/calc-map.el, calc/calc-math.el
-	* calc/calc-misc.el, calc/calc-mode.el, calc/calc-mtx.el
-	* calc/calc-poly.el, calc/calc-prog.el, calc/calc-rewr.el
-	* calc/calc-rules.el, calc/calc-sel.el, calc/calc-stat.el
-	* calc/calc-store.el, calc/calc-stuff.el, calc/calc-trail.el
-	* calc/calc-undo.el, calc/calc-units.el, calc/calc-vec.el
-	* calc/calc-yank.el, calc/calcalg2.el, calc/calcalg3.el
-	* calc/calccomp.el, calc/calcsel2.el: Replace dummy autoloaded
-	functions with provide statements.
-
-	* calc/calc-alg.el (math-defsimplify): Move from calc-ext.el.
-
-	* calc/calc-embed.el (calc-do-embedded-activate): Remove from
-	autoloads.
-
-	* calc/calc-ext.el: Remove dummy autoloading functions from autoloads.
-	(calc-load-everything, math-defsimplify): Replace dummy autoloading
-	functions by require statements.
-	(math-defsimplify): Move to calc-alg.el, add to autoloads.
-
-	* calc/calc-graph.el (calc-gnuplot-name, calc-gnuplot-plot-command)
-	(calc-gnuplot-print): Give them values.
-
-	* calc/calc.el: Remove calc-Need-calc-aent and calc-Need-calc-misc from
-	autoloads.
-	Add calc-do-embedded-activate to autoloads.
-	(calc-gnuplot-name, calc-gnuplot-plot-command)
-	(calc-gnuplot-print-command): Move them to calc-graph.el.
-
-2004-11-30  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
-
-	* term/mac-win.el (ccl-encode-mac-roman-font)
-	(ccl-encode-mac-cyrillic-font)
-	(ccl-encode-mac-centraleuropean-font, encoder-list)
-	(fontset-add-mac-fonts, create-fontset-from-mac-roman-font):
-	Support Cyrillic, CentralEuropean, and Dingbat font display
-
-2004-11-30  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc-hooks.el (vc-recompute-state): Move here from vc.el.
-
-	* vc-cvs.el (vc-cvs-state): Handle the case where vc-state is
-	still nil.
-
-2004-11-29  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* emulation/tpu-edt.el (tpu-help-keypad-map, tpu-help-text)
-	(tpu-word-separator-list, tpu-skip-chars): defconst->defvar.
-
-2004-11-29  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-arith.el (math-pow-of-zero): Take into account different
-	cases of the base and exponent.
-
-2004-11-26  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* simple.el (next-error-buffer-p): Allow for inclusive and
-	exclusive tests for finding a buffer.
-	(next-error-find-buffer): Pass the exclusive and inclusive tests
-	to next-error-buffer-p.
-
-	* replace.el (occur-next-error): Switch to the Occur buffer when
-	appropriate, use the exclusive filter to next-error-find-buffer to
-	do it.  Use the absolute value of the motion amount.
-
-2004-11-29  Kenichi Handa  <handa@m17n.org>
-
-	* startup.el (command-line): Decode all default-directory by
-	locale-coding-system.
-
-2004-11-29  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-aent.el: Remove unnecessary eval-when-compile.
-	(calc-do-quick-calc, calc-do-calc-eval, calc-alg-entry)
-	(math-read-expr-level, calc-check-user-syntax, math-read-factor):
-	Replace calls to calc-extensions by appropriate require, replace
-	calc-extensions-loaded by appropriate featurep.
-
-	* calc/calc-ext.el: Move require to end of file.  Remove redundant
-	loading of calc.el.
-	(calc-extensions-loaded): Remove unnecessary variable.
-	(calc-extensions): Remove unnecessary function.
-	(calc-load-everything): Replace calc-need-macros by appropriate
-	require.
-
-	* calc/calc-macs.el: Move provide to end of file.
-	(calc-need-macros): Remove unnecessary function.
-
-	* calc/calc-misc.el (calc-do-handle-whys, calc-last-args-stub)
-	(calc-missing-key, calc-shift-Y-prefix-help, math-concat)
-	(math-trunc, math-floor, calcFunc-inv, math-mod, math-pow):
-	Replace calc-extensions by appropriate require.
-	(calc-power): Replace calc-extensions-loaded by appropriate featurep.
-
-	* calc/calc-prog.el (calc-user-define-formula, calc-do-defmath):
-	Replace calc-need-macros by appropriate require.
-
-	* calc/calc.el: Move require to end of file.
-	(calc-info-filename, calc-autoload-directory, calc-extensions-loaded):
-	Remove unnecessary variable.
-	(calc-do-dispatch, calc-mode, calc-check-defines, calc-create-buffer)
-	(calc, calc-keypad, full-calc-keypad, calc-do, calc-normalize)
-	(calc-binary-op, calc-unary-op, calcDigit-start, calcDigit-key)
-	(math-normalize, math-add, math-mul, math-div, math-format-stack-value)
-	(math-stack-value-offset, math-format-value, math-format-flat-expr)
-	(math-format-number, math-format-bignum, math-read-number)
-	(calc-grab-region, calc-grab-rectangle, calc-grab-sum-down)
-	(calc-grab-sum-across, calc-embedded, defmath): Replace calc-extensions
-	by appropriate require.
-	(calc-check-defines): Replace calc-need-macros by appropriate require.
-
-2004-11-29  Kim F. Storm  <storm@cua.dk>
-
-	* macros.el (insert-kbd-macro): Handle kmacro functions.
-
-2004-11-28  Juri Linkov  <juri@jurta.org>
-
-	* compare-w.el (compare-windows-highlight): Attach each overlay
-	to its window to properly highlight differences while comparing
-	two windows of the same buffer.  Fix arguments.
-	(compare-windows-sync-default-function): Fix arguments of
-	`compare-windows-highlight'.
-
-	* emacs-lisp/edebug.el (edebug-set-global-break-condition):
-	Use `read-expression-history'.  Set initial contents only if
-	`edebug-global-break-condition' is non-nil.  Set histpos to 1
-	if initial contents is equal to the last history element.
-	(edebug-set-conditional-breakpoint): Instead of temporarily
-	prepending the current condition to the history, set initial
-	contents to the current condition.  Set histpos to 1 if initial
-	contents is equal to the last history element.
-
-	* info.el (Info-search-whitespace-regexp): Remove shy group.
-	(Info-search): Forward line if search is on the header line.
-	Use search-whitespace-regexp in two other places.
-
-2004-11-27  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* fringe.el (fringe-indicators): Add fake defvar to avoid compiler
-	warning.  Delay real definition, which uses
-	`set-fringe-indicators-1' till after the definition of that function.
-
-2004-11-28  Kim F. Storm  <storm@cua.dk>
-
-	* fringe.el (fringe): New defgroup.
-	(fringe-mode): Move to fringe group.
-	(fringe-indicators): New defcustom.
-	(set-fringe-indicators-1): New defun.
-
-	* menu-bar.el (menu-bar-options-save): Add fringe-indicators.
-	(menu-bar-showhide-fringe-ind-menu): New keymap.
-	(menu-bar-showhide-fringe-ind-empty)
-	(menu-bar-showhide-fringe-ind-mixed)
-	(menu-bar-showhide-fringe-ind-box)
-	(menu-bar-showhide-fringe-ind-right)
-	(menu-bar-showhide-fringe-ind-left)
-	(menu-bar-showhide-fringe-ind-none): New defuns.
-	(menu-bar-showhide-fringe-menu): Add "Indicators" sub-menu.
-
-2004-11-27  Richard M. Stallman  <rms@gnu.org>
-
-	* comint.el (comint-read-noecho): Add trivial compatibility definition.
-
-	* generic.el (define-generic-mode): Doc fix.
-
-	* menu-bar.el (menu-bar-options-save): For the options
-	that are toggled with menu-bar-make-mm-toggle, don't check
-	for customized-value prop.
-
-2004-11-27  Eli Zaretskii  <eliz@gnu.org>
-
-	* mail/supercite.el (sc-cite-region): Handle the case where
-	sc-cite-frame-alist is a symbol.
-	(sc-uncite-region): Handle the case where sc-uncite-frame-alist is
-	a symbol.
-	(sc-recite-region): Handle the case where sc-recite-frame-alist is
-	a symbol.
-
-2004-11-27  Arne J,Ax(Brgensen  <arne@arnested.dk>  (tiny change)
-
-	* wid-edit.el (widget-narrow-to-field): New function.
-	(widget-complete): Use it.
-
-2004-11-27  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-aent.el (calc-eval-error): Declare and initialize the
-	variable.
-	(calc-eval-error): Don't check if the variable calc-eval-error is
-	bound.
-	(calc-buffer, calc-digit-value, math-expr-data): Declare them.
-	(math-alg-inequalities): Move declaration to earlier in the file.
-
-	* calc/calc-ext.el (calc-command-flags, calc-gnuplot-buffer)
-	(calc-gnuplot-input, math-normalize-a, math-integral-cache):
-	Declare them.
-
-	* calc/calc-lang.el (math-expr-data, math-expr-token)
-	(math-exp-old-pos): Declare them.
-
-	* calc/calc-vec.el (math-exp-pos, math-exp-str, math-exp-old-pos)
-	(math-exp-token, math-exp-keep-spaces, math-expr-data):	Declare them.
-
-2004-11-27  Kim F. Storm  <storm@cua.dk>
-
-	* progmodes/flymake.el: Use (featurep 'xemacs).
-	(flymake-makehash): Change to defsubst.  Use fboundp.
-	(flymake-time-to-float): Remove.
-	(flymake-float-time): Merge code from flymake-time-to-float here.
-	(flymake-replace-regexp-in-string): Change to defsubst.
-	(flymake-split-string-remove-empty-edges):
-	Rename to flymake-split-string.
-	(flymake-split-string): Remove previous defalias.
-	(flymake-get-temp-dir): Change to defsubst.
-	(flymake-make-xemacs-menu, flymake-xemacs-window-edges):
-	Define for xemacs only.
-	(flymake-master-file-count-limit): Change into compiler defvar only.
-	(flymake-find-possible-master-files): Let-bind it dynamically while
-	sorting files using flymake-master-file-compare.
-
-2004-11-26  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* font-lock.el (font-lock-compile-keywords): Don't complain if the end
-	of defun-prompt-regexp matches inside a comment/string but the
-	beginning is correctly outside everything.
-
-	* progmodes/tcl.el (tcl-omit-ws-regexp): Avoid the case where { or [
-	appears within a string or a comment.
-
-	* emacs-lisp/cl-macs.el (cl-parse-loop-clause, labels): Use gensym
-	rather than make-symbol for symbols which are used in
-	a symbol-macrolet or equivalent.
-
-2004-11-26  Jay Belanger  <belanger@truman.edu>
-
-	* calc-misc.el (calc-last-why-command): Declare it.
-
-	* calc-vec.el (math-grade-vec): New variable.
-	(calcFunc-grade, calcFunc-rgrade, math-grade-beforep):
-	Replace variable grade-vec by declared variable.
-	(math-rb-close): New variable.
-	(math-read-brackets, math-read-vector): Replace variable close by
-	declared variable.
-
-	* calc/calc-yank.el (calc-original-buffer, calc-return-buffer)
-	(calc-one-window, calc-edit-handler, calc-restore-trail)
-	(calc-allow-ret): Declare them.
-
-	* calc/calc-stuff.el (calc-flush-caches): Remove unnecessary variables.
-	(math-lud-cache, math-log2-cache, math-radix-digits-cache)
-	(math-radix-float-cache-tag, math-random-cache)
-	(math-max-digits-cache, math-integral-cache, math-units-table)
-	(math-format-date-cache, math-holidays-cache-tag): Declare them.
-	(math-moc-func): New variable.
-	(math-map-over-constants, math-map-over-constants-rec):
-	Replace variable func by declared variable.
-
-	* calc/calc-store.el (calc-given-value, calc-store-opers):
-	Declare them.
-	(calc-var-name-map): Move declaration to earlier in the file.
-	(calc-pv-pos): New variable.
-	(calc-permanent-variable, calc-insert-permanent-variable):
-	Replace variable pos by declared variable.
-
-	* calc/calc-mtx.el (calc-det-lu): New variable.
-	(math-det-raw, math-det-step): Replace variable lu by declared
-	variable.
-
-	* calc/calc-map.el (math-ms-temp, math-ms-args): New variables.
-	(math-multi-subst, math-multi-subst-rec): Replace variables temp
-	and arg by declared variables.
-	(calcFunc-reducer): Fix incorrect variable.
-	(math-inner-mul-func, math-inner-add-func): New variables.
-	(calcFunc-inner, math-inner-mats): Replace variables mul-func
-	and add-func by declared variables.
-
-	* calc/calc-incom.el (calc-prev-char, calc-prev-prev-char)
-	(calc-digit-value): Declare them.
-
-	* calc/calc-help.el (Info-history): Declare it.
-	(calc-describe-key): Make calc-summary-indentation a local variable.
-	(calc-help-long-names): Move declaration to earlier in file.
-
-	* calc/calc-embed.el (calc-original-buffer): Declare it.
-	(calc-embed-outer-top, calc-embed-outer-bot, calc-embed-top)
-	(calc-embed-bot): New variables.
-	(calc-do-embedded, calc-embedded-mark-formula)
-	(calc-embedded-find-bounds, calc-embedded-duplicate)
-	(calc-embedded-new-formula, calc-embedded-make-info):
-	Replace vars outer-top, outer-bot, bot and top by declared variables.
-	(calc-embed-prev-modes): New variable.
-	(calc-embedded-set-modes, calc-embedded-update): Replace variable
-	prev-modes with declared variable.
-	(calc-embed-vars-used): New variable.
-	(calc-embedded-make-info, calc-embedded-evaluate-expr)
-	(calc-embedded-update, calc-embedded-find-vars): Replace variable
-	vars-used by declared variable.
-
-	* calc/calc-bin.el (math-format-radix-float): Make pos a local
-	variable.
-	(math-format-radix-float): Remove unnecessary setq.
-	(math-radix-float-cache): Declare it.
-
-	* calc/calcsel2.el (calc-keep-selection): Declare it.
-
-	* calc/calc-maint.el: Remove file.
-
-2004-11-26  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
-
-	* textmodes/bibtex.el (bibtex-sort-entry-class)
-	(bibtex-comment-start): Use defcustom.
-	(bibtex-entry-field-alist): Use nil if initial content of the
-	field is undefined.  Fix docstring.
-	(bibtex-parse-keys-timeout, bibtex-autokey-additional-names)
-	(bibtex-generate-autokey, bibtex-parse-buffers-stealthily)
-	(bibtex-mode, bibtex-field-list, bibtex-entry-updat)
-	(bibtex-autofill-entry, bibtex-entry-index, bibtex-next-field):
-	Fix docstring.
-	(bibtex-autokey-title-terminators): Use only one regexp.
-	(bibtex-string-maybe-empty-head): New variable.
-	(bibtex-remove-delimiters-string): New function.
-	(bibtex-text-in-field-bounds, bibtex-text-in-string):
-	Use bibtex-remove-delimiters-string.
-	(bibtex-progress-message, bibtex-field-left-delimiter)
-	(bibtex-field-right-delimiter, bibtex-entry-left-delimiter)
-	(bibtex-entry-right-delimiter, bibtex-search-entry): Use eq.
-	(bibtex-insert-kill): Rename from `bibtex-insert-current-kill'.
-	Simplify.
-	(bibtex-format-entry): Use save-excursion for inherited booktitle.
-	Use eq and bibtex-remove-delimiters-string.  For end markers use
-	insertion type so that marker stays after inserted text.
-	(bibtex-autokey-get-names): Return empty string if name is missing.
-	(bibtex-autokey-demangle-name): Call bibtex-autokey-abbrev before
-	calling bibtex-autokey-name-case-convert.
-	(bibtex-autokey-demangle-title):
-	Call bibtex-autokey-titleword-case-convert.  Remove call to
-	bibtex-autokey-titleword-case-convert from bibtex-autokey-get-title.
-	(bibtex-global-key-alist, bibtex-read-string-key): New functions.
-	(bibtex-read-key): New optional arg global.
-	(bibtex-files-expand): New optional arg force.
-	(bibtex-complete-string-cleanup): Expansion of abbrev can be absent.
-	(bibtex-complete-crossref-cleanup): Rename from
-	bibtex-complete-key-cleanup.  Simplify code.
-	(bibtex-copy-summary-as-kill): Remove arg key.  Use looking-at.
-	Operate on current entry.
-	(bibtex-button): Add docstring.
-	(bibtex-entry): Simplify.
-	(bibtex-make-field): Replace optional arg called-by-yank with more
-	specific args move and interactive.
-	(bibtex-end-of-entry): Use forward-sexp.
-	(bibtex-find-entry-globally): Remove.
-	(bibtex-find-crossref): Allow for crossref key located in other buffer.
-	Bound to C-c C-x.
-	(bibtex-find-entry): New optional args global and display.
-	(bibtex-find-text): Fix docstring.  Remove arg as-if-interactive.
-	(bibtex-validate): Use arg force of bibtex-files-expand.
-	(bibtex-clean-entry): Bugfix, clean string entries properly.
-	Always keep point at beginning of entry.
-	(bibtex-complete): Bugfix.  Handle string entries properly.
-	Call cleanup functions only if needed.
-	(bibtex-String): Use bibtex-read-string-key.
-	(bibtex-url): Use bibtex-remove-delimiters-string.  Do not alter
-	case of replacement text.
-
-2004-11-26  Lars Hansen  <larsh@math.ku.dk>
-
-	* tramp.el (tramp-handle-directory-files-and-attributes): New function.
-	(tramp-perl-directory-files-and-attributes): New constant.
-	(tramp-file-name-handler-alist): Delete file-directory-files, add
-	directory-files-and-attributes.
-	(tramp-perl-file-attributes): Surround uid and gid by double
-	quotes.  Change parameter id-format from nonnumeric.
-	(tramp-convert-file-attributes): New function.
-	(tramp-handle-file-attributes): Use it.
-	(tramp-maybe-send-perl-script): New function.
-	(tramp-handle-file-attributes-with-perl): Use it.  Don't convert
-	file mode.  Change parameter id-format from nonnumeric.
-	(tramp-handle-file-attributes-with-ls): Change parameter id-format
-	from nonnumeric.
-	(tramp-post-connection): Don't send tramp-perl-file-attributes
-	script.  Reset connection property "perl-scripts".
-	(tramp-handle-insert-directory): Run real handler when ls-lisp is
-	in use.
-
-2004-11-26  Lars Hansen  <larsh@math.ku.dk>
-
-	* desktop.el (desktop-read): Replace mapcar with mapc.
-	(desktop-create-buffer): Replace mapcar with mapc.
-	Remove redundant piece of code.
-
-2004-11-27  Nick Roberts  <nickrob@snap.net.nz>
-
-	* progmodes/gud.el (gud-display-line): Use display-buffer
-	for GDB-UI as for GUD.
-
-	* progmodes/gdb-ui.el (gdb-view-source, gdb-selected-view):
-	Delete variables.
-	(gdb-ann3): Don't make GUD buffer dedicated.
-	(gdb-goto-breakpoint, gdb-display-buffer): Don't always dedicate.
-	(gdb-display-source-buffer): Delete function.
-	(gdb-view-source-function, gdb-view-assembler): Delete functions.
-	(menu): Delete menu bindings for viewing source/assembler.
-	(gdb-setup-windows, gdb-restore-windows):
-	Don't dedicate GUD.  No assembler now.
-	(gdb-reset): No need to undedicate source buffers now.
-	(gdb-source-info): No assembler now.
-
-2004-11-26  Nick Roberts  <nickrob@snap.net.nz>
-
-	* progmodes/gdb-ui.el (gdb-frame-parameters): Match height and
-	width to those for special frames.
-	(gdb-frame-breakpoints-buffer): Use gdb-frame-parameters.
-	Use display-buffer.
-	(gdb-frame-stack-buffer, gdb-frame-threads-buffer)
-	(gdb-frame-registers-buffer, gdb-frame-locals-buffer)
-	(gdb-frame-assembler-buffer): Rework like
-	gdb-frame-breakpoints-buffer.
-
-2004-11-25  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/flymake.el: Reindent.
-	(flymake-split-string):	Turn into defalias.
-	(flymake-fix-file-name): Rename from flymake-fix-path-name.
-	(flymake-ensure-ends-with-slash): Rename arg to FILENAME.
-	(flymake-get-common-file-prefix): Rename from ...path...  Doc fix.
-	(flymake-build-relative-filename): Rename from ...path.
-	Fix error message.
-
-2004-11-25  Cheng Gao  <chenggao@gmail.com>
-
-	* progmodes/flymake.el: Much whitespace and capitalization change.
-	Move `provide' to end.  Require `compile' only when compiling.
-
-2004-11-24  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-alg.el: Added comment.
-	(math-polynomial-base): Replace variable mpb-top-expr by
-	math-poly-base-top-expr.
-
-	* calc/calc-poly.el (math-poly-base-top-expr): New variable.
-	(math-polynomial-p1): Replace variable mpb-top-expr by declared
-	variable.
-	(math-poly-base-total-base): New variable.
-	(math-total-polynomial-base, math-polynomial-p1): Replace variable
-	mpb-total-base by declared variable.
-	(math-factored-vars, math-to-list): Declare it.
-	(math-fact-expr): New variable.
-	(calcFunc-factors, calcFunc-factor, math-factor-expr)
-	(math-factor-expr-try, math-factor-expr-part): Replace variable
-	expr by declared variable.
-	(math-fet-x): New variable.
-	(math-factor-expr-try, math-factor-poly-coefs): Replace variable x
-	by declared variable.
-	(math-factor-poly-coefs): Make temp a local variable.
-
-	* calc/calc-units.el (calc-convert-units): Make units a local
-	variable.
-	(calc-num-units, calc-den-units): New variables.
-	(calc-explain-units, calc-explain-units-rec): Replace variables
-	num-units and den-units by declared variables.
-	(math-cu-unit-list): New variable.
-	(math-build-units-table, math-compare-unit-names)
-	(math-convert-units, math-convert-units-rec): Replace variable
-	unit-list by declared variable.
-	(math-fbu-base, math-fbu-entry): New variables.
-	(math-find-base-units, math-find-base-units-rec): Replace variables
-	base and entry by declared variables.
-	(math-which-standard): New variable.
-	(math-to-standard-units, math-to-standard-rec): Replace variable
-	which-standard by declared variable.
-	(math-fcu-u): New variable.
-	(math-find-compatible-unit, math-find-compatible-unit-rec):
-	Replace variable u by declared variable.
-	(math-cu-new-units, math-cu-pure): New variables.
-	(math-convert-units, math-convert-units-rec): Replace variables
-	new-units and pure by declared variables.
-	(math-try-cancel-units): New variable.
-	(math-simplify-units-quotient): Replace variable try-cancel-units by
-	declared variable.
-
-2004-11-24  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/ispell.el (ispell-check-version):
-	If default-directory is nonexistent, use home dir.
-
-	* progmodes/grep.el (grep-regexp-alist):
-	Don't match parens around line numbers.
-
-	* progmodes/cperl-mode.el (cperl-indent-region)
-	(cperl-imenu--create-perl-index, cperl-xsub-scan):
-	Don't print progress messages.
-
-	* progmodes/compile.el (compilation-mode-map):
-	Don't inherit from compilation-minor-mode-map;
-	copy its bindings instead.  But the menu bar Compile
-	entry now does inherit from compilation-menu-map.
-
-	* emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
-	Use with-no-warnings around compiler-macroexpand.
-
-	* imenu.el: Don't always require newcomment.
-	(imenu--generic-function): Call comment-normalize-vars
-	if we have a comment syntax.
-	Exit the loop if REGEXP matches the null string.
-	Test comment-start as well as comment-start-skip
-	when deciding whether to check for comments.
-
-	* tooltip.el (tooltip-mode): Doc fix.
-
-	* term.el (term-escape-char, term-mode): Doc fixes.
-
-2004-11-24  Dave Love  <fx@gnu.org>
-
-	* progmodes/python.el (python-font-lock-syntactic-keywords):
-	Check for escapes in the regexp.
-	(python-quote-syntax): Don't do it here.
-
-2004-11-24  Nick Roberts  <nickrob@snap.net.nz>
-
-	* progmodes/gdb-ui.el (gdb-breakpoints-mode-map)
-	(gdb-frames-mode-map, gdb-threads-mode-map)
-	(gdb-registers-mode-map, gdb-locals-mode-map)
-	(gdb-assembler-mode-map): Bind "q" to kill-this-buffer.
-	(gdb-set-window-buffer): Rename from dedicated-switch-to-buffer.
-
-	Suggested by Stefan Monnier <monnier@iro.umontreal.ca>:
-	(dedicated-switch-to-buffer): Rework.
-	(gdb-var-evaluate-expression-handler, gdb-put-string):
-	Remove unused variable bindings.
-	(gdb-setup-windows, gdb-display-buffer):
-	Simplify.  Use pop-to-buffer.
-	(gdb-view-source-function): Simplify.
-	(gdb-frame-breakpoints-buffer):
-	Use pop-to-buffer, special-display-regexps.
-
-2004-11-24  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* progmodes/f90.el (f90-smart-end)
-	(f90-previous-statement, f90-beginning-of-block): Doc fix.
-	(f90-calculate-indent): Handle un-named PROGRAM blocks.
-	(f90-end-of-block): Doc fix.  Make check of outermost block
-	conditional on value of `f90-smart-end'.
-	(f90-block-match): Hack to deal with un-named PROGRAM blocks.
-	Handle case where END-BLOCK is nil.
-	(f90-match-end): Handle un-named PROGRAM blocks.
-	(f90-backslash-not-special): New function.
-
-2004-11-24  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc.el (calc-embedded-active): Removed unnecessary
-	declaration.
-	(calc-show-banner): Removed redundant declaration.
-
-	* calc/calc-graph.el (calc-gnuplot-default-device)
-	(calc-gnuplot-default-output, calc-gnuplot-print-device)
-	(calc-gnuplot-print-output, calc-gnuplot-geometry)
-	(calc-graph-default-resolution, calc-graph-default-resolution-3d):
-	Remove redundant initial values.
-
-	* calc/calc-arith.el (math-scalar-functions)
-	(math-nonscalar-functions, math-scalar-if-args-functions)
-	(math-real-functions, math-positive-functions)
-	(math-nonnegative-functions, math-real-scalar-functions)
-	(math-real-if-arg-functions, math-integer-functions)
-	(math-num-integer-functions, math-rounding-functions)
-	(math-float-rounding-functions, math-integer-if-args-functions)
-	(math-super-types): Move declarations to earlier in file.
-	(math-unit-prefixes): Declared it.
-	(math-floor-prec, math-trunc-prec): New variables.
-	(math-trunc-fancy): Replace variable prec by declared variable.
-	(math-floor-fancy): Replace variable prec by declared variable.
-	(math-com-bterms): New variable.
-	(math-commutative-equal, math-commutative-collect):
-	Replace variable bterms by declared variable.
-
-	* calc/calc-misc.el (math-trunc): Replace variable prec by
-	math-trunc-prec.
-	(math-floor): Replace variable prec by math-floor-prec.
-
-	* calc/calc-forms.el (math-fd-date, math-fd-dt, math-fd-year)
-	(math-fd-month, math-fd-day, math-fd-weekday, math-fd-hour)
-	(math-fd-minute, math-fd-second, math-fd-bc-flag): New variables.
-	(math-format-date, math-format-date-part): Replace variables
-	date, dt, year, month, day, weekday, hour, minute, second and
-	bc-flag by declared variables.
-	(math-pd-str): New variable.
-	(math-parse-date, math-parse-date-word, math-parse-standard-date):
-	Replace variable str by declared variable.
-	(math-daylight-savings-hook, math-tzone-names): Move definitions
-	to earlier in the file.
-	(var-TimeZone, math-exp-str, math-exp-pos): Declare them.
-	(math-sh-year): New variable.
-	(math-setup-add-holidays, math-setup-holidays)
-	(math-setup-year-holidays): Replace variable `year' by declared
-	variable.
-
-	* calc/calc-math.el (math-nrf-n, math-nrf-nf, math-nrf-nfm1):
-	New variables.
-	(math-nth-root-float, math-nth-root-float-iter): Replace variables
-	n, nf and nfm1 by declared variables.
-	(math-nri-n): New variable.
-	(math-nth-root-integer, math-nth-root-int-iter): Replace variable
-	n by declared variable.
-	(calcFunc-log): Removed misplaced condition.
-
-2004-11-24  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* generic.el (generic-mode-set-comments): Accept an empty comment-end.
-
-2004-11-24  Nick Roberts  <nickrob@snap.net.nz>
-
-	* progmodes/gdb-ui.el (dedicated-switch-to-buffer): New function.
-	(gdb-ann3, gdb-setup-windows, gdb-restore-windows):
-	Dedicate gdb-related windows.
-	(gdb-display-buffer): Dedicate gdb-related windows.
-	Don't grab other frames.
-	(gdb-reset): Remove dedicated property after debugging.
-
-2004-11-24  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-sel.el: Add comment.
-
-	* calc/calc.el (math-stack-value-offset): Replace variables c,
-	wid and off with math-svo-c, math-svo-wid and math-svo-off.
-
-	* calc/calccomp.el (math-comp-sel-tag): Declare it.
-	(math-svo-c, math-svo-wid, math-svo-off): New variables.
-	(math-stack-value-offset-fancy): Replace variables c, wid and off
-	by declared variables.
-	(math-comp-just, math-comp-comma-spc): New variables.
-	(math-compose-expr, math-compose-matrix): Replace variables `just'
-	and comma-spc by declared variable.
-	(math-comp-vector-prec): New variable.
-	(math-compose-expr, math-compose-matrix, math-compose-rows):
-	Replace variable vector-prec by declared variable.
-	(math-comp-left-bracket, math-comp-right-bracket)
-	(math-comp-comma): New variables.
-	(math-compose-expr, math-compose-rows): Replace variables
-	left-bracket, right-bracket and comma by declared variables.
-	(math-comp-full-width): New variable.
-	(math-comp-to-string-flat, math-comp-to-string-flat-term):
-	Replace variable full-width by declared variable.
-	(math-comp-highlight, math-comp-word, math-comp-level)
-	(math-comp-margin, math-comp-pos, math-comp-buf, math-comp-base)
-	(math-comp-hgt, math-comp-tag, math-comp-hpos, math-comp-vpos):
-	New variables.
-	(math-comp-to-string-flat, math-comp-to-string-flat-term)
-	(math-comp-sel-flat-term): Replace variables comp-highlight,
-	comp-word, comp-level, comp-margin, comp-pos and comp-buf by
-	declared variables.
-	(math-comp-simplify, math-comp-simplify-term)
-	(math-comp-add-string, math-comp-add-string-sel):
-	Replace	variables comp-highlight, comp-buf, comp-base,
-	comp-height, comp-tag, comp-hpos and comp-vpos by declared variables.
-
-2004-11-23  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* cus-start.el (all): Add x-use-old-gtk-file-dialog.
-
-	* mail/emacsbug.el (report-emacs-bug): Catch error that x-server-vendor
-	and x-server-version may throw.
-
-2004-11-23  Kim F. Storm  <storm@cua.dk>
-
-	* subr.el (substitute-key-definition-key): Optimize.
-	Don't call indirect-function for nil defn (always signals error).
-
-	* ido.el (ido-read-internal): Fix require-match check when
-	ido-directory-too-big is set.
-
-2004-11-23  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-ext.el (math-read-replacement-list)
-	(math-read-superscripts): New variables.
-	(math-read-preprocess-string): New function.
-	(math-read-expr): Filter input through math-read-preprocess-string.
-
-	* calc/calc-aent.el (math-read-exprs): Filter input through
-	math-read-preprocess-string.
-
-2004-11-23  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compilation-start): In cd command use
-	substitute-env-vars -- not quite shell compatible but better than
-	nothing.
-	(compilation-error-regexp-alist-alist): Simplify ftnchek to only
-	handle the newer versions messages, which are more parseable.
-
-2004-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* reveal.el (reveal-mode-map): New var.
-	(reveal-mode): Use it.
-
-2004-11-23  Nick Roberts  <nickrob@snap.net.nz>
-
-	* progmodes/gdb-ui.el (gdb-flush-pending-output): New variable.
-	(gdb-send-item, gdb-resync, gud-gdba-marker-filter): Use it.
-
-2004-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* buff-menu.el (list-buffers-noselect): Re-add the leading space in the
-	header-line when needed.
-	Use fixed-pitch only in the header-line.
-	Build the underline automatically.  Use emdash if available.
-
-2004-11-22  Richard M. Stallman  <rms@gnu.org>
-
-	* dired.el (dired-recursive-copies): Move from dired-aux.el.
-	* dired-aux.el (dired-recursive-copies): Move to dired.el.
-
-2004-11-22  Nick Roberts  <nickrob@snap.net.nz>
-
-	* progmodes/gdb-ui.el (gdb-resync): New function.
-	(gdb-pre-prompt, gdb-prompt, gdb-starting, gdb-stopping)
-	(gdb-frame-begin, gdb-stopped, gdb-post-prompt):
-	Use it to fail more gracefully.
-	(gdb-variables): Delete variable.
-	Re-order variables to reduce byte-compiler warnings.
-
-2004-11-22  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* descr-text.el (describe-char):
-	* paren.el (show-paren-function):
-	* subr.el (syntax-after): Undo last change.
-
-	* progmodes/python.el (run-python): Don't hard code *Python*.
-	Don't modify global process-environment.
-	(python-send-region, python-load-file): Don't assume that
-	python-buffer == (process-buffer (python-proc)).
-	(python-switch-to-python): Simplify.
-
-	* dired.el (dired-align-file): Don't assume line starts with spaces.
-
-2004-11-21  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-ext.el (math-read-big-expr, math-read-big-bigp):
-	Replace variable `lines' by math-read-big-lines.
-	(math-read-big-expr): Replace variables the-baseline, the-h2
-	and err-msg by math-read-big-baseline, math-read-big-h2 and
-	math-read-err-msg.
-	(math-read-big-bigp): Replace variable h2 with math-rb-h2.
-
-	* calc/calc-lang.el (math-read-big-rec): Fix typo.
-	(math-read-big-balance): Replace unbound variable by value.
-	(math-read-big-lines): New variable.
-	(math-read-big-rec, math-read-big-char, math-read-big-emptyp)
-	(math-read-big-error, math-read-big-balance): Replace variable
-	`lines' by declared variable.
-	(math-read-big-baseline, math-read-big-h2): New variables.
-	(math-read-big-rec): Replace variables the-baseline and the-h2
-	by declared variables.
-	(math-rb-h1, math-rb-h2, math-rb-v1, math-rb-v2): New variables.
-	(math-read-big-rec, math-read-big-char, math-read-big-emptyp)
-	(math-read-big-balance): Replace variables h1, h2, v1 and v2 by
-	declared variables.
-	(math-read-big-err-msg): New variable.
-	(math-read-big-error): Replace variable err-msg by declared variable.
-
-2004-11-21  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* ses.el: Add coding cookie.
-	Fix up docstrings, follow new commenting conventions.
-	(ses-header-line-menu): Fix missing variable rename for header-row.
-	(ses-cell-size): Remove.
-	(ses-make-cell): New function.
-	(ses-cell, ses-insert-row, ses-insert-column): Use it.
-	(ses-calculate-cell): Remove unused var `symbol'.
-	(ses-narrowed-p): New function.
-	(ses-goto-data, undo-more, ses-reconstruct-all): Use it.
-	(ses-initial-file-trailer): Change ;;; to ;; for local vars.
-	(ses-load, ses-reconstruct-all): Adjust string search accordingly.
-	(ses-setup): Use restore-buffer-modified-p.
-	(ses-cleanup): Remove unused var `end'.
-	(ses-header-string-left-offset): Remove.
-	(ses-create-header-string): Adjust to new behavior of `align-to'.
-	Truncate excessively large fields to preserve alignment.
-	(ses-reconstruct-all): Remove unused var `refs'.
-	(ses-read-cell-printer): Remove unused var `prompt'.
-	(ses-delete-row): Remove unused var `pos'.
-	(ses-delete-column): Remove unused var `new'.
-
-2004-11-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* ps-print.el: Insert :version tag into all defgroup and defcustom.
-	Use (featurep 'xemacs) instead of (eq ps-print-emacs-type 'xemacs).
-	Eliminate eval-and-compile usage.
-	(ps-insert-file): Use insert-file-contents instead of insert-file.
-	(ps-setup): Code fix.
-
-	* printing.el (pr-setup, lpr-setup): Code fix.
-
-2004-11-21  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-prog.el (math-integral-cache-state, calc-lang)
-	(calc-original-buffer): Declare them.
-	(calc-user-formula-alist): New variable.
-	(calc-user-define-formula, calc-fix-user-formula)
-	(calc-user-define-composition, calc-finish-formula-edit):
-	Replace variable `alist' by declared variable.
-	(var-q0, var-q1, var-q2, var-q3, var-q4, var-q5, var-q6)
-	(var-q7, var-q7, var-q8, var-q9): Declare them.
-	(calc-kbd-push): Don't check to see if var-q0 through var-q9
-	are bound.
-	(calcFunc-typeof): Replace undeclared variable by expression.
-	(math-exp-env): New variable.
-	(math-define-body, math-define-exp): Replace exp-env by declared var.
-	(math-define-exp): Replace misplaced variable by expression.
-
-	* calc/calcalg3.el (calc-curve-nvars, calc-curve-varnames)
-	(calc-curve-model, calc-curve-coefnames): New variables.
-	(calc-curve-fit, calc-get-fit-variables): Replace variables nvars,
-	varnames, model and coefnames by declared variables.
-	(math-root-widen): New variable.
-	(math-search-root, math-find-root): Replace variable root-widen by
-	declared variable.
-	(var-DUMMY): Declare it.
-	(math-root-vars, math-min-vars): Move the declarations to earlier in
-	the file.
-	(math-brent-min): Make d a local variable.
-	(math-find-minimum): Replace non-existent variable.
-	(math-ninteg-romberg): Remove unnecessary variable.
-	(math-ninteg-temp): New variable.
-	(math-ninteg-romberg, math-ninteg-midpoint): Replace variable
-	integ-temp by declared variable.
-	(math-fit-first-var, math-fit-first-coef, math-fit-new-coefs):
-	New variables.
-	(math-general-fit): Replace variables first-var, first-coef and
-	new-coefs by declared variables.
-	(calcFunc-fitvar): Replace variable first-var by declared variable.
-	(calcFunc-fitparam): Replace variable first-coef by declared variable.
-	(calcFunc-fitdummy): Replace variable new-coefs by declared variable.
-	(math-all-vars-vars, math-all-vars-found): New variables.
-	(math-all-vars-in, math-all-vars-rec): Replace variables vars and
-	found by declared variable math-all-vars-vars.
-
-2004-11-20  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* emacs-lisp/cust-print.el (custom-printers): Use `defvar' instead
-	of `defconst'.
-
-2004-11-20  Richard M. Stallman  <rms@gnu.org>
-
-	* isearch.el (isearch-mode-map): Don't bind SPC.
-	(isearch-whitespace-chars): Function deleted.
-	(isearch-search): Bind search-spaces-regexp.
-	(isearch-lazy-highlight-search): Likewise.
-	(search-whitespace-regexp): Doc fix.
-	(isearch-forward-regexp): Doc fix.
-
-	* emacs-lisp/bytecomp.el (byte-compile-form):
-	Move the calls to byte-compile-set-symbol-position,
-	to avoid having two for the same symbol occurrence.
-
-	* comint.el (comint-input-ring-size): Increase to 150.
-
-	* hexl.el (hexl-mode-old-hl-line-mode, hexl-mode-old-ruler-mode):
-	New variables.
-	(hexl-mode): Set those variables, record ruler-mode and hl-line-mode.
-	(hexl-mode-exit): Restore status of ruler-mode and hl-line-mode.
-
-	* imenu.el (imenu--generic-function):
-	Ensure we keep moving backward even if BEG isn't further back.
-
-	* replace.el (query-replace-read-to, query-replace-read-from):
-	Specify t for KEEP-ALL in read-from-minibuffer.
-
-	* progmodes/python.el (python-switch-to-python):
-	If Python isn't running, start it.
-	Don't alter debug-ignored-errors.
-
-	* progmodes/cperl-mode.el (cperl-indent-region):
-	Don't mind imenu-scanning-message.
-
-	* bindings.el (global-map): Bind C-e to move-end-of-line.
-
-	* simple.el (line-move-finish): New arg FORWARD.
-	Ignore invisible newlines, not intangible ones.
-	Conditions for acceptable stopping positions depend on FORWARD.
-	(line-move): Pass FORWARD arg to line-move-finish.
-
-	* buff-menu.el (list-buffers-noselect): Eliminate space at the start
-	of HEADER.  Compensate for this change in the code to add display
-	properties.  Don't make the first line intangible.
-
-	* info.el (Info-search): Fix previous change.
-
-2004-11-20  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* Makefile.in (recompile): Revert 2004-11-19 change.
-	(compile): Likewise.
-
-2004-11-19  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* Makefile.in (compile): Set `max-specpdl-size' before compiling.
-
-2004-11-19  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* progmodes/ebnf2ps.el: Fix typos.  Insert :version tag into all
-	defgroup and defcustom.  Eliminate eval-and-compile usage.
-
-	* progmodes/ebnf-otz.el: Fix typos.
-
-2004-11-19  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-yank.el (calc-edit-disp-trail): New variable.
-	(calc-edit-finish, calc-finish-stack-edit): Replace variable
-	disp-trail by declared variable.
-
-	* calc/calc-sel.el (calc-edit-disp-trail): Declare it.
-	(calc-finish-selection-edit): Replace variable disp-trail by
-	declared variable.
-	(calc-selection-cache-entry): Move declaration to earlier in the file.
-	(calc-selection-cache-num, calc-selection-cache-comp)
-	(calc-selection-cache-offset, calc-selection-true-num)
-	(calc-final-point-line, calc-final-point-column)
-	(calc-original-buffer): Declare them.
-	(calc-fnp-op, calc-fnp-num): New variables.
-	(calc-find-nth-part, calc-find-nth-part-rec)
-	(calc-select-previous): Replace op and num by declared variables.
-	(calc-rsf-old, calc-rsf-new): New variables.
-	(calc-replace-sub-formula, calc-replace-sub-formula-rec):
-	Replace variables old and new by declared variables.
-	(calc-sel-reselect): New variable.
-	(calc-auto-selection, calc-enter-selection, calc-edit-selection)
-	(calc-sel-evaluate, calc-sel-expand-formula, calc-sel-expand-formula)
-	(calc-sel-mult-both-sides, calc-sel-add-both-sides): Replace variable
-	reselect with declared variable.
-
-	* calc/calc-rewr.el (math-regs, math-num-regs, math-prog-last)
-	(math-bound-vars, math-conds, math-copy-neg, math-rhs)
-	(math-pattern, math-remembering, math-aliased-vars, math-mt-many)
-	(math-import-list, math-rewrite-phase): Declare them.
-	(math-rewrite): Use let* to declare variables.
-	(calc-rewrite-selection): Make rules a local variable.
-	(calc-rewr-sel): New variable.
-	(calc-rewrite-selection, calc-locate-selection-marker)
-	(calc-rewrite): Use the declared variable calc-rewr-sel instead
-	of sel.
-	(math-rewrite-whole-expr): New variable.
-	(math-rewrite, math-rewrite-phase): Replace variable expr by
-	declared variable.
-	(math-rewrite-heads-heads, math-rewrite-heads-skips)
-	(math-rewrite-heads-blanks ): New variables.
-	(math-rewrite-heads, math-rewrite-heads-rec): Replace variables
-	heads, skips and blanks by declared variables.
-	(math-rwcomp-subst-old, math-rwcomp-subst-new)
-	(math-rwcomp-subst-old-func, math-rwcomp-subst-new-func):
-	New variables.
-	(math-rwcomp-substitute, math-rwcomp-subst-rec): Replace variables
-	old, new, old-func and new-func by declared variables.
-	(math-rwcomp-assoc-args, math-rwcomp-addsub-args):
-	Remove unnecessary variable.
-	(math-apply-rw-regs): New variable.
-	(math-apply-rewrites, math-rwapply-replace-regs)
-	(math-rwapply-reg-looks-negp): Replace variable regs by declared var.
-	(math-apply-rw-ruleset): New variable.
-	(math-apply-rewrites, math-rwapply-remember): Replace variable
-	ruleset by declared variable.
-
-2004-11-19  Richard M. Stallman  <rms@gnu.org>
-
-	* info.el (Info-search): Use search-whitespace-regexp.
-
-2004-11-19  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* vc-rcs.el (vc-rcs-parse): New function.
-	(vc-rcs-annotate-command): Likewise.
-	(vc-rcs-annotate-current-time): Likewise.
-	(vc-rcs-annotate-time): Likewise.
-	(vc-rcs-annotate-extract-revision-at-line): Likewise.
-
-2004-11-19  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* Makefile.in (recompile): Set `max-specpdl-size' before compiling.
-
-2004-11-18  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-alg.el (math-simplify-divisor): Remove unnecessary vars.
-
-2004-11-17  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: Eliminate use of interactive-p and eval-and-compile.
-	Use of (featurep 'xemacs) instead of (eq ps-print-emacs-type 'xemacs).
-	Use make-temp-file to generate PostScript files in any situation.
-	(pr-ps-temp-file): Now specify a prefix to generate temporary files.
-	(pr-interactive-p): Eliminate var.
-	(pr-save-interactive): Eliminate macro.
-	(pr-interface, pr-ps-directory-preview)
-	(pr-ps-directory-using-ghostscript, pr-ps-directory-print)
-	(pr-ps-directory-ps-print, pr-ps-buffer-preview)
-	(pr-ps-buffer-using-ghostscript, pr-ps-buffer-print)
-	(pr-ps-buffer-ps-print, pr-ps-region-preview)
-	(pr-ps-region-using-ghostscript, pr-ps-region-print)
-	(pr-ps-region-ps-print, pr-ps-mode-preview)
-	(pr-ps-mode-using-ghostscript, pr-ps-mode-print, pr-ps-mode-ps-print)
-	(pr-printify-directory, pr-txt-directory, pr-despool-preview)
-	(pr-despool-using-ghostscript, pr-despool-print, pr-despool-ps-print)
-	(pr-ps-file-up-preview, pr-ps-file-using-ghostscript)
-	(pr-ps-file-up-ps-print, pr-toggle-file-duplex, pr-toggle-file-tumble)
-	(pr-toggle-file-landscape, pr-toggle-ghostscript, pr-toggle-faces)
-	(pr-toggle-spool, pr-toggle-duplex, pr-toggle-tumble)
-	(pr-toggle-landscape, pr-toggle-upside-down, pr-toggle-line)
-	(pr-toggle-zebra, pr-toggle-header, pr-toggle-header-frame)
-	(pr-toggle-lock, pr-toggle-region, pr-toggle-mode, pr-ps-name)
-	(pr-txt-name, pr-ps-utility, pr-ps-fast-fire, pr-txt-fast-fire)
-	(pr-update-menus, pr-interface-ps-prin, pr-interface-preview):
-	Eliminate pr-save-interactive usage.
-	(pr-menu-lock, pr-ps-utility-args, pr-set-outfilename):
-	Eliminate pr-interactive-p usage.
-	(pr-toggle-file-duplex-menu, pr-toggle-file-tumble-menu)
-	(pr-toggle-file-landscape-menu, pr-toggle-ghostscript-menu)
-	(pr-toggle-faces-menu, pr-toggle-spool-menu, pr-toggle-duplex-menu)
-	(pr-toggle-tumble-menu, pr-toggle-landscape-menu)
-	(pr-toggle-upside-down-menu, pr-toggle-line-menu, pr-toggle-zebra-menu)
-	(pr-toggle-header-menu, pr-toggle-header-frame-menu)
-	(pr-toggle-lock-menu, pr-toggle-region-menu, pr-toggle-mode-menu):
-	New funs.
-	(pr-ps-file): Use make-temp-file to generate a temporary file.
-
-2004-11-17  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-alg.el (calc-poly-div): Make calc-poly-div-remainder
-	a local variable.
-	(math-eval-rules-cache, math-eval-rules-cache-other): Declare them.
-	(math-top-only): New variable.
-	(math-simplify, math-simplify-step): Replace variable top-only by
-	declared variable math-top-only.
-	(math-simplify-expr): Declare it.
-	Replace argument expr in all calls of math-defsimplify by
-	math-simplify-expr.
-	(math-simplify-plus, math-simplify-times, math-simplify-divide)
-	(math-simplify-divisor, math-simplify-one-divisor)
-	(math-simplify-mod, math-simplify-ineq, math-simplify-sqrt)
-	(math-simplify-pow): Replace variable expr by declared variable
-	math-simplify-expr.
-	(math-simplify-divisor): Remove local variables temp and op.
-	(math-simplify-one-divisor): Make temp and op local variables.
-	(math-simplify-divisor-nover, math-simplify-divisor-dover):
-	New variables.
-	(math-simplify-divisor, math-simplify-one-divisor):
-	Replace variables nover and dover by declared variables.
-	(math-expr-subst-new, math-expr-subst-old): New variables.
-	(math-expr-subst, math-expr-subst-rec): Replace variables new
-	and old by declared variables.
-	(math-is-poly-degree, math-is-poly-loose): New variables.
-	(math-is-polynomial, math-is-poly-rec): Replace variables degree
-	and loose by declared variables.
-	(math-poly-base-const-ok, math-poly-base-pred): New variables.
-	(math-polynomial-base, math-polynomial-base-rec):
-	Replace variables const-ok and mpb-pred by declared variables.
-
-	* calc/calc-poly.el (calc-poly-div-remainder): Declare it.
-
-	* calc/calc-ext.el (math-defsimplify): Change the argument in
-	the created function to math-simplify-expr.
-
-	* calc/calc-units.el (math-simplify-expr): Declare it.
-	Replace argument expr in all calls of math-defsimplify by
-	math-simplify-expr.
-	(math-simplify-units-prod): Replace variable expr by declared
-	variable math-simplify-expr.
-
-2004-11-17  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* buff-menu.el (list-buffers-noselect): Massage to fit in 80 columns.
-	Replace mapcar->dolist, format->string.
-
-2004-11-17  Miles Bader  <miles@gnu.org>
-
-	* progmodes/idlw-shell.el, progmodes/idlw-toolbar.el
-	* progmodes/idlwave.el: Remove RCS keywords.
-
-2004-11-17  J.D. Smith  <jdsmith@as.arizona.edu>
-
-	* progmodes/idlwave.el, progmodes/idlw-toolbar.el
-	* progmodes/idlw-shell.el, progmodes/idlw-rinfo.el:
-	Update to IDLWAVE version 5.5.  Too many changes to list them here.
-	* progmodes/idlw-help.el: New file.
-
-2004-11-16  Richard M. Stallman  <rms@gnu.org>
-
-	* international/iso-cvt.el (iso-tex2iso-trans-tab):
-	Discard spaces after \i according to TeX rules.
-
-	* international/mule.el (set-buffer-file-coding-system):
-	New arg NOMODIFY.
-	(after-insert-file-set-coding): Pass that new arg.
-	Prevent set-buffer-multibyte from trying to lock the file.
-
-	* buff-menu.el (list-buffers-noselect): New arg BUFFER-LIST.
-
-	* saveplace.el (save-place): Doc fix.
-
-	* dabbrev.el (dabbrev-expand): When handling SPC M-/,
-	temporarily widen before finding the following word to copy.
-
-	* emacs-lisp/lucid.el (map-keymap): Definition deleted.
-	(cl-map-keymap): Definition deleted.
-
-	* subr.el (map-keymap-internal): New function.
-
-2004-11-16  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* textmodes/flyspell.el (flyspell-mouse-map): Pop the menu
-	when pressing rather than when releasing mouse-2.  Simplify.
-
-2004-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/compile.el (compilation-setup): Don't set buffer-read-only.
-	(compilation-mode): Set it here instead.
-
-	* emacs-lisp/cl-compat.el (pair-with-newsyms): Use make-symbol.
-
-	* emacs-lisp/cl-macs.el: Use make-symbol rather than gensym.
-	(loop, cl-parse-loop-clause, defsetf): Use backquote.
-
-2004-11-14  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/compile.el (compilation-internal-error-properties):
-	Fix up a transposition-typo.  Check end-col before using it.
-
-2004-11-14  Frederic Han  <han@math.jussieu.fr>  (tiny change)
-
-	* international/iso-cvt.el (iso-tex2iso-trans-tab):
-	Discard whitespace after macro \i when converting it.
-
-2004-11-16  Juri Linkov  <juri@jurta.org>
-
-	* emacs-lisp/find-func.el (find-function-regexp):
-	Optimize `define-minor-mode'.  Add `defun-cvs-mode'.
-	Add `deffoo'.  Add `f' to [^cgv] to exclude `defface'.
-	Remove invalid `\W' from [^cgv\W].  Doc fix.
-	(find-function-search-for-symbol): Replace "\\>" with "\\_>".
-
-2004-11-15  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* play/life.el: Maintainer is now FSF.
-	(life-patterns, life-neighbor-deltas, life-window-start)
-	(life-current-generation, life-generation-string): Use defvar
-	instead of defconst.
-
-2004-11-15  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/compile.el (compilation-move-to-column): New fun.
-	(compilation-internal-error-properties)
-	(compilation-next-error-function): Use it to make sure we don't go past
-	the end of line.
-
-2004-11-15  John Paul Wallington  <jpw@gnu.org>
-
-	* autoinsert.el (auto-insert-alist): Insert the user's name in
-	copyright notice, rather than Free Software Foundation, for the
-	Emacs Lisp header case too.
-
-2004-11-15  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el (pr-ps-file-print, pr-toggle-duplex): Fix typos.
-	Reported by Glenn Morris <gmorris+emacs@ast.cam.ac.uk>.
-	(pr-switches-string): If SWITCHES is nil, return nil.  Otherwise,
-	return the list of string in a string.
-	(pr-call-process): Message if calling process returns an error, that
-	is, the exit status is different of zero.
-
-2004-11-15  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calcalg2.el (math-integrate-by-parts): Remove unused
-	variable var-thing.
-	(math-integ-depth, math-integ-level, math-integral-limit)
-	(math-enable-subst, math-any-substs, math-integ-msg)
-	(math-prev-parts-v, math-good-parts, math-max-integral-limit)
-	(math-int-threshold, math-int-factors, math-double-roots)
-	(math-solve-simplifying, var-IntegLimit, math-solve-sign)
-	(var-GenCount): Declare these variables.
-	(calcFunc-integ): Don't check if var-IntegLimit is bound.
-	(math-integral-cache, math-integral-cache-state):
-	Move declarations to earlier in the file.
-	(math-deriv-var, math-deriv-total, math-deriv-symb)
-	(math-cur-record, math-has-rules, math-t1, math-t2, math-t3)
-	(math-so-far, math-integ-expr, math-expr-parts, calc-low)
-	(calc-high, math-solve-var, math-solve-full, math-solve-vars)
-	(math-try-solve-sign, math-solve-b, math-solve-system-vv)
-	(math-solve-res): New variables
-	(math-derivative, calcFunc-deriv, calcFunc-tderiv)
-	(math-integral, math-replace-integral-parts)
-	(math-integrate-by-parts, calc-dump-integral-cache)
-	(math-try-integral, math-do-integral, math-do-integral)
-	(math-do-integral-methods, math-try-solve-for)
-	(math-try-solve-prod, math-solve-poly-funny-powers)
-	(math-solve-crunch-poly, math-decompose-poly)
-	(math-solve-find-root-term, math-find-root-in-prod)
-	(math-integ-try-linear-substitutions)
-	(math-integ-try-substitutions, math-expr-rational-in)
-	(math-expr-rational-in-rec, calcFunc-table, math-scan-for-limits)
-	(math-solve-prod, math-solve-quartic, math-poly-all-roots)
-	(math-solve-for, math-solve-system, math-solve-system-rec)
-	(math-solve-get-sign, math-solve-get-int)
-	(math-solve-system-subst): Replace undeclared variables with newly
-	declared variables.
-
-2004-11-14  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* winner.el (winner-active-region, winner-edges, winner-window-list):
-	Define at toplevel.
-	(winner-mode-map): Move init inside declaration.
-
-2004-11-14  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* files.el (convert-standard-filename): Doc fix.
-
-2004-11-14  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* files.el (auto-mode-alist): Handle .gtkrc, and under /etc
-	passwd, group, shadow, default/* and pam.d/*.
-
-2004-11-14  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el (pr-menu-spec): Adjust menu specification.
-
-2004-11-13  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: Doc fix.  Insert :version tag into all defcustom.
-	Handle interactive-p as is recommended in Emacs Lisp Reference.
-	Set the file permission bits for newly created files.
-	Reported by Glenn Morris <gmorris+emacs@ast.cam.ac.uk>.
-	The printing menu specification (in `pr-menu-spec') was merged.
-	Suggested by Stefan Monnier <monnier@iro.umontreal.ca>.
-	(pr-version): New version number (6.8.3).
-	(pr-file-modes): New option.
-	(pr-interactive-p): New var.
-	(pr-save-interactive, pr-save-file-modes): New macros.
-	(pr-setup): Code fix.
-	(pr-menu-spec): Menu specification merged.
-	(pr-call-process, pr-text2ps): Set file permission bits.
-	(pr-despool-print): Set file permission bits.  Handle interactive-p as
-	is recommended.
-	(pr-interface, pr-ps-directory-preview)
-	(pr-ps-directory-using-ghostscript, pr-ps-directory-print)
-	(pr-ps-directory-ps-print, pr-ps-buffer-preview)
-	(pr-ps-buffer-using-ghostscript, pr-ps-buffer-print)
-	(pr-ps-buffer-ps-print, pr-ps-region-preview)
-	(pr-ps-region-using-ghostscript, pr-ps-region-print)
-	(pr-ps-region-ps-print, pr-ps-mode-preview)
-	(pr-ps-mode-using-ghostscript, pr-ps-mode-print, pr-ps-mode-ps-print)
-	(pr-printify-directory, pr-txt-directory, pr-despool-preview)
-	(pr-despool-using-ghostscript, pr-despool-ps-print)
-	(pr-ps-file-up-preview, pr-ps-file-using-ghostscript)
-	(pr-ps-file-up-ps-print, pr-toggle-file-duplex, pr-toggle-file-tumble)
-	(pr-toggle-file-landscape, pr-toggle-ghostscript, pr-toggle-faces)
-	(pr-toggle-spool, pr-toggle-duplex, pr-toggle-tumble)
-	(pr-toggle-landscape, pr-toggle-upside-down, pr-toggle-line)
-	(pr-toggle-zebra, pr-toggle-header, pr-toggle-header-frame)
-	(pr-toggle-lock, pr-toggle-region, pr-toggle-mode, pr-ps-name)
-	(pr-txt-name, pr-ps-utility, pr-ps-fast-fire, pr-txt-fast-fire)
-	(pr-menu-lock, pr-update-menus, pr-ps-utility-args)
-	(pr-set-outfilename, pr-interface-ps-print, pr-interface-preview):
-	Handle interactive-p as is recommended.
-
-2004-11-13  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/byte-opt.el (byte-optimize-inline-handler): Simplify.
-	(byte-decompile-bytecode-1): Remove unused vars `tag' and `retcount'.
-
-	* font-lock.el (font-lock-fontify-syntactically-region): Fix last fix
-	so it doesn't forget to highlight the beginning of the region either.
-
-2004-11-13  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/cc-mode.el (c-basic-common-initc-font-lock-init)
-	(c-font-lock-init): Eliminate obsolete make-local-hook.
-	(c-mode, c++-mode, objc-mode, java-mode, idl-mode, pike-mode)
-	(awk-mode): Use run-mode-hooks.
-
-	* progmodes/cperl-mode.el (cperl-mode): Use run-mode-hooks.
-
-2004-11-13  Kim F. Storm  <storm@cua.dk>
-
-	* mouse.el (mouse-drag-copy-region): Add :version.
-	(mouse-drag-mode-line-1): Let bind mouse-autoselect-window to nil
-	while dragging mode line, so mode line can be dragged downwards.
-	(mouse-drag-region-1): Let bind make-cursor-line-fully-visible
-	while pressing mouse button so window doesn't scroll until we
-	release the mouse if clicking on partially visible line.
-
-2004-11-12  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-graph.el (calc-dumb-map): Declare it.
-	(calc-graph-show-dumb): Check if calc-dumb-map is non-nil rather
-	than unbound.
-	(calc-graph-name): Made `end' a local variable.
-	(calc-graph-lookup): Made `varname' a local variable.
-	(var-DUMMY, var-DUMMY2, var-PlotRejects, calc-gnuplot-trail-mark):
-	Declare them.
-	(calc-graph-format-data): Don't check if var-PlotRejects is bound.
-	(calc-graph-plot, calc-graph-compute-3d): Remove references to
-	the unused variable y3vec.
-	(calc-graph-show-dumb): Remove reference to unused variable found-pt.
-	(calc-graph-kill-hook, calc-graph-plot): Remove reference to
-	calc-graph-prev-kill-hook.
-	(calc-graph-yvalue, calc-graph-yvec, calc-graph-numsteps)
-	(calc-graph-numsteps3, calc-graph-xvalue, calc-graph-xvec)
-	(calc-graph-xname, calc-graph-yname, calc-graph-xstep)
-	(calc-graph-ycache, calc-graph-ycacheptr, calc-graph-refine)
-	(calc-graph-keep-file, calc-graph-xval, calc-graph-xlow)
-	(calc-graph-xhigh, calc-graph-yval, calc-graph-yp, calc-graph-xp)
-	(calc-graph-zp, calc-graph-yvector, calc-graph-resolution)
-	(calc-graph-y3value, calc-graph-y3name)
-	(calc-graph-y3step, calc-graph-y3step, calc-graph-zval)
-	(calc-graph-stepcount, calc-graph-is-splot)
-	(calc-graph-surprise-splot, calc-graph-blank)
-	(calc-graph-non-blank, calc-graph-curve-num): New variables.
-	(calc-graph-plot, calc-graph-compute-2d, calc-graph-refine-2d)
-	(calc-graph-recompute-2d, calc-graph-compute-3d)
-	(calc-graph-format-data): Replace undeclared variables with the
-	above newly declared variables.
-
-2004-11-12  Diane Murray  <dsm@muenster.de>  (tiny change)
-
-	* mail/rmail.el (rmail-get-new-mail): Use the renamed variables
-	`rsf-beep' and `rsf-sleep-after-message'.
-
-	* mail/rmail-spam-filter.el (rmail-spam-filter): Only check white
-	list if `message-sender' is non-nil.
-
-2004-11-12  Kevin Rodgers  <ihs_4664@yahoo.com>  (tiny change)
-
-	* desktop.el (desktop-create-buffer, desktop-save): Avoid some
-	consing by using mapc instead of mapcar.
-
-2004-11-12  Nick Roberts  <nickrob@snap.net.nz>
-
-	* tooltip.el (require): Explain why CL is needed.
-
-2004-11-11  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: Insert :version into defgroup (printing).  All reference
-	to Files option in menubar were changed to File.
-	(pr-version): New version number (6.8.2).
-	(pr-get-symbol): Call easy-menu-intern.
-	(pr-region-active-p): Now is a fun (it was defsubst).  To avoid
-	compilation gripes.
-
-2004-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/byte-opt.el (byte-compile-inline-expand): Understand the
-	new byte-compile-function-environment binding to t.
-
-	* font-lock.el (font-lock-fontify-syntactically-region):
-	Don't forget to highlight the last char when we hit `end'.
-
-	* mwheel.el (mouse-wheel-progressive-speed): Fix typo in name.
-	(mwheel-scroll): Adjust accordingly.
-
-	* cvs-status.el: Reduce spurious warnings.
-	(cvs-status-checkout): Remove.
-	(cvs-status-mode-map): Use cvs-mode-checkout instead.
-
-	* pcvs.el (cvs-mode-checkout): New command.
-
-	* international/iso-cvt.el (iso-cvt-define-menu): Fix typo.
-
-	* tooltip.el: Require CL.
-
-	* emacs-lisp/bytecomp.el: Use push.
-	(byte-compile-file-form-defalias): Rename from byte-compile-defalias.
-	(defalias): Remove the `byte-compile' property and add
-	a `byte-hunk-handler'.
-
-2004-11-11  Juri Linkov  <juri@jurta.org>
-
-	* info.el (Info-search): Save match data for isearch.
-	Skip Tag Table node.
-
-	* descr-text.el (describe-char): Replace syntax-after with code
-	from its previous version.
-
-	* files.el (magic-mode-alist): Use optimization for SGML mode too.
-	(set-auto-mode): Doc fix.  Remove unused variable `xml'.
-
-	* international/mule.el (sgml-html-meta-auto-coding-function):
-	Remove > after <html to allow HTML attributes.
-
-2004-11-11  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-comb.el (math-prime-factors-finished): Declare it as
-	a variable.
-	(calcFunc-dfac): Replace unbound max by n.
-	(math-stirling-local-cache): New variable.
-	(math-stirling-number, math-stirling-1, math-stirling-2):
-	Replace the variable `cache' by the declared variable
-	math-stirling-local-cache.
-	(var-RandSeed): Declare it as a variable.
-	(math-init-random-base, math-random-digit): Don't check to see if
-	var-RandSeed is bound.
-	(math-random-cache, math-gaussian-cache, calc-verbose-nextprime):
-	Declare them instead of just setting them.
-	(math-init-random-base): Made i a local variable.
-	(math-random-digit): Made math-random-last a local variable.
-	(math-prime-test-cache): Move declaration to before it is used.
-	(math-prime-test-cache-k, math-prime-test-cache-q)
-	(math-prime-test-cache-nm1, math-prime-factors-finished):
-	Declare them as variables.
-
-2004-11-11  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-ext.el (math-defcache): Use defvar for the new
-	variables it creates.
-
-2004-11-11  Lars Hansen  <larsh@math.ku.dk>
-
-	* desktop.el (desktop-buffer-mode-handlers, desktop-after-read-hook)
-	(desktop-clear-preserve-buffers-regexp, desktop-file-name-format)
-	(desktop-globals-to-clear, desktop-no-desktop-file-hook, desktop-path)
-	(desktop-save): Add :version.
-
-2004-11-11  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* printing.el (pr-get-symbol): Don't downcase.
-
-2004-11-10  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-aent.el (calc-do-quick-calc): Use kill-new to append
-	string to kill-ring.
-
-	* calc/calc-aent.el (calc-alg-exp, math-toks)
-	(math-exp-pos,math-exp-old-pos, math-exp-token)
-	(math-exp-keep-spaces, math-exp-str): New variables.
-	(calc-do-alg-entry, calcAlg-equals, calcAlg-edit)
-	(calcAlg-enter): Use declared variable calc-alg-exp.
-	(math-build-parse-table, math-find-user-token): Use declared
-	variable math-toks.
-	(math-read-exprs, math-read-token, calc-check-user-syntax)
-	(calc-match-user-syntax, match-factor-after, math-read-factor):
-	Use declared variables math-exp-pos math-exp-old-pos.
-	(math-read-exprs, math-read-token, math-read-expr-level)
-	(calc-check-user-syntax, calc-match-user-syntax)
-	(match-factor-after, math-read-factor): Use declared variable
-	math-exp-token.
-	(math-read-exprs, math-read-expr-list, math-read-token)
-	(math-read-factor): Use declared variable math-exp-keep-spaces.
-	(math-read-exprs, math-read-token): Use declared variable
-	math-exp-str.
-	(calc-match-user-syntax): Make m a local variable.
-
-	* calc/calc-ext.el (math-read-expr): Use declared variables
-	math-exp-pos, math-exp-old-pos, math-exp-str, math-exp-token,
-	math-exp-keep-spaces.
-
-	* calc/calc-forms.el (math-read-angle-bracket): Use declared
-	variables math-exp-pos, math-exp-str.
-
-	* calc/calc-lang.el (math-parse-tex-sum): Use declared variable
-	math-exp-old-pos.
-	(math-parse-fortran-vector, math-parse-fortran-vector-end)
-	(math-parse-eqn-prime): Use declared variable math-exp-token.
-
-	* calc/calc-vec.el (math-read-brackets, math-check-for-commas):
-	Use declared variable math-exp-pos.
-	(math-check-for-commas): Use declared variable math-exp-str.
-	(math-read-brackets): Use declared variables math-exp-old-pos,
-	math-exp-keep-spaces.
-	(math-read-brackets, math-read-vector, math-read-matrix):
-	Use declared variable math-exp-token.
-
-2004-11-10  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/easymenu.el (easy-menu-define-key): Understand the case
-	where the keymap is a symbol.
-	(easy-menu-add-item): Use keymap-prompt.  Simplify.
-
-	* files.el (magic-mode-alist): Reduce backtracking in the HTML regexp.
-
-	* textmodes/sgml-mode.el (sgml-tag-text-p): New fun.
-	(sgml-parse-tag-backward): Use it to skip spurious < or >.
-
-2004-11-10  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* ebuff-menu.el: Doc fixes throughout.
-	(electric-buffer-menu-mode-hook): New defvar.
-
-2004-11-10  Nick Roberts  <nickrob@snap.net.nz>
-
-	* tooltip.el: Don't require cl, comint, gud, gdb-ui for compilation.
-	The resulting compiler warnings appear to be harmless.
-
-2004-11-10  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* textmodes/conf-mode.el: New file.
-
-	* files.el (auto-mode-alist, magic-mode-alist): Use it.
-
-2004-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* international/iso-cvt.el (iso-cvt-define-menu): Clean up namespace.
-
-2004-11-09  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-ext.el (calc-init-extensions): Remove old code.
-
-	* calc/calc-ext.el (math-expr-data, math-mt-many, math-mt-func)
-	(calc-z-prefix-buf, calc-z-prefix-msgs): New variables.
-	(calc-z-prefix-help, calc-user-function-list): Use declared
-	variables calc-z-prefix-buf, calc-z-prefix-msgs.
-	(math-map-tree, math-map-tree-rec): Use declared variables
-	math-mt-many, math-mt-func.
-	(math-read-expression, math-read-string): Use declared variable
-	math-expr-data.
-
-	* calc/calc-ext.el (math-normalize-nonstandard): Use declared
-	variable math-normalize-a.
-
-	* calc/calc.el (math-normalize-a): New variable.
-	(math-normalize): Use declared variable math-normalize-a.
-
-	* calc/calc-poly.el (math-expand-form): Use declared variable
-	math-mt-many.
-
-	* calc/calc-rewr.el (math-rewrite, math-rewrite-phase):
-	Use declared variable math-mt-many.
-	(math-rewrite): Use declared variable math-mt-func.
-
-	* calc/calc-vec.el (math-read-brackets, math-read-vector)
-	(math-read-matrix): Use declared variable math-expr-data.
-
-	* calc/calc-lang.el (math-parse-fortran-vector)
-	(math-parse-fortran-vector-end, math-parse-tex-sum)
-	(math-parse-eqn-matrix, math-parse-eqn-prime)
-	(math-read-math-subscr): Use declared variable math-expr-data.
-
-	* calc/calc-aent.el (math-read-exprs, math-read-expr-list)
-	(math-read-expr-level, math-read-token, calc-check-user-syntax)
-	(calc-match-user-syntax, math-read-if, math-factor-after)
-	(math-read-factor): Use declared variable math-expr-data.
-
-2004-11-09  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/diary-lib.el (diary-from-outlook)
-	(diary-from-outlook-gnus, diary-from-outlook-rmail): Do not use
-	interactive-p; but rather new optional argument NOCONFIRM.
-
-2004-11-09  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/easymenu.el (easy-menu-intern): Revert to no-downcasing.
-	(easy-menu-name-match): Revert correspondingly.
-
-2004-11-09  Richard M. Stallman  <rms@gnu.org>
-
-	* emacs-lisp/bytecomp.el (byte-compile-defalias):
-	Turn off warnings for the new function even if definition not constant.
-	If the definition isn't a quoted symbol, record (FUNCTION . t).
-	(byte-compile-function-environment): Now allow (FUNCTION . t) as elt.
-	(byte-compile-callargs-warn): Handle (FUNCTION . t).
-	(display-call-tree, byte-compile-arglist-warn):
-	Handle t returned by byte-compile-fdefinition.
-
-2004-11-09  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* Makefile.in (maintainer-clean): Depend on distclean.
-
-	* help-fns.el (help-C-file-name): File name must be in build-files
-	to be returned.
-
-2004-11-09  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc.el (calc-mode-hook, calc-trail-mode-hook)
-	(calc-start-hook, calc-end-hook, calc-load-hook): New variables.
-
-	* calc/calc.el (calc, calc-trail-display, calc-mode):
-	Remove obsolete sections.
-
-	* calc/calc.el (calc-x-paste-text): Remove.
-
-	* calc/calc-ext.el (calc-init-extensions): Bind calc-yank to
-	mouse-2.
-
-2004-11-09  Nick Roberts  <nickrob@snap.net.nz>
-
-	* progmodes/gdb-ui.el (gdb-current-stack-level): New variable.
-	(gdb-info-frames-custom, gdb-frame-handler): Use it to find
-	current frame (in case of recursive calls).
-	(gdb-show-changed-values): Add :version keyword.
-
-2004-11-09  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule-cmds.el: Change coding: tag back to
-	iso-2022-7bit.
-
-2004-11-08  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* international/mule-cmds.el: Change coding-system to utf-8.
-	(select-safe-coding-system-interactively):
-	New function extracted from select-safe-coding-system.
-	(select-safe-coding-system): Use it.
-
-2004-11-08  Richard M. Stallman  <rms@gnu.org>
-
-	* subr.el (syntax-after): Doc fix.
-
-	* paren.el (show-paren-function): Change calls to syntax-after
-	for new way of returning the value.
-
-	* menu-bar.el (menu-bar-file-menu): Make this the real name
-	and menu-bar-files-menu the alias.  Use the former.
-	(global-map): Use `file', not `files', as the symbol.
-
-	* info.el (Info-revert-find-node): Don't use beginning-of-buffer.
-
-	* filesets.el (filesets-spawn-external-viewer, filesets-run-cmd):
-	Don't use beginning-of-buffer.
-	(filesets-cmd-show-result): Use with-no-warnings.
-
-2004-11-08  Juri Linkov  <juri@jurta.org>
-
-	* progmodes/compile.el (compile): Don't overwrite last command in
-	minibuffer history with default command if they are not equal.
-
-2004-11-08  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calcalg2.el (math-do-integral-methods): Try linear then
-	non-linear substitutions.
-
-2004-11-08  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calcalg2.el (math-linear-subst-tried): New variable.
-	(math-do-integral): Set `math-linear-subst-tried' to nil.
-	(math-do-integral-methods): Use `math-linear-subst-tried' to
-	determine what type of substitution to try.
-	(math-integ-try-linear-substituion):
-	Set `math-linear-subst-tried' to t.
-
-2004-11-08  Kim F. Storm  <storm@cua.dk>
-
-	* Makefile.in (bootstrap-clean): New target for 'make bootstrap'.
-
-2004-11-07  Juri Linkov  <juri@jurta.org>
-
-	* info-look.el (info-lookup): Allow reusing in the current buffer
-	not only *info* buffer, but all (even renamed) Info buffers
-	by checking for major-mode instead of *info* buffer name.
-	(c-mode, autoconf-mode, emacs-lisp-mode, scheme-mode)
-	(octave-mode, maxima-mode) <doc-spec>:
-	Allow long dashes generated by Texinfo 4.7 before definitions.
-	(texinfo-mode) <doc-spec>: Add space to suffix to find command
-	definitions with argument separated by space.
-
-2004-11-06  Richard M. Stallman  <rms@gnu.org>
-
-	* simple.el (next-error group, face): Move before first use.
-	(next-error-highlight, next-error-highlight-no-select): Likewise.
-
-	* simple.el (line-move-invisible-p): Rename from line-move-invisible.
-	(line-move): New args NOERROR and TO-END.
-	Return t if succeed in moving specified number of lines.
-	(move-end-of-line): New function.
-
-	* simple.el (beginning-of-buffer-other-window): Use with-no-warnings.
-	(end-of-buffer-other-window): Likewise.
-
-	* simple.el (line-move-ignore-invisible): Default to t.
-
-	* subr.el (syntax-after): Return the syntax letter, not the raw code.
-
-	* emacs-lisp/elp.el (elp-results): Delete wasteful beginning-of-buffer.
-
-	* international/iso-cvt.el (iso-cvt-define-menu):
-	Rename menu-bar-files-menu to menu-bar-file-menu.
-
-	* net/browse-url.el (browse-url-gnome-moz-program)
-	(browse-url-gnome-moz-arguments): Move up before first use.
-
-	* net/tramp.el (tramp group): Add :version.
-
-	* progmodes/ada-xref.el (ada-gdb-application):
-	Use goto-char instead of beginning-of-buffer.
-
-	* progmodes/cperl-mode.el (cperl-info-on-command):
-	Use goto-char instead of beginning-of-buffer.
-
-	* progmodes/idlw-shell.el (idlwave-shell-examine-map):
-	Move up before first use.
-	(idlwave-shell-temp-pro-file): Likewise.
-	(idlwave-shell-temp-rinfo-save-file): Likewise.
-	(idlwave-shell-temp-file): Minor doc fix.
-
-	* textmodes/flyspell.el (flyspell-external-point-words):
-	Use goto-char instead of beginning-of-buffer.
-
-2004-11-06  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	* net/tramp.el (tramp-coding-commands): Additionally try "uudecode -o
-	/dev/stdout" before trying "uudecode -o -".  Suggested by Han Boetes.
-	(tramp-uudecode): Mention `uudecode -o /dev/stdout'.
-
-2004-11-06  David Ponce  <david@dponce.com>
-
-	* recentf.el (recentf-menu-path): Use menu item name.
-
-2004-11-06  Eli Zaretskii  <eliz@gnu.org>
-
-	* progmodes/gdb-ui.el: Don't call define-fringe-bitmap if the
-	display doesn't support images.
-
-2004-11-06  Andreas Schwab  <schwab@suse.de>
-
-	* tempo.el (tempo-match-finder): Doc fix.
-
-	* emacs-lisp/easymenu.el (easy-menu-get-map): Fix last change.
-
-2004-11-06  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/easymenu.el (easy-menu-get-map-look-for-name): Remove.
-	(easy-menu-lookup-name): New fun to replace it.
-	(easy-menu-get-map): Use it to obey menu item names (rather than just
-	keys) when looking up `path'.
-	(easy-menu-always-true-p): Rename from easy-menu-always-true.
-	(easy-menu-convert-item-1): Adjust to new name.
-
-2004-11-06  Peter Heslin  <pj@heslin.eclipse.co.uk>  (tiny change)
-
-	* outline.el (hide-body): Don't hide lines at the top of the file
-	that precede the first header line.
-
-2004-11-06  Paul Pogonyshev  <pogonyshev@gmx.net>
-
-	* align.el (align-areas): Delete whitespace before reindenting, so
-	that tabs are never placed after spaces.
-
-2004-11-06  Alan Shutko  <ats@acm.org>
-
-	* macros.el (insert-kbd-macro): Do completions based on macros,
-	rather than all commands.
-
-2004-11-06  David Hansen  <david.hansen@gmx.net>  (tiny change)
-
-	* tempo.el (tempo-match-finder): Use [:word:] instead of "^\\b",
-	to solve a bug whereby tags with 'b' don't match.
-
-2004-11-05  Juri Linkov  <juri@jurta.org>
-
-	* info.el (Info-search): Don't search in node header lines
-	and file headers.
-
-	* emacs-lisp/edebug.el (edebug-next-token-class): Allow all
-	symbol-constituent characters after dot, not only digits.
-
-2004-11-04  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* files.el (set-auto-mode): Don't get error after setting -*-mode-*-.
-
-2004-11-04  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* dired.el (dired-read-dir-and-switches): Call read-directory-name
-	if a dialog will be used, read-file-name otherwise.
-
-2004-11-04  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/table.el (table group): Add :version.
-
-	* textmodes/ispell.el (ispell-word):
-	Don't alter args; set them only thru `interactive' spec.
-
-	* textmodes/flyspell.el (flyspell-word):
-	Don't alter FOLLOWING; set it only thru `interactive' spec.
-
-	* progmodes/f90.el (f90-end-of-block): Don't use interactive-p.
-
-	* net/browse-url.el (browse-url-maybe-new-window):
-	Use called-interactively-p.
-
-	* mail/supercite.el (sc-cite-region):
-	Don't use interactive-p.  Add arg INTERACTIVE.
-	(sc-version): Don't use interactive-p.  Rename arg to MESSAGE.
-
-	* international/mule-cmds.el (set-input-method, toggle-input-method):
-	Don't use interactive-p.  Add arg INTERACTIVE.
-
-	* eshell/esh-mode.el (eshell-show-maximum-output):
-	Don't use interactive-p.
-	(eshell-truncate-buffer): Just message, no error, if buffer is short.
-
-	* mouse.el (mouse-show-mark): Get positions to delete from mark
-	and point, not from mouse-drag-overlay.
-
-	* imenu.el (imenu-eager-completion-buffer): Add :version.
-
-	* filesets.el (filesets group): Add :version.
-
-2004-11-03  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* files.el (xml-based-modes): Delete var.
-	(magic-mode-alist): New more general var.
-	(set-auto-mode): Use it.
-
-	* buff-menu.el (Buffer-menu-make-sort-button): Preserve point even
-	when clicking from another window.
-
-2004-11-03  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* vc-cvs.el (vc-cvs-local-month-numbers): Delete var.
-	(vc-cvs-annotate-time): Incorporate value of deleted var.
-	Remove special-case handling of beginning-of-buffer cruft.
-	Cache ending position (point) and return value in text property
-	`vc-cvs-annotate-time', and consult it on subsequent invocations.
-
-	* vc-cvs.el (vc-cvs-annotate-command):
-	Delete extraneous lines from beginning of buffer.
-	* vc-mcvs.el (vc-mcvs-annotate-command): Likewise.
-
-	* progmodes/grep.el (grep-default-command): Take empty string
-	for tag if all other methods yield nil.  Shell-quote the tag.
-
-	* vc.el (vc-annotate-display-autoscale): Add prefix-arg
-	spec in `interactive' form, and mention it in the docstring.
-	Also, make sure point is at bol after calling `annotate-time'.
-
-2004-11-02  Richard M. Stallman  <rms@gnu.org>
-
-	* cus-edit.el (customize-group-other-window):
-	Select the window that displays the custom buffer.
-	(custom-buffer-create-other-window): Likewise.
-
-	* comint.el (comint-insert-input): Fix previous change.
-
-	* emacs-lisp/elp.el (elp-instrument-function):
-	Use called-interactively-p.
-
-	* emacs-lisp/easymenu.el (easy-menu-intern):
-	Don't downcase; rather, case-flip the first letter of each word.
-
-	* emacs-lisp/easy-mmode.el (define-minor-mode):
-	Use called-interactively-p.
-
-	* emacs-lisp/bytecomp.el (byte-compile-warning-types):
-	Add interactive-only.
-	(byte-compile-warnings): Add interactive-only as option.
-	(byte-compile-interactive-only-functions): New variable.
-	(byte-compile-form): Warn about calls to functions
-	in byte-compile-interactive-only-functions.
-
-	* emacs-lisp/autoload.el (update-file-autoloads):
-	Don't use interactive-p; take new arg SAVE-AFTER.
-
-	* emacs-lisp/advice.el (ad-make-advised-definition):
-	Use called-interactively-p.
-
-2004-11-02  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* files.el (find-file-existing): New function.
-
-	* menu-bar.el (menu-bar-files-menu): Make "Open File..." call
-	find-file-existing.  Add "New File..." that calls find-file.
-
-	* diropen.pbm, diropen.xpm: New files.
-
-	* toolbar/tool-bar.el (tool-bar-setup): Tool bar item dired uses
-	icon diropen.  New tool bar item find-file-existing uses icon open.
-
-	* dired.el (dired-read-dir-and-switches): Call read-directory-name
-	instead of read-file-name.
-
-2004-11-02  Ulf Jasper  <ulf.jasper@web.de>
-
-	* calendar/icalendar.el (icalendar-version): Increase to 0.08.
-	(icalendar--split-value): Change name of work buffer.
-	(icalendar--get-weekday-abbrev): Return nil on error.
-	(icalendar--date-to-isodate): New function.
-	(icalendar-convert-diary-to-ical)
-	(icalendar-extract-ical-from-buffer): Use only two args for
-	make-obsolete (XEmacs compatibility).
-	(icalendar-export-file, icalendar-import-file): Blank at end of prompt.
-	(icalendar-export-region): Doc fix.
-	If error, return non-nil and write errors to a buffer.
-	Use correct weekday for weekly recurring events.
-	Check whether date has been parsed for ordinary events.
-	Make weekly events start in the year 2000.
-	DTEND is non-inclusive, shift end date by one day if
-	necessary (not for entries that have date and time).
-	Rename local let variables: oops -> found-error, datestring ->
-	startdatestring.
-
-2004-11-02  Kim F. Storm  <storm@cua.dk>
-
-	* files.el (set-auto-mode-0): Don't rely on dynamic binding of
-	keep-mode-if-same variable.  Add it as optional arg instead.
-	(set-auto-mode): Call set-auto-mode-0 with keep-mode-if-same.
-
-	* ehelp.el (electric-help-map): Reorder Q/q and R/r entries so
-	substitute-command-keys will select lower-case bindings like those
-	used in the static help texts.
-
-	* descr-text.el (describe-text-properties): Don't err if called in
-	the *Help* buffer; output to *Help-2* buffer instead.
-
-	* kmacro.el (group kmacro): Add :version.
-	(kmacro-keyboard-quit): New function to cleanup on C-g.
-	(kmacro-start-macro): Set defining-kbd-macro to append when
-	appending to last macro.
-
-	* simple.el (keyboard-quit): Call kmacro-keyboard-quit.
-
-2004-11-02  Nick Roberts  <nickrob@snap.net.nz>
-
-	* progmodes/gdb-ui.el (gdb-enable-debug-log)
-	(gdb-use-inferior-io-buffer, gdb-use-colon-colon-notation)
-	(gud-gdba-command-name, gdb-show-main, gdb-many-windows):
-	Add :version keyword.
-
-2004-11-02  Pavel Kobiakov  <pk_at_work@yahoo.com>
-
-	* progmodes/flymake.el (flymake-err-line-patterns):
-	Use `flymake-reformat-err-line-patterns-from-compile-el' to convert
-	`compilation-error-regexp-alist-alist' to internal Flymake format.
-
-	* progmodes/flymake.el: Eliminate byte-compiler warnings.
-
-2004-11-01  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-frac.el (calc-over-notation): Replace `completing-read'
-	with `interactive "s"'.
-
-2004-11-01  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* mouse.el (mouse-yank-at-click, mouse-yank-secondary):
-	Revert change from 2004-10-16.  '*' checks the current buffer, but the
-	mouse click may be in another buffer.
-
-2004-11-01  John Paul Wallington  <jpw@gnu.org>
-
-	* files.el (large-file-warning-threshold): Add :version keyword.
-	(kill-some-buffers): Doc fix.
-
-	* thumbs.el (group thumbs): Add :version keyword.
-
-	* textmodes/bibtex.el (bibtex-make-field): Fix typo.
-
-2004-11-01  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/ispell.el (ispell-word): Don't use interactive-p.
-
-	* textmodes/flyspell.el (flyspell-word): Don't use interactive-p.
-
-	* allout.el (allout group): Add :version.
-	(allout-init): Don't use interactive-p.
-	(allout-ascend-to-depth, allout-ascend, allout-end-of-level)
-	(allout-forward-current-level, allout-backward-current-level):
-	Don't use interactive-p.
-
-	* textmodes/bibtex.el (bibtex-make-field): Don't use interactive-p.
-	(bibtex-find-text): Likewise.
-
-	* progmodes/vhdl-mode.el (vhdl-fill-region)
-	(vhdl-beginning-of-statement): Don't use interactive-p.
-
-	* progmodes/idlwave.el (idlwave-update-routine-info):
-	Don't use interactive-p.
-
-	* progmodes/idlw-shell.el (idlwave-shell-send-char):
-	Don't use interactive-p.
-
-	* progmodes/cperl-mode.el (cperl-switch-to-doc-buffer):
-	Don't use interactive-p.
-
-	* progmodes/ada-xref.el (ada-make-body-gnatstub):
-	Don't use interactive-p.
-
-	* play/fortune.el (fortune-to-signature): Don't use interactive-p.
-	(fortune-in-buffer): Doc fix.
-
-	* play/5x5.el (5x5-new-game): Set up the buffer even if not
-	interactive.
-
-	* net/eudc.el (eudc-display-records): Use with-output-to-temp-buffer;
-	don't select the temporary buffer.
-	(eudc-get-email): New optional arg ERROR; don't use interactive-p.
-	(eudc-get-phone): Likewise.
-
-2004-11-01  Kim F. Storm  <storm@cua.dk>
-
-	* man.el (Man-xref-normal-file): Fix help-echo.
-
-2004-10-31  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* reveal.el (reveal-last-tick): New var.
-	(reveal-post-command): Use it to avoid closing overlays when we're
-	appending text to them.
-
-2004-10-31  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
-
-	* textmodes/bibtex.el: Require button.
-	(bibtex-autokey-transcriptions): Translate TeX `\ ' to space.
-	(bibtex-reference-keys): Distinguish between header keys and
-	crossref keys.
-	(bibtex-beginning-of-field): New function.
-	(bibtex-url-map): Remove.
-	(bibtex-font-lock-keywords): Use bibtex-font-lock-crossref.
-	(bibtex-font-lock-url-regexp): Assume that field names begin at
-	the beginning of a line.
-	(bibtex-font-lock-url): Simplify.  Do not use bibtex-enclosing-field.
-	Remove field delimiters.  Use bibtex-beginning-of-field.
-	Bugfix, point can be inside a field with a url.
-	(bibtex-font-lock-crossref, bibtex-button-action, bibtex-button):
-	New functions.
-	(bibtex-mark-active, bibtex-run-with-idle-timer): Remove.
-	(bibtex-key-in-head): Simplify.
-	(bibtex-current-line): Use bolp.
-	(bibtex-parse-keys): Remove unused arg `add'.
-	Use bibtex-type-in-head and bibtex-key-in-head.
-	(bibtex-parse-entry, bibtex-autofill-entry):
-	Use bibtex-type-in-head and bibtex-key-in-head.
-	(bibtex-autokey-get-field): Do not alter case of replacement text.
-	(bibtex-autokey-get-names): Do all processing of name list.
-	(bibtex-autokey-get-year): New function.
-	(bibtex-autokey-get-title): Do all processing of title words.
-	(bibtex-generate-autokey): Simplify.
-	(bibtex-string-files-init): Use default-directory.
-	Allow for absolute file names in bibtex-string-files.
-	(bibtex-files, bibtex-file-path): New variables.
-	(bibtex-files-expand): New function.
-	(bibtex-find-entry-globally): New command.
-	(bibtex-summary-function): New variable.
-	(bibtex-summary): Default value of bibtex-summary-function.
-	(bibtex-find-crossref): New optional args pnt and split.
-	(bibtex-complete-key-cleanup): Call bibtex-summary-function.
-	(bibtex-copy-summary-as-kill): New command bound to C-cC-t.
-	(bibtex-validate): Fix docstring.  Check only abbreviated month fields.
-	Fix handling of required and alternative fields.
-	Identify duplicate keys even if bibtex-maintain-sorted-entries is nil.
-	Use cons and display-buffer.
-	(bibtex-validate-globally): New command.
-	(bibtex-clean-entry): Use bibtex-files-expand.  Do not call
-	bibtex-parse-keys and bibtex-parse-strings for updating
-	bibtex-reference-keys and bibtex-strings.
-	(bibtex-realign): Remove blank lines past the last entry.
-	(bibtex-reformat): Use bibtex-entry-format as default.
-	(bibtex-choose-completion-string): Remove.
-	(bibtex-complete): Do not use bibtex-choose-completion-string.
-	(bibtex-url): Simplify.
-
-2004-10-31  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* x-dnd.el (x-dnd-test-function, x-dnd-protocol-alist)
-	(x-dnd-types-alist, x-dnd-open-file-other-window)
-	(x-dnd-known-types): Add :version.
-
-2004-10-31  John Paul Wallington  <jpw@gnu.org>
-
-	* ibuffer.el (group ibuffer): Add :version keyword.
-
-2004-10-31  Kim F. Storm  <storm@cua.dk>
-
-	* ido.el (group ido): Add :version keyword.
-	(ido-mode): Remove :version keyword.
-
-	* emulation/cua-base.el (group cua): Add :version keyword.
-	(cua-mode): Remove :version keyword.
-
-2004-10-30  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el (auto-revert-tail-mode-text): Add :version keyword.
-
-	* help-at-pt.el (help-at-pt-timer): Move defvar up to avoid
-	compiler warning.
-	(help-at-pt-timer-delay): Add :initialize keyword.  Simplify :set
-	function.
-	(help-at-pt-display-when-idle): Remove autoload.
-
-2004-10-30  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* makefile.w32-in (custom-deps, autoloads): Fix *-hooks -> *-hook.
-
-2004-10-30  Juri Linkov  <juri@jurta.org>
-
-	* help.el (function-called-at-point):
-	* help-fns.el (variable-at-point): Read -> intern.
-
-2004-10-30  Simon Josefsson  <jas@extundo.com>
-
-	* progmodes/autoconf.el (autoconf-font-lock-keywords):
-	Recognize AS_* too.
-
-2004-10-29  Simon Josefsson  <jas@extundo.com>
-
-	* subr.el (read-passwd): Move back from password.el.
-
-	* password.el: Remove, not ready yet.
-
-2004-10-29  Andreas Schwab  <schwab@suse.de>
-
-	* speedbar.el (speedbar-frame-parameters): Improve customize type.
-
-2004-10-29  Sam Steingold  <sds@gnu.org>
-
-	* mouse.el (mouse-show-mark): Replace the last occurrence of
-	x-lost-selection-hooks with x-lost-selection-functions.
-
-2004-10-28  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* mouse.el (mouse-show-mark): Adjust to new name and don't assume
-	x-lost-selection-functions is bound.
-
-	* mouse-sel.el (mouse-sel-mode):
-	* emacs-lisp/lselect.el: Adjust to new names for
-	x-(lost|sent)-selection-functions.
-
-	* subr.el (x-lost-selection-hooks, x-sent-selection-hooks):
-	New obsolete aliases of x-lost-selection-functions and
-	x-sent-selection-functions.
-
-2004-10-28  Kim F. Storm  <storm@cua.dk>
-
-	* imenu.el (imenu-scanning-message): Remove.
-	(imenu-progress-message): Make it a no-op.
-
-2004-10-28  John Paul Wallington  <jpw@gnu.org>
-
-	* files.el (set-auto-mode): Call `throw' correctly.
-
-2004-10-28  Juri Linkov  <juri@jurta.org>
-
-	* info.el (Info-file-list-for-emacs): Add ("Info" . "info")
-	to search `Info-...' commands in `info' manual.
-	(Info-goto-emacs-command-node, Info-goto-emacs-key-command-node):
-	Add 'info-file "emacs" property.
-	(Info-find-emacs-command-nodes): Fix index line number regexp.
-	Set real line number (instead of fake 0) in first element of the
-	returned list.
-	(Info-goto-emacs-command-node): Use line number of first element
-	to set point in the first found Info node.
-
-	* progmodes/grep.el (grep-regexp-alist): Move match highlighting
-	code to `grep-mode-font-lock-keywords'.
-	(grep-mode-font-lock-keywords): Delete grep markers instead
-	of making them invisible.
-
-2004-10-28  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* mail/emacsbug.el (report-emacs-bug): Insert x-server-vendor
-	and x-server-version in bug report.
-
-2004-10-28  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* files.el (set-auto-mode-0): New function.
-	(set-auto-mode): Use it to handle aliased modes and to
-	be consistent between C-x C-f and C-x C-w.
-
-2004-10-28  Kenichi Handa  <handa@m17n.org>
-
-	* international/utf-8.el (utf-translate-cjk-charsets):
-	Add katakana-jisx0201.
-
-	* international/subst-jis.el: Add data for JISX0201.
-
-2004-10-27  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* obsolete/hilit19.el (hilit-mode): New function.
-	Move all the toplevel side-effecting stuff into it, so that loading
-	hilit19 doesn't mess everything up any more.
-
-2004-10-27  Richard M. Stallman  <rms@gnu.org>
-
-	* add-log.el (add-change-log-entry): Set up mailing address
-	and full name later, and don't alter add-log-mailing-address
-	or add-log-full-name.
-
-	* elide-head.el (elide-head): Change error to message.
-	(elide-head-show): Likewise.
-
-	* apropos.el (apropos-macrop): Doc fix.
-
-	* mouse.el (mouse-show-mark): Do most processing the same
-	regardless of transient-mark-mode.
-
-	* shadowfile.el (shadow-copy-files): Use interactive-p
-	only to control whether to print a message.
-
-	* tar-mode.el (tar-mode): Use write-contents-functions,
-	not write-contents-hooks.
-
-	* eshell/em-unix.el (eshell-du-sum-directory): Don't use
-	directory-sep-char.
-
-2004-10-27  Richard M. Stallman  <rms@gnu.org>
-
-	* strokes.el (strokes-unload-hook): Fix previous change.
-
-	* type-break.el (type-break-run-at-time): Always use run-at-time;
-	forget the alternatives.
-	(type-break-cancel-function-timers): Always use cancel-function-timers;
-	forget the alternatives.
-
-	* pcomplete.el (pcomplete-entries): Don't use directory-sep-char.
-
-2004-10-27  Kenichi Handa  <handa@m17n.org>
-
-	* international/subst-jis.el: Use utf-translate-cjk-substitutable-p.
-
-	* international/subst-gb2312.el: Likewise.
-
-	* international/subst-big5.el: Likewise.
-
-	* international/subst-ksc.el: Likewise.
-
-	* international/utf-8.el (utf-translate-cjk-unicode-range-string):
-	New variable.
-	(utf-translate-cjk-set-unicode-range): New function.
-	(utf-translate-cjk-unicode-range): Make it customizable.
-	(utf-8-post-read-conversion):
-	Use utf-translate-cjk-unicode-range-string.
-	(ccl-decode-mule-utf-8): Check utf-subst-table-for-decode for more
-	Unicode ranges.
-
-2004-10-26  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* files.el (auto-mode-alist): Add pod, js, xbm and xpm and group
-	trivial variants to shorten the list.
-	(xml-based-modes): New var.
-	(set-auto-mode): Give interpreter-mode-alist or <?xml or <!DOCTYPE
-	declaration higher priority than auto-mode-alist.
-
-	* find-file.el (cc-other-file-alist): Bring it in line with
-	cc-mode's auto-mode-alist entries and use \' instead of $.
-
-	* textmodes/sgml-mode.el (sgml-mode): Fix imenu-generic-expression
-	and add "Id" and "Name" submenus to it.
-
-	* imenu.el (imenu--generic-function): Skip matches in comments.
-
-2004-10-26  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc.el (calc,full-calc, calc-quit, calc-keypad)
-	(full-calc-keypad, calc-trail-display): Use an extra argument
-	instead of `interactive-p'.
-
-	* calc/calc-misc.el (calc-other-window): Use an extra argument
-	instead of `interactive-p'.
-
-	* calc/calc-rewr.el (calc-match): Use an extra argument instead of
-	`interactive-p'.
-
-2004-10-26  Kim F. Storm  <storm@cua.dk>
-
-	* help.el (describe-key): Describe both down-event and up-event
-	for a mouse click.
-
-2004-10-26  Richard M. Stallman  <rms@gnu.org>
-
-	* woman.el (woman): Don't call interactive-p.
-
-	* pcomplete.el (pcomplete): Instead of interactive-p,
-	use an arg set non-nil by the interactive spec.
-
-	* menu-bar.el (menu-bar-make-toggle): Instead of interactive-p,
-	use an arg set non-nil by the interactive spec.
-
-	* man.el (Man-cleanup-manpage): Instead of interactive-p,
-	use an arg set non-nil by the interactive spec.
-
-2004-10-26  Pavel Kobiakov  <pk_at_work@yahoo.com>
-
-	* progmodes/flymake.el (flymake-split-string):
-	Use `flymake-split-string-remove-empty-edges' in any case.
-
-2004-10-26  Masatake YAMATO  <jet@gyve.org>
-
-	* progmodes/flymake.el (flymake-err-line-patterns):
-	Use `compilation-error-regexp-alist-alist' instead of
-	`compilation-error-regexp-alist'.
-
-2004-10-25  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* textmodes/tex-mode.el (tex-font-lock-keywords-1): Fix up the spurious
-	verbatim face on the \ of \end{verbatim}.
-
-2004-10-25  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-incom.el (calc-digit-dots): Inhibit read-only before
-	erasing minibuffer.
-
-2004-10-25  Simon Josefsson  <jas@extundo.com>
-
-	* subr.el (read-passwd): Move to net/password.el.
-
-	* net/password.el (read-passwd): Add.  Autoload it.
-
-2004-10-25  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	* mouse-sel.el (mouse-sel-mode): Specify custom group.
-
-	* simple.el (process-file): Fix logic.
-
-2004-10-24  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* indent.el (set-left-margin, set-right-margin): Delete redundant code.
-	(increase-right-margin): Remove erroneous call to `interactive-p'.
-
-2004-10-24  Kim F. Storm  <storm@cua.dk>
-
-	* help.el (describe-mode): Fix 2004-10-13 change.
-	Copy pure "Auto Fill" string so it can be propertized later
-	without causing a read-only error.
-
-2004-10-24  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* info.el (Info-find-emacs-command-nodes): Adapt to Texinfo-4.7
-	style indexes.
-
-2004-10-24  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	* simple.el (process-file): Accept nil for INFILE.  Reported by
-	Luc Teirlinck.
-
-2004-10-24  Masatake YAMATO  <jet@gyve.org>
-
-	* progmodes/gdb-ui.el (gdb-assembler-font-lock-keywords):
-	Handle periods and underscores in a function name.
-	Remove the address fontification.
-
-2004-10-24  Masatake YAMATO  <jet@gyve.org>
-
-	* progmodes/asm-mode.el (asm-font-lock-keywords):
-	Use font-lock-variable-name-face for registers.
-
-2004-10-24  Nick Roberts  <nickrob@snap.net.nz>
-
-	* progmodes/gdb-ui.el (gdb-get-create-buffer): Allow modes to run
-	kill-all-local-variables.
-	(gdb-breakpoints-mode, gdb-frames-mode, gdb-threads-mode)
-	(gdb-registers-mode, gdb-locals-mode, gdb-assembler-mode):
-	Use kill-all-local-variables and provide mode-hooks.
-	(gdb-assembler-font-lock-keywords): New font lock keywords definition.
-	(gdb-assembler-mode): Use 'gdb-assembler-font-lock-keywords'.
-	Suggested by Masatake YAMATO <jet@gyve.org>.
-
-2004-10-23  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	* simple.el (process-file): New function, similar to call-process
-	but supports file handlers.
-	* vc.el (vc-do-command): Use it, instead of call-process.
-	* net/tramp-vc.el (vc-do-command): Do not advise it if
-	process-file is fboundp.
-	* net/tramp.el (tramp-file-name-handler-alist): Add entry for
-	process-file.
-	(tramp-handle-process-file): New function.
-	(tramp-file-name-for-operation): Support process-file.
-
-2004-10-23  Ulf Jasper  <ulf.jasper@web.de>
-
-	* calendar/icalendar.el (icalendar--weekday-array): New constant.
-	(icalendar-weekdayabbrev-table)
-	(icalendar-monthnumber-table): Delete.
-	(icalendar--get-month-number): Use calendar-month-name-array.
-	(icalendar--get-weekday-number): New function.
-	(icalendar--get-weekday-abbrev) Use calendar-day-name-array.
-	(icalendar-export-region): Handle multi-line entries.
-	(icalendar--convert-ical-to-diary): Use calendar-day-name-array.
-
-2004-10-23  John Paul Wallington  <jpw@gnu.org>
-
-	* ibuffer.el (ibuffer-find-file): Remove `interactive-p' call;
-	`wildcards' set to t in interactive spec.
-
-	* ibuf-ext.el (ibuffer-jump-to-buffer): Read buffer name in
-	interactive spec rather than use `interactive-p'.
-	(ibuffer-kill-line): Set arg `interactive-p' in interactive spec
-	rather than use function `interactive-p'.
-
-2004-10-21  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-aent.el (calc-alg-ent-map, calc-alg-ent-esc-map):
-	Declare these variables with defvar.
-
-	* calc/calc-aent.el (calc-do-alg-entry): Since `calc-alg-ent-map'
-	is bound, only check to see if it is bound.
-
-2004-10-21  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* textmodes/tex-mode.el (tex-compilation-parse-errors):
-	Don't output messages.
-
-	* calc/calc-help.el (calc-describe-bindings): Fix last change.
-
-2004-10-21  John Paul Wallington  <jpw@gnu.org>
-
-	* calc/calc-graph.el (calc-graph-init):
-	Use `set-process-query-on-exit-flag'.
-
-2004-10-21  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compilation-start): Rely on `cd' to get
-	dir right and also allow argumentless cd.
-
-2004-10-19  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/flyspell.el (flyspell-mode): Doc fix.
-
-	* eshell/em-unix.el (eshell-grep):
-	Don't bind compilation-process-setup-function.
-
-	* comint.el (comint-insert-input): Use @ in `interactive'.
-	(comint-input-filter-functions): Doc fix.
-	(comint-kill-whole-line, comint-get-source): Doc fix.
-
-	* progmodes/compile.el (compilation-setup):
-	Don't set buffer-read-only if MINOR is non-nil.
-
-2004-10-19  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc.el (calc-emacs-type-19, calc-emacs-type-epoch)
-	(calc-emacs-type-gnu19): Remove.
-	(calc-digit-map, calc-read-key-sequence, calc-read-key):
-	Remove check for old emacs versions.
-
-	* calc/calc-ext.el (calc-fancy-prefix): Remove emacs version check.
-	(calc-init-extensions): Define `calc-alg-map' and `calc-alg-esc-map'
-	for current Emacs.
-
-	* calc/calc-aent.el (calcAlg-previous): Check to see if looking at
-	the end of the minibuffer.
-	(calc-do-alg-entry): Remove Emacs version check.  Use `copy-keymap' to
-	copy `esc-map'.
-
-	* calc/calc-graph.el (calc-graph-plot): Remove emacs version check.
-
-	* calc/calc-mode.el (calc-total-algebraic-mode): Remove error
-	call that would be given when the current emacs was used.
-
-2004-10-19  Ulf Jasper  <ulf.jasper@web.de>
-
-	* calendar/icalendar.el: Set coding to utf-8.
-	(icalendar-version): Increase to 0.07.
-	(icalendar-monthnumber-table): Change March pattern.
-	(icalendar-get-all-event-properties)
-	(icalendar-set-event-property): Delete.
-	(icalendar-all-events): No longer interactive.
-	(icalendar-convert-diary-to-ical)
-	(icalendar-extract-ical-from-buffer): Make obsolete, and alias to
-	their replacements.
-	(icalendar-export-file, icalendar-export-region): New functions;
-	essentially old `icalendar-convert-diary-to-ical' but appending to
-	target rather than overwriting.
-	(icalendar-import-file): Append to target file rather than
-	overwriting.  Fourth arg deleted.
-	(icalendar-import-buffer): New name for old
-	`icalendar-extract-ical-from-buffer'.
-	(icalendar--convert-string-for-import): New name for
-	old `icalendar-convert-for-import'.
-	(include-icalendar-files): Delete.
-	Prefix for all internal functions changed from `icalendar-'
-	to `icalendar--'.
-
-2004-10-19  Richard M. Stallman  <rms@gnu.org>
-
-	* paths.el (news-path): Fix previous change.
-
-2004-10-18  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-help.el (calc-describe-bindings):
-	Set `buffer-read-only' to nil while working in the keybindings buffer;
-	remove some extra information from the keybindings buffer.
-
-2004-10-18  David Ponce  <david@dponce.com>
-
-	* mouse.el (mouse-drag-move-window-top): New function.
-	(mouse-drag-mode-line-1): Use it.
-
-2004-10-18  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* info.el (Info-fontify-node): For multiline refs,
-	arrange to unfontify newline and surrounding whitespace.
-
-2004-10-17  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-arch.el (vc-arch-workfile-version): Don't burp if the patch-log
-	directory is missing.
-
-2004-10-17  John Paul Wallington  <jpw@gnu.org>
-
-	* ibuffer.el (ibuffer-default-display-maybe-show-predicates):
-	New customizable variable; whether to display buffers that match
-	`ibuffer-maybe-show-predicates' by default.
-	(ibuffer-maybe-show-predicates): Mention it in docstring.
-	(ibuffer-display-maybe-show-predicates): New variable.
-	(ibuffer-update): Prefix arg now toggles whether buffers that
-	match `ibuffer-maybe-show-predicates' should be displayed.
-	(ibuffer-mode): Set `ibuffer-display-maybe-show-predicates'
-	locally to heed `ibuffer-default-display-maybe-show-predicates'.
-	(ibuffer-redisplay-engine): Rename optional second arg to `ignore'.
-
-2004-10-17  Michael Albinus  <michael.albinus@gmx.de>
-
-	* net/tramp.el: Redo sync with Tramp 2.0.45.  Last commit did not
-	work correctly.
-
-2004-10-17  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* buff-menu.el (Buffer-menu-revert-function): Emulate save-excursion.
-	(Buffer-menu-beginning): New helper function.
-	(Buffer-menu-execute): Use it.
-	(Buffer-menu-select): Use it.
-	(Buffer-menu-sort): Use it and also keep markers.
-
-2004-10-17  Richard M. Stallman  <rms@gnu.org>
-
-	* paths.el (news-directory): Rename from news-path.  Old name alias.
-	(rmail-spool-directory): Use defvar.
-	(sendmail-program): Use defcustom.
-	(remote-shell-program): Use defcustom.
-	(term-file-prefix): Use defvar.
-	(abbrev-file-name): Use defvar.
-
-	* term.el: Add maintainer.
-
-	* subr.el (with-local-quit): Return nil if there's a quit.
-	(read-passwd): Use with-local-quit.  Doc fix.
-
-	* strokes.el (strokes-list-strokes): Don't try to delete char at eob.
-	(strokes-unload-hook): Set as a variable with add-hook.
-
-	* startup.el (fancy-splash-tail, normal-splash-screen):
-	Update copyright year.
-
-	* shadowfile.el (shadowfile-unload-hook): Set as variable w/ add-hook.
-
-	* server.el (server-unload-hook): Set as a variable with add-hook.
-
-	* help-at-pt.el (help-at-pt-unload-hook): Use add-hook; no defvar.
-
-	* frame.el (special-display-popup-frame):
-	Make the buffer current as its frame is created.
-
-	* delsel.el (delsel-unload-hook): Set as a variable.
-
-	* comint.el (comint-output-filter-functions):
-	Add comint-watch-for-password-prompt.
-	(comint-read-noecho): Function deleted.
-	(send-invisible): Use read-passwd.
-
-	* fringe.el (fringe-mode-initialize): New function.
-	(fringe-mode): Use fringe-mode-initialize as :initialize.
-
-2004-10-17  Kim F. Storm  <storm@cua.dk>
-
-	* language/indian.el (indian-script-language-alist): Swap value
-	and doc.
-	(indian-font-char-index-table): Doc fix.
-
-2004-10-16  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-hooks.el (vc-find-file-hook): Call vc-backend with absolute name.
-
-2004-10-16  Juri Linkov  <juri@jurta.org>
-
-	* progmodes/compile.el (compilation-start): Move let-binding of
-	`process-environment' into `with-current-buffer' body.
-	Reported by Matt Hodges <MPHodges@member.fsf.org>.
-
-2004-10-16  Richard M. Stallman  <rms@gnu.org>
-
-	* pcvs-util.el (cvs-bury-buffer):
-	Don't call get-buffer-window for effect.
-
-	* outline.el (hide-other): Call outline-up-heading with INVISIBLE-OK=t.
-
-	* newcomment.el (comment-auto-fill-only-comments): Add autoload.
-
-	* msb.el (msb-unload-hook): Set the variable.
-
-	* mouse.el (mouse-yank-at-click, mouse-yank-secondary):
-	Use * to err if buffer is readonly.
-
-	* subr.el (looking-back): Return only t or nil.
-
-	* whitespace.el (whitespace-unload-hook): Set the variable.
-
-	* view.el (view-mode-enable): Set view-page-size and
-	view-half-page-size to nil.
-	(view-set-half-page-size-default): view-half-page-size = nil
-	means the default.
-	(View-scroll-page-forward): Use view-page-size-default.
-	(View-scroll-page-backward): Likewise.
-	(view-page-size, view-half-page-size): Doc fixes.
-
-	* emacs-lisp/elp.el (elp-unload-hook): Set the variable.
-
-	* emacs-lisp/cl.el (cl-unload-hook): Don't defvar it, just set it.
-
-	* emacs-lisp/bytecomp.el (byte-compile-eval): Don't process
-	"cl" like other files.  Instead, call byte-compile-find-cl-functions.
-	(byte-compile-log-1): Bind inhibit-read-only.
-	(byte-compile-warning-prefix, byte-compile-log-file): Likewise.
-	(byte-compile-log-warning): Likewise.
-	(byte-compile-file-form-require): Detect "cl" from the arg value.
-
-	* progmodes/compile.el (compilation-start): Assume compilation-mode
-	will make the buffer read-only.
-	(compilation-mode): Take arg name-of-mode.
-	(compilation-setup): Make buffer read-only.
-	(compilation-handle-exit): Bind inhibit-read-only.
-
-	* textmodes/ispell.el (ispell-command-loop): Use with-no-warnings.
-	(ispell-message): Likewise.
-	(ispell-show-choices): Don't call get-buffer-window uselessly.
-	(ispell-init-process): Use set-process-query-on-exit-flag.
-
-2004-10-16  Kim F. Storm  <storm@cua.dk>
-
-	* fringe.el (fringe-bitmaps): Only initialize when defined.
-
-	* pcvs.el (cvs-mode-view-file, cvs-mode-view-file-other-window): Add.
-	(cvs-mode-find-file): Add optional `view' arg to enter view mode.
-
-	* pcvs-defs.el (cvs-mode-map): Bind v to cvs-mode-view-file.
-
-2004-10-15  Simon Josefsson  <jas@extundo.com>
-
-	* net/password.el: Add.
-
-2004-10-14  Masatake YAMATO  <jet@gyve.org>
-
-	* progmodes/gud.el (gdb-script-beginning-of-defun): New function.
-	(gdb-script-end-of-defun): New function.
-	(gdb-script-mode): Use `gdb-script-beginning-of-defun' and
-	`gdb-script-end-of-defun' as *-of-defun-function.
-
-2004-10-13  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* button.el (button-activate): Allow a marker to display as an action.
-
-	* help-fns.el (describe-variable): Use it to make "below" a hyperlink.
-
-	* help.el (describe-mode): Use it to make minor mode list into
-	hyperlinks.
-
-2004-10-13  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc.el (vc-annotate-display-select): Fix typo.
-
-	* subr.el (substitute-key-definition-key): New function.
-	(substitute-key-definition): Use it with map-keymap.
-	(event-modifiers): Use push.
-	(mouse-movement-p, with-temp-buffer): Simplify.
-
-2004-10-12  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-help.el (calc-help-function-list, calc-help-variable-list):
-	New variables.
-	(calc-help-index-entries): New function.
-	(calc-describe-function): Use `calc-help-function-list' instead of
-	obarray for completion.
-	(calc-describe-variable): Use `calc-help-variable-list' instead
-	of obarray for completion.
-
-2004-10-12  Richard M. Stallman  <rms@gnu.org>
-
-	* info-look.el (info-lookup-file): Add info-file property.
-	(info-lookup-symbol): Likewise.
-
-	* info.el (info-xref): Add underlining.
-	(info): Add info-file property.
-	(Info-find-emacs-command-nodes): Specify case-sensitive search.
-
-2004-10-12  Michael Albinus  <michael.albinus@gmx.de>
-
-	Sync with Tramp 2.0.45.
-
-	* net/tramp.el (top): Apply `def-edebug-spec' only if function is
-	defined.  This is not the case for XEmacs without package "edebug".
-	(tramp-set-auto-save-file-modes): Set permissions of autosaved
-	remote files to the permissions of the original file.  This is not
-	the case for Emacs < 21.3.50 and XEmacs < 21.5.  Add function to
-	`auto-save-hook'.  Reported by Thomas Prokosch <thomas@nadev.net>.
-	(tramp-perl-decode): Fix an error in Perl implementation.
-	$pending must be cleared every loop.  Reported by Benjamin Place
-	<benjaminplace@sprintmail.com>
-
-	* net/tramp-smb.el (tramp-smb-advice-PC-do-completion):
-	Don't activate advice during definition.  This is done later on,
-	depending on test result of `substitute-in-file-name'.
-	Suggested by Stefan Monnier <monnier@iro.umontreal.ca>.
-
-2004-10-12  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* pcvs-parse.el (cvs-parse-commit): Fix parsing for new commit message.
-
-	* emacs-lisp/lisp.el (mark-sexp): Preserve direction when repeating.
-
-2004-10-12  David Ponce  <david@dponce.com>
-
-	* recentf.el (recentf-edit-list): Update the menu when the recentf
-	list has been modified.
-
-2004-10-12  Simon Josefsson  <jas@extundo.com>
-
-	* net/tls.el (tls-certtool-program): New variable.
-	(tls-certificate-information): New function, based on
-	ssl-certificate-information.
-
-2004-10-12  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule.el (coding-system-equal): Move from mule-util.el.
-
-	* international/mule-util.el (coding-system-equal): Move to mule.el.
-
-2004-10-12  Kim F. Storm  <storm@cua.dk>
-
-	* kmacro.el (kmacro-insert-counter, kmacro-add-counter): Use and
-	reset kmacro-initial-counter-value if set.
-	(kmacro-set-counter): Only set kmacro-counter if defining or executing
-	macro.  Set kmacro-initial-counter-value otherwise.  Never set both.
-	(kmacro-display): Show macro counter if non-zero.
-
-	* subr.el (substitute-key-definition): Mention command remapping
-	in doc string.
-
-2004-10-11  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-misc.el (calc-info-goto-node): New function.
-	(calc-tutorial, calc-info-summary): Go to appropriate Calc info
-	node in one step.
-	(calc-describe-copying, calc-describe-distribution)
-	(calc-describe-thing, calc-describe-no-warranty, calc-describe-key):
-	Go to appropriate info node in one step.
-
-2004-10-11  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* pcvs-defs.el (pcl-cvs-load-hook): Remove unused var.
-
-	* font-lock.el (font-lock-apply-highlight): Fix last change.
-
-2004-10-11  Simon Josefsson  <jas@extundo.com>
-
-	* mail/smtpmail.el (smtpmail-open-stream): Look for
-	starttls-gnutls-program instead of starttls-program iff
-	starttls-use-gnutls is non-nil.
-	(smtpmail-open-stream): Don't overwrite user settings of
-	starttls-extra-arguments and starttls-extra-args.
-
-2004-10-10  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* comint.el (comint-mouse-insert-input): Remove.
-	(comint-insert-input): Make it work for mouse bindings.
-	(comint-mode-map): Move defs into the declaration.
-	(comint-output-filter): Typo.
-
-	* diff-mode.el (diff-current-defun): Fix 2004-06-13's change.
-
-2004-10-10  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	* net/ange-ftp.el (ange-ftp-remote-shell): Remove variable.
-	(ange-ftp-call-chmod): Reference remote-shell-program instead of
-	ange-ftp-remote-shell.
-
-2004-10-10  Andreas Schwab  <schwab@suse.de>
-
-	* emacs-lisp/byte-opt.el (byte-optimize-backward-word): Optimize
-	`(backward-word)' to `(forward-word -1)', not `(forward-char -1)'.
-	Reported by <sri@asu.edu>.
-
-2004-10-10  Benjamin Rutt  <brutt@bloomington.in.us>
-
-	* vc.el (vc-annotate-mode): Remove variable.
-	(vc-annotate-display-select): Only call vc-annotate-mode
-	if we're not in that mode already.
-
-2004-10-09  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* imenu.el (imenu--completion-buffer): Don't return t for rescan.
-	(imenu-choose-buffer-index): Check here for rescan instead.
-
-	* font-lock.el (font-lock-apply-highlight): Explicitly check the case
-	where the face expression evals to nil.
-
-	* textmodes/tex-mode.el (tex-font-lock-append-prop): New fun.
-	(tex-font-lock-keywords-2): Use it.
-	(tex-font-lock-syntactic-keywords): Fix the `verbatim' treatment.
-
-	* emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Fix backslashes.
-
-2004-10-09  Kim F. Storm  <storm@cua.dk>
-
-	* subr.el (progress-reporter-update): Define before first usage.
-	(make-progress-reporter): Doc fix.
-
-2004-10-09  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* textmodes/paragraphs.el (sentence-end-double-space)
-	(sentence-end-without-period, sentence-end-without-space)
-	(sentence-end): Doc fixes.
-
-2004-10-08  Peter Seibel  <peter@javamonkey.com>  (tiny change)
-
-	* emacs-lisp/lisp-mode.el (lisp-fill-paragraph):
-	Change paragraph-start regexp so we don't fill code starting with #'(.
-
-2004-10-08  Sebastien Kirche  <seki@seki.fr>  (tiny change)
-
-	* mail/mail-extr.el (mail-extr-ignore-realname-equals-mailbox-name):
-	New defcustom.
-	(extract-address-components): Use it.
-
-2004-10-08  Paul Pogonyshev  <pogonyshev@gmx.net>
-
-	* subr.el (make-progress-reporter, progress-reporter-update)
-	(progress-reporter-force-update, progress-reporter-do-update)
-	(progress-reporter-done): New functions.
-
-	* tar-mode.el (tar-summarize-buffer): Use progress reporter.
-
-	* progmodes/etags.el (etags-tags-completion-table): Use progress
-	reporter.
-	(etags-tags-apropos): Likewise.
-
-2004-10-08  Alan Mackenzie  <acm@muc.de>
-
-	* isearch.el (isearch-yank-line): C-y yanks to next EOL, not end
-	of current line.
-
-2004-10-08  Masatake YAMATO  <jet@gyve.org>
-
-	* server.el (server-process-filter): Wrap `process-send-region'
-	by `condition-case' to guard the case when the pipe to PROC is closed.
-
-2004-10-07  Mark A. Hershberger  <mah@everybody.org>
-
-	* xml.el (xml-substitute-special): Limit handling of external entities.
-
-2004-10-06  Nick Roberts  <nickrob@snap.net.nz>
-
-	* progmodes/gdb-ui.el (gdb-ann3): (Re-)initialize gdb-input-queue.
-
-2004-10-06  John Paul Wallington  <jpw@gnu.org>
-
-	* xml.el (xml-parse-dtd): Fix `error' call.
-
-2004-10-05  Mark A. Hershberger  <mah@everybody.org>
-
-	* xml.el (xml-substitute-special): Return a single string instead
-	of a list of strings if an entity substitution is made.
-
-2004-10-05  Ulf Jasper  <ulf.jasper@web.de>
-
-	* calendar/icalendar.el: New file.
-
-2004-10-05  Juri Linkov  <juri@jurta.org>
-
-	* isearch.el (isearch-done): Set mark after running hook.
-	Reported by Drew Adams <drew.adams@oracle.com>.
-
-	* info.el (Info-history, Info-toc): Fix Info headers.
-	(Info-toc): Narrow buffer before Info-fontify-node.
-	(Info-build-toc): Don't check for special Info file names.
-	Set main-file to nil if Info-find-file returns a symbol.
-
-2004-10-05  Emilio C. Lopes  <eclig@gmx.net>
-
-	* calendar/calendar.el (calendar-goto-iso-week): Add autoload.
-	(calendar-mode-map): Add binding for `calendar-goto-iso-week'.
-	* calendar/cal-menu.el (calendar-mode-map): Ditto.
-
-2004-10-05  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/cal-iso.el (calendar-iso-read-args): New function,
-	for old interactive spec from calendar-goto-iso-date.
-	(calendar-goto-iso-date): Use it.
-	(calendar-goto-iso-week): New function.  Suggested by Emilio
-	C. Lopes <eclig@gmx.net>.
-
-2004-10-04  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* textmodes/enriched.el (enriched-mode-map): Give `set-left-margin' and
-	`set-right-margin' bindings that follow the minor mode conventions.
-
-2004-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* textmodes/tex-mode.el (tex-dvi-view-command): Use `yap' on w32.
-	(tex-font-lock-keywords-1): Add url and nolinkurl for args with `_'.
-	(latex-block-args-alist): Add minipage and picture.
-	(latex-block-body-alist): Use reftex-label if enabled.
-	(latex-insert-block): Don't insert a \n if not necessary.
-	(tex-compile-commands): Make sure dvips doesn't send to printer.
-	(tex-compile-default): Handle the case where no executable is found.
-	(latex-noindent-environments): New var.
-	(latex-find-indent): Use it.  Take an empty line as an arg-breaker.
-	If tex-indent-allhanging is non-nil, make sure we only align for macros
-	at beginning of line.
-
-2004-10-03  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* newcomment.el (comment-beginning): Doc fix and don't choke on
-	unset `comment-end-skip' when at beginning of comment.
-
-2004-10-02  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* term.el (term-adjust-current-row-cache): Don't allow the current
-	row to become negative.
-	(term-emulate-terminal): Fix insert mode.  Handle tab insertion at
-	the end of the line.  Fix scroll down.  Add comments.
-	(term-handle-ansi-escape): Don't exceed terminal width when moving
-	right.
-	(term-scroll-region): Move the cursor after setting the scroll region.
-
-2004-10-01  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* indent.el (set-left-margin, set-right-margin): Rename `lm' arg
-	to `width' for consistency with docstring.  Doc fix.
-
-2004-10-01  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-langs.el: Load cl here since cc-defs doesn't do it.
-	This is necessary for derived modes.
-
-2004-09-30  Kim F. Storm  <storm@cua.dk>
-
-	* kmacro.el (kmacro-lambda-form, kmacro-extract-lambda): Add.
-	(kmacro-bind-to-key, kmacro-name-last-macro): Use kmacro-lambda-form.
-
-	* edmacro.el: Require kmacro to use the new kmacro-lambda-form and
-	kmacro-extract-lambda functions.
-	(edit-kbd-macro): Handle kmacro lambda forms.
-	Include counter and counter format in edit buffer.
-	(edmacro-finish-edit): Get counter and format from edit buffer and
-	update kmacro bindings when found.
-
-2004-09-29  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* textmodes/paragraphs.el (forward-paragraph):
-	Avoid args-out-of-range error when point winds up at the beginning of
-	the buffer and hard newlines are enabled.
-
-	* newcomment.el (comment-multi-line): Doc fix.
-
-2004-09-29  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* diff-mode.el (diff-file-header-re): Tighten up regexp a tiny bit.
-	(diff-fixup-modifs): Catch unified-diff file-headers.
-
-2004-09-29  Kim F. Storm  <storm@cua.dk>
-
-	* progmodes/gdb-ui.el (breakpoint): Define as fringe bitmap.
-	(gdb-mouse-toggle-breakpoint): Fix fringe-bitmaps-at-pos usage.
-	(gdb-put-breakpoint-icon): Use breakpoint bitmap.
-
-	* fringe.el (fringe-bitmap-p): New macro.
-	(fringe-bitmaps): Add standard fringe bitmaps on load.
-
-2004-09-28  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* dired.el (dired-view-command-alist): Use more efficient regexps.
-	Remove dubious arguments.
-	(dired-align-file): New function.
-	(dired-insert-directory): Use it.
-	(dired-move-to-end-of-filename): Make the " -> " search more specific.
-	(dired-buffers-for-dir): Remove unused var `pattern'.
-
-2004-09-28  Matthew Mundell  <matt@mundell.ukfsn.org>
-
-	* calendar/diary-lib.el (list-diary-entries): Save diary buffer
-	from diary display excursion.  Store diary buffer's point for
-	`simple-diary-display'.
-	(simple-diary-display): Set window point and start when
-	displaying buffer, to preserve point.
-
-2004-09-27  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* textmodes/enriched.el (enriched-translations): Replace defconst
-	with defvar.
-
-2004-09-26  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: Doc fix.
-	(pr-version): New version number (6.8.1).
-	(pr-ps-file-using-ghostscript): Use make-temp-file instead of
-	make-temp-name.
-	(pr-delete-file): Check if file exists before deleting it.
-	Reported by Lennart Borgman <lennart.borgman.073@student.lu.se>.
-
-2004-09-26  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* term.el (term-display-table): New variable.
-	(term-mode): Use it.
-	(term-exec-1): Set the coding system to binary.
-	(term-emulate-terminal): Decode the string before inserting it.
-
-2004-09-26  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* term.el (term-ansi-at-eval-string, term-ansi-default-fg)
-	(term-ansi-default-bg, term-ansi-current-temp): Delete unused vars.
-	(map): Bind S-prior, S-next and S-insert.
-	(term-mode): Set `indent-tabs-mode' to nil.
-	(term-paste): New function to be bound to S-insert.
-	(term-send-del, term-send-backspace): Change the strings sent.
-	(term-termcap-format): Synchronize with etc/e/eterm.ti.
-	(term-handle-colors-array): Fix handling of underline and reverse.
-	(term-handle-ansi-escape): Do not handle smcup/rmcup.  Add comments.
-	(term-erase-in-line): Fix comparison.
-	(term-emulate-terminal): Fix line wrap handling.
-	(term-start-output-log): Rename from `term-set-output-log'.
-	(term-stop-output-log): Rename from `term-stop-photo'.
-	(term-switch-to-alternate-sub-buffer): Comment out, unused.
-
-2004-09-25  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* dired.el (dired-move-to-filename): Don't output a message if
-	raise-error is non-nil.  Fix return position and value.
-
-	* files.el (insert-directory): Obey --dired even with symlinks.
-
-2004-09-25  Lars Hansen  <larsh@math.ku.dk>
-
-	* ls-lisp.el (ls-lisp-format): Mark file names with property
-	dired-filename.
-
-2004-09-25  Kim F. Storm  <storm@cua.dk>
-
-	* ido.el (ido-max-directory-size): New defcustom.
-	(ido-decorations): Add "too big" element.
-	(ido-directory-too-big): New dynamic var.
-	(ido-may-cache-directory): Don't cache big directories.
-	(ido-directory-too-big-p): New defun.
-	(ido-set-current-directory): Update ido-directory-too-big.
-	(ido-read-internal): Make empty ido-cur-item if too-big.
-	(ido-buffer-internal): Use ido-read-internal directly instead of
-	ido-read-buffer.
-	(ido-file-internal): Init ido-directory-too-big.
-	(ido-complete): <TAB> If ido-directory-too-big is set, clear it,
-	and redo completion with full list.
-	(ido-toggle-ignore): <C-a> If ido-directory-too-big is set, clear
-	it, and show completions.
-	(ido-all-completions): Let bind ido-directory-too-big to nil.
-	(ido-exhibit): Handle ido-directory-too-big.
-	(ido-read-buffer): Handle fallback to read-buffer.
-	Init ido-directory-too-big.
-	(ido-read-file-name, ido-read-directory-name, ido-completing-read):
-	Init ido-directory-too-big.
-
-2004-09-24  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* subr.el (delay-mode-hooks): Doc fix.
-
-2004-09-23  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* textmodes/enriched.el
-	(enriched-default-text-properties-local-flag): New variable.
-	(enriched-mode): Make sure that enabling and disabling the mode is
-	a no-op.  Doc fix.
-
-2004-09-23  H,Ae(Bkon Malmedal  <hmalmedal@yahoo.no>  (tiny change)
-
-	* calendar/holidays.el (holiday-advent): Report on a specified day
-	offset from advent, not just advent.
-	(holiday-easter-etc): Report on one specified day offset from
-	easter, not all easter holidays.  Various Easter holidays moved to
-	`christian-holidays' variable in calendar.el.
-	* calendar/calendar.el (christian-holidays): Adapt for new
-	behavior of `holiday-advent' and `holiday-easter-etc' functions.
-
-2004-09-23  Kim F. Storm  <storm@cua.dk>
-
-	* image.el (insert-sliced-image): Add doc string.
-
-	* ido.el (ido-choice-list): New dynamic var for `list' context.
-	(ido-context-switch-command): New dynamic var.
-	(ido-define-mode-map): Generalize switch between file/buffer contexts.
-	(ido-read-internal): Handle new `list' context.
-	Handle insert-buffer and insert-file ido-exit values.
-	(ido-buffer-internal): New arg switch-cmd.  Use it to setup
-	ido-context-switch-command.  Handle insert-file ido-exit value.
-	(ido-read-buffer): Set ido-context-switch-command to 'ignore
-	unless it is already bound by caller.
-	(ido-file-internal): New arg switch-cmd.  Use it to setup
-	ido-context-switch-command.  Handle insert-buffer ido-exit value.
-	(ido-enter-insert-buffer, ido-enter-insert-file): New commands
-	used for context switching.
-	(ido-all-completions): Handle new `list' context.
-	(ido-make-choice-list): Return choices for `list' context.
-	(ido-find-file-in-dir, ido-display-file, ido-write-file)
-	(ido-display-buffer, ido-kill-buffer): Disable context switching.
-	(ido-insert-buffer, ido-insert-file): Setup context switching.
-	(ido-exhibit): Handle `list' context.
-	(ido-read-file-name): Disable context switching.  Handle fallback.
-	(ido-read-directory-name): Disable context switching.
-	(ido-completing-read): New defun like completing-read.  Setup and
-	use new `list' context.
-
-2004-09-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* progmodes/tcl.el (inferior-tcl): Use pop-to-buffer.
-
-2004-09-21  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc-graph.el (calc-graph-add-curve): Move the call to
-	`calc-graph-set-styles' so the gnuplot buffer will appear in a
-	separate window.
-
-2004-09-21  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* subr.el (after-change-major-mode-hook): Doc fix.
-
-2004-09-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: Doc fix.  Add a new tip about the use of gsprint instead
-	of ghostscript for monochrome PostScript file in Windows.
-
-2004-09-21  Kenichi Handa  <handa@m17n.org>
-
-	* descr-text.el (describe-char): Checking of quail activation fixed.
-
-2004-09-21  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc.el (calc-mode-var-list): Remove unnecessary quotes.
-
-2004-09-20  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* subr.el (run-mode-hooks): Run `after-change-major-mode-hook'
-	after the mode hooks instead of before.  Doc fix.
-
-2004-09-20  Jason Rumney  <jasonr@gnu.org>
-
-	* startup.el (command-line) [windows-nt]: Try .emacs first, then
-	_emacs, but revert to .emacs if neither exists in home directory.
-
-2004-09-20  John Paul Wallington  <jpw@gnu.org>
-
-	* bindings.el (completion-ignored-extensions): Add .dfsl.
-
-2004-09-20  Richard M. Stallman  <rms@gnu.org>
-
-	* bindings.el (scroll-left): Make it disabled.
-
-	* files.el (enable-local-eval): Doc fix.
-
-	* indent.el (move-to-left-margin): Special case for minibuffer.
-
-	* term.el (term-emulate-terminal): Turn off undo for output.
-	Use with-current-buffer and save-selected-window.
-
-	* eshell/esh-ext.el (eshell-explicit-command-char): Doc fix.
-
-	* progmodes/make-mode.el (makefile-fill-paragraph):
-	Don't insist on spaces when looking for comments.  # is enough.
-
-	* files.el (hack-local-variables): Copy the variables list
-	to another buffer, strip prefixes and suffixes there, then read.
-	(enable-local-eval): Doc fix.
-	(ignored-local-variables): Initialize to nil.
-	(risky-local-variable-p): Don't check ignored-local-variables here.
-	(hack-one-local-variable): Ignore var if in ignored-local-variables.
-
-2004-09-20  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* progmodes/sh-script.el (sh-mode-default-syntax-table): Set syntax
-	of = to "." (punctuation).
-
-2004-09-19  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* subr.el (event-basic-type): Fix mask (extend to 22bits).
-
-2004-09-18  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* textmodes/enriched.el (enriched-rerun-flag): New variable.
-	(enriched-before-change-major-mode): New function.
-	Add it to `change-major-mode-hook'.
-	(enriched-after-change-major-mode): New function.
-	Add it to `after-change-major-mode-hook'.
-	(enriched-mode): Make it work correctly if called from
-	`after-change-major-mode-hook'.
-	No longer set `indent-line-function'.
-
-	* simple.el (fundamental-mode): Run `after-change-major-mode-hook'.
-
-	* subr.el (after-change-major-mode-hook): New variable.
-	(run-mode-hooks): Implement it.
-
-2004-09-18  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* battery.el (battery-linux-proc-apm): Use string-to-number.
-	(battery-linux-proc-acpi): Ignore all hidden files in the battery dir.
-	Use dolist (and less indentation).  Use erase-buffer.
-	Pre-initialize `design-capacity', `warn', and `low'.
-	(battery-format): Use replace-regexp-in-string.
-
-2004-09-18  Ralph Schleicher  <rs@nunatak.allgaeu.org>
-
-	* battery.el: Delete superfluous empty lines.
-	(battery-linux-proc-acpi): Attempt to gather information from all
-	battery subdirectories regardless of their file name.
-	(battery-linux-proc-apm): Replace all occurrences of
-	battery-hex-to-int-2 with string-to-int (base 16).
-	(battery-hex-to-int-2, battery-hex-to-int): Delete functions.
-	(battery-hex-map): Delete variable.
-
-2004-09-18  John Paul Wallington  <jpw@gnu.org>
-
-	* calc/calc-units.el (calc-quick-units): Fix overzealous
-	s/or/unless/.
-
-2004-09-17  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc.el (calc-mode-var-list): Fix the value of
-	`calc-matrix-brackets'.
-
-2004-09-17  Romain Francoise  <romain@orebokech.com>
-
-	* ibuf-ext.el (define-ibuffer-filter filename):
-	Expand dired-directory since buffer-file-name is absolute.
-
-2004-09-17  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* ediff-init.el (ediff-current-diff-face-A)
-	(ediff-current-diff-face-B, ediff-current-diff-face-C)
-	(ediff-current-diff-face-Ancestor)
-	(ediff-fine-diff-face-A, ediff-fine-diff-face-B)
-	(ediff-fine-diff-face-C, ediff-fine-diff-face-Ancestor)
-	(ediff-even-diff-face-A, ediff-even-diff-face-B)
-	(ediff-even-diff-face-C, ediff-even-diff-face-Ancestor)
-	(ediff-odd-diff-face-A, ediff-odd-diff-face-B)
-	(ediff-odd-diff-face-C, ediff-odd-diff-face-Ancestor):
-	Use min-colors.
-
-	* term.el (term-down): Perform vertical motion if DOWN is negative.
-	(term-exec-1): Set both TERMCAP and TERMINFO unconditionally.
-	(term-termcap-format): Synchronize with the eterm terminfo entry
-	in etc/e/eterm.ti.
-	(term-handle-colors-array): If the current foreground or
-	background are zero (i.e. unspecified), use the foreground and
-	background of the default face for reverse video.
-	(term-ansi-at-eval-string, term-ansi-default-fg)
-	(term-ansi-default-bg, term-ansi-current-temp): Delete unused variable.
-	(term-mem): Delete unused function.
-	(term-protocol-version): Increment.
-	(term-current-face): Set to default.
-
-2004-09-15  Jay Belanger  <belanger@truman.edu>
-
-	* calc/calc.el (calc-mode-var-list): Define this variable.
-	(calc-always-load-extensions, calc-line-numbering)
-	(calc-line-breaking, calc-display-just, calc-display-origin)
-	(calc-number-radix, calc-leading-zeros, calc-group-digits)
-	(calc-group-char, calc-point-char, calc-frac-format)
-	(calc-prefer-frac, calc-hms-format, calc-date-format)
-	(calc-float-format, calc-full-float-format, calc-complex-format)
-	(calc-complex-mode, calc-infinite-mode, calc-display-strings)
-	(calc-matrix-just, calc-break-vectors, calc-full-vectors)
-	(calc-full-trail-vectors, calc-vector-commas, calc-vector-brackets)
-	(calc-matrix-brackets, calc-language, calc-language-option)
-	(calc-left-label, calc-right-label, calc-word-size)
-	(calc-previous-modulo, calc-simplify-mode, calc-auto-recompute)
-	(calc-display-raw, calc-internal-prec, calc-angle-mode)
-	(calc-algebraic-mode, calc-incomplete-algebraic-mode)
-	(calc-symbolic-mode, calc-matrix-mode, calc-shift-prefix)
-	(calc-window-height, calc-display-trail, calc-show-selections)
-	(calc-use-selections, calc-assoc-selections)
-	(calc-display-working-message, calc-auto-why, calc-timing)
-	(calc-mode-save-mode, calc-standard-date-formats)
-	(calc-autorange-units, calc-was-keypad-mode, calc-full-mode)
-	(calc-user-parse-tables, calc-gnuplot-default-device)
-	(calc-gnuplot-default-output, calc-gnuplot-print-device)
-	(calc-gnuplot-print-output, calc-gnuplot-geometry)
-	(calc-graph-default-resolution, calc-graph-default-resolution-3d)
-	(calc-invocation-macro, calc-show-banner): Give these values as
-	part of `calc-mode-var-list's initialization after the variables
-	are declared with defvar.
-	(calc-bug-address): Change email address to send bug reports to.
-	Change the maintainer address at the top.
-	(calc-mode): Compare `calc-settings-file' to `user-init-file' rather
-	than "\\.emacs" to determine if it is the user-init-file.
-
-	* calc/calc-embed.el (calc-embedded-set-modes): Use
-	`calc-mode-var-list' correctly.
-
-2004-09-15  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* vc.el (annotate-time): Document point handling.
-	(vc-annotate-display-autoscale): Doc fix.
-
-2004-09-15  Miles Bader  <miles@gnu.org>
-
-	* generic.el (generic-make-keywords-list): Use symbol rather than
-	word anchors in regexp.
-
-2004-09-14  Sean O'Rourke  <sorourke@cs.ucsd.edu>
-
-	* ibuf-ext.el (define-ibuffer-filter filename): If buffer has
-	no file name consider `dired-directory'.
-
-2004-09-14  Kim F. Storm  <storm@cua.dk>
-
-	* faces.el (cursor): Add face-no-inherit property.  Doc fix.
-
-2004-09-14  Simon Josefsson  <jas@extundo.com>
-
-	* files.el (auto-mode-alist): Map .soa and .zone to dns-mode.
-
-	* textmodes/dns-mode.el: Add.
-
-2004-09-13  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* novice.el (disabled-command-hook): Use shorthand for obsolescence.
-	(disabled-command-function): Make the ?\  char more obvious.
-
-	* vc-arch.el (vc-arch-root, vc-arch-registered):
-	* vc-mcvs.el (vc-mcvs-root, vc-mcvs-registered): Use vc-find-root.
-
-2004-09-13  Hovav Shacham  <hovav@sha1.stanford.edu>
-
-	* windmove.el (windmove-frame-edges): Report coordinates of
-	outside edges of frame, not inside edges.
-	(windmove-coordinates-of-position): Convert into wrapper to new
-	function `windmove-coordinates-of-window-position';
-	`compute-motion' always applies to selected window.
-	(windmove-coordinates-of-position): Update documentation to refer
-	to Emacs 21 Lisp Reference Manual.
-	(windmove-find-other-window): Fix off-by-one errors for max x,y.
-
-2004-09-13  Kim F. Storm  <storm@cua.dk>
-
-	* isearch.el (isearch-resume-in-command-history): Rename from
-	isearch-resume-enabled and change default to nil.
-
-2004-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-hooks.el (vc-ignore-dir-regexp): New var.
-	(vc-registered): Use it.
-	(vc-find-root): New fun.
-
-	* emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine):
-	Don't tell to use \\{...} when it's already done.
-
-	* textmodes/bibtex.el (bibtex-generate-url-list): Change format.
-	Provide a sample complex default.
-	(bibtex-url, bibtex-font-lock-url): Adapt to new format.
-	(bibtex-entry): Use mapc.
-
-2004-09-12  Kim F. Storm  <storm@cua.dk>
-
-	* kmacro.el (kmacro-step-edit-prompt): Add "%s" format to message.
-
-	* emulation/cua-rect.el (cua--rectangle-operation): Let bind
-	inhibit-field-text-motion to t so rectangles work in comint buffers.
-
-	* simple.el (choose-completion-string): Set buffer before running
-	choose-completion-string-functions hook so it can be buffer-local.
-
-2004-09-12  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compilation-start): Parse command to see
-	if it starts with a cd, and if so perform it for the *compilation*
-	buffer.  Change the header to reflect this.
-
-2004-09-11  Kim F. Storm  <storm@cua.dk>
-
-	* ido.el (ido-enable-dot-prefix): Doc fix.
-	(ido-enable-dot-prefix): New defcustom.
-	(ido-set-matches1): Use it.
-
-2004-09-10  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* textmodes/bibtex.el (bibtex-mark-active)
-	(bibtex-run-with-idle-timer): Move the `if' inside the defun.
-
-2004-09-10  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
-
-	* textmodes/bibtex.el (bibtex-autokey-titleword-ignore): Regexp is
-	used in a case insensitive environment.
-	(bibtex-mode-map): Rearrange order of menus.
-	(bibtex-quoted-string-re): Obsolete.
-	(bibtex-complete-key-cleanup): Variable replaced by new function.
-	(bibtex-font-lock-keywords): Use backquotes.
-	(bibtex-font-lock-url-regexp): New internal variable.
-	(bibtex-name-in-field): New optional arg remove-opt-alt to remove
-	"OPT" and "ALT".
-	(bibtex-insert-current-kill, bibtex-make-field)
-	(bibtex-prepare-new-entry, bibtex-yank-pop, bibtex-String): Use unless.
-	(bibtex-parse-field-text): Simplify.
-	(bibtex-string=): New helper function.
-	(bibtex-member-of-regexp): Merge with bibtex-autokey-get-title.
-	(bibtex-map-entries): Use bibtex-string=.
-	(bibtex-search-entry): Use not.
-	(bibtex-enclosing-field): Fix docstring.
-	(bibtex-assoc-regexp): Obsolete.
-	(bibtex-format-entry): Use assoc-string and bibtex-string=.
-	(bibtex-autokey-get-names): Handle empty name field.
-	(bibtex-parse-strings): Use assoc-string and unless.
-	(bibtex-complete-string-cleanup): Expansion list is passed as an arg.
-	Use assoc-string.
-	(bibtex-pop): Simplify.
-	(bibtex-mode): Set font-lock-extra-managed-props.
-	(bibtex-entry-update): Use assoc-string.
-	(bibtex-parse-entry): Remove "OPT" and "ALT" from FIELD.
-	(bibtex-autofill-entry): Use bibtex-string=.
-	(bibtex-print-help-message): Simplify.
-	(bibtex-find-entry): New optional arg START.
-	(bibtex-validate): Use bibtex-string= and assoc-string.
-	Do not call obsolete function compilation-parse-errors.
-	(bibtex-remove-delimiters): Only remove delimiters if present.
-	(bibtex-copy-entry-as-kill): Add docstring.
-	(bibtex-clean-entry): Use bibtex-string=.  Handle empty keys.
-	Detect duplicate keys if bibtex-maintain-sorted-entries is nil.
-	(bibtex-complete): Use bibtex-predefined-month-strings,
-	bibtex-string=, and new function bibtex-complete-key-cleanup.
-	(bibtex-generate-url-list): New variable.
-	(bibtex-url): New command bound to C-c C-l and mouse-2.
-	(bibtex-url-map): New local keymap for bibtex-url-mouse.
-	(bibtex-font-lock-url): New function.
-
-2004-09-09  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/grep.el (grep-mode): Remove unnecessary autoload.
-
-2004-09-09  Kim F. Storm  <storm@cua.dk>
-
-	* kmacro.el (kmacro-bind-to-key): Associate dedicated macro
-	counter and format with binding.
-	(kmacro-name-last-macro): New defun.  Like name-last-kbd-macro, but
-	the declared macro uses own macro counter and format.  Give symbol
-	kmacro property.
-	(kmacro-keymap): Bind kmacro-name-last-macro to n.
-	(kmacro-start-macro, kmacro-end-macro, kmacro-call-macro)
-	(kmacro-end-and-call-macro): Doc fix.
-
-2004-09-09  Lars Hansen  <larsh@math.ku.dk>
-
-	* desktop.el (desktop-clear-preserve-buffers):
-	Remove make-obsolete-variable.
-
-2004-09-08  Richard M. Stallman  <rms@gnu.org>
-
-	* buff-menu.el (list-buffers-noselect): Call format-mode-line
-	with the buffer as argument.
-
-2004-09-08  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-arch.el (vc-arch-state): Fix parsing for `names' method.
-
-2004-09-08  Juri Linkov  <juri@jurta.org>
-
-	* replace.el (perform-replace): Use `query-replace-descr'.
-
-	* cus-start.el (history-delete-duplicates): Specify customization.
-
-	* diff-mode.el (diff-mode-map):
-	* progmodes/compile.el (compilation-mode-map):
-	* progmodes/grep.el (grep-mode-map):
-	* replace.el (occur-mode-map): Rename `next-error-follow-mode'
-	to `next-error-follow-minor-mode'.
-
-2004-09-08  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
-
-	* isearch.el (isearch-lazy-highlight-update): Take into account
-	the case of zero-length match at the search bound.
-
-2004-09-08  Kim F. Storm  <storm@cua.dk>
-
-	* emulation/cua-rect.el (cua--highlight-rectangle): Fix last
-	change.  Use zero width overlays when necessary.
-
-2004-09-08  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* subr.el (split-string): Docfix.
-
-2004-09-08  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* emacs-lisp/bytecomp.el (byte-compile-generate-call-tree): Doc fix.
-	(display-call-tree): Ensure newline after caller/calls blocks.
-
-2004-09-08  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* startup.el (command-line-1): Make option
-	--directory/-L modify `load-path' straight away.
-
-2004-09-08  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* progmodes/grep.el (grep-mode): Use normal autoload cookie.
-
-2004-09-08  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* emacs-lisp/autoload.el (make-autoload):
-	Handle `define-compilation-mode'.
-
-	* emacs-lisp/lisp-mode.el (define-compilation-mode):
-	Specify `doc-string-elt' property.
-
-2004-09-08  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* bs.el (bs-mode): Doc fix.
-
-2004-09-08  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* info.el (Info-insert-dir): Fix temp buffer leak bug.
-
-2004-09-08  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* play/blackbox.el (bb-trace-ray): Avoid double tracing.
-
-2004-09-08  Kenichi Handa  <handa@m17n.org>
-
-	* ps-mule.el: Fix old function calls (ps-mule-chars-in-string ->
-	length, ps-mule-string-char -> aref, ps-mule-next-index -> 1+,
-	ps-mule-next-point -> 1+).
-
-	* composite.el (encode-composition-rule): Add autoload cookie.
-
-2004-09-07  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* format.el (buffer-auto-save-file-format): Make it permanent local.
-
-2004-09-07  Kim F. Storm  <storm@cua.dk>
-
-	* emacs-lisp/authors.el (authors-aliases): Add more aliases.
-	(authors-fixed-entries): Fix typo.
-	(authors-canonical-author-name): Compact multiple spaces.
-	Ignore trivial names (e.g. only first name).
-
-	* term.el (term-window-width): Only use full window width on
-	window system if overflow-newline-into-fringe is enabled.
-	(term-mode): Don't disable overflow-newline-into-fringe.
-
-2004-09-07  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* term/xterm.el (function-key-map): Add bindings for C- and S- cursor
-	motion as seen on my Mac OS X xterms.
-
-	* newcomment.el (uncomment-region-default, comment-region-default):
-	New functions extracted from uncomment-region and comment-region.
-	(comment-region, comment-region-function, uncomment-region)
-	(uncomment-region-function): Use them.
-
-	* pcvs-util.el (cvs-string-prefix-p): Use compare-strings.
-
-	* pcvs-info.el (cvs-states): Allow `ignore' on NEED-UPDATE.
-	It's not crucial but can make sense at times.
-
-	* vc-arch.el (vc-arch-workfile-version): Handle the special case before
-	the first commit.
-
-	* vc.el (vc-buffer-context, vc-restore-buffer-context):
-	Disable obsolete code.
-
-2004-09-07  Juri Linkov  <juri@jurta.org>
-
-	* progmodes/grep.el (grep-highlight-matches): Change default from
-	`t' to `auto-detect', and type from `boolean' to `choice'.  Doc fix.
-	(grep-compute-defaults): Set `grep-highlight-matches' to `t'
-	if grep option `--color' is available, or to `nil' otherwise.
-	(grep-process-setup): Call `grep-compute-defaults' if
-	`grep-highlight-matches' is not computed.  Set env-vars only
-	if `grep-highlight-matches' is `t'.
-	(grep-use-null-device): Remove redundant type `boolean' (`choice'
-	is already defined).
-
-	* progmodes/compile.el (compilation-start): Use copy of
-	`process-environment' created by `copy-sequence' to not
-	modify env-vars in the global `process-environment'.
-
-2004-09-06  Eli Zaretskii  <eliz@gnu.org>
-
-	* simple.el (next-error-follow-minor-mode): Fix last change.
-
-2004-09-05  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* textmodes/paragraphs.el (use-hard-newlines): Make it into a
-	permanent local.
-
-2004-09-04  Richard M. Stallman  <rms@gnu.org>
-
-	* isearch.el (isearch-lazy-highlight-new-loop): Don't invoke
-	highlighting if the search string is empty.
-
-2004-09-04  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* facemenu.el (facemenu-active-faces): Change condition of inner
-	`while' loop to also check the first two elements of `face-atts'
-	and `mask-atts'.
-
-2004-09-04  John Paul Wallington  <jpw@gnu.org>
-
-	* thumbs.el (thumbs-view-image-mode-map): Fix command name typo.
-	(thumbs-view-image-mode): Make buffer read-only.
-
-2004-09-04  Christopher J. Madsen  <cjm@pobox.com>
-
-	* textmodes/ispell.el (ispell-really-aspell): New defvar.
-	(ispell-check-version): Set it.
-	(ispell-send-replacement): New function.
-	(ispell-process-line): Call ispell-send-replacement.
-
-2004-09-04  Matt Hodges  <matt@stchem.bham.ac.uk>  (tiny change)
-
-	* eshell/em-pred.el (eshell-predicate-help-string): Doc fix.
-	Support choosing seconds with "s".
-
-2004-09-04  Jari Aalto  <jari.aalto@poboxes.com>
-
-	* terminal.el (te-escape): Show `?' in prompt for help key.
-
-2004-09-04  Emilio C. Lopes  <eclig@gmx.net>
-
-	* emacs-lisp/lisp.el (kill-backward-up-list): New function.
-
-2004-09-04  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* simple.el (next-error-follow-minor-mode)
-	(next-error-follow-mode-post-command-hook): New functions.
-	(next-error-follow-last-line): New defvar.
-
-	* diff-mode.el (diff-mode-map): Bind next-error-follow-mode.
-	* progmodes/compile.el (compilation-mode-map): Likewise.
-	* progmodes/grep.el (grep-mode-map): Likewise.
-	* replace.el (occur-mode-map): Likewise.
-
-	* newcomment.el (uncomment-region): Bind comment-use-global-state
-	to nil.
-
-2004-09-03  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el (auto-revert-handler): Bind `buffer-read-only'
-	locally around the call to `revert-buffer'.
-
-2004-09-03  Juri Linkov  <juri@jurta.org>
-
-	* isearch.el (isearch-toggle-regexp): Set `isearch-success' and
-	`isearch-adjusted' to `t'.
-	(isearch-toggle-case-fold): Set `isearch-success' to `t'.
-	(isearch-message-prefix): Add "pending" for isearch-adjusted.
-	(isearch-other-meta-char): Restore isearch-point unconditionally.
-	(isearch-query-replace): Add new arg `regexp-flag' and use it.
-	Set point to start of match if region is not active in transient
-	mark mode (to include the current match to region boundaries).
-	Push the search string to `query-replace-from-history-variable'.
-	Add prompt "Query replace regexp" for isearch-regexp.
-	Add region beginning/end as last arguments of `perform-replace.'
-	(isearch-query-replace-regexp): Replace code by the call to
-	`isearch-query-replace' with arg `t'.
-
-2004-09-03  Richard M. Stallman  <rms@gnu.org>
-
-	* startup.el (normal-top-level): Undo previous TERM change.
-
-2004-09-03  Kim F. Storm  <storm@cua.dk>
-
-	* emulation/cua-rect.el (cua--overlay-keymap): New keymap for
-	highlight overlays; allow using RET when cursor is over a button.
-	(cua--highlight-rectangle): Use it.
-	(cua--rectangle-set-corners): Don't move backwards at eol.
-	(cua--forward-line): Don't move into void after eob.
-
-	* emulation/cua-rect.el (cua--rectangle-set-corners): Ensure that
-	point is set (and displayed) inside rectangle.
-	(cua--rectangle-operation): Fix for highlight of empty lines.
-	(cua--highlight-rectangle): Fix highlight for tabs.
-	Position cursor at left/right edge of rectangle using new `cursor'
-	property on overlay strings.
-	(cua--indent-rectangle): Don't tabify.
-	(cua-rotate-rectangle): Ignore that point has moved.
-
-2004-09-02  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
-
-	* term/mac-win.el: Add ASCII equivalents for some function keys.
-	(mode-line-frame-identification): Sync with x-win.el.
-
-2004-09-02  Juri Linkov  <juri@jurta.org>
-
-	* progmodes/compile.el (compilation-buffer-name): Compare major
-	mode with second element of compilation-arguments instead of third
-	to reflect latest changes in compilation-arguments structure.
-	(recompile): Use global variable `compilation-directory' to get
-	recent compilation directory only when `recompile' is invoked NOT
-	in the compilation buffer.  Otherwise, use `default-directory' of
-	the compilation buffer.
-	(compilation-error-properties): Allow to funcall col and end-col.
-	(compilation-mode-font-lock-keywords): Check col and end-col by
-	`integerp'.
-	(compilation-goto-locus): If end-mk is non-nil in transient mark
-	mode don't activate the mark (and don't display message in
-	push-mark), but highlight overlay between mk and end-mk.
-
-	* progmodes/grep.el (grep-highlight-matches): New defcustom.
-	(grep-regexp-alist): Add rule to highlight grep matches.
-	(grep-process-setup): Set env-vars GREP_OPTIONS and GREP_COLOR.
-
-	* info.el (Info-fontify-node): Don't compute other-tag
-	if Info-hide-note-references=hide.
-
-	* help.el (function-called-at-point):
-	* help-fns.el (variable-at-point):
-	Try `find-tag-default' when other methods failed.
-
-	* emacs-lisp/lisp.el (beginning-of-defun, end-of-defun):
-	Do not push mark if inhibit-mark-movement is non-nil.
-
-	* textmodes/ispell.el (ispell-html-skip-alists):
-	Fix backslashes in docstring.
-
-2004-09-01  Juri Linkov  <juri@jurta.org>
-
-	* isearch.el (isearch-wrap-function)
-	(isearch-push-state-function): New defvars.
-	(isearch-pop-fun-state): New defsubst.
-	(isearch-top-state): Call function saved in `isearch-pop-fun-state'.
-	(isearch-push-state): Set the result of calling
-	`isearch-push-state-function' to the `isearch-pop-fun-state' field.
-	(isearch-cancel): Call function saved in `isearch-pop-fun-state' to
-	restore the mode-specific starting point of terminated search.
-	(isearch-abort): Call `isearch-cancel' instead of its duplicated code.
-	(isearch-repeat): Call `isearch-wrap-function' if defined.
-	(isearch-message-prefix): Don't add prefix "over" to the message
-	for wrapped search if `isearch-wrap-function' is defined.
-	(isearch-search): Call function saved in `isearch-pop-fun-state' to
-	restore the mode-specific starting point of failed search.
-
-	* info.el (Info-search-whitespace-regexp): Fix backslashes.
-	(Info-search): Add new optional arguments for the sake of isearch.
-	Replace whitespace in Info-search-whitespace-regexp literally.
-	Add backward search.  Don't call `Info-select-node' if regexp is
-	found in the same Info node.  Don't add node to Info-history for
-	wrapped isearch.
-	(Info-search-backward, Info-isearch-search, Info-isearch-wrap)
-	(Info-isearch-push-state, Info-isearch-pop-state): New funs.
-	(Info-mode): Set local variables `isearch-search-fun-function',
-	`isearch-wrap-function', `isearch-push-state-function',
-	`search-whitespace-regexp'.
-
-	* isearch.el: Remove ancient Change Log section.
-	(isearch-string, isearch-message-string, isearch-point)
-	(isearch-success, isearch-forward-flag, isearch-other-end)
-	(isearch-word, isearch-invalid-regexp, isearch-wrapped)
-	(isearch-barrier, isearch-within-brackets)
-	(isearch-case-fold-search): Add suffix `-state' to state-related
-	defsubsts to avoid name clashes with other function names.
-
-	* simple.el (next-error): New defgroup and defface.
-	(next-error-highlight, next-error-highlight-no-select):
-	New defcustoms.
-	(next-error-no-select): Let-bind next-error-highlight to the value
-	of next-error-highlight-no-select before calling `next-error'.
-
-	* progmodes/compile.el (compilation-goto-locus):
-	Use `next-error' face instead of `region'.  Set 4-th argument of
-	`move-overlay' to `current-buffer' to move overlay to different
-	source buffers.  Use new variable `next-error-highlight'.
-
-	* simple.el (next-error-find-buffer): Move the rule
-	"if current buffer is a next-error capable buffer" after the
-	rule "if next-error-last-buffer is set to a live buffer".
-	Simplify to test all rules in one `or'.
-	(next-error): Doc fix.
-	(next-error, previous-error, first-error)
-	(next-error-no-select, previous-error-no-select):
-	Make arguments optional.
-
-2004-08-31  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* macros.el (apply-macro-to-region-lines): Make it operate on all
-	lines that begin in the region, rather than on all complete lines
-	in the region.
-
-2004-08-31  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* x-dnd.el (x-dnd-protocol-alist): Document update.
-	(x-dnd-known-types): Defcustom it.
-	(x-dnd-handle-motif): Print message-atom in error message.
-
-2004-08-30  John Paul Wallington  <jpw@gnu.org>
-
-	* textmodes/tex-mode.el (tex-validate-buffer): Use distinct
-	strings rather than programatically constructing message.
-
-2004-08-30  Richard M. Stallman  <rms@gnu.org>
-
-	* emacs-lisp/lisp-mode.el (prin1-char): Don't turn S-a into A.
-	Don't return a string that would read as the wrong character code.
-
-2004-08-29  Kim F. Storm  <storm@cua.dk>
-
-	* emulation/cua-base.el (cua-auto-expand-rectangles):
-	Remove automatic rectangle padding feature; replace by non-destructive
-	virtual rectangle edges feature.
-	(cua-virtual-rectangle-edges): New defcustom.
-	(cua-auto-tabify-rectangles): New defcustom.
-	(cua-paste): If paste into a marked rectangle, insert rectangle at
-	current column, even if virtual; also paste exactly as many lines
-	as has been marked (ignore additional lines or add empty lines),
-	but paste whole source if only one line is marked.
-	(cua--update-indications): No longer use overwrite-cursor to
-	indicate rectangle padding
-
-	* emulation/cua-rect.el (cua--rectangle-padding): Remove.
-	(cua--rectangle-virtual-edges): New defun.
-	(cua--rectangle-get-corners): Remove optional PAD arg.
-	(cua--rectangle-set-corners): Never do padding.
-	(cua--forward-line): Remove optional PAD arg.  Simplify.
-	(cua-resize-rectangle-right, cua-resize-rectangle-left)
-	(cua-resize-rectangle-down, cua-resize-rectangle-up):
-	(cua-resize-rectangle-bot, cua-resize-rectangle-top)
-	(cua-resize-rectangle-page-up, cua-resize-rectangle-page-down)
-	(cua--rectangle-move): Never do padding.  Simplify.
-	(cua--tabify-start): New defun.
-	(cua--rectangle-operation): Add tabify arg.  All callers changed.
-	(cua--pad-rectangle): Remove.
-	(cua--delete-rectangle): Handle delete with virtual edges.
-	(cua--extract-rectangle): Add spaces if rectangle has virtual edges.
-	(cua--insert-rectangle): Handle insert at virtual column.
-	Perform auto-tabify if necessary.
-	(cua--activate-rectangle): Remove optional FORCE arg.
-	Never do padding.  Simplify.
-	(cua--highlight-rectangle): Enhance for virtual edges.
-	(cua-toggle-rectangle-padding): Remove command.
-	(cua-toggle-rectangle-virtual-edges): New command.
-	(cua-sequence-rectangle): Add optional TABIFY arg.  Callers changed.
-	(cua--rectangle-post-command): Don't force rectangle padding.
-	(cua--init-rectangles): Bind M-p to cua-toggle-rectangle-virtual-edges.
-
-2004-08-28  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* indent.el (edit-tab-stops-buffer): Doc fix.
-
-2004-08-28  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/grep.el (grep-default-command): Use find-tag-default.
-	(grep-tag-default): Function deleted.
-
-	* subr.el (find-tag-default): Move from etags.el.
-
-	* progmodes/etags.el (find-tag-default): Move to subr.el.
-
-	* emacs-lisp/lisp-mode.el (prin1-char): Put `shift' modifier
-	into the basic character if it has an uppercase form.
-
-2004-08-27  Kenichi Handa  <handa@m17n.org>
-
-	* international/utf-8.el (utf-8-post-read-conversion): If the
-	buffer is unibyte, temporarily make it multibyte.
-
-2004-08-27  Masatake YAMATO  <jet@gyve.org>
-
-	* calendar/time-date.el (time-to-seconds): Add autoload cookies.
-
-2004-08-25  John Paul Wallington  <jpw@gnu.org>
-
-	* textmodes/tex-mode.el (tex-validate-buffer): Distinguish between
-	0, 1, and many mismatches in message.
-	(tex-start-shell): Use `set-process-query-on-exit-flag'.
-
-	* ielm.el (ielm-tab, ielm-complete-symbol): Doc fix.
-	(inferior-emacs-lisp-mode): Use	`set-process-query-on-exit-flag'.
-
-2004-08-23  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-svn.el (vc-svn-diff): Treat options from vc-svn-diff-switches and
-	vc-diff-switches differently.
-
-2004-08-22  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* speedbar.el (speedbar-file-regexp): Give it a phony defvar
-	before and a real defvar after
-	`speedbar-supported-extension-expressions'.  This is to silence
-	the compiler without breaking bootstrapping.
-
-2004-08-22  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/flyspell.el (flyspell-word):
-	Use set-process-query-on-exit-flag.
-	(flyspell-highlight-duplicate-region): Take POSS as arg.
-	(flyspell-word): Pass POSS as arg.
-
-	* progmodes/ada-xref.el: Many doc and style fixes.
-	(ada-find-any-references): Use compilation-start.
-	(ada-get-ali-file-name): Improve error msg.
-	(ada-get-ada-file-name): Likewise.
-
-	* net/ange-ftp.el (ange-ftp-gwp-start, ange-ftp-nslookup-host)
-	(ange-ftp-start-process): Use set-process-query-on-exit-flag.
-
-	* mail/mail-extr.el (mail-extr-all-top-level-domains):
-	Add forward defvar.
-
-	* whitespace.el (global-whitespace-mode): New alias
-	for whitespace-global-mode.
-
-	* speedbar.el (speedbar-file-regexp): Move definition up.
-	(speedbar-mode, speedbar-set-mode-line-format):
-	Use with-no-warnings.
-	(speedbar-emacs-popup-kludge): Delete Emacs 19 alternative.
-
-	* simple.el (shell-command-on-region): New arg DISPLAY-ERROR-BUFFER
-	controls whether to display the error buffer.
-
-	* ps-mule.el: Delete compatibility code for old Emacsen.
-	(ps-mule-find-wrappoint): Don't use chars-in-region.
-
-	* frame.el (display-mouse-p, display-selections-p):
-	Use with-no-warnings.
-
-	* font-lock.el (font-lock-set-defaults): Use with-no-warnings.
-
-2004-08-22  David Kastrup  <dak@gnu.org>
-
-	* textmodes/reftex-auc.el, progmodes/meta-mode.el: Update AUCTeX
-	information.
-
-	* speedbar.el, iswitchb.el, ido.el: Update AUCTeX information.
-
-2004-08-22  Andreas Schwab  <schwab@suse.de>
-
-	* cvs-status.el: Require pcvs during byte-compiling for defun-cvs-mode.
-
-2004-08-22  Masatake YAMATO  <jet@gyve.org>
-
-	* cvs-status.el (cvs-status-checkout): New function.
-	(cvs-status-mode-map): Add a key definition for `cvs-status-checkout'.
-
-2004-08-21  David Kastrup  <dak@gnu.org>
-
-	* net/ange-ftp.el (ange-ftp-hash-entry-exists-p)
-	(ange-ftp-file-entry-p, ange-ftp-file-symlink-p): Since the code
-	has been converted to use hashtables, the relation `nil=none' is
-	no longer valid, as `nil' is not a hashtable.  This patch tries to
-	reduce the number of resulting errors.
-
-2004-08-21  John Paul Wallington  <jpw@gnu.org>
-
-	* subr.el (process-kill-without-query): Made obsolete in
-	version	21.4, not 21.5.
-
-	* log-edit.el (vc-comment-ring, vc-comment-ring-index)
-	(vc-previous-comment, vc-next-comment)
-	(vc-comment-search-reverse, vc-comment-search-forward)
-	(vc-comment-to-change-log): Likewise.
-
-	* international/latin1-disp.el (latin1-char-displayable-p): Likewise.
-
-2004-08-21  Peter Seibel  <peter@javamonkey.com>  (tiny patch)
-
-	* emacs-lisp/cl-indent.el (lisp-indent-defmethod):
-	Correct indentation of DEFMETHODS with non-standard method
-	combinations (e.g., PROGN, MIN, MAX).
-
-2004-08-20  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* startup.el (normal-top-level-add-subdirs-to-load-path):
-	Avoid unnecessarily checking system-type.
-	(normal-top-level): Set TERM to "dumb".  Simplify.
-
-	* avoid.el (mouse-avoidance-ignore-p): New fun.
-	Also ignore switch-frame, select-window, double, and triple clicks.
-	(mouse-avoidance-banish-hook, mouse-avoidance-exile-hook)
-	(mouse-avoidance-fancy-hook): Use it.
-
-2004-08-20  Zoran Milojevic  <zoran@sipquest.com>  (tiny change)
-
-	* avoid.el (mouse-avoidance-nudge-mouse)
-	(mouse-avoidance-banish-destination): Stay within the current window
-	to avoid problems with mouse-autoselect-window.
-
-2004-08-19  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* pcvs-parse.el (cvs-parse-table, cvs-parse-commit): Try to adapt to
-	the newer format of some messages in cvs-1.12.1.
-
-2004-08-19  Masatake YAMATO  <jet@gyve.org>
-
-	* emacs-lisp/elp.el (elp-results-symname-map): New keymap.
-	(elp-results-jump-to-definition-by-mouse)
-	(elp-results-jump-to-definition, elp-output-insert-symname): New funs.
-	(elp-output-result): Use elp-output-insert-symname.
-
-2004-08-18  Kenichi Handa  <handa@m17n.org>
-
-	* language/cyrillic.el: Register koi8-r in
-	ctext-non-standard-encodings-alist.
-	("Cyrillic-KOI8"): Add ctext-non-standard-encoding.
-
-2004-08-17  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* emacs-lisp/copyright.el (copyright-update-year): Delete code
-	that replaces 20xy with xy.
-
-2004-08-17  John Paul Wallington  <jpw@gnu.org>
-
-	* emacs-lisp/re-builder.el (reb-mode-map): Define within defvar.
-	(reb-force-update): Doc fix.
-
-2004-08-16  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/which-func.el (which-func-update-1): Doc fix.
-
-	* progmodes/sh-script.el (sh-set-shell): Use sh-mode-abbrev-table.
-	(sh-mode-abbrev-table): New variable.
-
-	* progmodes/compile.el (compilation-mode): Doc fix.
-
-	* emacs-lisp/lisp-mode.el (eval-last-sexp):
-	Don't cons a new symbol each time.
-	(eval-last-sexp-fake-value): New variable.
-
-	* emacs-lisp/copyright.el (copyright-years-regexp): New variable.
-	(copyright-update-year): Detect continuation of list of years.
-
-	* term.el (term-default-fg-color, term-default-bg-color)
-	(ansi-term-color-vector): Use `unspecified', not nil, as default.
-
-	* imenu.el: Several doc fixes: don't say variables are buffer-local.
-
-2004-08-16  Davis Herring  <herring@lanl.gov>
-
-	* isearch.el (isearch-string, isearch-message-string, isearch-point)
-	(isearch-success, isearch-forward-flag, isearch-other-end)
-	(isearch-word, isearch-invalid-regexp, isearch-wrapped)
-	(isearch-barrier, isearch-within-brackets)
-	(isearch-case-fold-search): Fix broken `nth'-like calls to `aref'.
-
-2004-08-16  Kenichi Handa  <handa@m17n.org>
-
-	* ps-mule.el (ps-mule-font-info-database): Fix docstring.
-
-2004-08-15  Kenichi Handa  <handa@m17n.org>
-
-	* term/x-win.el (x-selection-value): If utf8 was successful but
-	ctext was not, use utf8 string.
-
-2004-08-14  Davis Herring  <herring@lanl.gov>
-
-	* isearch.el: Remove accidental changes of March 4.  Fix backing
-	up when a regexp isearch is made more general.  Use symbolic
-	accessor functions for isearch stack frames to make usage clearer.
-	(search-whitespace-regexp): Made groups in documentation shy (as
-	is the group in the default value).
-	(isearch-fallback): New function, addresses problems with regexps
-	liberalized by `\|', adds support for liberalization by `\}' (the
-	general repetition construct), and incorporates behavior for
-	`*'/`?'.
-	(isearch-}-char): New command, calls `isearch-fallback' with
-	arguments appropriate to a typed `}'.
-	(isearch-*-char, isearch-|-char): Now just call `isearch-fallback'
-	appropriately.
-	(isearch-mode-map): Bind `}' to `isearch-}-char'.
-	(isearch-string, isearch-message,string, isearch-point)
-	(isearch-success, isearch-forward-flag, isearch-other-end)
-	(isearch-word, isearch-invalid-regexp, isearch-wrapped)
-	(isearch-barrier, isearch-within-brackets, isearch-case-fold-search):
-	New inline functions to read fields of a stack frame.
-
-2004-08-14  Kurt Hornik  <Kurt.Hornik@wu-wien.ac.at>  (tiny change)
-
-	* battery.el (battery-linux-proc-acpi): Look into battery
-	directories matching the literal string "CMB", too (required for
-	Linux kernel version 2.6.7).
-
-2004-08-14  John Paul Wallington  <jpw@gnu.org>
-
-	* cus-start.el (read-file-name-completion-ignore-case): Add.
-	(blink-cursor-alist): Change version to "21.4".
-
-	* emacs-lisp/bytecomp.el (forward-word): Allow 0 args.
-
-2004-08-11  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* speedbar.el (speedbar-scan-subdirs): New option.
-	(speedbar-file-lists): Don't ignore file-name case on Unix and use
-	dolist.
-	(speedbar-insert-files-at-point): Take an extra argument and use
-	it to optionally find out if a subdir is empty.  Also unreadable
-	files don't get expand buttons.
-	(speedbar-directory): New image (unused pixmap already existed).
-	(speedbar-expand-image-button-alist): Use it.
-
-2004-08-11  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	CC Mode update to 5.30.9:
-
-	* progmodes/cc-defs.el, progmodes/cc-vars.el (c-emacs-features):
-	Move from cc-vars to cc-defs for dependency reasons.  Fix the
-	POSIX char class test to check that it works in
-	`skip-chars-(forward|backward)' too.
-
-	* progmodes/cc-align.el (c-lineup-arglist): Fix bug when the
-	first argument starts with a special brace list.
-
-	* progmodes/cc-engine.el (c-forward-type): Fix promotion bug
-	when `c-opt-type-concat-key' is used (i.e. in Pike).
-
-	* progmodes/cc-engine.el (c-looking-at-special-brace-list):
-	Fix bug when the inner char pair doesn't have paren syntax,
-	i.e. "(<>)".
-
-	* progmodes/cc-align.el (c-lineup-multi-inher): Made it syntactic
-	whitespace safe.
-
-	* progmodes/cc-engine.el (c-guess-basic-syntax): Fix anchor
-	position for `arglist-intro', `arglist-cont-nonempty' and
-	`arglist-close' when there are two arglist open parens on the same
-	line and there's nothing in front of the first.
-
-	* progmodes/cc-fonts.el (c-basic-matchers-before): Fix font
-	locking of qualified names in Java, which previously could fontify
-	common indexing expressions in many cases.  The standard Java
-	naming conventions are used to tell them apart.
-
-	* progmodes/cc-align.el (c-lineup-whitesmith-in-block):
-	Fix inconsistency wrt opening parens on the first line inside a paren
-	block.
-
-	* progmodes/cc-defs.el (c-langs-are-parametric): Must be known at
-	compile time for the sake of `c-major-mode-is'.
-
-	(c-mode-is-new-awk-p): Made it a macro to delay expansion of
-	`c-major-mode-is' in the event that this is used inside a
-	`c-lang-defconst'.
-
-	* progmodes/cc-defs.el (c-major-mode-is): Fix expansion inside
-	`c-lang-defconst' so that it works better with fallback languages.
-
-	* progmodes/cc-defs.el (c-add-language): Fix a typo that caused
-	it to fail to record the base mode.
-
-	* progmodes/cc-engine.el (c-syntactic-re-search-forward):
-	Fix bug so that it doesn't go past the closing paren when PAREN-LEVEL
-	is used.  Reorder the syntax checks to get more efficient
-	skipping in some situations.
-
-	* progmodes/cc-cmds.el (c-electric-brace): Don't trip up on a line
-	continuation which might precede the newly inserted '{'.
-
-	* progmodes/cc-engine.el (c-syntactic-re-search-forward):
-	Fix cases where it could loop indefinitely.
-
-	* progmodes/cc-fonts.el (c-font-lock-declarators): Handle array
-	size specs correctly.  Only fontify identifiers in front of '('
-	with as functions - don't accept any paren char.  Tighten up
-	initializer skipping to stop before function and class blocks.
-
-	* progmodes/cc-engine.el (c-beginning-of-decl-1): Fix bug where
-	the point could be left directly after an open paren when finding
-	the beginning of the first decl in the block.
-
-	* progmodes/cc-engine.el (c-parse-state): Don't use the syntax
-	table when filtering out legitimate open parens to be recorded.
-	This could cause cache inconsistencies when e.g.
-	`c++-template-syntax-table' was temporarily in use.
-
-	* progmodes/cc-engine.el (c-on-identifier)
-	(c-simple-skip-symbol-backward): Small fix for handling "-"
-	correctly in `skip-chars-backward'.  Affected the operator lfun
-	syntax in Pike.
-
-	* progmodes/cc-engine.el (c-invalidate-sws-region-after):
-	Fix bug that could cause an error from `after-change-functions' when
-	the changed region is at bob.
-
-2004-08-11  Alan Mackenzie  <bug-cc-mode@gnu.org>
-
-	CC Mode update to 5.30.9:
-
-	* progmodes/cc-cmds.el, progmodes/cc-vars.el: Amend doc(-strings)
-	to say that <TAB> doesn't insert WS into a CPP line.
-	(c-indent-command, c-tab-always-indent): Amend doc strings.
-
-	* progmodes/cc-styles.el, progmodes/cc-engine.el: Add in two
-	checks for user errors, thus eliminating cryptic and unhelpful
-	Emacs error messages.  (1) Check the arg to `c-set-style' is a
-	string.  (2) Check that settings to `c-offsets-alist' are not
-	spuriously quoted.
-
-	* progmodes/cc-cmds.el (c-electric-brace): Don't delete a comment
-	which precedes the newly inserted `{'.
-
-2004-08-10  Michael Albinus  <michael.albinus@gmx.de>
-
-	Sync with Tramp 2.0.44.
-
-	* net/tramp.el (tramp-post-connection): Quote $1 and $2 of shell
-	function "tramp_file_attributes".  Otherwise, file names
-	containing spaces are misinterpreted.  Reported by Magnus Henoch
-	<mange@freemail.hu>.
-	(tramp-handle-file-truename): FILENAME must be expanded first.
-	Otherwise, parameters like "/ssh:deego@gnufans.net:~" will return
-	obscure results.  Reported by D. Goel <deego@gnufans.org>.
-	(tramp-handle-verify-visited-file-modtime): If file does not
-	exist, say it is not modified if and only if that agrees with the
-	buffer's record.  Check whether a file is visiting the buffer, or
-	the buffer has no recorded last modification time.  Return t in
-	case the visiting file doesn't exist.  Suggested by Luc Teirlinck
-	<teirllm@auburn.edu>.
-	(tramp-handle-write-region): Pass modtime explicitly to
-	`set-visited-file-modtime', because filename can be different
-	from (buffer-file-name) if `file-precious-flag' is set.
-	`set-visited-file-modtime' must be called always when `visit' is t
-	or a string.  Suggested by Luc Teirlinck <teirllm@auburn.edu>.
-	(tramp-handle-set-visited-file-modtime): If `time-list' is not
-	nil, don't apply the whole body.  If the file doesn't exists, set
-	modtime to '(-1 65535).  Suggested by Luc Teirlinck
-	<teirllm@auburn.edu>.
-
-2004-08-09  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* help.el (describe-bindings): Doc fix.
-
-	* subr.el (kbd): Doc fix.
-
-2004-08-08  John Paul Wallington  <jpw@gnu.org>
-
-	* ibuffer.el (define-ibuffer-column size): Use `string-to-number'
-	instead of `string-to-int'.
-	(define-ibuffer-column mode): Fix indentation.
-
-2004-08-08  Lars Hansen  <larsh@math.ku.dk>
-
-	* wid-edit.el (widget-sexp-validate): Allow whitespace after
-	expression.
-
-2004-08-08  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* subr.el (global-unset-key, local-unset-key): Doc fixes.
-
-	* novice.el (disabled-command-function): New variable renamed from
-	`disabled-command-hook'.
-	(disabled-command-hook): Keep the _variable_ as alias for
-	`disabled-command-function' and make obsolete.
-	(disabled-command-function): Function renamed from
-	`disabled-command-hook'.  Adapt code to name change of the variable.
-
-2004-08-07  Satyaki Das  <satyaki@theforce.stanford.edu>  (tiny change)
-
-	* simple.el (completion-root-regexp): New defvar.
-	(completion-setup-function): Use it instead of a literal string.
-
-2004-08-07  John Paul Wallington  <jpw@gnu.org>
-
-	* emacs-lisp/re-builder.el (reb-re-syntax): Add `rx' syntax.
-	(reb-lisp-mode): Require `rx' feature when `re-reb-syntax' is `rx'.
-	(reb-lisp-syntax-p, reb-change-syntax): `rx' is a Lisp syntax.
-	(reb-cook-regexp): Call `rx-to-string' when `re-reb-syntax' is `rx'.
-
-2004-08-05  Katsumi Yamaoka  <yamaoka@jpl.org>  (tiny change)
-
-	* mail/mail-extr.el (mail-extr-disable-voodoo): New variable.
-	(mail-extr-voodoo): Check mail-extr-disable-voodoo.
-
-2004-08-04  Kenichi Handa  <handa@m17n.org>
-
-	* international/encoded-kb.el (encoded-kbd-setup-keymap):
-	Fix previous change.
-
-2004-08-03  Kenichi Handa  <handa@m17n.org>
-
-	* international/encoded-kb.el: The following changes are to
-	utilize key-translation-map instead of minor mode map.
-	(encoded-kbd-iso2022-non-ascii-map): Delete it.
-	(encoded-kbd-coding, encoded-kbd-handle-8bit): Delete them.
-	(encoded-kbd-last-key): New function.
-	(encoded-kbd-iso2022-single-shift): New function.
-	(encoded-kbd-iso2022-designation)
-	(encoded-kbd-self-insert-iso2022-7bit)
-	(encoded-kbd-self-insert-iso2022-8bit)
-	(encoded-kbd-self-insert-sjis, encoded-kbd-self-insert-big5)
-	(encoded-kbd-self-insert-ccl): Make them suitable for bindings in
-	key-translation-map.
-	(encoded-kbd-setup-keymap): Setup key-translation-map.
-	(saved-key-translation-map): New variable.
-	(encoded-kbd-mode): Save/restore key-translation-map.
-	Adjust for the change of encoded-kbd-setup-keymap.
-
-2004-08-02  Kim F. Storm  <storm@cua.dk>
-
-	* avoid.el (mouse-avoidance-point-position): Use window-inside-edges
-	and call compute-motion with nil for topos and width to get proper
-	usable width and height for both window and non-window systems.
-
-	* windmove.el (windmove-coordinates-of-position): Let compute-motion
-	calculate usable window width and height.
-
-	* window.el (window-buffer-height): Call compute-motion with nil width.
-
-2004-08-01  David Kastrup  <dak@gnu.org>
-
-	* replace.el (query-replace-read-from):
-	Use `query-replace-compile-replacement'.
-	(query-replace-compile-replacement): New function.
-	(query-replace-read-to): Use `query-replace-compile-replacement'
-	for repeating the last command.
-
-2004-08-01  John Paul Wallington  <jpw@gnu.org>
-
-	* printing.el (toplevel, pr-ps-fast-fire, pr-ps-set-utility)
-	(pr-ps-set-printer, pr-txt-set-printer, pr-eval-setting-alist)
-	(pr-switches): Remove period from end of error messages.
-
-	* help-mode.el (help-go-back): Likewise.
-
-	* abbrev.el (only-global-abbrevs): Doc fix.
-	(edit-abbrevs-map): Define within defvar.
-	(quietly-read-abbrev-file): Doc fix.
-
-2004-07-31  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* novice.el (enable-command, disable-command): Doc fixes.
-
-	* subr.el (event-modifiers, event-basic-type): Doc fixes.
-
-2004-07-30  Richard M. Stallman  <rms@gnu.org>
-
-	* subr.el (with-local-quit): Doc fix.
-
-2004-07-30  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* international/utf-8.el (utf-translate-cjk-mode): Doc fix.
-
-2004-07-28  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* custom.el (defcustom): Doc fix.
-
-2004-07-28  Masatake YAMATO  <jet@gyve.org>
-
-	* progmodes/etags.el (etags-tags-apropos): Show building progress.
-
-2004-07-26  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* imenu.el (imenu-prev-index-position-function)
-	(imenu-extract-index-name-function, imenu-name-lookup-function)
-	(imenu--index-alist): Docstring redundancy fix.
-
-2004-07-25  Lars Hansen  <larsh@math.ku.dk>
-
-	* wdired.el (wdired-finish-edit): Require dired-aux before locally
-	binding dired-backup-overwrite.
-
-2004-07-25  John Paul Wallington  <jpw@gnu.org>
-
-	* subr.el (butlast, event-modifiers, event-basic-type): Doc fixes.
-
-2004-07-24  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* term/tty-colors.el (tty-color-approximate): Doc fix.
-
-	* select.el (x-get-selection, x-set-selection): Doc fixes.
-
-	* frame.el (make-frame): Doc fix.
-
-2004-07-24  Richard M. Stallman  <rms@gnu.org>
-
-	* mail/rmail.el (rmail-mime-charset-pattern):
-	Don't include semicolon in the charset value.
-
-	* replace.el (occur-next-error): Call set-window-point.
-	(occur-engine): Handle negative NLINES.
-
-2004-07-23  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* frame.el (modify-all-frames-parameters): Minor doc fix.
-	(set-frame-configuration): Doc fix.
-
-2004-07-23  Matt Hodges  <matt@stchem.bham.ac.uk>  (tiny change)
-
-	* simple.el (completion-setup-function): Compute the common parts
-	and the first difference place correctly when
-	partial-completion-mode is on.
-
-2004-07-22  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* ps-print.el: Doc fix.
-	(ps-print-version): New version 6.6.5.
-	(ps-printing-region): Doc fix.
-	(ps-generate-string-list): Comment fix.
-	(ps-message-log-max): Code fix.
-
-2004-07-22  Michael Piotrowski  <mxp@dynalabs.de>  (tiny change)
-
-	* ps-print.el (ps-begin-file): Improve the DSC compliance of the
-	generated PostScript.
-
-2004-08-17  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* net/tls.el (tls-process-connection-type): Fix docstring.  (Sync
-	with Gnus v5_10 branch.)
-
-2004-08-16  Reiner Steib  <Reiner.Steib@gmx.de>
-
-	* calendar/time-date.el (time-to-number-of-days): New function.
-	Imported from Gnus.
-
-2004-07-22  Kim F. Storm  <storm@cua.dk>
-
-	* progmodes/make-mode.el: Fix comments.
-
-2004-07-21  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: Doc fix.
-
-2004-07-20  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* frame.el (modify-all-frames-parameters): Minor doc fix.
-
-2004-07-20  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/fill.el (fill-nobreak-p): If this break point is
-	at the end of the line, don't consider the newline which follows
-	as a reason to return t.
-
-2004-07-19  John Paul Wallington  <jpw@gnu.org>
-
-	* dired-aux.el (dired-file-set-difference): Don't use `caddr'.
-
-2004-07-18  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* dired-aux.el (dired-do-kill-lines): Expand docstring.
-	Delete irrelevant code.
-
-2004-07-17  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	* net/tramp.el (tramp-handle-verify-visited-file-modtime):
-	New docstring.  From Luc Teirlinck.
-
-2004-07-17  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el: Describe `Auto Revert Tail Mode' in `Commentary'
-	section.
-	(auto-revert-handler): Do not check `auto-revert-tail-mode' for
-	non-file buffers.  We know it is nil.
-
-2004-07-17  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	Sync with Tramp 2.0.43.
-
-	* net/tramp.el (tramp-handle-verify-visited-file-modtime):
-	Remove outdated comment.
-	(tramp-locked, tramp-locker): New variables for implementing a
-	global lock.
-	(tramp-sh-file-name-handler): Use them to implement the global lock.
-
-2004-07-13  Michael Albinus  <michael.albinus@gmx.de>
-
-	* net/tramp.el (all): Code cleanup.  Change all `tramp-handle-xxx'
-	calls to respective `xxx` calls.
-	(tramp-process-alive-regexp): Precise doc string.
-	(tramp-multi-action-process-alive): New defun.
-	(tramp-multi-actions): Use it.
-	(tramp-handle-find-backup-file-name): `copy-tree' is available
-	since Emacs 22.1 only (XEmacs has it).  Implementation rewritten
-	in order to avoid this function.
-	(tramp-handle-write-region): Set current buffer.  If connection
-	wasn't open, `file-modes' has changed it accidentally.  Reported by
-	David Kastrup <dak@gnu.org>.
-	(tramp-enter-password, tramp-read-passwd): New arguments USER and
-	HOST.
-	(tramp-action-password, tramp-multi-action-password): Apply it.
-	(tramp-open-connection-rsh): If a port is given, the Tramp buffer
-	name must still contain the port number.  Otherwise, we have two
-	Tramp buffers, with all the confusion.  Reported by Myron Selby
-	<myron@xytech.com> and Rolf Dubitzky
-	<Dubitzky@physi.uni-heidelberg.de>.
-
-	* net/tramp-smb.el (tramp-smb-open-connection): Apply USER and
-	HOST to `tramp-enter-passwd'.
-
-	* net/tramp-vc.el (all): Code cleanup.  Change all
-	`tramp-handle-xxx' calls to respective `xxx` calls.
-
-2004-07-17  Jonathan Yavner  <jyavner@member.fsf.org>
-
-	* emacs-lisp/testcover.el: New category "potentially-1valued" for
-	functions that are not erroneous if either 1-valued or
-	multi-valued.  Detect functions in this class.
-	(testcover-1value-functions, testcover-compose-functions)
-	(testcover-progn-functions) Add some additional functions to lists.
-	(testcover-mark): Bugfix when marking up the definition for an
-	empty function.
-
-2004-07-17  Richard M. Stallman  <rms@gnu.org>
-
-	* replace.el (occur-read-primary-args): Pass default to
-	read-from-minibuffer.
-
-	* mail/footnote.el (footnote-section-tag): Use defcustom.
-
-	* font-lock.el (font-lock-add-keywords, font-lock-remove-keywords):
-	Compile font-lock-keywords, not KEYWORDS.
-	(lisp-font-lock-keywords-2): Add multiple-value-prog1, go.
-	Add warn, check-type.  Handle cerror like error.
-
-2004-07-14  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/which-func.el (which-func-keymap): New var.
-	(which-func-face): New face.
-	(which-func-format): Use them.
-
-2004-07-16  Stephan Stahl  <stahl@eos.franken.de>  (tiny change)
-
-	* buff-menu.el (list-buffers-noselect): Append the buffer's
-	process status to its mode name.
-
-2004-07-16  Kim F. Storm  <storm@cua.dk>
-
-	* simple.el (inhibit-mark-movement): New defvar.
-	(beginning-of-buffer, end-of-buffer): Do not push mark if
-	inhibit-mark-movement is non-nil or C-u prefix is given.
-
-	* emulation/cua-base.el (cua--preserve-mark-commands): New defvar.
-	Init to beginning-of-buffer and end-of-buffer.
-	(cua--undo-push-mark): New defvar.
-	(cua--pre-command-handler): Set inhibit-mark-movement if mark is
-	already active and command is in cua--preserve-mark-commands.
-	Also fix check for shift modifier on non-window systems.
-	(cua--post-command-handler): Clear inhibit-mark-movement if set.
-
-2004-07-14  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* calendar/cal-dst.el (calendar-time-from-absolute): Return a list
-	of two integers, instead of a cons.
-
-	* net/tramp.el (tramp-handle-verify-visited-file-modtime):
-	`visited-file-modtime' now returns a list of two integers, instead
-	of a cons.
-
-	* dired.el (dired-directory-changed-p): Ditto.
-
-	* progmodes/grep.el (grep): Doc fix.
-
-2004-07-14  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* autorevert.el (auto-revert-tail-mode)
-	(auto-revert-tail-mode-text, auto-revert-tail-pos): New vars.
-	(auto-revert-mode): Turn off auto-revert-tail-mode, so we're not
-	in both at the same time.
-	(auto-revert-tail-mode): New command.
-	(turn-on-auto-revert-tail-mode, auto-revert-tail-handler): New funs.
-	(auto-revert-handler): Revert only either tail or whole file.
-
-	* bindings.el (mode-line-mode-menu): Fix alphabetical ordering and
-	add auto-revert-tail-mode.
-
-2004-07-12  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: Doc fix.  Change name of some funs.
-	(pr-dosify-file-name): New fun.  Replace ps-dosify-path.
-	(pr-unixify-file-name): New fun.  Replace ps-unixify-path.
-	(pr-standard-file-name): New fun.  Replace pr-standard-path.
-	(pr-call-process): Code fix.
-
-2004-07-12  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* subr.el (with-selected-window): Doc fix.
-
-2004-07-11  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* subr.el (get-buffer-window-list): Doc fix.
-
-2004-07-10  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* files.el (switch-to-buffer-other-window): Doc fix.
-
-	* window.el (save-selected-window, one-window-p)
-	(split-window-keep-point, split-window-vertically)
-	(split-window-horizontally): Doc fixes.
-
-2004-07-10  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: Doc fix.  Now it uses call-process instead of
-	shell-command for low command execution.
-	(pr-version): New version number (6.8).
-	(pr-shell-file-name): Option removed.
-	(pr-shell-command): Fun removed.
-	(pr-call-process): New fun.  Replace pr-shell-command.
-	(pr-standard-path, pr-remove-nil-from-list): New funs.
-	(zmacs-region-stays, current-mouse-event, current-menubar): New var.
-	(pr-ps-file-preview, pr-ps-file-using-ghostscript, pr-ps-file-print)
-	(pr-setup, pr-ps-set-printer, pr-txt-set-printer)
-	(pr-ps-utility-process, pr-txt-print): Code fix.
-
-2004-07-10  Stephan Stahl  <stahl@eos.franken.de>  (tiny change)
-
-	* ediff-mult.el (ediff-meta-truncate-filenames): Change type to
-	boolean.
-
-2004-07-09  Lars Hansen  <larsh@math.ku.dk>
-
-	* wid-edit.el (widget-field-buffer): Doc fix.
-
-2004-07-09  John Paul Wallington  <jpw@gnu.org>
-
-	* emacs-lisp/re-builder.el (reb-update-overlays):
-	Distinguish between one and several matches in message.
-
-2004-07-09  Richard M. Stallman  <rms@gnu.org>
-
-	* mouse.el (mouse-set-region-1): If transient-mark-mode
-	is `identity', change it to `only'.
-
-	* simple.el (current-word): Doc fix.
-
-2004-07-09  Mark A. Hershberger  <mah@everybody.org>
-
-	* progmodes/cperl-mode.el (cperl-mode): Adapt defun-prompt-regexp
-	so that it is more understanding of whitespace.
-
-	* xml.el (xml-maybe-do-ns, xml-parse-tag): Produce elements in the form
-	(("ns" . "element") (attr-list) children) instead of
-	((:ns . "element") (attr-list) children) in order to reduce the
-	number of symbols used.
-	(xml-skip-dtd): Change to use xml-parse-dtd but set
-	xml-validating-parsing to nil.
-	(xml-parse-dtd): Parse entity declarations in DOCTYPEs.
-	(xml-substitute-entity): Remove in favor of new entity substitution.
-	(xml-substitute-special): Rewrite in to substitute complex
-	entities from DOCTYPE declarations.
-	(xml-parse-fragment): Parse fragments from entity declarations.
-	(xml-parse-region, xml-parse-tag, xml-parse-attlist)
-	(xml-parse-dtd, xml-substitute-special): Make validity checks
-	conditioned on xml-validating-parser.  Add "Not Well Formed" to
-	error messages about well-formedness.
-
-2004-07-08  Steven Tamm  <steventamm@mac.com>
-
-	* term/mac-win.el (mac-scroll-ignore-events, mac-scroll-down)
-	(mac-scroll-down-line, mac-scroll-up, mac-scroll-up-line):
-	Do not treat double clicks and triple clicks specially in the
-	scroll bar (preventing strange repositioning problems)
-
-2004-07-06  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* replace.el (query-replace-regexp-eval): Fix last change.
-
-2004-07-05  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* replace.el (query-replace-descr): New fun.
-	(query-replace-read-from, query-replace-read-args): Default to the
-	previous from&to.
-	(query-replace-read-to): Quote the `from' string when displaying it.
-	(query-replace-regexp-eval): Immediately check read-only status.
-	Use query-replace-read-from to get the \n checking.
-	Quote the `from' string when displaying it.
-	(map-query-replace-regexp, occur-read-primary-args):
-	Quote the `from' string when displaying it.
-
-	* isearch.el (isearch-query-replace): Pass the regexp-ness and
-	delimited-ness of the search to query-replace.
-
-	* replace.el (query-replace-read-from, query-replace-read-to):
-	New funs extracted from query-replace-read-args.
-	(query-replace-read-args): Use them.
-
-	* replace.el (query-replace-interactive, query-replace-read-args):
-	Remove the `initial' special value.
-	(query-replace-regexp-eval, map-query-replace-regexp): Simplify.
-	(occur-engine): Remove unused var `matchend'.
-
-	* isearch.el (isearch-query-replace, isearch-query-replace-regexp):
-	Use the search string without prompting.
-
-2004-07-05  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule.el (decode-coding-inserted-region):
-	Set last-coding-system-used only when coding is nil.
-
-2004-07-03  Eli Zaretskii  <eliz@gnu.org>
-
-	* progmodes/grep.el (grep-compute-defaults, grep-command)
-	(grep-program, find-program, grep-find-use-xargs, grep-history)
-	(grep-find-history, grep-tag-default, grep-find-command)
-	(grep-regexp-alist, grep-process-setup, grep-compute-defaults):
-	Add autoload cookies, for unbundled packages that load `compile'
-	and expect all grep-related symbols to become defined.
-
-2004-07-03  KOSEKI Yoshinori  <kose@meadowy.org>
-
-	* iimage.el (turn-on-iimage-mode, iimage-mode): Add autoload cookies.
-	(iimage-mode-image-search-path): New user option to search the
-	image file.
-	(iimage-locate-file): New function.  Emacs21.3 or earlier does not
-	have locate-file.
-	(iimage-mode-buffer): Use it.
-
-2004-07-03  Nick Roberts  <nickrob@gnu.org>
-
-	* progmodes/gdb-ui.el (gdb-goto-breakpoint): String match more
-	carefully.
-	(gdb-delete-breakpoint, gdb-toggle-breakpoint): Handle gdbmi.
-
-2004-07-03  Juri Linkov  <juri@jurta.org>
-
-	* replace.el (query-replace-read-args): Swallow space after 'foo,
-	not after (quote foo).  Match space only immediately after symbol,
-	not anywhere in the whole string.
-
-2004-07-02  Richard M. Stallman  <rms@gnu.org>
-
-	* replace.el (query-replace-read-args): Swallow space after
-	symbols, not after closeparens.  But avoid error if string ends there.
-
-	* progmodes/python.el (python-beginning-of-statement):
-	Exit the loop if backward-up-list gets error.
-
-	* textmodes/enriched.el (enriched-encode): Bind inhibit-read-only.
-
-2004-07-02  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc-rcs.el (vc-rcs-checkout-model): Look at the version headers
-	only if vc-consult-headers is non-nil.
-
-2004-07-02  Juri Linkov  <juri@jurta.org>
-
-	* pcvs.el (cvs-mode-diff-repository): New command.
-
-	* pcvs-defs.el (cvs-mode-diff-map): Bind r to cvs-mode-diff-repository.
-
-2004-07-01  Juri Linkov  <juri@jurta.org>
-
-	* isearch.el (isearch-mode-map): Bind C-M-w to isearch-del-char,
-	C-M-y to isearch-yank-char.  Bind M-% to isearch-query-replace,
-	C-M-% to isearch-query-replace-regexp.
-	(minibuffer-local-isearch-map): Add arrow key bindings.
-	Bind C-f to isearch-yank-char-in-minibuffer.
-	(isearch-forward): Doc fix.
-	(isearch-edit-string): Doc fix.
-	(isearch-query-replace, isearch-query-replace-regexp): New funs.
-	(isearch-del-char): Add optional arg.  Set isearch-yank-flag to t.
-	(isearch-yank-char): Add optional arg.
-	(isearch-yank-char-in-minibuffer): New fun.
-
-	* replace.el (query-replace-interactive): Change type from boolean
-	to choice.  Add value `initial'.
-	(query-replace-read-args): Handle value `initial' of
-	query-replace-interactive.
-
-2004-06-29  Kim F. Storm  <storm@cua.dk>
-
-	* progmodes/gdb-ui.el (breakpoint-enabled-bitmap-face)
-	(breakpoint-disabled-bitmap-face): Add :group 'gud.
-
-	* progmodes/ada-xref.el (ada-tight-gvd-integration):
-	Add :group 'ada.
-
-	* vc-arch.el (vc-arch-mode-line-rewrite): Add :group 'vc.
-
-2004-06-29  Juri Linkov  <juri@jurta.org>
-
-	* replace.el (query-replace-read-args): Swallow a space after
-	everything except )]" which in most cases means after a symbol.
-
-	* emacs-lisp/pp.el (pp-buffer): Add autoload.
-
-2004-06-28  Richard M. Stallman  <rms@gnu.org>
-
-	* font-lock.el (font-lock-fontify-syntactic-keywords-region):
-	More changes to go with previous change in font-lock.el.
-
-2004-06-26  David Kastrup  <dak@gnu.org>
-
-	* replace.el (perform-replace): Highlight the match even in
-	non-query mode if there is potential replace string editing.
-
-2004-06-26  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	* net/tramp.el (tramp-handle-file-remote-p): New implementation to
-	agree with new return value of `file-remote-p'.
-	This syncs with Tramp 2.0.42.
-
-	* net/ange-ftp.el (ange-ftp-file-remote-p): New return value,
-	according to new documentation of `file-remote-p'.
-
-	* files.el (file-remote-p): Fix doc to say that return value is
-	identification of remote system, if not nil.
-	(file-relative-name): Use new return value of `file-remote-p'.
-
-2004-06-26  Nick Roberts  <nickrob@gnu.org>
-
-	* progmodes/gdb-ui.el (gdb-toggle-breakpoint)
-	(gdb-goto-breakpoint): Fix breakage.
-
-2004-06-26  Eli Zaretskii  <eliz@gnu.org>
-
-	* man.el (Man-getpage-in-background): Add windows-nt to the list
-	of systems where shell-file-name should be used instead of
-	literal "sh".
-
-2004-06-25  Sam Steingold  <sds@gnu.org>
-
-	* add-log.el (change-log-font-lock-keywords): Support Common Lisp
-	function names `(setf symbol)'.
-
-2004-06-24  Richard M. Stallman  <rms@gnu.org>
-
-	* replace.el (query-replace-read-args): Swallow space after \,SYMBOL.
-
-	* font-lock.el (font-lock-keywords): Change format of compiled values.
-	Document it.
-	(font-lock-add-keywords): If font-lock-keywords is compiled,
-	extract the uncompiled version, modify, then recompile.
-	(font-lock-remove-keywords): Likewise.
-	(font-lock-fontify-keywords-region): Handle changed format.
-	(font-lock-compile-keywords): Handle changed format.
-	(font-lock-set-defaults): Compile the keywords explicitly here.
-
-2004-06-24  David Kastrup  <dak@gnu.org>
-
-	* replace.el (query-replace-read-args): Implement `\,' and `\#'
-	replacements here.
-	(query-replace-regexp): Doc string explaining this and the new
-	`\?' replacement.  Remove `\,' and `\#' implementation here, as it
-	is better placed in `query-replace-read-args'.
-	(replace-regexp): Explain `\,', `\#' and `\?'.
-	(replace-match-data): New function for thorough reuse/destruction
-	of old match-data.
-	(replace-match-maybe-edit): Function for implementing `\?' editing.
-	(perform-replace): Fix maintaining of the match stack including
-	already matched regions, implement `\?', fix various problems
-	with regions while editing and other stuff.
-	(replace-highlight): Simplify.
-
-2004-06-24  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/grep.el (grep-error-screen-columns): New variable.
-	(grep-regexp-alist): Give it the full functionality of gnu style
-	compilation messages with line and column ranges.  Ask me for the
-	perl script I'm working on, that uses these.
-
-2004-06-23  Nick Roberts  <nickrob@gnu.org>
-
-	* comint.el (comint-insert-clicked-input, comint-copy-old-input):
-	Remove.
-	(comint-insert-input, comint-mouse-insert-input): New functions
-	based on comint-insert-clicked-input for two bindings but just
-	one functionality.
-
-2004-06-23  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* net/goto-addr.el (goto-address-fontify): Fix help-echo text.
-
-2004-06-23  Lars Hansen  <larsh@math.ku.dk>
-
-	* files.el (write-contents-functions): Doc fix.
-
-2004-06-21  Juanma Barranquero  <lektu@terra.es>
-
-	* image.el (image-library-alist): Rewrite docstring in active voice.
-
-2004-06-20  Richard M. Stallman  <rms@gnu.org>
-
-	* mouse.el (mouse-set-region-1): Set transient-mark-mode to `only'.
-
-	* isearch.el (isearch-repeat): Avoid testing old match data.
-	(isearch-message): Display trailing space in special font
-	when search is failing.
-	(isearch-search-fun-function): Doc fix.
-
-	* autorevert.el (global-auto-revert-non-file-buffers): Doc fix.
-
-2004-06-19  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* frame.el (show-trailing-whitespace): Doc fix.
-
-	* cus-edit.el (custom-variable-documentation): New function.
-	(custom-variable): Use it.
-
-2004-06-19  Nick Roberts  <nickrob@gnu.org>
-
-	* man.el (Man-getpage-in-background): Revert previous change but
-	make cygwin a special case.
-
-2004-06-18  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el (global-auto-revert-non-file-buffers):
-	Update docstring.
-
-2004-06-19  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compilation-error-properties): Store one
-	more than end-col, if present, so that transient-mark-mode will
-	highlight last char too.
-	* progmodes/grep.el (grep-regexp-alist): Match columns and column
-	ranges, if present.
-
-2004-06-18  Jason Rumney  <jasonr@gnu.org>
-
-	* makefile.w32-in: Double percent signs in for loops.
-
-2004-06-17  David Kastrup  <dak@gnu.org>
-
-	* replace.el (query-replace-read-args): Only warn about use of \n
-	and \t when we are doing a regexp replacement and the actual
-	escaped character is n or t.
-	(query-replace-regexp): Add \, and \# interpretation to
-	interactive call and document it.
-	(query-replace-regexp-eval, replace-match-string-symbols): Add \#
-	as shortkey for replace-count.
-	(replace-quote): New function for doubling backslashes.
-
-2004-06-17  Juanma Barranquero  <lektu@terra.es>
-
-	* files.el (parse-colon-path, cd): Mention in docstring that the
-	path separator is colon in GNU-like systems.
-
-	* newcomment.el (comment-region-internal): Fix docstring.
-
-	* emacs-lisp/ewoc.el (ewoc-create, ewoc-map, ewoc-locate)
-	(ewoc-invalidate, ewoc-collect): Doc fixes.
-	(ewoc--create-node, ewoc--delete-node-internal):
-	Fix typos in docstring.
-
-2004-06-15  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* files.el (buffer-stale-function): Add hyperlink to emacs-xtra
-	manual to docstring.
-
-2004-06-15  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* ps-print.el (ps-time-stamp-iso8601): Comment doc string of defalias.
-
-2004-06-15  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir):
-	Add hyperlink to emacs-xtra manual to docstring.
-
-	* autorevert.el (global-auto-revert-non-file-buffers):
-	Add hyperlink to emacs-xtra manual to docstring, as well as an
-	info-link.
-
-2004-06-14  Juanma Barranquero  <lektu@terra.es>
-
-	* image.el (image-library-alist): New variable to map image types
-	to external libraries.  Initialized to nil, unless system-specific
-	configs change it.
-	(image-type-available-p): Determine whether an image type is
-	available by calling `init-image-library'.
-
-	* term/w32-win.el (image-library-alist): Initialize to a known set
-	of probable library names.
-
-2004-06-14  Kenichi Handa  <handa@m17n.org>
-
-	* international/code-pages.el (windows-1256, cp1125): Fix tables
-	for several characters.
-
-	* international/utf-8.el (ccl-encode-mule-utf-8): Fix previous change.
-
-2004-06-13  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/paragraphs.el (sentence-end): Add 0x5397d as close brace.
-
-	* emulation/pc-select.el: Doc fixes: say "PC Selection mode",
-	not "`pc-selection-mode'".
-
-	* emacs-lisp/bytecomp.el: Put `...' around symbols in warning messages.
-
-	* simple.el (previous-matching-history-element): Specify a default.
-
-	* hexl.el (hexl-mode): Catch errors in hexl-goto-address.
-
-	* cus-face.el (custom-declare-face): Simplify code.
-
-	* abbrev.el (abbrev-mode, edit-abbrevs-map): Doc fixes.
-
-2004-06-13  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* files.el (before-save-hook): Add `time-stamp' to the options.
-
-	* time-stamp.el (time-stamp): Recommend adding it to
-	`before-save-hook', rather than `write-file-functions'.
-	Make a similar change in `Commentary' section.
-
-2004-06-13  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	* diff-mode.el (diff-current-defun): If at start of hunk, use
-	position of first change.
-
-2004-06-13  Lars Hansen  <larsh@math.ku.dk>
-
-	* dired-x.el (dired-mark-omitted): Bind to "*O".
-
-2004-06-12  Karl Fogel  <kfogel@red-bean.com>
-
-	* bookmark.el (bookmark-bmenu-relocate): New function, as
-	suggested by David J. Biesack <David.Biesack@sas.com>.
-	(bookmark-bmenu-mode-map): Bind `bookmark-bmenu-relocate' to "R".
-	(bookmark-bmenu-mode): Describe binding in doc string.
-	(bookmark-set-filename): Save the bookmark list if it's time.
-
-2004-06-13  Kenichi Handa  <handa@m17n.org>
-
-	* 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)
-
-	* 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)
-
-	* bindings.el (completion-ignored-extensions): Add file extensions
-	of Python byte-compiled files.
-
-2004-06-12  Juri Linkov  <juri@jurta.org>
-
-	* info.el (Info-goto-node): Add autoload.
-	(Info-toc): Add substring-no-properties on Info file name.
-	(Info-mode, info, Info-toc, Info-mode-menu): Doc fix.
-	(Info-mode-map): Bind L to Info-history, T to Info-toc.
-
-2004-06-12  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule-cmds.el (set-language-environment):
-	Load subst tables if necessary.
-
-	* international/mule.el (decode-char): Load subst tables if necessary.
-	(encode-char): Likewise.
-
-	* international/utf-16.el (utf-16-decode-ucs): Handle a surrogate
-	pair correctly.  Call ccl-mule-utf-untrans for untranslable chars.
-	(utf-16le-decode-loop): Set r5 to -1 before loop.
-	(utf-16be-decode-loop): Likewise.
-	(ccl-decode-mule-utf-16le): Add EOF processing block.
-	(ccl-decode-mule-utf-16be): Likewise.
-	(ccl-decode-mule-utf-16le-with-signature): Likewise.
-	(ccl-decode-mule-utf-16be-with-signature): Likewise.
-	(ccl-decode-mule-utf-16): Likewise.  Set r5 to -1 initially.
-	(ccl-mule-utf-16-encode-untrans): New CCL.
-	(utf-16-decode-to-ucs): Handle pre-read character.
-	(utf-16le-encode-loop): Handle surrogate pair.
-	(utf-16be-encode-loop): Likewise.
-	(ccl-encode-mule-utf-16le-with-signature): Adjust for the change
-	of utf-16le-encode-loop.
-	(ccl-encode-mule-utf-16be-with-signature): Adjust for the change
-	of utf-16be-encode-loop.
-	(mule-utf-16-post-read-conversion):
-	Call utf-8-post-read-conversion at first.
-	(mule-utf-16[{le|be}], mule-utf-16{le|be}-with-signature):
-	Include CJK charsets in safe-charsets if utf-translate-cjk-mode is on.
-	Add post-read-conversion and pre-write-conversion.
-
-	* international/utf-8.el (utf-translate-cjk-charsets): New variable.
-	(utf-translate-cjk-unicode-range): New variable.
-	(utf-translate-cjk-load-tables): New function.
-	(utf-lookup-subst-table-for-decode): New function.
-	(utf-lookup-subst-table-for-encode): New function.
-	(utf-translate-cjk-mode): Init-value changed to t.  Don't load
-	tables here.  Update safe-charsets of utf-* coding systems.
-	(ccl-mule-utf-untrans): New CCL.
-	(ccl-decode-mule-utf-8): Call ccl-mule-utf-untrans.  Use `repeat'
-	at end of each branch.
-	(ccl-mule-utf-8-encode-untrans): New CCL.
-	(ccl-encode-mule-utf-8): Call ccl-mule-utf-8-encode-untrans.
-	(ccl-untranslated-to-ucs): Handle 2-byte encoding.  Set r1 to the
-	length of encoding.  Don't return r0.
-	(utf-8-compose): New arg hash-table.  Handle 2-byte encoding.
-	(utf-8-post-read-conversion): Narrow to region properly.
-	If utf-translate-cjk-mode is on, load tables if necessary.
-	Call utf-8-compose with hash-table arg if necessary.
-	Call XXX-compose-region instead of XXX-post-read-conversion.
-	(utf-8-pre-write-conversion): New function.
-	(mule-utf-8): Include CJK charsets in safe-charsets if
-	utf-translate-cjk-mode is on.  Add pre-write-conversion.
-
-	* international/characters.el: Temporarily set
-	utf-translate-cjk-mode to nil.
-
-	* language/devan-util.el (devanagari-compose-region):
-	Add autoload cookie.
-
-	* international/ccl.el (ccl-dump-call): Fix printing the
-	subroutine name.
-
-2004-06-11  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* dired.el (dired-revert): If buffer is marked unmodified before
-	reverting, keep it marked unmodified.  Adapt to new conventions
-	for commenting out code.
-	(dired-make-relative): Adapt to new conventions for commenting out
-	code.
-
-2004-06-10  Miles Bader  <miles@gnu.ai.mit.edu>
-
-	* eshell/esh-module.el (eshell-load-defgroups):
-	Bind `vc-handled-backends' to nil when opening files.
-
-2004-06-11  Juanma Barranquero  <lektu@terra.es>
-
-	* files.el (parse-colon-path, cd): Doc fixes (refer to
-	`path-separator', not colon).
-
-2004-06-10  Juanma Barranquero  <lektu@terra.es>
-
-	* newcomment.el (comment-search-forward)
-	(comment-search-backward): Fix typos in docstring.
-	(comment-region): Doc fix.
-
-2004-06-10  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* dired.el (dired-insert-old-subdirs): Adapt to fact that the R
-	switch is no longer stored in `dired-switches-alist'.
-
-	* dired-aux.el (dired-insert-subdir): Do not store R switch in
-	`dired-switches-alist'.
-
-2004-06-10  Kim F. Storm  <storm@cua.dk>
-
-	* pcvs.el (cvs-mode-diff-yesterday): New command.
-
-	* pcvs-defs.el (cvs-mode-diff-map): Bind y to cvs-mode-diff-yesterday.
-
-2004-06-10  Juri Linkov  <juri@jurta.org>
-
-	* emacs-lisp/edebug.el (edebug-eval-defun):
-	* emacs-lisp/lisp-mode.el (eval-defun-1): Add `defface'.
-	Fix docstring.
-
-	* simple.el (eval-expression-print-format): Don't print additional
-	information on the first call to `eval-print-last-sexp'.
-	(next-error-find-buffer): Fix punctuation.
-	(killing) <defgroup>: Fix punctuation.
-	(yank-excluded-properties): Change group from editing to killing.
-
-	* replace.el (perform-replace): Use `limit' to terminate the
-	while-loop explicitly.
-
-2004-06-09  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* toolbar/tool-bar.el (tool-bar-add-item, tool-bar-local-item):
-	Use lc-*.xpm as prefix instead of *-locol.xpm.
-
-	* toolbar/lc-copy.xpm, toolbar/lc-cut.xpm
-	* toolbar/lc-help.xpm, toolbar/lc-home.xpm
-	* toolbar/lc-index.xpm, toolbar/lc-jump_to.xpm
-	* toolbar/lc-left_arrow.xpm, toolbar/lc-new.xpm
-	* toolbar/lc-open.xpm, toolbar/lc-paste.xpm
-	* toolbar/lc-preferences.xpm, toolbar/lc-print.xpm
-	* toolbar/lc-right_arrow.xpm, toolbar/lc-save.xpm
-	* toolbar/lc-saveas.xpm, toolbar/lc-search.xpm
-	* toolbar/lc-spell.xpm, toolbar/lc-undo.xpm
-	* toolbar/lc-up_arrow.xpm:
-	Rename from *-locol.xpm.
-
-2004-06-09  Rajesh Vaidheeswarran  <rv@gnu.org>
-
-	* ffap.el (ffap-string-at-point-mode-alist): Fix the url mode to
-	include forms like &<str>; as valid url patterns.
-
-2004-06-08  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* dired.el (dired-diff, dired-backup-diff)
-	(dired-clean-directory, dired-do-chmod, dired-do-chgrp)
-	(dired-do-chown, dired-do-touch, dired-do-print)
-	(dired-do-shell-command, dired-do-kill-lines, dired-do-compress)
-	(dired-do-byte-compile, dired-do-load, dired-do-redisplay)
-	(dired-create-directory, dired-do-copy, dired-do-symlink)
-	(dired-do-hardlink, dired-do-rename, dired-do-rename-regexp)
-	(dired-do-copy-regexp, dired-do-hardlink-regexp)
-	(dired-do-symlink-regexp, dired-upcase, dired-downcase)
-	(dired-maybe-insert-subdir, dired-next-subdir)
-	(dired-prev-subdir, dired-goto-subdir, dired-mark-subdir-files)
-	(dired-kill-subdir, dired-tree-up, dired-tree-down)
-	(dired-hide-subdir, dired-hide-all, dired-show-file-type)
-	(dired-run-shell-command, dired-query): Remove redundant,
-	or incorrect, autoloads.
-
-	* dired-aux.el (dired-kill-tree): Do not kill DIRNAME, even if it
-	does not end in a slash.  Add optional argument KILL-ROOT.
-	Update docstring.
-	(dired-do-touch, dired-clean-directory, dired-run-shell-command)
-	(dired-query): Add autoloads.
-
-2004-06-08  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compilation-set-window-height): Rearrange
-	the save-* functions because a buffer can have several current
-	point in different windows.
-	(compilation-error-regexp-alist-alist): Recognize {standard input}
-	GNU messages (for gcc --pipe) and more kinds of Oracle messages.
-
-2004-06-08  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* toolbar/copy-locol.xpm, toolbar/cut-locol.xpm
-	* toolbar/help-locol.xpm, toolbar/home-locol.xpm
-	* toolbar/index-locol.xpm, toolbar/jump_to-locol.xpm
-	* toolbar/left_arrow-locol.xpm, toolbar/new-locol.xpm
-	* toolbar/open-locol.xpm, toolbar/paste-locol.xpm
-	* toolbar/preferences-locol.xpm, toolbar/print-locol.xpm
-	* toolbar/right_arrow-locol.xpm, toolbar/save-locol.xpm
-	* toolbar/saveas-locol.xpm, toolbar/search-locol.xpm
-	* toolbar/spell-locol.xpm, toolbar/undo-locol.xpm
-	* toolbar/up_arrow-locol.xpm:
-	New versions of icons that uses fewer colors.
-
-	* toolbar/tool-bar.el (tool-bar-local-item)
-	(tool-bar-local-item-from-menu): Try to use icons with fewer colors
-	if display-color-cells is 256 or less.
-
-2004-06-08  Kim F. Storm  <storm@cua.dk>
-
-	* wid-edit.el (widget-specify-button): Use hand pointer rather
-	than mouse-face as visible mouse-over effect.
-
-2004-06-07  Karl Fogel  <kfogel@red-bean.com>
-
-	* saveplace.el (save-place-alist-to-file): Bind `print-length'
-	and `print-level' to nil when writing out `save-place-alist'.
-	Thanks to Kai Grossjohann <kai@emptydomain.de> for enlightenment.
-
-2004-06-07  Juanma Barranquero  <lektu@terra.es>
-
-	* completion.el (completion-kill-region): Doc fix.
-
-	* format.el (format-insert-annotations)
-	(format-annotate-location): Doc fixes.
-	(format-subtract-regions): Make arguments match their use in docstring.
-
-	* simple.el (kill-region): Doc fix.
-
-	* subr.el (insert-buffer-substring-no-properties)
-	(insert-buffer-substring-as-yank): Doc fixes.
-
-2004-06-07  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir):
-	Update docstring.
-	(dired-reset-subdir-switches): New function.
-
-	* dired.el (dired-undo): Call `dired-build-subdir-alist'.
-	Limit scope of `buffer-read-only' binding.
-
-2004-06-06  Emilio C. Lopes  <eclig@gmx.net>
-
-	* eshell/esh-cmd.el (eshell/which): Respect commands quoted with
-	eshell-explicit-command-char.
-
-2004-06-06  Juanma Barranquero  <lektu@terra.es>
-
-	* help-fns.el (help-argument-name): Inherit from italic face only
-	if the frame supports it.
-
-2004-06-06  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* toolbar/alias.pbm, toolbar/close.pbm, toolbar/copy.pbm
-	* toolbar/cut.pbm, toolbar/help.pbm, toolbar/home.pbm
-	* toolbar/index.pbm, toolbar/jump_to.pbm, toolbar/left_arrow.pbm
-	* toolbar/new.pbm, toolbar/open.pbm, toolbar/paste.pbm
-	* toolbar/preferences.pbm, toolbar/print.pbm, toolbar/right_arrow.pbm
-	* toolbar/save.pbm, toolbar/saveas.pbm, toolbar/search.pbm
-	* toolbar/spell.pbm, toolbar/undo.pbm, toolbar/up_arrow.pbm:
-	New conversions from xpm files.
-
-	* toolbar/README: New file.
-
-2004-06-06  Richard M. Stallman  <rms@gnu.org>
-
-	* isearch.el (isearch-mode-map): Undo previous change.
-
-2004-06-05  Juri Linkov  <juri@jurta.org>
-
-	* bindings.el (debug-ignored-errors): Add regexps for history
-	related messages.  Remove $ from "No further undo information".
-	Move Ediff's messages to ediff.el.
-
-	* ediff.el: Move Ediff's debug-ignored-errors from bindings.el.
-
-	* cus-edit.el (custom-display): Add `min-colors'.
-
-	* custom.el (defface): Add `supports' to docstring.
-
-	* help-fns.el (help-argument-name): Add :group 'help.
-
-2004-06-05  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* find-dired.el (find-ls-subdir-switches): New user option.
-	(find-dired): No longer call `abbreviate-file-name' on DIR.
-	Set `dired-subdir-switches' buffer-locally.
-
-	* locate.el: Merge the two `Commentary' sections.
-	(locate-ls-subdir-switches): New user option.
-	(locate): Update for other changes.
-	(locate-mode-map): Restore Dired binding for mouse-2.
-	Bind `locate-mouse-view-file' to M-mouse-2.
-	Bind `l' to `locate-do-redisplay'.
-	(locate-main-listing-line-p, locate-do-redisplay): New functions.
-	(locate-mouse-view-file, locate-tags, locate-find-directory):
-	Print message if used outside main listing.
-	(locate-mode): Update docstring.  Make `*Locate*' buffer read-only.
-	Various changes to support inserted subdirectories.
-	(locate-insert-header): Change header of *Locate* buffer.
-
-	* dired-aux.el (dired-do-redisplay, dired-maybe-insert-subdir):
-	Change interactive default switches.
-	(dired-rename-subdir-2): Update `dired-switches-alist'.
-	(dired-insert-subdir, dired-kill-subdir):
-	Handle `dired-switches-alist'.  Do not mark buffer modified.
-	(dired-insert-subdir-validate): Handle `dired-subdir-switches'.
-	(dired-insert-subdir-doinsert): Omit messages.
-	Handle `dired-subdir-switches'.
-	(dired-hide-subdir, dired-hide-all): Do not mark buffer modified.
-
-	* dired.el (dired-subdir-switches, dired-switches-alist): New vars.
-	(dired-insert-old-subdirs): Do not repeatedly delete and reinsert
-	subdirs if -R switch is used for a subdir.
-	(dired-mode): Set `dired-switches-alist'.
-	(dired-build-subdir-alist): Only print number of directories in
-	echo area when invoked interactively.
-
-2004-06-05  Lars Hansen  <larsh@math.ku.dk>
-
-	* dired-x.el (dired-omit-mode): Rename from
-	dired-omit-files-p.  Use define-minor-mode to define it.
-	(dired-omit-files-p): Add as alias for dired-omit-mode.
-	(dired-omit-toggle): Delete.  Replaced by dired-omit-mode and
-	dired-mark-omitted.
-	(dired-mark-omitted): Add.  Bind to M-O.
-
-2004-06-05  Kenichi Handa  <handa@m17n.org>
-
-	* ps-print.el: Fix typos (kein'ichi -> ken'ichi)
-
-2004-06-05  Juanma Barranquero  <lektu@terra.es>
-
-	* help-fns.el (help-argument-name): Reintroduce face.
-	(help-default-arg-highlight): Use it, now that
-	`face-differs-from-default-p' can be trusted.
-
-2004-06-05  Matt Hodges  <matt@stchem.bham.ac.uk>  (tiny change)
-
-	* textmodes/table.el: Sentence commands added to Point Motion
-	group; kill and backward-kill commands added to Extraction group.
-
-2004-06-04  Mario Lang  <mlang@delysid.org>
-
-	* battery.el (battery-linux-proc-acpi): `mA' was hardcoded, but some
-	systems appear to use mW, make the code handle this.  Fix a
-	division-by-zero bug while at it, and handle kernels with
-	a slightly different layout in /proc/acpi.
-
-2004-06-04  Karl Fogel  <kfogel@red-bean.com>
-
-	* vc-svn.el (vc-svn-checkin): Use `nconc' instead of `list*',
-	because the latter is a CL-ism.  This fixes the bug reported by
-	Shawn Boyette <mdxi@collapsar.net> in
-	http://lists.gnu.org/archive/html/emacs-devel/2004-05/msg00442.html.
-
-2004-06-04  Miles Bader  <miles@gnu.org>
-
-	* faces.el (display-supports-face-attributes-p): Function moved to
-	C code.  Previously only the tty-related portion of this function
-	was done in C; however the previous attempt to do a halfway-proper
-	job for non-tty displays in lisp didn't work properly because of
-	funny conditions during Emacs startup.
-	(face-differs-from-default-p): Simplify, now that
-	display-supports-face-attributes-p works properly on all display
-	types.  Remove :stipple from comparison; it doesn't really work
-	in emacs anyway.
-
-2004-06-04  Miles Bader  <miles@gnu.org>
-
-	* faces.el (face-differs-from-default-p): Use a different
-	implementation, so we can really check whether FACE displays
-	differently or not.
-
-2004-06-04  Miles Bader  <miles@gnu.org>
-
-	* faces.el (display-supports-face-attributes-p): Implement a
-	`different from default' check for non-tty displays.
-
-2004-06-03  David Kastrup  <dak@gnu.org>
-
-	* woman.el (woman-mapcan): More concise code.
-	(woman-topic-all-completions, woman-topic-all-completions-1)
-	(woman-topic-all-completions-merge): Replace by a simpler and
-	much faster implementation based on O(n log n) sort/merge instead
-	of the old O(n^2) behavior.
-
-2004-06-03  Miles Bader  <miles@gnu.org>
-
-	* subr.el (read-number): Use canonical format for default in prompt.
-
-	* minibuf-eldef.el (minibuffer-default-in-prompt-regexps):
-	Add regexp for " [...]" style defaults.
-
-2004-06-02  Romain Francoise  <romain@orebokech.com>
-
-	* ibuf-ext.el (ibuffer-jump-to-buffer): Add support for filter
-	groups: if the user asks for a hidden buffer, open the
-	corresponding filter group to expose it.
-
-	* ibuffer.el (ibuffer-mode-map): Add key binding `M-g' to
-	`ibuffer-jump-to-buffer'.
-	(ibuffer-jump-offer-only-visible-buffers): New user option.
-
-2004-06-02  Juanma Barranquero  <lektu@terra.es>
-
-	* faces.el (frame-update-faces): Add empty docstring so the one
-	for `ignore' doesn't show through.
-
-	* subr.el (process-kill-without-query): Remove spurious "\n" on
-	obsolescence string.
-	(focus-frame, unfocus-frame): Add obsolescence declaration and
-	empty docstring.
-
-	* international/mule.el (register-char-codings): Make alias for
-	`ignore'.  Move docstring to obsolescence info and remove redundancy.
-
-2004-06-02  Kim F. Storm  <storm@cua.dk>
-
-	* frame.el (blink-cursor-start): Turn cursor off initially so blink
-	starts after blink-cursor-delay rather than 2*blink-cursor-delay.
-
-2004-06-01  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* comint.el (comint-replace-by-expanded-history-before-point):
-	Obey `start' as the docstring says.
-	(comint-send-input, comint-snapshot-last-prompt, comint-output-filter)
-	(comint-update-fence): Prevent font-lock from running unnecessarily.
-	(comint-dynamic-list-completions): Use with-current-buffer.
-
-2004-06-01  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
-
-	* textmodes/bibtex.el (bibtex-format-entry): Fix regexps.
-	(bibtex-parse-strings): Bugfix, use assoc instead of assoc-string.
-	(bibtex-entry-update): Handle alternatives and optional fields.
-	(bibtex-parse-entry): Bugfix, handle empty key.
-
-2004-05-31  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-arch.el (vc-arch-state): Don't assume the file exists.
-
-2004-05-31  Lars Hansen  <larsh@math.ku.dk>
-
-	* desktop.el (desktop-save): Don't save minor modes without a
-	known mode initialization function.
-
-2004-05-30  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* replace.el (query-replace-interactive): Convert defvar -> defcustom.
-
-	* autorevert.el: Update `Commentary' section.
-
-2004-05-30  Juanma Barranquero  <lektu@terra.es>
-
-	* dos-fns.el (convert-standard-filename):
-	* files.el (convert-standard-filename):
-	* w32-fns.el (convert-standard-filename):
-	Rework docstring (wording by Eli Zaretskii and Kai Grossjohann).
-
-2004-05-30  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	Sync with Tramp.
-
-	* net/tramp.el (tramp-let-maybe): Reverse args of `get'.
-	(tramp-let-maybe): Move to an earlier spot in the file.
-	Patch by Andreas Schwab.
-
-2004-05-30  Andreas Schwab  <schwab@suse.de>
-
-	* dired.el (dired-get-filename): Don't use dired-re-dot.
-
-2004-05-30  Richard M. Stallman  <rms@gnu.org>
-
-	* files.el (find-file): Doc fix.
-
-	* font-lock.el (lisp-font-lock-keywords-2): Add multiple-value-bind.
-
-2004-05-30  Nick Roberts  <nickrob@gnu.org>
-
-	* progmodes/gdb-ui.el (gdb-current-frame, gud-watch)
-	(gdb-locals-mode, gdb-frame-handler): Display current frame in the
-	modeline of the locals buffer.
-	(gdb-goto-breakpoint): Handle gdbmi.
-	(gdb-get-frame-number): Change for gdbmi.
-
-2004-05-30  Michael Albinus  <michael.albinus@gmx.de>
-
-	* files.el (file-remote-p): Apply file name handler for operation
-	`file-remote-p'.  It isn't a property any longer.
-	(file-relative-name): `fh' and `fd' get the required value via
-	`find-file-name-handler' already.
-
-	* ange-ftp.el (ange-ftp-file-remote-p): New defun.
-	(top): Remove setting of `file-remote-p' property for
-	`ange-ftp-hook-function'.  Add `ange-ftp' property to `file-remote-p'.
-
-2004-05-29  Michael Albinus  <michael.albinus@gmx.de>
-
-	Version 2.0.41 of Tramp released.
-
-	* tramp.el (tramp-wait-for-regexp, tramp-wait-for-output):
-	Throw away if process has died.
-	Reported by Luc Teirlinck <teirllm@dms.auburn.edu>.
-	(tramp-out-of-band-prompt-regexp): Rename to
-	`tramp-process-alive-regexp', because its usage is widen.
-	(tramp-actions-copy-out-of-band): Apply it.
-	(tramp-actions-before-shell, tramp-multi-actions):
-	Add `tramp-action-process-alive' action.
-	(tramp-action-process-alive): New defun.
-	(tramp-file-name-handler-alist, tramp-file-name-for-operation):
-	Add entry for `file-remote-p'.
-	(tramp-handle-file-remote-p): New defun.
-	(top): Remove setting of `file-remote-p'.  Don't set
-	`inhibit-file-name-handlers' and `inhibit-file-name-operation'.
-
-	* tramp-smb.el (tramp-smb-file-name-handler-alist): Add entry for
-	`file-remote-p'.
-
-	* tramp-uu.el (tramp-uuencode-region): Padding characters aren't
-	counted for (last) line.  [They should or they shouldn't?  --Stef]
-	Reported by Aaron Ucko <ucko@ncbi.nlm.nih.gov>.
-
-2004-05-29  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	* tramp.el (tramp-initial-commands): Add "unset HISTFILE"; this is
-	not really necessary but seems to keep the shell history smaller
-	in some cases.  It is no substitute for setting HISTFILE and
-	HISTSIZE from tramp-open-connection-setup-interactive-shell,
-	though.  Suggested by Luc Teirlinck.
-	(tramp-open-connection-setup-interactive-shell): Export variables
-	HISTFILE and HISTSIZE, do not just set them.  From Luc Teirlinck.
-	(tramp-set-process-query-on-exit-flag): New compat function.
-	(tramp-open-connection-multi, tramp-open-connection-su)
-	(tramp-open-connection-rsh, tramp-open-connection-telnet)
-	(tramp-do-copy-or-rename-file-out-of-band): Use it.
-	(tramp-let-maybe): New macro, let-binds a variable only if it
-	isn't obsolete.
-	(tramp-check-ls-commands, tramp-handle-expand-file-name)
-	(tramp-handle-file-truename): Use it.
-	(tramp-completion-file-name-regexp-unified): Avoid matching
-	filenames starting with "/:" -- those are reserved for
-	file-name-non-special.
-
-	* tramp-smb.el (tramp-smb-open-connection):
-	Use tramp-set-process-query-on-exit-flag compat function.
-
-2004-05-29  Richard M. Stallman  <rms@gnu.org>
-
-	* net/browse-url.el (browse-url-interactive-arg): Doc fix.
-
-	* emacs-lisp/lisp-mode.el (prin1-char): Catch errors from `string'.
-	(eval-last-sexp-print-value): Print char equivalent regardless
-	of standard-output value.
-
-	* thumbs.el (thumbs-subst-char-in-string): Delete.
-	(thumbs-thumbname): Use subst-char-in-string.
-	(thumbs-resize-image): Use condition-case, not ignore-errors.
-	(thumbs-kill-buffer): Likewise.
-
-	* thumbs.el: Don't include cl.  Don't bother with old Emacs versions.
-	(thumbs-mode): Make buffer read-only.
-	(thumbs-make-thumb): Unconditionally accept an existing file.
-	(thumbs-insert-thumb): Add thumb-image-file property to the image.
-	(thumbs-do-thumbs-insertion): Be smarter about where to put newlines.
-	(thumbs-show-thumbs-list): Error if images not supported.
-	(thumbs-save-current-image): Improve prompt string.
-	(thumbs-mode-map): Define u, R, x.
-	(thumbs-unmark): New command.
-	(thumbs-emboss-image): Minor cleanup.
-	(thumbs-forward-char, thumbs-backward-char): Skip chars with no image.
-	(thumbs-rename-images): New command.
-	(thumbs-show-image-num): Rewrite.  Don't rename the buffer.
-
-	* thumbs.el (thumbs-current-image): New function.
-	(thumbs-file-list, thumbs-file-alist): New functions.
-	(thumbs-find-image): Delete arg L.
-	Don't set up thumbs-fileL as buffer-local global var.
-	(thumbs-find-image-at-point): Use thumbs-current-image.
-	(thumbs-set-image-at-point-to-root-window): Likewise.
-	(thumbs-delete-images): Use thumbs-current-image, thumbs-file-alist.
-	Record and warn about errors.  Update thumbs-markedL for deletions.
-	(thumbs-next-image, thumbs-previous-image): Use thumbs-file-alist.
-	(thumbs-redraw-buffer): Use thumbs-file-list.
-	(thumbs-mark): Use thumbs-current-image.
-	(thumbs-show-name): Use thumbs-current-image.
-
-	* imenu.el (imenu--menubar-select): Set imenu-menubar-modified-tick
-	and imenu--last-menubar-index-alist.
-
-	* subr.el (with-selected-window): Undo previous change.
-
-2004-05-29  John Paul Wallington  <jpw@gnu.org>
-
-	* thumbs.el (thumbs-show-name): Do nothing if no image at point.
-	(thumbs-mouse-find-image): New command.
-	(thumbs-mode-map): Bind it to mouse-2.
-	(thumbs-mode): Make mode-class special.
-	(thumbs-view-image-mode): Likewise.
-
-2004-05-29  Pavel Kobiakov  <pk_at_work@yahoo.com>
-
-	* flymake.el: New file.
-
-2004-05-28  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* files.el (find-file-noselect-1): Do not bind
-	`inhibit-read-only' to t during execution of
-	`find-file-not-found-functions'.
-
-2004-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-mcvs.el (vc-mcvs-print-log, vc-mcvs-diff):
-	* vc-arch.el (vc-arch-diff): Add optional `buffer' arg.
-
-2004-05-28  Juri Linkov  <juri@jurta.org>
-
-	* simple.el (eval-expression-print-format): New fun.
-
-	* simple.el (eval-expression):
-	* emacs-lisp/lisp-mode.el (eval-last-sexp-print-value):
-	* emacs-lisp/edebug.el (edebug-compute-previous-result)
-	(edebug-eval-expression): Print additionally the value returned by
-	`eval-expression-print-format'.
-
-	* emacs-lisp/lisp.el (insert-pair-alist): New var.
-	(insert-pair): Make arguments optional.  Find character pair
-	from `insert-pair-alist' according to the last input event.
-	(insert-parentheses): Make arguments optional.
-	(raise-sexp, delete-pair): New funs.
-
-	* emacs-lisp/lisp-mode.el (indent-pp-sexp): New fun.
-	(emacs-lisp-mode-map, lisp-interaction-mode-map):
-	Bind C-M-q to `indent-pp-sexp'.
-
-	* emacs-lisp/pp.el (pp-buffer): New fun created from the code in
-	`pp-to-string' modified to be able to format text with newlines.
-	(pp-to-string): Move the buffer-formatting part of the code to
-	`pp-buffer'.  Call `pp-buffer'.
-
-	* info.el (Info-desktop-buffer-misc-data): Don't save information
-	about virtual files.
-	(Info-restore-desktop-buffer): Restore Info buffers in prepared
-	buffers with names obtained from the desktop file instead of the
-	default *info* buffer.
-
-2004-05-28  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* subr.el (with-selected-window): Only save/restore the selected
-	window.
-
-	* progmodes/compile.el (compilation-error-regexp-alist):
-	Use expand-file-name and data-directory.
-
-	* progmodes/grep.el (grep-tree): Rework previous fix.
-
-	* mouse.el (mouse-set-region-1): Use temporary transient-mark-mode
-	after the user marked text with the mouse.
-
-	* startup.el (command-line): Keep the first regexp of
-	auto-save-file-name-transforms intact.
-
-2004-05-28  Juanma Barranquero  <lektu@terra.es>
-
-	* cus-edit.el (customize-face, customize-face-other-window)
-	(custom-face-edit-delete): Make arguments match their use in
-	docstring.
-	(custom-unloaded-symbol-p, custom-unloaded-widget-p): Fix typo in
-	docstring.
-
-	* cvs-status.el (cvs-tree-merge, cvs-tags->tree): Use `butlast',
-	not `cvs-butlast'.
-
-	* pcvs-util.el (cvs-butlast, cvs-nbutlast): Remove (`butlast' and
-	`nbutlast' are in subr.el).
-
-	* w32-fns.el (w32-using-nt, w32-shell-dos-semantics)
-	(set-w32-system-coding-system): Doc fixes.
-
-	* textmodes/artist.el (artist-last, artist-remove-nulls): Simplify.
-	(artist-draw-ellipse-general, artist-draw-ellipse-with-0-height):
-	Make arguments match their use in docstring.
-	(artist-draw-region-trim-line-endings)
-	(artist-mouse-choose-operation): Fix typo in docstring.
-	(artist-key-set-point-common): Doc fix.
-
-2004-05-28  Simon Josefsson  <jas@extundo.com>
-
-	* mail/smtpmail.el (smtpmail-open-stream):
-	Bind starttls-extra-arguments too, if starttls.el uses GNUTLS.
-
-2004-05-26  Simon Josefsson  <jas@extundo.com>
-
-	* starttls.el: Merge with my GNUTLS based starttls.el.
-	(starttls-gnutls-program, starttls-use-gnutls)
-	(starttls-extra-arguments, starttls-process-connection-type)
-	(starttls-connect, starttls-failure, starttls-success): New variables.
-	(starttls-program, starttls-extra-args): Doc fix.
-	(starttls-negotiate-gnutls, starttls-open-stream-gnutls): New funs.
-	(starttls-negotiate, starttls-open-stream): Check `starttls-use-gnutls'
-	and pass on to corresponding *-gnutls function if it is set.
-
-2004-05-27  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el (auto-revert-handler): Disable auto-reverting of
-	remote files.
-
-2004-05-27  Michael Albinus  <michael.albinus@gmx.de>
-
-	* files.el (file-name-non-special): There are more operations
-	which need handling: `find-backup-file-name',
-	`insert-file-contents', `verify-visited-file-modtime',
-	`write-region'.  Rename t value of method to `add'.  Add new
-	methods `quote' and `unquote-then-quote' to file-arg-indices.
-
-2004-05-25  Juri Linkov  <juri@jurta.org>
-
-	* info.el (Info-toc): Call Info-mode on intermediate buffer.
-	(Info-index-nodes): Enclose code in condition-case to catch errors.
-	(Info-index-node): Don't search all index nodes if request is only
-	for the current node and file is not in the cache of index nodes.
-	(Info-mode-map): Bind Info-copy-current-node-name to `w'
-	for consistency with dired-copy-filename-as-kill.
-	Bind `S' to Info-search-case-sensitively.
-	(Info-copy-current-node-name): New arg.  With zero prefix arg put
-	the name inside a function call to `info'.  Display copied text in
-	the echo area.
-
-2004-05-25  Sam Steingold  <sds@gnu.org>
-
-	* emacs-lisp/lisp-mode.el (lisp-find-tag-default): New function:
-	strip the package prefix from the symbol name, if any.
-	Make it the `find-tag-default-function' for `lisp-mode'.
-
-2004-05-25  John Paul Wallington  <jpw@gnu.org>
-
-	* gs.el (gs-load-image): Use `set-process-query-on-exit-flag'
-	instead of obsolete `process-kill-without-query'.
-
-	* textmodes/texinfmt.el (texinfo-indexvar-alist):
-	Declare as variable, not constant.
-
-2004-05-25  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* files.el (find-file-noselect-1): Fix bug introduced by
-	Revision 1.694.  As a side effect, `inhibit-read-only'
-	is again, by default, t during execution of
-	`find-file-not-found-functions'.
-	(insert-directory): Check that lines were really inserted by
-	the --dired switch, before erasing them.
-
-2004-05-24  Nick Roberts  <nickrob@gnu.org>
-
-	* progmodes/gdb-ui.el (gdb-breakpoints-mode, gdb-frames-mode)
-	(gdb-locals-mode): Check gud-minor-mode in gud-comint-buffer.
-	(gdb-var-update, gdb-var-update-handler, gdb-var-delete)
-	(gdb-edit-value, gdb-speedbar-expand-node): Handle new value for
-	gud-minor-mode (gdbmi).
-
-2004-05-24  Yoichi NAKAYAMA  <yoichi@geiin.org>  (tiny change)
-
-	* net/browse-url.el (browse-url-interactive-arg): Enable user to
-	explicitly select the text to be taken as URL.
-
-2004-05-23  Juri Linkov  <juri@jurta.org>
-
-	* info.el (Info-index-nodes): New var and fun.
-	(Info-goto-index, Info-index, info-apropos)
-	(Info-find-emacs-command-nodes): Rewrite to use Info-index-nodes.
-	(Info-index): Fix docstring.  Store and restore Info-history-list.
-	(Info-complete-nodes): New var.
-	(Info-complete-menu-item): Use it.
-	(Info-index-node): New fun.
-	(Info-final-node, Info-forward-node, Info-backward-node)
-	(Info-build-toc, Info-try-follow-nearest-node, Info-fontify-node):
-	Use Info-index-node.
-	(Info-extract-menu-item, Info-extract-menu-counting): Set second
-	arg of `Info-extract-menu-node-name' to non-nil for index nodes.
-	(Info-find-node-2): If a node with period in its name not found,
-	try to find a node without the name part after period.
-	(Info-select-node): Call Info-fontify-node only if
-	Info-fontify-maximum-menu-size is not nil.
-	(info-apropos): Set Info-fontify-maximum-menu-size to nil.
-	(Info-find-emacs-command-nodes, Info-goto-emacs-command-node):
-	Preserve Info-history-list.
-	(Info-toc): Set Info-current-file.
-	(Info-build-toc): Move point to the beginning of the buffer.
-	Add main-file variable.
-	(Info-dir-remove-duplicates, Info-history, Info-toc, info-apropos):
-	Use backslashed representation of the control character ^_.
-
-	* textmodes/texinfmt.el (texinfo-print-index): Print index line
-	numbers in the new Texinfo 4.7 format.
-
-	* add-log.el (change-log-font-lock-keywords): Remove `:' from
-	regexps for function and variable names.
-
-	* descr-text.el (describe-property-list): Add [show] button for
-	`syntax-table' property with action to pp to a separate buffer.
-	(describe-char): Replace search-forward by re-search-forward with
-	whitespace regexp after "character:" to not fail in too narrow windows.
-
-	* simple.el (next-error-find-buffer): Add a rule to return
-	next-error capable buffer if one window on the selected frame
-	displays such buffer.
-
-2004-05-23  Nick Roberts  <nickrob@gnu.org>
-
-	* progmodes/gdb-ui.el (gdb-server-prefix): New variable.
-	(gud-watch, gdb-send-item, gdb-breakpoints-mode, gdb-frames-mode)
-	(gdb-locals-mode, gdb-send-item, gdb-toggle-breakpoint)
-	(gdb-delete-breakpoint, gdb-frames-select, gdb-threads-buffer)
-	(gdb-registers-buffer, gdb-reset, gdb-assembler-buffer):
-	Handle new value for gud-minor-mode (gdbmi).
-	(gdb-buffer-type, gdb-input-queue, gdb-prompting)
-	(gdb-output-sink, gdb-current-item, gdb-pending-triggers):
-	Change from local to global gdb variable set.
-	(gdb-ann3): Initialize above gdb variable set.
-	(gdb-var-update, gdb-var-update-handler, gdb-enqueue-input)
-	(gdb-dequeue-input, gdb-source, gdb-pre-prompt, gdb-prompt)
-	(gdb-subprompt, gdb-starting, gdb-stopping, gdb-frame-begin)
-	(gdb-stopped, gdb-post-prompt, gdb-concat-output)
-	(def-gdb-auto-update-trigger, def-gdb-auto-update-handler)
-	(gdb-info-locals-handler, gdb-invalidate-assembler)
-	(gdb-get-current-frame, gdb-frame-handler): Handle gdb variable
-	set as global variables.
-	(gdb-get-create-buffer): Don't make gud-comint buffer-local.
-	Handle gdbmi.
-	(gdb-info-breakpoints-custom): Fix regexp.
-	(def-gdb-var): Delete.
-
-	* progmodes/gud.el (gud-menu-map, gud-speedbar-menu-items)
-	(gud-speedbar-buttons, gud-sentinel, gud-display-line)
-	(gud-basic-call): Handle new value for gud-minor-mode (gdbmi) for
-	a new mode.  The file (gdb-mi.el) for this mode will be included
-	with the GDB distribution (6.2 onwards) and will use GDB/MI as its
-	primary interface.
-
-2004-05-23  Jesper Harder  <harder@ifa.au.dk>
-
-	* progmodes/grep.el (grep-tree): Ensure that DIR argument is
-	interpreted as a directory.
-
-2004-05-22  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/paragraphs.el (sentence-end): Match unicode curly quotes
-	as a close quote.
-
-	* textmodes/bibtex.el: Use assoc-string, not assoc-ignore-case.
-
-	* progmodes/idlw-shell.el (idlwave-shell-get-object-class):
-	Use assoc-string, not assoc-ignore-case.
-
-	* progmodes/ada-mode.el: Use assoc-string, not assoc-ignore-case.
-
-	* emacs-lisp/lisp.el (mark-defun, narrow-to-defun):
-	If moving back then fwd gets a defun that ends before point,
-	try again moving fwd then back.
-
-	* files.el (file-name-non-special): Allow t in file-arg-indices
-	to mean requote the return value.  Use `identity' as an element
-	rather than as the whole value.
-
-	* gs.el (gs-options): Add -dSAFER.  Mark it risky.
-
-2004-05-22  Juanma Barranquero  <lektu@terra.es>
-
-	* help-fns.el (help-add-fundoc-usage): Use %S only for output of
-	`help-make-usage'.
-	(help-highlight-arguments): Skip function name before searching
-	for arguments.
-
-2004-05-21  Juanma Barranquero  <lektu@terra.es>
-
-	* allout.el (allout-chart-subtree, allout-rebullet-topic-grunt):
-	Don't mention in the docstring these arguments meant for
-	internal (recursive) use only.
-	(allout-char-spec): Comment out (it's not implemented).
-	(allout-old-expose-topic, allout-exposure): Fix docstring and add
-	obsolescence declaration.
-	(allout-flatten-exposed-to-buffer)
-	(allout-indented-exposed-to-buffer): Fix typos in docstring.
-	(my-mark-marker): Doc fix.
-	(produce-allout-mode-map, allout-sibling-index)
-	(allout-isearch-expose, allout-distinctive-bullet)
-	(allout-open-topic, allout-reindent-body)
-	(allout-rebullet-heading, allout-process-exposed)
-	(allout-insert-listified, allout-latex-verb-quote)
-	(allout-insert-latex-header, allout-insert-latex-trailer):
-	Make arguments match their use in docstring.
-	(allout-primary-bullet, allout-old-style-prefixes)
-	(allout-inhibit-protection, allout-init, allout-mode)
-	(allout-before-change-protect, allout-flag-region):
-	Use "Emacs" instead of "emacs" in docstrings.
-
-2004-05-21  Masayuki Ataka  <ataka@milk.freemail.ne.jp>  (tiny change)
-
-	* international/characters.el: Modify syntax of more characters.
-
-2004-05-21  Masatake YAMATO  <jet@gyve.org>
-
-	* progmodes/etags.el (tags-apropos, list-tags): Require apropos.
-	(etags-tags-completion-table): Show parsing progress.
-
-2004-05-20  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* locate.el (locate-prompt-for-command): Shorten first line of
-	docstring.
-	(locate-mode): Expand docstring and include keymap summary.
-
-	* files.el (find-file-noselect-1): Limit the scope of the
-	`inhibit-read-only' binding.  Make sure that `inhibit-read-only'
-	is, by default, nil during the execution of
-	`find-file-not-found-functions' and `find-file-hook'.
-
-2004-05-20  Michael Mauger  <mmaug@yahoo.com>
-
-	* facemenu.el (facemenu-color-name-equal): New function.
-	(list-colors-display): Use it to compare colors instead of
-	facemenu-color-equal.
-
-2004-05-20  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* compare-w.el (compare-windows-face): Use min-colors instead of
-	checking for tty or pc types.
-
-2004-05-19  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* simple.el (do-auto-fill): Remove unused vars `bol' and `opoint'.
-	(completion-setup-function): Use with-current-buffer.
-	Properly save excursion.  Simplify.
-	Don't assume there is necessarily a `mouse-face' property somewhere.
-
-	* progmodes/gud.el (gud-reset): Use unless & with-current-buffer.
-
-	* progmodes/gdb-ui.el (gdb-reset): Use unless.  Fix regexp.
-
-	* emacs-lisp/bytecomp.el (byte-compile-log): Use backquotes.
-	(byte-compile-log-1): Don't call (byte-goto-log-buffer).
-	Use with-current-buffer.
-	(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)
-
-	* net/ldap.el (ldap-search-internal): Avoid mixing standard error
-	output messages into the search result.
-
-2004-05-19  Masatake YAMATO  <jet@gyve.org>
-
-	* wid-edit.el (widget-radio-button-notify): Revert my last
-	change.  Reported by Katsumi Yamaoka <yamaoka@jpl.org>.
-
-2004-05-19  Kenichi Handa  <handa@m17n.org>
-
-	* international/characters.el: Fix syntax (open/close) of CJK chars.
-
-2004-05-18  Karl Chen  <quarl@hkn.eecs.berkeley.edu>  (tiny change)
-
-	* help-mode.el (help-go-back): Don't depend on position of back button.
-
-2004-05-18  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* files.el (auto-save-file-name-transforms): Make sure ange-ftp temp
-	files don't contain an accidental additional /.
-
-	* textmodes/tex-mode.el (tex-compilation-parse-errors): Save excursion
-	in source buffer.
-
-2004-05-18  Masatake YAMATO  <jet@gyve.org>
-
-	* wid-edit.el (widget-radio-button-notify): Don't pass `widget'
-	to widget-apply.  :action method assumes 2 arguments, not 3.
-
-2004-05-17  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* progmodes/f90.el (f90-end-block-re, f90-start-block-re):
-	New constants.
-	(hs-special-modes-alist): Add an f90-mode entry.
-
-2004-05-17  Sam Steingold  <sds@gnu.org>
-
-	* emacs-lisp/cl-indent.el (common-lisp-indent-function-1):
-	Indent "without-" forms just like "with-" and "do-".  Use regexp-opt.
-
-2004-05-16  Kim F. Storm  <storm@cua.dk>
-
-	* emacs-lisp/timer.el (timer-event-handler): Fix last change.
-
-2004-05-15  John Wiegley  <johnw@newartisans.com>
-
-	* eshell/esh-io.el (eshell-get-target): Whitespace changes.
-	(eshell-output-object-to-target): Improve output speed 20% by not
-	calling `eshell-stringify' if something is already known to be a
-	string.
-
-2004-05-15  Alex Ott  <ott@jet.msk.su>
-
-	* textmodes/ispell.el (ispell-local-dictionary-alist):
-	Add windows-1251 to the choice of coding systems.
-	(ispell-dictionary-alist-6): Add support for "russianw.aff",
-	encoded in cp1251.
-
-2004-05-15  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* progmodes/compile.el (compilation-warning-face)
-	(compilation-info-face): Use min-colors.
-
-2004-05-15  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* toolbar/close.pbm, toolbar/close.xpm, toolbar/copy.pbm
-	* toolbar/copy.xpm, toolbar/cut.pbm, toolbar/cut.xpm
-	* toolbar/help.pbm, toolbar/help.xpm, toolbar/home.pbm
-	* toolbar/home.xpm, toolbar/index.pbm, toolbar/index.xpm
-	* toolbar/jump_to.pbm, toolbar/jump_to.xpm, toolbar/left_arrow.pbm
-	* toolbar/left_arrow.xpm, toolbar/new.pbm, toolbar/new.xpm
-	* toolbar/open.pbm, toolbar/open.xpm, toolbar/paste.pbm
-	* toolbar/paste.xpm, toolbar/preferences.pbm, toolbar/preferences.xpm
-	* toolbar/print.pbm, toolbar/print.xpm, toolbar/right_arrow.pbm
-	* toolbar/right_arrow.xpm, toolbar/save.pbm, toolbar/save.xpm
-	* toolbar/saveas.pbm, toolbar/saveas.xpm, toolbar/search.pbm
-	* toolbar/search.xpm, toolbar/spell.pbm, toolbar/spell.xpm
-	* toolbar/undo.pbm, toolbar/undo.xpm, toolbar/up_arrow.pbm
-	* toolbar/up_arrow.xpm: New icons from GTK+ version 2.
-
-2004-05-15  Kim F. Storm  <storm@cua.dk>
-
-	* emacs-lisp/timer.el (timer-activate): Add optional arg triggered-p.
-	Use it to set triggered-p element of timer.
-	(timer-event-handler): Set triggered-p element non-nil while running
-	the timer function.
-
-2004-05-14  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* descr-text.el (describe-char-unicode-data)
-	(describe-char-unicodedata-file): Re-enable the unicode code now that
-	the licensing issues have been cleared in the unicode-4 license.
-	(describe-text-properties-1): Remove unused `overlay' var.
-	(describe-char): Remove unused var `buffer'.
-
-2004-05-14  David Ponce  <david@dponce.com>
-
-	* tree-widget.el: New file.
-
-2004-05-13  Marcelo Toledo  <marcelo@gnu.org>
-
-	* language/european.el ("Brazilian Portuguese"): Add support for
-	Brazilian Portuguese.
-
-2004-05-13  John Wiegley  <johnw@newartisans.com>
-
-	* iswitchb.el (iswitchb-use-virtual-buffers): Only turn on
-	`recentf-mode' if this variable has been customized to t.
-
-	* eshell/esh-test.el (eshell-test): Call the function
-	`emacs-version' rather than trying to build a custom version string.
-
-2004-05-13  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* net/telnet.el (telnet-mode): Use define-derived-mode.
-	Don't modify the global value of comint-prompt-regexp.
-
-2004-05-13  John Paul Wallington  <jpw@gnu.org>
-
-	* version.el (emacs-version): Check for `gtk' feature before
-	`x-toolkit' feature.
-
-2004-05-13  Juanma Barranquero  <lektu@terra.es>
-
-	* files.el (file-truename): Don't mention COUNTER and PREV-DIRS
-	arguments in the docstring, they're used only in recursive calls.
-
-	* help-fns.el (help-arg-highlighting-function)
-	(help-argument-name): Delete.
-	(help-default-arg-highlight): New function.
-	(help-do-arg-highlighting): Use it.
-
-2004-05-13  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* 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)
-
-	* calendar/appt.el (appt-disp-window): Do not split window
-	excessively when `split-height-threshold' is low.
-
-2004-05-12  Nick Roberts  <nickrob@gnu.org>
-
-	* progmodes/gud.el (gud-mode): Add gud-kill-buffer-hook to
-	kill-buffer-hook here and make it local.
-	(gud-kill-buffer-hook): Use kill-process for a sure kill.
-
-2004-05-12  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compilation-set-window-height):
-	Use save-excursion to protect against misplaced marker.
-
-2004-05-12  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* custom.el (defface): Document that type can have value gtk.
-
-	* faces.el (face-spec-set-match-display): Handle type gtk in display.
-
-2004-05-12  Kenichi Handa  <handa@m17n.org>
-
-	* descr-text.el: Require quail at compile time.
-	(describe-char): If an input method is on and it supports the
-	character, show how to input it.
-
-	* international/quail.el (quail-install-decode-map): Accept a
-	char-table whose subtype is `quail-decode-map'.
-	(quail-store-decode-map-key, quail-gen-decode-map1)
-	(quail-gen-decode-map, quail-find-key1, quail-find-key)
-	(quail-show-key): New functions.
-
-2004-05-12  Juanma Barranquero  <lektu@terra.es>
-
-	* generic.el (define-generic-mode): Remove redundant arglist info.
-
-	* help-fns.el (help-split-fundoc, help-add-fundoc-usage):
-	Make arguments match their use in docstring.
-	(help-arg-highlighting-function): New variable.
-	(help-argument-name): Mention it in the docstring.
-	(help-do-arg-highlight): Use it.  Expand regexp to accept also
-	ARG-xxx and xxx-ARG references.
-
-2004-05-11  Yoichi NAKAYAMA  <yoichi@geiin.org>  (tiny change)
-
-	* mail/rfc2368.el (rfc2368-parse-mailto-url): Make the results of
-	parsing "mailto:addr1%2C%20addr2", "mailto:?to=addr1%2C%20addr2",
-	and "mailto:addr1?to=addr2" equal.
-
-2004-05-11  Alexander Pohoyda  <alexander.pohoyda@gmx.net>  (tiny change)
-
-	* man.el (Man-getpage-in-background): Use shell-file-name
-	and shell-command-switch variables instead of hard-coded values.
-
-2004-05-11  Eli Zaretskii  <eliz@gnu.org>
-
-	* iimage.el: New file.
-
-2004-05-11  Juanma Barranquero  <lektu@terra.es>
-
-	* custom.el (custom-initialize-default, defcustom):
-	Fix typo in docstring.
-
-	* files.el (set-visited-file-name, file-expand-wildcards):
-	Fix docstring.
-
-2004-05-10  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/lisp-mode.el (prin1-char): Use eventp.
-
-	* subr.el (eventp): Be more discriminating with integers.
-
-2004-05-10  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compile): Add universal prefix arg.
-	(compilation-error-regexp-alist-alist): Add edg patterns.
-
-2004-05-10  Sam Steingold  <sds@gnu.org>
-
-	* textmodes/ispell.el (ispell-message):
-	Use `message-cite-prefix-regexp' instead of `message-yank-prefix'.
-
-2004-05-10  Dave Love  <fx@gnu.org>
-
-	* progmodes/python.el (help-buffer): Autoload when compiling.
-	(python-after-info-look): Don't assume Info-goto-node returns non-nil.
-	(run-python): Prepend to any existing PYTHONPATH.
-
-2004-05-10  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gdb-ui.el (gdb-annotation-rules): Add nquery annotation
-	for pending breakpoints.
-
-2004-05-10  Richard M. Stallman  <rms@gnu.org>
-
-	* mail/unrmail.el (unrmail): Mostly rewritten.  Parses the file
-	directly without calling any functions in Rmail.
-	(unrmail-unprune): Function deleted.
-
-2004-05-10  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/python.el (inferior-python-mode-map): Remove erroneous
-	C-c C-z binding.
-
-2004-05-10  Kenichi Handa  <handa@m17n.org>
-
-	* descr-text.el (describe-char): Fix previous change.  Don't make
-	a unibyte character to multibyte in the *Help* buffer.
-
-2004-05-10  Miles Bader  <miles@gnu.org>
-
-	* lisp/progmodes/gud.el (gud-common-init): Only consider an existing
-	buffer an error if the debugger process is actually running.
-
-2004-05-10  Juanma Barranquero  <lektu@terra.es>
-
-	* help-fns.el (help-argument-name): Default to italic.
-	(help-highlight-arguments): Return always (usage . doc), even when
-	usage is nil.
-
-	* ibuf-macs.el (define-ibuffer-column, define-ibuffer-sorter)
-	(define-ibuffer-filter): Add usage info.
-	(define-ibuffer-op): Add usage info (but CL-style defaults for
-	keyword args are not shown).
-
-	* subr.el (remove-overlays, read-passwd): Fix docstring.
-	(start-process-shell-command): Fix docstring.  Put usage info in a
-	format usable by `describe-function'.
-	(open-network-stream, open-network-stream-nowait)
-	(open-network-stream-server): Fix docstring.
-
-2004-05-09  Jason Rumney  <jasonr@gnu.org>
-
-	* international/code-pages.el (cp932, cp936, cp949, c950): Remove.
-	Only define cp125* if windows-125* is already defined.
-
-	* language/korean.el (cp949): Add alias.
-
-	* language/chinese.el (cp936, cp950): Add aliases.
-
-	* language/japanese.el (cp932): Add alias.
-
-	* term/w32-win.el: Require code-pages.
-
-	* international/mule-cmds.el (set-locale-environment):
-	On MS-Windows use ansi code-page for default coding-systems.
-	Set up paper sizes for Windows 3 letter languages.
-
-	* international/code-pages.el (cp932, cp936, cp949, cp950):
-	Add aliases.  Also add cp125* if not already defined.
-
-2004-05-09  Juanma Barranquero  <lektu@terra.es>
-
-	* help-fns.el (help-highlight-arguments): Don't try to highlight
-	missing or autoloaded arglists.  Accept structured arguments, like
-	the first ones of `do' and `flet'.
-
-	* pcvs.el (cvs-mode-run, cvs-is-within-p): Fix typo in docstring.
-	(cvs-get-marked): Remove redundant arglist info.
-
-	* net/quickurl.el (quickurl, quickurl-browse-url, quickurl-read):
-	Don't use CL-style default args.
-
-2004-05-08  Andreas Schwab  <schwab@suse.de>
-
-	* emacs-lisp/checkdoc.el (checkdoc-minor-mode): Doc fix.
-
-	* international/subst-ksc.el: Fix references to utf-translate-cjk
-	into utf-translate-cjk-mode.
-	* international/subst-big5.el: Likewise.
-	* international/subst-gb2312.el: Likewise.
-	* international/subst-jis.el: Likewise.
-	* international/utf-16.el: Likewise.
-	* international/utf-8.el: Likewise.
-
-2004-05-08  John Wiegley  <johnw@newartisans.com>
-
-	* iswitchb.el (iswitchb-use-virtual-buffers): Add support for
-	"virtual buffers" (off by default), which makes it possible to
-	switch to the "virtual" buffers of recently visited files.  When a
-	buffer name search fails, and this option is on, iswitchb will
-	look at the list of recently visited files, and permit matching
-	against those names.  When the user hits RET on a match, it will
-	revisit that file.
-	(iswitchb-read-buffer): Add two optional arguments, which makes
-	isearchb.el possible.
-	(iswitchb-completions, iswitchb-set-matches, iswitchb-prev-match)
-	(iswitchb-next-match): Add support for virtual buffers.
-
-	* isearchb.el: This module extends iswitchb to provide "as you
-	type" buffer selection.
-
-	* textmodes/flyspell.el (flyspell-highlight-incorrect-region):
-	Ignore the read-only property when flyspell highlighting is on.
-	Not ignoring it leads to a series of confusing errors.
-	(flyspell-highlight-duplicate-region): Ignore read-only, as above,
-	but also make sure to call flyspell-incorrect-hook.
-	(flyspell-maybe-correct-transposition): Perform transposition test
-	by bit twiddling a string, rather than using a temp buffer.
-	(flyspell-maybe-correct-doubling): Use a string rather than a temp
-	buffer.  This is also the original version of the code, which
-	could not be checked in before due to a previous lack of
-	assignment papers.  This version has seen heavy usage on my system
-	for several years now.
-
-	* calendar/cal-bahai.el: New file, which adds support for the
-	Baha'i calendar to Emacs.  This calendar is based on a solar year
-	of 19 months of 19 days, with 4 intercalary days.  Each year
-	begins on March 21, with the calendar starting in 1844.
-
-	* calendar/cal-menu.el, calendar/calendar.el
-	* calendar/diary-lib.el, calendar/holidays.el:
-	Added support for using cal-bahai.el.
-
-	* eshell/em-glob.el (eshell-glob-initialize): Move initialization
-	of `eshell-glob-chars-regexp' into `eshell-glob-regexp', so that
-	function can be used outside of eshell buffers.
-	(eshell-glob-regexp): Initialize `eshell-glob-chars-regexp' here.
-
-2004-05-08  Juanma Barranquero  <lektu@terra.es>
-
-	* help-fns.el (help-do-arg-highlight): Temporarily set ?\- to be a
-	word constituent so FOO-ARG is not recognized as an arg.
-	(help-highlight-arguments): Don't skip lists in mandatory arguments.
-
-	* simple.el (next-error): Fix typo in docstring.
-	(open-line): Make argument names match their use in docstring.
-	(split-line): Fix docstring.
-
-	* emacs-lisp/cl-macs.el (do, do*): Put usage info in a format
-	usable by `describe-function'.
-	(gensym, gentemp, typep, ignore-errors): Make argument names match
-	their use in docstring.
-
-	* progmodes/python.el (python-describe-symbol): Pass INTERACTIVE-P
-	argument to `help-setup-xref'.
-
-2004-05-07  Kai Grossjohann  <kai@emptydomain.de>
-
-	Version 2.0.40 of Tramp released.
-
-	* net/tramp.el (tramp-completion-mode, tramp-md5-function):
-	Use symbol-function to invoke functions only known on some Emacs
-	flavors.  This avoids byte-compiler warnings.  Reported by Kevin
-	Scaldeferri <kevin@scaldeferri.com>.
-	(tramp-do-copy-or-rename-file-via-buffer): Rename from
-	tramp-do-copy-or-rename-via-buffer (without `file'), to make it
-	consistent with the other tramp-do-* functions.
-	(tramp-do-copy-or-rename-file): Calls adjusted.
-	(tramp-process-initial-commands): Avoid liveness check on shell --
-	we know that it must be alive since we're opening a connection at
-	this moment.
-	(tramp-last-cmd): New internal variable.
-	(tramp-process-echoes): New tunable.
-	(tramp-send-command): Set tramp-last-cmd.
-	(tramp-wait-for-output): Delete echo, if applicable.
-	(tramp-read-passwd): Construct the key for the password cache in a
-	way that works for multi methods, too.
-	(tramp-bug): Add backup-directory-alist and
-	bkup-backup-directory-info to bug reports, with Tramp counterparts.
-
-2004-05-07  Michael Albinus  <michael.albinus@gmx.de>
-
-	* net/tramp*.el: Suppress byte-compiler warnings where possible.
-
-	* net/tramp.el (tramp-out-of-band-prompt-regexp)
-	(tramp-actions-copy-out-of-band): New defcustoms.
-	(tramp-do-copy-or-rename-file-out-of-band): Asynchronous process
-	used instead of a synchronous one.  Allows password entering.
-	(tramp-action-out-of-band): New defun.
-	(tramp-open-connection-rsh, tramp-method-out-of-band-p):
-	Remove restriction with password from doc string.
-	(tramp-bug): Add variables `tramp-terminal-prompt-regexp',
-	`tramp-out-of-band-prompt-regexp',
-	`tramp-actions-copy-out-of-band', `password-cache' and
-	`password-cache-expiry'.
-	(toplevel): Remove todo item wrt ssh-agent.  Obsolete due to
-	password caching.
-	(tramp-touch): FILE can be a local file, too.
-	(TODO): Remove items done.
-	(tramp-handle-insert-directory): Properly quote file name also if
-	not full-directory-p.  Handle wildcard case.  Reported by Andreas
-	Schwab <schwab@suse.de>.
-	(tramp-do-copy-or-rename-file-via-buffer): Set permissions of the
-	new file.
-	(tramp-handle-file-local-copy, tramp-handle-write-region):
-	The permissions of the temporary file are set if filename exists.
-	Reported by Ted Stern <stern@cray.com>.
-	(tramp-backup-directory-alist)
-	(tramp-bkup-backup-directory-info): New defcustoms.
-	(tramp-file-name-handler-alist): Add entry for `find-backup-file-name'.
-	(tramp-handle-find-backup-file-name): New function.
-	Implements Tramp's find-backup-file-name.
-
-	* net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add entry
-	for `find-backup-file-name'.
-
-	* net/tramp-vc.el (tramp-vc-workfile-unchanged-p): Correct typo
-	("file" -> "filename").  Reported by Kim F. Storm <storm@cua.dk>.
-
-2004-05-07  Lars Hansen  <larsh@math.ku.dk>
-
-	* desktop.el (desktop-buffer-mode-handlers): Fix docstring.
-
-2004-05-07  Juanma Barranquero  <lektu@terra.es>
-
-	* subr.el (lambda): Add arglist description to docstring.
-	(declare): Fix typo in docstring.
-	(open-network-stream): Fix docstring.
-	(process-kill-without-query): Fix docstring and add obsolescence info.
-	(last, butlast, nbutlast): Make arguments match their use in docstring.
-	(insert-buffer-substring-no-properties): Likewise.
-	(insert-buffer-substring-as-yank): Likewise.
-	(split-string): Fix docstring.
-
-	* emacs-lisp/byte-run.el (make-obsolete, make-obsolete-variable):
-	Make argument names match their use in docstring.
-
-	* emacs-lisp/re-builder.el (reb-auto-update): Fix typo in docstring.
-
-2004-05-06  Nick Roberts  <nickrob@gnu.org>
-
-	* progmodes/gdb-ui.el: Improve/extend documentation strings.
-	Fit first sentence on one line for apropos-command.
-
-2004-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	Changes largely merged in from Dave Love's code.
-	* progmodes/python.el: Doc fixes.
-	(python-mode-map): Add python-complete-symbol.
-	(python-comment-line-p, python-beginning-of-string): Use syntax-ppss.
-	(python-comment-indent, python-complete-symbol)
-	(python-symbol-completions, python-partial-symbol)
-	(python-try-complete): New.
-	(python-indent-line): Remove optional arg.  Use python-block-end-p.
-	(python-check): Bind compilation-error-regexp-alist.
-	(inferior-python-mode): Use rx.  Move keybindings to top level.
-	Set comint-input-filter.
-	(python-preoutput-filter): Use rx.
-	(python-input-filter): Re-introduce.
-	(python-proc): Start new process if necessary.
-	Check python-buffer non-nil.
-	(view-return-to-alist): Defvar.
-	(python-send-receive): New.
-	(python-eldoc-function): Use it.
-	(python-mode-running): Don't defvar.
-	(python-mode): Set comment-indent-function.
-	Maybe update hippie-expand-try-functions-list.
-	(python-indentation-levels): Initialize differently.
-	(python-block-end-p): New.
-	(python-indent-line): Use it.
-	(python-compilation-regexp-alist): Augment.
-	(run-python): Import `emacs' module to Python rather than loading
-	code directly.  Set python-buffer differently.
-	(python-send-region): Use emacs.eexecfile.  Fix orig-start calculation.
-	Use python-proc.
-	(python-send-command): Go to end of comint buffer.
-	(python-load-file): Use python-proc, emacs.eimport.
-	(python-describe-symbol): Simplify interactive form.
-	Use emacs.help.  Do use temp-buffer-show-hook.
-	Call print-help-return-message.
-	(hippie-exp): Require when compiling.
-	(python-preoutput-continuation): Use rx.
-
-	* diff-mode.el (diff-make-unified): Fix regexp.
-
-2004-05-06  Romain Francoise  <romain@orebokech.com>  (tiny change)
-
-	* ibuffer.el (ibuffer-redisplay-engine): Do not remove folded
-	filter groups from the buffer when rebuilding the Ibuffer buffer
-	and `ibuffer-show-empty-filter-groups' is nil.
-
-2004-05-06  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* ps-print.el (ps-print-quote): Call ps-value-string.
-	(ps-setup): Call ps-comment-string.
-	(ps-value-string, ps-comment-string): New funs.
-
-2004-05-06  Juanma Barranquero  <lektu@terra.es>
-
-	* ehelp.el (electric-help-command-loop): Check whether the last
-	character is visible, not (point-max).
-
-	* help-fns.el (help-argument-name): Default to bold; don't inherit
-	from font-lock-variable-name-face.
-	(help-do-arg-highlight): Grok also ARGth occurrences in the docstring.
-
-2004-05-05  Kenichi Handa  <handa@m17n.org>
-
-	* descr-text.el (describe-char): Copy the character with text
-	properties and overlays into the first line, and call
-	describe-text-properties on it.
-
-2004-05-05  Stephen Eglen  <stephen@anc.ed.ac.uk>
-
-	* iswitchb.el (iswitchb-global-map): Fix typo.
-	Remove unwanted ###autoloads from source file.
-
-2004-05-05  Lars Hansen  <larsh@math.ku.dk>
-
-	* wdired.el (wdired-change-to-wdired-mode): Quote wdired-mode-hook
-	in run-hooks.  Use substitute-command-keys in message.
-	(wdired-abort-changes): Add message.
-
-2004-05-03  Michael Mauger  <mmaug@yahoo.com>
-
-	* emacs/lisp/progmodes/sql.el (sql-xemacs-p, sql-emacs19-p)
-	(sql-emacs20-p): Remove.
-	(sql-mode-syntax-table): Use shared GNU Emacs/XEmacs syntax.
-	(sql-builtin-face, sql-doc-face): Remove.
-	(sql-mode-ansi-font-lock-keywords)
-	(sql-mode-oracle-font-lock-keywords)
-	(sql-mode-postgres-font-lock-keywords)
-	(sql-mode-linter-font-lock-keywords)
-	(sql-mode-ms-font-lock-keywords)
-	(sql-mode-mysql-font-lock-keywords): Use standard fonts.
-	(sql-product-font-lock): Fix font-lock reset when font rules change.
-	(sql-highlight-product): Remove incorrect font-lock reset logic.
-
-2004-05-04  Jonathan Yavner  <jyavner@member.fsf.org>
-
-	* ses.el (ses-set-parameter): Fix typo.
-
-2004-05-04  Kim F. Storm  <storm@cua.dk>
-
-	* ido.el (ido-read-internal): Fix call to read-file-name for edit.
-	Must expand directory for completion to work; and don't mess with
-	process-environment.
-	(ido-read-file-name): If command has ido property, don't use ido
-	if value is ignore, or read as directory if value is dir.
-	Set ido ignore property for dired-do-rename command.
-
-2004-05-04  Juanma Barranquero  <lektu@terra.es>
-
-	* ehelp.el (electric-help-command-loop, electric-help-undefined)
-	(electric-help-help): Check against unmapped commands.
-
-	* help-fns.el (help-argument-name): New face, inheriting from
-	font-lock-variable-name-face, to highlight function arguments in
-	`describe-function' and `describe-key'.
-	(help-do-arg-highlight): Auxiliary function to highlight a given
-	list of arguments in a string.
-	(help-highlight-arguments): Highlight the function arguments and
-	all uses of them in the docstring.
-	(describe-function-1): Use it.  Do docstring output via `insert',
-	not 'princ', so text attributes are preserved.
-
-	* winner.el (winner-mode-map): Move `winner-undo' and
-	`winner-redo' to C-c <left> and C-c <right>, respectively (the
-	previous bindings conflict with `prev-buffer', `next-buffer').
-
-2004-05-03  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
-
-	* textmodes/bibtex.el (bibtex-progress-message): Fix docstring.
-	(bibtex-entry-update): New command bound to C-c C-u.
-	(bibtex-text-in-string): Fix regexp.
-	(bibtex-assoc-of-regexp): Remove.
-	(bibtex-progress-message): Fix docstring.
-	(bibtex-inside-field): Use if.
-	(bibtex-assoc-regexp): New function.
-	(bibtex-format-entry): Make code more robust so that it formats
-	also old entries.
-	(bibtex-autokey-demangle-title): Merge with obsolete function
-	bibtex-assoc-of-regexp.
-	(bibtex-field-list): New function.
-	(bibtex-entry): Use bibtex-field-list.
-	(bibtex-parse-entry): Fix docstring.
-	(bibtex-print-help-message): Use bibtex-field-list.
-	(bibtex-make-field): Use bibtex-field-list.
-	(bibtex-entry-index): Bugfix.  Return crossref key if required.
-	(bibtex-lessp): Fix docstring.
-
-2004-05-03  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* select.el (xselect-convert-to-string): Move comment to intended line.
-
-2004-05-03  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* toolbar/tool-bar.el (tool-bar-setup): Use lookup-key for
-	cut/copy/paste in case menu-bar-enable-clipboard is in effect.
-
-2004-05-03  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* term/x-win.el (x-clipboard-yank): Don't exit on error from
-	x-get-selection.
-
-2004-05-03  Jason Rumney  <jasonr@gnu.org>
-
-	* makefile.nt: Remove.
-
-2004-05-03  Kim F. Storm  <storm@cua.dk>
-
-	* emulation/cua-base.el (cua--update-indications): Fix last change.
-	(cua-mode): Deactivate mark when cua-mode is enabled.
-
-2004-05-02  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* select.el (xselect-convert-to-string): Bind `inhibit-read-only' to t.
-
-2004-05-03  Nick Roberts  <nickrob@gnu.org>
-
-	* progmodes/gdb-ui.el (gud-watch, gdb-display-buffer)
-	(gdb-display-source-buffer, gdb-put-breakpoint-icon)
-	(gdb-remove-breakpoint-icons, gdb-assembler-custom): Look for
-	window over visible frames.
-	(gdb-goto-breakpoint): Make buffer display file at breakpoint.
-
-2004-05-02  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/compile.el (compilation-gcpro): New var.
-	(compilation-fake-loc): Use it.
-	(compilation-forget-errors): Reset it.
-
-2004-05-02  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* diff-mode.el (diff-header-face, diff-file-header-face):
-	Use min-colors.
-
-2004-05-02  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
-
-	* textmodes/bibtex.el (bibtex-sort-buffer): Remove error message.
-	(bibtex-clean-entry): Disentangle code.
-	(bibtex-realign): New function.
-	(bibtex-reformat): Use mapcar and bibtex-realign.  Do not use
-	bibtex-beginning-of-first-entry and bibtex-skip-to-valid-entry.
-	Remove undocumented optional arg called-by-convert-alien.
-	(bibtex-convert-alien): Use bibtex-realign.  Use bibtex-reformat
-	for sorting instead of bibtex-sort-buffer.
-
-2004-05-02  Eli Zaretskii  <eliz@gnu.org>
-
-	* progmodes/compile.el (compilation-start): In the
-	no-async-subprocesses branch, call sit-for to give redisplay a
-	chance to show the updated process status in the mode line, and
-	fontify the buffer explicitly after the process exits.
-
-2004-05-01  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/python.el (python-compilation-line-number): Remove.
-	(python-compilation-regexp-alist): Don't use it any more.
-	(python-orig-start, python-input-filter): Remove.
-	(inferior-python-mode): Don't set up comint-input-filter-functions.
-	(python-send-region): Use compilation-fake-loc.
-
-	* progmodes/compile.el (compilation-messages-start): New var.
-	(compilation-mode): Don't setup next-error-function here.
-	(compilation-setup): Set it up here instead (for minor modes as well).
-	Make compilation-messages-start buffer local.
-	(compilation-next-error-function): Use it.
-	(compilation-forget-errors): Set compilation-messages-start.
-
-2004-05-01  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* ielm.el (ielm-prompt-read-only): Update docstring.
-
-	* comint.el (comint-prompt-read-only): Update docstring.
-	(comint-update-fence, comint-kill-whole-line)
-	(comint-kill-region): New functions.
-
-	* simple.el (kill-whole-line): Use "p" instead of "P" in
-	interactive form.
-
-2004-05-01  Juanma Barranquero  <lektu@terra.es>
-
-	* help-fns.el (help-add-fundoc-usage): Use %S instead of %s to
-	format arglist so default values in CL-style argument lists are
-	correctly shown.
-
-2004-05-01  Jason Rumney  <jasonr@gnu.org>
-
-	* term/w32-win.el (w32-drag-n-drop): Use x-dnd.el functions.
-
-2004-05-01  Kenichi Handa  <handa@m17n.org>
-
-	* international/titdic-cnv.el (miscdic-convert): Don't generate a
-	quail file if it is up to date.
-
-2004-04-30  Juri Linkov  <juri@jurta.org>
-
-	* cus-edit.el (custom-mode-map):
-	Add key binding `C-x C-s' to `Custom-save'.
-
-	* outline.el (outline-blank-line): New var.
-	(outline-next-preface, outline-show-heading)
-	(outline-end-of-subtree): Use it.
-
-	* dired-aux.el (dired-touch-initial): New fun.
-	(dired-do-chxxx): Call it for op-symbol `touch'.
-	(dired-diff): Use `dired-dwim-target-directory'
-	if current dired buffer has no buffer mark.
-
-	* bindings.el (propertized-buffer-identification):
-	Replace `(:weight bold)' by `Buffer-menu-buffer-face'.
-	Add C-M-arrow keys for consistency.
-
-	* files.el (confirm-kill-emacs):
-	Change group from top-level `emacs' to `convenience'.
-
-	* emacs-lisp/lisp.el (beginning-of-defun, end-of-defun):
-	Push mark on the first call of successive command calls.
-	(insert-pair): New fun created from `insert-parentheses' with
-	`open' and `close' arguments added.  Enclose active regions
-	in paired characters.  Compare adjacent characters syntax with
-	inserted characters syntax before inserting a space.
-	(insert-parentheses): Call `insert-pair' with ?\( ?\).
-
-	* delsel.el: Don't put `delete-selection' property
-	on `insert-parentheses' symbol to take advantage of
-	region handling in `insert-pair' function.
-	Suggested by Stephan Stahl <stahl@eos.franken.de>.
-
-2004-04-30  Kim F. Storm  <storm@cua.dk>
-
-	* emulation/cua-base.el: Add support for changing cursor types;
-	based on patch from Michael Mauger.
-	(cua-normal-cursor-color, cua-read-only-cursor-color)
-	(cua-overwrite-cursor-color, cua-global-mark-cursor-color):
-	Customization cursor type and/or cursor color.
-	(cua--update-indications): Handle cursor type changes.
-	(cua-mode): Update cursor indications if enabled.
-
-	* menu-bar.el (menu-bar-options-menu): Change menu text for CUA.
-
-	* mouse.el (mouse-drag-copy-region): New defcustom.
-	(mouse-set-region, mouse-drag-region-1): Use it.
-
-	* simple.el (kill-ring-save): If region face background color is
-	unspecified (if no highlighting), show extent of fully visible
-	region even if transient-mark-mode is enabled.
-
-	* emulation/cua-base.el (cua--standard-movement-commands):
-	Add cua-scroll-up and cua-scroll-down.
-	(cua-scroll-up, cua-scroll-down): New commands.
-	(cua--init-keymaps): Remap scroll-up and scroll-down.
-
-	* emulation/cua-rect.el (cua--convert-rectangle-as):
-	New defmacro.
-	(cua-upcase-rectangle, cua-downcase-rectangle): Use it.
-	(cua-upcase-initials-rectangle, cua-capitalize-rectangle):
-	New commands (suggested by Jordan Breeding).
-
-2004-04-30  Juanma Barranquero  <lektu@terra.es>
-
-	* smerge-mode.el (smerge-diff-switches): Fix typo in docstring.
-
-2004-04-30  Mario Lang  <mlang@delysid.org>
-
-	* diff.el (diff-switches): Fix typo in docstring.
-
-2004-04-30  Alex Schroeder  <alex@gnu.org>
-
-	* xml.el (xml-debug-print-internal): Don't add newline and
-	indentation to text nodes and write empty elements as empty tags
-	instead of opening and closing tags.
-	(xml-debug-print): Take optional indent-string argument.
-	(xml-print): Alias for xml-debug-print.
-
-2004-04-30  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* progmodes/fortran.el (fortran-fill): Use local var `bol' rather
-	than duplicate call to `line-beginning-position'.
-
-	* progmodes/f90.el (f90-get-present-comment-type):
-	Return whitespace, as well as comment chars, for consistent filling
-	of comment blocks.  Use `match-string-no-properties'.
-	(f90-break-line): Trim trailing whitespace when filling comments.
-
-2004-04-30  Dave Love  <fx@gnu.org>
-
-	* calendar/diary-lib.el (diary-outlook-formats): New variable.
-	(diary-from-outlook-internal, diary-from-outlook)
-	(diary-from-outlook-gnus, diary-from-outlook-rmail):
-	New functions to import diary entries from Outlook-format
-	appointments in mail messages.
-
-2004-04-29  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/python.el (python-send-command): New fun.
-	(python-send-region, python-load-file): Use it.
-
-	* progmodes/compile.el (compilation-last-buffer): Add var alias.
-
-	* help-fns.el (help-C-file-name): Use new subr-name.
-	Prepend `src/' to the file name.
-	(help-C-source-directory, help-subr-name, help-find-C-source): Remove.
-	(describe-function-1, describe-variable): Only find a C source file
-	name if DOC is already loaded.
-
-	* help-mode.el (help-function-def, help-variable-def):
-	Use the new find-function-search-for-symbol functionality.
-	Allow FILE to be `C-source'.
-
-	* emacs-lisp/find-func.el (find-function-C-source-directory): New var.
-	(find-function-C-source): New fun.
-	(find-function-search-for-symbol): Use it.
-
-2004-03-29  Michael Mauger  <mmaug@yahoo.com>
-
-	* progmodes/sql.el (sql-product-alist): Rename variable
-	`sql-product-support'.  Add Postgres login parameters.
-	(sql-set-product, sql-product-feature): Update with renamed variable.
-	(sql-connect-postgres): Add username prompt.
-	(sql-imenu-generic-expression, sql-mode-font-lock-object-name):
-	Make patterns less product specific.
-	(sql-xemacs-p, sql-emacs19-p): Add flags for Emacs variants.
-	(sql-mode-abbrev-table): Modify initialization.
-	(sql-builtin-face): Add variable.
-	(sql-keywords-re): Add macro.
-	(sql-mode-ansi-font-lock-keywords): Update for ANSI-92.
-	(sql-mode-oracle-font-lock-keywords): Update for Oracle 9i.
-	(sql-mode-postgres-font-lock-keywords): Update for Postgres 7.3.
-	(sql-mode-mysql-font-lock-keywords): Update for MySql 4.0.
-	(sql-mode-linter-font-lock-keywords)
-	(sql-mode-ms-font-lock-keywords): Use `sql-keywords-re' macro.
-	(sql-mode-sybase-font-lock-keywords)
-	(sql-mode-informix-font-lock-keywords)
-	(sql-mode-interbase-font-lock-keywords)
-	(sql-mode-ingres-font-lock-keywords)
-	(sql-mode-solid-font-lock-keywords)
-	(sql-mode-sqlite-font-lock-keywords)
-	(sql-mode-db2-font-lock-keywords): Default to nil.
-	(sql-product-font-lock): Always highlight ANSI keywords.
-	(sql-add-product-keywords): Made similar to `font-lock-add-keywords'.
-	(sql-send-string): Add function.
-
-2004-04-29  Dave Love  <fx@gnu.org>
-
-	* progmodes/cfengine.el (cfengine-beginning-of-defun)
-	(cfengine-end-of-defun): Ensure progress through buffer.
-
-	* info-look.el (cfengine-mode): Accept a terminal ().
-
-2004-04-29  Juri Linkov  <juri@jurta.org>
-
-	* isearch.el (isearch-mode-map): Bind \C-w to isearch-yank-word
-	instead of isearch-yank-word-or-char.  Add new key bindings for
-	isearch-yank-char to \C-f, and isearch-del-char to \C-b.
-	(isearch-del-char): New fun.
-	(isearch-forward, isearch-edit-string): Update docstring.
-	(isearch-yank-char): Doc fix.
-	(isearch-other-meta-char): Restore point after scrolling.
-
-	* progmodes/compile.el (compilation-context-lines): Add nil option
-	to disable compilation output window scrolling.
-	(compilation-set-window): Use it.
-
-	* outline.el (outline-next-preface, outline-show-heading):
-	Don't leave unhidden blank line before heading.
-	(outline-end-of-subtree): Include last newline into subtree.
-	(hide-entry): Leave point at beginning of heading instead of end.
-	(outline-up-heading): Push mark for the first call of successive
-	command calls.
-
-2004-04-28  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* comint.el (comint-prompt-read-only): New variable.
-	(comint-output-filter): Implement it.
-
-	* ielm.el (ielm-prompt-read-only, ielm-prompt): Update docstring.
-	(ielm-prompt-internal): New variable.
-	(ielm-font-lock-keywords): Remove irrelevant ielm-prompt keyword.
-	(ielm-send-input): Delete unused variable `buf'.
-	(ielm-eval-input): Use `ielm-prompt-internal'.
-	(inferior-emacs-lisp-mode): Use new variables
-	`comint-prompt-read-only' and `ielm-prompt-internal'.
-	Get rid of obsolete variable `directory-sep-char'.
-	(ielm): Use `zerop'.
-
-2004-04-29  John Paul Wallington  <jpw@gnu.org>
-
-	* thumbs.el (toplevel): Require cl at compile time.
-	Remove conditional definitions of `ignore-errors' and `caddar'
-	because they occur at run time.
-
-2004-04-28  Nick Roberts  <nickrob@gnu.org>
-
-	* progmodes/gdb-ui.el (gdb-frame-breakpoints-buffer)
-	(gdb-frame-assembler-buffer, gdb-frame-threads-buffer)
-	(gdb-frame-registers-buffer, gdb-frame-locals-buffer)
-	(gdb-frame-gdb-buffer, gdb-frame-stack-buffer): Use selected-window.
-
-	* progmodes/gud.el (gud-common-init): Throw an error if program is
-	already running under gdb.
-
-2004-04-28  John Paul Wallington  <jpw@gnu.org>
-
-	* thumbs.el (thumbs-delete-images): Fix formatting of prompt.
-	(thumbs-show-image-num): Move assignment of
-	`thumbs-current-image-filename' within scope of `i'.
-	(thumbs-emboss-image): Don't use `evenp'.
-
-2004-04-28  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/compile.el (compilation-context-lines): Default now 0.
-
-2004-04-28  Juanma Barranquero  <lektu@terra.es>
-
-	Use `time-less-p' from calendar/time-date.el instead of defining
-	custom versions of it.
-
-	* pcomplete.el (pcomplete-time-less-p): Remove.
-
-	* thumbs.el (time-less-p): Remove.
-
-	* calendar/timeclock.el (timeclock-time-less-p): Remove.
-	(timeclock-generate-report): Use `time-less-p'.
-
-	* emacs-lisp/autoload.el (autoload-before-p): Remove.
-	(update-file-autoloads, update-directory-autoloads): Use `time-less-p'.
-
-2004-04-28  Masatake YAMATO  <jet@gyve.org>
-
-	* subr.el (remove-overlays): Make arguments optional.
-
-	* wid-edit.el (widget-specify-button): Put evaporate to the
-	overlay for sample.
-	(widget-specify-sample): Put evaporate to the overlay for sample.
-	(widget-specify-doc): Put evaporate to the overlay for documentation.
-
-2004-04-27  Jesper Harder  <harder@ifa.au.dk>
-
-	* info.el (info-apropos): Make it an index node.  Align node names
-	like makeinfo.
-
-2004-04-27  Eli Zaretskii  <eliz@gnu.org>
-
-	* net/browse-url.el (browse-url-netscape-sentinel)
-	(browse-url-mozilla-sentinel, browse-url-galeon-sentinel)
-	(browse-url-epiphany-sentinel, browse-url-mosaic):
-	Use browse-url-*-program instead of a literal program name.
-
-2004-04-27  Kevin Ryde  <user42@zip.com.au>
-
-	* eshell/em-alias.el:
-	* eshell/em-dirs.el:
-	* eshell/em-hist.el:
-	* eshell/em-unix.el: Add "(require 'eshell)", to get necessary
-	features when M-x customize-group loads modules before the main
-	eshell.el.
-
-2004-04-27  Matthew Mundell  <matt@mundell.ukfsn.org>
-
-	* subr.el (momentary-string-display): Support EXIT-CHAR that is
-	either a character representation of an event or an event
-	description list.
-
-	* type-break.el: Capitalize Emacs and Lisp.
-	(type-break-good-break-interval, type-break-demo-boring-stats)
-	(type-break-terse-messages, type-break-file-name): New defcustoms.
-	(type-break-post-command-hook)
-	(type-break-warning-countdown-string): Quote variable names in doc.
-	(type-break-interval-start, type-break-auto-save-file-name): New vars.
-	(type-break-mode): Document type-break-good-break-interval and the
-	"session" file.  Schedule break according to the session file.
-	Kill session file buffer on exit.  Organize for save-some-buffers
-	to always save the session file.
-	(type-break-mode-line-message-mode, type-break-query-mode):
-	Uppercase arguments.
-	(type-break-file-time, type-break-file-keystroke-count, timep)
-	(type-break-choose-file, type-break-get-previous-time)
-	(type-break-get-previous-count): New defuns.
-	(type-break): Avoid break querying after a completed break in the
-	case where the query was initiated during user invocation of the
-	break.  Optional terse messages.
-	Use type-break-good-break-interval if type-break-good-rest-interval is
-	nil.  File the break time.
-	(type-break-schedule): New optional args for overriding the use of
-	the current time.
-	(type-break-cancel-time-warning-schedule): Avoid leftover warnings
-	after a break.
-	(type-break-check): File the keystroke count.
-	(type-break-do-query): Prevent a second query when the break is
-	interrupted.  Optional terse message.
-	(type-break-keystroke-reset): Record the start of a typing interval.
-	(type-break-demo-boring): Optional terse messages.  Display word
-	per minute and keystroke counts according to
-	type-break-demo-boring-stats.
-
-2004-04-27  Daniel M Coffman  <coffmand@us.ibm.com>  (tiny change)
-
-	* arc-mode.el (archive-maybe-copy): If ARCHIVE includes leading
-	directories, make sure they exist under archive-tmpdir.
-
-2004-04-27  Juri Linkov  <juri@jurta.org>
-
-	* help.el (view-emacs-news): With argument, display info for the
-	selected version by finding it among different NEWS files, and
-	narrowing the buffer to the selected version.
-
-	* info.el: Add *info*<[0-9]+> to same-window-regexps instead of
-	same-window-buffer-names.
-	(info): New arg `buffer'.  Use it.  Doc fix.  Read file name for
-	non-numeric prefix argument, append the number to the buffer name
-	for numeric prefix argument.
-	(info-other-window): Bind same-window-regexps to nil.
-	(Info-reference-name): Rename to Info-point-loc.
-	(Info-find-node-2): Call forward-line for numeric Info-point-loc,
-	and Info-find-index-name for stringy Info-point-loc.
-	(Info-extract-menu-node-name): New arg `index-node'.  Use regexp
-	without middle `.', but with final `.' and optional line number
-	for it.  Set Info-point-loc for index nodes.
-	(Info-index): Remove middle `.' from index entry regexp.
-	Modify line number regexp.
-	(Info-index-next): Decrement line number.
-	(info-apropos): Remove middle `.' from index entry regexp.
-	Add optional line number regexp at the end.  Add matched value
-	for line number to the result list and insert it to the buffer.
-	Replace match-string by match-string-no-properties.
-	Reorder result list.
-	(Info-fontify-node): Hide index line numbers.
-	(Info-goto-node): Replace "\\s *\\'" by "\\s +\\'" to not trim
-	empty matches.
-	(Info-follow-reference): Use `str' instead of
-	Info-following-node-name-re.
-	(Info-toc): Use full file names.  Set Info-current-node to "Top".
-	(Info-fontify-node): Compare file names without directory name.
-	(Info-try-follow-nearest-node): Don't set Info-reference-name.
-	Set second arg of Info-extract-menu-node-name for index nodes.
-	(info-xref-visited): Use magenta3 instead of magenta4.
-	(Info-mode): Add info-apropos to docstring.
-
-	* log-view.el (log-view-diff): Replace interactive code "r"
-	by a list to allow to call it even if region is not active.
-
-	* paren.el (show-paren-highlight-openparen): New var.
-	(show-paren-function): Turn on openparen highlighting when
-	matching forward if show-paren-highlight-openparen is non-nil.
-
-	* simple.el (kill-ring-save): Use blink-matching-delay instead of
-	the constant value 1.
-	(completions-common-part): Expand docstring.
-
-	* textmodes/picture.el (picture-mode-map): Add arrow keys.
-
-2004-04-27  Kim F. Storm  <storm@cua.dk>
-
-	* image.el (insert-sliced-image): Use line-height instead of
-	line-spacing property on newline.
-
-2004-04-26  Lars Hansen  <larsh@math.ku.dk>
-
-	* desktop.el (desktop-buffer-misc-data-function): Rename to
-	desktop-save-buffer and change docstring.
-	(desktop-buffer-modes-to-save): Delete.
-	(desktop-save-buffer-p): Use desktop-save-buffer instead of
-	desktop-buffer-modes-to-save.
-	(desktop-save): Rename desktop-buffer-misc-data-function to
-	desktop-save-buffer and allow non-function value.
-	(desktop-missing-file-warning): Correct docstring.
-
-	* dired.el (dired-mode): Rename desktop-buffer-misc-data-function
-	to desktop-save-buffer.
-
-	* info.el (Info-mode): Rename desktop-buffer-misc-data-function	to
-	desktop-save-buffer.
-
-	* mail/rmail.el (rmail-variables): Bind desktop-save-buffer to t.
-
-	* mh-e/mh-e.el (mh-folder-mode): Bind desktop-save-buffer to t.
-
-2004-04-26  Eli Zaretskii  <eliz@gnu.org>
-
-	* progmodes/gud.el (gud-pdb-command-name): Change default to "pydb".
-
-2004-04-25  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* ielm.el (ielm-prompt-read-only, ielm-prompt): Expand docstring.
-	(ielm): Only go to the end of the buffer when starting a new process.
-
-2004-04-25  Juanma Barranquero  <lektu@terra.es>
-
-	* ielm.el (inferior-emacs-lisp-mode): Display working buffer on the
-	mode line.  Bind `inhibit-read-only' to t before modifying
-	properties of text in the buffer.
-	(ielm): Force point to the end of buffer, even when running ielm
-	from inside itself.
-
-2004-04-25  Jesper Harder  <harder@ifa.au.dk>
-
-	* info.el (info-apropos): Reset Info-complete-cache.
-
-2004-04-25  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compilation-error-regexp-alist-alist):
-	Also recognize severe Irix et al. messages.
-	(compilation-normalize-filename, compile-abbreviate-directory):
-	Delete functions.
-	(compilation-get-file-structure): New function inherits
-	functionality of the two preceding ones.
-	(compilation-internal-error-properties, compilation-fake-loc):
-	Use it so that different paths to the same file share the same
-	markers.  Also optimize finding adjacent marker slightly.
-
-2004-04-25  Kim F. Storm  <storm@cua.dk>
-
-	* image.el (insert-sliced-image): Add line-spacing t property
-	to newlines separating image lines.
-
-2004-04-24  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* comint.el (comint-delete-output): Bind inhibit-read-only to t.
-
-	* ielm.el (ielm-prompt-read-only): New user option.
-	(ielm-prompt): Expand docstring to describe new behavior.
-	(inferior-emacs-lisp-mode): Implement ielm-prompt-read-only and
-	mention it in the docstring.
-
-2004-04-24  Andreas Schwab  <schwab@suse.de>
-
-	* progmodes/sh-script.el (sh-leading-keywords) <sh>: Add "!".
-
-	* diff.el (diff): Set default-directory in diff buffer.
-
-2004-04-24  Eli Zaretskii  <eliz@gnu.org>
-
-	* mail/sendmail.el (mail-bury): Don't delete the frame where the
-	mail was being composed if the terminal cannot display more than
-	one frame; instead, switch to previous frame.
-
-	* mail/rmail.el (rmail-mail-new-frame): Doc fix.
-	(rmail-start-mail): Support rmail-mail-new-frame even on
-	terminals that can display only one frame at a time.
-
-2004-04-23  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/checkdoc.el (checkdoc-output-error-regex-alist): New var.
-	(checkdoc-output-font-lock-keywords): Remove error regexp.
-	(checkdoc-output-mode-map): Remove.
-	(checkdoc-output-mode): Derive from compilation-mode.
-	(checkdoc-find-error-mouse, checkdoc-find-error): Remove.
-
-	* dired.el (dired-mode-map): Add a menu entry for wdired.
-
-	* emacs-lisp/rx.el (rx-syntax): Move sregex style syntax to code.
-	(rx-bracket, rx-check-any, rx-any): Clean up name space.
-
-	* wdired.el (wdired-mode-map): Move init into declaration.
-	Fix `return' binding.
-	(wdired-change-to-wdired-mode, wdired-change-to-dired-mode):
-	Use force-mode-line-update.
-	(wdired-get-filename): Use `unless'.
-	(wdired-preprocess-files): Don't assume names have no \n and use / for
-	dir separator.
-	(wdired-normalize-filename): Use replace-regexp-in-string.
-	(wdired-load-hooks): Remove.
-	(wdired-mode-hooks): Rename to wdired-mode-hook.
-
-	* info-look.el: Add support for cfengine-mode.
-	(info-lookup-setup-mode): Use dolist.
-
-2004-04-23  Juan Le,As(Bn Lahoz Garc,Am(Ba  <juan-leon.lahoz@tecsidel.es>
-
-	* wdired.el: New file.
-
-2004-04-23  Juanma Barranquero  <lektu@terra.es>
-
-	* ielm.el (inferior-emacs-lisp-mode): Fix docstring.
-
-	* pcomplete.el (pcomplete-opt, pcomplete-actual-arg)
-	(pcomplete-match-string, pcomplete-comint-setup, pcomplete-here)
-	(pcomplete--help, pcomplete--here): Doc fixes.
-
-2004-04-23  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc-hooks.el (vc-default-workfile-unchanged-p): Fix code that
-	handles wrong-number-of-arguments in backend call.
-
-	* vc.el (vc-print-log): Likewise.
-
-2004-04-20  Dave Love  <fx@gnu.org>
-
-	* emacs-lisp/rx.el: Doc fixes.
-	(rx-constituents): Add/extend many forms.
-	(rx-check): Check form is a list.
-	(bracket): Defvar.
-	(rx-check-any, rx-any, rx-check-not): Modify.
-	(rx-not): Simplify.
-	(rx-trans-forms, rx-=, rx->=, rx-**, rx-not-char, rx-not-syntax): New.
-	(rx-kleene): Use rx-trans-forms.
-	(rx-quote-for-set): Delete.
-	(rx): Allow multiple args.
-
-2004-04-23  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule-util.el (char-displayable-p): Simplify by
-	using internal-char-font.
-
-2004-04-23  Juanma Barranquero  <lektu@terra.es>
-
-	* makefile.w32-in: Add "-*- makefile -*-" mode tag.
-
-2004-04-22  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* diff-mode.el (diff-next-error): New fun.
-	(diff-mode): Use it.
-
-	* simple.el (next-error): Change arg name.
-	Add support for the documented C-u C-x ` usage.
-
-	* frame.el (special-display-popup-frame, next-multiframe-window)
-	(previous-multiframe-window): Only consider frames on same display.
-
-2004-04-22  Lars Hansen  <larsh@math.ku.dk>
-
-	* info.el (Info-restore-desktop-buffer): Delete with-no-warnings.
-	* mh-e/mh-e.el (mh-restore-desktop-buffer): Delete with-no-warnings.
-
-2004-04-22  Kim F. Storm  <storm@cua.dk>
-
-	* net/telnet.el (telnet): Add optional port arg.
-
-2004-04-21  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/compile.el (compilation-mode-font-lock-keywords):
-	Minor sanity check on the `hyperlink' slot.
-
-	* Makefile.in (recompile): Compile new files.
-
-	* emacs-lisp/bytecomp.el (batch-byte-recompile-directory):
-	Add byte-recompile-directory's optional `arg'.
-
-	* cvs-status.el (cvs-tree-use-charset): New var.
-	(cvs-tree-char-space, cvs-tree-char-hbar, cvs-tree-char-vbar)
-	(cvs-tree-char-branch, cvs-tree-char-eob, cvs-tree-char-bob)
-	(cvs-status-cvstrees): Use it.
-
-	* emacs-lisp/checkdoc.el (checkdoc-output-mode):
-	Make it a normal major mode.
-	(checkdoc-buffer-label): Make sure the file name is meaningful.
-	(checkdoc-output-to-error-buffer): Remove.
-	(checkdoc-error, checkdoc-start-section): Rewrite.
-
-	* info.el (info-node, info-menu-5, info-xref, info-header-node)
-	(Info-title-1-face, Info-title-2-face, Info-title-3-face)
-	(Info-title-4-face): Use new syntax.
-	(info-xref-visited): Inherit from info-xref.
-
-	* progmodes/python.el (python-maybe-jython): Don't assume point-min==1.
-
-2004-04-21  Teodor Zlatanov  <tzz@lifelogs.com>
-
-	* simple.el (next-error-last-buffer, next-error-function):
-	New variables for the next-error framework.
-	(next-error-buffer-p): New function.
-	(next-error-find-buffer): Generalize compilation-find-buffer.
-	(next-error, previous-error, first-error, next-error-no-select)
-	(previous-error-no-select): Move from compile.el.
-
-	* replace.el (occur-next-error, occur-1): Hook into the next-error
-	framework.
-
-	* progmodes/compile.el (compilation-start):
-	Set next-error-last-buffer so next-error knows where to jump.
-	(compilation-setup): Set the buffer-local variable
-	next-error-function to 'compilation-next-error-function.
-	(compilation-buffer-p, compilation-buffer-internal-p): Use an
-	alternate way to find if a buffer is a compilation buffer, for
-	next-error convenience.
-	(next-error-no-select, previous-error-no-select, next-error)
-	(previous-error, first-error): Move to simple.el.
-	(compilation-find-buffer): Move to next-error-find-buffer in simple.el.
-	(compilation-last-buffer): Remove.
-	(compilation-start, compilation-next-error, compilation-setup)
-	(compilation-next-error-function, compilation-find-buffer):
-	Remove compilation-last-buffer use.
-
-2004-04-21  Juanma Barranquero  <lektu@terra.es>
-
-	* font-lock.el (font-lock-preprocessor-face): Remove spurious quote.
-	(font-lock-warning-face): Fix spacing.
-
-	* makefile.w32-in (WINS): Add url/ directory.
-
-2004-04-21  Lars Hansen  <larsh@math.ku.dk>
-
-	* desktop.el (desktop-buffer-mode-handlers): New variable.
-	Alist of major mode specific functions to restore a desktop buffer.
-	(desktop-buffer-handlers): Make variable obsolete.
-	(desktop-create-buffer): Use desktop-buffer-mode-handlers.
-	Catch errors signaled in handlers.  Update buffer count.
-	Evaluate desktop-buffer-point.
-	(desktop-buffer-dired): Rename to dired-restore-desktop-buffer and
-	move to dired.el.
-	(desktop-buffer-info): Rename to Info-restore-desktop-buffer and
-	move to info.el.
-	(desktop-buffer-rmail): Rename to rmail-restore-desktop-buffer and
-	move to mail/rmail.el.
-	(desktop-buffer-mh): Rename to mh-restore-desktop-buffer and move
-	to mh-e/mh-e.el.
-	(desktop-buffer-file): Rename to desktop-restore-file-buffer.
-	On fail, print message (to message buffer) even if
-	desktop-missing-file-warning is nil.
-	(desktop-buffer-misc-data-function): New buffer local variable.
-	Function returning major mode specific data.
-	(desktop-buffer-misc-functions): Make variable obsolete.
-	(desktop-save): Use desktop-buffer-misc-data-function.
-	(desktop-buffer-dired-misc-data): Rename to
-	dired-desktop-buffer-misc-data and move to dired.el.
-	(desktop-buffer-info-misc-data): Rename to
-	Info-desktop-buffer-misc-data and move to info.el.
-	(desktop-read): Add message about number of buffers restored/failed.
-
-	* dired.el (dired-restore-desktop-buffer) Move from desktop.el.
-	Add parameters.  Pause to display error only when
-	desktop-missing-file-warning is non-nil.
-	(dired-desktop-buffer-misc-data): Move from desktop.el.  Add parameter.
-	(dired-mode): Bind desktop-buffer-misc-data-function.
-
-	* info.el (Info-restore-desktop-buffer): Move from desktop.el.
-	Add Parameters.
-	(Info-desktop-buffer-misc-data): Move from desktop.el.  Add parameter.
-	(Info-mode): Bind desktop-buffer-misc-data-function.
-
-	* mail/rmail.el (rmail-restore-desktop-buffer): Move from desktop.el.
-	Add Parameters.
-
-	* mh-e/mh-e.el (mh-restore-desktop-buffer): Move from desktop.el.
-	Add Parameters.
-
-2003-04-21  Paul Pogonyshev  <pogonyshev@gmx.net>
-
-	* dabbrev.el (dabbrev--substitute-expansion): Don't lose
-	the case of letters in case-insensitive expansions when the
-	abbrev is preceded by characters with letter syntax.
-
-2004-04-21  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/cperl-mode.el (cperl-putback-char):
-	Delete Emacs 18 definition.
-
-	* international/mule.el (ctext-post-read-conversion):
-	Use assoc-string, not assoc-ignore-case.
-
-	* international/mule-cmds.el: Use assoc-string, not assoc-ignore-case.
-
-	* emacs-lisp/easymenu.el (easy-menu-add):
-	Do call x-popup-menu, but only if it's defined.
-
-	* emacs-lisp/disass.el (disassemble): Handle lambda-exp as arg.
-
-	* emacs-lisp/bytecomp.el (byte-compile-no-warnings):
-	Handle multiple args: compile like progn.
-
-	* emacs-lisp/byte-run.el (with-no-warnings): Simplify:
-	take all args as &rest arg.
-
-	* autoinsert.el (auto-insert-alist): Insert the user's name in
-	copyright notice, rather than Free Software Foundation.
-
-2004-04-21  Kenichi Handa  <handa@m17n.org>
-
-	* descr-text.el (describe-char): Make it work on *Help* buffer.
-
-2004-04-21  Kim F. Storm  <storm@cua.dk>
-
-	* image.el (insert-image): Add optional SLICE arg.
-	(insert-sliced-image): New defun.
-
-2004-04-20  Lawrence Mitchell  <wence@gmx.li>  (tiny change)
-
-	* subr.el (read-number): Check whether `default' is nil.
-
-2004-04-20  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/compile.el (compilation-error-properties): Split into
-	two.
-	(compilation-internal-error-properties): New one.
-	(compilation-compat-error-properties): Use it.  Fix the non-marker
-	case.
-
-2004-04-20  Richard M. Stallman  <rms@gnu.org>
-
-	* window.el (split-window-save-restore-data):
-	Don't update the data if OLD-INFO is nil.
-
-	* view.el (view-return-to-alist): Mark it permanent local.
-
-	* subr.el (event-modifiers): Fix the criterion for ASCII control chars.
-
-	* recentf.el (recentf-save-list): Catch and warn about errors.
-
-	* menu-bar.el (menu-bar-update-buffers): Call copy-sequence
-	so "Buffers" won't be pure.
-
-	* help-mode.el (help-mode-finish): Set help-return-alist first
-	thing, setting only the entry for the selected window.
-
-	* help-fns.el (describe-function-1): If many non-control non-meta
-	keys run the command, don't list all of them.
-
-2004-04-20  Juanma Barranquero  <lektu@terra.es>
-
-	* vc-svn.el (vc-svn-print-log, vc-svn-diff): Add optional BUFFER
-	arg.  Copied from Andre Spiegel's patch of 2004-03-21.
-
-	* calendar/time-date.el (time-to-day-in-year): Fix docstring.
-
-2004-04-20  Kenichi Handa  <handa@m17n.org>
-
-	* international/quail.el (quail-lookup-key): New optional arg
-	NOT-RESET-INDICES.
-	(quail-get-translations): Call quail-lookup-key with
-	NOT-RESET-INDICES t.
-	(quail-completion): Likewise.
-	(quail-lookup-map-and-concat): Likewise.
-
-2004-04-20  Kenichi Handa  <handa@m17n.org>
-
-	* international/quail.el (quail-update-translation): Don't insert
-	such an unsupported multibyte char in a unibyte buffer.
-
-2004-04-20  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gdb-ui.el (gdb-frame-parameters): New constant.
-	(gdb-frame-breakpoints-buffer, gdb-frame-stack-buffer)
-	(gdb-frame-threads-buffer, gdb-frame-registers-buffer)
-	(gdb-frame-locals-buffer, gdb-frame-gdb-buffer)
-	(gdb-frame-assembler-buffer): Improve behavior with
-	multiple frames.
-	(gdb-display-buffer): Extend search to all visible frames.
-
-2004-04-19  Eli Zaretskii  <eliz@gnu.org>
-
-	* mail/rmail.el (rmail-convert-to-babyl-format): Don't remove ^M
-	characters left after base64 decoding.
-	(rmail-decode-region): Use -dos variety of `coding', to remove any
-	^M characters left after qp or base64 decoding.
-
-2004-04-19  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* x-dnd.el (x-dnd-open-local-file, x-dnd-open-file): Improve error
-	messages.
-
-2004-04-19  Stephen Eglen  <stephen@gnu.org>
-
-	* add-log.el (add-change-log-entry): Update doc string to mention
-	add-log-full-name and add-log-mailing-address.
-
-2004-04-18  Juri Linkov  <juri@jurta.org>
-
-	* info.el (Info-find-file, Info-find-node-2): Add history and toc.
-	(Info-find-node-2): Simplify error message.
-	(Info-insert-dir): Use Info-following-node-name.
-	(Info-goto-node): Remove *info-history* and *info-toc*.
-	(Info-history): Create a node of the virtual history file.
-	(Info-toc): Create a node of the virtual toc file.
-	(Info-insert-toc): New arg `curr-file' for reference file names.
-	(info-apropos): Remove redundant var binding for temp-file.
-	(Info-index, Info-index-next, Info-mode): Doc fix.
-	(Info-goto-emacs-command-node): Don't jump to *info* from
-	non-*info* Info buffers.
-	(Info-fontify-node): Don't show the file name of external
-	references if `Info-hide-note-references' is `hide'.  Don't hide
-	newlines at the end of paragraphs.
-
-	* international/mule-diag.el (list-input-methods):
-	Fix args to help-xref-button.
-
-	* help-fns.el (help-with-tutorial): Call `hack-local-variables'
-	to put into effect local variables from TUTORIAL files.
-
-	* textmodes/paragraphs.el (sentence-end) <function>: New fun
-	with default value taken from the variable `sentence-end'.
-	(sentence-end) <defcustom>: Set default to nil.  Doc fix.
-	Add nil const to :type.
-	(sentence-end-without-period, sentence-end-double-space)
-	(sentence-end-without-space): Doc fix.
-
-	* textmodes/paragraphs.el (forward-sentence):
-	* textmodes/fill.el (canonically-space-region, fill-nobreak-p)
-	(fill-delete-newlines):
-	* progmodes/cc-cmds.el (c-beginning-of-statement):
-	Use function `sentence-end' instead of variable `sentence-end'.
-
-2004-04-18  Andreas Schwab  <schwab@suse.de>
-
-	* progmodes/compile.el (compilation-start): Set window start to
-	point-min if compilation-scroll-output is nil.
-
-2004-04-18  John Wiegley  <johnw@newartisans.com>
-
-	* iswitchb.el (iswitchb-completions): Remove dependency on cl.
-
-2004-04-18  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gdb-ui.el (gdb-goto-info): Require 'info.
-	(gdb-info-breakpoints-custom): Revert previous change.
-	(gdb-view-assembler): Update assembler if necessary.
-	(gdb-frame-handler): Parse correctly for gdb-current-frame.
-	(gdb-display-source-buffer): Update properly when both source and
-	assembler are visible.
-
-2004-04-17  John Wiegley  <johnw@newartisans.com>
-
-	* iswitchb.el (iswitchb-max-to-show): Add a new config variable
-	which limits the number of names shown in the minibuffer.  Off by
-	default.
-	(iswitchb-completions): Use `iswitchb-max-to-show'.  This speeds
-	up iswitchb for users with a multitude of open buffers by showing
-	only the first and last N/2 buffers in the completion list (which
-	is enough to aid C-s/C-r, and to know that more characters are
-	needed to refine the completion list).
-
-2004-04-17  Richard M. Stallman  <rms@gnu.org>
-
-	* files.el (locate-file-completion): Handle nil in path-and-suffixes.
-	(file-truename): Expand all ~ constructs directly.
-	(insert-directory): Delete any error msg output by the
-	`insert-directory-program'.
-
-	* allout.el (allout-mode-exposure-menu, allout-mode-editing-menu):
-	(allout-mode-navigation-menu, allout-mode-misc-menu): New defvars.
-	(allout-prior-bindings, allout-added-bindings): Defvars deleted.
-	(allout-init): Use find-file-hook, not find-file-hooks.
-	(allout-mode): Eliminate Emacs 18 support.
-	Use write-contents-functions, not local-write-file-hooks.
-
-2004-04-17  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compilation-error-properties): Fix for
-	adding messages when there are already markers for their file.
-	(compilation-fake-loc): New function.
-
-2004-04-16  Dave Love  <fx@gnu.org>
-
-	* progmodes/python.el (python-compilation-line-number): Fix
-	braindamage.
-	(python-load-file): Fix python-orig-start setting.
-
-	* progmodes/compile.el: Doc fixes.
-	(compilation-error-regexp-alist-alist)
-	(compilation-mode-font-lock-keywords): Allow non-ASCII where possible.
-	(compilation-assq): Wrap in eval-when-compile.
-	(compilation-mode-font-lock-keywords): Don't use list*.
-	(compilation-start): Avoid warning.
-	(compilation-compat-error-properties)
-	(compilation-directory-properties): Add keymap property.
-	(compilation-parsing-end): Make it a marker for better compatibility.
-
-	* progmodes/python.el (python-after-info-look): Use with-no-warnings.
-
-2004-04-16  Mark A. Hershberger  <mah@everybody.org>
-
-	* xml.el: Doc fixes.
-	(xml-get-children): Only looks at sub-tags and ignore strings.
-
-	* xml.el (xml-parse-tag): Avoid overwriting node-name.
-
-2004-04-16  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* diff-mode.el (diff-end-of-hunk): Be more careful with unified hunks.
-
-2004-04-16  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc-hooks.el (vc-default-workfile-unchanged-p): Quote signal.
-
-	* vc.el (vc-print-log): Likewise.
-
-2004-04-16  Masatake YAMATO  <jet@gyve.org>
-
-	* simple.el (completion-setup-function): Set an initial value to
-	`element-common-end' before entering loop.  Set a value to
-	`element-common-end' at the end of loop.  The bug is reported by
-	Juri Linkov <juri@jurta.org> in emacs-devel list.
-	(completions-common-part): Rename from completion-de-emphasis.
-	(completions-first-difference): Rename from completion-emphasis.
-	Suggested by RMS.
-
-2004-04-16  Juanma Barranquero  <lektu@terra.es>
-
-	* bookmark.el (bookmark-send-edited-annotation): Fix docstring.
-	(bookmark-edit-annotation-mode): Add mode name.
-
-2004-04-15  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* smerge-mode.el (smerge-match-conflict): Try to do something sensible
-	for nested conflict markers.
-	(smerge-find-conflict): Better handle errors in smerge-match-conflict.
-
-2004-04-15  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gdb-ui.el (gdb-goto-info): New function.
-
-	* progmodes/gud.el (gud-menu-map, gud-tool-bar-map): Add help button.
-
-2004-04-14  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/bytecomp.el (batch-byte-compile-file):
-	Give a backtrace if requested.
-
-	* progmodes/ada-mode.el (ada-create-menu): Remove redundant call.
-
-	* progmodes/python.el (python-mouse-2-command, python-RET-command):
-	Remove unused functions.
-	(python-orig-start-line, python-orig-file): Remove.
-	(python-orig-start): New var.
-	(python-input-filter, python-compilation-line-number)
-	(python-send-region, python-load-file): Use it.
-
-	* info.el (info): Always jump to *info*.
-
-	* subr.el (posn-set-point): New function.
-
-	* mouse.el (mouse-set-point): Use it.
-
-	* progmodes/compile.el (compile-goto-error): Use it.
-	(compilation-button-map): New keymap.
-	(compilation-error-properties): Use it.
-	(compilation-shell-minor-mode-map): Don't bind mouse-2.
-
-	* smerge-mode.el (smerge-popup-context-menu): Use it.
-
-	* emacs-lisp/checkdoc.el (checkdoc-output-mode-map)
-	(checkdoc-find-error-mouse, checkdoc-find-error): Use it to merge the
-	mouse and non-mouse case.
-
-	* diff-mode.el (diff-goto-source): Make it work for mouse bindings.
-	(diff-mouse-goto-source): Make it an alias of diff-goto-source.
-
-	* pcvs.el (cvs-mode-toggle-mark): Rename from cvs-mouse-toggle-mark.
-	Make it work for non-mouse events.
-
-	* pcvs-info.el (cvs-status-map): Update binding name.
-
-2004-04-14  Mark A. Hershberger  <mah@everybody.org>
-
-	* xml.el (xml-maybe-do-ns): New function to handle namespace
-	parsing of both attribute and element names.
-	(xml-ns-parse-ns-attrs, xml-ns-expand-el, xml-ns-expand-attr)
-	(xml-intern-attrlist): Remove in favor of xml-maybe-do-ns.
-	(xml-parse-tag): Update assumed namespaces.  Clean up namespace
-	parsing.
-	(xml-parse-attlist): Make it do its own namespace parsing.
-
-2004-04-14  Dave Love  <fx@gnu.org>
-
-	* progmodes/python.el (run-python): Fix use of \n.
-	(python-load-file): Remove `try' from Python fragment.
-	(python-describe-symbol): Fix message.
-
-	* comint.el: Doc fixes.
-	(comint-last-input-start, comint-last-input-end)
-	(comint-last-output-start): Give them values.
-	(comint-arguments): Avoid warning.
-	(comint-skip-prompt): Use line-end-position.
-	(comint-backward-matching-input): Rename arg to agree with doc.
-	(comint-extract-string): Use syntax-ppss.
-	(comint-dynamic-simple-complete): Delete useless list construction.
-	(comint-redirect-subvert-readonly): New.
-	(comint-redirect-preoutput-filter): Use it.
-
-	* emacs-lisp/lisp.el (beginning-of-defun-raw, end-of-defun):
-	Correctly handle negative arguments when calling hook functions.
-
-2004-04-14  Jesper Harder  <harder@ifa.au.dk>
-
-	* info.el (info-apropos): Don't clobber Info-history-list.
-
-2004-04-14  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compilation-setup):
-	Localize overlay-arrow-position.
-	(compilation-sentinel): Restructure code equivalently.
-	(compilation-next-error): Find message on same line after point if
-	not found before point.
-	(compile-mouse-goto-error): Restore function so that compilation
-	buffer need not be current and use compile-goto-error.
-	(compile-goto-error): Restore function.
-	(next-error): Set overlay-arrow-position.
-	(compilation-forget-errors): Don't localize already local
-	compilation-locs and remove FIXME about refontifying.
-
-2004-04-14  Kim F. Storm  <storm@cua.dk>
-
-	* startup.el (emacs-quick-startup): New defvar (set by -Q).
-	(command-line): New option -Q.  Like -q --no-site-file, but in
-	addition it also disables menu-bar, tool-bar, scroll-bars,
-	tool-tips, and the blinking cursor.
-	(command-line-1): Skip startup screen if -Q.
-	(fancy-splash-head): Use ":align-to center" prop to center splash
-	image.
-
-	* emulation/cua-base.el (cua-read-only-cursor-color)
-	(cua-overwrite-cursor-color, cua-global-mark-cursor-color): Doc fix.
-
-2004-04-13  Dave Love  <fx@gnu.org>
-
-	* progmodes/python.el: Doc fixes.  Changes for compiler warnings.
-	(syntax): Don't require.
-	(python) <defgroup>: Add :version.
-	(python-quote-syntax): Re-written.
-	(inferior-python-mode): Move stuff here from run-python and add
-	some more.
-	(python-preoutput-continuation, python-preoutput-result)
-	(python-dotty-syntax-table): New.
-	(python-describe-symbol): Use them.
-	(run-python): Move stuff to inferior-python-mode.  Modify code
-	loaded into Python.
-	(python-send-region): Use python-proc, python-send-string.
-	(python-send-string): Send newlines too.  Callers changed.
-	(python-load-file): Re-written.
-	(python-eldoc-function): New.
-	(info-look): Don't require.
-	(python-after-info-look): New.  A modified version of former
-	top-level code for use with eval-after-load.
-	(python-maybe-jython, python-guess-indent): Use widened buffer.
-	(python-fill-paragraph): Re-written.
-	(python-mode): Fix outline-regexp.  Set outline-heading-end-regexp,
-	eldoc-print-current-symbol-info-function.  Add to eldoc-mode-hook.
-
-2004-04-13  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/python.el (run-python): Use compilation-shell-minor-mode.
-	Set compilation-error-regexp-alist earlier.
-
-	* progmodes/compile.el (compilation-minor-mode-map)
-	(compilation-shell-minor-mode-map, compile-mouse-goto-error)
-	(compile-goto-error): Re-merge the mouse and non-mouse commands.
-
-2004-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/compile.el (compile-goto-error): Select the buffer/window
-	corresponding to the event.
-
-2004-04-12  Joe Buehler  <jbuehler@hekiman.com>
-
-	* loadup.el: Add cygwin to system-type list, for unexec() support.
-
-2004-04-12  John Paul Wallington  <jpw@gnu.org>
-
-	* ibuffer.el (ibuffer-delete-window-on-quit): Remove.
-	(ibuffer-restore-window-config-on-quit): New variable to replace
-	`ibuffer-delete-window-on-quit'.  Update all references.
-	(ibuffer-prev-window-config): New variable.
-	(ibuffer-quit): Restore previous window configuration instead of
-	deleting window.
-	(ibuffer): Save window configuration before showing Ibuffer buffer.
-
-	* help.el (describe-mode): Doc fix.
-
-2004-04-12  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/compile.el (compilation-mode-font-lock-keywords): Fix test
-	not to treat nil as a function.
-
-	* vc-arch.el (vc-arch-root): Be a bit more careful.
-	(vc-arch-register): Save the buffer if we modified it.
-	(vc-arch-delete-rej-if-obsolete): Save excursion.
-	(vc-arch-find-file-hook): Use the simpler after-save-hook.
-	(vc-arch-responsible-p, vc-arch-init-version): New functions.
-
-	* net/ldap.el (ldap-search): Use list*.
-
-2004-04-12  Juri Linkov  <juri@jurta.org>
-
-	* info.el (Info-follow-reference): Allow multiline reference name.
-
-2004-04-11  Dave Love  <fx@gnu.org>
-
-	* emacs-lisp/bytecomp.el (byte-compile-cond): Fix last change.
-
-	* progmodes/python.el: New file.
-
-2004-04-11  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc-hooks.el (vc-arg-list): Function removed.
-	(vc-default-workfile-unchanged-p): Use condition-case to check for
-	backward compatibility.
-
-	* vc.el (vc-print-log): Use condition-case to check for backward
-	compatibility.
-
-2004-04-11  Juri Linkov  <juri@jurta.org>
-
-	* dired.el (dired-faces): New defgroup.
-	(dired-header, dired-mark, dired-marked, dired-flagged)
-	(dired-warning, dired-directory, dired-symlink, dired-ignored):
-	New faces.
-	(dired-header-face, dired-mark-face, dired-marked-face)
-	(dired-flagged-face, dired-warning-face, dired-directory-face)
-	(dired-symlink-face, dired-ignored-face): New face variables.
-	(dired-font-lock-keywords): Use them instead of font-lock faces.
-	Split the rule for dired marks into 3 separate rules: for marks,
-	marked file names and flagged file names.
-
-	* help-mode.el (help-make-xrefs): Add a final newline to the
-	*Help* buffer.
-
-2004-04-11  John Paul Wallington  <jpw@gnu.org>
-
-	* replace.el (occur-engine): Distinguish between one and several
-	matches in the matches per buffer heading.
-
-2004-04-11  Kim F. Storm  <storm@cua.dk>
-
-	* ido.el (ido-confirm-unique-completion): New defcustom.
-	(ido-complete): Use it.
-	(ido-write-file): Set it to t unconditionally.
-
-2004-04-10  Miles Bader  <miles@gnu.org>
-
-	RCS keyword removal (only non-comment changes are enumerated here):
-
-	* emacs-lisp/bytecomp.el (byte-compile-version): Variable removed.
-	(byte-compile-insert-header): Don't use `byte-compile-version'.
-	* forms.el (forms-version): Variable removed.
-	(forms-mode): Don't use `forms-version'.
-	* recentf.el (recentf-version): Variable removed.
-	* progmodes/delphi.el (delphi-version): Variable removed.
-	* progmodes/ada-mode.el (ada-mode): RCS keyword removed from docstring.
-
-2004-04-09  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/easymenu.el (easy-menu-add): Make it work in non-X Emacs.
-
-2004-04-09  Jesper Harder  <harder@ifa.au.dk>
-
-	* info.el (info-apropos): Improve menu item regexp.
-
-2004-04-09  Simon Josefsson  <jas@extundo.com>
-
-	* mail/smtpmail.el: Add comment, based on report by
-	kdc@rcn.com (Kevin D. Clark).
-
-2004-04-08  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/compile.el (compilation-mode-font-lock-keywords):
-	Redo one more thing that I didn't notice Daniel had undone.
-
-2004-04-08  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gdb-ui.el (gdb-source-window): Remove variable.
-	(gdb-goto-breakpoint, gdb-display-buffer)
-	(gdb-display-source-buffer, gdb-view-source-function)
-	(gdb-view-assembler, gdb-setup-windows, gdb-restore-windows)
-	(gdb-source-info, gdb-frame-handler): Don't specify a window
-	for display.
-	(gdb-info-breakpoints-custom): Remove superfluous update of
-	assembler buffer.
-	(gdb-many-windows): Make settable outside gdb.
-
-2004-04-08  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/diary-lib.el (diary-mode, fancy-diary-display-mode):
-	Derive from fundamental-mode rather than text-mode.
-
-2004-04-08  Juri Linkov  <juri@jurta.org>
-
-	* info.el (Info-history): Doc fix.
-	(Info-history-list): New var.
-	(info-xref): Change magenta4 to blue, remove bold for dark and
-	light backgrounds, change bold to underline for non-color classes.
-	(info-xref-visited): New face.
-	(Info-fontify-visited-nodes): New custom.
-	(Info-hide-note-references): Add new value `hide'.  Doc fix.
-	(Info-reference-name): New var.
-	(Info-selection-hook): New custom.
-	(Info-edit-mode-hook): New var.
-	(Info-find-file): New fun.
-	(Info-find-node): Move part of code to Info-find-file.
-	(Info-find-node-2): Add anchors to Info-history-list.  Move point
-	to the place with the reference name if name is defined.
-	(Info-select-node): Add current node to Info-history-list.
-	(Info-goto-node): Switch to *info* from *info-history* *info-toc*.
-	(Info-search-whitespace-regexp): New custom.
-	(Info-search-case-fold): New var.
-	(Info-search): Add "case-sensitively" to the prompt.
-	Use Info-search-whitespace-regexp.  Set Info-search-case-fold.
-	(Info-search-case-sensitively, Info-search-next): New fun.
-	(Info-up): Move point to the menu item of the current node.
-	(Info-history): New fun.  Add *info-history* to
-	same-window-buffer-names.
-	(Info-toc): New fun.  Add *info-toc* to same-window-buffer-names.
-	(Info-insert-toc): New fun.
-	(Info-build-toc): New fun.
-	(Info-follow-reference): Add new arg `fork'.  Doc fix.
-	Replace [ \n\t]* by [ \n\t]+ in the *Note regexp.  For references
-	with the same name prefer the reference closest to point.
-	(Info-next-reference): Replace * by + in the *Note regexp.
-	Add regexp for http:// and ftp://.  Skip the *Note prefix.
-	(Info-prev-reference): Replace * by + in the *Note regexp.
-	Add regexp for http:// and ftp://.  Skip the *Note prefix.
-	(Info-follow-nearest-node): Add new arg `fork'.
-	(Info-try-follow-nearest-node): Add new arg `fork'.
-	Call browse-url for http:// and ftp:// references.
-	Set Info-reference-name for index entries.
-	(Info-mode-menu): Add menu items for Info-search-case-sensitively,
-	Info-search-next, Info-history, Info-toc, clone-buffer.
-	(Info-menu-update): Replace * by + in the *Note regexp.
-	(Info-mode): Add documentation for Info-history, Info-toc,
-	Info-search-case-sensitively, Info-search-next, clone-buffer.
-	(Info-fontify-menu-headers): Remove fun.  Move code to
-	Info-fontify-node.
-	(Info-fontify-node): Add docstring.  Add local vars
-	fontify-visited-p and not-fontified-p.  If not-fontified-p is t
-	then fontify header line, titles, menu headers, http and ftp
-	references, refill paragraphs.  If not-fontified-p is t or
-	fontify-visited-p is t then fontify cross references, menu items.
-	Fontify menu headers.  Fontify http and ftp references.
-	Change regexp for cross references to require whitespace after *Note,
-	add matching groups for file and node names.  Remove hack for quote.
-	Use display property for Info-hide-note-references=t.  Use fifth
-	or fourth match for help-echo.  Display visited nodes in a
-	different face.  Unhide file names of external references.
-	Unhide newlines.  Display visited menu items in a different face.
-
-2004-04-07  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/compile.el: Require CL.
-	(compilation-mode-font-lock-keywords): Re-install the "line as
-	function" patch.
-
-	* help-fns.el (help-C-source-directory): New var.
-	(help-subr-name, help-C-file-name, help-find-C-source): New funs.
-	(describe-function-1, describe-variable): Use them.
-
-	* help-mode.el (help-function-def, help-variable-def): Handle hyperrefs
-	to C source files specially.
-
-2004-04-07  Jan Nieuwenhuizen  <janneke@gnu.org>
-
-	* info.el (Info-hide-cookies-node): New function.
-	(Info-select-node): Use it.
-	(Info-display-images-node): Remove message with image file name.
-
-2004-04-07  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compilation-warning-face)
-	(compilation-info-face, compilation-skip-threshold)
-	(compilation-skip-visited, compilation-context-lines):
-	Declare :version when added to Emacs.
-	(compilation-error-regexp-alist-alist): Extend caml and irix.
-	(compilation-setup): Fix if font-locked w/o font-lock-defaults.
-	(compilation-mode-font-lock-keywords): Temporarily undo line as
-	function patch, which wasn't ready.
-
-2004-04-07  Kenichi Handa  <handa@m17n.org>
-
-	* international/latin1-disp.el (latin1-display-setup): Check each
-	character is displayable or not instead of calling
-	latin1-display-check-font.
-
-2004-04-06  Kenichi Handa  <handa@m17n.org>
-
-	* language/ethio-util.el (ethio-sera-being-called-by-w3):
-	New variable.
-	(ethio-sera-to-fidel-ethio): Check ethio-sera-being-called-by-w3
-	instead of sera-being-called-by-w3.
-	(ethio-fidel-to-sera-buffer): Likewise.
-	(ethio-find-file): Bind ethio-sera-being-called-by-w3 to t
-	instead of sera-being-called-by-w3.
-	(ethio-write-file): Likewise.
-
-2004-04-05  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: Doc fix.
-
-2004-04-05  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gdb-ui.el (gdb-use-inferior-io-buffer): New option.
-	(gdb-ann3, gdb-send, gdb-starting, gdb-stopping)
-	(gdb-setup-windows): Only use separate IO buffer if required.
-
-2004-04-06  Kim F. Storm  <storm@cua.dk>
-
-	* term.el (term-is-xemacs): Remove.
-	(term-if-xemacs, term-ifnot-xemacs): Test (featurep 'xemacs).
-	(term-window-width): New function.
-	(term-mode, term-check-size): Use it.
-	(term-mode): Disable overflow-newline-into-fringe in term buffer.
-
-2004-04-05  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* cus-edit.el (custom-add-parent-links): Change unbound variable
-	`symbol' to `name'.
-
-2004-04-05  Jesper Harder  <harder@ifa.au.dk>
-	* info.el (info-apropos): New function.
-	(Info-mode-menu): Add it.
-	(Info-find-node, Info-find-node-2): Grok apropos virtual file.
-
-	* help-mode.el (help-make-xrefs): Recognize aliased variable with
-	inherited docstring.
-
-	* play/gamegrid.el (gamegrid-add-score-insecure): Use sort-fields.
-
-2004-04-04  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* textmodes/fill.el (fill-comment-paragraph): Obey indent-tabs-mode.
-
-	* progmodes/compile.el (font-lock): Don't require any more.
-	(compilation-error-properties, compilation-start, compilation-sentinel)
-	(compilation-filter, next-error): Use with-current-buffer.
-	(compilation-skip-to-next-location, compilation-skip-threshold)
-	(compilation-skip-visited): Move to silence the byte-compiler.
-	(compilation-setup): Simplify.
-	(compilation-next-error): Use line-(beginning|end)-position.
-	Make sure `pt' is non-nil before using compilation-loop.
-	(compile-goto-error): Add optional event arg.  Use it.
-	(compile-mouse-goto-error): Make it an alias of compile-goto-error.
-	(compilation-minor-mode-map, compilation-shell-minor-mode-map):
-	Update the binding for mouse-2.
-	(first-error): Set compilation-current-error to nil rather than bob.
-	(compilation-parsing-end, compilation-parse-errors-function)
-	(compilation-error-list, compilation-old-error-list):
-	"New" compatibility variables.
-	(compile-buffer-substring, compilation-compat-error-properties)
-	(compilation-compat-parse-errors, compilation-forget-errors):
-	New compatibility functions.
-	(compilation-mode-font-lock-keywords): Use them.
-
-2004-04-04  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el (auto-revert-handler): If point (or a window
-	point) is at the end of the buffer, keep it there after
-	reverting.  This allows to tail a file.
-	Mention this in the `Commentary'.
-
-	* format.el (format-write-file): Add optional argument CONFIRM
-	and make it behave like the analogous argument to `write-file'.
-
-2004-04-04  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* progmodes/ebnf2ps.el: Doc fix.
-	(ebnf-version): New version number (4.2).
-	(ebnf-syntax): Customization and docstring fix.
-	(ebnf-eliminate-empty-rules, ebnf-optimize, ebnf-otz-initialize):
-	Put autoloaded funs before first use.
-	(ebnf-style-database): Add dtd entry.
-	(ebnf-syntax-alist): Add dtd initialization.
-	(ebnf-token-sequence): New fun.
-	(ebnf-comment-table): Add new comment action character.
-	(ebnf-dtd-parser, ebnf-dtd-initialize): Autoload funs from ebnf-dtd.
-
-	* progmodes/ebnf-dtd.el: New file, implement a parser for DTD (Data
-	Type Definition for XML).
-
-	* progmodes/ebnf-abn.el (ebnf-abn-concatenation):
-	* progmodes/ebnf-bnf.el (ebnf-sequence):
-	* progmodes/ebnf-ebx.el (ebnf-ebx-concatenation):
-	* progmodes/ebnf-iso.el (ebnf-iso-single-definition):
-	* progmodes/ebnf-yac.el (ebnf-yac-sequence):
-	Code simplification: call ebnf-token-sequence.
-
-2004-04-04  Eli Zaretskii  <eliz@gnu.org>
-
-	* calendar/timeclock.el (timeclock-relative)
-	(timeclock-get-project-function, timeclock-get-workday-function)
-	(timeclock-query-out, timeclock-when-to-leave)
-	(timeclock-when-to-leave-string, timeclock-log-data)
-	(timeclock-generate-report, timeclock-in): Doc fixes.
-
-2004-04-03  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* url/: New dir.  Import the URL package from its repository.
-
-2004-04-03  Andreas Schwab  <schwab@suse.de>
-
-	* diff-mode.el (diff-mode): Fix missing quote.
-
-2004-04-03  Juri Linkov  <juri@jurta.org>
-
-	* descr-text.el (describe-property-list): Add `font-lock-face'.
-
-	* dired.el (dired-font-lock-keywords): Fix permission regexps.
-
-2004-04-02  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* x-dnd.el (x-dnd-handle-moz-url, x-dnd-insert-utf16-text):
-	Use utf-16le on little endian machines and utf-16be otherwise.
-
-2004-04-02  David Kastrup  <dak@gnu.org>
-
-	* net/browse-url.el (browse-url-generic): Use call-process
-	instead of start-process to allow browsers that fork and detach.
-
-2004-04-01  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* compile.el (compilation-current-error): New var.
-	(compilation-setup, compile-mouse-goto-error)
-	(compile-goto-error, next-error): Use it.
-	(compilation-skip-to-next-location): Default to t, which gives
-	contiguous skipping like old compile (where this was redundant).
-	(compilation-next-error): Prevent previous-* commands from moving
-	back to message at or just before point.
-
-2004-04-01  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gdb-ui.el (gdb-view-source-function, gdb-view-assembler)
-	(gdb-source-info): Don't display source at startup, if required.
-	(gdb-show-main): New option.
-	(gdba): Update documentation.
-	(gdb-source): Cover case of auto-display output.
-
-2004-03-31  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el: Delete obsolete autoloads and defvars.
-	(auto-revert-check-vc-info): New user option.
-	(auto-revert-vc-cvs-file-version, auto-revert-vc-buffer-p)
-	(auto-revert-handler-vc): Delete.
-	(auto-revert-handler): Treat return value `fast' of
-	buffer-stale-function specially.  Check `auto-revert-check-vc-info'.
-
-	* buff-menu.el (Buffer-menu-mode): Make the buffer-stale-function
-	return `fast'.
-
-	* files.el (buffer-stale-function): Doc change.
-
-2004-03-31  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: New tip on Tips section.
-	(pr-version): New version number (6.7.4).
-	(pr-shell-file-name): Initialization fix.
-
-2004-03-31  Juri Linkov  <juri@jurta.org>
-
-	* dired.el: Add autoload for `dired-do-touch'.
-	(dired-touch-program): New var.
-	(dired-mode-map): Bind `dired-do-touch' to T and add menu-item.
-	(dired-no-confirm): Add `touch' to docstring.
-
-	* dired-aux.el (dired-do-touch): New fun.
-	(dired-do-chxxx): Add argument -t for touch operation.
-
-	* dired-x.el (dired-mark-sexp): Replace hard-coded month names by
-	`dired-move-to-filename-regexp'.
-
-2004-03-31  H,Ae(Bkan Granath  <hakan.granath@kau.se>  (tiny change)
-
-	* dired.el (dired-move-to-filename-regexp): Add `.' to HH:MM.
-
-2004-03-30  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* progmodes/ebnf2ps.el (ebnf-eps-finish-and-write): Write a buffer if
-	and only if the buffer was modified.
-
-2004-03-30  Kenichi Handa  <handa@m17n.org>
-
-	* international/characters.el: Delete pairs for U+2308..U+230B.
-
-2004-03-29  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gud.el (gud-gdb-marker-filter): Include "\n" in regexp
-	to detect the beginning of a level 2 or 3 annotation.
-
-2004-03-29  Kenichi Handa  <handa@m17n.org>
-
-	* international/ucs-tables.el (ucs-insert): Fix the error message.
-
-2004-03-29  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule-util.el (char-displayable-p): Fix generation
-	of XLFD file name.
-
-	* Makefile.in (setwins, setwins_almost): Change directory to $wd
-	before finding directories by `find'.
-
-2004-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* subr.el (interactive-form): Delete.  Now implemented in C.
-
-	* pcvs.el (cvs-parse-process): Workaround for Darwin.
-
-	* vc.el (vc-version-diff, vc-default-diff-tree): Change `rel' -> `rev'.
-	(vc-diff-label): New fun.
-	(vc-diff-internal): Use it.
-
-	* progmodes/gdb-ui.el (gdb-post-prompt): Fix test.
-
-2004-03-28  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* progmodes/ebnf-abn.el (ebnf-abn-parser): Handle initial comments.
-
-	* progmodes/ebnf-ebx.el: New file, implement a parser for EBNF used to
-	specify XML (EBNFX).
-
-	* progmodes/ebnf2ps.el: Doc fix.
-	(ebnf-version): New version number (4.1).
-	(ebnf-syntax): Adjust customization.
-	(ebnf-style-database): Add ebnfx entry.
-	(ebnf-syntax-alist): Add ebnfx initialization.
-	(ebnf-ebx-parser, ebnf-ebx-initialize): Autoload funs from ebnf-ebx.
-
-	* printing.el: Doc fix.
-	(pr-version): New version number (6.7.3).
-	(pr-menu-position): Adjust X and Y positions when mouse-pixel-position
-	returns nil for mouse position.  Reported by Drew Adams
-	<drew.adams@oracle.com>.
-	(pr-update-menus): Modify interactive declaration.  Reported by Drew
-	Adams <drew.adams@oracle.com>.
-
-2004-03-28  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gdb-ui.el (gdb-ann3, gdb-send-item)
-	(gud-gdba-marker-filter): Log the process input and output, if
-	required.  From Stefan Monnier.
-	(gdb-debug-log, gdb-enable-debug-log): New variables.
-	(gdb-post-prompt): Don't do gdb-var-update on Mac OS X.
-
-2004-03-28  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-hooks.el (vc-file-not-found-hook): Fix typo.
-	From lorentey@elte.hu (L$,1 q(Brentey K,Aa(Broly).
-
-2004-03-27  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el (auto-revert-handler): Handle auto-revert-mode.
-	Call vc-find-file-hook here instead of in auto-revert-buffers.
-	(auto-revert-buffers): Delete call to vc-find-file-hook.
-	(auto-revert-verbose, global-auto-revert-non-file-buffers)
-	(global-auto-revert-mode, auto-revert-set-timer)
-	(auto-revert-handler, auto-revert-buffers): Doc fixes.
-
-2004-03-27  Francis J. Wright  <F.J.Wright@qmul.ac.uk>
-
-	* woman.el (woman-change-fonts): Rename local variable
-	woman-font-alist to font-alist to avoid a compiler warning.
-
-2004-03-27  Dave Love  <fx@gnu.org>
-
-	* emacs-lisp/rx.el (rx): Doc fix.
-	Fix copyright years.
-
-	* strokes.el (strokes-global-set-stroke-string): New function.
-	(strokes-list-strokes): Cope with strings, not just commands.
-	Set foreground color of image.
-	(strokes-global-set-stroke): Doc fix.
-
-2004-03-26  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* buff-menu.el (Buffer-menu-revert-function): Make it suitable for
-	Auto Revert mode.
-	(Buffer-menu-files-only): New variable.
-	(Buffer-menu-toggle-files-only): New function.
-	(Buffer-menu-mode-map): Bind it to `T'.
-	(Buffer-menu-mode): Mention `T' in docstring.
-	Set buffer-stale-function.
-	(list-buffers-noselect): Mark buffer non-modified and set
-	Buffer-menu-files-only.
-
-	* dired.el (buffer-stale-function): Remove no longer needed defvar.
-
-	* autorevert.el (auto-revert-handler): Print revert message
-	before, rather than after, reverting.
-	(buffer-stale-function): Move to files.el.
-
-	* files.el (buffer-stale-function): Move here from autorevert.el.
-
-2004-03-26  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc.el (vc-maybe-resolve-conflicts): Don't prompt the user.
-
-	* calc/calc.el (calc-mode-map): Use mapc.
-
-	* apropos.el (apropos-mode): Don't autoload.
-	(apropos-symbols-internal): New fun.  Extracted from `apropos'.
-	(apropos): Use it.
-	(apropos-print): Add optional `text' argument.
-	(apropos-describe-plist): Use help-buffer and hexlp-setup-xref.
-	Don't assume point-min == 1.
-
-	* bs.el (bs-buffer-list): Use buffer-local-value.
-	(bs--set-toggle-to-show): Use with-current-buffer.
-
-	* buff-menu.el (Buffer-menu-sort, Buffer-menu-make-sort-button):
-	New funs.
-	(list-buffers-noselect): Use them.  Adjust :align-to to new style.
-
-	* cvs-status.el (cvs-tree-use-jisx0208): Use char-displayable-p.
-
-	* dabbrev.el (dabbrev-expand): Fix regexp construction.
-	(dabbrev--find-expansion): Use pop.
-	(dabbrev--search): Use match-string-no-properties.
-
-	* dired.el (dired-mode): Use run-mode-hooks.
-	(dired-move-to-end-of-filename): Use match-string.
-
-	* ediff-init.el (ediff-hide-face): Check that facemenu-unlisted-faces
-	is bound before using it.
-	(ediff-verbose-p): Make it into a var since it's not constant.
-
-	* electric.el (Electric-pop-up-window): Avoid popping up a new frame.
-
-	* faces.el (read-face-font): Don't cons up unnecessarily.
-	(header-line, tool-bar): Share common parts.
-
-	* files.el (file-relative-name): Use compare-strings.
-
-	* finder.el (finder-mode): Follow coding convention.
-
-	* subr.el (read-number): New function.
-
-	* ses.el (ses-read-number): Move to subr.el.
-	(ses-set-header-row): Use read-number.
-
-2004-03-26  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc-hooks.el (vc-arg-list): New function, which handles both
-	compiled and uncompiled code.
-	(vc-default-workfile-unchanged-p): Use it.
-
-	* vc.el (vc-print-log): Undo prev change, use new function
-	vc-arg-list from vc-hooks.el.
-
-2004-03-26  Masatake YAMATO  <jet@gyve.org>
-
-	* simple.el (completion-setup-function): Emphasize the
-	first uncommon characters in the completions; and de-emphasize
-	the common prefix substrings.
-	(completion-emphasis): New face.
-	(completion-de-emphasis): New face.
-
-2004-03-25  Juanma Barranquero  <lektu@terra.es>
-
-	* progmodes/cperl-mode.el (cperl-indent-alist, cperl-where-am-i):
-	Comment out (it's unused and unfinished code).
-
-2004-03-25  Sam Steingold  <sds@gnu.org>
-
-	* vc.el (vc-print-log): Fix a bug in the last patch:
-	backend-function may be a byte-compiled object, not a lambda.
-
-2004-03-25  Juri Linkov  <juri@jurta.org>
-
-	* descr-text.el (describe-property-list): Add a button
-	for `face' property that calls `describe-face'.
-	Suggested by Luis Fernandes <elf@ee.ryerson.ca>
-
-	* international/mule.el (keyboard-coding-system):
-	* kmacro.el (kmacro-call-macro): Fix docstring.
-
-	* dired.el: Fix comments.
-
-	* textmodes/fill.el (fill): Fix Info link.
-
-	* font-lock.el (fast-lock, lazy-lock):
-	* jit-lock.el (jit-lock): Remove links to removed Support Modes
-	Info node.
-
-	* eshell/eshell.el (eshell): Fix broken info-link.
-
-	* eshell/em-alias.el (eshell-alias, eshell-bad-command-tolerance):
-	* eshell/em-banner.el (eshell-banner):
-	* eshell/em-smart.el (eshell-smart):
-	* eshell/esh-cmd.el (eshell-cmd):
-	Comment out broken info-links to incomplete Info manual.
-
-	* info-xref.el: Fix commentary.
-
-2004-03-25  Kevin Ryde  <user42@zip.com.au>
-
-	* info-xref.el (info-xref-check-buffer): Report empty filename parts.
-	Remove spurious node duplicate suppression, doesn't work, not wanted.
-	(info-xref-output): Take format style args, add "sit-for 0" to let
-	user see the results as they progress.
-	(info-xref-check-all-custom): New function.
-
-2004-03-25  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el: Moved to progmodes.
-
-2004-03-24  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* diff-mode.el (diff-font-lock-keywords): Disable yank-handler.
-
-2004-03-24  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/appt.el (appt-check): Remove superfluous progn.
-	When finished with diary buffer: if it was not being displayed
-	before, kill it; otherwise restore its original state.
-	Suggested by Matthew Mundell <matt@mundell.ukfsn.org>.
-
-	* calendar/calendar.el (calendar-set-mode-line): Use total
-	available mode-line width, rather than frame-width.
-
-	* calendar/diary-lib.el (fancy-diary-display): Set mode-line
-	after mode change so effect not lost.
-
-2004-03-23  Dave Love  <fx@gnu.org>
-
-	* dired.el (dired) <defgroup>: Add link to manual.
-	(dired-font-lock-keywords): Add highlighting on unusual permissions.
-	(dired-revert): Use dolist.
-	(dired-mode-map): Add U binding.
-	(dired-mode): Add font-lock-beginning-of-syntax-function.
-	(dired-garbage-files-regexp): Make it a defcustom.
-
-2004-03-23  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-arch.el (vc-arch-diff): Handle the special case where `newvers'
-	is equivalent to nil.
-	(vc-arch-diff3-rej-p): Be a bit more flexible in what we accept.
-	(vc-arch-mode-line-string): Accept `added' state.
-	(vc-arch-state): Use inode-sigs if available.
-	(vc-arch-add-tagline): Rename from vc-arch-add-tag.
-	Copy&delete existing id file if any.  Fallback if uuidgen is absent.
-	(vc-arch-tagline-re): New var.
-	(vc-arch-file-source-p, vc-arch-file-id, vc-arch-tagging-method):
-	New functions.
-	(vc-arch-find-file-not-found-hook, vc-arch-register): New backend ops.
-	(vc-arch-registered): Try our best guess using vc-arch-file-source-p.
-
-	* vc-hooks.el (vc-default-find-file-not-found-hook): New fun.
-	(vc-file-not-found-hook): Use it.
-
-	* diff-mode.el (diff-default-read-only): Change default.
-	(diff-mode-hook): Make it a defcustom.  Add some options.
-	(diff-mode-map): Bind diff-refine-hook.
-	(diff-yank-handler): New var.
-	(diff-yank-function): New fun.
-	(diff-font-lock-keywords): Use them.
-	(diff-end-of-file): Handle case where file-header looks like diff text.
-	(diff-hunk-kill): Adjust to "new" hunk-next behavior.
-	(diff-file-kill): Delete a subsequent empty line, if applicable.
-	(diff-hunk-file-names): New fun, extracted from diff-tell-file-name.
-	(diff-find-file-name): Use it.
-	(diff-tell-file-name): New command.
-	(diff-mode): Be careful with view-mode.
-	(diff-delete-if-empty, diff-delete-empty-files, diff-make-unified):
-	New functions, for use in diff-mode-hook.
-	(diff-find-source-location): Catch "regex too large" errors.
-	(diff-apply-hunk, diff-test-hunk): Go to old or new file.
-	(diff-refine-hunk): New command.
-
-	* smerge-mode.el (smerge-mode-menu): Fix activate pred for resolve.
-	(smerge-context-menu-map): Remove unused var.
-	(smerge-keep-all): Preserve markers.
-	(smerge-keep-n): New fun.
-	(smerge-keep-base, smerge-keep-other, smerge-keep-mine)
-	(smerge-keep-current, smerge-ediff): Use it.
-	(smerge-kill-current): Use it.  Make it work on some 3-part conflicts.
-	(smerge-popup-context-menu): Also use context-menu on 3-part conflicts.
-	(smerge-resolve): Resolve trivial 3-part conflicts.
-
-2004-03-23  Juri Linkov  <juri@jurta.org>
-
-	* man.el (Man-width): New var.
-	(Man-getpage-in-background): Use it.
-	(Man-support-local-filenames): New var and fun.
-	(Man-build-man-command): Don't add a second %s.
-	(Man-fontify-manpage): Clean up message.
-	(Man-mode): Set outline-regexp, outline-level,
-	imenu-generic-expression.
-
-	* woman.el (woman-fill-frame): Doc fix.
-	(woman-decode-region): Use window-width instead of frame-width.
-
-	* abbrevlist.el (list-one-abbrev-table):
-	* descr-text.el (describe-char):
-	* international/mule-diag.el (describe-current-coding-system):
-	* international/quail.el (quail-insert-decode-map):
-	Use window-width instead of frame-width.
-
-	* jka-compr.el (jka-compr-compression-info-list): Add tbz and dz.
-	(jka-compr-mode-alist-additions): Add tbz.
-	(jka-compr-write-region, jka-compr-insert-file-contents):
-	Add message for undefined compress-program.
-	(jka-compr-write-region): Remove redundant var bindings.
-
-	* dired-x.el (dired-guess-shell-alist-default): Add choices for
-	extracting files into subdirectory.  Add tbz and dz.  Fix regexps.
-	Add extensions .[0-9] for man and nroff, and .pod for perldoc.
-	(dired-man): Use dired-guess-shell-command.
-	(dired-guess-shell-case-fold-search): Change defvar to defcustom.
-	Change default nil to t.
-
-	* dired-aux.el (dired-compress-file-suffixes): Add dz and tbz.
-	(dired-compare-directories): Add default value for empty input.
-
-	* help-at-pt.el: Move suggestions for key bindings to Commentary.
-
-	* time.el (display-time-string-forms): Fix help-echo date format.
-
-2004-03-22  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el (global-auto-revert-non-file-buffers): Expand
-	docstring.
-	(buffer-stale-function): New variable.
-	(auto-revert-list-diff, auto-revert-dired-file-list)
-	(auto-revert-dired-changed-p, auto-revert-buffer-p): Delete.
-	(auto-revert-handler): Take over some functionality of deleted
-	functions.
-	(auto-revert-buffers): Delete call to auto-revert-buffer-p.
-
-	* dired.el (dired-directory-changed-p): New fun, extracted from
-	dired-internal-noselect.
-	(dired-buffer-stale-p): New fun.
-	(dired-internal-noselect): Use dired-directory-changed-p.
-	Eliminate revert messages.
-	(dired-mode): Set buffer-stale-function to dired-buffer-stale-p.
-
-2004-03-23  Kenichi Handa  <handa@m17n.org>
-
-	* international/characters.el: Setup syntaxes for more parentheses
-	Unicode characters.
-
-	* international/mule-cmds.el (select-safe-coding-system):
-	Merge coding-system and auto-cs before comparing them.
-
-2004-03-22  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/pp.el (pp-eval-expression): Simplify.
-
-	* emacs-lisp/lisp-mode.el (lisp-mode-variables): Don't set
-	normal-auto-fill-function and comment-indent-function.
-	The default values now work just as well.
-	Don't set font-lock-beginning-of-syntax-function since we already set
-	syntax-begin-function.
-	(lisp-outline-level): Put ;;;###autoload at same level as (.
-	(prin1-char): Quote special chars.
-
-	* emacs-lisp/lisp-mnt.el (lm-keywords-finder-p): Use defvar rather
-	than with-no-warnings.
-
-	* emacs-lisp/edebug.el (edebug-display): Bring up a debug trace
-	if the source location can't be found.
-	(edebug-compute-previous-result): Use prin1-char.
-
-	* emacs-lisp/checkdoc.el (checkdoc-error): Don't assume point-min == 1.
-	(debug-ignored-errors): Add an entry.
-
-	* emacs-lisp/bytecomp.el (byte-recompile-directory): Ignore hidden dir.
-	(byte-compile-file): Output warning when deleting a file.
-
-	* emacs-lisp/byte-run.el (defsubst): Add edebug spec and use backquote.
-	(dont-compile, eval-when-compile, eval-and-compile): Add edebug spec.
-
-	* emacs-lisp/byte-opt.el (byte-compile-log-lap)
-	(byte-compile-inline-expand): Use backquote.
-	(byte-optimize-pure-func): Rename from byte-optimize-concat.
-	(symbol-name, regexp-opt, regexp-quote): Mark as pure.
-
-	* emacs-lisp/backquote.el (backquote-list*-macro): Use nreverse.
-
-	* emacs-lisp/advice.el (ad-subr-arglist): Simplify.
-
-2004-03-22  Juri Linkov  <juri@jurta.org>
-
-	* finder.el (finder-known-keywords): Fix data, tex, unix.
-
-	* play/landmark.el: Fix keywords.
-
-	* language/ethio-util.el (ethio-find-file): Doc fix.
-
-	* emacs-lisp/warnings.el: Doc fix.
-
-	* textmodes/ispell.el (ispell-help): Doc fix.
-
-2004-03-21  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* format.el (format-insert-file): Always return a list of two
-	elements, like insert-file-contents does.
-
-2004-03-21  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc.el: Add new optional BUFFER argument to vc-BACKEND-print-log
-	and vc-BACKEND-diff.
-	(vc-print-log): If the print-log implementation supports it, use
-	the new BUFFER argument to direct output to *vc-change-log*, not *vc*.
-	(vc-version-diff, vc-diff-internal): Doc fixes.
-
-	* vc-hooks.el (vc-default-workfile-unchanged-p): If the
-	implementation supports it, let diff output go to *vc*,
-	not *vc-diff*, since this is an internal call.
-
-	* vc-cvs.el (vc-cvs-print-log, vc-cvs-diff): Add optional BUFFER arg.
-
-	* vc-rcs.el (vc-rcs-print-log, vc-rcs-diff): Likewise.
-
-	* vc-sccs.el (vc-sccs-print-log, vc-sccs-diff): Likewise.
-
-2004-03-21  Dave Love  <fx@gnu.org>
-
-	* progmodes/cfengine.el (cfengine-mode):
-	Set parse-sexp-ignore-comments.
-
-	* emacs-lisp/rx.el (rx): Work at compile time, not run time.
-
-2004-03-21  Juanma Barranquero  <lektu@terra.es>
-
-	* allout.el (allout-mode): Fix docstring.
-
-2004-03-20  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* files.el (insert-directory): Fix bug if SWITCHES is a list.
-
-	* autorevert.el (auto-revert-interval): Make new value take
-	effect immediately when set through Custom.
-	(auto-revert-set-timer): Add interactive declaration.
-
-2004-03-19  David Ponce  <david@dponce.com>
-
-	* ruler-mode.el (ruler-mode-header-line-format-old):
-	Don't `make-variable-buffer-local'.
-	(ruler-mode-ruler-function): Default to `ruler-mode-ruler'.
-	(ruler-mode-header-line-format): Simply funcall the above.
-	(ruler-mode): Use `make-local-variable' and `kill-local-variable'
-	to save/restore a previous header line format.
-	(ruler-mode-space): Don't depend on a numeric WIDTH value.
-	(ruler-mode-ruler): Use symbolic display elements for scrollbar,
-	fringes and margins width.
-	(ruler-mode-ruler-function): Default to ruler-mode-ruler.
-
-2004-03-18  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* log-edit.el (log-edit-font-lock-keywords): Typo.
-
-	* textmodes/tex-mode.el (tex-shell): Set error parsing function here.
-	(tex-send-tex-command): Rather than here.
-	(tex-compilation-parse-errors): Simplify.
-
-	* info.el (Info-default-dirs): Don't ignore last part of I-d-d-l.
-
-	* time.el (display-time-string-forms): Add help-echo with date on time.
-
-	* composite.el (compose-region): Use restore-buffer-modified-p.
-
-	* disp-table.el (standard-display-8bit): Simplify.
-
-	* server.el (server-process-filter): Delete temp frame.
-
-	* add-log.el (add-change-log-entry): Simplify.
-
-2004-03-19  Kim F. Storm  <storm@cua.dk>
-
-	* hexl.el (hexl-mode-ruler): Adapt to new :align-to semantics.
-	(hexl-follow-line): Don't require 'fringe.
-
-	* progmodes/compile.el (compilation-start): Always set
-	compilation-last-buffer and return it.
-
-2004-03-17  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* simple.el (clone-buffer): Doc fix.
-
-2004-03-18  Juanma Barranquero  <lektu@terra.es>
-
-	* emacs-lisp/byte-run.el (make-obsolete-variable): Fix docstring.
-
-2004-03-17  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* log-edit.el (log-edit-font-lock-keywords): New var.
-	(log-edit-mode): Use it.
-
-2004-03-17  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gdb-var-list-children-handler): Handle C++ classes
-	properly for watching in speedbar.
-
-2004-03-17  Masatake YAMATO  <jet@gyve.org>
-
-	* smerge-mode.el (smerge-popup-context-menu):
-	Put `unwind-protect' around `overlay-put' and `popup-menu'.
-
-2004-03-16  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-arch.el (vc-arch-workfile-unchanged-p): Define to avoid dup-diff.
-	(vc-arch-workfile-version, vc-arch-mode-line-rewrite):
-	Take sealed revisions into account.
-	(vc-arch-checkin): Extract a summary line from the message.
-
-2004-03-16  Masatake YAMATO  <jet@gyve.org>
-
-	* register.el (register): Provide `register' feature.
-
-2004-03-15  Masatake YAMATO  <jet@gyve.org>
-
-	Added context menu support in smerge mode.
-	Most of the part is written by Stefan Monnier.
-
-	* smerge-mode.el (smerge-context-menu-map, smerge-context-menu):
-	New keymap and menu.
-	(smerge-text-properties): New function.
-	(smerge-remove-props): New function.
-	(smerge-popup-context-menu): New function.
-	(smerge-resolve): Call `smerge-remove-props'.
-	(smerge-keep-base, smerge-keep-other, smerge-keep-mine): Ditto.
-	(smerge-keep-current): Ditto.
-	(smerge-kill-current): New function.
-	(smerge-match-conflict): Put text properties.
-	Detect the file as `same-diff conflict' if the filename is "ANCESTOR".
-
-2004-03-15  David Ponce  <david@dponce.com>
-
-	* ruler-mode.el (ruler-mode-left-fringe-cols)
-	(ruler-mode-right-fringe-cols, ruler-mode-left-scroll-bar-cols)
-	(ruler-mode-right-scroll-bar-cols): Remove.
-	(ruler-mode-window-col, ruler-mode-mouse-set-left-margin)
-	(ruler-mode-mouse-set-right-margin, ruler-mode-ruler):
-	Use fringe-columns and scroll-bar-columns.
-
-2004-03-15  Masatake YAMATO  <jet@gyve.org>
-
-	* hl-line.el (hl-line-range-function): New variable.
-	(hl-line-move): New function.
-	(global-hl-line-highlight): Use `hl-line-move'.
-	(hl-line-highlight): Ditto.
-
-	* scroll-bar.el (scroll-bar-columns):
-	* fringe.el (fringe-columns): New function derived from ruler-mode.el.
-
-	* ruler-mode.el (top-level): Require scroll-bar and fringe.
-	(ruler-mode-left-fringe-cols)
-	(ruler-mode-right-fringe-cols): Use `fringe-columns'.
-	(ruler-mode-right-scroll-bar-cols)
-	(ruler-mode-left-scroll-bar-cols): Use `scroll-bar-columns'.
-	(ruler-mode-ruler-function): New variable.
-	(ruler-mode-header-line-format): Call `ruler-mode-ruler-function'
-	if the value for `ruler-mode-ruler-function' is given.
-
-	* hexl.el (hexl-mode-hook): Make the hook customizable.
-	(hexl-address-area, hexl-ascii-area): New customize variables.
-	(hexlify-buffer): Put font-lock-faces on the address area and
-	the ascii area.
-	(hexl-activate-ruler): New function.
-	(hexl-follow-line): New function.
-	(hexl-highlight-line-range): New function.
-	(hexl-mode-ruler): New function.
-
-2004-03-14  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-hooks.el (vc-handled-backends): Add Arch.  Move MCVS down.
-	(vc-default-find-file-hook): New fun.
-	(vc-find-file-hook): Call new find-file-hook operation.
-
-	* vc-arch.el: New file.
-
-2004-03-12  Jesper Harder  <harder@ifa.au.dk>
-
-	* info-look.el (info-lookup): Reuse an existing Info window.
-
-2004-03-12  Francis J. Wright  <F.J.Wright@qmul.ac.uk>
-
-	* woman.el (woman-preserve-ascii): Default value changed to t and
-	doc string revised.
-
-2004-03-12  Richard M. Stallman  <rms@gnu.org>
-
-	* pcvs.el (cvs-mode-add-change-log-entry-other-window):
-	Fix minor bug.
-
-	* replace.el (occur-engine): Change message for count of matches.
-
-	* emacs-lisp/bytecomp.el (byte-compile-get-constant):
-	For strings, do compare text properties.
-
-2004-03-11  Daniel Pfeiffer  <occitan@esperanto.org>
-
-	* progmodes/compile.el (compile-auto-highlight)
-	(compilation-error-list, compilation-old-error-list)
-	(compilation-parse-errors-function, compilation-parsing-end)
-	(compilation-error-message, compilation-directory-stack)
-	(compilation-enter-directory-regexp-alist)
-	(compilation-leave-directory-regexp-alist)
-	(compilation-file-regexp-alist, compilation-nomessage-regexp-alist)
-	(compilation-current-file, compilation-regexps): Remove vars.
-
-	(compile-error-at-point, compilation-error-filedata)
-	(compilation-error-filedata-file-name, compile-reinitialize-errors)
-	(compilation-next-error-locus, compilation-forget-errors)
-	(count-regexp-groupings, compilation-parse-errors)
-	(compile-collect-regexps, compile-buffer-substring): Remove funs.
-
-	(compile-internal): Make obsolete.
-
-	(compilation-first-column, compilation-error)
-	(compilation-directory-matcher, compilation-page-delimiter)
-	(compilation-mode-font-lock-keywords, compilation-debug)
-	(compilation-error-face, compilation-warning-face)
-	(compilation-info-face, compilation-line-face)
-	(compilation-column-face, compilation-enter-directory-face)
-	(compilation-leave-directory-face, compilation-skip-threshold)
-	(compilation-skip-visited, compilation-context-lines): New vars.
-
-	(compilation-warning-face, compilation-info-face)
-	(compilation-message-face): New faces.
-
-	(compilation-error-regexp-alist-alist): New constant.
-
-	(compilation-face, compilation-directory-properties)
-	(compilation-assq, compilation-error-properties, compilation-start)
-	(define-compilation-mode, compilation-loop)
-	(compilation-set-window): New functions.
-
-	(compile): Additional argument for interactive compiles like TeX.
-
-	* progmodes/grep.el (kill-grep): Move here from compile.el
-	(grep-error, grep-hit-face, grep-error-face)
-	(grep-mode-font-lock-keywords): New variables.
-	(grep-regexp-alist): Simplify regexp and add `binary' case.
-	(grep-mode): New mode.
-	(grep-process-setup): Simplify.
-
-2004-03-11  Jason Rumney  <jasonr@gnu.org>
-
-	* net/ldap.el (ldap-search-internal): Handle file URLs with drive
-	letters on DOS/Windows.
-
-2004-03-11  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* server.el (server-name): New var.
-	(server-socket-dir): New var to replace server-socket-name.
-	(server-start): Use them.
-
-2004-03-11  Simon Josefsson  <jas@extundo.com>
-
-	* mail/smtpmail.el (smtpmail-read-response): Abort if process has
-	died to avoid infloop.  Reported by Jonathan Glauner
-	<jglauner@sbum.org>.
-
-2004-03-10  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* smerge-mode.el (smerge-check-cache, smerge-check): New var and fun.
-	(smerge-mode-menu): Use it to deactivate menu entries.
-	(smerge-keep-current): New fun.
-	(smerge-keep-current): Use it.
-
-2004-03-10  John Paul Wallington  <jpw@gnu.org>
-
-	* foldout.el (foldout-fold-list, foldout-modeline-string):
-	Declare them as variables, not constants.
-
-2004-03-10  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* ps-print.el: Modification to print *Messages* buffer.
-	(ps-print-version): New version 6.6.4.
-	(ps-message-log-max): New fun.
-	(ps-spool-without-faces, ps-spool-with-faces)
-	(ps-count-lines-preprint): Code fix.
-
-	* printing.el: New tips in Tips section.
-
-2004-03-09  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* delim-col.el: Doc fix.
-
-	* printing.el: Doc fix.  New doc section (Tips).
-
-2004-03-09  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* type-break.el (type-break-emacs-variant): Remove.
-	(type-break-run-at-time, type-break-cancel-function-timers):
-	Use fboundp rather than version name and number.
-
-2004-03-09  Masatake YAMATO  <jet@gyve.org>
-
-	* hexl.el (hexl-mode): Use `make-local-variable' instead of
-	`make-variable-buffer-local'.
-
-2004-03-08  Michael Albinus  <Michael.Albinus@alcatel.de>
-
-	* find-dired.el (find-dired): Call `shell-command' instead of
-	`start-process-shell-command'.  By this, Tramp takes over
-	handling of remote directories.
-
-2004-03-07  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* newcomment.el (comment-use-global-state): New var.
-	(comment-search-forward): Use it.
-
-	* emacs-lisp/lisp-mode.el (lisp-mode-variables): Set it.
-
-	* cus-edit.el (fill) <defgroup>: Move to fill.el.
-
-	* textmodes/fill.el (fill) <defgroup>: Move from cus-edit.el.
-	(enable-kinsoku): Make it a defcustom.
-	(fill-comment-paragraph): Don't rely on fill-prefix to bound the
-	paragraph to same-comment-start-marker.
-
-2004-03-07  Dave Love  <fx@gnu.org>
-
-	* net/browse-url.el (rfc2368-parse-mailto-url): Autoload.
-	(browse-url-mail): Use it.
-
-	* mail/rfc2368.el (rfc2368-unhexify-char): Delete.
-	(rfc2368-unhexify-string): Use replace-regexp-in-string.
-
-2004-03-07  Francis J. Wright  <F.J.Wright@qmul.ac.uk>
-
-	* woman.el (woman-man.conf-path): Doc fix.
-	(woman-parse-man.conf): Also parse OPTIONAL_MANPATH.
-
-2004-03-07  Eli Zaretskii  <eliz@gnu.org>
-
-	* sort.el (sort-columns): Remove ms-dos from the list of systems
-	where the external `sort' command is not used.
-
-2004-03-07  Kim F. Storm  <storm@cua.dk>
-
-	* gdb-ui.el (gdb-overlay-arrow-position): Add defvar.
-	(gdb-reset): Reset gdb-overlay-arrow-position marker and remove it
-	from overlay-arrow-variable-list.
-	(gdb-assembler-mode): Use add-to-list for gdb-overlay-arrow-position.
-
-2004-03-06  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gdb-assembler-mode, gdb-assembler-custom): Set up
-	overlay arrow string properly for the assembler buffer.
-
-2004-03-05  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* mail/sendmail.el (mail-mode): Fix last change.
-
-2004-03-05  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gdb-assembler-mode): Create a second overlay arrow
-	for the assembler buffer.
-	(gdb-assembler-custom): Position the overlay arrow.
-	(gdb-put-arrow, gdb-remove-arrow): Delete functions.
-
-2004-03-04  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/sh-script.el (sh-font-lock-paren): Add @ in case patterns.
-
-	* pcvs-info.el (cvs-fileinfo->backup-file): Use a more constraining
-	regexp to distinguish .#ChangeLog.9.1.400 and .#ChangeLog.1.400.
-
-	* mail/sendmail.el (mail-mode): Set comment-start-skip.
-
-	* newcomment.el (uncomment-region): Allow non-terminated comment.
-	(comment-normalize-vars): Check the user-specified comstart marker.
-
-2004-03-04  Jesper Harder  <harder@ifa.au.dk>
-
-	* sort.el (sort-columns): Don't use external 'sort' on ms-windows.
-	Otherwise, do use it if the region only contains font-lock text
-	properties.
-
-2004-03-04  Masatake YAMATO  <jet@gyve.org>
-
-	* hexl.el (hexl-mode): Set `hexl-print-current-point-info'
-	as the callback function for eldoc.
-	(hexl-print-current-point-info): New function.
-	(hexl-current-address): Print the address in both decimal
-	and hexadecimal format.
-
-2004-03-04  Richard M. Stallman  <rms@gnu.org>
-
-	* mail/rmail.el (rmail-convert-to-babyl-format):
-	Specify t for UNIBYTE when calling mail-unquote-printable-region.
-
-	* mail/mail-utils.el (mail-unquote-printable-region):
-	New arg UNIBYTE.
-
-	* startup.el (command-switch-alist): Doc fix.
-
-	* simple.el (undo): Temporarily set this-command to `undo-start',
-	then set it to `undo' once undo-start returns without error.
-
-	* simple.el (minibuffer-history-sexp-flag): Doc fix.
-
-	* simple.el (kill-line): Don't disregard trailing whitespace
-	in eol condition, if show-trailing-whitespace is set.
-
-	* mouse-sel.el (mouse-sel-has-been-enabled): New var.
-	(mouse-sel-mode): When enabling, set mouse-sel-has-been-enabled.
-	When disabling, restore old values only if mouse-sel-has-been-enabled.
-
-	* isearch.el (isearch-*-char): New arg WANT-BACKSLASH.
-	(isearch-{-char): New function.
-	(isearch-mode-map): Bind { to isearch-{-char.
-
-	* font-lock.el (lisp-font-lock-keywords-2):
-	Turn off the CL with-... and do-... general patterns.
-	Instead, recognize several specific with... and do... constructs.
-
-	* files.el (switch-to-buffer-other-window):
-	Bind same-window-buffer-names and same-window-regexps to nil.
-	(switch-to-buffer-other-frame): Likewise.
-
-2004-03-03  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* textmodes/fill.el (fill-comment-paragraph): Be more careful when
-	recognizing leading comment on code line.
-
-2004-03-02  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* Makefile.in (setwins, setwins_almost): Skip .arch-ids and other
-	hidden files/directories.
-
-2004-03-02  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* textmodes/fill.el (fill-paragraph): Don't check comment-start-skip,
-	only comment-start (in case the mode hasn't set it).
-
-	* Makefile.in (AUTOGENEL): New var.
-	(bootstrap-prepare): Rename from bootstrap-clean.
-	Don't remove elc files.
-	(maintainer-clean): New target.
-
-	* xml.el (xml-get-attribute-or-nil): Simplify.
-
-2004-03-02  Juri Linkov  <juri@jurta.org>
-
-	* net/browse-url.el (browse-url-netscape, browse-url-mozilla)
-	(browse-url-galeon, browse-url-epiphany): Encode dollar signs in
-	URL to prevent their substitution with the environment variable
-	values by browsers.
-
-2004-03-03  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* ps-print.el: Doc fix.
-	(ps-print-version): New version number (6.6.3).
-	(ps-right-header, ps-right-footer, ps-left-header, ps-left-footer):
-	Docstring fix.
-	(ps-kill-emacs-check): Check if ps-print temporary buffer is killed
-	before printing.
-	(ps-time-stamp-yyyy-mm-dd): New fun.
-	(ps-time-stamp-iso8601): Alias for ps-time-stamp-yyyy-mm-dd.
-
-2004-03-02  Kim F. Storm  <storm@cua.dk>
-
-	* gdb-ui.el (gdb-mouse-toggle-breakpoint): Remove debug message.
-
-2004-03-01  Juanma Barranquero  <lektu@terra.es>
-
-	* allout.el (allout-rebullet-heading): Fix typo in docstring.
-
-	* desktop.el (desktop-file-version)
-	(desktop-after-read-hook): Fix typos.
-	(desktop-clear-preserve-buffers): Remove redundant info in
-	docstring already shown by the obsolescence message.
-	(desktop-truncate, desktop-internal-v2s)
-	(desktop-value-to-string): Change argument name to match docstring.
-
-	* emulation/tpu-edt.el (tpu-set-mark): Fix typo in docstring.
-
-	* eshell/em-smart.el (eshell-smart-maybe-jump-to-end): Fix typo in
-	docstring.
-
-2004-02-29  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* printing.el: Replace "As Is..." in PostScript file print/preview by
-	"No Preprocessing...".  Suggested by Colin Marquardt
-	<_marquardt_@zmd.de>.
-	(pr-insert-section-4): Adjust buffer interface.
-
-2004-02-29  Kai Grossjohann  <kai.grossjohann@gmx.net>
-
-	Version 2.0.39 of Tramp released.
-
-	* net/tramp.el (tramp-handle-file-local-copy)
-	(tramp-handle-write-region, tramp-open-connection-rsh):
-	Variable name typo.  Small change.  From Patrick Tullmann
-	<tullmann@flux.utah.edu>.
-	(tramp-process-connection-type): New variable.
-	(tramp-maybe-open-connection): Use it.
-	(tramp-do-copy-or-rename-via-buffer): Handle KEEP-DATE arg if possible.
-	(tramp-touch): Set last-modified time of a remote file.
-	(tramp-handle-write-region): Say which function is used when encoding.
-
-2004-02-29  Michael Albinus  <Michael.Albinus@alcatel.de>
-
-	* net/tramp-smb.el (tramp-smb-handle-file-writable-p): Handle the
-	case of non-existing filename, too.  Reported by Christoph Bauer
-	<c_bauer@informatik.uni-kl.de>.
-	(tramp-smb-get-file-entries): The directory in question should
-	have permissions "drwxrwxrwx".  Just virtual, because we don't
-	know the real permissions.  Don't we know?
-	(tramp-smb-prompt): Add virtual prompt from listing shares, too.
-	(tramp-smb-errors): Add "NT_STATUS_ACCOUNT_LOCKED_OUT".
-	(tramp-smb-wait-for-output): Optimize algorithm getting pending
-	output.  If it was received chunkwise, there have been problems.
-	Remove the "prompt not found" error message; it is obvious.
-	Simplify algorithm.
-	(tramp-smb-process-running): Remove.  Since we acknowledge the
-	virtual prompt for shares, there's no need for distinction of
-	reading shares (process ends afterwards) and interactive mode of
-	smblient.
-	(tramp-smb-open-connection): Setting process sentinel removed.
-	(tramp-smb-errors): Add "NT_STATUS_WRONG_PASSWORD" and
-	"NT_STATUS_NETWORK_ACCESS_DENIED".
-	(tramp-smb-maybe-open-connection): Set `process-connection-type'
-	to 'pty.  Suggested by Piet van Oostrum <piet@cs.uu.nl>.
-	(top-level): Setting default value in `tramp-default-method-alist'
-	corrected.  Order of USER and HOST have been wrong.
-	Nobody complained for months ...
-	(tramp-smb-maybe-open-connection): Use `tramp-process-connection-type'.
-	(tramp-smb-open-connection): Clear password cache if login has failed.
-
-	* net/tramp.el (tramp-completion-mode) Don't check for 'xemacs' but
-	`tramp-unified-filenames'.
-	(tramp-completion-mode): Make test for XEmacs explicitly.
-	`event-to-character' can exists in Emacs packages too.
-	Reported by Matt Swift <swift@alum.mit.edu>.
-	(tramp-buffer-name): Buffer name must contain the user if exists.
-	Reported by Adrian Phillips <a.phillips@met.no>.
-	(tramp-do-copy-or-rename-file): Handle out-of-band methods.
-	Call `tramp-do-copy-or-rename-file-out-of-band' this case.
-	(tramp-do-copy-or-rename-file-out-of-band): Rename from
-	`tramp-do-copy-or-rename-file-one-local', because it handles also
-	the case both files use the same out-of-band method.
-	Implementation added.
-	(tramp-handle-file-local-copy, tramp-handle-write-region):
-	Out-of-band handling removed.  `copy-file' called instead, which
-	calls `tramp-do-copy-or-rename-file-out-of-band'.
-	(tramp-action-password): Check for out-of-band method removed.
-	This function is used for 'login-program.
-	(tramp-post-connection): Use `tramp-method-out-of-band-p' when
-	appropriate.
-	(tramp-completion-function-alist-ssh): Add `tramp-parse-shostkeys'
-	and `tramp-parse-sknownhosts'.
-	(tramp-completion-function-alist): It's a defvar now, because we
-	want to apply the optimized `tramp-set-completion-function'
-	instead of a static list.
-	(tramp-set-completion-function): Implementation tuned.
-	Avoid double entries, and entries where the function or the
-	file/directory doesn't exist.
-	(tramp-parse-shostkeys, tramp-parse-sknownhosts): New functions
-	for SSH2.
-	(tramp-file-name-handler-alist): Add `dired-compress-file' entry.
-	(tramp-handle-dired-compress-file): New function.
-	(tramp-async-proc): New variable.
-	(tramp-handle-shell-command): Adding asynchronous processes.
-	They are far from being perfect, but it works at least for
-	`find-grep-dired' and `find-name-dired' in Emacs 22.1.
-	(top-level): Require password.el if visible.  Should be mandatory
-	once No Gnus has found its way into (X)Emacs.
-	(tramp-read-passwd): Invoke `password-read' if available,
-	`read-passwd' otherwise.  `ange-ftp-read-passwd' isn't used as
-	fallback any longer.
-	(tramp-clear-passwd): New function.
-	(tramp-process-actions, tramp-process-multi-actions):
-	Clear password cache if login has failed.
-
-	* net/tramp-ftp.el (Commentary): Remove pointer to EFS.  It has
-	its own module.
-	(tramp-ftp-file-name-handler): Unset `ange-ftp-ftp-name-arg' and
-	`ange-ftp-ftp-name-res'.  There could be incorrect values from
-	previous calls in case the "ftp" method is used in the Tramp file
-	name.  Reported by Katsumi Yamaoka <yamaoka@jpl.org>.
-
-2004-02-28  Richard M. Stallman  <rms@gnu.org>
-
-	* term.el (term-mouse-paste): Call mouse-set-point.
-
-	* thumbs.el: New file.
-
-2004-02-28  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* progmodes/ebnf-abn.el: Doc fix.
-
-	* progmodes/ebnf-bnf.el: Doc fix.
-	(ebnf-repeat): Code fix.
-
-	* progmodes/ebnf2ps.el: Doc fix.
-	(ebnf-syntax-directory, ebnf-syntax-file): New funs.
-
-2004-02-28  Juri Linkov  <juri@jurta.org>
-
-	* ffap.el (dired-at-point): Additional writability test for
-	relative directory names.
-	(dired-at-point-prompter): Treat directories as a directory, get
-	the directory component from files.
-	(ffap-string-at-point): Return string from region if region is active.
-	(ffap-file-at-point): Remove redundant code.
-
-2004-02-28  Kim F. Storm  <storm@cua.dk>
-
-	* gdb-ui.el (breakpoint-enabled-icon, breakpoint-disabled-icon):
-	Initialize margin area images to nil.
-	(breakpoint-bitmap): New defvar for breakpoint fringe bitmaps.
-	(breakpoint-enabled-bitmap-face)
-	(breakpoint-disabled-bitmap-face): New faces for bpt in fringe.
-	(gdb-info-breakpoints-custom): Use gdb-remove-breakpoint-icons.
-	(gdb-info-breakpoints-custom): Use gdb-put-breakpoint-icon.
-	(gdb-mouse-toggle-breakpoint): Handle bpt in fringe.
-	(gdb-reset): Use gdb-remove-breakpoint-icons.
-	(gdb-put-string): Add dprop arg to specify alternative display
-	property (for setting fringe bitmap).
-	(gdb-remove-strings): Doc fix.
-	(gdb-put-breakpoint-icon): New defun which displays a breakpoint
-	icon in fringe (if available), or else as icon or text in display
-	margin.  Creates necessary icons in breakpoint-bitmap,
-	breakpoint-enabled-icon, and/or breakpoint-disabled-icon.
-	Also make left window margin if required.
-	(gdb-remove-breakpoint-icons): New defun to remove breakpoint
-	icons inserted by gdb-put-breakpoint-icon.  Remove left margin if
-	no longer needed.
-	(gdb-assembler-custom): Use gdb-remove-breakpoint-icons and
-	gdb-put-breakpoint-icon.
-	(gdb-assembler-mode): Don't set left-margin-width here.
-
-2004-02-27  Kevin Ryde  <user42@zip.com.au>
-
-	* info-look.el: In scheme-mode symbol regexp, disallow backquote and
-	comma, so that it DTRT in macros.
-
-2004-02-27  Markus Rost  <rost@mathematik.uni-bielefeld.de>
-
-	* progmodes/sh-script.el (sh-shell-arg)
-	(sh-require-final-newline, sh-assignment-regexp, sh-builtins)
-	(sh-leading-keywords, sh-other-keywords): Fix custom type.
-
-2004-02-27  Dan Nicolaescu  <dann@ics.uci.edu>
-
-	* faces.el (face-spec-set-match-display): Add a new attribute,
-	`min-colors'.
-	(region, highlight, secondary-selection): Use `min-colors'.
-
-	* custom.el (defface): Add documentation for `min-colors'.
-
-	* font-lock.el (font-lock-comment-face, font-lock-string-face)
-	(font-lock-keyword-face, font-lock-function-name-face)
-	(font-lock-variable-name-face, font-lock-constant-face):
-	Use `min-colors'.
-
-	* isearch.el (isearch, isearch-lazy-highlight-face): Use `min-colors'.
-
-2004-02-25  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* progmodes/ebnf2ps.el: Doc fix.  For compatibility with Emacs 20,
-	define assq-delete-all if it's not defined.
-	(ebnf-generate-region): Code fix.
-
-	* printing.el: Doc fix.
-	(pr-version): New version number (6.7.2).
-	(pr-command): Return empty string if command is an empty string.
-
-2004-02-24  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* progmodes/ebnf-abn.el: New file, implements an ABNF parser.
-
-	* progmodes/ebnf2ps.el: Doc fix.  Accept ABNF (Augmented BNF).  New
-	arrow shapes: semi-up-hollow, semi-up-full, semi-down-hollow and
-	semi-down-full.  Fix a bug on productions like test = {"test"}* | (
-	"tt" ["test"] ).  Reported by Markus Dreyer
-	<mdreyer@ix.urz.uni-heidelberg.de>.
-	(ebnf-version): New version number (4.0).
-	(ebnf-print-directory, ebnf-print-file, ebnf-spool-directory)
-	(ebnf-spool-file, ebnf-eps-directory, ebnf-eps-file)
-	(ebnf-delete-style): New commands.
-	(ebnf-directory, ebnf-file): New funs.
-	(ebnf-special-show-delimiter, ebnf-file-suffix-regexp)
-	(ebnf-production-name-p, ebnf-stop-on-error): New options.
-	(ebnf-syntax-alist): New var.
-	(ebnf-element-width): New fun replacing ebnf-list-width.
-	(ebnf-arrow-shape, ebnf-syntax): Custom fix.
-	(ebnf-style-custom-list, ebnf-style-database, ebnf-arrow-shape-alist)
-	(ebnf-prologue): Adjust vars.
-	(ebnf-setup, ebnf-insert-style, ebnf-merge-style, ebnf-apply-style)
-	(ebnf-reset-style, ebnf-push-style, ebnf-pop-style)
-	(ebnf-check-style-values, ebnf-generate-production)
-	(ebnf-generate-region, ebnf-production-dimension, ebnf-justify-list)
-	(ebnf-make-terminal1, ebnf-make-or-more1, ebnf-make-repeat)
-	(ebnf-token-repeat): Code fix.
-
-	* progmodes/ebnf-yac.el: Doc fix.  Handle Bison pragmas %nonassoc,
-	%right, %left and %prec.  Suggested by Matthew K. Junker
-	<junker@alum.mit.edu>.
-	(ebnf-yac-definitions, ebnf-yac-lex): Code fix.
-
-	* progmodes/ebnf-iso.el: Doc fix.
-	(ebnf-iso-token-table, ebnf-iso-non-terminal-chars): Adjust vars.
-	(ebnf-iso-lex): Code fix.
-
-	* progmodes/ebnf-bnf.el: Doc fix.
-	(ebnf-bnf-lex): Code fix.
-
-	* progmodes/ebnf-otz.el: Doc fix.
-
-2004-02-23  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* abbrev.el (write-abbrev-file): Make argument optional.  Doc fix.
-	(abbrev-prefix-mark): Doc fix.
-
-2004-02-23  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gud-watch): Load tooltip, if necessary.
-	(gdb-var-create-handler): Force speedbar-update-flag to be non-nil.
-	(gdb-var-delete): Make interactive (really).
-	(gdb-edit-value): Make non-interactive.
-
-	* progmodes/gud.el (gud-speedbar-menu-items):
-	Add gdb-var-delete and, indirectly, gdb-edit-value.
-	(gud-install-speedbar-variables): Bind gdb-var-delete to "D".
-	(gud-speedbar-buttons): Remove gdb-var-delete from tag-line.
-	(gud-gdb-marker-filter): Add comment for annotations.
-
-2004-02-23  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/calendar.el (generate-calendar)
-	(calendar-read-date): Prevent display of BC calendars once more -
-	reverts 2003-10-01 change.
-	(generate-calendar-month): Doc fix.
-
-2004-02-03  Matthew Mundell  <matt@mundell.ukfsn.org>  (tiny change)
-
-	* calendar/diary-lib.el (fancy-diary-display): Don't rely on
-	return value of increment-calendar-month.
-
-2004-02-21  Stephen Compall  <s11@member.fsf.org>
-
-	* saveplace.el (save-place-forget-unreadable-files)
-	(save-place-save-skipped, save-place-skip-check-regexp): New vars.
-	(save-place-forget-unreadable-files): New function.
-	(save-place-alist-to-file): Use it to filter out files that are
-	no longer readable.
-
-	* textmodes/texinfo.el (texinfo-insert-@item): Look for the
-	current Texinfo environment, using the same method as in
-	`texinfo-insert-@end', and insert a space rather than a newline if
-	point in a @table environment.
-
-2004-02-21  Juri Linkov  <juri@jurta.org>
-
-	* ffap.el (ffap-file-at-point): Try parent directories.
-
-2004-02-21  Klaus Zeitler  <kzeitler@lucent.com>
-
-	* vcursor.el (vcursor-modifiers): New defcustom.
-	(vcursor-cs-binding): Use vcursor-modifiers instead of a
-	hard-coded list.
-
-2004-02-21  Masatake YAMATO  <jet@gyve.org>
-
-	* play/animate.el (animate-birthday-present): Accept names other
-	than `Sarah', too.
-
-2004-02-21  Juri Linkov  <juri@jurta.org>
-
-	* startup.el: Remove table of command line arguments from the
-	Commentary section.
-
-2004-02-20  John Wiegley  <johnw@newartisans.com>
-
-	* eshell/em-pred.el (eshell-modifier-alist): Change the "eval
-	again" modifier from 'e' to 'E', since 'e' is also used by the
-	"file extension" modifier.
-
-2004-02-19  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* help-fns.el (describe-categories): Doc fix.
-
-2003-02-19  Michael Kifer  <kifer@cs.stonybrook.edu>
-
-	* ediff-util.el (ediff-compute-custom-diffs-maybe): Avoid creating
-	temporary file for buffer already visiting one.  This change makes
-	output likely to be directly usable by patch program.
-	Suggested by Adrian Aichner  <adrian@xemacs.org>
-
-2004-02-20  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gdb-use-colon-colon-notation): Set default to nil for
-	case of variables defined in compound statements.
-	(gdb-setup-windows, gdb-source-info, gdb-source-info):
-	Simplify constructions using switch-to-buffer.
-
-2004-02-19  Simon Josefsson  <jas@extundo.com>
-
-	* play/morse.el: Fix typo.
-	(morse-code): Add @.
-
-2004-02-19  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/appt.el (appt-display-format): Change default to
-	'ignore, for backwards compatibility.
-	(appt-display-message): If appt-display-format is 'ignore,
-	respect old vars appt-msg-window and appt-visible.
-	(appt-activate): Don't depend on return value of cancel-timer.
-
-	* calendar/calendar.el (calendar-holidays): Doc fix.
-
-	* calendar/cal-coptic.el (coptic-prompt-for-date):
-	Use assoc-string instead of assoc-ignore-case.
-	* calendar/cal-french.el (calendar-goto-french-date): Ditto.
-	* calendar/cal-hebrew.el (calendar-goto-hebrew-date)
-	(mark-hebrew-diary-entries, list-yahrzeit-dates): Ditto.
-	* calendar/cal-islam.el (calendar-goto-islamic-date)
-	(mark-islamic-diary-entries): Ditto.
-	* calendar/cal-julian.el (calendar-goto-julian-date): Ditto.
-	* calendar/cal-mayan.el (calendar-read-mayan-haab-date)
-	(calendar-read-mayan-tzolkin-date): Ditto.
-	* calendar/calendar.el (calendar-read-date): Ditto.
-	* calendar/diary-lib.el (mark-diary-entries): Ditto.
-
-2004-02-18  Markus Rost  <rost@mathematik.uni-bielefeld.de>
-
-	* progmodes/executable.el (executable-command-find-posix-p):
-	Fix choice of the directory.
-
-2004-02-17  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* simple.el (interprogram-cut-function)
-	(interprogram-paste-function, kill-new, kill-append):
-	Doc fixes.
-	(kill-region): Make it return nil.  Doc fix.
-	(yank-pop): Make its argument optional.
-	(yank): Make ARG `-' equivalent to `-1'.
-
-2004-02-17  Eli Zaretskii  <eliz@gnu.org>
-
-	* mail/rmail.el (rmail-get-new-mail): Don't reference
-	rmail-use-spam-filter if rmail-spam-filter is not loaded.
-
-2004-02-16  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* autorevert.el (auto-revert-buffer-p): Only revert dired buffers
-	if one of global-auto-revert-non-file-buffers or autorevert-mode
-	is non-nil.
-
-2004-02-16  Eli Zaretskii  <eliz@gnu.org>
-
-	* subr.el (delete-dups): A better implementation from Karl Heuer
-	<kwzh@gnu.org>.
-
-2004-02-16  Matt Hodges  <matt@stchem.bham.ac.uk>  (tiny change)
-
-	* net/telnet.el (telnet-interrupt-subjob): Move doc string to the
-	correct place.
-	* progmodes/icon.el (icon-indent-command): Ditto.
-	* textmodes/paragraphs.el (repunctuate-sentences): Ditto.
-
-2004-02-16  Eli Zaretskii  <eliz@gnu.org>
-
-	* progmodes/grep.el (grep-compute-defaults): Undo change from
-	2004-01-29: don't use executable-command-find-posix-p.
-
-2004-02-16  Richard Sharman  <rsharman@pobox.com>
-
-	* hilit-chg.el: Use require instead of eval-and-compile.
-	(highlight-compare-buffers): New function.
-
-2004-02-16  John Basrai  <jbasrai@comcast.net>  (tiny change)
-
-	* man.el (Man-fontify-manpage): Render section headings in
-	`Man-overstrike-face' even when overstrike was not used by man
-	formatter for section headings.
-
-2004-02-16  Eli Tziperman  <eli@deas.harvard.edu>
-
-	* rmail-spam-filter.el (vm-use-spam-filter)
-	(rsf-min-region-length-added-to-spam-list): New	variables.
-	(rsf-bbdb-auto-delete-spam-bbdb-entries): Rename from
-	rmail-bbdb-auto-delete-spam-entries.  Add cc: to recipients for
-	spam testing.  Don't delete spam message if automatic deletion
-	after output via variable rmail-delete-after-output is turned on.
-	(rsf-bbdb-dont-create-entries-for-deleted-messages): Rename from
-	rsf-bbdb-dont-create-entries-for-spam.
-	(check-field): New function, extracted from code in
-	rmail-spam-filter to ease addition of header fields like content-type.
-	(message-content-type): New variable to check the content-type:
-	field added, also in defcustom of rsf-definitions-alist.
-	(rmail-spam-filter): Replace repeated test code for header fields
-	by calls to check-field; change the call to
-	rmail-output-to-rmail-file such that rmail-current-message stays
-	the same to avoid wrong deletion of unseen flags.
-	(rsf-add-contents-type): New function to convert old format
-	of rmail-spam-definitions-alist into new one.
-	Change prefixes of all variables and functions from
-	rmail-spam-filter- or spam-filter- or rmail-spam- to rsf-.
-
-2004-02-16  Eli Zaretskii  <eliz@gnu.org>
-
-	* loadhist.el (unload-hook-features-list): New defvar.
-
-2004-02-16  Dave Love  <fx@gnu.org>
-
-	* loadhist.el (unload-feature): Doc fix.  Rename flist to
-	unload-hook-features-list.
-
-2004-02-16  Jay Belanger  <belanger@truman.edu>  (tiny change)
-
-	* 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)
-
-	* subr.el (match-string-no-properties): Use substring-no-properties.
-
-2004-02-16  Eli Zaretskii  <eliz@gnu.org>
-
-	* emacs-lisp/rx.el (rx-check, rx-check-any, rx-check-not)
-	(rx-repeat, rx-check-backref, rx-syntax, rx-to-string):
-	Use lower-case "rx" in all error message.
-
-2004-02-16  Dave Love  <fx@gnu.org>
-
-	* emacs-lisp/rx.el (rx-or): Put group around result.
-	(rx-constituents): Add backref.
-	(rx-syntax): Add string-delimiter, comment-delimiter.
-	(rx-categories): Add combining-diacritic.
-	(rx-check-not, rx-greedy, rx): Doc fix.
-	(rx-backref, rx-check-backref): New.
-
-2004-02-16  Jesper Harder  <harder@ifa.au.dk>
-
-	* newcomment.el (uncomment-region): Allow eob as comment end.
-
-2004-02-16  Jari Aalto  <jari.aalto@poboxes.com>
-
-	* filecache.el: All message and error commands now use prefix
-	"Filecache:" to make it easy to read *Messages* buffer.
-
-2004-02-16  Jari Aalto  <jari.aalto@poboxes.com>
-
-	* autorevert.el: Add support to detect changed dired and VC buffers.
-	(auto-revert-active-p, auto-revert-list-diff)
-	(auto-revert-dired-file-list, auto-revert-dired-changed-p)
-	(auto-revert-handler, auto-revert-active-p): New functions.
-	(auto-revert-buffers): Move revert logic to `auto-revert-handler'
-	and `auto-revert-active-p'.
-	(eval-when-compile): Defvar dired-directory and vc-mode.
-	(auto-revert-vc-cvs-file-version, auto-revert-vc-buffer-p)
-	(auto-revert-handler-vc): New functions.
-
-2004-02-16  Alfred M. Szmidt  <ams@kemisten.nu>  (tiny change)
-
-	* progmodes/compile.el (compilation-directory): New defvar.
-	(compile): Save current directory in compilation-directory.
-	(recompile): Bind default-directory to compilation-directory if
-	that is non-nil.
-
-2004-02-16  Dave Love  <fx@gnu.org>
-
-	* newcomment.el (comment-insert-comment-function)
-	(comment-region-function, uncomment-region-function): New.
-	(comment-indent): Use comment-insert-comment-function.
-	(uncomment-region): Use uncomment-region-function.
-	(comment-region): Use comment-region-function.
-
-	* emacs-lisp/rx.el (rx-not): Bind case-fold-search to nil.
-
-2004-02-16  Richard Stallman  <rms@gnu.org>
-
-	* Makefile.in (TAGS, TAGS-LISP): Filter out of `els' only
-	loaddefs* and ldefs-boot*.
-
-2004-02-16  Eli Zaretskii  <eliz@gnu.org>
-
-	* mail/mail-utils.el (rmail-dont-reply-to): Anchor user login name
-	and email address at the beginning and end of the address.
-
-	* mail/rmail.el (rmail-default-dont-reply-to-names): Make "info-"
-	anchored at the beginning of the email address.
-
-2004-02-16  TAKAI Kousuke  <tak@kmc.gr.jp>  (tiny change)
-
-	* 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)
-
-	* progmodes/grep.el (grep-compute-defaults): Fix typos.
-
-2004-02-15  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* x-dnd.el: Mention support for Motif in commentary.
-	(x-dnd-handle-drag-n-drop-event): Ditto.
-
-2004-02-14  Jonathan Yavner  <jyavner@member.fsf.org>
-
-	* ses.el: Use "ses--" prefixes for buffer-local variables.
-	Use (point-min) instead of 1, even when we know the buffer
-	is unnarrowed.
-	(ses-build-load-map): Delete.  Distribute its content to defconsts for
-	the three maps.
-	(ses-menu, ses-header-line-menu): New menus.
-	(ses-mode-map): Use them.
-	(ses-read-number) New fun.  Duplicates code from interactive "N" spec.
-
-2004-02-14  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* Makefile.in: Fix the CC Mode recompile kludge so it works
-	when building in a different directory.
-
-2004-02-13  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* simple.el (kill-new): Put yank-handler property on the entire string.
-
-2004-02-11  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* diff.el: Don't use compile any more, use diff-mode instead.
-	(diff-regexp-alist, diff-old-file, diff-new-file)
-	(diff-parse-differences, diff-process-setup): Remove.
-	(diff-sentinel): New fun.
-	(diff): Use it.  Run the process ourselves.
-	Use diff-mode for the rest of the processing.
-
-	* diff.el (diff): Simplify code handling `switch'.
-
-2004-02-11  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* pcvs-defs.el (cvs-menu): Add `tag'.
-
-2004-02-11  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* simple.el (kill-append): Doc fix.
-
-	* emacs-lisp/lisp-mode.el (lisp-mode-variables):
-	Adapt outline-regexp to the new conventions for commenting out code.
-
-2004-02-11  John Paul Wallington  <jpw@gnu.org>
-
-	* mail/smtpmail.el (smtpmail-try-auth-methods): Fix typo.
-
-2004-02-10  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* diff.el (diff-switches): New fun.
-	(diff, diff-backup): Use it.
-	(diff): Clean up the args construction.  Use backquote.
-	Use listp instead of consp to avoid putting a nil arg.
-	(diff): Add a revert-buffer function.
-
-2004-02-10  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* x-dnd.el (x-dnd-types-alist): Add COMPOUND_TEXT, FILE_NAME
-	handled by x-dnd-handle-file-name.
-	(x-dnd-known-types): Add COMPOUND_TEXT.
-	(x-dnd-init-frame): Call x-dnd-init-motif-for-frame.
-	(x-dnd-get-state-cons-for-frame): Must do copy-sequence on
-	x-dnd-empty-state.
-	(x-dnd-forget-drop): Ditto.
-	(x-dnd-save-state): Add optional parameter extra-data (for Motif).
-	(x-dnd-handle-one-url): Return private when inserting text.
-	(x-dnd-insert-ctext): New function.
-	(x-dnd-handle-file-name): New function for FILE_NAME.
-	(x-dnd-handle-drag-n-drop-event): Add Motif, remove call to error.
-	(x-dnd-init-motif-for-frame, x-dnd-get-motif-value)
-	(x-dnd-motif-value-to-list, x-dnd-handle-motif): New functions.
-
-2004-02-10  Kenichi Handa  <handa@m17n.org>
-
-	* term/x-win.el (x-select-utf8-or-ctext): Use compare-strings
-	instead of while loop.
-
-2004-02-10  Miles Bader  <miles@gnu.org>
-
-	* emacs-lisp/macroexp.el: New file, implements `macroexpand-all'.
-
-2004-02-09  Kenichi Handa  <handa@m17n.org>
-
-	* tar-mode.el (tar-extract): Fix for the case that a file doesn't
-	have end-of-line.
-
-2004-02-09  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* Makefile.in: Added extra dependencies in the recompile target
-	needed to cope with the compile time macro expansions in CC Mode.
-
-2004-02-09  Kim F. Storm  <storm@cua.dk>
-
-	* fringe.el (no-fringe-bitmap, undef-fringe-bitmap)
-	(left-truncation-fringe-bitmap, right-truncation-fringe-bitmap)
-	(up-arrow-fringe-bitmap, down-arrow-fringe-bitmap)
-	(continued-line-fringe-bitmap, continuation-line-fringe-bitmap)
-	(overlay-arrow-fringe-bitmap, top-left-angle-fringe-bitmap)
-	(top-right-angle-fringe-bitmap, bottom-left-angle-fringe-bitmap)
-	(bottom-right-angle-fringe-bitmap, left-bracket-fringe-bitmap)
-	(right-bracket-fringe-bitmap, filled-box-cursor-fringe-bitmap)
-	(hollow-box-cursor-fringe-bitmap, hollow-square-fringe-bitmap)
-	(bar-cursor-fringe-bitmap, hbar-cursor-fringe-bitmap)
-	(empty-line-fringe-bitmap): Define standard fringe bitmaps id's.
-
-2004-02-08  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* window.el (window-safely-shrinkable-p): Don't change the buffer-list.
-	Don't allow shrink if there's a window on our right.
-
-	* progmodes/prolog.el (prolog-program-name): Use gprolog if available.
-	(prolog-mode-syntax-table, prolog-mode-abbrev-table, prolog-mode-map):
-	Bring together declaration and initialization.
-	(prolog-mode-variables): Don't set the syntax table.
-	Don't set paragraph-start and comment-indent-function.
-	Add /*..*/ to the comment regexps.
-	(prolog-mode-commands): Remove.  Do it during init of prolog-mode-map.
-	(prolog-mode-map): Don't bind TAB.
-	(prolog-mode): Set the syntax table.
-	(prolog-comment-indent): Remove.
-	(inferior-prolog-mode-map): Initialize in the declaration.
-	(inferior-prolog-mode-syntax-table)
-	(inferior-prolog-mode-abbrev-table): New vars.
-	(inferior-prolog-mode): Derive from comint-mode.
-	(run-prolog): Avoid switch-to-buffer which can fail in dedicated and
-	minibuffer windows.
-
-	* progmodes/grep.el (grep-regexp-alist): Allow :, \t and (
-	in file names, as long as it is unambiguous.
-
-2004-02-08  Andreas Schwab  <schwab@suse.de>
-
-	* textmodes/reftex-toc.el
-	(reftex-toc-load-all-files-for-promotion): Remove useless use of
-	format.  Doc fix.
-
-	* textmodes/refer.el (refer-find-entry-internal): Remove extra
-	format string arguments.
-
-	* tar-mode.el (tar-parse-octal-integer-safe): Add missing format
-	string argument.
-
-	* progmodes/xscheme.el (verify-xscheme-buffer): Fix format strings.
-
-	* play/zone.el (zone-call): Fix format string.
-
-	* net/webjump.el (webjump-builtin): Add missing format string argument.
-
-	* midnight.el (midnight-delay-set): Remove extra format string
-	argument.
-
-	* mail/rmail.el (rmail-get-new-mail): Remove useless use of format.
-
-	* hexl.el (hexl-insert-char): Add missing format string argument.
-
-	* format.el (format-decode): Fix format string.
-
-	* emulation/vi.el (vi-mode): Remove extra format string argument.
-	(vi-repeat-last-search): Likewise.
-	(vi-reverse-last-search): Likewise.
-	(vi-goto-mark): Likewise.
-	(vi-reverse-last-find-char): Likewise.
-	(vi-repeat-last-find-char): Likewise.
-	(vi-locate-def): Likewise.
-
-	* emacs-lisp/lisp-mnt.el (lm-verify): Remove useless use of format.
-
-	* ediff-util.el (ediff-toggle-read-only): Remove extra format
-	string argument.
-	(ediff-toggle-regexp-match): Likewise.
-
-	* dired-aux.el (dired-do-query-replace-regexp): Add missing
-	format string argument.
-
-	* calc/calc-map.el (calc-get-operator): Remove extra format
-	string argument.
-
-	* calc/calc-forms.el (calc-convert-time-zones): Fix format string.
-
-	* calc/calc-ext.el (calc-do-prefix-help): Remove extra format
-	string argument.
-
-	* eshell/esh-mode.el (eshell-send-invisible): Fix format string.
-
-	* eshell/em-hist.el (eshell-hist-word-reference): Fix format string.
-
-	* emulation/viper-ex.el (ex-mark): Remove extra format string argument.
-
-	* emacs-lisp/cl-macs.el (defstruct): Remove extra format string arg.
-	(cl-struct-setf-expander): Likewise.
-
-	* 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)
-
-	* progmodes/gud.el (gud-jdb-marker-filter): Add period as optional
-	thousands separator; fixes <class>:<line-number> regexp for
-	non-english locales.
-
-2004-02-08  Andreas Schwab  <schwab@suse.de>
-
-	* view.el (view-mode-enable): Revert previous change.
-
-2004-02-07  Kim F. Storm  <storm@cua.dk>
-
-	* simple.el (line-number-at-pos): Rename from line-at-pos.
-	Uses changed (what-line and vc-annotate-warp-version).
-
-2004-02-06  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* diff-mode.el (diff-file-regexp-alist, diff-error-regexp-alist)
-	(diff-mode): Remove aborted attempt at support for compile.el.
-	(diff-mode, diff-minor-mode): Avoid obsolete write-contents-hooks.
-
-2004-02-06  Andreas Schwab  <schwab@suse.de>
-
-	* view.el (view-mode-enable): Add view-mode-map to
-	minor-mode-overriding-map-alist.
-
-2004-02-05  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* x-dnd.el (x-dnd-get-local-file-name): Fix byte compiler warning
-
-2004-02-04  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/cperl-mode.el (cperl-fill-paragraph): Call fill-paragraph
-	with point inside rather than after the paragraph.
-
-2004-02-04  Sam Steingold  <sds@gnu.org>
-
-	* mail/smtpmail.el (smtpmail-try-auth-methods):
-	Do not try authentication when no mechanism is available.
-	Pass port-name as defaultport to `netrc-machine'.
-
-2004-02-04  Stephen Eglen  <stephen@gnu.org>
-
-	* iswitchb.el (iswitchb-minibuffer-setup-hook): Update doc string
-	to show how minibuffer height can be constrained.
-
-2004-02-04  John Paul Wallington  <jpw@gnu.org>
-
-	* files.el (auto-mode-alist): Fix .scm, .stk, .ss, .sch entry.
-
-2004-02-03  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* x-dnd.el: New file for drag and drop.
-
-	* term/x-win.el: require x-dnd, set after-make-frame-functions
-	to x-dnd-init-frame, let x-dnd-handle-drag-n-drop-event handle
-	drag-n-drop event.
-
-	* dired.el (dired-dnd-test-function, dired-dnd-popup-notice)
-	(dired-dnd-do-ask-action, dired-dnd-handle-local-file)
-	(dired-dnd-handle-file): New functions for drag and drop support.
-	(dired-mode): Initialize drag and drop if x-dnd present.
-
-2004-02-02  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/cperl-mode.el (cperl-mode-map, cperl-do-auto-fill)
-	(cperl-menu): Use fill-paragraph, not cperl-fill-paragraph.
-	(cperl-mode): Set fill-paragraph-function.
-	(cperl-fill-paragraph): Make it non-interactive.
-
-2004-02-02  Benjamin Rutt  <brutt@bloomington.in.us>
-
-	* diff-mode.el (diff-mode-shared-map): Bind q to `quit-window'.
-
-2004-02-02  David Kastrup  <dak@gnu.org>
-
-	* replace.el (perform-replace): Allow 'literal argument in
-	regexp-flag to indicate literal replacement.
-	(query-replace-regexp-eval): Use it.
-
-2004-02-01  Andreas Schwab  <schwab@suse.de>
-
-	* progmodes/executable.el (executable-command-find-posix-p): Doc fix.
-
-2004-02-01  Stephen Eglen  <stephen@gnu.org>
-
-	* info-look.el: Add support for maxima-mode.  Update commentary
-	because info-lookup-symbol is now bound to C-h S.
-
-2004-01-31  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* simple.el (edit-and-eval-command): Bind print-level and
-	minibuffer-history-sexp-flag around call to read-from-minibuffer.
-	Correct initial position in command-history.
-
-2004-01-30  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* files.el (read-directory-name): Adapt the docstring to recent
-	change in Fread_file_name.
-
-2004-01-30  Jonathan Yavner  <jyavner@member.fsf.org>
-
-	* ses.el (ses-print-cell): If print format too wide for column
-	width, truncate decimal places if that helps to avoid "#####" fill.
-	* ses.el (ses-initial-column-width): Revert previous change.
-
-2004-01-29  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* jit-lock.el (jit-lock-context-time, jit-lock-context-timer): New var.
-	(with-buffer-unmodified, with-buffer-prepared-for-jit-lock):
-	Add edebug info.
-	(jit-lock-mode): Setup/cancel the new timer.
-	(jit-lock-context-fontify): New fun.  Extracted from
-	context fontification code of jit-lock-stealth-fontify.
-	(jit-lock-stealth-fontify): Don't do context fontification any more.
-
-	* jit-lock.el (jit-lock-stealth-fontify): Allow quit.
-	(jit-lock-fontify-now): Handle the `quit' case.
-	(jit-lock-contextually): Rename from jit-lock-defer-contextually.
-
-2004-01-29  Jari Aalto  <jari.aalto@poboxes.com>
-
-	* progmodes/executable.el (executable-command-find-posix-p):
-	New.  Check if find handles arguments Posix-style.
-
-	* progmodes/grep.el (grep-compute-defaults):
-	Use executable-command-find-posix-p.
-	(grep-find): Check `grep-find-command'.
-
-	* filecache.el (file-cache-find-posix-p): Delete.
-	(file-cache-add-directory-using-find):
-	Use `executable-command-find-posix-p'.
-
-2004-01-29  Dave Love  <fx@gnu.org>
-
-	* emacs-lisp/lisp.el (beginning-of-defun-raw, end-of-defun):
-	Iterate the hook function if arg is given.
-	(mark-defun, narrow-to-defun): Change order of finding the limits.
-
-	* emacs-lisp/bytecomp.el (byte-compile-compatibility): Doc fix.
-	(byte-compile-format-warn): New.
-	(byte-compile-callargs-warn): Use it.
-	(Format, message, error): Add byte-compile-format-like property.
-	(byte-compile-maybe-guarded): New.
-	(byte-compile-if, byte-compile-cond): Use it.
-	(byte-compile-lambda): Compile interactive forms,
-	just to make warnings about them.
-
-2004-01-29  Jonathan Yavner  <jyavner@member.fsf.org>
-
-	* ses.el (ses-initial-column-width): Increase to 14, so it will
-	work well with the default printer of "%.7g" for extreme values
-	like "-1.234567e+07".
-
-2004-01-29  Kenichi Handa  <handa@m17n.org>
-
-	* term/x-win.el (x-selection-value): Optimize for ASCII only case.
-
-2004-01-28  Peter 'Luna' Runestig  <peter@runestig.com>
-
-	* dos-w32.el: Added support for the `default-printer-name' function.
-
-2004-01-27  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* server.el (server-socket-name): Don't use the hostname in the
-	socket name since /tmp is local to the host anyway.
-
-	* emacs-lisp/easy-mmode.el (easy-mmode-define-navigation): Use a more
-	robust check of widening and fix var-naming.
-
-2004-01-27  Eli Tziperman  <eli@deas.harvard.edu>
-
-	* rmail-spam-filter.el: Change rmail-spam-filter- or spam-filter-
-	or rmail-spam- to rsf- in all function and variable names.
-	(rsf-min-region-to-spam-list): New variable.
-	(rsf-bbdb-auto-delete-spam-entries): Rename from
-	rmail-bbdb-auto-delete-spam-bbdb-entries.  The cc: field is
-	scanned together with the recipients field for spam testing; Don't
-	delete spam message if rmail-delete-after-output is non-nil;
-	(rsf-check-field): New function, extracted from code in
-	rmail-spam-filter to ease addition of header fields like
-	content-type:;
-	(message-content-type): New variable.  The content-type: field was
-	added also in defcustom of rsf-definitions-alist;
-	(rmail-spam-filter): Replace repeated test code for header fields
-	by calls to check-field; change the call to
-	rmail-output-to-rmail-file such that rmail-current-message stays
-	the same to avoid wrong deletion of unseen flags.
-	(rmail-use-spam-filter): Add autoload cookie.
-
-2004-01-27  Jari Aalto  <jari.aalto@poboxes.com>
-
-	* filecache.el (file-cache-find-posix-p): New function.  Detect Cygwin.
-	(file-cache-add-directory-using-find): Add Cygwin support.
-	(file-cache-find-command-posix-flag): New user variable.
-
-	* filecache.el (file-cache-add-directory): Check for
-	directories an remove them from dir-files.
-
-2004-01-27  Richard M. Stallman  <rms@gnu.org>
-
-	* man.el (Man-fontify-manpage): Clean up message.
-
-2004-01-27  Kenichi Handa  <handa@m17n.org>
-
-	* textmodes/paragraphs.el (sentence-end-without-space): New variable.
-	(sentence-end): Define using sentence-end-without-space.
-
-	* textmodes/fill.el (fill-delete-newlines): Don't add a space if
-	a sentence ends with one of a character in sentence-end-without-space.
-
-2004-01-26  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* font-lock.el (font-lock): Add jit-lock as explicit group member.
-	(jit-lock): Group declaration moved to jit-lock.el.
-	(toplevel): Don't explicitly require jit-lock, since it's autoloaded
-	when necessary.
-
-	* jit-lock.el (jit-lock): Move group declaration from font-lock.el.
-	(jit-lock-context-unfontify-pos): Rename from
-	jit-lock-first-unfontify-pos.
-	(jit-lock-defer-buffers): Rename from jit-lock-buffers.
-
-2004-01-25  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* progmodes/fortran.el (fortran-break-before-delimiters): Doc fix.
-	(fortran-break-delimiters-re, fortran-no-break-re): New consts.
-	(fortran-fill): When filling a string, adjust re-search-backward
-	argument for special case of string just on fill-column.
-	When filling non-string, allow one extra char if
-	fortran-break-before-delimiters is non-nil.
-	Suggested by Michael Hagemann <michael.hagemann@unibas.ch>.
-	Use fortran-break-delimiters-re and fortran-no-break-re to
-	correctly handle cases such as "**".
-
-	* progmodes/f90.el (f90-break-delimiters): Doc fix.
-	(f90-no-break-re): Add some extra tokens.  Doc fix.
-
-2004-01-24  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* mail/rmail-spam-filter.el:
-	Use two semicolons as Commentary line prefix.
-	Add ";;; Code:" stylized comment.
-	Delete end-of-line whitespace.
-	Wrap (require 'cl) with `eval-when-compile'.
-
-2004-01-23  Benjamin Rutt  <brutt@bloomington.in.us>
-
-	* vc.el (vc-annotate): Fix improper use of `make-local-variable'
-	at the top level of vc.el.
-
-2004-01-23  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc.el (vc-current-line): Function removed.  This is now done by
-	the new function line-at-pos in simple.el.
-	(vc-annotate-warp-version): Use line-at-pos instead of
-	vc-current-line.
-
-2004-01-22  Kim F. Storm  <storm@cua.dk>
-
-	* simple.el (line-at-pos): New defun.
-	(what-line): Use it.  Optimize by only counting lines in narrowed
-	region once.
-
-2004-01-22  Kenichi Handa  <handa@m17n.org>
-
-	* language/cyrillic.el (ccl-encode-windows-1251-font): Rearrange code
-	point (register r1) only for charset mule-unicode-0100-24ff.
-
-2004-01-21  Markus Rost  <rost@mathematik.uni-bielefeld.de>
-
-	* mail/rmail.el (rmail-convert-to-babyl-format): Avoid deleting
-	trailing white space and ensure a final newline.
-
-	* mail/rmail-spam-filter.el (rmail-use-spam-filter):
-	Add autoload cookie.
-
-2004-01-21  Benjamin Rutt  <brutt@bloomington.in.us>
-
-	* vc.el (vc-annotate-mode): Inherit from fundamental-mode and
-	activate view-mode explicitly.
-
-2004-01-21  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* term/x-win.el (x-clipboard-yank, menu-bar-edit-menu): Call
-	menu-bar-enable-clipboard and make Paste use clipboard first.
-
-2004-01-20  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* vc-mcvs.el (vc-mcvs-mode-line-string): Remove.  Does not work.
-	(vc-mcvs-workfile-version): Manually macro expand vc-mcvs-cvs.
-	(vc-mcvs-cvs): Remove.
-	(vc-mcvs-command): Remove use of assert.
-
-	* outline.el (outline-insert-heading): Tighten up match.
-	(outline-demote, outline-move-subtree-down): Don't assume anything
-	about outline-regexp.
-
-	* textmodes/texinfo.el (texinfo-mode): Remove ^ from outline-regexp.
-	(texinfo-show-structure): Explicitly add ^, and simplify.
-
-2004-01-20  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/appt.el (appt-check): Restore usage of
-	appt-issue-message deleted in previous change.
-	(top-level): Activate package when loaded (needed for backwards
-	compatibility).
-
-2004-01-20  Jesper Harder  <harder@ifa.au.dk>
-
-	* mail/smtpmail.el (smtpmail-via-smtp): No need to add two bytes
-	following previous change to smtpmail-send-data.
-
-2004-01-20  Benjamin Rutt  <brutt@bloomington.in.us>
-
-	* vc.el (vc-default-previous-version): Doc enhancement.
-	(vc-default-next-version): New function.
-	(vc-print-log): New arg FOCUS-REV.
-	(vc-annotate-mode): Derive from view-mode.
-	(vc-annotate): New args REVISION, DISPLAY-MODE.
-	(vc-annotate-workfile-version, vc-annotate-extract-revision-at-line)
-	(vc-annotate-revision-at-line, vc-annotate-revision-previous-to-line)
-	(vc-annotate-show-log-revision-at-line, vc-annotate-warp-version)
-	(vc-annotate-show-diff-revision-at-line, vc-current-line)
-	(vc-annotate-prev-version, vc-annotate-next-version): New functions.
-
-	* vc-cvs.el (vc-cvs-annotate-extract-revision-at-line): New function.
-
-2004-01-19  Karl Berry  <karl@gnu.org>
-
-	* textmodes/texinfo.el: Use "Texinfo" consistently, no "TeXinfo"
-	or "TexInfo".
-
-2004-01-19  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* subr.el (delete-dups): New function.
-
-2004-01-19  Karl Berry  <karl@gnu.org>
-
-	* textmodes/texinfo.el (texinfo-mode): Define outline-regexp to start
-	with ^, since that's what texinfo-show-structure
-	documentation says (plus it works much better in texinfo.txi).
-
-2004-01-18  Jesper Harder  <harder@ifa.au.dk>
-
-	* mail/smtpmail.el (smtpmail-send-data): Don't append spurious newline.
-
-2004-01-18  David Ponce  <david@dponce.com>  (tiny change)
-
-	* progmodes/which-func.el (which-function-mode): Don't cancel
-	which-func-update-timer if not set.
-
-2004-01-17  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* calendar/diary-lib.el (diary-entry-time): Fix typo/bug:
-	Remove spurious left square bracket in XX:XXam regexp.
-
-2004-01-16  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* progmodes/cc-defs.el: Do not require cl at run time.
-
-2004-01-16  Richard M. Stallman  <rms@gnu.org>
-
-	* emacs-lisp/cl.el (cl-cannot-unload): New function.
-	(cl-unload-hook): Defvar this to run cl-cannot-unload.
-
-	* mail/rmail.el (rmail-get-new-mail): New local rsf-number-of-spam.
-	Call rmail-spam-filter.  Delete and expunge spam.
-	Print number of spam messages deleted.
-	Save and restore the deletion status of old messages when reading
-	new mail with spam filter, so that expunging spam does not expunge
-	msgs deleted by the user.
-	(rmail-only-expunge): Add an optional argument dont-show to
-	prevent showing message after expunge.
-
-2004-01-15  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* emacs-lisp/cl.el (declare): Add `fmakunbound' for `declare'.
-	* subr.el (declare): New macro.
-
-2004-01-15  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* progmodes/scheme.el (scheme-font-lock-keywords-2): Add "force".
-
-2004-01-14  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* mwheel.el (mouse-wheel-down-event, mouse-wheel-up-event):
-	Test window-system rather than system-type (for X11/Mac).
-
-2004-01-12  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* emacs-lisp/bytecomp.el (compile-defun): Doc fix.
-
-2004-01-12  Richard M. Stallman  <rms@gnu.org>
-
-	* mail/rmail.el (rmail-convert-to-babyl-format):
-	Use mail-unquote-printable-region.
-	(rmail-hex-string-to-integer, rmail-decode-quoted-printable):
-	(rmail-hex-char-to-integer): Functions deleted.
-
-	* mail/mail-utils.el (mail-unquote-printable-hexdigit): Upcase CHAR.
-	(mail-unquote-printable-region): New arg NOERROR.
-	For invalid encoding, either signal an error to just return nil.
-
-2004-01-11  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/appt.el: Update copyright and commentary.
-	(appt-issue-message): Make obsolete.
-	(appt-visible, appt-msg-window): Make obsolete, in favor of
-	appt-display-format.
-	(appt-display-mode-line, appt-display-duration)
-	(appt-display-diary, appt-time-msg-list, appt-mode-string)
-	(appt-prev-comp-time, appt-display-count, appt-timer)
-	(appt-convert-time): Doc change.
-	(appt-disp-window-function, appt-delete-window-function):
-	Use defcustom rather than defvar.
-	(appt-display-format): New variable.
-	(appt-display-message): New function with display code from appt-check.
-	(appt-check): Add optional FORCE argument.  Doc change.
-	Add appt-make-list to diary-hook if displaying diary.
-	Remove checking of view-diary-entries-initially.
-	Message display section removed to new function appt-display-message.
-	(appt-display-window): Doc change.  Remove unused internal var
-	this-buffer.  Do not beep, since appt-display-message does that.
-	(appt-make-list): Doc change.  Use caar.
-	(appt-sort-list): Simplify by using builtin sort function.
-	(appt-update-list): New function for updating appts when diary is
-	saved.
-	(appt-activate): New autoloaded function to toggle package
-	functionality.
-
-	* calendar/cal-x.el: (calendar-one-frame-setup)
-	(calendar-only-one-frame-setup, calendar-two-frame-setup): Doc change.
-
-	* calendar/calendar.el: Update copyright.
-	(view-diary-entries-initially, european-calendar-style): Doc change.
-	(calendar-setup): Make defcustom rather than defvar.
-	(mark-visible-calendar-date): Initialize temp-face and faceinfo
-	in let binding so local to function.
-
-	* calendar/diary-lib.el: Update copyright.
-	(diary, diary-entry-time): Doc change.
-	(list-diary-entries): Doc change.  Trivial logic change.
-	(fancy-diary-display): Restore make-face command mistakenly
-	deleted 2003-05-08.
-	(show-all-diary-entries): Allow to pop-up frame if needed.
-
-2004-01-09  John Paul Wallington  <jpw@gnu.org>
-
-	* bindings.el (mode-line-change-eol): Add EVENT parameter.
-	Temporarily select EVENT's window for changing eol type.
-
-2004-01-09  Deepak Goel  <deego@gnufans.org>
-
-	* calendar/diary-lib.el (diary-entry-time):
-	Also accept time in the form XX[.XX][am/pm/AM/PM].
-	(fancy-diary-font-lock-keywords): Likewise.
-	(diary-font-lock-keywords): Likewise.
-	* calendar/appt.el (appt-add): Likewise.
-	(appt-make-list): Likewise.
-	(appt-convert-time): Likewise.
-
-2004-01-08  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gdb-ann3): Revert previous change.
-	(gdb-source-info): Allow for case of where compilation directory
-	is not recorded.
-
-2004-01-08  John Paul Wallington  <jpw@gnu.org>
-
-	* emerge.el (emerge-restore-buffer-characteristics): Doc fix.
-
-2004-01-07  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gud.el (gdb-first-prompt): Rename from gdb-first-pre-prompt
-
-	* gdb-ui.el (gdba): Avoid duplication, use gdb-ann3.
-	(gdb-ann3): Use GDB command "set width 0" to prevent word wrapping
-	problems.
-	(gdb-prompt): Set (renamed) gdb-first-prompt to nil in gdb-ann3.
-
-2004-01-07  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* files.el (write-file-functions, write-contents-functions):
-	Clarify docstrings.
-
-2004-01-07  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule.el (set-auto-coding): Fix for the case that
-	end-of-line is only CR.
-
-2004-01-07  Kim F. Storm  <storm@cua.dk>
-
-	* subr.el (event-start, event-end): Doc fix.
-	(posn-string, posn-image): New defuns.
-	(posn-object): Return either image or string object.
-	(posn-object-x-y): Return 8th element of position.
-	(posn-object-width-height): New defun.
-
-2004-01-06  Andreas Schwab  <schwab@suse.de>
-
-	* gdb-ui.el (gdb-frame-handler): Handle word wrapping anywhere in
-	output.
-
-2004-01-05  Karl Berry  <karl@gnu.org>
-
-	* emacs-lisp/copyright.el (copyright-regexp): Might as well allow
-	/ and *, too.
-
-2003-12-31  Simon Josefsson  <jas@extundo.com>
-
-	* files.el (before-save-hook): Add.
-	(basic-save-buffer): Use before-save-hook.
-
-	* emacs-lisp/copyright.el: Fix comment to recommend
-	before-save-hook instead of write-file-functions.
-
-2004-01-05  Richard M. Stallman  <rms@gnu.org>
-
-	* finder.el (finder-commentary): Call delete-other-windows.
-
-	* net/ange-ftp.el (ange-ftp-file-attributes):
-	Pass 2 args to ange-ftp-real-file-attributes only if ID-FORMAT non-nil.
-
-2004-01-04  Karl Berry  <karl@gnu.org>
-
-	* emacs-lisp/copyright.el (copyright-regexp): Allow the common
-	comment characters % and # in the copyright year notice,
-	as well as ;.
-
-2004-01-04  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* wid-edit.el (default): Define dummy :value-delete.
-	Reported by Jesper Harder <harder@ifa.au.dk>.
-
-2004-01-03  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/compile.el (compile-internal): Use point, not point-min,
-	for set-window-point.
-
-	* textmodes/tex-mode.el (latex-find-indent): Avoid error at end of buf.
-
-	* emacs-lisp/lisp-mnt.el (lm-section-end): Require outline.
-
-	* progmodes/grep.el (grep-mode-map):
-	Don't remap next-line, previous-line.
-
-2004-01-03  Eric M. Ludlam  <eric@siege-engine.com>
-
-	* speedbar.el (speedbar-edit-line): Change regexp to position
-	the cursor on the first character of this line's button.
-
-2004-01-03  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* subr.el (functionp): Doc fix.
-
-2004-01-03  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
-
-	* progmodes/idlwave.el (idlwave-make-tags):
-	* textmodes/flyspell.el (flyspell-large-region):.
-	* progmodes/make-mode.el (makefile-query-by-make-minus-q):
-	* emulation/viper-util.el (viper-glob-unix-files):
-	* emacs-lisp/shadow.el (shadow-same-file-or-nonexistent):
-	* man.el (Man-init-defvars):
-	* jka-compr.el (jka-compr-call-process):
-	* files.el (get-free-disk-space,insert-directory):
-	* ediff-ptch.el (ediff-test-patch-utility):
-	* ediff-diff.el (ediff-test-utility):
-	* dired-aux.el (dired-check-process):
-	* mail/sendmail.el (sendmail-send-it): Don't use = or zerop to
-	test the return value of call-process, because it can be a string.
-
-2003-12-31  John Paul Wallington  <jpw@gnu.org>
-
-	* bindings.el (completion-ignored-extensions): Add .pfsl.
-
-2003-12-31  Kim F. Storm  <storm@cua.dk>
-
-	* ido.el (ido-nonreadable-directory-p): New defun to check for
-	nonreadable directory without activating tramp (to avoid problems
-	with checking incomplete tramp paths).
-	(ido-set-current-directory, ido-file-internal)
-	(ido-file-name-all-completions1): Use it.
-
-2003-12-30  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* help-mode.el (help-xref-info-regexp): Make hyperlinks to Info
-	documentation if the anchor (or node) name is preceded by `info
-	anchor' or `Info anchor' in addition to earlier `info node' and
-	`Info node'.
-	(help-make-xrefs): Adapt to new value of `help-xref-info-regexp'.
-
-2003-12-30  Eli Zaretskii  <eliz@gnu.org>
-
-	* mail/rmail.el (rmail-convert-to-babyl-format): Fix off-by-one
-	error in arguments to base64-decode-region.  Remove ^M characters
-	after decoding base64.
-
-2003-12-30  Simon Josefsson  <jas@extundo.com>
-
-	* textmodes/texinfo.el: Change maintainer to FSF.  Suggested by
-	karl@freefriends.org (Karl Berry), since the Texinfo Elisp files
-	have only been distributed with Emacs for some years.
-	(texinfo-mode-hook): Customize.
-
-2003-12-30  Eli Zaretskii  <eliz@gnu.org>
-
-	* mail/rmail.el (rmail-convert-to-babyl-format): Make the code
-	cleaner (suggested by Richard Stallman).
-
-	* progmodes/gud.el (gud-tool-bar-map): Modify names of icon files
-	for gud-next, gud-nexti, gud-step and gud-stepi to prevent
-	file-name clashes on 8+3 DOS filesystems.
-
-	* toolbar/gud-next.pbm, toolbar/gud-next.xpm
-	* toolbar/gud-nexti.pbm, toolbar/gud-nexti.xpm
-	* toolbar/gud-step.pbm, toolbar/gud-step.xpm
-	* toolbar/gud-stepi.pbm, toolbar/gud-stepi.xpm: Renamed to
-	gud-n.*, gud-ni.*, gud-s.*, and gud-si.*, respectively, to avoid
-	file-name clashes on 8+3 filesystems.
-
-	* emacs-lisp/tcover-unsafep.el, emacs-lisp/tcover-ses.el:
-	Renamed from testcover-unsafep.el and testcover-ses.el to avoid
-	file-name clashes on 8+3 DOS filesystems.
-
-2003-12-29  Richard M. Stallman  <rms@gnu.org>
-
-	* mail/mail-utils.el (mail-unquote-printable-hexdigit):
-	Upcase the character.
-
-	* textmodes/flyspell.el (mail-mode-flyspell-verify):
-	Search for header separator alone on a line, literally,
-	and search for it backward, not forward.
-	(flyspell-abbrev-table): Always use global-abbrev-table
-	if there is no local one.
-
-	* progmodes/sh-script.el (sh-get-indent-info):
-	Don't move point back if at bob.
-
-	* progmodes/antlr-mode.el (save-buffer-state-x): Use with-no-warnings.
-
-	* play/handwrite.el (handwrite): Make the handwrite credit message
-	a comment rather than an output command.
-
-	* obsolete/sc.el: Display message that this file is obsolete.
-
-	* net/ange-ftp.el (ange-ftp-start-process): Copy the environment.
-
-	* mail/rfc822.el (rfc822-address-start): Declare variable.
-	Renamed from address-start.  All uses changed.
-
-	* term.el (term-exec): Set up sentinel.
-	(term-sentinel): New function.
-	(term-handle-exit): New function.
-
-	* subr.el (assoc-ignore-case, assoc-ignore-representation):
-	Use assoc-string, and mark them obsolete.
-	(delay-mode-hooks): Mark as permanent local.
-
-	* simple.el (sendmail-user-agent-compose): Use assoc-string.
-
-	* register.el (copy-rectangle-to-register): Doc fix.
-
-	* info.el (Info-insert-dir): Use assoc-string.
-
-	* info-look.el (info-lookup): Use assoc-string.
-
-	* frame.el (pop-up-frame-function): Use quote, not `function'.
-	(frame-notice-user-settings): Calculate ADJUSTED-TOP
-	copying with lists as coordinate values.
-
-	* font-lock.el (font-lock-after-change-function): Bind inhibit-quit.
-
-	* find-dired.el (kill-find): New command.
-	(find-dired): Make buffer read-only.
-	Set up a keymap with C-c C-k running kill-find.
-	(find-dired-filter, find-dired-sentinel): Bind inhibit-read-only.
-
-	* files.el (backup-buffer-copy): If MODES is nil, don't set modes.
-
-	* filecache.el (file-cache-ignore-case): New variable.
-	(file-cache-assoc-function): Var deleted.  Use assoc-string instead.
-
-	* comint.el (comint-arguments): Set COUNT after ARGS is complete.
-	(comint-dynamic-complete-as-filename): Rename local vars.
-	(comint-dynamic-list-filename-completions): Likewise.
-
-	* comint.el (comint-dynamic-list-completions-config): New var.
-	(comint-dynamic-list-completions): Handle both SPC and TAB right.
-
-	* comint.el (comint-file-name-chars): Add [].
-	(comint-word): Use skip-chars-backward, not search.
-
-	* shell.el (shell-file-name-chars): Add [].
-
-	* shell.el (shell-dynamic-complete-as-command): Rename local vars.
-
-	* bookmark.el (bookmark-get-bookmark): Use assoc-string.
-
-	* generic.el (define-generic-mode): Doc fix.
-
-2003-12-29  Eli Zaretskii  <eliz@gnu.org>
-
-	* files.el (kill-some-buffers): Doc fix.
-
-2003-12-29  David Herring  <sdh6@ra.msstate.edu>  (tiny change)
-
-	* comint.el (comint-watch-for-password-prompt): Pass `string' as
-	arg to send-invisible
-	(send-invisible): Doc fix.  The argument is now a prompt, not the
-	string to send.
-	(comint-read-noecho): Doc fix.
-
-2003-12-29  Michael R. Wolf  <MichaelRWolf@att.net>  (tiny change)
-
-	* net/ange-ftp.el (ange-ftp-name-format): Allow USER to contain
-	"@", as required by some ISP hosting service.  Fix defcustom
-	argument syntax errors that prevented use of customization.
-
-2003-12-29  Eli Zaretskii  <eliz@gnu.org>
-
-	* xml.el (xml-get-attribute-or-nil): Doc fix.
-
-2003-12-29  Peter 'Luna' Runestig  <peter@runestig.com>
-
-	* net/zone-mode.el (zone-mode): Use write-file-functions, not
-	write-file-hooks.
-
-2003-12-29  Eric Hanchrow  <offby1@blarg.net>  (tiny change)
-
-	* autorevert.el (auto-revert-interval): Doc fix.
-
-2003-12-29  Mark A. Hershberger  <mah@everybody.org>
-
-	* xml.el (xml-get-attribute-or-nil): New function, like
-	xml-get-attribute, but returns nil if the attribute was not found.
-	(xml-get-attribute): Convert to defsubst, uses
-	xml-get-attribute-or-nil.
-
-2003-12-29  Eli Zaretskii  <eliz@gnu.org>
-
-	* emacs-lisp/easymenu.el (easy-menu-define): Doc fix.
-
-2003-12-29  Alex Schroeder  <alex@emacswiki.org>  (tiny change)
-
-	* custom.el (custom-declare-theme): Use `value' when putting
-	properties on `theme'.
-
-2003-12-29  Takaaki Ota  <Takaaki.Ota@am.sony.com>
-
-	* subr.el (insert-for-yank): Call insert-for-yank-1 repetitively
-	for each yank-handler segment.
-	(insert-for-yank-1): New function, with the body of the previous
-	insert-for-yank.
-
-	* textmodes/table.el (table-yank-handler): New defcustom.
-	(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)
-
-	* generic-x.el (etc-modules-conf-generic-mode): A more complete
-	set of keywords.
-
-2003-12-29  Eli Zaretskii  <eliz@gnu.org>
-
-	* international/mule-cmds.el (reset-language-environment)
-	(set-language-environment): Don't invoke fontset-related functions
-	if fontset-list is not fboundp.
-
-2003-12-29  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule-cmds.el (reset-language-environment):
-	Call set-overriding-fontspec-internal with nil.
-	(set-language-environment): Call set-overriding-fontspec-internal
-	if the language environment specify `overriding-fontspec'.
-	(language-info-alist): Doc added.
-
-	* language/cyrillic.el (ccl-encode-koi8-font): Make it work for
-	characters of mule-unicode-0100-24ff.
-	(ccl-encode-windows-1251-font): New CCL program.
-	("Bulgarian"): Specify overriding-fontspec.
-	("Belarusian"): Likewise.
-
-2003-12-28  Sam Steingold  <sds@gnu.org>
-
-	* net/ange-ftp.el (ange-ftp-file-attributes): Add new optional
-	parameter ID-FORMAT to conform with the 2003-11-30 patch.
-
-2003-12-28  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gud.el (gud-gdb-command-name): Set default to
-	"gdb --annotate=3".
-	(gud-gdb-marker-filter): Look out for annotations.
-	(gdb-first-pre-prompt): New variable.
-	Remove trailing white space.
-
-	* gdb-ui.el (gdb-prompt): Change filter for level 3 annotations,
-	if necessary.
-	(gdb-ann3): New function.  Initialize M-x gdb as for M-x gdba if
-	annotations are detected.
-	(gud-gdba-marker-filter): Use global variable gud-marker-acc
-	instead of a local one to allow transition from
-	gud-gdb-marker-filter.
-	Remove trailing white space.
-
-2003-12-27  Kim F. Storm  <storm@cua.dk>
-
-	* ido.el: Handle non-readable directories.
-	(ido-decorations): Add 9th element for non-readable directory.
-	(ido-directory-nonreadable): New dynamic var.
-	(ido-set-current-directory): Set it.
-	(ido-read-buffer, ido-file-internal):
-	(ido-read-file-name, ido-read-directory-name): Let-bind it.
-	(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-read-file-name, ido-file-internal, ido-read-directory-name):
-	Use it.
-
-2003-12-27  Lars Hansen  <larsh@math.ku.dk>
-
-	* ls-lisp.el (ls-lisp-insert-directory): Add parameter 'string in
-	calls to directory-files-and-attributes and file-attributes.
-	(ls-lisp-format): Remove system dependent handling of user and
-	group id's.
-
-2003-12-25  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* ffap.el (ffap-read-file-or-url): Revert previous change.
-
-2003-12-25  Robert J. Chassell  <bob@rattlesnake.com>
-
-	* textmodes/texnfo-upd.el (texinfo-multi-file-update): Create a
-	new list of included files called `files-with-node-lines', that
-	only have node lines.  This way @include commands can include any
-	file, such as version and update files without node lines, not
-	just files that are chapters.
-
-2003-12-25  Andreas Schwab  <schwab@suse.de>
-
-	* jka-compr.el (jka-compr-insert-file-contents): Avoid error when
-	file not found.
-
-2003-12-08  Miles Bader  <miles@gnu.org>
-
-	* dired.el (dired-between-files): Always use dired-move-to-filename,
-	which is more robust in non-english locales.
-
-2003-12-25  Markus Rost  <rost@mathematik.uni-bielefeld.de>
-
-	* vc.el (vc-dired-purge): Avoid error from `kill-line'.
-
-2003-12-24  Andreas Schwab  <schwab@suse.de>
-
-	* shell.el (shell-file-name-quote-list): Add backslash.
-
-	* comint.el (comint-quote-filename): Correctly handle backslash
-	in comint-file-name-quote-list.
-
-2003-12-24  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule-cmds.el (set-default-coding-systems):
-	Call ucs-set-table-for-input for all buffers that don't have local
-	value of buffer-file-coding-system.
-
-	* international/ucs-tables.el (ucs-set-table-for-input):
-	If translation-table-for-encode is a symbol, get its
-	translation-table property.
-
-2003-12-23  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* ffap.el (ffap-read-file-or-url): Eliminate reliance of the call
-	to `completing-read' on a recently fixed bug.
-
-	* fringe.el (fringe-query-style): Suggest `?' in minibuffer prompt,
-	instead of SPACE, to get the list of possible fringe modes.
-	SPACE only works if both `partial-completion-mode' and
-	`completion-auto-help' are nil.
-
-	* complete.el (PC-is-complete-p): Delete.
-	(PC-do-completion): Replace all calls to `PC-is-complete-p' with
-	calls to `test-completion'.
-
-2003-12-23  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gud.el (gud-speedbar-buttons): Use speed-bar-edit-line
-	to edit values when there are no children.
-
-	* gdb-ui.el (gdba, gdb-assembler-mode): Call the mode "Machine" as
-	a mode called "Assembler" already exists.
-	(gdb-use-colon-colon-notation, gdb-show-changed-values): New options.
-	(gud-watch): Use format option.  Remove font properties from string.
-	(gdb-var-create-handler, gdb-var-list-children-handler):
-	Don't bother about properties as there are none.
-	(gdb-var-create-handler, gdb-var-list-children-handler)
-	(gdb-var-update-handler): Call gdb-var-evaluate-expression-handler
-	with two arguments.
-	(gdb-var-evaluate-expression-handler, gdb-post-prompt):
-	Let speedbar show value changes with a different font.
-	(gdb-edit-value): New defun.
-	(gdb-clear-partial-output, gdb-clear-inferior-io)
-	(def-gdb-auto-update-handler): Use erase-buffer.
-	(gdb-frame-handler): Display watch expressions in
-	FUNCTION::VARIABLE format if required.
-
-2003-12-23  John Paul Wallington  <jpw@gnu.org>
-
-	* info.el (Info-unescape-quotes, Info-split-parameter-string)
-	(Info-goto-emacs-command-node): Doc fixes.
-
-2003-12-12  Jesper Harder  <harder@ifa.au.dk>
-
-	* cus-edit.el (custom-add-parent-links): Define "many".
-
-2003-12-08  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* wid-edit.el (widget-child-value-get, widget-child-value-inline)
-	(widget-child-validate, widget-type-value-create)
-	(widget-type-default-get, widget-type-match): New functions.
-	(lazy): New widget.
-	(menu-choice, checklist, radio-button-choice, editable-list)
-	(group, documentation-string): Remove redundant (per 2003-10-25
-	change) calls to `widget-children-value-delete'.
-	(widget-choice-value-get, widget-choice-value-inline): Remove.
-	(menu-choice): Update widget.
-
-2003-12-03  Kenichi Handa  <handa@m17n.org>
-
-	* language/cyrillic.el: Register "microsoft-cp1251" in
-	ctext-non-standard-encodings-alist.
-	("Bulgarian"): Add ctext-non-standard-encodings.
-	("Belarusian"): Likewise.
-
-	* international/mule-conf.el (compound-text-with-extensions):
-	Change the type to 2 (iso-2022 base).
-
-	* international/mule.el (ctext-non-standard-encodings-alist):
-	Change the format.
-	(ctext-non-standard-encodings): New variable.
-	(ctext-post-read-conversion): Fully re-written.
-	(ctext-non-standard-designations-alist): Delete it.
-	(ctext-non-standard-encodings-table): New function.
-	(ctext-pre-write-conversion): Fully re-written.
-
-2003-11-30  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* cus-edit.el (custom-add-parent-links): Add documentation links
-	for parent, if the item has none of its own.
-
-2003-11-30  Richard M. Stallman  <rms@gnu.org>
-
-	* dired-aux.el (dired-do-query-replace-regexp):
-	Report files visited read-only.
-
-2003-11-30  Juri Linkov  <juri@jurta.org>
-
-	* dired-aux.el (dired-compare-directories): New command.
-	(dired-file-set-difference, dired-files-attributes): New functions.
-
-2003-11-30  Kai Grossjohann  <kai.grossjohann@gmx.net>
-	Version 2.0.38 of Tramp released.
-
-	* net/tramp.el (tramp-chunksize): Extend docstring.  Suggested by
-	Charles Curley <charlescurley@charlescurley.com>.
-	(tramp-multi-connection-function-alist): Add ssht entry which adds
-	"-e none -t -t" to the list of ssh args.  Suggested by Adrian
-	Aichner.
-	(tramp-get-method-parameter): New function to retrieve a method
-	parameter.  This allows for omission of method parameters.
-	Callers adjusted.
-
-2003-11-30  Michael Albinus  <Michael.Albinus@alcatel.de>
-
-	* net/tramp.el: Add new optional parameter ID-FORMAT to
-	`file-attributes'.  Calls of `file-attributes' won't use this
-	parameter for backward compatibility reasons.
-	(tramp-perl-file-attributes): Add a new parameter to Perl script
-	in order to handle uid/gid as strings, if desired.
-	(tramp-handle-file-truename, tramp-handle-file-symlink-p):
-	Apply `file-attributes' instead of `tramp-handle-file-attributes' in
-	order to make the function more general.
-	(tramp-handle-file-attributes): Replace proprietary optional
-	parameter NONNUMERIC by the recently (Emacs 22.1) introduced ID-FORMAT.
-	(tramp-handle-file-attributes-with-perl): Handle parameter
-	NONNUMERIC if set.  This wasn't done in the past.
-	(tramp-post-connection): Apply second parameter "$2" if
-	`tramp-remote-perl' is called.
-
-	* net/tramp-smb.el (tramp-smb-handle-delete-file):
-	Correct cut'n'waste error (`filename' instead of `directory').
-	(tramp-smb-handle-directory-files-and-attributes)
-	(tramp-smb-handle-file-attributes): Add recently (Emacs 22.1)
-	introduced parameter ID-FORMAT.
-	(tramp-smb-handle-make-directory-internal): Correct cut'n'waste
-	error (`directory' instead of `ldir').
-
-	* net/tramp-vc.el (tramp-handle-vc-user-login-name): Check if
-	`file-attributes' has a second parameter.  If yes, apply it with
-	value "'integer".  Otherwise, don't use that parameter (default is
-	integer format).
-
-2003-11-30  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* help.el (help-map): Bind `display-local-help' to `C-h .'.
-	(help-for-help): Add `C-h .' to the listed Help options.
-	Remove trailing whitespace.
-
-	* help-at-pt.el: New file.
-
-2003-11-30  Jonathan Yavner  <jyavner@member.fsf.org>
-
-	* subr.el (noreturn, 1value): New macros for test coverage.
-	See `testcover.el'.
-
-	* emacs-lisp/edebug.el: Add def-edebug-spec for `noreturn' and
-	`1value'.
-
-	* emacs-lisp/testcover.el (testcover-reinstrument): Special case
-	for macro `1value'.
-	(testcover-1value): New function.  Checks that a 1value form
-	actually returns only one value.  Requested by RMS.
-
-2003-11-29  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gud-watch, gdb-var-create-handler)
-	(gdb-var-list-children, gdb-var-list-children-handler)
-	(gdb-var-update-handler, gdb-var-delete): Add server prefix to the
-	gdb commands that use mi to keep them out of the command history.
-
-2003-11-29  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
-
-	* cus-start.el (all): Add use-file-dialog.
-
-2003-11-27  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* textmodes/tex-mode.el (latex-mode): `tex-trailer' is not a regexp.
-
-2003-11-27  Kim F. Storm  <storm@cua.dk>
-
-	* subr.el (posn-object-x-y): New defun.
-
-2003-11-26  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* progmodes/make-mode.el (makefile-font-lock-syntactic-keywords):
-	Don't use `space' for \\\n.
-	Be more selective as to which # are comment-starters.
-
-2003-11-26  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* subr.el (number-sequence): Improve handling of floating point
-	arguments (suggested by Kim Storm).  Allow negative arguments.
-
-2003-11-26  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule-cmds.el (standard-display-european-internal):
-	Cancel the standard-display-table setting for ` and '.
-
-2003-11-26  Kim F. Storm  <storm@cua.dk>
-
-	* ido.el (ido-use-filename-at-point, ido-use-url-at-point):
-	New defcustoms to add ffap-like functionality to ido.
-	(ido-saved-vc-hb): Rename from ido-saved-vc-mt.  Uses changed.
-	(ido-no-final-slash): New defun.
-	(ido-make-prompt, ido-file-internal, ido-toggle-vc)
-	(ido-read-file-name): ): Toggle VC checking via
-	vc-handled-backends instead of vc-master-templates.
-	(ido-file-internal): Handle ido-use-url-at-point and
-	ido-use-filename-at-point via code borrowed from ffap-guesser.
-	Handle new ido-exit code ffap.
-	(ido-sort-list): Ignore final slash when sorting file names.
-
-2003-11-25  Kim F. Storm  <storm@cua.dk>
-
-	* emulation/cua-base.el (cua--standard-movement-commands):
-	Add forward-sentence and backward-sentence.
-
-2003-11-25  Stephen Eglen  <stephen@gnu.org>
-
-	* iswitchb.el (iswitchb-read-buffer,iswitchb-exit-minibuffer):
-	iswitchb-exit is set to 'usefirst when user selects buffer at head
-	of list using RET.  (Selecting buffers at the head of the list was
-	broken if the substring was also a complete buffername.)
-
-2003-11-23  Kim F. Storm  <storm@cua.dk>
-
-	* progmodes/compile.el (grep-command, grep-use-null-device)
-	(grep-find-command, grep-tree-command, grep-tree-files-aliases)
-	(grep-tree-ignore-case, grep-tree-ignore-CVS-directories)
-	(grep-regexp-alist, grep-program, find-program)
-	(grep-find-use-xargs, grep-history, grep-find-history)
-	(grep-process-setup, grep-compute-defaults)
-	(grep-default-command, grep, grep-tag-default, grep-find)
-	(grep-expand-command-macros, grep-tree-last-regexp)
-	(grep-tree-last-files, grep-tree): Move grep variables, functions
-	and commands to new file grep.el.
-	(compilation-mode-map): Remove grep commands from Compile sub-menu.
-	(compilation-process-setup-function): Doc fix.
-	(compilation-highlight-regexp, compilation-highlight-overlay): New
-	defvars used for highlighting current compile error in source buffer.
-	(compile-internal): New optional args HIGHLIGHT-REGEXP and
-	LOCAL-MAP which overrides compilation-highlight-regexp and
-	compilation-mode-map for this compilation.
-	Delay calling compilation-set-window-height until after running
-	compilation-process-setup-function so it can buffer-local override
-	compilation-window-height.
-	Check buffer-local value of compilation-scroll-output.
-	(compilation-set-window-height): Use buffer-local value of
-	compilation-window-height.
-	(compilation-revert-buffer): Don't pass (undefined)
-	preserve-modes arg to revert-buffer.
-	(next-error-no-select, previous-error-no-select): New commands.
-	(compilation-goto-locus): Temporarily highlight current match in
-	source buffer using compilation-highlight-regexp.
-
-	* progmodes/grep.el: New file with grep code from compile.el.
-	(grep): New defcustom group.
-	(grep-window-height): New defcustom, like compilation-window-height.
-	(grep-auto-highlight): New defcustom, like compile-auto-highlight.
-	(grep-scroll-output): New defcustom, like compilation-scroll-output.
-	(grep-command, grep-use-null-device, grep-find-command)
-	(grep-tree-files-aliases, grep-tree-ignore-case)
-	(grep-tree-ignore-CVS-directories): Move to grep custom group.
-	(grep-setup-hook): New hook variable.
-	(grep-mode-map): New keymap for grep commands.  Add Grep menu.
-	(grep-last-buffer): New defvar, override compilation-last-buffer.
-	(grep): Add optional arg HIGHLIGHT-REGEXP.  Doc fix.
-	Call compile-internal with args highlight-regexp and grep-mode-map.
-
-2003-11-23  Kim F. Storm  <storm@cua.dk>
-
-	* subr.el (event-start, event-end): Doc fix.
-	(posn-window, posn-x-y, posn-timestamp): Simplify doc.
-	(posn-area, posn-actual-col-row, posn-object): New defuns.
-	(posn-col-row): Simplify doc.  Rewrite to use cond.
-	(posn-point): Also return buffer position for events outside text
-	area (that info is now present in the event position).
-
-	* mouse.el: Bind mouse-1 on left-fringe and right-fringe to
-	mouse-set-point so that hscroll still works now that clicks on
-	fringes generate specific mouse events.
-	(mouse-set-point): Note that it now works in fringes and margins
-	too due to new semantics of posn-point in fringes and margins.
-
-	* gdb-ui.el (gdb-mouse-toggle-breakpoint): New defun.
-	(gdba): Bind it to [left-margin mouse-1] and [left-fringe mouse-1].
-
-2003-11-20  Kim F. Storm  <storm@cua.dk>
-
-	* gdb-ui.el (gud-gdba-command-name): Find gdb command via PATH.
-	(breakpoint-xpm-data, breakpoint-enabled-pbm-data): Make smoother.
-	(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)
-
-	* newcomment.el (comment-normalize-vars): Initialize properly if
-	comment-start was nil.
-
-2003-11-19  Andreas Schwab  <schwab@suse.de>
-
-	* simple.el (set-variable): Fix indentation.
-
-2003-11-17  Kenichi Handa  <handa@m17n.org>
-
-	* international/latin1-disp.el (latin1-display-ucs-per-lynx):
-	Fix docstring.
-
-2003-11-17  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
-
-	* international/latin1-disp.el (latin1-display): Fix docstring.
-
-2003-11-16  John Wiegley  <johnw@newartisans.com>
-
-	* eshell/em-ls.el (eshell-ls-file): There are times with
-	size-width is nil and uncomputed (when directories are created in
-	dired, for example); in this case, 4 is reasonable default value,
-	although it may caused skewed new entries (which could be avoided
-	by returning the original value of 8 in all cases, but 99% of the
-	time this is a waste of whitespace).
-
-2003-11-16  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* cc-engine.el (c-guess-continued-construct)
-	(c-guess-basic-syntax): Check a little more carefully if it's a
-	function declaration when an unknown construct followed by a block
-	is found inside a statement context.  This avoids macros followed
-	by blocks to be taken as function declarations.
-
-	(c-guess-continued-construct): Change the analysis of a statement
-	continuation with a brace open to `substatement-block', for
-	consistency with recognized statements.
-
-	(c-add-stmt-syntax): Don't continue to the surrounding sexp if the
-	start is in a position so that `c-beginning-of-statement-1' jumped
-	to the beginning of the same statement.
-
-	* cc-fonts.el, cc-engine.el (c-forward-<>-arglist-recur):
-	Don't accept binary operators in the arglist if we're in a function
-	call context, i.e. if `c-restricted-<>-arglists' is set.  That avoids
-	template recognition in cases like "if (a < b || c > d)".
-
-	(c-restricted-<>-arglists): New more appropriate name for
-	`c-disallow-comma-in-<>-arglists'.
-
-	Accessing functions updated for the variable name change.
-
-	* cc-engine.el (c-syntactic-re-search-forward): Fix bug where the
-	match data could get clobbered if NOT-INSIDE-TOKEN is used.
-
-	* cc-engine.el (c-beginning-of-statement-1): Don't allow parens in
-	labels.
-
-	(c-backward-to-decl-anchor): Use `c-beginning-of-statement-1'
-	instead of duplicating parts of it.  This fixes bogus label
-	recognition.
-
-	* cc-align.el (c-gnu-impose-minimum): Revert to the old method
-	of checking the context in which to apply the minimum indentation,
-	so that it isn't enforced in e.g. namespace blocks.
-
-	* cc-vars.el (c-inside-block-syms): New constant used by
-	`c-gnu-impose-minimum'.  It's defined close to `c-offsets-alist'
-	to somewhat reduce the risk of becoming stale.
-
-	* cc-cmds.el, cc-engine.el (c-shift-line-indentation): Move from
-	cc-cmds to cc-engine to allow use from cc-align.
-
-	* cc-engine.el (c-beginning-of-inheritance-list): Cope with fully
-	qualified identifiers containing "::".
-
-	* cc-defs.el (c-make-keywords-re): Add kludge for bug in
-	`regexp-opt' in Emacs 20 and XEmacs when strings contain newlines.
-
-	* cc-vars.el (c-emacs-features): Use a space in front of the name
-	of the temporary buffer.  That also avoids dumping problems in
-	XEmacs due to undo info being left around after the buffer is killed.
-
-	* cc-engine.el (c-in-knr-argdecl): Look closer at the function
-	arglist to see if it's a K&R style declaration.
-
-	(c-guess-basic-syntax): CASE 5B.2: Check with `c-in-knr-argdecl'
-	before returning `knr-argdecl-intro'.
-
-2003-11-16  John Wiegley  <johnw@newartisans.com>
-
-	* eshell/em-ls.el (eshell-ls-file): Instead of making the size
-	field in a long-listing always 8 characters, use `size-width',
-	which has already been computed.
-
-2003-11-15  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* subr.el (minor-mode-list): Add `hs-minor-mode'.
-
-2003-11-14  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* diff-mode.el (diff-hunk-prev, diff-hunk-next):
-	Support operation while narrowed, with `diff-restrict-view'.
-
-2003-11-14  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
-	Take additional optional arg NARROWFUN.  For the generated functions:
-	Add local var `was-narrowed-p'.  Also, if NARROWFUN is specified,
-	include frags that arrange to check for and save narrowing state before
-	the move and then conditionally call NARROWFUN after the move.
-
-2003-11-14  John Wiegley  <johnw@newartisans.com>
-
-	* eshell/esh-var.el (eshell-parse-variable-ref): Add a backslash
-	that was optional, but obviously missing based on surrounding code.
-
-	* eshell/esh-cmd.el (eshell-lisp-command): Do not late-convert
-	string arguments to numbers unless the whole argument was seen as
-	a number.
-
-2003-11-14  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule.el (ctext-non-standard-encodings-alist):
-	Fix coding systems.
-
-2003-11-10  Kenichi Handa  <handa@m17n.org>
-
-	* language/kannada.el ("Kannada"): Add sample-text.
-
-	* language/knd-util.el (kannada-compose-region)
-	(kannada-compose-string, kannada-post-read-conversion):
-	Add autoload cookie.
-
-	* international/quail.el (quail-completion): Change the message
-	"corresponding translations" to "corresponding characters".
-
-2003-11-09  Markus Rost  <rost@mathematik.uni-bielefeld.de>
-
-	* descr-text.el (describe-char): Fix typo.
-
-2003-11-08  Kailash C. Chowksey  <klchxbec@m-net.arbornet.org>
-
-	These changes are to support Kannada language/script.
-
-	* Makefile.in (DONTCOMPILE): Add kannada.el.
-
-	* makefile.w32-in (DONTCOMPILE): Add kannada.el.
-
-	* loadup.el: Preload kannada.el.
-
-	* language/ind-util.el (ucs-kannada-to-is13194-alist)
-	(is13194-to-ucs-kannada-hashtbl, is13194-to-ucs-kannada-regexp):
-	New variables.
-
-	* language/kannada.el: New file.
-
-	* language/knd-util.el: New file.
-
-2003-11-07  Andreas Schwab  <schwab@suse.de>
-
-	* progmodes/autoconf.el (autoconf-font-lock-keywords):
-	Also highlight AH_*.
-
-	* xml.el (xml-parse-dtd): Fix misplaced paren.
-
-2003-11-07  Kenichi Handa  <handa@m17n.org>
-
-	* language/european.el (windows-1252): Fix table (0x8F and 0x9E).
-
-2003-11-05  Juri Linkov  <juri@jurta.org>
-
-	* desktop.el (desktop-locals-to-save): Add buffer-file-coding-system.
-	(desktop-buffer-file): Use saved buffer-file-coding-system
-	for file reading.  Set auto-insert to nil to prevent automatic
-	insertion into restored empty files.
-
-2003-11-04  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* files.el (risky-local-variable-p): Make second argument optional.
-
-2003-11-03  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* subr.el (add-hook): Fix last change.
-
-2003-11-03  Eli Zaretskii  <eliz@gnu.org>
-
-	* mail/rmail.el (rmail-convert-to-babyl-format):
-	If base64-decode-region signals an error, catch it and silently
-	ignore it.
-
-2003-11-01  Mark A. Hershberger  <mah@everybody.org>
-
-	* xml.el (xml-parse-region): Allow comments to appear after the
-	topmost element has closed.
-	(xml-ns-parse-ns-attrs, xml-ns-expand-el)
-	(xml-ns-expand-attr): New functions to do namespace handling.
-	(xml-intern-attrlist): Back-compatible handling of attribute names.
-	(xml-parse-tag): Move namespace handling to separate functions.
-	Now produces elements in the form ((:ns . "element") (attr-list)
-	children) instead of ('ns:element (attr-list) children).
-	(xml-parse-attlist): Fix attribute parsing.
-	(xml-parse-dtd): Change parsing so that it produces strings
-	instead of interned symbols.
-
-2003-11-01  era@iki.fi  <era@iki.fi>  (tiny change)
-
-	* dired.el (dired-ls-sorting-switches): Doc fix.
-
-2003-11-01  Oliver Scholz  <epameinondas@gmx.de>
-
-	* emacs-lisp/rx.el (rx-or): Fix the case of
-	"(rx (and ?a (or ?b ?c) ?d))".
-
-2003-11-01  Christoph Wedler  <wedler@users.sourceforge.net>  (tiny change)
-
-	* textmodes/texinfmt.el (texinfo-pre-format-hook): New variable.
-	(texinfo-format-region): Use it.
-	(texinfo-format-buffer-1): Ditto.
-
-2003-11-01  Alan Mackenzie  <acm@muc.de>
-
-	Changes to allow scrolling whilst in isearch mode:
-	* isearch.el (isearch-unread-key-sequence): New function,
-	extracted from isearch-other-meta-char.
-	(top level): (put 'foo 'isearch-scroll) on all Emacs's
-	"scrollable" standard functions.
-	(isearch-allow-scroll): New customizable variable.
-	(isearch-string-out-of-window, isearch-back-into-window)
-	(isearch-reread-key-sequence-naturally)
-	(isearch-lookup-scroll-key): New functions.
-	(isearch-other-meta-char): Doc string and functionality enhanced.
-	Now accepts a prefix argument.
-	(isearch-lazy-highlight-window-end): New variable.
-	(isearch-lazy-highlight-new-loop): Pay attention to the window's
-	end (thru isearch-lazy-highlight-window-end), not only its start.
-
-	* simple.el (overriding-map-is-bound, saved-overriding-map): New vars.
-	(ensure-overriding-map-is-bound, restore-overriding-map): New funs.
-	(universal-argument, universal-argument-more, negative-argument)
-	(digit-argument, universal-argument-other-key): Minor changes.
-
-2003-11-01  Alexander Pohoyda  <alexander.pohoyda@gmx.net>  (tiny change)
-
-	* mail/rmailsum.el (rmail-summary-goto-msg): Don't call itself
-	recursively if the last message is deleted, thus avoiding an
-	infinite loop.
-
-2003-10-30  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* textmodes/tex-mode.el (tex-compile-commands): Add `yap' and `ps2pdf'.
-	(tex-main-file): Don't add .tex if the extension is already present.
-	(tex-uptodate-p): Don't recurse indefinitely with symlinks.
-
-2003-10-29  Lute Kamstra  <lute@gnu.org>
-
-	* progmodes/octave-inf.el (inferior-octave-prompt):
-	Recognize version number in prompt.
-
-2003-10-28  Dave Love  <fx@gnu.org>
-
-	* international/characters.el: Fix some Unicode ranges.
-
-2003-10-28  Kenichi Handa  <handa@m17n.org>
-
-	* disp-table.el (standard-display-8bit)
-	(standard-display-default, standard-display-ascii)
-	(standard-display-g1, standard-display-graphic)
-	(standard-display-underline): Assure that standard-display-table
-	is a display table.
-
-2003-10-27  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* simple.el (reindent-then-newline-and-indent): Delete space *after*
-	reindenting the first line.
-
-2003-10-25  Per Abrahamsen  <abraham@dina.kvl.dk>
-
-	* wid-edit.el (widget-default-delete): Always delete child widgets.
-
-2003-10-24  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* newcomment.el (comment-indent): Don't call indent-according-to-mode
-	if the line has code.
-	Don't try to line up with something that's too far left.
-
-	* progmodes/octave-mod.el (octave-comment-start): Simplify.
-	(octave-mode-syntax-table): Add % as a comment starter.
-	(octave-point): Remove.
-	(octave-in-comment-p, octave-in-string-p)
-	(octave-not-in-string-or-comment-p, calculate-octave-indent)
-	(octave-blink-matching-block-open, octave-auto-fill):
-	Use line-(beginning|end)-position instead.
-
-2003-10-23  Francesco Potort,Al(B  <pot@gnu.org>
-
-	* emacs-lisp/authors.el (authors-aliases): Add correct realname
-	for Francesco Potort,Al(B.
-
-2003-10-23  Dave Love  <fx@gnu.org>
-
-	* international/mule-cmds.el (locale-charset-to-coding-system):
-	Don't rely on nil being a coding system.
-
-	* mail/mail-extr.el (mail-extr-ignore-single-names): Add :version.
-	(mail-extr-address-syntax-table): Remove non-ASCII unibyte chars.
-	(mail-extr-voodoo): Use char classes in regexps (for non-ASCII).
-
-2003-10-21  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gdb-current-language): New variable.
-	(gdb-update-flag): Remove variable.
-	(gud-watch, gdb-frame-handler): Adapt for other languages (Fortran).
-	(gdb-take-last-elt): Remove function.
-	(gdb-dequeue-input): Avoid recursion by not using gdb-take-last-elt.
-	(gdb-post-prompt): Check for variable object changes here.
-
-	* progmodes/gud.el (gud-speedbar-buttons): Check for variable
-	object changes in gdb-ui.el.
-
-2003-10-21  Richard M. Stallman  <rms@gnu.org>
-
-	* emacs-lisp/edebug.el (edebug-display-freq-count): Doc fix.
-
-	* ls-lisp.el (ls-lisp-insert-directory): Arg is now wildcard-regexp.
-	Don't check for foo*/ wildcard form here.
-	(insert-directory): Recognize foo*/ as a wildcard.
-	Separate wildcard-regexp variable from the arg, wildcard.
-
-	* subr.el (add-hook): Correctly detect when make-local-hook was used.
-	(remove-hook): Correctly handle strange cases about local hooks.
-
-2003-10-21  David Ponce  <david@dponce.com>
-
-	* ruler-mode.el (ruler-mode-left-fringe-cols): Add new optional
-	argument REAL, to return a real number instead of a rounded
-	integer value.  Define as inline function.
-	(ruler-mode-right-fringe-cols): Likewise.
-	(ruler-mode-scroll-bar-cols): New function.
-	(ruler-mode-left-scroll-bar-cols): Use it.  Define as macro.
-	(ruler-mode-right-scroll-bar-cols): Likewise.
-	(ruler-mode-space): New function.
-	(ruler-mode-ruler): Use it.  Handle variations of fringe style,
-	scroll bar mode and margins in a more robust way.
-
-2003-10-21  Christoph Wedler  <Christoph.Wedler@sap.com>
-
-	* progmodes/antlr-mode.el: Make major mode work with cc-mode-5.30+.
-	(antlr-c-init-language-vars): New function.
-	(antlr-mode): Use it with cc-mode before v5.29.
-	(antlr-c-common-init): Don't set some local vars here.
-	(antlr-mode): Set them here.
-	(antlr-c-forward-sws): New function alias.
-	(antlr-mode): Redefine with cc-mode before v5.30.
-	(antlr-skip-sexps): Use it.
-	(antlr-skip-exception-part): Ditto.
-	(antlr-skip-file-prelude): Ditto.
-	(antlr-outside-rule-p): Ditto.
-	(antlr-end-of-body): Ditto.
-	(antlr-option-kind): Ditto.
-	(antlr-insert-option-area): Ditto.
-	(antlr-file-dependencies): Ditto.
-
-2003-10-21  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
-
-	* textmodes/bibtex.el (bibtex-move-outside-of-entry):
-	Move backward only if point was not inside an entry.
-
-2003-10-21  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/compile.el (compile-auto-highlight): Undo July 7 change.
-
-2003-10-21  Juri Linkov  <juri@jurta.org>
-
-	* compare-w.el: Automatically skip non-matching text to resync.
-	(compare-windows-whitespace): Doc fix.
-	(compare-windows-sync, compare-windows-sync-string-size)
-	(compare-windows-recenter, compare-ignore-whitespace)
-	(compare-windows-highlight, compare-windows-face): New variables.
-	(compare-windows): Use compare-windows-sync.
-	(compare-windows-highlight, compare-windows-dehighlight)
-	(compare-windows-sync-regexp)
-	(compare-windows-sync-default-function): New functions.
-
-2003-10-21  Juri Linkov  <juri@jurta.org>
-
-	* diff.el (diff-parse-differences): Don't visit the files now;
-	instead, just record the error locus.
-
-2003-10-21  Dave Love  <fx@gnu.org>
-
-	* progmodes/cfengine.el: New file.
-
-2003-10-20  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* complete.el (PC-do-completion): Do not forget to use `pred' as the
-	default-directory when completing file names.
-
-2003-10-20  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* help-mode.el (help-make-xrefs): Make sure that if a symbol is
-	followed by the word `face', it gets treated as a face, even if
-	it is also defined as a variable or a function.
-
-2003-10-20  Dave Love  <fx@gnu.org>
-
-	* emacs-lisp/easy-mmode.el (easy-mmode-define-navigation):
-	Avoid incf in macro expansion.
-
-2003-10-20  John Paul Wallington  <jpw@gnu.org>
-
-	* emacs-lisp/elint.el (elint-check-defcustom-form): Don't use
-	`evenp'	so we don't implicitly require cl library at runtime.
-
-2003-10-18  Luc Teirlinck  <teirllm@auburn.edu>
-
-	* help-mode.el (help-xref-symbol-regexp): Treat newlines as whitespace.
-	(help-make-xrefs): Only make cross-references for faces if
-	preceded or followed by the word `face'.  Do not make a
-	cross-reference for variables without variable documentation,
-	unless preceded by the word `variable' or `option'.  Update doc
-	string accordingly.
-
-2003-10-18  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* progmodes/hideshow.el: Rewrite one-armed `if'
-	constructs using either `when' or `unless'.
-	(hs-grok-mode-type): Elide superfluous `progn'; nfc.
-
-2003-10-16  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (breakpoint-xpm-data, breakpoint-enabled-pbm-data)
-	(breakpoint-disabled-pbm-data): Make breakpoint icons 10x10
-	instead of 12x12.
-
-2003-10-16  Eli Zaretskii  <eliz@gnu.org>
-
-	* mail/rmail.el (rmail-convert-to-babyl-format): Display a
-	message while converting to Babyl.
-
-2003-10-16  Vadim Nasardinov  <vadimn@redhat.com>  (tiny change)
-
-	* allout.el (allout-mode): Doc fix.
-
-2003-10-16  Lute Kamstra  <lute@gnu.org>
-
-	* subr.el (force-mode-line-update): Fix docstring.
-
-2003-10-14  Dave Love  <fx@gnu.org>
-
-	* international/mule-cmds.el (find-multibyte-characters): Doc fix.
-	(default-input-method): Add :link, improve :type.
-	(locale-charset-language-names): Fix utf-8 pattern.
-	(locale-charset-match-p, locale-charset-alist)
-	(locale-charset-to-coding-system): New.
-	(set-locale-environment): Deal with codeset part of locale specs.
-
-2003-10-14  Lute Kamstra  <lute@gnu.org>
-
-	* fringe.el (fringe-mode): Use active voice in docstring.
-	(set-fringe-style): Ditto.
-
-2003-10-13  Lute Kamstra  <lute@gnu.org>
-
-	* fringe.el (fringe-mode): Fix docstring.
-	(set-fringe-style): Ditto.
-
-2003-10-12  Michael Kifer  <kifer@cs.stonybrook.edu>
-
-	* ediff-mult.el (ediff-filegroup-action):
-	Use ediff-default-filtering-regexp.
-
-	* ediff-util.el (ediff-recenter): Don't call
-	ediff-restore-highlighting twice.
-	(ediff-select-difference): Set current difference.
-	(ediff-unselect-and-select-difference): Add comment.
-
-	* ediff.el (ediff-directories,ediff-directory-revisions)
-	(ediff-directories3,ediff-merge-directories)
-	(ediff-merge-directories-with-ancestor)
-	(ediff-merge-directory-revisions)
-	(ediff-merge-directory-revisions-with-ancestor):
-	Use ediff-default-filtering-regexp.
-
-2003-10-12  Andreas Schwab  <schwab@suse.de>
-
-	* international/mule-cmds.el (locale-charset-language-names):
-	Simplify regex by removing unused grouping.
-
-2003-10-10  Dave Love  <fx@gnu.org>
-
-	* bindings.el: Don't bind stop.
-
-2003-10-08  Miles Bader  <miles@gnu.org>
-
-	* gdb-ui.el (gdb-info-frames-custom): Use proper :inverse-video
-	face instead of attempting to emulate it.
-
-2003-10-07  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule-diag.el (list-coding-systems-1): List coding
-	systems that are loaded automatically.
-
-	* international/code-pages.el (iso-8859-11): Add autoload cookie.
-
-	* international/mule.el (autoload-coding-system): New function.
-
-2003-10-07  Andreas Schwab  <schwab@suse.de>
-
-	* log-edit.el (log-edit-changelog-entries): Prefer local value of
-	change-log-default-name in the buffer visiting the file.
-
-2003-10-06  Dave Love  <fx@gnu.org>
-
-	* files.el (find-file-hook): Customize.
-	(auto-mode-alist): Add .stk, .ss, .sch, .orig.
-
-	* bindings.el (completion-ignored-extensions): Remove .log.
-	(global-map): Add again, open, stop keys.
-
-2003-10-05  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/sh-script.el (sh-feature): Handle sh-modify like sh-append.
-	(sh-for, sh-indexed-loop, sh-function, sh-while, sh-while-getopts):
-	Use sh-modify directly.
-	(sh-select): Use sh-append, not eval.
-
-	* mail/emacsbug.el (report-emacs-bug): Fix previous change.
-
-	* info.el (Info-following-node-name): New function.
-
-	* loadhist.el (unload-feature-special-hooks):
-	Rename from loadhist-hook-functions.
-	(loadhist-hook-functions): Now an alias.
-
-2003-10-04  Eli Zaretskii  <eliz@gnu.org>
-
-	* ldefs-boot.el: Renamed from loaddefs-boot.el, to prevent
-	file-name clashes on 8+3 filesystems.
-
-	* Makefile.in (DONTCOMPILE, bootstrap-clean):
-	Rename loaddefs-boot.el to ldefs-boot.el
-
-	* makefile.w32-in (DONTCOMPILE, bootstrap-clean-CMD)
-	(bootstrap-clean-SH): Rename loaddefs-boot.el to ldefs-boot.el
-
-2003-10-03  Lute Kamstra  <lute@gnu.org>
-
-	* info.el (Info-mode): Revert previous change.
-	(Info-escape-percent): New function.
-	(Info-fontify-node): Use it.
-
-2003-10-02  Andreas Schwab  <schwab@suse.de>
-
-	* loaddefs-boot.el: Regenerated.
-
-2003-10-01  Rajesh Vaidheeswarran  <rv@gnu.org>
-
-	* ffap.el: Remove defadvice related code from CVS since `complete'
-	provides a `PC-completion-as-file-name-predicate' variable that
-	ffap can override.
-
-2003-10-02  Kenichi Handa  <handa@m17n.org>
-
-	* international/utf-8.el (ccl-decode-mule-utf-8):
-	Lookup utf-subst-table-for-decode even for U+E000..U+FFFF.
-
-	* international/subst-jis.el: Include U+FF00..U+FFEF in decode table.
-	* international/subst-big5.el: Likewise.
-	* international/subst-gb2312.el: Likewise.
-	* international/subst-ksc.el: Likewise.
-
-2003-10-01  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/calendar.el (increment-calendar-month)
-	(calendar-leap-year-p, calendar-absolute-from-gregorian)
-	(generate-calendar, calendar-read-date, calendar-interval)
-	(calendar-day-of-week): Handle years BC.
-	(generate-calendar-month, calendar-gregorian-from-absolute): Doc fix.
-
-2003-10-01  Dave Love  <fx@gnu.org>
-
-	* language/cyrillic.el (cp1251): Alias for windows-1251.
-
-	* vc-cvs.el (vc-cvs-parse-entry): Revert last change to allow
-	bootstrap.
-
-2003-10-01  Lute Kamstra  <lute@gnu.org>
-
-	* files.el: Fix typo.
-	* imenu.el (imenu--generic-function): Docstring fix.
-
-2003-09-30  Richard M. Stallman  <rms@gnu.org>
-
-	* dired.el (dired-mode): Handle dired-directory as a list.
-
-2003-09-30  Nick Roberts  <nick@nick.uklinux.net>
-
-	* toolbar/gud-watch.xpm, toolbar/gud-watch.pbm: Add.
-
-	* toolbar/gud-display.xpm, toolbar/gud-display.pbm: Remove.
-
-	* progmodes/gud.el (gud-menu-map, gud-tool-bar-map):
-	Replace gud-display with gud-watch.
-	(gud-speedbar-buttons): Add stuff for watching expressions
-	in the speedbar when using M-x gdba.  Use dolist on old part
-	of this function.
-
-	* gdb-ui.el (gdb-var-list, gdb-var-changed, gdb-update-flag)
-	(gdb-update-flag): New variables.
-	(gdb-var-update, gdb-var-update-handler,gdb-var-delete)
-	(gdb-speedbar-expand-node, gdb-var-evaluate-expression-handler)
-	(gud-watch, gdb-var-create-handler) : New functions.
-	(gdb-var-list-children, gdb-var-list-children-handler)
-	(gdb-var-create-regexp, gdb-var-update-regexp)
-	(gdb-var-list-children-regexp): New constants.
-	(gud-gdba-command-name): Don't specify -noasync so that GDB/MI works.
-	(gdb-annotation-rules): Reduce annotation set (level 3).
-	(gdb-pre-prompt, gdb-prompt): Call handler in gdb-prompt.
-	(gdb-post-prompt): Don't update GDB buffers every time speedbar
-	updates.
-	(gdb-window-height, gdb-window-width, gdb-display-in-progress)
-	(gdb-expression-buffer-name, gdb-display-number, gdb-point)
-	(gdb-dive-display-number, gdb-nesting-level, gdb-expression)
-	(gdb-annotation-arg, gdb-dive-map, gdb-values, gdb-array-start)
-	(gdb-array-stop, gdb-array-slice-map, gdb-display-string)
-	(gdb-array-size, gdb-display-mode-map, gdb-expressions-mode-map):
-	(gdb-expressions-mode-menu, gdb-dive): Remove variables.
-	(gud-display, gud-display1)
-	(gdb-display-begin,gdb-display-number-end, gdb-delete-line)
-	(gdb-display-end, gdb-display-go-back, gdb-array-section-end)
-	(gdb-field-begin, gdb-field-end, gdb-elt,gdb-field-format-begin)
-	(gdb-field-format-end, gdb-dive, gdb-dive-new-frame)
-	(gdb-insert-field, gdb-array-format, gdb-mouse-array-slice)
-	(gdb-array-slice, gdb-array-format1, gdb-info-display-custom)
-	(gdb-delete-frames, gdb-display-mode, gdb-display-buffer-name)
-	(gdb-display-display-buffer, gdb-toggle-display)
-	(gdb-delete-display, gdb-expressions-popup-menu)
-	(gdb-expressions-mode, gdb-array-visualise): Remove functions.
-	(gdb-setup-windows, gdb-reset, gdb-source-info): Remove references
-	to display buffer.
-
-2003-09-30  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/ada-mode.el (ada-mode): Don't use advice.
-	Instead, set which-func-functions.
-
-	* progmodes/which-func.el (which-func-modes): Add ada-mode.
-	(which-func-functions): New variable.
-	(which-function): Use that.
-
-	* info.el (Info-mode): Double each `%' in header line.
-
-	* emacs-lisp/lisp-mnt.el (lm-with-file):
-	When FILE is nil, run BODY in current buffer.
-
-	* mail/emacsbug.el (report-emacs-bug): Mention major and minor modes.
-
-	* help.el (describe-mode): Start with a brief list of minor modes.
-	Find them thru minor-mode-list so as to find them all.
-	Show them in alphabetical order.
-
-	* mail/sendmail.el (mail-aliases): Doc fix.
-
-	* progmodes/sh-script.el (sh-mode-syntax-table): Add defvar.
-
-2003-09-30  Alexander Pohoyda  <alexander.pohoyda@gmx.net>  (tiny change)
-
-	* mail/rmailsum.el (rmail-make-summary-line-1):
-	Change comma after last label to a space.
-	(rmail-summary-font-lock-keywords): Adapt to that change.
-
-2003-09-30  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* progmodes/scheme.el (scheme-mode-variables): When setting
-	`font-lock-defaults', also specify that "#" should
-	be interpreted with `word' syntax.
-	(scheme-font-lock-keywords-2): Also interpret "#:foo" as keyword.
-
-2003-09-30  Lars Hansen  <larsh@math.ku.dk>
-
-	* desktop.el: A lot of comments updated.
-	(desktop-save-mode): Minor mode introduced.
-	(desktop-enable, desktop-clear-preserve-buffers): Make vars obsolete.
-	(desktop-load-default): Function made obsolete.
-	(desktop-locals-to-save): Variable made customizable.
-	(desktop-read): Optional parameter `dirname' added.
-	(desktop-change-dir, desktop-revert): Parameter `dirname' in
-	`desktop-read' used.
-	(desktop-save-in-load-dir): Rename to `desktop-save-in-desktop-dir'.
-
-2003-09-29  Rajesh Vaidheeswarran  <rv@gnu.org>
-
-	* whitespace.el (whitespace-clean-msg): Add user customizable message
-	for displaying ``clean'' output.
-	(whitespace-buffer): Use `whitespace-clean-msg'.
-	(whitespace-global-mode): Fix typo.
-
-2003-09-29  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* pcvs.el (cvs-mode-unmark-up): Move to goal column when done.
-
-2003-09-29  Lute Kamstra  <lute@gnu.org>
-
-	* bindings.el (mode-line-modes): Remove superfluous :propertize
-	construct in initialization.
-	(mode-line-position): Change cons cell into proper list in
-	initialization.
-
-2003-09-29  SAITO Takuya  <tabmore@rivo.mediatti.net>  (tiny change)
-
-	* international/mule.el (decode-coding-inserted-region): Use car
-	of the return value of find-operation-coding-system.
-
-2003-09-29  Kenichi Handa  <handa@m17n.org>
-
-	* descr-text.el (describe-char): Fix previous change.
-
-2003-09-28  Kenichi Handa  <handa@m17n.org>
-
-	* descr-text.el (describe-char-display): New function.
-	(describe-char): Pay attention to display table on describing how
-	a character is displayed.
-
-	* international/mule-cmds.el (encoded-string-description):
-	Prepend "0x" to each encoded byte.
-
-2003-09-28  Andreas Schwab  <schwab@suse.de>
-
-	* find-file.el (ff-special-constructs): Add autoload cookie.
-
-2003-09-28  Kevin Ryde  <user42@zip.com.au>
-
-	* info.el (Info-find-index-name): Remove any "<n>" suffixes which
-	makeinfo appends to duplicate index entries.
-
-2003-09-28  Eli Zaretskii  <eliz@gnu.org>
-
-	* dired-x.el (dired-clean-tex): Doc fix.
-
-	* 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)
-
-	* 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)
-
-	* textmodes/text-mode.el (paragraph-indent-minor-mode): Doc fix.
-
-2003-09-28  David Ponce  <david@dponce.com>
-
-	* recentf.el (recentf-initialize-file-name-history): New defcustom.
-	(recentf-load-list): When `recentf-initialize-file-name-history'
-	is non-nil, initialize an empty `file-name-history' with the
-	recent list.
-
-2003-09-28  Evgeni Dobrev  <evgeni_dobrev@developer.bg>  (tiny change)
-
-	* man.el (Man-default-man-entry): Remove the leading `*' from the
-	word at point.
-
-2003-09-26  Lute Kamstra  <lute@gnu.org>
-
-	* bindings.el (mode-line-position): Mention size indication in
-	docstring.
-
-2003-09-26  Andre Spiegel  <spiegel@gnu.org>
-
-	* calendar/parse-time.el (parse-time-string): Add autoload cookie.
-
-	* vc-cvs.el (vc-cvs-parse-entry): Don't require parse-time,
-	because it's autoloaded now.
-
-2003-09-25  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* progmodes/sh-script.el (sh-builtins): Add bash `shopt' builtin.
-	(sh-font-lock-keywords, sh-feature): Fix previous change of
-	sh-feature to avoid infloop with sh-font-lock-keywords.
-
-2003-09-25  Kim F. Storm  <storm@cua.dk>
-
-	* frame.el (frame-current-scroll-bars): New defun.
-
-	* window.el (window-current-scroll-bars): New defun.
-
-2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-engine.el (c-parse-state): Fix bug that could
-	cause errors when the state cache contains info on parts that have
-	been narrowed out.
-
-2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-vars.el (c-comment-prefix-regexp): Document that
-	`c-setup-paragraph-variables' has to be used when this variable is
-	changed; it doesn't work to reinitialize the mode since that
-	typically clobbers the variable.
-
-	* progmodes/cc-styles.el (c-setup-paragraph-variables):
-	Make it interactive.
-
-2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-fonts.el (c-font-lock-declarations):
-	Fix recognition of constructors and destructors for classes whose
-	names are matched by `*-font-lock-extra-types'.
-
-	* progmodes/cc-langs.el (c-type-list-kwds): If "operator" is
-	followed by an identifier in C++ then it's a type.
-
-2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-fonts.el (c-font-lock-invalid-string): Fix eob
-	problem that primarily affected XEmacs.  Don't use faces to find
-	unterminated strings since Emacs and XEmacs fontify strings
-	differently - this function should now work better in XEmacs.
-
-2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-cmds.el (c-electric-brace): Fix a bug in the
-	`expand-abbrev' workaround which caused braces to misbehave inside
-	macros.
-
-	* progmodes/cc-engine.el (c-forward-keyword-clause): Fix error
-	handling.  This bug could cause interactive font locking to bail out.
-
-2003-09-24  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-engine.el (c-just-after-func-arglist-p):
-	Handle paren-style types in Pike.  Also fixed some cases of
-	insufficient handling of unbalanced parens.
-
-2003-09-24  Rajesh Vaidheeswarran  <rv@gnu.org>
-
-	* ffap.el (ffap-shell-prompt-regexp): Add regexp to identify
-	common shell prompts that are not common filename or URL characters.
-	(ffap-file-at-point): Use the new regexp to strip the prompts from
-	the file names.  This is an issue mostly for user prompts that
-	don't have a trailing space and find-file-at-point is invoked from
-	within a shell inside Emacs.
-
-2003-09-24  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc-cvs.el (vc-cvs-parse-entry): Restore the code to compare time
-	stamps numerically, rather than textually.
-
-2003-09-24  Kenichi Handa  <handa@m17n.org>
-
-	* language/devan-util.el (devanagari-post-read-conversion):
-	* language/mlm-util.el (malayalam-post-read-conversion):
-	* language/tml-util.el (tamil-post-read-conversion):
-	Add autoload cookie.
-
-	* international/utf-8.el (utf-8-post-read-conversion):
-	Call post-read-conversion functions for Devanagari, Malayalam,
-	and Tamil.
-
-2003-09-23  Dave Love  <fx@gnu.org>
-
-	* Makefile.in (bootstrap-clean): Fix misplaced `!'.
-
-2003-09-22  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gud.el (perldb): Add gud-until to list of commands.
-	Update gud-remove.
-
-2003-09-22  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/sh-script.el (sh-mode-default-syntax-table):
-	Rename from sh-mode-syntax-table.  Call sh-mode-syntax-table directly.
-	(sh-mode-syntax-table-input): New variable.
-	(sh-require-final-newline): Don't use eval.
-	(sh-builtins, sh-leading-keywords, sh-other-keywords)
-	(sh-variables, sh-font-lock-keywords): Don't use eval.
-	(sh-set-shell): When setting require-final-newline,
-	treat value = `require-final-newline' as don't change it.
-	Set sh-mode-syntax-table locally based on
-	sh-mode-syntax-table-input and sh-mode-default-syntax-table.
-
-	* progmodes/compile.el (compile-internal):
-	Call compilation-set-window-height before setting window start.
-
-2003-09-22  Greg Hill  <ghill@synergymicro.com>  (tiny change)
-
-	* emacs-lisp/bytecomp.el (byte-compile-log-file):
-	Clear out byte-compile-last-warned-form.
-
-2003-09-22  Richard M. Stallman  <rms@gnu.org>
-
-	* woman.el (woman-file-name, woman-follow-word):
-	If current-word returns nil, use "".
-
-	* simple.el (eval-expression): Bind standard-output in to-buffer case.
-
-2003-09-22  Richard M. Stallman  <rms@gnu.org>
-
-	* emacs-lisp/lisp-mnt.el (lm-with-file):
-	Don't visit the file, just use insert-file-contents in temp buffer.
-
-2003-09-22  Jari Aalto  <jari.aalto@poboxes.com>
-
-	* emacs-lisp/lisp-mnt.el (lm-get-header-re):
-	Add surrounding \\( and \\) around the header, as in
-	for lm-history-header 'Change Log\\|History'.
-
-2003-09-22  John Paul Wallington  <jpw@gnu.org>
-
-	* progmodes/ld-script.el: Add Commentary section,
-	minor cleanup of file header.
-	(ld-script-font-lock-keywords): Doc fix.
-	(toplevel): Provide `ld-script' feature.
-
-2003-09-21  Kim F. Storm  <storm@cua.dk>
-
-	* scroll-bar.el (set-scroll-bar-mode): Initialize to
-	new built-in variable default-frame-scroll-bars.
-	(scroll-bar-mode): Use default-frame-scroll-bars when enabling
-	scroll-bar-mode; notably, use it instead of t when we toggle
-	scroll-bars on.
-	(toggle-scroll-bar): Use default-frame-scroll-bars.
-
-2003-09-19  Masatake YAMATO  <jet@gyve.org>
-
-	* pcvs.el (cvs-do-removal): Change the prompt depending on
-	`filter' value.
-
-2003-09-19  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* startup.el (command-line-1): Stop startup-echo-area-message
-	being hidden by "Loading image..." message.
-	(use-fancy-splash-screens-p, display-splash-screen):
-	Move display-graphic-p test from latter to former.
-
-	* progmodes/sh-script.el (sh-font-lock-keywords):
-	Highlight escaped EOLs differently from other backslash constructs.
-
-2003-09-19  Richard M. Stallman  <rms@gnu.org>
-
-	* emacs-lisp/edebug.el (edebug-var-status, edebug-restore-status):
-	New functions.
-	(edebug-enter, edebug-outside-excursion): Use them.
-
-	* emacs-lisp/bytecomp.el (byte-compile-warning-prefix):
-	Fix the condition for whether to print "In WHERE".
-
-2003-09-19  Jari Aalto  <jari.aalto@poboxes.com>
-
-	* finder.el (finder-mode-hook): New variable.
-	(finder-mode): Run hook finder-mode-hook
-
-2003-09-18  Masatake YAMATO  <jet@gyve.org>
-
-	* progmodes/ebrowse.el: Fix broken magic autoload comments.
-
-2003-09-17  Mario Lang  <mlang@delysid.org>
-
-	* progmodes/gud.el (perldb): Change gud-print from just "%e" to
-	"p %e" to actually print the value in the GUD buffer.
-
-2003-09-16  Miles Bader  <miles@gnu.ai.mit.edu>
-
-	From David Ponce <david.ponce@wanadoo.fr>:
-	* makefile.w32-in (DONTCOMPILE): Add loaddefs-boot.el.
-	(bootstrap-clean-CMD, bootstrap-clean-SH): Recreate loaddefs.el
-	from loaddefs-boot.el if necessary.
-
-2003-09-15  Zoltan Kemenczy  <kemenczy@rogers.com>
-
-	* progmodes/gud.el (gud-find-class): Make jdb work again since
-	cc-mode changed the syntactic information.
-
-2003-09-15  David Ponce  <david@dponce.com>
-
-	* recentf.el: (recentf-exclude): Accept predicates too.
-	(recentf-file-readable-p): New function.
-	(recentf-include-p): Handle predicates in recentf-exclude.
-	(recentf-add-file): Doc fix.  Use recentf-file-readable-p.
-	(recentf-cleanup): Likewise.
-	(recentf-save-list): Use write-file to handle backup of
-	recentf-save-file.
-
-2003-09-15  Miles Bader  <miles@gnu.ai.mit.edu>
-
-	* loaddefs-boot.el: Renamed from `loaddefs.el'
-	* Makefile.in (DONTCOMPILE): Add loaddefs-boot.el.
-	(bootstrap-clean): Recreate loaddefs.el from loaddefs-boot.el if
-	necessary.
-
-2003-09-13  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* electric.el (Electric-pop-up-window): For the `one-window' case,
-	no longer disconcertingly move point in the original buffer.
-
-2003-09-12  Stefan Monnier  <monnier@iro.umontreal.ca>
-
-	* emacs-lisp/tq.el (tq-create): Fix mixed up unquote style.
-
-2003-09-12  Eric Hanchrow  <offby1@blarg.net>  (tiny change)
-
-	* dired.el (dired-mode-map): Fix typo.
-
-2003-09-11  Richard M. Stallman  <rms@gnu.org>
-
-	* dired.el (dired-mode-map): Bind M-g to dired-goto-file.
-
-2003-09-11  Paul Pogonyshev  <pogonyshev@gmx.net>  (tiny change)
-
-	* window.el (kill-buffer-and-window): Remove `yes-or-no-p' so that
-	the function is less noisy.  Now only `kill-buffer' can ask questions.
-
-2003-09-10  Mario Lang  <mlang@delysid.org>
-
-	* battery.el: Update Commentary and Copyright.
-	(battery-linux-proc-acpi): Fix a bug in %b which made "!" never
-	appear due to wrong ordering of the expressions in `or'.
-
-2003-09-09  Lute Kamstra  <lute@gnu.org>
-
-	* misc.el (upcase-char): Fix docstring.
-	(zap-up-to-char): New command.
-
-2003-09-08  David Ponce  <david@dponce.com>
-
-	Ensure that recentf correctly updates the menu bar.
-	* recentf.el (recentf-menu-path,recentf-menu-before): Doc fix.
-	(recentf-menu-bar): New function.
-	(recentf-clear-data): Use it
-	(recentf-update-menu): Likewise.  Use easy-menu-add-item instead
-	of easy-menu-change.
-
-2003-09-08  Lute Kamstra  <lute@gnu.org>
-
-	* simple.el (size-indication-mode): New.
-	* bindings.el (mode-line-position): Add buffer size indicator.
-
-2003-09-04  Mario Lang  <mlang@delysid.org>
-
-	* battery.el (battery-linux-proc-acpi): New function.
-	(battery-status-function): Modify default value calculation to also
-	check for availability of ACPI.
-	(battery-echo-area-format): Ditto.
-	(battery-mode-line-format): Ditto.
-
-2003-09-06  Dave Love  <fx@gnu.org>
-
-	* ielm.el (ielm-mode-hook): Add :options.
-
-	* emacs-lisp/eldoc.el (eldoc-print-current-symbol-info-function): New.
-	(eldoc-print-current-symbol-info): Use it.
-
-2003-09-04  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gud-display1): Use gud-call to prevent extra prompt
-	being displayed in GUD buffer.
-	(gdb-idle-input-queue): Remove var.  Use just one queue.
-	(gdb-enqueue-idle-input,gdb-dequeue-idle-input):
-	Remove functions.  Use just one queue.
-	(gdb-prompt, gdb-subprompt, def-gdb-auto-update-trigger)
-	(gdb-invalidate-assembler, gdb-get-current-frame):
-	Modify functions.  Use just one queue.
-
-2003-09-04  Dave Love  <fx@gnu.org>
-
-	* cus-start.el: Add blink-cursor-alist.
-
-	* ruler-mode.el (ruler-mode-fill-column-char)
-	(ruler-mode-current-column-char): Use char-displayable-p,
-	not window-system.
-
-	* international/codepage.el ("mule-diag"): Add eval-after-load clause.
-
-	* language/european.el (windows-1252): Move from code-pages.
-
-	* language/cyrillic.el ("Windows-1251"): Delete.
-	("Bulgarian", "Belarusian"): Remove `features'.
-	(windows-1251): Move from code-pages.
-
-	* international/mule-diag.el (non-iso-charset-alist):
-	Remove `codepage' stuff.
-	(print-designation, list-coding-systems-1): Output fixes.
-
-	* international/code-pages.el (cp-make-translation-table)
-	(cp-valid-codes): Made defsubsts.
-	(cp-fix-safe-chars): Delete.
-	(mule-diag): Don't require.
-	(windows-1251, windows-1252): Remove to cyrillic.el/european.el.
-	(top-level): Check for defined coding system when defining
-	cp... aliases.  Change w32-add-charset-info test to avoid warning.
-	(non-iso-charset-alist): Defvar when compiling.
-	(cp-make-coding-system): Doc fix.
-
-2003-09-02  Jason Rumney  <jasonr@gnu.org>
-
-	* international/titdic-cnv.el (tsang-quick-converter): Fix broken
-	line-ends from CVS before doing conversion.
-
-2003-09-02  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/diary-lib.el (diary-header-line-flag)
-	(diary-header-line-format): New variables.
-	(list-diary-entries): Use them to set header line in simple diary.
-
-	* progmodes/sh-script.el (sh-font-lock-keywords): Use something
-	other than font-lock-string-face to highlight backslashes.
-
-2003-09-01  Jason Rumney  <jasonr@gnu.org>
-
-	* international/titdic-cnv.el (tit-read-key-value): Include \r in
-	regexp.
-
-2003-09-01  Dave Love  <fx@gnu.org>
-
-	* mouse.el (mouse-popup-menubar, mouse-skip-word): Doc fix.
-
-	* menu-bar.el (menu-bar-showhide-menu): Amend date and time label
-	and :help; also line and column numbers labels.
-
-	* international/mule-util.el (char-displayable-p): Move from
-	latin1-disp, rename and autoload.
-
-	* international/latin1-disp.el (latin1-char-displayable-p):
-	Now obsolete alias.  Replace uses with char-displayable-p.
-	(latin1-display-ucs-per-lynx): Fix last change.
-
-	* international/mule-cmds.el (standard-display-european-internal):
-	Don't use char code for Latin-1 NBSP.
-	<XFree86 4>: Unfrob NBSP display table.  Set display table to use
-	U+2018, U+2019 for `'.
-	(select-safe-coding-system): Message fix.
-
-2003-09-01  Kenichi Handa  <handa@m17n.org>
-
-	* international/fontset.el (setup-default-fontset): For Thai
-	font, specify "*" family.
-
-2003-09-01  Kevin Rodgers  <ihs_4664@yahoo.com>  (tiny change)
-
-	* progmodes/compile.el (previous-error): Accept a prefix
-	argument, similarly to next-error.
-
-2003-08-31  Masatake YAMATO  <jet@gyve.org>
-
-	* pcvs.el (cvs-do-removal): Use = instead of eq to check
-	the number of files.  Bind the number of files to a local
-	variable.  Suggested by Kevin Rodgers <ihs_4664@yahoo.com>.
-
-2003-08-30  Eli Zaretskii  <eliz@gnu.org>
-
-	* vc-hooks.el (vc-make-version-backup): Fix the change made on
-	2003-07-26: msdos-long-file-names is a function, not a variable.
-
-2003-08-29  Richard M. Stallman  <rms@gnu.org>
-
-	* mail/sendmail.el (sendmail-sync-aliases, mail-setup):
-	Do nothing with mail-personal-alias-file if it is nil.
-
-	* mail/mailabbrev.el (mail-abbrevs-sync-aliases):
-	Do nothing if mail-personal-alias-file is nil.
-
-	* term.el (term-exec-1): Bind coding-system-for-read.
-
-	* dired.el (dired-mouse-find-file-other-window):
-	Use dired-view-command-alist here, as in dired-view-file.
-	(dired-view-command-alist): Use %s to substitute file name.
-	Handle .ps_pages, .eps, .jpg, .gif, .png.
-
-2003-08-29  Paul Pogonyshev  <pogonyshev@gmx.net>  (tiny change)
-
-	* info.el (Info-mode-map): Bind S-tab and <backtab> to
-	`Info-prev-reference', instead of M-tab.
-
-2003-08-29  Martin Stjernholm  <mast@lysator.liu.se>
-
-	* simple.el (blink-matching-open): Work correctly on chars that
-	are designated as parens through the syntax-table text property.
-
-2003-08-29  Thierry Emery  <thierry.emery@club-internet.fr>  (tiny change)
-
-	* kinsoku.el (kinsoku-longer, kinsoku-shorter): Do not choose a
-	line break position in the middle of a non-kinsoku (e.g. latin)
-	word, making it skip until either a space or a character with
-	category "|".
-	(kinsoku-longer): Test for end of buffer.
-
-2003-08-28  Eli Zaretskii  <eliz@gnu.org>
-
-	* mail/rmail.el (rmail-convert-to-babyl-format):
-	Detect quoted-printable- and base64-encoded messages and decode them
-	automatically.  Set the message's encoding from the charset=
-	header, if any.  Decode base64-encoded messages in Mail format as well.
-
-2003-08-26  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* mail/smtpmail.el: Fix previous change.
-	(smtpmail-send-queued-mail): Set smtpmail-mail-address before
-	calling smtpmail-via-smtp.
-	(smtpmail-via-smtp): Add fall-back values for envelope-from.
-
-2003-08-26  John Paul Wallington  <jpw@gnu.org>
-
-	* image.el (image-jpeg-p): Don't search beyond length of data.
-
-2003-08-26  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-cmds.el (c-electric-brace): Work around for a
-	misfeature in `expand-abbrev' which caused electric keywords like
-	"else" to disappear if an open brace was typed directly afterwards.
-
-2003-08-26  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-vars.el (c-extra-types-widget): The doc string is
-	mandatory in `define-widget'.
-
-	* progmodes/cc-align.el, progmodes/cc-langs.el (c-lineup-math):
-	Don't align the operators "!=", "<=" and ">=" as assignment operators.
-
-	(c-assignment-operators): New language constant that only contains
-	the assignment operators.
-
-	(c-assignment-op-regexp): New language var used by `c-lineup-math'.
-
-2003-08-26  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-engine.el (c-just-after-func-arglist-p):
-	Safeguard against unbalanced sexps.
-
-2003-08-26  Terje Rosten  <terjeros@phys.ntnu.no>
-
-	* version.el (emacs-version): Check for gtk.  Include gtk version info.
-
-2003-08-25  John Paul Wallington  <jpw@gnu.org>
-
-	* man.el (Man-default-man-entry): Don't whizz past the section
-	number before looking for it.
-
-2003-08-24  Nick Roberts  <nick@nick.uklinux.net>
-
-	* progmodes/gud.el (gud-display-line): Don't set window-point if
-	source buffer is not visible.  (Only happens with M-x gdba.)
-
-	* gdb-ui.el (gdba): Remove gdb-quit (previously removed) from
-	documentation.
-	(gdb-source, gdb-source-info): Update to assembler unnecessary
-	as its done after each GDB command anyway.
-	(gdb-pre-prompt): Use with-current-buffer.
-	(gdb-insert-field): Add help-echo text.
-	(gdb-invalidate-assembler): Re-display of assembler now done in
-	gdb-info-breakpoints-custom.
-	(gdb-info-breakpoints-custom): Force re-display of assembler to
-	happen *after* update of breakpoints buffer.
-	(gdb-display-source-buffer): Don't choke if gdb-source-window
-	isn't visible.
-	(gdb-put-string, gdb-put-arrow): Remove free variables.
-
-2003-08-24  John Paul Wallington  <jpw@gnu.org>
-
-	* ibuffer.el (ibuffer-formats): Make name and size columns wider.
-
-	* man.el (Man-default-man-entry): Strip text properties when
-	snarfing parts of entry because `format' preserves properties.
-
-2003-08-24  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* files.el (file-newest-backup): Use `expand-file-name'.
-
-	* calendar/diary-lib.el (simple-diary-display, make-diary-entry):
-	Allow the diary to pop up a new frame, if needed.
-
-	* mail/sendmail.el (mail-specify-envelope-from): Doc change.
-	* mail/smtpmail.el (smtpmail-mail-address): Doc change.
-	(smtpmail-send-it): Make treatment of envelope-from consistent with
-	sendmail.el.
-
-	* progmodes/sh-script.el (sh-builtins): Add some bash builtins.
-	(sh-leading-keywords): Add the bash `time' reserved word.
-	(sh-variables): Add some bash variables.
-	(sh-add-completer): Fix nil branch of case statement.
-
-2003-08-24  Masatake YAMATO  <jet@gyve.org>
-
-	* progmodes/ld-script.el: New file.
-
-2003-08-23  Markus Rost  <rost@math.ohio-state.edu>
-
-	* vc-hooks.el (vc-ignore-vc-files, vc-master-templates): Doc fix.
-
-2003-08-23  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc-hooks.el (vc-ignore-vc-files, vc-master-templates):
-	Better explain obsolescence, and what to use instead.
-
-2003-08-23  Masatake YAMATO  <jet@gyve.org>
-
-	* pcvs.el (cvs-do-removal): Show the deleted file name
-	on the prompt.
-
-2003-08-20  Dave Love  <fx@gnu.org>
-
-	* international/mule.el (make-coding-system)
-	(set-buffer-file-coding-system): Doc fix.
-
-	* emacs-lisp/lisp-mode.el (common-lisp-mode): New.
-
-	* emacs-lisp/lisp.el (beginning-of-defun-function): Doc fix.
-
-	* international/utf-8.el (ucs-unicode-to-mule-cjk): Use smaller :size.
-
-	* international/utf-16.el: Add mime-text-unsuitable coding system
-	properties.
-
-	* international/latin1-disp.el (latin1-display): Add ?$,1s"(B.
-
-	* cus-edit.el: Add some :links.
-	(bib): Remove.
-
-	* textmodes/bib-mode.el (bib): Add :group external.
-
-2003-08-18  Luc Teirlinck  <teirllm@mail.auburn.edu>
-
-	* wid-edit.el (widget-echo-help): Make it handle expressions that
-	evaluate to strings.
-
-2003-08-18  Michael Mauger  <mmaug@yahoo.com>
-
-	Version 1.8.0 of sql-mode.  (Patch submitted 2003-06-21)
-
-	Simplify selection of SQL products to define highlighting and
-	interactive mode.  Includes detailed instructions on adding
-	support for new products.
-
-	* progmodes/sql.el (sql-product): New variable.  Identifies SQL
-	product for use in highlighting and interactive mode.
-	(sql-interactive-product): New variable.  SQL product for
-	sql-interactive-mode.
-	(sql-product-support): New variable.  Specifies product-specific
-	parameters to drive highlighting and interactive mode.
-	(sql-imenu-generic-expression): Add more object types.
-	(sql-sqlite-options): Correct comment.
-	(sql-ms-program): Use "osql" rather than "isql".
-	(sql-prompt-regexp, sql-prompt-length): Update comment.
-	(sql-mode-menu): Add "Start SQLi session" entry.
-	Replace Highlighting submenu with Product menu.  Fix Send Region entry.
-	(sql-mode-abbrev-table): Add abbreviations.  Support of
-	SYSTEM-FLAG on define-abbrev.  Support was removed with last
-	check-in; it now handles older Emacsen without the SYSTEM-FLAG.
-	(sql-mode-font-lock-object-name): Add font-lock pattern for object
-	names.
-	(sql-mode-ansi-font-lock-keywords): Set as default value.
-	(sql-mode-oracle-font-lock-keywords): Set as default value.
-	Support Oracle 9i keywords.
-	(sql-mode-postgres-font-lock-keywords): Set as default value.
-	(sql-mode-linter-font-lock-keywords): Set as default value.
-	(sql-mode-ms-font-lock-keywords): New variable.  Support Microsoft
-	SQLServer 2000.
-	(sql-mode-sybase-font-lock-keywords)
-	(sql-mode-interbase-font-lock-keywords)
-	(sql-mode-sqlite-font-lock-keywords)
-	(sql-mode-strong-font-lock-keywords)
-	(sql-mode-mysql-font-lock-keywords)
-	(sql-mode-db2-font-lock-keywords): New variables.  Default to ANSI
-	keywords.
-	(sql-mode-font-lock-defaults): Update comment.
-	(sql-product-feature): New function.  Returns feature associated
-	with a product from `sql-product-support' alist.
-	(sql-product-font-lock): New function.  Set font-lock support
-	based on `sql-product'.
-	(sql-add-product-keywords): New function.  Add font-lock rules to
-	product-specific keyword variables.
-	(sql-set-product): New function.  Set `sql-product' and apply
-	appropriate font-lock highlighting.
-	(sql-highlight-product): New function.  Set font-lock support
-	based on a product.  Also set mode name to include product name.
-	(sql-highlight-ansi-keywords, sql-highlight-oracle-keywords)
-	(sql-highlight-postgres-keywords, sql-highlight-linter-keywords):
-	Use `sql-set-product'.
-	(sql-highlight-ms-keywords)
-	(sql-highlight-sybase-keywords)
-	(sql-highlight-interbase-keywords)
-	(sql-highlight-strong-keywords)
-	(sql-highlight-mysql-keywords)
-	(sql-highlight-sqlite-keywords)
-	(sql-highlight-db2-keywords): New functions.  Use `sql-set-product'.
-	(sql-get-login): Prompt in the same order as the tokens.
-	(sql-mode): Uses `sql-product-highlight' and `sql-product-font-lock'.
-	(sql-product-interactive): New function.  Common portions of
-	product-specific interactive mode wrappers.
-	(sql-interactive-mode): Rewritten to use product features.
-	(sql-oracle, sql-sybase, sql-informix, sql-sqlite, sql-mysql)
-	(sql-solid, sql-ingres, sql-ms, sql-postgres, sql-interbase)
-	(sql-db2, sql-linter): Use `sql-product-interactive'.
-	(sql-connect-oracle, sql-connect-sybase, sql-connect-informix)
-	(sql-connect-sqlite, sql-connect-mysql, sql-connect-solid)
-	(sql-connect-ingres, sql-connect-postgres)
-	(sql-connect-interbase, sql-connect-db2, sql-connect-linter):
-	New functions.  Format command line parameters and invoke comint on
-	the appropriate interpreter.  Code was in the corresponding
-	`sql-xyz' function before.
-	(sql-connect-ms): New function.  Support -E argument to use
-	operating system credentials for authentication.
-
-2003-08-18  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule.el (encode-char): Fix for the ASCII case.
-
-2003-08-15  Kenichi Handa  <handa@m17n.org>
-
-	* international/fontset.el (setup-default-fontset): Change "*" to
-	nil in the specifications of font family.
-
-2003-08-18  Kim F. Storm  <storm@cua.dk>
-
-	* kmacro.el (kmacro-keymap): Group related bindings in
-	initialization for clarity.  Bind C-s to start macro.
-	Remove C-r binding.
-	(kmacro-initial-counter-value): New defvar to hold initial counter
-	value in case we set the value before defining a macro.
-	(kmacro-insert-counter): Clear kmacro-initial-counter-value..
-	(kmacro-set-counter): Set kmacro-initial-counter-value if we are
-	not defining or executing macro.  Doc fix.
-	(kmacro-add-counter): Clear kmacro-initial-counter-value.
-	(kmacro-view-last-item, kmacro-view-item-no): New defvars used to
-	temporarily view older elements on the macro ring without cycling
-	the ring.
-	(kmacro-display): Doc fix.
-	(kmacro-exec-ring-item): New helper function.
-	(kmacro-call-ring-2nd): Use it.
-	(kmacro-call-ring-2nd-repeat): Doc fix.
-	(kmacro-start-macro): Use (and clear) kmacro-initial-counter-value.
-	(kmacro-end-or-call-macro): Execute last viewed macro (using
-	kmacro-exec-ring-item) from ring if this follows
-	kmacro-view-macro.  This allows us to find a macro on the ring
-	with C-x C-k C-v C-v ... and execute it (with C-k) without cycling
-	the ring to bring it to the head of the ring.
-	(kmacro-bind-to-key): Doc fix (describe reserved bindings).
-	Allow binding to reserved keys without specifying C-x C-k prefix.
-	Ask for confirmation if entered key sequence is already bound to
-	a non-macro command.
-	(kmacro-view-macro): Repeating command will show older elements
-	on the macro ring; C-k will execute the last viewed macro.
-	(kmacro-view-macro-repeat): Doc fix.  Change its kmacro-repeat
-	property from 'ring to 'head.
-
-2003-08-17  Alan Shutko  <ats@acm.org>
-
-	* calendar/calendar.el (calendar-make-alist): Correct off-by-one
-	keeping December out of the alist.
-
-2003-08-17  Edward M. Reingold  <reingold@emr.cs.iit.edu>
-
-	* calendar/cal-move.el (calendar-goto-day-of-year): New function.
-	* calendar/calendar.el (calendar-mode-map): Bind it to key.
-	* calendar/cal-menu.el (calendar-mode-map): Add it to menu.
-	(calendar-flatten): New function.
-	(calendar-mouse-view-other-diary-entries)
-	(calendar-mouse-view-diary-entries): Rewritten to put any holidays
-	in the menu title and to show multi-line diary entries correctly
-	in the menu.
-
-2003-08-17  Luc Teirlinck  <teirllm@mail.auburn.edu>
-
-	* info.el (Info-scroll-prefer-subnodes): Add :version keyword to
-	defcustom, because the default was recently changed.
-
-2003-08-16  Richard M. Stallman  <rms@gnu.org>
-
-	* net/ange-ftp.el (ange-ftp-error): Add save-excursion.
-
-	* emacs-lisp/lisp-mode.el (eval-last-sexp-print-value):
-	New subroutine, broken out of eval-last-sexp-1.
-	(eval-last-sexp-1): Use eval-last-sexp-print-value.
-
-	* custom.el (custom-load-symbol): Load cus-load and cus-start first.
-
-	* dabbrev.el (dabbrev--safe-replace-match): Use with-no-warnings.
-
-	* simple.el (eval-expression): Use eval-last-sexp-print-value.
-
-2003-08-14  Jari Aalto  <jari.aalto@poboxes.com>
-
-	* progmodes/compile.el (compilation-error-regexp-alist):
-	Add Java ANt error detection as described in document
-	http://ant.apache.org/faq.html
-
-2003-08-12  Juri Linkov  <juri@jurta.org>  (tiny change)
-
-	* simple.el (backward-word, forward-to-indentation)
-	(backward-to-indentation): Argument changed to optional.
-	(next-line, previous-line): Use `or' instead of `unless'.
-
-2003-08-12  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* progmodes/ebnf-iso.el (ebnf-no-meta-identifier): Becomes a var
-	instead of a constant.
-
-2003-08-12  Markus Rost  <rost@math.ohio-state.edu>
-
-	* shell.el (shell): With prefix-arg, suggest a new buffer name.
-
-2003-08-12  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc-sccs.el (vc-sccs-state-heuristic): Fix parentheses.
-	(vc-sccs-workfile-version): Search the entire delta table, rather
-	than just the first entry, because that might be a deleted version.
-
-2003-08-11  Karl Fogel  <kfogel@red-bean.com>
-
-	* menu-bar.el (menu-bar-options-menu): Supply a body for the
-	[save-place] binding in the Options menu.  Have it require
-	'saveplace' and then toggle the variable manually, to avoid an
-	unbound variable error.  Thanks to <Sebastien.Kirche@sage.com>
-	for the bug report.
-
-2003-08-11  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gdb-insert-field, gdb-array-format1)
-	(gdb-info-breakpoints-custom, gdb-info-frames-custom)
-	(gdb-info-threads-custom): Add help-echo text.
-	(gdb-display-back): Don't use purecopy.
-	(gdb-info-breakpoints-custom, gdb-reset)
-	(gdb-assembler-custom): Use display-images-p to test if breakpoint
-	icons can be displayed.
-
-2003-08-11  Markus Rost  <rost@math.ohio-state.edu>
-
-	* textmodes/reftex-vars.el (reftex-auto-recenter-toc): Fix typo.
-
-2003-08-11  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* bookmark.el (bookmark-completing-read):
-	Return a string, instead of a list of one string.
-	Use a popup menu if activated from the mouse.
-	(bookmark-edit-annotation): Remove unused vars.
-	(bookmark-jump, bookmark-relocate, bookmark-insert-location)
-	(bookmark-rename, bookmark-insert, bookmark-delete): Adjust calls
-	to bookmark-completing-read.
-	(bookmark-bmenu-show-filenames, bookmark-bmenu-hide-filenames)
-	(bookmark-bmenu-mark, bookmark-bmenu-select, bookmark-bmenu-unmark)
-	(bookmark-bmenu-delete, bookmark-bmenu-list): Use inhibit-read-only
-	and erase-buffer.
-	(bookmark-menu-delete, bookmark-menu-rename, bookmark-menu-locate)
-	(bookmark-menu-jump, bookmark-menu-insert)
-	(bookmark-popup-menu-and-apply-function)
-	(bookmark-menu-popup-paned-bookmark-menu): Remove.
-	(bookmark-menu-build-paned-menu): Remove by folding it into
-	bookmark-menu-popup-paned-menu.
-	(menu-bar-bookmark-map): Move the define-key statements here.
-	Use the "non-menu" commands since they now pop up a menu if needed.
-	(bookmark-exit-hook-internal): Simplify.
-
-2003-08-11  Carsten Dominik  <dominik@sand.science.uva.nl>
-
-	* reftex-toc.el (reftex-toc-rename-label): New function.
-	(reftex-toc-check-docstruct): New function.
-
-	* reftex.el (reftex-region-active-p): New function.
-
-	* reftex-parse.el (reftex-locate-bibliography-files): Improved the
-	regexp to find the \bibliography macro.
-
-	* reftex-vars.el (reftex-section-levels): Removed subsubparagraph,
-	which does not exist in LaTeX.
-	(reftex-cite-format-builtin): Added amsrefs support.
-	(reftex-toc-confirm-promotion): New option
-
-	* reftex-toc.el
-	(reftex-toc): Use `reftex-toc-split-windows-fraction'.
-	(reftex-toc-demote, reftex-toc-promote)
-	(reftex-toc-do-promote, reftex-toc-promote-prepare)
-	(reftex-toc-promote-action, reftex-toc-extract-section-number)
-	(reftex-toc-newhead-from-alist)
-	(reftex-toc-load-all-files-for-promotion): New functions.
-	(reftex-toc-help): Added description of new keys.
-	(reftex-toc-split-windows-fraction): New option.
-	(reftex-recenter-toc-when-idle): Search *toc* window on all
-	visible frames.
-	(reftex-toc): Additional parameter REUSE
-	(reftex-toc-recenter): Remember current frame.  Call `reftex-toc'
-	with REUSE argument.
-	(reftex-recenter-toc-when-idle): Reset `current-prefix-arg' for
-	the call of `reftex-toc'.
-	(reftex-make-separate-toc-frame): New function .
-	(reftex-toc-recenter): When called with triple prefix arg, call
-	`reftex-make-separate-toc-frame' first.
-	(reftex-toc-toggle-dedicated-frame): New command.
-	(reftex-toc-quit): Adapted to delete frame when called in
-	dedicated frame.
-
-	* reftex-index.el (reftex-index-phrase-match-is-indexed): Check
-	all enclosing macros.
-
-
-2003-08-08  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* progmodes/ebnf2ps.el (ebnf-total, ebnf-nprod): Move defvar before
-	first use.
-
-2003-08-07  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* progmodes/ebnf2ps.el (ebnf-begin-job): Code fix.
-
-2003-08-06  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/calendar.el (list-diary-entries-hook)
-	(diary-display-hook, nongregorian-diary-listing-hook)
-	(mark-diary-entries-hook, nongregorian-diary-marking-hook):
-	Add some customize options for these hooks.
-	(calendar-abbrev-construct): Don't try to take a substring longer
-	than the original string.
-
-2003-08-05  Richard M. Stallman  <rms@gnu.org>
-
-	* emacs-lisp/testcover.el (noreturn): Report error if does return.
-	(testcover-reinstrument-clauses): Doc fix.
-
-	* emacs-lisp/warnings.el: Doc fixes, args renamed.
-	(warning-type-format): Rename from warning-group-format.
-
-	* emacs-lisp/bytecomp.el (byte-compile-not-obsolete-var): New var.
-	(byte-compile-variable-ref): Handle byte-compile-not-obsolete-var.
-	(byte-compile-defvar): Bind byte-compile-not-obsolete-var
-	to prevent warnings about defvar for an obsolete variable.
-
-	* emacs-lisp/bytecomp.el (byte-compile-log-warning):
-	warning-group-format renamed to warning-type-format.
-
-	* subr.el (read-passwd): Use clear-string instead of fillarray.
-
-	* edmacro.el (edmacro-format-keys): Use edmacro-sanitize-for-string.
-	Use vconcat instead of concat.
-	(edmacro-sanitize-for-string): New function.
-
-2003-08-05  Dave Love  <fx@gnu.org>
-
-	* cus-start.el: Add open-paren-in-column-0-is-defun-start,
-	line-number-display-limit-width.
-
-	* textmodes/tex-mode.el (tex-dvi-view-command): Fix quoted quotes.
-
-2003-08-05  Kenichi Handa  <handa@m17n.org>
-
-	* international/code-pages.el: Don't require mule-diag.
-
-	* international/mule-diag.el (non-iso-charset-alist):
-	Add autoload cookie.
-
-	* language/devan-util.el (dev-glyph-order): Add an entry for the
-	glyph code #xC4.
-
-2003-08-03  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/calendar.el (diary-file, diary-file-name-prefix)
-	(european-calendar-style, diary-date-forms)
-	(calendar-day-name-array, calendar-month-name-array): Doc change.
-	(generate-calendar-month): Adapt for new behavior of
-	`calendar-day-name' function.
-	(calendar-abbrev-length, calendar-day-abbrev-array)
-	(calendar-month-abbrev-array): New variables.
-	(calendar-abbrev-construct): New function.
-	(calendar-day-name, calendar-month-name): Use new abbrev arrays,
-	rather than fixing abbrevs at some width.  Calling syntax change.
-	(calendar-make-alist): Use abbrev arrays.  Calling syntax change.
-	(calendar-date-string): Adapt for new behaviors of
-	`calendar-day-name' and `calendar-month-name' functions.
-
-	* calendar/diary-lib.el (list-diary-entries): Adapt for new
-	behavior of `calendar-day-name' and `calendar-month-name' functions.
-	(diary-name-pattern): Use abbrev arrays, rather than fixing
-	abbrevs at three chars.  Calling syntax change.
-	(mark-diary-entries): Adapt for new behaviors of
-	`diary-name-pattern' and `calendar-make-alist' functions.
-	(fancy-diary-font-lock-keywords): Adapt for new behavior of
-	`diary-name-pattern' function.
-	(font-lock-diary-date-forms): Use abbrev arrays, rather than
-	fixing abbrevs at three chars.  Calling syntax change.
-	(cal-hebrew, cal-islam): Require when compiling.
-	(diary-font-lock-keywords): Adapt for new behavior of
-	`font-lock-diary-date-forms' function.
-
-	* calendar/cal-hebrew.el: Reposition some code so defined before used.
-	(calendar-hebrew-month-name-array-common-year)
-	(calendar-hebrew-month-name-array-leap-year): Add doc strings.
-	(list-hebrew-diary-entries): Adapt for new behaviors of
-	`calendar-day-name' and `add-to-diary-list' functions.
-	(mark-hebrew-diary-entries): Adapt for new behaviors of
-	`diary-name-pattern' and `calendar-make-alist' functions.
-
-	* calendar/cal-islam.el (calendar-islamic-month-name-array):
-	Add doc string.
-	(list-islamic-diary-entries): Adapt for new behaviors of
-	`calendar-day-name' and `add-to-diary-list' functions.
-	(mark-islamic-diary-entries): Adapt for new behaviors of
-	`diary-name-pattern' and `calendar-make-alist' functions.
-
-	* calendar/cal-menu.el (cal-menu-update): Adapt for new behavior of
-	`calendar-month-name' function.
-
-	* calendar/cal-coptic.el (coptic-name): defvar rather than defconst.
-
-	* calendar/solar.el (solar-seasons-data): Move definition before use.
-
-	* calendar/cal-tex.el (cal-tex-day-name-format): Doc fix.
-	(cal-tex-LaTeX-hourbox): Move definition before use.
-
-	* calendar/cal-china.el, cal-hebrew.el, cal-islam.el
-	* cal-julian.el, cal-menu.el, cal-move.el, holidays.el
-	* lunar.el, solar.el (displayed-month, displayed-year):
-	Define for compiler.
-
-2003-08-03  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-mode.el (c-init-language-vars-for): Add argument
-	MODE.  Renamed from c-init-c-language-vars'.
-	(c-initialize-cc-mode): Change accordingly.
-	(c-common-init): Ditto.
-	(c-mode): Ditto.
-	(c++-mode): Use `c-init-language-vars-for'.
-	(objc-mode): Ditto.
-	(java-mode): Ditto.
-	(idl-mode): Ditto.
-	(pike-mode): Ditto.
-	(awk-mode): Ditto.
-
-2003-08-03  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-engine.el (c-end-of-current-token): Return whether
-	or not the point moved.
-
-	(c-search-decl-header-end): Don't trip up on operator identifiers
-	in C++ and operators like == in all languages.
-
-	* progmodes/cc-engine.el (c-backward-to-decl-anchor):
-	Detect leading labels correctly.
-
-2003-08-02  Andreas Schwab  <schwab@suse.de>
-
-	* textmodes/ispell.el: Don't redo key bindings on loading, put
-	them only in loaddefs.el.
-	* bookmark.el: Likewise.
-	* dabbrev.el: Likewise.
-	* emerge.el: Likewise.
-
-	* apropos.el (apropos-words-to-regexp): Only add `wild' if `words'
-	has more than one member.
-
-	* progmodes/sh-script.el (sh-mode): Don't set mode-class property.
-
-2003-08-01  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* lpr.el (printify-region): It was ending conversion before the
-	expected position.  Reported by Keiichi Suzuki <keiichi@nanap.org>.
-
-2003-07-31  John Paul Wallington  <jpw@gnu.org>
-
-	* net/browse-url.el (browse-url-epiphany): Doc fix.
-
-2003-07-30  Kenichi Handa  <handa@m17n.org>
-
-	* international/fontset.el (setup-default-fontset):
-	Change registry names of Akurti fonts.
-
-2003-07-29  Jesper Harder  <harder@ifa.au.dk>  (tiny change)
-
-	* comint.el (comint-read-noecho): Use `clear-string' instead of
-	`fillarray'.
-
-2003-07-29  Thomas W Murphy  <twm@andrew.cmu.edu>  (tiny change)
-
-	* outline.el (outline-mode-hook): Add defvar.
-
-2003-07-28  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gdb-setup-windows, gdb-restore-windows):
-	Restore assembler in source window if that is what has been selected.
-	(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)
-
-	* progmodes/compile.el (compilation-environment): New user variable.
-	(compile-internal): Respect it.
-
-2003-07-23  Masatake YAMATO  <jet@gyve.org>
-
-	* progmodes/gud.el (gdb-script-font-lock-keywords):
-	Put `font-lock-function-name-face' on a symbol which includes
-	`-' like `hook-run'.  Put font-lock-variable-name-face
-	on a symbol starting with $.
-
-2003-07-27  Markus Rost  <rost@math.ohio-state.edu>
-
-	* files.el (set-visited-file-name): Use truename for buffer-file-name.
-
-2003-07-26  Markus Rost  <rost@math.ohio-state.edu>
-
-	* vc-hooks.el (vc-file-not-found-hook): Doc fix.
-
-2003-07-26  Andre Spiegel  <spiegel@gnu.org>
-
-	* vc-hooks.el (vc-default-registered, vc-make-version-backup):
-	Use with-no-warnings.
-	(vc-file-not-found-hook): Add this to find-file-not-found-functions,
-	rather than to find-file-not-found-hook, which doesn't exist.
-
-2003-07-26  Markus Rost  <rost@math.ohio-state.edu>
-
-	* international/quail.el (quail-translate-key): Fix previous change.
-
-2003-07-25  John Paul Wallington  <jpw@gnu.org>
-
-	* server.el (server-start): Check `server-process' is non-nil
-	before killing it to avoid killing current buffer's process.
-
-	* simple.el (choose-completion-string): Use `minibufferp';
-	test `completion-reference-buffer' if `buffer' arg is nil.
-	(push-mark): Use `when' and `unless'.
-	(pop-mark): Use `when'.
-
-	* mouse-sel.el (mouse-sel-get-selection-function):
-	Check `x-last-selected-text-primary'.  Don't barf if it or
-	`x-last-selected-text' aren't bound.
-
-2003-07-25  Kevin Rodgers  <ihs_4664@yahoo.com>  (tiny change)
-
-	* menu-bar.el (menu-bar-tools-menu): Minor change in strings.
-
-2003-07-23  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* vc-svn.el (vc-svn-diff-switches): Don't default to vc-diff-switches.
-
-2003-07-23  John Paul Wallington  <jpw@gnu.org>
-
-	* tooltip.el (defface tooltip): Inherit from variable-pitch.
-
-2003-07-23  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* emacs-lisp/derived.el (define-derived-mode): Mention hook in doc
-	string.  Defvar the derived hook.
-
-	* macros.el (insert-kbd-macro): Escape double quote character.
-	From Thomas W Murphy <twm@andrew.cmu.edu>.
-
-2003-07-22  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* textmodes/fill.el (fill-comment-paragraph): Construct a regexp
-	to match the specific mark rather than reusing comment-start-skip.
-
-2003-07-22  Thien-Thi Nguyen  <ttn@gnu.org>
-
-	* progmodes/hideshow.el (hs-special-modes-alist):
-	Clarify MDATA-SELECTOR doc; nfc.  Thanks to Michael Ernst.
-
-2003-07-21  Markus Rost  <rost@math.ohio-state.edu>
-
-	* progmodes/idlwave.el (idlwave-comment-indent-char): Fix default
-	value using ?\s.
-
-2003-07-21  John Paul Wallington  <jpw@gnu.org>
-
-	* subr.el (with-selected-window): Add closing paren.
-
-2003-07-21  Richard M. Stallman  <rms@gnu.org>
-
-	* emacs-lisp/lisp-mode.el (emacs-lisp-mode): Use run-mode-hooks.
-	(lisp-mode): Likewise.
-
-	* subr.el (with-selected-window): Copy code form save-selected-window
-	so as to call select-window with norecord arg.
-	(dynamic-completion-table): Doc fix.
-	(lazy-completion-table): Doc fix.
-
-	* international/mule-cmds.el (set-locale-environment):
-	langinfo renamed to locale-info.
-
-	* international/mule.el (auto-coding-functions): Doc fix.
-
-2003-07-21  Kenichi Handa  <handa@m17n.org>
-
-	* international/quail.el (quail-translate-key):
-	Update quail-current-str correctly.
-
-2003-07-21  Andreas Schwab  <schwab@suse.de>
-
-	* progmodes/sh-script.el (sh-mode-syntax-table): Change syntax of
-	?, to "_".
-
-2003-07-20  Kai Gro,A_(Bjohann  <kai.grossjohann@gmx.net>
-	Version 2.0.36 of Tramp released.
-
-	* net/tramp.el (tramp-default-password-end-of-line): Rename from
-	tramp-password-end-of-line.
-	(tramp-password-end-of-line): New method parameter.
-	(tramp-get-password-end-of-line): Function to access method
-	parameter `tramp-password-end-of-line', or variable
-	`tramp-default-password-end-of-line' (default value).
-	(tramp-methods): Add entries for new parameter
-	tramp-password-end-of-line.
-	(tramp-enter-password): Use new function
-	`tramp-get-password-end-of-line'.
-	(tramp-handle-insert-file-contents): Do not
-	unconditionally inhibit the file operation file-local-copy, only
-	do that when the inhibit-file-name-operation is currently
-	insert-file-contents.  This fixes finding remote CVS-controlled
-	files.  (It would barf on inserting the CVS/Entries file
-	literally, because the file-local-copy handler wasn't called.)
-	(tramp-handle-shell-command): Support optional third arg ERROR-BUFFER.
-	(tramp-sh-extra-args): Adapt defcustom type to XEmacs.
-	(tramp-initial-commands): New variable.
-	(tramp-process-initial-commands): New function, using the variable.
-	(tramp-open-connection-setup-interactive-shell): Call the new function.
-	(tramp-buffer-name, tramp-debug-buffer-name): Always put the
-	method into the buffer name, never use nil.  Reported by Hanak
-	David <dhanak@inf.bme.hu>.
-	(tramp-open-connection-setup-interactive-shell): Erase buffer
-	before sending "stty -onlcr".
-
-	* net/tramp-vc.el (vc-workfile-unchanged-p): Add comment.
-
-2003-07-19  Markus Rost  <rost@math.ohio-state.edu>
-
-	* textmodes/artist.el (artist-erase-char): Fix default value using ?\s.
-
-2003-07-19  John Paul Wallington  <jpw@gnu.org>
-
-	* textmodes/artist.el (artist-butlast-fn, artist-draw-sline)
-	(artist-draw-rect, artist-draw-square): Doc fixes.
-
-	* textmodes/enriched.el (enriched-decode-display-prop): Doc fix.
-
-	* textmodes/two-column.el (2C-mode-line-format): Doc fix.
-
-2003-07-19  Kenichi Handa  <handa@m17n.org>
-
-	* international/kkc.el (kkc-show-conversion-list-update):
-	Highlight the correct candidate in the message.
-
-2003-07-18  John Paul Wallington  <jpw@gnu.org>
-
-	* simple.el (current-word): Don't include punctuation char when
-	`really-word' arg is non-nil.
-
-2003-07-17  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/awk-mode.el: Obsoleted by the AWK support in CC Mode -
-	moved to the directory obsolete.
-
-2003-07-16  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* info.el (Info-menu-entry-name-re): Allow newlines in
-	menu entry names.
-
-	* emacs-lisp/syntax.el (syntax-ppss-flush-cache): Rename from
-	syntax-ppss-after-change-function.
-	(syntax-ppss-after-change-function): New alias.  Update uses.
-	(syntax-ppss): Catch the case where the buffer is narrowed.
-
-2003-07-16  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-defs.el (c-langelem-sym, c-langelem-pos)
-	(c-langelem-2nd-pos): Add accessor functions for syntactic elements.
-
-2003-07-16  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-engine.el (c-literal-faces): Declare as a variable
-	since it might be modified.
-
-	* progmodes/cc-langs.el (c++-make-template-syntax-table)
-	(c-syntactic-ws-start, c-syntactic-ws-end): Give more consistent
-	names to these language constants.
-
-2003-07-15  Kim F. Storm  <storm@cua.dk>
-
-	* apropos.el (apropos-sort-by-scores): Rename from apropos-show-scores.
-	All uses changed.
-
-2003-07-14  Mark A. Hershberger  <mah@everybody.org>
-
-	* xml.el (xml-parse-tag, xml-parse-file, xml-parse-region):
-	Namespace support.
-
-2003-07-13  Juanma Barranquero  <lektu@terra.es>
-
-	* frame.el (modify-all-frames-parameters): Reinstall (copyright
-	papers received).
-
-2003-07-13  Karl Eichwalder  <ke@suse.de>
-
-	* textmodes/po.el (po-find-charset): White space at the start of the
-	Content-Type field body is non-mandatory.
-
-2003-07-13  Masayuki Ataka  <ataka@milk.freemail.ne.jp>  (tiny change)
-
-	* textmodes/texinfo.el (texinfo-section-list):
-	Append appendixsection; a synonym for appendixsec.
-
-2003-07-13  Jari Aalto  <jari.aalto@poboxes.com>
-
-	* man.el (Man-translate-cleanup): New.
-	(Man-translate-references): Call `Man-translate-cleanup' to clean
-	leading, trailing and middle spaces.
-
-2003-07-13  Lars Hansen  <larsh@math.ku.dk>
-
-	* 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)
-
-	* mail/smtpmail.el (smtpmail-send-it): Create smtpmail-queue-dir if
-	it doesn't exist.
-
-2003-07-12  Richard M. Stallman  <rms@gnu.org>
-
-	* progmodes/cc-engine.el (c-declare-lang-variables): Don't use mapcan.
-
-	* progmodes/cc-defs.el (c-make-keywords-re):
-	Don't use delete-duplicates.
-	(c-lang-const): Don't use mapcan.
-
-	* apropos.el (apropos-show-scores): Make it customizable.
-	Document new meaning.
-	(apropos): Compute scores from symbols.
-	(apropos-print): Don't sort by scores if apropos-show-scores is nil.
-
-2003-07-11  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* ps-bdf.el: Fix copyright line.
-	(bdf-directory-list): Fix initialization code.
-
-2003-07-11  John Paul Wallington  <jpw@gnu.org>
-
-	* emacs-lisp/ring.el (ring-empty-p): Use `zerop'.
-	(ring-p, ring-plus1, ring-minus1, ring-length, ring-index)
-	(ring-empty-p, ring-size, ring-copy, ring-ref): Doc fixes.
-
-2003-07-11  NAKAJIMA Mikio  <minakaji@namazu.org>  (tiny change)
-
-	* emacs-lisp/ring.el (ring-elements): Doc fix.
-
-2003-07-11  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/timeclock.el (timeclock-relative)
-	(timeclock-ask-before-exiting, timeclock-use-display-time):
-	Doc changes.
-	(timeclock-modeline-display): Give a message if
-	`timeclock-use-display-time' is non-nil but `display-time-mode'
-	is not active.
-
-2003-07-11  Kenichi Handa  <handa@m17n.org>
-
-	* international/mule-cmds.el (set-language-environment):
-	Set current-language-environment to the correct string.
-
-2003-07-10  Vinicius Jose Latorre  <viniciusjl@ig.com.br>
-
-	* ps-print.el: Print line number correctly in a region.  Reported by
-	Tim Allen <timallen@ls83.fsnet.co.uk>.
-	(ps-print-version): New version number (6.6.2).
-	(ps-printing-region): Code fix.
-
-2003-07-10  John Paul Wallington  <jpw@gnu.org>
-
-	* progmodes/etags.el (visit-tags-table-buffer): Add autoload cookie;
-	this function can be called from `add-completions-from-tags-table'.
-
-2003-07-10  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* calendar/timeclock.el (timeclock-use-display-time)
-	(timeclock-day-over-hook, timeclock-workday-remaining)
-	(timeclock-status-string, timeclock-when-to-leave)
-	(timeclock-when-to-leave-string, timeclock-log-data)
-	(timeclock-find-discrep, timeclock-day-base)
-	(timeclock-generate-report, timeclock-visit-timelog): Doc fix.
-	(timeclock-modeline-display): Set the variable
-	`timeclock-modeline-display'.
-	(timeclock-update-modeline): Doc fix.  Respect value of
-	`timeclock-relative'.
-
-2003-07-09  Richard M. Stallman  <rms@gnu.org>
-
-	* textmodes/reftex-parse.el (reftex-all-document-files):
-	Add autoload cookie.
-
-	* textmodes/reftex.el (reftex-all-document-files): Delete autoload.
-	(reftex-scanning-info-available-p): Add autoload cookie.
-
-	* international/mule-cmds.el
-	(set-display-table-and-terminal-coding-system): Delete duplicate
-	aset on standard-display-table.
-
-	* view.el (view-file): If existing buffer's major mode is special,
-	don't go into view mode.
-
-	* dired.el (dired-move-to-filename-regexp): Allow quote in months.
-
-2003-07-08  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-engine.el (c-guess-basic-syntax): Do not do hidden
-	buffer changes; there's third party code that calls this function
-	directly.
-
-2003-07-08  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-fonts.el (javadoc-font-lock-keywords)
-	(autodoc-font-lock-keywords): Don't byte compile on font lock
-	initialization when running from byte compiled files.
-
-2003-07-08  Alan Mackenzie  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-engine.el: Fix AWK mode indentation when previous
-	statement ends with auto-increment "++".
-
-2003-07-08  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist)
-	(c-lang-variable-inits, c-lang-variable-inits-tail): The values of
-	these are changed, so declare them as variables and not constants.
-
-2003-07-08  Markus Rost  <rost@math.ohio-state.edu>
-
-	* subr.el (dolist, dotimes): Doc fix.
-
-2003-07-08  Kim F. Storm  <storm@cua.dk>
-
-	* international/mule-cmds.el
-	(set-display-table-and-terminal-coding-system): Don't break
-	bootstrap if standard-display-table isn't setup yet.
-
-2003-07-07  Richard M. Stallman  <rms@gnu.org>
-
-	* ehelp.el (ehelp-command): Use defalias to define ehelp-command.
-	Give it a doc string, and autoload it.
-
-	* desktop.el (desktop-buffer-info, desktop-buffer-mh):
-	Use with-no-warnings.
-
-	* info.el (Info-search): If find invisible text, search again.
-
-	* isearch.el (search-whitespace-regexp): Add a shy group around it.
-
-	* man.el (Man-name-regexp): Match + as part of name.
-
-	* simple.el (visible-mode): Rename from vis-mode.
-	(vis-mode-saved-buffer-invisibility-spec): Doc fix.
-
-	* simple.el (current-word): New arg REALLY-WORD specifies
-	don't include punctuation chars.
-
-	* emacs-lisp/debug.el (debug, debugger-env-macro):
-	Use with-no-warnings while accessing and binding unread-command-char.
-
-	* international/mule-cmds.el
-	(set-display-table-and-terminal-coding-system): Use explicit loop
-	instead of calling standard-display-default.
-
-	* net/ange-ftp.el (ange-ftp-file-symlink-p):
-	Use condition-case to catch error in ange-ftp-get-files.
-
-	* net/browse-url.el (browse-url-browser-function):
-	Add alternative for Epiphany.
-	(browse-url-epiphany-program, browse-url-epiphany-arguments)
-	(browse-url-epiphany-startup-arguments)
-	(browse-url-epiphany-new-window-is-tab): New variables.
-	(browse-url-epiphany, browse-url-epiphany-sentinel): New functions.
-
-	* progmodes/compile.el (compile-auto-highlight): Default now t.
-	(compile): Doc fix.
-	(compilation-next-error): Fix previous change.
-
-	* textmodes/tex-mode.el (tex-main-file): Use with-no-warnings.
-
-	* textmodes/sgml-mode.el (xml-mode): Add autoload cookie.
-
-2003-07-07  Nick Roberts  <nick@nick.uklinux.net>
-
-	* gdb-ui.el (gdb-source-info): Display current frame when
-	attaching to an existing process.
-	(gdb-setup-windows, gdb-source-info): Start with gud-comint-buffer
-	while laying out windows when attaching to an existing process.
-
-2003-07-07  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* info.el (Info-menu): Use Info-menu-entry-name-re.
-
-2003-07-06  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* vc-hooks.el (vc-stay-local, vc-stay-local-p): Move from vc.el.
-	* vc.el (vc-stay-local, vc-stay-local-p): Move to vc-hooks.el.
-
-	* info.el (Info-menu-entry-name-re): Be careful to avoid multiple ways
-	to match the same text.
-
-2003-07-06  John Paul Wallington  <jpw@gnu.org>
-
-	* vc.el (vc-annotate-offset): Move defvar up.
-
-2003-07-06  Kim F. Storm  <storm@cua.dk>
-
-	* info.el (Info-menu-entry-name-re): Add `:' to second [] part.
-	This should fix the infinite loop when extracting menu names.
-
-2003-07-05  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* files.el (auto-mode-alist, interpreter-mode-alist):
-	Remove entries to CC Mode modes to avoid duplicates; they are now added
-	with autoload directives in cc-mode.el.
-
-2003-07-05  Martin Stjernholm  <bug-cc-mode@gnu.org>
-
-	* progmodes/cc-langs.el, progmodes/cc-styles.el (c-style-alist)
-	(c-lang-variable-inits, c-lang-variable-inits-tail): The values of
-	these are changed, so declare them as variables and not constants.
-
-	* progmodes/cc-mode.el: Fix some autoload problems: Try to
-	ensure that the entry for ".c" extension comes before the one for
-	".C" on `auto-mode-alist', to behave better on case insensitive OS:es.
-	Fix incorrect entries that were added to `interpreter-mode-alist'.
-	Move the autoload directives for AWK to the top level since they
-	aren't recognized anywhere else.  Do not use the new AWK mode doc
-	in the autoload form for the old AWK mode.
-
-2003-06-30  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
-
-	* textmodes/bibtex.el (bibtex-sort-entry-class): New entry catch-all.
-	(bibtex-sort-ignore-string-entries): Default value t.
-	(bibtex-entry-kill-ring-max): Reintroduce as it was removed
-	erroneously in previous version.
-	(bibtex-string-files): Docstring reflects new parsing scheme.
-	(bibtex-autokey-transcriptions): Merge some rewrite entries, fix
-	docstring, add # as one of the chars to crush
-	(bibtex-autokey-prefix-string, bibtex-autokey-names)
-	(bibtex-autokey-names-stretch, bibtex-autokey-additional-names)
-	(bibtex-autokey-name-change-strings)
-	(bibtex-autokey-name-case-convert, bibtex-autokey-name-length)
-	(bibtex-autokey-name-separator, bibtex-autokey-year-length)
-	(bibtex-autokey-use-crossref, bibtex-autokey-titlewords)
-	(bibtex-autokey-title-terminators)
-	(bibtex-autokey-titlewords-stretch)
-	(bibtex-autokey-titleword-ignore)
-	(bibtex-autokey-titleword-case-convert)
-	(bibtex-autokey-titleword-abbrevs)
-	(bibtex-autokey-titleword-abbrevs)
-	(bibtex-autokey-titleword-change-strings)
-	(bibtex-autokey-titleword-length)
-	(bibtex-autokey-titleword-separator)
-	(bibtex-autokey-name-year-separator)
-	(bibtex-autokey-year-title-separator)
-	(bibtex-autokey-before-presentation-function)
-	(bibtex-entry-type-history, bibtex-entry-maybe-empty-head):
-	Fix docstring.
-	(bibtex-strings, bibtex-reference-keys):
-	Use lazy-completion-table and make-variable-buffer-local.
-	(bibtex-sort-entry-class-alist): Use downcase, account for catch-all.
-	(bibtex-braced-string-syntax-table)
-	(bibtex-quoted-string-syntax-table): New variables.
-	(bibtex-parse-nested-braces): Remove.
-	(bibtex-parse-field-string): Use syntax table and forward-sexp.
-	(bibtex-parse-association): Simplify.
-	(bibtex-parse-field-name): Obey bibtex-autoadd-commas.
-	(bibtex-parse-field-text): Simplify.
-	(bibtex-search-forward-field, bibtex-search-backward-field):
-	argument BOUND can take value t.
-	(bibtex-start-of-field, bibtex-start-of-name-in-field)
-	(bibtex-end-of-name-in-field, bibtex-end-of-field)
-	(bibtex-start-of-text-in-field, bibtex-end-of-text-in-field)
-	(bibtex-start-of-text-in-string, bibtex-end-of-text-in-string)
-	(bibtex-end-of-string, bibtex-type-in-head): Use defsubst.
-	(bibtex-skip-to-valid-entry): Return buffer position of beginning
-	and ending of entry.  Update for changes of bibtex-search-entry.
-	Simplify.
-	(bibtex-map-entries): FUN is called with three arguments.
-	(bibtex-search-entry): Return a cons pair with buffer positions of
-	beginning and end of entry.
-	(bibtex-enclosing-field): Simplify.
-	(bibtex-format-entry): Use booktitle to set a missing title.
-	(bibtex-autokey-get-names): Fiddle with regexps.
-	(bibtex-generate-autokey): Use identity.
-	(bibtex-parse-keys): Use simplified parsing algorithm if
-	bibtex-parse-keys-fast is non-nil.  Simplify.  Change order of
-	arguments.  Return alist of keys.
-	(bibtex-parse-strings): Simplify.  Return alist of strings.
-	(bibtex-complete-string-cleanup): Fix docstring.
-	(bibtex-read-key): New function.
-	(bibtex-mode): Fix docstring.  Do not parse for keys and
-	strings when the mode is entered.  Set fill-paragraph-function to
-	bibtex-fill-field.  Setup font-lock-mark-block-function the way
-	font-lock intended.
-	(bibtex-entry): Use bibtex-read-key.  Obey bibtex-autofill-types.
-	(bibtex-parse-entry, bibtex-autofill-entry): New functions.
-	(bibtex-print-help-message, bibtex-remove-OPT-or-ALT)
-	(bibtex-Preamble): Avoid hard coded constants.
-	(bibtex-make-field): Fix docstring.  Simplify.
-	(bibtex-beginning-of-entry): Always return new position of point.
-	(bibtex-end-of-entry): Rearrange cond clauses.
-	(bibtex-count-entries, bibtex-validate, bibtex-reformat):
-	Update for changes of bibtex-map-entries.
-	(bibtex-ispell-abstract): Do not move point.
-	(bibtex-entry-index): Use downcase.  Simplify.
-	(bibtex-lessp): Handle catch-all.
-	(bibtex-find-crossref): Turn into a command.
-	(bibtex-find-entry): Simplify.  Use bibtex-read-key.  Fix regexp.
-	(bibtex-clean-entry): Use bibtex-read-key.  Handle string and
-	preamble entries.
-	(bibtex-fill-field-bounds): New function.
-	(bibtex-fill-field): New command.  Bound to fill-paragraph-function.
-	(bibtex-fill-entry): Use bibtex-fill-field-bounds
-	(bibtex-String): Use bibtex-strings.  Always obey
-	bibtex-sort-ignore-string-entries.
-
-2003-07-05  John Paul Wallington  <jpw@gnu.org>
-
-	* cus-theme.el (customize-create-theme):
-	Call `customize-create-theme' in Reset widget's notify function.
-
-	* ibuffer.el (ibuffer-backward-line, ibuffer-forward-line)
-	(ibuffer-mark-interactive): Use `or' instead of `unless'.
-	(define-ibuffer-column name): Add summarizer.
-	(define-ibuffer-column size): Likewise.
-	(define-ibuffer-column filename): Likewise.
-	(define-ibuffer-column process): Likewise.  Change BODY's output too.
-	(define-ibuffer-column filename-and-process): Likewise, likewise.
-	(ibuffer): Remove local vars `already-in' and `need-update'.
-
-	* ibuf-ext.el: Don't require `derived' at compile-time.
-
-2003-07-05  Kim F. Storm  <storm@cua.dk>
-
-	* info.el: Disable paragraph refilling.
-	(Info-refill-paragraphs): New defcustom.
-	(Info-fontify-node): Use it.
-
-2003-07-04  Stefan Monnier  <monnier@cs.yale.edu>
-
-	* emacs-lisp/cl-macs.el (cl-transform-lambda): Strip &cl-defs
-	thingies from constructors created by defstruct.
-
-	* emacs-lisp/bytecomp.el (byte-compile-defvar): Check and set
-	the default value of the variable.
-	(byte-code-meter): Move declaration to top level.
-
-	* pcvs-parse.el (cvs-parse-status): Ignore extra fields from CVSNT.
-
-	* info.el (Info-following-node-name-re): New fun.
-	(Info-following-node-name): Remove.
-	(Info-insert-dir): Use the new fun.
-	(Info-extract-pointer): Don't save restriction; use new fun.
-	(Info-menu-entry-name-re): New const.
-	(Info-menu-entry-name-re): Use it along with new fun.
-	(Info-node-spec-re): Use new fun.
-	(Info-complete-menu-item, Info-fontify-node): Use new const.
-	(Info-goto-node, Info-follow-reference, Info-menu-update):
-	Use match-string.
-	(Info-follow-reference): Use assoc-string.
-	Use a list of strings for the completion table.
-	(Info-fontify-node): Use match-string, line-end-position.
-	Limit the search for `node:' to the first line.
-
-	* newcomment.el (uncomment-region): Remove padding coming from
-	comment-start rather than just from comment-padding.
-
-	* vc-cvs.el (vc-cvs-repository-hostname): New operation.
-	(vc-cvs-stay-local-p): Use vc-stay-local-p.
-	(vc-cvs-rename-file): Remove (use the default).
-	(vc-cvs-register): Register parent dir if needed.
-	(vc-cvs-could-register): Return non-nil if parent can be registered.
-	(vc-cvs-state, vc-cvs-dir-state, vc-cvs-print-log, vc-cvs-diff)
-	(vc-cvs-diff-tree, vc-cvs-make-version-backups-p): Use vc-stay-local-p.
-
-	* vc-svn.el (vc-svn-use-edit): Make it into a const.
-	(vc-svn-update): Fix the arguments to `svn'.
-	(vc-svn-diff-tree): Just use `vc-svn-diff'.
-	(vc-svn-create-snapshot, vc-svn-retrieve-snapshot):
-	Simple implementations, assuming `name' is a URL.
-
-	* progmodes/sh-script.el (sh-font-lock-paren): Add [ and ] to the
-	set of chars allowed unquoted in a case pattern.
-
-	* font-core.el (font-lock-defaults-alist): Remove obsolete entries.
-
-	* font-lock.el (font-lock-extra-types-widget)
-	(c-font-lock-extra-types, c++-font-lock-extra-types)
-	(objc-font-lock-extra-types, java-font-lock-extra-types)
-	(c-font-lock-keywords-1, c-font-lock-keywords-2, c-font-lock-keywords)
-	(c-font-lock-keywords-3, c-font-lock-syntactic-face-function)
-	(font-lock-match-c++-style-declaration-item-and-skip-to-next)
-	(font-lock-match-c++-structor-declaration)
-	(c++-font-lock-keywords-1, c++-font-lock-keywords-2)
-	(c++-font-lock-keywords-3, c++-font-lock-keywords)
-	(objc-font-lock-keywords-1, objc-font-lock-keywords-2)
-	(objc-font-lock-keywords-3, objc-font-lock-keywords)
-	(java-font-lock-keywords-1, java-font-lock-keywords-2)
-	(java-font-lock-keywords-3, java-font-lock-keywords)
-	(java-font-lock-syntactic-face-function): Remove obsolete code
-	and constants.  It's all in cc-fonts.el now.
-
-2003-07-04  Glenn Morris  <gmorris@ast.cam.ac.uk>
-
-	* mail/sendmail.el (mail-specify-envelope-from)
-	(mail-envelope-from): Doc fix.
-
-2003-07-04  Martin Stjernholm  <mast@lysator.liu.se>
-
-	* generic-x.el: Do away with the dependency on `c-emacs-features'
-	when populating `rul-generic-mode-syntax-table'; we already know
-	this isn't XEmacs.
-
-See ChangeLog.10 for earlier changes.
+See ChangeLog.11 for earlier changes.
 
 ;; Local Variables:
 ;; coding: iso-2022-7bit
 ;; End:
 
-    Copyright (C) 2001, 02, 04  Free Software Foundation, Inc.
+    Copyright (C) 2005 Free Software Foundation, Inc.
   Copying and distribution of this file, with or without modification,
   are permitted provided the copyright notice and this notice are preserved.
 
--- a/lisp/bindings.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/bindings.el	Fri Oct 07 07:15:40 2005 +0000
@@ -742,7 +742,7 @@
 
 ;; natural bindings for terminal keycaps --- defined in X keysym order
 (define-key global-map [C-S-backspace]  'kill-whole-line)
-(define-key global-map [home]		'beginning-of-line)
+(define-key global-map [home]		'move-beginning-of-line)
 (define-key global-map [C-home]		'beginning-of-buffer)
 (define-key global-map [M-home]		'beginning-of-buffer-other-window)
 (define-key esc-map    [home]		'beginning-of-buffer-other-window)
@@ -762,7 +762,7 @@
 (define-key global-map [M-prior]	'scroll-other-window-down)
 (define-key esc-map    [prior]		'scroll-other-window-down)
 (define-key esc-map [?\C-\S-v]		'scroll-other-window-down)
-(define-key global-map [end]		'end-of-line)
+(define-key global-map [end]		'move-end-of-line)
 (define-key global-map [C-end]		'end-of-buffer)
 (define-key global-map [M-end]		'end-of-buffer-other-window)
 (define-key esc-map    [end]		'end-of-buffer-other-window)
--- a/lisp/calendar/appt.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/calendar/appt.el	Fri Oct 07 07:15:40 2005 +0000
@@ -195,7 +195,7 @@
 FLAG, if non-nil, says that the element was made with `appt-add'
 so calling `appt-make-list' again should preserve it.")
 
-(defconst appt-max-time 1439
+(defconst appt-max-time (1- (* 24 60))
   "11:59pm in minutes - number of minutes in a day minus 1.")
 
 (defvar appt-mode-string nil
@@ -484,13 +484,15 @@
 			      lowest-window w)))))
     (select-window lowest-window)))
 
+(defconst appt-time-regexp
+  "[0-9]?[0-9]\\(h\\([0-9][0-9]\\)?\\|[:.][0-9][0-9]\\)\\(am\\|pm\\)?")
+
 ;;;###autoload
 (defun appt-add (new-appt-time new-appt-msg)
   "Add an appointment for today at NEW-APPT-TIME with message NEW-APPT-MSG.
 The time should be in either 24 hour format or am/pm format."
   (interactive "sTime (hh:mm[am/pm]): \nsMessage: ")
-  (unless (string-match "[0-9]?[0-9][:.][0-9][0-9]\\(am\\|pm\\)?"
-		    new-appt-time)
+  (unless (string-match appt-time-regexp new-appt-time)
     (error "Unacceptable time-string"))
   (let* ((appt-time-string (concat new-appt-time " " new-appt-msg))
          (appt-time (list (appt-convert-time new-appt-time)))
@@ -577,16 +579,14 @@
                             (calendar-date-equal
                              (calendar-current-date) (car (car entry-list))))
                   (let ((time-string (cadr (car entry-list))))
-                    (while (string-match
-                            "\\([0-9]?[0-9][:.][0-9][0-9]\\(am\\|pm\\)?\\).*"
-                            time-string)
+                    (while (string-match appt-time-regexp time-string)
                       (let* ((beg (match-beginning 0))
                              ;; Get just the time for this appointment.
-                             (only-time (match-string 1 time-string))
+                             (only-time (match-string 0 time-string))
                              ;; Find the end of this appointment
                              ;; (the start of the next).
                              (end (string-match
-                                   "^[ \t]*[0-9]?[0-9][:.][0-9][0-9]\\(am\\|pm\\)?"
+                                   (concat "\n[ \t]*" appt-time-regexp)
                                    time-string
                                    (match-end 0)))
                              ;; Get the whole string for this appointment.
@@ -633,31 +633,23 @@
   "Convert hour:min[am/pm] format to minutes from midnight.
 A period (.) can be used instead of a colon (:) to separate the
 hour and minute parts."
-  (let ((conv-time 0)
-        (hr 0)
-        (min 0))
-
-    (string-match "[:.]\\([0-9][0-9]\\)" time2conv)
-    (setq min (string-to-number
-               (match-string 1 time2conv)))
-
-    (string-match "[0-9]?[0-9][:.]" time2conv)
-    (setq hr (string-to-number
-              (match-string 0 time2conv)))
+  ;; Formats that should be accepted:
+  ;;   10:00 10.00 10h00 10h 10am 10:00am 10.00am
+  (let ((min (if (string-match "[h:.]\\([0-9][0-9]\\)" time2conv)
+                 (string-to-number (match-string 1 time2conv))
+               0))
+        (hr (if (string-match "[0-9]*[0-9]" time2conv)
+                (string-to-number (match-string 0 time2conv))
+              0)))
 
     ;; convert the time appointment time into 24 hour time
-
     (cond ((and (string-match "pm" time2conv) (< hr 12))
 	   (setq hr (+ 12 hr)))
 	  ((and (string-match "am" time2conv) (= hr 12))
            (setq hr 0)))
 
-    ;; convert the actual time
-    ;; into minutes for comparison
-    ;; against the actual time.
-
-    (setq conv-time (+ (* hr 60) min))
-    conv-time))
+    ;; convert the actual time into minutes.
+    (+ (* hr 60) min)))
 
 
 (defun appt-update-list ()
@@ -719,5 +711,5 @@
 
 (provide 'appt)
 
-;;; arch-tag: bf5791c4-8921-499e-a26f-772b1788d347
+;; arch-tag: bf5791c4-8921-499e-a26f-772b1788d347
 ;;; appt.el ends here
--- a/lisp/calendar/cal-menu.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/calendar/cal-menu.el	Fri Oct 07 07:15:40 2005 +0000
@@ -352,7 +352,7 @@
          (diary-display-hook 'ignore)
          (diary-entries
           (mapcar (lambda (x) (split-string (car (cdr x)) "\^M\\|\n"))
-                  (diary-list-entries date 1)))
+                  (diary-list-entries date 1 'list-only)))
          (holidays (if holidays-in-diary-buffer
                        (check-calendar-holidays date)))
          (title (concat "Diary entries "
--- a/lisp/calendar/diary-lib.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/calendar/diary-lib.el	Fri Oct 07 07:15:40 2005 +0000
@@ -271,20 +271,22 @@
 ;; This can be removed once the kill/yank treatment of invisible text
 ;; (see etc/TODO) is fixed. -- gm
 (defcustom diary-header-line-flag t
-  "*If non-nil, `simple-diary-display' will show a header line.
+  "If non-nil, `diary-simple-display' will show a header line.
 The format of the header is specified by `diary-header-line-format'."
   :group   'diary
   :type    'boolean
   :version "22.1")
 
+(defvar diary-selective-display nil)
+
 (defcustom diary-header-line-format
   '(:eval (calendar-string-spread
-           (list (if selective-display
+           (list (if diary-selective-display
                      "Selective display active - press \"s\" in calendar \
 before edit/copy"
                    "Diary"))
            ?\s (frame-width)))
-  "*Format of the header line displayed by `simple-diary-display'.
+  "Format of the header line displayed by `diary-simple-display'.
 Only used if `diary-header-line-flag' is non-nil."
   :group   'diary
   :type    'sexp
@@ -322,17 +324,17 @@
   :group 'diary)
 
 (define-obsolete-function-alias 'list-diary-entries 'diary-list-entries)
-(defun diary-list-entries (date number)
+(defun diary-list-entries (date number &optional list-only)
   "Create and display a buffer containing the relevant lines in `diary-file'.
 The arguments are DATE and NUMBER; the entries selected are those
 for NUMBER days starting with date DATE.  The other entries are hidden
 using selective display.  If NUMBER is less than 1, this function does nothing.
 
 Returns a list of all relevant diary entries found, if any, in order by date.
-The list entries have the form ((month day year) string specifier) where
-\(month day year) is the date of the entry, string is the entry text, and
-specifier is the applicability.  If the variable `diary-list-include-blanks'
-is t, this list includes a dummy diary entry consisting of the empty string)
+The list entries have the form ((MONTH DAY YEAR) STRING SPECIFIER) where
+\(MONTH DAY YEAR) is the date of the entry, STRING is the entry text, and
+SPECIFIER is the applicability.  If the variable `diary-list-include-blanks'
+is t, this list includes a dummy diary entry consisting of the empty string
 for a date with no diary entries.
 
 After the list is prepared, the hooks `nongregorian-diary-listing-hook',
@@ -354,7 +356,9 @@
         add-hook to set this to ignore.
 
     `diary-hook' is run last.  This can be used for an appointment
-        notification function."
+        notification function.
+
+If LIST-ONLY is non-nil don't modify or display the buffer, only return a list."
   (unless number
     (setq number (if (vectorp number-of-diary-entries)
                      (aref number-of-diary-entries (calendar-day-of-week date))
@@ -373,29 +377,20 @@
             (set-buffer diary-buffer)
             (or (verify-visited-file-modtime diary-buffer)
                 (revert-buffer t t))))
+        ;; Setup things like the header-line-format and invisibility-spec.
+        (when (eq major-mode 'fundamental-mode) (diary-mode))
         ;; d-s-p is passed to the diary display function.
         (let ((diary-saved-point (point)))
           (save-excursion
             (setq file-glob-attrs (nth 1 (diary-pull-attrs nil "")))
-            (setq selective-display t)
-            (setq selective-display-ellipses nil)
-            (if diary-header-line-flag
-                (setq header-line-format diary-header-line-format))
             (with-syntax-table diary-syntax-table
-              (let ((buffer-read-only nil)
-                    (diary-modified (buffer-modified-p))
-                    (mark (regexp-quote diary-nonmarking-symbol)))
-                ;; First and last characters must be ^M or \n for
-                ;; selective display to work properly
-                (goto-char (1- (point-max)))
-                (if (not (looking-at "\^M\\|\n"))
-                    (progn
-                      (goto-char (point-max))
-                      (insert "\^M")))
+              (let ((mark (regexp-quote diary-nonmarking-symbol)))
                 (goto-char (point-min))
-                (if (not (looking-at "\^M\\|\n"))
-                    (insert "\^M"))
-                (subst-char-in-region (point-min) (point-max) ?\n ?\^M t)
+                (unless list-only
+                  (let ((ol (make-overlay (point-min) (point-max) nil t nil)))
+                    (set (make-local-variable 'diary-selective-display) t)
+                    (overlay-put ol 'invisible 'diary)
+                    (overlay-put ol 'evaporate t)))
                 (calendar-for-loop
                  i from 1 to number do
                  (let ((month (extract-calendar-month date))
@@ -426,7 +421,7 @@
                           (regexp
                            (concat
                             "\\(\\`\\|\^M\\|\n\\)" mark "?\\("
-                            (mapconcat 'eval date-form "\\)\\(")
+                            (mapconcat 'eval date-form "\\)\\(?:")
                             "\\)"))
                           (case-fold-search t))
                        (goto-char (point-min))
@@ -448,8 +443,9 @@
                              (while (looking-at " \\|\^I")
                                (re-search-forward "\^M\\|\n" nil t))
                              (backward-char 1)
-                             (subst-char-in-region date-start
-                                                   (point) ?\^M ?\n t)
+                             (unless list-only
+                               (remove-overlays date-start (point)
+                                                'invisible 'diary))
                              (setq entry (buffer-substring entry-start (point))
                                    temp (diary-pull-attrs entry file-glob-attrs)
                                    entry (nth 0 temp))
@@ -467,23 +463,20 @@
                    (setq date
                          (calendar-gregorian-from-absolute
                           (1+ (calendar-absolute-from-gregorian date))))
-                   (setq entry-found nil)))
-                (set-buffer-modified-p diary-modified)))
+                   (setq entry-found nil)))))
             (goto-char (point-min))
             (run-hooks 'nongregorian-diary-listing-hook
                        'list-diary-entries-hook)
-            (if diary-display-hook
-                (run-hooks 'diary-display-hook)
-              (simple-diary-display))
+            (unless list-only
+              (if diary-display-hook
+                  (run-hooks 'diary-display-hook)
+                (simple-diary-display)))
             (run-hooks 'diary-hook)
             diary-entries-list))))))
 
 (defun diary-unhide-everything ()
-  (setq selective-display nil)
-  (let ((inhibit-read-only t)
-        (modified (buffer-modified-p)))
-    (subst-char-in-region (point-min) (point-max) ?\^M ?\n t)
-    (set-buffer-modified-p modified))
+  (kill-local-variable 'diary-selective-display)
+  (remove-overlays (point-min) (point-max) 'invisible 'diary)
   (kill-local-variable 'mode-line-format))
 
 (defun include-other-diary-files ()
@@ -603,8 +596,8 @@
           (setq buffer-read-only t)
           (display-buffer holiday-buffer)
           (message  "No diary entries for %s" date-string)))
-    (save-excursion;; Prepare the fancy diary buffer.
-      (set-buffer (make-fancy-diary-buffer))
+    (with-current-buffer;; Prepare the fancy diary buffer.
+        (make-fancy-diary-buffer)
       (setq buffer-read-only nil)
       (let ((entry-list diary-entries-list)
             (holiday-list)
@@ -673,10 +666,10 @@
                          (temp-face (make-symbol
                                      (apply
                                       'concat "temp-face-"
-                                      (mapcar '(lambda (sym)
-                                                 (if (stringp sym)
-                                                     sym
-                                                   (symbol-name sym)))
+                                      (mapcar (lambda (sym)
+                                                (if (stringp sym)
+                                                    sym
+                                                  (symbol-name sym)))
                                               marks))))
                          (faceinfo marks))
                     (make-face temp-face)
@@ -687,7 +680,7 @@
                       (setcar faceinfo nil)
                       (setcar (cdr faceinfo) nil))
                     (setq marks (delq nil marks))
-		  ;; Apply the font aspects
+                    ;; Apply the font aspects.
                     (apply 'set-face-attribute temp-face nil marks)
                     (search-backward entry)
                     (overlay-put
@@ -704,8 +697,7 @@
 
 (defun make-fancy-diary-buffer ()
   "Create and return the initial fancy diary buffer."
-  (save-excursion
-    (set-buffer (get-buffer-create fancy-diary-buffer))
+  (with-current-buffer (get-buffer-create fancy-diary-buffer)
     (setq buffer-read-only nil)
     (calendar-set-mode-line "Diary Entries")
     (erase-buffer)
@@ -726,26 +718,33 @@
 the actual printing."
   (interactive)
   (if (bufferp (get-buffer fancy-diary-buffer))
-      (save-excursion
-        (set-buffer (get-buffer fancy-diary-buffer))
+      (with-current-buffer (get-buffer fancy-diary-buffer)
         (run-hooks 'print-diary-entries-hook))
     (let ((diary-buffer
            (find-buffer-visiting (substitute-in-file-name diary-file))))
       (if diary-buffer
-          (let ((temp-buffer (get-buffer-create "*Printable Diary Entries*"))
+          (let ((temp-buffer (get-buffer-create " *Printable Diary Entries*"))
                 (heading))
-            (save-excursion
-              (set-buffer diary-buffer)
+            (with-current-buffer diary-buffer
               (setq heading
                     (if (not (stringp mode-line-format))
                         "All Diary Entries"
                       (string-match "^-*\\([^-].*[^-]\\)-*$" mode-line-format)
-                      (substring mode-line-format
-                                 (match-beginning 1) (match-end 1))))
-              (copy-to-buffer temp-buffer (point-min) (point-max))
+                      (match-string 1 mode-line-format)))
+              (let ((start (point-min))
+                    end)
+                (while
+                    (progn
+                      (setq end (next-single-char-property-change
+                                 start 'invisible))
+                      (if (get-char-property start 'invisible)
+                          nil
+                        (with-current-buffer temp-buffer
+                          (insert-buffer-substring diary-buffer
+                                                   start (or end (point-max)))))
+                      (setq start end)
+                      (and end (< end (point-max))))))
               (set-buffer temp-buffer)
-              (while (re-search-forward "\^M.*$" nil t)
-                (replace-match ""))
               (goto-char (point-min))
               (insert heading "\n"
                       (make-string (length heading) ?=) "\n")
@@ -764,18 +763,19 @@
         (pop-up-frames (window-dedicated-p (selected-window))))
     (with-current-buffer (or (find-buffer-visiting d-file)
                              (find-file-noselect d-file t))
+      (when (eq major-mode 'fundamental-mode) (diary-mode))
       (diary-unhide-everything)
       (display-buffer (current-buffer)))))
 
 (defcustom diary-mail-addr
   (if (boundp 'user-mail-address) user-mail-address "")
-  "*Email address that `diary-mail-entries' will send email to."
+  "Email address that `diary-mail-entries' will send email to."
   :group 'diary
   :type  'string
   :version "20.3")
 
 (defcustom diary-mail-days 7
-  "*Default number of days for `diary-mail-entries' to check."
+  "Default number of days for `diary-mail-entries' to check."
   :group 'diary
   :type 'integer
   :version "20.3")
@@ -866,6 +866,7 @@
         file-glob-attrs marks)
     (with-current-buffer (find-file-noselect (diary-check-diary-file) t)
       (save-excursion
+        (when (eq major-mode 'fundamental-mode) (diary-mode))
         (setq mark-diary-entries-in-calendar t)
         (message "Marking diary entries...")
         (setq file-glob-attrs (nth 1 (diary-pull-attrs nil '())))
@@ -1118,7 +1119,7 @@
 
 (defcustom diary-unknown-time
   -9999
-  "*Value returned by diary-entry-time when no time is found.
+  "Value returned by diary-entry-time when no time is found.
 The default value -9999 causes entries with no recognizable time to be placed
 before those with times; 9999 would place entries with no recognizable time
 after those with times."
@@ -1361,7 +1362,7 @@
 			diary-entry))
           (if diary-entry
 	      (progn
-		(subst-char-in-region line-start (point) ?\^M ?\n t)
+                (remove-overlays line-start (point) 'invisible 'diary)
 		(if (< 0 (length entry))
 		    (setq temp (diary-pull-attrs entry file-glob-attrs)
 			  entry (nth 0 temp)
@@ -1511,7 +1512,7 @@
 	     (cons mark entry)))))
 
 
-(defun diary-anniversary (month day year &optional mark)
+(defun diary-anniversary (month day &optional year mark)
   "Anniversary diary entry.
 Entry applies if date is the anniversary of MONTH, DAY, YEAR if
 `european-calendar-style' is nil, and DAY, MONTH, YEAR if
@@ -1530,7 +1531,7 @@
                 day
               month))
          (y (extract-calendar-year date))
-         (diff (- y year)))
+         (diff (if year (- y year) 100)))
     (if (and (= m 2) (= d 29) (not (calendar-leap-year-p y)))
         (setq m 3
               d 1))
@@ -1578,7 +1579,7 @@
       (concat (int-to-string days) (if (= 1 days) " day" " days")))
     " until "
     diary-entry)
-  "*Pseudo-pattern giving form of reminder messages in the fancy diary
+  "Pseudo-pattern giving form of reminder messages in the fancy diary
 display.
 
 Used by the function `diary-remind', a pseudo-pattern is a list of
@@ -1657,12 +1658,10 @@
 (defun make-diary-entry (string &optional nonmarking file)
   "Insert a diary entry STRING which may be NONMARKING in FILE.
 If omitted, NONMARKING defaults to nil and FILE defaults to
-`diary-file'.  Adds `diary-redraw-calendar' to
-`write-contents-functions' for FILE, so that the calendar will be
-redrawn with the new entry marked, if necessary."
+`diary-file'."
   (let ((pop-up-frames (window-dedicated-p (selected-window))))
     (find-file-other-window (substitute-in-file-name (or file diary-file))))
-  (add-hook 'after-save-hook 'diary-redraw-calendar nil t)
+  (when (eq major-mode 'fundamental-mode) (diary-mode))
   (widen)
   (diary-unhide-everything)
   (goto-char (point-max))
@@ -1867,6 +1866,13 @@
 (eval-when-compile (require 'cal-hebrew)
                    (require 'cal-islam))
 
+(defconst diary-time-regexp
+  ;; Formats that should be accepted:
+  ;;   10:00 10.00 10h00 10h 10am 10:00am 10.00am
+  (concat "[0-9]?[0-9]\\([AaPp][mM]\\|\\("
+          "[Hh]\\([0-9][0-9]\\)?\\|[:.][0-9][0-9]"
+          "\\)\\([AaPp][Mm]\\)?\\)"))
+
 (defvar diary-font-lock-keywords
       (append
        (diary-font-lock-date-forms calendar-month-name-array
@@ -1907,8 +1913,10 @@
                  "?\\(" (regexp-quote islamic-diary-entry-symbol) "\\)")
          '(1 font-lock-reference-face))
         '(diary-font-lock-sexps . font-lock-keyword-face)
-        '("[0-9]?[0-9]\\([:.]?[0-9][0-9]\\)?\\(am\\|pm\\|AM\\|PM\\)\\(-[0-9]?[0-9]\\([:.]?[0-9][0-9]\\)?\\(am\\|pm\\|AM\\|PM\\)\\)?"
-          . font-lock-function-name-face)))
+        (cons
+         (concat ;; "^[ \t]+"
+                 diary-time-regexp "\\(-" diary-time-regexp "\\)?")
+         'font-lock-function-name-face)))
       "Forms to highlight in `diary-mode'.")
 
 
--- a/lisp/calendar/time-date.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/calendar/time-date.el	Fri Oct 07 07:15:40 2005 +0000
@@ -91,6 +91,7 @@
    ((eq type 1) (list high low))
    ((eq type 2) (list high low micro))))
 
+(autoload 'parse-time-string "parse-time")
 (autoload 'timezone-make-date-arpa-standard "timezone")
 
 ;;;###autoload
--- a/lisp/comint.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/comint.el	Fri Oct 07 07:15:40 2005 +0000
@@ -3109,8 +3109,8 @@
 this value.")
 
 (defvar comint-redirect-subvert-readonly nil
-  "Non-nil means comint-redirect can insert into otherwise-readonly buffers.
-The readonly status is toggled around insertion.
+  "Non-nil means `comint-redirect' can insert into read-only buffers.
+This works by binding `inhibit-read-only' around the insertion.
 This is useful, for instance, for insertion into Help mode buffers.
 You probably want to set it locally to the output buffer.")
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/dframe.el	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,1073 @@
+;;; dframe --- dedicate frame support modes
+
+;;; Copyright (C) 1996, 97, 98, 99, 2000, 01, 02, 03, 04 Free Software Foundation
+
+;; Author: Eric M. Ludlam <zappo@gnu.org>
+;; Keywords: file, tags, tools
+
+(defvar dframe-version "1.3"
+  "The current version of the dedicated frame library.")
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+;;
+;; This code was developed and maintained as a part of speedbar since 1996.
+;; It became its own support utility in Aug 2000.
+;;
+;; Dedicated frame mode is an Emacs independent library for supporting
+;; a program/buffer combination that resides in a dedicated frame.
+;; Support of this nature requires several complex interactions with the
+;; user which this library will provide, including:
+;;
+;; * Creation of a frame.  Positioned relatively.
+;;   Includes a frame cache for User position caching.
+;; * Switching between frames.
+;; * Timed activities using idle-timers
+;; * Frame/buffer killing hooks
+;; * Mouse-3 position relative menu
+;; * Mouse motion, help-echo hacks
+;; * Mouse clicking, double clicking, & Xemacs image clicking hack
+;; * Mode line hacking
+;; * Utilities for use in a program covering:
+;;    o keymap massage for some actions
+;;    o working with an associated buffer
+;;    o shift-click
+;;    o detaching a frame
+;;    o focus-shifting & optional frame jumping
+;;    o currently active frame.
+;;    o message/y-or-n-p
+;;    o mouse set point
+;;
+;; To Use:
+;; 1) (require 'dframe)
+;; 2) Variable Setup:
+;;   -frame-parameters -- Frame parameters for Emacs.
+;;   -frame-plist -- Frame parameters for XEmacs.
+;;   -- Not on parameter lists: They can optionally include width
+;;      and height.  If width or height is not included, then it will
+;;      be provided to match the originating frame.  In general,
+;;      turning off the menu bar, mode line, and minibuffer can
+;;      provide a smaller window, or more display area.
+;;   -track-mouse-flag -- mouse tracking on/off specific to your tool.
+;;   -update-flag -- app toggle for timer use.  Init from
+;;     `dframe-have-timer-flag'.  This is nil for terminals, since
+;;     updating a frame in a terminal is not useful to the user.
+;;   -key-map -- Your keymap.  Call `dframe-update-keymap' on it.
+;;   -buffer, -frame, -cached-frame -- Variables used to track your
+;;     applications buffer, frame, or frame cache (when hidden).  See
+;;     `dframe-frame-mode' for details.
+;;   -before-delete-hook, -before-popup-hook, -after-create-hook --
+;;     Hooks to have called.  The `-after-create-hook' probably wants
+;;     to call a function which calls `dframe-reposition-frame' in an
+;;     appropriate manner.
+;; 3) Function Setup:
+;;   your-frame-mode -- function to toggle your app frame on and off.
+;;     its tasks are:
+;;       a) create a buffer
+;;       b) Call `dframe-frame-mode'.  (See its doc)
+;;       c) If successful (your -frame variable has a value), call
+;;          timer setup if applicable.
+;;   your-frame-reposition- -- Function to call from after-create-hook to
+;;     reposition your frame with `dframe-repsoition-frame'.
+;;   your-mode -- Set up the major mode of the buffer for your app.
+;;     Set these variables: dframe-track-mouse-function,
+;;                          dframe-help-echo-function,
+;;                          dframe-mouse-click-function,
+;;                          dframe-mouse-position-function.
+;;   See speedbar's implementation of these functions.
+;;    `speedbar-current-frame', `speedbar-get-focus', `speedbar-message',
+;;    `speedbar-y-or-n-p', `speedbar-set-timer', `speedbar-click',
+;;    `speedbar-position-cursor-on-line'
+;; 4) Handling mouse clicks, and help text:
+;;   dframe-track-mouse, dframe-help-echo-function --
+;;    These variables need to be set to functions that display info
+;;    based on the mouse's position.
+;;   Text propert 'help-echo, set to `dframe-help-echo', which will
+;;    call `dframe-help-echo-function'.
+;;   Have a `-click' function, it can call `dframe-quick-mouse' for
+;;    positioning.  If the variable `dframe-power-click' is non-nil,
+;;    then `shift' was held down during the click.
+
+;;; Bugs
+;;
+;;  * The timer managers doesn't handle multiple different timeouts.
+;;  * You can't specify continuous timouts (as opposed to just lidle timers.)
+
+(defvar x-pointer-hand2)
+(defvar x-pointer-top-left-arrow)
+
+;;; Code:
+(defvar dframe-xemacsp (string-match "XEmacs" emacs-version)
+  "Non-nil if we are running in the XEmacs environment.")
+(defvar dframe-xemacs20p (and dframe-xemacsp
+			      (>= emacs-major-version 20)))
+
+;; From custom web page for compatibility between versions of custom
+;; with help from ptype@dera.gov.uk (Proto Type)
+(eval-and-compile
+  (condition-case ()
+      (require 'custom)
+    (error nil))
+  (if (and (featurep 'custom) (fboundp 'custom-declare-variable)
+	   ;; Some XEmacsen w/ custom don't have :set keyword.
+	   ;; This protects them against custom.
+	   (fboundp 'custom-initialize-set))
+      nil ;; We've got what we needed
+    ;; We have the old custom-library, hack around it!
+    (if (boundp 'defgroup)
+	nil
+      (defmacro defgroup (&rest args)
+	nil))
+    (if (boundp 'defface)
+	nil
+      (defmacro defface (var values doc &rest args)
+	(` (progn
+	     (defvar (, var) (quote (, var)))
+	     ;; To make colors for your faces you need to set your .Xdefaults
+	     ;; or set them up ahead of time in your .emacs file.
+	     (make-face (, var))
+	     ))))
+    (if (boundp 'defcustom)
+	nil
+      (defmacro defcustom (var value doc &rest args)
+	(` (defvar (, var) (, value) (, doc)))))))
+
+
+;;; Compatibility functions
+;;
+(if (fboundp 'frame-parameter)
+
+    (defalias 'dframe-frame-parameter 'frame-parameter)
+
+  (defun dframe-frame-parameter (frame parameter)
+    "Return FRAME's PARAMETER value."
+    (cdr (assoc parameter (frame-parameters frame)))))
+
+
+;;; Variables
+;;
+(defgroup dframe nil
+  "Faces used in dframe."
+  :prefix "dframe-"
+  :group 'dframe)
+
+(defvar dframe-have-timer-flag
+  (and (or (fboundp 'run-with-idle-timer)
+	   (fboundp 'start-itimer)
+	   (boundp 'post-command-idle-hook))
+       (if (fboundp 'display-graphic-p)
+	   (display-graphic-p)
+	 window-system))
+  "Non-nil means that timers are available for this Emacs.")
+
+(defcustom dframe-update-speed
+  (if dframe-xemacsp
+      (if dframe-xemacs20p
+	  2				; 1 is too obrusive in XEmacs
+	5)				; when no idleness, need long delay
+    1)
+  "*Idle time in seconds needed before dframe will update itself.
+Updates occur to allow dframe to display directory information
+relevant to the buffer you are currently editing."
+  :group 'dframe
+  :type 'integer)
+
+(defcustom dframe-activity-change-focus-flag nil
+  "*Non-nil means the selected frame will change based on activity.
+Thus, if a file is selected for edit, the buffer will appear in the
+selected frame and the focus will change to that frame."
+  :group 'dframe
+  :type 'boolean)
+
+(defcustom dframe-after-select-attached-frame-hook nil
+  "*Hook run after dframe has selected the attached frame."
+  :group 'dframe
+  :type 'hook)
+
+(defvar dframe-track-mouse-function nil
+  "*A function to call when the mouse is moved in the given frame.
+Typically used to display info about the line under the mouse.")
+(make-variable-buffer-local 'dframe-track-mouse-function)
+
+(defvar dframe-help-echo-function nil
+  "*A function to call when help-echo is used in newer versions of Emacs.
+Typically used to display info about the line under the mouse.")
+(make-variable-buffer-local 'dframe-help-echo-function)
+
+(defvar dframe-mouse-click-function nil
+  "*A function to call when the mouse is clicked.
+Valid clicks are mouse 2, our double mouse 1.")
+(make-variable-buffer-local 'dframe-mouse-click-function)
+
+(defvar dframe-mouse-position-function nil
+  "*A function to called to position the cursor for a mouse click.")
+(make-variable-buffer-local 'dframe-mouse-position-function)
+
+(defvar dframe-power-click nil
+  "Never set this by hand.  Value is t when S-mouse activity occurs.")
+
+(defvar dframe-timer nil
+  "The dframe timer used for updating the buffer.")
+(make-variable-buffer-local 'dframe-timer)
+
+(defvar dframe-attached-frame nil
+  "The frame which started a frame mode.
+This is the frame from which all interesting activities will go
+for the mode using dframe.")
+(make-variable-buffer-local 'dframe-attached-frame)
+
+(defvar dframe-controlled nil
+  "Is this buffer controlled by a dedicated frame.
+Local to those buffers, as a function called that created it.")
+(make-variable-buffer-local 'dframe-controlled)
+
+(defun dframe-update-keymap (map)
+  "Update the keymap MAP for dframe default bindings."
+  ;; Frame control
+  (define-key map "q" 'dframe-close-frame)
+  (define-key map "Q" 'delete-frame)
+
+  ;; Override switch to buffer to never hack our frame.
+  (substitute-key-definition 'switch-to-buffer
+			     'dframe-switch-buffer-attached-frame
+			     map global-map)
+
+  (if dframe-xemacsp
+      (progn
+	;; mouse bindings so we can manipulate the items on each line
+	(define-key map 'button2 'dframe-click)
+	(define-key map '(shift button2) 'dframe-power-click)
+	;; Info doc fix from Bob Weiner
+	(if (featurep 'infodoc)
+	    nil
+	  (define-key map 'button3 'dframe-xemacs-popup-kludge))
+	)
+
+    ;; mouse bindings so we can manipulate the items on each line
+    ;; (define-key map [down-mouse-1] 'dframe-double-click)
+    (define-key map [follow-link] 'mouse-face)
+    (define-key map [mouse-2] 'dframe-click)
+    ;; This is the power click for new frames, or refreshing a cache
+    (define-key map [S-mouse-2] 'dframe-power-click)
+    ;; This adds a small unecessary visual effect
+    ;;(define-key map [down-mouse-2] 'dframe-quick-mouse)
+
+    (define-key map [down-mouse-3] 'dframe-emacs-popup-kludge)
+
+    ;; This lets the user scroll as if we had a scrollbar... well maybe not
+    (define-key map [mode-line mouse-2] 'dframe-mouse-hscroll)
+    ;; another handy place users might click to get our menu.
+    (define-key map [mode-line down-mouse-1]
+      'dframe-emacs-popup-kludge)
+
+    ;; We can't switch buffers with the buffer mouse menu.  Lets hack it.
+    (define-key map [C-down-mouse-1] 'dframe-hack-buffer-menu)
+
+    ;; Lastly, we want to track the mouse.  Play here
+    (define-key map [mouse-movement] 'dframe-track-mouse)
+    ))
+
+(defun dframe-live-p (frame)
+  "Return non-nil if FRAME is currently available."
+  (and frame (frame-live-p frame) (frame-visible-p frame)))
+
+(defun dframe-frame-mode (arg frame-var cache-var buffer-var frame-name
+			      local-mode-fn
+			      &optional
+			      parameters
+			      delete-hook popup-hook create-hook
+			      )
+  "Manage a frame for an application, enabling it when ARG is positive.
+FRAME-VAR is a variable used to cache the frame being used.
+This frame is either resurrected, hidden, killed, etc based on
+the value.
+CACHE-VAR is a variable used to cache a cached frame.
+BUFFER-VAR is a variable used to cache the buffer being used in dframe.
+This buffer will have `dframe-mode' run on it.
+FRAME-NAME is the name of the frame to create.
+LOCAL-MODE-FN is the function used to call this one.
+PARAMETERS are frame parameters to apply to this dframe.
+DELETE-HOOK are hooks to run when deleting a frame.
+POPUP-HOOK are hooks to run before showing a frame.
+CREATE-HOOK are hooks to run after creating a frame."
+  ;; toggle frame on and off.
+  (if (not arg) (if (dframe-live-p (symbol-value frame-var))
+		    (setq arg -1) (setq arg 1)))
+  ;; Make sure the current buffer is set.
+  (set-buffer (symbol-value buffer-var))
+  ;; turn the frame off on neg number
+  (if (and (numberp arg) (< arg 0))
+      (progn
+	(run-hooks 'delete-hook)
+	(if (and (symbol-value frame-var)
+		 (frame-live-p (symbol-value frame-var)))
+	    (progn
+	      (set cache-var (symbol-value frame-var))
+	      (make-frame-invisible (symbol-value frame-var))))
+	(set frame-var nil))
+    ;; Set this as our currently attached frame
+    (setq dframe-attached-frame (selected-frame))
+    (run-hooks 'popup-hook)
+    ;; Updated the buffer passed in to contain all the hacks needed
+    ;; to make it work well in a dedicated window.
+    (save-excursion
+      (set-buffer (symbol-value buffer-var))
+      ;; Declare this buffer a dedicated frame
+      (setq dframe-controlled local-mode-fn)
+
+      (if dframe-xemacsp
+	  ;; Hack the XEmacs mouse-motion handler
+	  (with-no-warnings
+	    ;; Hack the XEmacs mouse-motion handler
+	    (set (make-local-variable 'mouse-motion-handler)
+		 'dframe-track-mouse-xemacs)
+	    ;; Hack the double click handler
+	    (make-local-variable 'mouse-track-click-hook)
+	    (add-hook 'mouse-track-click-hook
+		      (lambda (event count)
+			(if (/= (event-button event) 1)
+			    nil		; Do normal operations.
+			  (cond ((eq count 1)
+				 (dframe-quick-mouse event))
+				((or (eq count 2)
+				     (eq count 3))
+				 (dframe-click event)
+				 (dframe-quick-mouse event)))
+			  ;; Don't do normal operations.
+			  t))))
+	;; Enable mouse tracking in emacs
+	(if dframe-track-mouse-function
+	    (set (make-local-variable 'track-mouse) t))	;this could be messy.
+	;; disable auto-show-mode for Emacs
+	(setq auto-show-mode nil))
+;;;; DISABLED: This causes problems for users with multiple frames.
+;;;;       ;; Set this up special just for the passed in buffer
+;;;;       ;; Terminal minibuffer stuff does not require this.
+;;;;       (if (and (or (assoc 'minibuffer parameters)
+;;;; 		   ;; XEmacs plist is not an association list
+;;;; 		   (member 'minibuffer parameters))
+;;;; 	       window-system (not (eq window-system 'pc))
+;;;; 	       (null default-minibuffer-frame))
+;;;; 	  (progn
+;;;; 	    (make-local-variable 'default-minibuffer-frame)
+;;;; 	    (setq default-minibuffer-frame dframe-attached-frame))
+;;;; 	)
+      ;; Override `temp-buffer-show-hook' so that help and such
+      ;; put their stuff into a frame other than our own.
+      ;; Correct use of `temp-buffer-show-function': Bob Weiner
+      (if (and (boundp 'temp-buffer-show-hook)
+	       (boundp 'temp-buffer-show-function))
+	  (progn (make-local-variable 'temp-buffer-show-hook)
+		 (setq temp-buffer-show-hook temp-buffer-show-function)))
+      (make-local-variable 'temp-buffer-show-function)
+      (setq temp-buffer-show-function 'dframe-temp-buffer-show-function)
+      ;; If this buffer is killed, we must make sure that we destroy
+      ;; the frame the dedicated window is in.
+      (add-hook 'kill-buffer-hook `(lambda ()
+				     (let ((skilling (boundp 'skilling)))
+				       (if skilling
+					   nil
+					 (if dframe-controlled
+					     (progn
+					       (funcall dframe-controlled -1)
+					       (setq ,buffer-var nil)
+					       )))))
+		t t)
+      )
+    ;; Get the frame to work in
+    (if (frame-live-p (symbol-value cache-var))
+	(progn
+	  (set frame-var (symbol-value cache-var))
+	  (make-frame-visible (symbol-value frame-var))
+	  (select-frame (symbol-value frame-var))
+	  (set-window-dedicated-p (selected-window) nil)
+	  (if (not (eq (current-buffer) (symbol-value buffer-var)))
+	      (switch-to-buffer (symbol-value buffer-var)))
+	  (set-window-dedicated-p (selected-window) t)
+	  (raise-frame (symbol-value frame-var))
+	  )
+      (if (frame-live-p (symbol-value frame-var))
+	  (raise-frame (symbol-value frame-var))
+	(set frame-var
+	      (if dframe-xemacsp
+		  ;; Only guess height if it is not specified.
+		  (if (member 'height parameters)
+		      (make-frame parameters)
+		    (make-frame (nconc (list 'height
+					     (dframe-needed-height))
+				       parameters)))
+		(let* ((mh (dframe-frame-parameter dframe-attached-frame
+						   'menu-bar-lines))
+		       (paramsa
+			;; Only add a guessed height if one is not specified
+			;; in the input parameters.
+			(if (assoc 'height parameters)
+			    parameters
+			  (append
+			   parameters
+			   (list (cons 'height (+ mh (frame-height)))))))
+		       (params
+			;; Only add a guessed width if one is not specified
+			;; in the input parameters.
+			(if (assoc 'width parameters)
+			    paramsa
+			  (append
+			   paramsa
+			   (list (cons 'width (frame-width))))))
+		       (frame
+			(if (or (< emacs-major-version 20)
+				(not (eq window-system 'x)))
+			    (make-frame params)
+			  (let ((x-pointer-shape x-pointer-top-left-arrow)
+				(x-sensitive-text-pointer-shape
+				 x-pointer-hand2))
+			    (make-frame params)))))
+		  frame)))
+	;; Put the buffer into the frame
+	(save-excursion
+	  (select-frame (symbol-value frame-var))
+	  (switch-to-buffer (symbol-value buffer-var))
+	  (set-window-dedicated-p (selected-window) t))
+	;; Run hooks (like reposition)
+	(run-hooks 'create-hook)
+	;; Frame name
+	(if (and (or (null window-system) (eq window-system 'pc))
+		 (fboundp 'set-frame-name))
+	    (save-window-excursion
+	      (select-frame (symbol-value frame-var))
+	      (set-frame-name frame-name)))
+	;; On a terminal, raise the frame or the user will
+	;; be confused.
+	(if (not window-system)
+	    (select-frame (symbol-value frame-var)))
+	))) )
+
+(defun dframe-reposition-frame (new-frame parent-frame location)
+  "Move NEW-FRAME to be relative to PARENT-FRAME.
+LOCATION can be one of 'random, 'left, 'right, 'left-right, or 'top-bottom."
+  (if dframe-xemacsp
+      (dframe-reposition-frame-xemacs new-frame parent-frame location)
+    (dframe-reposition-frame-emacs new-frame parent-frame location)))
+
+(defun dframe-reposition-frame-emacs (new-frame parent-frame location)
+  "Move NEW-FRAME to be relative to PARENT-FRAME.
+LOCATION can be one of 'random, 'left-right, 'top-bottom, or
+a cons cell indicationg a position of the form (LEFT . TOP)."
+  (let* ((pfx (dframe-frame-parameter parent-frame 'left))
+	 (pfy (dframe-frame-parameter parent-frame 'top))
+	 (pfw (frame-pixel-width parent-frame))
+	 (pfh (frame-pixel-height parent-frame))
+	 (nfw (frame-pixel-width new-frame))
+	 (nfh (frame-pixel-height new-frame))
+	 newleft newtop
+	 )
+    ;; Position dframe.
+    (if (or (not window-system) (eq window-system 'pc))
+	;; Do no positioning if not on a windowing system,
+	nil
+      ;; Rebuild pfx,pfy to be absolute positions.
+      (setq pfx (if (not (consp pfx))
+		    pfx
+		  ;; If pfx is a list, that means we grow
+		  ;; from a specific edge of the display.
+		  ;; Convert that to the distance from the
+		  ;; left side of the display.
+		  (if (eq (car pfx) '-)
+		      ;; A - means distance from the right edge
+		      ;; of the display, or DW - pfx - framewidth
+		      (- (x-display-pixel-width) (car (cdr pfx)) pfw)
+		    (car (cdr pfx))))
+	    pfy (if (not (consp pfy))
+		    pfy
+		  ;; If pfy is a list, that means we grow
+		  ;; from a specific edge of the display.
+		  ;; Convert that to the distance from the
+		  ;; left side of the display.
+		  (if (eq (car pfy) '-)
+		      ;; A - means distance from the right edge
+		      ;; of the display, or DW - pfx - framewidth
+		      (- (x-display-pixel-height) (car (cdr pfy)) pfh)
+		    (car (cdr pfy))))
+	    )
+      (cond ((eq location 'right)
+	     (setq newleft (+ pfx pfw 5)
+		   newtop pfy))
+	    ((eq location 'left)
+	     (setq newleft (+ pfx 10 nfw)
+		   newtop pfy))
+	    ((eq location 'left-right)
+	     (setq newleft
+		   ;; Decide which side to put it on.  200 is just a
+		   ;; buffer for the left edge of the screen.  The
+		   ;; extra 10 is just dressings for window
+		   ;; decorations.
+		   (let* ((left-guess (- pfx 10 nfw))
+			  (right-guess (+ pfx pfw 5))
+			  (left-margin left-guess)
+			  (right-margin (- (x-display-pixel-width)
+					   right-guess 5 nfw)))
+		     (cond ((>= left-margin 0) left-guess)
+			   ((>= right-margin 0) right-guess)
+			   ;; otherwise choose side we overlap less
+			   ((> left-margin right-margin) 0)
+			   (t (- (x-display-pixel-width) nfw 5))))
+		   newtop pfy
+		   ))
+	    ((eq location 'top-bottom)
+	     (setq newleft pfx
+		   newtop
+		   ;; Try and guess if we should be on the top or bottom.
+		   (let* ((top-guess (- pfy 15 nfh))
+			  (bottom-guess (+ pfy 5 pfh))
+			  (top-margin top-guess)
+			  (bottom-margin (- (x-display-pixel-height)
+					    bottom-guess 5 nfh)))
+		     (cond ((>= top-margin 0) top-guess)
+			   ((>= bottom-margin 0) bottom-guess)
+			   ;; Choose a side to overlap the least.
+			   ((> top-margin bottom-margin) 0)
+			   (t (- (x-display-pixel-height) nfh 5)))))
+	     )
+	    ((consp location)
+	     (setq newleft (or (car location) 0)
+		   newtop (or (cdr location) 0)))
+	    (t nil))
+      (modify-frame-parameters new-frame
+       (list (cons 'left newleft)
+	     (cons 'top newtop))))))
+
+(defun dframe-reposition-frame-xemacs (new-frame parent-frame location)
+  "Move NEW-FRAME to be relative to PARENT-FRAME.
+LOCATION can be one of 'random, 'left-right, or 'top-bottom."
+  ;; Not yet implemented
+  )
+
+;; XEmacs function only.
+(defun dframe-needed-height (&optional frame)
+  "The needed height for the tool bar FRAME (in characters)."
+  (or frame (setq frame (selected-frame)))
+  ;; The 1 is the missing modeline/minibuffer
+  (+ 1 (/ (frame-pixel-height frame)
+	  ;; This obscure code avoids a byte compiler warning in Emacs.
+	  (let ((f 'face-height))
+	    (funcall f 'default frame)))))
+
+(defun dframe-detach (frame-var cache-var buffer-var)
+  "Detatch the frame in symbol FRAME-VAR.
+CACHE-VAR and BUFFER-VAR are symbols as in `dframe-frame-mode'"
+  (save-excursion
+    (set-buffer (symbol-value buffer-var))
+    (rename-buffer (buffer-name) t)
+    (let ((oldframe (symbol-value frame-var)))
+      (set buffer-var nil)
+      (set frame-var nil)
+      (set cache-var nil)
+      (make-variable-buffer-local frame-var)
+      (set frame-var oldframe)
+      )))
+
+;;; Special frame event proxies
+;;
+(if (boundp 'special-event-map)
+    (progn
+      (define-key special-event-map [make-frame-visible]
+	'dframe-handle-make-frame-visible)
+      (define-key special-event-map [iconify-frame]
+	'dframe-handle-iconify-frame)
+      (define-key special-event-map [delete-frame]
+	'dframe-handle-delete-frame))
+  )
+
+(defvar dframe-make-frame-visible-function nil
+  "Function used when a dframe controlled frame is de-iconified.
+The function must take an EVENT.")
+(defvar dframe-iconify-frame-function nil
+  "Function used when a dframe controlled frame is iconified.
+The function must take an EVENT.")
+(defvar dframe-delete-frame-function nil
+  "Function used when a frame attached to a dframe frame is deleted.
+The function must take an EVENT.")
+
+(defun dframe-handle-make-frame-visible (e)
+  "Handle a `make-frame-visible' event.
+Should enables auto-updating if the last state was also enabled.
+Argument E is the event making the frame visible."
+  (interactive "e")
+  (let ((f last-event-frame))
+    (if (and (dframe-attached-frame f)
+	     dframe-make-frame-visible-function)
+	(funcall dframe-make-frame-visible-function e)
+      )))
+
+(defun dframe-handle-iconify-frame (e)
+  "Handle a `iconify-frame' event.
+Should disables auto-updating if the last state was also enabled.
+Argument E is the event iconifying the frame."
+  (interactive "e")
+  (let ((f last-event-frame))
+    (if (and (dframe-attached-frame f)
+	     dframe-iconify-frame-function e)
+	(funcall dframe-iconify-frame-function)
+      )))
+
+(defun dframe-handle-delete-frame (e)
+  "Handle `delete-frame' event.
+Argument E is the event deleting the frame."
+  (interactive "e")
+  (let ((fl (frame-list))
+	(sf (selected-frame)))
+    ;; Loop over all frames.  If dframe-delete-frame-function is
+    ;; non-nil, call it.
+    (while fl
+      (select-frame (car fl))
+      (if dframe-delete-frame-function
+	  (funcall dframe-delete-frame-function e))
+      (setq fl (cdr fl)))
+    (if (frame-live-p sf)
+	(select-frame sf))
+    (handle-delete-frame e)))
+
+
+;;; Utilities
+;;
+(defun dframe-get-focus (frame-var activator &optional hook)
+  "Change frame focus to or from a dedicated frame.
+If the selected frame is not in the symbol FRAME-VAR, then FRAME-VAR
+frame is selected.  If the FRAME-VAR is active, then select the
+attached frame.  If FRAME-VAR is nil, ACTIVATOR is called to
+created it.  HOOK is an optional argument of hooks to run when
+selecting FRAME."
+  (interactive)
+  (if (eq (selected-frame) (symbol-value frame-var))
+      (if (frame-live-p dframe-attached-frame)
+	  (dframe-select-attached-frame))
+    ;; make sure we have a frame
+    (if (not (frame-live-p (symbol-value frame-var)))
+	(funcall activator 1))
+    ;; go there
+    (select-frame (symbol-value frame-var))
+    )
+  (other-frame 0)
+  ;; If updates are off, then refresh the frame (they want it now...)
+  (run-hooks 'hook))
+
+
+(defun dframe-close-frame ()
+  "Close the current frame if it is dedicated."
+  (interactive)
+  (if dframe-controlled
+      (let ((b (current-buffer)))
+	(funcall dframe-controlled -1)
+	(kill-buffer b))))
+
+(defun dframe-current-frame (frame-var desired-major-mode)
+  "Return the existing dedicated frame to use.
+FRAME-VAR is the variable storing the currently active dedicated frame.
+If the current frame's buffer uses DESIRED-MAJOR-MODE, then use that frame."
+  (if (not (eq (selected-frame) (symbol-value frame-var)))
+      (if (and (eq major-mode 'desired-major-mode)
+	       (get-buffer-window (current-buffer))
+	       (window-frame (get-buffer-window (current-buffer))))
+	  (window-frame (get-buffer-window (current-buffer)))
+	(symbol-value frame-var))
+    (symbol-value frame-var)))
+
+(defun dframe-attached-frame (&optional frame)
+  "Return the attached frame belonging to the dframe controlled frame FRAME.
+If optional arg FRAME is nil just return `dframe-attached-frame'."
+  (save-excursion
+    (if frame (select-frame frame))
+    dframe-attached-frame))
+
+(defun dframe-select-attached-frame (&optional frame)
+  "Switch to the frame the dframe controlled frame FRAME was started from. If
+optional arg FRAME is nil assume the attached frame is already selected and
+just run the hooks `dframe-after-select-attached-frame-hook'. Return the
+attached frame."
+  (let ((frame (dframe-attached-frame frame)))
+    (if frame (select-frame frame))
+    (prog1 frame
+      (run-hooks 'dframe-after-select-attached-frame-hook))))
+
+(defmacro dframe-with-attached-buffer (&rest forms)
+  "Execute FORMS in the attached frame's special buffer.
+Optionally select that frame if necessary."
+  `(save-selected-window
+     ;;(speedbar-set-timer speedbar-update-speed)
+     (dframe-select-attached-frame)
+     ,@forms
+     (dframe-maybee-jump-to-attached-frame)))
+
+(defun dframe-maybee-jump-to-attached-frame ()
+  "Jump to the attached frame ONLY if this was not a mouse event."
+  (when (or (not (dframe-mouse-event-p last-input-event))
+            dframe-activity-change-focus-flag)
+    (dframe-select-attached-frame)
+    ;; KB: For what is this - raising the frame??
+    (other-frame 0)))
+
+
+(defvar dframe-suppress-message-flag nil
+  "Non-nil means that `dframe-message' should just return a string.")
+
+(defun dframe-message (fmt &rest args)
+  "Like message, but for use in a dedicated frame.
+Argument FMT is the format string, and ARGS are the arguments for message."
+  (save-selected-window
+    (if dframe-suppress-message-flag
+	(apply 'format fmt args)
+      (if dframe-attached-frame
+          ;; KB: Here we do not need calling `dframe-select-attached-frame'
+	  (select-frame dframe-attached-frame))
+      (apply 'message fmt args))))
+
+(defun dframe-y-or-n-p (prompt)
+  "Like `y-or-n-p', but for use in a dedicated frame.
+Argument PROMPT is the prompt to use."
+  (save-selected-window
+    (if (and ;;default-minibuffer-frame
+	     dframe-attached-frame
+	     ;;(not (eq default-minibuffer-frame dframe-attached-frame))
+	     )
+        ;; KB: Here we do not need calling `dframe-select-attached-frame'
+	(select-frame dframe-attached-frame))
+    (y-or-n-p prompt)))
+
+;;; timer management
+;;
+;; Unlike speedbar with a dedicated set of routines, dframe has one master
+;; timer, and all dframe users will use it.  At least until I figure out a way
+;; around that problem.
+;;
+;; Advantage 1: Two apps with timer/frames can munge the master list
+;;              to make sure they occur in order.
+;; Advantage 2: If a user hits a key between timer functions, we can
+;;	        interrupt them safely.
+(defvar dframe-client-functions nil
+  "List of client functions using the dframe timer.")
+
+(defun dframe-set-timer (timeout fn &optional null-on-error)
+  "Apply a timer with TIMEOUT, to call FN, or remove a timer if TIMEOUT is nil.
+TIMEOUT is the number of seconds until the dframe controled program
+timer is called again.  When TIMEOUT is nil, turn off all timeouts.
+This function must be called from the buffer belonging to the program
+who requested the timer.
+If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
+  ;; First, fix up our list of client functions
+  (if timeout
+      (add-to-list 'dframe-client-functions fn)
+    (setq dframe-client-functions (delete fn dframe-client-functions)))
+  ;; Now decided what to do about the timout.
+  (if (or
+       ;; We have a timer, restart the timer with the new time.
+       timeout
+       ;; We have a timer, an off is requested, and no client
+       ;; functions are left, shut er down.
+       (and dframe-timer (not timeout) dframe-client-functions))
+      ;; Only call the low level function if we are changing the state.
+      (dframe-set-timer-internal timeout null-on-error)))
+
+(defun dframe-set-timer-internal (timeout &optional null-on-error)
+  "Apply a timer with TIMEOUT to call the dframe timer manager.
+If NULL-ON-ERROR is a symbol, set it to nil if we cannot create a timer."
+  (cond
+   ;; XEmacs
+   (dframe-xemacsp
+    (with-no-warnings
+    (if dframe-timer
+	(progn (delete-itimer dframe-timer)
+	       (setq dframe-timer nil)))
+    (if timeout
+	(if (and dframe-xemacsp
+		 (or (>= emacs-major-version 21)
+		     (and (= emacs-major-version 20)
+			  (> emacs-minor-version 0))
+		     (and (= emacs-major-version 19)
+			  (>= emacs-minor-version 15))))
+	    (setq dframe-timer (start-itimer "dframe"
+					     'dframe-timer-fn
+					     timeout
+					     timeout
+					     t))
+	  (setq dframe-timer (start-itimer "dframe"
+					   'dframe-timer-fn
+					   timeout
+					   nil))))))
+   ;; Post 19.31 Emacs
+   ((fboundp 'run-with-idle-timer)
+    (if dframe-timer
+	(progn (cancel-timer dframe-timer)
+	       (setq dframe-timer nil)))
+    (if timeout
+	(setq dframe-timer
+	      (run-with-idle-timer timeout t 'dframe-timer-fn))))
+   ;; Emacs 19.30 (Thanks twice: ptype@dra.hmg.gb)
+   ((fboundp 'post-command-idle-hook)
+    (if timeout
+	(add-hook 'post-command-idle-hook 'dframe-timer-fn)
+      (remove-hook 'post-command-idle-hook 'dframe-timer-fn)))
+   ;; Older or other Emacsen with no timers.  Set up so that its
+   ;; obvious this emacs can't handle the updates
+   ((symbolp null-on-error)
+    (set null-on-error nil)))
+  )
+
+(defun dframe-timer-fn ()
+  "Called due to the dframe timer.
+Evaluates all cached timer functions in sequence."
+  (let ((l dframe-client-functions))
+    (while (and l (sit-for 0))
+      (condition-case er
+	  (funcall (car l))
+	(error (message "DFRAME TIMER ERROR: %S" er)))
+      (setq l (cdr l)))))
+
+;;; Menu hacking for mouse-3
+;;
+(defconst dframe-pass-event-to-popup-mode-menu
+  (let (max-args)
+    (and (fboundp 'popup-mode-menu)
+         (fboundp 'function-max-args)
+         (setq max-args (function-max-args 'popup-mode-menu))
+         (not (zerop max-args))))
+  "The EVENT arg to 'popup-mode-menu' was introduced in XEmacs 21.4.0.")
+
+;; In XEmacs, we make popup menus work on the item over mouse (as
+;; opposed to where the point happens to be.)  We attain this by
+;; temporarily moving the point to that place.
+;;    Hrvoje Niksic <hniksic@srce.hr>
+(with-no-warnings
+(defun dframe-xemacs-popup-kludge (event)
+  "Pop up a menu related to the clicked on item.
+Must be bound to EVENT."
+  (interactive "e")
+  (save-excursion
+    (if dframe-pass-event-to-popup-mode-menu
+        (popup-mode-menu event)
+      (goto-char (event-closest-point event))
+      (beginning-of-line)
+      (forward-char (min 5 (- (save-excursion (end-of-line) (point))
+                              (save-excursion (beginning-of-line) (point)))))
+      (popup-mode-menu))
+    ;; Wait for menu to bail out.  `popup-mode-menu' (and other popup
+    ;; menu functions) return immediately.
+    (let (new)
+      (while (not (misc-user-event-p (setq new (next-event))))
+        (dispatch-event new))
+      (dispatch-event new))))
+);with-no-warnings
+
+(defun dframe-emacs-popup-kludge (e)
+  "Pop up a menu related to the clicked on item.
+Must be bound to event E."
+  (interactive "e")
+  (save-excursion
+    (mouse-set-point e)
+    ;; This gets the cursor where the user can see it.
+    (if (not (bolp)) (forward-char -1))
+    (sit-for 0)
+    (if (< emacs-major-version 20)
+	(mouse-major-mode-menu e)
+      (mouse-major-mode-menu e nil))))
+
+;;; Interactive user functions for the mouse
+;;
+(if dframe-xemacsp
+    (defalias 'dframe-mouse-event-p 'button-press-event-p)
+  (defun dframe-mouse-event-p (event)
+    "Return t if the event is a mouse related event."
+    (if (and (listp event)
+	     (member (event-basic-type event)
+		     '(mouse-1 mouse-2 mouse-3)))
+	t
+      nil)))
+
+(defun dframe-track-mouse (event)
+  "For motion EVENT, display info about the current line."
+  (interactive "e")
+  (when (and dframe-track-mouse-function
+	     (or dframe-xemacsp ;; XEmacs always safe?
+		 (windowp (posn-window (event-end event))) ; Sometimes
+					; there is no window to jump into.
+		 ))
+
+    (funcall dframe-track-mouse-function event)))
+
+(defun dframe-track-mouse-xemacs (event)
+  "For motion EVENT, display info about the current line."
+  (if (functionp (default-value 'mouse-motion-handler))
+      (funcall (default-value 'mouse-motion-handler) event))
+  (if dframe-track-mouse-function
+      (funcall dframe-track-mouse-function event)))
+
+(defun dframe-help-echo (window &optional buffer position)
+  "Display help based context.
+The context is in WINDOW, viewing BUFFER, at POSITION.
+BUFFER and POSITION are optional because XEmacs doesn't use them."
+  (when (and (not dframe-track-mouse-function)
+	     (bufferp buffer)
+	     dframe-help-echo-function)
+    (let ((dframe-suppress-message-flag t))
+      (with-current-buffer buffer
+	(save-excursion
+	  (if position (goto-char position))
+	  (funcall dframe-help-echo-function))))))
+
+(defun dframe-mouse-set-point (e)
+  "Set POINT based on event E.
+Handles clicking on images in XEmacs."
+  (if (save-excursion
+	(save-window-excursion
+	  (mouse-set-point e)
+	  (and (fboundp 'event-over-glyph-p) (event-over-glyph-p e))))
+      ;; We are in XEmacs, and clicked on a picture
+      (with-no-warnings
+      (let ((ext (event-glyph-extent e)))
+	;; This position is back inside the extent where the
+	;; junk we pushed into the property list lives.
+	(if (extent-end-position ext)
+	    (goto-char (1- (extent-end-position ext)))
+	  (mouse-set-point e)))
+      );with-no-warnings
+    ;; We are not in XEmacs, OR we didn't click on a picture.
+    (mouse-set-point e)))
+
+(defun dframe-quick-mouse (e)
+  "Since mouse events are strange, this will keep the mouse nicely positioned.
+This should be bound to mouse event E."
+  (interactive "e")
+  (dframe-mouse-set-point e)
+  (if dframe-mouse-position-function
+      (funcall dframe-mouse-position-function)))
+
+(defun dframe-power-click (e)
+  "Activate any `dframe' mouse click as a power click.
+A power click will dispose of cached data (if available) or bring a buffer
+up into a different window.
+This should be bound to mouse event E."
+  (interactive "e")
+  (let ((dframe-power-click t))
+    (select-frame last-event-frame)
+    (dframe-click e)))
+
+(defun dframe-click (e)
+  "Call our clients click function on a user click.
+E is the event causing the click."
+  (interactive "e")
+  (dframe-mouse-set-point e)
+  (when dframe-mouse-click-function
+    ;; On the off chance of buffer switch, or something incorrectly
+    ;; configured.
+    (funcall dframe-mouse-click-function e)))
+
+(defun dframe-double-click (e)
+  "Activate the registered click function on a double click.
+This must be bound to a mouse event.
+This should be bound to mouse event E."
+  (interactive "e")
+  ;; Emacs only.  XEmacs handles this via `mouse-track-click-hook'.
+  (cond ((eq (car e) 'down-mouse-1)
+	 (dframe-mouse-set-point e))
+	((eq (car e) 'mouse-1)
+	 (dframe-quick-mouse e))
+	((or (eq (car e) 'double-down-mouse-1)
+	     (eq (car e) 'triple-down-mouse-1))
+	 (dframe-click e))))
+
+;;; Hacks of normal things.
+;;
+;; Some normal things that happen in one of these dedicated frames
+;; must be handled specially, so that our dedicated frame isn't
+;; messed up.
+(defun dframe-temp-buffer-show-function (buffer)
+  "Placed in the variable `temp-buffer-show-function' in dedicated frames.
+If a user requests help using \\[help-command] <Key> the temp BUFFER will be
+redirected into a window on the attached frame."
+  (if dframe-attached-frame (dframe-select-attached-frame))
+  (pop-to-buffer buffer nil)
+  (other-window -1)
+  ;; Fix for using this hook on some platforms: Bob Weiner
+  (cond ((not dframe-xemacsp)
+	 (run-hooks 'temp-buffer-show-hook))
+	((fboundp 'run-hook-with-args)
+	 (run-hook-with-args 'temp-buffer-show-hook buffer))
+	((and (boundp 'temp-buffer-show-hook)
+	      (listp temp-buffer-show-hook))
+	 (mapcar (function (lambda (hook) (funcall hook buffer)))
+		 temp-buffer-show-hook))))
+
+(defun dframe-hack-buffer-menu (e)
+  "Control mouse 1 is buffer menu.
+This hack overrides it so that the right thing happens in the main
+Emacs frame, not in the dedicated frame.
+Argument E is the event causing this activity."
+  (interactive "e")
+  (let ((fn (lookup-key global-map (if dframe-xemacsp
+				              '(control button1)
+				     [C-down-mouse-1])))
+	(oldbuff (current-buffer))
+	(newbuff nil))
+    (unwind-protect
+	(save-excursion
+	  (set-window-dedicated-p (selected-window) nil)
+	  (call-interactively fn)
+	  (setq newbuff (current-buffer)))
+      (switch-to-buffer oldbuff)
+      (set-window-dedicated-p (selected-window) t))
+    (if (not (eq newbuff oldbuff))
+	(dframe-with-attached-buffer
+	 (switch-to-buffer newbuff)))))
+
+(defun dframe-switch-buffer-attached-frame (&optional buffer)
+  "Switch to BUFFER in the attached frame, and raise that frame.
+This overrides the default behavior of `switch-to-buffer' which is
+broken because of the dedicated frame."
+  (interactive)
+  ;; Assume we are in the dedicated frame.
+  (other-frame 1)
+  ;; Now switch buffers
+  (if buffer
+      (switch-to-buffer buffer)
+    (call-interactively 'switch-to-buffer nil nil)))
+
+;; XEmacs: this can be implemented using modeline keymaps, but there
+;; is no use, as we have horizontal scrollbar (as the docstring
+;; hints.)
+(defun dframe-mouse-hscroll (e)
+  "Read a mouse event E from the mode line, and horizontally scroll.
+If the mouse is being clicked on the far left, or far right of the
+mode-line.  This is only useful for non-XEmacs."
+  (interactive "e")
+  (let* ((x-point (car (nth 2 (car (cdr e)))))
+	 (pixels-per-10-col (/ (* 10 (frame-pixel-width))
+			       (frame-width)))
+	 (click-col (1+ (/ (* 10 x-point) pixels-per-10-col)))
+	 )
+    (cond ((< click-col 3)
+	   (scroll-left 2))
+	  ((> click-col (- (window-width) 5))
+	   (scroll-right 2))
+	  (t (dframe-message
+	      "Click on the edge of the modeline to scroll left/right")))
+    ))
+
+(provide 'dframe)
+
+;; arch-tag: df9b91b6-e85e-4a76-a02e-b3cb5b686bd4
+;;; dframe.el ends here
--- a/lisp/ediff-merg.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/ediff-merg.el	Fri Oct 07 07:15:40 2005 +0000
@@ -103,11 +103,15 @@
   )
 (make-variable-buffer-local 'ediff-skip-merge-regions-that-differ-from-default)
 
+;; check if there is no clash between the ancestor and one of the variants.
+(defsubst ediff-merge-region-is-non-clash (n)
+  (string-match "prefer" (or (ediff-get-state-of-merge n) "")))
+
 ;; If ediff-show-clashes-only, check if there is no clash between the ancestor
 ;; and one of the variants.
-(defsubst ediff-merge-region-is-non-clash (n)
+(defsubst ediff-merge-region-is-non-clash-to-skip (n)
   (and ediff-show-clashes-only
-       (string-match "prefer" (or (ediff-get-state-of-merge n) ""))))
+       (ediff-merge-region-is-non-clash n)))
 
 ;; If ediff-skip-changed-regions, check if the merge region differs from
 ;; the current default. If a region is different from the default, it means
--- a/lisp/ediff-mult.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/ediff-mult.el	Fri Oct 07 07:15:40 2005 +0000
@@ -1624,7 +1624,7 @@
 	   (save-excursion
 	     (set-buffer meta-diff-buff)
 	     (goto-char (point-max))
-	     (insert-buffer custom-diff-buf)
+	     (insert-buffer-substring custom-diff-buf)
 	     (insert "\n")))
 	  ;; if ediff session is not live, run diff directly on the files
 	  ((memq metajob '(ediff-directories
@@ -1643,7 +1643,7 @@
 	   (save-excursion
 	     (set-buffer meta-diff-buff)
 	     (goto-char (point-max))
-	     (insert-buffer tmp-buf)
+	     (insert-buffer-substring tmp-buf)
 	     (insert "\n")))
 	  (t
 	   (ediff-kill-buffer-carefully meta-diff-buff)
@@ -1691,7 +1691,8 @@
 	       (ediff-get-session-objC-name info)))
 	    (set-buffer (get-buffer-create ediff-tmp-buffer))
 	    (erase-buffer)
-	    (insert-buffer patchbuffer)
+	    (insert-buffer-substring patchbuffer)
+	    (goto-char (point-min))
 	    (display-buffer ediff-tmp-buffer 'not-this-window)
 	    ))
       (error "The patch buffer wasn't found"))))
--- a/lisp/ediff-ptch.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/ediff-ptch.el	Fri Oct 07 07:15:40 2005 +0000
@@ -297,16 +297,23 @@
 		      ;; (file1 . file2). Get it using ediff-get-session-objA.
 		      (ediff-get-session-objA-name session-info))
 		     ;; base-dir1 is  the dir part of the 1st file in the patch
-		     (base-dir1 (file-name-directory (car proposed-file-names)))
+		     (base-dir1
+		      (or (file-name-directory (car proposed-file-names))
+			  ""))
 		     ;; directory part of the 2nd file in the patch
-		     (base-dir2 (file-name-directory (cdr proposed-file-names)))
+		     (base-dir2
+		      (or (file-name-directory (cdr proposed-file-names))
+			  ""))
 		     )
-		;; If both base-dir1 and base-dir2 are relative, assume that
+		;; If both base-dir1 and base-dir2 are relative and exist,
+		;; assume that
 		;; these dirs lead to the actual files starting at the present
 		;; directory. So, we don't strip these relative dirs from the
 		;; file names. This is a heuristic intended to improve guessing
 		(unless (or (file-name-absolute-p base-dir1)
-			    (file-name-absolute-p base-dir2))
+			    (file-name-absolute-p base-dir2)
+			    (not (file-exists-p base-dir1))
+			    (not (file-exists-p base-dir2)))
 		  (setq base-dir1 ""
 			base-dir2 ""))
 		(or (string= (car proposed-file-names) "/dev/null")
@@ -377,8 +384,8 @@
 			   (concat actual-dir (cdr proposed-file-names)))))
 		))
 	    ediff-patch-map)
-    ;; check for the shorter existing file in each pair and discard the other
-    ;; one
+    ;; Check for the existing files in each pair and discard the nonexisting
+    ;; ones. If both exist, ask the user.
     (mapcar (lambda (session-info)
 	      (let* ((file1 (car (ediff-get-session-objA-name session-info)))
 		     (file2 (cdr (ediff-get-session-objA-name session-info)))
--- a/lisp/ediff-util.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/ediff-util.el	Fri Oct 07 07:15:40 2005 +0000
@@ -329,7 +329,7 @@
 	    ediff-word-mode-job (ediff-word-mode-job))
 
       ;; Don't delete variants in case of ediff-buffer-* jobs without asking.
-      ;; This is because u may loose work---dangerous.
+      ;; This is because one may loose work---dangerous.
       (if (string-match "buffer" (symbol-name ediff-job-name))
 	  (setq ediff-keep-variants t))
 
@@ -368,6 +368,7 @@
 	    (save-excursion
 	      (set-buffer buffer-C)
 	      (insert-buffer-substring buf)
+	      (goto-char (point-min))
 	      (funcall (ediff-with-current-buffer buf major-mode))
 	      (widen) ; merge buffer is always widened
 	      (add-hook 'local-write-file-hooks 'ediff-set-merge-mode nil t)
@@ -1729,7 +1730,7 @@
 	(or (>= n ediff-number-of-differences)
 	    (setq regexp-skip (funcall ediff-skip-diff-region-function n))
 	    ;; this won't exec if regexp-skip is t
-	    (setq non-clash-skip (ediff-merge-region-is-non-clash n)
+	    (setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
 		  skip-changed
 		  (ediff-skip-merge-region-if-changed-from-default-p n))
 	    (ediff-install-fine-diff-if-necessary n))
@@ -1744,6 +1745,7 @@
 		     skip-changed
 		     ;; skip difference regions that differ in white space
 		     (and ediff-ignore-similar-regions
+			  (ediff-merge-region-is-non-clash n)
 			  (or (eq (ediff-no-fine-diffs-p n) t)
 			      (and (ediff-merge-job)
 				   (eq (ediff-no-fine-diffs-p n) 'C)))
@@ -1754,7 +1756,7 @@
 	  (or (>= n ediff-number-of-differences)
 	      (setq regexp-skip (funcall ediff-skip-diff-region-function n))
 	      ;; this won't exec if regexp-skip is t
-	      (setq non-clash-skip (ediff-merge-region-is-non-clash n)
+	      (setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
 		    skip-changed
 		    (ediff-skip-merge-region-if-changed-from-default-p n))
 	      (ediff-install-fine-diff-if-necessary n))
@@ -1778,7 +1780,7 @@
 	(or (< n 0)
 	    (setq regexp-skip (funcall ediff-skip-diff-region-function n))
 	    ;; this won't exec if regexp-skip is t
-	    (setq non-clash-skip (ediff-merge-region-is-non-clash n)
+	    (setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
 		  skip-changed
 		  (ediff-skip-merge-region-if-changed-from-default-p n))
 	    (ediff-install-fine-diff-if-necessary n))
@@ -1802,7 +1804,7 @@
 	  (or (< n 0)
 	      (setq regexp-skip (funcall ediff-skip-diff-region-function n))
 	      ;; this won't exec if regexp-skip is t
-	      (setq non-clash-skip (ediff-merge-region-is-non-clash n)
+	      (setq non-clash-skip (ediff-merge-region-is-non-clash-to-skip n)
 		    skip-changed
 		    (ediff-skip-merge-region-if-changed-from-default-p n))
 	      (ediff-install-fine-diff-if-necessary n))
--- a/lisp/ediff-wind.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/ediff-wind.el	Fri Oct 07 07:15:40 2005 +0000
@@ -900,7 +900,7 @@
 
     (ediff-with-current-buffer ctl-buffer
       (ediff-cond-compile-for-xemacs-or-emacs
-       (set-buffer-menubar nil) ; xemacs
+       (when (featurep 'menubar) (set-buffer-menubar nil)) ; xemacs
        nil ; emacs
        )
       ;;(setq user-grabbed-mouse (ediff-user-grabbed-mouse))
@@ -1054,7 +1054,8 @@
     (if (and (ediff-window-display-p) (frame-live-p ediff-control-frame))
 	(let ((ctl-frame ediff-control-frame))
 	  (ediff-cond-compile-for-xemacs-or-emacs
-	   (set-buffer-menubar default-menubar) ; xemacs
+	   (when (featurep 'menubar)
+	     (set-buffer-menubar default-menubar)) ; xemacs
 	   nil ; emacs
 	   )
 	  (setq ediff-control-frame nil)
--- a/lisp/ediff.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/ediff.el	Fri Oct 07 07:15:40 2005 +0000
@@ -8,7 +8,7 @@
 ;; Keywords: comparing, merging, patching, tools, unix
 
 (defconst ediff-version "2.80.1" "The current version of Ediff")
-(defconst ediff-date "September 19, 2005" "Date of last update")
+(defconst ediff-date "October 5, 2005" "Date of last update")
 
 
 ;; This file is part of GNU Emacs.
--- a/lisp/emacs-lisp/eldoc.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/emacs-lisp/eldoc.el	Fri Oct 07 07:15:40 2005 +0000
@@ -103,37 +103,37 @@
 
 ;;; No user options below here.
 
-;; Commands after which it is appropriate to print in the echo area.
-;; Eldoc does not try to print function arglists, etc. after just any command,
-;; because some commands print their own messages in the echo area and these
-;; functions would instantly overwrite them.  But self-insert-command as well
-;; as most motion commands are good candidates.
-;; This variable contains an obarray of symbols; do not manipulate it
-;; directly.  Instead, use `eldoc-add-command' and `eldoc-remove-command'.
-(defvar eldoc-message-commands nil)
+(defvar eldoc-message-commands-table-size 31
+  "This is used by eldoc-add-command to initialize eldoc-message-commands
+as an obarray.
+It should probably never be necessary to do so, but if you
+choose to increase the number of buckets, you must do so before loading
+this file since the obarray is initialized at load time.
+Remember to keep it a prime number to improve hash performance.")
 
-;; This is used by eldoc-add-command to initialize eldoc-message-commands
-;; as an obarray.
-;; It should probably never be necessary to do so, but if you
-;; choose to increase the number of buckets, you must do so before loading
-;; this file since the obarray is initialized at load time.
-;; Remember to keep it a prime number to improve hash performance.
-(defvar eldoc-message-commands-table-size 31)
+(defconst eldoc-message-commands
+  (make-vector eldoc-message-commands-table-size 0)
+  "Commands after which it is appropriate to print in the echo area.
+Eldoc does not try to print function arglists, etc. after just any command,
+because some commands print their own messages in the echo area and these
+functions would instantly overwrite them.  But self-insert-command as well
+as most motion commands are good candidates.
+This variable contains an obarray of symbols; do not manipulate it
+directly.  Instead, use `eldoc-add-command' and `eldoc-remove-command'.")
 
-;; Bookkeeping; elements are as follows:
-;;   0 - contains the last symbol read from the buffer.
-;;   1 - contains the string last displayed in the echo area for that
-;;       symbol, so it can be printed again if necessary without reconsing.
-;;   2 - 'function if function args, 'variable if variable documentation.
-(defvar eldoc-last-data (make-vector 3 nil))
+(defconst eldoc-last-data (make-vector 3 nil)
+  "Bookkeeping; elements are as follows:
+  0 - contains the last symbol read from the buffer.
+  1 - contains the string last displayed in the echo area for that
+      symbol, so it can be printed again if necessary without reconsing.
+  2 - 'function if function args, 'variable if variable documentation.")
 (defvar eldoc-last-message nil)
 
-;; eldoc's timer object.
-(defvar eldoc-timer nil)
+(defvar eldoc-timer nil "eldoc's timer object.")
 
-;; idle time delay currently in use by timer.
-;; This is used to determine if eldoc-idle-delay is changed by the user.
-(defvar eldoc-current-idle-delay eldoc-idle-delay)
+(defvar eldoc-current-idle-delay eldoc-idle-delay
+  "idle time delay currently in use by timer.
+This is used to determine if `eldoc-idle-delay' is changed by the user.")
 
 
 ;;;###autoload
@@ -408,53 +408,32 @@
 ;; These functions do display-command table management.
 
 (defun eldoc-add-command (&rest cmds)
-  (or eldoc-message-commands
-      (setq eldoc-message-commands
-            (make-vector eldoc-message-commands-table-size 0)))
-
-  (let (name sym)
-    (while cmds
-      (setq name (car cmds))
-      (setq cmds (cdr cmds))
-
-      (cond ((symbolp name)
-             (setq sym name)
-             (setq name (symbol-name sym)))
-            ((stringp name)
-             (setq sym (intern-soft name))))
-
-      (and (symbolp sym)
-           (fboundp sym)
-           (set (intern name eldoc-message-commands) t)))))
+  (dolist (name cmds)
+    (and (symbolp name)
+         (setq name (symbol-name name)))
+    (set (intern name eldoc-message-commands) t)))
 
 (defun eldoc-add-command-completions (&rest names)
-  (while names
-    (apply 'eldoc-add-command
-	   (all-completions (car names) obarray 'fboundp))
-    (setq names (cdr names))))
+  (dolist (name names)
+    (apply 'eldoc-add-command (all-completions name obarray 'commandp))))
 
 (defun eldoc-remove-command (&rest cmds)
-  (let (name)
-    (while cmds
-      (setq name (car cmds))
-      (setq cmds (cdr cmds))
-
-      (and (symbolp name)
-           (setq name (symbol-name name)))
-
-      (unintern name eldoc-message-commands))))
+  (dolist (name cmds)
+    (and (symbolp name)
+         (setq name (symbol-name name)))
+    (unintern name eldoc-message-commands)))
 
 (defun eldoc-remove-command-completions (&rest names)
-  (while names
+  (dolist (name names)
     (apply 'eldoc-remove-command
-           (all-completions (car names) eldoc-message-commands))
-    (setq names (cdr names))))
+           (all-completions name eldoc-message-commands))))
 
 
 ;; Prime the command list.
 (eldoc-add-command-completions
- "backward-" "beginning-of-" "delete-other-windows" "delete-window"
- "end-of-" "exchange-point-and-mark" "forward-"
+ "backward-" "beginning-of-" "move-beginning-of-" "delete-other-windows"
+ "delete-window"
+ "end-of-" "move-end-of-" "exchange-point-and-mark" "forward-"
  "indent-for-tab-command" "goto-" "mark-page" "mark-paragraph"
  "mouse-set-point" "move-" "pop-global-mark" "next-" "other-window"
  "previous-" "recenter" "scroll-" "self-insert-command"
@@ -462,5 +441,5 @@
 
 (provide 'eldoc)
 
-;;; arch-tag: c9a58f9d-2055-46c1-9b82-7248b71a8375
+;; arch-tag: c9a58f9d-2055-46c1-9b82-7248b71a8375
 ;;; eldoc.el ends here
--- a/lisp/emacs-lisp/lisp-mode.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/emacs-lisp/lisp-mode.el	Fri Oct 07 07:15:40 2005 +0000
@@ -59,9 +59,9 @@
       (modify-syntax-entry ?\t "    " table)
       (modify-syntax-entry ?\f "    " table)
       (modify-syntax-entry ?\n ">   " table)
-;;; This is probably obsolete since nowadays such features use overlays.
-;;;      ;; Give CR the same syntax as newline, for selective-display.
-;;;      (modify-syntax-entry ?\^m ">   " table)
+      ;; This is probably obsolete since nowadays such features use overlays.
+      ;; ;; Give CR the same syntax as newline, for selective-display.
+      ;; (modify-syntax-entry ?\^m ">   " table)
       (modify-syntax-entry ?\; "<   " table)
       (modify-syntax-entry ?` "'   " table)
       (modify-syntax-entry ?' "'   " table)
@@ -82,8 +82,8 @@
   (let ((table (copy-syntax-table emacs-lisp-mode-syntax-table)))
     (modify-syntax-entry ?\[ "_   " table)
     (modify-syntax-entry ?\] "_   " table)
-    (modify-syntax-entry ?# "' 14bn" table)
-    (modify-syntax-entry ?| "\" 23b" table)
+    (modify-syntax-entry ?# "' 14b" table)
+    (modify-syntax-entry ?| "\" 23bn" table)
     table))
 
 (define-abbrev-table 'lisp-mode-abbrev-table ())
@@ -147,25 +147,45 @@
 (put 'define-ibuffer-filter 'doc-string-elt 2)
 (put 'define-ibuffer-op 'doc-string-elt 3)
 (put 'define-ibuffer-sorter 'doc-string-elt 2)
+(put 'lambda 'doc-string-elt 2)
+
+(defvar lisp-doc-string-elt-property 'doc-string-elt
+  "The symbol property that holds the docstring position info.")
 
 (defun lisp-font-lock-syntactic-face-function (state)
   (if (nth 3 state)
-      (if (and (eq (nth 0 state) 1)
-	       ;; This might be a docstring.
-	       (save-excursion
-		 (let ((n 0))
-		   (goto-char (nth 8 state))
-		   (condition-case nil
-		       (while (and (not (bobp))
-				   (progn (backward-sexp 1) (setq n (1+ n)))))
-		     (scan-error nil))
-		   (when (> n 0)
-		     (let ((sym (intern-soft
-				 (buffer-substring
-				  (point) (progn (forward-sexp 1) (point))))))
-		       (eq n (or (get sym 'doc-string-elt) 3)))))))
-	  font-lock-doc-face
-	font-lock-string-face)
+      ;; This might be a (doc)string or a |...| symbol.
+      (let ((startpos (nth 8 state)))
+        (if (eq (char-after startpos) ?|)
+            ;; This is not a string, but a |...| symbol.
+            nil
+          (let* ((listbeg (nth 1 state))
+                 (firstsym (and listbeg
+                                (save-excursion
+                                  (goto-char listbeg)
+                                  (and (looking-at "([ \t\n]*\\(\\(\\sw\\|\\s_\\)+\\)")
+                                       (match-string 1)))))
+                 (docelt (and firstsym (get (intern-soft firstsym)
+                                            lisp-doc-string-elt-property))))
+            (if (and docelt
+                     ;; It's a string in a form that can have a docstring.
+                     ;; Check whether it's in docstring position.
+                     (save-excursion
+                       (when (functionp docelt)
+                         (goto-char (match-end 1))
+                         (setq docelt (funcall docelt)))
+                       (goto-char listbeg)
+                       (forward-char 1)
+                       (condition-case nil
+                           (while (and (> docelt 0) (< (point) startpos)
+                                       (progn (forward-sexp 1) t))
+                             (setq docelt (1- docelt)))
+                         (error nil))
+                       (and (zerop docelt) (<= (point) startpos)
+                            (progn (forward-comment (point-max)) t)
+                            (= (point) (nth 8 state)))))
+                font-lock-doc-face
+              font-lock-string-face))))
     font-lock-comment-face))
 
 ;; The LISP-SYNTAX argument is used by code in inf-lisp.el and is
--- a/lisp/emulation/viper-cmd.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/emulation/viper-cmd.el	Fri Oct 07 07:15:40 2005 +0000
@@ -494,13 +494,20 @@
 		       viper-empty-keymap))
 	       ))
 	
-  ;; in emacs with emulation-mode-map-alists, nothing needs to be done
+  ;; This var is not local in Emacs, so we make it local.  It must be local
+  ;; because although the stack of minor modes can be the same for all buffers,
+  ;; the associated *keymaps* can be different.  In Viper,
+  ;; viper-vi-local-user-map, viper-insert-local-user-map, and others can have
+  ;; different keymaps for different buffers.  Also, the keymaps associated
+  ;; with viper-vi/insert-state-modifier-minor-mode can be different.
+  ;; ***This is needed only in case emulation-mode-map-alists is not defined.
+  ;; In emacs with emulation-mode-map-alists, nothing needs to be done
   (unless
       (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
-    (setq minor-mode-map-alist
-	  (viper-append-filter-alist
-	   (append viper--intercept-key-maps viper--key-maps)
-	   minor-mode-map-alist)))
+    (set (make-local-variable 'minor-mode-map-alist)
+         (viper-append-filter-alist
+          (append viper--intercept-key-maps viper--key-maps)
+          minor-mode-map-alist)))
   )
 
 
@@ -509,7 +516,7 @@
 
 ;; Modifies mode-line-buffer-identification.
 (defun viper-refresh-mode-line ()
-  (setq viper-mode-string
+  (set (make-local-variable 'viper-mode-string)
 	(cond ((eq viper-current-state 'emacs-state) viper-emacs-state-id)
 	      ((eq viper-current-state 'vi-state) viper-vi-state-id)
 	      ((eq viper-current-state 'replace-state) viper-replace-state-id)
@@ -4781,7 +4788,7 @@
 	      level-changed t)
 	(insert "
 Please specify your level of familiarity with the venomous VI PERil
-(and the VI Plan for Emacs Rescue).
+\(and the VI Plan for Emacs Rescue).
 You can change it at any time by typing `M-x viper-set-expert-level RET'
 
  1 -- BEGINNER: Almost all Emacs features are suppressed.
@@ -5000,5 +5007,5 @@
 
 
 
-;;; arch-tag: 739a6450-5fda-44d0-88b0-325053d888c2
+;; arch-tag: 739a6450-5fda-44d0-88b0-325053d888c2
 ;;; viper-cmd.el ends here
--- a/lisp/emulation/viper-init.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/emulation/viper-init.el	Fri Oct 07 07:15:40 2005 +0000
@@ -115,11 +115,6 @@
 
 ;;; Macros
 
-;; Fool the compiler to avoid warnings.
-;; Viper calls make-variable-buffer-local from within other functions, which
-;; triggers compiler warnings.
-(defalias 'viper-make-variable-buffer-local 'make-variable-buffer-local)
-
 (defmacro viper-deflocalvar (var default-value &optional documentation)
   `(progn
     (defvar ,var ,default-value
@@ -1019,19 +1014,19 @@
 (defun viper-restore-cursor-type ()
   (condition-case nil
       (if viper-xemacs-p
-	  (setq bar-cursor nil)
+	  (set (make-local-variable 'bar-cursor) nil)
 	(setq cursor-type default-cursor-type))
     (error nil)))
 
 (defun viper-set-insert-cursor-type ()
   (if viper-xemacs-p
-      (setq bar-cursor 2)
+      (set (make-local-variable 'bar-cursor) 2)
     (setq cursor-type '(bar . 2))))
 
 
-;;; Local Variables:
-;;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
-;;; End:
+;; Local Variables:
+;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
+;; End:
 
-;;; arch-tag: 4efa2416-1fcb-4690-be10-1a2a0248d250
+;; arch-tag: 4efa2416-1fcb-4690-be10-1a2a0248d250
 ;;; viper-init.el ends here
--- a/lisp/emulation/viper.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/emulation/viper.el	Fri Oct 07 07:15:40 2005 +0000
@@ -9,7 +9,7 @@
 ;; Author: Michael Kifer <kifer@cs.stonybrook.edu>
 ;; Keywords: emulations
 
-(defconst viper-version "3.11.5 of September 19, 2005"
+(defconst viper-version "3.11.5 of October 5, 2005"
   "The current version of Viper")
 
 ;; This file is part of GNU Emacs.
@@ -605,8 +605,6 @@
 		    ))
 	      (viper-set-expert-level 'dont-change-unless)))
 
-	(if viper-xemacs-p
-	    (viper-make-variable-buffer-local 'bar-cursor))
 	(if (eq major-mode 'viper-mode)
 	    (setq major-mode 'fundamental-mode))
 
@@ -627,8 +625,8 @@
 
 ;; This hook designed to enable Vi-style editing in comint-based modes."
 (defun viper-comint-mode-hook ()
-  (setq require-final-newline nil
-	viper-ex-style-editing nil
+  (set (make-local-variable 'require-final-newline) nil)
+  (setq viper-ex-style-editing nil
 	viper-ex-style-motion nil)
   (viper-change-state-to-insert))
 
@@ -1000,17 +998,6 @@
 ;; these are primarily advices and Vi-ish variable settings
 (defun viper-non-hook-settings ()
 
-  ;; This var is not local in Emacs, so we make it local.  It must be local
-  ;; because although the stack of minor modes can be the same for all buffers,
-  ;; the associated *keymaps* can be different.  In Viper,
-  ;; viper-vi-local-user-map, viper-insert-local-user-map, and others can have
-  ;; different keymaps for different buffers.  Also, the keymaps associated
-  ;; with viper-vi/insert-state-modifier-minor-mode can be different.
-  ;; ***This is needed only in case emulation-mode-map-alists is not defined
-  (unless
-      (and (fboundp 'add-to-ordered-list) (boundp 'emulation-mode-map-alists))
-    (viper-make-variable-buffer-local 'minor-mode-map-alist))
-
   ;; Viper changes the default mode-line-buffer-identification
   (setq-default mode-line-buffer-identification '(" %b"))
 
@@ -1018,8 +1005,6 @@
   (setq next-line-add-newlines nil
 	require-final-newline t)
 
-  (viper-make-variable-buffer-local 'require-final-newline)
-
   ;; don't bark when mark is inactive
   (if viper-emacs-p
       (setq mark-even-if-inactive t))
@@ -1027,7 +1012,6 @@
   (setq scroll-step 1)
 
   ;; Variable displaying the current Viper state in the mode line.
-  (viper-deflocalvar viper-mode-string viper-emacs-state-id)
   (or (memq 'viper-mode-string global-mode-string)
       (setq global-mode-string
 	    (append '("" viper-mode-string) (cdr global-mode-string))))
@@ -1336,9 +1320,9 @@
 (provide 'viper)
 
 
-;;; Local Variables:
-;;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
-;;; End:
+;; Local Variables:
+;; eval: (put 'viper-deflocalvar 'lisp-indent-hook 'defun)
+;; End:
 
-;;; arch-tag: 5f3e844c-c4e6-4bbd-9b73-63bdc14e7d79
+;; arch-tag: 5f3e844c-c4e6-4bbd-9b73-63bdc14e7d79
 ;;; viper.el ends here
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/ezimage.el	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,371 @@
+;;; ezimage --- Generalized Image management
+
+;;; Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation
+
+;; Author: Eric M. Ludlam <zappo@gnu.org>
+;; Keywords: file, tags, tools
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+;;
+;; A few routines for placing an image over text that will work for any
+;; Emacs implementation without error.  When images are not supported, then
+;; they are justnot displayed.
+;;
+;; The idea is that gui buffers (trees, buttons, etc) will have text
+;; representations of the GUI elements.  These routines will replace the text
+;; with an image when images are available.
+;;
+;; This file requires the `image' package if it is available.
+
+(condition-case nil
+    (require 'image)
+  (error nil))
+
+;;; Code:
+(defcustom ezimage-use-images
+  (and (or (fboundp 'defimage) ; emacs 21
+	   (fboundp 'make-image-specifier)) ; xemacs
+       (if (fboundp 'display-graphic-p) ; emacs 21
+	   (display-graphic-p)
+	 window-system) ; old emacs & xemacs
+       (or (not (fboundp 'image-type-available-p)) ; xemacs?
+	   (image-type-available-p 'xpm))) ; emacs 21
+  "*Non-nil if ezimage should display icons."
+  :group 'ezimage
+  :version "21.1"
+  :type 'boolean)
+
+;;; Create our own version of defimage
+(eval-and-compile
+
+(if (fboundp 'defimage)
+
+    (progn
+
+(defmacro defezimage (variable imagespec docstring)
+  "Define VARIABLE as an image if `defimage' is not available.
+IMAGESPEC is the image data, and DOCSTRING is documentation for the image."
+  `(progn
+     (defimage ,variable ,imagespec ,docstring)
+     (put (quote ,variable) 'ezimage t)))
+
+;    (defalias 'defezimage 'defimage)
+
+;; This hack is for the ezimage install which has an icons direcory for
+;; the default icons to be used.
+;; (add-to-list 'load-path
+;; 	     (concat (file-name-directory
+;; 		      (locate-library "ezimage.el"))
+;; 		     "icons"))
+
+       )
+  (if (not (fboundp 'make-glyph))
+      
+(defmacro defezimage (variable imagespec docstring)
+  "Don't bother loading up an image...
+Argument VARIABLE is the variable to define.
+Argument IMAGESPEC is the list defining the image to create.
+Argument DOCSTRING is the documentation for VARIABLE."
+  `(defvar ,variable nil ,docstring))
+
+;; ELSE
+(with-no-warnings
+(defun ezimage-find-image-on-load-path (image)
+  "Find the image file IMAGE on the load path."
+  (let ((l (cons
+	    ;; In XEmacs, try the data directory first (for an
+	    ;; install in XEmacs proper.)   Search the load
+	    ;; path next (for user installs)
+	    (locate-data-directory "ezimage")
+	    load-path))
+	(r nil))
+    (while (and l (not r))
+      (if (file-exists-p (concat (car l) "/" image))
+	  (setq r (concat (car l) "/" image))
+	(if (file-exists-p (concat (car l) "/icons/" image))
+	    (setq r (concat (car l) "/icons/" image))
+	  ))
+      (setq l (cdr l)))
+    r))
+);with-no-warnings
+
+(with-no-warnings
+(defun ezimage-convert-emacs21-imagespec-to-xemacs (spec)
+  "Convert the Emacs21 image SPEC into an XEmacs image spec.
+The Emacs 21 spec is what I first learned, and is easy to convert."
+  (let* ((sl (car spec))
+	 (itype (nth 1 sl))
+	 (ifile (nth 3 sl)))
+    (vector itype ':file (ezimage-find-image-on-load-path ifile))))
+);with-no-warnings
+
+(defmacro defezimage (variable imagespec docstring)
+  "Define VARIABLE as an image if `defimage' is not available.
+IMAGESPEC is the image data, and DOCSTRING is documentation for the image."
+  `(progn
+     (defvar ,variable
+       ;; The Emacs21 version of defimage looks just like the XEmacs image
+       ;; specifier, except that it needs a :type keyword.  If we line
+       ;; stuff up right, we can use this cheat to support XEmacs specifiers.
+       (condition-case nil
+	   (make-glyph
+	    (make-image-specifier
+	     (ezimage-convert-emacs21-imagespec-to-xemacs (quote ,imagespec)))
+	    'buffer)
+	 (error nil))
+       ,docstring)
+     (put ',variable 'ezimage t)))
+
+)))
+
+(defezimage ezimage-directory
+  ((:type xpm :file "ezimage/dir.xpm" :ascent center))
+  "Image used for empty directories.")
+
+(defezimage ezimage-directory-plus
+  ((:type xpm :file "ezimage/dir-plus.xpm" :ascent center))
+  "Image used for closed directories with stuff in them.")
+
+(defezimage ezimage-directory-minus
+  ((:type xpm :file "ezimage/dir-minus.xpm" :ascent center))
+  "Image used for open directories with stuff in them.")
+
+(defezimage ezimage-page-plus
+  ((:type xpm :file "ezimage/page-plus.xpm" :ascent center))
+  "Image used for closed files with stuff in them.")
+
+(defezimage ezimage-page-minus
+  ((:type xpm :file "ezimage/page-minus.xpm" :ascent center))
+  "Image used for open files with stuff in them.")
+
+(defezimage ezimage-page
+  ((:type xpm :file "ezimage/page.xpm" :ascent center))
+  "Image used for files with nothing interesting in it.")
+
+(defezimage ezimage-tag
+  ((:type xpm :file "ezimage/tag.xpm" :ascent center))
+  "Image used for tags.")
+
+(defezimage ezimage-tag-plus
+  ((:type xpm :file "ezimage/tag-plus.xpm" :ascent center))
+  "Image used for closed tag groups.")
+
+(defezimage ezimage-tag-minus
+  ((:type xpm :file "ezimage/tag-minus.xpm" :ascent center))
+  "Image used for open tags.")
+
+(defezimage ezimage-tag-gt
+  ((:type xpm :file "ezimage/tag-gt.xpm" :ascent center))
+  "Image used for closed tags (with twist arrow).")
+
+(defezimage ezimage-tag-v
+  ((:type xpm :file "ezimage/tag-v.xpm" :ascent center))
+  "Image used for open tags (with twist arrow).")
+
+(defezimage ezimage-tag-type
+  ((:type xpm :file "ezimage/tag-type.xpm" :ascent center))
+  "Image used for tags that represent a data type.")
+
+(defezimage ezimage-box-plus
+  ((:type xpm :file "ezimage/box-plus.xpm" :ascent center))
+  "Image of a closed box.")
+
+(defezimage ezimage-box-minus
+  ((:type xpm :file "ezimage/box-minus.xpm" :ascent center))
+  "Image of an open box.")
+
+(defezimage ezimage-mail
+  ((:type xpm :file "ezimage/mail.xpm" :ascent center))
+  "Image if an envelope.")
+
+(defezimage ezimage-checkout
+  ((:type xpm :file "ezimage/checkmark.xpm" :ascent center))
+  "Image representing a checkmark.  For files checked out of a VC.")
+
+(defezimage ezimage-object
+  ((:type xpm :file "ezimage/bits.xpm" :ascent center))
+  "Image representing bits (an object file.)")
+
+(defezimage ezimage-object-out-of-date
+  ((:type xpm :file "ezimage/bitsbang.xpm" :ascent center))
+  "Image representing bits with a ! in it.  (an out of data object file.)")
+
+(defezimage ezimage-label
+  ((:type xpm :file "ezimage/label.xpm" :ascent center))
+  "Image used for label prefix.")
+
+(defezimage ezimage-lock
+  ((:type xpm :file "ezimage/lock.xpm" :ascent center))
+  "Image of a lock.  Used for Read Only, or private.")
+
+(defezimage ezimage-unlock
+  ((:type xpm :file "ezimage/unlock.xpm" :ascent center))
+  "Image of an unlocked lock.")
+
+(defezimage ezimage-key
+  ((:type xpm :file "ezimage/key.xpm" :ascent center))
+  "Image of a key.")
+
+(defezimage ezimage-document-tag
+  ((:type xpm :file "ezimage/doc.xpm" :ascent center))
+  "Image used to indicate documentation available.")
+
+(defezimage ezimage-document-plus
+  ((:type xpm :file "ezimage/doc-plus.xpm" :ascent center))
+  "Image used to indicate closed documentation.")
+
+(defezimage ezimage-document-minus
+  ((:type xpm :file "ezimage/doc-minus.xpm" :ascent center))
+  "Image used to indicate open documentation.")
+
+(defezimage ezimage-info-tag
+  ((:type xpm :file "ezimage/info.xpm" :ascent center))
+  "Image used to indicate more information available.")
+
+(defvar ezimage-expand-image-button-alist
+  '(
+    ;; here are some standard representations
+    ("<+>" . ezimage-directory-plus)
+    ("<->" . ezimage-directory-minus)
+    ("< >" . ezimage-directory)
+    ("[+]" . ezimage-page-plus)
+    ("[-]" . ezimage-page-minus)
+    ("[?]" . ezimage-page)
+    ("[ ]" . ezimage-page)
+    ("{+}" . ezimage-box-plus)
+    ("{-}" . ezimage-box-minus)
+    ;; Some vaguely representitive entries
+    ("*" . ezimage-checkout)
+    ("#" . ezimage-object)
+    ("!" . ezimage-object-out-of-date)
+    ("%" . ezimage-lock)
+    )
+  "List of text and image associations.")
+
+(defun ezimage-insert-image-button-maybe (start length &optional string)
+  "Insert an image button based on text starting at START for LENGTH chars.
+If buttontext is unknown, just insert that text.
+If we have an image associated with it, use that image.
+Optional argument STRING is a st ring upon which to add text properties."
+  (when ezimage-use-images
+    (let* ((bt (buffer-substring start (+ length start)))
+	   (a (assoc bt ezimage-expand-image-button-alist)))
+      ;; Regular images (created with `insert-image' are intangible
+      ;; which (I suppose) make them more compatible with XEmacs 21.
+      ;; Unfortunatly, there is a giant pile o code dependent on the
+      ;; underlying text.  This means if we leave it tangible, then I
+      ;; don't have to change said giant piles o code.
+      (if (and a (symbol-value (cdr a)))
+	  (ezimage-insert-over-text (symbol-value (cdr a))
+				    start
+				    (+ start (length bt))))))
+  string)
+
+(defun ezimage-image-over-string (string &optional alist)
+  "Insert over the text in STRING an image found in ALIST.
+Return STRING with properties applied."
+  (if ezimage-use-images
+      (let ((a (assoc string alist)))
+	(if (and a (symbol-value (cdr a)))
+	    (ezimage-insert-over-text (symbol-value (cdr a))
+				      0 (length string)
+				      string)
+	  string))
+    string))
+
+(defun ezimage-insert-over-text (image start end &optional string)
+  "Place IMAGE over the text between START and END.
+Assumes the image is part of a gui and can be clicked on.
+Optional argument STRING is a string upon which to add text properties."
+  (when ezimage-use-images
+    (if (featurep 'xemacs)
+	(add-text-properties start end
+			     (list 'end-glyph image
+				   'rear-nonsticky (list 'display)
+				   'invisible t
+				   'detachable t)
+			     string)
+      (add-text-properties start end
+			   (list 'display image
+				 'rear-nonsticky (list 'display))
+			   string)))
+  string)
+
+(defun ezimage-image-association-dump ()
+  "Dump out the current state of the Ezimage image alist.
+See `ezimage-expand-image-button-alist' for details."
+  (interactive)
+  (with-output-to-temp-buffer "*Ezimage Images*"
+    (save-excursion
+      (set-buffer "*Ezimage Images*")
+      (goto-char (point-max))
+      (insert "Ezimage image cache.\n\n")
+      (let ((start (point)) (end nil))
+	(insert "Image\tText\tImage Name")
+	(setq end (point))
+	(insert "\n")
+	(put-text-property start end 'face 'underline))
+      (let ((ia ezimage-expand-image-button-alist))
+	(while ia
+	  (let ((start (point)))
+	    (insert (car (car ia)))
+	    (insert "\t")
+	    (ezimage-insert-image-button-maybe start
+						(length (car (car ia))))
+	    (insert (car (car ia)) "\t" (format "%s" (cdr (car ia))) "\n"))
+	  (setq ia (cdr ia)))))))
+
+(defun ezimage-image-dump ()
+  "Dump out the current state of the Ezimage image alist.
+See `ezimage-expand-image-button-alist' for details."
+  (interactive)
+  (with-output-to-temp-buffer "*Ezimage Images*"
+    (save-excursion
+      (set-buffer "*Ezimage Images*")
+      (goto-char (point-max))
+      (insert "Ezimage image cache.\n\n")
+      (let ((start (point)) (end nil))
+	(insert "Image\tImage Name")
+	(setq end (point))
+	(insert "\n")
+	(put-text-property start end 'face 'underline))
+      (let ((ia (ezimage-all-images)))
+	(while ia
+	  (let ((start (point)))
+	    (insert "cm")
+	    (ezimage-insert-over-text (symbol-value (car ia)) start (point))
+	    (insert "\t" (format "%s" (car ia)) "\n"))
+	  (setq ia (cdr ia)))))))
+
+(defun ezimage-all-images ()
+  "Return a list of all variables containing ez images."
+  (let ((ans nil))
+    (mapatoms (lambda (sym)
+		(if (get sym 'ezimage) (setq ans (cons sym ans))))
+	      )
+    (setq ans (sort ans (lambda (a b)
+			  (string< (symbol-name a) (symbol-name b)))))
+    ans)
+  )
+
+(provide 'ezimage)
+
+;; arch-tag: d4ea2d93-3c7a-4cb3-b5a6-c1b9178183aa
+;;; sb-image.el ends here
--- a/lisp/gnus/ChangeLog	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/gnus/ChangeLog	Fri Oct 07 07:15:40 2005 +0000
@@ -1,3 +1,31 @@
+2005-10-04  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* mm-url.el (mm-url-predefined-programs): Add switches for curl.
+
+	* gnus-util.el (gnus-remove-duplicates): Remove.
+
+	* nnmail.el (nnmail-article-group): Use mm-delete-duplicates
+	instead of gnus-remove-duplicates.
+
+	* message.el (message-remove-duplicates): Remove.
+	(message-idna-to-ascii-rhs-1): Use mm-delete-duplicates instead of
+	message-remove-duplicates.
+
+	* mm-util.el (mm-delete-duplicates): Use `delete-dups' if
+	available, else use implementation from `delete-dups'.
+
+2005-10-02  Katsumi Yamaoka  <yamaoka@jpl.org>
+
+	* time-date.el: Autoload parse-time-string, XEmacs needs it.
+
+2005-09-30  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* mm-decode.el (mm-inline-media-tests): Check presence of the diff-mode
+	function rather than the diff-mode.el package.
+	(mm-display-external): Use with-current-buffer.
+	(mm-viewer-completion-map, mm-viewer-completion-map):
+	Move initialization inside declaration.
+
 2005-09-28  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* message.el: Remove useless autoloads.
@@ -16,10 +44,9 @@
 	* mm-uu.el (mm-uu-emacs-sources-regexp): Make variable
 	customizable.  Change default value.
 	(mm-uu-diff-groups-regexp): Change default value.
-	(mm-uu-type-alist): Added doc string.
-	(mm-uu-configure): Added doc string.  Make it interactive.
-	(mm-uu-diff-groups-regexp): Fix missing quotes from previous
-	commit.
+	(mm-uu-type-alist): Add doc string.
+	(mm-uu-configure): Add doc string.  Make it interactive.
+	(mm-uu-diff-groups-regexp): Fix missing quotes from previous commit.
 
 2005-09-27  Simon Josefsson  <jas@extundo.com>
 
@@ -75,8 +102,8 @@
 
 2005-09-22  Reiner Steib  <Reiner.Steib@gmx.de>
 
-	* spam-report.el (spam-report-url-ping-plain): Use
-	gnus-extended-version as User-Agent.
+	* spam-report.el (spam-report-url-ping-plain):
+	Use gnus-extended-version as User-Agent.
 
 	* gnus-agent.el (gnus-agent-synchronize-flags): Explain why the
 	default value is nil.
@@ -92,7 +119,7 @@
 
 	* mm-url.el (mm-url-decode-entities): Fix regexp.
 
-2005-09-18  D Goel  <deego@gnufans.org>
+2005-09-18  Deepak Goel  <deego@gnufans.org>
 
 	* sieve.el (sieve-help): Fix `message' call: first arg should be a
 	format spec.
@@ -125,9 +152,9 @@
 2005-09-07  Reiner Steib  <Reiner.Steib@gmx.de>
 
 	* spam-report.el (spam-report-gmane): Make it work without
-	X-Report-Spam header.  Gmane now only provides Archived-At.  This
-	is only used if `spam-report-gmane-use-article-number' is nil.
-	(spam-report-gmane-spam-header): Removed.  Not used anymore.
+	X-Report-Spam header.  Gmane now only provides Archived-At.
+	This is only used if `spam-report-gmane-use-article-number' is nil.
+	(spam-report-gmane-spam-header): Remove.  Not used anymore.
 
 	* nnweb.el (nnweb-google-wash-article): Print a message if article
 	is not available.
--- a/lisp/gnus/ChangeLog.2	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/gnus/ChangeLog.2	Fri Oct 07 07:15:40 2005 +0000
@@ -7390,7 +7390,7 @@
 	instead of mm-auto-save-coding-system for the draft or delayed
 	group.
 
-2002-10-28  Josh  <huber@alum.wpi.edu>
+2002-10-28  Josh Huber  <huber@alum.wpi.edu>
 
 	* mml.el (mml-mode-map): Fixed keybindings for mml-secure-*
 	functions.
--- a/lisp/gnus/gnus-util.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/gnus/gnus-util.el	Fri Oct 07 07:15:40 2005 +0000
@@ -1037,14 +1037,6 @@
 	 (set-buffer gnus-group-buffer)
 	 (eq major-mode 'gnus-group-mode))))
 
-(defun gnus-remove-duplicates (list)
-  (let (new)
-    (while list
-      (or (member (car list) new)
-	  (setq new (cons (car list) new)))
-      (setq list (cdr list)))
-    (nreverse new)))
-
 (defun gnus-remove-if (predicate list)
   "Return a copy of LIST with all items satisfying PREDICATE removed."
   (let (out)
--- a/lisp/gnus/message.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/gnus/message.el	Fri Oct 07 07:15:40 2005 +0000
@@ -2027,14 +2027,6 @@
 
 ;;; End of functions adopted from `message-utils.el'.
 
-(defun message-remove-duplicates (list)
-  (let (new)
-    (while list
-      (or (member (car list) new)
-	  (setq new (cons (car list) new)))
-      (setq list (cdr list)))
-    (nreverse new)))
-
 (defun message-remove-header (header &optional is-regexp first reverse)
   "Remove HEADER in the narrowed buffer.
 If IS-REGEXP, HEADER is a regular expression.
@@ -4963,7 +4955,7 @@
 	rhs ace  address)
     (when field
       (dolist (rhs
-	       (message-remove-duplicates
+	       (mm-delete-duplicates
 		(mapcar (lambda (rhs) (or (cadr (split-string rhs "@")) ""))
 			(mapcar 'downcase
 				(mapcar
--- a/lisp/gnus/mm-decode.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/gnus/mm-decode.el	Fri Oct 07 07:15:40 2005 +0000
@@ -222,7 +222,12 @@
     ("text/richtext" mm-inline-text identity)
     ("text/x-patch" mm-display-patch-inline
      (lambda (handle)
-       (locate-library "diff-mode")))
+       ;; If the diff-mode.el package is installed, the function is
+       ;; autoloaded.  Checking (locate-library "diff-mode") would be trying
+       ;; to cater to broken installations.  OTOH checking the function
+       ;; makes it possible to install another package which provides an
+       ;; alternative implementation of diff-mode.  --Stef
+       (fboundp 'diff-mode)))
     ("application/emacs-lisp" mm-display-elisp-inline identity)
     ("application/x-emacs-lisp" mm-display-elisp-inline identity)
     ("text/html"
@@ -451,21 +456,19 @@
 (defvar mm-viewer-completion-map
   (let ((map (make-sparse-keymap 'mm-viewer-completion-map)))
     (set-keymap-parent map minibuffer-local-completion-map)
+    ;; Should we bind other key to minibuffer-complete-word?
+    (define-key map " " 'self-insert-command)
     map)
   "Keymap for input viewer with completion.")
 
-;; Should we bind other key to minibuffer-complete-word?
-(define-key mm-viewer-completion-map " " 'self-insert-command)
-
 (defvar mm-viewer-completion-map
   (let ((map (make-sparse-keymap 'mm-viewer-completion-map)))
     (set-keymap-parent map minibuffer-local-completion-map)
+    ;; Should we bind other key to minibuffer-complete-word?
+    (define-key map " " 'self-insert-command)
     map)
   "Keymap for input viewer with completion.")
 
-;; Should we bind other key to minibuffer-complete-word?
-(define-key mm-viewer-completion-map " " 'self-insert-command)
-
 ;;; The functions.
 
 (defun mm-alist-to-plist (alist)
@@ -564,7 +567,7 @@
 	     ;; what really needs to be done here is a way to link a
 	     ;; MIME handle back to it's parent MIME handle (in a multilevel
 	     ;; MIME article).  That would probably require changing
-	     ;; the mm-handle API so we simply store the multipart buffert
+	     ;; the mm-handle API so we simply store the multipart buffer
 	     ;; name as a text property of the "multipart/whatever" string.
 	     (add-text-properties 0 (length (car ctl))
 				  (list 'buffer (mm-copy-to-buffer)
@@ -807,8 +810,7 @@
 				   (mm-mailcap-command
 				    method file (mm-handle-type handle)))
 		     (if (buffer-live-p buffer)
-			 (save-excursion
-			   (set-buffer buffer)
+			 (with-current-buffer buffer
 			   (buffer-string))))
 		 (progn
 		   (ignore-errors (delete-file file))
--- a/lisp/gnus/mm-url.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/gnus/mm-url.el	Fri Oct 07 07:15:40 2005 +0000
@@ -64,7 +64,7 @@
   '((wget "wget" "--user-agent=mm-url" "-q" "-O" "-")
     (w3m  "w3m" "-dump_source")
     (lynx "lynx" "-source")
-    (curl "curl" "--silent")))
+    (curl "curl" "--silent" "--user-agent mm-url" "--location")))
 
 (defcustom mm-url-program
   (cond
--- a/lisp/gnus/mm-util.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/gnus/mm-util.el	Fri Oct 07 07:15:40 2005 +0000
@@ -538,14 +538,21 @@
     ;; This is for XEmacs.
     (mm-mule-charset-to-mime-charset charset)))
 
-(defun mm-delete-duplicates (list)
-  "Simple substitute for CL `delete-duplicates', testing with `equal'."
-  (let (result head)
-    (while list
-      (setq head (car list))
-      (setq list (delete head list))
-      (setq result (cons head result)))
-    (nreverse result)))
+(if (fboundp 'delete-dups)
+    (defalias 'mm-delete-duplicates 'delete-dups)
+  (defun mm-delete-duplicates (list)
+    "Destructively remove `equal' duplicates from LIST.
+Store the result in LIST and return it.  LIST must be a proper list.
+Of several `equal' occurrences of an element in LIST, the first
+one is kept.
+
+This is a compatibility function for Emacsen without `delete-dups'."
+    ;; Code from `subr.el' in Emacs 22:
+    (let ((tail list))
+      (while tail
+	(setcdr tail (delete (car tail) (cdr tail)))
+	(setq tail (cdr tail))))
+    list))
 
 ;; Fixme:  This is used in places when it should be testing the
 ;; default multibyteness.  See mm-default-multibyte-p.
--- a/lisp/gnus/nnmail.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/gnus/nnmail.el	Fri Oct 07 07:15:40 2005 +0000
@@ -1142,7 +1142,7 @@
 		       5 "Error in `nnmail-split-methods'; using `bogus' mail group")
 		      (sit-for 1)
 		      '("bogus")))))
-	      (setq split (gnus-remove-duplicates split))
+	      (setq split (mm-delete-duplicates split))
 	      ;; The article may be "cross-posted" to `junk'.  What
 	      ;; to do?  Just remove the `junk' spec.  Don't really
 	      ;; see anything else to do...
--- a/lisp/ido.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/ido.el	Fri Oct 07 07:15:40 2005 +0000
@@ -354,7 +354,7 @@
 use either \\[customize] or the function `ido-mode'."
   :set #'(lambda (symbol value)
 	   (ido-mode value))
-  :initialize 'custom-initialize-default
+  :initialize 'custom-initialize-set
   :require 'ido
   :link '(emacs-commentary-link "ido.el")
   :set-after '(ido-save-directory-list-file)
--- a/lisp/info.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/info.el	Fri Oct 07 07:15:40 2005 +0000
@@ -1845,36 +1845,45 @@
 (defun Info-next ()
   "Go to the next node of this node."
   (interactive)
-  (Info-goto-node (Info-extract-pointer "next")))
+  ;; In case another window is currently selected
+  (save-window-excursion
+    (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
+    (Info-goto-node (Info-extract-pointer "next"))))
 
 (defun Info-prev ()
   "Go to the previous node of this node."
   (interactive)
-  (Info-goto-node (Info-extract-pointer "prev[ious]*" "previous")))
+  ;; In case another window is currently selected
+  (save-window-excursion
+    (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
+    (Info-goto-node (Info-extract-pointer "prev[ious]*" "previous"))))
 
 (defun Info-up (&optional same-file)
   "Go to the superior node of this node.
 If SAME-FILE is non-nil, do not move to a different Info file."
   (interactive)
-  (let ((old-node Info-current-node)
-        (old-file Info-current-file)
-        (node (Info-extract-pointer "up")) p)
-    (and (or same-file (not (stringp Info-current-file)))
-	 (string-match "^(" node)
-	 (error "Up node is in another Info file"))
-    (Info-goto-node node)
-    (setq p (point))
-    (goto-char (point-min))
-    (if (and (search-forward "\n* Menu:" nil t)
-             (re-search-forward
-              (if (string-equal old-node "Top")
-                  (concat "\n\\*[^:]+: +(" (file-name-nondirectory old-file) ")")
-                (concat "\n\\* +\\(" (regexp-quote old-node)
-                        ":\\|[^:]+: +" (regexp-quote old-node) "\\)"))
-              nil t))
-        (progn (beginning-of-line) (if (looking-at "^\\* ") (forward-char 2)))
-      (goto-char p)
-      (Info-restore-point Info-history))))
+  ;; In case another window is currently selected
+  (save-window-excursion
+    (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*"))
+    (let ((old-node Info-current-node)
+	  (old-file Info-current-file)
+	  (node (Info-extract-pointer "up")) p)
+      (and (or same-file (not (stringp Info-current-file)))
+	   (string-match "^(" node)
+	   (error "Up node is in another Info file"))
+      (Info-goto-node node)
+      (setq p (point))
+      (goto-char (point-min))
+      (if (and (search-forward "\n* Menu:" nil t)
+	       (re-search-forward
+		(if (string-equal old-node "Top")
+		    (concat "\n\\*[^:]+: +(" (file-name-nondirectory old-file) ")")
+		  (concat "\n\\* +\\(" (regexp-quote old-node)
+			  ":\\|[^:]+: +" (regexp-quote old-node) "\\)"))
+		nil t))
+	  (progn (beginning-of-line) (if (looking-at "^\\* ") (forward-char 2)))
+	(goto-char p)
+	(Info-restore-point Info-history)))))
 
 (defun Info-history-back ()
   "Go back in the history to the last node visited."
@@ -4012,8 +4021,6 @@
   (speedbar-change-initial-expansion-list "Info")
   )
 
-(eval-when-compile (defvar speedbar-attached-frame))
-
 (defun Info-speedbar-hierarchy-buttons (directory depth &optional node)
   "Display an Info directory hierarchy in speedbar.
 DIRECTORY is the current directory in the attached frame.
@@ -4030,13 +4037,12 @@
     ;; being known at creation time.
     (if (not node)
 	(speedbar-with-writable (insert "Info Nodes:\n")))
-    (let ((completions nil)
-	  (cf (selected-frame)))
-      (select-frame speedbar-attached-frame)
+    (let ((completions nil))
+      (speedbar-select-attached-frame)
       (save-window-excursion
 	(setq completions
 	      (Info-speedbar-fetch-file-nodes (or node '"(dir)top"))))
-      (select-frame cf)
+      (select-frame (speedbar-current-frame))
       (if completions
 	  (speedbar-with-writable
 	   (dolist (completion completions)
@@ -4052,7 +4058,7 @@
 (defun Info-speedbar-goto-node (text node indent)
   "When user clicks on TEXT, go to an info NODE.
 The INDENT level is ignored."
-  (select-frame speedbar-attached-frame)
+  (speedbar-select-attached-frame)
   (let* ((buff (or (get-buffer "*info*")
 		   (progn (info) (get-buffer "*info*"))))
 	 (bwin (get-buffer-window buff 0)))
@@ -4062,7 +4068,7 @@
 	  (raise-frame (window-frame bwin)))
       (if speedbar-power-click
 	  (let ((pop-up-frames t)) (select-window (display-buffer buff)))
-	(select-frame speedbar-attached-frame)
+	(speedbar-select-attached-frame)
 	(switch-to-buffer buff)))
     (if (not (string-match "^(\\([^)]+\\))\\([^.]+\\)$" node))
 	(error "Invalid node %s" node)
@@ -4128,7 +4134,7 @@
       (nreverse completions))))
 
 ;;; Info mode node listing
-;; FIXME: Seems not to be used.  -stef
+;; This is called by `speedbar-add-localized-speedbar-support'
 (defun Info-speedbar-buttons (buffer)
   "Create a speedbar display to help navigation in an Info file.
 BUFFER is the buffer speedbar is requesting buttons for."
@@ -4136,8 +4142,7 @@
 		      (let ((case-fold-search t))
 			(not (looking-at "Info Nodes:"))))
       (erase-buffer))
-  (Info-speedbar-hierarchy-buttons nil 0)
-  )
+  (Info-speedbar-hierarchy-buttons nil 0))
 
 (dolist (mess '("^First node in file$"
 		"^No `.*' in index$"
--- a/lisp/iswitchb.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/iswitchb.el	Fri Oct 07 07:15:40 2005 +0000
@@ -293,6 +293,7 @@
 example functions that filter buffernames."
   :type '(repeat (choice regexp function))
   :group 'iswitchb)
+(put 'iswitchb-buffer-ignore 'risky-local-variable t)
 
 (defcustom iswitchb-max-to-show nil
   "*If non-nil, limit the number of names shown in the minibuffer.
@@ -942,7 +943,7 @@
             (progn
               (setq ignorep t)
               (setq re-list nil))))
-       ((fboundp nextstr)
+       ((functionp nextstr)
         (if (funcall nextstr bufname)
             (progn
               (setq ignorep t)
--- a/lisp/mail/feedmail.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/mail/feedmail.el	Fri Oct 07 07:15:40 2005 +0000
@@ -3,7 +3,7 @@
 
 ;; This file is part of GNU Emacs.
 
-;; Author: Bill Carpenter <bill@bubblegum.net>, <bill@carpenter.ORG>
+;; Author: Bill Carpenter <bill@carpenter.ORG>
 ;; Version: 8
 ;; Keywords: email, queue, mail, sendmail, message, spray, smtp, draft
 ;; X-URL: <URL:http://www.carpenter.org/feedmail/feedmail.html>
Binary file lisp/mail/reply2.pbm has changed
--- a/lisp/mail/reply2.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/* XPM */
-static char * mail_reply_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 9 1",
-" 	c None",
-".	c black",
-"X	c #673e666663d4",
-"o	c #eb46ea1de471",
-"O	c #a852a7bea3d2",
-"+	c #ae51c17b9b26",
-"@	c #8d4d97577838",
-"#	c #7c7c8b8b6e6e",
-"$	c #5e0868be52d3",
-/* pixels */
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"                        ",
-"              ....      ",
-"         .....XooO.     ",
-"    .....XOooooooO.     ",
-"   .XOooooooooooXOO.    ",
-"   .oXXooooooooOXOo.    ",
-"   .OoOXXooooooXOoo.    ",
-"    .oooOOXOooXXXooO.   ",
-"    ........XXOoOXOo.   ",
-"    ..++++@.ooooooXO.   ",
-"     ..+@@@.oooooooXO.  ",
-"    ..+@@@#.oooooooO..  ",
-"  ..++@@@#$.ooooO...    ",
-" .++++@@#.$.oO...       ",
-"  .+@@@#.o....          ",
-"   .+@#$...             ",
-"    .#$.                ",
-"     .$.                ",
-"      .                 ",
-"                        "};
--- a/lisp/mh-e/ChangeLog	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/mh-e/ChangeLog	Fri Oct 07 07:15:40 2005 +0000
@@ -1,3 +1,14 @@
+2005-09-30  Bill Wohler  <wohler@newt.com>
+
+	* mh-customize.el (mh-refile-msg, mh-tool-bar-reply-from)
+	(mh-tool-bar-reply-to, mh-tool-bar-reply-all)
+	(mh-alias-grab-from-field, mh-pack-folder): Image files moved to
+	etc/images/mail so added "mail/" prefix.
+	(mh-reply): Ditto. Also renamed reply2.* to reply.*.
+	(mh-rescan-folder): Ditto. Renamed image file to refresh.* since
+	it can be used in the general sense. Does not have "mail/" 
+	prefix.
+
 2005-09-24  Emilio C. Lopes  <eclig@gmx.net>
 
 	* mh-mime.el (mh-compose-forward, mh-mhn-compose-forw):
--- a/lisp/mh-e/mh-customize.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/mh-e/mh-customize.el	Fri Oct 07 07:15:40 2005 +0000
@@ -1922,7 +1922,7 @@
     "Go to the next undeleted message\nThe button runs `mh-next-undeleted-msg'")
   (mh-delete-msg (folder) "close"
     "Mark this message for deletion\nThis button runs `mh-delete-msg'")
-  (mh-refile-msg (folder) "refile"
+  (mh-refile-msg (folder) "mail/refile"
     "Refile this message\nThis button runs `mh-refile-msg'")
   (mh-undo (folder) "undo" "Undo last operation\nThis button runs `undo'"
     (mh-outstanding-commands-p))
@@ -1933,19 +1933,19 @@
     "Toggle tick mark\nThis button runs `mh-toggle-tick'")
   (mh-toggle-showing (folder) "show"
     "Toggle showing message\nThis button runs `mh-toggle-showing'")
-  (mh-tool-bar-reply-from (folder) "reply-from" "Reply to \"from\"")
-  (mh-tool-bar-reply-to (folder) "reply-to" "Reply to \"to\"")
-  (mh-tool-bar-reply-all (folder) "reply-all" "Reply to \"all\"")
-  (mh-reply (folder) "mail/reply2"
+  (mh-tool-bar-reply-from (folder) "mail/reply-from" "Reply to \"from\"")
+  (mh-tool-bar-reply-to (folder) "mail/reply-to" "Reply to \"to\"")
+  (mh-tool-bar-reply-all (folder) "mail/reply-all" "Reply to \"all\"")
+  (mh-reply (folder) "mail/reply"
     "Reply to this message\nThis button runs `mh-reply'")
-  (mh-alias-grab-from-field (folder) "alias"
+  (mh-alias-grab-from-field (folder) "mail/alias"
     "Grab From alias\nThis button runs `mh-alias-grab-from-field'"
     (and (mh-extract-from-header-value) (not (mh-alias-for-from-p))))
   (mh-send (folder) "mail_compose"
     "Compose new message\nThis button runs `mh-send'")
-  (mh-rescan-folder (folder) "rescan"
+  (mh-rescan-folder (folder) "refresh"
     "Rescan this folder\nThis button runs `mh-rescan-folder'")
-  (mh-pack-folder (folder) "repack"
+  (mh-pack-folder (folder) "mail/repack"
     "Repack this folder\nThis button runs `mh-pack-folder'")
   (mh-tool-bar-search (folder) "search"
     "Search\nThis button runs `mh-tool-bar-search-function'")
--- a/lisp/net/ange-ftp.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/net/ange-ftp.el	Fri Oct 07 07:15:40 2005 +0000
@@ -1298,6 +1298,8 @@
       (setq file
 	    (if (file-name-absolute-p temp)
 		temp
+	      ;; Wouldn't `expand-file-name' be better than `concat' ?
+	      ;; It would fail when `a/b/..' != `a', tho.  --Stef
 	      (concat (file-name-directory file) temp)))))
   file)
 
@@ -1385,12 +1387,12 @@
 	  (if (or ange-ftp-disable-netrc-security-check
 		  (and (eq (nth 2 attr) (user-uid)) ; Same uids.
 		       (string-match ".r..------" (nth 8 attr))))
-	      (save-excursion
+	      (with-current-buffer
 		;; we are cheating a bit here.  I'm trying to do the equivalent
 		;; of find-file on the .netrc file, but then nuke it afterwards.
 		;; with the bit of logic below we should be able to have
 		;; encrypted .netrc files.
-		(set-buffer (generate-new-buffer "*ftp-.netrc*"))
+                  (generate-new-buffer "*ftp-.netrc*")
 		(ange-ftp-real-insert-file-contents file)
 		(setq buffer-file-name file)
 		(setq default-directory (file-name-directory file))
@@ -1511,7 +1513,7 @@
       (setq buffer (current-buffer))
     (setq buffer (get-buffer buffer)))
   (let ((file (or (buffer-file-name buffer)
-		  (save-excursion (set-buffer buffer) default-directory))))
+		  (with-current-buffer buffer default-directory))))
     (if file
 	(let ((parsed (ange-ftp-ftp-name (expand-file-name file))))
 	  (if parsed
@@ -1592,8 +1594,7 @@
     (if proc
 	(let ((buf (process-buffer proc)))
 	  (if buf
-	      (save-excursion
-		(set-buffer buf)
+	      (with-current-buffer buf
 		(setq ange-ftp-xfer-size
 		      ;; For very large files, BYTES can be a float.
 		      (if (integerp bytes)
@@ -1763,8 +1764,7 @@
 
 (defun ange-ftp-gwp-filter (proc str)
   (comint-output-filter proc str)
-  (save-excursion
-    (set-buffer (process-buffer proc))
+  (with-current-buffer (process-buffer proc)
     ;; Replace STR by the result of the comint processing.
     (setq str (buffer-substring comint-last-output-start (process-mark proc))))
   (cond ((string-match "login: *$" str)
@@ -1800,8 +1800,7 @@
     (set-process-query-on-exit-flag proc nil)
     (set-process-sentinel proc 'ange-ftp-gwp-sentinel)
     (set-process-filter proc 'ange-ftp-gwp-filter)
-    (save-excursion
-      (set-buffer (process-buffer proc))
+    (with-current-buffer (process-buffer proc)
       (goto-char (point-max))
       (set-marker (process-mark proc) (point)))
     (setq ange-ftp-gwp-running t
@@ -1907,8 +1906,7 @@
 				   ange-ftp-nslookup-program host)))
 	    (res host))
 	(set-process-query-on-exit-flag proc nil)
-	(save-excursion
-	  (set-buffer (process-buffer proc))
+	(with-current-buffer (process-buffer proc)
 	  (while (memq (process-status proc) '(run open))
 	    (accept-process-output proc))
 	  (goto-char (point-min))
@@ -1947,8 +1945,7 @@
 	  ;; Copy this so we don't alter it permanently.
 	  (process-environment (copy-tree process-environment))
 	  (buffer (get-buffer-create name)))
-      (save-excursion
-	(set-buffer buffer)
+      (with-current-buffer buffer
 	(internal-ange-ftp-mode))
       ;; This tells GNU ftp not to output any fancy escape sequences.
       (setenv "TERM" "dumb")
@@ -1960,8 +1957,7 @@
 					    ange-ftp-gateway-host)
 				      args))))
 	(setq proc (apply 'start-process name name args))))
-    (save-excursion
-      (set-buffer (process-buffer proc))
+    (with-current-buffer (process-buffer proc)
       (goto-char (point-max))
       (set-marker (process-mark proc) (point)))
     (set-process-query-on-exit-flag proc nil)
@@ -2127,8 +2123,7 @@
 
 (defun ange-ftp-guess-hash-mark-size (proc)
   (if ange-ftp-send-hash
-      (save-excursion
-	(set-buffer (process-buffer proc))
+      (with-current-buffer (process-buffer proc)
 	(let* ((status (ange-ftp-raw-send-cmd proc "hash"))
 	       (line (cdr status)))
 	  (save-match-data
@@ -2308,6 +2303,14 @@
 	   (not (string-match "R" cmd3))
 	   (setq cmd1 (concat cmd1 ".")))
 
+      ;; Using "ls -flags foo" has several problems:
+      ;; - if foo is a symlink, we may get a single line showing the symlink
+      ;;   rather than the listing of the directory it points to.
+      ;; - if "foo" has spaces, the parsing of the command may be done wrong.
+      ;; - some version of netbsd's ftpd only accept a single argument after
+      ;;   `ls', which can either be the directory or the flags.
+      ;; So to work around those problems, we use "cd foo; ls -flags".
+
       ;; If the dir name contains a space, some ftp servers will
       ;; refuse to list it.  We instead change directory to the
       ;; directory in question and ls ".".
@@ -2324,14 +2327,14 @@
 	;; This works around a misfeature of some versions of netbsd ftpd
 	;; where `ls' can only take one argument: either one set of flags
 	;; or a file/directory name.
-	;; FIXME: if we're trying to `ls' a single file, this fails since we
+	;; If we're trying to `ls' a single file, this fails since we
 	;; can't cd to a file.  We can't fix this problem here, tho, because
 	;; at this point we don't know whether the argument is a file or
-	;; a directory.  Such an `ls' is only every used (apparently) from
+	;; a directory.  Such an `ls' is only ever used (apparently) from
 	;; `insert-directory' when the `full-directory-p' argument is nil
 	;; (which seems to only be used by dired when updating its display
-	;; after operating on a set of files).  We should change
-	;; ange-ftp-insert-directory so that this case is handled by getting
+	;; after operating on a set of files).  So we've changed
+	;; `ange-ftp-insert-directory' such that in this case it gets
 	;; a full listing of the directory and extracting the line
 	;; corresponding to the requested file.
 	(unless (equal cmd1 ".")
@@ -2606,9 +2609,8 @@
 				       (format "Listing %s"
 					       (ange-ftp-abbreviate-filename
 						ange-ftp-this-file)))))
-		    (save-excursion
-		      (set-buffer (get-buffer-create
-				   ange-ftp-data-buffer-name))
+		    (with-current-buffer (get-buffer-create
+                                          ange-ftp-data-buffer-name)
 		      (erase-buffer)
 		      (if (ange-ftp-real-file-readable-p temp)
 			  (ange-ftp-real-insert-file-contents temp)
@@ -3022,8 +3024,7 @@
   (let ((result (ange-ftp-send-cmd host user '(type "binary"))))
     (if (not (car result))
 	(ange-ftp-error host user (concat "BINARY failed: " (cdr result)))
-      (save-excursion
-	(set-buffer (process-buffer (ange-ftp-get-process host user)))
+      (with-current-buffer (process-buffer (ange-ftp-get-process host user))
 	(and ange-ftp-binary-hash-mark-size
 	     (setq ange-ftp-hash-mark-unit
 		   (ash ange-ftp-binary-hash-mark-size -4)))))))
@@ -3033,8 +3034,7 @@
   (let ((result (ange-ftp-send-cmd host user '(type "ascii"))))
     (if (not (car result))
 	(ange-ftp-error host user (concat "ASCII failed: " (cdr result)))
-      (save-excursion
-	(set-buffer (process-buffer (ange-ftp-get-process host user)))
+      (with-current-buffer (process-buffer (ange-ftp-get-process host user))
 	(and ange-ftp-ascii-hash-mark-size
 	     (setq ange-ftp-hash-mark-unit
 		   (ash ange-ftp-ascii-hash-mark-size -4)))))))
@@ -3174,7 +3174,7 @@
 	 (ange-ftp-real-file-name-directory n))))))
 
 (defun ange-ftp-expand-file-name (name &optional default)
-  "Documented as original."
+  "Documented as `expand-file-name'."
   (save-match-data
     (setq default (or default default-directory))
     (cond ((eq (string-to-char name) ?~)
@@ -3289,7 +3289,7 @@
 		    ;; cleanup forms
 		    (setq coding-system-used last-coding-system-used)
 		    (setq buffer-file-name filename)
-		    (set-buffer-modified-p mod-p)))
+		    (restore-buffer-modified-p mod-p)))
 		(if binary
 		    (ange-ftp-set-binary-mode host user))
 
@@ -3448,7 +3448,9 @@
       (let ((file-ent (ange-ftp-get-file-entry
 		       (ange-ftp-file-name-as-directory name))))
 	(if (stringp file-ent)
-	    (file-directory-p
+	    ;; Calling file-directory-p doesn't work because ange-ftp
+	    ;; is temporarily disabled for this operation.
+	    (ange-ftp-file-directory-p
 	     (ange-ftp-expand-symlink file-ent
 				      (file-name-directory
 				       (directory-file-name name))))
@@ -3640,8 +3642,7 @@
 ;;       (set (make-local-variable 'copy-cont) cont))))
 ;;
 ;; (defun ange-ftp-copy-file-locally-sentinel (proc status)
-;;   (save-excursion
-;;     (set-buffer (process-buffer proc))
+;;   (with-current-buffer (process-buffer proc)
 ;;     (let ((cont copy-cont)
 ;; 	  (result (buffer-string)))
 ;;       (unwind-protect
@@ -4476,21 +4477,38 @@
 ;; `ange-ftp-ls' handles this.
 
 (defun ange-ftp-insert-directory (file switches &optional wildcard full)
-  (let ((parsed (ange-ftp-ftp-name (expand-file-name file)))
-	tem)
-    (if parsed
-	(if (and (not wildcard)
-		 (setq tem (file-symlink-p (directory-file-name file))))
-	    (ange-ftp-insert-directory
-	     (ange-ftp-expand-symlink
-	      tem (file-name-directory (directory-file-name file)))
-	     switches wildcard full)
-	  (insert
-	   (if wildcard
-	       (let ((default-directory (file-name-directory file)))
-		 (ange-ftp-ls (file-name-nondirectory file) switches nil nil t))
-	     (ange-ftp-ls file switches full))))
-      (ange-ftp-real-insert-directory file switches wildcard full))))
+  (if (not (ange-ftp-ftp-name (expand-file-name file)))
+      (ange-ftp-real-insert-directory file switches wildcard full)
+    ;; We used to follow symlinks on `file' here.  Apparently it was done
+    ;; because some FTP servers react to "ls foo" by listing the symlink foo
+    ;; rather than the directory it points to.  Now that ange-ftp-ls uses
+    ;; "cd foo; ls" instead, this is not necesssary any more.
+    (insert
+     (cond
+      (wildcard
+       (let ((default-directory (file-name-directory file)))
+         (ange-ftp-ls (file-name-nondirectory file) switches nil nil t)))
+      (full
+       (ange-ftp-ls file switches 'parse))
+      (t
+       ;; If `full' is nil we're going to do `ls' for a single file.
+       ;; Problem is that for various reasons, ange-ftp-ls needs to cd and
+       ;; then do an ls of current dir, which obviously won't work if we
+       ;; want to ls a file.  So instead, we get a full listing of the
+       ;; parent directory and extract the line corresponding to `file'.
+       (when (string-match "d\\'" switches)
+         ;; Remove "d" which dired added to `switches'.
+         (setq switches (substring switches 0 (match-beginning 0))))
+       (let* ((dirlist (ange-ftp-ls (or (file-name-directory file) ".")
+                                    switches nil))
+              (filename (file-name-nondirectory (directory-file-name file)))
+              (case-fold-search nil))
+         ;; FIXME: This presumes a particular output format, which is
+         ;; basically Unix.
+         (if (string-match (concat "^.+[^ ] " (regexp-quote filename)
+                                   "\\( -> .*\\)?[@/*=]?\n") dirlist)
+             (match-string 0 dirlist)
+           "")))))))
 
 (defun ange-ftp-dired-uncache (dir)
   (if (ange-ftp-ftp-name (expand-file-name dir))
@@ -4502,10 +4520,8 @@
 (defun ange-ftp-file-name-sans-versions (file keep-backup-version)
   (let* ((short (ange-ftp-abbreviate-filename file))
 	 (parsed (ange-ftp-ftp-name short))
-	 func)
-    (if parsed
-	(setq func (cdr (assq (ange-ftp-host-type (car parsed))
-			      ange-ftp-sans-version-alist))))
+	 (func (if parsed (cdr (assq (ange-ftp-host-type (car parsed))
+                                     ange-ftp-sans-version-alist)))))
     (if func (funcall func file keep-backup-version)
       (ange-ftp-real-file-name-sans-versions file keep-backup-version))))
 
@@ -4649,10 +4665,7 @@
 ;;		       target marker-char buffer overwrite-query
 ;;		       overwrite-backup-query failures skipped
 ;;		       success-count total)
-;;  (let ((old-buf (current-buffer)))
-;;    (unwind-protect
-;;	(progn
-;;	  (set-buffer buffer)
+;;  (with-current-buffer buffer
 ;;	  (if (null fn-list)
 ;;	      (ange-ftp-dcf-3 failures operation total skipped
 ;;			      success-count buffer)
@@ -4724,8 +4737,7 @@
 ;;				     overwrite-query
 ;;				     overwrite-backup-query
 ;;				     failures skipped success-count
-;;				     total))))))))
-;;      (set-buffer old-buf))))
+;;				     total)))))))))
 
 ;;(defun ange-ftp-dcf-2 (result line err
 ;;			      file-creator operation fn-list
@@ -4739,10 +4751,7 @@
 ;;			      overwrite-backup-query
 ;;			      failures skipped success-count
 ;;			      total)
-;;  (let ((old-buf (current-buffer)))
-;;    (unwind-protect
-;;	(progn
-;;	  (set-buffer buffer)
+;;  (with-current-buffer buffer
 ;;	  (if (or err (not result))
 ;;	      (progn
 ;;		(setq failures (cons (dired-make-relative from) failures))
@@ -4765,15 +4774,11 @@
 ;;			  overwrite-query
 ;;			  overwrite-backup-query
 ;;			  failures skipped success-count
-;;			  total))
-;;      (set-buffer old-buf))))
+;;			  total)))
 
 ;;(defun ange-ftp-dcf-3 (failures operation total skipped success-count
 ;;				buffer)
-;;  (let ((old-buf (current-buffer)))
-;;    (unwind-protect
-;;	(progn
-;;	  (set-buffer buffer)
+;;  (with-current-buffer buffer
 ;;	  (cond
 ;;	   (failures
 ;;	    (dired-log-summary
@@ -4788,8 +4793,7 @@
 ;;	   (t
 ;;	    (message "%s: %s file%s."
 ;;		     operation success-count (dired-plural-s success-count))))
-;;	  (dired-move-to-filename))
-;;      (set-buffer old-buf))))
+;;	  (dired-move-to-filename)))
 
 ;;;; -----------------------------------------------
 ;;;; Unix Descriptive Listing (dl) Support
--- a/lisp/net/tramp.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/net/tramp.el	Fri Oct 07 07:15:40 2005 +0000
@@ -136,7 +136,7 @@
 ;; Avoid byte-compiler warnings if the byte-compiler supports this.
 ;; Currently, XEmacs supports this.
 (eval-when-compile
-  (when (fboundp 'byte-compiler-options)
+  (when (featurep 'xemacs)
     (let (unused-vars) ; Pacify Emacs byte-compiler
       (defalias 'warnings 'identity) ; Pacify Emacs byte-compiler
       (byte-compiler-options (warnings (- unused-vars))))))
@@ -3681,7 +3681,7 @@
 		   (let ((tmpbuf (get-buffer-create " *tramp tmp*")))
 		     (set-buffer tmpbuf)
 		     (erase-buffer)
-		     (insert-buffer tramp-buf)
+		     (insert-buffer-substring tramp-buf)
 		     (tramp-message-for-buffer
 		      multi-method method user host
 		      6 "Decoding remote file %s with function %s..."
--- a/lisp/outline.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/outline.el	Fri Oct 07 07:15:40 2005 +0000
@@ -685,7 +685,7 @@
       (outline-previous-visible-heading 1))
     (setq beg (point))
     (outline-end-of-subtree)
-    (push-mark (point))
+    (push-mark (point) nil t)
     (goto-char beg)))
 
 
--- a/lisp/pcvs.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/pcvs.el	Fri Oct 07 07:15:40 2005 +0000
@@ -647,34 +647,38 @@
 it is finished."
   (when (memq (process-status proc) '(signal exit))
     (let ((cvs-postproc (process-get proc 'cvs-postprocess))
-	  (cvs-buf (process-get proc 'cvs-buffer)))
+	  (cvs-buf (process-get proc 'cvs-buffer))
+          (procbuf (process-buffer proc)))
+      (unless (buffer-live-p cvs-buf) (setq cvs-buf nil))
+      (unless (buffer-live-p procbuf) (setq procbuf nil))
       ;; Since the buffer and mode line will show that the
       ;; process is dead, we can delete it now.  Otherwise it
       ;; will stay around until M-x list-processes.
       (process-put proc 'postprocess nil)
       (delete-process proc)
       ;; Don't do anything if the main buffer doesn't exist any more.
-      (when (buffer-live-p cvs-buf)
+      (when cvs-buf
 	(with-current-buffer cvs-buf
 	  (cvs-update-header (process-get proc 'cvs-header) nil)
 	  (setq cvs-mode-line-process (symbol-name (process-status proc)))
 	  (force-mode-line-update)
 	  (when cvs-postproc
-	    (if (null (buffer-live-p (process-buffer proc)))
+	    (if (null procbuf)
 		;;(set-process-buffer proc nil)
 		(error "cvs' process buffer was killed")
-	      (with-current-buffer (process-buffer proc)
-		;; do the postprocessing like parsing and such
-		(save-excursion (eval cvs-postproc))
-		;; check whether something is left
-		(unless (get-buffer-process (current-buffer))
-		  ;; IIRC, we enable undo again once the process is finished
-		  ;; for cases where the output was inserted in *vc-diff* or
-		  ;; in a file-like buffer.  --Stef
-		  (buffer-enable-undo)
-		  (with-current-buffer cvs-buffer
-		    (message "CVS process has completed in %s"
-			     (buffer-name))))))))))))
+	      (with-current-buffer procbuf
+		;; Do the postprocessing like parsing and such.
+		(save-excursion (eval cvs-postproc)))))))
+      ;; Check whether something is left.
+      (when (and procbuf (not (get-buffer-process procbuf)))
+        (with-current-buffer procbuf
+          ;; IIRC, we enable undo again once the process is finished
+          ;; for cases where the output was inserted in *vc-diff* or
+          ;; in a file-like buffer.  --Stef
+          (buffer-enable-undo)
+          (with-current-buffer (or cvs-buf (current-buffer))
+            (message "CVS process has completed in %s"
+                     (buffer-name))))))))
 
 (defun cvs-parse-process (dcd &optional subdir old-fis)
   "Parse the output of a cvs process.
--- a/lisp/play/zone.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/play/zone.el	Fri Oct 07 07:15:40 2005 +0000
@@ -135,59 +135,60 @@
 (defun zone ()
   "Zone out, completely."
   (interactive)
-  (let ((f (selected-frame))
-        (outbuf (get-buffer-create "*zone*"))
-        (text (buffer-substring (window-start) (window-end)))
-        (wp (1+ (- (window-point (selected-window))
-                   (window-start)))))
-    (put 'zone 'orig-buffer (current-buffer))
-    (put 'zone 'modeline-hidden-level 0)
-    (switch-to-buffer outbuf)
-    (setq mode-name "Zone")
-    (erase-buffer)
-    (setq buffer-undo-list t
-          truncate-lines t
-          tab-width (zone-orig tab-width)
-          line-spacing (zone-orig line-spacing))
-    (insert text)
-    (untabify (point-min) (point-max))
-    (set-window-start (selected-window) (point-min))
-    (set-window-point (selected-window) wp)
-    (sit-for 0 500)
-    (let ((pgm (elt zone-programs (random (length zone-programs))))
-          (ct (and f (frame-parameter f 'cursor-type)))
-          (restore (list '(kill-buffer outbuf))))
-      (when ct
-        (modify-frame-parameters f '((cursor-type . (bar . 0))))
-        (setq restore (cons '(modify-frame-parameters
-                              f (list (cons 'cursor-type ct)))
-                            restore)))
-      ;; Make `restore' a self-disabling one-shot thunk.
-      (setq restore `(lambda () ,@restore (setq restore nil)))
-      (condition-case nil
-          (progn
-            (message "Zoning... (%s)" pgm)
-            (garbage-collect)
-            ;; If some input is pending, zone says "sorry", which
-            ;; isn't nice; this might happen e.g. when they invoke the
-            ;; game by clicking the menu bar.  So discard any pending
-            ;; input before zoning out.
-            (if (input-pending-p)
-                (discard-input))
-            (zone-call pgm)
-            (message "Zoning...sorry"))
-        (error
-         (funcall restore)
-         (while (not (input-pending-p))
-           (message "We were zoning when we wrote %s..." pgm)
-           (sit-for 3)
-           (message "...here's hoping we didn't hose your buffer!")
-           (sit-for 3)))
-        (quit
-         (funcall restore)
-         (ding)
-         (message "Zoning...sorry")))
-      (when restore (funcall restore)))))
+  (save-window-excursion
+    (let ((f (selected-frame))
+          (outbuf (get-buffer-create "*zone*"))
+          (text (buffer-substring (window-start) (window-end)))
+          (wp (1+ (- (window-point (selected-window))
+                     (window-start)))))
+      (put 'zone 'orig-buffer (current-buffer))
+      (put 'zone 'modeline-hidden-level 0)
+      (switch-to-buffer outbuf)
+      (setq mode-name "Zone")
+      (erase-buffer)
+      (setq buffer-undo-list t
+            truncate-lines t
+            tab-width (zone-orig tab-width)
+            line-spacing (zone-orig line-spacing))
+      (insert text)
+      (untabify (point-min) (point-max))
+      (set-window-start (selected-window) (point-min))
+      (set-window-point (selected-window) wp)
+      (sit-for 0 500)
+      (let ((pgm (elt zone-programs (random (length zone-programs))))
+            (ct (and f (frame-parameter f 'cursor-type)))
+            (restore (list '(kill-buffer outbuf))))
+        (when ct
+          (modify-frame-parameters f '((cursor-type . (bar . 0))))
+          (setq restore (cons '(modify-frame-parameters
+                                f (list (cons 'cursor-type ct)))
+                              restore)))
+        ;; Make `restore' a self-disabling one-shot thunk.
+        (setq restore `(lambda () ,@restore (setq restore nil)))
+        (condition-case nil
+            (progn
+              (message "Zoning... (%s)" pgm)
+              (garbage-collect)
+              ;; If some input is pending, zone says "sorry", which
+              ;; isn't nice; this might happen e.g. when they invoke the
+              ;; game by clicking the menu bar.  So discard any pending
+              ;; input before zoning out.
+              (if (input-pending-p)
+                  (discard-input))
+              (zone-call pgm)
+              (message "Zoning...sorry"))
+          (error
+           (funcall restore)
+           (while (not (input-pending-p))
+             (message "We were zoning when we wrote %s..." pgm)
+             (sit-for 3)
+             (message "...here's hoping we didn't hose your buffer!")
+             (sit-for 3)))
+          (quit
+           (funcall restore)
+           (ding)
+           (message "Zoning...sorry")))
+        (when restore (funcall restore))))))
 
 ;;;; Zone when idle, or not.
 
--- a/lisp/progmodes/cc-mode.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/progmodes/cc-mode.el	Fri Oct 07 07:15:40 2005 +0000
@@ -395,11 +395,6 @@
   (make-local-variable 'comment-end)
   (make-local-variable 'comment-start-skip)
   (make-local-variable 'comment-multi-line)
-  (make-local-variable 'paragraph-start)
-  (make-local-variable 'paragraph-separate)
-  (make-local-variable 'paragraph-ignore-fill-prefix)
-  (make-local-variable 'adaptive-fill-mode)
-  (make-local-variable 'adaptive-fill-regexp)
 
   ;; now set their values
   (setq parse-sexp-ignore-comments t
@@ -1180,5 +1175,5 @@
 
 (cc-provide 'cc-mode)
 
-;;; arch-tag: 7825e5c4-fd09-439f-a04d-4c13208ba3d7
+;; arch-tag: 7825e5c4-fd09-439f-a04d-4c13208ba3d7
 ;;; cc-mode.el ends here
--- a/lisp/progmodes/cc-styles.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/progmodes/cc-styles.el	Fri Oct 07 07:15:40 2005 +0000
@@ -498,33 +498,34 @@
   (let ((comment-line-prefix
 	 (concat "[ \t]*\\(" c-current-comment-prefix "\\)[ \t]*")))
 
-    (setq paragraph-start (concat comment-line-prefix
-				  c-paragraph-start
-				  "\\|"
-				  page-delimiter)
-	  paragraph-separate (concat comment-line-prefix
-				     c-paragraph-separate
-				     "\\|"
-				     page-delimiter)
-	  paragraph-ignore-fill-prefix t
-	  adaptive-fill-mode t
-	  adaptive-fill-regexp
-	  (concat comment-line-prefix
-		  (if (default-value 'adaptive-fill-regexp)
-		      (concat "\\("
-			      (default-value 'adaptive-fill-regexp)
-			      "\\)")
-		    "")))
+    (set (make-local-variable 'paragraph-start)
+         (concat comment-line-prefix
+                 c-paragraph-start
+                 "\\|"
+                 page-delimiter))
+    (set (make-local-variable 'paragraph-separate)
+         (concat comment-line-prefix
+                 c-paragraph-separate
+                 "\\|"
+                 page-delimiter))
+    (set (make-local-variable 'paragraph-ignore-fill-prefix) t)
+    (set (make-local-variable 'adaptive-fill-mode) t)
+    (set (make-local-variable 'adaptive-fill-regexp)
+         (concat comment-line-prefix
+                 (if (default-value 'adaptive-fill-regexp)
+                     (concat "\\("
+                             (default-value 'adaptive-fill-regexp)
+                             "\\)")
+                   "")))
 
     (when (boundp 'adaptive-fill-first-line-regexp)
       ;; XEmacs (20.x) adaptive fill mode doesn't have this.
-      (make-local-variable 'adaptive-fill-first-line-regexp)
-      (setq adaptive-fill-first-line-regexp
-	    (concat "\\`" comment-line-prefix
-		    ;; Maybe we should incorporate the old value here,
-		    ;; but then we have to do all sorts of kludges to
-		    ;; deal with the \` and \' it probably contains.
-		    "\\'")))))
+      (set (make-local-variable 'adaptive-fill-first-line-regexp)
+           (concat "\\`" comment-line-prefix
+                   ;; Maybe we should incorporate the old value here,
+                   ;; but then we have to do all sorts of kludges to
+                   ;; deal with the \` and \' it probably contains.
+                   "\\'")))))
 
 
 ;; Helper for setting up Filladapt mode.  It's not used by CC Mode itself.
@@ -626,5 +627,5 @@
 
 (cc-provide 'cc-styles)
 
-;;; arch-tag: c764f61a-96ba-484a-a68f-101c0e9d5d2c
+;; arch-tag: c764f61a-96ba-484a-a68f-101c0e9d5d2c
 ;;; cc-styles.el ends here
--- a/lisp/progmodes/compile.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/progmodes/compile.el	Fri Oct 07 07:15:40 2005 +0000
@@ -899,19 +899,20 @@
   :group 'compilation)
 
 
-(defun compilation-buffer-name (mode-name name-function)
+(defun compilation-buffer-name (mode-name mode-command name-function)
   "Return the name of a compilation buffer to use.
 If NAME-FUNCTION is non-nil, call it with one argument MODE-NAME
 to determine the buffer name.
 Likewise if `compilation-buffer-name-function' is non-nil.
-If current buffer is in Compilation mode for the same mode name
+If current buffer is the mode MODE-COMMAND,
 return the name of the current buffer, so that it gets reused.
 Otherwise, construct a buffer name from MODE-NAME."
   (cond (name-function
 	 (funcall name-function mode-name))
 	(compilation-buffer-name-function
 	 (funcall compilation-buffer-name-function mode-name))
-	((eq major-mode (nth 1 compilation-arguments))
+	((and (eq mode-command major-mode)
+	      (eq major-mode (nth 1 compilation-arguments)))
 	 (buffer-name))
 	(t
 	 (concat "*" (downcase mode-name) "*"))))
@@ -960,7 +961,7 @@
     (with-current-buffer
 	(setq outbuf
 	      (get-buffer-create
-	       (compilation-buffer-name name-of-mode name-function)))
+	       (compilation-buffer-name name-of-mode mode name-function)))
       (let ((comp-proc (get-buffer-process (current-buffer))))
 	(if comp-proc
 	    (if (or (not (eq (process-status comp-proc) 'run))
@@ -1552,7 +1553,7 @@
       (dired-other-window (car (get-text-property (point) 'directory)))
     (push-mark)
     (setq compilation-current-error (point))
-    (next-error 0)))
+    (next-error-internal)))
 
 ;; Return a compilation buffer.
 ;; If the current buffer is a compilation buffer, return it.
--- a/lisp/progmodes/ebnf2ps.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/progmodes/ebnf2ps.el	Fri Oct 07 07:15:40 2005 +0000
@@ -4261,7 +4261,7 @@
 	      ebnf-eps-max-height prod-height))
        )
       (setq ebnf-eps-prod-width prod-width)
-      (insert-buffer eps-buffer))
+      (insert-buffer-substring eps-buffer))
     (setq prod-list (cdr prod-list))))
 
 
--- a/lisp/progmodes/gdb-ui.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/progmodes/gdb-ui.el	Fri Oct 07 07:15:40 2005 +0000
@@ -103,6 +103,7 @@
 (defvar gdb-error "Non-nil when GDB is reporting an error.")
 (defvar gdb-macro-info nil
   "Non-nil if GDB knows that the inferior includes preprocessor macro info.")
+(defvar gdb-buffer-fringe-width nil)
 
 (defvar gdb-buffer-type nil
   "One of the symbols bound in `gdb-buffer-rules'.")
@@ -377,7 +378,8 @@
 	gdb-location-alist nil
 	gdb-find-file-unhook nil
 	gdb-error nil
-	gdb-macro-info nil)
+	gdb-macro-info nil
+	gdb-buffer-fringe-width (car (window-fringes)))
   ;;
   (setq gdb-buffer-type 'gdba)
   ;;
@@ -1337,8 +1339,11 @@
 		(setq bptno (match-string 1))
 		(setq flag (char-after (match-beginning 2)))
 		(beginning-of-line)
-		(if (re-search-forward " in .* at\\s-+" nil t)
+		(if (re-search-forward " in \\(.*\\) at\\s-+" nil t)
 		    (progn
+		      (let ((buffer-read-only nil))
+			(add-text-properties (match-beginning 1) (match-end 1)
+					     '(face font-lock-function-name-face)))
 		      (looking-at "\\(\\S-+\\):\\([0-9]+\\)")
 		      (let ((line (match-string 2)) (buffer-read-only nil)
 			    (file (match-string 1)))
@@ -1531,17 +1536,34 @@
 (defun gdb-info-frames-custom ()
   (with-current-buffer (gdb-get-buffer 'gdb-stack-buffer)
     (save-excursion
-      (let ((buffer-read-only nil))
+      (let ((buffer-read-only nil)
+	    bl el)
 	(goto-char (point-min))
 	(while (< (point) (point-max))
-	  (add-text-properties (line-beginning-position) (line-end-position)
+	  (setq bl (line-beginning-position)
+		el (line-end-position))
+	  (add-text-properties bl el
 			     '(mouse-face highlight
 			       help-echo "mouse-2, RET: Select frame"))
-	  (beginning-of-line)
-	  (when (and (looking-at "^#\\([0-9]+\\)")
-		     (equal (match-string 1) gdb-frame-number))
-	    (put-text-property (line-beginning-position) (line-end-position)
-			       'face '(:inverse-video t)))
+	  (goto-char bl)
+	  (when (looking-at "^#\\([0-9]+\\)")
+	    (when (string-equal (match-string 1) gdb-frame-number)
+		(put-text-property bl (+ bl 4)
+				   'face '(:inverse-video t)))
+	    (when (re-search-forward
+		   (concat
+		    (if (string-equal (match-string 1) "0") "" " in ")
+		    "\\([^ ]+\\) (") el t)
+	      (put-text-property (match-beginning 1) (match-end 1)
+				 'face font-lock-function-name-face)
+	      (setq bl (match-end 0))
+	      (while (re-search-forward "<\\([^>]+\\)>" el t)
+		(put-text-property (match-beginning 1) (match-end 1)
+				     'face font-lock-function-name-face))
+	      (goto-char bl)
+	      (while (re-search-forward "\\(\\(\\sw\\|[_.]\\)+\\)=" el t)
+		(put-text-property (match-beginning 1) (match-end 1)
+				   'face font-lock-variable-name-face))))
 	  (forward-line 1))))))
 
 (defun gdb-stack-buffer-name ()
@@ -1587,6 +1609,7 @@
 
 (defun gdb-get-frame-number ()
   (save-excursion
+    (end-of-line)
     (let* ((pos (re-search-backward "^#*\\([0-9]*\\)" nil t))
 	   (n (or (and pos (match-string-no-properties 1)) "0")))
       n)))
@@ -1648,6 +1671,14 @@
     (define-key map [mouse-2] 'gdb-threads-select)
     map))
 
+(defvar gdb-threads-font-lock-keywords
+  '(
+    (") +\\([^ ]+\\) ("  (1 font-lock-function-name-face))
+    ("in \\([^ ]+\\) ("  (1 font-lock-function-name-face))
+    ("\\(\\(\\sw\\|[_.]\\)+\\)="  (1 font-lock-variable-name-face))
+    )
+  "Font lock keywords used in `gdb-threads-mode'.")
+
 (defun gdb-threads-mode ()
   "Major mode for gdb frames.
 
@@ -1657,6 +1688,8 @@
   (setq mode-name "Threads")
   (setq buffer-read-only t)
   (use-local-map gdb-threads-mode-map)
+  (set (make-local-variable 'font-lock-defaults)
+       '(gdb-threads-font-lock-keywords))
   (run-mode-hooks 'gdb-threads-mode-hook)
   'gdb-invalidate-threads)
 
@@ -1702,6 +1735,12 @@
     (define-key map "q" 'kill-this-buffer)
      map))
 
+(defvar gdb-registers-font-lock-keywords
+  '(
+    ("^[^ ]+" . font-lock-variable-name-face)
+    )
+  "Font lock keywords used in `gdb-registers-mode'.")
+
 (defun gdb-registers-mode ()
   "Major mode for gdb registers.
 
@@ -1711,6 +1750,8 @@
   (setq mode-name "Registers:")
   (setq buffer-read-only t)
   (use-local-map gdb-registers-mode-map)
+  (set (make-local-variable 'font-lock-defaults)
+       '(gdb-registers-font-lock-keywords))
   (run-mode-hooks 'gdb-registers-mode-hook)
   (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
       'gdb-invalidate-registers
@@ -1955,6 +1996,12 @@
     (define-key map (vector 'header-line 'down-mouse-1) 'ignore)
     map))
 
+(defvar gdb-memory-font-lock-keywords
+  '(;; <__function.name+n>
+    ("<\\(\\(\\sw\\|[_.]\\)+\\)\\(\\+[0-9]+\\)?>" (1 font-lock-function-name-face))
+    )
+  "Font lock keywords used in `gdb-memory-mode'.")
+
 (defun gdb-memory-mode ()
   "Major mode for examining memory.
 
@@ -2026,6 +2073,8 @@
 		       'help-echo "mouse-3: Select unit size"
 		       'mouse-face 'mode-line-highlight
 		       'local-map gdb-memory-unit-keymap))))
+  (set (make-local-variable 'font-lock-defaults)
+       '(gdb-memory-font-lock-keywords))
   (run-mode-hooks 'gdb-memory-mode-hook)
   'gdb-invalidate-memory)
 
@@ -2094,6 +2143,23 @@
     (define-key map "q" 'kill-this-buffer)
      map))
 
+(defvar gdb-local-font-lock-keywords
+  '(
+    ;; var = (struct struct_tag) value
+    ( "\\(^\\(\\sw\\|[_.]\\)+\\) += +(\\(struct\\) \\(\\(\\sw\\|[_.]\\)+\\)"
+      (1 font-lock-variable-name-face)
+      (3 font-lock-keyword-face)
+      (4 font-lock-type-face))
+    ;; var = (type) value
+    ( "\\(^\\(\\sw\\|[_.]\\)+\\) += +(\\(\\(\\sw\\|[_.]\\)+\\)"
+      (1 font-lock-variable-name-face)
+      (3 font-lock-type-face))
+    ;; var = val
+    ( "\\(^\\(\\sw\\|[_.]\\)+\\) += +[^(]"
+      (1 font-lock-variable-name-face))
+    )
+  "Font lock keywords used in `gdb-local-mode'.")
+
 (defun gdb-locals-mode ()
   "Major mode for gdb locals.
 
@@ -2103,6 +2169,8 @@
   (setq mode-name (concat "Locals:" gdb-selected-frame))
   (setq buffer-read-only t)
   (use-local-map gdb-locals-mode-map)
+  (set (make-local-variable 'font-lock-defaults)
+       '(gdb-local-font-lock-keywords))
   (run-mode-hooks 'gdb-locals-mode-hook)
   (if (with-current-buffer gud-comint-buffer (eq gud-minor-mode 'gdba))
       'gdb-invalidate-locals
@@ -2408,7 +2476,8 @@
 (defun gdb-put-breakpoint-icon (enabled bptno)
   (let ((start (- (line-beginning-position) 1))
 	(end (+ (line-end-position) 1))
-	(putstring (if enabled "B" "b")))
+	(putstring (if enabled "B" "b"))
+	(source-window (get-buffer-window (current-buffer) 0)))
     (add-text-properties
      0 1 '(help-echo "mouse-1: set/clear bkpt, mouse-3: enable/disable bkpt")
      putstring)
@@ -2418,7 +2487,9 @@
        0 1 `(gdb-bptno ,bptno gdb-enabled nil) putstring))
     (gdb-remove-breakpoint-icons start end)
     (if (display-images-p)
-	(if (>= (car (window-fringes)) 8)
+	(if (>= (or left-fringe-width
+		   (if source-window (car (window-fringes source-window)))
+		   gdb-buffer-fringe-width) 8)
 	    (gdb-put-string
 	     nil (1+ start)
 	     `(left-fringe breakpoint
@@ -2428,9 +2499,9 @@
 	  (when (< left-margin-width 2)
 	    (save-current-buffer
 	      (setq left-margin-width 2)
-	      (if (get-buffer-window (current-buffer) 0)
+	      (if source-window
 		  (set-window-margins
-		   (get-buffer-window (current-buffer) 0)
+		   source-window
 		   left-margin-width right-margin-width))))
 	  (put-image
 	   (if enabled
--- a/lisp/progmodes/gud.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/progmodes/gud.el	Fri Oct 07 07:15:40 2005 +0000
@@ -137,11 +137,15 @@
                   :enable (and (not gud-running)
 			       (memq gud-minor-mode '(gdbmi gdba gdb perldb))))
     ([remove]	menu-item "Remove Breakpoint" gud-remove
-                  :enable (not gud-running))
+                  :enable (not gud-running)
+		  :visible (not (and (memq gud-minor-mode '(gdbmi gdba))
+				     (window-fringes))))
     ([tbreak]	menu-item "Temporary Breakpoint" gud-tbreak
 		  :enable (memq gud-minor-mode '(gdbmi gdba gdb sdb xdb bashdb)))
     ([break]	menu-item "Set Breakpoint" gud-break
-                  :enable (not gud-running))
+                  :enable (not gud-running)
+		  :visible (not (and (memq gud-minor-mode '(gdbmi gdba))
+				     (window-fringes))))
     ([up]	menu-item "Up Stack" gud-up
 		  :enable (and (not gud-running)
 			       (memq gud-minor-mode
--- a/lisp/progmodes/scheme.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/progmodes/scheme.el	Fri Oct 07 07:15:40 2005 +0000
@@ -90,20 +90,26 @@
     (modify-syntax-entry ?\] ")[  " st)
     (modify-syntax-entry ?{ "(}  " st)
     (modify-syntax-entry ?} "){  " st)
-    (modify-syntax-entry ?\| "\" 23b" st)
+    (modify-syntax-entry ?\| "\" 23bn" st)
+    ;; Guile allows #! ... !# comments.
+    ;; But SRFI-22 defines the comment as #!...\n instead.
+    ;; Also Guile says that the !# should be on a line of its own.
+    ;; It's too difficult to get it right, for too little benefit.
+    ;; (modify-syntax-entry ?! "_ 2" st)
 
     ;; Other atom delimiters
     (modify-syntax-entry ?\( "()  " st)
     (modify-syntax-entry ?\) ")(  " st)
-    (modify-syntax-entry ?\; "<   " st)
-    (modify-syntax-entry ?\" "\"    " st)
+    ;; It's used for single-line comments as well as for #;(...) sexp-comments.
+    (modify-syntax-entry ?\; "< 2 " st)
+    (modify-syntax-entry ?\" "\"   " st)
     (modify-syntax-entry ?' "'   " st)
     (modify-syntax-entry ?` "'   " st)
 
     ;; Special characters
     (modify-syntax-entry ?, "'   " st)
     (modify-syntax-entry ?@ "'   " st)
-    (modify-syntax-entry ?# "' 14bn" st)
+    (modify-syntax-entry ?# "' 14b" st)
     (modify-syntax-entry ?\\ "\\   " st)
     st))
 
@@ -163,13 +169,18 @@
   (setq imenu-generic-expression scheme-imenu-generic-expression)
   (set (make-local-variable 'imenu-syntax-alist)
 	'(("+-*/.<>=?!$%_&~^:" . "w")))
-  (make-local-variable 'font-lock-defaults)
-  (setq font-lock-defaults
-        '((scheme-font-lock-keywords
-           scheme-font-lock-keywords-1 scheme-font-lock-keywords-2)
-          nil t (("+-*/.<>=!?$%_&~^:#" . "w")) beginning-of-defun
-          (font-lock-mark-block-function . mark-defun)
-          (font-lock-syntactic-face-function . lisp-font-lock-syntactic-face-function))))
+  (set (make-local-variable 'font-lock-defaults)
+       '((scheme-font-lock-keywords
+          scheme-font-lock-keywords-1 scheme-font-lock-keywords-2)
+         nil t (("+-*/.<>=!?$%_&~^:" . "w") (?#. "w 14"))
+         beginning-of-defun
+         (font-lock-mark-block-function . mark-defun)
+         (font-lock-syntactic-face-function
+          . scheme-font-lock-syntactic-face-function)
+         (parse-sexp-lookup-properties . t)
+         (font-lock-extra-managed-props syntax-table)))
+  (set (make-local-variable 'lisp-doc-string-elt-property)
+       'scheme-doc-string-elt))
 
 (defvar scheme-mode-line-process "")
 
@@ -345,6 +356,44 @@
 (defvar scheme-font-lock-keywords scheme-font-lock-keywords-1
   "Default expressions to highlight in Scheme modes.")
 
+(defconst scheme-sexp-comment-syntax-table
+  (let ((st (make-syntax-table scheme-mode-syntax-table)))
+    (modify-syntax-entry ?\; "." st)
+    (modify-syntax-entry ?\n " " st)
+    (modify-syntax-entry ?#  "'" st)
+    st))
+
+(put 'lambda 'scheme-doc-string-elt 2)
+;; Docstring's pos in a `define' depends on whether it's a var or fun def.
+(put 'define 'scheme-doc-string-elt
+     (lambda ()
+       ;; The function is called with point right after "define".
+       (forward-comment (point-max))
+       (if (eq (char-after) ?\() 2 0)))
+
+(defun scheme-font-lock-syntactic-face-function (state)
+  (when (and (null (nth 3 state))
+             (eq (char-after (nth 8 state)) ?#)
+             (eq (char-after (1+ (nth 8 state))) ?\;))
+    ;; It's a sexp-comment.  Tell parse-partial-sexp where it ends.
+    (save-excursion
+      (let ((pos (point))
+            (end
+             (condition-case err
+                 (let ((parse-sexp-lookup-properties nil))
+                   (goto-char (+ 2 (nth 8 state)))
+                   ;; FIXME: this doesn't handle the case where the sexp
+                   ;; itself contains a #; comment.
+                   (forward-sexp 1)
+                   (point))
+               (scan-error (nth 2 err)))))
+        (when (< pos (- end 2))
+          (put-text-property pos (- end 2)
+                             'syntax-table scheme-sexp-comment-syntax-table))
+        (put-text-property (- end 1) end 'syntax-table '(12)))))
+  ;; Choose the face to use.
+  (lisp-font-lock-syntactic-face-function state))
+
 ;;;###autoload
 (define-derived-mode dsssl-mode scheme-mode "DSSSL"
   "Major mode for editing DSSSL code.
--- a/lisp/progmodes/vhdl-mode.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/progmodes/vhdl-mode.el	Fri Oct 07 07:15:40 2005 +0000
@@ -142,6 +142,8 @@
 (defvar lazy-lock-defer-contextually)
 (defvar lazy-lock-defer-on-scrolling)
 (defvar lazy-lock-defer-on-the-fly)
+(defvar speedbar-attached-frame)
+
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Variables
@@ -13988,11 +13990,11 @@
     (speedbar-add-mode-functions-list
      '("vhdl directory"
        (speedbar-item-info . vhdl-speedbar-item-info)
-       (speedbar-line-path . speedbar-files-line-path)))
+       (speedbar-line-directory . speedbar-files-line-path)))
     (speedbar-add-mode-functions-list
      '("vhdl project"
        (speedbar-item-info . vhdl-speedbar-item-info)
-       (speedbar-line-path . vhdl-speedbar-line-project)))
+       (speedbar-line-directory . vhdl-speedbar-line-project)))
     ;; keymap
     (unless vhdl-speedbar-key-map
       (setq vhdl-speedbar-key-map (speedbar-make-specialized-keymap))
@@ -14257,9 +14259,9 @@
      ((save-excursion (beginning-of-line) (looking-at "[^0-9]"))
       (re-search-forward "[0-9]+:" nil t)
       (vhdl-scan-directory-contents
-       (abbreviate-file-name (speedbar-line-path))))
+       (abbreviate-file-name (speedbar-line-directory))))
      ;; current directory
-     (t (setq path (speedbar-line-path))
+     (t (setq path (speedbar-line-directory))
 	(string-match "^\\(.+[/\\]\\)" path)
 	(vhdl-scan-directory-contents
 	 (abbreviate-file-name (match-string 1 path)))))
@@ -14977,7 +14979,7 @@
   (cond ((string-match "+" text)	; we have to expand this dir
 	 (setq speedbar-shown-directories
 	       (cons (expand-file-name
-		      (concat (speedbar-line-path indent) token "/"))
+		      (concat (speedbar-line-directory indent) token "/"))
 		     speedbar-shown-directories))
   	 (speedbar-change-expand-button-char ?-)
 	 (speedbar-reset-scanners)
@@ -14986,12 +14988,12 @@
 	     (end-of-line) (forward-char 1)
 	     (vhdl-speedbar-insert-dirs
 	      (speedbar-file-lists
-	       (concat (speedbar-line-path indent) token "/"))
+	       (concat (speedbar-line-directory indent) token "/"))
 	      (1+ indent))
 	     (speedbar-reset-scanners)
 	     (vhdl-speedbar-insert-dir-hierarchy
 	      (abbreviate-file-name
-	       (concat (speedbar-line-path indent) token "/"))
+	       (concat (speedbar-line-directory indent) token "/"))
 	      (1+ indent) speedbar-power-click)))
 	 (vhdl-speedbar-update-current-unit t t))
 	((string-match "-" text)	; we have to contract this node
@@ -14999,7 +15001,7 @@
 	 (let ((oldl speedbar-shown-directories)
 	       (newl nil)
 	       (td (expand-file-name
-		    (concat (speedbar-line-path indent) token))))
+		    (concat (speedbar-line-directory indent) token))))
 	   (while oldl
 	     (if (not (string-match (concat "^" (regexp-quote td)) (car oldl)))
 		 (setq newl (cons (car oldl) newl)))
@@ -15085,7 +15087,7 @@
   (if vhdl-speedbar-show-projects
       (vhdl-speedbar-line-project)
     (abbreviate-file-name
-     (file-name-as-directory (speedbar-line-path indent)))))
+     (file-name-as-directory (speedbar-line-directory indent)))))
 
 (defun vhdl-speedbar-line-project (&optional indent)
   "Get currently displayed project name."
@@ -15236,7 +15238,7 @@
 	  (unit-name (vhdl-speedbar-line-text))
 	  (vhdl-project (vhdl-speedbar-line-project))
 	  (directory (file-name-as-directory
-		      (or (speedbar-line-file) (speedbar-line-path)))))
+		      (or (speedbar-line-file) (speedbar-line-directory)))))
       (if (fboundp 'speedbar-select-attached-frame)
 	  (speedbar-select-attached-frame)
 	(select-frame speedbar-attached-frame))
@@ -15248,7 +15250,7 @@
   (interactive)
   (let ((vhdl-project (vhdl-speedbar-line-project))
 	(default-directory (file-name-as-directory
-			    (or (speedbar-line-file) (speedbar-line-path)))))
+			    (or (speedbar-line-file) (speedbar-line-directory)))))
     (vhdl-generate-makefile)))
 
 (defun vhdl-speedbar-check-unit (design-unit)
--- a/lisp/sb-dir-minus.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_dir_minus_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #FFF993",
-"#	c #828282",
-"  ......            ",
-" .++++++.           ",
-".+@@@@@@+.........  ",
-".+@@@@@@@+++++++++. ",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@+++++@@@@@@+#",
-".+@@@@@@.....@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-" #++++++++++++++++# ",
-"  ################  "};
--- a/lisp/sb-dir-plus.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_dir_plus_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #FFF993",
-"#	c #828282",
-"  ......            ",
-" .++++++.           ",
-".+@@@@@@+.........  ",
-".+@@@@@@@+++++++++. ",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@+@@@@@@@@+#",
-".+@@@@@@@+.@@@@@@@+#",
-".+@@@@@+++++@@@@@@+#",
-".+@@@@@@.+...@@@@@+#",
-".+@@@@@@@+.@@@@@@@+#",
-".+@@@@@@@@.@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-" #++++++++++++++++# ",
-"  ################  "};
--- a/lisp/sb-dir.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_dir_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #FFF993",
-"#	c #828282",
-"  ......            ",
-" .++++++.           ",
-".+@@@@@@+.........  ",
-".+@@@@@@@+++++++++. ",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-" #++++++++++++++++# ",
-"  ################  "};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/sb-image.el	Fri Oct 07 07:15:40 2005 +0000
@@ -0,0 +1,111 @@
+;;; sb-image --- Image management for speedbar
+
+;;; Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation
+
+;; Author: Eric M. Ludlam <zappo@gnu.org>
+;; Keywords: file, tags, tools
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+
+;;; Commentary:
+;;
+;; Supporting Image display for Emacs 20 and less, Emacs 21, and XEmacs,
+;; is a challenging task, which doesn't take kindly to being byte compiled.
+;; When sharing speedbar.elc between these three applications, the Image
+;; support can get lost.
+;;
+;; By splitting out that hard part into this file, and avoiding byte
+;; compilation, one copy speedbar can support all these platforms together.
+;;
+;; This file requires the `image' package if it is available.
+
+(require 'ezimage)
+
+;;; Code:
+(defcustom speedbar-use-images ezimage-use-images
+  "*Non-nil if speedbar should display icons."
+  :group 'speedbar
+  :version "21.1"
+  :type 'boolean)
+
+(defalias 'defimage-speedbar 'defezimage)
+
+(defvar speedbar-expand-image-button-alist
+  '(("<+>" . ezimage-directory-plus)
+    ("<->" . ezimage-directory-minus)
+    ("< >" . ezimage-directory)
+    ("[+]" . ezimage-page-plus)
+    ("[-]" . ezimage-page-minus)
+    ("[?]" . ezimage-page)
+    ("[ ]" . ezimage-page)
+    ("{+}" . ezimage-box-plus)
+    ("{-}" . ezimage-box-minus)
+    ("<M>" . ezimage-mail)
+    ("<d>" . ezimage-document-tag)
+    ("<i>" . ezimage-info-tag)
+    (" =>" . ezimage-tag)
+    (" +>" . ezimage-tag-gt)
+    (" ->" . ezimage-tag-v)
+    (">"   . ezimage-tag)
+    ("@"   . ezimage-tag-type)
+    ("  @" . ezimage-tag-type)
+    ("*"   . ezimage-checkout)
+    ("#"   . ezimage-object)
+    ("!"   . ezimage-object-out-of-date)
+    ("//"  . ezimage-label)
+    ("%"   . ezimage-lock)
+    )
+  "List of text and image associations.")
+
+(defun speedbar-insert-image-button-maybe (start length)
+  "Insert an image button based on text starting at START for LENGTH chars.
+If buttontext is unknown, just insert that text.
+If we have an image associated with it, use that image."
+  (when speedbar-use-images
+    (let ((ezimage-expand-image-button-alist
+	   speedbar-expand-image-button-alist))
+      (ezimage-insert-image-button-maybe start length))))
+
+(defun speedbar-image-dump ()
+  "Dump out the current state of the Speedbar image alist.
+See `speedbar-expand-image-button-alist' for details."
+  (interactive)
+  (with-output-to-temp-buffer "*Speedbar Images*"
+    (save-excursion
+      (set-buffer "*Speedbar Images*")
+      (goto-char (point-max))
+      (insert "Speedbar image cache.\n\n")
+      (let ((start (point)) (end nil))
+	(insert "Image\tText\tImage Name")
+	(setq end (point))
+	(insert "\n")
+	(put-text-property start end 'face 'underline))
+      (let ((ia speedbar-expand-image-button-alist))
+	(while ia
+	  (let ((start (point)))
+	    (insert (car (car ia)))
+	    (insert "\t")
+	    (speedbar-insert-image-button-maybe start
+						(length (car (car ia))))
+	    (insert (car (car ia)) "\t" (format "%s" (cdr (car ia))) "\n"))
+	  (setq ia (cdr ia)))))))
+
+(provide 'sb-image)
+
+;; arch-tag: 6b05accd-e8b8-4290-8379-f063f3dacabb
+;;; sb-image.el ends here
--- a/lisp/sb-mail.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_mail_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #828282",
-"#	c #FFFFFF",
-" .................. ",
-".++++++++++++++++++@",
-".++##############++@",
-".+#++##########++#+@",
-".+###++######++###+@",
-".+#####++##++#####+@",
-".+#######++#######+@",
-".+################+@",
-".+####+######+####+@",
-".+################+@",
-".+##+##########+##+@",
-".+################+@",
-".++##############++@",
-".++++++++++++++++++@",
-" @@@@@@@@@@@@@@@@@@ "};
--- a/lisp/sb-pg-minus.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_pg_minus_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #828282",
-"#	c #FFFFFF",
-"       ............ ",
-"      .++++++++++++@",
-"     .++##########+@",
-"    .+#+##########+@",
-"   .+##+##########+@",
-"  .+###+##########+@",
-" .+####+##########+@",
-".+++++++#+++++####+@",
-".+########.....###+@",
-".+################+@",
-".+################+@",
-".+################+@",
-".+################+@",
-".++++++++++++++++++@",
-" @@@@@@@@@@@@@@@@@@ "};
--- a/lisp/sb-pg-plus.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_pg_plus_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #828282",
-"#	c #FFFFFF",
-"       ............ ",
-"      .++++++++++++@",
-"     .++##########+@",
-"    .+#+##########+@",
-"   .+##+##########+@",
-"  .+###+###+######+@",
-" .+####+###+.#####+@",
-".+++++++#+++++####+@",
-".+########.+...###+@",
-".+#########+.#####+@",
-".+##########.#####+@",
-".+################+@",
-".+################+@",
-".++++++++++++++++++@",
-" @@@@@@@@@@@@@@@@@@ "};
--- a/lisp/sb-pg.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_pg_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #828282",
-"#	c #FFFFFF",
-"       ............ ",
-"      .++++++++++++@",
-"     .++##########+@",
-"    .+#+##########+@",
-"   .+##+##########+@",
-"  .+###+##########+@",
-" .+####+##########+@",
-".+++++++##########+@",
-".+################+@",
-".+################+@",
-".+################+@",
-".+################+@",
-".+################+@",
-".++++++++++++++++++@",
-" @@@@@@@@@@@@@@@@@@ "};
--- a/lisp/sb-tag-gt.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_tag_gt_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #FFF993",
-"#	c #828282",
-"                    ",
-"                    ",
-"    ..............  ",
-"   .++++++++++++++. ",
-"  .+@@@@@++@@@@@@@+#",
-" .+@@@@@@+++@@@@@@+#",
-".+@@@@@@@++++@@@@@+#",
-".+@++@@@@+++++@@@@+#",
-".+@++@@@@+++++#@@@+#",
-".+@@@@@@@++++#@@@@+#",
-" #+@@@@@@+++#@@@@@+#",
-"  #+@@@@@++#@@@@@@+#",
-"   #++++++#+++++++# ",
-"    ##############  ",
-"                    "};
--- a/lisp/sb-tag-minus.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_tag_minus_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #FFF993",
-"#	c #828282",
-"                    ",
-"                    ",
-"    ..............  ",
-"   .++++++++++++++. ",
-"  .+@@@@@@@@@@@@@@+#",
-" .+@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@++@@+++++@@@@@@+#",
-".+@++@@@.....@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-" #+@@@@@@@@@@@@@@@+#",
-"  #+@@@@@@@@@@@@@@+#",
-"   #++++++++++++++# ",
-"    ##############  ",
-"                    "};
--- a/lisp/sb-tag-plus.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_tag_plus_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #FFF993",
-"#	c #828282",
-"                    ",
-"                    ",
-"    ..............  ",
-"   .++++++++++++++. ",
-"  .+@@@@@@@@@@@@@@+#",
-" .+@@@@@@+@@@@@@@@+#",
-".+@@@@@@@+.@@@@@@@+#",
-".+@++@@+++++@@@@@@+#",
-".+@++@@@.+...@@@@@+#",
-".+@@@@@@@+.@@@@@@@+#",
-" #+@@@@@@@.@@@@@@@+#",
-"  #+@@@@@@@@@@@@@@+#",
-"   #++++++++++++++# ",
-"    ##############  ",
-"                    "};
--- a/lisp/sb-tag-type.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_tag_type_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #FFF993",
-"#	c #828282",
-"                    ",
-"                    ",
-"    ..............  ",
-"   .++++++++++++++. ",
-"  .+@@@@@@@@@@@@@@+#",
-" .+@@@@@@++++++@@@+#",
-".+@@@@@@@++++++@@@+#",
-".+@++@@@@@@++@@@@@+#",
-".+@++@@@@@@++@@@@@+#",
-".+@@@@@@@@@++@@@@@+#",
-" #+@@@@@@@@++@@@@@+#",
-"  #+@@@@@@@@@@@@@@+#",
-"   #++++++++++++++# ",
-"    ##############  ",
-"                    "};
--- a/lisp/sb-tag-v.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_tag_v_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #FFF993",
-"#	c #828282",
-"                    ",
-"                    ",
-"    ..............  ",
-"   .++++++++++++++. ",
-"  .+@@@@@@@@@@@@@@+#",
-" .+@@@++++++++++#@+#",
-".+@@@@@++++++++#@@+#",
-".+@++@@@++++++#@@@+#",
-".+@++@@@@++++#@@@@+#",
-".+@@@@@@@@++#@@@@@+#",
-" #+@@@@@@@@#@@@@@@+#",
-"  #+@@@@@@@@@@@@@@+#",
-"   #++++++++++++++# ",
-"    ##############  ",
-"                    "};
--- a/lisp/sb-tag.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-/* XPM */
-static char * sb_tag_xpm[] = {
-"20 15 5 1",
-" 	c None",
-".	c #B8B8B8",
-"+	c #000000",
-"@	c #FFF993",
-"#	c #828282",
-"                    ",
-"                    ",
-"    ..............  ",
-"   .++++++++++++++. ",
-"  .+@@@@@@@@@@@@@@+#",
-" .+@@@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-".+@++@@@@@@@@@@@@@+#",
-".+@++@@@@@@@@@@@@@+#",
-".+@@@@@@@@@@@@@@@@+#",
-" #+@@@@@@@@@@@@@@@+#",
-"  #+@@@@@@@@@@@@@@+#",
-"   #++++++++++++++# ",
-"    ##############  ",
-"                    "};
--- a/lisp/simple.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/simple.el	Fri Oct 07 07:15:40 2005 +0000
@@ -261,6 +261,14 @@
       (funcall next-error-function (prefix-numeric-value arg) reset)
       (run-hooks 'next-error-hook))))
 
+(defun next-error-internal ()
+  "Visit the source code corresponding to the `next-error' message at point."
+  (setq next-error-last-buffer (current-buffer))
+  ;; we know here that next-error-function is a valid symbol we can funcall
+  (with-current-buffer next-error-last-buffer
+    (funcall next-error-function 0 nil)
+    (run-hooks 'next-error-hook)))
+
 (defalias 'goto-next-locus 'next-error)
 (defalias 'next-match 'next-error)
 
@@ -888,22 +896,42 @@
 	  (message "point=%d of %d (%d%%) column %d %s"
 		   pos total percent col hscroll))
       (let ((coding buffer-file-coding-system)
-	    encoded encoding-msg)
+	    encoded encoding-msg display-prop under-display)
 	(if (or (not coding)
 		(eq (coding-system-type coding) t))
 	    (setq coding default-buffer-file-coding-system))
 	(if (eq (char-charset char) 'eight-bit)
 	    (setq encoding-msg
 		  (format "(0%o, %d, 0x%x, raw-byte)" char char char))
-	  (setq encoded (and (>= char 128) (encode-coding-char char coding)))
+	  ;; Check if the character is displayed with some `display'
+	  ;; text property.  In that case, set under-display to the
+	  ;; buffer substring covered by that property.
+	  (setq display-prop (get-text-property pos 'display))
+	  (if display-prop
+	      (let ((to (or (next-single-property-change pos 'display)
+			    (point-max))))
+		(if (< to (+ pos 4))
+		    (setq under-display "")
+		  (setq under-display "..."
+			to (+ pos 4)))
+		(setq under-display
+		      (concat (buffer-substring-no-properties pos to)
+			      under-display)))
+	    (setq encoded (and (>= char 128) (encode-coding-char char coding))))
 	  (setq encoding-msg
-		(if encoded
-		    (format "(0%o, %d, 0x%x, file %s)"
-			    char char char
-			    (if (> (length encoded) 1)
-				"..."
-			      (encoded-string-description encoded coding)))
-		  (format "(0%o, %d, 0x%x)" char char char))))
+		(if display-prop
+		    (if (not (stringp display-prop))
+			(format "(0%o, %d, 0x%x, part of display \"%s\")"
+				char char char under-display)
+		      (format "(0%o, %d, 0x%x, part of display \"%s\"->\"%s\")"
+			      char char char under-display display-prop))
+		  (if encoded
+		      (format "(0%o, %d, 0x%x, file %s)"
+			      char char char
+			      (if (> (length encoded) 1)
+				  "..."
+				(encoded-string-description encoded coding)))
+		    (format "(0%o, %d, 0x%x)" char char char)))))
 	(if detail
 	    ;; We show the detailed information about CHAR.
 	    (describe-char (point)))
@@ -914,9 +942,11 @@
 		       (buffer-substring-no-properties (point) (1+ (point))))
 		     encoding-msg pos total percent beg end col hscroll)
 	  (message "Char: %s %s point=%d of %d (%d%%) column %d %s"
-		   (if (< char 256)
-		       (single-key-description char)
-		     (buffer-substring-no-properties (point) (1+ (point))))
+		   (if enable-multibyte-characters
+		       (if (< char 128)
+			   (single-key-description char)
+			 (buffer-substring-no-properties (point) (1+ (point))))
+		     (single-key-description char))
 		   encoding-msg pos total percent col hscroll))))))
 
 (defvar read-expression-map
--- a/lisp/speedbar.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/speedbar.el	Fri Oct 07 07:15:40 2005 +0000
@@ -1,12 +1,17 @@
-;;; speedbar.el --- quick access to files and tags in a frame
-
-;; Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-;;   2004, 2005 Free Software Foundation, Inc.
+;;; speedbar --- quick access to files and tags in a frame
+
+;;; Copyright (C) 1996, 97, 98, 99, 00, 01, 02, 03, 04, 05 Free Software Foundation
 
 ;; Author: Eric M. Ludlam <zappo@gnu.org>
-;; Version: 0.11a
 ;; Keywords: file, tags, tools
 
+(defvar speedbar-version "1.0"
+  "The current version of speedbar.")
+(defvar speedbar-incompatible-version "0.14beta4"
+  "This version of speedbar is incompatible with this version.
+Due to massive API changes (removing the use of the word PATH) 
+this version is not backward compatible to 0.14 or earlier.")
+
 ;; This file is part of GNU Emacs.
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
@@ -27,169 +32,38 @@
 ;;; Commentary:
 ;;
 ;;   The speedbar provides a frame in which files, and locations in
-;; files are displayed.  These items can be clicked on with mouse-2
-;; in order to make the last active frame display that file location.
-;;
-;; Starting Speedbar:
-;;
-;;   Simply type `M-x speedbar', and it will be autoloaded for you.
-
-;;   If you want to choose it from a menu, such as "Tools", you can do this:
-;;
-;;   (define-key-after (lookup-key global-map [menu-bar tools])
-;;      [speedbar] '("Speedbar" . speedbar-frame-mode) [calendar])
-;;
-;;   If you want to access speedbar using only the keyboard, do this:
+;; files are displayed.  These items can be clicked on with mouse-2 in
+;; to display that file location.
 ;;
-;;   (global-set-key [f4] 'speedbar-get-focus)
+;;; Customizing and Developing for speedbar
 ;;
-;;   This will let you hit f4 (or whatever key you choose) to jump
-;; focus to the speedbar frame.  Pressing it again will bring you back
-;; to the attached frame.  Pressing RET or e to jump to a file
-;; or tag will move you back to the attached frame.  The command
-;; `speedbar-get-focus' will also create a speedbar frame if it does
-;; not exist.
-;;
-;; Customizing Speedbar:
-;;
-;;   Once a speedbar frame is active, it takes advantage of idle time
-;; to keep its contents updated.  The contents is usually a list of
-;; files in the directory of the currently active buffer.  When
-;; applicable, tags in the active file can be expanded.
+;; Please see the speedbar manual for informaion.
 ;;
-;;   To add new supported files types into speedbar, use the function
-;; `speedbar-add-supported-extension'.  If speedbar complains that the
-;; file type is not supported, that means there is no built in
-;; support from imenu, and the etags part wasn't set up correctly.  You
-;; may add elements to `speedbar-supported-extension-expressions' as long
-;; as it is done before speedbar is loaded.
-;;
-;;   To prevent speedbar from following you into certain directories
-;; use the function `speedbar-add-ignored-path-regexp' to add a new
-;; regular expression matching a type of path.  You may add list
-;; elements to `speedbar-ignored-path-expressions' as long as it is
-;; done before speedbar is loaded.
-;;
-;;   To add new file types to imenu, see the documentation in the
-;; file imenu.el that comes with Emacs.  To add new file types which
-;; etags supports, you need to modify the variable
-;; `speedbar-fetch-etags-parse-list'.
+;;; Notes:
 ;;
-;;    If the updates are going too slow for you, modify the variable
-;; `speedbar-update-speed' to a longer idle time before updates.
-;;
-;;    If you navigate directories, you will probably notice that you
-;; will navigate to a directory which is eventually replaced after
-;; you go back to editing a file (unless you pull up a new file.)
-;; The delay time before this happens is in
-;; `speedbar-navigating-speed', and defaults to 10 seconds.
+;;    Users of really old emacsen without the need timer functions
+;; will not have speedbar updating automatically.  Use "g" to refresh
+;; the display after changing directories.  Remember, do not interrupt
+;; the stealthy updates or your display may not be completely
+;; refreshed.
 ;;
-;;    To enable mouse tracking with information in the minibuffer of
-;; the attached frame, use the variable `speedbar-track-mouse-flag'.
-;;
-;;    Tag layout can be modified through `speedbar-tag-hierarchy-method',
-;; which controls how tags are layed out.  It is actually a list of
-;; functions that filter the data.  The default groups large tag lists
-;; into sub-lists.  A long flat list can be used instead if needed.
-;; Other filters can be easily added.
-;;
-;;    AUCTEX users: The imenu tags for AUCTEX mode doesn't work very
+;;    AUC-TEX users: The imenu tags for AUC-TEX mode don't work very
 ;; well.  Use the imenu keywords from tex-mode.el for better results.
 ;;
 ;; This file requires the library package assoc (association lists)
-;;
-;;; Developing for speedbar
-;;
-;; Adding a speedbar specialized display mode:
-;;
-;; Speedbar can be configured to create a special display for certain
-;; modes that do not display traditional file/tag data.  Rmail, Info,
-;; and the debugger are examples.  These modes can, however, benefit
-;; from a speedbar style display in their own way.
-;;
-;; If your `major-mode' is `foo-mode', the only requirement is to
-;; create a function called `foo-speedbar-buttons' which takes one
-;; argument, BUFFER.  BUFFER will be the buffer speedbar wants filled.
-;; In `foo-speedbar-buttons' there are several functions that make
-;; building a speedbar display easy.  See the documentation for
-;; `speedbar-with-writable' (needed because the buffer is usually
-;; read-only) `speedbar-make-tag-line', `speedbar-insert-button', and
-;; `speedbar-insert-generic-list'.  If you use
-;; `speedbar-insert-generic-list', also read the doc for
-;; `speedbar-tag-hierarchy-method' in case you wish to override it.
-;; The macro `speedbar-with-attached-buffer' brings you back to the
-;; buffer speedbar is displaying for.
-;;
-;; For those functions that make buttons, the "function" should be a
-;; symbol that is the function to call when clicked on.  The "token"
-;; is extra data you can pass along.  The "function" must take three
-;; parameters.  They are (TEXT TOKEN INDENT).  TEXT is the text of the
-;; button clicked on.  TOKEN is the data passed in when you create the
-;; button.  INDENT is an indentation level, or 0.  You can store
-;; indentation levels with `speedbar-make-tag-line' which creates a
-;; line with an expander (eg.  [+]) and a text button.
+;;     assoc should be available in all modern versions of Emacs.
+;; The custom package is optional (for easy configuration of speedbar)
+;;     http://www.dina.kvl.dk/~abraham/custom/
+;;     custom is available in all versions of Emacs version 20 or better.
 ;;
-;; Some useful functions when writing expand functions, and click
-;; functions are `speedbar-change-expand-button-char',
-;; `speedbar-delete-subblock', and `speedbar-center-buffer-smartly'.
-;; The variable `speedbar-power-click' is set to t in your functions
-;; when the user shift-clicks.  This is an indication of anything from
-;; refreshing cached data to making a buffer appear in a new frame.
-;;
-;; If you wish to add to the default speedbar menu for the case of
-;; `foo-mode', create a variable `foo-speedbar-menu-items'.  This
-;; should be a list compatible with the `easymenu' package.  It will
-;; be spliced into the main menu.  (Available with click-mouse-3).  If
-;; you wish to have extra key bindings in your special mode, create a
-;; variable `foo-speedbar-key-map'.  Instead of using `make-keymap',
-;; or `make-sparse-keymap', use the function
-;; `speedbar-make-specialized-keymap'.  This lets you inherit all of
-;; speedbar's default bindings with low overhead.
-;;
-;; Adding a speedbar top-level display mode:
-;;
-;; Unlike the specialized modes, there are no name requirements,
-;; however the methods for writing a button display, menu, and keymap
-;; are the same.  Once you create these items, you can call the
-;; function `speedbar-add-expansion-list'.  It takes one parameter
-;; which is a list element of the form (NAME MENU KEYMAP &rest
-;; BUTTON-FUNCTIONS).  NAME is a string that will show up in the
-;; Displays menu item.  MENU is a symbol containing the menu items to
-;; splice in.  KEYMAP is a symbol holding the keymap to use, and
-;; BUTTON-FUNCTIONS are the function names to call, in order, to create
-;; the display.
-;;  Another tweakable variable is `speedbar-stealthy-function-list'
-;; which is of the form (NAME &rest FUNCTION ...).  NAME is the string
-;; name matching `speedbar-add-expansion-list'.  (It does not need to
-;; exist.). This provides additional display info which might be
-;; time-consuming to calculate.
-;;  Lastly, `speedbar-mode-functions-list' allows you to set special
-;; function overrides.  At the moment very few functions may be
-;; overridden, but more will be added as the need is discovered.
 
 ;;; TODO:
-;; - More functions to create buttons and options
 ;; - Timeout directories we haven't visited in a while.
 
-;;; Code:
-
 (require 'assoc)
 (require 'easymenu)
-
-(condition-case nil
-    (require 'image)
-  (error nil))
-
-(defvar ange-ftp-path-format)
-(defvar efs-path-regexp)
-(defvar font-lock-keywords)
-(defvar x-pointer-hand2)
-(defvar x-pointer-top-left-arrow)
-
-(defvar speedbar-xemacsp (string-match "XEmacs" emacs-version)
-  "Non-nil if we are running in the XEmacs environment.")
-(defvar speedbar-xemacs20p (and speedbar-xemacsp
-				(>= emacs-major-version 20)))
+(require 'dframe)
+(require 'sb-image)
 
 ;; customization stuff
 (defgroup speedbar nil
@@ -197,7 +71,8 @@
   :group 'etags
   :group 'tools
   :group 'convenience
-  :version "20.3")
+;  :version "20.3"
+  )
 
 (defgroup speedbar-faces nil
   "Faces used in speedbar."
@@ -210,6 +85,27 @@
   :prefix "speedbar-"
   :group 'speedbar)
 
+;;; Code:
+
+;; Note: `inversion-test' requires parts of the CEDET package that are
+;; not included with Emacs.
+;;
+;; (defun speedbar-require-version (major minor &optional beta)
+;;   "Non-nil if this version of SPEEDBAR does not satisfy a specific version.
+;; Arguments can be:
+;;
+;;   (MAJOR MINOR &optional BETA)
+;;
+;;   Values MAJOR and MINOR must be integers.  BETA can be an integer, or
+;; excluded if a released version is required.
+;;
+;; It is assumed that if the current version is newer than that specified,
+;; everything passes.  Exceptions occur when known incompatibilities are
+;; introduced."
+;;   (inversion-test 'speedbar
+;; 		  (concat major "." minor
+;; 			  (when beta (concat "beta" beta)))))
+
 (defvar speedbar-initial-expansion-mode-alist
   '(("buffers" speedbar-buffer-easymenu-definition speedbar-buffers-key-map
      speedbar-buffer-buttons)
@@ -244,7 +140,10 @@
 
 (defvar speedbar-stealthy-function-list
   '(("files"
-     speedbar-update-current-file speedbar-check-vc speedbar-check-objects)
+     speedbar-update-current-file
+     speedbar-check-read-only
+     speedbar-check-vc
+     speedbar-check-objects)
     )
   "List of functions to periodically call stealthily.
 This list is of the form:
@@ -260,11 +159,11 @@
 
 (defvar speedbar-mode-functions-list
   '(("files" (speedbar-item-info . speedbar-files-item-info)
-     (speedbar-line-path . speedbar-files-line-path))
+     (speedbar-line-directory . speedbar-files-line-directory))
     ("buffers" (speedbar-item-info . speedbar-buffers-item-info)
-     (speedbar-line-path . speedbar-buffers-line-path))
+     (speedbar-line-directory . speedbar-buffers-line-directory))
     ("quick buffers" (speedbar-item-info . speedbar-buffers-item-info)
-     (speedbar-line-path . speedbar-buffers-line-path))
+     (speedbar-line-directory . speedbar-buffers-line-directory))
     )
   "List of function tables to use for different major display modes.
 It is not necessary to define any functions for a specialized mode.
@@ -285,6 +184,20 @@
   :group 'speedbar
   :type 'boolean)
 
+(defcustom speedbar-query-confirmation-method 'all
+  "*Query control for file operations.
+The 'always flag means to always query before file operations.
+The 'none-but-delete flag means to not query before any file
+operations, except before a file deletion."
+  :group 'speedbar
+  :type '(radio (const :tag "Always Query before some file operations."
+		       all)
+		(const :tag "Never Query before file operations, except for deletions."
+		       none-but-delete)
+;;;;		(const :tag "Never Every Query."
+;;;;		       none)
+		))
+
 (defvar speedbar-special-mode-expansion-list nil
   "Default function list for creating specialized button lists.
 This list is set by modes that wish to have special speedbar displays.
@@ -297,30 +210,40 @@
 This keymap is local to each buffer that wants to define special keybindings
 effective when its display is shown.")
 
+(defcustom speedbar-before-visiting-file-hook '(push-mark)
+  "*Hooks run before speedbar visits a file in the selected frame.
+The default buffer is the buffer in the selected window in the attached frame."
+  :group 'speedbar
+  :type 'hook)
+
 (defcustom speedbar-visiting-file-hook nil
-  "Hooks run when speedbar visits a file in the selected frame."
+  "*Hooks run when speedbar visits a file in the selected frame."
+  :group 'speedbar
+  :type 'hook)
+
+(defcustom speedbar-before-visiting-tag-hook '(push-mark)
+  "*Hooks run before speedbar visits a tag in the selected frame.
+The default buffer is the buffer in the selected window in the attached frame."
   :group 'speedbar
   :type 'hook)
 
 (defcustom speedbar-visiting-tag-hook '(speedbar-highlight-one-tag-line)
-  "Hooks run when speedbar visits a tag in the selected frame."
+  "*Hooks run when speedbar visits a tag in the selected frame."
   :group 'speedbar
   :type 'hook
-  :version "21.1"
   :options '(speedbar-highlight-one-tag-line
 	     speedbar-recenter-to-top
 	     speedbar-recenter
 	     ))
 
 (defcustom speedbar-load-hook nil
-  "Hooks run when speedbar is loaded."
+  "*Hooks run when speedbar is loaded."
   :group 'speedbar
   :type 'hook)
 
 (defcustom speedbar-reconfigure-keymaps-hook nil
-  "Hooks run when the keymaps are regenerated."
+  "*Hooks run when the keymaps are regenerated."
   :group 'speedbar
-  :version "21.1"
   :type 'hook)
 
 (defcustom speedbar-show-unknown-files nil
@@ -329,34 +252,26 @@
   :group 'speedbar
   :type 'boolean)
 
-(defcustom speedbar-update-speed
-  (if speedbar-xemacsp
-      (if speedbar-xemacs20p
-	  2				; 1 is too obrusive in XEmacs
-	5)				; when no idleness, need long delay
-    1)
-  "*Idle time in seconds needed before speedbar will update itself.
-Updates occur to allow speedbar to display directory information
-relevant to the buffer you are currently editing."
-  :group 'speedbar
-  :type 'integer)
+;;; EVENTUALLY REMOVE THESE
 
 ;; When I moved to a repeating timer, I had the horrible missfortune
 ;; of loosing the ability for adaptive speed choice.  This update
 ;; speed currently causes long delays when it should have been turned off.
-(defcustom speedbar-navigating-speed speedbar-update-speed
-  "*Idle time to wait after navigation commands in speedbar are executed.
-Navigation commands included expanding/contracting nodes, and moving
-between different directories."
-  :group 'speedbar
-  :type 'integer)
+(defvar speedbar-update-speed dframe-update-speed
+  "*Obsoleted variable.  Use `dframe-update-speed'.")
+
+(defvar speedbar-navigating-speed dframe-update-speed
+  "*Obsoleted variable.  Use `dframe-update-speed'.")
+;;; END REMOVE THESE
 
 (defcustom speedbar-frame-parameters '((minibuffer . nil)
 				       (width . 20)
 				       (border-width . 0)
 				       (menu-bar-lines . 0)
 				       (tool-bar-lines . 0)
-				       (unsplittable . t))
+				       (unsplittable . t)
+				       (left-fringe . 0)
+				       )
   "*Parameters to use when creating the speedbar frame in Emacs.
 Any parameter supported by a frame may be added.  The parameter `height'
 will be initialized to the height of the frame speedbar is
@@ -371,7 +286,9 @@
   '(minibuffer nil width 20 border-width 0
 	       internal-border-width 0 unsplittable t
 	       default-toolbar-visible-p nil has-modeline-p nil
-	       menubar-visible-p nil)
+	       menubar-visible-p nil
+	       default-gutter-visible-p nil
+	       )
   "*Parameters to use when creating the speedbar frame in XEmacs.
 Parameters not listed here which will be added automatically are
 `height' which will be initialized to the height of the frame speedbar
@@ -401,13 +318,22 @@
 INSERT is a function which takes an INDENTation level, and a LIST of
 tags to insert.  It will then create the speedbar buttons.")
 
-(defcustom speedbar-track-mouse-flag t
+(defcustom speedbar-use-tool-tips-flag (and (not (featurep 'xemacs))
+				       (>= emacs-major-version 21))
+  "*Non-nil means to use tool tips if they are avaialble.
+When tooltips are not available, mouse-tracking and minibuffer
+display is used instead."
+  :group 'speedbar
+  :type 'boolean)
+
+(defcustom speedbar-track-mouse-flag (not speedbar-use-tool-tips-flag)
   "*Non-nil means to display info about the line under the mouse."
   :group 'speedbar
   :type 'boolean)
 
 (defcustom speedbar-sort-tags nil
-  "*If non-nil, sort tags in the speedbar display.  *Obsolete*."
+  "*If non-nil, sort tags in the speedbar display.  *Obsolete*.
+Use `semantic-tag-hierarchy-method' instead."
   :group 'speedbar
   :type 'boolean)
 
@@ -427,10 +353,10 @@
   (GROUP-NAME-STRING ELT1 ELT2... ELTn)"
   :group 'speedbar
   :type 'hook
-  :options '(speedbar-sort-tag-hierarchy
+  :options '(speedbar-prefix-group-tag-hierarchy
 	     speedbar-trim-words-tag-hierarchy
-	     speedbar-prefix-group-tag-hierarchy
-	     speedbar-simple-group-tag-hierarchy)
+	     speedbar-simple-group-tag-hierarchy
+	     speedbar-sort-tag-hierarchy)
   )
 
 (defcustom speedbar-tag-group-name-minimum-length 4
@@ -460,13 +386,6 @@
   :group 'speedbar
   :type 'integer)
 
-(defcustom speedbar-activity-change-focus-flag nil
-  "*Non-nil means the selected frame will change based on activity.
-Thus, if a file is selected for edit, the buffer will appear in the
-selected frame and the focus will change to that frame."
-  :group 'speedbar
-  :type 'boolean)
-
 (defcustom speedbar-directory-button-trim-method 'span
   "*Indicates how the directory button will be displayed.
 Possible values are:
@@ -493,23 +412,11 @@
 (defcustom speedbar-indentation-width 1
   "*When sub-nodes are expanded, the number of spaces used for indentation."
   :group 'speedbar
-  :version "21.1"
   :type 'integer)
 
 (defcustom speedbar-hide-button-brackets-flag nil
   "*Non-nil means speedbar will hide the brackets around the + or -."
   :group 'speedbar
-  :version "21.1"
-  :type 'boolean)
-
-(defcustom speedbar-use-images (and (or (fboundp 'defimage)
-					(fboundp 'make-image-specifier))
-				    (if (fboundp 'display-graphic-p)
-					(display-graphic-p)
-				      window-system))
-  "*Non-nil if speedbar should display icons."
-  :group 'speedbar
-  :version "21.1"
   :type 'boolean)
 
 (defcustom speedbar-before-popup-hook nil
@@ -517,6 +424,11 @@
   :group 'speedbar
   :type 'hook)
 
+(defcustom speedbar-after-create-hook '(speedbar-frame-reposition-smartly)
+  "*Hooks called before popping up the speedbar frame."
+  :group 'speedbar
+  :type 'hook)
+
 (defcustom speedbar-before-delete-hook nil
   "*Hooks called before deleting the speedbar frame."
   :group 'speedbar
@@ -551,18 +463,18 @@
 (defvar speedbar-vc-indicator "*"
   "Text used to mark files which are currently checked out.
 Other version control systems can be added by examining the function
-`speedbar-vc-path-enable-hook' and `speedbar-vc-in-control-hook'.")
-
-(defcustom speedbar-vc-path-enable-hook nil
-  "*Return non-nil if the current path should be checked for Version Control.
-Functions in this hook must accept one parameter which is the path
+`speedbar-vc-directory-enable-hook' and `speedbar-vc-in-control-hook'.")
+
+(defcustom speedbar-vc-directory-enable-hook nil
+  "*Return non-nil if the current directory should be checked for Version Control.
+Functions in this hook must accept one parameter which is the directory
 being checked."
   :group 'speedbar-vc
   :type 'hook)
 
 (defcustom speedbar-vc-in-control-hook nil
   "*Return non-nil if the specified file is under Version Control.
-Functions in this hook must accept two parameters.  The PATH of the
+Functions in this hook must accept two parameters.  The DIRECTORY of the
 current file, and the FILENAME of the file being checked."
   :group 'speedbar-vc
   :type 'hook)
@@ -573,7 +485,7 @@
 (defcustom speedbar-obj-do-check t
   "*Non-nil check all files in speedbar to see if they have an object file.
 Any file checked out is marked with `speedbar-obj-indicator', and the
-marking is based on `speedbar-obj-alist'."
+marking is based on `speedbar-obj-alist'"
   :group 'speedbar-vc
   :type 'boolean)
 
@@ -586,7 +498,7 @@
 The expression `speedbar-obj-alist' defines who gets tagged.")
 
 (defvar speedbar-obj-alist
-  '(("\\.\\([cpC]\\|cpp\\|cc\\)$" . ".o")
+  '(("\\.\\([cpC]\\|cpp\\|cc\\|cxx\\)$" . ".o")
     ("\\.el$" . ".elc")
     ("\\.java$" . ".class")
     ("\\.f\\(or\\|90\\|77\\)?$" . ".o")
@@ -594,6 +506,14 @@
     ("\\.texi$" . ".info"))
   "Alist of file extensions, and their corresponding object file type.")
 
+(defvar speedbar-ro-to-do-point nil
+  "Local variable maintaining the current read only check position.")
+
+(defvar speedbar-object-read-only-indicator "%"
+  "Indicator to append onto a line if that item is Read Only.")
+
+;; Note: Look for addition place to add indicator lists that
+;; use skip-chars instead of a regular expression.
 (defvar speedbar-indicator-regex
   (concat (regexp-quote speedbar-indicator-separator)
 	  "\\("
@@ -602,6 +522,8 @@
 	  (regexp-quote (car speedbar-obj-indicator))
 	  "\\|"
 	  (regexp-quote (cdr speedbar-obj-indicator))
+	  "\\|"
+	  (regexp-quote speedbar-object-read-only-indicator)
 	  "\\)*")
   "Regular expression used when identifying files.
 Permits stripping of indicator characters from a line.")
@@ -613,7 +535,7 @@
   :group 'speedbar
   :type 'hook)
 
-(defvar speedbar-ignored-modes nil
+(defvar speedbar-ignored-modes '(fundamental-mode)
   "*List of major modes which speedbar will not switch directories for.")
 
 (defun speedbar-extension-list-to-regex (extlist)
@@ -635,29 +557,29 @@
 	    (if regex2 (concat "\\(" regex2 "\\)") "")
 	    "\\)$")))
 
-(defvar speedbar-ignored-path-regexp nil
-  "Regular expression matching paths speedbar will not switch to.
-Created from `speedbar-ignored-path-expressions' with the function
+(defvar speedbar-ignored-directory-regexp nil
+  "Regular expression matching directorys speedbar will not switch to.
+Created from `speedbar-ignored-directory-expressions' with the function
 `speedbar-extension-list-to-regex' (A misnamed function in this case.)
-Use the function `speedbar-add-ignored-path-regexp', or customize the
-variable `speedbar-ignored-path-expressions' to modify this variable.")
-
-(defcustom speedbar-ignored-path-expressions
+Use the function `speedbar-add-ignored-directory-regexp', or customize the
+variable `speedbar-ignored-directory-expressions' to modify this variable.")
+
+(defcustom speedbar-ignored-directory-expressions
   '("[/\\]logs?[/\\]\\'")
   "*List of regular expressions matching directories speedbar will ignore.
-They should included paths to directories which are notoriously very
+They should included directorys to directories which are notoriously very
 large and take a long time to load in.  Use the function
-`speedbar-add-ignored-path-regexp' to add new items to this list after
+`speedbar-add-ignored-directory-regexp' to add new items to this list after
 speedbar is loaded.  You may place anything you like in this list
 before speedbar has been loaded."
   :group 'speedbar
-  :type '(repeat (regexp :tag "Path Regexp"))
+  :type '(repeat (regexp :tag "Directory Regexp"))
   :set (lambda (sym val)
-	 (setq speedbar-ignored-path-expressions val
-	       speedbar-ignored-path-regexp
+	 (setq speedbar-ignored-directory-expressions val
+	       speedbar-ignored-directory-regexp
 	       (speedbar-extension-list-to-regex val))))
 
-(defcustom speedbar-directory-unshown-regexp "^\\(CVS\\|RCS\\|SCCS\\)\\'"
+(defcustom speedbar-directory-unshown-regexp "^\\(CVS\\|RCS\\|SCCS\\|\\..*\\)\\'"
   "*Regular expression matching directories not to show in speedbar.
 They should include commonly existing directories which are not
 useful, such as version control."
@@ -675,8 +597,10 @@
   "*Regexp matching files we don't want displayed in a speedbar buffer.
 It is generated from the variable `completion-ignored-extensions'")
 
-;; Compiler silencing trick.  The real defvar comes later in this file.
-(defvar speedbar-file-regexp)
+(defvar speedbar-file-regexp nil
+  "Regular expression matching files we know how to expand.
+Created from `speedbar-supported-extension-expressions' with the
+function `speedbar-extension-list-to-regex'")
 
 ;; this is dangerous to customize, because the defaults will probably
 ;; change in the future.
@@ -688,7 +612,7 @@
 		;; html is not supported by default, but an imenu tags package
 		;; is available.  Also, html files are nice to be able to see.
 		".s?html"
-		"[Mm]akefile\\(\\.in\\)?")))
+		".ma?k" "[Mm]akefile\\(\\.in\\)?")))
   "*List of regular expressions which will match files supported by tagging.
 Do not prefix the `.' char with a double \\ to quote it, as the period
 will be stripped by a simplified optimizer when compiled into a
@@ -696,28 +620,18 @@
 `speedbar-file-regexp' for use with speedbar.  You should use the
 function `speedbar-add-supported-extension' to add a new extension at
 runtime, or use the configuration dialog to set it in your .emacs
-file."
+file.
+If you add an extension to this list, and it does not appear, you may
+need to also modify `completion-ignored-extension' which will also help
+file completion."
   :group 'speedbar
-  :version "21.1"
   :type '(repeat (regexp :tag "Extension Regexp"))
   :set (lambda (sym val)
-	 (setq speedbar-supported-extension-expressions val
-	       speedbar-file-regexp (speedbar-extension-list-to-regex val))))
-
-(defvar speedbar-file-regexp
-  (speedbar-extension-list-to-regex speedbar-supported-extension-expressions)
-  "Regular expression matching files we know how to expand.
-Created from `speedbar-supported-extension-expression' with the
-function `speedbar-extension-list-to-regex'")
-
-(defcustom speedbar-scan-subdirs nil
-  "*Non-nil means speedbar will check if subdirs are empty.
-That way you don't have to click on them to find out.  But this
-incurs extra I/O, hence it slows down directory display
-proportionally to the number of subdirs."
-  :group 'speedbar
-  :type 'boolean
-  :version 22.1)
+	 (set 'speedbar-supported-extension-expressions val)
+	 (set 'speedbar-file-regexp (speedbar-extension-list-to-regex val))))
+
+(setq speedbar-file-regexp
+      (speedbar-extension-list-to-regex speedbar-supported-extension-expressions))
 
 (defun speedbar-add-supported-extension (extension)
   "Add EXTENSION as a new supported extension for speedbar tagging.
@@ -736,42 +650,41 @@
   (setq speedbar-file-regexp (speedbar-extension-list-to-regex
 			      speedbar-supported-extension-expressions)))
 
-(defun speedbar-add-ignored-path-regexp (path-expression)
-  "Add PATH-EXPRESSION as a new ignored path for speedbar tracking.
-This function will modify `speedbar-ignored-path-regexp' and add
-PATH-EXPRESSION to `speedbar-ignored-path-expressions'."
-  (interactive "sPath regex: ")
-  (if (not (listp path-expression))
-      (setq path-expression (list path-expression)))
-  (while path-expression
-    (if (member (car path-expression) speedbar-ignored-path-expressions)
+(defun speedbar-add-ignored-directory-regexp (directory-expression)
+  "Add DIRECTORY-EXPRESSION as a new ignored directory for speedbar tracking.
+This function will modify `speedbar-ignored-directory-regexp' and add
+DIRECTORY-EXPRESSION to `speedbar-ignored-directory-expressions'."
+  (interactive "sDirectory regex: ")
+  (if (not (listp directory-expression))
+      (setq directory-expression (list directory-expression)))
+  (while directory-expression
+    (if (member (car directory-expression) speedbar-ignored-directory-expressions)
 	nil
-      (setq speedbar-ignored-path-expressions
-	    (cons (car path-expression) speedbar-ignored-path-expressions)))
-    (setq path-expression (cdr path-expression)))
-  (setq speedbar-ignored-path-regexp (speedbar-extension-list-to-regex
-				      speedbar-ignored-path-expressions)))
+      (setq speedbar-ignored-directory-expressions
+	    (cons (car directory-expression) speedbar-ignored-directory-expressions)))
+    (setq directory-expression (cdr directory-expression)))
+  (setq speedbar-ignored-directory-regexp (speedbar-extension-list-to-regex
+				      speedbar-ignored-directory-expressions)))
 
 ;; If we don't have custom, then we set it here by hand.
 (if (not (fboundp 'custom-declare-variable))
     (setq speedbar-file-regexp (speedbar-extension-list-to-regex
 				speedbar-supported-extension-expressions)
-	  speedbar-ignored-path-regexp (speedbar-extension-list-to-regex
-					speedbar-ignored-path-expressions)))
-
-(defvar speedbar-update-flag (and
-			      (or (fboundp 'run-with-idle-timer)
-				  (fboundp 'start-itimer)
-				  (boundp 'post-command-idle-hook))
-			      (if (fboundp 'display-graphic-p)
-				  (display-graphic-p)
-				window-system))
+	  speedbar-ignored-directory-regexp (speedbar-extension-list-to-regex
+					speedbar-ignored-directory-expressions)))
+
+(defvar speedbar-update-flag dframe-have-timer-flag
   "*Non-nil means to automatically update the display.
-When this is nil then speedbar will not follow the attached
-frame's path.  Type \
-\\<speedbar-key-map>\\[speedbar-toggle-updates] in the speedbar \
+When this is nil then speedbar will not follow the attached frame's directory.
+When speedbar is active, use:
+
+\\<speedbar-key-map> `\\[speedbar-toggle-updates]'
+
 to toggle this value.")
 
+(defvar speedbar-update-flag-disable nil
+  "Permanently disable changing of the update flag.")
+
 (defvar speedbar-syntax-table nil
   "Syntax-table used on the speedbar.")
 
@@ -797,10 +710,8 @@
   (suppress-keymap speedbar-key-map t)
 
   ;; control
+  (define-key speedbar-key-map "t" 'speedbar-toggle-updates)
   (define-key speedbar-key-map "g" 'speedbar-refresh)
-  (define-key speedbar-key-map "t" 'speedbar-toggle-updates)
-  (define-key speedbar-key-map "q" 'speedbar-close-frame)
-  (define-key speedbar-key-map "Q" 'delete-frame)
 
   ;; navigation
   (define-key speedbar-key-map "n" 'speedbar-next)
@@ -809,8 +720,9 @@
   (define-key speedbar-key-map "\M-p" 'speedbar-restricted-prev)
   (define-key speedbar-key-map "\C-\M-n" 'speedbar-forward-list)
   (define-key speedbar-key-map "\C-\M-p" 'speedbar-backward-list)
-  (define-key speedbar-key-map " " 'speedbar-scroll-up)
-  (define-key speedbar-key-map [delete] 'speedbar-scroll-down)
+;; These commands never seemed useful.
+;;  (define-key speedbar-key-map " " 'speedbar-scroll-up)
+;;  (define-key speedbar-key-map [delete] 'speedbar-scroll-down)
 
   ;; Short cuts I happen to find useful
   (define-key speedbar-key-map "r"
@@ -824,46 +736,8 @@
     (lambda () (interactive)
       (speedbar-change-initial-expansion-list "files")))
 
-  ;; Overrides
-  (substitute-key-definition 'switch-to-buffer
-			     'speedbar-switch-buffer-attached-frame
-			     speedbar-key-map global-map)
-
-  (if speedbar-xemacsp
-      (progn
-	;; mouse bindings so we can manipulate the items on each line
-	(define-key speedbar-key-map 'button2 'speedbar-click)
-	(define-key speedbar-key-map '(shift button2) 'speedbar-power-click)
-	;; Info doc fix from Bob Weiner
-	(if (featurep 'infodoc)
-	    nil
-	  (define-key speedbar-key-map 'button3 'speedbar-xemacs-popup-kludge))
-	(define-key speedbar-key-map '(meta button3) 'speedbar-mouse-item-info)
-	)
-
-    ;; mouse bindings so we can manipulate the items on each line
-    (define-key speedbar-key-map [down-mouse-1] 'speedbar-double-click)
-    (define-key speedbar-key-map [mouse-2] 'speedbar-click)
-    ;; This is the power click for new frames, or refreshing a cache
-    (define-key speedbar-key-map [S-mouse-2] 'speedbar-power-click)
-    ;; This adds a small unecessary visual effect
-    ;;(define-key speedbar-key-map [down-mouse-2] 'speedbar-quick-mouse)
-    (define-key speedbar-key-map [M-mouse-2] 'speedbar-mouse-item-info)
-
-    (define-key speedbar-key-map [down-mouse-3] 'speedbar-emacs-popup-kludge)
-
-    ;; This lets the user scroll as if we had a scrollbar... well maybe not
-    (define-key speedbar-key-map [mode-line mouse-2] 'speedbar-mouse-hscroll)
-    ;; another handy place users might click to get our menu.
-    (define-key speedbar-key-map [mode-line down-mouse-1]
-      'speedbar-emacs-popup-kludge)
-
-    ;; We can't switch buffers with the buffer mouse menu.  Lets hack it.
-    (define-key speedbar-key-map [C-down-mouse-1] 'speedbar-hack-buffer-menu)
-
-    ;; Lastly, we want to track the mouse.  Play here
-    (define-key speedbar-key-map [mouse-movement] 'speedbar-track-mouse)
-   ))
+  (dframe-update-keymap speedbar-key-map)
+)
 
 (defun speedbar-make-specialized-keymap ()
   "Create a keymap for use with a speedbar major or minor display mode.
@@ -887,6 +761,11 @@
   (define-key speedbar-file-key-map "=" 'speedbar-expand-line)
   (define-key speedbar-file-key-map "-" 'speedbar-contract-line)
 
+  (define-key speedbar-file-key-map "[" 'speedbar-expand-line-descendants)
+  (define-key speedbar-file-key-map "]" 'speedbar-close-line-descendants)
+
+  (define-key speedbar-file-key-map " " 'speedbar-toggle-line-expansion)
+
   ;; file based commands
   (define-key speedbar-file-key-map "U" 'speedbar-up-directory)
   (define-key speedbar-file-key-map "I" 'speedbar-item-info)
@@ -896,6 +775,7 @@
   (define-key speedbar-file-key-map "D" 'speedbar-item-delete)
   (define-key speedbar-file-key-map "O" 'speedbar-item-object-delete)
   (define-key speedbar-file-key-map "R" 'speedbar-item-rename)
+  (define-key speedbar-file-key-map "M" 'speedbar-create-directory)
   )
 
 (defvar speedbar-easymenu-definition-base
@@ -903,6 +783,7 @@
    '("Speedbar"
      ["Update" speedbar-refresh t]
      ["Auto Update" speedbar-toggle-updates
+      :active (not speedbar-update-flag-disable)
       :style toggle :selected speedbar-update-flag])
    (if (and (or (fboundp 'defimage)
 		(fboundp 'make-image-specifier))
@@ -925,6 +806,9 @@
     ["Flush Cache & Expand" speedbar-flush-expand-line
      (save-excursion (beginning-of-line)
 		     (looking-at "[0-9]+: *.\\+. "))]
+    ["Expand All Descendants" speedbar-expand-line-descendants
+     (save-excursion (beginning-of-line)
+		     (looking-at "[0-9]+: *.\\+. ")) ]
     ["Contract File Tags" speedbar-contract-line
      (save-excursion (beginning-of-line)
 		     (looking-at "[0-9]+: *.-. "))]
@@ -944,6 +828,8 @@
      (save-excursion (beginning-of-line) (looking-at "[0-9]+: *\\["))]
     ["Rename File" speedbar-item-rename
      (save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))]
+    ["Create Directory" speedbar-create-directory
+     (save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))]
     ["Delete File" speedbar-item-delete
      (save-excursion (beginning-of-line) (looking-at "[0-9]+: *[[<]"))]
     ["Delete Object" speedbar-item-object-delete
@@ -951,13 +837,15 @@
 		     (looking-at "[0-9]+: *\\[[+-]\\] [^ \n]+ \\*?[!#]$"))]
     )
   "Additional menu items while in file-mode.")
-
+ 
 (defvar speedbar-easymenu-definition-trailer
   (append
    (if (and (featurep 'custom) (fboundp 'custom-declare-variable))
        (list ["Customize..." speedbar-customize t]))
    (list
-    ["Close" speedbar-close-frame t]
+    ["Detach" speedbar-detach (and speedbar-frame
+				    (eq (selected-frame) speedbar-frame)) ]
+    ["Close" dframe-close-frame t]
     ["Quit" delete-frame t] ))
   "Menu items appearing at the end of the speedbar menu.")
 
@@ -972,12 +860,6 @@
   "The frame that was last created, then removed from the display.")
 (defvar speedbar-full-text-cache nil
   "The last open directory is saved in its entirety for ultra-fast switching.")
-(defvar speedbar-timer nil
-  "The speedbar timer used for updating the buffer.")
-(defvar speedbar-attached-frame nil
-  "The frame which started speedbar mode.
-This is the frame from which all data displayed in the speedbar is
-gathered, and in which files and such are displayed.")
 
 (defvar speedbar-last-selected-file nil
   "The last file which was selected in speedbar buffer.")
@@ -997,28 +879,17 @@
 
 ;;; Compatibility
 ;;
-(if (fboundp 'frame-parameter)
-
-    (defalias 'speedbar-frame-parameter 'frame-parameter)
-
-  (defun speedbar-frame-parameter (frame parameter)
-    "Return FRAME's PARAMETER value."
-    (cdr (assoc parameter (frame-parameters frame)))))
-
-(if (fboundp 'make-overlay)
-    (progn
-      (defalias 'speedbar-make-overlay 'make-overlay)
-      (defalias 'speedbar-overlay-put 'overlay-put)
-      (defalias 'speedbar-delete-overlay 'delete-overlay)
-      (defalias 'speedbar-overlay-start 'overlay-start)
-      (defalias 'speedbar-overlay-end 'overlay-end)
-      (defalias 'speedbar-mode-line-update 'force-mode-line-update))
-  (defalias 'speedbar-make-overlay 'make-extent)
-  (defalias 'speedbar-overlay-put 'set-extent-property)
-  (defalias 'speedbar-delete-overlay 'delete-extent)
-  (defalias 'speedbar-overlay-start 'extent-start)
-  (defalias 'speedbar-overlay-end 'extent-end)
-  (defalias 'speedbar-mode-line-update 'redraw-modeline))
+(defalias 'speedbar-make-overlay
+  (if (featurep 'xemacs) 'make-extent 'make-overlay))
+
+(defalias 'speedbar-overlay-put 
+  (if (featurep 'xemacs) 'set-extent-property 'overlay-put))
+
+(defalias 'speedbar-delete-overlay 
+  (if (featurep 'xemacs) 'delete-extent 'delete-overlay))
+
+(defalias 'speedbar-mode-line-update 
+  (if (featurep 'xemacs) 'redraw-modeline 'force-mode-line-update))
 
 ;;; Mode definitions/ user commands
 ;;
@@ -1034,132 +905,97 @@
 `speedbar-before-popup-hook' is called before popping up the speedbar frame.
 `speedbar-before-delete-hook' is called before the frame is deleted."
   (interactive "P")
-  ;; toggle frame on and off.
-  (if (not arg) (if (and (frame-live-p speedbar-frame)
-			 (frame-visible-p speedbar-frame))
-		    (setq arg -1) (setq arg 1)))
-  ;; turn the frame off on neg number
-  (if (and (numberp arg) (< arg 0))
-      (progn
-	(run-hooks 'speedbar-before-delete-hook)
-	(if (and speedbar-frame (frame-live-p speedbar-frame))
-	    (progn
-	      (setq speedbar-cached-frame speedbar-frame)
-	      (make-frame-invisible speedbar-frame)))
-	(setq speedbar-frame nil)
-	(speedbar-set-timer nil)
-	;; Used to delete the buffer.  This has the annoying affect of
-	;; preventing whatever took its place from ever appearing
-	;; as the default after a C-x b was typed
-	;;(if (bufferp speedbar-buffer)
-	;;    (kill-buffer speedbar-buffer))
-	)
-    ;; Set this as our currently attached frame
-    (setq speedbar-attached-frame (selected-frame))
-    (run-hooks 'speedbar-before-popup-hook)
-    ;; Get the frame to work in
-    (if (frame-live-p speedbar-cached-frame)
-	(progn
-	  (setq speedbar-frame speedbar-cached-frame)
-	  (make-frame-visible speedbar-frame)
-	  ;; Get the buffer to play with
-	  (speedbar-mode)
-	  (select-frame speedbar-frame)
-	  (if (not (eq (current-buffer) speedbar-buffer))
-	      (switch-to-buffer speedbar-buffer))
-	  (set-window-dedicated-p (selected-window) t)
-	  (raise-frame speedbar-frame)
-	  (speedbar-set-timer speedbar-update-speed)
-	  )
-      (if (frame-live-p speedbar-frame)
-	  (raise-frame speedbar-frame)
-	(setq speedbar-frame
-	      (if speedbar-xemacsp
-		  ;; Only guess height if it is not specified.
-		  (if (member 'height speedbar-frame-plist)
-		      (make-frame speedbar-frame-plist)
-		    (make-frame (nconc (list 'height
-					     (speedbar-needed-height))
-				       speedbar-frame-plist)))
-		(let* ((mh (speedbar-frame-parameter nil 'menu-bar-lines))
-		       (cfx (speedbar-frame-parameter nil 'left))
-		       (cfy (speedbar-frame-parameter nil 'top))
-		       (cfw (frame-pixel-width))
-		       (params
-			;; Only add a guessed height if one is not specified
-			;; in the input parameters.
-			(if (assoc 'height speedbar-frame-parameters)
-			    speedbar-frame-parameters
-			  (append
-			   speedbar-frame-parameters
-			   (list (cons 'height (+ mh (frame-height)))))))
-		       (frame
-			(if (or (< emacs-major-version 20)
-				(not (eq window-system 'x)))
-			    (make-frame params)
-			  (let ((x-pointer-shape x-pointer-top-left-arrow)
-				(x-sensitive-text-pointer-shape
-				 x-pointer-hand2))
-			    (make-frame params)))))
-		  ;; Position speedbar frame.
-		  (if (or (not window-system) (eq window-system 'pc)
-			  (assoc 'left speedbar-frame-parameters)
-			  (assoc 'top speedbar-frame-parameters))
-		      ;; Do no positioning if not on a windowing system,
-		      ;; or if left/top were specified in the parameters.
-		      frame
-		    (let ((cfx
-			   (if (not (consp cfx))
-			       cfx
-			     ;; If cfx is a list, that means we grow
-			     ;; from a specific edge of the display.
-			     ;; Convert that to the distance from the
-			     ;; left side of the display.
-			     (if (eq (car cfx) '-)
-				 ;; A - means distance from the right edge
-				 ;; of the display, or DW - cfx - framewidth
-				 (- (x-display-pixel-width) (car (cdr cfx))
-				    (frame-pixel-width))
-			       (car (cdr cfx))))))
-		      (modify-frame-parameters
-		       frame
-		       (list
-			(cons
-			 'left
-			 ;; Decide which side to put it
-			 ;; on.  200 is just a buffer
-			 ;; for the left edge of the
-			 ;; screen.  The extra 10 is just
-			 ;; dressings for window decorations.
-			 (let ((sfw (frame-pixel-width frame)))
-			   (let ((left-guess (- cfx 10 sfw))
-				 (right-guess (+ cfx cfw 5)))
-			     (let ((left-margin left-guess)
-				   (right-margin
-				    (- (x-display-pixel-width)
-				       right-guess 5 sfw)))
-			       (cond ((>= left-margin 0) left-guess)
-				     ((>= right-margin 0) right-guess)
-				     ;; otherwise choose side we overlap less
-				     ((> left-margin right-margin) 0)
-				     (t (- (x-display-pixel-width) sfw 5)))))))
-			(cons 'top cfy)))
-		      frame)))))
-	;; reset the selection variable
-	(setq speedbar-last-selected-file nil)
-	;; Put the buffer into the frame
-	(save-window-excursion
-	  ;; Get the buffer to play with
-	  (speedbar-mode)
-	  (select-frame speedbar-frame)
-	  (switch-to-buffer speedbar-buffer)
-	  (set-window-dedicated-p (selected-window) t))
-	(if (and (or (null window-system) (eq window-system 'pc))
-		 (fboundp 'set-frame-name))
-	    (progn
-	      (select-frame speedbar-frame)
-	      (set-frame-name "Speedbar")))
-	(speedbar-set-timer speedbar-update-speed)))))
+  ;; Get the buffer to play with
+  (if (not (buffer-live-p speedbar-buffer))
+      (save-excursion
+	(setq speedbar-buffer (get-buffer-create " SPEEDBAR"))
+	(set-buffer speedbar-buffer)
+	(speedbar-mode)))
+  ;; Do the frame thing
+  (dframe-frame-mode arg
+		     'speedbar-frame
+		     'speedbar-cached-frame
+		     'speedbar-buffer
+		     "Speedbar"
+		     #'speedbar-frame-mode
+		     (if dframe-xemacsp
+			 (append speedbar-frame-plist
+				 ;; This is a hack to get speedbar to iconfiy
+				 ;; with the selected frame.
+				 (list 'parent (selected-frame)))
+		       speedbar-frame-parameters)
+		     speedbar-before-delete-hook
+		     speedbar-before-popup-hook
+		     speedbar-after-create-hook)
+  ;; Start up the timer
+  (if (not speedbar-frame)
+      (speedbar-set-timer nil)
+    (speedbar-reconfigure-keymaps)
+    (speedbar-update-contents)
+    (speedbar-set-timer dframe-update-speed)
+    )
+  ;; Frame modifications
+  (set (make-local-variable 'dframe-delete-frame-function)
+       'speedbar-handle-delete-frame)
+  ;; hscroll
+  (set (make-local-variable 'automatic-hscrolling) nil) ; Emacs 21
+  ;; reset the selection variable
+  (setq speedbar-last-selected-file nil))
+
+(defun speedbar-frame-reposition-smartly ()
+  "Reposition the speedbar frame to be next to the attached frame."
+  (cond ((and dframe-xemacsp
+	      (or (member 'left speedbar-frame-plist)
+		  (member 'top speedbar-frame-plist)))
+	 (dframe-reposition-frame
+	  speedbar-frame
+	  (dframe-attached-frame speedbar-frame)
+	  (cons (car (cdr (member 'left speedbar-frame-plist)))
+		(car (cdr (member 'top speedbar-frame-plist)))))
+	 )
+	((and (not dframe-xemacsp)
+	      (or (assoc 'left speedbar-frame-parameters)
+		  (assoc 'top speedbar-frame-parameters)))
+	 ;; if left/top were specified in the parameters, pass them
+	 ;; down to the reposition function
+	 (dframe-reposition-frame
+	  speedbar-frame
+	  (dframe-attached-frame speedbar-frame)
+	  (cons (cdr (assoc 'left speedbar-frame-parameters))
+		(cdr (assoc 'top  speedbar-frame-parameters))))
+	 )
+	(t
+	 (dframe-reposition-frame speedbar-frame
+				  (dframe-attached-frame speedbar-frame)
+				  'left-right))))
+
+(defun speedbar-detach ()
+  "Detach the current Speedbar from auto-updating.
+Doing this allows the creation of a second speedbar."
+  (interactive)
+  (let ((buffer speedbar-buffer))
+    (dframe-detach 'speedbar-frame 'speedbar-cached-frame 'speedbar-buffer)
+    (save-excursion
+      (set-buffer buffer)
+      ;; Permanently disable auto-updating in this speedbar buffer.
+      (set (make-local-variable 'speedbar-update-flag) nil)
+      (set (make-local-variable 'speedbar-update-flag-disable) t)
+      ;; Make local copies of all the different variables to prevent
+      ;; funny stuff later...
+      )))
+
+(defsubst speedbar-current-frame ()
+  "Return the frame to use for speedbar based on current context."
+  (dframe-current-frame 'speedbar-frame 'speedbar-mode))
+
+(defun speedbar-handle-delete-frame (e)
+  "Handle a delete frame event E.
+If the deleted frame is the frame SPEEDBAR is attached to,
+we need to delete speedbar also."
+  (let ((frame-to-be-deleted (car (car (cdr e)))))
+    (if (eq frame-to-be-deleted dframe-attached-frame)
+	(delete-frame speedbar-frame)))
+  )
 
 ;;;###autoload
 (defun speedbar-get-focus ()
@@ -1167,59 +1003,23 @@
 If the selected frame is not speedbar, then speedbar frame is
 selected.  If the speedbar frame is active, then select the attached frame."
   (interactive)
-  (if (eq (selected-frame) speedbar-frame)
-      (if (frame-live-p speedbar-attached-frame)
-	  (select-frame speedbar-attached-frame))
-    ;; If updates are off, then refresh the frame (they want it now...)
-    (if (not speedbar-update-flag)
-	(let ((speedbar-update-flag t))
-	  (speedbar-timer-fn)))
-    ;; make sure we have a frame
-    (if (not (frame-live-p speedbar-frame)) (speedbar-frame-mode 1))
-    ;; go there
-    (select-frame speedbar-frame)
-    )
-  (other-frame 0))
-
-(defun speedbar-close-frame ()
-  "Turn off a currently active speedbar."
-  (interactive)
-  (speedbar-frame-mode -1)
-  (select-frame speedbar-attached-frame)
-  (other-frame 0))
-
-(defun speedbar-switch-buffer-attached-frame (&optional buffer)
-  "Switch to BUFFER in speedbar's attached frame, and raise that frame.
-This overrides the default behavior of `switch-to-buffer' which is
-broken because of the dedicated speedbar frame."
-  (interactive)
-  ;; Assume we are in the speedbar frame.
-  (speedbar-get-focus)
-  ;; Now switch buffers
-  (if buffer
-      (switch-to-buffer buffer)
-    (call-interactively 'switch-to-buffer nil nil)))
+  (speedbar-reset-scanners)
+  (dframe-get-focus 'speedbar-frame 'speedbar-frame-mode
+		    (lambda () (let ((speedbar-update-flag t))
+				 (speedbar-timer-fn)))))
 
 (defmacro speedbar-frame-width ()
   "Return the width of the speedbar frame in characters.
 nil if it doesn't exist."
-  '(frame-width speedbar-frame))
-
-;; XEmacs function only.
-(defun speedbar-needed-height (&optional frame)
-  "The needed height for the tool bar FRAME (in characters)."
-  (or frame (setq frame (selected-frame)))
-  ;; The 1 is the missing modeline/minibuffer
-  (+ 1 (/ (frame-pixel-height frame)
-	  (face-height 'default frame))))
+  '(window-width (get-buffer-window speedbar-buffer)))
 
 (defun speedbar-mode ()
   "Major mode for managing a display of directories and tags.
 \\<speedbar-key-map>
-The first line represents the default path of the speedbar frame.
+The first line represents the default directory of the speedbar frame.
 Each directory segment is a button which jumps speedbar's default
-directory to that path.  Buttons are activated by clicking `\\[speedbar-click]'.
-In some situations using `\\[speedbar-power-click]' is a `power click' which will
+directory to that directory.  Buttons are activated by clicking `\\[speedbar-click]'.
+In some situations using `\\[dframe-power-click]' is a `power click' which will
 rescan cached items, or pop up new frames.
 
 Each line starting with <+> represents a directory.  Click on the <+>
@@ -1255,7 +1055,6 @@
 \\{speedbar-key-map}"
   ;; NOT interactive
   (save-excursion
-    (setq speedbar-buffer (set-buffer (get-buffer-create " SPEEDBAR")))
     (kill-all-local-variables)
     (setq major-mode 'speedbar-mode)
     (setq mode-name "Speedbar")
@@ -1263,110 +1062,59 @@
     (setq font-lock-keywords nil) ;; no font-locking please
     (setq truncate-lines t)
     (make-local-variable 'frame-title-format)
-    (setq frame-title-format "Speedbar")
-    ;; Set this up special just for the speedbar buffer
-    ;; Terminal minibuffer stuff does not require this.
-    (if (and window-system (not (eq window-system 'pc))
-	     (null default-minibuffer-frame))
-	(progn
-	  (make-local-variable 'default-minibuffer-frame)
-	  (setq default-minibuffer-frame speedbar-attached-frame)))
-    ;; Correct use of `temp-buffer-show-function': Bob Weiner
-    (if (and (boundp 'temp-buffer-show-hook)
-	     (boundp 'temp-buffer-show-function))
-	(progn (make-local-variable 'temp-buffer-show-hook)
-	       (setq temp-buffer-show-hook temp-buffer-show-function)))
-    (make-local-variable 'temp-buffer-show-function)
-    (setq temp-buffer-show-function 'speedbar-temp-buffer-show-function)
-    (if speedbar-xemacsp
-	(progn
-	  ;; Argh!  mouse-track-click-hook doesn't understand the
-	  ;; make-local-hook conventions.
-	  (make-local-variable 'mouse-track-click-hook)
-	  (add-hook 'mouse-track-click-hook
-		    (lambda (event count)
-		      (if (/= (event-button event) 1)
-			  nil		; Do normal operations.
-			(cond ((eq count 1)
-			       (speedbar-quick-mouse event))
-			      ((or (eq count 2)
-				   (eq count 3))
-			       (speedbar-mouse-set-point event)
-			       (speedbar-do-function-pointer)
-			       (speedbar-quick-mouse event)))
-			;; Don't do normal operations.
-			t)))))
-    (add-hook 'kill-buffer-hook (lambda () (let ((skilling (boundp 'skilling)))
-					     (if skilling
-						 nil
-					       (if (eq (current-buffer)
-						       speedbar-buffer)
-						   (speedbar-frame-mode -1)))))
-	      t t)
+    (setq frame-title-format (concat "Speedbar " speedbar-version))
+    (setq case-fold-search nil)
     (toggle-read-only 1)
     (speedbar-set-mode-line-format)
-    (if speedbar-xemacsp
-	(with-no-warnings
-	 (set (make-local-variable 'mouse-motion-handler)
-	      'speedbar-track-mouse-xemacs))
-      (if speedbar-track-mouse-flag
-	  (set (make-local-variable 'track-mouse) t))	;this could be messy.
-      (setq auto-show-mode nil))	;no auto-show for Emacs
-    (run-mode-hooks 'speedbar-mode-hook))
-  (speedbar-update-contents)
+    ;; Add in our dframe hooks.
+    (if speedbar-track-mouse-flag
+	(setq dframe-track-mouse-function #'speedbar-track-mouse))
+    (setq dframe-help-echo-function #'speedbar-item-info
+	  dframe-mouse-click-function #'speedbar-click
+	  dframe-mouse-position-function #'speedbar-position-cursor-on-line)
+    (run-hooks 'speedbar-mode-hook))
   speedbar-buffer)
 
-(defmacro speedbar-with-attached-buffer (&rest forms)
-  "Execute FORMS in the attached frame's special buffer.
-Optionally select that frame if necessary."
-  `(save-selected-window
-     (speedbar-set-timer speedbar-update-speed)
-     (select-frame speedbar-attached-frame)
-     ,@forms
-     (speedbar-maybee-jump-to-attached-frame)))
-
-(defun speedbar-message (fmt &rest args)
+(defmacro speedbar-message (fmt &rest args)
   "Like message, but for use in the speedbar frame.
 Argument FMT is the format string, and ARGS are the arguments for message."
-  (save-selected-window
-    (select-frame speedbar-attached-frame)
-    (apply 'message fmt args)))
-
-(defun speedbar-y-or-n-p (prompt)
+  `(dframe-message ,fmt ,@args))
+
+(defsubst speedbar-y-or-n-p (prompt &optional deleting)
   "Like `y-or-n-p', but for use in the speedbar frame.
-Argument PROMPT is the prompt to use."
-  (save-selected-window
-    (if (and default-minibuffer-frame (not (eq default-minibuffer-frame
-					       speedbar-attached-frame)))
-	(select-frame speedbar-attached-frame))
-    (y-or-n-p prompt)))
-
-(defun speedbar-show-info-under-mouse (&optional event)
-  "Call the info function for the line under the mouse.
-Optional EVENT is currently not used."
-  (let ((pos (mouse-position)))  ; we ignore event until I use it later.
-    (if (equal (car pos) speedbar-frame)
-	(save-excursion
-	  (save-window-excursion
-	    (apply 'set-mouse-position (list (car pos) (cadr pos) (cddr pos)))
-	    (speedbar-item-info))))))
-
+Argument PROMPT is the prompt to use.
+Optional argument DELETING means this is a query that will delete something.
+The variable `speedbar-query-confirmation-method' can cause this to
+return true without a query."
+  (or (and (not deleting)
+	   (eq speedbar-query-confirmation-method 'none-but-delete))
+      (dframe-y-or-n-p prompt)))
+
+(defsubst speedbar-select-attached-frame ()
+  "Select the frame attached to this speedbar."
+  (dframe-select-attached-frame (speedbar-current-frame)))
+
+;; Backwards compatibility
+(defalias 'speedbar-with-attached-buffer 'dframe-with-attached-buffer)
+(defalias 'speedbar-maybee-jump-to-attached-frame 'dframe-maybee-jump-to-attached-frame)
+ 
 (defun speedbar-set-mode-line-format ()
   "Set the format of the mode line based on the current speedbar environment.
 This gives visual indications of what is up.  It EXPECTS the speedbar
 frame and window to be the currently active frame and window."
-  (if (and (frame-live-p speedbar-frame)
-	   (or (not speedbar-xemacsp)
+  (if (and (frame-live-p (speedbar-current-frame))
+	   (or (not dframe-xemacsp)
 	       (with-no-warnings
-		(specifier-instance has-modeline-p))))
-      (save-excursion
+		 (specifier-instance has-modeline-p)))
+	   speedbar-buffer)      (save-excursion
 	(set-buffer speedbar-buffer)
 	(let* ((w (or (speedbar-frame-width) 20))
 	       (p1 "<<")
 	       (p5 ">>")
-	       (p3 (if speedbar-update-flag "SPEEDBAR" "SLOWBAR"))
-	       (blank (- w (length p1) (length p3) (length p5)
-			 (if line-number-mode 4 0)))
+	       (p3 (if speedbar-update-flag "#" "!"))
+	       (p35 (capitalize speedbar-initial-expansion-list-name))
+	       (blank (- w (length p1) (length p3) (length p5) (length p35)
+			 (if line-number-mode 5 1)))
 	       (p2 (if (> blank 0)
 		       (make-string (/ blank 2) ? )
 		     ""))
@@ -1375,7 +1123,7 @@
 		     ""))
 	       (tf
 		(if line-number-mode
-		    (list (concat p1 p2 p3) '(line-number-mode " %3l")
+		    (list (concat p1 p2 p3 " " p35) '(line-number-mode " %3l")
 			  (concat p4 p5))
 		  (list (concat p1 p2 p3 p4 p5)))))
 	  (if (not (equal mode-line-format tf))
@@ -1383,23 +1131,6 @@
 		(setq mode-line-format tf)
 		(speedbar-mode-line-update)))))))
 
-(defun speedbar-temp-buffer-show-function (buffer)
-  "Placed in the variable `temp-buffer-show-function' in `speedbar-mode'.
-If a user requests help using \\[help-command] <Key> the temp BUFFER will be
-redirected into a window on the attached frame."
-  (if speedbar-attached-frame (select-frame speedbar-attached-frame))
-  (pop-to-buffer buffer nil)
-  (other-window -1)
-  ;; Fix for using this hook on some platforms: Bob Weiner
-  (cond ((not speedbar-xemacsp)
-	 (run-hooks 'temp-buffer-show-hook))
-	((fboundp 'run-hook-with-args)
-	 (run-hook-with-args 'temp-buffer-show-hook buffer))
-	((and (boundp 'temp-buffer-show-hook)
-	      (listp temp-buffer-show-hook))
-	 (mapcar (function (lambda (hook) (funcall hook buffer)))
-		 temp-buffer-show-hook))))
-
 (defvar speedbar-previous-menu nil
   "The menu before the last `speedbar-reconfigure-keymaps' was called.")
 
@@ -1413,7 +1144,7 @@
 		 ;; file display mode version
 		 (speedbar-initial-menu)
 	       (save-excursion
-		 (select-frame speedbar-attached-frame)
+		 (dframe-select-attached-frame speedbar-frame)
 		 (if (local-variable-p
 		      'speedbar-easymenu-definition-special
 		      (current-buffer))
@@ -1432,7 +1163,11 @@
 				    (list
 				     'speedbar-change-initial-expansion-list
 				     (car (car alist)))
-				    t)
+				    :style 'radio
+				    :selected
+				    `(string= ,(car (car alist))
+					 speedbar-initial-expansion-list-name)
+				    )
 				   displays))
 			    (setq alist (cdr alist)))
 			  displays)))
@@ -1441,7 +1176,7 @@
 	(localmap (save-excursion
 		    (let ((cf (selected-frame)))
 		      (prog2
-			  (select-frame speedbar-attached-frame)
+			  (dframe-select-attached-frame speedbar-frame)
 			  (if (local-variable-p
 			       'speedbar-special-mode-key-map
 			       (current-buffer))
@@ -1458,129 +1193,51 @@
       (if speedbar-previous-menu (easy-menu-remove speedbar-previous-menu))
       (setq speedbar-previous-menu md)
       ;; Now add the new menu
-      (if (not speedbar-xemacsp)
+      (if (not dframe-xemacsp)
 	  (easy-menu-define speedbar-menu-map (current-local-map)
 			    "Speedbar menu" md)
 	(easy-menu-add md (current-local-map))
-	(set-buffer-menubar (list md))))
+	;; XEmacs-specific:
+	(if (fboundp 'set-buffer-menubar)
+	    (set-buffer-menubar (list md)))))
+
     (run-hooks 'speedbar-reconfigure-keymaps-hook)))
 
 
 ;;; User Input stuff
 ;;
-
-;; XEmacs: this can be implemented using modeline keymaps, but there
-;; is no use, as we have horizontal scrollbar (as the docstring
-;; hints.)
-(defun speedbar-mouse-hscroll (e)
-  "Read a mouse event E from the mode line, and horizontally scroll.
-If the mouse is being clicked on the far left, or far right of the
-mode-line.  This is only useful for non-XEmacs."
-  (interactive "e")
-  (let* ((xp (car (nth 2 (car (cdr e)))))
-	 (cpw (/ (frame-pixel-width)
-		 (frame-width)))
-	 (oc (1+ (/ xp cpw)))
-	 )
-    (cond ((< oc 3)
-	   (scroll-left 2))
-	  ((> oc (- (window-width) 3))
-	   (scroll-right 2))
-	  (t (speedbar-message
-	      "Click on the edge of the modeline to scroll left/right")))
-    ;;(speedbar-message "X: Pixel %d Char Pixels %d On char %d" xp cpw oc)
-    ))
-
 (defun speedbar-customize ()
   "Customize speedbar using the Custom package."
   (interactive)
   (let ((sf (selected-frame)))
-    (select-frame speedbar-attached-frame)
+    (dframe-select-attached-frame speedbar-frame)
     (customize-group 'speedbar)
     (select-frame sf))
-  (speedbar-maybee-jump-to-attached-frame))
+  (dframe-maybee-jump-to-attached-frame))
 
 (defun speedbar-track-mouse (event)
   "For motion EVENT, display info about the current line."
-  (interactive "e")
   (if (not speedbar-track-mouse-flag)
       nil
     (save-excursion
-      (let ((char (nth 1 (car (cdr event)))))
-	(if (not (numberp char))
-	    (speedbar-message nil)
-	  (goto-char char)
-	  ;; (speedbar-message "%S" event)
-	  (speedbar-item-info)
-	  )))))
-
-(defun speedbar-track-mouse-xemacs (event)
-  "For motion EVENT, display info about the current line."
-  (if (functionp (default-value 'mouse-motion-handler))
-      (funcall (default-value 'mouse-motion-handler) event))
-  (if speedbar-track-mouse-flag
-      (save-excursion
-	(save-window-excursion
-	  (condition-case ()
-	      (progn (mouse-set-point event)
-		     ;; Prevent focus-related bugs.
-		     (if (eq major-mode 'speedbar-mode)
-			 (speedbar-item-info)))
-	    (error nil))))))
-
-;; In XEmacs, we make popup menus work on the item over mouse (as
-;; opposed to where the point happens to be.)  We attain this by
-;; temporarily moving the point to that place.
-;;    Hrvoje Niksic <hniksic@srce.hr>
-(defun speedbar-xemacs-popup-kludge (event)
-  "Pop up a menu related to the clicked on item.
-Must be bound to EVENT."
-  (interactive "e")
-  (select-frame speedbar-frame)
-  (save-excursion
-    (goto-char (event-closest-point event))
-    (beginning-of-line)
-    (forward-char (min 5 (- (save-excursion (end-of-line) (point))
-			    (save-excursion (beginning-of-line) (point)))))
-    (popup-mode-menu)
-    ;; Wait for menu to bail out.  `popup-mode-menu' (and other popup
-    ;; menu functions) return immediately.
-    (let (new)
-      (while (not (misc-user-event-p (setq new (next-event))))
-	(dispatch-event new))
-      (dispatch-event new))))
-
-(defun speedbar-emacs-popup-kludge (e)
-  "Pop up a menu related to the clicked on item.
-Must be bound to event E."
-  (interactive "e")
-  (save-excursion
-    (mouse-set-point e)
-    ;; This gets the cursor where the user can see it.
-    (if (not (bolp)) (forward-char -1))
-    (sit-for 0)
-    (mouse-major-mode-menu e nil)))
-
-(defun speedbar-hack-buffer-menu (e)
-  "Control mouse 1 is buffer menu.
-This hack overrides it so that the right thing happens in the main
-Emacs frame, not in the speedbar frame.
-Argument E is the event causing this activity."
-  (interactive "e")
-  (let ((fn (lookup-key global-map (if speedbar-xemacsp
-				              '(control button1)
-				     [C-down-mouse-1])))
-	(newbuff nil))
-    (unwind-protect
+      (save-window-excursion
+	(condition-case nil
+	    (progn
+	      (mouse-set-point event)
+	      (if (eq major-mode 'speedbar-mode)
+		  ;; XEmacs may let us get in here in other mode buffers.
+		  (speedbar-item-info)))
+	  (t (speedbar-message nil)))))))
+
+(defun speedbar-show-info-under-mouse ()
+  "Call the info function for the line under the mouse.
+Optional EVENT is currently not used."
+  (let ((pos (mouse-position)))	; we ignore event until I use it later.
+    (if (equal (car pos) speedbar-frame)
 	(save-excursion
-	  (set-window-dedicated-p (selected-window) nil)
-	  (call-interactively fn)
-	  (setq newbuff (current-buffer)))
-      (switch-to-buffer speedbar-buffer)
-      (set-window-dedicated-p (selected-window) t))
-    (if (not (eq newbuff speedbar-buffer))
-	(speedbar-with-attached-buffer
-	 (switch-to-buffer newbuff)))))
+	  (save-window-excursion
+	    (apply 'set-mouse-position pos)
+	    (speedbar-item-info))))))
 
 (defun speedbar-next (arg)
   "Move to the next ARGth line in a speedbar buffer."
@@ -1602,16 +1259,16 @@
   ;; First find the extent for which we are allowed to move.
   (let ((depth (save-excursion (beginning-of-line)
 			       (if (looking-at "[0-9]+:")
-				   (string-to-int (match-string 0))
+				   (string-to-number (match-string 0))
 				 0)))
-	(crement (if (< arg 0) 1 -1)) ; decrement or increment
+	(crement (if (< arg 0) 1 -1))	; decrement or increment
 	(lastmatch (point)))
     (while (/= arg 0)
       (forward-line (- crement))
       (let ((subdepth (save-excursion (beginning-of-line)
-			       (if (looking-at "[0-9]+:")
-				   (string-to-int (match-string 0))
-				 0))))
+				      (if (looking-at "[0-9]+:")
+					  (string-to-number (match-string 0))
+					0))))
 	(cond ((or (< subdepth depth)
 		   (progn (end-of-line) (eobp))
 		   (progn (beginning-of-line) (bobp)))
@@ -1632,7 +1289,6 @@
   (speedbar-restricted-move (or arg 1))
   (speedbar-item-info))
 
-
 (defun speedbar-restricted-prev (arg)
   "Move to the previous ARGth line in a speedbar buffer at the same depth.
 This means that movement is restricted to a subnode, and that siblings
@@ -1691,11 +1347,14 @@
 
 ;;; Speedbar file activity (aka creeping featurism)
 ;;
-(defun speedbar-refresh ()
-  "Refresh the current speedbar display, disposing of any cached data."
-  (interactive)
+(defun speedbar-refresh (&optional arg)
+  "Refresh the current speedbar display, disposing of any cached data.
+Argument ARG represents to force a refresh past any caches that may exist."
+  (interactive "P")
   (let ((dl speedbar-shown-directories)
+	(dframe-power-click arg)
 	deactivate-mark)
+    ;; We need to hack something so this works in detached frames.
     (while dl
       (adelete 'speedbar-directory-contents-alist (car dl))
       (setq dl (cdr dl)))
@@ -1704,7 +1363,7 @@
     (speedbar-update-contents)
     (speedbar-stealthy-updates)
     ;; Reset the timer in case it got really hosed for some reason...
-    (speedbar-set-timer speedbar-update-speed)
+    (speedbar-set-timer dframe-update-speed)
     (if (<= 1 speedbar-verbosity-level)
 	(speedbar-message "Refreshing speedbar...done"))))
 
@@ -1727,7 +1386,7 @@
 	(sf (selected-frame)))
     (if (and (file-exists-p f) (string-match "\\.el\\'" f))
 	(progn
-	  (select-frame speedbar-attached-frame)
+	  (dframe-select-attached-frame speedbar-frame)
 	  (byte-compile-file f nil)
 	  (select-frame sf)
 	  (speedbar-reset-scanners)))
@@ -1779,13 +1438,22 @@
     (beginning-of-line)
     (if (re-search-forward " [-+=]?> \\([^\n]+\\)"
 			   (save-excursion(end-of-line)(point)) t)
-	(let ((tag (match-string 1))
+       (let* ((tag (match-string 1))
 	      (attr (speedbar-line-token))
-	      (item nil))
-	  (if (and (featurep 'semantic) (semantic-token-p attr))
-	      (speedbar-message (semantic-summerize-nonterminal attr))
+	      (item nil)
+	      (semantic-tagged (if (fboundp 'semantic-tag-p)
+				   (semantic-tag-p attr))))
+	  (if semantic-tagged
+	    (with-no-warnings
+	      (save-excursion
+		(when (and (semantic-tag-overlay attr)
+			   (semantic-tag-buffer attr))
+		  (set-buffer (semantic-tag-buffer attr)))
+		(speedbar-message
+		 (funcall semantic-sb-info-format-tag-function attr)
+		 )))
 	    (looking-at "\\([0-9]+\\):")
-	    (setq item (file-name-nondirectory (speedbar-line-path)))
+	    (setq item (file-name-nondirectory (speedbar-line-directory)))
 	    (speedbar-message "Tag: %s  in %s" tag item)))
       (if (re-search-forward "{[+-]} \\([^\n]+\\)$"
 			     (save-excursion(end-of-line)(point)) t)
@@ -1793,27 +1461,32 @@
 	(if (re-search-forward " [+-]?[()|@] \\([^\n]+\\)$" nil t)
 	    (let* ((detailtext (match-string 1))
 		   (detail (or (speedbar-line-token) detailtext))
-		  (parent (save-excursion
-			    (beginning-of-line)
-			    (let ((dep (if (looking-at "[0-9]+:")
-					   (1- (string-to-int (match-string 0)))
-					 0)))
-			      (re-search-backward (concat "^"
-							   (int-to-string dep)
-							   ":")
-						  nil t))
-			    (if (looking-at "[0-9]+: +[-+=>]> \\([^\n]+\\)$")
-				(speedbar-line-token)
-			      nil))))
-	      (if (and (featurep 'semantic) (semantic-token-p detail))
-		  (speedbar-message
-		   (semantic-summerize-nonterminal detail parent))
+		   (parent (save-excursion
+			     (beginning-of-line)
+			     (let ((dep (if (looking-at "[0-9]+:")
+					    (1- (string-to-number (match-string 0)))
+					  0)))
+			       (re-search-backward (concat "^"
+			       (int-to-string dep)
+			       ":")
+						   nil t))
+			     (if (looking-at "[0-9]+: +[-+=>]> \\([^\n]+\\)$")
+				 (speedbar-line-token)
+			       nil))))
+	      (if (featurep 'semantic)
+		  (with-no-warnings
+		    (if (semantic-tag-p detail)
+			(speedbar-message
+			 (funcall semantic-sb-info-format-tag-function detail parent))
+		      (if parent
+			  (speedbar-message "Detail: %s of tag %s" detail
+					    (if (semantic-tag-p parent)
+						(semantic-format-tag-name parent nil t)
+					      parent))
+			(speedbar-message "Detail: %s" detail))))
+		;; Not using `semantic':
 		(if parent
-		    (speedbar-message "Detail: %s of tag %s" detail
-				      (if (and (featurep 'semantic)
-					       (semantic-token-p parent))
-					  (semantic-token-name parent)
-					parent))
+		    (speedbar-message "Detail: %s of tag %s" detail parent)
 		  (speedbar-message "Detail: %s" detail))))
 	  nil)))))
 
@@ -1845,7 +1518,8 @@
 			  (if (string-match "[/\\]$" rt) "" "/")
 			  (file-name-nondirectory f))))
 	(if (or (not (file-exists-p rt))
-		(speedbar-y-or-n-p (format "Overwrite %s with %s? " rt f)))
+		(speedbar-y-or-n-p (format "Overwrite %s with %s? " rt f)
+				   t))
 	    (progn
 	      (copy-file f rt t t)
 	      ;; refresh display if the new place is currently displayed.
@@ -1874,7 +1548,8 @@
 			    (if (string-match "[/\\]\\'" rt) "" "/")
 			    (file-name-nondirectory f))))
 	  (if (or (not (file-exists-p rt))
-		  (speedbar-y-or-n-p (format "Overwrite %s with %s? " rt f)))
+		  (speedbar-y-or-n-p (format "Overwrite %s with %s? " rt f)
+				     t))
 	      (progn
 		(rename-file f rt t)
 		;; refresh display if the new place is currently displayed.
@@ -1885,12 +1560,27 @@
 		      )))))
       (error "Not a file"))))
 
+(defun speedbar-create-directory ()
+  "Create a directory in speedbar."
+  (interactive)
+  (let ((f (speedbar-line-file)))
+    (if f
+	(let* ((basedir (file-name-directory f))
+	       (nd (read-file-name "Create directory: "
+				   basedir)))
+	  ;; Make the directory
+	  (make-directory nd t)
+	  (speedbar-refresh)
+	  (speedbar-goto-this-file nd)
+	  )
+      (error "Not a file"))))
+
 (defun speedbar-item-delete ()
   "Delete the item under the cursor.  Files are removed from disk."
   (interactive)
   (let ((f (speedbar-line-file)))
     (if (not f) (error "Not a file"))
-    (if (speedbar-y-or-n-p (format "Delete %s? " f))
+    (if (speedbar-y-or-n-p (format "Delete %s? " f) t)
 	(progn
 	  (if (file-directory-p f)
 	      (delete-directory f)
@@ -1915,7 +1605,7 @@
       (setq oa (cdr oa)))
     (setq obj (concat (file-name-sans-extension f) (cdr (car oa))))
     (if (and oa (file-exists-p obj)
-	     (speedbar-y-or-n-p (format "Delete %s? " obj)))
+	     (speedbar-y-or-n-p (format "Delete %s? " obj) t))
 	(progn
 	  (delete-file obj)
 	  (speedbar-reset-scanners)))))
@@ -1925,7 +1615,7 @@
   (interactive)
   (setq speedbar-update-flag t)
   (speedbar-set-mode-line-format)
-  (speedbar-set-timer speedbar-update-speed))
+  (speedbar-set-timer dframe-update-speed))
 
 (defun speedbar-disable-update ()
   "Disable automatic updating and stop consuming resources."
@@ -1942,13 +1632,14 @@
     (speedbar-enable-update)))
 
 (defun speedbar-toggle-images ()
-  "Toggle images for the speedbar frame."
+  "Toggle use of images in the speedbar frame.
+Images are not available in Emacs 20 or earlier."
   (interactive)
   (setq speedbar-use-images (not speedbar-use-images))
   (speedbar-refresh))
 
 (defun speedbar-toggle-sorting ()
-  "Toggle sorting for the speedbar frame."
+  "Toggle tag sorting."
   (interactive)
   (setq speedbar-sort-tags (not speedbar-sort-tags)))
 
@@ -1957,61 +1648,6 @@
   (interactive)
   (setq speedbar-show-unknown-files (not speedbar-show-unknown-files))
   (speedbar-refresh))
-
-;;; Utility functions
-;;
-(defun speedbar-set-timer (timeout)
-  "Apply a timer with TIMEOUT, or remove a timer if TIMEOUT is nil.
-TIMEOUT is the number of seconds until the speedbar timer is called
-again.  When TIMEOUT is nil, turn off all timeouts.
-This function will also enable or disable the `vc-checkin-hook' used
-to track file check ins, and will change the mode line to match
-`speedbar-update-flag'."
-  (cond
-   ;; XEmacs
-   (speedbar-xemacsp
-    (if speedbar-timer
-	(progn (delete-itimer speedbar-timer)
-	       (setq speedbar-timer nil)))
-    (if timeout
-	(if (and speedbar-xemacsp
-		 (or (>= emacs-major-version 20)
-		     (>= emacs-minor-version 15)))
-	    (setq speedbar-timer (start-itimer "speedbar"
-					       'speedbar-timer-fn
-					       timeout
-					       timeout
-					       t))
-	  (setq speedbar-timer (start-itimer "speedbar"
-					     'speedbar-timer-fn
-					     timeout
-					     nil)))))
-   ;; Post 19.31 Emacs
-   ((fboundp 'run-with-idle-timer)
-    (if speedbar-timer
-	(progn (cancel-timer speedbar-timer)
-	       (setq speedbar-timer nil)))
-    (if timeout
-	(setq speedbar-timer
-	      (run-with-idle-timer timeout t 'speedbar-timer-fn))))
-   ;; Emacs 19.30 (Thanks twice: ptype@dra.hmg.gb)
-   ((fboundp 'post-command-idle-hook)
-    (if timeout
-	(add-hook 'post-command-idle-hook 'speedbar-timer-fn)
-      (remove-hook 'post-command-idle-hook 'speedbar-timer-fn)))
-   ;; Older or other Emacsen with no timers.  Set up so that its
-   ;; obvious this emacs can't handle the updates
-   (t
-    (setq speedbar-update-flag nil)))
-  ;; Apply a revert hook that will reset the scanners.  We attach to revert
-  ;; because most reverts occur during VC state change, and this lets our
-  ;; VC scanner fix itself.
-  (if timeout
-      (add-hook 'after-revert-hook 'speedbar-reset-scanners)
-    (remove-hook 'after-revert-hook 'speedbar-reset-scanners)
-    )
-  ;; change this if it changed for some reason
-  (speedbar-set-mode-line-format))
 
 (defmacro speedbar-with-writable (&rest forms)
   "Allow the buffer to be writable and evaluate FORMS."
@@ -2019,14 +1655,6 @@
 	(cons 'progn forms)))
 (put 'speedbar-with-writable 'lisp-indent-function 0)
 
-(defun speedbar-select-window (buffer)
-  "Select a window in which BUFFER is shown.
-If it is not shown, force it to appear in the default window."
-  (let ((win (get-buffer-window buffer speedbar-attached-frame)))
-    (if win
-	(select-window win)
-      (set-window-buffer (selected-window) buffer))))
-
 (defun speedbar-insert-button (text face mouse function
 				    &optional token prevline)
   "Insert TEXT as the next logical speedbar button.
@@ -2053,13 +1681,30 @@
     (put-text-property start (point) 'invisible nil)
     (put-text-property start (point) 'mouse-face nil)))
 
+(defun speedbar-insert-separator (text)
+  "Insert a separation label of TEXT.
+Separators are not active, have no labels, depth, or actions."
+  (if speedbar-use-images
+      (let ((start (point)))
+	(insert "//")
+	(speedbar-insert-image-button-maybe start 2)))
+  (let ((start (point)))
+    (insert text "\n")
+    (speedbar-make-button start (point)
+			  'speedbar-separator-face
+			  nil nil nil)))
+
 (defun speedbar-make-button (start end face mouse function &optional token)
   "Create a button from START to END, with FACE as the display face.
 MOUSE is the mouse face.  When this button is clicked on FUNCTION
-will be run with the TOKEN parameter (any Lisp object)."
+will be run with the TOKEN parameter (any Lisp object)"
   (put-text-property start end 'face face)
   (put-text-property start end 'mouse-face mouse)
+  (if speedbar-use-tool-tips-flag
+      (put-text-property start end 'help-echo #'dframe-help-echo))
   (put-text-property start end 'invisible nil)
+  (put-text-property start end 'speedbar-text
+		     (buffer-substring-no-properties start end))
   (if function (put-text-property start end 'speedbar-function function))
   (if token (put-text-property start end 'speedbar-token token))
   ;; So far the only text we have is less that 3 chars.
@@ -2116,8 +1761,10 @@
   (setq speedbar-previously-used-expansion-list-name
 	speedbar-initial-expansion-list-name
 	speedbar-initial-expansion-list-name new-default)
-  (speedbar-refresh)
-  (speedbar-reconfigure-keymaps))
+  (if (and (speedbar-current-frame) (frame-live-p (speedbar-current-frame)))
+      (progn
+	(speedbar-refresh)
+	(speedbar-reconfigure-keymaps))))
 
 (defun speedbar-fetch-replacement-function (function)
   "Return a current mode specific replacement for function, or nil.
@@ -2199,26 +1846,30 @@
   (setq directory (expand-file-name directory))
   ;; If in powerclick mode, then the directory we are getting
   ;; should be rescanned.
-  (if speedbar-power-click
+  (if dframe-power-click
       (adelete 'speedbar-directory-contents-alist directory))
   ;; find the directory, either in the cache, or build it.
   (or (cdr-safe (assoc directory speedbar-directory-contents-alist))
       (let ((default-directory directory)
-	    (case-fold-search read-file-name-completion-ignore-case)
-	    dirs files)
-	(dolist (file (directory-files directory nil))
-	  (or (string-match speedbar-file-unshown-regexp file)
-	      (string-match speedbar-directory-unshown-regexp file)
-	      (if (file-directory-p file)
-		  (setq dirs (cons file dirs))
-		(setq files (cons file files)))))
-	(let ((nl `(,(nreverse dirs) ,(nreverse files))))
+	    (dir (directory-files directory nil))
+	    (dirs nil)
+	    (files nil))
+	(while dir
+	  (if (not
+	       (or (string-match speedbar-file-unshown-regexp (car dir))
+		   (string-match speedbar-directory-unshown-regexp (car dir))))
+	      (if (file-directory-p (car dir))
+		  (setq dirs (cons (car dir) dirs))
+		(setq files (cons (car dir) files))))
+	  (setq dir (cdr dir)))
+	(let ((nl (cons (nreverse dirs) (list (nreverse files)))))
 	  (aput 'speedbar-directory-contents-alist directory nl)
-	  nl))))
+	  nl))
+      ))
 
 (defun speedbar-directory-buttons (directory index)
   "Insert a single button group at point for DIRECTORY.
-Each directory path part is a different button.  If part of the path
+Each directory directory part is a different button.  If part of the directory
 matches the user directory ~, then it is replaced with a ~.
 INDEX is not used, but is required by the caller."
   (let* ((tilde (expand-file-name "~/"))
@@ -2294,8 +1945,9 @@
 This is the button that expands or contracts a node (if applicable),
 and EXP-BUTTON-CHAR the character in it (+, -, ?, etc).  EXP-BUTTON-FUNCTION
 is the function to call if it's clicked on.  Button types are
-'bracket, 'angle, 'curly, or nil.  EXP-BUTTON-DATA is extra data
-attached to the text forming the expansion button.
+'bracket, 'angle, 'curly, 'expandtag, 'statictag, t, or nil.
+EXP-BUTTON-DATA is extra data attached to the text forming the expansion
+button.
 
 Next, TAG-BUTTON is the text of the tag.  TAG-BUTTON-FUNCTION is the
 function to call if clicked on, and TAG-BUTTON-DATA is the data to
@@ -2317,11 +1969,14 @@
     (let* ((exp-button (cond ((eq exp-button-type 'bracket) "[%c]")
 			     ((eq exp-button-type 'angle) "<%c>")
 			     ((eq exp-button-type 'curly) "{%c}")
+			     ((eq exp-button-type 'expandtag) " %c>")
+			     ((eq exp-button-type 'statictag) " =>")
 			     (t ">")))
 	   (buttxt (format exp-button exp-button-char))
 	   (start (point))
 	   (end (progn (insert buttxt) (point)))
-	   (bf (if exp-button-type 'speedbar-button-face nil))
+	   (bf (if (and exp-button-type (not (eq exp-button-type 'statictag)))
+		   'speedbar-button-face nil))
 	   (mf (if exp-button-function 'speedbar-highlight-face nil))
 	   )
       (speedbar-make-button start end bf mf exp-button-function exp-button-data)
@@ -2340,7 +1995,7 @@
 			    (if tag-button-function 'speedbar-highlight-face nil)
 			    tag-button-function tag-button-data))
     ))
-
+  
 (defun speedbar-change-expand-button-char (char)
   "Change the expansion button character to CHAR for the current line."
   (save-excursion
@@ -2348,50 +2003,45 @@
     (if (re-search-forward ":\\s-*.\\([-+?]\\)" (save-excursion (end-of-line)
 								(point)) t)
 	(speedbar-with-writable
-	  (goto-char (match-beginning 1))
-	  (delete-char 1)
+	  (goto-char (match-end 1))
 	  (insert-char char 1 t)
-	  (put-text-property (point) (1- (point)) 'invisible nil)
+	  (forward-char -1)
+	  (delete-char -1)
+	  ;;(put-text-property (point) (1- (point)) 'invisible nil)
 	  ;; make sure we fix the image on the text here.
-	  (speedbar-insert-image-button-maybe (- (point) 2) 3)))))
+	  (speedbar-insert-image-button-maybe (- (point) 1) 3)))))
 
 
 ;;; Build button lists
 ;;
-(defun speedbar-insert-files-at-point (files level directory)
+(defun speedbar-insert-files-at-point (files level)
   "Insert list of FILES starting at point, and indenting all files to LEVEL.
 Tag expandable items with a +, otherwise a ?.  Don't highlight ? as we
 don't know how to manage them.  The input parameter FILES is a cons
 cell of the form ( 'DIRLIST .  'FILELIST )."
   ;; Start inserting all the directories
-  (dolist (dir (car files))
-    (if (if speedbar-scan-subdirs
-	    (condition-case nil
-		(let ((l (speedbar-file-lists (concat directory dir))))
-		  (or (car l) (cadr l)))
-	      (file-error))
-	  (file-readable-p (concat directory dir)))
-	(speedbar-make-tag-line 'angle ?+ 'speedbar-dired dir
-				dir 'speedbar-dir-follow nil
-				'speedbar-directory-face level)
-      (speedbar-make-tag-line 'angle ?  nil dir
-			      dir 'speedbar-dir-follow nil
-			      'speedbar-directory-face level)))
-  (let ((case-fold-search read-file-name-completion-ignore-case))
-    (dolist (file (cadr files))
-      (let* ((known (and (file-readable-p (concat directory file))
-			 (string-match speedbar-file-regexp file)))
+  (let ((dirs (car files)))
+    (while dirs
+      (speedbar-make-tag-line 'angle ?+ 'speedbar-dired (car dirs)
+			      (car dirs) 'speedbar-dir-follow nil
+			      'speedbar-directory-face level)
+      (setq dirs (cdr dirs))))
+  (let ((lst (car (cdr files)))
+	(case-fold-search t))
+    (while lst
+      (let* ((known (string-match speedbar-file-regexp (car lst)))
 	     (expchar (if known ?+ ??))
 	     (fn (if known 'speedbar-tag-file nil)))
 	(if (or speedbar-show-unknown-files (/= expchar ??))
-	    (speedbar-make-tag-line 'bracket expchar fn file
-				    file 'speedbar-find-file nil
-				    'speedbar-file-face level))))))
+	    (speedbar-make-tag-line 'bracket expchar fn (car lst)
+				    (car lst) 'speedbar-find-file nil
+				    'speedbar-file-face level)))
+      (setq lst (cdr lst)))))
 
 (defun speedbar-default-directory-list (directory index)
   "Insert files for DIRECTORY with level INDEX at point."
-  (speedbar-insert-files-at-point
-   (speedbar-file-lists directory) index directory)
+  (speedbar-insert-files-at-point 
+   (speedbar-file-lists directory) index)
   (speedbar-reset-scanners)
   (if (= index 0)
       ;; If the shown files variable has extra directories, then
@@ -2412,12 +2062,63 @@
 		      (speedbar-do-function-pointer)))))
 	  (setq sf (cdr sf)))
 	)))
+;;; Generic List support
+;;
+;;  Generic lists are hierarchies of tags which we may need to permute
+;;  in order to make it look nice.
+;;
+;;  A generic list is of the form:
+;;  ( ("name" . marker-or-number)              <-- one tag at this level
+;;    ("name" ("name" . mon) ("name" . mon) )  <-- one group of tags
+;;    ("name" mon ("name" . mon) )             <-- group w/ a position and tags
+(defun speedbar-generic-list-group-p (sublst)
+  "Non-nil if SUBLST is a group.
+Groups may optionally contain a position."
+  (and (stringp (car-safe sublst))
+       (or (and (listp (cdr-safe sublst))
+		(or (speedbar-generic-list-tag-p (car-safe (cdr-safe sublst)))
+		    (speedbar-generic-list-group-p (car-safe (cdr-safe sublst))
+						   )))
+	   (and (number-or-marker-p (car-safe (cdr-safe sublst)))
+		(listp (cdr-safe (cdr-safe sublst)))
+		(speedbar-generic-list-tag-p
+		 (car-safe (cdr-safe (cdr-safe sublst)))))
+	   )))
+
+(defun speedbar-generic-list-positioned-group-p (sublst)
+  "Non-nil of SUBLST is a group with a position."
+  (and (stringp (car-safe sublst))
+       (number-or-marker-p (car-safe (cdr-safe sublst)))
+       (listp (cdr-safe (cdr-safe sublst)))
+       (let ((rest (car-safe (cdr-safe (cdr-safe sublst)))))
+	 (or (speedbar-generic-list-tag-p rest)
+	     (speedbar-generic-list-group-p rest)
+	     (speedbar-generic-list-positioned-group-p rest)
+	     ))))
+
+(defun speedbar-generic-list-tag-p (sublst)
+  "Non nil if SUBLST is a tag."
+  (and (stringp (car-safe sublst))
+       (or (and (number-or-marker-p (cdr-safe sublst))
+		(not (cdr-safe (cdr-safe sublst))))
+	   ;; For semantic/bovine items, this is needed
+	   (symbolp (car-safe (cdr-safe sublst))))
+       ))
 
 (defun speedbar-sort-tag-hierarchy (lst)
   "Sort all elements of tag hierarchy LST."
   (sort (copy-alist lst)
 	(lambda (a b) (string< (car a) (car b)))))
 
+(defun speedbar-try-completion (string alist)
+  "A wrapper for `try-completion'.
+Passes STRING and ALIST to `try-completion' if ALIST
+passes some tests."
+  (if (and (listp alist) (not (null alist))
+	   (listp (car alist)) (stringp (car (car alist))))
+      (try-completion string alist)
+    nil))
+
 (defun speedbar-prefix-group-tag-hierarchy (lst)
   "Prefix group names for tag hierarchy LST."
   (let ((newlst nil)
@@ -2430,133 +2131,134 @@
 	(num-shorts-grouped 0)
 	(bins (make-vector 256 nil))
 	(diff-idx 0))
-    ;; Break out sub-lists
-    (while lst
-      (if (and (listp (cdr-safe (car-safe lst)))
-	       ;; This one is for bovine tokens
-	       (not (symbolp (car-safe (cdr-safe (car-safe lst))))))
-	  (setq newlst (cons (car lst) newlst))
-	(setq sublst (cons (car lst) sublst)))
-      (setq lst (cdr lst)))
-    ;; Reverse newlst because it was made backwards.
-    ;; Sublist doesn't need reversing because the act
-    ;; of binning things will reverse it for us.
-    (setq newlst (nreverse newlst))
-    ;; Now, first find out how long our list is.  Never let a
-    ;; list get-shorter than our minimum.
-    (if (<= (length sublst) speedbar-tag-split-minimum-length)
-	(setq work-list (nreverse sublst))
-      (setq diff-idx (length (try-completion "" sublst)))
-      ;; Sort the whole list into bins.
-      (while sublst
-	(let ((e (car sublst))
-	      (s (car (car sublst))))
-	  (cond ((<= (length s) diff-idx)
-		 ;; 0 storage bin for shorty.
-		 (aset bins 0 (cons e (aref bins 0))))
-		(t
-		 ;; stuff into a bin based on ascii value at diff
-		 (aset bins (aref s diff-idx)
-		       (cons e (aref bins (aref s diff-idx)))))))
-	(setq sublst (cdr sublst)))
-      ;; Go through all our bins  Stick singles into our
-      ;; junk-list, everything else as sublsts in work-list.
-      ;; If two neighboring lists are both small, make a grouped
-      ;; group combinding those two sub-lists.
-      (setq diff-idx 0)
-      (while (> 256 diff-idx)
-	(let ((l (nreverse;; Reverse the list since they are stuck in
-		  ;; backwards.
-		  (aref bins diff-idx))))
-	  (if l
-	      (let ((tmp (cons (try-completion "" l) l)))
-		(if (or (> (length l) speedbar-tag-regroup-maximum-length)
-			(> (+ (length l) (length short-group-list))
-			   speedbar-tag-split-minimum-length))
-		    (progn
-		      ;; We have reached a longer list, so we
-		      ;; must finish off a grouped group.
-		      (cond
-		       ((and short-group-list
-			     (= (length short-group-list)
-				num-shorts-grouped))
-			;; All singles?  Junk list
-			(setq junk-list (append short-group-list
-						junk-list)))
-		       ((= num-shorts-grouped 1)
-			;; Only one short group?  Just stick it in
-			;; there by itself.  Make a group, and find
-			;; a subexpression
-			(let ((subexpression (try-completion
-					      "" short-group-list)))
-			  (if (< (length subexpression)
-				 speedbar-tag-group-name-minimum-length)
-			      (setq subexpression
-				    (concat short-start-name
-					    " ("
-					    (substring
-					     (car (car short-group-list))
-					     (length short-start-name))
-					    ")")))
+    (if (<= (length lst) speedbar-tag-regroup-maximum-length)
+	;; Do nothing.  Too short to bother with.
+	lst
+      ;; Break out sub-lists
+      (while lst
+	(if (speedbar-generic-list-group-p (car-safe lst))
+	    (setq newlst (cons (car lst) newlst))
+	  (setq sublst (cons (car lst) sublst)))
+	(setq lst (cdr lst)))
+      ;; Reverse newlst because it was made backwards.
+      ;; Sublist doesn't need reversing because the act
+      ;; of binning things will reverse it for us.
+      (setq newlst (nreverse newlst)
+	    sublst sublst)
+      ;; Now, first find out how long our list is.  Never let a
+      ;; list get-shorter than our minimum.
+      (if (<= (length sublst) speedbar-tag-split-minimum-length)
+	  (setq work-list sublst)
+	(setq diff-idx (length (speedbar-try-completion "" sublst)))
+	;; Sort the whole list into bins.
+	(while sublst
+	  (let ((e (car sublst))
+		(s (car (car sublst))))
+	    (cond ((<= (length s) diff-idx)
+		   ;; 0 storage bin for shorty.
+		   (aset bins 0 (cons e (aref bins 0))))
+		  (t
+		   ;; stuff into a bin based on ascii value at diff
+		   (aset bins (aref s diff-idx)
+			 (cons e (aref bins (aref s diff-idx)))))))
+	  (setq sublst (cdr sublst)))
+	;; Go through all our bins  Stick singles into our
+	;; junk-list, everything else as sublsts in work-list.
+	;; If two neighboring lists are both small, make a grouped
+	;; group combinding those two sub-lists.
+	(setq diff-idx 0)
+	(while (> 256 diff-idx)
+	  ;; The bins contents are currently in forward order.
+	  (let ((l (aref bins diff-idx)))
+	    (if l
+		(let ((tmp (cons (speedbar-try-completion "" l) l)))
+		  (if (or (> (length l) speedbar-tag-regroup-maximum-length)
+			  (> (+ (length l) (length short-group-list))
+			     speedbar-tag-split-minimum-length))
+		      (progn
+			;; We have reached a longer list, so we
+			;; must finish off a grouped group.
+			(cond
+			 ((and short-group-list
+			       (= (length short-group-list)
+				  num-shorts-grouped))
+			  ;; All singles?  Junk list
+			  (setq junk-list (append (nreverse short-group-list)
+						  junk-list)))
+			 ((= num-shorts-grouped 1)
+			  ;; Only one short group?  Just stick it in
+			  ;; there by itself.  Make a group, and find
+			  ;; a subexpression
+			  (let ((subexpression (speedbar-try-completion
+						"" short-group-list)))
+			    (if (< (length subexpression)
+				   speedbar-tag-group-name-minimum-length)
+				(setq subexpression
+				      (concat short-start-name
+					      " ("
+					      (substring
+					       (car (car short-group-list))
+					       (length short-start-name))
+					      ")")))
+			    (setq work-list
+				  (cons (cons subexpression
+					      short-group-list)
+					work-list ))))
+			 (short-group-list
+			  ;; Multiple groups to be named in a special
+			  ;; way by displaying the range over which we
+			  ;; have grouped them.
 			  (setq work-list
-				(cons (cons subexpression
+				(cons (cons (concat short-start-name
+						    " to "
+						    short-end-name)
 					    short-group-list)
 				      work-list))))
-		       (short-group-list
-			;; Multiple groups to be named in a special
-			;; way by displaying the range over which we
-			;; have grouped them.
-			(setq work-list
-			      (cons (cons (concat short-start-name
-						  " to "
-						  short-end-name)
-					  (nreverse short-group-list))
-				    work-list))))
-		      ;; Reset short group list information every time.
-		      (setq short-group-list nil
-			    short-start-name nil
-			    short-end-name nil
-			    num-shorts-grouped 0)))
-		;; Ok, now that we cleaned up the short-group-list,
-		;; we can deal with this new list, to decide if it
-		;; should go on one of these sub-lists or not.
-		(if (< (length l) speedbar-tag-regroup-maximum-length)
-		    (setq short-group-list (append short-group-list l)
-			  num-shorts-grouped (1+ num-shorts-grouped)
-			  short-end-name (car tmp)
-			  short-start-name (if short-start-name
-					       short-start-name
-					     (car tmp)))
-		  (setq work-list (cons tmp work-list))))))
-	(setq diff-idx (1+ diff-idx))))
-    ;; Did we run out of things?  Drop our new list onto the end.
-    (cond
-     ((and short-group-list (= (length short-group-list) num-shorts-grouped))
-      ;; All singles?  Junk list
-      (setq junk-list (append short-group-list junk-list)))
-     ((= num-shorts-grouped 1)
-      ;; Only one short group?  Just stick it in
-      ;; there by itself.
-      (setq work-list
-	    (cons (cons (try-completion "" short-group-list)
-			short-group-list)
-		  work-list)))
-     (short-group-list
-      ;; Multiple groups to be named in a special
-      ;; way by displaying the range over which we
-      ;; have grouped them.
-      (setq work-list
-	    (cons (cons (concat short-start-name " to " short-end-name)
-			short-group-list)
-		  work-list))))
-    ;; Reverse the work list nreversed when consing.
-    (setq work-list (nreverse work-list))
-    ;; Now, stick our new list onto the end of
-    (if work-list
-	(if junk-list
-	    (append newlst work-list junk-list)
-	  (append newlst work-list))
-      (append  newlst junk-list))))
+		     ;; Reset short group list information every time.
+			(setq short-group-list nil
+			      short-start-name nil
+			      short-end-name nil
+			      num-shorts-grouped 0)))
+		  ;; Ok, now that we cleaned up the short-group-list,
+		  ;; we can deal with this new list, to decide if it
+		  ;; should go on one of these sub-lists or not.
+		  (if (< (length l) speedbar-tag-regroup-maximum-length)
+		      (setq short-group-list (append l short-group-list)
+			    num-shorts-grouped (1+ num-shorts-grouped)
+			    short-end-name (car tmp)
+			    short-start-name (if short-start-name
+						 short-start-name
+					       (car tmp)))
+		    (setq work-list (cons tmp work-list))))))
+	  (setq diff-idx (1+ diff-idx))))
+      ;; Did we run out of things?  Drop our new list onto the end.
+      (cond
+       ((and short-group-list (= (length short-group-list) num-shorts-grouped))
+	;; All singles?  Junk list
+	(setq junk-list (append short-group-list junk-list)))
+       ((= num-shorts-grouped 1)
+	;; Only one short group?  Just stick it in
+	;; there by itself.
+	(setq work-list
+	      (cons (cons (speedbar-try-completion "" short-group-list)
+			  short-group-list)
+		    work-list)))
+       (short-group-list
+	;; Multiple groups to be named in a special
+	;; way by displaying the range over which we
+	;; have grouped them.
+	(setq work-list
+	      (cons (cons (concat short-start-name " to " short-end-name)
+			  short-group-list)
+		    work-list))))
+      ;; Reverse the work list nreversed when consing.
+      (setq work-list (nreverse work-list))
+      ;; Now, stick our new list onto the end of
+      (if work-list
+	  (if junk-list
+	      (append newlst work-list junk-list)
+	    (append newlst work-list))
+	(append  newlst junk-list)))))
 
 (defun speedbar-trim-words-tag-hierarchy (lst)
   "Trim all words in a tag hierarchy.
@@ -2568,17 +2270,18 @@
 	(trim-chars 0)
 	(trimlst nil))
     (while lst
-      (if (listp (cdr-safe (car-safe lst)))
+      (if (speedbar-generic-list-group-p (car-safe lst))
 	  (setq newlst (cons (car lst) newlst))
 	(setq sublst (cons (car lst) sublst)))
       (setq lst (cdr lst)))
     ;; Get the prefix to trim by.  Make sure that we don't trim
     ;; off silly pieces, only complete understandable words.
-    (setq trim-prefix (try-completion "" sublst))
+    (setq trim-prefix (speedbar-try-completion "" sublst)
+	  newlst (nreverse newlst))
     (if (or (= (length sublst) 1)
 	    (not trim-prefix)
 	    (not (string-match "\\(\\w+\\W+\\)+" trim-prefix)))
-	(append (nreverse newlst) (nreverse sublst))
+	(append newlst (nreverse sublst))
       (setq trim-prefix (substring trim-prefix (match-beginning 0)
 				   (match-end 0)))
       (setq trim-chars (length trim-prefix))
@@ -2589,7 +2292,7 @@
 		       trimlst)
 	      sublst (cdr sublst)))
       ;; Put the lists together
-      (append (nreverse newlst) trimlst))))
+      (append newlst trimlst))))
 
 (defun speedbar-simple-group-tag-hierarchy (lst)
   "Create a simple 'Tags' group with orphaned tags.
@@ -2597,7 +2300,7 @@
   (let ((newlst nil)
 	(sublst nil))
     (while lst
-      (if (listp (cdr-safe (car-safe lst)))
+      (if (speedbar-generic-list-group-p (car-safe lst))
 	  (setq newlst (cons (car lst) newlst))
 	(setq sublst (cons (car lst) sublst)))
       (setq lst (cdr lst)))
@@ -2612,7 +2315,8 @@
 the list."
   (let* ((f (save-excursion
 	      (forward-line -1)
-	      (speedbar-line-path)))
+	      (or (speedbar-line-file)
+		  (speedbar-line-directory))))
 	 (methods (if (get-file-buffer f)
 		      (save-excursion (set-buffer (get-file-buffer f))
 				      speedbar-tag-hierarchy-method)
@@ -2625,6 +2329,16 @@
 	    methods (cdr methods)))
     lst))
 
+(defvar speedbar-generic-list-group-expand-button-type 'curly
+  "The type of button created for groups of tags.
+Good values for this are `curly' and `expandtag'.
+Make buffer local for your mode.")
+
+(defvar speedbar-generic-list-tag-button-type nil
+  "The type of button created for tags in generic lists.
+Good values for this are nil and `statictag'.
+Make buffer local for your mode.")
+
 (defun speedbar-insert-generic-list (level lst expand-fun find-fun)
   "At LEVEL, insert a generic multi-level alist LST.
 Associations with lists get {+} tags (to expand into more nodes) and
@@ -2634,33 +2348,53 @@
   ;; Remove imenu rescan button
   (if (string= (car (car lst)) "*Rescan*")
       (setq lst (cdr lst)))
-  ;; Adjust the list.
-  (setq lst (speedbar-create-tag-hierarchy lst))
-  ;; insert the parts
-  (while lst
-    (cond ((null (car-safe lst)) nil)	;this would be a separator
-	  ((or (numberp (cdr-safe (car-safe lst)))
-	       (markerp (cdr-safe (car-safe lst))))
-	   (speedbar-make-tag-line nil nil nil nil ;no expand button data
-				   (car (car lst)) ;button name
-				   find-fun        ;function
-				   (cdr (car lst)) ;token is position
-				   'speedbar-tag-face
-				   (1+ level)))
-	  ((listp (cdr-safe (car-safe lst)))
-	   (speedbar-make-tag-line 'curly ?+ expand-fun (cdr (car lst))
-				   (car (car lst)) ;button name
-				   nil nil 'speedbar-tag-face
-				   (1+ level)))
-	  (t (speedbar-message "Ooops!")))
-    (setq lst (cdr lst))))
+  ;; Get, and set up variables that define how we treat these tags.
+   (let ((f (save-excursion (forward-line -1)
+			    (or (speedbar-line-file)
+				(speedbar-line-directory))))
+	 expand-button tag-button)
+     (save-excursion
+       (if (get-file-buffer f)
+	   (set-buffer (get-file-buffer f)))
+       (setq expand-button speedbar-generic-list-group-expand-button-type
+	     tag-button speedbar-generic-list-tag-button-type))
+     ;; Adjust the list.
+     (setq lst (speedbar-create-tag-hierarchy lst))
+     ;; insert the parts
+     (while lst
+       (cond ((null (car-safe lst)) nil)	;this would be a separator
+	    ((speedbar-generic-list-tag-p (car lst))
+	     (speedbar-make-tag-line tag-button
+				     nil nil nil ;no expand button data
+				     (car (car lst)) ;button name
+				     find-fun ;function
+				     (cdr (car lst)) ;token is position
+				     'speedbar-tag-face
+				     (1+ level)))
+	    ((speedbar-generic-list-positioned-group-p (car lst))
+	     (speedbar-make-tag-line expand-button
+				     ?+ expand-fun (cdr (cdr (car lst)))
+				     (car (car lst)) ;button name
+				     find-fun ;function
+				     (car (cdr (car lst))) ;token is posn
+				     'speedbar-tag-face
+				     (1+ level)))
+	    ((speedbar-generic-list-group-p (car lst))
+	     (speedbar-make-tag-line expand-button
+				     ?+ expand-fun (cdr (car lst))
+				     (car (car lst)) ;button name
+				     nil nil 'speedbar-tag-face
+				     (1+ level)))
+	    (t (speedbar-message "speedbar-insert-generic-list: malformed list!")
+	       ))
+      (setq lst (cdr lst)))))
 
 (defun speedbar-insert-imenu-list (indent lst)
   "At level INDENT, insert the imenu generated LST."
   (speedbar-insert-generic-list indent lst
 				'speedbar-tag-expand
 				'speedbar-tag-find))
-
+				
 (defun speedbar-insert-etags-list (indent lst)
   "At level INDENT, insert the etags generated LST."
   (speedbar-insert-generic-list indent lst
@@ -2674,8 +2408,10 @@
   (interactive)
   ;; Set the current special buffer
   (setq speedbar-desired-buffer nil)
+
   ;; Check for special modes
   (speedbar-maybe-add-localized-support (current-buffer))
+
   ;; Choose the correct method of doodling.
   (if (and speedbar-mode-specific-contents-flag
 	   (listp speedbar-special-mode-expansion-list)
@@ -2687,19 +2423,61 @@
       (speedbar-update-special-contents)
     (speedbar-update-directory-contents)))
 
+(defun speedbar-update-localized-contents ()
+  "Update the contents of the speedbar buffer for the current situation."
+  ;; Due to the historical growth of speedbar, we need to do something
+  ;; special for "files" mode.  Too bad.
+  (let ((name speedbar-initial-expansion-list-name)
+	(funclst (speedbar-initial-expansion-list))
+	)
+    (if (string= name "files")
+	;; Do all the files type work.  It still goes through the
+	;; expansion list stuff. :(
+	(if (or (member (expand-file-name default-directory)
+			speedbar-shown-directories)
+		(and speedbar-ignored-directory-regexp
+		     (string-match
+		      speedbar-ignored-directory-regexp
+		      (expand-file-name default-directory))))
+	    nil
+	  (if (<= 1 speedbar-verbosity-level)
+	      (speedbar-message "Updating speedbar to: %s..."
+				default-directory))
+	  (speedbar-update-directory-contents)
+	  (if (<= 1 speedbar-verbosity-level)
+	      (progn
+		(speedbar-message "Updating speedbar to: %s...done"
+				  default-directory)
+		(speedbar-message nil))))
+      ;; Else, we can do a short cut.  No text cache.
+      (let ((cbd (expand-file-name default-directory))
+	    )
+	(set-buffer speedbar-buffer)
+	(speedbar-with-writable
+	  (erase-buffer)
+	  (while funclst
+	    (setq default-directory cbd)
+	    (funcall (car funclst) cbd 0)
+	    (setq funclst (cdr funclst)))
+	(speedbar-reconfigure-keymaps)
+	(goto-char (point-min)))
+	))))
+
 (defun speedbar-update-directory-contents ()
   "Update the contents of the speedbar buffer based on the current directory."
-  (let ((cbd (expand-file-name default-directory))
-	cbd-parent
-	(funclst (speedbar-initial-expansion-list))
-	(cache speedbar-full-text-cache)
-	;; disable stealth during update
-	(speedbar-stealthy-function-list nil)
-	(use-cache nil)
-	(expand-local nil)
-	;; Because there is a bug I can't find just yet
-	(inhibit-quit nil))
-    (save-excursion
+
+  (save-excursion
+
+    (let ((cbd (expand-file-name default-directory))
+	  cbd-parent
+	  (funclst (speedbar-initial-expansion-list))
+	  (cache speedbar-full-text-cache)
+	  ;; disable stealth during update
+	  (speedbar-stealthy-function-list nil)
+	  (use-cache nil)
+	  (expand-local nil)
+	  ;; Because there is a bug I can't find just yet
+	  (inhibit-quit nil))
       (set-buffer speedbar-buffer)
       ;; If we are updating contents to where we are, then this is
       ;; really a request to update existing contents, so we must be
@@ -2725,7 +2503,7 @@
 	    (setq expand-local t)
 
 	  ;; If this directory is NOT in the current list of available
-	  ;; paths, then use the cache, and set the cache to our new
+	  ;; directorys, then use the cache, and set the cache to our new
 	  ;; value.  Make sure to unhighlight the current file, or if we
 	  ;; come back to this directory, it might be a different file
 	  ;; and then we get a mess!
@@ -2747,7 +2525,7 @@
       (speedbar-with-writable
 	(if (and expand-local
 		 ;; Find this directory as a speedbar node.
-		 (speedbar-path-line cbd))
+		 (speedbar-directory-line cbd))
 	    ;; Open it.
 	    (speedbar-expand-line)
 	  (erase-buffer)
@@ -2788,24 +2566,40 @@
 	  ;; decide NOT to update themselves.
 	  (funcall (car funclst) specialbuff)
 	  (setq funclst (cdr funclst))))
+
       (goto-char (point-min))))
   (speedbar-reconfigure-keymaps))
 
+(defun speedbar-set-timer (timeout)
+  "Set up the speedbar timer with TIMEOUT.
+Uses `dframe-set-timer'.
+Also resets scanner functions."
+  (dframe-set-timer timeout 'speedbar-timer-fn 'speedbar-update-flag)
+  ;; Apply a revert hook that will reset the scanners.  We attach to revert
+  ;; because most reverts occur during VC state change, and this lets our
+  ;; VC scanner fix itself.
+  (if timeout
+      (add-hook 'after-revert-hook 'speedbar-reset-scanners)
+    (remove-hook 'after-revert-hook 'speedbar-reset-scanners))
+  ;; change this if it changed for some reason
+  (speedbar-set-mode-line-format))
+
 (defun speedbar-timer-fn ()
   "Run whenever Emacs is idle to update the speedbar item."
-  (if (not (and (frame-live-p speedbar-frame)
-		(frame-live-p speedbar-attached-frame)))
+  (if (or (not (speedbar-current-frame))
+	  (not (frame-live-p (speedbar-current-frame))))
       (speedbar-set-timer nil)
     ;; Save all the match data so that we don't mess up executing fns
     (save-match-data
       ;; Only do stuff if the frame is visible, not an icon, and if
       ;; it is currently flagged to do something.
       (if (and speedbar-update-flag
-	       (frame-visible-p speedbar-frame)
-	       (not (eq (frame-visible-p speedbar-frame) 'icon)))
+	       (speedbar-current-frame)
+	       (frame-visible-p (speedbar-current-frame))
+	       (not (eq (frame-visible-p (speedbar-current-frame)) 'icon)))
 	  (let ((af (selected-frame)))
 	    (save-window-excursion
-	      (select-frame speedbar-attached-frame)
+	      (dframe-select-attached-frame speedbar-frame)
 	      ;; make sure we at least choose a window to
 	      ;; get a good directory from
 	      (if (window-minibuffer-p (selected-window))
@@ -2833,30 +2627,15 @@
 			     major-mode)
 			    (speedbar-message nil))))
 		  ;; Update all the contents if directories change!
-		  (if (or (member (expand-file-name default-directory)
-				  speedbar-shown-directories)
-			  (and speedbar-ignored-path-regexp
-			       (string-match
-				speedbar-ignored-path-regexp
-				(expand-file-name default-directory)))
-			  (member major-mode speedbar-ignored-modes)
-			  (eq af speedbar-frame)
+		  (if (or (member major-mode speedbar-ignored-modes)
+			  (eq af (speedbar-current-frame))
 			  (not (buffer-file-name)))
 		      nil
-		    (if (<= 1 speedbar-verbosity-level)
-			(speedbar-message "Updating speedbar to: %s..."
-				 default-directory))
-		    (speedbar-update-directory-contents)
-		    (if (<= 1 speedbar-verbosity-level)
-			(progn
-			  (speedbar-message "Updating speedbar to: %s...done"
-				   default-directory)
-			  (speedbar-message nil)))))
+		    (speedbar-update-localized-contents)
+		    ))
 		(select-frame af)))
 	    ;; Now run stealthy updates of time-consuming items
-	    (speedbar-stealthy-updates)))
-      ;; Now run the mouse tracking system
-      (speedbar-show-info-under-mouse)))
+	    (speedbar-stealthy-updates)))))
   (run-hooks 'speedbar-timer-hook))
 
 
@@ -2884,12 +2663,16 @@
   "Reset any variables used by functions in the stealthy list as state.
 If new functions are added, their state needs to be updated here."
   (setq speedbar-vc-to-do-point t
-	speedbar-obj-to-do-point t)
+	speedbar-obj-to-do-point t
+	speedbar-ro-to-do-point t)
   (run-hooks 'speedbar-scanner-reset-hook)
   )
 
 (defun speedbar-find-selected-file (file)
   "Go to the line where FILE is."
+
+  (set-buffer speedbar-buffer)
+  
   (goto-char (point-min))
   (let ((m nil))
     (while (and (setq m (re-search-forward
@@ -2898,7 +2681,7 @@
 			 nil t))
 		(not (string= file
 			      (concat
-			       (speedbar-line-path
+			       (speedbar-line-directory
 				(save-excursion
 				  (goto-char (match-beginning 0))
 				  (beginning-of-line)
@@ -2914,7 +2697,7 @@
 (defun speedbar-clear-current-file ()
   "Locate the file thought to be current, and remove its highlighting."
   (save-excursion
-    (set-buffer speedbar-buffer)
+    ;;(set-buffer speedbar-buffer)
     (if speedbar-last-selected-file
 	(speedbar-with-writable
 	  (if (speedbar-find-selected-file speedbar-last-selected-file)
@@ -2930,7 +2713,7 @@
 updated."
   (let* ((lastf (selected-frame))
 	 (newcfd (save-excursion
-		   (select-frame speedbar-attached-frame)
+		   (dframe-select-attached-frame speedbar-frame)
 		   (let ((rf (if (buffer-file-name)
 				 (buffer-file-name)
 			       nil)))
@@ -2939,7 +2722,7 @@
 	 (newcf (if newcfd newcfd))
 	 (lastb (current-buffer))
 	 (sucf-recursive (boundp 'sucf-recursive))
-	 (case-fold-search read-file-name-completion-ignore-case))
+	 (case-fold-search t))
     (if (and newcf
 	     ;; check here, that way we won't refresh to newcf until
 	     ;; its been written, thus saving ourselves some time
@@ -2949,11 +2732,11 @@
 	  ;; It is important to select the frame, otherwise the window
 	  ;; we want the cursor to move in will not be updated by the
 	  ;; search-forward command.
-	  (select-frame speedbar-frame)
+	  (select-frame (speedbar-current-frame))
 	  ;; Remove the old file...
 	  (speedbar-clear-current-file)
 	  ;; now highlight the new one.
-	  (set-buffer speedbar-buffer)
+	  ;; (set-buffer speedbar-buffer)
 	  (speedbar-with-writable
 	    (if (speedbar-find-selected-file newcf)
 		;; put the property on it
@@ -2979,7 +2762,13 @@
 	    (setq speedbar-last-selected-file newcf))
 	  (if (not sucf-recursive)
 	      (progn
-		(speedbar-center-buffer-smartly)
+
+                ;;Sat Dec 15 2001 12:40 AM (burton@openprivacy.org): this
+                ;;doesn't need to be in.  We don't want to recenter when we are
+                ;;updating files.
+
+                ;;(speedbar-center-buffer-smartly)
+
 		(speedbar-position-cursor-on-line)
 		))
 	  (set-buffer lastb)
@@ -2997,6 +2786,7 @@
   ;; The nature of the beast: Assume we are in "the right place"
   (end-of-line)
   (skip-chars-backward (concat " " speedbar-vc-indicator
+			       speedbar-object-read-only-indicator
 			       (car speedbar-obj-indicator)
 			       (cdr speedbar-obj-indicator)))
   (if (and (not (looking-at speedbar-indicator-regex))
@@ -3011,7 +2801,43 @@
 	  (delete-region (match-beginning 0) (match-end 0))))
     (end-of-line)
     (if (not (string= " " indicator-string))
-	(insert indicator-string))))
+	(let ((start (point)))
+	  (insert indicator-string)
+	  (speedbar-insert-image-button-maybe start (length indicator-string))
+	  ))))
+
+(defun speedbar-check-read-only ()
+  "Scan all the files in a directory, and for each see if it is read only."
+  ;; Check for to-do to be reset.  If reset but no RCS is available
+  ;; then set to nil (do nothing) otherwise, start at the beginning
+  (save-excursion
+    (if speedbar-buffer (set-buffer speedbar-buffer))
+    (if (eq speedbar-ro-to-do-point t)
+	(setq speedbar-ro-to-do-point 0))
+    (if (numberp speedbar-ro-to-do-point)
+	(progn
+	  (goto-char speedbar-ro-to-do-point)
+	  (while (and (not (input-pending-p))
+		      (re-search-forward "^\\([0-9]+\\):\\s-*[[<][+-\?][]>] "
+					 nil t))
+	    (setq speedbar-ro-to-do-point (point))
+	    (let ((f (speedbar-line-file)))
+	      (if f
+		  (if (not (file-writable-p f))
+		      (speedbar-add-indicator
+		       speedbar-object-read-only-indicator
+		       (regexp-quote speedbar-object-read-only-indicator))
+		    (speedbar-add-indicator
+		     " " (regexp-quote
+			  speedbar-object-read-only-indicator))))))
+	  (if (input-pending-p)
+	      ;; return that we are incomplete
+	      nil
+	    ;; we are done, set to-do to nil
+	    (setq speedbar-ro-to-do-point nil)
+	    ;; and return t
+	    t))
+      t)))
 
 ;; Load efs/ange-ftp only if compiling to remove byte-compiler warnings.
 ;; Steven L Baur <steve@xemacs.org> said this was important:
@@ -3026,26 +2852,30 @@
   ;; Check for to-do to be reset.  If reset but no RCS is available
   ;; then set to nil (do nothing) otherwise, start at the beginning
   (save-excursion
-    (set-buffer speedbar-buffer)
+    (if speedbar-buffer (set-buffer speedbar-buffer))
     (if (and speedbar-vc-do-check (eq speedbar-vc-to-do-point t)
 	     (speedbar-vc-check-dir-p default-directory)
 	     (not (or (and (featurep 'ange-ftp)
 			   (string-match
-			    (car (if speedbar-xemacsp
-				     ange-ftp-path-format
-				   ange-ftp-name-format))
+			    (car (symbol-value
+				  (if dframe-xemacsp
+				      'ange-ftp-directory-format
+				    'ange-ftp-name-format)))
 			    (expand-file-name default-directory)))
 		      ;; efs support: Bob Weiner
 		      (and (featurep 'efs)
 			   (string-match
-			    (car efs-path-regexp)
+			    (let ((reg (symbol-value 'efs-directory-regexp)))
+			      (if (stringp reg)
+				  reg
+				(car reg)))
 			    (expand-file-name default-directory))))))
 	(setq speedbar-vc-to-do-point 0))
     (if (numberp speedbar-vc-to-do-point)
 	(progn
 	  (goto-char speedbar-vc-to-do-point)
 	  (while (and (not (input-pending-p))
-		      (re-search-forward "^\\([0-9]+\\):\\s-*\\[[+-]\\] "
+		      (re-search-forward "^\\([0-9]+\\):\\s-*\\[[+-?]\\] "
 					 nil t))
 	    (setq speedbar-vc-to-do-point (point))
 	    (if (speedbar-check-vc-this-line (match-string 1))
@@ -3066,8 +2896,8 @@
   "Return t if the file on this line is check of of a version control system.
 Parameter DEPTH is a string with the current depth of indentation of
 the file being checked."
-  (let* ((d (string-to-int depth))
-	 (f (speedbar-line-path d))
+  (let* ((d (string-to-number depth))
+	 (f (speedbar-line-directory d))
 	 (fn (buffer-substring-no-properties
 	      ;; Skip-chars: thanks ptype@dra.hmg.gb
 	      (point) (progn
@@ -3081,41 +2911,54 @@
     (and (file-writable-p fulln)
 	 (speedbar-this-file-in-vc f fn))))
 
-(defun speedbar-vc-check-dir-p (path)
-  "Return t if we should bother checking PATH for version control files.
+(defun speedbar-vc-check-dir-p (directory)
+  "Return t if we should bother checking DIRECTORY for version control files.
 This can be overloaded to add new types of version control systems."
   (or
+   ;; Local CVS available in Emacs 21
+   (and (fboundp 'vc-state)
+	(file-exists-p (concat directory "CVS/")))
    ;; Local RCS
-   (file-exists-p (concat path "RCS/"))
+   (file-exists-p (concat directory "RCS/"))
    ;; Local SCCS
-   (file-exists-p (concat path "SCCS/"))
+   (file-exists-p (concat directory "SCCS/"))
    ;; Remote SCCS project
    (let ((proj-dir (getenv "PROJECTDIR")))
      (if proj-dir
 	 (file-exists-p (concat proj-dir "/SCCS"))
        nil))
    ;; User extension
-   (run-hook-with-args 'speedbar-vc-path-enable-hook path)
+   (run-hook-with-args-until-success 'speedbar-vc-directory-enable-hook
+                                     directory)
    ))
 
-(defun speedbar-this-file-in-vc (path name)
-  "Check to see if the file in PATH with NAME is in a version control system.
+(defun speedbar-this-file-in-vc (directory name)
+  "Check to see if the file in DIRECTORY with NAME is in a version control system.
 You can add new VC systems by overriding this function.  You can
 optimize this function by overriding it and only doing those checks
 that will occur on your system."
   (or
-   ;; RCS file name
-   (file-exists-p (concat path "RCS/" name ",v"))
-   (file-exists-p (concat path "RCS/" name))
-   ;; Local SCCS file name
-   (file-exists-p (concat path "SCCS/s." name))
-   ;; Remote SCCS file name
-   (let ((proj-dir (getenv "PROJECTDIR")))
-     (if proj-dir
-         (file-exists-p (concat proj-dir "/SCCS/s." name))
-       nil))
+   (if (fboundp 'vc-state)
+       ;; Emacs 21 handles VC state in a nice way.
+       (condition-case nil
+	   (let ((state  (vc-state (concat directory name))))
+	     (not (or (eq 'up-to-date state)
+		      (null state))))
+	 ;; An error means not in a VC system
+	 (error nil))
+     (or
+      ;; RCS file name
+      (file-exists-p (concat directory "RCS/" name ",v"))
+      (file-exists-p (concat directory "RCS/" name))
+      ;; Local SCCS file name
+      (file-exists-p (concat directory "SCCS/s." name))
+      ;; Remote SCCS file name
+      (let ((proj-dir (getenv "PROJECTDIR")))
+	(if proj-dir
+	    (file-exists-p (concat proj-dir "/SCCS/s." name))
+	  nil))))
    ;; User extension
-   (run-hook-with-args 'speedbar-vc-in-control-hook path name)
+   (run-hook-with-args 'speedbar-vc-in-control-hook directory name)
    ))
 
 ;; Objet File scanning
@@ -3126,7 +2969,7 @@
   ;; Check for to-do to be reset.  If reset but no RCS is available
   ;; then set to nil (do nothing) otherwise, start at the beginning
   (save-excursion
-    (set-buffer speedbar-buffer)
+    (if speedbar-buffer (set-buffer speedbar-buffer))
     (if (and speedbar-obj-do-check (eq speedbar-obj-to-do-point t))
 	(setq speedbar-obj-to-do-point 0))
     (if (numberp speedbar-obj-to-do-point)
@@ -3155,8 +2998,8 @@
   "Return t if the file on this line has an associated object.
 Parameter DEPTH is a string with the current depth of indentation of
 the file being checked."
-  (let* ((d (string-to-int depth))
-	 (f (speedbar-line-path d))
+  (let* ((d (string-to-number depth))
+	 (f (speedbar-line-directory d))
 	 (fn (buffer-substring-no-properties
 	      ;; Skip-chars: thanks ptype@dra.hmg.gb
 	      (point) (progn
@@ -3186,28 +3029,6 @@
 
 ;;; Clicking Activity
 ;;
-(defun speedbar-mouse-set-point (e)
-  "Set POINT based on event E.
-Handle clicking on images in XEmacs."
-  (if (and (fboundp 'event-over-glyph-p) (event-over-glyph-p e))
-      ;; We are in XEmacs, and clicked on a picture
-      (let ((ext (event-glyph-extent e)))
-	;; This position is back inside the extent where the
-	;; junk we pushed into the property list lives.
-	(if (extent-end-position ext)
-	    (goto-char (1- (extent-end-position ext)))
-	  (mouse-set-point e)))
-    ;; We are not in XEmacs, OR we didn't click on a picture.
-    (mouse-set-point e)))
-
-(defun speedbar-quick-mouse (e)
-  "Since mouse events are strange, this will keep the mouse nicely positioned.
-This should be bound to mouse event E."
-  (interactive "e")
-  (speedbar-mouse-set-point e)
-  (speedbar-position-cursor-on-line)
-  )
-
 (defun speedbar-position-cursor-on-line ()
   "Position the cursor on a line."
   (let ((oldpos (point)))
@@ -3216,47 +3037,22 @@
 	(goto-char (1- (match-end 0)))
       (goto-char oldpos))))
 
-(defun speedbar-power-click (e)
-  "Activate any speedbar button as a power click.
-A power click will dispose of cached data (if available) or bring a buffer
-up into a different window.
-This should be bound to mouse event E."
-  (interactive "e")
-  (let ((speedbar-power-click t))
-    (speedbar-click e)))
-
 (defun speedbar-click (e)
   "Activate any speedbar buttons where the mouse is clicked.
 This must be bound to a mouse event.  A button is any location of text
 with a mouse face that has a text property called `speedbar-function'.
-This should be bound to mouse event E."
-  (interactive "e")
-  (speedbar-mouse-set-point e)
-  (speedbar-do-function-pointer)
-  (speedbar-quick-mouse e))
-
-(defun speedbar-double-click (e)
-  "Activate any speedbar buttons where the mouse is clicked.
-This must be bound to a mouse event.  A button is any location of text
-with a mouse face that has a text property called `speedbar-function'.
-This should be bound to mouse event E."
-  (interactive "e")
-  ;; Emacs only.  XEmacs handles this via `mouse-track-click-hook'.
-  (cond ((eq (car e) 'down-mouse-1)
-	 (speedbar-mouse-set-point e))
-	((eq (car e) 'mouse-1)
-	 (speedbar-quick-mouse e))
-	((or (eq (car e) 'double-down-mouse-1)
-	     (eq (car e) 'triple-down-mouse-1))
-	 (speedbar-mouse-set-point e)
-	 (speedbar-do-function-pointer)
-	 (speedbar-quick-mouse e))))
+Argument E is the click event."
+  ;; Backward compatibility let statement.
+  (let ((speedbar-power-click dframe-power-click))
+    (speedbar-do-function-pointer))
+  (dframe-quick-mouse e))
 
 (defun speedbar-do-function-pointer ()
   "Look under the cursor and examine the text properties.
 From this extract the file/tag name, token, indentation level and call
 a function if appropriate."
-  (let* ((fn (get-text-property (point) 'speedbar-function))
+  (let* ((speedbar-frame (speedbar-current-frame))
+	 (fn (get-text-property (point) 'speedbar-function))
 	 (tok (get-text-property (point) 'speedbar-token))
 	 ;; The 1-,+ is safe because scaning starts AFTER the point
 	 ;; specified.  This lets the search include the character the
@@ -3286,9 +3082,8 @@
     (if p (goto-char p))
     (beginning-of-line)
     (if (looking-at (concat
-		     "\\([0-9]+\\): *[[<{][-+?][]>}] \\([^ \n]+\\)\\("
-		     speedbar-indicator-regex "\\)?"))
-	(match-string 2)
+		     "\\([0-9]+\\): *[[<{]?[-+?= ][]>}@()|] \\([^ \n]+\\)"))
+	(get-text-property (match-beginning 2) 'speedbar-text)
       nil)))
 
 (defun speedbar-line-token (&optional p)
@@ -3298,7 +3093,7 @@
     (if p (goto-char p))
     (beginning-of-line)
     (if (looking-at (concat
-		     "\\([0-9]+\\): *[[<{]?[-+?=][]>}@()|] \\([^ \n]+\\)\\("
+		     "\\([0-9]+\\): *[[<{]?[-+?= ][]>}@()|] \\([^ \n]+\\)\\("
 		     speedbar-indicator-regex "\\)?"))
 	(progn
 	  (goto-char (match-beginning 2))
@@ -3310,37 +3105,39 @@
 The return value is a string representing the file.  If it is a
 directory, then it is the directory name."
   (save-match-data
-    (let ((f (speedbar-line-text p)))
-      (if f
-	  (let* ((depth (string-to-int (match-string 1)))
-		 (path (speedbar-line-path depth)))
-	    (if (file-exists-p (concat path f))
-		(concat path f)
-	      nil))
-	nil))))
+    (save-restriction
+      (widen)
+      (let ((f (speedbar-line-text p)))
+	(if f
+	    (let* ((depth (string-to-number (match-string 1)))
+		   (directory (speedbar-line-directory depth)))
+	      (if (file-exists-p (concat directory f))
+		  (concat directory f)
+		nil))
+	  nil)))))
 
 (defun speedbar-goto-this-file (file)
   "If FILE is displayed, go to this line and return t.
 Otherwise do not move and return nil."
-  (let ((path (substring (file-name-directory (expand-file-name file))
+  (let ((directory (substring (file-name-directory (expand-file-name file))
 			 (length (expand-file-name default-directory))))
 	(dest (point)))
     (save-match-data
       (goto-char (point-min))
       ;; scan all the directories
-      (while (and path (not (eq path t)))
-	(if (string-match "^[/\\]?\\([^/\\]+\\)" path)
-	    (let ((pp (match-string 1 path)))
+      (while (and directory (not (eq directory t)))
+	(if (string-match "^[/\\]?\\([^/\\]+\\)" directory)
+	    (let ((pp (match-string 1 directory)))
 	      (if (save-match-data
 		    (re-search-forward (concat "> " (regexp-quote pp) "$")
 				       nil t))
-		  (setq path (substring path (match-end 1)))
-		(setq path nil)))
-	  (setq path t)))
+		  (setq directory (substring directory (match-end 1)))
+		(setq directory nil)))
+	  (setq directory t)))
       ;; find the file part
-      (if (or (not path) (string= (file-name-nondirectory file) ""))
+      (if (or (not directory) (string= (file-name-nondirectory file) ""))
 	  ;; only had a dir part
-	  (if path
+	  (if directory
 	      (progn
 		(speedbar-position-cursor-on-line)
 		t)
@@ -3357,16 +3154,18 @@
 	    (goto-char dest)
 	    nil))))))
 
-(defun speedbar-line-path (&optional depth)
-  "Retrieve the pathname associated with the current line.
+(defun speedbar-line-directory (&optional depth)
+  "Retrieve the directory name associated with the current line.
 This may require traversing backwards from DEPTH and combining the default
 directory with these items.  This function is replaceable in
-`speedbar-mode-functions-list' as `speedbar-line-path'."
-  (let ((rf (speedbar-fetch-replacement-function 'speedbar-line-path)))
-    (if rf (funcall rf depth) default-directory)))
-
-(defun speedbar-files-line-path (&optional depth)
-  "Retrieve the pathname associated with the current line.
+`speedbar-mode-functions-list' as `speedbar-line-directory'."
+  (save-restriction
+    (widen)
+    (let ((rf (speedbar-fetch-replacement-function 'speedbar-line-directory)))
+      (if rf (funcall rf depth) default-directory))))
+      
+(defun speedbar-files-line-directory (&optional depth)
+  "Retrieve the directoryname associated with the current line.
 This may require traversing backwards from DEPTH and combining the default
 directory with these items."
   (save-excursion
@@ -3375,38 +3174,36 @@
 	  (progn
 	    (beginning-of-line)
 	    (looking-at "^\\([0-9]+\\):")
-	    (setq depth (string-to-int (match-string 1)))))
-      (let ((path nil))
+	    (setq depth (string-to-number (match-string 1)))))
+      (let ((directory nil))
 	(setq depth (1- depth))
 	(while (/= depth -1)
 	  (if (not (re-search-backward (format "^%d:" depth) nil t))
-	      (error "Error building path of tag")
-	    (cond ((looking-at "[0-9]+:\\s-*<->\\s-+\\([^\n]+\\)$")
-		   (setq path (concat (buffer-substring-no-properties
-				       (match-beginning 1) (match-end 1))
+	      (error "Error building filename of tag")
+	    (cond ((looking-at "[0-9]+:\\s-*<->\\s-+\\([^\n]+\\)")
+		   (setq directory (concat (speedbar-line-text)
 				      "/"
-				      path)))
-		  ((looking-at "[0-9]+:\\s-*[-]\\s-+\\([^\n]+\\)$")
-		   ;; This is the start of our path.
-		   (setq path (buffer-substring-no-properties
-			       (match-beginning 1) (match-end 1))))))
+				      directory)))
+		  ((looking-at "[0-9]+:\\s-*[-]\\s-+\\([^\n]+\\)")
+		   ;; This is the start of our directory.
+		   (setq directory (speedbar-line-text)))))
 	  (setq depth (1- depth)))
-	(if (and path
+	(if (and directory
 		 (string-match (concat speedbar-indicator-regex "$")
-			       path))
-	    (setq path (substring path 0 (match-beginning 0))))
-	(concat default-directory path)))))
-
-(defun speedbar-path-line (path)
-  "Position the cursor on the line specified by PATH."
+			       directory))
+	    (setq directory (substring directory 0 (match-beginning 0))))
+	(concat default-directory directory)))))
+
+(defun speedbar-directory-line (directory)
+  "Position the cursor on the line specified by DIRECTORY."
   (save-match-data
-    (if (string-match "[/\\]$" path)
-	(setq path (substring path 0 (match-beginning 0))))
+    (if (string-match "[/\\]$" directory)
+	(setq directory (substring directory 0 (match-beginning 0))))
     (let ((nomatch t) (depth 0)
-	  (fname (file-name-nondirectory path))
-	  (pname (file-name-directory path)))
+	  (fname (file-name-nondirectory directory))
+	  (pname (file-name-directory directory)))
       (if (not (member pname speedbar-shown-directories))
-	  (error "Internal Error: File %s not shown in speedbar" path))
+	  (error "Internal Error: File %s not shown in speedbar" directory))
       (goto-char (point-min))
       (while (and nomatch
 		  (re-search-forward
@@ -3415,8 +3212,8 @@
 		   nil t))
 	(beginning-of-line)
 	(looking-at "\\([0-9]+\\):")
-	(setq depth (string-to-int (match-string 0))
-	      nomatch (not (string= pname (speedbar-line-path depth))))
+	(setq depth (string-to-number (match-string 0))
+	      nomatch (not (string= pname (speedbar-line-directory depth))))
 	(end-of-line))
       (beginning-of-line)
       (not nomatch))))
@@ -3442,7 +3239,8 @@
 With universal argument ARG, flush cached data."
   (interactive "P")
   (beginning-of-line)
-  (let ((speedbar-power-click arg))
+  (let* ((dframe-power-click arg)
+	 (speedbar-power-click arg))
     (condition-case nil
 	(progn
 	  (re-search-forward ":\\s-*.\\+. "
@@ -3450,12 +3248,12 @@
 	  (forward-char -2)
 	  (speedbar-do-function-pointer))
       (error (speedbar-position-cursor-on-line)))))
-
+  
 (defun speedbar-flush-expand-line ()
   "Expand the line under the cursor and flush any cached information."
   (interactive)
   (speedbar-expand-line 1))
-
+  
 (defun speedbar-contract-line ()
   "Contract the line under the cursor."
   (interactive)
@@ -3468,39 +3266,63 @@
 	(speedbar-do-function-pointer))
     (error (speedbar-position-cursor-on-line))))
 
-(if speedbar-xemacsp
-    (defalias 'speedbar-mouse-event-p 'button-press-event-p)
-  (defun speedbar-mouse-event-p (event)
-    "Return t if the event is a mouse related event."
-    ;; And Emacs does it this way
-    (if (and (listp event)
-	     (member (event-basic-type event)
-		     '(mouse-1 mouse-2 mouse-3)))
-	t
-      nil)))
-
-(defun speedbar-maybee-jump-to-attached-frame ()
-  "Jump to the attached frame ONLY if this was not a mouse event."
-  (if (or (not (speedbar-mouse-event-p last-input-event))
-	  speedbar-activity-change-focus-flag)
+(defun speedbar-toggle-line-expansion ()
+  "Contract or expand the line under the cursor."
+  (interactive)
+  (beginning-of-line)
+  (condition-case nil
       (progn
-	(select-frame speedbar-attached-frame)
-	(other-frame 0))))
+	(re-search-forward ":\\s-*.[-+]. "
+			   (save-excursion (end-of-line) (point)))
+	(forward-char -2)
+	(speedbar-do-function-pointer))
+    (error (speedbar-position-cursor-on-line))))
+
+(defun speedbar-expand-line-descendants (&optional arg)
+  "Expand the line under the cursor and all descendants.
+Optional argument ARG indicates that any cache should be flushed."
+  (interactive "P")
+  (speedbar-expand-line arg)
+  ;; Now, inside the area expaded here, expand all subnodes of
+  ;; the same descendant type.
+  (save-excursion
+    (speedbar-next 1) ;; Move into the list.
+    (let ((err nil))
+      (while (not err)
+	(condition-case nil
+	    (progn
+	      (speedbar-expand-line-descendants arg)
+	      (speedbar-restricted-next 1))
+	  (error (setq err t))))))
+  )
+
+(defun speedbar-contract-line-descendants ()
+  "Expand the line under the cursor and all descendants."
+  (interactive)
+  (speedbar-contract-line)
+  ;; Don't need to do anything else since all descendants are
+  ;; hidden by default anyway.  Yay!  It's easy.
+  )
 
 (defun speedbar-find-file (text token indent)
   "Speedbar click handler for filenames.
 TEXT, the file will be displayed in the attached frame.
 TOKEN is unused, but required by the click handler.  INDENT is the
 current indentation level."
-  (let ((cdd (speedbar-line-path indent)))
+  (let ((cdd (speedbar-line-directory indent)))
+    ;; Run before visiting file hook here.
+    (let ((f (selected-frame)))
+      (dframe-select-attached-frame speedbar-frame)
+      (run-hooks 'speedbar-before-visiting-file-hook)
+      (select-frame f))
     (speedbar-find-file-in-frame (concat cdd text))
     (speedbar-stealthy-updates)
     (run-hooks 'speedbar-visiting-file-hook)
     ;; Reset the timer with a new timeout when cliking a file
     ;; in case the user was navigating directories, we can cancel
     ;; that other timer.
-    (speedbar-set-timer speedbar-update-speed))
-  (speedbar-maybee-jump-to-attached-frame))
+    (speedbar-set-timer dframe-update-speed))
+  (dframe-maybee-jump-to-attached-frame))
 
 (defun speedbar-dir-follow (text token indent)
   "Speedbar click handler for directory names.
@@ -3508,7 +3330,7 @@
 the subdirectory TEXT.  TOKEN is an unused requirement.  The
 subdirectory chosen will be at INDENT level."
   (setq default-directory
-	(concat (expand-file-name (concat (speedbar-line-path indent) text))
+	(concat (expand-file-name (concat (speedbar-line-directory indent) text))
 		"/"))
   ;; Because we leave speedbar as the current buffer,
   ;; update contents will change directory without
@@ -3528,7 +3350,7 @@
       (end-of-line) (forward-char 1)
       (let ((start (point)))
 	(while (and (looking-at "^\\([0-9]+\\):")
-		    (> (string-to-int (match-string 1)) indent)
+		    (> (string-to-number (match-string 1)) indent)
 		    (not (eobp)))
 	  (forward-line 1)
 	  (beginning-of-line))
@@ -3542,7 +3364,7 @@
   (cond ((string-match "+" text)	;we have to expand this dir
 	 (setq speedbar-shown-directories
 	       (cons (expand-file-name
-		      (concat (speedbar-line-path indent) token "/"))
+		      (concat (speedbar-line-directory indent) token "/"))
 		     speedbar-shown-directories))
 	 (speedbar-change-expand-button-char ?-)
 	 (speedbar-reset-scanners)
@@ -3550,14 +3372,14 @@
 	   (end-of-line) (forward-char 1)
 	   (speedbar-with-writable
 	     (speedbar-default-directory-list
-	      (concat (speedbar-line-path indent) token "/")
+	      (concat (speedbar-line-directory indent) token "/")
 	      (1+ indent)))))
 	((string-match "-" text)	;we have to contract this node
 	 (speedbar-reset-scanners)
 	 (let ((oldl speedbar-shown-directories)
 	       (newl nil)
 	       (td (expand-file-name
-		    (concat (speedbar-line-path indent) token))))
+		    (concat (speedbar-line-directory indent) token))))
 	   (while oldl
 	     (if (not (string-match (concat "^" (regexp-quote td)) (car oldl)))
 		 (setq newl (cons (car oldl) newl)))
@@ -3568,7 +3390,6 @@
 	 )
 	(t (error "Ooops...  not sure what to do")))
   (speedbar-center-buffer-smartly)
-  (setq speedbar-last-selected-file nil)
   (save-excursion (speedbar-stealthy-updates)))
 
 (defun speedbar-directory-buttons-follow (text token indent)
@@ -3590,7 +3411,7 @@
 clicked, and TOKEN is the file to expand.  INDENT is the current
 indentation level."
   (cond ((string-match "+" text)	;we have to expand this file
-	 (let* ((fn (expand-file-name (concat (speedbar-line-path indent)
+	 (let* ((fn (expand-file-name (concat (speedbar-line-directory indent)
 					      token)))
 		(mode nil)
 		(lst (speedbar-fetch-dynamic-tags fn)))
@@ -3611,17 +3432,20 @@
 (defun speedbar-tag-find (text token indent)
   "For the tag TEXT in a file TOKEN, go to that position.
 INDENT is the current indentation level."
-  (let ((file (speedbar-line-path indent)))
+  (let ((file (speedbar-line-directory indent)))
+    (let ((f (selected-frame)))
+      (dframe-select-attached-frame speedbar-frame)
+      (run-hooks 'speedbar-before-visiting-tag-hook)
+      (select-frame f))
     (speedbar-find-file-in-frame file)
     (save-excursion (speedbar-stealthy-updates))
     ;; Reset the timer with a new timeout when cliking a file
     ;; in case the user was navigating directories, we can cancel
     ;; that other timer.
-    (speedbar-set-timer speedbar-update-speed)
+    (speedbar-set-timer dframe-update-speed)
     (goto-char token)
     (run-hooks 'speedbar-visiting-tag-hook)
-    ;;(recenter)
-    (speedbar-maybee-jump-to-attached-frame)
+    (dframe-maybee-jump-to-attached-frame)
     ))
 
 (defun speedbar-tag-expand (text token indent)
@@ -3644,6 +3468,14 @@
 
 ;;; Loading files into the attached frame.
 ;;
+(defcustom speedbar-select-frame-method 'attached
+  "*Specify how to select a frame for displaying a file.
+A value of 'attached means to use the attached frame (the frame
+that speedbar was started from.)  A number such as 1 or -1 means to
+pass that number to `other-frame' while selecting a frame from speedbar."
+  :group 'speedbar
+  :type 'sexp)
+
 (defun speedbar-find-file-in-frame (file)
   "This will load FILE into the speedbar attached frame.
 If the file is being displayed in a different frame already, then raise that
@@ -3654,9 +3486,11 @@
 	(progn
 	  (select-window bwin)
 	  (raise-frame (window-frame bwin)))
-      (if speedbar-power-click
+      (if dframe-power-click
 	  (let ((pop-up-frames t)) (select-window (display-buffer buff)))
-	(select-frame speedbar-attached-frame)
+	(if (numberp speedbar-select-frame-method)
+	    (other-frame speedbar-select-frame-method)
+	  (dframe-select-attached-frame speedbar-frame))
 	(switch-to-buffer buff))))
  )
 
@@ -3666,61 +3500,69 @@
   "Recenter a speedbar buffer so the current indentation level is all visible.
 This assumes that the cursor is on a file, or tag of a file which the user is
 interested in."
-  (if (<= (count-lines (point-min) (point-max))
-	  (1- (window-height (selected-window))))
-      ;; whole buffer fits
-      (let ((cp (point)))
-	(goto-char (point-min))
-	(recenter 0)
-	(goto-char cp))
-    ;; too big
-    (let (depth start end exp p)
-      (save-excursion
-	(beginning-of-line)
-	(setq depth (if (looking-at "[0-9]+")
-			(string-to-int (buffer-substring-no-properties
-					(match-beginning 0) (match-end 0)))
-		      0))
-	(setq exp (format "^%d:\\s-*[[{<]\\([?+-]\\)[]>}]" depth)))
-      (save-excursion
-	(end-of-line)
-	(if (re-search-backward exp nil t)
-	    (setq start (point))
-	  (setq start (point-min)))
-	(save-excursion			;Not sure about this part.
+
+  (save-selected-window
+  
+    (select-window (get-buffer-window speedbar-buffer t))
+    
+    (set-buffer speedbar-buffer)
+    
+    (if (<= (count-lines (point-min) (point-max))
+	    (1- (window-height (selected-window))))
+	;; whole buffer fits
+	(let ((cp (point)))
+
+	  (goto-char (point-min))
+	  (recenter 0)
+	  (goto-char cp))
+      ;; too big
+      (let (depth start end exp p)
+	(save-excursion
+	  (beginning-of-line)
+	  (setq depth (if (looking-at "[0-9]+")
+			  (string-to-number (buffer-substring-no-properties
+					  (match-beginning 0) (match-end 0)))
+			0))
+	  (setq exp (format "^%d:" depth)))
+	(save-excursion
 	  (end-of-line)
-	  (setq p (point))
-	  (while (and (not (re-search-forward exp nil t))
-		      (>= depth 0))
-	    (setq depth (1- depth))
-	    (setq exp (format "^%d:\\s-*[[{<]\\([?+-]\\)[]>}]" depth)))
-	  (if (/= (point) p)
-	      (setq end (point))
-	    (setq end (point-max)))))
-      ;; Now work out the details of centering
-      (let ((nl (count-lines start end))
-	    (cp (point)))
-	(if (> nl (window-height (selected-window)))
-	    ;; We can't fit it all, so just center on cursor
-	    (progn (goto-char start)
-		   (recenter 1))
-	  ;; we can fit everything on the screen, but...
-	  (if (and (pos-visible-in-window-p start (selected-window))
-		   (pos-visible-in-window-p end (selected-window)))
-	      ;; we are all set!
-	      nil
-	    ;; we need to do something...
-	    (goto-char start)
-	    (let ((newcent (/ (- (window-height (selected-window)) nl) 2))
-		  (lte (count-lines start (point-max))))
-	      (if (and (< (+ newcent lte) (window-height (selected-window)))
-		       (> (- (window-height (selected-window)) lte 1)
-			  newcent))
-		  (setq newcent (- (window-height (selected-window))
-				   lte 1)))
-	      (recenter newcent))))
-	(goto-char cp)))))
-
+	  (if (re-search-backward exp nil t)
+	      (setq start (point))
+	    (setq start (point-min)))
+	  (save-excursion		;Not sure about this part.
+	    (end-of-line)
+	    (setq p (point))
+	    (while (and (not (re-search-forward exp nil t))
+			(>= depth 0))
+	      (setq depth (1- depth))
+	      (setq exp (format "^%d:" depth)))
+	    (if (/= (point) p)
+		(setq end (point))
+	      (setq end (point-max)))))
+	;; Now work out the details of centering
+	(let ((nl (count-lines start end))
+              (wl (1- (window-height (selected-window))))
+	      (cp (point)))
+	  (if (> nl wl)
+	      ;; We can't fit it all, so just center on cursor
+	      (progn (goto-char start)
+		     (recenter 1))
+	    ;; we can fit everything on the screen, but...
+	    (if (and (pos-visible-in-window-p start (selected-window))
+		     (pos-visible-in-window-p end (selected-window)))
+		;; we are all set!
+		nil
+	      ;; we need to do something...
+	      (goto-char start)
+	      (let ((newcent (/ (- (window-height (selected-window)) nl) 2))
+		    (lte (count-lines start (point-max))))
+		(if (and (< (+ newcent lte) (window-height (selected-window)))
+			 (> (- (window-height (selected-window)) lte 1)
+			    newcent))
+		    (setq newcent (- (window-height (selected-window))
+				     lte 1)))
+		(recenter newcent))))
+          (goto-char cp))))))
 
 ;;; Tag Management -- List of expanders:
 ;;
@@ -3730,7 +3572,12 @@
 to find the proper tags.  It is up to each of those individual
 functions to do caching and flushing if appropriate."
   (save-excursion
-    (set-buffer (find-file-noselect file))
+    ;; If a file is in memory, switch to that buffer.  This allows
+    ;; us to use the local variable.  If the file is on disk, we
+    ;; can try a few of the defaults that can get tags without
+    ;; opening the file.
+    (if (get-file-buffer file)
+	(set-buffer (get-file-buffer file)))
     ;; If there is a buffer-local value of
     ;; speedbar-dynamic-tags-function-list, it will now be available.
     (let ((dtf speedbar-dynamic-tags-function-list)
@@ -3738,7 +3585,7 @@
       (while (and (eq ret t) dtf)
 	(setq ret
 	      (if (fboundp (car (car dtf)))
-		  (funcall (car (car dtf)) (buffer-file-name))
+		  (funcall (car (car dtf)) file)
 		t))
 	(if (eq ret t)
 	    (setq dtf (cdr dtf))))
@@ -3762,7 +3609,8 @@
 Returns the tag list, or t for an error."
   ;; Load this AND compile it in
   (require 'imenu)
-  (if speedbar-power-click (setq imenu--index-alist nil))
+  (set-buffer (find-file-noselect file))
+  (if dframe-power-click (setq imenu--index-alist nil))
   (condition-case nil
       (let ((index-alist (imenu--make-index-alist t)))
 	(if speedbar-sort-tags
@@ -3776,7 +3624,7 @@
 ;;
 (defvar speedbar-fetch-etags-parse-list
   '(;; Note that java has the same parse-group as c
-    ("\\.\\([cChH]\\|c\\+\\+\\|cpp\\|cc\\|hh\\|java\\)\\'" .
+    ("\\.\\([cChH]\\|c\\+\\+\\|cpp\\|cc\\|hh\\|java\\|cxx\\|hxx\\)\\'" .
      speedbar-parse-c-or-c++tag)
     ("^\\.emacs$\\|.\\(el\\|l\\|lsp\\)\\'" .
      "def[^i]+\\s-+\\(\\(\\w\\|[-_]\\)+\\)\\s-*\C-?")
@@ -3906,7 +3754,7 @@
 					    (point))
 					  t)))
 		(if (and j sym)
-		    (1+ (string-to-int (buffer-substring-no-properties
+		    (1+ (string-to-number (buffer-substring-no-properties
 					(match-beginning 2)
 					(match-end 2))))
 		  0))))
@@ -3955,6 +3803,7 @@
   (define-key speedbar-buffers-key-map "+" 'speedbar-expand-line)
   (define-key speedbar-buffers-key-map "=" 'speedbar-expand-line)
   (define-key speedbar-buffers-key-map "-" 'speedbar-contract-line)
+  (define-key speedbar-buffers-key-map " " 'speedbar-toggle-line-expansion)
 
   ;; Buffer specific keybindings
   (define-key speedbar-buffers-key-map "k" 'speedbar-buffer-kill-buffer)
@@ -3975,28 +3824,29 @@
 		     (looking-at "[0-9]+: *.-. "))]
     ["Kill Buffer" speedbar-buffer-kill-buffer
      (save-excursion (beginning-of-line)
-		     (looking-at "[0-9]+: *.-. "))]
+		     (looking-at "[0-9]+: *.[-+?]. "))]
     ["Revert Buffer" speedbar-buffer-revert-buffer
      (save-excursion (beginning-of-line)
-		     (looking-at "[0-9]+: *.-. "))]
+		     (looking-at "[0-9]+: *.[-+?]. "))]
     )
   "Menu item elements shown when displaying a buffer list.")
 
 (defun speedbar-buffer-buttons (directory zero)
   "Create speedbar buttons based on the buffers currently loaded.
-DIRECTORY is the path to the currently active buffer, and ZERO is 0."
+DIRECTORY is the directory to the currently active buffer, and ZERO is 0."
   (speedbar-buffer-buttons-engine nil))
 
 (defun speedbar-buffer-buttons-temp (directory zero)
   "Create speedbar buttons based on the buffers currently loaded.
-DIRECTORY is the path to the currently active buffer, and ZERO is 0."
+DIRECTORY is the directory to the currently active buffer, and ZERO is 0."
   (speedbar-buffer-buttons-engine t))
 
 (defun speedbar-buffer-buttons-engine (temp)
   "Create speedbar buffer buttons.
 If TEMP is non-nil, then clicking on a buffer restores the previous display."
-  (insert "Active Buffers:\n")
-  (let ((bl (buffer-list)))
+  (speedbar-insert-separator "Active Buffers:")
+  (let ((bl (buffer-list))
+	(case-fold-search t))
     (while bl
       (if (string-match "^[ *]" (buffer-name (car bl)))
 	  nil
@@ -4010,10 +3860,11 @@
 				  (if fname (file-name-nondirectory fname))
 				  (buffer-name (car bl))
 				  'speedbar-buffer-click temp
-				  'speedbar-file-face 0)))
+				  'speedbar-file-face 0)
+	  (speedbar-buffers-tail-notes (car bl))))
       (setq bl (cdr bl)))
     (setq bl (buffer-list))
-    (insert "Scratch Buffers:\n")
+    (speedbar-insert-separator "Scratch Buffers:")
     (while bl
       (if (not (string-match "^\\*" (buffer-name (car bl))))
 	  nil
@@ -4022,20 +3873,33 @@
 	  (speedbar-make-tag-line 'bracket ?? nil nil
 				  (buffer-name (car bl))
 				  'speedbar-buffer-click temp
-				  'speedbar-file-face 0)))
+				  'speedbar-file-face 0)
+	  (speedbar-buffers-tail-notes (car bl))))
       (setq bl (cdr bl)))
     (setq bl (buffer-list))
-    (insert "Hidden Buffers:\n")
-    (while bl
-      (if (not (string-match "^ " (buffer-name (car bl))))
-	  nil
-	(if (eq (car bl) speedbar-buffer)
-	    nil
-	  (speedbar-make-tag-line 'bracket ?? nil nil
-				  (buffer-name (car bl))
-				  'speedbar-buffer-click temp
-				  'speedbar-file-face 0)))
-      (setq bl (cdr bl)))))
+    ;;(speedbar-insert-separator "Hidden Buffers:")
+    ;;(while bl
+    ;;  (if (not (string-match "^ " (buffer-name (car bl))))
+    ;;	  nil
+    ;;	(if (eq (car bl) speedbar-buffer)
+    ;;	    nil
+    ;;	  (speedbar-make-tag-line 'bracket ?? nil nil
+    ;;				  (buffer-name (car bl))
+    ;;				  'speedbar-buffer-click temp
+    ;;				  'speedbar-file-face 0)
+    ;;	  (speedbar-buffers-tail-notes (car bl))))
+    ;;  (setq bl (cdr bl)))
+    ))
+
+(defun speedbar-buffers-tail-notes (buffer)
+  "Add a note to the end of the last tag line.
+Argument BUFFER is the buffer being tested."
+  (let (mod ro)
+    (save-excursion
+      (set-buffer buffer)
+      (setq mod (buffer-modified-p)
+	    ro buffer-read-only))
+    (if ro (speedbar-insert-button "%" nil nil nil nil t))))
 
 (defun speedbar-buffers-item-info ()
   "Display information about the current buffer on the current line."
@@ -4051,8 +3915,8 @@
 					       (buffer-size))
 			       (or (buffer-file-name buffer) "<No file>"))))))
 
-(defun speedbar-buffers-line-path (&optional depth)
-  "Fetch the full path to the file (buffer) specified on the current line.
+(defun speedbar-buffers-line-directory (&optional depth)
+  "Fetch the full directory to the file (buffer) specified on the current line.
 Optional argument DEPTH specifies the current depth of the back search."
   (save-excursion
     (end-of-line)
@@ -4066,15 +3930,17 @@
 	      (if (save-excursion
 		    (end-of-line)
 		    (eq start (point)))
-		  (file-name-directory (buffer-file-name buffer))
+		  (or (save-excursion (set-buffer buffer)
+				      default-directory)
+		      "")
 		(buffer-file-name buffer))))))))
 
 (defun speedbar-buffer-click (text token indent)
   "When the users clicks on a buffer-button in speedbar.
 TEXT is the buffer's name, TOKEN and INDENT are unused."
-  (if speedbar-power-click
+  (if dframe-power-click
       (let ((pop-up-frames t)) (select-window (display-buffer text)))
-    (select-frame speedbar-attached-frame)
+    (dframe-select-attached-frame speedbar-frame)
     (switch-to-buffer text)
     (if token (speedbar-change-initial-expansion-list
 	       speedbar-previously-used-expansion-list-name))))
@@ -4083,21 +3949,11 @@
   "Kill the buffer the cursor is on in the speedbar buffer."
   (interactive)
   (or (save-excursion
-	(beginning-of-line)
-	;; If this fails, then it is a non-standard click, and as such,
-	;; perfectly allowed.
-	(if (re-search-forward "[]>?}] [^ ]"
-			       (save-excursion (end-of-line) (point))
-			       t)
-	    (let ((text (progn
-			  (forward-char -1)
-			  (buffer-substring (point) (save-excursion
-						      (end-of-line)
-						      (point))))))
-	      (if (and (get-buffer text)
-		       (speedbar-y-or-n-p (format "Kill buffer %s? " text)))
-		  (kill-buffer text))
-	      (speedbar-refresh))))))
+	(let ((text (speedbar-line-text)))
+	  (if (and (get-buffer text)
+		   (speedbar-y-or-n-p (format "Kill buffer %s? " text)))
+	      (kill-buffer text))
+	  (speedbar-refresh)))))
 
 (defun speedbar-buffer-revert-buffer ()
   "Revert the buffer the cursor is on in the speedbar buffer."
@@ -4168,7 +4024,7 @@
 			       (:foreground "cyan4"))
 			      (((class color) (background dark))
 			       (:foreground "cyan"))
-			      (t (:weight bold)))
+			      (t (:bold t)))
   "Face used for file names."
   :group 'speedbar-faces)
 
@@ -4197,173 +4053,76 @@
 				    (:background "green"))
 				   (((class color) (background dark))
 				    (:background "sea green"))
-				   (((class grayscale mono)
+				   (((class grayscale monochrome)
 				     (background light))
 				    (:background "black"))
-				   (((class grayscale mono)
+				   (((class grayscale monochrome)
 				     (background dark))
 				    (:background "white")))
   "Face used for highlighting buttons with the mouse."
   :group 'speedbar-faces)
 
-
-;;; Image loading and inlining
-;;
-
-;;; Some images if defimage is available:
-(eval-when-compile
-
-(if (fboundp 'defimage)
-    (defalias 'defimage-speedbar 'defimage)
-
-  (if (not (fboundp 'make-glyph))
-
-(defmacro defimage-speedbar (variable imagespec docstring)
-  "Don't bother loading up an image...
-Argument VARIABLE is the variable to define.
-Argument IMAGESPEC is the list defining the image to create.
-Argument DOCSTRING is the documentation for VARIABLE."
-  `(defvar ,variable nil ,docstring))
-
-;; ELSE
-(defun speedbar-find-image-on-load-path (image)
-  "Find the image file IMAGE on the load path."
-  (let ((l load-path)
-	(r nil))
-    (while (and l (not r))
-      (if (file-exists-p (concat (car l) "/" image))
-	  (setq r (concat (car l) "/" image)))
-      (setq l (cdr l)))
-    r))
-
-(defun speedbar-convert-emacs21-imagespec-to-xemacs (spec)
-  "Convert the Emacs21 image SPEC into an XEmacs image spec."
-  (let* ((sl (car spec))
-	 (itype (nth 1 sl))
-	 (ifile (nth 3 sl)))
-    (vector itype ':file (speedbar-find-image-on-load-path ifile))))
-
-(defmacro defimage-speedbar (variable imagespec docstring)
-  "Define VARIABLE as an image if `defimage' is not available.
-IMAGESPEC is the image data, and DOCSTRING is documentation for the image."
-  `(defvar ,variable
-     ;; The Emacs21 version of defimage looks just like the XEmacs image
-     ;; specifier, except that it needs a :type keyword.  If we line
-     ;; stuff up right, we can use this cheat to support XEmacs specifiers.
-     (condition-case nil
-	 (make-glyph
-	  (make-image-specifier
-	   (speedbar-convert-emacs21-imagespec-to-xemacs (quote ,imagespec)))
-	  'buffer)
-       (error nil))
-     ,docstring)))))
-
-(defimage-speedbar speedbar-directory-plus
-  ((:type xpm :file "sb-dir-plus.xpm" :ascent center))
-  "Image used for closed directories with stuff in them.")
-
-(defimage-speedbar speedbar-directory-minus
-  ((:type xpm :file "sb-dir-minus.xpm" :ascent center))
-  "Image used for open directories with stuff in them.")
-
-(defimage-speedbar speedbar-directory
-  ((:type xpm :file "sb-dir.xpm" :ascent center))
-  "Image used for empty or unreadable directories.")
-
-(defimage-speedbar speedbar-page-plus
-  ((:type xpm :file "sb-pg-plus.xpm" :ascent center))
-  "Image used for closed files with stuff in them.")
-
-(defimage-speedbar speedbar-page-minus
-  ((:type xpm :file "sb-pg-minus.xpm" :ascent center))
-  "Image used for open files with stuff in them.")
-
-(defimage-speedbar speedbar-page
-  ((:type xpm :file "sb-pg.xpm" :ascent center))
-  "Image used for files that can't be opened.")
-
-(defimage-speedbar speedbar-tag
-  ((:type xpm :file "sb-tag.xpm" :ascent center))
-  "Image used for tags.")
-
-(defimage-speedbar speedbar-tag-plus
-  ((:type xpm :file "sb-tag-plus.xpm" :ascent center))
-  "Image used for closed tag groups.")
-
-(defimage-speedbar speedbar-tag-minus
-  ((:type xpm :file "sb-tag-minus.xpm" :ascent center))
-  "Image used for open tag groups.")
-
-(defimage-speedbar speedbar-tag-gt
-  ((:type xpm :file "sb-tag-gt.xpm" :ascent center))
-  "Image used for open tag groups.")
-
-(defimage-speedbar speedbar-tag-v
-  ((:type xpm :file "sb-tag-v.xpm" :ascent center))
-  "Image used for open tag groups.")
-
-(defimage-speedbar speedbar-tag-type
-  ((:type xpm :file "sb-tag-type.xpm" :ascent center))
-  "Image used for open tag groups.")
-
-(defimage-speedbar speedbar-mail
-  ((:type xpm :file "sb-mail.xpm" :ascent center))
-  "Image used for open tag groups.")
-
-(defvar speedbar-expand-image-button-alist
-  '(("<+>" . speedbar-directory-plus)
-    ("<->" . speedbar-directory-minus)
-    ("< >" . speedbar-directory)
-    ("[+]" . speedbar-page-plus)
-    ("[-]" . speedbar-page-minus)
-    ("[?]" . speedbar-page)
-    ("{+}" . speedbar-tag-plus)
-    ("{-}" . speedbar-tag-minus)
-    ("<M>" . speedbar-mail)
-    (" =>" . speedbar-tag)
-    (" +>" . speedbar-tag-gt)
-    (" ->" . speedbar-tag-v)
-    (">" . speedbar-tag)
-    ("@" . speedbar-tag-type)
-    ("  @" . speedbar-tag-type)
-    )
-  "List of text and image associations.")
-
-(defun speedbar-insert-image-button-maybe (start length)
-  "Insert an image button based on text starting at START for LENGTH chars.
-If buttontext is unknown, just insert that text.
-If we have an image associated with it, use that image."
-  (if speedbar-use-images
-      (let* ((bt (buffer-substring start (+ length start)))
-	     (a (assoc bt speedbar-expand-image-button-alist)))
-	;; Regular images (created with `insert-image' are intangible
-	;; which (I suppose) make them more compatible with XEmacs 21.
-	;; Unfortunatly, there is a giant pile o code dependent on the
-	;; underlying text.  This means if we leave it tangible, then I
-	;; don't have to change said giant piles o code.
-	(if (and a (symbol-value (cdr a)))
-	    (if (featurep 'xemacs)
-		(add-text-properties (+ start (length bt)) start
-				     (list 'end-glyph (symbol-value (cdr a))
-					   'rear-nonsticky (list 'display)
-					   'invisible t
-					   'detachable t))
-	      (add-text-properties start (+ start (length bt))
-				   (list 'display (symbol-value (cdr a))
-					 'rear-nonsticky (list 'display))))
-	  ;(message "Bad text [%s]" (buffer-substring start (+ start length)))
-	  ))))
-
+(defface speedbar-separator-face '((((class color) (background light))
+				    (:background "blue"
+				     :foreground "white"
+				     :overline "gray"))
+				   (((class color) (background dark))
+				    (:background "blue"
+				     :foreground "white"
+				     :overline "gray"))
+				   (((class grayscale monochrome)
+				     (background light))
+				    (:background "black"
+				     :foreground "white"
+				     :overline "white"))
+				   (((class grayscale monochrome)
+				     (background dark))
+				    (:background "white"
+				     :foreground "black"
+				     :overline "black")))
+  "Face used for separator labes in a display."
+  :group 'speedbar-faces)
 
 ;; some edebug hooks
 (add-hook 'edebug-setup-hook
 	  (lambda ()
 	    (def-edebug-spec speedbar-with-writable def-body)))
 
+;; Fix a font lock problem for some versions of Emacs
+(if (boundp 'font-lock-global-modes)
+    (if (listp font-lock-global-modes)
+	(add-to-list 'font-lock-global-modes '(not speedbar-mode))
+      )
+  )
+
+
+;;; Obsolete variables and functions
+
+(define-obsolete-variable-alias
+  'speedbar-ignored-path-regexp 'speedbar-ignored-directory-regexp)
+
+(define-obsolete-variable-alias 'speedbar-ignored-path-expressions
+  'speedbar-ignored-directory-expressions)
+
+(define-obsolete-function-alias 'speedbar-add-ignored-path-regexp
+  'speedbar-add-ignored-directory-regexp)
+
+(define-obsolete-function-alias 'speedbar-line-path
+  'speedbar-line-directory)
+
+(define-obsolete-function-alias 'speedbar-buffers-line-path
+  'speedbar-buffers-line-directory)
+
+(define-obsolete-function-alias 'speedbar-path-line
+  'speedbar-directory-line)
+
+(define-obsolete-function-alias 'speedbar-buffers-line-path
+  'speedbar-buffers-line-directory)
+
 (provide 'speedbar)
 
 ;; run load-time hooks
 (run-hooks 'speedbar-load-hook)
 
 ;; arch-tag: 4477e6d1-f78c-48b9-a503-387d3c9767d5
-;;; speedbar.el ends here
+;;; speedbar ends here
--- a/lisp/term/mac-win.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/term/mac-win.el	Fri Oct 07 07:15:40 2005 +0000
@@ -1132,6 +1132,7 @@
 (mac-add-charset-info "mac-symbol" 33)
 (mac-add-charset-info "adobe-fontspecific" 33) ; for X-Symbol
 (mac-add-charset-info "mac-dingbats" 34)
+(mac-add-charset-info "iso10646-1" 126) ; for ATSUI
 
 
 ;;;; Keyboard layout/language change events
--- a/lisp/textmodes/artist.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/textmodes/artist.el	Fri Oct 07 07:15:40 2005 +0000
@@ -3379,7 +3379,7 @@
     ;; that look like:    \           /  instead we get:   (           )
     ;;                     \         /                      \         /
     ;;                      ---------                        ---------
-    (let ((last-coord  (last point-list)))
+    (let ((last-coord (car (last point-list))))
       (if (= (artist-coord-get-new-char last-coord) ?/)
 	  (artist-coord-set-new-char last-coord artist-ellipse-right-char)))
 
@@ -3848,8 +3848,8 @@
 	 (x2    (artist-endpoint-get-x ep2))
 	 (y2    (artist-endpoint-get-y ep2))
 	 (dir1  (artist-find-direction x2 y2 x1 y1))
-	 (epn   (last point-list))
-	 (epn-1 (last point-list 2))
+	 (epn   (car (last point-list)))
+	 (epn-1 (car (last point-list 2)))
 	 (xn    (artist-endpoint-get-x epn))
 	 (yn    (artist-endpoint-get-y epn))
 	 (xn-1  (artist-endpoint-get-x epn-1))
--- a/lisp/textmodes/bibtex.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/textmodes/bibtex.el	Fri Oct 07 07:15:40 2005 +0000
@@ -1120,7 +1120,7 @@
   "Regexp matching the name of a valid BibTeX entry.")
 
 (defvar bibtex-valid-entry-whitespace-re
-  (concat "[ \t\n]*\\(" bibtex-valid-entry-re "\\)")
+  (concat "[ \t]*\\(" bibtex-valid-entry-re "\\)")
   "Regexp matching the name of a valid BibTeX entry preceded by whitespace.")
 
 (defvar bibtex-any-valid-entry-re
@@ -2566,34 +2566,33 @@
   "Return summary of current BibTeX entry.
 Used as default value of `bibtex-summary-function'."
   ;; It would be neat to customize this function.  How?
-  (save-excursion
-    (if (looking-at bibtex-entry-maybe-empty-head)
-        (let* ((bibtex-autokey-name-case-convert 'identity)
-               (bibtex-autokey-name-length 'infty)
-               (bibtex-autokey-names 1)
-               (bibtex-autokey-names-stretch 0)
-               (bibtex-autokey-name-separator " ")
-               (bibtex-autokey-additional-names " etal")
-               (names (bibtex-autokey-get-names))
-               (bibtex-autokey-year-length 4)
-               (year (bibtex-autokey-get-year))
-               (bibtex-autokey-titlewords 5)
-               (bibtex-autokey-titlewords-stretch 2)
-               (bibtex-autokey-titleword-case-convert 'identity)
-               (bibtex-autokey-titleword-length 5)
-               (bibtex-autokey-titleword-separator " ")
-               (title (bibtex-autokey-get-title))
-               (journal (bibtex-autokey-get-field
-                         "journal" bibtex-autokey-transcriptions))
-               (volume (bibtex-autokey-get-field "volume"))
-               (pages (bibtex-autokey-get-field "pages" '(("-.*\\'" . "")))))
-          (mapconcat (lambda (arg)
-                       (if (not (string= "" (cdr arg)))
-                           (concat (car arg) (cdr arg))))
-                     `((" " . ,names) (" " . ,year) (": " . ,title)
-                       (", " . ,journal) (" " . ,volume) (":" . ,pages))
-                     ""))
-      (error "Entry not found"))))
+  (if (looking-at bibtex-entry-maybe-empty-head)
+      (let* ((bibtex-autokey-name-case-convert 'identity)
+             (bibtex-autokey-name-length 'infty)
+             (bibtex-autokey-names 1)
+             (bibtex-autokey-names-stretch 0)
+             (bibtex-autokey-name-separator " ")
+             (bibtex-autokey-additional-names " etal")
+             (names (bibtex-autokey-get-names))
+             (bibtex-autokey-year-length 4)
+             (year (bibtex-autokey-get-year))
+             (bibtex-autokey-titlewords 5)
+             (bibtex-autokey-titlewords-stretch 2)
+             (bibtex-autokey-titleword-case-convert 'identity)
+             (bibtex-autokey-titleword-length 5)
+             (bibtex-autokey-titleword-separator " ")
+             (title (bibtex-autokey-get-title))
+             (journal (bibtex-autokey-get-field
+                       "journal" bibtex-autokey-transcriptions))
+             (volume (bibtex-autokey-get-field "volume"))
+             (pages (bibtex-autokey-get-field "pages" '(("-.*\\'" . "")))))
+        (mapconcat (lambda (arg)
+                     (if (not (string= "" (cdr arg)))
+                         (concat (car arg) (cdr arg))))
+                   `((" " . ,names) (" " . ,year) (": " . ,title)
+                     (", " . ,journal) (" " . ,volume) (":" . ,pages))
+                   ""))
+    (error "Entry not found")))
 
 (defun bibtex-pop (arg direction)
   "Fill current field from the ARGth same field's text in DIRECTION.
@@ -3950,9 +3949,9 @@
               (insert " ")
             (indent-to-column bibtex-text-indentation)))
       (re-search-forward "[ \t\n]*=[ \t\n]*" end-field))
-    (while (re-search-forward "[ \t\n]+" end-field 'move)
-      (replace-match " "))
-    (do-auto-fill)
+    ;; Paragraphs within fields are not preserved. Bother?
+    (fill-region-as-paragraph (line-beginning-position) end-field
+                              default-justification nil (point))
     (if move (goto-char end-field))))
 
 (defun bibtex-fill-field (&optional justify)
@@ -3992,13 +3991,14 @@
 (defun bibtex-realign ()
   "Realign BibTeX entries such that they are separated by one blank line."
   (goto-char (point-min))
-  (let ((case-fold-search t))
+  (let ((case-fold-search t)
+        (valid-entry (concat "[ \t\n]*\\(" bibtex-valid-entry-re "\\)")))
     ;; No blank lines prior to the first valid entry if there no
     ;; non-white characters in front of it.
-    (when (looking-at bibtex-valid-entry-whitespace-re)
+    (when (looking-at valid-entry)
       (replace-match "\\1"))
     ;; Valid entries are separated by one blank line.
-    (while (re-search-forward bibtex-valid-entry-whitespace-re nil t)
+    (while (re-search-forward valid-entry nil t)
       (replace-match "\n\n\\1"))
     ;; One blank line past the last valid entry if it is followed by
     ;; non-white characters, no blank line otherwise.
--- a/lisp/textmodes/flyspell.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/textmodes/flyspell.el	Fri Oct 07 07:15:40 2005 +0000
@@ -536,6 +536,7 @@
 ;*---------------------------------------------------------------------*/
 (defun flyspell-mode-on ()
   "Turn Flyspell mode on.  Do not use this; use `flyspell-mode' instead."
+  (ispell-maybe-find-aspell-dictionaries)
   (setq ispell-highlight-face 'flyspell-incorrect)
   ;; local dictionaries setup
   (or ispell-local-dictionary ispell-dictionary
--- a/lisp/textmodes/ispell.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/textmodes/ispell.el	Fri Oct 07 07:15:40 2005 +0000
@@ -892,7 +892,6 @@
 
 (defun ispell-find-aspell-dictionaries ()
   "Find Aspell's dictionaries, and record in `ispell-dictionary-alist'."
-  (interactive)
   (unless ispell-really-aspell
     (error "This function only works with aspell"))
   (let ((dictionaries
@@ -1528,6 +1527,7 @@
   (interactive (list ispell-following-word ispell-quietly current-prefix-arg))
   (if continue
       (ispell-continue)
+    (ispell-maybe-find-aspell-dictionaries)
     (ispell-accept-buffer-local-defs)	; use the correct dictionary
     (let ((cursor-location (point))	; retain cursor location
 	  (word (ispell-get-word following))
@@ -2586,6 +2586,7 @@
 Return nil if spell session is quit,
  otherwise returns shift offset amount for last line processed."
   (interactive "r")			; Don't flag errors on read-only bufs.
+  (ispell-maybe-find-aspell-dictionaries)
   (if (not recheckp)
       (ispell-accept-buffer-local-defs)) ; set up dictionary, local words, etc.
   (let ((skip-region-start (make-marker))
@@ -3547,7 +3548,6 @@
 
 (defun ispell-accept-buffer-local-defs ()
   "Load all buffer-local information, restarting Ispell when necessary."
-  (ispell-maybe-find-aspell-dictionaries)
   (ispell-buffer-local-dict)		; May kill ispell-process.
   (ispell-buffer-local-words)		; Will initialize ispell-process.
   (ispell-buffer-local-parsing))
--- a/lisp/textmodes/tex-mode.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/textmodes/tex-mode.el	Fri Oct 07 07:15:40 2005 +0000
@@ -631,7 +631,10 @@
       (,(concat "^\\(\\\\\\)end *{" verbs "}\\(.?\\)") (1 "|") (3 "<"))
       ;; ("^\\(\\\\\\)begin *{comment}" 1 "< b")
       ;; ("^\\\\end *{comment}.*\\(\n\\)" 1 "> b")
-      ("\\\\verb\\**\\([^a-z@*]\\)" 1 "\""))))
+      ("\\\\verb\\**\\([^a-z@*]\\)"
+       ;; Do it last, because it uses syntax-ppss which needs the
+       ;; syntax-table properties of previous entries.
+       1 (tex-font-lock-verb (match-end 1))))))
 
 (defun tex-font-lock-unfontify-region (beg end)
   (font-lock-default-unfontify-region beg end)
@@ -670,22 +673,38 @@
 (put 'tex-verbatim-face 'face-alias 'tex-verbatim)
 (defvar tex-verbatim-face 'tex-verbatim)
 
+(defun tex-font-lock-verb (end)
+  "Place syntax-table properties on the \verb construct.
+END is the position of the first delimiter after \verb."
+  (unless (nth 8 (syntax-ppss end))
+    ;; Do nothing if the \verb construct is itself inside a comment or
+    ;; verbatim env.
+    (save-excursion
+      ;; Let's find the end and mark it.
+      ;; We used to do it inside tex-font-lock-syntactic-face-function, but
+      ;; this leads to funny effects when jumping to the end of the buffer,
+      ;; because font-lock applies font-lock-syntactic-keywords to the whole
+      ;; preceding text but font-lock-syntactic-face-function only to the
+      ;; actually displayed text.
+      (goto-char end)
+      (let ((char (char-before)))
+        (skip-chars-forward (string ?^ char)) ;; Use `end' ?
+        (when (eq (char-syntax (preceding-char)) ?/)
+          (put-text-property (1- (point)) (point) 'syntax-table '(1)))
+        (unless (eobp)
+          (put-text-property (point) (1+ (point)) 'syntax-table '(7))
+          ;; Cause the rest of the buffer to be re-fontified.
+          ;; (remove-text-properties (1+ (point)) (point-max) '(fontified))
+          )))
+    "\""))
+
 ;; Use string syntax but math face for $...$.
 (defun tex-font-lock-syntactic-face-function (state)
   (let ((char (nth 3 state)))
     (cond
      ((not char) font-lock-comment-face)
      ((eq char ?$) tex-math-face)
-     (t
-      (when (characterp char)
-	;; This is a \verb?...? construct.  Let's find the end and mark it.
-	(save-excursion
-	  (skip-chars-forward (string ?^ char)) ;; Use `end' ?
-	  (when (eq (char-syntax (preceding-char)) ?/)
-	    (put-text-property (1- (point)) (point) 'syntax-table '(1)))
-	  (unless (eobp)
-	    (put-text-property (point) (1+ (point)) 'syntax-table '(7)))))
-      tex-verbatim-face))))
+     (t tex-verbatim-face))))
 
 
 (defun tex-define-common-keys (keymap)
Binary file lisp/toolbar/alias.pbm has changed
--- a/lisp/toolbar/alias.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * alias_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 4 1",
-" 	c None",
-".	c #61b761b7600a",
-"X	c #a5d8a5d89550",
-"o	c black",
-/* pixels */
-"                        ",
-"                        ",
-"                        ",
-"     ......             ",
-"   ...XXXX..XX          ",
-"  o..ooooooo...         ",
-" ooo      oooo..X       ",
-" o.X        ooo...      ",
-" o.X          ooo.XX    ",
-" o.X            oo..    ",
-" o.X             oo.    ",
-" o...            oo..   ",
-"  o.X             o..   ",
-"  o.XX            oX.   ",
-"   o....          oo.   ",
-"    o..XX        oooo   ",
-"     o...XXX   XXoooo   ",
-"      ooo........ooooo  ",
-"        oooooXXooooo.oo ",
-"            ooo    o..oo",
-"                    o...",
-"                     ooo",
-"                      oo",
-"                        "};
Binary file lisp/toolbar/execute.pbm has changed
--- a/lisp/toolbar/execute.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* XPM */
-static char * mail_exec_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 6 1",
-" 	c None",
-".	c black",
-"X	c #a5d8a5d89550",
-"o	c #d305d305bc3c",
-"O	c #ea03ea03d271",
-"+	c white",
-/* pixels */
-"                        ",
-"                        ",
-"                        ",
-"                 ..     ",
-"             XX  ..     ",
-"         oo  XX  ..     ",
-"     OO  oo  XX  ..     ",
-"     OO  oo  XX  ..     ",
-"     OO  oo  XX  ..     ",
-"     OO  oo  XX  ..     ",
-"     OO  oo  XX  ..     ",
-"     OO  oo  XX  ..     ",
-"     OO  oo  XX  ..     ",
-"     OO  oo  XX         ",
-"     OO  oo             ",
-"     OO      +   ..     ",
-"             XX  ..     ",
-"         oo  XX         ",
-"     OO  oo             ",
-"     OO                 ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/highlight.pbm has changed
--- a/lisp/toolbar/highlight.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * highlight_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 4 1",
-" 	c None",
-".	c black",
-"X	c #828282827474",
-"o	c #dd00df007e00",
-/* pixels */
-"                 .....  ",
-"                ..XXX.. ",
-"                .XXXXX. ",
-"               .XXXXX.. ",
-"               .XXXXX.  ",
-"               .XXXXX.  ",
-"              .XXXXX.   ",
-"              .ooXX.    ",
-"              ..ooo.    ",
-"       oooo     ....    ",
-"oo.ooo....oo ...        ",
-"o.o.ooo.oo.o.ooo.o      ",
-".ooo.oo.oo.o.ooooo      ",
-".ooo.oo.oo.o.ooooo      ",
-".ooo.oo...oo.ooooo      ",
-".....oo.oo.o.ooooo      ",
-".ooo.oo.oo.o.ooooo      ",
-".ooo.oo.oo.o.ooo.o      ",
-". oo.o....ooo...o       ",
-"         oo oooo        ",
-"                        ",
-"                        ",
-"                        ",
-"                        "};
--- a/lisp/toolbar/mh-logo.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-/* XPM */
-static char *mh-e[] = {
-/* width height num_colors chars_per_pixel */
-"    18    13        2            1",
-/* colors */
-"# c #666699",
-". c None s None",
-/* pixels */
-"........##........",
-".......####.......",
-"......######......",
-"......######......",
-"....#########.....",
-"..##############..",
-".##...######....#.",
-"##...#.#.####...#.",
-"....#..#.##.#...#.",
-"...#..##.#.#.#....",
-"...#..#..#..#.#...",
-"...#..#.##..#.##..",
-"...#..#.#..#....#."
-};
Binary file lisp/toolbar/page-down.pbm has changed
--- a/lisp/toolbar/page-down.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-/* XPM */
-static char * mail_page_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 5 1",
-" 	c None",
-".	c black",
-"X	c #ea03ea03d271",
-"o	c #a5d8a5d89550",
-"O	c #d305d305bc3c",
-/* pixels */
-"                        ",
-"                        ",
-"   ..................   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XoooooooooooooXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .Xoooooooooo..oXX.   ",
-"   .XXXXXXXXXXX..XXX.   ",
-"   .XXXXXXXXXXX..XXX.   ",
-"   .XooooooXXXX..XXX.   ",
-"   .XXXXXXXXXXX..XXX.   ",
-"   .XXXXXXXXX.O..O.X.   ",
-"   .Xoooooooo.....XX.   ",
-"   .XXXXXXXXXX....XX.   ",
-"   .XXXXXXXXXXX..XXX.   ",
-"   .XXXXXXXXXXXooXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   ..................   ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/refile.pbm has changed
--- a/lisp/toolbar/refile.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-/* XPM */
-static char * refile_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 7 1",
-" 	c None",
-".	c black",
-"X	c #a5d8a5d89550",
-"o	c #d305d305bc3c",
-"O	c #ea03ea03d271",
-"+	c #828282827474",
-"@	c #61b761b7600a",
-/* pixels */
-"             .          ",
-"           ..X.         ",
-"         ..XoO....      ",
-"       ..XooooO.+.      ",
-"     ..XooooooOX..  ..  ",
-"    .@@ooooooOOO@. ...  ",
-"    .O@oooooOOOOO..@@.  ",
-"    .OO@oooOOOOOO..@@.  ",
-"  ...OO@XooOOOOO...@@.  ",
-" ..+.O@XooOOOO..@@@@@.  ",
-" .++..XooOOOO..@@@@@@.  ",
-" .++.@oooOO...@@@@@@@.  ",
-" ..+.XooOOO..@@@@@@@.   ",
-"  .++.OOOO.@@@@@@@@.    ",
-"   .+.oOO..@@@@@@@.     ",
-"   .++.OO.@@@@@@@.      ",
-"    .++.O.@@@@@..       ",
-"    ..+.O.@@@@@.        ",
-"     .++..@@@@.         ",
-"     ..++.@@@.          ",
-"       .+.@@.           ",
-"       ...@.            ",
-"        ...             ",
-"         .              "};
Binary file lisp/toolbar/repack.pbm has changed
--- a/lisp/toolbar/repack.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* XPM */
-static char * mail_repack_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 6 1",
-" 	c None",
-".	c black",
-"X	c #a5d8a5d89550",
-"o	c #d305d305bc3c",
-"O	c #ea03ea03d271",
-"+	c #828282827474",
-/* pixels */
-"                        ",
-"                        ",
-"       ..............   ",
-"      .XXXXXXXXXXXX..   ",
-"     .XXXXXXXXXXXX.X.   ",
-"    .XXXXXXXXXXXX.oo.   ",
-"   ..............ooo.   ",
-"   .OOOOOOOOOOOO.oo.    ",
-"   .O++++++++++O.oo.    ",
-"   .O+XXXXXXXX+O.o.     ",
-"    .+XXXXXXXX+.o..     ",
-"    .+XX...XXX+....     ",
-"     ....o.......oo.    ",
-"     ....o.....Oooo.    ",
-"    .OOO...OOOO.oooo.   ",
-"    .++++++++++.oooo.   ",
-"    .+XXXXXXXX+.oooo.   ",
-"   .O+XXXXXXXX+O.ooX.   ",
-"   .O+XXXXXXXX+O.oo..   ",
-"   .O++++++++++O.o..    ",
-"  ..OOOOOOOOOOOO...     ",
-"  ................      ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/reply-all.pbm has changed
--- a/lisp/toolbar/reply-all.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/* XPM */
-static char * reply_all_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 9 1",
-" 	c None",
-".	c black",
-"X	c #673e666663d4",
-"o	c #eb46ea1de471",
-"O	c #a852a7bea3d2",
-"+	c #ae51c17b9b26",
-"@	c #8d4d97577838",
-"#	c #7c7c8b8b6e6e",
-"$	c #5e0868be52d3",
-/* pixels */
-"                        ",
-"                        ",
-"              ....      ",
-"         .....XooO.     ",
-"    .....XOooooooO.     ",
-"   .XOooooooooooXOO.    ",
-"   .oXXooooooooOXOo.    ",
-"   .OoOXXooooooXOoo.    ",
-"    .oooOOXOooXXXooO.   ",
-"    ........XXOoOXOo.   ",
-"    ..++++@.ooooooXO.   ",
-"     ..+@@@.oooooooXO.  ",
-"    ..+@@@#.oooooooO..  ",
-"  ..++@@@#$.ooooO...    ",
-" .++++@@#.$    ..       ",
-"  .+@@@#.o  ..   .O .O  ",
-"   .+@#$.   .O.  .O .O  ",
-"    .#$.   .O .o .O .O  ",
-"     .$.   .  .O .O .O  ",
-"      .    ....O .O .O  ",
-"           .O .O .O .O  ",
-"           .O .O .O .O  ",
-"           .O .O .O .O  ",
-"                        "};
Binary file lisp/toolbar/reply-from.pbm has changed
--- a/lisp/toolbar/reply-from.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/* XPM */
-static char * reply_from_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 9 1",
-" 	c None",
-".	c black",
-"X	c #673e666663d4",
-"o	c #eb46ea1de471",
-"O	c #a852a7bea3d2",
-"+	c #ae51c17b9b26",
-"@	c #8d4d97577838",
-"#	c #7c7c8b8b6e6e",
-"$	c #5e0868be52d3",
-/* pixels */
-"                        ",
-"                        ",
-"              ....      ",
-"         .....XooO.     ",
-"    .....XOooooooO.     ",
-"   .XOooooooooooXOO.    ",
-"   .oXXooooooooOXOo.    ",
-"   .OoOXXooooooXOoo.    ",
-"    .oooOOXOooXXXooO.   ",
-"    ........XXOoOXOo.   ",
-"    ..++++@.ooooooXO.   ",
-"     ..+@@@.oooooooXO.  ",
-"    ..+@@@#.oooooooO..  ",
-"  ..++@@@#$.ooooO...    ",
-"        #.$.oO...       ",
-"   ...O . ....          ",
-"   ...O                 ",
-"   .O                   ",
-"   ...O ..O .... .O O.  ",
-"   ...O ..O .OO. .....  ",
-"   .O   .O  .  . . . .  ",
-"   .O   .O  .OO. . . .  ",
-"   .O   .O  .... . O .  ",
-"                        "};
Binary file lisp/toolbar/reply-to.pbm has changed
--- a/lisp/toolbar/reply-to.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-/* XPM */
-static char * reply_to_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 9 1",
-" 	c None",
-".	c black",
-"X	c #673e666663d4",
-"o	c #eb46ea1de471",
-"O	c #a852a7bea3d2",
-"+	c #ae51c17b9b26",
-"@	c #8d4d97577838",
-"#	c #7c7c8b8b6e6e",
-"$	c #5e0868be52d3",
-/* pixels */
-"                        ",
-"                        ",
-"              ....      ",
-"         .....XooO.     ",
-"    .....XOooooooO.     ",
-"   .XOooooooooooXOO.    ",
-"   .oXXooooooooOXOo.    ",
-"   .OoOXXooooooXOoo.    ",
-"    .oooOOXOooXXXooO.   ",
-"    ........XXOoOXOo.   ",
-"    ..++++@.ooooooXO.   ",
-"     ..+@@@.oooooooXO.  ",
-"    ..+@@@#.oooooooO..  ",
-"  ..++@@@#$.ooooO...    ",
-" .++++@@#.$             ",
-"  .+@@@#.o  ......      ",
-"   .+@#$.   OO.OOO      ",
-"    .#$.      .O        ",
-"     .$.      .O  ....  ",
-"      .       .O  .OO.  ",
-"              .O  .  .  ",
-"              .O  .OO.  ",
-"              .O  ....  ",
-"                        "};
Binary file lisp/toolbar/rescan.pbm has changed
--- a/lisp/toolbar/rescan.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* XPM */
-static char * mail_rescan_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 6 1",
-" 	c None",
-".	c black",
-"X	c #a5d8a5d89550",
-"o	c #d305d305bc3c",
-"O	c #ea03ea03d271",
-"+	c #828282827474",
-/* pixels */
-"                        ",
-"                        ",
-"       ..............   ",
-"      .XXXXXXXXXXXX..   ",
-"     .XXXXXXXXXXXX.X.   ",
-"    .XXXXXXXXXXXX.oo.   ",
-"   ..............ooo.   ",
-"   .OOOOOOOOOOOO.ooo.   ",
-"   .O++++++++++O.ooo.   ",
-"   .O+XXXXXXXX+O.ooo.   ",
-"   .O+XXXXXXXX+O.ooo.   ",
-"   .O+XXXXXXXX+O.ooo.   ",
-"   .O+XXXXXXXX+O.ooo.   ",
-"   .O++++++++++O.ooo.   ",
-"   .OOOOOOOOOOOO.ooo.   ",
-"   .O++++++++++O.ooo.   ",
-"   .O+XXXXXXXX+O.ooo.   ",
-"   .O+XXXXXXXX+O.ooX.   ",
-"   .O+XXXXXXXX+O.oo..   ",
-"   .O++++++++++O.o..    ",
-"  ..OOOOOOOOOOOO...     ",
-"  ................      ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/show.pbm has changed
--- a/lisp/toolbar/show.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,33 +0,0 @@
-/* XPM */
-static char * mail_show_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 4 1",
-" 	c None",
-".	c black",
-"X	c #ea03ea03d271",
-"o	c #a5d8a5d89550",
-/* pixels */
-"                        ",
-"                        ",
-"   ..................   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XoooooooooooooXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XoooooooooooooXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XooooooXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XoooooooooXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   .XXXXXXXXXXXXXXXX.   ",
-"   ..................   ",
-"                        ",
-"                        ",
-"                        "};
Binary file lisp/toolbar/widen.pbm has changed
--- a/lisp/toolbar/widen.xpm	Thu Oct 06 02:00:50 2005 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-/* XPM */
-static char * widen_xpm[] = {
-/* columns rows colors chars-per-pixel */
-"24 24 3 1",
-" 	c None",
-".	c #8d4d97577838",
-"X	c black",
-/* pixels */
-"                        ",
-"                        ",
-"                        ",
-"  .                  .  ",
-"  .                  .  ",
-"  .                  .  ",
-"  .                  .  ",
-"  .                  .  ",
-"  .   XX        XX   .  ",
-"  .  XX          XX  .  ",
-"  . XX            XX .  ",
-"  .XXXXXXXX  XXXXXXXX.  ",
-"  .XXXXXXXX  XXXXXXXX.  ",
-"  . XX            XX .  ",
-"  .  XX          XX  .  ",
-"  .   XX        XX   .  ",
-"  .                  .  ",
-"  .                  .  ",
-"  .                  .  ",
-"  .                  .  ",
-"  .                  .  ",
-"                        ",
-"                        ",
-"                        "};
--- a/lisp/url/ChangeLog	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/url/ChangeLog	Fri Oct 07 07:15:40 2005 +0000
@@ -1,3 +1,8 @@
+2005-10-03  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* url-http.el (url-http-create-request): Avoid incorrect implicit
+	unibyte->multibyte conversion.
+
 2005-09-17  Richard M. Stallman  <rms@gnu.org>
 
 	* url-vars.el (url-mail-command): Don't test fboundp of `compose-mail'.
--- a/lisp/url/url-http.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/url/url-http.el	Fri Oct 07 07:15:40 2005 +0000
@@ -194,79 +194,92 @@
 	(setq extra-headers (concat extra-headers "\r\n")))
 
     ;; This was done with a call to `format'.  Concatting parts has
-    ;; the advantage of keeping the parts of each header togther and
+    ;; the advantage of keeping the parts of each header together and
     ;; allows us to elide null lines directly, at the cost of making
     ;; the layout less clear.
     (setq request
-	  (concat
-	   ;; The request
-	   (or url-request-method "GET") " "
-	   (if proxy-obj (url-recreate-url proxy-obj) real-fname)
-	   " HTTP/" url-http-version "\r\n"
-	   ;; Version of MIME we speak
-	   "MIME-Version: 1.0\r\n"
-	   ;; (maybe) Try to keep the connection open
-	   "Connection: " (if (or proxy-obj
-				  (not url-http-attempt-keepalives))
-			      "close" "keep-alive") "\r\n"
-	   ;; HTTP extensions we support
-	   (if url-extensions-header
-	       (format
-		"Extension: %s\r\n" url-extensions-header))
-	   ;; Who we want to talk to
-	   (if (/= (url-port (or proxy-obj url))
-		   (url-scheme-get-property
-		    (url-type (or proxy-obj url)) 'default-port))
-	       (format
-		"Host: %s:%d\r\n" host (url-port (or proxy-obj url)))
-	     (format "Host: %s\r\n" host))
-	   ;; Who its from
-	   (if url-personal-mail-address
-	       (concat
-		"From: " url-personal-mail-address "\r\n"))
-	   ;; Encodings we understand
-	   (if url-mime-encoding-string
-	       (concat
-		"Accept-encoding: " url-mime-encoding-string "\r\n"))
-	   (if url-mime-charset-string
-	       (concat
-		"Accept-charset: " url-mime-charset-string "\r\n"))
-	   ;; Languages we understand
-	   (if url-mime-language-string
-	       (concat
-		"Accept-language: " url-mime-language-string "\r\n"))
-	   ;; Types we understand
-	   "Accept: " (or url-mime-accept-string "*/*") "\r\n"
-	   ;; User agent
-	   (url-http-user-agent-string)
-	   ;; Proxy Authorization
-	   proxy-auth
-	   ;; Authorization
-	   auth
-	   ;; Cookies
-	   (url-cookie-generate-header-lines host real-fname
-					     (equal "https" (url-type url)))
-	   ;; If-modified-since
-	   (if (and (not no-cache)
-		    (member url-request-method '("GET" nil)))
-	       (let ((tm (url-is-cached (or proxy-obj url))))
-		 (if tm
-		     (concat "If-modified-since: "
-			     (url-get-normalized-date tm) "\r\n"))))
-	   ;; Whence we came
-	   (if ref-url (concat
-			"Referer: " ref-url "\r\n"))
-	   extra-headers
-	   ;; Length of data
-	   (if url-request-data
-	       (concat
-		"Content-length: " (number-to-string
-				    (length url-request-data))
-		"\r\n"))
-	   ;; End request
-	   "\r\n"
-	   ;; Any data
-	   url-request-data))
+          ;; We used to concat directly, but if one of the strings happens
+          ;; to being multibyte (even if it only contains pure ASCII) then
+          ;; every string gets converted with `string-MAKE-multibyte' which
+          ;; turns the 127-255 codes into things like latin-1 accented chars
+          ;; (it would work right if it used `string-TO-multibyte' instead).
+          ;; So to avoid the problem we force every string to be unibyte.
+          (mapconcat
+           ;; FIXME: Instead of `string-AS-unibyte' we'd want
+           ;; `string-to-unibyte', so as to properly signal an error if one
+           ;; of the strings contains a multibyte char.
+           'string-as-unibyte
+           (delq nil
+            (list
+             ;; The request
+             (or url-request-method "GET") " "
+             (if proxy-obj (url-recreate-url proxy-obj) real-fname)
+             " HTTP/" url-http-version "\r\n"
+             ;; Version of MIME we speak
+             "MIME-Version: 1.0\r\n"
+             ;; (maybe) Try to keep the connection open
+             "Connection: " (if (or proxy-obj
+                                    (not url-http-attempt-keepalives))
+                                "close" "keep-alive") "\r\n"
+                                ;; HTTP extensions we support
+             (if url-extensions-header
+                 (format
+                  "Extension: %s\r\n" url-extensions-header))
+             ;; Who we want to talk to
+             (if (/= (url-port (or proxy-obj url))
+                     (url-scheme-get-property
+                      (url-type (or proxy-obj url)) 'default-port))
+                 (format
+                  "Host: %s:%d\r\n" host (url-port (or proxy-obj url)))
+               (format "Host: %s\r\n" host))
+             ;; Who its from
+             (if url-personal-mail-address
+                 (concat
+                  "From: " url-personal-mail-address "\r\n"))
+             ;; Encodings we understand
+             (if url-mime-encoding-string
+                 (concat
+                  "Accept-encoding: " url-mime-encoding-string "\r\n"))
+             (if url-mime-charset-string
+                 (concat
+                  "Accept-charset: " url-mime-charset-string "\r\n"))
+             ;; Languages we understand
+             (if url-mime-language-string
+                 (concat
+                  "Accept-language: " url-mime-language-string "\r\n"))
+             ;; Types we understand
+             "Accept: " (or url-mime-accept-string "*/*") "\r\n"
+             ;; User agent
+             (url-http-user-agent-string)
+             ;; Proxy Authorization
+             proxy-auth
+             ;; Authorization
+             auth
+             ;; Cookies
+             (url-cookie-generate-header-lines host real-fname
+                                               (equal "https" (url-type url)))
+             ;; If-modified-since
+             (if (and (not no-cache)
+                      (member url-request-method '("GET" nil)))
+                 (let ((tm (url-is-cached (or proxy-obj url))))
+                   (if tm
+                       (concat "If-modified-since: "
+                               (url-get-normalized-date tm) "\r\n"))))
+             ;; Whence we came
+             (if ref-url (concat
+                          "Referer: " ref-url "\r\n"))
+             extra-headers
+             ;; Length of data
+             (if url-request-data
+                 (concat
+                  "Content-length: " (number-to-string
+                                      (length url-request-data))
+                  "\r\n"))
+             ;; End request
+             "\r\n"
+             ;; Any data
+             url-request-data))
+           ""))
     (url-http-debug "Request is: \n%s" request)
     request))
 
--- a/lisp/wid-edit.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/wid-edit.el	Fri Oct 07 07:15:40 2005 +0000
@@ -58,6 +58,8 @@
 
 ;;; Code:
 
+(defvar widget)
+
 ;;; Compatibility.
 
 (defun widget-event-point (event)
@@ -3028,12 +3030,12 @@
   "Perform completion on file name preceding point."
   (interactive)
   (let* ((end (point))
-	 (beg (save-excursion
-		(skip-chars-backward "^ ")
-		(point)))
+	 (beg (widget-field-start widget))
 	 (pattern (buffer-substring beg end))
 	 (name-part (file-name-nondirectory pattern))
-	 (directory (file-name-directory pattern))
+	 ;; I think defaulting to root is right
+	 ;; because these really should be absolute file names.
+	 (directory (or (file-name-directory pattern) "/"))
 	 (completion (file-name-completion name-part directory)))
     (cond ((eq completion t))
 	  ((null completion)
--- a/lisp/x-dnd.el	Thu Oct 06 02:00:50 2005 +0000
+++ b/lisp/x-dnd.el	Fri Oct 07 07:15:40 2005 +0000
@@ -307,13 +307,17 @@
 	 (action (aref state 5))
 	 (w (posn-window (event-start event))))
     (when handler
-      (if (and (windowp w) (window-live-p w))
-	  ;; If dropping in a window, open files in that window rather
-	  ;; than in a new widow.
-	  (let ((dnd-open-file-other-window nil))
+      (if (and (windowp w) (window-live-p w)
+	       (not (window-minibuffer-p w))
+	       (not (window-dedicated-p w)))
+	  ;; If dropping in an ordinary window which we could use,
+	  ;; let dnd-open-file-other-window specify what to do.
+	  (progn
 	    (goto-char (posn-point (event-start event)))
 	    (funcall handler window action data))
-	(let ((dnd-open-file-other-window t))  ;; Dropping on non-window.
+	;; If we can't display the file here,
+	;; make a new window for it.
+	(let ((dnd-open-file-other-window t))
 	  (select-frame frame)
 	  (funcall handler window action data))))))
 
--- a/lispref/ChangeLog	Thu Oct 06 02:00:50 2005 +0000
+++ b/lispref/ChangeLog	Fri Oct 07 07:15:40 2005 +0000
@@ -1,3 +1,18 @@
+2005-10-04  Kim F. Storm  <storm@cua.dk>
+
+	* windows.texi (Window Split Tree): New section describing
+	new function window-split-tree function.
+
+2005-10-03  Nick Roberts  <nickrob@snap.net.nz>
+
+	* display.texi (Fringe Size/Pos): Simplify and add detail.
+
+2005-09-30  Romain Francoise  <romain@orebokech.com>
+
+	* minibuf.texi (High-Level Completion): Explain that the prompt
+	given to `read-buffer' should end with a colon and a space.
+	Update usage examples.
+
 2005-09-29  Juri Linkov  <juri@jurta.org>
 
 	* display.texi (Displaying Messages): Rename argument name
--- a/lispref/display.texi	Thu Oct 06 02:00:50 2005 +0000
+++ b/lispref/display.texi	Fri Oct 07 07:15:40 2005 +0000
@@ -2730,23 +2730,25 @@
 @node Fringe Size/Pos
 @subsection Fringe Size and Position
 
-  Here's how to control the position and width of the window fringes.
+  The following buffer-local variables control the position and width
+of the window fringes.
 
 @defvar fringes-outside-margins
-If the value is non-@code{nil}, the frames appear outside the display
-margins.  The fringes normally appear between the display margins and
-the window text.  It works to set @code{fringes-outside-margins}
-buffer-locally.  @xref{Display Margins}.
+The fringes normally appear between the display margins and the window
+text.  If the value is non-@code{nil}, they appear outside the display
+margins.  @xref{Display Margins}.
 @end defvar
 
 @defvar left-fringe-width
 This variable, if non-@code{nil}, specifies the width of the left
-fringe in pixels.
+fringe in pixels.  A value of @code{nil} means to use the left fringe
+width from the window's frame.
 @end defvar
 
 @defvar right-fringe-width
 This variable, if non-@code{nil}, specifies the width of the right
-fringe in pixels.
+fringe in pixels.  A value of @code{nil} means to use the right fringe
+width from the window's frame.
 @end defvar
 
   The values of these variables take effect when you display the
--- a/lispref/minibuf.texi	Thu Oct 06 02:00:50 2005 +0000
+++ b/lispref/minibuf.texi	Fri Oct 07 07:15:40 2005 +0000
@@ -1044,6 +1044,11 @@
 it should be a string or a buffer.  It is mentioned in the prompt, but
 is not inserted in the minibuffer as initial input.
 
+The argument @var{prompt} should be a string ending with a colon and a
+space.  If @var{default} is non-@code{nil}, the function inserts it in
+@var{prompt} before the colon to follow the convention for reading from
+the minibuffer with a default value (@pxref{Programming Tips}).
+
 If @var{existing} is non-@code{nil}, then the name specified must be
 that of an existing buffer.  The usual commands to exit the minibuffer
 do not exit if the text is not valid, and @key{RET} does completion to
@@ -1058,7 +1063,7 @@
 @samp{minibuffer.texi}, so that name is the value.
 
 @example
-(read-buffer "Buffer name? " "foo" t)
+(read-buffer "Buffer name: " "foo" t)
 @group
 ;; @r{After evaluation of the preceding expression,}
 ;;   @r{the following prompt appears,}
@@ -1067,7 +1072,7 @@
 
 @group
 ---------- Buffer: Minibuffer ----------
-Buffer name? (default foo) @point{}
+Buffer name (default foo): @point{}
 ---------- Buffer: Minibuffer ----------
 @end group
 
--- a/lispref/windows.texi	Thu Oct 06 02:00:50 2005 +0000
+++ b/lispref/windows.texi	Fri Oct 07 07:15:40 2005 +0000
@@ -30,6 +30,7 @@
 * Size of Window::          Accessing the size of a window.
 * Resizing Windows::        Changing the size of a window.
 * Coordinates and Windows:: Converting coordinates to windows.
+* Window Split Tree::       The layout and sizes of all windows in a frame.
 * Window Configurations::   Saving and restoring the state of the screen.
 * Window Hooks::            Hooks for scrolling, window size changes,
                               redisplay going past a certain point,
@@ -2167,6 +2168,32 @@
 argument because it always uses the frame that @var{window} is on.
 @end defun
 
+@node Window Split Tree
+@section The Window Split Tree
+@cindex window split tree
+
+  A @dfn{window split tree} specifies the layout, size, and relationship
+between all windows in one frame.
+
+@defun split-window-tree &optional frame
+This function returns the window split tree for frame @var{frame}.
+If @var{frame} is omitted, the selected frame is used.
+
+The return value is a list of the form @code{(@var{root} @var{mini})},
+where @var{root} represents the window split tree of the frame's
+root window, and @var{mini} is the frame's minibuffer window.
+
+If the root window is not split, @var{root} is the root window itself.
+Otherwise, @var{root} is a list @code{(@var{dir} @var{edges} @var{w1}
+@var{w2} ...)} where @var{dir} is @code{nil} for a horisontal split,
+and @code{t} for a vertical split, @var{edges} gives the combined size and
+position of the subwindows in the split, and the rest of the elements
+are the subwindows in the split.  Each of the subwindows may again be
+a window or a list representing a window split, and so on.  The
+@var{edges} element is a list @code{(@var{left}@var{ top}@var{ right}@var{ bottom})}
+similar to the value returned by @code{window-edges}.
+@end defun
+
 @node Window Configurations
 @section Window Configurations
 @cindex window configurations
--- a/man/ChangeLog	Thu Oct 06 02:00:50 2005 +0000
+++ b/man/ChangeLog	Fri Oct 07 07:15:40 2005 +0000
@@ -1,3 +1,22 @@
+2005-10-07  Nick Roberts  <nickrob@snap.net.nz>
+
+	* building.texi (GDB Graphical Interface): Add variables and
+	functions to indices.  Be more precise.
+
+2005-10-05  Nick Roberts  <nickrob@snap.net.nz>
+
+	* speedbar.texi (GDB): Describe use of watch expressions.
+
+2005-10-03  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
+
+	* frames.texi (Drag and Drop): Remove the x- from
+	x-dnd-open-file-other-window and xdnd-protocol-alist.
+
+2005-09-30  Romain Francoise  <romain@orebokech.com>
+
+	* mini.texi (Minibuffer): The default value now appears before the
+	colon in minibuffer prompts.
+
 2005-09-28  Simon Josefsson  <jas@extundo.com>
 
 	* message.texi (IDNA): Fix.
--- a/man/building.texi	Thu Oct 06 02:00:50 2005 +0000
+++ b/man/building.texi	Fri Oct 07 07:15:40 2005 +0000
@@ -749,6 +749,8 @@
 @node GDB Graphical Interface
 @subsection GDB Graphical Interface
 
+@findex gdb-mouse-set-clear-breakpoint
+@findex gdb-mouse-toggle-breakpoint
   By default, the command @code{gdb} starts GDB using a graphical
 interface where you view and control the program's data using Emacs
 windows.  You can still interact with GDB through the GUD buffer, but
@@ -854,7 +856,7 @@
 when it is disabled.  Text-only terminals correspondingly display
 a @samp{B} or @samp{b}.
 
-@item @kbd{d}
+@item d
 @kindex d @r{(GDB breakpoints buffer)}
 @findex gdb-delete-breakpoint
 Delete the breakpoint at the current line (@code{gdb-delete-breakpoint}).
@@ -874,17 +876,19 @@
 of the nested subroutine calls (@dfn{stack frames}) now active in the
 program.  @xref{Backtrace,,info stack, gdb, The GNU debugger}.
 
-The selected frame is displayed in reverse contrast.  Move point to
-any frame in the stack and type @key{RET} to select it (@code{gdb-frames-select})
-and display the associated source in the source buffer. Alternatively,
-click @kbd{Mouse-2} to make the selected frame become the current one.
-If the locals buffer is displayed then its contents update to display
-the variables that are local to the new frame.
+@findex gdb-frames-select
+The selected frame number is displayed in reverse contrast.  Move
+point to any frame in the stack and type @key{RET} to select it
+(@code{gdb-frames-select}) and display the associated source in the
+source buffer.  Alternatively, click @kbd{Mouse-2} on a frame to
+select it.  If the locals buffer is displayed then its contents update
+to display the variables that are local to the new frame.
 
 @node Watch Expressions
 @subsubsection Watch Expressions
 @cindex Watching expressions in GDB
 
+@findex gud-watch
 If you want to see how a variable changes each time your program stops
 then place the cursor over the variable name and click on the watch
 icon in the tool bar (@code{gud-watch}).
@@ -894,34 +898,37 @@
 format.  To expand or contract a complex data type, click @kbd{Mouse-2}
 on the tag to the left of the expression.
 
-@kindex RET @r{(GDB speedbar)}
 @findex gdb-var-delete
 With the cursor over the root expression of a complex data type, type
 @kbd{D} to delete it from the speedbar
 (@code{gdb-var-delete}).
 
+@kindex RET @r{(GDB speedbar)}
 @findex gdb-edit-value
 With the cursor over a simple data type or an element of a complex
 data type which holds a value, type @key{RET} or click @kbd{Mouse-2} to edit
 its value.  A prompt for a new value appears in the mini-buffer
 (@code{gdb-edit-value}).
 
+@vindex gdb-show-changed-values
 If you set the variable @code{gdb-show-changed-values} to
-non-@code{nil} (the default value), then Emacs will use
+non-@code{nil} (the default value), Emacs will use
 font-lock-warning-face to display values that have recently changed in
 the speedbar.
 
+@vindex gdb-use-colon-colon-notation
 If you set the variable @code{gdb-use-colon-colon-notation} to a
-non-@code{nil} value, then, in C, Emacs will use the
-FUNCTION::VARIABLE format to display variables in the speedbar.
-Since this does not work for variables defined in compound statements,
-the default value is @code{nil}.
+non-@code{nil} value then, in C, Emacs will use the
+@var{function}::@var{variable} format to display variables in the
+speedbar.  Since this does not work for variables defined in compound
+statements, the default value is @code{nil}.
 
 @node Other GDB User Interface Buffers
 @subsubsection Other Buffers
 
 @table @asis
 @item Input/Output Buffer
+@vindex gdb-use-inferior-io-buffer
 If the variable @code{gdb-use-inferior-io-buffer} is non-@code{nil},
 the executable program that is being debugged takes its input and
 displays its output here.  Some of the commands from shell mode are
@@ -936,9 +943,11 @@
 separately to examine their values.  @xref{Watch Expressions}.
 
 @item Registers Buffer
+@findex toggle-gdb-all-registers
 The registers buffer displays the values held by the registers
 (@pxref{Registers,,, gdb, The GNU debugger}).  Press @key{SPC} to
-toggle the display of floating point registers.
+toggle the display of floating point registers
+(@code{toggle-gdb-all-registers}).
 
 @item Assembler Buffer
 The assembler buffer displays the current frame as machine code.  An
@@ -947,16 +956,16 @@
 appear in the fringe or margin.
 
 @item Threads Buffer
-
+@findex gdb-threads-select
 The threads buffer displays a summary of all threads currently in your
-program (@pxref{Threads,,, gdb, The GNU debugger}).  Move point to
-any thread in the list and press @key{RET} to make it become the
-current thread (@code{gdb-threads-select}) and display the associated
-source in the source buffer.  Alternatively, click @kbd{Mouse-2} to
-make the selected thread become the current one.
+program (@pxref{Threads,,, gdb, The GNU debugger}).  Move point to any
+thread in the list and press @key{RET} to select it
+(@code{gdb-threads-select}) and display the associated source in the
+source buffer.  Alternatively, click @kbd{Mouse-2} on a thread to
+select it.  If the locals buffer is displayed then its contents update
+to display the variables that are local to the new thread.
 
 @item Memory Buffer
-
 The memory buffer allows the user to examine sections of program
 memory (@pxref{Memory,,, gdb, The GNU debugger}).  Click @kbd{Mouse-1}
 on the appropriate part of the header line to change the starting
--- a/man/ediff.texi	Thu Oct 06 02:00:50 2005 +0000
+++ b/man/ediff.texi	Fri Oct 07 07:15:40 2005 +0000
@@ -2416,6 +2416,7 @@
 Thorbjoern Hansen (thorbjoern.hansen@@mchp.siemens.de),
 Marcus Harnisch (marcus_harnisch@@mint-tech.com),
 Steven E. Harris (seh@@panix.com),
+Aaron S. Hawley (Aaron.Hawley@@uvm.edu),
 Xiaoli Huang (hxl@@epic.com),
 Andreas Jaeger (aj@@suse.de),
 Lars Magne Ingebrigtsen (larsi@@ifi.uio.no),
--- a/man/frames.texi	Thu Oct 06 02:00:50 2005 +0000
+++ b/man/frames.texi	Fri Oct 07 07:15:40 2005 +0000
@@ -857,10 +857,10 @@
 (according to the conventions of the application it came from) into the
 directory displayed in that buffer.
 
-@vindex x-dnd-open-file-other-window
+@vindex dnd-open-file-other-window
   Dropping a file normally visits it in the window you drop it on.  If
 you prefer to visit the file in a new window in such cases, customize
-the variable @code{x-dnd-open-file-other-window}.
+the variable @code{dnd-open-file-other-window}.
 
 @ignore
 @c ??? To Lisp manual
@@ -881,10 +881,10 @@
 detailed knowledge of what types other applications use for drag and
 drop.
 
-@vindex x-dnd-protocol-alist
+@vindex dnd-protocol-alist
   When an URL is dropped on Emacs it may be a file, but it may also be
 another URL type (ftp, http, etc.).  Emacs first checks
-@code{x-dnd-protocol-alist} to determine what to do with the URL.  If
+@code{dnd-protocol-alist} to determine what to do with the URL.  If
 there is no match there and if @code{browse-url-browser-function} is
 an alist, Emacs looks for a match there.  If no match is found the
 text for the URL is inserted.  If you want to alter Emacs behavior,
--- a/man/mini.texi	Thu Oct 06 02:00:50 2005 +0000
+++ b/man/mini.texi	Fri Oct 07 07:15:40 2005 +0000
@@ -22,7 +22,7 @@
 prompt normally ends with a colon.
 
 @cindex default argument
-  Sometimes a @dfn{default argument} appears in parentheses after the
+  Sometimes a @dfn{default argument} appears in parentheses before the
 colon; it too is part of the prompt.  The default will be used as the
 argument value if you enter an empty argument (that is, just type
 @key{RET}).  For example, commands that read buffer names always show a
--- a/man/speedbar.texi	Thu Oct 06 02:00:50 2005 +0000
+++ b/man/speedbar.texi	Fri Oct 07 07:15:40 2005 +0000
@@ -591,9 +591,10 @@
 key bindings and visuals, but will have specialized behaviors.
 
 @menu
-* RMAIL::  Managing folders in speedbar
-* Info::   Browsing topics in speedbar
-* GDB::    Managing the current stack trace in speedbar
+* RMAIL::  Managing folders.
+* Info::   Browsing topics.
+* GDB::    Watching expressions or managing the current
+            stack trace.
 @end menu
 
 @node RMAIL, Info, Minor Modes, Minor Modes
@@ -639,7 +640,15 @@
 @cindex gdb
 @cindex gud
 
-If you are debugging an application with GDB in Emacs, speedbar can show
+You can debug an application with GDB in Emacs using graphical mode or
+text command mode (@pxref{GDB Graphical Interface,,, emacs, The
+extensible self-documenting text editor}).
+
+If you are using graphical mode you can see how selected variables
+change each time your program stops (@pxref{Watch Expressions,,,
+emacs, The extensible self-documenting text editor}).
+
+If you are using text command mode, speedbar can show
 you the current stack when the current buffer is the @file{*gdb*}
 buffer.  Usually, it will just report that there is no stack, but when
 the application is stopped, the current stack will be shown.
--- a/src/ChangeLog	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/ChangeLog	Fri Oct 07 07:15:40 2005 +0000
@@ -1,3 +1,107 @@
+2005-10-04  Kim F. Storm  <storm@cua.dk>
+
+	* window.c (window_split_tree): New function.
+	(Fwindow_split_tree): New defun.
+	(syms_of_window): Defsubr it.
+
+2005-10-04  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* macterm.c (mac_invert_rectangle): New function.
+	(XTflash): Use it.
+
+2005-10-04  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* regex.h (re_char): Don't expose it in the interface.
+	(re_set_whitespace_regexp): Adjust the arg's type to not use it.
+
+	* regex.c (re_char): Move it back here.
+	(re_set_whitespace_regexp): Change the arg's type to not use it.
+
+	* keyboard.c (make_lispy_event): If point has moved between down and up
+	event, make it a drag, not a click, to mirror what
+	mouse-drag-region expects.
+
+2005-10-02  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* lisp.h (fatal): Undo previous change.
+	* term.c (fatal): Undo previous change.
+
+2005-10-01  Richard M. Stallman  <rms@gnu.org>
+
+	* xfaces.c (face_color_gray_p): Colors close to black count as gray.
+
+2005-10-01  Kim F. Storm  <storm@cua.dk>
+
+	* xdisp.c (try_window): Skip scroll-margin check if ZV is visible.
+
+2005-10-01  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* keyboard.c (init_keyboard) [MAC_OSX]: Don't install SIGINT handler.
+
+	* macfns.c (start_hourglass): Apply 2005-05-07 change for xfns.c.
+	(x_create_tip_frame) [GLYPH_DEBUG]: Uncomment debug code.
+	(Fx_create_frame, x_create_tip_frame) [USE_ATSUI]:
+	Try ATSUI-compatible 12pt Monaco font first.
+
+	* macgui.h (struct _XCharStruct): New member valid_p.
+	(STORE_XCHARSTRUCT): Set valid_p.
+	(struct MacFontStruct) [USE_ATSUI]: New member mac_style.
+
+	* macterm.c (mac_draw_string_common, x_per_char_metric)
+	(mac_compute_glyph_string_overhangs, init_font_name_table)
+	(XLoadQueryFont, mac_unload_font) [USE_ATSUI]: Add ATSUI support.
+	(atsu_get_text_layout_with_text_ptr) [USE_ATSUI]: New function.
+	(x_draw_glyph_string_background)
+	(x_draw_glyph_string_foreground) [MAC_OS8 && USE_ATSUI]: Don't use
+	XDrawImageString.  Always draw background and foreground separately.
+	(x_draw_glyph_string_foreground) [USE_ATSUI]: Don't use 8-bit
+	functions for one-byte chars when using ATSUI-compatible fonts.
+	(atsu_font_id_hash) [USE_ATSUI]: New variable.
+	(syms_of_macterm) [USE_ATSUI]: Initialize and staticpro it.
+	(XLoadQueryFont): Set min_byte1, max_byte1, min_char_or_byte2, and
+	max_char_or_byte2 more in detail.
+	(quit_char_comp, mac_check_for_quit_char) [MAC_OSX]: Remove functions.
+
+2005-09-30  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* image.c (slurp_file, xbm_read_bitmap_data): Cast to the correct type.
+	* xterm.c (handle_one_xevent, handle_one_xevent): Likewise.
+
+	* unexelf.c (fatal): Fix prototype.
+
+	* term.c (fatal): Implement using varargs.
+
+	* regex.c (re_char): Move typedef ...
+	* regex.h (re_char): ... here.
+	(re_iswctype, re_wctype, re_set_whitespace_regexp): New prototypes.
+
+	* emacs.c (malloc_set_state): Fix return type.
+	(endif): Fix type.
+
+	* lisp.h (fatal): Add argument types.
+
+	* dispextern.h (fatal): Delete prototype.
+
+	* systime.h: (make_time): Prototype moved from ...
+	* editfns.c (make_time): ... here.
+
+	* editfns.c: Move systime.h include after lisp.h.
+	* dired.c:
+	* xsmfns.c:
+	* process.c: Likewise.
+
+	* alloc.c (old_malloc_hook, old_realloc_hook, old_realloc_hook):
+	Add parameter types.
+	(__malloc_hook, __realloc_hook, __free_hook): Fix prototypes.
+	(emacs_blocked_free): Change definition to match __free_hook.
+	(emacs_blocked_malloc): Change definition to match __malloc_hook.
+	(emacs_blocked_realloc): Change definition to match __realloc_hook.
+
+2005-09-30  Romain Francoise  <romain@orebokech.com>
+
+	* minibuf.c (Fread_buffer): Follow convention for reading from the
+	minibuffer with a default value.  Doc fix.
+
 2005-09-29  Juri Linkov  <juri@jurta.org>
 
 	* editfns.c (Fmessage, Fmessage_box, Fmessage_or_box):
@@ -48,8 +152,8 @@
 
 2005-09-23  Dan Nicolaescu  <dann@ics.uci.edu>
 
-	* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME): Define
-	BROKEN_GET_CURRENT_DIR_NAME.
+	* s/aix4-2.h (BROKEN_GET_CURRENT_DIR_NAME):
+	Define BROKEN_GET_CURRENT_DIR_NAME.
 
 	* sysdep.c (get_current_dir_name): Also define if
 	BROKEN_GET_CURRENT_DIR_NAME.
--- a/src/alloc.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/alloc.c	Fri Oct 07 07:15:40 2005 +0000
@@ -547,6 +547,21 @@
   return (spare_memory ? Qnil : Qt);
 }
 
+/* If we released our reserve (due to running out of memory),
+   and we have a fair amount free once again,
+   try to set aside another reserve in case we run out once more.
+
+   This is called when a relocatable block is freed in ralloc.c.  */
+
+void
+refill_memory_reserve ()
+{
+#ifndef SYSTEM_MALLOC
+  if (spare_memory == 0)
+    spare_memory = (char *) malloc ((size_t) SPARE_MEMORY);
+#endif
+}
+
 /* Called if we can't allocate relocatable space for a buffer.  */
 
 void
@@ -1134,20 +1149,6 @@
 
 #ifndef SYSTEM_MALLOC
 
-/* If we released our reserve (due to running out of memory),
-   and we have a fair amount free once again,
-   try to set aside another reserve in case we run out once more.
-
-   This is called when a relocatable block is freed in ralloc.c.  */
-
-void
-refill_memory_reserve ()
-{
-  if (spare_memory == 0)
-    spare_memory = (char *) malloc ((size_t) SPARE_MEMORY);
-}
-
-
 /* Arranging to disable input signals while we're in malloc.
 
    This only works with GNU malloc.  To help out systems which can't
@@ -1161,20 +1162,21 @@
 #ifndef SYNC_INPUT
 
 #ifndef DOUG_LEA_MALLOC
-extern void * (*__malloc_hook) P_ ((size_t));
-extern void * (*__realloc_hook) P_ ((void *, size_t));
-extern void (*__free_hook) P_ ((void *));
+extern void * (*__malloc_hook) P_ ((size_t, const void *));
+extern void * (*__realloc_hook) P_ ((void *, size_t, const void *));
+extern void (*__free_hook) P_ ((void *, const void *));
 /* Else declared in malloc.h, perhaps with an extra arg.  */
 #endif /* DOUG_LEA_MALLOC */
-static void * (*old_malloc_hook) ();
-static void * (*old_realloc_hook) ();
-static void (*old_free_hook) ();
+static void * (*old_malloc_hook) P_ ((size_t, const void *));
+static void * (*old_realloc_hook) P_ ((void *,  size_t, const void*));
+static void (*old_free_hook) P_ ((void*, const void*));
 
 /* This function is used as the hook for free to call.  */
 
 static void
-emacs_blocked_free (ptr)
+emacs_blocked_free (ptr, ptr2)
      void *ptr;
+     const void *ptr2;
 {
   BLOCK_INPUT_ALLOC;
 
@@ -1221,8 +1223,9 @@
 /* This function is the malloc hook that Emacs uses.  */
 
 static void *
-emacs_blocked_malloc (size)
+emacs_blocked_malloc (size, ptr)
      size_t size;
+     const void *ptr;
 {
   void *value;
 
@@ -1268,9 +1271,10 @@
 /* This function is the realloc hook that Emacs uses.  */
 
 static void *
-emacs_blocked_realloc (ptr, size)
+emacs_blocked_realloc (ptr, size, ptr2)
      void *ptr;
      size_t size;
+     const void *ptr2;
 {
   void *value;
 
--- a/src/dired.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/dired.c	Fri Oct 07 07:15:40 2005 +0000
@@ -33,7 +33,6 @@
 #include <grp.h>
 #endif
 
-#include "systime.h"
 #include <errno.h>
 
 #ifdef VMS
@@ -93,6 +92,7 @@
 #endif
 
 #include "lisp.h"
+#include "systime.h"
 #include "buffer.h"
 #include "commands.h"
 #include "character.h"
--- a/src/dispextern.h	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/dispextern.h	Fri Oct 07 07:15:40 2005 +0000
@@ -2940,7 +2940,6 @@
 extern void set_tty_color_mode P_ ((struct frame *, Lisp_Object));
 extern void tty_setup_colors P_ ((int));
 extern void term_init P_ ((char *));
-extern void fatal P_ ((/* char *, ... */));
 void cursor_to P_ ((int, int));
 extern int tty_capable_p P_ ((struct frame *, unsigned, unsigned long, unsigned long));
 
--- a/src/editfns.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/editfns.c	Fri Oct 07 07:15:40 2005 +0000
@@ -37,6 +37,8 @@
 #include <sys/utsname.h>
 #endif
 
+#include "lisp.h"
+
 /* systime.h includes <sys/time.h> which, on some systems, is required
    for <sys/resource.h>; thus systime.h must be included before
    <sys/resource.h> */
@@ -48,7 +50,6 @@
 
 #include <ctype.h>
 
-#include "lisp.h"
 #include "intervals.h"
 #include "buffer.h"
 #include "character.h"
@@ -71,7 +72,6 @@
 extern char **environ;
 #endif
 
-extern Lisp_Object make_time P_ ((time_t));
 extern size_t emacs_strftimeu P_ ((char *, size_t, const char *,
 				   const struct tm *, int));
 static int tm_diff P_ ((struct tm *, struct tm *));
--- a/src/emacs.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/emacs.c	Fri Oct 07 07:15:40 2005 +0000
@@ -148,7 +148,7 @@
 /* From glibc, a routine that returns a copy of the malloc internal state.  */
 extern void *malloc_get_state ();
 /* From glibc, a routine that overwrites the malloc internal state.  */
-extern void malloc_set_state ();
+extern int malloc_set_state ();
 /* Non-zero if the MALLOC_CHECK_ enviroment variable was set while
    dumping.  Used to work around a bug in glibc's malloc.  */
 int malloc_using_checking;
@@ -1001,7 +1001,7 @@
       && !getrlimit (RLIMIT_STACK, &rlim))
     {
       long newlim;
-      extern int re_max_failures;
+      extern size_t re_max_failures;
       /* Approximate the amount regex.c needs per unit of re_max_failures.  */
       int ratio = 20 * sizeof (char *);
       /* Then add 33% to cover the size of the smaller stacks that regex.c
--- a/src/image.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/image.c	Fri Oct 07 07:15:40 2005 +0000
@@ -2178,7 +2178,7 @@
 
   if (stat (file, &st) == 0
       && (fp = fopen (file, "rb")) != NULL
-      && (buf = (char *) xmalloc (st.st_size),
+      && (buf = (unsigned char *) xmalloc (st.st_size),
 	  fread (buf, 1, st.st_size, fp) == st.st_size))
     {
       *size = st.st_size;
@@ -3029,7 +3029,7 @@
 
   bytes_per_line = (*width + 7) / 8 + padding_p;
   nbytes = bytes_per_line * *height;
-  p = *data = (char *) xmalloc (nbytes);
+  p = *data = (unsigned char *) xmalloc (nbytes);
 
   if (v10)
     {
--- a/src/keyboard.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/keyboard.c	Fri Oct 07 07:15:40 2005 +0000
@@ -5506,13 +5506,23 @@
 		if (CONSP (down)
 		    && INTEGERP (XCAR (down)) && INTEGERP (XCDR (down)))
 		  {
-		    xdiff = XFASTINT (event->x) - XFASTINT (XCAR (down));
-		    ydiff = XFASTINT (event->y) - XFASTINT (XCDR (down));
+		    xdiff = XINT (event->x) - XINT (XCAR (down));
+		    ydiff = XINT (event->y) - XINT (XCDR (down));
 		  }
 
 		if (xdiff < double_click_fuzz && xdiff > - double_click_fuzz
-		    && ydiff < double_click_fuzz
-		    && ydiff > - double_click_fuzz)
+		    && ydiff < double_click_fuzz && ydiff > - double_click_fuzz
+		  /* Maybe the mouse has moved a lot, caused scrolling, and
+		     eventually ended up at the same screen position (but
+		     not buffer position) in which case it is a drag, not
+		     a click.  */
+		    /* FIXME: OTOH if the buffer position has changed
+		       because of a timer or process filter rather than
+		       because of mouse movement, it should be considered as
+		       a click.  But mouse-drag-region completely ignores
+		       this case and it hasn't caused any real problem, so
+		       it's probably OK to ignore it as well.  */
+		    && EQ (Fcar (Fcdr (start_pos)), Fcar (Fcdr (position))))
 		  /* Mouse hasn't moved (much).  */
 		  event->modifiers |= click_modifier;
 		else
@@ -10741,11 +10751,6 @@
   poll_suppress_count = 1;
   start_polling ();
 #endif
-
-#ifdef MAC_OSX
-  /* At least provide an escape route since C-g doesn't work.  */
-  signal (SIGINT, interrupt_signal);
-#endif
 }
 
 /* This type's only use is in syms_of_keyboard, to initialize the
--- a/src/macfns.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/macfns.c	Fri Oct 07 07:15:40 2005 +0000
@@ -2532,6 +2532,10 @@
       }
 
     /* Try out a font which we hope has bold and italic variations.  */
+#if USE_ATSUI
+    if (! STRINGP (font))
+      font = x_new_font (f, "-*-monaco-medium-r-normal--12-*-*-*-*-*-iso10646-1");
+#endif
     if (! STRINGP (font))
       font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1");
     /* If those didn't work, look for something which will at least work.  */
@@ -3340,6 +3344,10 @@
   EMACS_TIME delay;
   int secs, usecs = 0;
 
+  /* Don't bother for ttys.  */
+  if (NILP (Vwindow_system))
+    return;
+
   cancel_hourglass ();
 
   if (INTEGERP (Vhourglass_delay)
@@ -3586,7 +3594,7 @@
   FRAME_FONTSET (f)  = -1;
   f->icon_name = Qnil;
 
-#if 0 /* GLYPH_DEBUG TODO: image support.  */
+#if GLYPH_DEBUG
   image_cache_refcount = FRAME_X_IMAGE_CACHE (f)->refcount;
   dpyinfo_refcount = dpyinfo->reference_count;
 #endif /* GLYPH_DEBUG */
@@ -3630,6 +3638,10 @@
       }
 
     /* Try out a font which we hope has bold and italic variations.  */
+#if USE_ATSUI
+    if (! STRINGP (font))
+      font = x_new_font (f, "-*-monaco-medium-r-normal--12-*-*-*-*-*-iso10646-1");
+#endif
     if (! STRINGP (font))
       font = x_new_font (f, "-ETL-fixed-medium-r-*--*-160-*-*-*-*-iso8859-1");
     /* If those didn't work, look for something which will at least work.  */
--- a/src/macgui.h	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/macgui.h	Fri Oct 07 07:15:40 2005 +0000
@@ -103,6 +103,7 @@
 #if 0
   unsigned short attributes;	/* per char flags (not predefined) */
 #endif
+  unsigned valid_p : 1;
 } XCharStruct;
 
 #define STORE_XCHARSTRUCT(xcs, w, bds)			\
@@ -110,7 +111,8 @@
    (xcs).lbearing = (bds).left,				\
    (xcs).rbearing = (bds).right,			\
    (xcs).ascent = -(bds).top,				\
-   (xcs).descent = (bds).bottom)
+   (xcs).descent = (bds).bottom,			\
+   (xcs).valid_p = 1)
 
 struct MacFontStruct {
   char *full_name;
@@ -123,19 +125,9 @@
 #else
   short mac_scriptcode;  /* Mac OS script code for font used */
 #endif
-
-#if 0
-  SInt16 mFontNum;  /* font number of font used in this window */
-  short mScriptCode;  /* Mac OS script code for font used */
-  int mFontSize;  /* size of font */
-  Style mFontFace;  /* plain, bold, italics, etc. */
-  int mHeight;  /* height of one line of text in pixels */
-  int mWidth;  /* width of one character in pixels */
-  int mAscent;
-  int mDescent;
-  int mLeading;
-  char mTwoByte;  /* true for two-byte font */
-#endif /* 0 */
+#if USE_ATSUI
+  ATSUStyle mac_style;		/* NULL if QuickDraw Text is used */
+#endif
 
 /* from Xlib.h */
 #if 0
--- a/src/macterm.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/macterm.c	Fri Oct 07 07:15:40 2005 +0000
@@ -660,6 +660,79 @@
 #endif
 
 
+#if USE_ATSUI
+static OSStatus
+atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout)
+     ConstUniCharArrayPtr text;
+     UniCharCount text_length;
+     ATSUStyle style;
+     ATSUTextLayout *text_layout;
+{
+  OSStatus err;
+  static ATSUTextLayout saved_text_layout = NULL; /* not reentrant */
+
+  if (saved_text_layout == NULL)
+    {
+      UniCharCount lengths[] = {kATSUToTextEnd};
+      ATSUAttributeTag tags[] = {kATSULineLayoutOptionsTag};
+      ByteCount sizes[] = {sizeof (ATSLineLayoutOptions)};
+      static ATSLineLayoutOptions line_layout =
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020
+	kATSLineDisableAllLayoutOperations  | kATSLineUseDeviceMetrics
+#else
+	kATSLineIsDisplayOnly
+#endif
+	;
+      ATSUAttributeValuePtr values[] = {&line_layout};
+
+      err = ATSUCreateTextLayoutWithTextPtr (text,
+					     kATSUFromTextBeginning,
+					     kATSUToTextEnd,
+					     text_length,
+					     1, lengths, &style,
+					     &saved_text_layout);
+      if (err == noErr)
+	err = ATSUSetLayoutControls (saved_text_layout,
+				     sizeof (tags) / sizeof (tags[0]),
+				     tags, sizes, values);
+      /* XXX: Should we do this? */
+      if (err == noErr)
+	err = ATSUSetTransientFontMatching (saved_text_layout, true);
+    }
+  else
+    {
+      err = ATSUSetRunStyle (saved_text_layout, style,
+			     kATSUFromTextBeginning, kATSUToTextEnd);
+      if (err == noErr)
+	err = ATSUSetTextPointerLocation (saved_text_layout, text,
+					  kATSUFromTextBeginning,
+					  kATSUToTextEnd,
+					  text_length);
+    }
+
+  if (err == noErr)
+    *text_layout = saved_text_layout;
+  return err;
+}
+#endif
+
+static void
+mac_invert_rectangle (display, w, x, y, width, height)
+     Display *display;
+     WindowPtr w;
+     int x, y;
+     unsigned int width, height;
+{
+  Rect r;
+
+  SetPortWindowPort (w);
+
+  SetRect (&r, x, y, x + width, y + height);
+
+  InvertRect (&r);
+}
+
+
 static void
 mac_draw_string_common (display, w, gc, x, y, buf, nchars, mode,
 			bytes_per_char)
@@ -684,6 +757,89 @@
   if (mode != srcOr)
     RGBBackColor (GC_BACK_COLOR (gc));
 
+#if USE_ATSUI
+  if (GC_FONT (gc)->mac_style)
+    {
+      OSErr err;
+      ATSUTextLayout text_layout;
+
+      xassert (bytes_per_char == 2);
+
+#ifndef WORDS_BIG_ENDIAN
+      {
+	int i;
+	Unichar *text = (Unichar *)buf;
+
+	for (i = 0; i < nchars; i++)
+	  text[i] = buf[2*i] << 8 | buf[2*i+1];
+      }
+#endif
+      err = atsu_get_text_layout_with_text_ptr ((ConstUniCharArrayPtr)buf,
+						nchars,
+						GC_FONT (gc)->mac_style,
+						&text_layout);
+      if (err == noErr)
+	{
+#ifdef MAC_OSX
+	  if (NILP (Vmac_use_core_graphics))
+	    {
+#endif
+	      MoveTo (x, y);
+	      ATSUDrawText (text_layout,
+			    kATSUFromTextBeginning, kATSUToTextEnd,
+			    kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
+#ifdef MAC_OSX
+	    }
+	  else
+	    {
+	      CGrafPtr port;
+	      CGContextRef context;
+	      Rect rect;
+	      RgnHandle region = NewRgn ();
+	      float port_height;
+	      ATSUAttributeTag tags[] = {kATSUCGContextTag};
+	      ByteCount sizes[] = {sizeof (CGContextRef)};
+	      ATSUAttributeValuePtr values[] = {&context};
+
+	      GetPort (&port);
+	      QDBeginCGContext (port, &context);
+	      GetPortBounds (port, &rect);
+	      port_height = rect.bottom - rect.top;
+	      GetClip (region);
+	      GetRegionBounds (region, &rect);
+	      /* XXX: This is not correct if the clip region is not a
+		 simple rectangle.  */
+	      CGContextClipToRect (context,
+				   CGRectMake (rect.left,
+					       port_height - rect.bottom,
+					       rect.right - rect.left,
+					       rect.bottom - rect.top));
+	      DisposeRgn (region);
+	      CGContextSetRGBFillColor
+		(context,
+		 RED_FROM_ULONG (gc->xgcv.foreground) / 255.0,
+		 GREEN_FROM_ULONG (gc->xgcv.foreground) / 255.0,
+		 BLUE_FROM_ULONG (gc->xgcv.foreground) / 255.0,
+		 1.0);
+	      err = ATSUSetLayoutControls (text_layout,
+					   sizeof (tags) / sizeof (tags[0]),
+					   tags, sizes, values);
+	      if (err == noErr)
+		ATSUDrawText (text_layout,
+			      kATSUFromTextBeginning, kATSUToTextEnd,
+			      Long2Fix (x), Long2Fix (port_height - y));
+	      ATSUClearLayoutControls (text_layout,
+				       sizeof (tags) / sizeof (tags[0]),
+				       tags);
+	      CGContextSynchronize (context);
+	      QDEndCGContext (port, &context);
+	    }
+#endif
+	}
+    }
+  else
+    {
+#endif
   TextFont (GC_FONT (gc)->mac_fontnum);
   TextSize (GC_FONT (gc)->mac_fontsize);
   TextFace (GC_FONT (gc)->mac_fontface);
@@ -691,6 +847,9 @@
 
   MoveTo (x, y);
   DrawText (buf, 0, nchars * bytes_per_char);
+#if USE_ATSUI
+    }
+#endif
 
   if (mode != srcOr)
     RGBBackColor (GC_BACK_COLOR (MAC_WINDOW_NORMAL_GC (w)));
@@ -1552,6 +1711,61 @@
 
   xassert (font && char2b);
 
+#if USE_ATSUI
+  if (font->mac_style)
+    {
+      if (char2b->byte1 >= font->min_byte1
+	  && char2b->byte1 <= font->max_byte1
+	  && char2b->byte2 >= font->min_char_or_byte2
+	  && char2b->byte2 <= font->max_char_or_byte2)
+	{
+	  pcm = (font->per_char
+		 + ((font->max_char_or_byte2 - font->min_char_or_byte2 + 1)
+		    * (char2b->byte1 - font->min_byte1))
+		 + (char2b->byte2 - font->min_char_or_byte2));
+	}
+
+      if (pcm && !pcm->valid_p)
+	{
+	  OSErr err;
+	  ATSUTextLayout text_layout;
+	  UniChar c;
+	  int char_width;
+	  ATSTrapezoid glyph_bounds;
+	  Rect char_bounds;
+
+	  c = (char2b->byte1 << 8) + char2b->byte2;
+	  BLOCK_INPUT;
+	  err = atsu_get_text_layout_with_text_ptr (&c, 1,
+						    font->mac_style,
+						    &text_layout);
+	  if (err == noErr)
+	    err = ATSUMeasureTextImage (text_layout,
+					kATSUFromTextBeginning, kATSUToTextEnd,
+					0, 0, &char_bounds);
+
+	  if (err == noErr)
+	    err = ATSUGetGlyphBounds (text_layout, 0, 0,
+				      kATSUFromTextBeginning, kATSUToTextEnd,
+				      kATSUseFractionalOrigins, 1,
+				      &glyph_bounds, NULL);
+	  UNBLOCK_INPUT;
+	  if (err != noErr)
+	    pcm = NULL;
+	  else
+	    {
+	      xassert (glyph_bounds.lowerRight.x - glyph_bounds.lowerLeft.x
+		       == glyph_bounds.upperRight.x - glyph_bounds.upperLeft.x);
+
+	      char_width = Fix2Long (glyph_bounds.upperRight.x
+				     - glyph_bounds.upperLeft.x);
+	      STORE_XCHARSTRUCT (*pcm, char_width, char_bounds);
+	    }
+	}
+    }
+  else
+    {
+#endif
   if (font->per_char != NULL)
     {
       if (font->min_byte1 == 0 && font->max_byte1 == 0)
@@ -1603,6 +1817,9 @@
 	  && char2b->byte2 <= font->max_char_or_byte2)
 	pcm = &font->max_bounds;
     }
+#if USE_ATSUI
+    }
+#endif
 
   return ((pcm == NULL
 	   || (pcm->width == 0 && (pcm->rbearing - pcm->lbearing) == 0))
@@ -1930,6 +2147,35 @@
       Rect r;
       MacFontStruct *font = s->font;
 
+#if USE_ATSUI
+      if (font->mac_style)
+	{
+	  OSErr err;
+	  ATSUTextLayout text_layout;
+	  UniChar *buf;
+	  int i;
+
+	  SetRect (&r, 0, 0, 0, 0);
+	  buf = xmalloc (sizeof (UniChar) * s->nchars);
+	  if (buf)
+	    {
+	      for (i = 0; i < s->nchars; i++)
+		buf[i] = (s->char2b[i].byte1 << 8) + s->char2b[i].byte2;
+
+	      err = atsu_get_text_layout_with_text_ptr (buf, s->nchars,
+							font->mac_style,
+							&text_layout);
+	      if (err == noErr)
+		err = ATSUMeasureTextImage (text_layout,
+					    kATSUFromTextBeginning,
+					    kATSUToTextEnd,
+					    0, 0, &r);
+	      xfree (buf);
+	    }
+	}
+      else
+	{
+#endif
       TextFont (font->mac_fontnum);
       TextSize (font->mac_fontsize);
       TextFace (font->mac_fontface);
@@ -1951,6 +2197,9 @@
 	      xfree (buf);
 	    }
 	}
+#if USE_ATSUI
+        }
+#endif
 
       s->right_overhang = r.right > s->width ? r.right - s->width : 0;
       s->left_overhang = r.left < 0 ? -r.left : 0;
@@ -2008,7 +2257,7 @@
 	}
       else
 #endif
-#ifdef MAC_OS8
+#if defined (MAC_OS8) && !USE_ATSUI
         if (FONT_HEIGHT (s->font) < s->height - 2 * box_line_width
 	       || s->font_not_found_p
 	       || s->extends_to_end_of_line_p
@@ -2062,11 +2311,15 @@
 	boff = VCENTER_BASELINE_OFFSET (s->font, s->f) - boff;
 
       /* If we can use 8-bit functions, condense S->char2b.  */
-      if (!s->two_byte_p)
+      if (!s->two_byte_p
+#if USE_ATSUI
+	  && GC_FONT (s->gc)->mac_style == NULL
+#endif
+	  )
 	for (i = 0; i < s->nchars; ++i)
 	  char1b[i] = s->char2b[i].byte2;
 
-#ifdef MAC_OS8
+#if defined (MAC_OS8) && !USE_ATSUI
       /* Draw text with XDrawString if background has already been
 	 filled.  Otherwise, use XDrawImageString.  (Note that
 	 XDrawImageString is usually faster than XDrawString.)  Always
@@ -2077,14 +2330,18 @@
 #endif
 	{
 	  /* Draw characters with 16-bit or 8-bit functions.  */
-	  if (s->two_byte_p)
+	  if (s->two_byte_p
+#if USE_ATSUI
+	      || GC_FONT (s->gc)->mac_style
+#endif
+	      )
 	    XDrawString16 (s->display, s->window, s->gc, x,
 			   s->ybase - boff, s->char2b, s->nchars);
 	  else
 	    XDrawString (s->display, s->window, s->gc, x,
 			 s->ybase - boff, char1b, s->nchars);
 	}
-#ifdef MAC_OS8
+#if defined (MAC_OS8) && !USE_ATSUI
       else
 	{
 	  if (s->two_byte_p)
@@ -3251,9 +3508,57 @@
 XTflash (f)
      struct frame *f;
 {
+  /* Get the height not including a menu bar widget.  */
+  int height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f));
+  /* Height of each line to flash.  */
+  int flash_height = FRAME_LINE_HEIGHT (f);
+  /* These will be the left and right margins of the rectangles.  */
+  int flash_left = FRAME_INTERNAL_BORDER_WIDTH (f);
+  int flash_right = FRAME_PIXEL_WIDTH (f) - FRAME_INTERNAL_BORDER_WIDTH (f);
+
+  int width;
+
+  /* Don't flash the area between a scroll bar and the frame
+     edge it is next to.  */
+  switch (FRAME_VERTICAL_SCROLL_BAR_TYPE (f))
+    {
+    case vertical_scroll_bar_left:
+      flash_left += VERTICAL_SCROLL_BAR_WIDTH_TRIM;
+      break;
+
+    case vertical_scroll_bar_right:
+      flash_right -= VERTICAL_SCROLL_BAR_WIDTH_TRIM;
+      break;
+
+    default:
+      break;
+    }
+
+  width = flash_right - flash_left;
+
   BLOCK_INPUT;
 
-  FlashMenuBar (0);
+  /* If window is tall, flash top and bottom line.  */
+  if (height > 3 * FRAME_LINE_HEIGHT (f))
+    {
+      mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
+			    flash_left,
+			    (FRAME_INTERNAL_BORDER_WIDTH (f)
+			     + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)),
+			    width, flash_height);
+      mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
+			    flash_left,
+			    (height - flash_height
+			     - FRAME_INTERNAL_BORDER_WIDTH (f)),
+			    width, flash_height);
+    }
+  else
+    /* If it is short, flash it all.  */
+    mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
+			  flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
+			  width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
+
+  x_flush (f);
 
   {
     struct timeval wakeup;
@@ -3265,24 +3570,49 @@
     wakeup.tv_sec += (wakeup.tv_usec / 1000000);
     wakeup.tv_usec %= 1000000;
 
-    /* Keep waiting until past the time wakeup.  */
-    while (1)
+    /* Keep waiting until past the time wakeup or any input gets
+       available.  */
+    while (! detect_input_pending ())
       {
-        struct timeval timeout;
-
-        EMACS_GET_TIME (timeout);
-
-        /* In effect, timeout = wakeup - timeout.
-           Break if result would be negative.  */
-        if (timeval_subtract (&timeout, wakeup, timeout))
-          break;
-
-        /* Try to wait that long--but we might wake up sooner.  */
-        select (0, NULL, NULL, NULL, &timeout);
+	struct timeval current;
+	struct timeval timeout;
+
+	EMACS_GET_TIME (current);
+
+	/* Break if result would be negative.  */
+	if (timeval_subtract (&current, wakeup, current))
+	  break;
+
+	/* How long `select' should wait.  */
+	timeout.tv_sec = 0;
+	timeout.tv_usec = 10000;
+
+	/* Try to wait that long--but we might wake up sooner.  */
+	select (0, NULL, NULL, NULL, &timeout);
       }
   }
 
-  FlashMenuBar (0);
+  /* If window is tall, flash top and bottom line.  */
+  if (height > 3 * FRAME_LINE_HEIGHT (f))
+    {
+      mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
+			    flash_left,
+			    (FRAME_INTERNAL_BORDER_WIDTH (f)
+			     + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)),
+			    width, flash_height);
+      mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
+			    flash_left,
+			    (height - flash_height
+			     - FRAME_INTERNAL_BORDER_WIDTH (f)),
+			    width, flash_height);
+    }
+  else
+    /* If it is short, flash it all.  */
+    mac_invert_rectangle (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f),
+			  flash_left, FRAME_INTERNAL_BORDER_WIDTH (f),
+			  width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f));
+
+  x_flush (f);
 
   UNBLOCK_INPUT;
 }
@@ -6447,6 +6777,10 @@
 static int font_name_table_size = 0;
 static int font_name_count = 0;
 
+#if USE_ATSUI
+static Lisp_Object atsu_font_id_hash;
+#endif
+
 /* Alist linking character set strings to Mac text encoding and Emacs
    coding system. */
 static Lisp_Object Vmac_charset_info_alist;
@@ -6653,6 +6987,74 @@
   Lisp_Object text_encoding_info_alist;
   struct gcpro gcpro1;
 
+  text_encoding_info_alist = create_text_encoding_info_alist ();
+
+#if USE_ATSUI
+  if (!NILP (assq_no_quit (make_number (kTextEncodingMacUnicode),
+			   text_encoding_info_alist)))
+    {
+      OSErr err;
+      ItemCount nfonts, i;
+      ATSUFontID *font_ids = NULL;
+      Ptr name, prev_name = NULL;
+      ByteCount name_len;
+
+      atsu_font_id_hash =
+	make_hash_table (Qequal, make_number (DEFAULT_HASH_SIZE),
+			 make_float (DEFAULT_REHASH_SIZE),
+			 make_float (DEFAULT_REHASH_THRESHOLD),
+			 Qnil, Qnil, Qnil);;
+      err = ATSUFontCount (&nfonts);
+      if (err == noErr)
+	font_ids = xmalloc (sizeof (ATSUFontID) * nfonts);
+      if (font_ids)
+	err = ATSUGetFontIDs (font_ids, nfonts, NULL);
+      if (err == noErr)
+	for (i = 0; i < nfonts; i++)
+	  {
+	    err = ATSUFindFontName (font_ids[i], kFontFamilyName,
+				    kFontMacintoshPlatform, kFontNoScript,
+				    kFontNoLanguage, 0, NULL, &name_len, NULL);
+	    if (err != noErr)
+	      continue;
+	    name = xmalloc (name_len + 1);
+	    if (name == NULL)
+	      continue;
+	    name[name_len] = '\0';
+	    err = ATSUFindFontName (font_ids[i], kFontFamilyName,
+				    kFontMacintoshPlatform, kFontNoScript,
+				    kFontNoLanguage, name_len, name,
+				    NULL, NULL);
+	    if (err == noErr
+		&& *name != '.'
+		&& (prev_name == NULL
+		    || strcmp (name, prev_name) != 0))
+	      {
+		static char *cs = "iso10646-1";
+
+		add_font_name_table_entry (mac_to_x_fontname (name, 0,
+							      normal, cs));
+		add_font_name_table_entry (mac_to_x_fontname (name, 0,
+							      italic, cs));
+		add_font_name_table_entry (mac_to_x_fontname (name, 0,
+							      bold, cs));
+		add_font_name_table_entry (mac_to_x_fontname (name, 0,
+							      italic | bold, cs));
+		Fputhash (Fdowncase (make_unibyte_string (name, name_len)),
+			  long_to_cons (font_ids[i]), atsu_font_id_hash);
+		xfree (prev_name);
+		prev_name = name;
+	      }
+	    else
+	      xfree (name);
+	  }
+      if (prev_name)
+	xfree (prev_name);
+      if (font_ids)
+	xfree (font_ids);
+    }
+#endif
+
   /* Create a dummy instance iterator here to avoid creating and
      destroying it in the loop.  */
   if (FMCreateFontFamilyInstanceIterator (0, &ffii) != noErr)
@@ -6665,8 +7067,6 @@
       return;
     }
 
-  text_encoding_info_alist = create_text_encoding_info_alist ();
-
   GCPRO1 (text_encoding_info_alist);
 
   while (FMGetNextFontFamily (&ffi, &ff) == noErr)
@@ -7163,6 +7563,9 @@
   Str255 mfontname, mfontname_decoded;
   Str31 charset;
   SInt16 fontnum;
+#if USE_ATSUI
+  ATSUStyle mac_style = NULL;
+#endif
   Style fontface;
 #if TARGET_API_MAC_CARBON
   TextEncoding encoding;
@@ -7214,6 +7617,48 @@
 
   x_font_name_to_mac_font_name (name, mfontname, mfontname_decoded,
 				&fontface, charset);
+#if USE_ATSUI
+  if (strcmp (charset, "iso10646-1") == 0) /* XXX */
+    {
+      OSErr err;
+      ATSUAttributeTag tags[] = {kATSUFontTag, kATSUSizeTag,
+				 kATSUQDBoldfaceTag, kATSUQDItalicTag};
+      ByteCount sizes[] = {sizeof (ATSUFontID), sizeof (Fixed),
+			   sizeof (Boolean), sizeof (Boolean)};
+      static ATSUFontID font_id;
+      static Fixed size_fixed;
+      static Boolean bold_p, italic_p;
+      ATSUAttributeValuePtr values[] = {&font_id, &size_fixed,
+					&bold_p, &italic_p};
+      ATSUFontFeatureType types[] = {kAllTypographicFeaturesType};
+      ATSUFontFeatureSelector selectors[] = {kAllTypeFeaturesOffSelector};
+      Lisp_Object font_id_cons;
+      
+      font_id_cons = Fgethash (Fdowncase
+			       (make_unibyte_string (mfontname,
+						     strlen (mfontname))),
+			       atsu_font_id_hash, Qnil);
+      if (NILP (font_id_cons))
+	return NULL;
+      font_id = cons_to_long (font_id_cons);
+      size_fixed = Long2Fix (size);
+      bold_p = (fontface & bold) != 0;
+      italic_p = (fontface & italic) != 0;
+      err = ATSUCreateStyle (&mac_style);
+      if (err != noErr)
+	return NULL;
+      err = ATSUSetFontFeatures (mac_style, sizeof (types) / sizeof (types[0]),
+      				 types, selectors);
+      if (err != noErr)
+	return NULL;
+      err = ATSUSetAttributes (mac_style, sizeof (tags) / sizeof (tags[0]),
+			       tags, sizes, values);
+      fontnum = -1;
+      scriptcode = kTextEncodingMacUnicode;
+    }
+  else
+    {
+#endif
   c2pstr (mfontname);
 #if TARGET_API_MAC_CARBON
   fontnum = FMGetFontFamilyFromName (mfontname);
@@ -7227,6 +7672,9 @@
     return NULL;
   scriptcode = FontToScript (fontnum);
 #endif
+#if USE_ATSUI
+    }
+#endif
 
   font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct));
 
@@ -7234,6 +7682,9 @@
   font->mac_fontsize = size;
   font->mac_fontface = fontface;
   font->mac_scriptcode = scriptcode;
+#if USE_ATSUI
+  font->mac_style = mac_style;
+#endif
 
   /* Apple Japanese (SJIS) font is listed as both
      "*-jisx0208.1983-sjis" (Japanese script) and "*-jisx0201.1976-0"
@@ -7244,6 +7695,91 @@
 
   font->full_name = mac_to_x_fontname (mfontname_decoded, size, fontface, charset);
 
+#if USE_ATSUI
+  if (font->mac_style)
+    {
+      OSErr err;
+      ATSUTextLayout text_layout;
+      UniChar c = 0x20;
+      Rect char_bounds, min_bounds, max_bounds;
+      int min_width, max_width;
+      ATSTrapezoid glyph_bounds;
+
+      font->per_char = xmalloc (sizeof (XCharStruct) * 0x10000);
+      if (font->per_char == NULL)
+	{
+	  mac_unload_font (&one_mac_display_info, font);
+	  return NULL;
+	}
+      bzero (font->per_char, sizeof (XCharStruct) * 0x10000);
+
+      err = atsu_get_text_layout_with_text_ptr (&c, 1,
+						font->mac_style,
+						&text_layout);
+      if (err != noErr)
+	{
+	  mac_unload_font (&one_mac_display_info, font);
+	  return NULL;
+	}
+
+      for (c = 0x20; c <= 0x7e; c++)
+	{
+	  err = ATSUClearLayoutCache (text_layout, kATSUFromTextBeginning);
+	  if (err == noErr)
+	    err = ATSUMeasureTextImage (text_layout,
+					kATSUFromTextBeginning, kATSUToTextEnd,
+					0, 0, &char_bounds);
+	  if (err == noErr)
+	    err = ATSUGetGlyphBounds (text_layout, 0, 0,
+				      kATSUFromTextBeginning, kATSUToTextEnd,
+				      kATSUseFractionalOrigins, 1,
+				      &glyph_bounds, NULL);
+	  if (err == noErr)
+	    {
+	      xassert (glyph_bounds.lowerRight.x - glyph_bounds.lowerLeft.x
+		       == glyph_bounds.upperRight.x - glyph_bounds.upperLeft.x);
+
+	      char_width = Fix2Long (glyph_bounds.upperRight.x
+				     - glyph_bounds.upperLeft.x);
+	      STORE_XCHARSTRUCT (font->per_char[c],
+				 char_width, char_bounds);
+	      if (c == 0x20)
+		{
+		  min_width = max_width = char_width;
+		  min_bounds = max_bounds = char_bounds;
+		  font->ascent = -Fix2Long (glyph_bounds.upperLeft.y);
+		  font->descent = Fix2Long (glyph_bounds.lowerLeft.y);
+		}
+	      else
+		{
+		  if (char_width > 0)
+		    {
+		      min_width = min (min_width, char_width);
+		      max_width = max (max_width, char_width);
+		    }
+		  if (!EmptyRect (&char_bounds))
+		    {
+		      SetRect (&min_bounds,
+			       max (min_bounds.left, char_bounds.left),
+			       max (min_bounds.top, char_bounds.top),
+			       min (min_bounds.right, char_bounds.right),
+			       min (min_bounds.bottom, char_bounds.bottom));
+		      UnionRect (&max_bounds, &char_bounds, &max_bounds);
+		    }
+		}
+	    }
+	}
+      STORE_XCHARSTRUCT (font->min_bounds, min_width, min_bounds);
+      STORE_XCHARSTRUCT (font->max_bounds, max_width, max_bounds);
+
+      font->min_byte1 = 0;
+      font->max_byte1 = 0xff;
+      font->min_char_or_byte2 = 0;
+      font->max_char_or_byte2 = 0xff;
+    }
+  else
+    {
+#endif
   is_two_byte_font = font->mac_scriptcode == smJapanese ||
                      font->mac_scriptcode == smTradChinese ||
                      font->mac_scriptcode == smSimpChinese ||
@@ -7258,24 +7794,26 @@
   font->ascent = the_fontinfo.ascent;
   font->descent = the_fontinfo.descent;
 
-  font->min_byte1 = 0;
   if (is_two_byte_font)
-    font->max_byte1 = 1;
-  else
-    font->max_byte1 = 0;
-  font->min_char_or_byte2 = 0x20;
-  font->max_char_or_byte2 = 0xff;
-
-  if (is_two_byte_font)
-    {
+    {
+      font->min_byte1 = 0xa1;
+      font->max_byte1 = 0xfe;
+      font->min_char_or_byte2 = 0xa1;
+      font->max_char_or_byte2 = 0xfe;
+
       /* Use the width of an "ideographic space" of that font because
          the_fontinfo.widMax returns the wrong width for some fonts.  */
       switch (font->mac_scriptcode)
         {
         case smJapanese:
+	  font->min_byte1 = 0x81;
+	  font->max_byte1 = 0xfc;
+	  font->min_char_or_byte2 = 0x40;
+	  font->max_char_or_byte2 = 0xfc;
           char_width = StringWidth("\p\x81\x40");
           break;
         case smTradChinese:
+	  font->min_char_or_byte2 = 0x40;
           char_width = StringWidth("\p\xa1\x40");
           break;
         case smSimpChinese:
@@ -7287,9 +7825,15 @@
         }
     }
   else
-    /* Do this instead of use the_fontinfo.widMax, which incorrectly
-       returns 15 for 12-point Monaco! */
-    char_width = CharWidth ('m');
+    {
+      font->min_byte1 = font->max_byte1 = 0;
+      font->min_char_or_byte2 = 0x20;
+      font->max_char_or_byte2 = 0xff;
+
+      /* Do this instead of use the_fontinfo.widMax, which incorrectly
+	 returns 15 for 12-point Monaco! */
+      char_width = CharWidth ('m');
+    }
 
   if (is_two_byte_font)
     {
@@ -7308,55 +7852,56 @@
     }
   else
     {
-      font->per_char = (XCharStruct *)
-	xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1));
-      {
-	int c, min_width, max_width;
-	Rect char_bounds, min_bounds, max_bounds;
-	char ch;
-
-	min_width = max_width = char_width;
-	SetRect (&min_bounds, -32767, -32767, 32767, 32767);
-	SetRect (&max_bounds, 0, 0, 0, 0);
-        for (c = 0x20; c <= 0xff; c++)
-          {
-	    ch = c;
-	    char_width = CharWidth (ch);
-	    QDTextBounds (1, &ch, &char_bounds);
-	    STORE_XCHARSTRUCT (font->per_char[c - 0x20],
-			       char_width, char_bounds);
-	    /* Some Japanese fonts (in SJIS encoding) return 0 as the
-	       character width of 0x7f.  */
-	    if (char_width > 0)
-	      {
-		min_width = min (min_width, char_width);
-		max_width = max (max_width, char_width);
-	      }
-	    if (!EmptyRect (&char_bounds))
-	      {
-		SetRect (&min_bounds,
-			 max (min_bounds.left, char_bounds.left),
-			 max (min_bounds.top, char_bounds.top),
-			 min (min_bounds.right, char_bounds.right),
-			 min (min_bounds.bottom, char_bounds.bottom));
-		UnionRect (&max_bounds, &char_bounds, &max_bounds);
-	      }
-	  }
-	STORE_XCHARSTRUCT (font->min_bounds, min_width, min_bounds);
-	STORE_XCHARSTRUCT (font->max_bounds, max_width, max_bounds);
-	if (min_width == max_width
-	    && max_bounds.left >= 0 && max_bounds.right <= max_width)
-	  {
-	    /* Fixed width and no overhangs.  */
-	    xfree (font->per_char);
-	    font->per_char = NULL;
-	  }
-      }
+      int c, min_width, max_width;
+      Rect char_bounds, min_bounds, max_bounds;
+      char ch;
+
+      font->per_char = xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1));
+
+      min_width = max_width = char_width;
+      SetRect (&min_bounds, -32767, -32767, 32767, 32767);
+      SetRect (&max_bounds, 0, 0, 0, 0);
+      for (c = 0x20; c <= 0xff; c++)
+	{
+	  ch = c;
+	  char_width = CharWidth (ch);
+	  QDTextBounds (1, &ch, &char_bounds);
+	  STORE_XCHARSTRUCT (font->per_char[c - 0x20],
+			     char_width, char_bounds);
+	  /* Some Japanese fonts (in SJIS encoding) return 0 as the
+	     character width of 0x7f.  */
+	  if (char_width > 0)
+	    {
+	      min_width = min (min_width, char_width);
+	      max_width = max (max_width, char_width);
+	    }
+	  if (!EmptyRect (&char_bounds))
+	    {
+	      SetRect (&min_bounds,
+		       max (min_bounds.left, char_bounds.left),
+		       max (min_bounds.top, char_bounds.top),
+		       min (min_bounds.right, char_bounds.right),
+		       min (min_bounds.bottom, char_bounds.bottom));
+	      UnionRect (&max_bounds, &char_bounds, &max_bounds);
+	    }
+	}
+      STORE_XCHARSTRUCT (font->min_bounds, min_width, min_bounds);
+      STORE_XCHARSTRUCT (font->max_bounds, max_width, max_bounds);
+      if (min_width == max_width
+	  && max_bounds.left >= 0 && max_bounds.right <= max_width)
+	{
+	  /* Fixed width and no overhangs.  */
+	  xfree (font->per_char);
+	  font->per_char = NULL;
+	}
     }
 
   TextFont (old_fontnum);  /* restore previous font number, size and face */
   TextSize (old_fontsize);
   TextFace (old_fontface);
+#if USE_ATSUI
+  }
+#endif
 
   return font;
 }
@@ -7370,6 +7915,10 @@
   xfree (font->full_name);
   if (font->per_char)
     xfree (font->per_char);
+#if USE_ATSUI
+  if (font->mac_style)
+    ATSUDisposeStyle (font->mac_style);
+#endif
   xfree (font);
 }
 
@@ -10214,75 +10763,6 @@
 
   mac_determine_quit_char_modifiers();
 }
-
-static Boolean
-quit_char_comp (EventRef inEvent, void *inCompData)
-{
-  if (GetEventClass(inEvent) != kEventClassKeyboard)
-    return false;
-  if (GetEventKind(inEvent) != kEventRawKeyDown)
-    return false;
-  {
-    UInt32 keyCode;
-    UInt32 keyModifiers;
-    GetEventParameter(inEvent, kEventParamKeyCode,
-		      typeUInt32, NULL, sizeof(UInt32), NULL, &keyCode);
-    if (keyCode != mac_quit_char_keycode)
-      return false;
-    GetEventParameter(inEvent, kEventParamKeyModifiers,
-		      typeUInt32, NULL, sizeof(UInt32), NULL, &keyModifiers);
-    if (keyModifiers != mac_quit_char_modifiers)
-      return false;
-  }
-  return true;
-}
-
-void
-mac_check_for_quit_char ()
-{
-  EventRef event;
-  static EMACS_TIME last_check_time = { 0, 0 };
-  static EMACS_TIME one_second = { 1, 0 };
-  EMACS_TIME now, t;
-
-  /* If windows are not initialized, return immediately (keep it bouncin').  */
-  if (!mac_quit_char_modifiers)
-    return;
-
-  /* Don't check if last check is less than a second ago.  */
-  EMACS_GET_TIME (now);
-  EMACS_SUB_TIME (t, now, last_check_time);
-  if (EMACS_TIME_LT (t, one_second))
-    return;
-  last_check_time = now;
-
-  /* Redetermine modifiers because they are based on lisp variables */
-  mac_determine_quit_char_modifiers ();
-
-  /* Fill the queue with events */
-  BLOCK_INPUT;
-  ReceiveNextEvent (0, NULL, kEventDurationNoWait, false, &event);
-  event = FindSpecificEventInQueue (GetMainEventQueue (), quit_char_comp,
-				    NULL);
-  UNBLOCK_INPUT;
-  if (event)
-    {
-      struct input_event e;
-
-      /* Use an input_event to emulate what the interrupt handler does. */
-      EVENT_INIT (e);
-      e.kind = ASCII_KEYSTROKE_EVENT;
-      e.code = quit_char;
-      e.arg = Qnil;
-      e.modifiers = NULL;
-      e.timestamp = EventTimeToTicks (GetEventTime (event)) * (1000/60);
-      XSETFRAME (e.frame_or_window, mac_focus_frame (&one_mac_display_info));
-      /* Remove event from queue to prevent looping. */
-      RemoveEventFromQueue (GetMainEventQueue (), event);
-      ReleaseEvent (event);
-      kbd_buffer_store_event (&e);
-    }
-}
 #endif	/* MAC_OSX */
 
 static void
@@ -10460,6 +10940,11 @@
   Qmac_ready_for_drag_n_drop = intern ("mac-ready-for-drag-n-drop");
   staticpro (&Qmac_ready_for_drag_n_drop);
 
+#if USE_ATSUI
+  staticpro (&atsu_font_id_hash);
+  atsu_font_id_hash = Qnil;
+#endif
+
   DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars,
 	       doc: /* If not nil, Emacs uses toolkit scroll bars.  */);
 #ifdef USE_TOOLKIT_SCROLL_BARS
--- a/src/minibuf.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/minibuf.c	Fri Oct 07 07:15:40 2005 +0000
@@ -1132,11 +1132,14 @@
 Prompt with PROMPT.
 Optional second arg DEF is value to return if user enters an empty line.
 If optional third arg REQUIRE-MATCH is non-nil,
- only existing buffer names are allowed.  */)
+ only existing buffer names are allowed.
+The argument PROMPT should be a string ending with a colon and a space.  */)
      (prompt, def, require_match)
      Lisp_Object prompt, def, require_match;
 {
   Lisp_Object args[4];
+  unsigned char *s;
+  int len;
 
   if (BUFFERP (def))
     def = XBUFFER (def)->name;
@@ -1145,7 +1148,26 @@
     {
       if (!NILP (def))
 	{
-	  args[0] = build_string ("%s(default %s) ");
+	  /* A default value was provided: we must change PROMPT,
+	     editing the default value in before the colon.  To achieve
+	     this, we replace PROMPT with a substring that doesn't
+	     contain the terminal space and colon (if present).  They
+	     are then added back using Fformat.  */
+
+	  if (STRINGP (prompt))
+	    {
+	      s = SDATA (prompt);
+	      len = strlen (s);
+	      if (len >= 2 && s[len - 2] == ':' && s[len - 1] == ' ')
+		len = len - 2;
+	      else if (len >= 1 && (s[len - 1] == ':' || s[len - 1] == ' '))
+		len--;
+
+	      prompt = make_specified_string (s, -1, len,
+					      STRING_MULTIBYTE (prompt));
+	    }
+
+	  args[0] = build_string ("%s (default %s): ");
 	  args[1] = prompt;
 	  args[2] = def;
 	  prompt = Fformat (3, args);
--- a/src/process.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/process.c	Fri Oct 07 07:15:40 2005 +0000
@@ -118,10 +118,10 @@
 #include <sys/wait.h>
 #endif
 
+#include "lisp.h"
 #include "systime.h"
 #include "systty.h"
 
-#include "lisp.h"
 #include "window.h"
 #include "buffer.h"
 #include "character.h"
--- a/src/regex.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/regex.c	Fri Oct 07 07:15:40 2005 +0000
@@ -1290,9 +1290,9 @@
 
 void
 re_set_whitespace_regexp (regexp)
-     re_char *regexp;
+     const char *regexp;
 {
-  whitespace_regexp = regexp;
+  whitespace_regexp = (re_char *) regexp;
 }
 WEAK_ALIAS (__re_set_syntax, re_set_syntax)
 
--- a/src/regex.h	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/regex.h	Fri Oct 07 07:15:40 2005 +0000
@@ -609,8 +609,13 @@
 	       RECC_ASCII, RECC_UNIBYTE
 } re_wctype_t;
 
+extern char re_iswctype (int ch,    re_wctype_t cc);
+extern re_wctype_t re_wctype (const unsigned char* str);
+
 typedef int re_wchar_t;
 
+extern void re_set_whitespace_regexp (const char *regexp);
+
 #endif /* not WIDE_CHAR_SUPPORT */
 
 #endif /* regex.h */
--- a/src/systime.h	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/systime.h	Fri Oct 07 07:15:40 2005 +0000
@@ -157,6 +157,14 @@
 /* defined in keyboard.c */
 extern void set_waiting_for_input __P ((EMACS_TIME *));
 
+/* When lisp.h is not included Lisp_Object is not defined (this can
+   happen when this files is used outside the src directory).
+   Use GCPRO1 to determine if lisp.h was included.  */
+#ifdef GCPRO1
+/* defined in dired.c */
+extern Lisp_Object make_time __P ((time_t));
+#endif
+
 /* Compare times T1 and T2.  Value is 0 if T1 and T2 are the same.
    Value is < 0 if T1 is less than T2.  Value is > 0 otherwise.  */
 
--- a/src/unexelf.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/unexelf.c	Fri Oct 07 07:15:40 2005 +0000
@@ -412,7 +412,7 @@
 #include <string.h>
 #else
 #include <config.h>
-extern void fatal (char *, ...);
+extern void fatal (const char *msgid, ...);
 #endif
 
 #include <sys/types.h>
--- a/src/window.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/window.c	Fri Oct 07 07:15:40 2005 +0000
@@ -6225,6 +6225,85 @@
   return unbind_to (count, val);
 }
 
+
+
+/***********************************************************************
+			    Window Split Tree
+ ***********************************************************************/
+
+static Lisp_Object
+window_split_tree (w)
+     struct window *w;
+{
+  Lisp_Object tail = Qnil;
+  Lisp_Object result = Qnil;
+
+  while (w)
+    {
+      Lisp_Object wn;
+
+      XSETWINDOW (wn, w);
+      if (!NILP (w->hchild))
+	wn = Fcons (Qnil, Fcons (Fwindow_edges (wn),
+				 window_split_tree (XWINDOW (w->hchild))));
+      else if (!NILP (w->vchild))
+	wn = Fcons (Qt, Fcons (Fwindow_edges (wn),
+			       window_split_tree (XWINDOW (w->vchild))));
+
+      if (NILP (result))
+	{
+	  result = tail = Fcons (wn, Qnil);
+	}
+      else
+	{
+	  XSETCDR (tail, Fcons (wn, Qnil));
+	  tail = XCDR (tail);
+	}
+
+      w = NILP (w->next) ? 0 : XWINDOW (w->next);
+    }
+
+  return result;
+}
+
+
+
+DEFUN ("window-split-tree", Fwindow_split_tree, Swindow_split_tree,
+       0, 1, 0,
+       doc: /* Return the window split tree for frame FRAME.
+
+The return value is a list of the form (ROOT MINI), where ROOT
+represents the window split tree of the frame's root window, and MINI
+is the frame's minibuffer window.
+
+If the root window is not split, ROOT is the root window itself.
+Otherwise, ROOT is a list (DIR EDGES W1 W2 ...) where DIR is nil for a
+horisontal split, and t for a vertical split, EDGES gives the combined
+size and position of the subwindows in the split, and the rest of the
+elements are the subwindows in the split.  Each of the subwindows may
+again be a window or a list representing a window split, and so on.
+EDGES is a list \(LEFT TOP RIGHT BOTTOM) as returned by `window-edges'.
+
+If FRAME is nil or omitted, return information on the currently
+selected frame.  */)
+     (frame)
+     Lisp_Object frame;
+{
+  Lisp_Object alist;
+  FRAME_PTR f;
+
+  if (NILP (frame))
+    frame = selected_frame;
+
+  CHECK_FRAME (frame);
+  f = XFRAME (frame);
+
+  if (!FRAME_LIVE_P (f))
+    return Qnil;
+
+  return window_split_tree (XWINDOW (FRAME_ROOT_WINDOW (f)));
+}
+
 
 /***********************************************************************
 			    Marginal Areas
@@ -7031,6 +7110,7 @@
   defsubr (&Sset_window_configuration);
   defsubr (&Scurrent_window_configuration);
   defsubr (&Ssave_window_excursion);
+  defsubr (&Swindow_split_tree);
   defsubr (&Sset_window_margins);
   defsubr (&Swindow_margins);
   defsubr (&Sset_window_fringes);
--- a/src/xdisp.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/xdisp.c	Fri Oct 07 07:15:40 2005 +0000
@@ -12943,7 +12943,8 @@
       this_scroll_margin *= FRAME_LINE_HEIGHT (it.f);
 
       if ((w->cursor.y < this_scroll_margin
-	   && CHARPOS (pos) > BEGV)
+	   && CHARPOS (pos) > BEGV
+	   && IT_CHARPOS (it) < ZV)
 	  /* rms: considering make_cursor_line_fully_visible_p here
 	     seems to give wrong results.  We don't want to recenter
 	     when the last line is partly visible, we want to allow
--- a/src/xfaces.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/xfaces.c	Fri Oct 07 07:15:40 2005 +0000
@@ -1475,7 +1475,9 @@
 
 
 /* Return non-zero if COLOR_NAME is a shade of gray (or white or
-   black) on frame F.  The algorithm is taken from 20.2 faces.el.  */
+   black) on frame F.
+
+   The criterion implemented here is not a terribly sophisticated one.  */
 
 static int
 face_color_gray_p (f, color_name)
@@ -1486,12 +1488,15 @@
   int gray_p;
 
   if (defined_color (f, color_name, &color, 0))
-    gray_p = ((abs (color.red - color.green)
-	       < max (color.red, color.green) / 20)
-	      && (abs (color.green - color.blue)
-		  < max (color.green, color.blue) / 20)
-	      && (abs (color.blue - color.red)
-		  < max (color.blue, color.red) / 20));
+    gray_p = (/* Any color sufficiently close to black counts as grey.  */
+	      (color.red < 5000 && color.green < 5000 && color.blue < 5000)
+	      ||
+	      ((abs (color.red - color.green)
+		< max (color.red, color.green) / 20)
+	       && (abs (color.green - color.blue)
+		   < max (color.green, color.blue) / 20)
+	       && (abs (color.blue - color.red)
+		   < max (color.blue, color.red) / 20)));
   else
     gray_p = 0;
 
--- a/src/xsmfns.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/xsmfns.c	Fri Oct 07 07:15:40 2005 +0000
@@ -45,9 +45,9 @@
 #include <sys/param.h>
 #include <stdio.h>
 
+#include "lisp.h"
 #include "systime.h"
 #include "sysselect.h"
-#include "lisp.h"
 #include "termhooks.h"
 #include "termopts.h"
 #include "xterm.h"
--- a/src/xterm.c	Thu Oct 06 02:00:50 2005 +0000
+++ b/src/xterm.c	Fri Oct 07 07:15:40 2005 +0000
@@ -6237,7 +6237,7 @@
               if (status_return == XBufferOverflow)
                 {
                   copy_bufsiz = nbytes + 1;
-                  copy_bufptr = (char *) alloca (copy_bufsiz);
+                  copy_bufptr = (unsigned char *) alloca (copy_bufsiz);
                   nbytes = XmbLookupString (FRAME_XIC (f),
                                             &event.xkey, copy_bufptr,
                                             copy_bufsiz, &keysym,
@@ -6255,7 +6255,7 @@
                   if (status_return == XBufferOverflow)
                     {
                       copy_bufsiz = nbytes + 1;
-                      copy_bufptr = (char *) alloca (copy_bufsiz);
+                      copy_bufptr = (unsigned char *) alloca (copy_bufsiz);
                       nbytes = Xutf8LookupString (FRAME_XIC (f),
                                                   &event.xkey,
                                                   copy_bufptr,