changeset 83304:6fef25c75847

Merged from miles@gnu.org--gnu-2005 (patch 296-306) Patches applied: * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-296 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-297 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-298 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-299 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-300 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-301 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-302 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-303 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-304 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-305 Update from CVS * miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-306 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-344
author Karoly Lorentey <lorentey@elte.hu>
date Fri, 13 May 2005 22:59:23 +0000
parents 108e45fdcdbd (current diff) 15d767992da8 (diff)
children 80cb3fe96145
files ChangeLog admin/FOR-RELEASE configure configure.in etc/TODO lisp/ChangeLog lisp/files.el lisp/font-lock.el lisp/international/mule-cmds.el lisp/international/mule.el lisp/progmodes/ada-mode.el lisp/progmodes/ada-stmt.el lisp/progmodes/gdb-ui.el lisp/startup.el lisp/term/sun.el lisp/term/x-win.el lisp/term/xterm.el lispref/ChangeLog mac/makefile.MPW man/ChangeLog man/frames.texi src/emacs.c src/keyboard.c src/macterm.c src/xfns.c src/xmenu.c src/xterm.c
diffstat 118 files changed, 4267 insertions(+), 2693 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon May 09 16:17:25 2005 +0000
+++ b/ChangeLog	Fri May 13 22:59:23 2005 +0000
@@ -1,3 +1,10 @@
+2005-05-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* configure.in: Don't check HAVE_CARBON if HAVE_X11 is set to yes.
+	Check HAVE_CARBON before USE_TOOLKIT_SCROLL_BARS.  Define
+	USE_TOOLKIT_SCROLL_BARS by default if HAVE_CARBON is set to yes.
+	* configure: Regenerate.
+
 2005-05-07  J,Ai(Br,At(Bme Marant  <jerome@marant.org>
 
 	* make-dist: Remove references to makefile.nt and makefile.def.
--- a/admin/FOR-RELEASE	Mon May 09 16:17:25 2005 +0000
+++ b/admin/FOR-RELEASE	Fri May 13 22:59:23 2005 +0000
@@ -93,9 +93,12 @@
 
 DIRECTORY		STATUS		IN CHARGE
 ---------		------		---------
-lisp/international	working		Kenichi Handa
+lisp/emulation		working		Thien-Thi Nguyen
+lisp/international	done		Kenichi Handa
 lisp/languages		working		Kenichi Handa
-
+lisp/net		working		Thien-Thi Nguyen
+lisp/play		done		Thien-Thi Nguyen
+lisp/term		done		Thien-Thi Nguyen
 
 ** Update AUTHORS.
 
@@ -175,7 +178,7 @@
 lispref/debugging.texi   Joakim Verona <joakim@verona.se>   Lute Kamstra
 lispref/display.texi     Chong Yidong
 lispref/edebug.texi      Chong Yidong
-lispref/elisp.texi       "Luc Teirlinck"
+lispref/elisp.texi       "Luc Teirlinck"   Lute Kamstra
 lispref/errors.texi      "Luc Teirlinck"
 lispref/eval.texi        "Luc Teirlinck"   Chong Yidong
 lispref/files.texi       "Luc Teirlinck"   Chong Yidong
@@ -200,7 +203,7 @@
 lispref/objects.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/os.texi		 "Luc Teirlinck"   Chong Yidong
 lispref/positions.texi	 "Luc Teirlinck"   Chong Yidong
-lispref/processes.texi   Chong Yidong
+lispref/processes.texi   Chong Yidong	   Thien-Thi Nguyen
 lispref/searching.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/sequences.texi	 "Luc Teirlinck"   Chong Yidong
 lispref/streams.texi	 "Luc Teirlinck"   Chong Yidong
@@ -214,10 +217,10 @@
 
 ** Check the Emacs Tutorial.
 
-The first line of every tutorial must begin with a sentence saying
-"Emacs Tutorial" in the respective language.  This should be followed
-by "See end for copying conditions", likewise in the respective
-language.
+The first line of every tutorial must begin with text ending in a period
+(".", ASCII 0x2E) saying "Emacs Tutorial" in the respective language.
+This should be followed by "See end for copying conditions", likewise
+in the respective language.
 
 After each file name, on the same line or the following line, come the
 names of the people who have checked it.
--- a/configure	Mon May 09 16:17:25 2005 +0000
+++ b/configure	Fri May 13 22:59:23 2005 +0000
@@ -8215,6 +8215,154 @@
   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
+  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
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5
+echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6
+else
+  # Is the header compilable?
+echo "$as_me:$LINENO: checking Carbon/Carbon.h usability" >&5
+echo $ECHO_N "checking Carbon/Carbon.h usability... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+$ac_includes_default
+#include <Carbon/Carbon.h>
+_ACEOF
+rm -f conftest.$ac_objext
+if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  (eval $ac_compile) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } &&
+	 { ac_try='test -z "$ac_c_werror_flag"
+			 || test ! -s conftest.err'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; } &&
+	 { ac_try='test -s conftest.$ac_objext'
+  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+  (eval $ac_try) 2>&5
+  ac_status=$?
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); }; }; then
+  ac_header_compiler=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_header_compiler=no
+fi
+rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+echo "${ECHO_T}$ac_header_compiler" >&6
+
+# Is the header present?
+echo "$as_me:$LINENO: checking Carbon/Carbon.h presence" >&5
+echo $ECHO_N "checking Carbon/Carbon.h presence... $ECHO_C" >&6
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+#include <Carbon/Carbon.h>
+_ACEOF
+if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
+  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } >/dev/null; then
+  if test -s conftest.err; then
+    ac_cpp_err=$ac_c_preproc_warn_flag
+    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
+  else
+    ac_cpp_err=
+  fi
+else
+  ac_cpp_err=yes
+fi
+if test -z "$ac_cpp_err"; then
+  ac_header_preproc=yes
+else
+  echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+echo "${ECHO_T}$ac_header_preproc" >&6
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
+  yes:no: )
+    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&5
+echo "$as_me: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&5
+echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&2;}
+    ac_header_preproc=yes
+    ;;
+  no:yes:* )
+    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&5
+echo "$as_me: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&2;}
+    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h:     check for missing prerequisite headers?" >&5
+echo "$as_me: WARNING: Carbon/Carbon.h:     check for missing prerequisite headers?" >&2;}
+    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&5
+echo "$as_me: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&2;}
+    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h:     section \"Present But Cannot Be Compiled\"" >&5
+echo "$as_me: WARNING: Carbon/Carbon.h:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&5
+echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;}
+    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&5
+echo "$as_me: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&2;}
+    (
+      cat <<\_ASBOX
+## ------------------------------------------ ##
+## Report this to the AC_PACKAGE_NAME lists.  ##
+## ------------------------------------------ ##
+_ASBOX
+    ) |
+      sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+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
+  echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+  ac_cv_header_Carbon_Carbon_h=$ac_header_preproc
+fi
+echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5
+echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6
+
+fi
+if test $ac_cv_header_Carbon_Carbon_h = yes; then
+  HAVE_CARBON=yes
+fi
+
+
+  fi
+fi
+
 ### Compute the unexec source name from the object name.
 UNEXEC_SRC="`echo ${unexec} | sed 's/\.o/.c/'`"
 
@@ -11045,6 +11193,12 @@
 _ACEOF
 
     USE_TOOLKIT_SCROLL_BARS=yes
+  elif test "${HAVE_CARBON}" = "yes"; then
+    cat >>confdefs.h <<\_ACEOF
+#define USE_TOOLKIT_SCROLL_BARS 1
+_ACEOF
+
+    USE_TOOLKIT_SCROLL_BARS=yes
   fi
 fi
 
@@ -12384,153 +12538,6 @@
   fi
 fi
 
-### Use Mac OS X Carbon API to implement GUI.
-HAVE_CARBON=no
-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
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5
-echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6
-else
-  # Is the header compilable?
-echo "$as_me:$LINENO: checking Carbon/Carbon.h usability" >&5
-echo $ECHO_N "checking Carbon/Carbon.h usability... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <Carbon/Carbon.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
-  (eval $ac_compile) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } &&
-	 { ac_try='test -z "$ac_c_werror_flag"
-			 || test ! -s conftest.err'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; } &&
-	 { ac_try='test -s conftest.$ac_objext'
-  { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
-  (eval $ac_try) 2>&5
-  ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_header_compiler=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-ac_header_compiler=no
-fi
-rm -f conftest.err conftest.$ac_objext conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6
-
-# Is the header present?
-echo "$as_me:$LINENO: checking Carbon/Carbon.h presence" >&5
-echo $ECHO_N "checking Carbon/Carbon.h presence... $ECHO_C" >&6
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <Carbon/Carbon.h>
-_ACEOF
-if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5
-  (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null; then
-  if test -s conftest.err; then
-    ac_cpp_err=$ac_c_preproc_warn_flag
-    ac_cpp_err=$ac_cpp_err$ac_c_werror_flag
-  else
-    ac_cpp_err=
-  fi
-else
-  ac_cpp_err=yes
-fi
-if test -z "$ac_cpp_err"; then
-  ac_header_preproc=yes
-else
-  echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.$ac_ext
-echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: Carbon/Carbon.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&5
-echo "$as_me: WARNING: Carbon/Carbon.h: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: Carbon/Carbon.h:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: Carbon/Carbon.h: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: Carbon/Carbon.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: Carbon/Carbon.h: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: Carbon/Carbon.h: in the future, the compiler will take precedence" >&2;}
-    (
-      cat <<\_ASBOX
-## ------------------------------------------ ##
-## Report this to the AC_PACKAGE_NAME lists.  ##
-## ------------------------------------------ ##
-_ASBOX
-    ) |
-      sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-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
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  ac_cv_header_Carbon_Carbon_h=$ac_header_preproc
-fi
-echo "$as_me:$LINENO: result: $ac_cv_header_Carbon_Carbon_h" >&5
-echo "${ECHO_T}$ac_cv_header_Carbon_Carbon_h" >&6
-
-fi
-if test $ac_cv_header_Carbon_Carbon_h = yes; then
-  HAVE_CARBON=yes
-fi
-
-
-fi
-
 if test "${ac_cv_header_malloc_malloc_h+set}" = set; then
   echo "$as_me:$LINENO: checking for malloc/malloc.h" >&5
 echo $ECHO_N "checking for malloc/malloc.h... $ECHO_C" >&6
@@ -12678,6 +12685,7 @@
 
 
 
+### Use Mac OS X Carbon API to implement GUI.
 if test "${HAVE_CARBON}" = "yes"; then
 
 cat >>confdefs.h <<\_ACEOF
--- a/configure.in	Mon May 09 16:17:25 2005 +0000
+++ b/configure.in	Fri May 13 22:59:23 2005 +0000
@@ -1694,6 +1694,13 @@
   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/'`"
 
@@ -2155,6 +2162,9 @@
   elif test "${HAVE_GTK}" = "yes"; then
     AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
     USE_TOOLKIT_SCROLL_BARS=yes
+  elif test "${HAVE_CARBON}" = "yes"; then
+    AC_DEFINE(USE_TOOLKIT_SCROLL_BARS)
+    USE_TOOLKIT_SCROLL_BARS=yes
   fi
 fi
 
@@ -2308,15 +2318,10 @@
   fi
 fi
 
-### Use Mac OS X Carbon API to implement GUI.
-HAVE_CARBON=no
-if test "${with_carbon}" != "no"; then
-  AC_CHECK_HEADER(Carbon/Carbon.h, HAVE_CARBON=yes)
-fi
-
 dnl Check for malloc/malloc.h on darwin
 AC_CHECK_HEADER(malloc/malloc.h, AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the <malloc/malloc.h> header file.]))
 
+### 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
--- a/etc/ChangeLog	Mon May 09 16:17:25 2005 +0000
+++ b/etc/ChangeLog	Fri May 13 22:59:23 2005 +0000
@@ -59,7 +59,7 @@
 
 	* TUTORIAL.de: Updated header.
 
-2005-04-05  Marcelo Toledo  <marcelo@marcelotoledo.org>
+2005-04-05  Marcelo Toledo  <marcelo@gnu.org>
 
         * TUTORIAL.translators: Added the field Maintainer.
 
@@ -80,20 +80,24 @@
 
 	* TUTORIAL.es: Clean up line breaks.
 
-2005-04-01  Marcelo Toledo  <marcelo@marcelotoledo.org>
+2005-04-01  Marcelo Toledo  <marcelo@gnu.org>
 
         * TUTORIAL.pt_BR, TUTORIAL.cn, TUTORIAL.cs, TUTORIAL.de,
         * TUTORIAL.es, TUTORIAL.fr, TUTORIAL.it, TUTORIAL.ja, TUTORIAL.ko,
         * TUTORIAL.pl, TUTORIAL.pt_BR, TUTORIAL.ro, TUTORIAL.ru,
         * TUTORIAL.sk, TUTORIAL.sl, TUTORIAL.th, TUTORIAL.zh: Fix title
         line.
-
+        
+2005-04-01  Ognyan Kulev  <ogi@fmi.uni-sofia.bg>
+        
         * TUTORIAL.bg: Fix title line; Applied TUTORIAL changes in
         revision 1.59, "Emacs" is not transliterated to cyrillic anymore;
-        Minor fixes; patch by Ognyan Kulev <ogi@fmi.uni-sofia.bg>.
+        Minor fixes.
+
+2005-04-01  Mats Lidell  <matsl@contactor.se>
 
         * TUTORIAL.sv: Sync some other changes with the TUTORIAL version
-        1.61 in CVS patch by Mats Lidell <matsl@contactor.se>.
+        1.61 in CVS.
 
 2005-04-01  Lute Kamstra  <lute@gnu.org>
 
@@ -358,7 +362,7 @@
 	* tree-widget: New directory containing tree-widget themes and
 	images.
 
-2004-04-13  Marcelo Toledo  <marcelo@marcelotoledo.org>
+2004-04-13  Marcelo Toledo  <marcelo@gnu.org>
 
 	* TUTORIAL.pt_BR: initial check-in.
 
@@ -377,9 +381,9 @@
 
 	* TUTORIAL.it, TUTORIAL.nl, TUTORIAL.sv: Add coding: latin-1.
 
-2004-04-16  David Kastrup  <dak@gnu.org>
-
-	* TUTORIAL.ru: Changes by Alex Ott checked in.
+2004-04-16  Alex Ott  <ottalex@narod.ru>
+
+	* TUTORIAL.ru: Various corrections.
 
 2004-04-14  Jan Nieuwenhuizen  <janneke@gnu.org>
 
@@ -574,10 +578,9 @@
 
 	* MH-E-NEWS: Upgraded to MH-E version 7.0.
 
-2002-11-22  Juanma Barranquero  <lektu@terra.es>
-
-	* TUTORIAL.es: Extensively changed and updated by Rafael Sep,Az(Blveda
-	<drs@gnulinux.org.mx>.
+2002-11-22  Rafael Sep,Az(Blveda  <drs@gnulinux.org.mx>
+
+	* TUTORIAL.es: Extensively changed and updated.
 
 2002-10-01  Bill Wohler  <wohler@newt.com>
 
@@ -1833,11 +1836,13 @@
 	* emacstool.c: setenv IN_EMACSTOOL=t, TERM=sun, TERMCAP=.
 
 	* emacsstool.1: update to document environment variables.
+        
+1989-02-21  Mosur Mohan (email@notavailable)
+        
+	* etags.c (PAS_funcs): New function.
 
 1989-02-21  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
-	* etags.c (PAS_funcs): New function by Mosur Mohan.
-
 	* movemail.c: On sysv, include unistd.h.
 
 1989-02-18  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
@@ -1856,10 +1861,10 @@
 
 	* fakemail.c (put_line): Break header lines at 79 cols.
 
-1989-01-19  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
-
-	* etags.c: Greatly rewritten by Sam Kendall for C++ support and for
-	multiple tags per line.
+1989-01-19  Sam Kendall  (email@notavailable)
+
+	* etags.c: Greatly rewritten for C++ support and for multiple tags        
+        per line.
 
 1989-01-03  Richard Stallman  (rms@sugar-bombs.ai.mit.edu)
 
--- a/etc/NEWS	Mon May 09 16:17:25 2005 +0000
+++ b/etc/NEWS	Fri May 13 22:59:23 2005 +0000
@@ -104,6 +104,10 @@
 ---
 ** Building with -DENABLE_CHECKING does not automatically build with union
 types any more.  Add -DUSE_LISP_UNION_TYPE if you want union types.
+
+---
+** When pure storage overflows while dumping, Emacs now prints how
+much pure storage it will approximately need.
 
 * Startup Changes in Emacs 22.1
 
@@ -181,18 +185,8 @@
 modified buffers, it saves the abbrevs too if they have changed.  It
 can do this either silently or asking for confirmation first,
 according to the value of `save-abbrevs'.
-
 
-* Editing Changes in Emacs 22.1
-
-+++
-** The max size of buffers and integers has been doubled.
-On 32bit machines, it is now 256M (i.e. 268435455).
-
-+++
-** The mode line position information now comes before the major mode.
-When the file is maintained under version control, that information
-appears between the position information and the major mode.
+* Incompatible Editing Changes in Emacs 22.1
 
 +++
 ** M-g is now a prefix key.
@@ -201,41 +195,120 @@
 M-g p and M-g M-p run previous-error.
 
 +++
-** M-o now is the prefix key for setting text properties;
-M-o M-o requests refontification.
-
-+++
-** C-u M-x goto-line now switches to the most recent previous buffer,
+** C-u M-g M-g switches to the most recent previous buffer,
 and goes to the specified line in that buffer.
 
 When goto-line starts to execute, if there's a number in the buffer at
 point then it acts as the default argument for the minibuffer.
 
 +++
+** The old bindings C-M-delete and C-M-backspace have been deleted,
+since there are situations where one or the other will shut down
+the operating system or your X server.
+
++++
+** line-move-ignore-invisible now defaults to t.
+
++++
+** When the undo information of the current command gets really large
+(beyond the value of `undo-outer-limit'), Emacs discards it and warns
+you about it.
+
++++
+** `apply-macro-to-region-lines' now operates on all lines that begin
+in the region, rather than on all complete lines in the region.
+
++++
+** A prefix argument is no longer required to repeat a jump to a
+previous mark, i.e. C-u C-SPC C-SPC C-SPC ... cycles through the
+mark ring.  Use C-u C-u C-SPC to set the mark immediately after a jump.
+
++++
+** The info-search bindings on C-h C-f, C-h C-k and C-h C-i
+have been moved to C-h F, C-h K and C-h S.
+
++++
+** In incremental search, C-w is changed.  M-%, C-M-w and C-M-y are special.
+
+See below under "incremental search changes".
+
+---
+** C-x C-f RET, typing nothing in the minibuffer, is no longer a special case.
+
+Since the default input is the current directory, this has the effect
+of specifying the current directory.  Normally that means to visit the
+directory with Dired.
+
++++
+** The completion commands TAB, SPC and ? in the minibuffer apply only
+to the text before point.  If there is text in the buffer after point,
+it remains unchanged.
+
++++
+** M-o now is the prefix key for setting text properties;
+M-o M-o requests refontification.
+
++++
+** You can now follow links by clicking Mouse-1 on the link.
+
+See below for more details.
+
++++
+** In Dired's ! command (dired-do-shell-command), `*' and `?' now
+control substitution of the file names only when they are surrounded
+by whitespace.  This means you can now use them as shell wildcards
+too.  If you want to use just plain `*' as a wildcard, type `*""'; the
+doublequotes make no difference in the shell, but they prevent
+special treatment in `dired-do-shell-command'.
+
+* Editing Changes in Emacs 22.1
+
++++
+** The max size of buffers and integers has been doubled.
+On 32bit machines, it is now 256M (i.e. 268435455).
+
++++
+** M-g is now a prefix key.
+M-g g and M-g M-g run goto-line.
+M-g n and M-g M-n run next-error (like C-x `).
+M-g p and M-g M-p run previous-error.
+
++++
+** C-u M-g M-g switches to the most recent previous buffer,
+and goes to the specified line in that buffer.
+
+When goto-line starts to execute, if there's a number in the buffer at
+point then it acts as the default argument for the minibuffer.
+
++++
+** The old bindings C-M-delete and C-M-backspace have been deleted,
+since there are situations where one or the other will shut down
+the operating system or your X server.
+
++++
+** line-move-ignore-invisible now defaults to t.
+
++++
+** When the undo information of the current command gets really large
+(beyond the value of `undo-outer-limit'), Emacs discards it and warns
+you about it.
+
++++
+** `apply-macro-to-region-lines' now operates on all lines that begin
+in the region, rather than on all complete lines in the region.
+
++++
 ** You can now switch buffers in a cyclic order with C-x C-left and
 (prev-buffer) and C-x C-right (next-buffer).  C-x left and C-x right
 can be used as well.
 
 +++
-** The old bindings C-M-delete and C-M-backspace have been deleted,
-since there are situations where one or the other will shut down
-the operating system or your X server.
-
-+++
 ** `undo-only' does an undo which does not redo any previous undo.
 
 +++
-** When the undo information of the current command gets really large
-(beyond the value of `undo-outer-limit'), Emacs discards it and warns
-you about it.
-
-+++
 ** M-SPC (just-one-space) when given a numeric argument N
 converts whitespace around point to N spaces.
 
-+++
-** line-move-ignore-invisible now defaults to t.
-
 ---
 ** New commands to operate on pairs of open and close characters:
 `insert-pair', `delete-pair', `raise-sexp'.
@@ -256,24 +329,16 @@
 in Indented-Text mode.
 
 +++
-** Movement commands `beginning-of-buffer', `end-of-buffer',
-`beginning-of-defun', `end-of-defun' do not set the mark if the mark
-is already active in Transient Mark mode.
-
-+++
-** `apply-macro-to-region-lines' now operates on all lines that begin
-in the region, rather than on all complete lines in the region.
-
-+++
-** M-x setenv now expands environment variables of the form `$foo' and
-`${foo}' in the specified new value of the environment variable.  To
-include a `$' in the value, use `$$'.
-
-+++
-** Unquoted `$' in file names do not signal an error any more when
-the corresponding environment variable does not exist.
-Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
-is only rarely needed.
+** M-x setenv now expands environment variable references.
+
+Substrings of the form `$foo' and `${foo}' in the specified new value
+now refer to the value of environment variable foo.  To include a `$'
+in the value, use `$$'.
+
++++
+** `special-display-buffer-names' and `special-display-regexps' now
+understand two new boolean pseudo-frame-parameters `same-frame' and
+`same-window'.
 
 +++
 ** The default for the paper size (variable ps-paper-type) is taken
@@ -287,18 +352,21 @@
 mark ring.  Use C-u C-u C-SPC to set the mark immediately after a jump.
 
 +++
-*** Marking commands extend the region when invoked multiple times.  If
-you hit M-C-SPC (mark-sexp), M-@ (mark-word), M-h (mark-paragraph), or
-C-M-h (mark-defun) repeatedly, the marked region extends each time, so
-you can mark the next two sexps with M-C-SPC M-C-SPC, for example.
-This feature also works for mark-end-of-sentence, if you bind that to
-a key.  It also extends the region when the mark is active in Transient
-Mark mode, regardless of the last command.  To start a new region with
-one of marking commands in Transient Mark mode, you can deactivate the
-active region with C-g, or set the new mark with C-SPC.
+*** Marking commands extend the region when invoked multiple times.
+
+If you type C-M-SPC (mark-sexp), M-@ (mark-word), M-h
+(mark-paragraph), or C-M-h (mark-defun) repeatedly, the marked region
+extends each time, so you can mark the next two sexps with M-C-SPC
+M-C-SPC, for example.  This feature also works for
+mark-end-of-sentence, if you bind that to a key.  It also extends the
+region when the mark is active in Transient Mark mode, regardless of
+the last command.  To start a new region with one of marking commands
+in Transient Mark mode, you can deactivate the active region with C-g,
+or set the new mark with C-SPC.
 
 +++
 *** M-h (mark-paragraph) now accepts a prefix arg.
+
 With positive arg, M-h marks the current and the following paragraphs;
 if the arg is negative, it marks the current and the preceding
 paragraphs.
@@ -321,6 +389,11 @@
 that alters the buffer, but you can also deactivate the mark by typing
 C-g.
 
++++
+*** Movement commands `beginning-of-buffer', `end-of-buffer',
+`beginning-of-defun', `end-of-defun' do not set the mark if the mark
+is already active in Transient Mark mode.
+
 ** Help command changes:
 
 +++
@@ -416,13 +489,6 @@
 match is listed first, and the calculated score is shown for each
 matching item.
 
-** Window selection changes:
-
-+++
-*** `special-display-buffer-names' and `special-display-regexps' now
-understand two new boolean pseudo-frame-parameters `same-frame' and
-`same-window'.
-
 ** Incremental Search changes:
 
 +++
@@ -486,6 +552,12 @@
 ** File operation changes:
 
 +++
+*** Unquoted `$' in file names do not signal an error any more when
+the corresponding environment variable does not exist.
+Instead, the `$ENVVAR' text is left as is, so that `$$' quoting
+is only rarely needed.
+
++++
 *** In processing a local variables list, Emacs strips the prefix and
 suffix are from every line before processing all the lines.
 
@@ -566,7 +638,7 @@
 prompt string.
 
 ---
-*** Enhanced visual feedback in *Completions* buffer.
+*** Enhanced visual feedback in `*Completions*' buffer.
 
 Completions lists use faces to highlight what all completions
 have in common and where they begin to differ.
@@ -600,6 +672,11 @@
 
 ** Redisplay changes:
 
++++
+*** The mode line position information now comes before the major mode.
+When the file is maintained under version control, that information
+appears between the position information and the major mode.
+
 *** Easy to overlook single character negation is now font-locked.
 You can use the new variable `font-lock-negation-char-face' and the face of
 the same name to customize this.  Currently the cc-modes, sh-script-mode,
@@ -631,7 +708,7 @@
 `auto-hscroll-mode'.  The old name is still available as an alias.
 
 *** Moving or scrolling through images (and other lines) taller that
-the window now works sensible, by automatically adjusting the window's
+the window now works sensibly, by automatically adjusting the window's
 vscroll property.
 
 +++
@@ -719,6 +796,10 @@
 ** Font-Lock changes:
 
 +++
+*** M-o now is the prefix key for setting text properties;
+M-o M-o requests refontification.
+
++++
 *** All modes now support using M-x font-lock-mode to toggle
 fontification, even those such as Occur, Info, and comint-derived
 modes that do their own fontification in a special way.
@@ -761,7 +842,7 @@
 jit-lock-context-time determines the delay after which contextual
 refontification takes place.
 
-** Menu Bar changes:
+** Menu support:
 
 ---
 *** A menu item "Show/Hide" was added to the top-level menu "Options".
@@ -775,6 +856,36 @@
 ---
 *** Speedbar has moved from the "Tools" top level menu to "Show/Hide".
 
+---
+*** You can exit dialog windows and menus by typing C-g.
+
+---
+*** The menu item "Open File..." has been split into two items, "New File..."
+and "Open File...".  "Open File..." now opens only existing files.  This is
+to support existing GUI file selection dialogs better.
+
++++
+*** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be
+disabled by customizing the variable `use-file-dialog'.
+
+---
+*** The pop up menus for Lucid now stay up if you do a fast click and can
+be navigated with the arrow keys (like Gtk+, Mac and W32).
+
++++
+*** The Lucid menus can display multilingual text in your locale.  You have
+to explicitly specify a fontSet resource for this to work, for example
+`-xrm "Emacs*fontSet:  -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'.
+
+---
+*** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing
+ESC, like they do for Gtk+, Mac and W32.
+
++++
+*** For Gtk+ version 2.4, you can make Emacs use the old file dialog
+by setting the variable `x-use-old-gtk-file-dialog' to t.  Default is to use
+the new dialog.
+
 ** Mouse changes:
 
 +++
@@ -1184,8 +1295,10 @@
 buffers to search by their filename.  Internally, Occur mode has been
 rewritten, and now uses font-lock, among other changes.
 
-+++
-** Grep has been decoupled from compilation mode setup.
+** Grep changes:
+
++++
+*** Grep has been decoupled from compilation mode setup.
 
 There's a new separate package grep.el, with its own submenu and
 customization group.
@@ -1230,38 +1343,6 @@
 unchanged to the system to execute, which allows more complicated
 command lines to be used than was possible before.
 
-** Emacs server changes:
-
-+++
-*** You can have several Emacs servers on the same machine.
-
-	% emacs --eval '(setq server-name "foo")' -f server-start &
-	% emacs --eval '(setq server-name "bar")' -f server-start &
-	% emacsclient -s foo file1
-	% emacsclient -s bar file2
-
-+++
-*** The `emacsclient' command understands the options `--eval' and
-`--display' which tell Emacs respectively to evaluate the given elisp
-expression and to use the given display when visiting files.
-
-+++
-*** User option `server-mode' can be used to start a server process.
-
-** Menu support:
-
----
-*** Dialogs and menus pop down if you type C-g.
-
----
-*** The menu item "Open File..." has been split into two items, "New File..."
-and "Open File...".  "Open File..." now opens only existing files.  This is
-to support existing GUI file selection dialogs better.
-
-+++
-*** The file selection dialog for Gtk+, Mac, W32 and Motif/Lesstif can be
-disabled by customizing the variable `use-file-dialog'.
-
 ** X Windows Support:
 
 +++
@@ -1296,24 +1377,6 @@
 On the other hand, the size of the thumb does not represent the actual
 amount of text shown any more (only a crude approximation of it).
 
----
-*** The pop up menus for Lucid now stay up if you do a fast click and can
-be navigated with the arrow keys (like Gtk+, Mac and W32).
-
-+++
-*** The Lucid menus can display multilingual text in your locale.  You have
-to explicitly specify a fontSet resource for this to work, for example
-`-xrm "Emacs*fontSet:  -*-helvetica-medium-r-*--*-120-*-*-*-*-*-*,*"'.
-
----
-*** Dialogs for Lucid/Athena and Lesstif/Motif now pops down when pressing
-ESC, like they do for Gtk+, Mac and W32.
-
-+++
-*** For Gtk+ version 2.4, you can make Emacs use the old file dialog
-by setting the variable `x-use-old-gtk-file-dialog' to t.  Default is to use
-the new dialog.
-
 ** Xterm support:
 
 ---
@@ -1358,7 +1421,7 @@
 ---
 *** There's a new support for colors on `rxvt' terminal emulator.
 
-* New modes and packages in Emacs 22.1
+* New Modes and Packages in Emacs 22.1
 
 +++
 ** New package benchmark.el contains simple support for convenient
@@ -1631,8 +1694,71 @@
 +++
 ** The wdired.el package allows you to use normal editing commands on Dired
 buffers to change filenames, permissions, etc...
+
+---
+** The TCL package tcl-mode.el was replaced by tcl.el.
+This was actually done in Emacs-21.1, and was not documented.
+
+** The new package bindat.el provides functions to unpack and pack
+binary data structures, such as network packets, to and from Lisp
+data structures.
+
++++
+** The new package button.el implements simple and fast `clickable buttons'
+in emacs buffers.  `buttons' are much lighter-weight than the `widgets'
+implemented by widget.el, and can be used by lisp code that doesn't
+require the full power of widgets.  Emacs uses buttons for such things
+as help and apropos buffers.
+
+---
+** master-mode.el implements a minor mode for scrolling a slave
+buffer without leaving your current buffer, the master buffer.
+
+It can be used by sql.el, for example: the SQL buffer is the master
+and its SQLi buffer is the slave.  This allows you to scroll the SQLi
+buffer containing the output from the SQL buffer containing the
+commands.
+
+This is how to use sql.el and master.el together: the variable
+sql-buffer contains the slave buffer.  It is a local variable in the
+SQL buffer.
+
+(add-hook 'sql-mode-hook
+   (function (lambda ()
+	       (master-mode t)
+	       (master-set-slave sql-buffer))))
+(add-hook 'sql-set-sqli-hook
+   (function (lambda ()
+	       (master-set-slave sql-buffer))))
+
++++
+** New Lisp library testcover.el works with edebug to help you determine
+whether you've tested all your Lisp code.  Function testcover-start
+instruments all functions in a given file.  Then test your code.  Function
+testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to
+show where coverage is lacking.  Command testcover-next-mark (bind it to
+a key!) will move point forward to the next spot that has a splotch.
+
+Normally, a red splotch indicates the form was never completely
+evaluated; a brown splotch means it always evaluated to the same
+value.  The red splotches are skipped for forms that can't possibly
+complete their evaluation, such as `error'.  The brown splotches are
+skipped for forms that are expected to always evaluate to the same
+value, such as (setq x 14).
+
+For difficult cases, you can add do-nothing macros to your code to
+help out the test coverage tool.  The macro `noreturn' suppresses a
+red splotch.  It is an error if the argument to `noreturn' does
+return.  The macro 1value suppresses a brown splotch for its argument.
+This macro is a no-op except during test-coverage -- then it signals
+an error if the argument actually returns differing values.
 
-* Changes in specialized modes and packages:
+* Changes in Specialized Modes and Packages in Emacs 22.1:
+
+** Makefile mode has now been split up into specialized modes for automake,
+gmake, makepp and BSD make.  The former two couldn't be differentiated before,
+and the latter two are new.  Font-locking is robust now and offers new
+customizable faces.
 
 +++
 ** In Outline mode, hide-body no longer hides lines at the top
@@ -1676,22 +1802,11 @@
 When this option is enabled, M-x add-change-log-entry always
 starts a new record regardless of when the last record is.
 
-+++
-** There is a new user option `mail-default-directory' that allows you
-to specify the value of `default-directory' for mail buffers.  This
-directory is used for auto-save files of mail buffers.  It defaults to
-"~/".
-
-+++
-** Emacs can now indicate in the mode-line the presence of new e-mail
-in a directory or in a file.  See the documentation of the user option
-`display-time-mail-directory'.
-
 ---
 ** PO translation files are decoded according to their MIME headers
 when Emacs visits them.
 
-** Info mode:
+** Info mode changes:
 
 +++
 *** A numeric prefix argument of `info' selects an Info buffer
@@ -1775,7 +1890,7 @@
 `eval-print-last-sexp' (C-j) and some edebug evaluation functions.
 
 +++
-** CC Mode changes.
+** CC mode changes.
 
 *** Font lock support.
 CC Mode now provides font lock support for all its languages.  This
@@ -2517,6 +2632,17 @@
 "checkout", "update" or "commit".  That means using cvs diff options
 -rBASE -rHEAD.
 
++++
+** There is a new user option `mail-default-directory' that allows you
+to specify the value of `default-directory' for mail buffers.  This
+directory is used for auto-save files of mail buffers.  It defaults to
+"~/".
+
++++
+** Emacs can now indicate in the mode-line the presence of new e-mail
+in a directory or in a file.  See the documentation of the user option
+`display-time-mail-directory'.
+
 ** Rmail changes:
 
 ---
@@ -2732,6 +2858,24 @@
 the stroke directly to a string to insert.  This is convenient for
 using strokes as an input method.
 
+** Emacs server changes:
+
++++
+*** You can have several Emacs servers on the same machine.
+
+	% emacs --eval '(setq server-name "foo")' -f server-start &
+	% emacs --eval '(setq server-name "bar")' -f server-start &
+	% emacsclient -s foo file1
+	% emacsclient -s bar file2
+
++++
+*** The `emacsclient' command understands the options `--eval' and
+`--display' which tell Emacs respectively to evaluate the given elisp
+expression and to use the given display when visiting files.
+
++++
+*** User option `server-mode' can be used to start a server process.
+
 ---
 ** LDAP support now defaults to ldapsearch from OpenLDAP version 2.
 
@@ -2779,7 +2923,7 @@
 ---
 ** cplus-md.el has been removed to avoid problems with Custom.
 
-* Changes for non-free operating systems
+* Changes in Emacs 22.1 on non-free operating systems
 
 +++
 ** Passing resources on the command line now works on MS Windows.
@@ -2854,11 +2998,6 @@
 * Incompatible Lisp Changes in Emacs 22.1
 
 +++
-** The new interactive-specification `G' reads a file name
-much like `F', but if the input is a directory name (even defaulted),
-it returns just the directory name.
-
-+++
 ** `suppress-keymap' now works by remapping `self-insert-command' to
 the command `undefined'.  (In earlier Emacs versions, it used
 `substitute-key-definition' to rebind self inserting characters to
@@ -2868,161 +3007,145 @@
 ** Mode line display ignores text properties as well as the
 :propertize and :eval forms in the value of a variable whose
 `risky-local-variable' property is nil.
+
+---
+** Support for Mocklisp has been removed.
 
 * Lisp Changes in Emacs 22.1
 
-** New function `locate-file' searches for a file in a list of directories.
-`locate-file' accepts a name of a file to search (a string), and two
-lists: a list of directories to search in and a list of suffixes to
-try; typical usage might use `exec-path' and `load-path' for the list
-of directories, and `exec-suffixes' and `load-suffixes' for the list
-of suffixes.  The function also accepts a predicate argument to
-further filter candidate files.
-
-One advantage of using this function is that the list of suffixes in
-`exec-suffixes' is OS-dependant, so this function will find
-executables without polluting Lisp code with OS dependancies.
-
-+++
-** The default value of `sentence-end' is now defined using the new
-variable `sentence-end-without-space', which contains such characters
-that end a sentence without following spaces.
-
-The function `sentence-end' should be used to obtain the value of the
-variable `sentence-end'.  If the variable `sentence-end' is nil, then
-this function returns the regexp constructed from the variables
-`sentence-end-without-period', `sentence-end-double-space' and
-`sentence-end-without-space'.
-
-+++
-** The argument to forward-word, backward-word, forward-to-indentation
-and backward-to-indentation is now optional, and defaults to 1.
-
-+++
-** If a command sets transient-mark-mode to `only', that
-enables Transient Mark mode for the following command only.
-During that following command, the value of transient-mark-mode
-is `identity'.  If it is still `identity' at the end of the command,
-it changes to nil.
-
-+++
-** The new hook `before-save-hook' is invoked by `basic-save-buffer'
-before saving buffers.  This allows packages to perform various final
-tasks, for example; it can be used by the copyright package to make
-sure saved files have the current year in any copyright headers.
-
-+++
-** If a buffer sets buffer-save-without-query to non-nil,
-save-some-buffers will always save that buffer without asking
-(if it's modified).
-
----
-** list-buffers-noselect now takes an additional argument, BUFFER-LIST.
-If it is non-nil, it specifies which buffers to list.
-
-+++
-** The kill-buffer-hook is now permanent-local.
-
-+++
-** `auto-save-file-format' has been renamed to
-`buffer-auto-save-file-format' and made into a permanent local.
-
-+++
-** Functions `file-name-sans-extension' and `file-name-extension' now
-ignore the leading dots in file names, so that file names such as
-`.emacs' are treated as extensionless.
-
-+++
-** copy-file now takes an additional option arg MUSTBENEW.
-
-This argument works like the MUSTBENEW argument of write-file.
-
-+++
-** If the second argument to `copy-file' is the name of a directory,
-the file is copied to that directory instead of signaling an error.
-
-+++
-** `visited-file-modtime' and `calendar-time-from-absolute' now return
-a list of two integers, instead of a cons.
-
-+++
-** `file-chase-links' now takes an optional second argument LIMIT which
-specifies the maximum number of links to chase through.  If after that
-many iterations the file name obtained is still a symbolic link,
-`file-chase-links' returns it anyway.
-
-+++
-** The function `commandp' takes an additional optional
-argument.  If it is non-nil, then `commandp' checks
-for a function that could be called with `call-interactively',
-and does not return t for keyboard macros.
-
-+++
-** An interactive specification can now use the code letter 'U' to get
-the up-event that was discarded in case the last key sequence read for a
-previous 'k' or 'K' argument was a down-event; otherwise nil is used.
-
----
-** Functions y-or-n-p, read-char, read-key-sequence and the like, that
-display a prompt but don't use the minibuffer, now display the prompt
-using the text properties (esp. the face) of the prompt string.
-
-+++
-** read-from-minibuffer now accepts an additional argument KEEP-ALL
-saying to put all inputs in the history list, even empty ones.
-
-+++
-** The `read-file-name' function now takes an additional argument which
-specifies a predicate which the file name read must satify.  The
-new variable `read-file-name-predicate' contains the predicate argument
-while reading the file name from the minibuffer; the predicate in this
-variable is used by read-file-name-internal to filter the completion list.
-
----
-** The new variable `read-file-name-function' can be used by lisp code
-to override the internal read-file-name function.
-
-+++
-** The new variable `read-file-name-completion-ignore-case' specifies
-whether completion ignores case when reading a file name with the
-`read-file-name' function.
-
-+++
-** The new function `read-directory-name' can be used instead of
-`read-file-name' to read a directory name; when used, completion
-will only show directories.
-
-+++
-** The new variable search-spaces-regexp controls how to search
-for spaces in a regular expression.  If it is non-nil, it should be a
-regular expression, and any series of spaces stands for that regular
-expression.  If it is nil, spaces stand for themselves.
-
-Spaces inside of constructs such as [..] and *, +, ? are never
-replaced with search-spaces-regexp.
-
-+++
-** There are now two new regular expression operators, \_< and \_>,
-for matching the beginning and end of a symbol.  A symbol is a
-non-empty sequence of either word or symbol constituent characters, as
-specified by the syntax table.
-
-+++
-** skip-chars-forward and skip-chars-backward now handle
-character classes such as [:alpha:], along with individual characters
-and ranges.
-
----
-** In `replace-match', the replacement text no longer inherits
-properties from surrounding text.
-
-+++
-** The list returned by `(match-data t)' now has the buffer as a final
-element, if the last match was on a buffer.  `set-match-data'
-accepts such a list for restoring the match state.
-
-+++
-** Variable aliases have been implemented:
+** General Lisp changes:
+
++++
+*** The function `eql' is now available without requiring the CL package.
+
++++
+*** `makehash' is now obsolete.  Use `make-hash-table' instead.
+
++++
+*** If optional third argument APPEND to `add-to-list' is non-nil, a
+new element gets added at the end of the list instead of at the
+beginning.  This change actually occurred in Emacs-21.1, but was not
+documented.
+
++++
+*** New function `copy-tree' makes a copy of a tree, recursively copying
+both cars and cdrs.
+
++++
+*** New function `delete-dups' destructively removes `equal'
+duplicates from a list.  Of several `equal' occurrences of an element
+in the list, the first one is kept.
+
++++
+*** `declare' is now a macro.  This change was made mostly for
+documentation purposes and should have no real effect on Lisp code.
+
++++
+*** The new function `rassq-delete-all' deletes all elements from an
+alist whose cdr is `eq' to a specified value.
+
++++
+*** The function `number-sequence' returns a list of equally-separated
+numbers.  For instance, (number-sequence 4 9) returns (4 5 6 7 8 9).
+By default, the separation is 1, but you can specify a different separation
+as the third argument.  (number-sequence 1.5 6 2) returns (1.5 3.5 5.5).
+
++++
+*** The variables `most-positive-fixnum' and `most-negative-fixnum'
+hold the largest and smallest possible integer values.
+
++++
+*** The flags, width, and precision options for %-specifications in function
+`format' are now documented.  Some flags that were accepted but not
+implemented (such as "*") are no longer accepted.
+
++++
+*** Functions `get' and `plist-get' no longer signals an error for
+a malformed property list.  They also detect cyclic lists.
+
++++
+*** The new functions `lax-plist-get' and `lax-plist-put' are like
+`plist-get' and `plist-put', except that they compare the property
+name using `equal' rather than `eq'.
+
++++
+*** The new variable `print-continuous-numbering', when non-nil, says
+that successive calls to print functions should use the same
+numberings for circular structure references.  This is only relevant
+when `print-circle' is non-nil.
+
+When you bind `print-continuous-numbering' to t, you should
+also bind `print-number-table' to nil.
+
++++
+*** New function `macroexpand-all' expands all macros in a form.
+
+It is similar to the Common-Lisp function of the same name.
+One difference is that it guarantees to return the original argument
+if no expansion is done, which can be tested using `eq'.
+
++++
+*** The function `atan' now accepts an optional second argument.
+
+When called with 2 arguments, as in `(atan Y X)', `atan' returns the
+angle in radians between the vector [X, Y] and the X axis.  (This is
+equivalent to the standard C library function `atan2'.)
+
++++
+*** A function's doc string can now specify the calling pattern.
+
+You put this in the doc string's last line, which should match the
+regexp "\n\n(fn.*)\\'".
+
++++
+*** New macro `with-local-quit' temporarily sets `inhibit-quit' to nil.
+
+This is for use around potentially blocking or long-running code in
+timers and `post-command-hook' functions.
+
+***  `define-obsolete-function-alias'
+combines `defalias' and `make-obsolete'.
+
++++
+*** New function `unsafep' returns nil if the given Lisp form can't
+possibly do anything dangerous; otherwise it returns a reason why the
+form might be unsafe (calls unknown function, alters global variable,
+etc).
+
+** Lisp code indentation features:
+
++++
+*** The `defmacro' form can contain declarations specifying how to
+indent the macro in Lisp mode and how to debug it with Edebug.  The
+syntax of defmacro has been extended to
+
+   (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...)
+
+DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'.  The
+declaration specifiers supported are:
+
+(indent INDENT)
+	Set NAME's `lisp-indent-function' property to INDENT.
+
+(edebug DEBUG)
+	Set NAME's `edebug-form-spec' property to DEBUG.  (This is
+	equivalent to writing a `def-edebug-spec' for the macro.
+
+---
+*** cl-indent now allows customization of Indentation of backquoted forms.
+
+See the new user option `lisp-backquote-indentation'.
+
+---
+*** cl-indent now handles indentation of simple and extended `loop' forms.
+
+The new user options `lisp-loop-keyword-indentation',
+`lisp-loop-forms-indentation', and `lisp-simple-loop-indentation' can
+be used to customize the indentation of keywords and forms in loop
+forms.
+
++++
+** Variable aliases:
 
 *** defvaralias ALIAS-VAR BASE-VAR [DOCSTRING]
 
@@ -3044,9 +3167,492 @@
 variables, including buffer-local and frame-local variables.
 
 +++
-*** The macro define-obsolete-variable-alias combines defvaralias and
-make-obsolete-variable.  The macro define-obsolete-function-alias
-combines defalias and make-obsolete.
+*** The macro `define-obsolete-variable-alias' combines `defvaralias' and
+`make-obsolete-variable'.
+
+** defcustom changes:
+
++++
+*** defcustom and other custom declarations now use a default group
+(the last prior group defined in the same file) when no :group was given.
+
+---
+*** The new customization type `float' specifies numbers with floating
+point (no integers are allowed).
+
+** String changes:
+
++++
+*** The escape sequence \s is now interpreted as a SPACE character,
+unless it is followed by a `-' in a character constant (e.g. ?\s-A),
+in which case it is still interpreted as the super modifier.
+In strings, \s is always interpreted as a space.
+
++++
+*** A hex escape in a string forces the string to be multibyte.
+An octal escape makes it unibyte.
+
++++
+*** `split-string' now includes null substrings in the returned list if
+the optional argument SEPARATORS is non-nil and there are matches for
+SEPARATORS at the beginning or end of the string.  If SEPARATORS is
+nil, or if the new optional third argument OMIT-NULLS is non-nil, all
+empty matches are omitted from the returned list.
+
++++
+*** New function `string-to-multibyte' converts a unibyte string to a
+multibyte string with the same individual character codes.
+
++++
+*** New function `substring-no-properties returns a substring without
+text properties.
+
++++
+*** The new function `assoc-string' replaces `assoc-ignore-case' and
+`assoc-ignore-representation', which are still available, but have
+been declared obsolete.
+
+** Buffer/variable changes:
+
++++
+*** The new function `buffer-local-value' returns the buffer-local
+binding of VARIABLE (a symbol) in buffer BUFFER.  If VARIABLE does not
+have a buffer-local binding in buffer BUFFER, it returns the default
+value of VARIABLE instead.
+
++++
+** There is a new facility for displaying warnings to the user.
+
+See the functions `warn' and `display-warning' .
+
++++
+** Progress reporters.
+
+These provide a simple and uniform way for commands to present
+progress messages for the user.
+
+See the new functions `make-progress-reporter',
+`progress-reporter-update', `progress-reporter-force-update',
+`progress-reporter-done', and `dotimes-with-progress-reporter'.
+
+** Buffer positions:
+
++++
+*** Function `compute-motion' now calculates the usable window
+width if the WIDTH argument is nil.  If the TOPOS argument is nil,
+the usable window height and width is used.
+
++++
+*** The `line-move', `scroll-up', and `scroll-down' functions will now
+modify the window vscroll to scroll through display rows that are
+taller that the height of the window, for example in the presense of
+large images.  To disable this feature, Lisp code can bind the new
+variable `auto-window-vscroll' to nil.
+
++++
+*** The argument to `forward-word', `backward-word',
+`forward-to-indentation' and `backward-to-indentation' is now
+optional, and defaults to 1.
+
++++
+*** Lisp code can now test if a given buffer position is inside a
+clickable link with the new function `mouse-on-link-p'.  This is the
+function used by the new `mouse-1-click-follows-link' functionality.
+
++++
+*** New function `line-number-at-pos' returns the line number of the
+current line in the current buffer, or if optional buffer position is
+given, line number of corresponding line in current buffer.
+
++++
+*** `field-beginning' and `field-end' now accept an additional optional
+argument, LIMIT.
+
++++
+*** Function `pos-visible-in-window-p' now returns the pixel coordinates
+and partial visiblity state of the corresponding row, if the PARTIALLY
+arg is non-nil.
+
++++
+*** New functions `posn-at-point' and `posn-at-x-y' return
+click-event-style position information for a given visible buffer
+position or for a given window pixel coordinate.
+
+** Text modification:
+
++++
+*** The new function `insert-buffer-substring-as-yank' works like
+`insert-buffer-substring', but removes the text properties in the
+`yank-excluded-properties' list.
+
++++
+*** The new function `insert-buffer-substring-no-properties' is like
+insert-buffer-substring, but removes all text properties from the
+inserted substring.
+
++++
+*** The new function `filter-buffer-substring' extracts a buffer
+substring, passes it through a set of filter functions, and returns
+the filtered substring.  It is used instead of `buffer-substring' or
+`delete-and-extract-region' when copying text into a user-accessible
+data structure, like the kill-ring, X clipboard, or a register.  The
+list of filter function is specified by the new variable
+`buffer-substring-filters'.  For example, Longlines mode uses
+`buffer-substring-filters' to remove soft newlines from the copied
+text.
+
++++
+*** Function `translate-region' accepts also a char-table as TABLE
+argument.
+
++++
+*** The new translation table `translation-table-for-input'
+is used for customizing self-insertion.  The character to
+be inserted is translated through it.
+
+---
+*** Text clones.
+
+The new function `text-clone-create'.  Text clones are chunks of text
+that are kept identical by transparently propagating changes from one
+clone to the other.
+
+---
+*** The function `insert-string' is now obsolete.
+
+** Syntax table changes:
+
++++
+*** The macro `with-syntax-table' does not copy the table any more.
+
++++
+*** The new function `syntax-after' returns the syntax code
+of the character after a specified buffer position, taking account
+of text properties as well as the character code.
+
++++
+*** `syntax-class' extracts the class of a syntax code (as returned
+by syntax-after).
+
+*** The new package `syntax.el' provides an efficient way to find the
+current syntactic context (as returned by `parse-partial-sexp').
+
+** GC changes:
+
++++
+*** New variables `gc-elapsed' and `gcs-done' provide extra information
+on garbage collection.
+
++++
+*** Functions from `post-gc-hook' are run at the end of garbage
+collection.  The hook is run with GC inhibited, so use it with care.
+
+** Buffer-related changes:
+
+---
+*** `list-buffers-noselect' now takes an additional argument, BUFFER-LIST.
+If it is non-nil, it specifies which buffers to list.
+
++++
+*** `kill-buffer-hook' is now a permanent local.
+
+** Local variables lists:
+
++++
+*** Text properties in local variables.
+
+A file local variables list cannot specify a string with text
+properties--any specified text properties are discarded.
+
++++
+*** The variable `safe-local-eval-forms' specifies a list of forms that
+are ok to evaluate when they appear in an `eval' local variables
+specification.  Normally Emacs asks for confirmation before evaluating
+such a form, but if the form appears in this list, no confirmation is
+needed.
+
+---
+*** If a function has a non-nil `safe-local-eval-function' property,
+that means it is ok to evaluate some calls to that function when it
+appears in an `eval' local variables specification.  If the property
+is t, then any form calling that function with constant arguments is
+ok.  If the property is a function or list of functions, they are called
+with the form as argument, and if any returns t, the form is ok to call.
+
+If the form is not "ok to call", that means Emacs asks for
+confirmation as before.
+
+** Abbrev changes:
+
+*** The new function copy-abbrev-table returns a new abbrev table that
+is a copy of a given abbrev table.
+
++++
+*** define-abbrev now accepts an optional argument SYSTEM-FLAG.  If
+non-nil, this marks the abbrev as a "system" abbrev, which means that
+it won't be stored in the user's abbrevs file if he saves the abbrevs.
+Major modes that predefine some abbrevs should always specify this
+flag.
+
+** Undo changes:
+
++++
+*** An element of buffer-undo-list can now have the form (apply FUNNAME
+. ARGS), where FUNNAME is a symbol other than t or nil.  That stands
+for a high-level change that should be undone by evaluating (apply
+FUNNAME ARGS).
+
+These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS)
+which indicates that the change which took place was limited to the
+range BEG...END and increased the buffer size by DELTA.
+
++++
+*** If the buffer's undo list for the current command gets longer than
+undo-outer-limit, garbage collection empties it.  This is to prevent
+it from using up the available memory and choking Emacs.
+
++++
+** New `yank-handler' text property can be used to control how
+previously killed text on the kill-ring is reinserted.
+
+The value of the yank-handler property must be a list with one to four
+elements with the following format:
+  (FUNCTION PARAM NOEXCLUDE UNDO).
+
+The `insert-for-yank' function looks for a yank-handler property on
+the first character on its string argument (typically the first
+element on the kill-ring).  If a yank-handler property is found,
+the normal behavior of `insert-for-yank' is modified in various ways:
+
+  When FUNCTION is present and non-nil, it is called instead of `insert'
+to insert the string.  FUNCTION takes one argument--the object to insert.
+  If PARAM is present and non-nil, it replaces STRING as the object
+passed to FUNCTION (or `insert'); for example, if FUNCTION is
+`yank-rectangle', PARAM should be a list of strings to insert as a
+rectangle.
+  If NOEXCLUDE is present and non-nil, the normal removal of the
+yank-excluded-properties is not performed; instead FUNCTION is
+responsible for removing those properties.  This may be necessary
+if FUNCTION adjusts point before or after inserting the object.
+  If UNDO is present and non-nil, it is a function that will be called
+by `yank-pop' to undo the insertion of the current object.  It is
+called with two arguments, the start and end of the current region.
+FUNCTION can set `yank-undo-function' to override the UNDO value.
+
+*** The functions kill-new, kill-append, and kill-region now have an
+optional argument to specify the yank-handler text property to put on
+the killed text.
+
+*** The function yank-pop will now use a non-nil value of the variable
+`yank-undo-function' (instead of delete-region) to undo the previous
+yank or yank-pop command (or a call to insert-for-yank).  The function
+insert-for-yank automatically sets that variable according to the UNDO
+element of the string argument's yank-handler text property if present.
+
+*** The function `insert-for-yank' now supports strings where the
+`yank-handler' property does not span the first character of the
+string.  The old behavior is available if you call
+`insert-for-yank-1' instead.
+
+*** The new function insert-for-yank normally works like `insert', but
+removes the text properties in the `yank-excluded-properties' list.
+However, the insertion of the text can be modified by a `yank-handler'
+text property.
+
+** File operation changes:
+
++++
+*** New vars `exec-suffixes' and `load-suffixes' used when
+searching for an executable resp. an elisp file.
+
++++
+*** The new primitive `set-file-times' sets a file's access and
+modification times.  Magic file name handlers can handle this
+operation.
+
++++
+*** The new function `file-remote-p' tests a file name and returns
+non-nil if it specifies a remote file (one that Emacs accesses using
+its own special methods and not directly through the file system).
+The value in that case is an identifier for the remote file system.
+
++++
+*** `auto-save-file-format' has been renamed to
+`buffer-auto-save-file-format' and made into a permanent local.
+
++++
+*** Functions `file-name-sans-extension' and `file-name-extension' now
+ignore the leading dots in file names, so that file names such as
+`.emacs' are treated as extensionless.
+
++++
+*** copy-file now takes an additional option arg MUSTBENEW.
+
+This argument works like the MUSTBENEW argument of write-file.
+
++++
+*** If the second argument to `copy-file' is the name of a directory,
+the file is copied to that directory instead of signaling an error.
+
++++
+*** `visited-file-modtime' and `calendar-time-from-absolute' now return
+a list of two integers, instead of a cons.
+
++++
+*** `file-chase-links' now takes an optional second argument LIMIT which
+specifies the maximum number of links to chase through.  If after that
+many iterations the file name obtained is still a symbolic link,
+`file-chase-links' returns it anyway.
+
++++
+*** The new hook `before-save-hook' is invoked by `basic-save-buffer'
+before saving buffers.  This allows packages to perform various final
+tasks, for example; it can be used by the copyright package to make
+sure saved files have the current year in any copyright headers.
+
++++
+*** If a buffer sets buffer-save-without-query to non-nil,
+save-some-buffers will always save that buffer without asking
+(if it's modified).
+
+*** New function `locate-file' searches for a file in a list of directories.
+`locate-file' accepts a name of a file to search (a string), and two
+lists: a list of directories to search in and a list of suffixes to
+try; typical usage might use `exec-path' and `load-path' for the list
+of directories, and `exec-suffixes' and `load-suffixes' for the list
+of suffixes.  The function also accepts a predicate argument to
+further filter candidate files.
+
+One advantage of using this function is that the list of suffixes in
+`exec-suffixes' is OS-dependant, so this function will find
+executables without polluting Lisp code with OS dependancies.
+
+---
+*** The precedence of file-name-handlers has been changed.
+Instead of blindly choosing the first handler that matches,
+find-file-name-handler now gives precedence to a file-name handler
+that matches near the end of the file name.  More specifically, the
+handler whose (match-beginning 0) is the largest is chosen.
+In case of ties, the old "first matched" rule applies.
+
++++
+*** A file name handler can declare which operations it handles.
+
+You do this by putting an `operation' property on the handler name
+symbol.  The property value should be a list of the operations that
+the handler really handles.  It won't be called for any other
+operations.
+
+This is useful for autoloaded handlers, to prevent them from being
+autoloaded when not really necessary.
+
+** Input changes:
+
++++
+*** An interactive specification can now use the code letter 'U' to get
+the up-event that was discarded in case the last key sequence read for a
+previous 'k' or 'K' argument was a down-event; otherwise nil is used.
+
++++
+*** The new interactive-specification `G' reads a file name
+much like `F', but if the input is a directory name (even defaulted),
+it returns just the directory name.
+
+---
+*** Functions y-or-n-p, read-char, read-key-sequence and the like, that
+display a prompt but don't use the minibuffer, now display the prompt
+using the text properties (esp. the face) of the prompt string.
+
++++
+*** (while-no-input BODY...) runs BODY, but only so long as no input
+arrives.  If the user types or clicks anything, BODY stops as if a
+quit had occurred.  while-no-input returns the value of BODY, if BODY
+finishes.  It returns nil if BODY was aborted.
+
+** Minibuffer changes:
+
+*** The new function `minibufferp' returns non-nil if its optional
+buffer argument is a minibuffer.  If the argument is omitted, it
+defaults to the current buffer.
+
++++
+*** New function minibuffer-selected-window returns the window which
+was selected when entering the minibuffer.
+
++++
+*** read-from-minibuffer now accepts an additional argument KEEP-ALL
+saying to put all inputs in the history list, even empty ones.
+
++++
+*** The `read-file-name' function now takes an additional argument which
+specifies a predicate which the file name read must satify.  The
+new variable `read-file-name-predicate' contains the predicate argument
+while reading the file name from the minibuffer; the predicate in this
+variable is used by read-file-name-internal to filter the completion list.
+
+---
+*** The new variable `read-file-name-function' can be used by lisp code
+to override the internal read-file-name function.
+
++++
+*** The new variable `read-file-name-completion-ignore-case' specifies
+whether completion ignores case when reading a file name with the
+`read-file-name' function.
+
++++
+*** The new function `read-directory-name' can be used instead of
+`read-file-name' to read a directory name; when used, completion
+will only show directories.
+
+** Searching and matching changes:
+
++++
+*** New function `looking-back' checks whether a regular expression matches
+the text before point.  Specifying the LIMIT argument bounds how far
+back the match can start; this is a way to keep it from taking too long.
+
++++
+*** The new variable search-spaces-regexp controls how to search
+for spaces in a regular expression.  If it is non-nil, it should be a
+regular expression, and any series of spaces stands for that regular
+expression.  If it is nil, spaces stand for themselves.
+
+Spaces inside of constructs such as [..] and *, +, ? are never
+replaced with search-spaces-regexp.
+
++++
+*** There are now two new regular expression operators, \_< and \_>,
+for matching the beginning and end of a symbol.  A symbol is a
+non-empty sequence of either word or symbol constituent characters, as
+specified by the syntax table.
+
++++
+*** skip-chars-forward and skip-chars-backward now handle
+character classes such as [:alpha:], along with individual characters
+and ranges.
+
+---
+*** In `replace-match', the replacement text no longer inherits
+properties from surrounding text.
+
++++
+*** The list returned by `(match-data t)' now has the buffer as a final
+element, if the last match was on a buffer.  `set-match-data'
+accepts such a list for restoring the match state.
+
+---
+*** rx.el has new corresponding `symbol-end' and `symbol-start' elements.
+
++++
+*** The default value of `sentence-end' is now defined using the new
+variable `sentence-end-without-space', which contains such characters
+that end a sentence without following spaces.
+
+The function `sentence-end' should be used to obtain the value of the
+variable `sentence-end'.  If the variable `sentence-end' is nil, then
+this function returns the regexp constructed from the variables
+`sentence-end-without-period', `sentence-end-double-space' and
+`sentence-end-without-space'.
 
 +++
 ** Enhancements to keymaps.
@@ -3204,76 +3810,6 @@
 finished.
 
 +++
-** Progress reporters.
-The new functions `make-progress-reporter', `progress-reporter-update',
-`progress-reporter-force-update', `progress-reporter-done', and
-`dotimes-with-progress-reporter' provide a simple and efficient way for
-a command to present progress messages for the user.
-
-+++
-** New `yank-handler' text property can be used to control how
-previously killed text on the kill-ring is reinserted.
-
-The value of the yank-handler property must be a list with one to four
-elements with the following format:
-  (FUNCTION PARAM NOEXCLUDE UNDO).
-
-The `insert-for-yank' function looks for a yank-handler property on
-the first character on its string argument (typically the first
-element on the kill-ring).  If a yank-handler property is found,
-the normal behavior of `insert-for-yank' is modified in various ways:
-
-  When FUNCTION is present and non-nil, it is called instead of `insert'
-to insert the string.  FUNCTION takes one argument--the object to insert.
-  If PARAM is present and non-nil, it replaces STRING as the object
-passed to FUNCTION (or `insert'); for example, if FUNCTION is
-`yank-rectangle', PARAM should be a list of strings to insert as a
-rectangle.
-  If NOEXCLUDE is present and non-nil, the normal removal of the
-yank-excluded-properties is not performed; instead FUNCTION is
-responsible for removing those properties.  This may be necessary
-if FUNCTION adjusts point before or after inserting the object.
-  If UNDO is present and non-nil, it is a function that will be called
-by `yank-pop' to undo the insertion of the current object.  It is
-called with two arguments, the start and end of the current region.
-FUNCTION can set `yank-undo-function' to override the UNDO value.
-
-*** The functions kill-new, kill-append, and kill-region now have an
-optional argument to specify the yank-handler text property to put on
-the killed text.
-
-*** The function yank-pop will now use a non-nil value of the variable
-`yank-undo-function' (instead of delete-region) to undo the previous
-yank or yank-pop command (or a call to insert-for-yank).  The function
-insert-for-yank automatically sets that variable according to the UNDO
-element of the string argument's yank-handler text property if present.
-
-*** The function `insert-for-yank' now supports strings where the
-`yank-handler' property does not span the first character of the
-string.  The old behavior is available if you call
-`insert-for-yank-1' instead.
-
-*** The new function insert-for-yank normally works like `insert', but
-removes the text properties in the `yank-excluded-properties' list.
-However, the insertion of the text can be modified by a `yank-handler'
-text property.
-
-+++
-** An element of buffer-undo-list can now have the form (apply FUNNAME
-. ARGS), where FUNNAME is a symbol other than t or nil.  That stands
-for a high-level change that should be undone by evaluating (apply
-FUNNAME ARGS).
-
-These entries can also have the form (apply DELTA BEG END FUNNAME . ARGS)
-which indicates that the change which took place was limited to the
-range BEG...END and increased the buffer size by DELTA.
-
-+++
-** If the buffer's undo list for the current command gets longer than
-undo-outer-limit, garbage collection empties it.  This is to prevent
-it from using up the available memory and choking Emacs.
-
-+++
 ** Enhancements to process support
 
 *** Function list-processes now has an optional argument; if non-nil,
@@ -3312,25 +3848,27 @@
 from such processes, to allowing them to produce more output before
 emacs tries to read it.
 
-*** The new function `call-process-shell-command' executes a shell
-command command synchronously in a separate process.
+*** The new function `call-process-shell-command'.
+
+This executes a shell command command synchronously in a separate
+process.
 
 *** The new function `process-file' is similar to `call-process', but
 obeys file handlers.  The file handler is chosen based on
-default-directory.
-
-*** The new function `set-process-filter-multibyte' sets the
-multibyteness of a string given to a process's filter.
-
-*** The new function `process-filter-multibyte-p' returns t if a
-string given to a process's filter is multibyte.
+`default-directory'.
 
 *** A filter function of a process is called with a multibyte string
 if the filter's multibyteness is t.  That multibyteness is decided by
 the value of `default-enable-multibyte-characters' when the process is
 created and can be changed later by `set-process-filter-multibyte'.
 
-*** If a process's coding system is raw-text or no-conversion and its
+*** The new function `set-process-filter-multibyte' sets the
+multibyteness of the strings passed to the process's filter.
+
+*** The new function `process-filter-multibyte-p' returns the
+multibyteness of the strings passed to the process's filter.
+
+*** If a process's coding system is `raw-text' or `no-conversion' and its
 buffer is multibyte, the output of the process is at first converted
 to multibyte by `string-to-multibyte' then inserted in the buffer.
 Previously, it was converted to multibyte by `string-as-multibyte',
@@ -3415,31 +3953,19 @@
 sentinel when the connection is closed by the remote peer has been
 changed to "connection broken by remote peer".
 
-+++
-** New function `force-window-update' can initiate a full redisplay of
-one or all windows.  Normally, this is not needed as changes in window
-contents are detected automatically.  However, certain implicit
-changes to mode lines, header lines, or display properties may require
-forcing an explicit window update.
-
-+++
-** The line-move, scroll-up, and scroll-down functions will now
-modify the window vscroll to scroll through display rows that are
-taller that the height of the window, for example in the presense of
-large images.  To disable this feature, Lisp code can bind the new
-variable `auto-window-vscroll' to nil.
-
-+++
-** Function `compute-motion' now calculates the usable window
-width if the WIDTH argument is nil.  If the TOPOS argument is nil,
-the usable window height and width is used.
-
-+++
-** Function pos-visible-in-window-p now returns the pixel coordinates
-and partial visiblity state of the corresponding row, if the PARTIALLY
-arg is non-nil.
-
-** Changes in using window objects:
+** Using window objects:
+
++++
+*** New function `window-body-height'.
+
+This is like `window-height' but does not count the mode line or the
+header line.
+
++++
+*** New function `window-body-height'.
+
+This is like window-height but does not count the mode line
+or the header line.
 
 +++
 *** You can now make a window as short as one line.
@@ -3462,11 +3988,12 @@
 
 +++
 *** The new macro `with-selected-window' temporarily switches the
-selected window without impacting the order of buffer-list.
-
-+++
-*** `select-window' takes an optional second argument `norecord', like
-`switch-to-buffer'.
+selected window without impacting the order of `buffer-list'.
+
++++
+*** `select-window' takes an optional second argument `norecord'.
+
+This is like `switch-to-buffer'.
 
 +++
 *** `save-selected-window' now saves and restores the selected window
@@ -3474,32 +4001,33 @@
 by calling `select-window'.
 
 +++
-*** The function `set-window-buffer' now has an optional third argument
-KEEP-MARGINS which will preserve the window's current margin, fringe,
-and scroll-bar settings if non-nil.
+*** `set-window-buffer' has an optional argument KEEP-MARGINS.
+
+If non-nil, that says to preserve the window's current margin, fringe,
+and scroll-bar settings.
 
 +++
 ** Customizable fringe bitmaps
 
-*** New function 'define-fringe-bitmap' can now be used to create new
+*** New function `define-fringe-bitmap' can now be used to create new
 fringe bitmaps, as well as change the built-in fringe bitmaps.
 
 To change a built-in bitmap, do (require 'fringe) and use the symbol
 identifing the bitmap such as `left-truncation or `continued-line'.
 
-*** New function 'destroy-fringe-bitmap' can be used to destroy a
-previously created bitmap, or restore a built-in bitmap.
-
-*** New function 'set-fringe-bitmap-face' can now be used to set a
+*** New function `destroy-fringe-bitmap' deletes a fringe bitmap
+or restores a built-in one to its default value.
+
+*** New function `set-fringe-bitmap-face' can now be used to set a
 specific face to be used for a specific fringe bitmap.  The face is
 automatically merged with the `fringe' face, so normally, the face
 should only specify the foreground color of the bitmap.
 
-*** There are new display properties, left-fringe and right-fringe,
+*** There are new display properties, `left-fringe; and `right-fringe',
 that can be used to show a specific bitmap in the left or right fringe
 bitmap of the display line.
 
-Format is 'display '(left-fringe BITMAP [FACE]), where BITMAP is a
+Format is `display (left-fringe BITMAP [FACE])', where BITMAP is a
 symbol identifying a fringe bitmap, either built-in or defined with
 `define-fringe-bitmap', and FACE is an optional face name to be used
 for displaying the bitmap instead of the default `fringe' face.
@@ -3508,8 +4036,10 @@
 *** New function `fringe-bitmaps-at-pos' returns the current fringe
 bitmaps in the display line at a given buffer position.
 
-+++
-** Controlling the default left and right fringe widths.
+** Other window fringe features:
+
++++
+*** Controlling the default left and right fringe widths.
 
 The default left and right fringe widths for all windows of a frame
 can now be controlled by setting the `left-fringe' and `right-fringe'
@@ -3529,9 +4059,9 @@
 fringe bitmaps is 8 pixels.
 
 +++
-** Per-window fringe and scrollbar settings
-
-*** Windows can now have their own individual fringe widths and
+*** Per-window fringe and scrollbar settings
+
+**** Windows can now have their own individual fringe widths and
 position settings.
 
 To control the fringe widths of a window, either set the buffer-local
@@ -3549,7 +4079,7 @@
 displaying the buffer in a window, or use `set-window-buffer' to force
 an update of the display margins.
 
-*** Windows can now have their own individual scroll-bar settings
+**** Windows can now have their own individual scroll-bar settings
 controlling the width and position of scroll-bars.
 
 To control the scroll-bar of a window, either set the buffer-local
@@ -3560,15 +4090,32 @@
 the buffer in a window, or use `set-window-buffer' to force an update
 of the display margins.
 
-+++
-** When using non-toolkit scroll bars with the default width,
-the scroll-bar-width frame parameter value is nil.
-
-+++
-** Multiple overlay arrows can now be defined and managed via the new
-variable `overlay-arrow-variable-list'.  It contains a list of
-varibles which contain overlay arrow position markers, including
-the original `overlay-arrow-position' variable.
+** Redisplay features:
+
++++
+*** `sit-for' can now be called with args (SECONDS &optional NODISP).
+
++++
+*** New function `force-window-update' can initiate a full redisplay of
+one or all windows.  Normally, this is not needed as changes in window
+contents are detected automatically.  However, certain implicit
+changes to mode lines, header lines, or display properties may require
+forcing an explicit window update.
+
++++
+*** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able
+to display CHAR.  More precisely, if the selected frame's fontset has
+a font to display the character set that CHAR belongs to.
+
+Fontsets can specify a font on a per-character basis; when the fontset
+does that, this value cannot be accurate.
+
++++
+*** You can define multiple overlay arrows via the new
+variable `overlay-arrow-variable-list'.
+
+It contains a list of varibles which contain overlay arrow position
+markers, including the original `overlay-arrow-position' variable.
 
 Each variable on this list can have individual `overlay-arrow-string'
 and `overlay-arrow-bitmap' properties that specify an overlay arrow
@@ -3578,52 +4125,52 @@
 'overlay-arrow-fringe-bitmap' will be used.
 
 +++
-** New line-height and line-spacing properties for newline characters
-
-A newline can now have line-height and line-spacing text or overlay
+*** New `line-height' and `line-spacing' properties for newline characters
+
+A newline can now have `line-height' and `line-spacing' text or overlay
 properties that control the height of the corresponding display row.
 
-If the line-height property value is t, the newline does not
+If the `line-height' property value is t, the newline does not
 contribute to the height of the display row; instead the height of the
-newline glyph is reduced.  Also, a line-spacing property on this
+newline glyph is reduced.  Also, a `line-spacing' property on this
 newline is ignored.  This can be used to tile small images or image
 slices without adding blank areas between the images.
 
-If the line-height property value is a positive integer, the value
+If the `line-height' property value is a positive integer, the value
 specifies the minimum line height in pixels.  If necessary, the line
 height it increased by increasing the line's ascent.
 
-If the line-height property value is a float, the minimum line height
-is calculated by multiplying the default frame line height by the
-given value.
-
-If the line-height property value is a cons (FACE . RATIO), the
+If the `line-height' property value is a float, the minimum line
+height is calculated by multiplying the default frame line height by
+the given value.
+
+If the `line-height' property value is a cons (FACE . RATIO), the
 minimum line height is calculated as RATIO * height of named FACE.
 RATIO is int or float.  If FACE is t, it specifies the current face.
 
-If the line-height property value is a cons (nil . RATIO), the line
+If the `line-height' property value is a cons (nil . RATIO), the line
 height is calculated as RATIO * actual height of the line's contents.
 
-If the line-height value is a cons (HEIGHT . TOTAL), HEIGHT specifies
+If the `line-height' value is a cons (HEIGHT . TOTAL), HEIGHT specifies
 the line height as described above, while TOTAL is any of the forms
 described above and specifies the total height of the line, causing a
 varying number of pixels to be inserted after the line to make it line
 exactly that many pixels high.
 
-If the line-spacing property value is an positive integer, the value
+If the `line-spacing' property value is an positive integer, the value
 is used as additional pixels to insert after the display line; this
-overrides the default frame line-spacing and any buffer local value of
-the line-spacing variable.
-
-If the line-spacing property is a float or cons, the line spacing
-is calculated as specified above for the line-height property.
-
-+++
-** The buffer local line-spacing variable can now have a float value,
+overrides the default frame `line-spacing' and any buffer local value of
+the `line-spacing' variable.
+
+If the `line-spacing' property is a float or cons, the line spacing
+is calculated as specified above for the `line-height' property.
+
++++
+*** The buffer local line-spacing variable can now have a float value,
 which is used as a height relative to the default frame line height.
 
 +++
-** Enhancements to stretch display properties
+*** Enhancements to stretch display properties
 
 The display property stretch specification form `(space PROPS)', where
 PROPS is a property list now allows pixel based width and height
@@ -3680,19 +4227,29 @@
 The form `(- EXPR ...)' negates or subtracts the value of the expressions.
 
 +++
-** Support for displaying image slices
-
-*** New display property (slice X Y WIDTH HEIGHT) can be used with
+*** Normally, the cursor is displayed at the end of any overlay and
+text property string that may be present at the current window
+position.  The cursor can now be placed on any character of such
+strings by giving that character a non-nil `cursor' text property.
+
++++
+*** The display space :width and :align-to text properties are now
+supported on text terminals.
+
++++
+*** Support for displaying image slices
+
+**** New display property (slice X Y WIDTH HEIGHT) can be used with
 an image property to display only a specific slice of the image.
 
-*** Function insert-image has new optional fourth arg to
+**** Function insert-image has new optional fourth arg to
 specify image slice (X Y WIDTH HEIGHT).
 
-*** New function insert-sliced-image inserts a given image as a
+**** New function insert-sliced-image inserts a given image as a
 specified number of evenly sized slices (rows x columns).
 
 +++
-** Images can now have an associated image map via the :map property.
+*** Images can now have an associated image map via the :map property.
 
 An image map is an alist where each element has the format (AREA ID PLIST).
 An AREA is specified as either a rectangle, a circle, or a polygon:
@@ -3714,25 +4271,22 @@
 an event is composed by combining the ID of the hot-spot with the
 mouse event, e.g. [area4 mouse-1] if the hot-spot's ID is `area4'.
 
+** Mouse pointer features:
+
 +++ (lispref)
 ??? (man)
-** The mouse pointer shape in void text areas (i.e. after the end of a
+*** The mouse pointer shape in void text areas (i.e. after the end of a
 line or below the last line in the buffer) of the text window is now
 controlled by the new variable `void-text-area-pointer'.  The default
 is to use the `arrow' (non-text) pointer.  Other choices are `text'
 (or nil), `hand', `vdrag', `hdrag', `modeline', and `hourglass'.
 
 +++
-** The mouse pointer shape over an image can now be controlled by the
+*** The mouse pointer shape over an image can now be controlled by the
 :pointer image property.
 
 +++
-** Lisp code can now test if a given buffer position is inside a
-clickable link with the new function `mouse-on-link-p'.  This is the
-function used by the new `mouse-1-click-follows-link' functionality.
-
-+++
-** The mouse pointer shape over ordinary text or images can now be
+*** The mouse pointer shape over ordinary text or images can now be
 controlled/overriden via the `pointer' text property.
 
 ** Mouse event enhancements:
@@ -3782,33 +4336,14 @@
 click, the x and y pixel coordinates relative to the top left corner
 of that object, and the total width and height of that object.
 
-+++
-** At the end of a command, point moves out from within invisible
-text, in the same way it moves out from within text covered by an
-image or composition property.
-
-This makes it generally unnecessary to mark invisible text as intangible.
-This is particularly good because the intangible property often has
-unexpected side-effects since the property applies to everything
-(including `goto-char', ...) whereas this new code is only run after
-post-command-hook and thus does not care about intermediate states.
-
-+++
-** Normally, the cursor is displayed at the end of any overlay and
-text property string that may be present at the current window
-position.  The cursor can now be placed on any character of such
-strings by giving that character a non-nil `cursor' text property.
-
-+++
-** The display space :width and :align-to text properties are now
-supported on text terminals.
-
-+++
-** Arguments for remove-overlays are now optional, so that you can
-remove all overlays in the buffer by just calling (remove-overlay).
-
-+++
-** New variable char-property-alias-alist.
+** Text property and overlay changes:
+
++++
+*** Arguments for remove-overlays are now optional, so that you can
+remove all overlays in the buffer by just calling (remove-overlays).
+
++++
+*** New variable char-property-alias-alist.
 
 This variable allows you to create alternative names for text
 properties.  It works at the same level as `default-text-properties',
@@ -3816,36 +4351,29 @@
 to implement the `font-lock-face' property.
 
 +++
-** New function `get-char-property-and-overlay' accepts the same
+*** New function `get-char-property-and-overlay' accepts the same
 arguments as `get-char-property' and returns a cons whose car is the
 return value of `get-char-property' called with those arguments and
 whose cdr is the overlay in which the property was found, or nil if
 it was found as a text property or not found at all.
 
 +++
-** The new frame parameter `tty-color-mode' specifies the mode to use
-for color support on character terminal frames.  Its value can be a
-number of colors to support, or a symbol.  See the Emacs Lisp
-Reference manual for more detailed documentation.
-
-+++
-** The new face attribute `min-colors' can be used to tailor the face
-color to the number of colors supported by a display, and define the
-foreground and background colors accordingly so that they look best on
-a terminal that supports at least this many colors.  This is now the
-preferred method for defining default faces in a way that makes a good
-use of the capabilities of the display.
-
-+++
-** (char-displayable-p CHAR) returns non-nil if Emacs ought to be able
-to display CHAR.  More precisely, if the selected frame's fontset has
-a font to display the character set that CHAR belongs to.
-
-Fontsets can specify a font on a per-character basis; when the fontset
-does that, this value cannot be accurate.
-
-+++
-** New function display-supports-face-attributes-p can be used to test
+*** The new function remove-list-of-text-properties is almost the same
+as `remove-text-properties'.  The only difference is that it takes a
+list of property names as argument rather than a property list.
+
+** Face changes
+
++++
+*** The new face attribute condition `min-colors' can be used to tailor
+the face color to the number of colors supported by a display, and
+define the foreground and background colors accordingly so that they
+look best on a terminal that supports at least this many colors.  This
+is now the preferred method for defining default faces in a way that
+makes a good use of the capabilities of the display.
+
++++
+*** New function display-supports-face-attributes-p can be used to test
 whether a given set of face attributes is actually displayable.
 
 A new predicate `supports' has also been added to the `defface' face
@@ -3853,68 +4381,83 @@
 defined with defface.
 
 ---
-** The special treatment of faces whose names are of the form `fg:COLOR'
+*** The special treatment of faces whose names are of the form `fg:COLOR'
 or `bg:COLOR' has been removed.  Lisp programs should use the
 `defface' facility for defining faces with specific colors, or use
 the feature of specifying the face attributes :foreground and :background
 directly in the `face' property instead of using a named face.
 
 +++
-** The first face specification element in a defface can specify
+*** The first face specification element in a defface can specify
 `default' instead of frame classification.  Then its attributes act as
 defaults that apply to all the subsequent cases (and can be overridden
 by them).
 
 +++
-** The variable `face-font-rescale-alist' specifies how much larger
+*** The variable `face-font-rescale-alist' specifies how much larger
 (or smaller) font we should use.  For instance, if the value is
 '((SOME-FONTNAME-PATTERN . 1.3)) and a face requests a font of 10
 point, we actually use a font of 13 point if the font matches
 SOME-FONTNAME-PATTERN.
 
 ---
-** `set-fontset-font', `fontset-info', `fontset-font' now operate on
+*** The function `face-differs-from-default-p' now truly checks
+whether the given face displays differently from the default face or
+not (previously it did only a very cursory check).
+
++++
+*** `face-attribute', `face-foreground', `face-background', and
+`face-stipple' now accept a new optional argument, INHERIT, which
+controls how face inheritance is used when determining the value of a
+face attribute.
+
++++
+*** New functions `face-attribute-relative-p' and `merge-face-attribute'
+help with handling relative face attributes.
+
++++
+*** The priority of faces in an :inherit attribute face list is reversed.
+
+If a face contains an :inherit attribute with a list of faces, earlier
+faces in the list override later faces in the list; in previous
+releases of Emacs, the order was the opposite.  This change was made
+so that :inherit face lists operate identically to face lists in text
+`face' properties.
+
++++
+*** New standard font-lock face `font-lock-preprocessor-face'.
+
+---
+*** `set-fontset-font', `fontset-info', `fontset-font' now operate on
 the default fontset if the argument NAME is nil..
 
----
-** The function face-differs-from-default-p now truly checks whether the
-given face displays differently from the default face or not (previously
-it did only a very cursory check).
-
-+++
-** face-attribute, face-foreground, face-background, and face-stipple now
-accept a new optional argument, INHERIT, which controls how face
-inheritance is used when determining the value of a face attribute.
-
-+++
-** New functions face-attribute-relative-p and merge-face-attribute
-help with handling relative face attributes.
-
-+++
-** The priority of faces in an :inherit attribute face-list is reversed.
-If a face contains an :inherit attribute with a list of faces, earlier
-faces in the list override later faces in the list; in previous releases
-of Emacs, the order was the opposite.  This change was made so that
-:inherit face-lists operate identically to face-lists in text `face'
-properties.
-
-+++
-** New standard font-lock face `font-lock-preprocessor-face'.
-
-+++
-** New special text property `font-lock-face'.
+** Font-Lock changes:
+
++++
+*** New special text property `font-lock-face'.
 
 This property acts like the `face' property, but it is controlled by
 M-x font-lock-mode.  It is not, strictly speaking, a builtin text
 property.  Instead, it is implemented inside font-core.el, using the
 new variable `char-property-alias-alist'.
 
----
-** jit-lock obeys a new text-property `jit-lock-defer-multiline'.
++++
+*** font-lock can manage arbitrary text-properties beside `face'.
+
+*** the FACENAME returned in `font-lock-keywords' can be a list of the
+form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set other
+properties than `face'.
+
+*** `font-lock-extra-managed-props' can be set to make sure those
+extra properties are automatically cleaned up by font-lock.
+
+---
+*** jit-lock obeys a new text-property `jit-lock-defer-multiline'.
+
 If a piece of text with that property gets contextually refontified
-(see jit-lock-defer-contextually), then all of that text will
+(see `jit-lock-defer-contextually'), then all of that text will
 be refontified.  This is useful when the syntax of a textual element
-depends on text several lines further down (and when font-lock-multiline
+depends on text several lines further down (and when `font-lock-multiline'
 is not appropriate to solve that problem).  For example in Perl:
 
 	s{
@@ -3924,147 +4467,110 @@
 	}e
 
 Adding/removing the last `e' changes the `bar' from being a piece of
-text to being a piece of code, so you'd put a jit-lock-defer-multiline
+text to being a piece of code, so you'd put a `jit-lock-defer-multiline'
 property over the second half of the command to force (deferred)
 refontification of `bar' whenever the `e' is added/removed.
 
-+++
-** font-lock can manage arbitrary text-properties beside `face'.
-*** the FACENAME returned in font-lock-keywords can be a list
-of the form (face FACE PROP1 VAL1 PROP2 VAL2 ...) so you can set
-other properties than `face'.
-*** font-lock-extra-managed-props can be set to make sure those extra
-properties are automatically cleaned up by font-lock.
-
----
-** The precedence of file-name-handlers has been changed.
-Instead of blindly choosing the first handler that matches,
-find-file-name-handler now gives precedence to a file-name handler
-that matches near the end of the file name.  More specifically, the
-handler whose (match-beginning 0) is the largest is chosen.
-In case of ties, the old "first matched" rule applies.
-
-+++
-** A file name handler can declare which operations it handles.
-
-You do this by putting an `operation' property on the handler name
-symbol.  The property value should be a list of the operations that
-the handler really handles.  It won't be called for any other
-operations.
-
-This is useful for autoloaded handlers, to prevent them from being
-autoloaded when not really necessary.
-
-+++
-** `set-auto-mode' now gives the interpreter magic line (if present)
-precedence over the file name.  Likewise an <?xml or <!DOCTYPE declaration
-will give the buffer XML or SGML mode, based on the new var
-`magic-mode-alist'.
-
-+++
-** Major mode functions now run the new normal hook
+** Major mode mechanism changes:
+
++++
+*** `set-auto-mode' now gives the interpreter magic line (if present)
+precedence over the file name.  Likewise an `<?xml' or `<!DOCTYPE'
+declaration will give the buffer XML or SGML mode, based on the new
+var `magic-mode-alist'.
+
++++
+*** Major mode functions now run the new normal hook
 `after-change-major-mode-hook', at their very end, after the mode hooks.
 
 ---
-** If a major mode function has a non-nil `no-clone-indirect'
+*** If a major mode function has a non-nil `no-clone-indirect'
 property, `clone-indirect-buffer' signals an error if you use
 it in that buffer.
 
 +++
-** Major modes can define `eldoc-documentation-function'
+*** Major modes can define `eldoc-documentation-function'
 locally to provide Eldoc functionality by some method appropriate to
 the language.
 
 +++
-** define-derived-mode by default creates a new empty abbrev table.
+*** `define-derived-mode' by default creates a new empty abbrev table.
 It does not copy abbrevs from the parent mode's abbrev table.
 
 +++
-** define-minor-mode now accepts arbitrary additional keyword arguments
-and simply passes them to defcustom, if applicable.
-
-+++
-** The new function `run-mode-hooks' and the new macro `delay-mode-hooks'
-are used by define-derived-mode to make sure the mode hook for the
+*** The new function `run-mode-hooks' and the new macro `delay-mode-hooks'
+are used by `define-derived-mode' to make sure the mode hook for the
 parent mode is run at the end of the child mode.
 
-+++
-** `minor-mode-list' now holds a list of minor mode commands.
-
-+++
-** Both the variable and the function `disabled-command-hook' have
+** Minor mode changes:
+
++++
+*** `define-minor-mode' now accepts arbitrary additional keyword arguments
+and simply passes them to `defcustom', if applicable.
+
++++
+*** `minor-mode-list' now holds a list of minor mode commands.
+
+---
+*** `define-global-minor-mode'.
+
+This is a new name for what was formerly called
+`easy-mmode-define-global-mode'.  The old name remains as an alias.
+
+** Command loop changes:
+
++++
+*** The new function `called-interactively-p' does what many people
+have mistakenly believed `interactive-p' did: it returns t if the
+calling function was called through `call-interactively'.  This should
+only be used when you cannot solve the problem by adding a new
+INTERACTIVE argument to the command.
+
++++
+*** The function `commandp' takes an additional optional argument.
+
+If it is non-nil, then `commandp' checks for a function that could be
+called with `call-interactively', and does not return t for keyboard
+macros.
+
++++
+*** When a command returns, the command loop moves point out from
+within invisible text, in the same way it moves out from within text
+covered by an image or composition property.
+
+This makes it generally unnecessary to mark invisible text as intangible.
+This is particularly good because the intangible property often has
+unexpected side-effects since the property applies to everything
+(including `goto-char', ...) whereas this new code is only run after
+`post-command-hook' and thus does not care about intermediate states.
+
++++
+*** If a command sets `transient-mark-mode' to `only', that
+enables Transient Mark mode for the following command only.
+During that following command, the value of `transient-mark-mode'
+is `identity'.  If it is still `identity' at the end of the command,
+the next return to the command loop changes to nil.
+
++++
+*** Both the variable and the function `disabled-command-hook' have
 been renamed to `disabled-command-function'.  The variable
 `disabled-command-hook' has been kept as an obsolete alias.
 
 +++
-** The function `eql' is now available without requiring the CL package.
-
-+++
-** If optional third argument APPEND to `add-to-list' is non-nil, a
-new element gets added at the end of the list instead of at the
-beginning.  This change actually occurred in Emacs-21.1, but was not
-documented.
-
-+++
-** The escape sequence \s is now interpreted as a SPACE character,
-unless it is followed by a `-' in a character constant (e.g. ?\s-A),
-in which case it is still interpreted as the super modifier.
-In strings, \s is always interpreted as a space.
-
-+++
-** A hex escape in a string forces the string to be multibyte.
-An octal escape makes it unibyte.
-
-+++
-** `split-string' now includes null substrings in the returned list if
-the optional argument SEPARATORS is non-nil and there are matches for
-SEPARATORS at the beginning or end of the string.  If SEPARATORS is
-nil, or if the new optional third argument OMIT-NULLS is non-nil, all
-empty matches are omitted from the returned list.
-
-+++
-** New function `string-to-multibyte' converts a unibyte string to a
-multibyte string with the same individual character codes.
-
-+++
-** The function `number-sequence' returns a list of equally-separated
-numbers.  For instance, (number-sequence 4 9) returns (4 5 6 7 8 9).
-By default, the separation is 1, but you can specify a different separation
-as the third argument.  (number-sequence 1.5 6 2) returns (1.5 3.5 5.5).
-
-+++
-** `sit-for' can now be called with args (SECONDS &optional NODISP).
-
-+++
-** A function's docstring can now hold the function's usage info on
-its last line.  It should match the regexp "\n\n(fn.*)\\'".
-
-+++
-** The `defmacro' form can contain declarations specifying how to
-indent the macro in Lisp mode and how to debug it with Edebug.  The
-syntax of defmacro has been extended to
-
-   (defmacro NAME LAMBDA-LIST [DOC-STRING] [DECLARATION ...] ...)
-
-DECLARATION is a list `(declare DECLARATION-SPECIFIER ...)'.  The
-declaration specifiers supported are:
-
-(indent INDENT)
-	Set NAME's `lisp-indent-function' property to INDENT.
-
-(edebug DEBUG)
-	Set NAME's `edebug-form-spec' property to DEBUG.  (This is
-	equivalent to writing a `def-edebug-spec' for the macro.
-
-+++
-** The functions all-completions and try-completion now accept lists
+*** `emacsserver' now runs `pre-command-hook' and `post-command-hook'
+when it receives a request from emacsclient.
+
+** Minibuffer changes:
+
++++
+*** The functions all-completions and try-completion now accept lists
 of strings as well as hash-tables additionally to alists, obarrays
 and functions.  Furthermore, the function `test-completion' is now
 exported to Lisp.  The keys in alists and hash tables can be either
 strings or symbols, which are automatically converted with to strings.
 
 +++
-** The new macro dynamic-completion-table supports using functions
+*** The new macro `dynamic-completion-table' supports using functions
 as a dynamic completion table.
 
   (dynamic-completion-table FUN)
@@ -4074,10 +4580,10 @@
 completions.  This alist can be a full list of possible completions so that FUN
 can ignore the value of its argument.  If completion is performed in the
 minibuffer, FUN will be called in the buffer from which the minibuffer was
-entered. dynamic-completion-table then computes the completion.
-
-+++
-** The new macro lazy-completion-table initializes a variable
+entered.  `dynamic-completion-table' then computes the completion.
+
++++
+*** The new macro `lazy-completion-table' initializes a variable
 as a lazy completion table.
 
   (lazy-completion-table VAR FUN &rest ARGS)
@@ -4089,34 +4595,32 @@
 from which the minibuffer was entered. The return value of
 `lazy-completion-table' must be used to initialize the value of VAR.
 
-+++
-** `load-history' can now have elements of the form (t . FUNNAME),
+** Lisp file loading changes:
+
++++
+*** `load-history' can now have elements of the form (t . FUNNAME),
 which means FUNNAME was previously defined as an autoload (before the
 current file redefined it).
 
 +++
-** `load-history' now records (defun . FUNNAME) when a function is
+*** `load-history' now records (defun . FUNNAME) when a function is
 defined.  For a variable, it records just the variable name.
 
----
-** The variable `recursive-load-depth-limit' has been deleted.
++++
+*** The function symbol-file can now search specifically for function or
+variable definitions.
+
++++
+*** `provide' and `featurep' now accept an optional second argument
+to test/provide subfeatures.  Also `provide' now checks `after-load-alist'
+and runs any code associated with the provided feature.
+
+---
+*** The variable `recursive-load-depth-limit' has been deleted.
 Emacs now signals an error if the same file is loaded with more
 than 3 levels of nesting.
 
 +++
-** The function symbol-file can now search specifically for function or
-variable definitions.
-
-+++
-** `provide' and `featurep' now accept an optional second argument
-to test/provide subfeatures.  Also `provide' now checks `after-load-alist'
-and runs any code associated with the provided feature.
-
-+++
-** `declare' is now a macro.  This change was made mostly for
-documentation purposes and should have no real effect on Lisp code.
-
-+++
 ** Byte compiler changes:
 
 *** The byte-compiler now displays the actual line and character
@@ -4153,29 +4657,36 @@
 *** The local variable `no-byte-compile' in elisp files is now obeyed.
 
 ---
-** When a Lisp file uses CL functions at run-time, compiling the file
+*** When a Lisp file uses CL functions at run-time, compiling the file
 now issues warnings about these calls, unless the file performs
 (require 'cl) when loaded.
 
-+++
-** New function unsafep returns nil if the given Lisp form can't possibly
-do anything dangerous; otherwise it returns a reason why the form might be
-unsafe (calls dangerous function, alters global variable, etc).
-
-+++
-** There is a new Warnings facility; see the functions `warn'
-and `display-warning'.
-
----
-** VC changes for backends:
-*** (vc-switches BACKEND OPERATION) is a new function for use by backends.
-*** The new `find-version' backend function replaces the `destfile'
-parameter of the `checkout' backend function.
-Old code still works thanks to a default `find-version' behavior that
-uses the old `destfile' parameter.
-
-+++
-** Already true in Emacs 21.1, but not emphasized clearly enough:
+** Frame operations:
+
++++
+*** New functions `frame-current-scroll-bars' and `window-current-scroll-bars'.
+
+These functions return the current locations of the vertical and
+horizontal scroll bars in a frame or window.
+
++++
+*** The new function `modify-all-frames-parameters' modifies parameters
+for all (existing and future) frames.
+
++++
+*** The new frame parameter `tty-color-mode' specifies the mode to use
+for color support on character terminal frames.  Its value can be a
+number of colors to support, or a symbol.  See the Emacs Lisp
+Reference manual for more detailed documentation.
+
++++
+*** When using non-toolkit scroll bars with the default width,
+the `scroll-bar-width' frame parameter value is nil.
+
+** Mule changes:
+
++++
+*** Already true in Emacs 21.1, but not emphasized clearly enough:
 
 Multibyte buffers can now faithfully record all 256 character codes
 from 0 to 255.  As a result, most of the past reasons to use unibyte
@@ -4191,467 +4702,121 @@
 wasteful.
 
 ---
-** set-buffer-file-coding-system now takes an additional argument,
+*** set-buffer-file-coding-system now takes an additional argument,
 NOMODIFY.  If it is non-nil, it means don't mark the buffer modified.
 
 +++
-** The new variable `auto-coding-functions' lets you specify functions
+*** The new variable `auto-coding-functions' lets you specify functions
 to examine a file being visited and deduce the proper coding system
 for it.  (If the coding system is detected incorrectly for a specific
 file, you can put a `coding:' tags to override it.)
 
 ---
-** The new function `merge-coding-systems' fills in unspecified aspects
+*** The new function `merge-coding-systems' fills in unspecified aspects
 of one coding system from another coding system.
 
 ---
-** New coding system property `mime-text-unsuitable' indicates that
+*** New coding system property `mime-text-unsuitable' indicates that
 the coding system's `mime-charset' is not suitable for MIME text
 parts, e.g. utf-16.
 
 +++
-** New function `decode-coding-inserted-region' decodes a region as if
+*** New function `decode-coding-inserted-region' decodes a region as if
 it is read from a file without decoding.
 
-+++
-** Function `translate-region' accepts also a char-table as TABLE
-argument.
-
-+++
-** The new translation table `translation-table-for-input'
-is used for customizing self-insertion.  The character to
-be inserted is translated through it.
-
----
-** New CCL functions `lookup-character' and `lookup-integer' access
+---
+*** New CCL functions `lookup-character' and `lookup-integer' access
 hash tables defined by the Lisp function `define-translation-hash-table'.
 
-+++
-** The flags, width, and precision options for %-specifications in function
-`format' are now documented.  Some flags that were accepted but not
-implemented (such as "*") are no longer accepted.
-
----
-** New function `redirect-debugging-output' can be used to redirect
+---
+*** New function quail-find-key returns a list of keys to type in the
+current input method to input a character.
+
+** Mode line changes:
+
++++
+*** New function `format-mode-line'.
+
+This returns the mode-line or header-line of the selected (or a
+specified) window as a string with or without text properties.
+
++++
+*** The new mode-line construct `(:propertize ELT PROPS...)' can be
+used to add text properties to mode-line elements.
+
++++
+*** The new `%i' and `%I' constructs for `mode-line-format' can be used
+to display the size of the accessible part of the buffer on the mode
+line.
+
+** Menu manipulation changes:
+
+---
+*** To manipulate the File menu using easy-menu, you must specify the
+proper name "file".  In previous Emacs versions, you had to specify
+"files", even though the menu item itself was changed to say "File"
+several versions ago.
+
+---
+*** The dummy function keys made by easy-menu are now always lower case.
+If you specify the menu item name "Ada", for instance, it uses `ada'
+as the "key" bound by that key binding.
+
+This is relevant only if Lisp code looks for the bindings that were
+made with easy-menu.
+
+---
+*** `easy-menu-define' now allows you to use nil for the symbol name
+if you don't need to give the menu a name.  If you install the menu
+into other keymaps right away (MAPS is non-nil), it usually doesn't
+need to have a name.
+
+** Operating system access:
+
++++
+*** The new primitive `get-internal-run-time' returns the processor
+run time used by Emacs since start-up.
+
++++
+*** Functions `user-uid' and `user-real-uid' now return floats if the
+user UID doesn't fit in a Lisp integer.  Function `user-full-name'
+accepts a float as UID parameter.
+
++++
+*** New function `locale-info' accesses locale information.
+
+---
+*** On MS Windows, locale-coding-system is used to interact with the OS.
+The Windows specific variable w32-system-coding-system, which was
+formerly used for that purpose is now an alias for locale-coding-system.
+
+---
+*** New function `redirect-debugging-output' can be used to redirect
 debugging output on the stderr file handle to a file.
 
-+++
-** `makehash' is now obsolete.  Use `make-hash-table' instead.
-
-+++
-** The macro `with-syntax-table' does not copy the table any more.
-
-+++
-** New variables `gc-elapsed' and `gcs-done' provide extra information
-on garbage collection.
-
-+++
-** New function `locale-info' accesses locale information.
-
-+++
-** The new variable `print-continuous-numbering', when non-nil, says
-that successive calls to print functions should use the same
-numberings for circular structure references.  This is only relevant
-when `print-circle' is non-nil.
-
-When you bind `print-continuous-numbering' to t, you should
-also bind `print-number-table' to nil.
-
----
-** When pure storage overflows while dumping, Emacs now prints how
-much pure storage it will approximately need.
-
-+++
-** File local variables.
-
-A file local variables list cannot specify a string with text
-properties--any specified text properties are discarded.
-
-+++
-** The variable `safe-local-eval-forms' specifies a list of forms that
-are ok to evaluate when they appear in an `eval' local variables
-specification.  Normally Emacs asks for confirmation before evaluating
-such a form, but if the form appears in this list, no confirmation is
-needed.
-
----
-** If a function has a non-nil `safe-local-eval-function' property,
-that means it is ok to evaluate some calls to that function when it
-appears in an `eval' local variables specification.  If the property
-is t, then any form calling that function with constant arguments is
-ok.  If the property is a function or list of functions, they are called
-with the form as argument, and if any returns t, the form is ok to call.
-
-If the form is not "ok to call", that means Emacs asks for
-confirmation as before.
-
-+++
-** Renamed hooks to better follow the naming convention:
+** Miscellaneous:
+
++++
+*** A number of hooks have been renamed to better follow the conventions:
+
 find-file-hooks to find-file-hook,
 find-file-not-found-hooks to find-file-not-found-functions,
 write-file-hooks to write-file-functions,
 write-contents-hooks to write-contents-functions,
 x-lost-selection-hooks to x-lost-selection-functions,
-x-sent-selection-hooks to x-sent-selection-functions.
-Marked local-write-file-hooks as obsolete (use the LOCAL arg of `add-hook').
-
-+++
-** The new variable `delete-frame-functions' replaces `delete-frame-hook'.
-It was renamed to follow the naming conventions for abnormal hooks.  The old
-name remains available as an alias, but has been marked obsolete.
-
-+++
-** The new function `file-remote-p' tests a file name and returns
-non-nil if it specifies a remote file (one that Emacs accesses using
-its own special methods and not directly through the file system).
-The value in that case is an identifier for the remote file system.
-
-+++
-** Functions `get' and `plist-get' no longer signals an error for
-a malformed property list.  They also detect cyclic lists.
-
-+++
-** The function `atan' now accepts an optional second argument.
-
-When called with 2 arguments, as in `(atan Y X)', `atan' returns the
-angle in radians between the vector [X, Y] and the X axis.  (This is
-equivalent to the standard C library function `atan2'.)
-
-+++
-** New function format-mode-line.
-
-This returns the mode-line or header-line of the selected (or a
-specified) window as a string with or without text properties.
-
-+++
-** The new mode-line construct `(:propertize ELT PROPS...)' can be
-used to add text properties to mode-line elements.
-
-+++
-** The new `%i' and `%I' constructs for `mode-line-format' can be used
-to display the size of the accessible part of the buffer on the mode
-line.
-
----
-** Indentation of simple and extended loop forms has been added to the
-cl-indent package.  The new user options
-`lisp-loop-keyword-indentation', `lisp-loop-forms-indentation', and
-`lisp-simple-loop-indentation' can be used to customize the
-indentation of keywords and forms in loop forms.
-
----
-** Indentation of backquoted forms has been made customizable in the
-cl-indent package.  See the new user option `lisp-backquote-indentation'.
-
-+++
-** field-beginning and field-end now accept an additional optional
-argument, LIMIT.
-
-+++
-** define-abbrev now accepts an optional argument SYSTEM-FLAG.  If
-non-nil, this marks the abbrev as a "system" abbrev, which means that
-it won't be stored in the user's abbrevs file if he saves the abbrevs.
-Major modes that predefine some abbrevs should always specify this
-flag.
-
----
-** describe-vector now takes a second argument `describer' which is
-called to print the entries' values.  It defaults to `princ'.
-
-+++
-** defcustom and other custom declarations now use a default group
-(the last prior group defined in the same file) when no :group was given.
-
----
-** The new customization type `float' specifies numbers with floating
-point (no integers are allowed).
-
-+++
-** emacsserver now runs pre-command-hook and post-command-hook when
-it receives a request from emacsclient.
-
----
-** New function `text-clone-create'.  Text clones are chunks of text
-that are kept identical by transparently propagating changes from one
-clone to the other.
-
-+++
-** Functions `user-uid' and `user-real-uid' now return floats if the
-user UID doesn't fit in a Lisp integer.  Function `user-full-name'
-accepts a float as UID parameter.
-
-+++
-** New vars `exec-suffixes' and `load-suffixes' used when
-searching for an executable resp. an elisp file.
-
-+++
-** Functions from `post-gc-hook' are run at the end of garbage
-collection.  The hook is run with GC inhibited, so use it with care.
-
-+++
-** The variables most-positive-fixnum and most-negative-fixnum
-hold the largest and smallest possible integer values.
-
----
-** On MS Windows, locale-coding-system is used to interact with the OS.
-The Windows specific variable w32-system-coding-system, which was
-formerly used for that purpose is now an alias for locale-coding-system.
-
----
-** New function x-send-client-message sends a client message when
+x-sent-selection-hooks to x-sent-selection-functions,
+delete-frame-hook to delete-frame-functions.
+
+In each case the old name remains as an alias for the moment.
+
++++
+*** local-write-file-hooks is marked obsolete
+
+Use the LOCAL arg of `add-hook'.
+
+---
+*** New function `x-send-client-message' sends a client message when
 running under X.
-
----
-** easy-mmode-define-global-mode has been renamed to
-define-global-minor-mode.  The old name remains as an alias.
-
----
-** To manipulate the File menu using easy-menu, you must specify the
-proper name "file".  In previous Emacs versions, you had to specify
-"files", even though the menu item itself was changed to say "File"
-several versions ago.
-
----
-** The dummy function keys made by easymenu are now always lower case.
-If you specify the menu item name "Ada", for instance, it uses `ada'
-as the "key" bound by that key binding.
-
-This is relevant only if Lisp code looks for the bindings that were
-made with easymenu.
-
----
-** `easy-menu-define' now allows you to use nil for the symbol name
-if you don't need to give the menu a name.  If you install the menu
-into other keymaps right away (MAPS is non-nil), it usually doesn't
-need to have a name.
-
----
-** rx.el has new corresponding `symbol-end' and `symbol-start' elements.
-
-** New functions, macros, and commands:
-
-+++
-*** The new function `assoc-string' replaces `assoc-ignore-case' and
-`assoc-ignore-representation', which are still available, but have
-been declared obsolete.
-
-+++
-*** The new function `buffer-local-value' returns the buffer-local
-binding of VARIABLE (a symbol) in buffer BUFFER.  If VARIABLE does not
-have a buffer-local binding in buffer BUFFER, it returns the default
-value of VARIABLE instead.
-
-+++
-*** The new function `called-interactively-p' does what many people
-have mistakenly believed `interactive-p' did: it returns t if the
-calling function was called through `call-interactively'.  This should
-only be used when you cannot add a new "interactive" argument to the
-command.
-
-*** The new function copy-abbrev-table returns a new abbrev table that
-is a copy of a given abbrev table.
-
-+++
-*** New function copy-tree makes a copy of a tree, recursively copying
-both cars and cdrs.
-
-+++
-*** New function `delete-dups' destructively removes `equal'
-duplicates from a list.  Of several `equal' occurrences of an element
-in the list, the first one is kept.
-
-+++
-*** The new function `filter-buffer-substring' extracts a buffer
-substring, passes it through a set of filter functions, and returns
-the filtered substring.  It is used instead of `buffer-substring' or
-`delete-and-extract-region' when copying text into a user-accessible
-data structure, like the kill-ring, X clipboard, or a register.  The
-list of filter function is specified by the new variable
-`buffer-substring-filters'.  For example, Longlines mode uses
-`buffer-substring-filters' to remove soft newlines from the copied
-text.
-
-+++
-*** New functions frame-current-scroll-bars and window-current-scroll-bars.
-
-These functions return the current locations of the vertical and
-horizontal scroll bars in a frame or window.
-
-+++
-*** The new primitive `get-internal-run-time' returns the processor
-run time used by Emacs since start-up.
-
-+++
-*** The new function insert-buffer-substring-as-yank works like
-`insert-buffer-substring', but removes the text properties in the
-`yank-excluded-properties' list.
-
-+++
-*** The new function insert-buffer-substring-no-properties is like
-insert-buffer-substring, but removes all text properties from the
-inserted substring.
-
-+++
-*** The new functions `lax-plist-get' and `lax-plist-put' are like
-`plist-get' and `plist-put', except that they compare the property
-name using `equal' rather than `eq'.
-
-+++
-*** New function `line-number-at-pos' returns the line number of the
-current line in the current buffer, or if optional buffer position is
-given, line number of corresponding line in current buffer.
-
-+++
-*** New function `looking-back' checks whether a regular expression matches
-the text before point.  Specifying the LIMIT argument bounds how far
-back the match can start; this is a way to keep it from taking too long.
-
-+++
-*** New function `macroexpand-all' expands all macros in a form.
-It is similar to the Common-Lisp function of the same name.
-One difference is that it guarantees to return the original argument
-if no expansion is done, which can be tested using `eq'.
-
-*** The new function `minibufferp' returns non-nil if its optional
-buffer argument is a minibuffer.  If the argument is omitted, it
-defaults to the current buffer.
-
-+++
-*** New function minibuffer-selected-window returns the window which
-was selected when entering the minibuffer.
-
-+++
-*** The new function `modify-all-frames-parameters' modifies parameters
-for all (existing and future) frames.
-
-+++
-*** New functions posn-at-point and posn-at-x-y return
-click-event-style position information for a given visible buffer
-position or for a given window pixel coordinate.
-
----
-*** New function quail-find-key returns a list of keys to type in the
-current input method to input a character.
-
-+++
-*** The new function `rassq-delete-all' deletes all elements from an
-alist whose cdr is `eq' to a specified value.
-
-+++
-*** The new function remove-list-of-text-properties is almost the same
-as `remove-text-properties'.  The only difference is that it takes a
-list of property names as argument rather than a property list.
-
-+++
-*** The new primitive `set-file-times' sets a file's access and
-modification times.  Magic file name handlers can handle this
-operation.
-
-+++
-*** New function substring-no-properties returns a substring without
-text properties.
-
-+++
-*** The new function syntax-after returns the syntax code
-of the character after a specified buffer position, taking account
-of text properties as well as the character code.
-
-+++
-*** `syntax-class' extracts the class of a syntax code (as returned
-by syntax-after).
-
-+++
-*** New function `tool-bar-local-item-from-menu'
-
-The `tool-bar-add-item-from-menu' must not be used (as previously
-recommended) for making entries in the tool bar for local keymaps.
-Instead, use the function `tool-bar-local-item-from-menu', which lets
-you specify the map to use as an argument.
-
-+++
-*** New function window-body-height.
-This is like window-height but does not count the mode line
-or the header line.
-
-+++
-*** (while-no-input BODY...) runs BODY, but only so long as no input
-arrives.  If the user types or clicks anything, BODY stops as if a
-quit had occurred.  while-no-input returns the value of BODY, if BODY
-finishes.  It returns nil if BODY was aborted.
-
-+++
-*** New macro with-local-quit temporarily sets inhibit-quit to nil for use
-around potentially blocking or long-running code in timers
-and post-command-hooks.
-
-** New packages:
-
-*** The new package syntax.el provides an efficient way to find the
-current syntactic context (as returned by parse-partial-sexp).
-
-*** The new package bindat.el provides functions to unpack and pack
-binary data structures, such as network packets, to and from Lisp
-data structures.
-
----
-*** The TCL package tcl-mode.el was replaced by tcl.el.
-This was actually done in Emacs-21.1, and was not documented.
-
-+++
-*** The new package button.el implements simple and fast `clickable buttons'
-in emacs buffers.  `buttons' are much lighter-weight than the `widgets'
-implemented by widget.el, and can be used by lisp code that doesn't
-require the full power of widgets.  Emacs uses buttons for such things
-as help and apropos buffers.
-
----
-*** master-mode.el implements a minor mode for scrolling a slave
-buffer without leaving your current buffer, the master buffer.
-
-It can be used by sql.el, for example: the SQL buffer is the master
-and its SQLi buffer is the slave.  This allows you to scroll the SQLi
-buffer containing the output from the SQL buffer containing the
-commands.
-
-This is how to use sql.el and master.el together: the variable
-sql-buffer contains the slave buffer.  It is a local variable in the
-SQL buffer.
-
-(add-hook 'sql-mode-hook
-   (function (lambda ()
-	       (master-mode t)
-	       (master-set-slave sql-buffer))))
-(add-hook 'sql-set-sqli-hook
-   (function (lambda ()
-	       (master-set-slave sql-buffer))))
-
-+++
-*** New Lisp library testcover.el works with edebug to help you determine
-whether you've tested all your Lisp code.  Function testcover-start
-instruments all functions in a given file.  Then test your code.  Function
-testcover-mark-all adds overlay "splotches" to the Lisp file's buffer to
-show where coverage is lacking.  Command testcover-next-mark (bind it to
-a key!) will move point forward to the next spot that has a splotch.
-
-Normally, a red splotch indicates the form was never completely
-evaluated; a brown splotch means it always evaluated to the same
-value.  The red splotches are skipped for forms that can't possibly
-complete their evaluation, such as `error'.  The brown splotches are
-skipped for forms that are expected to always evaluate to the same
-value, such as (setq x 14).
-
-For difficult cases, you can add do-nothing macros to your code to
-help out the test coverage tool.  The macro `noreturn' suppresses a
-red splotch.  It is an error if the argument to `noreturn' does
-return.  The macro 1value suppresses a brown splotch for its argument.
-This macro is a no-op except during test-coverage -- then it signals
-an error if the argument actually returns differing values.
-
----
-** Support for Mocklisp has been removed.
-
----
-** The function insert-string is now obsolete.
 
 * Installation changes in Emacs 21.3
 
--- a/etc/TODO	Mon May 09 16:17:25 2005 +0000
+++ b/etc/TODO	Fri May 13 22:59:23 2005 +0000
@@ -9,6 +9,9 @@
 
 * Small but important fixes needed in existing features:
 
+** Convert everything that uses post-command-idle-hook
+  to use idle timers instead.
+
 ** Fix the kill/yank treatment of invisible text.  At the moment,
   invisible text is placed in the kill-ring, so that the contents of
   the ring may not correspond to the text as displayed to the user. It
@@ -259,6 +262,8 @@
 ** Make monochrome images display using the foreground and background
   colors of the applicable faces.
 
+** Face remapping.
+
 ** Add support for rendering antialiased text, probably using
   XRender/Freetype.
 
--- a/etc/TUTORIAL.pt_BR	Mon May 09 16:17:25 2005 +0000
+++ b/etc/TUTORIAL.pt_BR	Fri May 13 22:59:23 2005 +0000
@@ -1061,7 +1061,7 @@
 iniciando com um escrito por Stuart Cracraft para o Emacs original.
 
 Essa versão do tutorial foi originalmente traduzida por Marcelo Toledo
-<marcelo@marcelotoledo.org> e como o GNU Emacs, tem um copyright, e vem
+<marcelo@gnu.org> e como o GNU Emacs, tem um copyright, e vem
 com uma permissão de distribuição de cópias nas seguintes condições:
 
 Copyright (c) 1985, 1996 Free Software Foundation
--- a/etc/TUTORIAL.translators	Mon May 09 16:17:25 2005 +0000
+++ b/etc/TUTORIAL.translators	Fri May 13 22:59:23 2005 +0000
@@ -52,8 +52,8 @@
             Janusz S. Bien <jsbien@mail.uw.edu.pl>
 
 * TUTORIAL.pt_BR: 
-Author:     Marcelo Toledo <marcelo@marcelotoledo.org>
-Maintainer: Marcelo Toledo <marcelo@marcelotoledo.org>
+Author:     Marcelo Toledo <marcelo@gnu.org>
+Maintainer: Marcelo Toledo <marcelo@gnu.org>
 
 * TUTORIAL.ro: 
 Author:     Tudor Hulubei <tudor@gnu.org>
--- a/lib-src/ChangeLog	Mon May 09 16:17:25 2005 +0000
+++ b/lib-src/ChangeLog	Fri May 13 22:59:23 2005 +0000
@@ -1,3 +1,8 @@
+2005-05-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* make-docfile.c (DIRECTORY_SEP): New macro.
+	(IS_DIRECTORY_SEP): Use it.
+
 2005-03-18  Jan Dj,Ad(Brv  <jan.h.d@swipnet.se>
 
 	* emacsclient.c: Avoid expansion of getcwd when defined as a macro.
--- a/lib-src/make-docfile.c	Mon May 09 16:17:25 2005 +0000
+++ b/lib-src/make-docfile.c	Fri May 13 22:59:23 2005 +0000
@@ -60,8 +60,16 @@
 #define READ_BINARY "r"
 #endif /* not DOS_NT */
 
+#ifndef DIRECTORY_SEP
+#ifdef MAC_OS8
+#define DIRECTORY_SEP ':'
+#else  /* not MAC_OS8 */
+#define DIRECTORY_SEP '/'
+#endif	/* not MAC_OS8 */
+#endif
+
 #ifndef IS_DIRECTORY_SEP
-#define IS_DIRECTORY_SEP(_c_) ((_c_) == '/')
+#define IS_DIRECTORY_SEP(_c_) ((_c_) == DIRECTORY_SEP)
 #endif
 
 int scan_file ();
--- a/lisp/ChangeLog	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/ChangeLog	Fri May 13 22:59:23 2005 +0000
@@ -1,5 +1,180 @@
+2005-05-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* term/mac-win.el (mac-select-convert-to-string): Try coding
+	systems in mac-script-code-coding-systems if specified one cannot
+	encode string for `com.apple.traditional-mac-plain-text'.
+
+2005-05-13  Daniel Pfeiffer  <occitan@esperanto.org>
+
+	* progmodes/make-mode.el (makefile-targets-face)
+	(makefile-shell-face, makefile-makepp-perl-face): New faces.
+	(makefile-dependency-regex): Fix it to not make the colon in
+	$(var:a=b) special.
+	(makefile-rule-action-regex): New regexp for highlighting embedded
+	Shell strings.
+	(makefile-macroassign-regex): Handle != for highlighting as
+	embedded Shell strings.
+	(makefile-var-use-regex): New const.
+	(makefile-statements, makefile-automake-statements)
+	(makefile-gmake-statements, makefile-makepp-statements)
+	(makefile-bsdmake-statements): New consts.
+	(makefile-make-font-lock-keywords): New function.
+	(makefile-automake-font-lock-keywords)
+	(makefile-gmake-font-lock-keywords)
+	(makefile-makepp-font-lock-keywords)
+	(makefile-bsdmake-font-lock-keywords): New consts.
+	(makefile-mode-map): Add switchers between the various submodes.
+	(makefile-mode): Document the availability of the variants.
+	(makefile-automake-mode, makefile-gmake-mode)
+	(makefile-makepp-mode, makefile-bsdmake-mode): New derived modes.
+
+	* files.el (auto-mode-alist, interpreter-mode-alist): Set up the
+	new variants of makefile-mode.
+
+2005-05-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* font-lock.el (font-lock-comment-delimiter-face): Fix up
+	the inheritance.
+
+2005-05-12  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* progmodes/inf-lisp.el (inferior-lisp-mode-hook)
+	(inferior-lisp-load-hook): Convert defcustoms back to defvars.
+
+	* files.el (normal-mode): Extend the scope of the
+	`enable-local-variables' binding to include the `set-auto-mode' call.
+	(magic-mode-alist): Doc fix.
+
+2005-05-12  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* font-lock.el (font-lock-comment-delimiter-face): Inherit from
+	font-lock-comment-face rather than copying its setting.
+
+2005-05-12  Andreas Schwab  <schwab@suse.de>
+
+	* eshell/esh-mode.el (eshell-send-input): Doc fix.
+
+2005-05-12  Lute Kamstra  <lute@gnu.org>
+
+	* emacs-lisp/generic.el (define-generic-mode): Don't generate a
+	defcustom for the mode hook variable.  Delete the last argument.
+	* generic-x.el: Fix callers of define-generic-mode.
+	(generic-x-modes): Delete group.
+	(show-tabs-tab-face, show-tabs-space-face): Put them in the
+	generic-x customization group.
+
+2005-05-12  Kim F. Storm  <storm@cua.dk>
+
+	* font-lock.el (font-lock-negation-char-face): Default to "off".
+
+	* progmodes/cc-fonts.el (c-basic-matchers-before): Don't apply
+	font-lock-negation-char-face to ! in !=.
+
+2005-05-12  Masatake YAMATO  <jet@gyve.org>
+
+	* add-log.el (find-change-log): Fix typos in the docstring
+	of function.
+
+2005-05-11  Arne J,Ax(Brgensen  <arne@arnested.dk>
+
+	* international/latexenc.el (latexenc-find-file-coding-system):
+	Avoid `re-search-forward' when looking for input encoding because
+	of speed and safety.  Better regular expressions for recognizing
+	input encoding.  Limit a search for TeX-master/tex-main-file to
+	the local variable section.
+
+2005-05-11  Dan Nicolaescu  <dann@ics.uci.edu>
+
+	* progmodes/sh-script.el (sh-mode-default-syntax-table): Set the
+	syntax of $ to "'" (quote).
+
+2005-05-11  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* dnd.el (dnd-protocol-alist): Improve custom type.
+
+	* dired.el (dired-dnd-protocol-alist): New variable.
+	(dired-mode): Use `dired-dnd-protocol-alist'.  Move call of
+	`dired-mode-hook' to the end.
+
+2005-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* font-lock.el (font-lock-fontify-syntactically-region): Don't use
+	comment-end if comment-start-skip is not set.
+	Obey the font-lock-comment-delimiter-face variables.
+
+2005-05-11  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* files.el (executable-find): Move from executable.el. Use locate-file.
+	* progmodes/executable.el (executable-find): Move to files.el.
+
+	* font-lock.el (font-lock-fontify-keywords-region): Use a marker
+	when trying to ensure forward progress.
+
+2005-05-11  Chong Yidong  <cyd@stupidchicken.com>
+
+	* mouse-sel.el (mouse-sel-follow-link-p): New function.
+	(mouse-select, mouse-select-internal, mouse-extend-internal):
+	Use it to implement mouse-1-click-follows-link functionality.
+
+2005-05-11  Richard M. Stallman  <rms@gnu.org>
+
+	* font-lock.el (font-lock-fontify-syntactically-region):
+	Use font-lock-comment-delimiter-face for comment delimiters.
+
+2005-05-10  Jay Belanger  <belanger@truman.edu>
+
+	* calc/calc-help.el (calc-m-prefix-help): Add mention of
+	preserving embedded modes.
+
+2005-05-10  Richard M. Stallman  <rms@gnu.org>
+
+	* progmodes/sh-script.el (sh-indent-for-do): Default to 0.
+
+	* progmodes/ada-mode.el (ada-adjust-case-skeleton):
+	Move from ada-stmt.el.
+	(ada-mode): Add ada-adjust-case-skeleton to skeleton-end-hook.
+
+	* progmodes/ada-stmt.el (ada-adjust-case-skeleton):
+	Move to ada-mode.el.
+	(ada-stmt-mode-hook): Delete; do the work in ada-mode.
+
+	* cus-edit.el (custom-file): Call file-chase-links.
+
+	* files.el (read-directory-name): Fix previous change.
+
+2005-05-10  Lute Kamstra  <lute@gnu.org>
+
+	* font-lock.el (font-lock-keywords-alist)
+	(font-lock-removed-keywords-alist): Clarify docstrings.
+
+2005-05-10  Nick Roberts  <nickrob@snap.net.nz>
+
+	* progmodes/gdb-ui.el (gdb-macro-info): New variable.
+	(gdb-source-info): Check for preprocessor info.
+	(gdb-tooltip-print-1): New function. Don't print tooltip if it is
+	a macro for a function.
+	found (user might have used GDB dir command).
+	(gdb-info-breakpoints-custom): Try to find file again if not already
+	(gdb-get-location): Update gdb-location-alist correctly for change
+	to gdb-info-breakpoints-custom.
+
+	* progmodes/gud.el (gud-tooltip-mode): Require tooltip to be safe.
+	(gud-tooltip-print-command): Add gdbmi case.
+	(gud-tooltip-tips): Call gdb-tooltip-print-1 first if there is
+	preprocessor info.
+
+2005-05-09  Reiner Steib  <Reiner.Steib@gmx.de>
+
+	* startup.el (fancy-splash-insert): Fix typo in doc string.
+
 2005-05-09  Juanma Barranquero  <lekktu@gmail.com>
 
+	* obsolete/float.el (string-to-float):
+	* obsolete/hilit19.el (hilit-add-pattern):
+	* obsolete/rnews.el (news-parse-range, news-select-message)
+	(news-get-pruned-list-of-files): Replace `string-to-int' by
+	`string-to-number'.
+
 	* obsolete/uncompress.el: Set `find-file-not-found-functions', not
 	`find-file-not-found-hooks'; use `add-hook'.
 	(uncompress-while-visiting): Set `write-file-functions', not
@@ -14,8 +189,8 @@
 
 2005-05-08  Eli Zaretskii  <eliz@gnu.org>
 
-	* emacs-lisp/easy-mmode.el (easy-mmode-pretty-mode-name): Improve
-	commentary.
+	* emacs-lisp/easy-mmode.el (easy-mmode-pretty-mode-name):
+	Improve commentary.
 
 	* simple.el (next-error-overlay-arrow-position): Revert the change
 	made on 2005-04-30.
@@ -31,8 +206,8 @@
 
 2005-05-07  Eli Zaretskii  <eliz@gnu.org>
 
-	* progmodes/compile.el (compilation-setup): Set
-	overlay-arrow-string to an empty string on text terminals.
+	* progmodes/compile.el (compilation-setup):
+	Set overlay-arrow-string to an empty string on text terminals.
 
 	* textmodes/ispell.el (ispell-program-name): Try looking for
 	"aspell" along exec-path, and if found, use it as the default
@@ -40,8 +215,8 @@
 
 2005-05-07  Jirka Kosek  <jirka@kosek.cz>  (tiny change)
 
-	* international/mule.el (sgml-xml-auto-coding-function): Recognize
-	encoding='FOO' in single quotes as well as in double quotes.
+	* international/mule.el (sgml-xml-auto-coding-function):
+	Recognize encoding='FOO' in single quotes as well as in double quotes.
 
 2005-05-07  Johan Bockg,Ae(Brd  <bojohan@dd.chalmers.se>
 
@@ -51,9 +226,9 @@
 
 2005-05-07  Eli Zaretskii  <eliz@gnu.org>
 
-	* emacs-lisp/easy-mmode.el (easy-mmode-pretty-mode-name): Explain
-	more about the LIGHTER arg's usage in the doc string.  Add
-	commentary to clarify what the code does.  Fix the regexp that
+	* emacs-lisp/easy-mmode.el (easy-mmode-pretty-mode-name):
+	Explain more about the LIGHTER arg's usage in the doc string.
+	Add commentary to clarify what the code does.  Fix the regexp that
 	strips whitespace from LIGHTER.  Quote LIGHTER before using it,
 	since it could have characters special to regular expressions.
 
@@ -61,8 +236,7 @@
 
 	* replace.el (occur-1): Bind inhibit-read-only so that
 	erase-buffer doesn't barf on read-only text properties (likewise
-	for add-text-properties in occur-engine).  Mark buffer as
-	unmodified.
+	for add-text-properties in occur-engine).  Mark buffer as unmodified.
 	(occur-engine): Don't set buffer-read-only here.
 
 2005-05-06  Stefan Monnier  <monnier@iro.umontreal.ca>
@@ -157,8 +331,7 @@
 	* term/mac-win.el: Don't define or bind scroll bar functions if
 	x-toolkit-scroll-bars is t.
 	(x-select-text, x-get-selection-value):
-	Clear x-last-selected-text-clipboard if x-select-enable-clipboard is
-	nil.
+	Clear x-last-selected-text-clipboard if x-select-enable-clipboard is nil.
 	(PRIMARY): Put mac-scrap-name property.
 	(mac-select-convert-to-file-url): New function.
 	(public.file-url): New selection target type.  Add to
@@ -166,6 +339,19 @@
 	(x-get-selection, x-selection-value): Handle it.
 	(x-cut-buffer-or-selection-value): New alias.
 
+2005-05-05  Roland Winkler  <Roland.Winkler@physik.uni-erlangen.de>
+
+	* textmodes/bibtex.el (bibtex-summary): Use current BibTeX
+	entry to avoid calling bibtex-find-entry with arg global
+	being t.  Remove arg key.
+	(bibtex-summary-function, bibtex-complete-crossref-cleanup)
+	(bibtex-copy-summary-as-kill): Change accordingly.
+
+2005-05-05  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+	* textmodes/org.el (org-get-entries-from-diary): Remove unused vars.
+	(org-agenda-date-later): Use with-current-buffer.
+
 2005-05-05  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* emacs-lisp/byte-run.el (define-obsolete-function-alias)
@@ -231,6 +417,8 @@
 
 2005-05-04  Richard M. Stallman  <rms@gnu.org>
 
+	* help.el (describe-key): No error when UNTRANSLATED is nil.
+
 	* simple.el (line-move-1): Fix previous change to signal errors
 	appropriately.
 
@@ -375,11 +563,15 @@
 	with mode-require-final-newline.
 	(mode-require-final-newline): Doc fix.
 
-2005-05-01  Lute Kamstra  <lute@gnu.org>
+2005-05-01  Stefan Monnier <monnier@iro.umontreal.ca>
 
 	* international/latexenc.el (latexenc-find-file-coding-system):
-	Fix regular expressions.  Suggested by David Kastrup <dak@gnu.org>
-	and Stefan Monnier <monnier@iro.umontreal.ca>.
+	Fix regular expressions.
+
+2005-05-01  David Kastrup <dak@gnu.org>
+
+	* international/latexenc.el (latexenc-find-file-coding-system):
+	Fix regular expressions.
 
 2005-05-01  Nick Roberts  <nickrob@snap.net.nz>
 
@@ -1654,7 +1846,7 @@
 	* xt-mouse.el (xterm-mouse-mode): Add explicit Custom group, mouse.
 	Doc fix.
 
-2005-04-03  Marcelo Toledo  <marcelo@marcelotoledo.org>
+2005-04-03  Marcelo Toledo  <marcelo@gnu.org>
 
 	* add-log.el (change-log-font-lock-keywords): The manual
 	describing a Change Log entry, says: (...) "Aside from these
@@ -4874,7 +5066,7 @@
 
 	* vc-svn.el (vc-svn-diff): Stay local if possible.
 
-2005-01-02  Stefan  <monnier@iro.umontreal.ca>
+2005-01-02  Stefan Monnier  <monnier@iro.umontreal.ca>
 
 	* vc-arch.el (vc-arch-workfile-version): Handle the empty-branch case.
 
@@ -12014,7 +12206,7 @@
 
 	* tree-widget.el: New file.
 
-2004-05-13  Marcelo Toledo  <marcelo@marcelotoledo.org>
+2004-05-13  Marcelo Toledo  <marcelo@gnu.org>
 
 	* language/european.el ("Brazilian Portuguese"): Add support for
 	Brazilian Portuguese.
--- a/lisp/add-log.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/add-log.el	Fri May 13 22:59:23 2005 +0000
@@ -250,6 +250,9 @@
     ;; Acknowledgements.
     ;; Don't include plain "From" because that is vague;
     ;; we want to encourage people to say something more specific.
+    ;; Note that the FSF does not use "Patches by"; our convention
+    ;; is to put the name of the author of the changes at the top
+    ;; of the change log entry.
     ("\\(^\\( +\\|\t\\)\\|  \\)\\(Patch\\(es\\)? by\\|Report\\(ed by\\| from\\)\\|Suggest\\(ed by\\|ion from\\)\\)"
      3 'change-log-acknowledgement-face))
   "Additional expressions to highlight in Change Log mode.")
@@ -375,10 +378,10 @@
 
 Optional arg FILE-NAME specifies the file to use.
 If FILE-NAME is nil, use the value of `change-log-default-name'.
-If 'change-log-default-name' is nil, behave as though it were 'ChangeLog'
+If `change-log-default-name' is nil, behave as though it were 'ChangeLog'
 \(or whatever we use on this operating system).
 
-If 'change-log-default-name' contains a leading directory component, then
+If `change-log-default-name' contains a leading directory component, then
 simply find it in the current directory.  Otherwise, search in the current
 directory and its successive parents for a file so named.
 
--- a/lisp/calc/calc-help.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/calc/calc-help.el	Fri May 13 22:59:23 2005 +0000
@@ -630,7 +630,7 @@
   (interactive)
   (calc-do-prefix-help
    '("Deg, Rad, HMS; Frac; Polar; Inf; Alg, Total; Symb; Vec/mat"
-     "Working; Xtensions; Mode-save"
+     "Working; Xtensions; Mode-save; preserve Embedded modes"
      "SHIFT + Shifted-prefixes, mode-Filename; Record; reCompute"
      "SHIFT + simplify: Off, Num, Default, Bin, Alg, Ext, Units")
    "mode" ?m))
--- a/lisp/cus-edit.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/cus-edit.el	Fri May 13 22:59:23 2005 +0000
@@ -3835,20 +3835,21 @@
 
 (defun custom-file ()
   "Return the file name for saving customizations."
-  (or custom-file
-      (let ((user-init-file user-init-file)
-	    (default-init-file
-	      (if (eq system-type 'ms-dos) "~/_emacs" "~/.emacs")))
-	(when (null user-init-file)
-	  (if (or (file-exists-p default-init-file)
-		  (and (eq system-type 'windows-nt)
-		       (file-exists-p "~/_emacs")))
-	      ;; Started with -q, i.e. the file containing
-	      ;; Custom settings hasn't been read.  Saving
-	      ;; settings there would overwrite other settings.
-	      (error "Saving settings from \"emacs -q\" would overwrite existing customizations"))
-	  (setq user-init-file default-init-file))
-	user-init-file)))
+  (file-chase-links
+   (or custom-file
+       (let ((user-init-file user-init-file)
+	     (default-init-file
+	       (if (eq system-type 'ms-dos) "~/_emacs" "~/.emacs")))
+	 (when (null user-init-file)
+	   (if (or (file-exists-p default-init-file)
+		   (and (eq system-type 'windows-nt)
+			(file-exists-p "~/_emacs")))
+	       ;; Started with -q, i.e. the file containing
+	       ;; Custom settings hasn't been read.  Saving
+	       ;; settings there would overwrite other settings.
+	       (error "Saving settings from \"emacs -q\" would overwrite existing customizations"))
+	   (setq user-init-file default-init-file))
+	 user-init-file))))
 
 (defun custom-save-delete (symbol)
   "Visit `custom-file' and delete all calls to SYMBOL from it.
--- a/lisp/dired.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/dired.el	Fri May 13 22:59:23 2005 +0000
@@ -200,6 +200,18 @@
 ;; Note this can't simply be run inside function `dired-ls' as the hook
 ;; functions probably depend on the dired-subdir-alist to be OK.
 
+(defcustom dired-dnd-protocol-alist
+  '(("^file:///" . dired-dnd-handle-local-file)
+    ("^file://"  . dired-dnd-handle-file)
+    ("^file:"    . dired-dnd-handle-local-file))
+  "The functions to call when a drop in `dired-mode' is made.
+See `dnd-protocol-alist' for more information.  When nil, behave
+as in other buffers."
+  :type '(choice (repeat (cons (regexp) (function)))
+		 (const :tag "Behave as in other buffers" nil))
+  :version "22.1"
+  :group 'dired)
+
 ;; Internal variables
 
 (defvar dired-marker-char ?*		; the answer is 42
@@ -1522,14 +1534,11 @@
        'dired-desktop-buffer-misc-data)
   (setq dired-switches-alist nil)
   (dired-sort-other dired-actual-switches t)
-  (run-mode-hooks 'dired-mode-hook)
   (when (featurep 'dnd)
     (make-variable-buffer-local 'dnd-protocol-alist)
     (setq dnd-protocol-alist
-	  (append '(("^file:///" . dired-dnd-handle-local-file)
-		    ("^file://"  . dired-dnd-handle-file)
-		    ("^file:"    . dired-dnd-handle-local-file))
-		  dnd-protocol-alist))))
+	  (append dired-dnd-protocol-alist dnd-protocol-alist)))
+  (run-mode-hooks 'dired-mode-hook))
 
 ;; Idiosyncratic dired commands that don't deal with marks.
 
--- a/lisp/dnd.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/dnd.el	Fri May 13 22:59:23 2005 +0000
@@ -55,7 +55,7 @@
 The function shall return the action done (move, copy, link or private)
 if some action was made, or nil if the URL is ignored."
   :version "22.1"
-  :type 'alist
+  :type '(repeat (cons (regexp) (function)))
   :group 'dnd)
 
 
--- a/lisp/emacs-lisp/generic.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/emacs-lisp/generic.el	Fri May 13 22:59:23 2005 +0000
@@ -117,46 +117,37 @@
 ;;;###autoload
 (defmacro define-generic-mode (mode comment-list keyword-list
 				    font-lock-list auto-mode-list
-				    function-list &optional docstring
-				    &rest custom-keyword-args)
+				    function-list &optional docstring)
   "Create a new generic mode MODE.
 
-MODE is the name of the command for the generic mode; don't quote
-it.  The optional DOCSTRING is the documentation for the mode
-command.  If you do not supply it, `define-generic-mode' uses a
-default documentation string instead.
+MODE is the name of the command for the generic mode; don't quote it.
+The optional DOCSTRING is the documentation for the mode command.  If
+you do not supply it, `define-generic-mode' uses a default
+documentation string instead.
 
-COMMENT-LIST is a list in which each element is either a
-character, a string of one or two characters, or a cons cell.  A
-character or a string is set up in the mode's syntax table as a
-\"comment starter\".  If the entry is a cons cell, the `car' is
-set up as a \"comment starter\" and the `cdr' as a \"comment
-ender\".  (Use nil for the latter if you want comments to end at
-the end of the line.)  Note that the syntax table has limitations
-about what comment starters and enders are actually possible.
+COMMENT-LIST is a list in which each element is either a character, a
+string of one or two characters, or a cons cell.  A character or a
+string is set up in the mode's syntax table as a \"comment starter\".
+If the entry is a cons cell, the `car' is set up as a \"comment
+starter\" and the `cdr' as a \"comment ender\".  (Use nil for the
+latter if you want comments to end at the end of the line.)  Note that
+the syntax table has limitations about what comment starters and
+enders are actually possible.
 
 KEYWORD-LIST is a list of keywords to highlight with
 `font-lock-keyword-face'.  Each keyword should be a string.
 
-FONT-LOCK-LIST is a list of additional expressions to highlight.
-Each element of this list should have the same form as an element
-of `font-lock-keywords'.
+FONT-LOCK-LIST is a list of additional expressions to highlight.  Each
+element of this list should have the same form as an element of
+`font-lock-keywords'.
 
 AUTO-MODE-LIST is a list of regular expressions to add to
-`auto-mode-alist'.  These regular expressions are added when
-Emacs runs the macro expansion.
-
-FUNCTION-LIST is a list of functions to call to do some
-additional setup.  The mode command calls these functions just
-before it runs the mode hook.
+`auto-mode-alist'.  These regular expressions are added when Emacs
+runs the macro expansion.
 
-The optional CUSTOM-KEYWORD-ARGS are pairs of keywords and values
-to include in the generated `defcustom' form for the mode hook
-variable `MODE-hook'.  The default value for the `:group' keyword
-is MODE with the final \"-mode\" (if any) removed.  (Don't use
-this default group name unless you have written a `defgroup' to
-define that group properly.)  You can specify keyword arguments
-without specifying a docstring.
+FUNCTION-LIST is a list of functions to call to do some additional
+setup.  The mode command calls these functions just before it runs the
+mode hook `MODE-hook'.
 
 See the file generic-x.el for some examples of `define-generic-mode'."
   (declare (debug (sexp def-form def-form def-form form def-form
@@ -167,22 +158,9 @@
   (when (eq (car-safe mode) 'quote)
     (setq mode (eval mode)))
 
-  (when (and docstring (not (stringp docstring)))
-    ;; DOCSTRING is not a string so we assume that it's actually the
-    ;; first keyword of CUSTOM-KEYWORD-ARGS.
-    (push docstring custom-keyword-args)
-    (setq docstring nil))
-
   (let* ((name (symbol-name mode))
 	 (pretty-name (capitalize (replace-regexp-in-string
-				   "-mode\\'" "" name)))
-	 (mode-hook (intern (concat name "-hook"))))
-
-    (unless (plist-get custom-keyword-args :group)
-      (setq custom-keyword-args
-	    (plist-put custom-keyword-args
-		       :group `',(intern (replace-regexp-in-string
-					  "-mode\\'" "" name)))))
+				   "-mode\\'" "" name))))
 
     `(progn
        ;; Add a new entry.
@@ -192,15 +170,11 @@
        (dolist (re ,auto-mode-list)
 	 (add-to-list 'auto-mode-alist (cons re ',mode)))
 
-       (defcustom ,mode-hook nil
-	 ,(concat "Hook run when entering " pretty-name " mode.")
-	 :type 'hook
-	 ,@custom-keyword-args)
-
        (defun ,mode ()
 	 ,(or docstring
 	      (concat pretty-name " mode.\n"
-		      "This a generic mode defined with `define-generic-mode'."))
+		      "This a generic mode defined with `define-generic-mode'.\n"
+		      "It runs `" name "-hook' as the last thing it does."))
 	 (interactive)
 	 (generic-mode-internal ',mode ,comment-list ,keyword-list
 				,font-lock-list ,function-list)))))
--- a/lisp/eshell/esh-mode.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/eshell/esh-mode.el	Fri May 13 22:59:23 2005 +0000
@@ -663,7 +663,7 @@
   (eshell-match-result "alpha\n"))
 
 (defun eshell-send-input (&optional use-region queue-p no-newline)
-  "Send the input received to Eshell for parsing and processing..
+  "Send the input received to Eshell for parsing and processing.
 After `eshell-last-output-end', sends all text from that marker to
 point as input.  Before that marker, calls `eshell-get-old-input' to
 retrieve old input, copies it to the end of the buffer, and sends it.
--- a/lisp/files.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/files.el	Fri May 13 22:59:23 2005 +0000
@@ -541,9 +541,6 @@
 the value of `default-directory'."
   (unless dir
     (setq dir default-directory))
-  (unless default-dirname
-    (setq default-dirname
-	  (if initial (concat dir initial) default-directory)))
   (read-file-name prompt dir (or default-dirname 
 				 (if initial (expand-file-name initial dir)
 				   dir))
@@ -679,6 +676,13 @@
        ((null action) (try-completion string names))
        (t (test-completion string names))))))
 
+(defun executable-find (command)
+  "Search for COMMAND in `exec-path' and return the absolute file name.
+Return nil if COMMAND is not found anywhere in `exec-path'."
+  ;; Use 1 rather than file-executable-p to better match the behavior of
+  ;; call-process.
+  (locate-file command exec-path exec-suffixes 1))
+
 (defun load-library (library)
   "Load the library named LIBRARY.
 This is an interface to the function `load'."
@@ -1724,10 +1728,10 @@
 in that case, this function acts as if `enable-local-variables' were t."
   (interactive)
   (or find-file (funcall (or default-major-mode 'fundamental-mode)))
-  (report-errors "File mode specification error: %s"
-    (set-auto-mode))
-  (report-errors "File local-variables error: %s"
-    (let ((enable-local-variables (or (not find-file) enable-local-variables)))
+  (let ((enable-local-variables (or (not find-file) enable-local-variables)))
+    (report-errors "File mode specification error: %s"
+      (set-auto-mode))
+    (report-errors "File local-variables error: %s"
       (hack-local-variables)))
   (if (fboundp 'ucs-set-table-for-input) ; don't lose when building
       (ucs-set-table-for-input)))
@@ -1758,9 +1762,11 @@
      ("\\.ad[abs]\\'" . ada-mode)
      ("\\.ad[bs].dg\\'" . ada-mode)
      ("\\.\\([pP]\\([Llm]\\|erl\\|od\\)\\|al\\)\\'" . perl-mode)
-     ("\\.mk\\'" . makefile-mode)
-     ("\\([Mm]\\|GNUm\\)akep*file\\'" . makefile-mode)
-     ("\\.am\\'" . makefile-mode)	;For Automake.
+     ("\\.mk\\'" . makefile-gmake-mode)	; Might be any make, give Gnu the host advantage
+     ("[Mm]akefile\\'" . makefile-mode)
+     ("GNUmakefile\\'" . makefile-gmake-mode)
+     ("Makeppfile\\'" . makefile-makepp-mode)
+     ("\\.am\\'" . makefile-automake-mode)
      ;; Less common extensions come here
      ;; so more common ones above are found faster.
      ("\\.texinfo\\'" . texinfo-mode)
@@ -1932,7 +1938,7 @@
      ("more" . text-mode)
      ("less" . text-mode)
      ("pg" . text-mode)
-     ("make" . makefile-mode)		; Debian uses this
+     ("make" . makefile-gmake-mode)		; Debian uses this
      ("guile" . scheme-mode)
      ("clisp" . lisp-mode)))
   "Alist mapping interpreter names to major modes.
@@ -1988,7 +1994,7 @@
 to decide the buffer's major mode.
 
 If FUNCTION is nil, then it is not called.  (That is a way of saying
-\"allow `auto-mode-alist' to decide for these files.")
+\"allow `auto-mode-alist' to decide for these files.)")
 
 (defun set-auto-mode (&optional keep-mode-if-same)
   "Select major mode appropriate for current buffer.
@@ -2147,6 +2153,26 @@
        (goto-char beg)
        end))))
 
+(defun hack-local-variables-confirm ()
+  (or (eq enable-local-variables t)
+      (and enable-local-variables
+	   (save-window-excursion
+	     (condition-case nil
+		 (switch-to-buffer (current-buffer))
+	       (error
+		;; If we fail to switch in the selected window,
+		;; it is probably a minibuffer or dedicated window.
+		;; So try another window.
+		(let ((pop-up-frames nil))
+		  ;; Refrain from popping up frames since it can't
+		  ;; be undone by save-window-excursion.
+		  (pop-to-buffer (current-buffer)))))
+	     (save-excursion
+	       (beginning-of-line)
+	       (set-window-start (selected-window) (point)))
+	     (y-or-n-p (format "Set local variables as specified in -*- line of %s? "
+			       (file-name-nondirectory buffer-file-name)))))))
+
 (defun hack-local-variables-prop-line (&optional mode-only)
   "Set local variables specified in the -*- line.
 Ignore any specification for `mode:' and `coding:';
@@ -2201,21 +2227,7 @@
       (if mode-only mode-specified
 	(if (and result
 		 (or mode-only
-		     (eq enable-local-variables t)
-		     (and enable-local-variables
-			  (save-window-excursion
-			    (condition-case nil
-				(switch-to-buffer (current-buffer))
-			      (error
-			       ;; If we fail to switch in the selected window,
-			       ;; it is probably a minibuffer.
-			       ;; So try another window.
-			       (condition-case nil
-				   (switch-to-buffer-other-window (current-buffer))
-				 (error
-				  (switch-to-buffer-other-frame (current-buffer))))))
-			    (y-or-n-p (format "Set local variables as specified in -*- line of %s? "
-					      (file-name-nondirectory buffer-file-name)))))))
+		     (hack-local-variables-confirm)))
 	    (let ((enable-local-eval enable-local-eval))
 	      (while result
 		(hack-one-local-variable (car (car result)) (cdr (car result)))
@@ -2244,20 +2256,8 @@
       (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move)
       (when (let ((case-fold-search t))
 	      (and (search-forward "Local Variables:" nil t)
-		   (or (eq enable-local-variables t)
-		       mode-only
-		       (and enable-local-variables
-			    (save-window-excursion
-			      (switch-to-buffer (current-buffer))
-			      (save-excursion
-				(beginning-of-line)
-				(set-window-start (selected-window) (point)))
-			      (y-or-n-p (format "Set local variables as specified at end of %s? "
-						(if buffer-file-name
-						    (file-name-nondirectory
-						     buffer-file-name)
-						  (concat "buffer "
-							  (buffer-name))))))))))
+		   (or mode-only
+		       (hack-local-variables-confirm))))
 	(skip-chars-forward " \t")
 	(let ((enable-local-eval enable-local-eval)
 	      ;; suffix is what comes after "local variables:" in its line.
@@ -2478,18 +2478,7 @@
 		      (hack-one-local-variable-eval-safep val))
 		 ;; Permit eval if not root and user says ok.
 		 (and (not (zerop (user-uid)))
-		      (or (eq enable-local-eval t)
-			  (and enable-local-eval
-			       (save-window-excursion
-				 (switch-to-buffer (current-buffer))
-				 (save-excursion
-				   (beginning-of-line)
-				   (set-window-start (selected-window) (point)))
-				 (setq enable-local-eval
-				       (y-or-n-p (format "Process `eval' or hook local variables in %s? "
-							 (if buffer-file-name
-							     (concat "file " (file-name-nondirectory buffer-file-name))
-							   (concat "buffer " (buffer-name)))))))))))
+		      (hack-local-variables-confirm)))
 	     (if (eq var 'eval)
 		 (save-excursion (eval val))
 	       (make-local-variable var)
@@ -4875,5 +4864,5 @@
 (define-key ctl-x-5-map "\C-f" 'find-file-other-frame)
 (define-key ctl-x-5-map "r" 'find-file-read-only-other-frame)
 
-;;; arch-tag: bc68d3ea-19ca-468b-aac6-3a4a7766101f
+;; arch-tag: bc68d3ea-19ca-468b-aac6-3a4a7766101f
 ;;; files.el ends here
--- a/lisp/font-lock.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/font-lock.el	Fri May 13 22:59:23 2005 +0000
@@ -470,12 +470,27 @@
 optimized.")
 
 (defvar font-lock-keywords-alist nil
-  "Alist of `font-lock-keywords' local to a `major-mode'.
+  "Alist of additional `font-lock-keywords' elements for major modes.
+
+Each element has the form (MODE KEYWORDS . APPEND).
+`font-lock-set-defaults' adds the elements in the list KEYWORDS to
+`font-lock-keywords' when Font Lock is turned on in major mode MODE.
+
+If APPEND is nil, KEYWORDS are added at the beginning of
+`font-lock-keywords'.  If it is `set', they are used to replace the
+value of `font-lock-keywords'.  If APPEND is any other non-nil value,
+they are added at the end.
+
 This is normally set via `font-lock-add-keywords' and
 `font-lock-remove-keywords'.")
 
 (defvar font-lock-removed-keywords-alist nil
-  "Alist of `font-lock-keywords' removed from `major-mode'.
+  "Alist of `font-lock-keywords' elements to be removed for major modes.
+
+Each element has the form (MODE . KEYWORDS).  `font-lock-set-defaults'
+removes the elements in the list KEYWORDS from `font-lock-keywords'
+when Font Lock is turned on in major mode MODE.
+
 This is normally set via `font-lock-add-keywords' and
 `font-lock-remove-keywords'.")
 
@@ -1299,7 +1314,10 @@
 (defun font-lock-fontify-syntactically-region (start end &optional loudly ppss)
   "Put proper face on each string and comment between START and END.
 START should be at the beginning of a line."
-  (let (state face beg)
+  (let ((comment-end-regexp
+         (regexp-quote
+          (replace-regexp-in-string "^ *" "" comment-end)))
+        state face beg)
     (if loudly (message "Fontifying %s... (syntactically...)" (buffer-name)))
     (goto-char start)
     ;;
@@ -1314,7 +1332,19 @@
 	    (setq beg (max (nth 8 state) start))
 	    (setq state (parse-partial-sexp (point) end nil nil state
 					    'syntax-table))
-	    (when face (put-text-property beg (point) 'face face)))
+	    (when face (put-text-property beg (point) 'face face))
+	    (when (and (eq face 'font-lock-comment-face)
+                       comment-start-skip)
+	      ;; Find the comment delimiters
+	      ;; and use font-lock-comment-delimiter-face for them.
+	      (save-excursion
+		(goto-char beg)
+		(if (looking-at comment-start-skip)
+		    (put-text-property beg (match-end 0) 'face
+				       font-lock-comment-delimiter-face)))
+	      (if (looking-back comment-end-regexp (point-at-bol))
+		  (put-text-property (match-beginning 0) (point) 'face
+				     font-lock-comment-delimiter-face))))
 	  (< (point) end))
       (setq state (parse-partial-sexp (point) end nil nil state
 				      'syntax-table)))))
@@ -1405,6 +1435,7 @@
   (let ((case-fold-search font-lock-keywords-case-fold-search)
 	(keywords (cddr font-lock-keywords))
 	(bufname (buffer-name)) (count 0)
+        (pos (make-marker))
 	keyword matcher highlights)
     ;;
     ;; Fontify each item in `font-lock-keywords' from `start' to `end'.
@@ -1439,12 +1470,14 @@
 	(while highlights
 	  (if (numberp (car (car highlights)))
 	      (font-lock-apply-highlight (car highlights))
-	    (let ((pos (point)))
-	      (font-lock-fontify-anchored-keywords (car highlights) end)
-	      ;; Ensure forward progress.
-	      (if (< (point) pos) (goto-char pos))))
+	    (set-marker pos (point))
+            (font-lock-fontify-anchored-keywords (car highlights) end)
+            ;; Ensure forward progress.  `pos' is a marker because anchored
+            ;; keyword may add/delete text (this happens e.g. in grep.el).
+            (if (< (point) pos) (goto-char pos)))
 	  (setq highlights (cdr highlights))))
-      (setq keywords (cdr keywords)))))
+      (setq keywords (cdr keywords)))
+    (set-marker pos nil)))
 
 ;;; End of Keyword regexp fontification functions.
 
@@ -1622,27 +1655,6 @@
 
 ;; But now we do it the custom way.  Note that `defface' will not overwrite any
 ;; faces declared above via `custom-declare-face'.
-(defface font-lock-comment-delimiter-face
-  '((((class grayscale) (background light))
-     (:foreground "DimGray" :weight bold :slant italic))
-    (((class grayscale) (background dark))
-     (:foreground "LightGray" :weight bold :slant italic))
-    (((class color) (min-colors 88) (background light))
-     (:foreground "Firebrick"))
-    (((class color) (min-colors 88) (background dark))
-     (:foreground "chocolate1"))
-    (((class color) (min-colors 16) (background light))
-     (:foreground "red"))
-    (((class color) (min-colors 16) (background dark))
-     (:foreground "red1"))
-    (((class color) (min-colors 8) (background light))
-     (:foreground "red"))
-    (((class color) (min-colors 8) (background dark))
-     (:foreground "red1"))
-    (t (:weight bold :slant italic)))
-  "Font Lock mode face used to highlight comment delimiters."
-  :group 'font-lock-highlighting-faces)
-
 (defface font-lock-comment-face
   '((((class grayscale) (background light))
      (:foreground "DimGray" :weight bold :slant italic))
@@ -1664,6 +1676,17 @@
   "Font Lock mode face used to highlight comments."
   :group 'font-lock-highlighting-faces)
 
+(defface font-lock-comment-delimiter-face
+  '((default :inherit font-lock-comment-face)
+    (((class grayscale)))
+    (((class color) (min-colors 16)))
+    (((class color) (min-colors 8) (background light))
+     :foreground "red")
+    (((class color) (min-colors 8) (background dark))
+     :foreground "red1"))
+  "Font Lock mode face used to highlight comment delimiters."
+  :group 'font-lock-highlighting-faces)
+
 (defface font-lock-string-face
   '((((class grayscale) (background light)) (:foreground "DimGray" :slant italic))
     (((class grayscale) (background dark)) (:foreground "LightGray" :slant italic))
@@ -1765,13 +1788,8 @@
   "Font Lock mode face used to highlight warnings."
   :group 'font-lock-highlighting-faces)
 
-;; Matches font-lock-builtin-face, because that is used for #ifndef and
-;; font-lock-keyword-face, which alas make-mode uses for ifndef
 (defface font-lock-negation-char-face
-  '((((class color) (min-colors 88) (background light)) (:foreground "VioletRed" :weight bold))
-    (((class color) (min-colors 88) (background dark)) (:foreground "MediumOrchid1" :weight bold))
-    (((class color) (min-colors 8)) (:foreground "red" :weight bold))
-    (t (:inverse-video t :weight bold)))
+  '((t nil))
   "Font Lock mode face used to highlight easy to overlook negation."
   :group 'font-lock-highlighting-faces)
 
@@ -1823,7 +1841,7 @@
 ;  (put 'font-lock-fontify-more 'menu-enable '(identity))
 ;  (put 'font-lock-fontify-less 'menu-enable '(identity)))
 ;
-;;; Put the appropriate symbol property values on now.  See above.
+; ;; Put the appropriate symbol property values on now.  See above.
 ;(put 'global-font-lock-mode 'menu-selected 'global-font-lock-mode)
 ;(put 'font-lock-mode 'menu-selected 'font-lock-mode)
 ;(put 'font-lock-fontify-more 'menu-enable '(nth 2 font-lock-fontify-level))
@@ -1857,7 +1875,7 @@
 ;      (font-lock-fontify-level (1+ (car font-lock-fontify-level)))
 ;    (error "No more decoration")))
 ;
-;;; This should be called by `font-lock-set-defaults'.
+; ;; This should be called by `font-lock-set-defaults'.
 ;(defun font-lock-set-menu ()
 ;  ;; Activate less/more fontification entries if there are multiple levels for
 ;  ;; the current buffer.  Sets `font-lock-fontify-level' to be of the form
@@ -1878,7 +1896,7 @@
 ;      (setq font-lock-fontify-level (list level (> level 1)
 ;					  (< level (1- (length keywords))))))))
 ;
-;;; This should be called by `font-lock-unset-defaults'.
+; ;; This should be called by `font-lock-unset-defaults'.
 ;(defun font-lock-unset-menu ()
 ;  ;; Deactivate less/more fontification entries.
 ;  (setq font-lock-fontify-level nil))
@@ -1886,7 +1904,7 @@
 ;;; End of Menu support.
 
 ;;; Various regexp information shared by several modes.
-;;; Information specific to a single mode should go in its load library.
+; ;; Information specific to a single mode should go in its load library.
 
 ;; Font Lock support for C, C++, Objective-C and Java modes is now in
 ;; cc-fonts.el (and required by cc-mode.el).  However, the below function
@@ -2038,9 +2056,9 @@
       ;; ELisp and CLisp `&' keywords as types.
       '("\\&\\sw+\\>" . font-lock-type-face)
       ;;
-;;; This is too general -- rms.
-;;; A user complained that he has functions whose names start with `do'
-;;; and that they get the wrong color.
+;;;  This is too general -- rms.
+;;;  A user complained that he has functions whose names start with `do'
+;;;  and that they get the wrong color.
 ;;;      ;; CL `with-' and `do-' constructs
 ;;;      '("(\\(\\(do-\\|with-\\)\\(\\s_\\|\\w\\)*\\)" 1 font-lock-keyword-face)
       )))
--- a/lisp/generic-x.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/generic-x.el	Fri May 13 22:59:23 2005 +0000
@@ -116,11 +116,6 @@
   :group 'data
   :version "20.3")
 
-(defgroup generic-x-modes nil
-  "Individual modes in the collection of generic modes."
-  :group 'generic-x
-  :version "22.1")
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Default-Generic mode
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -158,7 +153,7 @@
   :type  '(choice (const :tag "Don't check file names" nil) regexp))
 
 ;; This generic mode is always defined
-(define-generic-mode default-generic-mode (list ?#) nil nil nil nil :group 'generic-x-modes)
+(define-generic-mode default-generic-mode (list ?#) nil nil nil nil)
 
 ;; A more general solution would allow us to enter generic-mode for
 ;; *any* comment character, but would require us to synthesize a new
@@ -308,8 +303,7 @@
 	    '((nil "^\\([-A-Za-z0-9_]+\\)" 1)
 	      ("*Directories*" "^\\s-*<Directory\\s-*\\([^>]+\\)>" 1)
 	      ("*Locations*"   "^\\s-*<Location\\s-*\\([^>]+\\)>" 1))))))
-  "Generic mode for Apache or HTTPD configuration files."
-  :group 'generic-x-modes))
+  "Generic mode for Apache or HTTPD configuration files."))
 
 (when (memq 'apache-log-generic-mode generic-extras-enable-list)
 
@@ -322,8 +316,7 @@
      (2 font-lock-variable-name-face)))
   '("access_log\\'")
   nil
-  "Mode for Apache log files"
-  :group 'generic-x-modes))
+  "Mode for Apache log files"))
 
 ;;; Samba
 (when (memq 'samba-generic-mode generic-extras-enable-list)
@@ -337,8 +330,7 @@
      (2 font-lock-type-face)))
   '("smb\\.conf\\'")
   '(generic-bracket-support)
-  "Generic mode for Samba configuration files."
-  :group 'generic-x-modes))
+  "Generic mode for Samba configuration files."))
 
 ;;; Fvwm
 ;; This is pretty basic. Also, modes for other window managers could
@@ -363,8 +355,7 @@
   nil
   '("\\.fvwmrc\\'" "\\.fvwm2rc\\'")
   nil
-  "Generic mode for FVWM configuration files."
-  :group 'generic-x-modes))
+  "Generic mode for FVWM configuration files."))
 
 ;;; X Resource
 ;; I'm pretty sure I've seen an actual mode to do this, but I don't
@@ -377,8 +368,7 @@
   '(("^\\([^:\n]+:\\)" 1 font-lock-variable-name-face))
   '("\\.Xdefaults\\'" "\\.Xresources\\'" "\\.Xenvironment\\'" "\\.ad\\'")
   nil
-  "Generic mode for X Resource configuration files."
-  :group 'generic-x-modes))
+  "Generic mode for X Resource configuration files."))
 
 ;;; Hosts
 (when (memq 'hosts-generic-mode generic-extras-enable-list)
@@ -389,8 +379,7 @@
   '(("\\([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+\\)" 1 font-lock-constant-face))
   '("[hH][oO][sS][tT][sS]\\'")
   nil
-  "Generic mode for HOSTS files."
-  :group 'generic-x-modes))
+  "Generic mode for HOSTS files."))
 
 ;;; Windows INF files
 (when (memq 'inf-generic-mode generic-extras-enable-list)
@@ -401,8 +390,7 @@
   '(("^\\(\\[.*\\]\\)" 1 font-lock-constant-face))
   '("\\.[iI][nN][fF]\\'")
   '(generic-bracket-support)
-  "Generic mode for MS-Windows INF files."
-  :group 'generic-x-modes))
+  "Generic mode for MS-Windows INF files."))
 
 ;;; Windows INI files
 ;; Should define escape character as well!
@@ -424,8 +412,7 @@
 	      ("*Variables*" "^\\s-*\\([^=]+\\)\\s-*=" 1))))))
   "Generic mode for MS-Windows INI files.
 You can use `ini-generic-mode-find-file-hook' to enter this mode
-automatically for INI files whose names do not end in \".ini\"."
-  :group 'generic-x-modes)
+automatically for INI files whose names do not end in \".ini\".")
 
 (defun ini-generic-mode-find-file-hook ()
   "Hook function to enter Ini-Generic mode automatically for INI files.
@@ -453,8 +440,7 @@
     (lambda ()
       (setq imenu-generic-expression
 	    '((nil "^\\s-*\\(.*\\)\\s-*=" 1))))))
-  "Generic mode for MS-Windows Registry files."
-  :group 'generic-x-modes))
+  "Generic mode for MS-Windows Registry files."))
 
 ;;; DOS/Windows BAT files
 (when (memq 'bat-generic-mode generic-extras-enable-list)
@@ -528,8 +514,7 @@
     "\\`[cC][oO][nN][fF][iI][gG]\\."
     "\\`[aA][uU][tT][oO][eE][xX][eE][cC]\\.")
   '(generic-bat-mode-setup-function)
-  "Generic mode for MS-Windows BAT files."
-  :group 'generic-x-modes)
+  "Generic mode for MS-Windows BAT files.")
 
 (defvar bat-generic-mode-syntax-table nil
   "Syntax table in use in `bat-generic-mode' buffers.")
@@ -608,8 +593,7 @@
     (lambda ()
       (setq imenu-generic-expression
 	    '((nil "\\s-/\\([^/]+\\)/[i, \t\n]" 1))))))
-  "Mode for Mailagent rules files."
-  :group 'generic-x-modes))
+  "Mode for Mailagent rules files."))
 
 ;; Solaris/Sys V prototype files
 (when (memq 'prototype-generic-mode generic-extras-enable-list)
@@ -632,8 +616,7 @@
      (2 font-lock-variable-name-face)))
   '("prototype\\'")
   nil
-  "Mode for Sys V prototype files."
-  :group 'generic-x-modes))
+  "Mode for Sys V prototype files."))
 
 ;; Solaris/Sys V pkginfo files
 (when (memq 'pkginfo-generic-mode generic-extras-enable-list)
@@ -646,8 +629,7 @@
      (2 font-lock-variable-name-face)))
   '("pkginfo\\'")
   nil
-  "Mode for Sys V pkginfo files."
-  :group 'generic-x-modes))
+  "Mode for Sys V pkginfo files."))
 
 ;; Javascript mode
 ;; Includes extra keywords from Armando Singer [asinger@MAIL.COLGATE.EDU]
@@ -726,8 +708,7 @@
       (setq imenu-generic-expression
 	    '((nil "^function\\s-+\\([A-Za-z0-9_]+\\)" 1)
 	      ("*Variables*" "^var\\s-+\\([A-Za-z0-9_]+\\)" 1))))))
-  "Mode for JavaScript files."
-  :group 'generic-x-modes))
+  "Mode for JavaScript files."))
 
 ;; VRML files
 (when (memq 'vrml-generic-mode generic-extras-enable-list)
@@ -780,8 +761,7 @@
 	      ("*Definitions*"
 	       "DEF\\s-+\\([-A-Za-z0-9_]+\\)\\s-+\\([A-Za-z0-9]+\\)\\s-*{"
 	       1))))))
-  "Generic Mode for VRML files."
-  :group 'generic-x-modes))
+  "Generic Mode for VRML files."))
 
 ;; Java Manifests
 (when (memq 'java-manifest-generic-mode generic-extras-enable-list)
@@ -802,8 +782,7 @@
      (2 font-lock-constant-face)))
   '("[mM][aA][nN][iI][fF][eE][sS][tT]\\.[mM][fF]\\'")
   nil
-  "Mode for Java Manifest files"
-  :group 'generic-x-modes))
+  "Mode for Java Manifest files"))
 
 ;; Java properties files
 (when (memq 'java-properties-generic-mode generic-extras-enable-list)
@@ -835,8 +814,7 @@
     (lambda ()
       (setq imenu-generic-expression
 	    '((nil "^\\([^#! \t\n\r=:]+\\)" 1))))))
-  "Mode for Java properties files."
-  :group 'generic-x-modes))
+  "Mode for Java properties files."))
 
 ;; C shell alias definitions
 (when (memq 'alias-generic-mode generic-extras-enable-list)
@@ -854,8 +832,7 @@
     (lambda ()
       (setq imenu-generic-expression
 	    '((nil "^\\(alias\\|unalias\\)\\s-+\\([-a-zA-Z0-9_]+\\)" 2))))))
-  "Mode for C Shell alias files."
-  :group 'generic-x-modes))
+  "Mode for C Shell alias files."))
 
 ;;; Windows RC files
 ;; Contributed by ACorreir@pervasive-sw.com (Alfred Correira)
@@ -947,8 +924,7 @@
        (2 font-lock-variable-name-face nil t))))
     '("\\.[rR][cC]\\'")
     nil
-    "Generic mode for MS-Windows Resource files."
-    :group 'generic-x-modes))
+    "Generic mode for MS-Windows Resource files."))
 
 ;; InstallShield RUL files
 ;; Contributed by  Alfred.Correira@Pervasive.Com
@@ -1568,8 +1544,7 @@
       font-lock-variable-name-face "[^_]" "[^_]"))) ; is this face the best choice?
   '("\\.[rR][uU][lL]\\'")
   '(generic-rul-mode-setup-function)
-  "Generic mode for InstallShield RUL files."
-  :group 'generic-x-modes)
+  "Generic mode for InstallShield RUL files.")
 
 (define-skeleton rul-if
   "Insert an if statement."
@@ -1619,8 +1594,7 @@
      (2 font-lock-variable-name-face)))
   '("\\.mailrc\\'")
   nil
-  "Mode for mailrc files."
-  :group 'generic-x-modes))
+  "Mode for mailrc files."))
 
 ;; Inetd.conf
 (when (memq 'inetd-conf-generic-mode generic-extras-enable-list)
@@ -1640,8 +1614,7 @@
    (function
     (lambda ()
       (setq imenu-generic-expression
-	    '((nil "^\\([-A-Za-z0-9_]+\\)" 1))))))
-  :group 'generic-x-modes))
+	    '((nil "^\\([-A-Za-z0-9_]+\\)" 1))))))))
 
 ;; Services
 (when (memq 'etc-services-generic-mode generic-extras-enable-list)
@@ -1659,8 +1632,7 @@
    (function
     (lambda ()
       (setq imenu-generic-expression
-	    '((nil "^\\([-A-Za-z0-9_]+\\)" 1))))))
-  :group 'generic-x-modes))
+	    '((nil "^\\([-A-Za-z0-9_]+\\)" 1))))))))
 
 ;; Password and Group files
 (when (memq 'etc-passwd-generic-mode generic-extras-enable-list)
@@ -1702,8 +1674,7 @@
    (function
     (lambda ()
       (setq imenu-generic-expression
-	    '((nil "^\\([-A-Za-z0-9_]+\\):" 1))))))
-  :group 'generic-x-modes))
+	    '((nil "^\\([-A-Za-z0-9_]+\\):" 1))))))))
 
 ;; Fstab
 (when (memq 'etc-fstab-generic-mode generic-extras-enable-list)
@@ -1753,8 +1724,7 @@
    (function
     (lambda ()
       (setq imenu-generic-expression
-	    '((nil "^\\([/-A-Za-z0-9_]+\\)\\s-+" 1))))))
-  :group 'generic-x-modes))
+	    '((nil "^\\([/-A-Za-z0-9_]+\\)\\s-+" 1))))))))
 
 ;; From Jacques Duthen <jacques.duthen@sncf.fr>
 (when (memq 'show-tabs-generic-mode generic-extras-enable-list)
@@ -1780,7 +1750,7 @@
     (((class color))                        (:background "red"))
     (t (:weight bold)))
   "Font Lock mode face used to highlight TABs."
-  :group 'generic-x-modes)
+  :group 'generic-x)
 
 (defface show-tabs-space-face
   '((((class grayscale) (background light)) (:background "DimGray"   :weight bold))
@@ -1789,7 +1759,7 @@
     (((class color))                        (:background "yellow"))
     (t (:weight bold)))
   "Font Lock mode face used to highlight spaces."
-  :group 'generic-x-modes)
+  :group 'generic-x)
 
 (define-generic-mode show-tabs-generic-mode
   nil ;; no comment char
@@ -1798,8 +1768,7 @@
   nil ;; no auto-mode-alist
   ;; '(show-tabs-generic-mode-hook-fun)
   nil
-  "Generic mode to show tabs and trailing spaces"
-  :group 'generic-x-modes))
+  "Generic mode to show tabs and trailing spaces"))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; DNS modes
@@ -1822,8 +1791,7 @@
   ;; List of additional automode-alist expressions
   '("/etc/named.boot\\'")
   ;; List of set up functions to call
-  nil
-  :group 'generic-x-modes))
+  nil))
 
 (when (memq 'named-database-generic-mode generic-extras-enable-list)
 
@@ -1838,8 +1806,7 @@
   ;; List of additional auto-mode-alist expressions
   nil
   ;; List of set up functions to call
-  nil
-  :group 'generic-x-modes)
+  nil)
 
 (defvar named-database-time-string "%Y%m%d%H"
   "Timestring for named serial numbers.")
@@ -1861,8 +1828,7 @@
   ;; List of additional auto-mode-alist expressions
   '("/etc/resolv[e]?.conf\\'")
   ;; List of set up functions to call
-  nil
-  :group 'generic-x-modes))
+  nil))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Modes for spice and common electrical engineering circuit netlist formats
@@ -1906,8 +1872,7 @@
    (function
     (lambda()
       (setq font-lock-defaults '(generic-font-lock-keywords nil t)))))
-  "Generic mode for SPICE circuit netlist files."
-  :group 'generic-x-modes))
+  "Generic mode for SPICE circuit netlist files."))
 
 (when (memq 'ibis-generic-mode generic-extras-enable-list)
 
@@ -1918,8 +1883,7 @@
     ("\\(\\(_\\|\\w\\)+\\)\\s-*=" 1 font-lock-variable-name-face))
   '("\\.[iI][bB][sS]\\'")
   '(generic-bracket-support)
-  "Generic mode for IBIS circuit netlist files."
-  :group 'generic-x-modes))
+  "Generic mode for IBIS circuit netlist files."))
 
 (when (memq 'astap-generic-mode generic-extras-enable-list)
 
@@ -1956,8 +1920,7 @@
    (function
     (lambda()
       (setq font-lock-defaults '(generic-font-lock-keywords nil t)))))
-  "Generic mode for ASTAP circuit netlist files."
-  :group 'generic-x-modes))
+  "Generic mode for ASTAP circuit netlist files."))
 
 (when (memq 'etc-modules-conf-generic-mode generic-extras-enable-list)
 
@@ -2001,8 +1964,7 @@
   ;; List of additional automode-alist expressions
   '("/etc/modules.conf" "/etc/conf.modules")
   ;; List of set up functions to call
-  nil
-  :group 'generic-x-modes))
+  nil))
 
 (provide 'generic-x)
 
--- a/lisp/international/ccl.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/ccl.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,9 @@
 ;;; ccl.el --- CCL (Code Conversion Language) compiler
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2001, 2002  Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1998, 1999, 2000
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: CCL, mule, multilingual, character set, coding-system
 
--- a/lisp/international/characters.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/characters.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,10 @@
 ;;; characters.el --- set syntax and category for multibyte characters
 
-;; Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2000, 2001, 2002, 2003, 2004
+;;   Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multibyte character, character set, syntax, category
 
--- a/lisp/international/code-pages.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/code-pages.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,9 @@
 ;;; code-pages.el --- coding systems for assorted codepages  -*-coding: utf-8;-*-
 
 ;; Copyright (C) 2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 2004, 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: Dave Love <fx@gnu.org>
 ;; Keywords: i18n
--- a/lisp/international/codepage.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/codepage.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,9 @@
 ;;; codepage.el --- MS-DOS/MS-Windows specific coding systems
 
-;; Copyright (C) 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1998, 1999, 2000, 2002  Free Software Foundation, Inc.
+;; Copyright (C) 2000
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: Eli Zaretskii
 ;; Maintainer: FSF
--- a/lisp/international/encoded-kb.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/encoded-kb.el	Fri May 13 22:59:23 2005 +0000
@@ -1,7 +1,9 @@
 ;;; encoded-kb.el --- handler to input multibyte characters encoded somehow
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997  Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2004, 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; This file is part of GNU Emacs.
 
--- a/lisp/international/fontset.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/fontset.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,9 @@
 ;;; fontset.el --- commands for handling fontset
 
-;; Copyright (C) 1995, 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001  Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, multilingual, fontset
 
--- a/lisp/international/isearch-x.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/isearch-x.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,9 @@
 ;;; isearch-x.el --- extended isearch handling commands
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2001, 2004  Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 2000
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, isearch
 
--- a/lisp/international/iso-ascii.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/iso-ascii.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; iso-ascii.el --- set up char tables for ISO 8859/1 on ASCII terminals
 
-;; Copyright (C) 1987, 1995 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 1995, 1998, 2003  Free Software Foundation, Inc.
 
 ;; Author: Howard Gayle
 ;; Maintainer: FSF
--- a/lisp/international/iso-cvt.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/iso-cvt.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,8 @@
 ;;; iso-cvt.el --- translate ISO 8859-1 from/to various encodings -*- coding: iso-latin-1 -*-
 ;; This file was formerly called gm-lingo.el.
 
-;; Copyright (C) 1993, 1994, 1995, 1996, 1998, 2000, 2003, 2004
-;;           Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2003, 2004
+;;   Free Software Foundation, Inc.
 
 ;; Author: Michael Gschwind <mike@vlsivie.tuwien.ac.at>
 ;; Keywords: tex, iso, latin, i18n
--- a/lisp/international/iso-transl.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/iso-transl.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,7 @@
 ;;; iso-transl.el --- keyboard input definitions for ISO 8859-1  -*- coding: iso-8859-1 -*-
 
-;; Copyright (C) 1987, 1993, 1994, 1995, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001
+;;   Free Software Foundation, Inc.
 
 ;; Author: Howard Gayle
 ;; Maintainer: FSF
--- a/lisp/international/ja-dic-cnv.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/ja-dic-cnv.el	Fri May 13 22:59:23 2005 +0000
@@ -1,7 +1,8 @@
 ;;; ja-dic-cnv.el --- convert a Japanese dictionary (SKK-JISYO.L) to Emacs Lisp
 
-;; Copyright (C) 1995, 2000 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1995, 2000
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, multilingual, Japanese
 
--- a/lisp/international/ja-dic-utl.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/ja-dic-utl.el	Fri May 13 22:59:23 2005 +0000
@@ -1,7 +1,8 @@
 ;;; ja-dic-utl.el --- utilities for handling Japanese dictionary (SKK-JISYO.L)
 
-;; Copyright (C) 1995, 2000 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1995, 2000
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, multilingual, Japanese
 
--- a/lisp/international/kinsoku.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/kinsoku.el	Fri May 13 22:59:23 2005 +0000
@@ -1,7 +1,9 @@
 ;;; kinsoku.el --- `Kinsoku' processing funcs -*- coding: iso-2022-7bit; -*-
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997, 2003  Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, kinsoku
 
--- a/lisp/international/kkc.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/kkc.el	Fri May 13 22:59:23 2005 +0000
@@ -1,7 +1,9 @@
 ;;; kkc.el --- Kana Kanji converter    -*- coding: iso-2022-7bit; -*-
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997, 1998  Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 2000, 2001, 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, multilingual, Japanese
 
--- a/lisp/international/latexenc.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/latexenc.el	Fri May 13 22:59:23 2005 +0000
@@ -120,24 +120,32 @@
       (save-excursion
         ;; try to find the coding system in this file
         (goto-char (point-min))
-        (if (or
-             (re-search-forward "^[^%\n]*\\\\inputencoding{\\(.*\\)}" nil t)
-             (re-search-forward "^[^%\n]*\\\\usepackage\\[\\(.*\\)\\]{inputenc}" nil t))
-            (let* ((match (match-string 1))
-                   (sym (intern match)))
-              (when (latexenc-inputenc-to-coding-system match)
-                (setq sym (latexenc-inputenc-to-coding-system match))
-                (when (coding-system-p sym)
-		  sym
-                  (if (and (require 'code-pages nil t) (coding-system-p sym))
-                      sym
-                    'undecided))))
+	(if (catch 'cs
+	      (let ((case-fold-search nil))
+		(while (search-forward "inputenc" nil t)
+		  (goto-char (match-beginning 0))
+		  (beginning-of-line)
+		  (if (or (looking-at "[^%\n]*\\\\usepackage\\[\\([^]]*\\)\\]{\\([^}]*,\\)?inputenc\\(,[^}]*\\)?}")
+			  (looking-at "[^%\n]*\\\\inputencoding{\\([^}]*\\)}"))
+		      (throw 'cs t)
+		    (goto-char (match-end 0))))))
+	    (let* ((match (match-string 1))
+		   (sym (intern match)))
+	      (when (latexenc-inputenc-to-coding-system match)
+		(setq sym (latexenc-inputenc-to-coding-system match)))
+	      (when (coding-system-p sym)
+		sym
+		(if (and (require 'code-pages nil t) (coding-system-p sym))
+		    sym
+		  'undecided)))
           ;; else try to find it in the master/main file
           (let (latexenc-main-file)
             ;; is there a TeX-master or tex-main-file in the local variable section
             (unless latexenc-dont-use-TeX-master-flag
               (goto-char (point-max))
-              (when (re-search-backward "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" nil t)
+	      (search-backward "\n\^L" (max (- (point-max) 3000) (point-min)) 'move)
+	      (search-forward "Local Variables:" nil t)
+              (when (re-search-forward "^%+ *\\(TeX-master\\|tex-main-file\\): *\"\\(.+\\)\"" nil t)
                 (let ((file (concat (file-name-directory (nth 1 arg-list)) (match-string 2))))
                   (if (file-exists-p file)
                       (setq latexenc-main-file file)
--- a/lisp/international/latin1-disp.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/latin1-disp.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; latin1-disp.el --- display tables for other ISO 8859 on Latin-1 terminals -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 2000, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2003  Free Software Foundation, Inc.
 
 ;; Author: Dave Love <fx@gnu.org>
 ;; Keywords: i18n
--- a/lisp/international/mule-cmds.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/mule-cmds.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,10 @@
 ;;; mule-cmds.el --- commands for mulitilingual environment -*-coding: iso-2022-7bit -*-
 
-;; Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005  Free Software Foundation, Inc.
-;; Copyright (C) 1995, 2003 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;;   Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, multilingual
 
--- a/lisp/international/mule-conf.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/mule-conf.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,10 @@
 ;;; mule-conf.el --- configure multilingual environment -*- no-byte-compile: t -*-
 
-;; Copyright (C) 1997 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2005  Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2005
+;;   Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, multilingual, character set, coding system
 
--- a/lisp/international/mule-diag.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/mule-diag.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,10 @@
 ;;; mule-diag.el --- show diagnosis of multilingual environment (Mule)
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003
+;;   Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1999, 2000, 2001, 2002, 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: multilingual, charset, coding system, fontset, diagnosis, i18n
 
--- a/lisp/international/mule-util.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/mule-util.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,10 @@
 ;;; mule-util.el --- utility functions for mulitilingual environment (mule)
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2000, 2002, 2004  Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2000, 2001, 2002, 2003, 2004
+;;   Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 1999, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, multilingual
 
--- a/lisp/international/mule.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/mule.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,10 @@
 ;;; mule.el --- basic commands for mulitilingual environment
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;;   Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: mule, multilingual, character set, coding system
 
--- a/lisp/international/ogonek.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/ogonek.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; ogonek.el --- change the encoding of Polish diacritics
 
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2001  Free Software Foundation, Inc.
 
 ;; Author: W{\l}odek Bzyl, Ryszard Kubiak
 ;; Maintainer: rysiek@ipipan.gda.pl (Ryszard Kubiak)
--- a/lisp/international/quail.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/quail.el	Fri May 13 22:59:23 2005 +0000
@@ -1,9 +1,7 @@
 ;;; quail.el --- provides simple input method for multilingual text
 
-;; Copyright (C) 1995, 2000 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
-;; Copyright (C) 2005
+;; Copyright (C) 1997, 1998, 2000, 2001, 2002  Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2003, 2004
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 
--- a/lisp/international/subst-jis.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/subst-jis.el	Fri May 13 22:59:23 2005 +0000
@@ -1,5 +1,8 @@
 ;;; subst-jis.el --- Unicode/JISX translation    -*-coding: euc-jp;-*-
 ;; Copyright (C) 2002, 2004  Free Software Foundation, Inc.
+;; Copyright (C) 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: Dave Love <fx@gnu.org>
 ;; Keywords: i18n
--- a/lisp/international/swedish.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/swedish.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; swedish.el --- miscellaneous functions for dealing with Swedish
 
-;; Copyright (C) 1988 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 2001  Free Software Foundation, Inc.
 
 ;; Author: Howard Gayle
 ;; Maintainer: FSF
--- a/lisp/international/titdic-cnv.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/titdic-cnv.el	Fri May 13 22:59:23 2005 +0000
@@ -1,7 +1,9 @@
 ;;; titdic-cnv.el --- convert cxterm dictionary (TIT format) to Quail package -*- coding:iso-2022-7bit; -*-
 
-;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
+;; Copyright (C) 1997, 1998, 2000, 2001  Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Keywords: Quail, TIT, cxterm
 
--- a/lisp/international/ucs-tables.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/ucs-tables.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,9 @@
 ;;; ucs-tables.el --- translation to, from and via Unicode  -*- coding: iso-2022-7bit -*-
 
-;; Copyright (C) 2001, 2002, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: Dave Love <fx@gnu.org>
 ;; Keywords: i18n
--- a/lisp/international/utf-16.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/utf-16.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,9 @@
 ;;; utf-16.el --- UTF-16 encoding/decoding
 
-;; Copyright (C) 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004  Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: Dave Love <fx@gnu.org>
 ;; Keywords: Unicode, UTF-16, i18n
--- a/lisp/international/utf-8.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/international/utf-8.el	Fri May 13 22:59:23 2005 +0000
@@ -1,8 +1,9 @@
 ;;; utf-8.el --- UTF-8 decoding/encoding support -*- coding: iso-2022-7bit -*-
 
-;; Copyright (C) 2001, 2004 Electrotechnical Laboratory, JAPAN.
-;; Licensed to the Free Software Foundation.
-;; Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004  Free Software Foundation, Inc.
+;; Copyright (C) 2001, 2002, 2003, 2004
+;;   National Institute of Advanced Industrial Science and Technology (AIST)
+;;   Registration Number H14PRO021
 
 ;; Author: TAKAHASHI Naoto  <ntakahas@m17n.org>
 ;; Maintainer: FSF
--- a/lisp/mouse-sel.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/mouse-sel.el	Fri May 13 22:59:23 2005 +0000
@@ -465,10 +465,12 @@
 
 This should be bound to a down-mouse event."
   (interactive "@e")
-  (let (direction)
+  (let (select)
     (unwind-protect
-	(setq direction (mouse-select-internal 'PRIMARY event))
-      (mouse-sel-primary-to-region direction))))
+    	(setq select (mouse-select-internal 'PRIMARY event))
+      (if (and select (listp select))
+	  (push (cons 'mouse-2 (cdr event)) unread-command-events)
+	(mouse-sel-primary-to-region select)))))
 
 (defun mouse-select-secondary (event)
   "Set secondary selection using the mouse.
@@ -487,7 +489,14 @@
   (mouse-select-internal 'SECONDARY event))
 
 (defun mouse-select-internal (selection event)
-  "Set SELECTION using the mouse."
+  "Set SELECTION using the mouse, with EVENT as the initial down-event.
+Normally, this returns the direction in which the selection was
+made: a value of 1 indicates that the mouse was dragged
+left-to-right, otherwise it was dragged right-to-left.
+
+However, if `mouse-1-click-follows-link' is non-nil and the
+subsequent mouse events specify following a link, this returns
+the final mouse-event.  In that case, the selection is not set."
   (mouse-sel-eval-at-event-end event
     (let ((thing-symbol (mouse-sel-selection-thing selection))
 	  (overlay (mouse-sel-selection-overlay selection)))
@@ -501,7 +510,8 @@
 			    (car object-bounds) (cdr object-bounds)
 			    (current-buffer)))
 	  (move-overlay overlay (point) (point) (current-buffer)))))
-    (mouse-extend-internal selection)))
+    (catch 'follow-link
+      (mouse-extend-internal selection event t))))
 
 ;;=== Extend ==============================================================
 
@@ -523,11 +533,12 @@
   (save-window-excursion
     (mouse-extend-internal 'SECONDARY event)))
 
-(defun mouse-extend-internal (selection &optional initial-event)
+(defun mouse-extend-internal (selection &optional initial-event no-process)
   "Extend specified SELECTION using the mouse.
 Track mouse-motion events, adjusting the SELECTION appropriately.
-Optional argument INITIAL-EVENT specifies an initial down-mouse event to
-process.
+Optional argument INITIAL-EVENT specifies an initial down-mouse event.
+Optional argument NO-PROCESS means not to process the initial
+event.
 
 See documentation for mouse-select-internal for more details."
   (mouse-sel-eval-at-event-end initial-event
@@ -564,7 +575,8 @@
 	    ;; Handle dragging
 	    (track-mouse
 
-	      (while (if initial-event	; Use initial event
+	      (while (if (and initial-event (not no-process))
+			 ;; Use initial event
 			 (prog1
 			     (setq event initial-event)
 			   (setq initial-event nil))
@@ -643,6 +655,10 @@
 
 		  )))			; end track-mouse
 
+	    ;; Detect follow-link events
+	    (when (mouse-sel-follow-link-p initial-event event)
+	      (throw 'follow-link event))
+
 	    ;; Finish up after dragging
 	    (let ((overlay-start (overlay-start overlay))
 		  (overlay-end (overlay-end overlay)))
@@ -679,6 +695,25 @@
 
 	))))
 
+(defun mouse-sel-follow-link-p (initial final)
+  "Return t if we should follow a link, given INITIAL and FINAL mouse events.
+See `mouse-1-click-follows-link' for details.  Currently, Mouse
+Sel mode does not support using a `double' value to follow links
+using double-clicks."
+  (and initial final mouse-1-click-follows-link
+       (eq (car initial) 'down-mouse-1)
+       (mouse-on-link-p	(posn-point (event-start initial)))
+       (= (posn-point (event-start initial))
+	  (posn-point (event-end final)))
+       (= (event-click-count initial) 1)
+       (or (not (integerp mouse-1-click-follows-link))
+	   (let ((t0 (posn-timestamp (event-start initial)))
+		 (t1 (posn-timestamp (event-end final))))
+	     (and (integerp t0) (integerp t1)
+		  (if (> mouse-1-click-follows-link 0)
+		      (<= (- t1 t0) mouse-1-click-follows-link)
+		    (< (- t0 t1) mouse-1-click-follows-link)))))))
+
 ;;=== Paste ===============================================================
 
 (defun mouse-insert-selection (event arg)
--- a/lisp/obsolete/float.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/obsolete/float.el	Fri May 13 22:59:23 2005 +0000
@@ -423,7 +423,7 @@
 	     (setq power (+ power (- decimal-digits (length digit-string)))))
 
 	   ; round up and add minus sign, if necessary
-	   (f (* (+ (string-to-int digit-string)
+	   (f (* (+ (string-to-number digit-string)
 		    (if round-up 1 0))
 		 (if mant-sign -1 1))))
 
@@ -433,7 +433,7 @@
 		(expt 0) (chunks 0) (tens 0) (exponent _f1)
 		(func 'f*))
 
-	   (setq expt (+ (* (string-to-int
+	   (setq expt (+ (* (string-to-number
 			     (substring expt-subst 0
 					(min expt-digits (length expt-subst))))
 			    (if expt-sign -1 1))
--- a/lisp/obsolete/hilit19.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/obsolete/hilit19.el	Fri May 13 22:59:23 2005 +0000
@@ -1050,7 +1050,7 @@
 
   (and (equal pstart "") (error "Must specify starting regex"))
   (cond ((equal pend "") (setq pend 0))
-	((string-match "^[0-9]+$" pend) (setq pend (string-to-int pend))))
+	((string-match "^[0-9]+$" pend) (setq pend (string-to-number pend))))
   (or mode (setq mode major-mode))
   (let ((old-patterns (cdr (assq mode hilit-patterns-alist)))
 	(new-pat (list pstart pend face)))
--- a/lisp/obsolete/rnews.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/obsolete/rnews.el	Fri May 13 22:59:23 2005 +0000
@@ -397,9 +397,9 @@
 to a list (a . b)"
   (let ((n (string-match "-" number-string)))
     (if n
-	(cons (string-to-int (substring number-string 0 n))
-	      (string-to-int (substring number-string (1+ n))))
-      (setq n (string-to-int number-string))
+	(cons (string-to-number (substring number-string 0 n))
+	      (string-to-number (substring number-string (1+ n))))
+      (setq n (string-to-number number-string))
       (cons n n))))
 
 ;(defun is-in (elt lis)
@@ -524,7 +524,7 @@
   (news-select-message arg))
 
 (defun news-select-message (arg)
-  (if (stringp arg) (setq arg (string-to-int arg)))
+  (if (stringp arg) (setq arg (string-to-number arg)))
   (let ((file (concat news-path
 		      (string-subst-char ?/ ?. news-current-news-group)
 		      "/" arg)))
@@ -803,7 +803,7 @@
 			 ;; don't get confused by directories that look like numbers
 			 (file-directory-p
 			  (concat file-directory "/" (car tem)))
-			 (<= (string-to-int (car tem)) end-file-no))
+			 (<= (string-to-number (car tem)) end-file-no))
 		     (setq news-list-of-files
 			   (delq (car tem) news-list-of-files)))
 		 (setq tem (cdr tem)))
@@ -811,7 +811,7 @@
 		   (progn (setq news-current-group-end 0)
 			  nil)
 		 (setq news-list-of-files
-		       (mapcar 'string-to-int news-list-of-files))
+		       (mapcar 'string-to-number news-list-of-files))
 		 (setq news-list-of-files (sort news-list-of-files '<))
 		 (setq news-current-group-end
 		       (elt news-list-of-files
--- a/lisp/play/5x5.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/5x5.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; 5x5.el --- simple little puzzle game
 
-;; Copyright (C) 1999,2000 Free Software Foundation, Inc.
+;; Copyright (C) 1999,2000,2005 Free Software Foundation, Inc.
 
 ;; Author: Dave Pearson <davep@davep.org>
 ;; Maintainer: Dave Pearson <davep@davep.org>
--- a/lisp/play/animate.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/animate.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; animate.el --- make text dance
 
-;; Copyright (C) 2001 Free Software Foundation, Inc.
+;; Copyright (C) 2001,2005 Free Software Foundation, Inc.
 
 ;; Maintainer: Richard Stallman <rms@gnu.org>
 ;; Keywords: games
--- a/lisp/play/blackbox.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/blackbox.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; blackbox.el --- blackbox game in Emacs Lisp
 
-;; Copyright (C) 1985, 1986, 1987, 1992, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1986, 1987, 1992, 2001, 2005 Free Software Foundation, Inc.
 
 ;; Author: F. Thomas May <uw-nsr!uw-warp!tom@beaver.cs.washington.edu>
 ;; Adapted-By: ESR
--- a/lisp/play/decipher.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/decipher.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; decipher.el --- cryptanalyze monoalphabetic substitution ciphers
 ;;
-;; Copyright (C) 1995, 1996, 2003 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 1996, 2003, 2005 Free Software Foundation, Inc.
 ;;
 ;; Author: Christopher J. Madsen <chris_madsen@geocities.com>
 ;; Keywords: games
--- a/lisp/play/doctor.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/doctor.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; doctor.el --- psychological help for frustrated users
 
-;; Copyright (C) 1985, 1987, 1994, 1996, 2000 Free Software Foundation, Inc.
+;; Copyright (C) 1985, 1987, 1994, 1996, 2000, 2005 Free Software Foundation, Inc.
 
 ;; Maintainer: FSF
 ;; Keywords: games
--- a/lisp/play/fortune.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/fortune.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; fortune.el --- use fortune to create signatures
 
-;; Copyright (C) 1999, 2001 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2001, 2005 Free Software Foundation, Inc.
 
 ;; Author: Holger Schauer <Holger.Schauer@gmx.de>
 ;; Keywords: games utils mail
--- a/lisp/play/gamegrid.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/gamegrid.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; gamegrid.el --- library for implementing grid-based games on Emacs
 
-;; Copyright (C) 1997, 1998 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 2005 Free Software Foundation, Inc.
 
 ;; Author: Glynn Clements <glynn@sensei.co.uk>
 ;; Version: 1.02
--- a/lisp/play/gametree.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/gametree.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; gametree.el --- manage game analysis trees in Emacs
 
-;;  Copyright (C) 1997 Free Software Foundation, Inc
+;;  Copyright (C) 1997, 1999 Free Software Foundation, Inc
 
 ;; Author: Ian T Zimmerman <itz@rahul.net>
 ;; Created: Wed Dec 10 07:41:46 PST 1997
--- a/lisp/play/handwrite.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/handwrite.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; handwrite.el --- turns your emacs buffer into a handwritten document -*- coding: iso-latin-1; -*-
 
-;; (C) Copyright 1996 Free Software Foundation, Inc.
+;; (C) Copyright 1996, 2005 Free Software Foundation, Inc.
 
 ;; Author: Danny Roozendaal (was: <danny@tvs.kun.nl>)
 ;; Created: October 21 1996
--- a/lisp/play/landmark.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/landmark.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; landmark.el --- neural-network robot that learns landmarks
 
-;; Copyright (c) 1996, 1997, 2000, 2003 Free Software Foundation, Inc.
+;; Copyright (c) 1996, 1997, 2000, 2003, 2005 Free Software Foundation, Inc.
 
 ;; Author: Terrence Brannon (was: <brannon@rana.usc.edu>)
 ;; Created: December 16, 1996 - first release to usenet
--- a/lisp/play/life.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/life.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; life.el --- John Horton Conway's `Life' game for GNU Emacs
 
-;; Copyright (C) 1988, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1988, 2001, 2005 Free Software Foundation, Inc.
 
 ;; Author: Kyle Jones <kyleuunet.uu.net>
 ;; Maintainer: FSF
--- a/lisp/play/morse.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/morse.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; morse.el --- convert text to morse code and back             -*- coding: utf-8 -*-
 
-;; Copyright (C) 1995, 2002, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2002, 2005 Free Software Foundation, Inc.
 
 ;; Author: Rick Farnbach <rick_farnbach@MENTORG.COM>
 ;; Keywords: games
--- a/lisp/play/mpuz.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/mpuz.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; mpuz.el --- multiplication puzzle for GNU Emacs
 
-;; Copyright (C) 1990, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 2002, 2005 Free Software Foundation, Inc.
 
 ;; Author: Philippe Schnoebelen <phs@lsv.ens-cachan.fr>
 ;; Overhauled: Daniel Pfeiffer <occitan@esperanto.org>
--- a/lisp/play/pong.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/pong.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; pong.el --- classical implementation of pong
 
-;; Copyright 1999, 2000, 2001 by Free Software Foundation, Inc.
+;; Copyright 1999, 2000, 2001, 2005 by Free Software Foundation, Inc.
 
 ;; Author: Benjamin Drieu <bdrieu@april.org>
 ;; Keywords: games
--- a/lisp/play/snake.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/snake.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; snake.el --- implementation of Snake for Emacs
 
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002 Free Software Foundation, Inc.
 
 ;; Author: Glynn Clements <glynn@sensei.co.uk>
 ;; Created: 1997-09-10
--- a/lisp/play/tetris.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/tetris.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; tetris.el --- implementation of Tetris for Emacs
 
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997, 2002 Free Software Foundation, Inc.
 
 ;; Author: Glynn Clements <glynn@sensei.co.uk>
 ;; Version: 2.01
--- a/lisp/play/zone.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/play/zone.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; zone.el --- idle display hacks
 
-;; Copyright (C) 2000, 2001, 2004 Free Software Foundation, Inc.
+;; Copyright (C) 2000, 2001, 2005 Free Software Foundation, Inc.
 
 ;; Author: Victor Zandy <zandy@cs.wisc.edu>
 ;; Maintainer: Thien-Thi Nguyen <ttn@gnu.org>
--- a/lisp/progmodes/ada-mode.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/progmodes/ada-mode.el	Fri May 13 22:59:23 2005 +0000
@@ -1364,6 +1364,11 @@
         (add-hook 'local-write-file-hooks
                   (lambda () (untabify (point-min) (point-max))))))
 
+  (set (make-local-variable 'skeleton-further-elements)
+       '((< '(backward-delete-char-untabify
+	      (min ada-indent (current-column))))))
+  (add-hook 'skeleton-end-hook  'ada-adjust-case-skeleton nil t)
+
   (run-hooks 'ada-mode-hook)
 
   ;;  To be run after the hook, in case the user modified
@@ -1393,6 +1398,13 @@
   (if ada-auto-case
       (ada-activate-keys-for-case)))
 
+(defun ada-adjust-case-skeleton ()
+  "Adjust the case of the text inserted by a skeleton."
+  (save-excursion
+    (let ((aa-end (point)))
+      (ada-adjust-case-region
+       (progn (goto-char (symbol-value 'beg)) (forward-word -1) (point))
+       (goto-char aa-end)))))
 
 ;;  transient-mark-mode and mark-active are not defined in XEmacs
 (defun ada-region-selected ()
--- a/lisp/progmodes/ada-stmt.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/progmodes/ada-stmt.el	Fri May 13 22:59:23 2005 +0000
@@ -466,22 +466,6 @@
   > "terminate;")
 
 
-(defun ada-adjust-case-skeleton ()
-  "Adjust the case of the text inserted by a skeleton."
-  (save-excursion
-    (let ((aa-end (point)))
-      (ada-adjust-case-region
-       (progn (goto-char (symbol-value 'beg)) (forward-word -1) (point))
-       (goto-char aa-end)))))
-
-(defun ada-stmt-mode-hook ()
-  (set (make-local-variable 'skeleton-further-elements)
-       '((< '(backward-delete-char-untabify
-	      (min ada-indent (current-column))))))
-  (add-hook 'skeleton-end-hook  'ada-adjust-case-skeleton nil t))
-
-(add-hook 'ada-mode-hook 'ada-stmt-mode-hook)
-
 (provide 'ada-stmt)
 
 ;;; arch-tag: 94f51555-cc0e-44e5-8865-8788aae8ecd3
--- a/lisp/progmodes/cc-fonts.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/progmodes/cc-fonts.el	Fri May 13 22:59:23 2005 +0000
@@ -673,7 +673,7 @@
 		      (c-font-lock-objc-iip-decl)))
 		  nil))))))
 
-      ("!" . font-lock-negation-char-face)
+      ("\\(!\\)[^=]" 1 font-lock-negation-char-face)
       ))
 
 (defun c-font-lock-complex-decl-prepare (limit)
--- a/lisp/progmodes/executable.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/progmodes/executable.el	Fri May 13 22:59:23 2005 +0000
@@ -161,30 +161,6 @@
         (if (search-forward file nil t)
             t))))
 
-;;;###autoload
-(defun executable-find (command)
-  "Search for COMMAND in `exec-path' and return the absolute file name.
-Return nil if COMMAND is not found anywhere in `exec-path'."
-  (let ((list exec-path)
-	file)
-    (while list
-      (setq list
-	    (if (and (setq file (expand-file-name command (car list)))
-		     (let ((suffixes exec-suffixes)
-			   candidate)
-		       (while suffixes
-			 (setq candidate (concat file (car suffixes)))
-			 (if (and (file-executable-p candidate)
-				  (not (file-directory-p candidate)))
-			     (setq suffixes nil)
-			   (setq suffixes (cdr suffixes))
-			   (setq candidate nil)))
-		       (setq file candidate)))
-		nil
-	      (setq file nil)
-	      (cdr list))))
-    file))
-
 (defun executable-chmod ()
   "This gets called after saving a file to assure that it be executable.
 You can set the absolute or relative mode in variable `executable-chmod' for
@@ -301,5 +277,5 @@
 
 (provide 'executable)
 
-;;; arch-tag: 58458d1c-d9db-45ec-942b-8bbb1d5e319d
+;; arch-tag: 58458d1c-d9db-45ec-942b-8bbb1d5e319d
 ;;; executable.el ends here
--- a/lisp/progmodes/gdb-ui.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/progmodes/gdb-ui.el	Fri May 13 22:59:23 2005 +0000
@@ -84,6 +84,8 @@
 (defvar gdb-find-file-unhook nil)
 (defvar gdb-active-process nil "GUD tooltips display variable values when t, \
 and #define directives otherwise.")
+(defvar gdb-macro-info nil
+  "Non-nil if GDB knows that the inferior includes preprocessor macro info.")
 
 (defvar gdb-buffer-type nil
   "One of the symbols bound in `gdb-buffer-rules'.")
@@ -242,6 +244,18 @@
        (substring string 0 (- (length string) 1))))
    gud-tooltip-echo-area))
 
+;; If expr is a macro for a function don't print because of possible dangerous
+;; side-effects. Also printing a function within a tooltip generates an
+;; unexpected starting annotation (phase error).
+(defun gdb-tooltip-print-1 (expr)
+  (with-current-buffer (gdb-get-buffer 'gdb-partial-output-buffer)
+    (goto-char (point-min))
+    (if (search-forward "expands to: " nil t)
+	(unless (looking-at "\\S+.*(.*).*")
+	  (gdb-enqueue-input
+	   (list  (concat gdb-server-prefix "print " expr "\n")
+		  'gdb-tooltip-print))))))
+
 (defun gdb-set-gud-minor-mode (buffer)
   "Set gud-minor-mode from find-file if appropriate."
   (goto-char (point-min))
@@ -336,6 +350,7 @@
   (setq gdb-flush-pending-output nil)
   (setq gdb-location-alist nil)
   (setq gdb-find-file-unhook nil)
+  (setq gdb-macro-info nil)
   ;;
   (setq gdb-buffer-type 'gdba)
   ;;
@@ -1293,27 +1308,27 @@
 			   help-echo "mouse-2, RET: visit breakpoint"))
 			(unless (file-exists-p file)
 			   (setq file (cdr (assoc bptno gdb-location-alist))))
-			(unless (string-equal file "File not found")
-			  (if file
-			      (with-current-buffer (find-file-noselect file)
-				(set (make-local-variable 'gud-minor-mode)
-				     'gdba)
-				(set (make-local-variable 'tool-bar-map)
-				     gud-tool-bar-map)
-				;; only want one breakpoint icon at each
-				;; location
-				(save-excursion
-				  (goto-line (string-to-number line))
-				  (gdb-put-breakpoint-icon (eq flag ?y) bptno)))
-			    (gdb-enqueue-input
-			     (list
-			      (concat "list "
-				      (match-string-no-properties 1) ":1\n")
-				   'ignore))
-			    (gdb-enqueue-input
-			     (list "info source\n"
-				   `(lambda () (gdb-get-location
-						,bptno ,line ,flag)))))))))))
+			(if (and file
+				 (not (string-equal file "File not found")))
+			    (with-current-buffer (find-file-noselect file)
+			      (set (make-local-variable 'gud-minor-mode)
+				   'gdba)
+			      (set (make-local-variable 'tool-bar-map)
+				   gud-tool-bar-map)
+			      ;; only want one breakpoint icon at each
+			      ;; location
+			      (save-excursion
+				(goto-line (string-to-number line))
+				(gdb-put-breakpoint-icon (eq flag ?y) bptno)))
+			  (gdb-enqueue-input
+			   (list
+			    (concat "list "
+				    (match-string-no-properties 1) ":1\n")
+			    'ignore))
+			  (gdb-enqueue-input
+			   (list "info source\n"
+				 `(lambda () (gdb-get-location
+					      ,bptno ,line ,flag))))))))))
 	  (end-of-line)))))
   (if (gdb-get-buffer 'gdb-assembler-buffer) (gdb-assembler-custom)))
 
@@ -2221,6 +2236,9 @@
   (if (and (search-forward "Located in " nil t)
 	   (looking-at "\\S-*"))
       (setq gdb-main-file (match-string 0)))
+  (goto-char (point-min))
+  (if (search-forward "Includes preprocessor macro info." nil t)
+      (setq gdb-macro-info t))
  (if gdb-many-windows
       (gdb-setup-windows)
    (gdb-get-create-buffer 'gdb-breakpoints-buffer)
@@ -2234,12 +2252,14 @@
   (goto-char (point-min))
   (catch 'file-not-found
     (if (search-forward "Located in " nil t)
-	(if (looking-at "\\S-*")
-	    (push (cons bptno (match-string 0)) gdb-location-alist))
+	(when (looking-at "\\S-*")
+	  (delete (cons bptno "File not found") gdb-location-alist)
+	  (push (cons bptno (match-string 0)) gdb-location-alist))
       (gdb-resync)
-      (push (cons bptno "File not found") gdb-location-alist)
-      (message-box "Cannot find source file for breakpoint location.\n\
-Add directory to search path for source files using the GDB command, dir.")
+      (unless (assoc bptno gdb-location-alist)
+	(push (cons bptno "File not found") gdb-location-alist)
+	(message-box "Cannot find source file for breakpoint location.\n\
+Add directory to search path for source files using the GDB command, dir."))
       (throw 'file-not-found nil))
     (with-current-buffer
 	(find-file-noselect (match-string 0))
--- a/lisp/progmodes/gud.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/progmodes/gud.el	Fri May 13 22:59:23 2005 +0000
@@ -3207,6 +3207,7 @@
   "Toggle the display of GUD tooltips."
   :global t
   :group 'gud
+  (require 'tooltip)
   (if gud-tooltip-mode
       (progn
 	(add-hook 'change-major-mode-hook 'gud-tooltip-change-major-mode)
@@ -3253,7 +3254,7 @@
     (setq expr (concat "*" expr)))
   (case gud-minor-mode
     ((gdb gdba) (concat "server print " expr))
-    (dbx (concat "print " expr))
+    ((dbx gdbmi) (concat "print " expr))
     (xdb (concat "p " expr))
     (sdb (concat expr "/"))
     (perldb expr)))
@@ -3293,9 +3294,14 @@
 		      expr))))
 	    (let ((cmd (gud-tooltip-print-command expr)))
 	      (unless (null cmd) ; CMD can be nil if unknown debugger
-		(if (eq gud-minor-mode 'gdba)
-		    (gdb-enqueue-input
-		     (list  (concat cmd "\n") 'gdb-tooltip-print))
+		(if (memq gud-minor-mode '(gdba gdbmi))
+		      (if gdb-macro-info
+			  (gdb-enqueue-input
+			   (list (concat
+				  gdb-server-prefix "macro expand " expr "\n")
+				 `(lambda () (gdb-tooltip-print-1 ,expr))))
+			(gdb-enqueue-input
+			 (list  (concat cmd "\n") 'gdb-tooltip-print)))
 		  (setq gud-tooltip-original-filter (process-filter process))
 		  (set-process-filter process 'gud-tooltip-process-output)
 		  (gud-basic-call cmd))
--- a/lisp/progmodes/inf-lisp.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/progmodes/inf-lisp.el	Fri May 13 22:59:23 2005 +0000
@@ -214,10 +214,8 @@
 buffer with \\[set-variable].")
 
 ;;;###autoload
-(defcustom inferior-lisp-mode-hook '()
-  "*Hook for customising Inferior Lisp mode."
-  :type 'hook
-  :group 'inferior-lisp)
+(defvar inferior-lisp-mode-hook '()
+  "*Hook for customising Inferior Lisp mode.")
 
 (put 'inferior-lisp-mode 'mode-class 'special)
 
@@ -590,10 +588,8 @@
 
 ;;; Do the user's customisation...
 ;;;===============================
-(defcustom inferior-lisp-load-hook nil
-  "This hook is run when the library `inf-lisp' is loaded."
-  :type 'hook
-  :group 'inferior-lisp)
+(defvar inferior-lisp-load-hook nil
+  "This hook is run when the library `inf-lisp' is loaded.")
 
 (run-hooks 'inferior-lisp-load-hook)
 
--- a/lisp/progmodes/make-mode.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/progmodes/make-mode.el	Fri May 13 22:59:23 2005 +0000
@@ -100,12 +100,35 @@
   :prefix "makefile-")
 
 (defface makefile-space-face
-   '((((class color)) (:background  "hotpink"))
-     (t (:reverse-video t)))
+  '((((class color)) (:background  "hotpink"))
+    (t (:reverse-video t)))
   "Face to use for highlighting leading spaces in Font-Lock mode."
   :group 'faces
   :group 'makefile)
 
+(defface makefile-targets-face
+  ;; This needs to go along both with foreground and background colors (i.e. shell)
+  '((t (:underline t)))
+  "Face to use for additionally highlighting rule targets in Font-Lock mode."
+  :group 'faces
+  :group 'makefile)
+
+(defface makefile-shell-face
+  '((((class color) (background light)) (:background  "seashell1"))
+    (((class color) (background dark)) (:background  "seashell4"))
+    (t (:reverse-video t)))
+  "Face to use for additionally highlighting Shell commands in Font-Lock mode."
+  :group 'faces
+  :group 'makefile)
+
+(defface makefile-makepp-perl-face
+  '((((class color) (background light)) (:background  "LightBlue1")) ; Camel Book
+    (((class color) (background dark)) (:background  "DarkBlue"))
+    (t (:reverse-video t)))
+  "Face to use for additionally highlighting Perl code in Font-Lock mode."
+  :group 'faces
+  :group 'makefile)
+
 (defcustom makefile-browser-buffer-name "*Macros and Targets*"
   "*Name of the macro- and target browser buffer."
   :type 'string
@@ -235,16 +258,27 @@
 ;; that if you change this regexp you might have to fix the imenu
 ;; index in makefile-imenu-generic-expression.
 (defconst makefile-dependency-regex
-  "^ *\\([^ \n\t#:=]+\\([ \t]+\\([^ \t\n#:=]+\\|\\$[({][^ \t\n#})]+[})]\\)\\)*\\)[ \t]*:\\([ \t]*$\\|\\([^=\n].*$\\)\\)"
+  ;; Allow for one nested level $($(var:a=b):c=d)
+  ;; Scan non-$ constructs char by char, so we don't miss a $ while allowing $$.
+  ;; Since we must allow space between targets, I then don't know how to evite a command starting with :.
+  "^ *\\(\\(?:\\$[({]\\(?:\\$[({][^ \t\n#})]+?[})]\\|[^\n#]\\)+?[})]\\|[^\n#:=]\\)+?\\)[ \t]*:\\(?:[ \t]*$\\|[^=\n].*$\\)"
   "Regex used to find dependency lines in a makefile.")
 
-;; Note that the first subexpression is used by font lock.  Note
-;; that if you change this regexp you might have to fix the imenu
-;; index in makefile-imenu-generic-expression.
+(defconst makefile-rule-action-regex
+  "^\t[ \t]*\\([-@]*\\)[ \t]*\\(.+\\)"
+  "Regex used to highlight rule action lines in font lock mode.")
+
+;; Note that the first and second subexpression is used by font lock.  Note
+;; that if you change this regexp you might have to fix the imenu index in
+;; makefile-imenu-generic-expression.
 (defconst makefile-macroassign-regex
-  "^ *\\([^ \n\t][^:#= \t\n]*\\)[ \t]*[*:+]?[:?]?="
+  "^ *\\([^ \n\t][^:#= \t\n]*\\)[ \t]*\\(?:!=[ \t]*\\(.*\\)\\|[*:+]?[:?]?=\\)"
   "Regex used to find macro assignment lines in a makefile.")
 
+(defconst makefile-var-use-regex
+  "[^$]\\$[({]\\([-a-zA-Z0-9_.]+\\|[@%<?^+*][FD]?\\)[}):]"
+  "Regex used to find $(macro) uses in a makefile.")
+
 (defconst makefile-ignored-files-in-pickup-regex
   "\\(^\\..*\\)\\|\\(.*~$\\)\\|\\(.*,v$\\)\\|\\(\\.[chy]\\)"
   "Regex for filenames that will NOT be included in the target list.")
@@ -254,50 +288,195 @@
 (defvar makefile-space-face 'makefile-space-face
   "Face to use for highlighting leading spaces in Font-Lock mode.")
 
-(defconst makefile-font-lock-keywords
-  (list
+;; These lists were inspired by the old solution.  But they are silly, because
+;; you can't differentiate what follows.  They need to be split up.
+(defconst makefile-statements '("include")
+  "List of keywords understood by standard make.")
+
+(defconst makefile-automake-statements
+  `("if" "else" "endif" ,@makefile-statements)
+  "List of keywords understood by automake.")
+
+(defconst makefile-gmake-statements
+  `("-sinclude" "sinclude" "override" "vpath"
+    "ifdef" "ifndef" "ifeq" "ifneq" "-include" "define" "endef" "export"
+    "unexport"
+    ,@(cdr makefile-automake-statements))
+  "List of keywords understood by gmake.")
 
-   ;; Do macro assignments.  These get the "variable-name" face rather
-   ;; arbitrarily.
-   (list makefile-macroassign-regex 1 'font-lock-variable-name-face)
+;; These are even more silly, because you can have more spaces in between.
+(defconst makefile-makepp-statements
+  `("and ifdef" "and ifndef" "and ifeq" "and ifneq" "and ifperl"
+    "and ifmakeperl" "and ifsys" "and ifnsys" "build_cache" "build_check"
+    "else ifdef" "else ifndef" "else ifeq" "else ifneq" "else ifperl"
+    "else ifmakeperl" "else ifsys" "else ifnsys" "enddef" "load_makefile"
+    "ifperl" "ifmakeperl" "ifsys" "ifnsys" "_include"  "makeperl" "makesub"
+    "no_implicit_load" "perl" "perl-begin" "perl_begin" "perl-end" "perl_end"
+    "prebuild" "or ifdef" "or ifndef" "or ifeq" "or ifneq" "or ifperl"
+    "or ifmakeperl" "or ifsys" "or ifnsys" "register_command_parser"
+    "register_scanner" "repository" "runtime" "signature" "sub"
+    ,@(nthcdr 4 makefile-gmake-statements))
+  "List of keywords understood by gmake.")
+
+(defconst makefile-bsdmake-statements
+  `(".elif" ".elifdef" ".elifmake" ".elifndef" ".elifnmake" ".else" ".endfor"
+    ".endif" ".for" ".if" ".ifdef" ".ifmake" ".ifndef" ".ifnmake" ".undef")
+  "List of keywords understood by BSD make.")
+
+(defun makefile-make-font-lock-keywords (dependency action var keywords space
+						    &optional negation
+						    &rest font-lock-keywords)
+  `(;; Do macro assignments.  These get the "variable-name" face.
+    (,makefile-macroassign-regex
+     (1 font-lock-variable-name-face)
+     ;; This is for after !=
+     (2 'makefile-shell-face prepend t))
 
-   ;; Do dependencies.  These get the function name face.
-   (list makefile-dependency-regex 1 'font-lock-function-name-face)
+    ;; Do dependencies.
+    (,dependency 1 'makefile-targets-face prepend)
 
-   ;; Variable references even in targets/strings/comments.
-   '("[^$]\\$[({]\\([-a-zA-Z0-9_.]+\\|[@%<?^+*][FD]?\\)[}):]"
+    ;; Rule actions.
+    (,action
+     (1 font-lock-type-face)
+     (2 'makefile-shell-face prepend)
+     ;; Only makepp has builtin commands.
+     (3 font-lock-builtin-face prepend t))
+
+    ;; Variable references even in targets/strings/comments.
+    (,var 1 font-lock-variable-name-face prepend)
+
+    ;; Automatic variable references and single character variable references,
+    ;; but not shell variables references.
+    ("[^$]\\$\\([@%<?^+*_]\\|[a-zA-Z0-9]\\>\\)"
      1 font-lock-constant-face prepend)
+    ("[^$]\\(\\$[@%*]\\)"
+     1 'makefile-targets-face prepend)
 
-   ;; Automatic variable references and single character variable references,
-   ;; but not shell variables references.
-   '("[^$]\\$\\([@%<?^+*_]\\|[a-zA-Z0-9]\\>\\)"
-     1 font-lock-constant-face prepend)
+    ;; Fontify conditionals and includes.
+    ;; Note that plain `if' is an automake conditional, and not a bug.
+    (,(concat "^\\(?: [ \t]*\\)?"
+	      (regexp-opt keywords t)
+	      "\\>[ \t]*\\([^: \t\n#]*\\)")
+     (1 font-lock-keyword-face) (2 font-lock-variable-name-face))
+
+    ,(if negation
+	 `(,negation (1 font-lock-negation-char-face prepend)
+		     (2 font-lock-negation-char-face prepend t)))
+
+    ,@(if space
+	  '(;; Highlight lines that contain just whitespace.
+	    ;; They can cause trouble, especially if they start with a tab.
+	    ("^[ \t]+$" . makefile-space-face)
+
+	    ;; Highlight shell comments that Make treats as commands,
+	    ;; since these can fool people.
+	    ("^\t+#" 0 makefile-space-face t)
+
+	    ;; Highlight spaces that precede tabs.
+	    ;; They can make a tab fail to be effective.
+	    ("^\\( +\\)\t" 1 makefile-space-face)))
+
+    ,@font-lock-keywords))
 
-   ;; Fontify conditionals and includes.
-   ;; Note that plain `if' is an automake conditional, and not a bug.
-   (list
-    (concat "^\\(?: [ \t]*\\)?"
-	    (regexp-opt '("-include" "-sinclude" "include" "sinclude" "ifeq"
-			  "if" "ifneq" "ifdef" "ifndef" "endif" "else"
-			  "define" "endef" "override"
-			  "export" "unexport" "vpath") t)
-	    "\\>[ \t]*\\([^: \t\n#]*\\)")
-    '(1 font-lock-keyword-face) '(2 font-lock-variable-name-face))
+(defconst makefile-font-lock-keywords
+  (makefile-make-font-lock-keywords
+   makefile-dependency-regex
+   makefile-rule-action-regex
+   makefile-var-use-regex
+   makefile-statements
+   t))
+
+(defconst makefile-automake-font-lock-keywords
+  (makefile-make-font-lock-keywords
+   makefile-dependency-regex
+   makefile-rule-action-regex
+   makefile-var-use-regex
+   makefile-automake-statements
+   t))
+
+(defconst makefile-gmake-font-lock-keywords
+  (makefile-make-font-lock-keywords
+   makefile-dependency-regex
+   makefile-rule-action-regex
+   makefile-var-use-regex
+   makefile-gmake-statements
+   t
+   "^\\(?: [ \t]*\\)?if\\(n\\)\\(?:def\\|eq\\)\\>"
+
+   '("[^$]\\(\\$[({][@%*][DF][})]\\)"
+     1 'makefile-targets-face prepend)
+
+   ;; $(function ...) ${function ...}
+   '("[^$]\\$[({]\\(\\S +\\s \\)"
+     1 font-lock-function-name-face)
+
+   ;; $(shell ...) ${shell ...}
+   '("[^$]\\$\\([({]\\)shell[ \t]+"
+     makefile-match-function-end nil nil
+     (1 'makefile-shell-face prepend t))))
+
+(defconst makefile-makepp-font-lock-keywords
+  (makefile-make-font-lock-keywords
+   makefile-dependency-regex
+   ;; Don't care about initial tab, but I don't know how to font-lock correctly without.
+   "^\t[ \t]*\\(\\(?:[ \t]*noecho\\>\\|[ \t]*ignore[-_]error\\>\\|[ \t]*[-@]+\\)*\\)[ \t]*\\(\\(&\\S +\\)?.+\\)"
+   makefile-var-use-regex
+   makefile-makepp-statements
+   nil
+   "^\\(?: [ \t]*\\)?\\(?:and[ \t]+\\|else[ \t]+\\|or[ \t]+\\)?if\\(n\\)\\(?:def\\|eq\\|sys\\)\\>"
+
+   '("[^$]\\(\\$[({]\\(?:target\\|output\\)s?[})]\\)"
+     1 'makefile-targets-face prepend)
 
-   '("^\\(?: [ \t]*\\)?if\\(n\\)\\(?:def\\|eq\\)\\>"
-     1 font-lock-negation-char-face prepend)
+   ;; Colon modifier keywords.
+   '(":\\s *\\(build_c\\(?:ache\\|heck\\)\\|env\\(?:ironment\\)?\\|foreach\\|signature\\|scanner\\|quickscan\\|smartscan\\)\\>"
+     1 font-lock-keyword-face t)
+
+   ;; $(function ...) $((function ...)) ${function ...} ${{function ...}}
+   '("[^$]\\$\\(((?\\|{{?\\)\\(\\S +\\s \\)"
+     2 font-lock-function-name-face)
 
-   ;; Highlight lines that contain just whitespace.
-   ;; They can cause trouble, especially if they start with a tab.
-   '("^[ \t]+$" . makefile-space-face)
+   ;; $(shell ...) $((shell ...)) ${shell ...} ${{shell ...}}
+   '("[^$]\\$\\(((?\\|{{?\\)shell\\(?:[-_]\\(?:global[-_]\\)?once\\)?[ \t]+"
+     makefile-match-function-end nil nil
+     (1 'makefile-shell-face prepend t))
+
+   ;; $(perl ...) $((perl ...)) ${perl ...} ${{perl ...}}
+   '("[^$]\\$\\(((?\\|{{?\\)makeperl[ \t]+"
+     makefile-match-function-end nil nil
+     (1 'makefile-makepp-perl-face prepend t))
+   '("[^$]\\$\\(((?\\|{{?\\)perl[ \t]+"
+     makefile-match-function-end nil nil
+     (1 'makefile-makepp-perl-face t t))
+
+   ;; Can we unify these with (if (match-end 1) 'prepend t)?
+   '("ifmakeperl\\s +\\(.*\\)" 1 'makefile-makepp-perl-face prepend)
+   '("ifperl\\s +\\(.*\\)" 1 'makefile-makepp-perl-face t)
 
-   ;; Highlight shell comments that Make treats as commands,
-   ;; since these can fool people.
-   '("^\t+#" 0 makefile-space-face t)
+   ;; Perl block single- or multiline, as statement or rule action.
+   ;; Don't know why the initial newline in 2nd variant of group 2 doesn't get skipped.
+   '("\\<make\\(?:perl\\|sub\\s +\\S +\\)\\s *\n?\\s *{\\(?:{\\s *\n?\\(\\(?:.*\n\\)+?\\)\\s *}\\|\\s *\\(\\(?:.*?\\|\n?\\(?:.*\n\\)+?\\)\\)\\)}"
+     (1 'makefile-makepp-perl-face prepend t)
+     (2 'makefile-makepp-perl-face prepend t))
+   '("\\<\\(?:perl\\|sub\\s +\\S +\\)\\s *\n?\\s *{\\(?:{\\s *\n?\\(\\(?:.*\n\\)+?\\)\\s *}\\|\\s *\\(\\(?:.*?\\|\n?\\(?:.*\n\\)+?\\)\\)\\)}"
+     (1 'makefile-makepp-perl-face t t)
+     (2 'makefile-makepp-perl-face t t))
 
-   ;; Highlight spaces that precede tabs.
-   ;; They can make a tab fail to be effective.
-   '("^\\( +\\)\t" 1 makefile-space-face)))
+   ;; Statement style perl block.
+   '("perl[-_]begin\\s *\\(?:\\s #.*\\)?\n\\(\\(?:.*\n\\)+?\\)\\s *perl[-_]end\\>"
+     1 'makefile-makepp-perl-face t)))
+
+;; A lot more could be done for variables here:
+(defconst makefile-bsdmake-font-lock-keywords
+  (makefile-make-font-lock-keywords
+   "^ *\\(\\(?:\\$[({]\\(?:\\$[({][^\n#})]+?[})]\\|[^\n#]\\)+?[})]\\|[^\n#:=]\\)+?\\)[ \t]*[:!]\\(?:[ \t]*$\\|[^=\n].*$\\)"
+   "^\t[ \t]*\\([-+@]*\\)[ \t]*\\(.+\\)"
+   makefile-var-use-regex
+   makefile-bsdmake-statements
+   t
+   "^\\(?: [ \t]*\\)?\\.\\(?:el\\)?if\\(n?\\)\\(?:def\\|make\\)?\\>[ \t]*\\(!?\\)"
+   '("^[ \t]*\\.for[ \t].+[ \t]\\(in\\)\\>" 1 font-lock-keyword-face)))
+
 
 (defconst makefile-font-lock-syntactic-keywords
   ;; From sh-script.el.
@@ -371,46 +550,49 @@
     ()
   (define-abbrev-table 'makefile-mode-abbrev-table ()))
 
-(defvar makefile-mode-map nil
-  "The keymap that is used in Makefile mode.")
+(defvar makefile-mode-map
+  (let ((map (make-sparse-keymap)))
+    ;; set up the keymap
+    (define-key map "\C-c:" 'makefile-insert-target-ref)
+    (if makefile-electric-keys
+	(progn
+	  (define-key map "$" 'makefile-insert-macro-ref)
+	  (define-key map ":" 'makefile-electric-colon)
+	  (define-key map "=" 'makefile-electric-equal)
+	  (define-key map "." 'makefile-electric-dot)))
+    (define-key map "\C-c\C-f" 'makefile-pickup-filenames-as-targets)
+    (define-key map "\C-c\C-b" 'makefile-switch-to-browser)
+    (define-key map "\C-c\C-c" 'comment-region)
+    (define-key map "\C-c\C-p" 'makefile-pickup-everything)
+    (define-key map "\C-c\C-u" 'makefile-create-up-to-date-overview)
+    (define-key map "\C-c\C-i" 'makefile-insert-gmake-function)
+    (define-key map "\C-c\C-\\" 'makefile-backslash-region)
+    (define-key map "\C-c\C-m\C-a" 'makefile-automake-mode)
+    (define-key map "\C-c\C-m\C-b" 'makefile-bsdmake-mode)
+    (define-key map "\C-c\C-m\C-g" 'makefile-gmake-mode)
+    (define-key map "\C-c\C-m\C-m" 'makefile-mode)
+    (define-key map "\C-c\C-m\C-p" 'makefile-makepp-mode)
+    (define-key map "\M-p"     'makefile-previous-dependency)
+    (define-key map "\M-n"     'makefile-next-dependency)
+    (define-key map "\e\t"     'makefile-complete)
 
-(if makefile-mode-map
-    ()
-  (setq makefile-mode-map (make-sparse-keymap))
-  ;; set up the keymap
-  (define-key makefile-mode-map "\C-c:" 'makefile-insert-target-ref)
-  (if makefile-electric-keys
-      (progn
-	(define-key makefile-mode-map "$" 'makefile-insert-macro-ref)
-	(define-key makefile-mode-map ":" 'makefile-electric-colon)
-	(define-key makefile-mode-map "=" 'makefile-electric-equal)
-	(define-key makefile-mode-map "." 'makefile-electric-dot)))
-  (define-key makefile-mode-map "\C-c\C-f" 'makefile-pickup-filenames-as-targets)
-  (define-key makefile-mode-map "\C-c\C-b" 'makefile-switch-to-browser)
-  (define-key makefile-mode-map "\C-c\C-c" 'comment-region)
-  (define-key makefile-mode-map "\C-c\C-p" 'makefile-pickup-everything)
-  (define-key makefile-mode-map "\C-c\C-u" 'makefile-create-up-to-date-overview)
-  (define-key makefile-mode-map "\C-c\C-i" 'makefile-insert-gmake-function)
-  (define-key makefile-mode-map "\C-c\C-\\" 'makefile-backslash-region)
-  (define-key makefile-mode-map "\M-p"     'makefile-previous-dependency)
-  (define-key makefile-mode-map "\M-n"     'makefile-next-dependency)
-  (define-key makefile-mode-map "\e\t"     'makefile-complete)
+    ;; Make menus.
+    (define-key map [menu-bar makefile-mode]
+      (cons "Makefile" (make-sparse-keymap "Makefile")))
 
-  ;; Make menus.
-  (define-key makefile-mode-map [menu-bar makefile-mode]
-    (cons "Makefile" (make-sparse-keymap "Makefile")))
+    (define-key map [menu-bar makefile-mode browse]
+      '("Pop up Makefile Browser" . makefile-switch-to-browser))
+    (define-key map [menu-bar makefile-mode complete]
+      '("Complete Target or Macro" . makefile-complete))
+    (define-key map [menu-bar makefile-mode pickup]
+      '("Find Targets and Macros" . makefile-pickup-everything))
 
-  (define-key makefile-mode-map [menu-bar makefile-mode browse]
-    '("Pop up Makefile Browser" . makefile-switch-to-browser))
-  (define-key makefile-mode-map [menu-bar makefile-mode complete]
-    '("Complete Target or Macro" . makefile-complete))
-  (define-key makefile-mode-map [menu-bar makefile-mode pickup]
-    '("Find Targets and Macros" . makefile-pickup-everything))
-
-  (define-key makefile-mode-map [menu-bar makefile-mode prev]
-    '("Move to Previous Dependency" . makefile-previous-dependency))
-  (define-key makefile-mode-map [menu-bar makefile-mode next]
-    '("Move to Next Dependency" . makefile-next-dependency)))
+    (define-key map [menu-bar makefile-mode prev]
+      '("Move to Previous Dependency" . makefile-previous-dependency))
+    (define-key map [menu-bar makefile-mode next]
+      '("Move to Next Dependency" . makefile-next-dependency))
+    map)
+  "The keymap that is used in Makefile mode.")
 
 (defvar makefile-browser-map nil
   "The keymap that is used in the macro- and target browser.")
@@ -504,8 +686,14 @@
 
 ;;;###autoload
 (defun makefile-mode ()
-  "Major mode for editing Makefiles.
-This function ends by invoking the function(s) `makefile-mode-hook'.
+  "Major mode for editing standard Makefiles.
+
+If you are editing a file for a different make, try one of the
+variants `makefile-automake-mode', `makefile-gmake-mode',
+`makefile-makepp-mode' or `makefile-bsdmake-mode'.  All but the
+last should be correctly chosen based on the file name, except if
+it is *.mk.  This function ends by invoking the function(s)
+`makefile-mode-hook'.
 
 \\{makefile-mode-map}
 
@@ -645,6 +833,31 @@
   (setq indent-tabs-mode t)
   (run-hooks 'makefile-mode-hook))
 
+;; These should do more than just differentiate font-lock.
+;;;###autoload
+(define-derived-mode makefile-automake-mode makefile-mode "Makefile.am"
+  "An adapted `makefile-mode' that knows about automake."
+  (setq font-lock-defaults
+	`(makefile-automake-font-lock-keywords ,@(cdr font-lock-defaults))))
+
+;;;###autoload
+(define-derived-mode makefile-gmake-mode makefile-mode "GNUmakefile"
+  "An adapted `makefile-mode' that knows about gmake."
+  (setq font-lock-defaults
+	`(makefile-gmake-font-lock-keywords ,@(cdr font-lock-defaults))))
+
+;;;###autoload
+(define-derived-mode makefile-makepp-mode makefile-mode "Makeppfile"
+  "An adapted `makefile-mode' that knows about makepp."
+  (setq font-lock-defaults
+	`(makefile-makepp-font-lock-keywords ,@(cdr font-lock-defaults))))
+
+;;;###autoload
+(define-derived-mode makefile-bsdmake-mode makefile-mode "BSDmakefile"
+  "An adapted `makefile-mode' that knows about BSD make."
+  (setq font-lock-defaults
+	`(makefile-bsdmake-font-lock-keywords ,@(cdr font-lock-defaults))))
+
 
 
 ;;; Motion code.
@@ -1453,6 +1666,16 @@
 ;;; Utility functions
 ;;; ------------------------------------------------------------
 
+(defun makefile-match-function-end (end)
+  "To be called as an anchored matcher by font-lock.
+The anchor must have matched the opening parens in the first group."
+  (let ((s (match-string-no-properties 1)))
+    (setq s (cond ((string= s "(") "\\(.*?\\)[ \t]*)")
+		  ((string= s "{") "\\(.*?\\)[ \t]*}")
+		  ((string= s "((") "\\(.*?\\)[ \t]*))")
+		  ((string= s "{{") "\\(.*?\\)[ \t]*}}")))
+    (if s (looking-at s))))
+
 (defun makefile-do-macro-insertion (macro-name)
   "Insert a macro reference."
   (if (not (zerop (length macro-name)))
--- a/lisp/progmodes/sh-script.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/progmodes/sh-script.el	Fri May 13 22:59:23 2005 +0000
@@ -414,6 +414,10 @@
 	?\" "\"\""
 	?\' "\"'"
 	?\` "\"`"
+	;; ?$ might also have a ". p" syntax. Both "'" and ". p" seem
+	;; to work fine. This is needed so that dabbrev-expand
+	;; $VARNAME works.
+	?$ "'"
 	?! "_"
 	?% "_"
 	?: "_"
@@ -1126,7 +1130,7 @@
   :type `(choice ,@ sh-number-or-symbol-list )
   :group 'sh-indentation)
 
-(defcustom sh-indent-for-do '*
+(defcustom sh-indent-for-do 0
   "*How much to indent a do statement.
 This is relative to the statement before the do, i.e. the
 while until or for statement."
--- a/lisp/startup.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/startup.el	Fri May 13 22:59:23 2005 +0000
@@ -1112,7 +1112,7 @@
 Arguments from ARGS should be either strings, functions called
 with no args that return a string, or pairs `:face FACE',
 where FACE is a valid face specification, as it can be used with
-`put-text-properties'."
+`put-text-property'."
   (let ((current-face nil))
     (while args
       (if (eq (car args) :face)
--- a/lisp/term/mac-win.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/term/mac-win.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; mac-win.el --- parse switches controlling interface with Mac window system -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1999, 2000, 2002, 2003, 2004, 2005
+;; Copyright (C) 1999, 2000, 2002, 2003, 2005
 ;;   Free Software Foundation, Inc.
 
 ;; Author: Andrew Choi <akochoi@mac.com>
@@ -1328,6 +1328,13 @@
 			 coding 'utf-16)))
 	      (setq str (or s (encode-coding-string str 'utf-16-mac)))))
 	   ((eq type 'com.apple.traditional-mac-plain-text)
+	    (let ((encodables (find-coding-systems-string str))
+		  (rest mac-script-code-coding-systems))
+	      (unless (memq coding encodables)
+		(while (and rest (not (memq (cdar rest) encodables)))
+		  (setq rest (cdr rest)))
+		(if rest
+		    (setq coding (cdar rest)))))
 	    (setq coding (coding-system-change-eol-conversion coding 'mac))
 	    (setq str (encode-coding-string str coding)))
 	   (t
--- a/lisp/term/sun.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/term/sun.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; sun.el --- keybinding for standard default sunterm keys
 
-;; Copyright (C) 1987 Free Software Foundation, Inc.
+;; Copyright (C) 1987, 2001 Free Software Foundation, Inc.
 
 ;; Author: Jeff Peck <peck@sun.com>
 ;; Keywords: terminals
--- a/lisp/term/tty-colors.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/term/tty-colors.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; tty-colors.el --- color support for character terminals
 
-;; Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1999, 2000, 2001, 2002, 2005 Free Software Foundation, Inc.
 
 ;; Author: Eli Zaretskii
 ;; Maintainer: FSF
--- a/lisp/term/w32-win.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/term/w32-win.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; w32-win.el --- parse switches controlling interface with W32 window system
 
-;; Copyright (C) 1993, 1994, 2003, 2004, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2003, 2005  Free Software Foundation, Inc.
 
 ;; Author: Kevin Gallo
 ;; Keywords: terminals
--- a/lisp/term/x-win.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/term/x-win.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; x-win.el --- parse relevant switches and set up for X  -*-coding: iso-2022-7bit;-*-
 
-;; Copyright (C) 1993, 1994, 2001, 2002 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 1994, 2001, 2002, 2005 Free Software Foundation, Inc.
 
 ;; Author: FSF
 ;; Keywords: terminals, i18n
--- a/lisp/term/xterm.el	Mon May 09 16:17:25 2005 +0000
+++ b/lisp/term/xterm.el	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 ;;; xterm.el --- define function key sequences and standard colors for xterm
 
-;; Copyright (C) 1995, 2002, 2004, 2005  Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2002, 2005  Free Software Foundation, Inc.
 
 ;; Author: FSF
 ;; Keywords: terminals
--- a/lispref/ChangeLog	Mon May 09 16:17:25 2005 +0000
+++ b/lispref/ChangeLog	Fri May 13 22:59:23 2005 +0000
@@ -1,3 +1,27 @@
+2005-05-12  Lute Kamstra  <lute@gnu.org>
+
+	* modes.texi (Generic Modes): Update.
+	(Major Modes): Refer to node "Generic Modes".
+
+	* elisp.texi (Top): Update to the current structure of the manual.
+	* processes.texi (Processes): Add menu description.
+	* customize.texi (Customization): Add menu descriptions.
+
+2005-05-11  Thien-Thi Nguyen  <ttn@gnu.org>
+
+	* processes.texi (Signals to Processes)
+	(Low-Level Network): Fix typos.
+
+2005-05-11  Lute Kamstra  <lute@gnu.org>
+
+	* elisp.texi (Top): Add some nodes from the chapter "Major and
+	Minor Modes" to the detailed node listing.
+
+2005-05-10  Richard M. Stallman  <rms@gnu.org>
+
+	* keymaps.texi (Extended Menu Items): Menu item filter functions
+	can be called at any time.
+
 2005-05-08  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* variables.texi (File Local Variables): `(hack-local-variables t)'
--- a/lispref/customize.texi	Mon May 09 16:17:25 2005 +0000
+++ b/lispref/customize.texi	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003 Free Software Foundation, Inc.
+@c Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2005 Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/customize
 @node Customization, Loading, Macros, Top
@@ -12,10 +12,11 @@
 definitions---as well as face definitions (@pxref{Defining Faces}).
 
 @menu
-* Common Keywords::
-* Group Definitions::
-* Variable Definitions::
-* Customization Types::
+* Common Keywords::      Common keyword arguments for all kinds of 
+                           customization declarations.
+* Group Definitions::    Writing customization group definitions.
+* Variable Definitions:: Declaring user options.
+* Customization Types::  Specifying the type of a user option.
 @end menu
 
 @node Common Keywords
--- a/lispref/elisp.texi	Mon May 09 16:17:25 2005 +0000
+++ b/lispref/elisp.texi	Fri May 13 22:59:23 2005 +0000
@@ -101,7 +101,6 @@
 
 @menu
 * Introduction::            Introduction and conventions used.
-* Standards: Coding Conventions.    Coding conventions for Emacs Lisp.
 
 * Lisp Data Types::         Data types of objects in Emacs Lisp.
 * Numbers::                 Numbers and arithmetic functions.
@@ -184,6 +183,7 @@
 * Caveats::                 Flaws and a request for help.
 * Lisp History::            Emacs Lisp is descended from Maclisp.
 * Conventions::             How the manual is formatted.
+* Version Info::            Which Emacs version is running?
 * Acknowledgements::        The authors, editors, and sponsors of this manual.
 
 Conventions
@@ -196,14 +196,6 @@
 * Buffer Text Notation::    The format we use for buffer contents in examples.
 * Format of Descriptions::  Notation for describing functions, variables, etc.
 
-Tips and Conventions
-
-* Coding Conventions::      Conventions for clean and robust programs.
-* Compilation Tips::        Making compiled code run fast.
-* Documentation Tips::      Writing readable documentation strings.
-* Comment Tips::	    Conventions for writing comments.
-* Library Headers::         Standard headers for library packages.
-
 Format of Descriptions
 
 * A Sample Function Description::
@@ -215,6 +207,7 @@
 * Comments::                Comments and their formatting conventions.
 * Programming Types::       Types found in all Lisp systems.
 * Editing Types::           Types specific to Emacs.
+* Circular Objects::            Read syntax for circular structure.
 * Type Predicates::         Tests related to types.
 * Equality Predicates::     Tests of equality between any two objects.
 
@@ -224,13 +217,16 @@
 * Floating Point Type:: Numbers with fractional parts and with a large range.
 * Character Type::      The representation of letters, numbers and
                           control characters.
+* Symbol Type::         A multi-use object that refers to a function,
+                        variable, property list, or itself.
 * Sequence Type::       Both lists and arrays are classified as sequences.
 * Cons Cell Type::      Cons cells, and lists (which are made from cons cells).
 * Array Type::          Arrays include strings and vectors.
 * String Type::         An (efficient) array of characters.
 * Vector Type::         One-dimensional arrays.
-* Symbol Type::         A multi-use object that refers to a function,
-                        variable, property list, or itself.
+* Char-Table Type::     One-dimensional sparse arrays indexed by characters.
+* Bool-Vector Type::    One-dimensional arrays of @code{t} or @code{nil}.
+* Hash Table Type::     Super-fast lookup tables.
 * Function Type::       A piece of executable code you can call from elsewhere.
 * Macro Type::          A method of expanding an expression into another
                           expression, more fundamental but less pretty.
@@ -239,17 +235,20 @@
 * Autoload Type::       A type used for automatically loading seldom-used
                           functions.
 
-List Type
+Cons Cell and List Types
 
+* Box Diagrams::            Drawing pictures of lists.
 * Dotted Pair Notation::    An alternative syntax for lists.
 * Association List Type::   A specially constructed list.
 
 Editing Types
 
 * Buffer Type::             The basic object of editing.
+* Marker Type::             A position in a buffer.
 * Window Type::             What makes buffers visible.
+* Frame Type::		    Windows subdivide frames.
 * Window Configuration Type::Save what the screen looks like.
-* Marker Type::             A position in a buffer.
+* Frame Configuration Type::Recording the status of all frames.
 * Process Type::            A process running on the underlying OS.
 * Stream Type::             Receive or send characters.
 * Keymap Type::             What function a keystroke invokes.
@@ -261,9 +260,10 @@
 * Float Basics::	      Representation and range of floating point.
 * Predicates on Numbers::     Testing for numbers.
 * Comparison of Numbers::     Equality and inequality predicates.
+* Numeric Conversions::	      Converting float to integer and vice versa.
 * Arithmetic Operations::     How to add, subtract, multiply and divide.
+* Rounding Operations::       Explicitly rounding floating point numbers.
 * Bitwise Operations::        Logical and, or, not, shifting.
-* Numeric Conversions::	      Converting float to integer and vice versa.
 * Math Functions::            Trig, exponential and logarithmic functions.
 * Random Numbers::            Obtaining random integers, predictable or not.
 
@@ -272,10 +272,12 @@
 * String Basics::           Basic properties of strings and characters.
 * Predicates for Strings::  Testing whether an object is a string or char.
 * Creating Strings::        Functions to allocate new strings.
+* Modifying Strings::         Altering the contents of an existing string.
 * Text Comparison::         Comparing characters or strings.
 * String Conversion::       Converting characters or strings and vice versa.
 * Formatting Strings::      @code{format}: Emacs's analogue of @code{printf}.
 * Case Conversion::         Case conversion functions.
+* Case Tables::		      Customizing case conversion.
 
 Lists
 
@@ -300,6 +302,16 @@
 * Arrays::                  Characteristics of arrays in Emacs Lisp.
 * Array Functions::         Functions specifically for arrays.
 * Vectors::                 Functions specifically for vectors.
+* Vector Functions::        Functions specifically for vectors.
+* Char-Tables::             How to work with char-tables.
+* Bool-Vectors::            How to work with bool-vectors.
+
+Hash Tables
+
+* Creating Hash::           Functions to create hash tables.
+* Hash Access::             Reading and writing the hash table contents.
+* Defining Hash::           Defining new comparison methods
+* Other Hash::              Miscellaneous.
 
 Symbols
 
@@ -313,16 +325,18 @@
 Evaluation
 
 * Intro Eval::              Evaluation in the scheme of things.
-* Eval::                    How to invoke the Lisp interpreter explicitly.
 * Forms::                   How various sorts of objects are evaluated.
 * Quoting::                 Avoiding evaluation (to put constants in
                               the program).
+* Eval::                    How to invoke the Lisp interpreter explicitly.
 
 Kinds of Forms
 
 * Self-Evaluating Forms::   Forms that evaluate to themselves.
 * Symbol Forms::            Symbols evaluate as variables.
 * Classifying Lists::       How to distinguish various sorts of list forms.
+* Function Indirection::    When a symbol appears as the car of a list,
+			      we find the real function via the symbol.
 * Function Forms::          Forms that call functions.
 * Macro Forms::             Forms that call macros.
 * Special Forms::           ``Special forms'' are idiosyncratic primitives,
@@ -333,7 +347,7 @@
 Control Structures
 
 * Sequencing::              Evaluation in textual order.
-* Conditionals::            @code{if}, @code{cond}.
+* Conditionals::            @code{if}, @code{cond}, @code{when}, @code{unless}.
 * Combining Conditions::    @code{and}, @code{or}, @code{not}.
 * Iteration::               @code{while} loops.
 * Nonlocal Exits::          Jumping out of a sequence.
@@ -360,11 +374,19 @@
 * Local Variables::         Variable values that exist only temporarily.
 * Void Variables::          Symbols that lack values.
 * Defining Variables::      A definition says a symbol is used as a variable.
+* Tips for Defining::       Things you should think about when you
+                              define a variable.
 * Accessing Variables::     Examining values of variables whose names
                               are known only at run time.
 * Setting Variables::       Storing new values in variables.
 * Variable Scoping::        How Lisp chooses among local and global values.
 * Buffer-Local Variables::  Variable values in effect only in one buffer.
+* Frame-Local Variables::   Variable values in effect only in one frame.
+* Future Local Variables::  New kinds of local values we might add some day.
+* Variable Aliases::        Variables that are aliases for other variables.
+* File Local Variables::    Handling local variable lists in files.
+* Variables with Restricted Values::  Non-constant variables whose value can
+                                        @emph{not} be an arbitrary Lisp object.
 
 Scoping Rules for Variable Bindings
 
@@ -393,6 +415,9 @@
 * Anonymous Functions::     Lambda-expressions are functions with no names.
 * Function Cells::          Accessing or setting the function definition
                               of a symbol.
+* Obsolete Functions::      Declaring functions obsolete.
+* Inline Functions::	    Defining functions that the compiler will open code.
+* Function Safety::         Determining whether a function is safe to call.
 * Related Topics::          Cross-references to specific Lisp primitives
                               that have a special bearing on how
                               functions work.
@@ -415,6 +440,14 @@
                               Don't hide the user's variables.
 * Indenting Macros::        Specifying how to indent macro calls.
 
+Writing Customization Definitions
+
+* Common Keywords::         Common keyword arguments for all kinds of
+                              customization declarations.
+* Group Definitions::       Writing customization group definitions.
+* Variable Definitions::    Declaring user options.
+* Customization Types::     Specifying the type of a user option.
+
 Loading
 
 * How Programs Do Loading:: The @code{load} function and others.
@@ -430,13 +463,20 @@
 
 Byte Compilation
 
+* Speed of Byte-Code::      An example of speedup from byte compilation.
 * Compilation Functions::   Byte compilation functions.
+* Docs and Compilation::    Dynamic loading of documentation strings.
+* Dynamic Loading::         Dynamic loading of individual functions.
+* Eval During Compile::     Code to be evaluated when you compile.
+* Compiler Errors::         Handling compiler error messages.
+* Byte-Code Objects::	    The data type used for byte-compiled functions.
 * Disassembly::             Disassembling byte-code; how to read byte-code.
 
-Advising Functions
+Advising Emacs Lisp Functions
 
 * Simple Advice::           A simple example to explain the basics of advice.
 * Defining Advice::         Detailed description of @code{defadvice}.
+* Around-Advice::           Wrapping advice around a function's definition.
 * Computed Advice::         ...is to @code{defadvice} as @code{fset} is to @code{defun}.
 * Activation of Advice::    Advice doesn't do anything until you activate it.
 * Enabling Advice::         You can enable or disable each piece of advice.
@@ -449,14 +489,16 @@
 Debugging Lisp Programs
 
 * Debugger::                How the Emacs Lisp debugger is implemented.
+* Edebug::                  A source-level Emacs Lisp debugger.
 * Syntax Errors::           How to find syntax errors.
+* Test Coverage::           Ensuring you have tested all branches in your code.
 * Compilation Errors::      How to find errors that show up in
                               byte compilation.
-* Edebug::                  A source-level Emacs Lisp debugger.
 
 The Lisp Debugger
 
 * Error Debugging::         Entering the debugger when an error happens.
+* Infinite Loops::	    Stopping and debugging a program that doesn't exit.
 * Function Debugging::      Entering it when a certain function is called.
 * Explicit Debug::          Entering it at a certain point in the program.
 * Using Debugger::          What the debugger does; what you see while in it.
@@ -464,6 +506,27 @@
 * Invoking the Debugger::   How to call the function @code{debug}.
 * Internals of Debugger::   Subroutines of the debugger, and global variables.
 
+Edebug
+
+* Using Edebug::	    Introduction to use of Edebug.
+* Instrumenting::	    You must instrument your code
+			      in order to debug it with Edebug.
+* Edebug Execution Modes::  Execution modes, stopping more or less often.
+* Jumping::		    Commands to jump to a specified place.
+* Edebug Misc::		    Miscellaneous commands.
+* Breakpoints::		    Setting breakpoints to make the program stop.
+* Trapping Errors::	    Trapping errors with Edebug.
+* Edebug Views::	    Views inside and outside of Edebug.
+* Edebug Eval::		    Evaluating expressions within Edebug.
+* Eval List::		    Expressions whose values are displayed
+			      each time you enter Edebug.
+* Printing in Edebug::	    Customization of printing.
+* Trace Buffer::	    How to produce trace output in a buffer.
+* Coverage Testing::	    How to test evaluation coverage.
+* The Outside Context::	    Data that Edebug saves and restores.
+* Instrumenting Macro Calls:: Specifying how to handle macro calls.
+* Edebug Options::	    Option variables for customizing Edebug.
+
 Debugging Invalid Lisp Syntax
 
 * Excess Open::             How to find a spurious open paren or missing close.
@@ -478,14 +541,21 @@
 * Output Streams::          Various data types that can be used as
                               output streams.
 * Output Functions::        Functions to print Lisp objects as text.
+* Output Variables::        Variables that control what the printing
+                              functions do.
 
 Minibuffers
 
 * Intro to Minibuffers::    Basic information about minibuffers.
 * Text from Minibuffer::    How to read a straight text string.
 * Object from Minibuffer::  How to read a Lisp object or expression.
+* Minibuffer History::	    Recording previous minibuffer inputs
+			      so the user can reuse them.
+* Initial Input::           Specifying initial contents for the minibuffer.
 * Completion::              How to invoke and customize completion.
 * Yes-or-No Queries::       Asking a question with a simple answer.
+* Multiple Queries::	    Asking a series of similar questions.
+* Reading a Password::	    Reading a password from the terminal.
 * Minibuffer Misc::         Various customization hooks and variables.
 
 Completion
@@ -505,8 +575,10 @@
 * Defining Commands::   Specifying how a function should read arguments.
 * Interactive Call::    Calling a command, so that it will read arguments.
 * Command Loop Info::   Variables set by the command loop for you to examine.
+* Adjusting Point::     Adjustment of point after a command.
 * Input Events::	What input looks like when you read it.
 * Reading Input::       How to read input events from the keyboard or mouse.
+* Special Events::      Events processed immediately and individually.
 * Waiting::             Waiting for user input or elapsed time.
 * Quitting::            How @kbd{C-g} works.  How to catch or defer quitting.
 * Prefix Command Arguments::    How the commands to set prefix args work.
@@ -531,8 +603,6 @@
 * Inheritance and Keymaps::	How one keymap can inherit the bindings
 				  of another keymap.
 * Prefix Keys::                 Defining a key with a keymap as its definition.
-* Menu Keymaps::		A keymap can define a menu for X
-				  or for use from the terminal.
 * Active Keymaps::	        Each buffer has a local keymap
                                   to override the standard (global) bindings.
 				  Each minor mode can also override them.
@@ -542,12 +612,19 @@
 * Remapping Commands::          Bindings that translate one command to another.
 * Key Binding Commands::        Interactive interfaces for redefining keys.
 * Scanning Keymaps::            Looking through all keymaps, for printing help.
+* Menu Keymaps::		A keymap can define a menu for X
+				  or for use from the terminal.
 
 Major and Minor Modes
 
 * Major Modes::             Defining major modes.
 * Minor Modes::             Defining minor modes.
 * Mode Line Format::        Customizing the text that appears in the mode line.
+* Imenu::                   How a mode can provide a menu
+                              of definitions in the buffer.
+* Font Lock Mode::          How modes can highlight text according to syntax.
+* Desktop Save Mode::       How modes can have buffer state saved between
+                              Emacs sessions.
 * Hooks::                   How to use hooks; how to write code that
                               provides hooks.
 
@@ -557,17 +634,26 @@
 * Example Major Modes::     Text mode and Lisp modes.
 * Auto Major Mode::         How Emacs chooses the major mode automatically.
 * Mode Help::               Finding out how to use a mode.
+* Derived Modes::           Defining a new major mode based on another major
+                              mode.
+* Generic Modes::           Defining a simple major mode that supports
+                              comment syntax and Font Lock mode.
+* Mode Hooks::              Hooks run at the end of major mode functions.
 
 Minor Modes
 
 * Minor Mode Conventions::  Tips for writing a minor mode.
 * Keymaps and Minor Modes:: How a minor mode can have its own keymap.
+* Defining Minor Modes::    A convenient facility for defining minor modes.
 
 Mode Line Format
 
 * Mode Line Data::          The data structure that controls the mode line.
 * Mode Line Variables::     Variables used in that data structure.
 * %-Constructs::            Putting information into a mode line.
+* Properties in Mode::      Using text properties in the mode line.
+* Header Lines::            Like a mode line, but at the top.
+* Emulating Mode Line::     Formatting text as the mode line would.
 
 Documentation
 
@@ -586,11 +672,15 @@
 * Reading from Files::      Reading files into other buffers.
 * Writing to Files::        Writing new files from parts of buffers.
 * File Locks::              Locking and unlocking files, to prevent
-                                simultaneous editing by two people.
-* Information about Files::   Testing existence, accessibility, size of files.
-* Contents of Directories::   Getting a list of the files in a directory.
+                              simultaneous editing by two people.
+* Information about Files:: Testing existence, accessibility, size of files.
 * Changing Files::          Renaming files, changing protection, etc.
 * File Names::              Decomposing and expanding file names.
+* Contents of Directories:: Getting a list of the files in a directory.
+* Create/Delete Dirs::	    Creating and Deleting Directories.
+* Magic File Names::	    Defining "magic" special handling
+			      for certain file names.
+* Format Conversion::       Conversion to and from various file formats.
 
 Visiting Files
 
@@ -600,19 +690,22 @@
 Information about Files
 
 * Testing Accessibility::   Is a given file readable?  Writable?
-* Kinds of Files::          Is it a directory?  A link?
+* Kinds of Files::          Is it a directory?  A symbolic link?
+* Truenames::		    Eliminating symbolic links from a file name.
 * File Attributes::         How large is it?  Any other names?  Etc.
 
 File Names
 
 * File Name Components::    The directory part of a file name, and the rest.
+* Relative File Names::     Some file names are relative to a
+                              current directory.
 * Directory Names::         A directory's name as a directory
                               is different from its name as a file.
-* Relative File Names::     Some file names are relative to a
-                              current directory.
 * File Name Expansion::     Converting relative file names to absolute ones.
 * Unique File Names::       Generating names for temporary files.
 * File Name Completion::    Finding the completions for a given file name.
+* Standard File Names::     If your package uses a fixed file name,
+                              how to handle various operating systems simply.
 
 Backups and Auto-Saving
 
@@ -634,6 +727,8 @@
 Buffers
 
 * Buffer Basics::           What is a buffer?
+* Current Buffer::          Designating a buffer as current
+                              so primitives will access its contents.
 * Buffer Names::            Accessing and changing buffer names.
 * Buffer File Name::        The buffer file name indicates which file
                               is visited.
@@ -645,8 +740,9 @@
 * The Buffer List::         How to look at all the existing buffers.
 * Creating Buffers::        Functions that create buffers.
 * Killing Buffers::         Buffers exist until explicitly killed.
-* Current Buffer::          Designating a buffer as current
-                              so primitives will access its contents.
+* Indirect Buffers::        An indirect buffer shares text with some
+                              other buffer.
+* Buffer Gap::              The gap in the buffer.
 
 Windows
 
@@ -658,14 +754,20 @@
 * Buffers and Windows::     Each window displays the contents of a buffer.
 * Displaying Buffers::      Higher-lever functions for displaying a buffer
                               and choosing a window for it.
+* Choosing Window::	    How to choose a window for displaying a buffer.
 * Window Point::            Each window has its own location of point.
 * Window Start::            The display-start position controls which text
                               is on-screen in the window.
-* Vertical Scrolling::      Moving text up and down in the window.
-* Horizontal Scrolling::    Moving text sideways on the window.
+* Textual Scrolling::       Moving text up and down through the window.
+* Vertical Scrolling::      Moving the contents up and down on the window.
+* Horizontal Scrolling::    Moving the contents sideways on the window.
 * 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 Configurations::   Saving and restoring the state of the screen.
+* Window Hooks::            Hooks for scrolling, window size changes,
+                              redisplay going past a certain point,
+                              or window configuration changes.
 
 Frames
 
@@ -690,6 +792,7 @@
 * Pointer Shapes::          Specifying the shape of the mouse pointer.
 * Window System Selections::Transferring text to and from other windows.
 * Color Names::	            Getting the definitions of color names.
+* Text Terminal Colors::    Defining colors for text-only terminals.
 * Resources::		    Getting resource values from the server.
 * Display Feature Testing:: Determining the features of a terminal.
 
@@ -715,8 +818,10 @@
 * Overview of Markers::     The components of a marker, and how it relocates.
 * Predicates on Markers::   Testing whether an object is a marker.
 * Creating Markers::        Making empty markers or markers at certain places.
-* Information from Markers::  Finding the marker's buffer or character
-                                position.
+* Information from Markers::Finding the marker's buffer or character
+                              position.
+* Marker Insertion Types::  Two ways a marker can relocate when you
+                              insert where it points.
 * Moving Markers::          Moving the marker to a new buffer or position.
 * The Mark::                How ``the mark'' is implemented with a marker.
 * The Region::              How to access ``the region''.
@@ -725,6 +830,7 @@
 
 * Near Point::              Examining text in the vicinity of point.
 * Buffer Contents::         Examining text in a general fashion.
+* Comparing Text::          Comparing substrings of buffers.
 * Insertion::               Adding new text to a buffer.
 * Commands for Insertion::  User-level commands to insert text.
 * Deletion::                Removing text from a buffer.
@@ -732,21 +838,25 @@
 * The Kill Ring::           Where removed text sometimes is saved for
                               later use.
 * Undo::                    Undoing changes to the text of a buffer.
-* Auto Filling::            How auto-fill mode is implemented to break lines.
+* Maintaining Undo::        How to enable and disable undo information.
+			      How to control how much information is kept.
 * Filling::                 Functions for explicit filling.
 * Margins::                 How to specify margins for filling commands.
+* Adaptive Fill::           Adaptive Fill mode chooses a fill prefix
+                              from context.
+* Auto Filling::            How auto-fill mode is implemented to break lines.
 * Sorting::                 Functions for sorting parts of the buffer.
+* Columns::                 Computing horizontal positions, and using them.
 * Indentation::             Functions to insert or adjust indentation.
-* Columns::                 Computing horizontal positions, and using them.
 * Case Changes::            Case conversion of parts of the buffer.
 * Text Properties::         Assigning Lisp property lists to text characters.
 * Substitution::            Replacing a given character wherever it appears.
 * Transposition::           Swapping two portions of a buffer.
 * Registers::               How registers are implemented.  Accessing
                               the text or position stored in a register.
-* Atomic Changes::          Installing several buffer changes ``atomically''.
 * Base 64::                 Conversion to or from base 64 encoding.
 * MD5 Checksum::            Compute the MD5 ``message digest''/``checksum''.
+* Atomic Changes::          Installing several buffer changes ``atomically''.
 * Change Hooks::            Supplying functions to be run when text is changed.
 
 The Kill Ring
@@ -782,6 +892,7 @@
                               only when text is examined.
 * Clickable Text::          Using text properties to make regions of text
                               do something when you click on them.
+* Links and Mouse-1::       How to make @key{Mouse-1} follow a link.
 * Fields::                  The @code{field} property defines
                               fields within the buffer.
 * Not Intervals::	    Why text properties do not use
@@ -810,25 +921,31 @@
 * String Search::           Search for an exact match.
 * Regular Expressions::     Describing classes of strings.
 * Regexp Search::           Searching for a match for a regexp.
+* POSIX Regexps::           Searching POSIX-style for the longest match.
+* Search and Replace::	    Internals of @code{query-replace}.
 * Match Data::              Finding out which part of the text matched
                               various parts of a regexp, after regexp search.
-* Saving Match Data::       Saving and restoring this information.
+* Searching and Case::      Case-independent or case-significant searching.
 * Standard Regexps::        Useful regexps for finding sentences, pages,...
-* Searching and Case::      Case-independent or case-significant searching.
 
 Regular Expressions
 
 * Syntax of Regexps::       Rules for writing regular expressions.
 * Regexp Example::          Illustrates regular expression syntax.
+* Regexp Functions::        Functions for operating on regular expressions.
 
 Syntax Tables
 
+* Syntax Basics::           Basic concepts of syntax tables.
 * Syntax Descriptors::      How characters are classified.
 * Syntax Table Functions::  How to create, examine and alter syntax tables.
+* Syntax Properties::       Overriding syntax with text properties.
+* Motion and Syntax::	    Moving over characters with certain syntaxes.
 * Parsing Expressions::     Parsing balanced expressions
                               using the syntax table.
 * Standard Syntax Tables::  Syntax tables used by various major modes.
 * Syntax Table Internals::  How syntax table information is stored.
+* Categories::              Another way of classifying character syntax.
 
 Syntax Descriptors
 
@@ -838,15 +955,16 @@
 Abbrevs And Abbrev Expansion
 
 * Abbrev Mode::             Setting up Emacs for abbreviation.
-* Tables: Abbrev Tables.    Creating and working with abbrev tables.
+* Abbrev Tables::           Creating and working with abbrev tables.
 * Defining Abbrevs::        Specifying abbreviations and their expansions.
-* Files: Abbrev Files.      Saving abbrevs in files.
-* Expansion: Abbrev Expansion.  Controlling expansion; expansion subroutines.
+* Abbrev Files::            Saving abbrevs in files.
+* Abbrev Expansion::        Controlling expansion; expansion subroutines.
 * Standard Abbrev Tables::  Abbrev tables used by various major modes.
 
 Processes
 
 * Subprocess Creation::     Functions that start subprocesses.
+* Shell Arguments::         Quoting an argument to pass it to a shell.
 * Synchronous Processes::   Details of using synchronous subprocesses.
 * Asynchronous Processes::  Starting up an asynchronous subprocess.
 * Deleting Processes::      Eliminating an asynchronous subprocess.
@@ -856,7 +974,13 @@
                               an asynchronous subprocess.
 * Output from Processes::   Collecting output from an asynchronous subprocess.
 * Sentinels::               Sentinels run when process run-status changes.
+* Query Before Exit::       Whether to query if exiting will kill a process.
+* Transaction Queues::      Transaction-based communication with subprocesses.
 * Network::                 Opening network connections.
+* Network Servers::         Network servers let Emacs accept net connections.
+* Datagrams::               UDP network connections.
+* Low-Level Network::       Lower-level but more general function
+                              to create connections and servers.
 
 Receiving Output from Processes
 
@@ -865,14 +989,53 @@
 * Decoding Output::         Filters can get unibyte or multibyte strings.
 * Accepting Output::        How to wait until process output arrives.
 
+Emacs Display
+
+* Refresh Screen::          Clearing the screen and redrawing everything on it.
+* Forcing Redisplay::       Forcing redisplay.
+* Truncation::              Folding or wrapping long text lines.
+* The Echo Area::           Where messages are displayed.
+* Warnings::                Displaying warning messages for the user.
+* Progress::                Informing user about progress of a long operation.
+* Invisible Text::          Hiding part of the buffer text.
+* Selective Display::       Hiding part of the buffer text.
+* Temporary Displays::      Displays that go away automatically.
+* Overlays::		    Use overlays to highlight parts of the buffer.
+* Width::                   How wide a character or string is on the screen.
+* Line Height::             Controlling the height of lines.
+* Faces::		    A face defines a graphics style
+                              for text characters: font, colors, etc.
+* Fringes::                 Controlling window fringes.
+* Scroll Bars::             Controlling vertical scroll bars.
+* Pointer Shape::           Controlling the mouse pointer shape.
+* Display Property::        Enabling special display features.
+* Images::                  Displaying images in Emacs buffers.
+* Buttons::                 Adding clickable buttons to Emacs buffers.
+* Blinking::                How Emacs shows the matching open parenthesis.
+* Inverse Video::	    Specifying how the screen looks.
+* Usual Display::	    The usual conventions for displaying nonprinting chars.
+* Display Tables::	    How to specify other conventions.
+* Beeping::                 Audible signal to the user.
+* Window Systems::          Which window system is being used.
+
 Operating System Interface
 
 * Starting Up::             Customizing Emacs start-up processing.
 * Getting Out::             How exiting works (permanent or temporary).
 * System Environment::      Distinguish the name and kind of system.
+* User Identification::     Finding the name and user id of the user.
+* Time of Day::		    Getting the current time.
+* Time Conversion::         Converting a time from numeric form to a string, or
+                              to calendrical data (or vice versa).
+* Processor Run Time::      Getting the run time used by Emacs.
+* Time Calculations::       Adding, subtracting, comparing times, etc.
+* Timers::		    Setting a timer to call a function at a certain time.
 * Terminal Input::          Recording terminal input for debugging.
 * Terminal Output::         Recording terminal output for debugging.
+* Sound Output::            Playing sounds on the computer's speaker.
+* X11 Keysyms::             Operating on key symbols for X Windows
 * Batch Mode::              Running Emacs without terminal interaction.
+* Session Management::      Saving and restoring state with X Session Management.
 
 Starting Up Emacs
 
@@ -887,36 +1050,22 @@
 * Killing Emacs::           Exiting Emacs irreversibly.
 * Suspending Emacs::        Exiting Emacs reversibly.
 
-Emacs Display
+Tips and Conventions
 
-* Refresh Screen::          Clearing the screen and redrawing everything on it.
-* Truncation::              Folding or wrapping long text lines.
-* The Echo Area::           Where messages are displayed.
-* Warnings::                Displaying warning messages for the user.
-* Selective Display::       Hiding part of the buffer text.
-* Overlay Arrow::           Display of an arrow to indicate position.
-* Temporary Displays::      Displays that go away automatically.
-* Overlays::		    Use overlays to highlight parts of the buffer.
-* Width::                   How wide a character or string is on the screen.
-* Faces::		    A face defines a graphics style
-                              for text characters: font, colors, etc.
-* Fringes::                 Controlling window fringes.
-* Display Property::        Enabling special display features.
-* Images::                  Displaying images in Emacs buffers.
-* Blinking::                How Emacs shows the matching open parenthesis.
-* Inverse Video::	    Specifying how the screen looks.
-* Usual Display::	    The usual conventions for displaying nonprinting chars.
-* Display Tables::	    How to specify other conventions.
-* Beeping::                 Audible signal to the user.
-* Window Systems::          Which window system is being used.
+* Coding Conventions::      Conventions for clean and robust programs.
+* Compilation Tips::        Making compiled code run fast.
+* Documentation Tips::      Writing readable documentation strings.
+* Comment Tips::	    Conventions for writing comments.
+* Library Headers::         Standard headers for library packages.
 
 GNU Emacs Internals
 
 * Building Emacs::          How to preload Lisp libraries into Emacs.
 * Pure Storage::            A kludge to make preloaded Lisp functions sharable.
 * Garbage Collection::      Reclaiming space for Lisp objects no longer used.
+* Memory Usage::            Info about total size of Lisp objects made so far.
+* Writing Emacs Primitives::  Writing C code for Emacs.
 * Object Internals::        Data formats of buffers, windows, processes.
-* Writing Emacs Primitives::  Writing C code for Emacs.
 
 Object Internals
 
--- a/lispref/keymaps.texi	Mon May 09 16:17:25 2005 +0000
+++ b/lispref/keymaps.texi	Fri May 13 22:59:23 2005 +0000
@@ -1909,6 +1909,10 @@
 The property value @var{filter-fn} should be a function of one argument;
 when it is called, its argument will be @var{real-binding}.  The
 function should return the binding to use instead.
+
+Emacs can call this function at any time that it does redisplay or
+operates on menu data structures, so you should write it so it can
+safely be called at any time.
 @end table
 
 @node Menu Separators
--- a/lispref/modes.texi	Mon May 09 16:17:25 2005 +0000
+++ b/lispref/modes.texi	Fri May 13 22:59:23 2005 +0000
@@ -71,10 +71,9 @@
 parent argument, since it automatically enforces the most important
 coding conventions for you.
 
-@findex define-generic-mode
   For a very simple programming language major mode that handles
-comments and fontification, you can use @code{define-generic-mode}
-in @file{generic.el}.
+comments and fontification, you can use @code{define-generic-mode}.
+@xref{Generic Modes}.
 
   Rmail Edit mode offers an example of changing the major mode
 temporarily for a buffer, so it can be edited in a different way (with
@@ -873,7 +872,7 @@
 @code{define-generic-mode}.  See the file @file{generic-x.el} for some
 examples of the use of @code{define-generic-mode}.
 
-@defmac define-generic-mode mode comment-list keyword-list font-lock-list auto-mode-list function-list &optional docstring &rest custom-keyword-args
+@defmac define-generic-mode mode comment-list keyword-list font-lock-list auto-mode-list function-list &optional docstring
 This macro creates a new generic mode.  The argument @var{mode} (an
 unquoted symbol) is the major mode command.  The optional argument
 @var{docstring} is the documentation for the mode command.  If you do
@@ -902,16 +901,7 @@
 
 @var{function-list} is a list of functions to call to do some
 additional setup.  The mode command calls these functions just before
-it runs the mode hook.
-
-The optional @var{custom-keyword-args} are pairs of keywords and
-values to include in the generated @code{defcustom} form for the mode
-hook variable @code{@var{mode}-hook}.  The default value for the
-@samp{:group} keyword is @var{mode} with the final @samp{-mode} (if
-any) removed.  Don't use this default group name unless you have
-written a @code{defgroup} to define that group properly (@pxref{Group
-Definitions}).  You can specify keyword arguments without specifying a
-docstring.
+it runs the mode hook variable @code{@var{mode}-hook}.
 @end defmac
 
 @node Mode Hooks
--- a/lispref/processes.texi	Mon May 09 16:17:25 2005 +0000
+++ b/lispref/processes.texi	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,6 @@
 @c -*-texinfo-*-
 @c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999
+@c Copyright (C) 1990, 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2005
 @c   Free Software Foundation, Inc.
 @c See the file elisp.texi for copying conditions.
 @setfilename ../info/processes
@@ -49,7 +49,7 @@
 * Transaction Queues::	     Transaction-based communication with subprocesses.
 * Network::                  Opening network connections.
 * Network Servers::          Network servers let Emacs accept net connections.
-* Datagrams::
+* Datagrams::                UDP network connections.
 * Low-Level Network::        Lower-level but more general function
                                to create connections and servers.
 @end menu
@@ -870,7 +870,7 @@
 user hung up the phone.)
 
   Each of the signal-sending functions takes two optional arguments:
-@var{process-name} and @var{current-group}.
+@var{process} and @var{current-group}.
 
   The argument @var{process} must be either a process, a process
 name, a buffer, a buffer name, or @code{nil}.  A buffer or buffer name
@@ -1767,7 +1767,7 @@
 are the meaningful keywords:
 
 @table @asis
-@item :name name
+@item :name @var{name}
 Use the string @var{name} as the process name.  It is modified if
 necessary to make it unique.
 
--- a/mac/ChangeLog	Mon May 09 16:17:25 2005 +0000
+++ b/mac/ChangeLog	Fri May 13 22:59:23 2005 +0000
@@ -1,6 +1,47 @@
+2005-05-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* makefile.MPW (buildobj.lst): New target.
+	(Clean): Delete file buildobj.lst.
+	(Emacs, {DocTarget}DOC): Depend on buildobj.lst.
+	(EmacsSource, MacSource, LispSource, LispSourceDontCompile):
+	Remove variables.
+	(SOME_MACHINE_OBJECTS, shortlisp, SOME_MACHINE_LISP): New
+	variables.
+	({DocTarget}DOC): Use them.
+	(Make-DocFile-PPCCOptions): Add `-d MAC_OS -d MAC_OS8'.
+
+	* inc/config.h: Sync with src/config.in.
+	(DO_BLOCK_INPUT, HAVE_DIFFTIME, HAVE_LOCALE_H, HAVE_MEMCMP)
+	(HAVE_MEMCPY, HAVE_MEMMOVE, HAVE_MEMSET, HAVE_SETITIMER)
+	(HAVE_SIZE_T, HAVE_SYS_IOCTL_H, HAVE_SYS_PARAM_H, HAVE_SYS_STAT_H)
+	(HAVE_SYS_TYPES_H, TIME_WITH_SYS_TIME, SYNC_INPUT): Define them.
+	[__MRC__] (HAVE_ALLOCA_H): Likewise.
+	(config_machfile, config_opsysfile, my_strftime): New macros.
+	(HAVE_PWD_H): Move from s-mac.h.
+	(HAVE_ALLOCA, C_ALLOCA): Move from m-mac.h.
+	(PTR): Move to s-mac.h.
+
+	* inc/m-mac.h: (HAVE_ALLOCA, C_ALLOCA): Move to config.h.
+
+	* inc/s-mac.h: Sync with src/s/template.h.  Don't include fcntl.h,
+	time.h, or signal.h.
+	(index, rindex): New macros.
+	[__MRC__] (sigmask, __signal_max, NSIG): Adjust signal numbers for
+	compatibility with predefined ones.
+	(PTR): Move from s-mac.h.
+	(HAVE_PWD_H): Move to config.h.
+	(volatile): Remove macro.
+	[__MRC__] (strftime): Likewise.
+	(read_input_waiting, sys_gmtime, sys_localtime, sys_ctime)
+	(sys_time, sys_signal, atof): Remove declarations.
+
+	* inc/sys/time.h (ITIMER_REAL): New macro.
+	(struct itimerval): New struct.
+	(setitimer): New extern.
+
 2005-05-06  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
-	* inc/config.h [HAVE_CARBON]: Define USE_TOOLKIT_SCROLL_BARS.
+	* inc/config.h [HAVE_CARBON] (USE_TOOLKIT_SCROLL_BARS): Define.
 
 2005-04-24  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
@@ -10,7 +51,7 @@
 
 	* Emacs.app/Contents/Info.plist: Add NSServices key and data.
 
-	* inc/s-mac.h: Define HAVE_PWD_H.
+	* inc/s-mac.h (HAVE_PWD_H): Define.
 
 2005-04-14  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
 
--- a/mac/inc/config.h	Mon May 09 16:17:25 2005 +0000
+++ b/mac/inc/config.h	Fri May 13 22:59:23 2005 +0000
@@ -22,84 +22,882 @@
 
 /* Contributed by Andrew Choi (akochoi@mac.com).  */
 
-
-/* No code in Emacs #includes config.h twice, but some of the code
+/* No code in Emacs #includes config.h twice, but some bits of code
    intended to work with other packages as well (like gmalloc.c)
    think they can include it as many times as they like.  */
 #ifndef EMACS_CONFIG_H
 #define EMACS_CONFIG_H
 
-/* These are all defined in the top-level Makefile by configure.
-   They're here only for reference.  */
+
+/* Define to 1 if the mktime function is broken. */
+/* #undef BROKEN_MKTIME */
+
+/* Define to one of `_getb67', `GETB67', `getb67' for Cray-2 and Cray-YMP
+   systems. This function is required for `alloca.c' support on those systems.
+   */
+/* #undef CRAY_STACKSEG_END */
+
+/* Define to 1 if using `alloca.c'. */
+#ifndef __MRC__  /* CodeWarrior */
+#define C_ALLOCA 1
+#endif
 
-/* Define GNU_MALLOC if you want to use the GNU memory allocator. */
-/* #undef GNU_MALLOC */
+/* Define to 1 if using `getloadavg.c'. */
+/* #undef C_GETLOADAVG */
 
-/* Define if you are using the GNU C Library. */
+/* Define C_SWITCH_X_SITE to contain any special flags your compiler
+   may need to deal with X Windows.  For instance, if you've defined
+   HAVE_X_WINDOWS above and your X include files aren't in a place
+   that your compiler can find on its own, you might want to add
+   "-I/..." or something similar.  */
+/* #undef C_SWITCH_X_SITE */
+
+/* Define to 1 for DGUX with <sys/dg_sys_info.h>. */
+/* #undef DGUX */
+
+/* Define to 1 if you are using the GNU C Library. */
 /* #undef DOUG_LEA_MALLOC */
 
-/* Define REL_ALLOC if you want to use the relocating allocator for
-   buffer space. */
-/* #undef REL_ALLOC */
+/* Define to the canonical Emacs configuration name. */
+#ifdef __MRC__
+#define EMACS_CONFIGURATION "macos-mpw"
+#else  /* Assume CodeWarrior */
+#define EMACS_CONFIGURATION "macos-cw"
+#endif
+
+/* Define to the options passed to configure. */
+#define EMACS_CONFIG_OPTIONS ""
+
+/* Define to 1 if the `getpgrp' function requires zero arguments. */
+/* #undef GETPGRP_VOID */
+
+/* Define to 1 if gettimeofday accepts only one argument. */
+#define GETTIMEOFDAY_ONE_ARGUMENT 1
+
+/* Define to 1 if you want to use the GNU memory allocator. */
+/* #undef GNU_MALLOC */
+
+/* Define to 1 if the file /usr/lpp/X11/bin/smt.exp exists. */
+/* #undef HAVE_AIX_SMT_EXP */
+
+/* Define to 1 if you have the `alarm' function. */
+/* #undef HAVE_ALARM */
+
+/* Define to 1 if you have `alloca', as a function or macro. */
+#ifdef __MRC__
+#define HAVE_ALLOCA 1
+#endif
+
+/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
+   */
+#ifdef __MRC__
+#define HAVE_ALLOCA_H 1
+#endif
+
+/* Define to 1 if you have the `bcmp' function. */
+/* #define HAVE_BCMP */
+
+/* Define to 1 if you have the `bcopy' function. */
+/* #define HAVE_BCOPY */
+
+/* Define to 1 if you have the `bzero' function. */
+/* #define HAVE_BZERO */
+
+/* Define to 1 if you are using the Carbon API on Mac OS X. */
+/* #undef HAVE_CARBON */
+
+/* Define to 1 if you have the `cbrt' function. */
+/* #undef HAVE_CBRT */
+
+/* Define to 1 if you have the `closedir' function. */
+#define HAVE_CLOSEDIR 1
+
+/* Define to 1 if you have the <coff.h> header file. */
+/* #undef HAVE_COFF_H */
+
+/* Define to 1 if you have the <com_err.h> header file. */
+/* #undef HAVE_COM_ERR_H */
+
+/* Define to 1 if you have /usr/lib/crti.o. */
+/* #undef HAVE_CRTIN */
+
+/* Define to 1 if you have the declaration of `sys_siglist', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL_SYS_SIGLIST */
+
+/* Define to 1 if you have the declaration of `__sys_siglist', and to 0 if you
+   don't. */
+/* #undef HAVE_DECL___SYS_SIGLIST */
+
+/* Define to 1 if you have the <des.h> header file. */
+/* #undef HAVE_DES_H */
+
+/* Define to 1 if dynamic ptys are supported. */
+/* #undef HAVE_DEV_PTMX */
+
+/* Define to 1 if you have the `difftime' function. */
+#define HAVE_DIFFTIME 1
+
+/* Define to 1 if you have the `dup2' function. */
+/* #undef HAVE_DUP2 */
+
+/* Define to 1 if you have the `euidaccess' function. */
+/* #undef HAVE_EUIDACCESS */
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
 
-/* Define HAVE_X_WINDOWS if you want to use the X window system.  */
-/* #undef HAVE_X_WINDOWS */
+/* Define to 1 if you have the `fmod' function. */
+#define HAVE_FMOD 1
+
+/* Define to 1 if you have the `fork' function. */
+/* #undef HAVE_FORK */
+
+/* Define to 1 if you have the `fpathconf' function. */
+/* #undef HAVE_FPATHCONF */
+
+/* Define to 1 if you have the `frexp' function. */
+#define HAVE_FREXP 1
+
+/* Define to 1 if fseeko (and presumably ftello) exists and is declared. */
+/* #undef HAVE_FSEEKO */
+
+/* Define to 1 if you have the `fsync' function. */
+/* #undef HAVE_FSYNC */
+
+/* Define to 1 if you have the `ftime' function. */
+/* #undef HAVE_FTIME */
+
+/* Define to 1 if you have the `gai_strerror' function. */
+/* #undef HAVE_GAI_STRERROR */
+
+/* Define to 1 if you have the `gdk_display_open' function. */
+/* #undef HAVE_GDK_DISPLAY_OPEN */
+
+/* Define to 1 if you have the `getaddrinfo' function. */
+/* #undef HAVE_GETADDRINFO */
+
+/* Define to 1 if you have the `getcwd' function. */
+/* #undef HAVE_GETCWD */
+
+/* Define to 1 if you have the `getdelim' function. */
+/* #undef HAVE_GETDELIM */
+
+/* Define to 1 if you have the `getdomainname' function. */
+/* #undef HAVE_GETDOMAINNAME */
+
+/* Define to 1 if you have the `gethostname' function. */
+/* #undef HAVE_GETHOSTNAME */
+
+/* Define to 1 if you have the `getline' function. */
+/* #undef HAVE_GETLINE */
+
+/* Define to 1 if you have the `getloadavg' function. */
+/* #undef HAVE_GETLOADAVG */
+
+/* Define to 1 if you have the `getpagesize' function. */
+/* #undef HAVE_GETPAGESIZE */
+
+/* Define to 1 if you have the `getpeername' function. */
+/* #undef HAVE_GETPEERNAME */
+
+/* Define to 1 if you have the `getpt' function. */
+/* #undef HAVE_GETPT */
+
+/* Define to 1 if you have the `getrusage' function. */
+/* #undef HAVE_GETRUSAGE */
+
+/* Define to 1 if you have the `getsockname' function. */
+/* #undef HAVE_GETSOCKNAME */
+
+/* Define to 1 if you have the `getsockopt' function. */
+/* #undef HAVE_GETSOCKOPT */
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the `getwd' function. */
+#define HAVE_GETWD 1
+
+/* Define to 1 if you have the ungif library (-lungif). */
+/* #undef HAVE_GIF */
+
+/* Define to 1 if you have the `grantpt' function. */
+/* #undef HAVE_GRANTPT */
+
+/* Define to 1 if using GTK. */
+/* #undef HAVE_GTK */
+
+/* Define to 1 if you have GTK and pthread (-lpthread). */
+/* #undef HAVE_GTK_AND_PTHREAD */
+
+/* Define to 1 if GTK has both file selection and chooser dialog. */
+/* #undef HAVE_GTK_FILE_BOTH */
+
+/* Define to 1 if you have the `gtk_file_chooser_dialog_new' function. */
+/* #undef HAVE_GTK_FILE_CHOOSER_DIALOG_NEW */
+
+/* Define to 1 if you have the `gtk_file_selection_new' function. */
+/* #undef HAVE_GTK_FILE_SELECTION_NEW */
 
-/* Define HAVE_X11 if you want to use version 11 of X windows.
-   Otherwise, Emacs expects to use version 10.  */
-/* #undef HAVE_X11 */
+/* Define to 1 if GTK can handle more than one display. */
+/* #undef HAVE_GTK_MULTIDISPLAY */
+
+/* Define to 1 if netdb.h declares h_errno. */
+/* #undef HAVE_H_ERRNO */
+
+/* Define to 1 if you have the `index' function. */
+/* #undef HAVE_INDEX */
+
+/* Define to 1 if you have inet sockets. */
+/* #undef HAVE_INET_SOCKETS */
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+/* #undef HAVE_INTTYPES_H */
+
+/* Define to 1 if you have the jpeg library (-ljpeg). */
+/* #undef HAVE_JPEG */
+
+/* Define to 1 if you have the <kerberosIV/des.h> header file. */
+/* #undef HAVE_KERBEROSIV_DES_H */
+
+/* Define to 1 if you have the <kerberosIV/krb.h> header file. */
+/* #undef HAVE_KERBEROSIV_KRB_H */
+
+/* Define to 1 if you have the <kerberos/des.h> header file. */
+/* #undef HAVE_KERBEROS_DES_H */
+
+/* Define to 1 if you have the <kerberos/krb.h> header file. */
+/* #undef HAVE_KERBEROS_KRB_H */
+
+/* Define to 1 if you have the <krb5.h> header file. */
+/* #undef HAVE_KRB5_H */
+
+/* Define to 1 if you have the <krb.h> header file. */
+/* #undef HAVE_KRB_H */
+
+/* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
+/* #undef HAVE_LANGINFO_CODESET */
+
+/* Define to 1 if you have the `com_err' library (-lcom_err). */
+/* #undef HAVE_LIBCOM_ERR */
+
+/* Define to 1 if you have the `crypto' library (-lcrypto). */
+/* #undef HAVE_LIBCRYPTO */
+
+/* Define to 1 if you have the `des' library (-ldes). */
+/* #undef HAVE_LIBDES */
+
+/* Define to 1 if you have the `des425' library (-ldes425). */
+/* #undef HAVE_LIBDES425 */
+
+/* Define to 1 if you have the `dgc' library (-ldgc). */
+/* #undef HAVE_LIBDGC */
+
+/* Define to 1 if you have the `dnet' library (-ldnet). */
+/* #undef HAVE_LIBDNET */
+
+/* Define to 1 if you have the hesiod library (-lhesiod). */
+/* #undef HAVE_LIBHESIOD */
+
+/* Define to 1 if you have the `intl' library (-lintl). */
+/* #undef HAVE_LIBINTL */
+
+/* Define to 1 if you have the `k5crypto' library (-lk5crypto). */
+/* #undef HAVE_LIBK5CRYPTO */
+
+/* Define to 1 if you have the `krb' library (-lkrb). */
+/* #undef HAVE_LIBKRB */
+
+/* Define to 1 if you have the `krb4' library (-lkrb4). */
+/* #undef HAVE_LIBKRB4 */
+
+/* Define to 1 if you have the `krb5' library (-lkrb5). */
+/* #undef HAVE_LIBKRB5 */
+
+/* Define to 1 if you have the `kstat' library (-lkstat). */
+/* #undef HAVE_LIBKSTAT */
+
+/* Define to 1 if you have the `lockfile' library (-llockfile). */
+/* #undef HAVE_LIBLOCKFILE */
+
+/* Define to 1 if you have the `m' library (-lm). */
+/* #undef HAVE_LIBM */
+
+/* Define to 1 if you have the `mail' library (-lmail). */
+/* #undef HAVE_LIBMAIL */
+
+/* Define to 1 if you have the `ncurses' library (-lncurses). */
+/* #undef HAVE_LIBNCURSES */
+
+/* Define to 1 if you have the <libpng/png.h> header file. */
+/* #undef HAVE_LIBPNG_PNG_H */
 
-/* Define if using an X toolkit.  */
-/* #undef USE_X_TOOLKIT */
+/* Define to 1 if you have the `pthreads' library (-lpthreads). */
+/* #undef HAVE_LIBPTHREADS */
+
+/* Define to 1 if you have the resolv library (-lresolv). */
+/* #undef HAVE_LIBRESOLV */
+
+/* Define to 1 if you have the `Xext' library (-lXext). */
+/* #undef HAVE_LIBXEXT */
+
+/* Define to 1 if you have the `Xmu' library (-lXmu). */
+/* #undef HAVE_LIBXMU */
+
+/* Define to 1 if you have the Xp library (-lXp). */
+/* #undef HAVE_LIBXP */
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define to 1 if you have the <linux/version.h> header file. */
+/* #undef HAVE_LINUX_VERSION_H */
+
+/* Define to 1 if you have the <locale.h> header file. */
+#define HAVE_LOCALE_H 1
+
+/* Define to 1 if you have the `logb' function. */
+#define HAVE_LOGB 1
+
+/* Define to 1 if you support file names longer than 14 characters. */
+/* #undef HAVE_LONG_FILE_NAMES */
+
+/* Define to 1 if you have the `lrand48' function. */
+/* #undef HAVE_LRAND48 */
+
+/* Define to 1 if you have the <machine/soundcard.h> header file. */
+/* #undef HAVE_MACHINE_SOUNDCARD_H */
+
+/* Define to 1 if you have the <mach/mach.h> header file. */
+/* #undef HAVE_MACH_MACH_H */
+
+/* Define to 1 if you have the <maillock.h> header file. */
+/* #undef HAVE_MAILLOCK_H */
+
+/* Define to 1 if you have the <malloc/malloc.h> header file. */
+/* #undef HAVE_MALLOC_MALLOC_H */
 
-/* Define this if you're using XFree386.  */
-/* #undef HAVE_XFREE386 */
+/* Define to 1 if you have the `mblen' function. */
+/* #undef HAVE_MBLEN */
+
+/* Define to 1 if you have the `mbrlen' function. */
+/* #undef HAVE_MBRLEN */
+
+/* Define to 1 if you have the `mbsinit' function. */
+/* #undef HAVE_MBSINIT */
+
+/* Define to 1 if <wchar.h> declares mbstate_t. */
+/* #undef HAVE_MBSTATE_T */
+
+/* Define to 1 if you have the `memcmp' function. */
+#define HAVE_MEMCMP 1
+
+/* Define to 1 if you have the `memcpy' function. */
+#define HAVE_MEMCPY 1
+
+/* Define to 1 if you have the `memmove' function. */
+#define HAVE_MEMMOVE 1
+
+/* Define to 1 if you have the <memory.h> header file. */
+/* #undef HAVE_MEMORY_H */
 
-/* Define this if you have Motif 2.1 or newer.  */
+/* Define to 1 if you have the `mempcpy' function. */
+/* #undef HAVE_MEMPCPY */
+
+/* Define to 1 if you have the `memset' function. */
+#define HAVE_MEMSET 1
+
+/* Define to 1 if you have mouse menus. (This is automatic if you use X, but
+   the option to specify it remains.) It is also defined with other window
+   systems that support xmenu.c. */
+#define HAVE_MENUS 1
+
+/* Define to 1 if you have the `mkdir' function. */
+#define HAVE_MKDIR 1
+
+/* Define to 1 if you have the `mkstemp' function. */
+/* #undef HAVE_MKSTEMP */
+
+/* Define to 1 if you have the `mktime' function. */
+/* #undef HAVE_MKTIME */
+
+/* Define to 1 if you have a working `mmap' system call. */
+/* #undef HAVE_MMAP */
+
+/* Define to 1 if you have Motif 2.1 or newer. */
 /* #undef HAVE_MOTIF_2_1 */
 
-/* Define HAVE_MENUS if you have mouse menus.
-   (This is automatic if you use X, but the option to specify it remains.)
-   It is also defined with other window systems that support xmenu.c.  */
-#define HAVE_MENUS 1
+/* Define to 1 if you have the `mremap' function. */
+/* #undef HAVE_MREMAP */
+
+/* Define to 1 if you have the <net/if.h> header file. */
+/* #define HAVE_NET_IF_H */
+
+/* Define to 1 if you have the <nlist.h> header file. */
+/* #undef HAVE_NLIST_H */
+
+/* Define to 1 if personality LINUX32 can be set. */
+/* #undef HAVE_PERSONALITY_LINUX32 */
+
+/* Define to 1 if you have the png library (-lpng). */
+/* #undef HAVE_PNG */
+
+/* Define to 1 if you have the <png.h> header file. */
+/* #undef HAVE_PNG_H */
+
+/* Define to 1 if you have the `posix_memalign' function. */
+/* #undef HAVE_POSIX_MEMALIGN */
+
+/* Define to 1 if you have the `pstat_getdynamic' function. */
+/* #undef HAVE_PSTAT_GETDYNAMIC */
+
+/* Define to 1 if you have the <pthread.h> header file. */
+/* #undef HAVE_PTHREAD_H */
+
+/* Define to 1 if you have the <pty.h> header file. */
+/* #undef HAVE_PTY_H */
+
+/* Define to 1 if you have the <pwd.h> header file. */
+#define HAVE_PWD_H 1
+
+/* Define to 1 if you have the `random' function. */
+/* #undef HAVE_RANDOM */
+
+/* Define to 1 if you have the `recvfrom' function. */
+/* #undef HAVE_RECVFROM */
+
+/* Define to 1 if you have the `rename' function. */
+#define HAVE_RENAME 1
+
+/* Define to 1 if you have the `res_init' function. */
+/* #undef HAVE_RES_INIT */
+
+/* Define to 1 if you have the `rindex' function. */
+/* #undef HAVE_RINDEX */
+
+/* Define to 1 if you have the `rint' function. */
+#ifdef __MRC__
+#undef HAVE_RINT
+#else  /* CodeWarrior */
+#define HAVE_RINT
+#endif
+
+/* Define to 1 if you have the `rmdir' function. */
+#define HAVE_RMDIR 1
+
+/* Define to 1 if you have the `select' function. */
+#define HAVE_SELECT 1
+
+/* Define to 1 if you have the `sendto' function. */
+/* #undef HAVE_SENDTO */
+
+/* Define to 1 if you have the `setitimer' function. */
+#define HAVE_SETITIMER 1
+
+/* Define to 1 if you have the `setlocale' function. */
+#define HAVE_SETLOCALE 1
+
+/* Define to 1 if you have the `setpgid' function. */
+/* #undef HAVE_SETPGID */
+
+/* Define to 1 if you have the `setrlimit' function. */
+/* #undef HAVE_SETRLIMIT */
+
+/* Define to 1 if you have the `setsid' function. */
+/* #undef HAVE_SETSID */
+
+/* Define to 1 if you have the `setsockopt' function. */
+/* #undefine HAVE_SETSOCKOPT */
+
+/* Define to 1 if you have the `shutdown' function. */
+/* #undef HAVE_SHUTDOWN */
+
+/* Define to 1 if the system has the type `size_t'. */
+#define HAVE_SIZE_T 1
+
+/* Define to 1 if you have the <soundcard.h> header file. */
+/* #undef HAVE_SOUNDCARD_H */
+
+/* Define to 1 if `speed_t' is declared by <termios.h>. */
+/* #undef HAVE_SPEED_T */
+
+/* Define to 1 if you have the <stdint.h> header file. */
+/* #undef HAVE_STDINT_H */
+
+/* Define to 1 if you have the <stdio_ext.h> header file. */
+/* #undef HAVE_STDIO_EXT_H */
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the `strerror' function. */
+#define HAVE_STRERROR 1
+
+/* Define to 1 if you have the `strftime' function. */
+#ifndef __MRC__  /* CodeWarrior */
+#define HAVE_STRFTIME 1
+#endif
+
+/* Define to 1 if you have the <strings.h> header file. */
+/* #undef HAVE_STRINGS_H */
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the `strsignal' function. */
+/* #undef HAVE_STRSIGNAL */
+
+/* Define to 1 if `ifr_addr' is member of `struct ifreq'. */
+/* #undef HAVE_STRUCT_IFREQ_IFR_ADDR */
+
+/* Define to 1 if `ifr_broadaddr' is member of `struct ifreq'. */
+/* #undef HAVE_STRUCT_IFREQ_IFR_BROADADDR */
+
+/* Define to 1 if `ifr_flags' is member of `struct ifreq'. */
+/* #undef HAVE_STRUCT_IFREQ_IFR_FLAGS */
+
+/* Define to 1 if `ifr_hwaddr' is member of `struct ifreq'. */
+/* #undef HAVE_STRUCT_IFREQ_IFR_HWADDR */
+
+/* Define to 1 if `ifr_netmask' is member of `struct ifreq'. */
+/* #undef HAVE_STRUCT_IFREQ_IFR_NETMASK */
 
-/* Define if we have the X11R6 or newer version of Xt.  */
+/* Define to 1 if `n_un.n_name' is member of `struct nlist'. */
+/* #undef HAVE_STRUCT_NLIST_N_UN_N_NAME */
+
+/* Define to 1 if `tm_zone' is member of `struct tm'. */
+/* #undef HAVE_STRUCT_TM_TM_ZONE */
+
+/* Define to 1 if `struct utimbuf' is declared by <utime.h>. */
+#define HAVE_STRUCT_UTIMBUF 1
+
+/* Define to 1 if you have the `sysinfo' function. */
+/* #undef HAVE_SYSINFO */
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/mman.h> header file. */
+/* #undef HAVE_SYS_MMAN_H */
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/resource.h> header file. */
+/* #undefine HAVE_SYS_RESOURCE_H */
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+/* #undef HAVE_SYS_SELECT_H */
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+/* #undef HAVE_SYS_SOCKET_H */
+
+/* Define to 1 if you have the <sys/soundcard.h> header file. */
+/* #undef HAVE_SYS_SOUNDCARD_H */
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/systeminfo.h> header file. */
+/* #undef HAVE_SYS_SYSTEMINFO_H */
+
+/* Define to 1 if you have the <sys/timeb.h> header file. */
+/* #undef HAVE_SYS_TIMEB_H */
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/un.h> header file. */
+/* #undef HAVE_SYS_UN_H */
+
+/* Define to 1 if you have the <sys/utsname.h> header file. */
+/* #undef HAVE_SYS_UTSNAME_H */
+
+/* Define to 1 if you have the <sys/vlimit.h> header file. */
+/* #undef HAVE_SYS_VLIMIT_H */
+
+/* Define to 1 if you have <sys/wait.h> that is POSIX.1 compatible. */
+/* #undef HAVE_SYS_WAIT_H */
+
+/* Define to 1 if you have the <sys/_mbstate_t.h> header file. */
+/* #undef HAVE_SYS__MBSTATE_T_H */
+
+/* Define to 1 if you have the <termcap.h> header file. */
+/* #undef HAVE_TERMCAP_H */
+
+/* Define to 1 if you have the <termios.h> header file. */
+/* #undef HAVE_TERMIOS_H */
+
+/* Define to 1 if you have the <term.h> header file. */
+/* #undef HAVE_TERM_H */
+
+/* Define to 1 if you have the tiff library (-ltiff). */
+/* #undef HAVE_TIFF */
+
+/* Define to 1 if `struct timeval' is declared by <sys/time.h>. */
+#define HAVE_TIMEVAL 1
+
+/* Define to 1 if `tm_gmtoff' is member of `struct tm'. */
+/* #undef HAVE_TM_GMTOFF */
+
+/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use
+   `HAVE_STRUCT_TM_TM_ZONE' instead. */
+/* #undef HAVE_TM_ZONE */
+
+/* Define to 1 if you have the `touchlock' function. */
+/* #undef HAVE_TOUCHLOCK */
+
+/* Define to 1 if you don't have `tm_zone' but do have the external array
+   `tzname'. */
+/* #undef HAVE_TZNAME */
+
+/* Define to 1 if you have the `tzset' function. */
+/* #undef HAVE_TZSET */
+
+/* Define to 1 if you have the `ualarm' function. */
+/* #undef HAVE_UALARM */
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#ifdef __MRC__
+#undef HAVE_UNISTD_H
+#else  /* CodeWarrior */
+#define HAVE_UNISTD_H 1
+#endif
+
+/* Define to 1 if you have the `utimes' function. */
+/* #undef HAVE_UTIMES */
+
+/* Define to 1 if you have the <utime.h> header file. */
+#define HAVE_UTIME_H 1
+
+/* Define to 1 if you have the `vfork' function. */
+/* #undef HAVE_VFORK */
+
+/* Define to 1 if you have the <vfork.h> header file. */
+/* #undef HAVE_VFORK_H */
+
+/* Define to 1 if `fork' works. */
+/* #undef HAVE_WORKING_FORK */
+
+/* Define to 1 if `vfork' works. */
+/* #undef HAVE_WORKING_VFORK */
+
+/* Define to 1 if you want to use version 11 of X windows. Otherwise, Emacs
+   expects to use version 10. */
+/* #undef HAVE_X11 */
+
+/* Define to 1 if you have the X11R5 or newer version of Xlib. */
+/* #undef HAVE_X11R5 */
+
+/* Define to 1 if you have the X11R6 or newer version of Xlib. */
+/* #undef HAVE_X11R6 */
+
+/* Define to 1 if you have the X11R6 or newer version of Xt. */
 /* #undef HAVE_X11XTR6 */
 
-/* Define if we have the X11R6 or newer version of Xlib.  */
-/* #undef HAVE_X11R6 */
+/* Define to 1 if you have the Xaw3d library (-lXaw3d). */
+/* #undef HAVE_XAW3D */
+
+/* Define to 1 if you're using XFree386. */
+/* #undef HAVE_XFREE386 */
 
-/* Define if we have the X11R5 or newer version of Xlib.  */
-/* #undef HAVE_X11R5 */
+/* Define to 1 if XIM is available */
+/* #undef HAVE_XIM */
 
-/* Define if we have the XPM libary.  */
+/* Define to 1 if you have the XkbGetKeyboard function. */
+/* #undef HAVE_XKBGETKEYBOARD */
+
+/* Define to 1 if you have the Xpm libary (-lXpm). */
 /* #undef HAVE_XPM */
 
-/* Define if we have the PNG library.  */
-/* #undef HAVE_PNG */
+/* Define to 1 if you have the `XrmSetDatabase' function. */
+/* #undef HAVE_XRMSETDATABASE */
+
+/* Define to 1 if you have the `XScreenNumberOfScreen' function. */
+/* #undef HAVE_XSCREENNUMBEROFSCREEN */
+
+/* Define to 1 if you have the `XScreenResourceString' function. */
+/* #undef HAVE_XSCREENRESOURCESTRING */
+
+/* Define to 1 if you have the `XSetWMProtocols' function. */
+/* #undef HAVE_XSETWMPROTOCOLS */
+
+/* Define to 1 if you have the SM library (-lSM). */
+/* #undef HAVE_X_SM */
+
+/* Define to 1 if you want to use the X window system. */
+/* #undef HAVE_X_WINDOWS */
+
+/* Define to 1 if you have the `__fpending' function. */
+/* #undef HAVE___FPENDING */
+
+/* Define to support using a Hesiod database to find the POP server. */
+/* #undef HESIOD */
+
+/* Define to support Kerberos-authenticated POP mail retrieval. */
+/* #undef KERBEROS */
 
-/* Define if we have the JPEG library.  */
-/* #undef HAVE_JPEG */
+/* Define to use Kerberos 5 instead of Kerberos 4. */
+/* #undef KERBEROS5 */
+
+/* Define LD_SWITCH_X_SITE to contain any special flags your loader may need
+   to deal with X Windows. For instance, if you've defined HAVE_X_WINDOWS
+   above and your X libraries aren't in a place that your loader can find on
+   its own, you might want to add "-L/..." or something similar. */
+/* #undef LD_SWITCH_X_SITE */
+
+/* Define LD_SWITCH_X_SITE_AUX with an -R option in case it's needed (for
+   Solaris, for example). */
+/* #undef LD_SWITCH_X_SITE_AUX */
+
+/* Define to 1 if localtime caches TZ. */
+/* #undef LOCALTIME_CACHE */
+
+/* Define to support POP mail retrieval. */
+/* #undef MAIL_USE_POP 1 */
+
+/* Define to 1 if your `struct nlist' has an `n_un' member. Obsolete, depend
+   on `HAVE_STRUCT_NLIST_N_UN_N_NAME */
+/* #undef NLIST_NAME_UNION */
+
+/* Define to 1 if you don't have struct exception in math.h. */
+/* #undef NO_MATHERR */
+
+/* Define to the address where bug reports for this package should be sent. */
+/* #undef PACKAGE_BUGREPORT */
 
-/* Define if we have the TIFF library.  */
-/* #undef HAVE_TIFF */
+/* Define to the full name of this package. */
+/* #undef PACKAGE_NAME */
+
+/* Define to the full name and version of this package. */
+/* #undef PACKAGE_STRING */
+
+/* Define to the one symbol short name of this package. */
+/* #undef PACKAGE_TARNAME */
+
+/* Define to the version of this package. */
+/* #undef PACKAGE_VERSION */
+
+/* Define as `void' if your compiler accepts `void *'; otherwise define as
+   `char'. */
+#define POINTER_TYPE void
+
+/* Define to 1 if the C compiler supports function prototypes. */
+/* #undef PROTOTYPES */
+
+/* Define REL_ALLOC if you want to use the relocating allocator for buffer
+   space. */
+/* #undef REL_ALLOC */
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
 
-/* Define if we have the GIF library.  */
-/* #undef HAVE_GIF */
+/* If using the C implementation of alloca, define if you know the
+   direction of stack growth for your system; otherwise it will be
+   automatically deduced at run-time.
+	STACK_DIRECTION > 0 => grows toward higher addresses
+	STACK_DIRECTION < 0 => grows toward lower addresses
+	STACK_DIRECTION = 0 => direction of growth unknown */
+/* #undef STACK_DIRECTION */
+
+/* Define to 1 if you have the ANSI C header files. */
+/* #undef STDC_HEADERS */
+
+/* Define to 1 on System V Release 4. */
+/* #undef SVR4 */
 
-/* Define if libXaw3d is available.  */
-/* #undef HAVE_XAW3D */
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to 1 if your <sys/time.h> declares `struct tm'. */
+/* #undef TM_IN_SYS_TIME */
+
+/* Define to 1 for Encore UMAX. */
+/* #undef UMAX */
 
-/* Define if we should use toolkit scroll bars.  */
+/* Define to 1 for Encore UMAX 4.3 that has <inq_status/cpustats.h> instead of
+   <sys/cpustats.h>. */
+/* #undef UMAX4_3 */
+
+/* Define to the unexec source file name. */
+/* #undef UNEXEC_SRC */
+
+/* Define to 1 if we should use toolkit scroll bars. */
 #ifdef HAVE_CARBON
 #define USE_TOOLKIT_SCROLL_BARS 1
 #endif
 
-/* Define if we should use XIM, if it is available.  */
+/* Define to 1 if we should use XIM, if it is available. */
 /* #undef USE_XIM */
 
-/* Define if netdb.h declares h_errno.  */
-/* #undef HAVE_H_ERRNO */
+/* Define to 1 if using an X toolkit. */
+/* #undef USE_X_TOOLKIT */
+
+/* Define to the type of the 6th arg of XRegisterIMInstantiateCallback, either
+   XPointer or XPointer*. */
+/* #undef XRegisterIMInstantiateCallback_arg6 */
+
+/* Define to 1 if on AIX 3.
+   System headers sometimes define this.
+   We just want to avoid a redefinition error message.  */
+#ifndef _ALL_SOURCE
+/* #undef _ALL_SOURCE */
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Enable GNU extensions on systems that have them.  */
+#ifndef _GNU_SOURCE
+/* # undef _GNU_SOURCE */
+#endif
+
+/* Define to 1 to make fseeko visible on some hosts (e.g. glibc 2.2). */
+/* #undef _LARGEFILE_SOURCE */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define like PROTOTYPES; this can be used by system headers. */
+/* #undef __PROTOTYPES */
+
+/* Define to compiler's equivalent of C99 restrict keyword. Don't define if
+   equivalent is `__restrict'. */
+/* #undef __restrict */
+
+/* Define to compiler's equivalent of C99 restrict keyword in array
+   declarations. Define as empty for no equivalent. */
+/* #undef __restrict_arr */
+
+/* Define to the used machine dependent file. */
+#define config_machfile "m-mac.h"
+
+/* Define to the used os dependent file. */
+#define config_opsysfile "s-mac.h"
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Define to a type if <wchar.h> does not define. */
+/* #undef mbstate_t */
+
+/* Define to `int' if <sys/types.h> does not define. */
+/* #undef pid_t */
+
+/* Define to any substitute for sys_siglist. */
+/* #undef sys_siglist */
+
+/* Define as `fork' if `vfork' does not work. */
+/* #undef vfork */
+
+/* Define to empty if the keyword `volatile' does not work. Warning: valid
+   code using `volatile' can become incorrect without. Disable with care. */
+/* #undef volatile */
+
 
 /* If we're using any sort of window system, define some consequences.  */
 #ifdef HAVE_X_WINDOWS
@@ -128,25 +926,8 @@
 /* Turned on June 1996 supposing nobody will mind it.  */
 /* #undef AMPERSAND_FULL_NAME */
 
-/* Things set by --with options in the configure script.  */
-
-/* Define to support POP mail retrieval.  */
-/* #undef MAIL_USE_POP 1 */
-
-/* Define to support Kerberos-authenticated POP mail retrieval.  */
-/* #undef KERBEROS */
-/* Define to use Kerberos 5 instead of Kerberos 4 */
-/* #undef KERBEROS5 */
-/* Define to support GSS-API in addition to (or instead of) Kerberos */
-/* #undef GSSAPI */
-
-/* Define to support using a Hesiod database to find the POP server.  */
-/* #undef HESIOD */
-
-/* Header for Voxware or PCM sound card driver.  */
-/* #undef HAVE_MACHINE_SOUNDCARD_H */
-/* #undef HAVE_SYS_SOUNDCARD_H */
-/* #undef HAVE_SOUNDCARD_H */
+/* We have blockinput.h.  */
+#define DO_BLOCK_INPUT
 
 /* Define HAVE_SOUND if we have sound support.  We know it works
    and compiles only on the specified platforms.   For others,
@@ -164,210 +945,16 @@
 #endif
 #endif /* __FreeBSD__ || __NetBSD__ || __linux__  */
 
-/* Some things figured out by the configure script, grouped as they are in
-   configure.in.  */
-#ifndef _ALL_SOURCE  /* suppress warning if this is pre-defined */
-/* #undef _ALL_SOURCE */
-#endif
-
-/* #undef HAVE_SYS_SELECT_H */
-/* #undef HAVE_SYS_TIMEB_H */
-#define HAVE_SYS_TIME_H 1
-
-#ifdef __MRC__
-#undef HAVE_UNISTD_H
-#else  /* CodeWarrior */
-#define HAVE_UNISTD_H 1
-#endif
-
-#define HAVE_UTIME_H 1
-/* #undef HAVE_LINUX_VERSION_H */
-/* #undef HAVE_SYS_SYSTEMINFO_H */
-/* #undef HAVE_TERMIOS_H */
-#define HAVE_LIMITS_H 1
-#define HAVE_STRING_H 1
-#define HAVE_STDLIB_H 1
-/* #undef HAVE_TERMCAP_H */
-/* #undef HAVE_TERM_H */
-/* #undef HAVE_STDIO_EXT_H */
-/* #undef STDC_HEADERS */
-/* #undef TIME_WITH_SYS_TIME */
-/* #undef HAVE_VFORK_H */
-#define HAVE_FCNTL_H 1
-/* #undef HAVE_SETITIMER */
-/* #undef HAVE_UALARM */
-/* #undef HAVE_SYS_WAIT_H */
-
-/* #undef HAVE_LIBDNET */
-/* #undef HAVE_LIBPTHREADS */
-/* #undef HAVE_LIBRESOLV */
-/* #undef HAVE_LIBXMU */
-/* #undef HAVE_LIBNCURSES */
-/* #undef HAVE_LIBINTL */
-/* #undef HAVE_LIBXP */
-
-/* movemail Kerberos support */
-/* libraries */
-/* #undef HAVE_LIBKRB */
-/* #undef HAVE_LIBKRB4 */
-/* #undef HAVE_LIBDES */
-/* #undef HAVE_LIBDES425 */
-/* #undef HAVE_LIBKRB5 */
-/* #undef HAVE_LIBCRYPTO */
-/* #undef HAVE_LIBCOM_ERR */
-/* header files */
-/* #undef HAVE_KRB5_H */
-/* #undef HAVE_DES_H */
-/* #undef HAVE_KRB_H */
-/* #undef HAVE_KERBEROSIV_DES_H */
-/* #undef HAVE_KERBEROSIV_KRB_H */
-/* #undef HAVE_KERBEROS_DES_H */
-/* #undef HAVE_KERBEROS_KRB_H */
-/* #undef HAVE_COM_ERR_H */
-
-/* GSS-API libraries and headers */
-/* #undef HAVE_LIBGSSAPI_KRB5 */
-/* #undef HAVE_LIBGSSAPI */
-/* #undef HAVE_GSSAPI_H */
-
-/* Mail-file locking */
-/* #undef HAVE_LIBMAIL */
-/* #undef HAVE_MAILLOCK_H */
-/* #undef HAVE_TOUCHLOCK */
-
-/* #undef HAVE_ALLOCA_H */
-
-/* #undef HAVE_DEV_PTMX */
-
-#define HAVE_GETTIMEOFDAY 1
-/* If we don't have gettimeofday,
-   the test for GETTIMEOFDAY_ONE_ARGUMENT may succeed,
-   but we should ignore it.  */
-#ifdef HAVE_GETTIMEOFDAY
-#define GETTIMEOFDAY_ONE_ARGUMENT 1
-#endif
-/* #undef HAVE_GETHOSTNAME */
-/* #undef HAVE_GETDOMAINNAME */
-/* #undef HAVE_DUP2 */
-#define HAVE_RENAME 1
-#define HAVE_CLOSEDIR 1
-
-/* #undef TM_IN_SYS_TIME */
-/* #undef HAVE_TM_ZONE */
-/* #undef HAVE_TZNAME */
-/* #undef HAVE_TM_GMTOFF */
-
-/* #undef const */
-
-/* #undef HAVE_LONG_FILE_NAMES */
-
-/* #undef CRAY_STACKSEG_END */
-
-/* #undef UNEXEC_SRC */
-
-/* #undef HAVE_LIBXBSD */
-/* #undef HAVE_XRMSETDATABASE */
-/* #undef HAVE_XSCREENRESOURCESTRING */
-/* #undef HAVE_XSCREENNUMBEROFSCREEN */
-/* #undef HAVE_XSETWMPROTOCOLS */
-
-#define HAVE_MKDIR 1
-#define HAVE_RMDIR 1
-/* #undef HAVE_SYSINFO */
-/* #undef HAVE_RANDOM */
-/* #undef HAVE_LRAND48 */
-/* #undef HAVE_BCOPY */
-/* #undef HAVE_BCMP */
-#define HAVE_LOGB 1
-#define HAVE_FREXP 1
-#define HAVE_FMOD 1
-
-#ifdef __MRC__
-#undef HAVE_RINT
-#else  /* CodeWarrior */
-#define HAVE_RINT
-#endif
-
-/* #undef HAVE_CBRT */
-/* #undef HAVE_FTIME */
-/* #undef HAVE_RES_INIT */ /* For -lresolv on Suns.  */
-/* #undef HAVE_SETSID */
-/* #undef HAVE_FPATHCONF */
-#define HAVE_SELECT 1
-/* #undef HAVE_MKTIME */
-/* #undef BROKEN_MKTIME */		/* have mktime but it's broken */
-/* #undef HAVE_EUIDACCESS */
-/* #undef HAVE_GETPAGESIZE */
-/* #undef HAVE_TZSET */
-#define HAVE_SETLOCALE 1
-/* #undef HAVE_UTIMES */
-/* #undef HAVE_SETRLIMIT */
-/* #undef HAVE_SETPGID */
-/* #undef HAVE_GETCWD */
-#define HAVE_GETWD 1
-/* #undef HAVE_SHUTDOWN */
-#define HAVE_STRFTIME 1
-/* #undef HAVE_GETADDRINFO */
-/* #undef HAVE___FPENDING */
-/* #undef HAVE_FTELLO */
-/* #undef HAVE_GETLOADAVG */
-/* #undef NLIST_STRUCT */
-/* #undef NLIST_NAME_UNION */
-/* #undef HAVE_MBLEN */
-/* #undef HAVE_MBRLEN */
-/* #undef HAVE_STRSIGNAL */
-/* #undef HAVE_GRANTPT */
-/* #undef HAVE_GETPT */
-/* #undef HAVE_SPEED_T */		/* speed_t typedef in termios.h */
-/* #undef HAVE_STRUCT_TIMEZONE */
-
-/* #undef LOCALTIME_CACHE */
-/* #undef HAVE_INET_SOCKETS */
-
-/* #undef HAVE_AIX_SMT_EXP */
-
-/* #undef vfork */
-
-/* Define if you have the ANSI `strerror' function.
-   Otherwise you must have the variable `char *sys_errlist[]'.  */
-#define HAVE_STRERROR 1
-
-/* Define if `sys_siglist' is declared by <signal.h>.  */
-/* #undef SYS_SIGLIST_DECLARED */
-
-/* Define if `struct utimbuf' is declared by <utime.h>.  */
-#define HAVE_STRUCT_UTIMBUF 1
-
-/* Define if `struct timeval' is declared by <sys/time.h>.  */
-#define HAVE_TIMEVAL 1
-
 /* If using GNU, then support inline function declarations. */
 /* Don't try to switch on inline handling as detected by AC_C_INLINE
    generally, because even if non-gcc compilers accept `inline', they
    may reject `extern inline'.  */
-#ifdef __GNUC__
+#if defined (__GNUC__) && defined (OPTIMIZE)
 #define INLINE __inline__
 #else
 #define INLINE
 #endif
 
-/* Define this if you don't have struct exception in math.h.  */
-/* #undef NO_MATHERR */
-
-/* Define as `void' if your compiler accepts `void *'; otherwise
-   define as `char'.  */
-#define POINTER_TYPE void
-#define PTR POINTER_TYPE *	/* For strftime.c.  */
-
-/* Number of bits in a file offset, on hosts where this is settable.  */
-/* #undef _FILE_OFFSET_BITS */
-/* Define to make ftello visible on some hosts (e.g. HP-UX 10.20).  */
-/* #undef _LARGEFILE_SOURCE */
-/* Define for large files, on AIX-style hosts.  */
-/* #undef _LARGE_FILES */
-/* Define to make ftello visible on some hosts (e.g. glibc 2.1.3).  */
-/* #undef _XOPEN_SOURCE */
-
 #ifdef __MRC__
 /* Use low-bits for tags.  If ENABLE_CHECKING is turned on together
    with USE_LSB_TAG, optimization flags should be explicitly turned
@@ -375,35 +962,9 @@
 #define USE_LSB_TAG
 #endif
 
-#ifdef __MRC__
-#define EMACS_CONFIGURATION "macos-mpw"
-#else  /* Assume CodeWarrior */
-#define EMACS_CONFIGURATION "macos-cw"
-#endif
-
-#define EMACS_CONFIG_OPTIONS ""
-
-/* The configuration script defines opsysfile to be the name of the
-   s/SYSTEM.h file that describes the system type you are using.  The file
-   is chosen based on the configuration name you give.
-
-   See the file ../etc/MACHINES for a list of systems and the
-   configuration names to use for them.
-
-   See s/template.h for documentation on writing s/SYSTEM.h files.  */
-#undef config_opsysfile
-#include "s-mac.h"
-
-/* The configuration script defines machfile to be the name of the
-   m/MACHINE.h file that describes the machine you are using.  The file is
-   chosen based on the configuration name you give.
-
-   See the file ../etc/MACHINES for a list of machines and the
-   configuration names to use for them.
-
-   See m/template.h for documentation on writing m/MACHINE.h files.  */
-#undef config_machfile
-#include "m-mac.h"
+/* Include the os and machine dependent files.  */
+#include config_opsysfile
+#include config_machfile
 
 /* Load in the conversion definitions if this system
    needs them and the source file being compiled has not
@@ -434,39 +995,6 @@
 #endif
 #endif
 
-/* Define LD_SWITCH_SITE to contain any special flags your loader may need.  */
-/* #undef LD_SWITCH_SITE */
-
-/* Define C_SWITCH_SITE to contain any special flags your compiler needs.  */
-/* #undef C_SWITCH_SITE */
-
-/* Define LD_SWITCH_X_SITE to contain any special flags your loader
-   may need to deal with X Windows.  For instance, if you've defined
-   HAVE_X_WINDOWS above and your X libraries aren't in a place that
-   your loader can find on its own, you might want to add "-L/..." or
-   something similar.  */
-/* #undef LD_SWITCH_X_SITE */
-
-/* Define LD_SWITCH_X_SITE_AUX with an -R option
-   in case it's needed (for Solaris, for example).  */
-/* #undef LD_SWITCH_X_SITE_AUX */
-
-/* Define C_SWITCH_X_SITE to contain any special flags your compiler
-   may need to deal with X Windows.  For instance, if you've defined
-   HAVE_X_WINDOWS above and your X include files aren't in a place
-   that your compiler can find on its own, you might want to add
-   "-I/..." or something similar.  */
-/* #undef C_SWITCH_X_SITE */
-
-/* Define STACK_DIRECTION here, but not if m/foo.h did.  */
-#ifndef STACK_DIRECTION
-/* #undef STACK_DIRECTION */
-#endif
-
-/* Define the return type of signal handlers if the s-xxx file
-   did not already do so.  */
-#define RETSIGTYPE void
-
 /* SIGTYPE is the macro we actually use.  */
 #ifndef SIGTYPE
 #define SIGTYPE RETSIGTYPE
@@ -476,7 +1004,13 @@
 /* Tell regex.c to use a type compatible with Emacs.  */
 #define RE_TRANSLATE_TYPE Lisp_Object
 #define RE_TRANSLATE(TBL, C) CHAR_TABLE_TRANSLATE (TBL, C)
-#define RE_TRANSLATE_P(TBL) (XFASTINT (TBL) != 0)
+#ifdef make_number
+/* If make_number is a macro, use it.  */
+#define RE_TRANSLATE_P(TBL) (!EQ (TBL, make_number (0)))
+#else
+/* If make_number is a function, avoid it.  */
+#define RE_TRANSLATE_P(TBL) (!(INTEGERP (TBL) && XINT (TBL) == 0))
+#endif
 #endif
 
 /* Avoid link-time collision with system mktime if we will use our own.  */
@@ -484,6 +1018,8 @@
 #define mktime emacs_mktime
 #endif
 
+#define my_strftime nstrftime	/* for strftime.c */
+
 /* The rest of the code currently tests the CPP symbol BSTRING.
    Override any claims made by the system-description files.
    Note that on some SCO version it is possible to have bcopy and not bcmp.  */
@@ -492,11 +1028,6 @@
 #define BSTRING
 #endif
 
-/* Define to empty if the keyword `volatile' does not work.  Warning:
-   valid code using `volatile' can become incorrect without.  Disable
-   with care. */
-/* #undef volatile */
-
 /* Some of the files of Emacs which are intended for use with other
    programs assume that if you have a config.h file, you must declare
    the type of getenv.
@@ -507,8 +1038,6 @@
 extern char *getenv ();
 #endif
 
-#endif /* EMACS_CONFIG_H */
-
 /* These default definitions are good for almost all machines.
    The exceptions override them in m/MACHINE.h.  */
 
@@ -548,16 +1077,30 @@
 # endif  /* GCC.  */
 #endif /* __P */
 
-
 /* Don't include "string.h" or <stdlib.h> in non-C code.  */
 #ifndef NOT_C_CODE
 #ifdef HAVE_STRING_H
 #include "string.h"
 #endif
+#ifdef HAVE_STRINGS_H
+#include "strings.h"  /* May be needed for bcopy & al. */
+#endif
 #ifdef HAVE_STDLIB_H
 #include <stdlib.h>
 #endif
+#ifndef __GNUC__
+# ifdef HAVE_ALLOCA_H
+#  include <alloca.h>
+# else /* AIX files deal with #pragma.  */
+#  ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#  endif
+# endif /* HAVE_ALLOCA_H */
+#endif /* __GNUC__ */
+#ifndef HAVE_SIZE_T
+typedef unsigned size_t;
 #endif
+#endif /* NOT_C_CODE */
 
 /* Define HAVE_X_I18N if we have usable i18n support.  */
 
@@ -576,9 +1119,42 @@
 /* Should we enable expensive run-time checking of data types?  */
 /* #undef ENABLE_CHECKING */
 
-/* #define GLYPH_DEBUG 1 */
+#if defined __GNUC__ && (__GNUC__ > 2 \
+                         || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5))
+#define NO_RETURN	__attribute__ ((__noreturn__))
+#else
+#define NO_RETURN	/* nothing */
+#endif
 
-#define NO_RETURN /* nothing */
+/* These won't be used automatically yet.  We also need to know, at least,
+   that the stack is continuous.  */
+#ifdef __GNUC__
+#  ifndef GC_SETJMP_WORKS
+  /* GC_SETJMP_WORKS is nearly always appropriate for GCC --
+     see NON_SAVING_SETJMP in the target descriptions.  */
+  /* Exceptions (see NON_SAVING_SETJMP in target description) are ns32k,
+     SCO5 non-ELF (but Emacs specifies ELF) and SVR3 on x86.
+     Fixme: Deal with ns32k, SVR3.  */
+#    define GC_SETJMP_WORKS 1
+#  endif
+#  ifndef GC_LISP_OBJECT_ALIGNMENT
+#    define GC_LISP_OBJECT_ALIGNMENT (__alignof__ (Lisp_Object))
+#  endif
+#endif
+
+#ifndef HAVE_BCOPY
+#define bcopy(a,b,s) memcpy (b,a,s)
+#endif
+#ifndef HAVE_BZERO
+#define bzero(a,s) memset (a,0,s)
+#endif
+#ifndef HAVE_BCMP
+#define BCMP memcmp
+#endif
+
+#define SYNC_INPUT
+
+#endif /* EMACS_CONFIG_H */
 
 /* arch-tag: 2596b649-b569-448e-8880-373d2a9909b7
    (do not change this comment) */
--- a/mac/inc/m-mac.h	Mon May 09 16:17:25 2005 +0000
+++ b/mac/inc/m-mac.h	Fri May 13 22:59:23 2005 +0000
@@ -80,19 +80,6 @@
 
 #define VIRT_ADDR_VARIES
 
-/* Define C_ALLOCA if this machine does not support a true alloca
-   and the one written in C should be used instead.
-   Define HAVE_ALLOCA to say that the system provides a properly
-   working alloca function and it should be used.
-   Define neither one if an assembler-language alloca
-   in the file alloca.s should be used.  */
-
-#ifdef __MRC__
-#define HAVE_ALLOCA
-#else
-#define C_ALLOCA
-#endif
-
 /* Define NO_REMAP if memory segmentation makes it not work well
    to change the boundary between the text section and data section
    when Emacs is dumped.  If you define this, the preloaded Lisp
@@ -129,18 +116,5 @@
 #define IEEE_FLOATING_POINT 1
 #endif
 
-#if 0
-/* The usual definition of XINT, which involves shifting, does not
-   sign-extend properly on this machine.  */
-
-#define XINT(i) (((sign_extend_temp=(i)) & 0x00800000) \
-		 ? (sign_extend_temp | 0xFF000000) \
-		 : (sign_extend_temp & 0x00FFFFFF))
-
-#ifdef emacs /* Don't do this when making xmakefile! */
-extern int sign_extend_temp;
-#endif
-#endif
-
 /* arch-tag: 9e759031-ab7b-4c76-99d7-3ae94a98de38
    (do not change this comment) */
--- a/mac/inc/s-mac.h	Mon May 09 16:17:25 2005 +0000
+++ b/mac/inc/s-mac.h	Fri May 13 22:59:23 2005 +0000
@@ -53,8 +53,8 @@
 
    Define INTERRUPT_INPUT to make interrupt_input = 1 the default (use SIGIO)
 
-   Emacs uses the presence or absence of the SIGIO macro to indicate
-   whether or not signal-driven I/O is possible.  It uses
+   Emacs uses the presence or absence of the SIGIO and BROKEN_SIGIO macros
+   to indicate whether or not signal-driven I/O is possible.  It uses
    INTERRUPT_INPUT to decide whether to use it by default.
 
    SIGIO can be used only on systems that implement it (4.2 and 4.3).
@@ -96,8 +96,6 @@
 
 /* #define HAVE_PTYS */
 
-#define HAVE_PWD_H 1
-
 /*
  *	Define NONSYSTEM_DIR_LIBRARY to make Emacs emulate
  *      The 4.2 opendir, etc., library functions.
@@ -148,6 +146,9 @@
    is not ':', #define this to be the appropriate character constant.  */
 /* #define SEPCHAR ':' */
 
+/* Define this if the system can use mmap for buffer text allocation.  */
+/* #define USE_MMAP_FOR_BUFFERS 1 */
+
 /* ============================================================ */
 
 /* Here, add any special hacks needed
@@ -164,6 +165,14 @@
 
 /* #define static */
 
+/* If the system's imake configuration file defines `NeedWidePrototypes'
+   as `NO', we must define NARROWPROTO manually.  Such a define is
+   generated in the Makefile generated by `xmkmf'.  If we don't
+   define NARROWPROTO, we will see the wrong function prototypes
+   for X functions taking float or double parameters.  */
+
+/*  #define NARROWPROTO 1 */
+
 /* ============================================================ */
 
 /* After adding support for a new system, modify the large case
@@ -176,7 +185,12 @@
    of known problems in that configuration should be updated.  */
 
 #ifdef __MRC__
-#define __signal_max SIGTERM /* largest one in signal.h */
+/* MrC predefines signal numbers as powers of 2.  */
+#define sigmask(no) (((no) & (no) - 1) ? 1L << ((no) - 1) : (no))
+#define __signal_max 8	      /* There's enough room for the following
+				 signals between 8 and 16, and the
+				 maximum predefined one (32) is less
+				 than 8th power of 2.  */
 #endif
 
 #define SIGHUP (__signal_max+1)
@@ -185,7 +199,12 @@
 #define SIGKILL (__signal_max+4)
 #define SIGALRM (__signal_max+5)
 #define SIGPIPE (__signal_max+6)
+
+#ifdef __MRC__
+#define NSIG SIGTERM  /* largest one in signal.h */
+#else
 #define NSIG (__signal_max+6)
+#endif
 
 #ifdef __MRC__
 #define PENDING_OUTPUT_COUNT(FILE) ((FILE)->_ptr - (FILE)->_base)
@@ -230,19 +249,11 @@
 #define READ_BUF_SIZE (8 << 10)
 
 #include <utsname.h>
-void read_input_waiting ();
-
-/* #define GETTIMEOFDAY_ONE_ARGUMENT */
 
 #define SYSV_SYSTEM_DIR
 
 #define SYSTEM_MALLOC
 
-/* Constants such as O_RDONLY are defined in fcntl.h.  Best solution is
-   really to patch individual files to include it: callproc.c, doc.c,
-   fileio.c, getloadavg.c, lread.c, and termcap.c.  */
-#include <fcntl.h>
-
 #define _setjmp setjmp
 #define _longjmp longjmp
 
@@ -284,44 +295,10 @@
 #define ctime sys_ctime
 #define time sys_time
 
-#ifndef bcmp
-#define bcmp(s1, s2, n)	memcmp ((s1), (s2), (n))
-#endif
-#ifndef bcopy
-#define bcopy(s, d, n)	memcpy ((d), (s), (n))
-#endif
-#ifndef bzero
-#define bzero(s, n)	memset ((s), 0, (n))
-#endif
-
-extern char *index (const char *, int);
-
-/* MPW strftime broken for "%p" format */
-#ifdef __MRC__
-#define strftime sys_strftime
-#endif
+#define index strchr
+#define rindex strrchr
 
-#include <time.h>
-/* Editfns.c includes types.h which indirectly includes time.h before config.h.
-   So gmtime (localtime) is defined and not sys_gmtime (sys_localtime).  Define
-   here explicitly.  */
-extern struct tm *sys_gmtime (const time_t *);
-extern struct tm *sys_localtime (const time_t *);
-extern char *sys_ctime (const time_t *);
-extern time_t sys_time (time_t *);
-
-/* Emacs.c includes signal.h before config.h.  Define this to make it happy.  */
-#ifdef __MRC__
-#include <signal.h>
-extern __sigfun sys_signal (int signal_num, __sigfun signal_func);
-#elif __MWERKS__
-#include <signal.h>
-extern __signal_func_ptr sys_signal (int signal_num, __signal_func_ptr signal_func);
-#endif
-
-extern double atof (const char *);
-
-#define volatile
+#define PTR POINTER_TYPE *	/* For strftime.c.  */
 
 #define SYMS_SYSTEM syms_of_mac()
 
--- a/mac/inc/sys/time.h	Mon May 09 16:17:25 2005 +0000
+++ b/mac/inc/sys/time.h	Fri May 13 22:59:23 2005 +0000
@@ -28,6 +28,21 @@
   long tv_usec;  /* microseconds */
 };
 
+#define ITIMER_REAL      0
+#if 0
+#define ITIMER_VIRTUAL   1
+#define ITIMER_PROF      2
+#endif
+
+struct itimerval {
+#if 0
+  struct timeval it_interval;    /* timer interval */
+#endif
+  struct timeval it_value;       /* current value */
+};
+
+extern int setitimer(int, const struct itimerval *, struct itimerval *);
+
 #endif  /* _SYS_TYPES_H */
 
 /* arch-tag: f85ed04d-0e99-4f97-892b-fe029d0e92f9
--- a/mac/makefile.MPW	Mon May 09 16:17:25 2005 +0000
+++ b/mac/makefile.MPW	Fri May 13 22:59:23 2005 +0000
@@ -26,8 +26,6 @@
 #   Clean - remove all object and executable files to prepare for a fresh build.
 #   Doc - generate the "DOC" file in ~emacs/etc/.
 #   Make-DocFile - build the make-docfile tool, utility for generating "DOC".
-#   PrepSource - prepare the source files after unstuffing the distribution.
-#   PrepDist - prepare for distribution: generate diff files; move mac-win.el to {Patches}.
 
 Src = ::src:						# emacs's src directory
 Includes = :inc:					# mac includes directory (common for MPW and CW)
@@ -156,7 +154,7 @@
 
 # The next two are the dependency rules for building Emacs.
 
-Emacs ÄÄ {Makefile} {DocTarget}DOC {EmacsObjects} {MacObjects}
+Emacs ÄÄ {Makefile} buildobj.lst {DocTarget}DOC {EmacsObjects} {MacObjects}
 	PPCLink ¶
 		{LinkOptions} ¶
 		{EmacsObjects} {MacObjects} ¶
@@ -182,6 +180,9 @@
 "{Source}"EmacsMPW.maclf.r Ä "{Source}"EmacsMPW.r
 	translate ¶0x0a ¶n < "{Source}"EmacsMPW.r > "{Source}"EmacsMPW.maclf.r
 
+buildobj.lst Ä
+	Echo "{EmacsObjects} {MacObjects}" | StreamEdit -e '1,$ Replace -c ° /[Â ]*:([Â: ]*)¨1.c.x/ ¨1".o"' > buildobj.lst
+
 # Here comes a long boring list of rules saying which files depend on which
 # other ones.  I generated them by hand using the "-p" option of the MrC compiler.
 # Know about MakeMake, but this is probably more accurate.
@@ -984,6 +985,7 @@
 	Delete -i {Make-DocFile-Objects} {Make-DocFileDir}make-docfile
 	Delete -i "{Source}"Emacs.maclf.r "{Source}"EmacsMPW.maclf.r
 	Delete -i "{NonCarbonMakeOut}"
+	Delete -i buildobj.lst
 
 DistClean Ä Clean
 	Delete -i "Emacs CW"Å
@@ -994,97 +996,22 @@
 # Variables and rules for target "Doc" #
 #--------------------------------------#
 
-EmacsSource = ¶
-	"{Src}abbrev.c" ¶
-	"{Src}alloc.c" ¶
-	"{Src}atimer.c" ¶
-	"{Src}buffer.c" ¶
-	"{Src}bytecode.c" ¶
-	"{Src}callint.c" ¶
-	"{Src}callproc.c" ¶
-	"{Src}casefiddle.c" ¶
-	"{Src}casetab.c" ¶
-	"{Src}category.c" ¶
-	"{Src}ccl.c" ¶
-	"{Src}charset.c" ¶
-	"{Src}cm.c" ¶
-	"{Src}cmds.c" ¶
-	"{Src}coding.c" ¶
-	"{Src}composite.c" ¶
-	"{Src}data.c" ¶
-	"{Src}dired.c" ¶
-	"{Src}dispnew.c" ¶
-	"{Src}doc.c" ¶
-	"{Src}doprnt.c" ¶
-	"{Src}editfns.c" ¶
-	"{Src}emacs.c" ¶
-	"{Src}eval.c" ¶
-	"{Src}fileio.c" ¶
-	"{Src}filemode.c" ¶
-	"{Src}floatfns.c" ¶
-	"{Src}fns.c" ¶
-	"{Src}fontset.c" ¶
-	"{Src}frame.c" ¶
-	"{Src}fringe.c" ¶
-	"{Src}getloadavg.c" ¶
-	"{Src}image.c" ¶
-	"{Src}indent.c" ¶
-	"{Src}insdel.c" ¶
-	"{Src}intervals.c" ¶
-	"{Src}keyboard.c" ¶
-	"{Src}keymap.c" ¶
-	"{Src}lastfile.c" ¶
-	"{Src}lread.c" ¶
-	"{Src}macros.c" ¶
-	"{Src}marker.c" ¶
-	"{Src}minibuf.c" ¶
-	"{Src}mktime.c" ¶
-	"{Src}print.c" ¶
-	"{Src}process.c" ¶
-	"{Src}regex.c" ¶
-	"{Src}region-cache.c" ¶
-	"{Src}scroll.c" ¶
-	"{Src}search.c" ¶
-	"{Src}strftime.c" ¶
-	"{Src}syntax.c" ¶
-	"{Src}sysdep.c" ¶
-	"{Src}term.c" ¶
-	"{Src}termcap.c" ¶
-	"{Src}textprop.c" ¶
-	"{Src}tparam.c" ¶
-	"{Src}undo.c" ¶
-	"{Src}window.c" ¶
-	"{Src}xdisp.c" ¶
-	"{Src}xfaces.c" ¶
-	"{Src}xmenu.c"
+SOME_MACHINE_OBJECTS = sunfns.o dosfns.o msdos.o ¶
+  xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o fringe.o image.o ¶
+  mac.o macterm.o macfns.o macmenu.o macselect.o fontset.o ¶
+  w32.o w32bdf.o w32console.o w32fns.o w32heap.o w32inevt.o ¶
+  w32menu.o w32proc.o w32reg.o w32select.o w32term.o w32xfns.o
 
-MacSource = ¶
-	"{Src}mac.c" ¶
-	"{Src}macfns.c" ¶
-	"{Src}macterm.c"
-
-
-LispSource = ¶
-	{Lisp}menu-bar.elc ¶
-	{Lisp}mouse.elc ¶
-	{Lisp}select.elc ¶
-	{Lisp}scroll-bar.elc ¶
-	{Lisp}vmsproc.elc ¶
-	{Lisp}vms-patch.elc ¶
-	{Lisp}ls-lisp.elc ¶
-	{Lisp}dos-fns.elc ¶
-	{Lisp}w32-fns.elc ¶
-	{Lisp}dos-w32.elc ¶
-	{Lisp}disp-table.elc ¶
-	{Lisp}dos-vars.elc ¶
-	{Lisp}international:ccl.elc ¶
-	{Lisp}international:codepage.elc ¶
+shortlisp = ¶
 	{Lisp}abbrev.elc ¶
 	{Lisp}buff-menu.elc ¶
+	{Lisp}button.elc ¶
 	{Lisp}server.elc ¶
 	{Lisp}emacs-lisp:byte-run.elc ¶
-	{Lisp}cus-start.el ¶
+	{Lisp}cus-face.elc ¶
+	{Lisp}cus-start.elc ¶
 	{Lisp}custom.elc ¶
+	{Lisp}emacs-lisp:backquote.elc ¶
 	{Lisp}emacs-lisp:lisp-mode.elc ¶
 	{Lisp}emacs-lisp:lisp.elc ¶
 	{Lisp}facemenu.elc ¶
@@ -1100,38 +1027,32 @@
 	{Lisp}loaddefs.el ¶
 	{Lisp}bindings.elc ¶
 	{Lisp}emacs-lisp:map-ynp.elc ¶
+	{Lisp}env.elc ¶
 	{Lisp}international:mule.elc ¶
 	{Lisp}international:mule-conf.el ¶
 	{Lisp}international:mule-cmds.elc ¶
 	{Lisp}international:characters.elc ¶
+	{Lisp}international:ucs-tables.elc ¶
+	{Lisp}international:utf-8.elc ¶
+	{Lisp}international:utf-16.elc ¶
+	{Lisp}international:latin-1.el ¶
+	{Lisp}international:latin-2.el ¶
+	{Lisp}international:latin-3.el ¶
+	{Lisp}international:latin-4.el ¶
+	{Lisp}international:latin-5.el ¶
+	{Lisp}international:latin-8.el ¶
+	{Lisp}international:latin-9.el ¶
 	{Lisp}case-table.elc ¶
 	{Lisp}language:chinese.elc ¶
 	{Lisp}language:cyrillic.elc ¶
 	{Lisp}language:indian.elc ¶
+	{Lisp}language:devanagari.el ¶
+	{Lisp}language:kannada.el ¶
+	{Lisp}language:malayalam.el ¶
+	{Lisp}language:tamil.el ¶
+	{Lisp}language:english.el ¶
 	{Lisp}language:ethiopic.elc ¶
 	{Lisp}language:european.elc ¶
-	{Lisp}language:tibetan.elc ¶
-	{Lisp}language:vietnamese.elc ¶
-	{Lisp}paths.el ¶
-	{Lisp}register.elc ¶
-	{Lisp}replace.elc ¶
-	{Lisp}simple.elc ¶
-	{Lisp}startup.elc ¶
-	{Lisp}subr.elc ¶
-	{Lisp}term:tty-colors.elc ¶
-	{Lisp}textmodes:fill.elc ¶
-	{Lisp}textmodes:page.elc ¶
-	{Lisp}textmodes:paragraphs.elc ¶
-	{Lisp}textmodes:text-mode.elc ¶
-	{Lisp}vc-hooks.elc ¶
-	{Lisp}ediff-hook.elc ¶
-	{Lisp}widget.elc ¶
-	{Lisp}window.elc ¶
-	{Lisp}version.el
-
-LispSourceDontCompile = ¶
-	{Lisp}language:devanagari.el ¶
-	{Lisp}language:english.el ¶
 	{Lisp}language:czech.el ¶
 	{Lisp}language:slovak.el ¶
 	{Lisp}language:romanian.el ¶
@@ -1141,15 +1062,47 @@
 	{Lisp}language:korean.el ¶
 	{Lisp}language:lao.el ¶
 	{Lisp}language:thai.el ¶
-	{Lisp}language:misc-lang.el
+	{Lisp}language:tibetan.elc ¶
+	{Lisp}language:vietnamese.elc ¶
+	{Lisp}language:misc-lang.el ¶
+	{Lisp}language:utf-8-lang.el ¶
+	{Lisp}language:georgian.el ¶
+	{Lisp}menu-bar.elc ¶
+	{Lisp}paths.el ¶
+	{Lisp}register.elc ¶
+	{Lisp}replace.elc ¶
+	{Lisp}simple.elc ¶
+	{Lisp}startup.elc ¶
+	{Lisp}subr.elc ¶
+	{Lisp}term:tty-colors.elc ¶
+	{Lisp}font-core.elc ¶
+	{Lisp}textmodes:fill.elc ¶
+	{Lisp}textmodes:page.elc ¶
+	{Lisp}textmodes:paragraphs.elc ¶
+	{Lisp}textmodes:text-mode.elc ¶
+	{Lisp}emacs-lisp:timer.elc ¶
+	{Lisp}vc-hooks.elc ¶
+	{Lisp}jka-cmpr-hook.elc ¶
+	{Lisp}ediff-hook.elc ¶
+	{Lisp}widget.elc ¶
+	{Lisp}window.elc ¶
+	{Lisp}version.el
+
+SOME_MACHINE_LISP = {Lisp}mouse.elc ¶
+  {Lisp}select.elc {Lisp}scroll-bar.elc ¶
+  {Lisp}vmsproc.elc {Lisp}vms-patch.elc ¶
+  {Lisp}ls-lisp.elc {Lisp}dos-fns.elc ¶
+  {Lisp}w32-fns.elc {Lisp}dos-w32.elc ¶
+  {Lisp}disp-table.elc {Lisp}dos-vars.elc ¶
+  {Lisp}tooltip.elc ¶
+  {Lisp}international:ccl.elc ¶
+  {Lisp}international:codepage.elc
 
 Doc Ä {DocTarget}DOC
 
-{DocTarget}DOC Ä {Makefile} {EmacsSource} {MacSource} {LispSource} {LispSourceDontCompile} {Make-DocFileDir}Make-DocFile
-	{Make-DocFileDir}make-docfile {EmacsSource} > {DocTarget}DOC
-	{Make-DocFileDir}make-docfile {MacSource} >> {DocTarget}DOC
-	{Make-DocFileDir}make-docfile {LispSource} >> {DocTarget}DOC
-	{Make-DocFileDir}make-docfile {LispSourceDontCompile} >> {DocTarget}DOC
+{DocTarget}DOC Ä {Makefile} {shortlisp} {SOME_MACHINE_LISP} {Make-DocFileDir}Make-DocFile buildobj.lst
+	{Make-DocFileDir}make-docfile -d {Src} {SOME_MACHINE_OBJECTS} `Catenate buildobj.lst` > {DocTarget}DOC
+	{Make-DocFileDir}make-docfile -a {DocTarget}DOC -d {Src} {SOME_MACHINE_LISP} {shortlisp}
 
 
 #-----------------------------------------------#
@@ -1160,7 +1113,8 @@
 Make-DocFile-Sym			=
 
 Make-DocFile-PPCCOptions	= -typecheck relaxed -w off -noMapCR ¶
-								{Make-DocFile-Includes} {Make-DocFile-Sym}
+				  -d MAC_OS -d MAC_OS8 ¶
+				  {Make-DocFile-Includes} {Make-DocFile-Sym}
 
 Make-DocFile-Objects = ¶
 		"{Lib-Src}make-docfile.c.x" ¶
--- a/man/ChangeLog	Mon May 09 16:17:25 2005 +0000
+++ b/man/ChangeLog	Fri May 13 22:59:23 2005 +0000
@@ -1,3 +1,16 @@
+2005-05-10  Richard M. Stallman  <rms@gnu.org>
+
+	* building.texi (Compilation): Clarify recompile's directory choice.
+
+	* frames.texi (Tooltips): Cleanups.
+
+	* basic.texi (Arguments): Fix punctuation.
+
+2005-05-09  Luc Teirlinck  <teirllm@auburn.edu>
+
+	* screen.texi (Menu Bar): The up and down (not left and right)
+	arrow keys move through a keyboard menu.
+
 2005-05-08  Luc Teirlinck  <teirllm@auburn.edu>
 
 	* basic.texi: Various typo and grammar fixes.
@@ -1678,8 +1691,8 @@
 	(Indentation Commands): Correct description of `indent-relative'.
 	(Tab Stops): <TAB> is no longer bound to `tab-to-tab-stop' in Text
 	mode.  The *Tab Stops* buffer uses Overwrite Mode.
-	(Just Spaces): `untabify' converts sequences of at least two
-	spaces to tabs.
+	(Just Spaces): `tabify' converts sequences of at least two spaces
+	to tabs.
 
 2004-08-28  Eli Zaretskii  <eliz@gnu.org>
 
--- a/man/basic.texi	Mon May 09 16:17:25 2005 +0000
+++ b/man/basic.texi	Fri May 13 22:59:23 2005 +0000
@@ -780,7 +780,7 @@
 sign has the special meaning of ``multiply by four.''  It multiplies the
 argument for the next command by four.  @kbd{C-u} twice multiplies it by
 sixteen.  Thus, @kbd{C-u C-u C-f} moves forward sixteen characters.  This
-is a good way to move forward ``fast'', since it moves about 1/5 of a line
+is a good way to move forward ``fast,'' since it moves about 1/5 of a line
 in the usual size screen.  Other useful combinations are @kbd{C-u C-n},
 @kbd{C-u C-u C-n} (move down a good fraction of a screen), @kbd{C-u C-u
 C-o} (make ``a lot'' of blank lines), and @kbd{C-u C-k} (kill four
--- a/man/building.texi	Mon May 09 16:17:25 2005 +0000
+++ b/man/building.texi	Fri May 13 22:59:23 2005 +0000
@@ -117,8 +117,11 @@
 
 @findex recompile
   To rerun the last compilation with the same command, type @kbd{M-x
-recompile}.  This automatically reuses the compilation command from the
-last invocation of @kbd{M-x compile}.
+recompile}.  This automatically reuses the compilation command from
+the last invocation of @kbd{M-x compile}.  It also reuses the
+@samp{*compilation*} buffer and starts the compilation in its default
+directory, which is the directory in which the previous compilation
+was started.
 
   Emacs does not expect a compiler process to launch asynchronous
 subprocesses; if it does, and they keep running after the main
--- a/man/frames.texi	Mon May 09 16:17:25 2005 +0000
+++ b/man/frames.texi	Fri May 13 22:59:23 2005 +0000
@@ -970,24 +970,24 @@
 
 @node Tooltips
 @section Tooltips
-
-  Tooltips are small windows that display text information at the
-current mouse position.  They activate when there is a pause in mouse
-movement.
+@cindex tooltips
 
-There are two types of tooltip: help tooltips and GUD tooltips.
+  @dfn{Tooltips} are small windows that display text information at the
+current mouse position.  They activate when there is a pause in mouse
+movement.  There are two types of tooltip: help tooltips and GUD
+tooltips.
 
-Help tooltips typically display over text--including the mode
-line--but may be also available for many other parts of the Emacs
+  @dfn{Help tooltips} typically display over text---including the mode
+line---but may be also available for many other parts of the Emacs
 frame such as the toolbar and menu items.
 
 @findex tooltip-mode
   You can toggle help tooltips (Tooltip mode) with the command
-@kbd{M-x tooltip-mode}.  When Tooltip mode is disabled, the help text
+  @kbd{M-x tooltip-mode}.  When Tooltip mode is disabled, the help text
 is displayed in the echo area instead.
 
-GUD tooltips are useful when you are debugging a
-program. @xref{Debugger Operation}.
+  @dfn{GUD tooltips} show values of variables.  They are useful when
+you are debugging a program.  @xref{Debugger Operation}.
 
 @vindex tooltip-delay
   The variables @code{tooltip-delay} specifies how long Emacs should
--- a/man/screen.texi	Mon May 09 16:17:25 2005 +0000
+++ b/man/screen.texi	Fri May 13 22:59:23 2005 +0000
@@ -341,7 +341,7 @@
 typing @kbd{M-`} or @key{F10} (these run the command
 @code{tmm-menubar}).  This command enters a mode in which you can select
 a menu item from the keyboard.  A provisional choice appears in the echo
-area.  You can use the left and right arrow keys to move through the
+area.  You can use the up and down arrow keys to move through the
 menu to different choices.  When you have found the choice you want,
 type @key{RET} to select it.
 
--- a/src/ChangeLog	Mon May 09 16:17:25 2005 +0000
+++ b/src/ChangeLog	Fri May 13 22:59:23 2005 +0000
@@ -1,3 +1,54 @@
+2005-05-13  YAMAMOTO Mitsuharu  <mituharu@math.s.chiba-u.ac.jp>
+
+	* emacs.c (main) [MAC_OS8]: Call init_atimer before mac_term_init.
+
+	* keyboard.c (readable_events) [USE_TOOLKIT_SCROLL_BARS]: Regard
+	toolkit scroll bar thumb drag events as squeezable and prevent
+	redisplay from being paused by them.
+
+	* mac.c [!MAC_OSX]: Include keyboard.h and syssignal.h.
+	[!MAC_OSX] (target_ticks): Remove variable.
+	[!MAC_OSX] (check_alarm, pause, index): Remove functions.
+	[!MAC_OSX && __MRC__] (sys_strftime): Likewise.
+	[!MAC_OSX] (select): If fd 0 is not set in rfds and some input
+	event occurs before timeout, behave as if the function were
+	interrupted.
+	[!MAC_OSX] (sigblock, sigsetmask, alarm): Simulate SIGALRM
+	handling using Time Manager routines.
+	[!MAC_OSX] (mac_atimer_task, mac_atimer_qlink, signal_mask): New
+	variables.
+	[!MAC_OSX] (mac_atimer_handler, set_mac_atimer, remove_mac_atimer)
+	(setitimer): New functions.
+
+	* macfns.c, macmenu.c: Don't include signal.h.
+
+	* macterm.c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
+	Rename from get_control_part_bound.  All callers changed.
+	(x_scroll_bar_clear): New function.
+	(x_clear_frame): Use it.
+	(XTset_vertical_scroll_bar): Don't call Draw1Control.
+	(x_scroll_bar_handle_click): Change type of second argument from
+	int to ControlPartCode.
+	(check_alarm): Remove declaration.
+	(XTread_Socket) [!TARGET_API_MAC_CARBON]: Don't call it.
+	(XTread_Socket): Use ControlPartCode instead of SInt16.
+
+2005-05-13  Nozomu Ando  <nand@mac.com>
+
+	* unexmacosx.c: Include assert.h.
+	(MACOSX_MALLOC_MULT16): New define.
+	[MACOSX_MALLOC_MULT16] (ptr_in_unexec_regions): Determine whether
+	ptr is in unexec regions by checking it is multiple of 16.
+	(unexec_malloc_header_t): New typedef.
+	(unexec_malloc, unexec_realloc, unexec_free): Store and use
+	allocated size information in unexec_malloc_header.
+
+2005-05-10  Richard M. Stallman  <rms@gnu.org>
+
+	* xterm.c (noinclude): Add #undef.
+
+	* image.c, xfns.c, xmenu.c: Don't include signal.h.
+
 2005-05-09  Juanma Barranquero  <lekktu@gmail.com>
 
 	* fileio.c (Fexpand_file_name, Frename_file, Fadd_name_to_file)
--- a/src/emacs.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/emacs.c	Fri May 13 22:59:23 2005 +0000
@@ -1326,6 +1326,7 @@
       syms_of_search ();
       syms_of_frame ();
 
+      init_atimer ();
       mac_term_init (build_string ("Mac"), NULL, NULL);
       init_keyboard ();
 #endif
@@ -1351,7 +1352,9 @@
 #ifdef CLASH_DETECTION
   init_filelock ();
 #endif
+#ifndef MAC_OS8
   init_atimer ();
+#endif
   running_asynch_code = 0;
 
   /* Handle --unibyte and the EMACS_UNIBYTE envvar,
--- a/src/image.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/image.c	Fri May 13 22:59:23 2005 +0000
@@ -20,7 +20,6 @@
 Boston, MA 02111-1307, USA.  */
 
 #include <config.h>
-#include <signal.h>
 #include <stdio.h>
 #include <math.h>
 #include <ctype.h>
--- a/src/keyboard.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/keyboard.c	Fri May 13 22:59:23 2005 +0000
@@ -3525,9 +3525,11 @@
      READABLE_EVENTS_FILTER_EVENTS is set, report it as empty.  */
   if (kbd_fetch_ptr != kbd_store_ptr)
     {
-      int have_live_event = 1;
-
-      if (flags & READABLE_EVENTS_FILTER_EVENTS)
+      if (flags & (READABLE_EVENTS_FILTER_EVENTS
+#ifdef USE_TOOLKIT_SCROLL_BARS
+		   | READABLE_EVENTS_IGNORE_SQUEEZABLES
+#endif
+		   ))
         {
           struct input_event *event;
 
@@ -3535,16 +3537,29 @@
                    ? kbd_fetch_ptr
                    : kbd_buffer);
 
-          while (have_live_event && event->kind == FOCUS_IN_EVENT)
-            {
-              event++;
+	  do
+	    {
+	      if (!(
+#ifdef USE_TOOLKIT_SCROLL_BARS
+		    (flags & READABLE_EVENTS_FILTER_EVENTS) &&
+#endif
+		    event->kind == FOCUS_IN_EVENT)
+#ifdef USE_TOOLKIT_SCROLL_BARS
+		  && !((flags & READABLE_EVENTS_IGNORE_SQUEEZABLES)
+		       && event->kind == SCROLL_BAR_CLICK_EVENT
+		       && event->part == scroll_bar_handle
+		       && event->modifiers == 0)
+#endif
+		  )
+		return 1;
+	      event++;
               if (event == kbd_buffer + KBD_BUFFER_SIZE)
                 event = kbd_buffer;
-              if (event == kbd_store_ptr)
-                have_live_event = 0;
-            }
+	    }
+	  while (event != kbd_store_ptr);
         }
-      if (have_live_event) return 1;
+      else
+	return 1;
     }
 
 #ifdef HAVE_MOUSE
@@ -6543,7 +6558,7 @@
    If READABLE_EVENTS_FILTER_EVENTS is set in FLAGS, ignore internal
    events (FOCUS_IN_EVENT).
    If READABLE_EVENTS_IGNORE_SQUEEZABLES is set in FLAGS, ignore mouse
-   movements. */
+   movements and toolkit scroll bar thumb drags. */
 
 static void
 get_input_pending (addr, flags)
--- a/src/mac.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/mac.c	Fri May 13 22:59:23 2005 +0000
@@ -1672,37 +1672,7 @@
 }
 
 
-long target_ticks = 0;
-
-#ifdef __MRC__
-__sigfun alarm_signal_func = (__sigfun) 0;
-#elif __MWERKS__
-__signal_func_ptr alarm_signal_func = (__signal_func_ptr) 0;
-#else /* not __MRC__ and not __MWERKS__ */
-You lose!!!
-#endif /* not __MRC__ and not __MWERKS__ */
-
-
-/* These functions simulate SIG_ALRM.  The stub for function signal
-   stores the signal handler function in alarm_signal_func if a
-   SIG_ALRM is encountered.  check_alarm is called in XTread_socket,
-   which emacs calls periodically.  A pending alarm is represented by
-   a non-zero target_ticks value.  check_alarm calls the handler
-   function pointed to by alarm_signal_func if one has been set up and
-   an alarm is pending.  */
-
-void
-check_alarm ()
-{
-  if (target_ticks && TickCount () > target_ticks)
-    {
-      target_ticks = 0;
-      if (alarm_signal_func)
-	(*alarm_signal_func)(SIGALRM);
-    }
-}
-
-
+#include "keyboard.h"
 extern Boolean mac_wait_next_event (EventRecord *, UInt32, Boolean);
 
 int
@@ -1713,25 +1683,17 @@
   SELECT_TYPE *efds;
   struct timeval *timeout;
 {
+  OSErr err;
 #if TARGET_API_MAC_CARBON
-  OSErr err;
   EventTimeout timeout_sec =
     (timeout
      ? (EMACS_SECS (*timeout) * kEventDurationSecond
 	+ EMACS_USECS (*timeout) * kEventDurationMicrosecond)
      : kEventDurationForever);
 
-  if (FD_ISSET (0, rfds))
-    {
-      BLOCK_INPUT;
-      err = ReceiveNextEvent (0, NULL, timeout_sec, kEventLeaveInQueue, NULL);
-      UNBLOCK_INPUT;
-      if (err == noErr)
-	return 1;
-      else
-	FD_ZERO (rfds);
-    }
-  return 0;
+  BLOCK_INPUT;
+  err = ReceiveNextEvent (0, NULL, timeout_sec, kEventLeaveInQueue, NULL);
+  UNBLOCK_INPUT;
 #else /* not TARGET_API_MAC_CARBON */
   EventRecord e;
   UInt32 sleep_time = EMACS_SECS (*timeout) * 60 +
@@ -1746,47 +1708,62 @@
      read_avail_input which in turn calls XTread_socket to poll for
      these events.  Otherwise these never get processed except but a
      very slow poll timer.  */
-  if (FD_ISSET (0, rfds) && mac_wait_next_event (&e, sleep_time, false))
-    return 1;
-
-  return 0;
+  if (mac_wait_next_event (&e, sleep_time, false))
+    err = noErr;
+  else
+    err = -9875;		/* eventLoopTimedOutErr */
 #endif /* not TARGET_API_MAC_CARBON */
+
+  if (FD_ISSET (0, rfds))
+    if (err == noErr)
+      return 1;
+    else
+      {
+	FD_ZERO (rfds);
+	return 0;
+      }
+  else
+    if (err == noErr)
+      {
+	if (input_polling_used ())
+	  {
+	    /* It could be confusing if a real alarm arrives while
+	       processing the fake one.  Turn it off and let the
+	       handler reset it.  */
+	    extern void poll_for_input_1 P_ ((void));
+	    int old_poll_suppress_count = poll_suppress_count;
+	    poll_suppress_count = 1;
+	    poll_for_input_1 ();
+	    poll_suppress_count = old_poll_suppress_count;
+	  }
+	errno = EINTR;
+	return -1;
+      }
+    else
+      return 0;
 }
 
 
-/* Called in sys_select to wait for an alarm signal to arrive.  */
-
-int
-pause ()
-{
-  EventRecord e;
-  unsigned long tick;
-
-  if (!target_ticks)  /* no alarm pending */
-    return -1;
-
-  if ((tick = TickCount ()) < target_ticks)
-    WaitNextEvent (0, &e, target_ticks - tick, NULL); /* Accept no event;
-							 just wait. by T.I. */
-
-  target_ticks = 0;
-  if (alarm_signal_func)
-    (*alarm_signal_func)(SIGALRM);
-
-  return 0;
-}
-
-
-int
-alarm (int seconds)
-{
-  long remaining = target_ticks ? (TickCount () - target_ticks) / 60 : 0;
-
-  target_ticks = seconds ? TickCount () + 60 * seconds : 0;
-
-  return (remaining < 0) ? 0 : (unsigned int) remaining;
-}
-
+/* Simulation of SIGALRM.  The stub for function signal stores the
+   signal handler function in alarm_signal_func if a SIGALRM is
+   encountered.  */
+
+#include <signal.h>
+#include "syssignal.h"
+
+static TMTask mac_atimer_task;
+
+static QElemPtr mac_atimer_qlink = (QElemPtr) &mac_atimer_task;
+
+static int signal_mask = 0;
+
+#ifdef __MRC__
+__sigfun alarm_signal_func = (__sigfun) 0;
+#elif __MWERKS__
+__signal_func_ptr alarm_signal_func = (__signal_func_ptr) 0;
+#else /* not __MRC__ and not __MWERKS__ */
+You lose!!!
+#endif /* not __MRC__ and not __MWERKS__ */
 
 #undef signal
 #ifdef __MRC__
@@ -1819,6 +1796,128 @@
 }
 
 
+static pascal void
+mac_atimer_handler (qlink)
+     TMTaskPtr qlink;
+{
+  if (alarm_signal_func)
+    (alarm_signal_func) (SIGALRM);
+}
+
+
+static void
+set_mac_atimer (count)
+     long count;
+{
+  static TimerUPP mac_atimer_handlerUPP = NULL;
+
+  if (mac_atimer_handlerUPP == NULL)
+    mac_atimer_handlerUPP = NewTimerUPP (mac_atimer_handler);
+  mac_atimer_task.tmCount = 0;
+  mac_atimer_task.tmAddr = mac_atimer_handlerUPP;
+  mac_atimer_qlink = (QElemPtr) &mac_atimer_task;
+  InsTime (mac_atimer_qlink);
+  if (count)
+    PrimeTime (mac_atimer_qlink, count);
+}
+
+
+int
+remove_mac_atimer (remaining_count)
+     long *remaining_count;
+{
+  if (mac_atimer_qlink)
+    {
+      RmvTime (mac_atimer_qlink);
+      if (remaining_count)
+	*remaining_count = mac_atimer_task.tmCount;
+      mac_atimer_qlink = NULL;
+
+      return 0;
+    }
+  else
+    return -1;
+}
+
+
+int
+sigblock (int mask)
+{
+  int old_mask = signal_mask;
+
+  signal_mask |= mask;
+
+  if ((old_mask ^ signal_mask) & sigmask (SIGALRM))
+    remove_mac_atimer (NULL);
+
+  return old_mask;
+}
+
+
+int
+sigsetmask (int mask)
+{
+  int old_mask = signal_mask;
+
+  signal_mask = mask;
+
+  if ((old_mask ^ signal_mask) & sigmask (SIGALRM))
+    if (signal_mask & sigmask (SIGALRM))
+      remove_mac_atimer (NULL);
+    else
+      set_mac_atimer (mac_atimer_task.tmCount);
+
+  return old_mask;
+}
+
+
+int
+alarm (int seconds)
+{
+  long remaining_count;
+
+  if (remove_mac_atimer (&remaining_count) == 0)
+    {
+      set_mac_atimer (seconds * 1000);
+
+      return remaining_count / 1000;
+    }
+  else
+    {
+      mac_atimer_task.tmCount = seconds * 1000;
+
+      return 0;
+    }
+}
+
+
+int
+setitimer (which, value, ovalue)
+     int which;
+     const struct itimerval *value;
+     struct itimerval *ovalue;
+{
+  long remaining_count;
+  long count = (EMACS_SECS (value->it_value) * 1000
+		+ (EMACS_USECS (value->it_value) + 999) / 1000);
+
+  if (remove_mac_atimer (&remaining_count) == 0)
+    {
+      if (ovalue)
+	{
+	  bzero (ovalue, sizeof (*ovalue));
+	  EMACS_SET_SECS_USECS (ovalue->it_value, remaining_count / 1000,
+				(remaining_count % 1000) * 1000);
+	}
+      set_mac_atimer (count);
+    }
+  else
+    mac_atimer_task.tmCount = count;
+
+  return 0;
+}
+
+
 /* gettimeofday should return the amount of time (in a timeval
    structure) since midnight today.  The toolbox function Microseconds
    returns the number of microseconds (in a UnsignedWide value) since
@@ -1946,35 +2045,6 @@
 }
 
 
-/* MPW strftime broken for "%p" format */
-#ifdef __MRC__
-#undef strftime
-#include <time.h>
-size_t
-sys_strftime (char * s, size_t maxsize, const char * format,
-	      const struct tm * timeptr)
-{
-  if (strcmp (format, "%p") == 0)
-    {
-      if (maxsize < 3)
-        return 0;
-      if (timeptr->tm_hour < 12)
-        {
-          strcpy (s, "AM");
-          return 2;
-        }
-      else
-        {
-          strcpy (s, "PM");
-          return 2;
-        }
-    }
-  else
-    return strftime (s, maxsize, format, timeptr);
-}
-#endif  /* __MRC__ */
-
-
 /* no subprocesses, empty wait */
 
 int
@@ -1993,13 +2063,6 @@
 
 
 char *
-index (const char * str, int chr)
-{
-  return strchr (str, chr);
-}
-
-
-char *
 mktemp (char *template)
 {
   int len, k;
@@ -2187,20 +2250,6 @@
 }
 
 
-int
-sigsetmask (int x)
-{
-  return 0;
-}
-
-
-int
-sigblock (int mask)
-{
-  return 0;
-}
-
-
 void
 request_sigio (void)
 {
--- a/src/macfns.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/macfns.c	Fri May 13 22:59:23 2005 +0000
@@ -22,7 +22,6 @@
 
 #include <config.h>
 
-#include <signal.h>
 #include <stdio.h>
 #include <math.h>
 #include <limits.h>
--- a/src/macmenu.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/macmenu.c	Fri May 13 22:59:23 2005 +0000
@@ -21,7 +21,6 @@
 /* Contributed by Andrew Choi (akochoi@mac.com).  */
 
 #include <config.h>
-#include <signal.h>
 
 #include <stdio.h>
 #include "lisp.h"
--- a/src/macselect.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/macselect.c	Fri May 13 22:59:23 2005 +0000
@@ -1104,9 +1104,11 @@
 set to nil.  */);
   Vnext_selection_coding_system = Qnil;
 
+#ifdef MAC_OSX
   DEFVAR_LISP ("mac-services-selection", &Vmac_services_selection,
 	       doc: /* Selection name for communication via Services menu.  */);
-  Vmac_services_selection = intern ("CLIPBOARD");
+  Vmac_services_selection = intern ("PRIMARY");
+#endif
 
   QPRIMARY   = intern ("PRIMARY");	staticpro (&QPRIMARY);
   QSECONDARY = intern ("SECONDARY");	staticpro (&QSECONDARY);
--- a/src/macterm.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/macterm.c	Fri May 13 22:59:23 2005 +0000
@@ -3271,11 +3271,9 @@
   BLOCK_INPUT;
   XClearWindow (FRAME_MAC_DISPLAY (f), FRAME_MAC_WINDOW (f));
 
-#if 0  /* Clearing frame on Mac OS clears scroll bars.  */
   /* We have to clear the scroll bars, too.  If we have changed
      colors or something like that, then they should be notified.  */
   x_scroll_bar_clear (f);
-#endif
 
   XFlush (FRAME_MAC_DISPLAY (f));
   UNBLOCK_INPUT;
@@ -4135,12 +4133,12 @@
 static pascal void scroll_bar_timer_callback P_ ((EventLoopTimerRef, void *));
 static OSStatus install_scroll_bar_timer P_ ((void));
 static OSStatus set_scroll_bar_timer P_ ((EventTimerInterval));
-static int control_part_code_to_scroll_bar_part P_((ControlPartCode));
+static int control_part_code_to_scroll_bar_part P_ ((ControlPartCode));
 static void construct_scroll_bar_click P_ ((struct scroll_bar *, int,
 					    unsigned long,
 					    struct input_event *));
-static OSErr get_control_part_bound P_((ControlHandle, ControlPartCode,
-					Rect *));
+static OSErr get_control_part_bounds P_ ((ControlHandle, ControlPartCode,
+					  Rect *));
 static void x_scroll_bar_handle_press P_ ((struct scroll_bar *,
 					   ControlPartCode,
 					   unsigned long,
@@ -4267,7 +4265,7 @@
 }
 
 static OSErr
-get_control_part_bound (ch, part_code, rect)
+get_control_part_bounds (ch, part_code, rect)
      ControlHandle ch;
      ControlPartCode part_code;
      Rect *rect;
@@ -4340,8 +4338,8 @@
       int top, top_range;
       Rect r;
 
-      get_control_part_bound (SCROLL_BAR_CONTROL_HANDLE (bar),
-			      kControlIndicatorPart, &r);
+      get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar),
+			       kControlIndicatorPart, &r);
 
       if (GC_NILP (bar->dragging))
 	XSETINT (bar->dragging, mouse_pos.v - r.top);
@@ -4669,13 +4667,11 @@
       BLOCK_INPUT;
 
       /* If already correctly positioned, do nothing.  */
-      if (XINT (bar->left) == sb_left
-          && XINT (bar->top) == top
-          && XINT (bar->width) == sb_width
-          && XINT (bar->height) == height)
-        Draw1Control (ch);
-      else
-        {
+      if (!(XINT (bar->left) == sb_left
+	    && XINT (bar->top) == top
+	    && XINT (bar->width) == sb_width
+	    && XINT (bar->height) == height))
+	{
 	  /* Clear areas not covered by the scroll bar because it's not as
 	     wide as the area reserved for it .  This makes sure a
 	     previous mode line display is cleared after C-x 2 C-x 1, for
@@ -4724,11 +4720,11 @@
 
       /* Move the scroll bar thumb to the top.  */
       SetControl32BitValue (ch, 0);
-      get_control_part_bound (ch, kControlIndicatorPart, &r0);
+      get_control_part_bounds (ch, kControlIndicatorPart, &r0);
 
       /* Move the scroll bar thumb to the bottom.  */
       SetControl32BitValue (ch, 1);
-      get_control_part_bound (ch, kControlIndicatorPart, &r1);
+      get_control_part_bounds (ch, kControlIndicatorPart, &r1);
 
       UnionRect (&r0, &r1, &r0);
       XSETINT (bar->track_top, r0.top);
@@ -4876,7 +4872,7 @@
 static void
 x_scroll_bar_handle_click (bar, part_code, er, bufp)
      struct scroll_bar *bar;
-     int part_code;
+     ControlPartCode part_code;
      EventRecord *er;
      struct input_event *bufp;
 {
@@ -5034,6 +5030,21 @@
 
   *time = last_mouse_movement_time;
 }
+
+
+/* The screen has been cleared so we may have changed foreground or
+   background colors, and the scroll bars may need to be redrawn.
+   Clear out the scroll bars, and ask for expose events, so we can
+   redraw them.  */
+
+void
+x_scroll_bar_clear (f)
+     FRAME_PTR f;
+{
+  XTcondemn_scroll_bars (f);
+  XTjudge_scroll_bars (f);
+}
+
 
 /***********************************************************************
 			     Text Cursor
@@ -7498,7 +7509,6 @@
 
 extern void init_emacs_passwd_dir ();
 extern int emacs_main (int, char **, char **);
-extern void check_alarm ();
 
 extern void initialize_applescript();
 extern void terminate_applescript();
@@ -8650,23 +8660,18 @@
 #endif
 
 /* These few functions implement Emacs as a normal Mac application
-   (almost): set up the heap and the Toolbox, handle necessary
-   system events plus a few simple menu events.  They also set up
-   Emacs's access to functions defined in the rest of this file.
-   Emacs uses function hooks to perform all its terminal I/O.  A
-   complete list of these functions appear in termhooks.h.  For what
-   they do, read the comments there and see also w32term.c and
-   xterm.c.  What's noticeably missing here is the event loop, which
-   is normally present in most Mac application.  After performing the
-   necessary Mac initializations, main passes off control to
-   emacs_main (corresponding to main in emacs.c).  Emacs_main calls
-   mac_read_socket (defined further below) to read input.  This is
-   where WaitNextEvent is called to process Mac events.  This is also
-   where check_alarm in sysdep.c is called to simulate alarm signals.
-   This makes the cursor jump back to its correct position after
-   briefly jumping to that of the matching parenthesis, print useful
-   hints and prompts in the minibuffer after the user stops typing for
-   a wait, etc.  */
+   (almost): set up the heap and the Toolbox, handle necessary system
+   events plus a few simple menu events.  They also set up Emacs's
+   access to functions defined in the rest of this file.  Emacs uses
+   function hooks to perform all its terminal I/O.  A complete list of
+   these functions appear in termhooks.h.  For what they do, read the
+   comments there and see also w32term.c and xterm.c.  What's
+   noticeably missing here is the event loop, which is normally
+   present in most Mac application.  After performing the necessary
+   Mac initializations, main passes off control to emacs_main
+   (corresponding to main in emacs.c).  Emacs_main calls XTread_socket
+   (defined further below) to read input.  This is where
+   WaitNextEvent/ReceiveNextEvent is called to process Mac events.  */
 
 #ifdef MAC_OS8
 #undef main
@@ -8929,7 +8934,7 @@
 	case mouseUp:
 	  {
 	    WindowPtr window_ptr;
-	    SInt16 part_code;
+	    ControlPartCode part_code;
 	    int tool_bar_p = 0;
 
 #if USE_CARBON_EVENTS
@@ -8973,7 +8978,7 @@
 		  SelectWindow (window_ptr);
 		else
 		  {
-		    SInt16 control_part_code;
+		    ControlPartCode control_part_code;
 		    ControlHandle ch;
 		    Point mouse_loc = er.where;
 #ifdef MAC_OSX
@@ -9548,10 +9553,6 @@
       pending_autoraise_frame = 0;
     }
 
-#if !TARGET_API_MAC_CARBON
-  check_alarm ();  /* simulate the handling of a SIGALRM */
-#endif
-
   UNBLOCK_INPUT;
   return count;
 }
--- a/src/unexmacosx.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/unexmacosx.c	Fri May 13 22:59:23 2005 +0000
@@ -105,6 +105,8 @@
 #include <objc/malloc.h>
 #endif
 
+#include <assert.h>
+
 
 #define VERBOSE 1
 
@@ -998,6 +1000,23 @@
   malloc_set_zone_name (emacs_zone, "EmacsZone");
 }
 
+#ifndef MACOSX_MALLOC_MULT16
+#define MACOSX_MALLOC_MULT16 1
+#endif
+
+typedef struct unexec_malloc_header {
+  union {
+    char c[8];
+    size_t size;
+  } u;
+} unexec_malloc_header_t;
+
+#if MACOSX_MALLOC_MULT16
+
+#define ptr_in_unexec_regions(p) ((((vm_address_t) (p)) & 8) != 0)
+
+#else
+
 int
 ptr_in_unexec_regions (void *ptr)
 {
@@ -1011,36 +1030,75 @@
   return 0;
 }
 
+#endif
+
 void *
 unexec_malloc (size_t size)
 {
   if (in_dumped_exec)
-    return malloc (size);
+    {
+      void *p;
+
+      p = malloc (size);
+#if MACOSX_MALLOC_MULT16
+      assert (((vm_address_t) p % 16) == 0);
+#endif
+      return p;
+    }
   else
-    return malloc_zone_malloc (emacs_zone, size);
+    {
+      unexec_malloc_header_t *ptr;
+
+      ptr = (unexec_malloc_header_t *)
+	malloc_zone_malloc (emacs_zone, size + sizeof (unexec_malloc_header_t));
+      ptr->u.size = size;
+      ptr++;
+#if MACOSX_MALLOC_MULT16
+      assert (((vm_address_t) ptr % 16) == 8);
+#endif
+      return (void *) ptr;
+    }
 }
 
 void *
 unexec_realloc (void *old_ptr, size_t new_size)
 {
   if (in_dumped_exec)
-    if (ptr_in_unexec_regions (old_ptr))
-      {
-	char *p = malloc (new_size);
-	/* 2002-04-15 T. Ikegami <ikegami@adam.uprr.pr>.  The original
-	   code to get size failed to reallocate read_buffer
-	   (lread.c).  */
-	int old_size = malloc_default_zone()->size (emacs_zone, old_ptr);
-	int size = new_size > old_size ? old_size : new_size;
+    {
+      void *p;
+
+      if (ptr_in_unexec_regions (old_ptr))
+	{
+	  p = (size_t *) malloc (new_size);
+	  size_t old_size = ((unexec_malloc_header_t *) old_ptr)[-1].u.size;
+	  size_t size = new_size > old_size ? old_size : new_size;
 
-	if (size)
-	  memcpy (p, old_ptr, size);
-	return p;
-      }
-    else
-      return realloc (old_ptr, new_size);
+	  if (size)
+	    memcpy (p, old_ptr, size);
+	}
+      else
+	{
+	  p = realloc (old_ptr, new_size);
+	}
+#if MACOSX_MALLOC_MULT16
+      assert (((vm_address_t) p % 16) == 0);
+#endif
+      return p;
+    }
   else
-    return malloc_zone_realloc (emacs_zone, old_ptr, new_size);
+    {
+      unexec_malloc_header_t *ptr;
+
+      ptr = (unexec_malloc_header_t *)
+	malloc_zone_realloc (emacs_zone, (unexec_malloc_header_t *) old_ptr - 1,
+			     new_size + sizeof (unexec_malloc_header_t));
+      ptr->u.size = new_size;
+      ptr++;
+#if MACOSX_MALLOC_MULT16
+      assert (((vm_address_t) ptr % 16) == 8);
+#endif
+      return (void *) ptr;
+    }
 }
 
 void
@@ -1052,7 +1110,7 @@
 	free (ptr);
     }
   else
-    malloc_zone_free (emacs_zone, ptr);
+    malloc_zone_free (emacs_zone, (unexec_malloc_header_t *) ptr - 1);
 }
 
 /* arch-tag: 1a784f7b-a184-4c4f-9544-da8619593d72
--- a/src/xfns.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/xfns.c	Fri May 13 22:59:23 2005 +0000
@@ -20,7 +20,6 @@
 Boston, MA 02111-1307, USA.  */
 
 #include <config.h>
-#include <signal.h>
 #include <stdio.h>
 #include <math.h>
 
--- a/src/xmenu.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/xmenu.c	Fri May 13 22:59:23 2005 +0000
@@ -33,8 +33,10 @@
 
 #include <config.h>
 
+#if 0  /* Why was this included?  And without syssignal.h?  */
 /* On 4.3 this loses if it comes after xterm.h.  */
 #include <signal.h>
+#endif
 
 #include <stdio.h>
 
--- a/src/xterm.c	Mon May 09 16:17:25 2005 +0000
+++ b/src/xterm.c	Fri May 13 22:59:23 2005 +0000
@@ -7794,6 +7794,12 @@
 #define NO_INLINE
 #endif
 
+/* Some versions of GNU/Linux define noinline in their headers.  */
+
+#ifdef noinline
+#undef noinline
+#endif
+
 /* On older GCC versions, just putting x_error_quitter
    after x_error_handler prevents inlining into the former.  */