changeset 400:a86b2b5e0111 r21-2-30

Import from CVS: tag r21-2-30
author cvs
date Mon, 13 Aug 2007 11:14:34 +0200
parents 376370fb5946
children e0a2a2be14bf
files CHANGES-beta ChangeLog INSTALL PROBLEMS configure configure.in etc/TUTORIAL.ja lib-src/ChangeLog lib-src/movemail.c lisp/ChangeLog lisp/about.el lisp/buffer.el lisp/byte-optimize.el lisp/etags.el lisp/files.el lisp/font-lock.el lisp/gutter-items.el lisp/info.el lisp/ldap.el lisp/modeline.el lisp/msw-faces.el lisp/mule/mule-cmds.el lisp/package-get.el lwlib/ChangeLog lwlib/lwlib-Xaw.c lwlib/lwlib-Xm.c lwlib/lwlib.c lwlib/xlwgauge.c lwlib/xlwmenu.c lwlib/xlwmenu.h man/ChangeLog man/cl.texi man/internals/internals.texi man/lispref/backups.texi man/xemacs/files.texi nt/ChangeLog nt/README nt/Xmd.patch nt/config.h src/.dbxrc src/.gdbinit src/ChangeLog src/Makefile.in.in src/alloc.c src/buffer.c src/bytecode.c src/chartab.c src/config.h.in src/console-tty.c src/console.c src/data.c src/database.c src/device-msw.c src/device.c src/editfns.c src/eldap.c src/eldap.h src/elhash.c src/emacs.c src/eval.c src/event-msw.c src/event-stream.c src/events.c src/extents.c src/faces.c src/file-coding.c src/fileio.c src/floatfns.c src/fns.c src/frame.c src/glyphs-msw.c src/glyphs-msw.h src/glyphs-widget.c src/glyphs-x.c src/glyphs.c src/gui-msw.c src/gui-x.c src/gui.c src/gutter.c src/gutter.h src/insdel.c src/keymap.c src/lisp.h src/lread.c src/lrecord.h src/lstream.c src/m/7300.h src/m/acorn.h src/m/alliant-2800.h src/m/alliant.h src/m/altos.h src/m/amdahl.h src/m/arm.h src/m/att3b.h src/m/aviion.h src/m/celerity.h src/m/clipper.h src/m/cnvrgnt.h src/m/convex.h src/m/cydra5.h src/m/delta.h src/m/delta88k.h src/m/dpx2.h src/m/dual.h src/m/elxsi.h src/m/ews4800r.h src/m/gould-np1.h src/m/gould.h src/m/hp300bsd.h src/m/hp800.h src/m/hp9000s300.h src/m/i860.h src/m/ibmps2-aix.h src/m/ibmrs6000.h src/m/ibmrt-aix.h src/m/ibmrt.h src/m/intel386.h src/m/iris4d.h src/m/iris5d.h src/m/iris6d.h src/m/irist.h src/m/isi-ov.h src/m/luna88k.h src/m/m68k.h src/m/masscomp.h src/m/mega68.h src/m/mg1.h src/m/mips-nec.h src/m/mips-siemens.h src/m/mips.h src/m/next.h src/m/nh3000.h src/m/nh4000.h src/m/ns32000.h src/m/nu.h src/m/orion.h src/m/orion105.h src/m/pfa50.h src/m/plexus.h src/m/pmax.h src/m/powerpc.h src/m/pyramid.h src/m/sequent-ptx.h src/m/sequent.h src/m/sgi-challenge.h src/m/sparc.h src/m/sps7.h src/m/stride.h src/m/sun1.h src/m/sun2.h src/m/tad68k.h src/m/tahoe.h src/m/targon31.h src/m/tek4300.h src/m/tekxd88.h src/m/template.h src/m/tower32.h src/m/tower32v3.h src/m/ustation.h src/m/wicat.h src/m/windowsnt.h src/m/xps100.h src/malloc.c src/marker.c src/mem-limits.h src/menubar-msw.c src/mule-charset.c src/nt.c src/ntheap.c src/ntheap.h src/ntplay.c src/ntproc.c src/objects-msw.c src/objects-msw.h src/objects.c src/opaque.c src/process-nt.c src/process.c src/ralloc.c src/rangetab.c src/realpath.c src/redisplay.c src/redisplay.h src/s/cygwin32.h src/s/mingw32.h src/s/windowsnt.h src/select-msw.c src/specifier.c src/symbols.c src/symeval.h src/sysdep.c src/toolbar-msw.c src/toolbar.c src/tooltalk.c src/unexnt.c src/vm-limit.c src/window.c tests/ChangeLog tests/automated/mule-tests.el version.sh
diffstat 200 files changed, 5180 insertions(+), 4871 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES-beta	Mon Aug 13 11:13:33 2007 +0200
+++ b/CHANGES-beta	Mon Aug 13 11:14:34 2007 +0200
@@ -1,3 +1,17 @@
+to 21.2.30 "Hygeia"
+-- Make (find-tag-other-window) always use other window, 
+   even if tag is found in buffer of current window, Samuel Mikes
+-- Make configure complain about broken compiler versions (Jan Vroonhof, Yoshiki Hayashi, Bill Perry)
+-- `write-region' now deals properly with non-ASCII file names, Martin Buchholz
+-- `file-truename' now respects file-name-coding-system, Martin Buchholz
+-- arm configure support fixed.
+-- non-ASCII string handling performance boost, Martin Buchholz
+-- Garbage collector performance boost, Martin Buchholz
+-- Lisp engine performance boost, Martin Buchholz
+-- New ldap API (Oscar Figueiredo)
+-- (- 0) is now optimized to 0, not (-), Martin Buchholz
+-- More gutter tabs fixes, Andy Piper
+
 to 21.2.29 "Hestia"
 -- Fix compile errors on pre-X11R6 systems, introduced in 21.2.28.
 -- Fix autodetection of Berkeley DB on Linux Glibc 2 systems.  
@@ -124,6 +138,7 @@
 -- 10% faster redisplay from Jan Vroonhof
 -- Fixes from Jeff Miller, Alexandre Oliva and Yoshiki Hayashi
 -- "If you've got problems, read PROBLEMS!" from Robert Pluim
+-- Completely revamped GPM support from William Perry
 -- Lstream code now uses size_t, ssize_t consistently, Martin Buchholz
 -- Fix `make install' if prefix != exec_prefix, Martin Buchholz
 -- Fix compile warnings and C++ compilation, Martin Buchholz
--- a/ChangeLog	Mon Aug 13 11:13:33 2007 +0200
+++ b/ChangeLog	Mon Aug 13 11:14:34 2007 +0200
@@ -1,3 +1,41 @@
+2000-02-21  Martin Buchholz <martin@xemacs.org>
+
+	* XEmacs 21.2.30 is released.
+
+2000-02-20  Martin Buchholz  <martin@xemacs.org>
+
+	* configure.in: Enforce use of autoconf version >= 2.13.
+
+	* configure.in: Fix OS release test on Solaris.
+
+2000-02-19  Marcus Thiessel  <marcus@xemacs.org>
+
+	* PROBLEMS: Update email address. Describe more HP Motif errors.
+	
+2000-02-19  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+	* configure.in: Split Solaris version test in two parts. In the
+	Bourne shell the "-a" operator does NOT short-circuit.
+
+1999-12-15 Jan Vroonhof  <jan@xemacs.org>
+
+	*  (configure.in): Autodetect broken gcc versions. Patch from WM
+	Perry with tiny tweaks by Yoshiki Hayashi and yours truly.
+
+2000-02-17  Martin Buchholz  <martin@xemacs.org>
+
+	* configure.in: Autodetect sys/param.h.  Reorganize
+	AC_CHECK_HEADERS call.
+	* src/config.h.in: Add HAVE_SYS_PARAM_H.
+
+2000-02-16  Martin Buchholz  <martin@xemacs.org>
+
+	* configure.in: Test for arm simply using arm* instead of arm-*
+
+2000-01-05  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
+
+	* etc/TUTORIAL.ja: Synch with English version.
+
 2000-02-16  Martin Buchholz <martin@xemacs.org>
 
 	* XEmacs 21.2.29 is released.
--- a/INSTALL	Mon Aug 13 11:13:33 2007 +0200
+++ b/INSTALL	Mon Aug 13 11:14:34 2007 +0200
@@ -176,13 +176,9 @@
 The `--dynamic' option specifies that configure should try to link
 emacs dynamically rather than statically.
 
-The `--const-is-losing' option is for use if you have trouble
-compiling due to the `const' storage class in C.  This is defined by
-default.  Most users should have no need to change this.
-
 You can build XEmacs for several different machine types from a single
 source directory.  To do this, you must use a version of `make' that
-supports the `VPATH' variable, such as GNU `make'.  Make separate
+supports the `VPATH' variable, such as GNU `make'.  Create separate
 build directories for the different configuration types, and in each
 one, run the XEmacs `configure' script.  `configure' looks for the
 Emacs source code in the directory that `configure' is in.
--- a/PROBLEMS	Mon Aug 13 11:13:33 2007 +0200
+++ b/PROBLEMS	Mon Aug 13 11:14:34 2007 +0200
@@ -394,21 +394,22 @@
 
 *** On HP-UX, problems with make
 
-Marcus Thiessel <marcus_thiessel@hp.com>
+Marcus Thiessel <marcus@xemacs.org>
 
   Some releases of XEmacs (e.g. 20.4) require GNU make to build
   successfully. You don't need GNU make when building 21.x.
 
 *** On HP-UX 9.05 XEmacs won't compile or coredump during the build.
 
-Marcus Thiessel <marcus_thiessel@hp.com>
+Marcus Thiessel <marcus@xemacs.org>
 
   This might be a sed problem. For your own safety make sure to use
   GNU sed while dumping XEmacs.
 
-*** On HP-UX 11.0 XEmacs causes excessive X11 errors when running.
+*** On HP-UX 11.0 XEmacs causes excessive X11 errors when running. 
+    (also appears on AIX as reported in comp.emacs.xemacs)
 
-Marcus Thiessel <marcus_thiessel@hp.com>
+Marcus Thiessel <marcus@xemacs.org>
 
   Unfortunately, XEmacs releases prior to 21.0 don't work with
   Motif2.1. It will compile but you will get excessive X11 errors like
@@ -424,6 +425,19 @@
   Make sure /usr/lib/Motif1.2_R6/libXm.sl is a link to
   /usr/lib/Motif1.2_R6/libXm.3.
 
+*** On HP-UX 11.0: Object "" does not have windowed ancestor
+
+Marcus Thiessel <marcus@xemacs.org>
+
+  XEmacs dies without core file and reports:
+
+    Error: Object "" does not have windowed ancestor.
+
+  This is a bug. Please apply the patch PHSS_19964 (check if
+  superseded). The other alternative is to link with Motif1.2_R6 (see
+  previous item).
+
+
 ** SCO OpenServer
 *** Native cc on SCO OpenServer 5 is now OK.  Icc may still throw you
 a curve.  Here is what Robert Lipe <robertl@arnet.com> says:
--- a/configure	Mon Aug 13 11:13:33 2007 +0200
+++ b/configure	Mon Aug 13 11:14:34 2007 +0200
@@ -14,7 +14,7 @@
 ### from the file `./configure.in'.
 ### To rebuild it, execute the command
 ###	autoconf
-### in the this directory.  You must have autoconf version 2.12 or later.
+### in the this directory.  You must have autoconf version 2.13 or later.
 
 ### This file is part of XEmacs.
 
@@ -1110,8 +1110,7 @@
   m68*-sony-*      ) machine=news ;;
   mips-sony-*      ) machine=news-risc ;;
   clipper-*        ) machine=clipper ;;
-  arm-*            ) machine=arm ;;
-  armv34lb-*   ) machine=arm ;;
+  arm*             ) machine=arm ;;
   ns32k-*          ) machine=ns32000 ;;
 esac
 
@@ -1576,7 +1575,7 @@
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1580: checking for $ac_word" >&5
+echo "configure:1579: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1603,7 +1602,7 @@
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1607: checking for $ac_word" >&5
+echo "configure:1606: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1651,7 +1650,7 @@
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1655: checking for $ac_word" >&5
+echo "configure:1654: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1680,7 +1679,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1684: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1683: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
@@ -1693,12 +1692,12 @@
 
 cat > conftest.$ac_ext << EOF
 
-#line 1697 "configure"
+#line 1696 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:1702: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1726,19 +1725,19 @@
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1730: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1729: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1735: checking whether we are using GNU C" >&5
+echo "configure:1734: checking whether we are using GNU C" >&5
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1742: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1741: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1756,7 +1755,7 @@
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1760: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1759: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -1789,7 +1788,7 @@
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1793: checking for $ac_word" >&5
+echo "configure:1792: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1816,7 +1815,7 @@
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1820: checking for $ac_word" >&5
+echo "configure:1819: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1864,7 +1863,7 @@
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1868: checking for $ac_word" >&5
+echo "configure:1867: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -1893,7 +1892,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1897: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1896: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
@@ -1906,12 +1905,12 @@
 
 cat > conftest.$ac_ext << EOF
 
-#line 1910 "configure"
+#line 1909 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:1915: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:1914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1939,19 +1938,19 @@
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1943: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1942: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1948: checking whether we are using GNU C" >&5
+echo "configure:1947: checking whether we are using GNU C" >&5
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1955: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1954: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1969,7 +1968,7 @@
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1973: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1972: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -2002,7 +2001,7 @@
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2006: checking for $ac_word" >&5
+echo "configure:2005: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2029,7 +2028,7 @@
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2033: checking for $ac_word" >&5
+echo "configure:2032: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2077,7 +2076,7 @@
       # Extract the first word of "cl", so it can be a program name with args.
 set dummy cl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2081: checking for $ac_word" >&5
+echo "configure:2080: checking for $ac_word" >&5
 
 if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2106,7 +2105,7 @@
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:2110: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:2109: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 xe_cppflags='$CPPFLAGS $c_switch_site $c_switch_machine $c_switch_system $c_switch_x_site $X_CFLAGS'
@@ -2119,12 +2118,12 @@
 
 cat > conftest.$ac_ext << EOF
 
-#line 2123 "configure"
+#line 2122 "configure"
 #include "confdefs.h"
 
 main(){return(0);}
 EOF
-if { (eval echo configure:2128: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2127: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -2152,19 +2151,19 @@
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:2156: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:2155: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:2161: checking whether we are using GNU C" >&5
+echo "configure:2160: checking whether we are using GNU C" >&5
 
 cat > conftest.c <<EOF
 #ifdef __GNUC__
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2168: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:2167: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -2182,7 +2181,7 @@
 ac_save_CFLAGS="$CFLAGS"
 CFLAGS=
 echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:2186: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:2185: checking whether ${CC-cc} accepts -g" >&5
 
 echo 'void f(){}' > conftest.c
 if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
@@ -2219,7 +2218,7 @@
 test -n "$NON_GNU_CPP" -a "$GCC" != "yes" -a -z "$CPP" && CPP="$NON_GNU_CPP"
 
 echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:2223: checking how to run the C preprocessor" >&5
+echo "configure:2222: checking how to run the C preprocessor" >&5
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
@@ -2232,13 +2231,13 @@
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp.
   cat > conftest.$ac_ext <<EOF
-#line 2236 "configure"
+#line 2235 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2242: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2241: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -2249,13 +2248,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -E -traditional-cpp"
   cat > conftest.$ac_ext <<EOF
-#line 2253 "configure"
+#line 2252 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2259: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2258: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -2266,13 +2265,13 @@
   rm -rf conftest*
   CPP="${CC-cc} -nologo -E"
   cat > conftest.$ac_ext <<EOF
-#line 2270 "configure"
+#line 2269 "configure"
 #include "confdefs.h"
 #include <assert.h>
 Syntax Error
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2276: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2275: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   :
@@ -2299,9 +2298,9 @@
 
 
 echo $ac_n "checking for AIX""... $ac_c" 1>&6
-echo "configure:2303: checking for AIX" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2305 "configure"
+echo "configure:2302: checking for AIX" >&5
+cat > conftest.$ac_ext <<EOF
+#line 2304 "configure"
 #include "confdefs.h"
 #ifdef _AIX
   yes
@@ -2327,9 +2326,9 @@
 
  
 echo $ac_n "checking for GNU libc""... $ac_c" 1>&6
-echo "configure:2331: checking for GNU libc" >&5
-cat > conftest.$ac_ext <<EOF
-#line 2333 "configure"
+echo "configure:2330: checking for GNU libc" >&5
+cat > conftest.$ac_ext <<EOF
+#line 2332 "configure"
 #include "confdefs.h"
 #include <features.h>
 int main() {
@@ -2341,7 +2340,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:2345: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:2344: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   have_glibc=yes
 else
@@ -2418,7 +2417,7 @@
 esac
 
 cat > conftest.$ac_ext <<EOF
-#line 2422 "configure"
+#line 2421 "configure"
 #include "confdefs.h"
 int main () {
 #if defined __SUNPRO_C
@@ -2430,7 +2429,7 @@
 #endif
 }
 EOF
-if { (eval echo configure:2434: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:2433: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
@@ -2652,6 +2651,64 @@
     CFLAGS="-O" ;  fi
 fi
 
+if test "$GCC" = "yes"; then
+echo $ac_n "checking for buggy gcc versions""... $ac_c" 1>&6
+echo "configure:2657: checking for buggy gcc versions" >&5
+GCC_VERSION=`$CC --version`
+case `uname -s`:`uname -m`:$GCC_VERSION in
+		    *:sun4*:2.8.1|*:sun4*:egcs-2.90.*)
+                        case "$CFLAGS" in
+            *-O2*|*-O3*)
+                case "$CFLAGS" in
+                    *-fno-schedule-insns*) ;;
+                    *)
+                        echo "$ac_t""Yes" 1>&6
+                        echo "configure: warning: Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures" 1>&2
+                        echo "configure: warning: without also using -fno-schedule-insns." 1>&2
+                        { echo "configure: error: Aborting due to known problem" 1>&2; exit 1; }
+                        ;;
+                esac
+                ;;
+        esac
+        ;;
+		    Linux:alpha:egcs-2.91.*)
+        echo "$ac_t""Yes" 1>&6
+        echo "configure: warning: There have been reports of egcs-1.1 not compiling XEmacs correctly on" 1>&2
+        echo "configure: warning: Alpha Linux.  There have also been reports that egcs-1.0.3a is O.K." 1>&2
+        { echo "configure: error: Aborting due to known problem" 1>&2; exit 1; }
+        ;;
+    *:i*86*:2.7.2*)
+	case "$GCC_VERSION" in
+	    2.7.2)
+		case "$CFLAGS" in
+        	    *-O2*|*-O3*)
+                	case "$CFLAGS" in
+	                    *-fno-strength-reduce*) ;;
+        	            *)
+                                echo "$ac_t""Yes" 1>&6
+                      	        echo "configure: warning: Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using" 1>&2
+	                        echo "configure: warning: -fno-strength-reduce." 1>&2
+        	                { echo "configure: error: Aborting due to known problem" 1>&2; exit 1; }
+	                        ;;
+	                esac
+	                ;;
+		esac
+		;;
+	esac
+        case "$CFLAGS" in
+	 *-fno-caller-saves*) ;;
+	 *)
+            echo "$ac_t""Yes" 1>&6
+	    echo "configure: warning: Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using" 1>&2
+	    echo "configure: warning: -fno-caller-saves." 1>&2
+            { echo "configure: error: Aborting due to known problem" 1>&2; exit 1; }
+	    ;;
+        esac
+	;;
+esac
+fi
+echo "$ac_t""No" 1>&6
+
 
 if test "$GCC" = "yes"; then
   set x $ld_switch_system; shift; ld_switch_system=""
@@ -2716,7 +2773,7 @@
  fi
 
 echo $ac_n "checking for dynodump""... $ac_c" 1>&6
-echo "configure:2720: checking for dynodump" >&5
+echo "configure:2777: checking for dynodump" >&5
 if test "$unexec" != "unexsol2.o"; then
   echo "$ac_t""no" 1>&6
 else
@@ -2754,12 +2811,12 @@
   done
   
 echo $ac_n "checking for terminateAndUnload in -lC""... $ac_c" 1>&6
-echo "configure:2758: checking for terminateAndUnload in -lC" >&5
+echo "configure:2815: checking for terminateAndUnload in -lC" >&5
 ac_lib_var=`echo C'_'terminateAndUnload | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lC "
 cat > conftest.$ac_ext <<EOF
-#line 2763 "configure"
+#line 2820 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -2770,7 +2827,7 @@
 terminateAndUnload()
 ; return 0; }
 EOF
-if { (eval echo configure:2774: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2831: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2878,7 +2935,7 @@
 
 if test "$add_runtime_path" = "yes"; then
       echo $ac_n "checking "for runtime libraries flag"""... $ac_c" 1>&6
-echo "configure:2882: checking "for runtime libraries flag"" >&5
+echo "configure:2939: checking "for runtime libraries flag"" >&5
   case "$opsys" in
     sol2 ) dash_r="-R" ;;
     decosf* | linux* | irix*) dash_r="-rpath " ;;
@@ -2900,14 +2957,14 @@
   done
 fi
         cat > conftest.$ac_ext <<EOF
-#line 2904 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:2911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+#line 2961 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2968: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   dash_r="$try_dash_r"
 else
@@ -3009,10 +3066,10 @@
 fi
 after_morecore_hook_exists=yes
 echo $ac_n "checking for malloc_get_state""... $ac_c" 1>&6
-echo "configure:3013: checking for malloc_get_state" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3016 "configure"
+echo "configure:3070: checking for malloc_get_state" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3073 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_get_state(); below.  */
@@ -3035,7 +3092,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3039: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_malloc_get_state=yes"
 else
@@ -3055,10 +3112,10 @@
 fi
 
 echo $ac_n "checking for malloc_set_state""... $ac_c" 1>&6
-echo "configure:3059: checking for malloc_set_state" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3062 "configure"
+echo "configure:3116: checking for malloc_set_state" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3119 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char malloc_set_state(); below.  */
@@ -3081,7 +3138,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:3085: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3142: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_malloc_set_state=yes"
 else
@@ -3101,16 +3158,16 @@
 fi
 
 echo $ac_n "checking whether __after_morecore_hook exists""... $ac_c" 1>&6
-echo "configure:3105: checking whether __after_morecore_hook exists" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3107 "configure"
+echo "configure:3162: checking whether __after_morecore_hook exists" >&5
+cat > conftest.$ac_ext <<EOF
+#line 3164 "configure"
 #include "confdefs.h"
 extern void (* __after_morecore_hook)();
 int main() {
 __after_morecore_hook = 0
 ; return 0; }
 EOF
-if { (eval echo configure:3114: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3171: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
 else
@@ -3169,7 +3226,7 @@
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3173: checking for $ac_word" >&5
+echo "configure:3230: checking for $ac_word" >&5
 
 if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
@@ -3224,7 +3281,7 @@
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:3228: checking for a BSD compatible install" >&5
+echo "configure:3285: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 
   IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
@@ -3278,7 +3335,7 @@
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3282: checking for $ac_word" >&5
+echo "configure:3339: checking for $ac_word" >&5
 
 if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
@@ -3306,101 +3363,19 @@
 test -n "$YACC" || YACC="yacc"
 
 
-for ac_hdr in mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h
+for ac_hdr in   a.out.h   cygwin/version.h   fcntl.h   inttypes.h   libgen.h   locale.h   mach/mach.h   sys/param.h   sys/pstat.h   sys/stropts.h   sys/time.h   sys/timeb.h   sys/un.h   kstat.h   ulimit.h   unistd.h   utime.h 
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3314: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3317 "configure"
+echo "configure:3371: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3374 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3322: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  { test "$extra_verbose" = "yes" && cat << EOF
-    Defining $ac_tr_hdr
-EOF
-cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-}
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3355: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3358 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3363: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
-if test -z "$ac_err"; then
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=yes"
-else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  eval "ac_cv_header_$ac_safe=no"
-fi
-rm -f conftest*
-if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
-  { test "$extra_verbose" = "yes" && cat << EOF
-    Defining $ac_tr_hdr
-EOF
-cat >> confdefs.h <<EOF
-#define $ac_tr_hdr 1
-EOF
-}
- 
-else
-  echo "$ac_t""no" 1>&6
-fi
-done
-
-for ac_hdr in kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h
-do
-ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
-echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3396: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3399 "configure"
-#include "confdefs.h"
-#include <$ac_hdr>
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3404: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3379: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3430,10 +3405,10 @@
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:3434: checking for sys/wait.h that is POSIX.1 compatible" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3437 "configure"
+echo "configure:3409: checking for sys/wait.h that is POSIX.1 compatible" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3412 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -3449,7 +3424,7 @@
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:3453: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3428: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -3473,10 +3448,10 @@
 fi
 
 echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
-echo "configure:3477: checking for ANSI C header files" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3480 "configure"
+echo "configure:3452: checking for ANSI C header files" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3455 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 #include <stdarg.h>
@@ -3484,7 +3459,7 @@
 #include <float.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3488: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3463: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -3501,7 +3476,7 @@
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3505 "configure"
+#line 3480 "configure"
 #include "confdefs.h"
 #include <string.h>
 EOF
@@ -3519,7 +3494,7 @@
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
 cat > conftest.$ac_ext <<EOF
-#line 3523 "configure"
+#line 3498 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
@@ -3537,7 +3512,7 @@
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
 cat > conftest.$ac_ext <<EOF
-#line 3541 "configure"
+#line 3516 "configure"
 #include "confdefs.h"
 #include <ctype.h>
 #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
@@ -3548,7 +3523,7 @@
 exit (0); }
 
 EOF
-if { (eval echo configure:3552: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:3527: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
@@ -3574,10 +3549,10 @@
 fi
 
 echo $ac_n "checking whether time.h and sys/time.h may both be included""... $ac_c" 1>&6
-echo "configure:3578: checking whether time.h and sys/time.h may both be included" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3581 "configure"
+echo "configure:3553: checking whether time.h and sys/time.h may both be included" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3556 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/time.h>
@@ -3586,7 +3561,7 @@
 struct tm *tp;
 ; return 0; }
 EOF
-if { (eval echo configure:3590: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3565: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_time=yes
 else
@@ -3610,10 +3585,10 @@
 fi
 
 echo $ac_n "checking for sys_siglist declaration in signal.h or unistd.h""... $ac_c" 1>&6
-echo "configure:3614: checking for sys_siglist declaration in signal.h or unistd.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3617 "configure"
+echo "configure:3589: checking for sys_siglist declaration in signal.h or unistd.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3592 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3625,7 +3600,7 @@
 char *msg = *(sys_siglist + 1);
 ; return 0; }
 EOF
-if { (eval echo configure:3629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3604: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_decl_sys_siglist=yes
 else
@@ -3650,9 +3625,9 @@
 
 
 echo $ac_n "checking for struct utimbuf""... $ac_c" 1>&6
-echo "configure:3654: checking for struct utimbuf" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3656 "configure"
+echo "configure:3629: checking for struct utimbuf" >&5
+cat > conftest.$ac_ext <<EOF
+#line 3631 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -3671,7 +3646,7 @@
 static struct utimbuf x; x.actime = x.modtime;
 ; return 0; }
 EOF
-if { (eval echo configure:3675: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3650: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
@@ -3691,10 +3666,10 @@
 rm -f conftest*
 
 echo $ac_n "checking return type of signal handlers""... $ac_c" 1>&6
-echo "configure:3695: checking return type of signal handlers" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3698 "configure"
+echo "configure:3670: checking return type of signal handlers" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3673 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <signal.h>
@@ -3711,7 +3686,7 @@
 int i;
 ; return 0; }
 EOF
-if { (eval echo configure:3715: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3690: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_type_signal=void
 else
@@ -3733,10 +3708,10 @@
 
 
 echo $ac_n "checking for size_t""... $ac_c" 1>&6
-echo "configure:3737: checking for size_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3740 "configure"
+echo "configure:3712: checking for size_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3715 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3767,10 +3742,10 @@
 fi
 
 echo $ac_n "checking for pid_t""... $ac_c" 1>&6
-echo "configure:3771: checking for pid_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3774 "configure"
+echo "configure:3746: checking for pid_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3749 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3801,10 +3776,10 @@
 fi
 
 echo $ac_n "checking for uid_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:3805: checking for uid_t in sys/types.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3808 "configure"
+echo "configure:3780: checking for uid_t in sys/types.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3783 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 EOF
@@ -3840,10 +3815,10 @@
 fi
 
 echo $ac_n "checking for mode_t""... $ac_c" 1>&6
-echo "configure:3844: checking for mode_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3847 "configure"
+echo "configure:3819: checking for mode_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3822 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3874,10 +3849,10 @@
 fi
 
 echo $ac_n "checking for off_t""... $ac_c" 1>&6
-echo "configure:3878: checking for off_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3881 "configure"
+echo "configure:3853: checking for off_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3856 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3908,10 +3883,10 @@
 fi
 
 echo $ac_n "checking for ssize_t""... $ac_c" 1>&6
-echo "configure:3912: checking for ssize_t" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3915 "configure"
+echo "configure:3887: checking for ssize_t" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3890 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #if STDC_HEADERS
@@ -3943,9 +3918,9 @@
 
 
 echo $ac_n "checking for struct timeval""... $ac_c" 1>&6
-echo "configure:3947: checking for struct timeval" >&5
-cat > conftest.$ac_ext <<EOF
-#line 3949 "configure"
+echo "configure:3922: checking for struct timeval" >&5
+cat > conftest.$ac_ext <<EOF
+#line 3924 "configure"
 #include "confdefs.h"
 #ifdef TIME_WITH_SYS_TIME
 #include <sys/time.h>
@@ -3961,7 +3936,7 @@
 static struct timeval x; x.tv_sec = x.tv_usec;
 ; return 0; }
 EOF
-if { (eval echo configure:3965: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
   HAVE_TIMEVAL=yes
@@ -3983,10 +3958,10 @@
 rm -f conftest*
 
 echo $ac_n "checking whether struct tm is in sys/time.h or time.h""... $ac_c" 1>&6
-echo "configure:3987: checking whether struct tm is in sys/time.h or time.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 3990 "configure"
+echo "configure:3962: checking whether struct tm is in sys/time.h or time.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 3965 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <time.h>
@@ -3994,7 +3969,7 @@
 struct tm *tp; tp->tm_sec;
 ; return 0; }
 EOF
-if { (eval echo configure:3998: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3973: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm=time.h
 else
@@ -4018,10 +3993,10 @@
 fi
 
 echo $ac_n "checking for tm_zone in struct tm""... $ac_c" 1>&6
-echo "configure:4022: checking for tm_zone in struct tm" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4025 "configure"
+echo "configure:3997: checking for tm_zone in struct tm" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4000 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <$ac_cv_struct_tm>
@@ -4029,7 +4004,7 @@
 struct tm tm; tm.tm_zone;
 ; return 0; }
 EOF
-if { (eval echo configure:4033: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4008: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_struct_tm_zone=yes
 else
@@ -4052,10 +4027,10 @@
 
 else
   echo $ac_n "checking for tzname""... $ac_c" 1>&6
-echo "configure:4056: checking for tzname" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4059 "configure"
+echo "configure:4031: checking for tzname" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4034 "configure"
 #include "confdefs.h"
 #include <time.h>
 #ifndef tzname /* For SGI.  */
@@ -4065,7 +4040,7 @@
 atoi(*tzname);
 ; return 0; }
 EOF
-if { (eval echo configure:4069: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4044: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_var_tzname=yes
 else
@@ -4091,10 +4066,10 @@
 
 
 echo $ac_n "checking for working const""... $ac_c" 1>&6
-echo "configure:4095: checking for working const" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4098 "configure"
+echo "configure:4070: checking for working const" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4073 "configure"
 #include "confdefs.h"
 
 int main() {
@@ -4143,7 +4118,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4147: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4122: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_const=yes
 else
@@ -4168,7 +4143,7 @@
 
 
 echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:4172: checking whether ${MAKE-make} sets \${MAKE}" >&5
+echo "configure:4147: checking whether ${MAKE-make} sets \${MAKE}" >&5
 set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
 
 cat > conftestmake <<\EOF
@@ -4193,12 +4168,12 @@
 
 
 echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
-echo "configure:4197: checking whether byte ordering is bigendian" >&5
+echo "configure:4172: checking whether byte ordering is bigendian" >&5
 
 ac_cv_c_bigendian=unknown
 # See if sys/param.h defines the BYTE_ORDER macro.
 cat > conftest.$ac_ext <<EOF
-#line 4202 "configure"
+#line 4177 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -4209,11 +4184,11 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:4213: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4188: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   # It does; now see whether it defined to BIG_ENDIAN or not.
 cat > conftest.$ac_ext <<EOF
-#line 4217 "configure"
+#line 4192 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/param.h>
@@ -4224,7 +4199,7 @@
 #endif
 ; return 0; }
 EOF
-if { (eval echo configure:4228: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4203: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_bigendian=yes
 else
@@ -4241,7 +4216,7 @@
 rm -f conftest*
 if test $ac_cv_c_bigendian = unknown; then
 cat > conftest.$ac_ext <<EOF
-#line 4245 "configure"
+#line 4220 "configure"
 #include "confdefs.h"
 main () {
   /* Are we little or big endian?  From Harbison&Steele.  */
@@ -4254,7 +4229,7 @@
   exit (u.c[sizeof (long) - 1] == 1);
 }
 EOF
-if { (eval echo configure:4258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4233: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_c_bigendian=no
 else
@@ -4281,10 +4256,10 @@
 
 
 echo $ac_n "checking size of short""... $ac_c" 1>&6
-echo "configure:4285: checking size of short" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4288 "configure"
+echo "configure:4260: checking size of short" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4263 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4295,7 +4270,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4274: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_short=`cat conftestval`
 else
@@ -4323,10 +4298,10 @@
   exit 1
 fi
 echo $ac_n "checking size of int""... $ac_c" 1>&6
-echo "configure:4327: checking size of int" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4330 "configure"
+echo "configure:4302: checking size of int" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4305 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4337,7 +4312,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4341: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_int=`cat conftestval`
 else
@@ -4359,10 +4334,10 @@
 
 
 echo $ac_n "checking size of long""... $ac_c" 1>&6
-echo "configure:4363: checking size of long" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4366 "configure"
+echo "configure:4338: checking size of long" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4341 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4373,7 +4348,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_long=`cat conftestval`
 else
@@ -4395,10 +4370,10 @@
 
 
 echo $ac_n "checking size of long long""... $ac_c" 1>&6
-echo "configure:4399: checking size of long long" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4402 "configure"
+echo "configure:4374: checking size of long long" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4377 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4409,7 +4384,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4413: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4388: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_long_long=`cat conftestval`
 else
@@ -4431,10 +4406,10 @@
 
 
 echo $ac_n "checking size of void *""... $ac_c" 1>&6
-echo "configure:4435: checking size of void *" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4438 "configure"
+echo "configure:4410: checking size of void *" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4413 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 main()
@@ -4445,7 +4420,7 @@
   exit(0);
 }
 EOF
-if { (eval echo configure:4449: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:4424: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_sizeof_void_p=`cat conftestval`
 else
@@ -4468,7 +4443,7 @@
 
 
 echo $ac_n "checking for long file names""... $ac_c" 1>&6
-echo "configure:4472: checking for long file names" >&5
+echo "configure:4447: checking for long file names" >&5
 
 ac_cv_sys_long_file_names=yes
 # Test for long file names in all the places we know might matter:
@@ -4514,10 +4489,10 @@
 
 
 echo $ac_n "checking for sin""... $ac_c" 1>&6
-echo "configure:4518: checking for sin" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4521 "configure"
+echo "configure:4493: checking for sin" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4496 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char sin(); below.  */
@@ -4540,7 +4515,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4544: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4519: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_sin=yes"
 else
@@ -4558,12 +4533,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for sin in -lm""... $ac_c" 1>&6
-echo "configure:4562: checking for sin in -lm" >&5
+echo "configure:4537: checking for sin in -lm" >&5
 ac_lib_var=`echo m'_'sin | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lm "
 cat > conftest.$ac_ext <<EOF
-#line 4567 "configure"
+#line 4542 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4574,7 +4549,7 @@
 sin()
 ; return 0; }
 EOF
-if { (eval echo configure:4578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4553: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4618,14 +4593,14 @@
 
 
 cat > conftest.$ac_ext <<EOF
-#line 4622 "configure"
+#line 4597 "configure"
 #include "confdefs.h"
 #include <math.h>
 int main() {
 return atanh(1.0) + asinh(1.0) + acosh(1.0); 
 ; return 0; }
 EOF
-if { (eval echo configure:4629: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4604: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_INVERSE_HYPERBOLIC
@@ -4642,14 +4617,14 @@
 rm -f conftest*
 
 echo "checking type of mail spool file locking" 1>&6
-echo "configure:4646: checking type of mail spool file locking" >&5
+echo "configure:4621: checking type of mail spool file locking" >&5
 for ac_func in lockf flock
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:4650: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 4653 "configure"
+echo "configure:4625: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 4628 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -4672,7 +4647,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:4676: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4651: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -4745,12 +4720,12 @@
 case "$opsys" in decosf*)
   
 echo $ac_n "checking for cma_open in -lpthreads""... $ac_c" 1>&6
-echo "configure:4749: checking for cma_open in -lpthreads" >&5
+echo "configure:4724: checking for cma_open in -lpthreads" >&5
 ac_lib_var=`echo pthreads'_'cma_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpthreads "
 cat > conftest.$ac_ext <<EOF
-#line 4754 "configure"
+#line 4729 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -4761,7 +4736,7 @@
 cma_open()
 ; return 0; }
 EOF
-if { (eval echo configure:4765: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -4797,7 +4772,7 @@
 esac
 
 echo $ac_n "checking whether the -xildoff compiler flag is required""... $ac_c" 1>&6
-echo "configure:4801: checking whether the -xildoff compiler flag is required" >&5
+echo "configure:4776: checking whether the -xildoff compiler flag is required" >&5
 if   ${CC-cc} '-###' -xildon  no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ; then
   if ${CC-cc} '-###' -xildoff no_such_file.c 2>&1 | grep '^[^ ]*/ild ' > /dev/null ;
     then echo "$ac_t""no" 1>&6;
@@ -4806,19 +4781,21 @@
   else echo "$ac_t""no" 1>&6
 fi
 
-if test "$opsys" = "sol2" -a "$os_release" -ge 56; then
-  echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
-echo "configure:4812: checking for \"-z ignore\" linker flag" >&5
-  case "`ld -h 2>&1`" in
-    *-z\ ignore\|record* ) echo "$ac_t""yes" 1>&6
-      ld_switch_site="-z ignore $ld_switch_site" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-z ignore\" to \$ld_switch_site"; fi ;;
-    *) echo "$ac_t""no" 1>&6 ;;
-  esac
+if test "$opsys" = "sol2"; then
+  if test "$os_release" -ge 56; then
+    echo $ac_n "checking for \"-z ignore\" linker flag""... $ac_c" 1>&6
+echo "configure:4788: checking for \"-z ignore\" linker flag" >&5
+    case "`ld -h 2>&1`" in
+      *-z\ ignore\|record* ) echo "$ac_t""yes" 1>&6
+        ld_switch_site="-z ignore $ld_switch_site" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-z ignore\" to \$ld_switch_site"; fi ;;
+      *) echo "$ac_t""no" 1>&6 ;;
+    esac
+  fi
 fi
 
 
 echo "checking "for specified window system"" 1>&6
-echo "configure:4822: checking "for specified window system"" >&5
+echo "configure:4799: checking "for specified window system"" >&5
 
 if test "$with_x11" != "no"; then
     test "$x_includes $x_libraries" != "NONE NONE" && \
@@ -4851,7 +4828,7 @@
 # Uses ac_ vars as temps to allow command line to override cache and checks.
 # --without-x overrides everything else, but does not touch the cache.
 echo $ac_n "checking for X""... $ac_c" 1>&6
-echo "configure:4855: checking for X" >&5
+echo "configure:4832: checking for X" >&5
 
 # Check whether --with-x or --without-x was given.
 if test "${with_x+set}" = set; then
@@ -4911,12 +4888,12 @@
 
   # First, try using that file with no special directory specified.
 cat > conftest.$ac_ext <<EOF
-#line 4915 "configure"
+#line 4892 "configure"
 #include "confdefs.h"
 #include <$x_direct_test_include>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:4920: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:4897: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -4985,14 +4962,14 @@
   ac_save_LIBS="$LIBS"
   LIBS="-l$x_direct_test_library $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 4989 "configure"
+#line 4966 "configure"
 #include "confdefs.h"
 
 int main() {
 ${x_direct_test_function}()
 ; return 0; }
 EOF
-if { (eval echo configure:4996: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:4973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   LIBS="$ac_save_LIBS"
 # We can link X programs with no special library path.
@@ -5101,17 +5078,17 @@
     case "`(uname -sr) 2>/dev/null`" in
     "SunOS 5"*)
       echo $ac_n "checking whether -R must be followed by a space""... $ac_c" 1>&6
-echo "configure:5105: checking whether -R must be followed by a space" >&5
+echo "configure:5082: checking whether -R must be followed by a space" >&5
       ac_xsave_LIBS="$LIBS"; LIBS="$LIBS -R$x_libraries"
       cat > conftest.$ac_ext <<EOF
-#line 5108 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:5115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+#line 5085 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:5092: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_nospace=yes
 else
@@ -5127,14 +5104,14 @@
       else
 	LIBS="$ac_xsave_LIBS -R $x_libraries"
 	cat > conftest.$ac_ext <<EOF
-#line 5131 "configure"
-#include "confdefs.h"
-
-int main() {
-
-; return 0; }
-EOF
-if { (eval echo configure:5138: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+#line 5108 "configure"
+#include "confdefs.h"
+
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:5115: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_R_space=yes
 else
@@ -5170,12 +5147,12 @@
 else
 
 echo $ac_n "checking for dnet_ntoa in -ldnet""... $ac_c" 1>&6
-echo "configure:5174: checking for dnet_ntoa in -ldnet" >&5
+echo "configure:5151: checking for dnet_ntoa in -ldnet" >&5
 ac_lib_var=`echo dnet'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldnet "
 cat > conftest.$ac_ext <<EOF
-#line 5179 "configure"
+#line 5156 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5186,7 +5163,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:5190: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5167: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5210,12 +5187,12 @@
     if test $ac_cv_lib_dnet_dnet_ntoa = no; then
       
 echo $ac_n "checking for dnet_ntoa in -ldnet_stub""... $ac_c" 1>&6
-echo "configure:5214: checking for dnet_ntoa in -ldnet_stub" >&5
+echo "configure:5191: checking for dnet_ntoa in -ldnet_stub" >&5
 ac_lib_var=`echo dnet_stub'_'dnet_ntoa | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldnet_stub "
 cat > conftest.$ac_ext <<EOF
-#line 5219 "configure"
+#line 5196 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5226,7 +5203,7 @@
 dnet_ntoa()
 ; return 0; }
 EOF
-if { (eval echo configure:5230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5207: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5255,10 +5232,10 @@
     # The nsl library prevents programs from opening the X display
     # on Irix 5.2, according to dickey@clark.net.
     echo $ac_n "checking for gethostbyname""... $ac_c" 1>&6
-echo "configure:5259: checking for gethostbyname" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5262 "configure"
+echo "configure:5236: checking for gethostbyname" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5239 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char gethostbyname(); below.  */
@@ -5281,7 +5258,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5285: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5262: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_gethostbyname=yes"
 else
@@ -5302,12 +5279,12 @@
     if test $ac_cv_func_gethostbyname = no; then
       
 echo $ac_n "checking for gethostbyname in -lnsl""... $ac_c" 1>&6
-echo "configure:5306: checking for gethostbyname in -lnsl" >&5
+echo "configure:5283: checking for gethostbyname in -lnsl" >&5
 ac_lib_var=`echo nsl'_'gethostbyname | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lnsl "
 cat > conftest.$ac_ext <<EOF
-#line 5311 "configure"
+#line 5288 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5318,7 +5295,7 @@
 gethostbyname()
 ; return 0; }
 EOF
-if { (eval echo configure:5322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5299: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5348,10 +5325,10 @@
     # -lsocket must be given before -lnsl if both are needed.
     # We assume that if connect needs -lnsl, so does gethostbyname.
     echo $ac_n "checking for connect""... $ac_c" 1>&6
-echo "configure:5352: checking for connect" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5355 "configure"
+echo "configure:5329: checking for connect" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5332 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char connect(); below.  */
@@ -5374,7 +5351,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5378: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5355: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_connect=yes"
 else
@@ -5397,12 +5374,12 @@
 xe_msg_checking="for connect in -lsocket"
 test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:5401: checking "$xe_msg_checking"" >&5
+echo "configure:5378: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo socket'_'connect | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lsocket $X_EXTRA_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5406 "configure"
+#line 5383 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5413,7 +5390,7 @@
 connect()
 ; return 0; }
 EOF
-if { (eval echo configure:5417: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5394: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5437,10 +5414,10 @@
 
     # gomez@mi.uni-erlangen.de says -lposix is necessary on A/UX.
     echo $ac_n "checking for remove""... $ac_c" 1>&6
-echo "configure:5441: checking for remove" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5444 "configure"
+echo "configure:5418: checking for remove" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5421 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char remove(); below.  */
@@ -5463,7 +5440,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5467: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_remove=yes"
 else
@@ -5484,12 +5461,12 @@
     if test $ac_cv_func_remove = no; then
       
 echo $ac_n "checking for remove in -lposix""... $ac_c" 1>&6
-echo "configure:5488: checking for remove in -lposix" >&5
+echo "configure:5465: checking for remove in -lposix" >&5
 ac_lib_var=`echo posix'_'remove | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lposix "
 cat > conftest.$ac_ext <<EOF
-#line 5493 "configure"
+#line 5470 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5500,7 +5477,7 @@
 remove()
 ; return 0; }
 EOF
-if { (eval echo configure:5504: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5481: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5524,10 +5501,10 @@
 
     # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
     echo $ac_n "checking for shmat""... $ac_c" 1>&6
-echo "configure:5528: checking for shmat" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5531 "configure"
+echo "configure:5505: checking for shmat" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5508 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char shmat(); below.  */
@@ -5550,7 +5527,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:5554: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5531: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_shmat=yes"
 else
@@ -5571,12 +5548,12 @@
     if test $ac_cv_func_shmat = no; then
       
 echo $ac_n "checking for shmat in -lipc""... $ac_c" 1>&6
-echo "configure:5575: checking for shmat in -lipc" >&5
+echo "configure:5552: checking for shmat in -lipc" >&5
 ac_lib_var=`echo ipc'_'shmat | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lipc "
 cat > conftest.$ac_ext <<EOF
-#line 5580 "configure"
+#line 5557 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5587,7 +5564,7 @@
 shmat()
 ; return 0; }
 EOF
-if { (eval echo configure:5591: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5568: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5623,12 +5600,12 @@
 xe_msg_checking="for IceConnectionNumber in -lICE"
 test -n "$X_EXTRA_LIBS" && xe_msg_checking="$xe_msg_checking using extra libs $X_EXTRA_LIBS"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:5627: checking "$xe_msg_checking"" >&5
+echo "configure:5604: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ICE'_'IceConnectionNumber | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lICE $X_EXTRA_LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 5632 "configure"
+#line 5609 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5639,7 +5616,7 @@
 IceConnectionNumber()
 ; return 0; }
 EOF
-if { (eval echo configure:5643: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5620: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5808,7 +5785,7 @@
 
 
     echo "checking for X defines extracted by xmkmf" 1>&6
-echo "configure:5812: checking for X defines extracted by xmkmf" >&5
+echo "configure:5789: checking for X defines extracted by xmkmf" >&5
   rm -fr conftestdir
   if mkdir conftestdir; then
     cd conftestdir
@@ -5840,15 +5817,15 @@
 
     ac_safe=`echo "X11/Intrinsic.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Intrinsic.h""... $ac_c" 1>&6
-echo "configure:5844: checking for X11/Intrinsic.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 5847 "configure"
+echo "configure:5821: checking for X11/Intrinsic.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 5824 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:5852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:5829: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -5872,12 +5849,12 @@
 
       
 echo $ac_n "checking for XOpenDisplay in -lX11""... $ac_c" 1>&6
-echo "configure:5876: checking for XOpenDisplay in -lX11" >&5
+echo "configure:5853: checking for XOpenDisplay in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenDisplay | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
-#line 5881 "configure"
+#line 5858 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5888,7 +5865,7 @@
 XOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:5892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5869: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5913,12 +5890,12 @@
 xe_msg_checking="for XGetFontProperty in -lX11"
 test -n "-b i486-linuxaout" && xe_msg_checking="$xe_msg_checking using extra libs -b i486-linuxaout"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:5917: checking "$xe_msg_checking"" >&5
+echo "configure:5894: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo X11'_'XGetFontProperty | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 -b i486-linuxaout"
 cat > conftest.$ac_ext <<EOF
-#line 5922 "configure"
+#line 5899 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5929,7 +5906,7 @@
 XGetFontProperty()
 ; return 0; }
 EOF
-if { (eval echo configure:5933: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5910: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5956,12 +5933,12 @@
 
     
 echo $ac_n "checking for XShapeSelectInput in -lXext""... $ac_c" 1>&6
-echo "configure:5960: checking for XShapeSelectInput in -lXext" >&5
+echo "configure:5937: checking for XShapeSelectInput in -lXext" >&5
 ac_lib_var=`echo Xext'_'XShapeSelectInput | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXext "
 cat > conftest.$ac_ext <<EOF
-#line 5965 "configure"
+#line 5942 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -5972,7 +5949,7 @@
 XShapeSelectInput()
 ; return 0; }
 EOF
-if { (eval echo configure:5976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -5995,12 +5972,12 @@
 
     
 echo $ac_n "checking for XtOpenDisplay in -lXt""... $ac_c" 1>&6
-echo "configure:5999: checking for XtOpenDisplay in -lXt" >&5
+echo "configure:5976: checking for XtOpenDisplay in -lXt" >&5
 ac_lib_var=`echo Xt'_'XtOpenDisplay | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXt "
 cat > conftest.$ac_ext <<EOF
-#line 6004 "configure"
+#line 5981 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6011,7 +5988,7 @@
 XtOpenDisplay()
 ; return 0; }
 EOF
-if { (eval echo configure:6015: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:5992: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6034,14 +6011,14 @@
 
 
   echo $ac_n "checking the version of X11 being used""... $ac_c" 1>&6
-echo "configure:6038: checking the version of X11 being used" >&5
+echo "configure:6015: checking the version of X11 being used" >&5
   cat > conftest.$ac_ext <<EOF
-#line 6040 "configure"
+#line 6017 "configure"
 #include "confdefs.h"
 #include <X11/Intrinsic.h>
     int main(int c, char *v[]) { return c>1 ? XlibSpecificationRelease : 0; }
 EOF
-if { (eval echo configure:6045: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest foobar; x11_release=$?
 else
@@ -6065,10 +6042,10 @@
   for ac_func in XConvertCase
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:6069: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6072 "configure"
+echo "configure:6046: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6049 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -6091,7 +6068,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:6095: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -6123,15 +6100,15 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:6127: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6130 "configure"
+echo "configure:6104: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6107 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6135: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6112: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6162,7 +6139,7 @@
 
 
     echo $ac_n "checking for XFree86""... $ac_c" 1>&6
-echo "configure:6166: checking for XFree86" >&5
+echo "configure:6143: checking for XFree86" >&5
   if test -d "/usr/X386/include" -o \
           -f "/etc/XF86Config"    -o \
 	  -f "/etc/X11/XF86Config" -o \
@@ -6182,12 +6159,12 @@
 
     test -z "$with_xmu" && { 
 echo $ac_n "checking for XmuReadBitmapDataFromFile in -lXmu""... $ac_c" 1>&6
-echo "configure:6186: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
+echo "configure:6163: checking for XmuReadBitmapDataFromFile in -lXmu" >&5
 ac_lib_var=`echo Xmu'_'XmuReadBitmapDataFromFile | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXmu "
 cat > conftest.$ac_ext <<EOF
-#line 6191 "configure"
+#line 6168 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6198,7 +6175,7 @@
 XmuReadBitmapDataFromFile()
 ; return 0; }
 EOF
-if { (eval echo configure:6202: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6237,19 +6214,19 @@
 
       
 echo $ac_n "checking for main in -lXbsd""... $ac_c" 1>&6
-echo "configure:6241: checking for main in -lXbsd" >&5
+echo "configure:6218: checking for main in -lXbsd" >&5
 ac_lib_var=`echo Xbsd'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXbsd "
 cat > conftest.$ac_ext <<EOF
-#line 6246 "configure"
+#line 6223 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6253: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6230: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6286,22 +6263,22 @@
 fi 
 if test "$with_msw" != "no"; then
   echo "checking for MS-Windows" 1>&6
-echo "configure:6290: checking for MS-Windows" >&5
+echo "configure:6267: checking for MS-Windows" >&5
   
 echo $ac_n "checking for main in -lgdi32""... $ac_c" 1>&6
-echo "configure:6293: checking for main in -lgdi32" >&5
+echo "configure:6270: checking for main in -lgdi32" >&5
 ac_lib_var=`echo gdi32'_'main | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdi32 "
 cat > conftest.$ac_ext <<EOF
-#line 6298 "configure"
+#line 6275 "configure"
 #include "confdefs.h"
 
 int main() {
 main()
 ; return 0; }
 EOF
-if { (eval echo configure:6305: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6282: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6367,12 +6344,12 @@
  fi
     fi
         cat > conftest.$ac_ext <<EOF
-#line 6371 "configure"
+#line 6348 "configure"
 #include "confdefs.h"
 #include <fcntl.h>
     int main() { return (open("/dev/windows", O_RDONLY, 0) > 0)? 0 : 1; }
 EOF
-if { (eval echo configure:6376: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:6353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MSG_SELECT
@@ -6447,7 +6424,7 @@
 esac
 
 echo "checking for WM_COMMAND option" 1>&6
-echo "configure:6451: checking for WM_COMMAND option" >&5;
+echo "configure:6428: checking for WM_COMMAND option" >&5;
 if test "$with_wmcommand" != "no"; then
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_WMCOMMAND
@@ -6462,15 +6439,15 @@
 test -z "$with_xauth" && test "$window_system" = "none" && with_xauth=no
 test -z "$with_xauth" && { ac_safe=`echo "X11/Xauth.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xauth.h""... $ac_c" 1>&6
-echo "configure:6466: checking for X11/Xauth.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6469 "configure"
+echo "configure:6443: checking for X11/Xauth.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6446 "configure"
 #include "confdefs.h"
 #include <X11/Xauth.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6474: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6451: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6493,12 +6470,12 @@
  }
 test -z "$with_xauth" && { 
 echo $ac_n "checking for XauGetAuthByAddr in -lXau""... $ac_c" 1>&6
-echo "configure:6497: checking for XauGetAuthByAddr in -lXau" >&5
+echo "configure:6474: checking for XauGetAuthByAddr in -lXau" >&5
 ac_lib_var=`echo Xau'_'XauGetAuthByAddr | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXau "
 cat > conftest.$ac_ext <<EOF
-#line 6502 "configure"
+#line 6479 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6509,7 +6486,7 @@
 XauGetAuthByAddr()
 ; return 0; }
 EOF
-if { (eval echo configure:6513: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6490: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6554,15 +6531,15 @@
       for dir in "" "Tt/" "desktop/" ; do
     ac_safe=`echo "${dir}tt_c.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ${dir}tt_c.h""... $ac_c" 1>&6
-echo "configure:6558: checking for ${dir}tt_c.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6561 "configure"
+echo "configure:6535: checking for ${dir}tt_c.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6538 "configure"
 #include "confdefs.h"
 #include <${dir}tt_c.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6566: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6543: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6598,12 +6575,12 @@
 xe_msg_checking="for tt_message_create in -ltt"
 test -n "$extra_libs" && xe_msg_checking="$xe_msg_checking using extra libs $extra_libs"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6602: checking "$xe_msg_checking"" >&5
+echo "configure:6579: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo tt'_'tt_message_create | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltt $extra_libs"
 cat > conftest.$ac_ext <<EOF
-#line 6607 "configure"
+#line 6584 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6614,7 +6591,7 @@
 tt_message_create()
 ; return 0; }
 EOF
-if { (eval echo configure:6618: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6595: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6671,15 +6648,15 @@
 
 test -z "$with_cde" && { ac_safe=`echo "Dt/Dt.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Dt/Dt.h""... $ac_c" 1>&6
-echo "configure:6675: checking for Dt/Dt.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6678 "configure"
+echo "configure:6652: checking for Dt/Dt.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6655 "configure"
 #include "confdefs.h"
 #include <Dt/Dt.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6683: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6660: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6702,12 +6679,12 @@
  }
 test -z "$with_cde" && { 
 echo $ac_n "checking for DtDndDragStart in -lDtSvc""... $ac_c" 1>&6
-echo "configure:6706: checking for DtDndDragStart in -lDtSvc" >&5
+echo "configure:6683: checking for DtDndDragStart in -lDtSvc" >&5
 ac_lib_var=`echo DtSvc'_'DtDndDragStart | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lDtSvc "
 cat > conftest.$ac_ext <<EOF
-#line 6711 "configure"
+#line 6688 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6718,7 +6695,7 @@
 DtDndDragStart()
 ; return 0; }
 EOF
-if { (eval echo configure:6722: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6699: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6787,7 +6764,7 @@
 fi
 
 echo $ac_n "checking if drag and drop API is needed""... $ac_c" 1>&6
-echo "configure:6791: checking if drag and drop API is needed" >&5
+echo "configure:6768: checking if drag and drop API is needed" >&5
 if test "$with_dragndrop" != "no" ; then
   if test -n "$dragndrop_proto" ; then
     with_dragndrop=yes
@@ -6808,18 +6785,18 @@
 fi
 
 echo "checking for LDAP" 1>&6
-echo "configure:6812: checking for LDAP" >&5
+echo "configure:6789: checking for LDAP" >&5
 test -z "$with_ldap" && { ac_safe=`echo "ldap.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ldap.h""... $ac_c" 1>&6
-echo "configure:6815: checking for ldap.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6818 "configure"
+echo "configure:6792: checking for ldap.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6795 "configure"
 #include "confdefs.h"
 #include <ldap.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6800: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6842,15 +6819,15 @@
  }
 test -z "$with_ldap" && { ac_safe=`echo "lber.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for lber.h""... $ac_c" 1>&6
-echo "configure:6846: checking for lber.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 6849 "configure"
+echo "configure:6823: checking for lber.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 6826 "configure"
 #include "confdefs.h"
 #include <lber.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:6854: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:6831: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -6874,12 +6851,12 @@
 if test "$with_ldap" != "no"; then
   
 echo $ac_n "checking for ldap_search in -lldap""... $ac_c" 1>&6
-echo "configure:6878: checking for ldap_search in -lldap" >&5
+echo "configure:6855: checking for ldap_search in -lldap" >&5
 ac_lib_var=`echo ldap'_'ldap_search | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap "
 cat > conftest.$ac_ext <<EOF
-#line 6883 "configure"
+#line 6860 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6890,7 +6867,7 @@
 ldap_search()
 ; return 0; }
 EOF
-if { (eval echo configure:6894: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6871: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6915,12 +6892,12 @@
 xe_msg_checking="for ldap_open in -lldap"
 test -n "-llber" && xe_msg_checking="$xe_msg_checking using extra libs -llber"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6919: checking "$xe_msg_checking"" >&5
+echo "configure:6896: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap -llber"
 cat > conftest.$ac_ext <<EOF
-#line 6924 "configure"
+#line 6901 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6931,7 +6908,7 @@
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:6935: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6912: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6956,12 +6933,12 @@
 xe_msg_checking="for ldap_open in -lldap"
 test -n "-llber -lkrb" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:6960: checking "$xe_msg_checking"" >&5
+echo "configure:6937: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap -llber -lkrb"
 cat > conftest.$ac_ext <<EOF
-#line 6965 "configure"
+#line 6942 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -6972,7 +6949,7 @@
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:6976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6953: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -6997,12 +6974,12 @@
 xe_msg_checking="for ldap_open in -lldap"
 test -n "-llber -lkrb -ldes" && xe_msg_checking="$xe_msg_checking using extra libs -llber -lkrb -ldes"
 echo $ac_n "checking "$xe_msg_checking"""... $ac_c" 1>&6
-echo "configure:7001: checking "$xe_msg_checking"" >&5
+echo "configure:6978: checking "$xe_msg_checking"" >&5
 ac_lib_var=`echo ldap'_'ldap_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lldap -llber -lkrb -ldes"
 cat > conftest.$ac_ext <<EOF
-#line 7006 "configure"
+#line 6983 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7013,7 +6990,7 @@
 ldap_open()
 ; return 0; }
 EOF
-if { (eval echo configure:7017: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:6994: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7064,10 +7041,10 @@
   for ac_func in ldap_set_option ldap_get_lderrno ldap_result2error ldap_parse_result
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:7068: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7071 "configure"
+echo "configure:7045: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7048 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -7090,7 +7067,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7071: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -7122,15 +7099,15 @@
 
 if test "$window_system" != "none"; then
   echo "checking for graphics libraries" 1>&6
-echo "configure:7126: checking for graphics libraries" >&5
+echo "configure:7103: checking for graphics libraries" >&5
 
     xpm_problem=""
   if test -z "$with_xpm"; then
     echo $ac_n "checking for Xpm - no older than 3.4f""... $ac_c" 1>&6
-echo "configure:7131: checking for Xpm - no older than 3.4f" >&5
+echo "configure:7108: checking for Xpm - no older than 3.4f" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 7134 "configure"
+#line 7111 "configure"
 #include "confdefs.h"
 #define XPM_NUMBERS
 #include <X11/xpm.h>
@@ -7139,7 +7116,7 @@
       XpmIncludeVersion != XpmLibraryVersion() ? 1 :
       XpmIncludeVersion < 30406 ? 2 : 0 ;}
 EOF
-if { (eval echo configure:7143: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7120: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest dummy_arg; xpm_status=$?;
       if test "$xpm_status" = "0"; then
@@ -7181,17 +7158,17 @@
 
     libs_x="-lXpm $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lXpm\" to \$libs_x"; fi
     echo $ac_n "checking for \"FOR_MSW\" xpm""... $ac_c" 1>&6
-echo "configure:7185: checking for \"FOR_MSW\" xpm" >&5
+echo "configure:7162: checking for \"FOR_MSW\" xpm" >&5
     xe_check_libs=-lXpm
     cat > conftest.$ac_ext <<EOF
-#line 7188 "configure"
+#line 7165 "configure"
 #include "confdefs.h"
 
 int main() {
 XpmCreatePixmapFromData()
 ; return 0; }
 EOF
-if { (eval echo configure:7195: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7172: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   xpm_for_msw=no
 else
@@ -7217,15 +7194,15 @@
 
     test -z "$with_xface" && { ac_safe=`echo "compface.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for compface.h""... $ac_c" 1>&6
-echo "configure:7221: checking for compface.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7224 "configure"
+echo "configure:7198: checking for compface.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7201 "configure"
 #include "confdefs.h"
 #include <compface.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7229: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7206: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7248,12 +7225,12 @@
  }
   test -z "$with_xface" && { 
 echo $ac_n "checking for UnGenFace in -lcompface""... $ac_c" 1>&6
-echo "configure:7252: checking for UnGenFace in -lcompface" >&5
+echo "configure:7229: checking for UnGenFace in -lcompface" >&5
 ac_lib_var=`echo compface'_'UnGenFace | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcompface "
 cat > conftest.$ac_ext <<EOF
-#line 7257 "configure"
+#line 7234 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7264,7 +7241,7 @@
 UnGenFace()
 ; return 0; }
 EOF
-if { (eval echo configure:7268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7245: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7316,12 +7293,12 @@
       if test "$with_png $with_tiff" != "no no"; then
     
 echo $ac_n "checking for inflate in -lc""... $ac_c" 1>&6
-echo "configure:7320: checking for inflate in -lc" >&5
+echo "configure:7297: checking for inflate in -lc" >&5
 ac_lib_var=`echo c'_'inflate | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
-#line 7325 "configure"
+#line 7302 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7332,7 +7309,7 @@
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:7336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7351,12 +7328,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lz""... $ac_c" 1>&6
-echo "configure:7355: checking for inflate in -lz" >&5
+echo "configure:7332: checking for inflate in -lz" >&5
 ac_lib_var=`echo z'_'inflate | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lz "
 cat > conftest.$ac_ext <<EOF
-#line 7360 "configure"
+#line 7337 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7367,7 +7344,7 @@
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:7371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7348: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7386,12 +7363,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for inflate in -lgz""... $ac_c" 1>&6
-echo "configure:7390: checking for inflate in -lgz" >&5
+echo "configure:7367: checking for inflate in -lgz" >&5
 ac_lib_var=`echo gz'_'inflate | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgz "
 cat > conftest.$ac_ext <<EOF
-#line 7395 "configure"
+#line 7372 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7402,7 +7379,7 @@
 inflate()
 ; return 0; }
 EOF
-if { (eval echo configure:7406: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7383: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7432,15 +7409,15 @@
 
     test -z "$with_jpeg" && { ac_safe=`echo "jpeglib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for jpeglib.h""... $ac_c" 1>&6
-echo "configure:7436: checking for jpeglib.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7439 "configure"
+echo "configure:7413: checking for jpeglib.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7416 "configure"
 #include "confdefs.h"
 #include <jpeglib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7444: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7421: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7463,12 +7440,12 @@
  }
   test -z "$with_jpeg" && { 
 echo $ac_n "checking for jpeg_destroy_decompress in -ljpeg""... $ac_c" 1>&6
-echo "configure:7467: checking for jpeg_destroy_decompress in -ljpeg" >&5
+echo "configure:7444: checking for jpeg_destroy_decompress in -ljpeg" >&5
 ac_lib_var=`echo jpeg'_'jpeg_destroy_decompress | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ljpeg "
 cat > conftest.$ac_ext <<EOF
-#line 7472 "configure"
+#line 7449 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7479,7 +7456,7 @@
 jpeg_destroy_decompress()
 ; return 0; }
 EOF
-if { (eval echo configure:7483: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7460: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7515,10 +7492,10 @@
 
     png_problem=""
   test -z "$with_png" && { echo $ac_n "checking for pow""... $ac_c" 1>&6
-echo "configure:7519: checking for pow" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7522 "configure"
+echo "configure:7496: checking for pow" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7499 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char pow(); below.  */
@@ -7541,7 +7518,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:7545: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7522: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_pow=yes"
 else
@@ -7562,15 +7539,15 @@
  }
   test -z "$with_png" && { ac_safe=`echo "png.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for png.h""... $ac_c" 1>&6
-echo "configure:7566: checking for png.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7569 "configure"
+echo "configure:7543: checking for png.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7546 "configure"
 #include "confdefs.h"
 #include <png.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7574: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7551: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7593,12 +7570,12 @@
  }
   test -z "$with_png" && { 
 echo $ac_n "checking for png_read_image in -lpng""... $ac_c" 1>&6
-echo "configure:7597: checking for png_read_image in -lpng" >&5
+echo "configure:7574: checking for png_read_image in -lpng" >&5
 ac_lib_var=`echo png'_'png_read_image | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lpng "
 cat > conftest.$ac_ext <<EOF
-#line 7602 "configure"
+#line 7579 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7609,7 +7586,7 @@
 png_read_image()
 ; return 0; }
 EOF
-if { (eval echo configure:7613: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7590: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7632,10 +7609,10 @@
  }
   if test -z "$with_png"; then
     echo $ac_n "checking for workable png version information""... $ac_c" 1>&6
-echo "configure:7636: checking for workable png version information" >&5
+echo "configure:7613: checking for workable png version information" >&5
     xe_check_libs="-lpng -lz"
     cat > conftest.$ac_ext <<EOF
-#line 7639 "configure"
+#line 7616 "configure"
 #include "confdefs.h"
 #include <png.h>
     int main(int c, char **v) {
@@ -7643,7 +7620,7 @@
     if (strcmp(png_libpng_ver, PNG_LIBPNG_VER_STRING) != 0) return 1;
     return (PNG_LIBPNG_VER < 10002) ? 2 : 0 ;}
 EOF
-if { (eval echo configure:7647: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:7624: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ./conftest dummy_arg; png_status=$?;
       if test "$png_status" = "0"; then
@@ -7686,15 +7663,15 @@
 
     test -z "$with_tiff" && { ac_safe=`echo "tiffio.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for tiffio.h""... $ac_c" 1>&6
-echo "configure:7690: checking for tiffio.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7693 "configure"
+echo "configure:7667: checking for tiffio.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7670 "configure"
 #include "confdefs.h"
 #include <tiffio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7698: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7675: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7717,12 +7694,12 @@
  }
   test -z "$with_tiff" && { 
 echo $ac_n "checking for TIFFClientOpen in -ltiff""... $ac_c" 1>&6
-echo "configure:7721: checking for TIFFClientOpen in -ltiff" >&5
+echo "configure:7698: checking for TIFFClientOpen in -ltiff" >&5
 ac_lib_var=`echo tiff'_'TIFFClientOpen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltiff "
 cat > conftest.$ac_ext <<EOF
-#line 7726 "configure"
+#line 7703 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7733,7 +7710,7 @@
 TIFFClientOpen()
 ; return 0; }
 EOF
-if { (eval echo configure:7737: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7714: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7772,10 +7749,10 @@
 if test "$with_x11" = "yes"; then
 
   echo "checking for X11 graphics libraries" 1>&6
-echo "configure:7776: checking for X11 graphics libraries" >&5
+echo "configure:7753: checking for X11 graphics libraries" >&5
 
   echo "checking for the Athena widgets" 1>&6
-echo "configure:7779: checking for the Athena widgets" >&5
+echo "configure:7756: checking for the Athena widgets" >&5
 
     case "$with_athena" in
         "xaw" | "")	athena_variant=Xaw	athena_3d=no  ;;
@@ -7789,12 +7766,12 @@
     if test "$athena_3d" = "no"; then
     
 echo $ac_n "checking for XawScrollbarSetThumb in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:7793: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
+echo "configure:7770: checking for XawScrollbarSetThumb in -l$athena_variant" >&5
 ac_lib_var=`echo $athena_variant'_'XawScrollbarSetThumb | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 7798 "configure"
+#line 7775 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7805,7 +7782,7 @@
 XawScrollbarSetThumb()
 ; return 0; }
 EOF
-if { (eval echo configure:7809: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7786: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7821,12 +7798,12 @@
   echo "$ac_t""yes" 1>&6
           
 echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:7825: checking for threeDClassRec in -l$athena_variant" >&5
+echo "configure:7802: checking for threeDClassRec in -l$athena_variant" >&5
 ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 7830 "configure"
+#line 7807 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7837,7 +7814,7 @@
 threeDClassRec()
 ; return 0; }
 EOF
-if { (eval echo configure:7841: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7868,12 +7845,12 @@
   else
         
 echo $ac_n "checking for threeDClassRec in -l$athena_variant""... $ac_c" 1>&6
-echo "configure:7872: checking for threeDClassRec in -l$athena_variant" >&5
+echo "configure:7849: checking for threeDClassRec in -l$athena_variant" >&5
 ac_lib_var=`echo $athena_variant'_'threeDClassRec | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$athena_variant "
 cat > conftest.$ac_ext <<EOF
-#line 7877 "configure"
+#line 7854 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7884,7 +7861,7 @@
 threeDClassRec()
 ; return 0; }
 EOF
-if { (eval echo configure:7888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7865: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7902,12 +7879,12 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for threeDClassRec in -lXaw""... $ac_c" 1>&6
-echo "configure:7906: checking for threeDClassRec in -lXaw" >&5
+echo "configure:7883: checking for threeDClassRec in -lXaw" >&5
 ac_lib_var=`echo Xaw'_'threeDClassRec | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXaw "
 cat > conftest.$ac_ext <<EOF
-#line 7911 "configure"
+#line 7888 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -7918,7 +7895,7 @@
 threeDClassRec()
 ; return 0; }
 EOF
-if { (eval echo configure:7922: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:7899: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -7949,15 +7926,15 @@
     if test "$athena_3d" = "no"; then
     ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6
-echo "configure:7953: checking for X11/Xaw/ThreeD.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7956 "configure"
+echo "configure:7930: checking for X11/Xaw/ThreeD.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7933 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7961: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7938: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -7977,15 +7954,15 @@
   echo "$ac_t""no" 1>&6
 ac_safe=`echo "X11/Xaw/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw/XawInit.h""... $ac_c" 1>&6
-echo "configure:7981: checking for X11/Xaw/XawInit.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 7984 "configure"
+echo "configure:7958: checking for X11/Xaw/XawInit.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7961 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:7989: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:7966: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8011,15 +7988,15 @@
   else
             ac_safe=`echo "X11/$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/$athena_variant/XawInit.h""... $ac_c" 1>&6
-echo "configure:8015: checking for X11/$athena_variant/XawInit.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8018 "configure"
+echo "configure:7992: checking for X11/$athena_variant/XawInit.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 7995 "configure"
 #include "confdefs.h"
 #include <X11/$athena_variant/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8036,15 +8013,15 @@
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "X11/$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/$athena_variant/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8040: checking for X11/$athena_variant/ThreeD.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8043 "configure"
+echo "configure:8017: checking for X11/$athena_variant/ThreeD.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8020 "configure"
 #include "confdefs.h"
 #include <X11/$athena_variant/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8048: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8025: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8072,15 +8049,15 @@
         if test -z "$athena_h_path"; then
       ac_safe=`echo "$athena_variant/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $athena_variant/XawInit.h""... $ac_c" 1>&6
-echo "configure:8076: checking for $athena_variant/XawInit.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8079 "configure"
+echo "configure:8053: checking for $athena_variant/XawInit.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8056 "configure"
 #include "confdefs.h"
 #include <$athena_variant/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8084: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8061: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8097,15 +8074,15 @@
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "$athena_variant/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $athena_variant/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8101: checking for $athena_variant/ThreeD.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8104 "configure"
+echo "configure:8078: checking for $athena_variant/ThreeD.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8081 "configure"
 #include "confdefs.h"
 #include <$athena_variant/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8109: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8086: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8134,15 +8111,15 @@
         if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
       ac_safe=`echo "X11/Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw3d/XawInit.h""... $ac_c" 1>&6
-echo "configure:8138: checking for X11/Xaw3d/XawInit.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8141 "configure"
+echo "configure:8115: checking for X11/Xaw3d/XawInit.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8118 "configure"
 #include "confdefs.h"
 #include <X11/Xaw3d/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8146: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8123: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8159,15 +8136,15 @@
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "X11/Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw3d/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8163: checking for X11/Xaw3d/ThreeD.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8166 "configure"
+echo "configure:8140: checking for X11/Xaw3d/ThreeD.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8143 "configure"
 #include "confdefs.h"
 #include <X11/Xaw3d/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8171: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8148: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8199,15 +8176,15 @@
         if test -z "$athena_h_path" -a "$athena_variant" != "Xaw3d"; then
       ac_safe=`echo "Xaw3d/XawInit.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xaw3d/XawInit.h""... $ac_c" 1>&6
-echo "configure:8203: checking for Xaw3d/XawInit.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8206 "configure"
+echo "configure:8180: checking for Xaw3d/XawInit.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8183 "configure"
 #include "confdefs.h"
 #include <Xaw3d/XawInit.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8211: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8188: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8224,15 +8201,15 @@
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "Xaw3d/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xaw3d/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8228: checking for Xaw3d/ThreeD.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8231 "configure"
+echo "configure:8205: checking for Xaw3d/ThreeD.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8208 "configure"
 #include "confdefs.h"
 #include <Xaw3d/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8236: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8213: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8264,15 +8241,15 @@
             if test -z "$athena_h_path"; then
       ac_safe=`echo "X11/Xaw/ThreeD.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for X11/Xaw/ThreeD.h""... $ac_c" 1>&6
-echo "configure:8268: checking for X11/Xaw/ThreeD.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8271 "configure"
+echo "configure:8245: checking for X11/Xaw/ThreeD.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8248 "configure"
 #include "confdefs.h"
 #include <X11/Xaw/ThreeD.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8276: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8253: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8307,15 +8284,15 @@
 
     ac_safe=`echo "Xm/Xm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for Xm/Xm.h""... $ac_c" 1>&6
-echo "configure:8311: checking for Xm/Xm.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8314 "configure"
+echo "configure:8288: checking for Xm/Xm.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8291 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8319: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8296: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8332,12 +8309,12 @@
   echo "$ac_t""yes" 1>&6
   
 echo $ac_n "checking for XmStringFree in -lXm""... $ac_c" 1>&6
-echo "configure:8336: checking for XmStringFree in -lXm" >&5
+echo "configure:8313: checking for XmStringFree in -lXm" >&5
 ac_lib_var=`echo Xm'_'XmStringFree | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
-#line 8341 "configure"
+#line 8318 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8348,7 +8325,7 @@
 XmStringFree()
 ; return 0; }
 EOF
-if { (eval echo configure:8352: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8329: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8377,9 +8354,9 @@
 
   if test "$have_motif" = "yes"; then
         echo $ac_n "checking for Lesstif""... $ac_c" 1>&6
-echo "configure:8381: checking for Lesstif" >&5
+echo "configure:8358: checking for Lesstif" >&5
     cat > conftest.$ac_ext <<EOF
-#line 8383 "configure"
+#line 8360 "configure"
 #include "confdefs.h"
 #include <Xm/Xm.h>
 #ifdef LESSTIF_VERSION
@@ -8712,7 +8689,7 @@
 
 if test "$with_mule" = "yes" ; then
   echo "checking for Mule-related features" 1>&6
-echo "configure:8716: checking for Mule-related features" >&5
+echo "configure:8693: checking for Mule-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining MULE
 EOF
@@ -8737,15 +8714,15 @@
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:8741: checking for $ac_hdr" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 8744 "configure"
+echo "configure:8718: checking for $ac_hdr" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8721 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:8749: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:8726: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -8776,12 +8753,12 @@
 
   
 echo $ac_n "checking for strerror in -lintl""... $ac_c" 1>&6
-echo "configure:8780: checking for strerror in -lintl" >&5
+echo "configure:8757: checking for strerror in -lintl" >&5
 ac_lib_var=`echo intl'_'strerror | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lintl "
 cat > conftest.$ac_ext <<EOF
-#line 8785 "configure"
+#line 8762 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8792,7 +8769,7 @@
 strerror()
 ; return 0; }
 EOF
-if { (eval echo configure:8796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8825,18 +8802,18 @@
 
 
   echo "checking for Mule input methods" 1>&6
-echo "configure:8829: checking for Mule input methods" >&5
+echo "configure:8806: checking for Mule input methods" >&5
         case "$with_xim" in "" | "yes" )
     echo "checking for XIM" 1>&6
-echo "configure:8832: checking for XIM" >&5
+echo "configure:8809: checking for XIM" >&5
     
 echo $ac_n "checking for XOpenIM in -lX11""... $ac_c" 1>&6
-echo "configure:8835: checking for XOpenIM in -lX11" >&5
+echo "configure:8812: checking for XOpenIM in -lX11" >&5
 ac_lib_var=`echo X11'_'XOpenIM | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
-#line 8840 "configure"
+#line 8817 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8847,7 +8824,7 @@
 XOpenIM()
 ; return 0; }
 EOF
-if { (eval echo configure:8851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8871,12 +8848,12 @@
         if test "$have_motif $have_lesstif" = "yes no"; then
       
 echo $ac_n "checking for XmImMbLookupString in -lXm""... $ac_c" 1>&6
-echo "configure:8875: checking for XmImMbLookupString in -lXm" >&5
+echo "configure:8852: checking for XmImMbLookupString in -lXm" >&5
 ac_lib_var=`echo Xm'_'XmImMbLookupString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lXm "
 cat > conftest.$ac_ext <<EOF
-#line 8880 "configure"
+#line 8857 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8887,7 +8864,7 @@
 XmImMbLookupString()
 ; return 0; }
 EOF
-if { (eval echo configure:8891: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -8952,15 +8929,15 @@
 
     if test "$with_xfs" = "yes" ; then
     echo "checking for XFontSet" 1>&6
-echo "configure:8956: checking for XFontSet" >&5
+echo "configure:8933: checking for XFontSet" >&5
     
 echo $ac_n "checking for XmbDrawString in -lX11""... $ac_c" 1>&6
-echo "configure:8959: checking for XmbDrawString in -lX11" >&5
+echo "configure:8936: checking for XmbDrawString in -lX11" >&5
 ac_lib_var=`echo X11'_'XmbDrawString | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lX11 "
 cat > conftest.$ac_ext <<EOF
-#line 8964 "configure"
+#line 8941 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -8971,7 +8948,7 @@
 XmbDrawString()
 ; return 0; }
 EOF
-if { (eval echo configure:8975: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:8952: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9011,15 +8988,15 @@
     test "$with_wnn6" = "yes" && with_wnn=yes # wnn6 implies wnn support
   test -z "$with_wnn" && { ac_safe=`echo "wnn/jllib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for wnn/jllib.h""... $ac_c" 1>&6
-echo "configure:9015: checking for wnn/jllib.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9018 "configure"
+echo "configure:8992: checking for wnn/jllib.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 8995 "configure"
 #include "confdefs.h"
 #include <wnn/jllib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9000: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9044,10 +9021,10 @@
     for ac_func in crypt
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9048: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9051 "configure"
+echo "configure:9025: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9028 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9070,7 +9047,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:9074: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9051: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9099,12 +9076,12 @@
 
     test "$ac_cv_func_crypt" != "yes" && { 
 echo $ac_n "checking for crypt in -lcrypt""... $ac_c" 1>&6
-echo "configure:9103: checking for crypt in -lcrypt" >&5
+echo "configure:9080: checking for crypt in -lcrypt" >&5
 ac_lib_var=`echo crypt'_'crypt | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcrypt "
 cat > conftest.$ac_ext <<EOF
-#line 9108 "configure"
+#line 9085 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9115,7 +9092,7 @@
 crypt()
 ; return 0; }
 EOF
-if { (eval echo configure:9119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9096: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9150,12 +9127,12 @@
     if test -z "$with_wnn" -o "$with_wnn" = "yes"; then
     
 echo $ac_n "checking for jl_dic_list_e in -lwnn""... $ac_c" 1>&6
-echo "configure:9154: checking for jl_dic_list_e in -lwnn" >&5
+echo "configure:9131: checking for jl_dic_list_e in -lwnn" >&5
 ac_lib_var=`echo wnn'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn "
 cat > conftest.$ac_ext <<EOF
-#line 9159 "configure"
+#line 9136 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9166,7 +9143,7 @@
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:9170: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9147: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9184,12 +9161,12 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn4""... $ac_c" 1>&6
-echo "configure:9188: checking for jl_dic_list_e in -lwnn4" >&5
+echo "configure:9165: checking for jl_dic_list_e in -lwnn4" >&5
 ac_lib_var=`echo wnn4'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn4 "
 cat > conftest.$ac_ext <<EOF
-#line 9193 "configure"
+#line 9170 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9200,7 +9177,7 @@
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:9204: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9181: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9218,12 +9195,12 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for jl_dic_list_e in -lwnn6""... $ac_c" 1>&6
-echo "configure:9222: checking for jl_dic_list_e in -lwnn6" >&5
+echo "configure:9199: checking for jl_dic_list_e in -lwnn6" >&5
 ac_lib_var=`echo wnn6'_'jl_dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn6 "
 cat > conftest.$ac_ext <<EOF
-#line 9227 "configure"
+#line 9204 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9234,7 +9211,7 @@
 jl_dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:9238: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9215: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9252,12 +9229,12 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for dic_list_e in -lwnn6_fromsrc""... $ac_c" 1>&6
-echo "configure:9256: checking for dic_list_e in -lwnn6_fromsrc" >&5
+echo "configure:9233: checking for dic_list_e in -lwnn6_fromsrc" >&5
 ac_lib_var=`echo wnn6_fromsrc'_'dic_list_e | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lwnn6_fromsrc "
 cat > conftest.$ac_ext <<EOF
-#line 9261 "configure"
+#line 9238 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9268,7 +9245,7 @@
 dic_list_e()
 ; return 0; }
 EOF
-if { (eval echo configure:9272: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9249: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9316,12 +9293,12 @@
     if test "$with_wnn6" != "no"; then
       
 echo $ac_n "checking for jl_fi_dic_list in -l$libwnn""... $ac_c" 1>&6
-echo "configure:9320: checking for jl_fi_dic_list in -l$libwnn" >&5
+echo "configure:9297: checking for jl_fi_dic_list in -l$libwnn" >&5
 ac_lib_var=`echo $libwnn'_'jl_fi_dic_list | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$libwnn "
 cat > conftest.$ac_ext <<EOF
-#line 9325 "configure"
+#line 9302 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9332,7 +9309,7 @@
 jl_fi_dic_list()
 ; return 0; }
 EOF
-if { (eval echo configure:9336: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9367,15 +9344,15 @@
   if test "$with_canna" != "no"; then
     ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6
-echo "configure:9371: checking for canna/jrkanji.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9374 "configure"
+echo "configure:9348: checking for canna/jrkanji.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9351 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9379: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9356: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9402,15 +9379,15 @@
     c_switch_site="$c_switch_site -I/usr/local/canna/include"
     ac_safe=`echo "canna/jrkanji.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for canna/jrkanji.h""... $ac_c" 1>&6
-echo "configure:9406: checking for canna/jrkanji.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9409 "configure"
+echo "configure:9383: checking for canna/jrkanji.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9386 "configure"
 #include "confdefs.h"
 #include <canna/jrkanji.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9414: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9391: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9438,15 +9415,15 @@
 
   test -z "$with_canna" && { ac_safe=`echo "canna/RK.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for canna/RK.h""... $ac_c" 1>&6
-echo "configure:9442: checking for canna/RK.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9445 "configure"
+echo "configure:9419: checking for canna/RK.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9422 "configure"
 #include "confdefs.h"
 #include <canna/RK.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:9450: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:9427: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -9469,12 +9446,12 @@
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for RkBgnBun in -lRKC""... $ac_c" 1>&6
-echo "configure:9473: checking for RkBgnBun in -lRKC" >&5
+echo "configure:9450: checking for RkBgnBun in -lRKC" >&5
 ac_lib_var=`echo RKC'_'RkBgnBun | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lRKC "
 cat > conftest.$ac_ext <<EOF
-#line 9478 "configure"
+#line 9455 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9485,7 +9462,7 @@
 RkBgnBun()
 ; return 0; }
 EOF
-if { (eval echo configure:9489: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9466: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9508,12 +9485,12 @@
  }
   test -z "$with_canna" && { 
 echo $ac_n "checking for jrKanjiControl in -lcanna""... $ac_c" 1>&6
-echo "configure:9512: checking for jrKanjiControl in -lcanna" >&5
+echo "configure:9489: checking for jrKanjiControl in -lcanna" >&5
 ac_lib_var=`echo canna'_'jrKanjiControl | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcanna "
 cat > conftest.$ac_ext <<EOF
-#line 9517 "configure"
+#line 9494 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9524,7 +9501,7 @@
 jrKanjiControl()
 ; return 0; }
 EOF
-if { (eval echo configure:9528: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9505: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9573,12 +9550,12 @@
   libs_x="-lXm $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-lXm\" to \$libs_x"; fi
     
 echo $ac_n "checking for layout_object_getvalue in -li18n""... $ac_c" 1>&6
-echo "configure:9577: checking for layout_object_getvalue in -li18n" >&5
+echo "configure:9554: checking for layout_object_getvalue in -li18n" >&5
 ac_lib_var=`echo i18n'_'layout_object_getvalue | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -li18n "
 cat > conftest.$ac_ext <<EOF
-#line 9582 "configure"
+#line 9559 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9589,7 +9566,7 @@
 layout_object_getvalue()
 ; return 0; }
 EOF
-if { (eval echo configure:9593: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9675,10 +9652,10 @@
 for ac_func in cbrt closedir dup2 eaccess fmod fpathconf frexp ftime getaddrinfo gethostname getnameinfo getpagesize gettimeofday getcwd getpt getwd logb lrand48 matherr mkdir mktime perror poll random rename res_init rint rmdir select setitimer setpgid setlocale setsid sigblock sighold sigprocmask snprintf stpcpy strcasecmp strerror tzset ulimit usleep utimes waitpid vsnprintf fsync ftruncate umask
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9679: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9682 "configure"
+echo "configure:9656: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9659 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9701,7 +9678,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:9705: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9682: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9736,10 +9713,10 @@
 for ac_func in getloadavg
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:9740: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 9743 "configure"
+echo "configure:9717: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 9720 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -9762,7 +9739,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:9766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9743: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -9798,12 +9775,12 @@
 
     
 echo $ac_n "checking for kstat_open in -lkstat""... $ac_c" 1>&6
-echo "configure:9802: checking for kstat_open in -lkstat" >&5
+echo "configure:9779: checking for kstat_open in -lkstat" >&5
 ac_lib_var=`echo kstat'_'kstat_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lkstat "
 cat > conftest.$ac_ext <<EOF
-#line 9807 "configure"
+#line 9784 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9814,7 +9791,7 @@
 kstat_open()
 ; return 0; }
 EOF
-if { (eval echo configure:9818: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9795: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9848,12 +9825,12 @@
 
     
 echo $ac_n "checking for kvm_read in -lkvm""... $ac_c" 1>&6
-echo "configure:9852: checking for kvm_read in -lkvm" >&5
+echo "configure:9829: checking for kvm_read in -lkvm" >&5
 ac_lib_var=`echo kvm'_'kvm_read | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lkvm "
 cat > conftest.$ac_ext <<EOF
-#line 9857 "configure"
+#line 9834 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -9864,7 +9841,7 @@
 kvm_read()
 ; return 0; }
 EOF
-if { (eval echo configure:9868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -9898,16 +9875,16 @@
 fi
 
 echo $ac_n "checking whether netdb declares h_errno""... $ac_c" 1>&6
-echo "configure:9902: checking whether netdb declares h_errno" >&5
-cat > conftest.$ac_ext <<EOF
-#line 9904 "configure"
+echo "configure:9879: checking whether netdb declares h_errno" >&5
+cat > conftest.$ac_ext <<EOF
+#line 9881 "configure"
 #include "confdefs.h"
 #include <netdb.h>
 int main() {
 return h_errno;
 ; return 0; }
 EOF
-if { (eval echo configure:9911: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:9888: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
@@ -9927,16 +9904,16 @@
 rm -f conftest*
 
 echo $ac_n "checking for sigsetjmp""... $ac_c" 1>&6
-echo "configure:9931: checking for sigsetjmp" >&5
-cat > conftest.$ac_ext <<EOF
-#line 9933 "configure"
+echo "configure:9908: checking for sigsetjmp" >&5
+cat > conftest.$ac_ext <<EOF
+#line 9910 "configure"
 #include "confdefs.h"
 #include <setjmp.h>
 int main() {
 sigjmp_buf bar; sigsetjmp (bar, 0);
 ; return 0; }
 EOF
-if { (eval echo configure:9940: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:9917: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6
    { test "$extra_verbose" = "yes" && cat << \EOF
@@ -9956,11 +9933,11 @@
 rm -f conftest*
 
 echo $ac_n "checking whether localtime caches TZ""... $ac_c" 1>&6
-echo "configure:9960: checking whether localtime caches TZ" >&5
+echo "configure:9937: checking whether localtime caches TZ" >&5
 
 if test "$ac_cv_func_tzset" = "yes"; then
 cat > conftest.$ac_ext <<EOF
-#line 9964 "configure"
+#line 9941 "configure"
 #include "confdefs.h"
 #include <time.h>
 #if STDC_HEADERS
@@ -9995,7 +9972,7 @@
   exit (0);
 }
 EOF
-if { (eval echo configure:9999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:9976: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   emacs_cv_localtime_cache=no
 else
@@ -10025,9 +10002,9 @@
 
 if test "$HAVE_TIMEVAL" = "yes"; then
 echo $ac_n "checking whether gettimeofday accepts one or two arguments""... $ac_c" 1>&6
-echo "configure:10029: checking whether gettimeofday accepts one or two arguments" >&5
-cat > conftest.$ac_ext <<EOF
-#line 10031 "configure"
+echo "configure:10006: checking whether gettimeofday accepts one or two arguments" >&5
+cat > conftest.$ac_ext <<EOF
+#line 10008 "configure"
 #include "confdefs.h"
 
 #ifdef TIME_WITH_SYS_TIME
@@ -10048,7 +10025,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:10052: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10029: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""two" 1>&6
 else
@@ -10070,19 +10047,19 @@
 
 
 echo $ac_n "checking for inline""... $ac_c" 1>&6
-echo "configure:10074: checking for inline" >&5
+echo "configure:10051: checking for inline" >&5
 
 ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat > conftest.$ac_ext <<EOF
-#line 10079 "configure"
+#line 10056 "configure"
 #include "confdefs.h"
 
 int main() {
 } $ac_kw foo() {
 ; return 0; }
 EOF
-if { (eval echo configure:10086: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10063: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_c_inline=$ac_kw; break
 else
@@ -10132,17 +10109,17 @@
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:10136: checking for working alloca.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10139 "configure"
+echo "configure:10113: checking for working alloca.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10116 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:10146: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -10166,10 +10143,10 @@
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:10170: checking for alloca" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10173 "configure"
+echo "configure:10147: checking for alloca" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10150 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -10197,7 +10174,7 @@
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:10201: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10178: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -10236,10 +10213,10 @@
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:10240: checking whether alloca needs Cray hooks" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10243 "configure"
+echo "configure:10217: checking whether alloca needs Cray hooks" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10220 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -10263,10 +10240,10 @@
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10267: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10270 "configure"
+echo "configure:10244: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10247 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10289,7 +10266,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:10293: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10270: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10319,10 +10296,10 @@
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:10323: checking stack direction for C alloca" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10326 "configure"
+echo "configure:10300: checking stack direction for C alloca" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10303 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -10341,7 +10318,7 @@
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:10345: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10322: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_c_stack_direction=1
 else
@@ -10370,15 +10347,15 @@
 
 ac_safe=`echo "vfork.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for vfork.h""... $ac_c" 1>&6
-echo "configure:10374: checking for vfork.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10377 "configure"
+echo "configure:10351: checking for vfork.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10354 "configure"
 #include "confdefs.h"
 #include <vfork.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10382: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10359: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10406,10 +10383,10 @@
 fi
 
 echo $ac_n "checking for working vfork""... $ac_c" 1>&6
-echo "configure:10410: checking for working vfork" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10413 "configure"
+echo "configure:10387: checking for working vfork" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10390 "configure"
 #include "confdefs.h"
 /* Thanks to Paul Eggert for this test.  */
 #include <stdio.h>
@@ -10504,7 +10481,7 @@
   }
 }
 EOF
-if { (eval echo configure:10508: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10485: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_vfork_works=yes
 else
@@ -10530,10 +10507,10 @@
 
 
 echo $ac_n "checking for working strcoll""... $ac_c" 1>&6
-echo "configure:10534: checking for working strcoll" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10537 "configure"
+echo "configure:10511: checking for working strcoll" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10514 "configure"
 #include "confdefs.h"
 #include <string.h>
 main ()
@@ -10543,7 +10520,7 @@
 	strcoll ("123", "456") >= 0);
 }
 EOF
-if { (eval echo configure:10547: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10524: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_strcoll_works=yes
 else
@@ -10571,10 +10548,10 @@
 for ac_func in getpgrp
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:10575: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10578 "configure"
+echo "configure:10552: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10555 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -10597,7 +10574,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:10601: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10578: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -10625,10 +10602,10 @@
 done
 
 echo $ac_n "checking whether getpgrp takes no argument""... $ac_c" 1>&6
-echo "configure:10629: checking whether getpgrp takes no argument" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10632 "configure"
+echo "configure:10606: checking whether getpgrp takes no argument" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10609 "configure"
 #include "confdefs.h"
 
 /*
@@ -10683,7 +10660,7 @@
 }
 
 EOF
-if { (eval echo configure:10687: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10664: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   ac_cv_func_getpgrp_void=yes
 else
@@ -10710,10 +10687,10 @@
 
 
 echo $ac_n "checking for working mmap""... $ac_c" 1>&6
-echo "configure:10714: checking for working mmap" >&5
+echo "configure:10691: checking for working mmap" >&5
 case "$opsys" in ultrix* ) have_mmap=no ;; *)
 cat > conftest.$ac_ext <<EOF
-#line 10717 "configure"
+#line 10694 "configure"
 #include "confdefs.h"
 #include <stdio.h>
 #include <unistd.h>
@@ -10746,7 +10723,7 @@
   return 1;
 }
 EOF
-if { (eval echo configure:10750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:10727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   have_mmap=yes
 else
@@ -10772,9 +10749,9 @@
 if test "$rel_alloc $have_mmap" = "default yes"; then
   if test "$doug_lea_malloc" = "yes"; then
         echo $ac_n "checking for M_MMAP_THRESHOLD""... $ac_c" 1>&6
-echo "configure:10776: checking for M_MMAP_THRESHOLD" >&5
+echo "configure:10753: checking for M_MMAP_THRESHOLD" >&5
     cat > conftest.$ac_ext <<EOF
-#line 10778 "configure"
+#line 10755 "configure"
 #include "confdefs.h"
 #include <malloc.h>
 int main() {
@@ -10786,7 +10763,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:10790: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:10767: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   rel_alloc=no; echo "$ac_t""yes" 1>&6;
 else
@@ -10811,15 +10788,15 @@
 
 ac_safe=`echo "termios.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termios.h""... $ac_c" 1>&6
-echo "configure:10815: checking for termios.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10818 "configure"
+echo "configure:10792: checking for termios.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10795 "configure"
 #include "confdefs.h"
 #include <termios.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10823: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10800: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10862,15 +10839,15 @@
   echo "$ac_t""no" 1>&6
 ac_safe=`echo "termio.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for termio.h""... $ac_c" 1>&6
-echo "configure:10866: checking for termio.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10869 "configure"
+echo "configure:10843: checking for termio.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10846 "configure"
 #include "confdefs.h"
 #include <termio.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10874: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10851: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10902,10 +10879,10 @@
 
 
 echo $ac_n "checking for socket""... $ac_c" 1>&6
-echo "configure:10906: checking for socket" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10909 "configure"
+echo "configure:10883: checking for socket" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10886 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char socket(); below.  */
@@ -10928,7 +10905,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:10932: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_socket=yes"
 else
@@ -10943,15 +10920,15 @@
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "netinet/in.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for netinet/in.h""... $ac_c" 1>&6
-echo "configure:10947: checking for netinet/in.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10950 "configure"
+echo "configure:10924: checking for netinet/in.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10927 "configure"
 #include "confdefs.h"
 #include <netinet/in.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10955: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10932: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -10968,15 +10945,15 @@
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "arpa/inet.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for arpa/inet.h""... $ac_c" 1>&6
-echo "configure:10972: checking for arpa/inet.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 10975 "configure"
+echo "configure:10949: checking for arpa/inet.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 10952 "configure"
 #include "confdefs.h"
 #include <arpa/inet.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:10980: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:10957: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11001,9 +10978,9 @@
 }
 
       echo $ac_n "checking "for sun_len member in struct sockaddr_un"""... $ac_c" 1>&6
-echo "configure:11005: checking "for sun_len member in struct sockaddr_un"" >&5
+echo "configure:10982: checking "for sun_len member in struct sockaddr_un"" >&5
       cat > conftest.$ac_ext <<EOF
-#line 11007 "configure"
+#line 10984 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -11014,7 +10991,7 @@
 static struct sockaddr_un x; x.sun_len = 1;
 ; return 0; }
 EOF
-if { (eval echo configure:11018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:10995: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_SOCKADDR_SUN_LEN
@@ -11032,9 +11009,9 @@
 fi
 rm -f conftest*
       echo $ac_n "checking "for ip_mreq struct in netinet/in.h"""... $ac_c" 1>&6
-echo "configure:11036: checking "for ip_mreq struct in netinet/in.h"" >&5
+echo "configure:11013: checking "for ip_mreq struct in netinet/in.h"" >&5
       cat > conftest.$ac_ext <<EOF
-#line 11038 "configure"
+#line 11015 "configure"
 #include "confdefs.h"
 
 #include <sys/types.h>
@@ -11044,7 +11021,7 @@
 static struct ip_mreq x;
 ; return 0; }
 EOF
-if { (eval echo configure:11048: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11025: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   echo "$ac_t""yes" 1>&6; { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_MULTICAST
@@ -11075,10 +11052,10 @@
 
 
 echo $ac_n "checking for msgget""... $ac_c" 1>&6
-echo "configure:11079: checking for msgget" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11082 "configure"
+echo "configure:11056: checking for msgget" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11059 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char msgget(); below.  */
@@ -11101,7 +11078,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:11105: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_msgget=yes"
 else
@@ -11116,15 +11093,15 @@
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "sys/ipc.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/ipc.h""... $ac_c" 1>&6
-echo "configure:11120: checking for sys/ipc.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11123 "configure"
+echo "configure:11097: checking for sys/ipc.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11100 "configure"
 #include "confdefs.h"
 #include <sys/ipc.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11128: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11105: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11141,15 +11118,15 @@
   echo "$ac_t""yes" 1>&6
   ac_safe=`echo "sys/msg.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/msg.h""... $ac_c" 1>&6
-echo "configure:11145: checking for sys/msg.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11148 "configure"
+echo "configure:11122: checking for sys/msg.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11125 "configure"
 #include "confdefs.h"
 #include <sys/msg.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11153: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11130: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11187,15 +11164,15 @@
 
 ac_safe=`echo "dirent.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dirent.h""... $ac_c" 1>&6
-echo "configure:11191: checking for dirent.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11194 "configure"
+echo "configure:11168: checking for dirent.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11171 "configure"
 #include "confdefs.h"
 #include <dirent.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11199: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11176: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11222,15 +11199,15 @@
   echo "$ac_t""no" 1>&6
 ac_safe=`echo "sys/dir.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for sys/dir.h""... $ac_c" 1>&6
-echo "configure:11226: checking for sys/dir.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11229 "configure"
+echo "configure:11203: checking for sys/dir.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11206 "configure"
 #include "confdefs.h"
 #include <sys/dir.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11234: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11211: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11263,15 +11240,15 @@
 
 ac_safe=`echo "nlist.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for nlist.h""... $ac_c" 1>&6
-echo "configure:11267: checking for nlist.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11270 "configure"
+echo "configure:11244: checking for nlist.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11247 "configure"
 #include "confdefs.h"
 #include <nlist.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11275: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11252: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11301,22 +11278,22 @@
 
 
 echo "checking "for sound support"" 1>&6
-echo "configure:11305: checking "for sound support"" >&5
+echo "configure:11282: checking "for sound support"" >&5
 test -z "$with_native_sound" -a -n "$native_sound_lib" && with_native_sound=yes
 
 if test "$with_native_sound" != "no"; then
     if test -n "$native_sound_lib"; then
     ac_safe=`echo "multimedia/audio_device.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for multimedia/audio_device.h""... $ac_c" 1>&6
-echo "configure:11312: checking for multimedia/audio_device.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11315 "configure"
+echo "configure:11289: checking for multimedia/audio_device.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11292 "configure"
 #include "confdefs.h"
 #include <multimedia/audio_device.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11320: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11297: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11364,12 +11341,12 @@
       if test -z "$native_sound_lib"; then
         
 echo $ac_n "checking for ALopenport in -laudio""... $ac_c" 1>&6
-echo "configure:11368: checking for ALopenport in -laudio" >&5
+echo "configure:11345: checking for ALopenport in -laudio" >&5
 ac_lib_var=`echo audio'_'ALopenport | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -laudio "
 cat > conftest.$ac_ext <<EOF
-#line 11373 "configure"
+#line 11350 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11380,7 +11357,7 @@
 ALopenport()
 ; return 0; }
 EOF
-if { (eval echo configure:11384: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11361: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11411,12 +11388,12 @@
       if test -z "$native_sound_lib"; then
 	
 echo $ac_n "checking for AOpenAudio in -lAlib""... $ac_c" 1>&6
-echo "configure:11415: checking for AOpenAudio in -lAlib" >&5
+echo "configure:11392: checking for AOpenAudio in -lAlib" >&5
 ac_lib_var=`echo Alib'_'AOpenAudio | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lAlib "
 cat > conftest.$ac_ext <<EOF
-#line 11420 "configure"
+#line 11397 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11427,7 +11404,7 @@
 AOpenAudio()
 ; return 0; }
 EOF
-if { (eval echo configure:11431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11408: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11465,15 +11442,15 @@
     for dir in "machine" "sys" "linux"; do
       ac_safe=`echo "${dir}/soundcard.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ${dir}/soundcard.h""... $ac_c" 1>&6
-echo "configure:11469: checking for ${dir}/soundcard.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11472 "configure"
+echo "configure:11446: checking for ${dir}/soundcard.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11449 "configure"
 #include "confdefs.h"
 #include <${dir}/soundcard.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11477: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11454: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11527,15 +11504,15 @@
 if test "$with_nas_sound" != "no"; then
   ac_safe=`echo "audio/audiolib.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for audio/audiolib.h""... $ac_c" 1>&6
-echo "configure:11531: checking for audio/audiolib.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11534 "configure"
+echo "configure:11508: checking for audio/audiolib.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11511 "configure"
 #include "confdefs.h"
 #include <audio/audiolib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11539: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11516: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11553,12 +11530,12 @@
   
     
 echo $ac_n "checking for AuOpenServer in -laudio""... $ac_c" 1>&6
-echo "configure:11557: checking for AuOpenServer in -laudio" >&5
+echo "configure:11534: checking for AuOpenServer in -laudio" >&5
 ac_lib_var=`echo audio'_'AuOpenServer | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -laudio "
 cat > conftest.$ac_ext <<EOF
-#line 11562 "configure"
+#line 11539 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11569,7 +11546,7 @@
 AuOpenServer()
 ; return 0; }
 EOF
-if { (eval echo configure:11573: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11550: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11608,7 +11585,7 @@
  fi
     libs_x="-laudio $libs_x" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"-laudio\" to \$libs_x"; fi
             cat > conftest.$ac_ext <<EOF
-#line 11612 "configure"
+#line 11589 "configure"
 #include "confdefs.h"
 #include <audio/Xtutil.h>
 EOF
@@ -11639,7 +11616,7 @@
   # Extract the first word of "esd-config", so it can be a program name with args.
 set dummy esd-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:11643: checking for $ac_word" >&5
+echo "configure:11620: checking for $ac_word" >&5
 
 if test -n "$have_esd_config"; then
   ac_cv_prog_have_esd_config="$have_esd_config" # Let the user override the test.
@@ -11668,10 +11645,10 @@
     c_switch_site="$c_switch_site `esd-config --cflags`" &&  if test "$extra_verbose" = "yes"; then echo "    Appending \"`esd-config --cflags`\" to \$c_switch_site"; fi
     LIBS="`esd-config --libs` $LIBS" &&  if test "$extra_verbose" = "yes"; then echo "    Prepending \"`esd-config --libs`\" to \$LIBS"; fi
     echo $ac_n "checking for esd_play_stream""... $ac_c" 1>&6
-echo "configure:11672: checking for esd_play_stream" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11675 "configure"
+echo "configure:11649: checking for esd_play_stream" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11652 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char esd_play_stream(); below.  */
@@ -11694,7 +11671,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:11698: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11675: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_esd_play_stream=yes"
 else
@@ -11745,7 +11722,7 @@
 
 if test "$with_tty" = "yes"  ; then
   echo "checking for TTY-related features" 1>&6
-echo "configure:11749: checking for TTY-related features" >&5
+echo "configure:11726: checking for TTY-related features" >&5
   { test "$extra_verbose" = "yes" && cat << \EOF
     Defining HAVE_TTY
 EOF
@@ -11761,12 +11738,12 @@
     if test -z "$with_ncurses"; then
     
 echo $ac_n "checking for tgetent in -lncurses""... $ac_c" 1>&6
-echo "configure:11765: checking for tgetent in -lncurses" >&5
+echo "configure:11742: checking for tgetent in -lncurses" >&5
 ac_lib_var=`echo ncurses'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lncurses "
 cat > conftest.$ac_ext <<EOF
-#line 11770 "configure"
+#line 11747 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11777,7 +11754,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:11781: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11758: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11810,15 +11787,15 @@
 
     ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:11814: checking for ncurses/curses.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11817 "configure"
+echo "configure:11791: checking for ncurses/curses.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11794 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11822: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11799: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11840,15 +11817,15 @@
 
     ac_safe=`echo "ncurses/term.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/term.h""... $ac_c" 1>&6
-echo "configure:11844: checking for ncurses/term.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11847 "configure"
+echo "configure:11821: checking for ncurses/term.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11824 "configure"
 #include "confdefs.h"
 #include <ncurses/term.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11852: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11829: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11878,15 +11855,15 @@
       c_switch_site="$c_switch_site -I/usr/include/ncurses"
       ac_safe=`echo "ncurses/curses.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ncurses/curses.h""... $ac_c" 1>&6
-echo "configure:11882: checking for ncurses/curses.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 11885 "configure"
+echo "configure:11859: checking for ncurses/curses.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 11862 "configure"
 #include "confdefs.h"
 #include <ncurses/curses.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:11890: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:11867: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -11921,12 +11898,12 @@
 	for lib in curses termlib termcap; do
 	  
 echo $ac_n "checking for tgetent in -l$lib""... $ac_c" 1>&6
-echo "configure:11925: checking for tgetent in -l$lib" >&5
+echo "configure:11902: checking for tgetent in -l$lib" >&5
 ac_lib_var=`echo $lib'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -l$lib "
 cat > conftest.$ac_ext <<EOF
-#line 11930 "configure"
+#line 11907 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11937,7 +11914,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:11941: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -11968,12 +11945,12 @@
       else
 	
 echo $ac_n "checking for tgetent in -lcurses""... $ac_c" 1>&6
-echo "configure:11972: checking for tgetent in -lcurses" >&5
+echo "configure:11949: checking for tgetent in -lcurses" >&5
 ac_lib_var=`echo curses'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lcurses "
 cat > conftest.$ac_ext <<EOF
-#line 11977 "configure"
+#line 11954 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -11984,7 +11961,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:11988: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11965: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12002,12 +11979,12 @@
 else
   echo "$ac_t""no" 1>&6
 echo $ac_n "checking for tgetent in -ltermcap""... $ac_c" 1>&6
-echo "configure:12006: checking for tgetent in -ltermcap" >&5
+echo "configure:11983: checking for tgetent in -ltermcap" >&5
 ac_lib_var=`echo termcap'_'tgetent | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ltermcap "
 cat > conftest.$ac_ext <<EOF
-#line 12011 "configure"
+#line 11988 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12018,7 +11995,7 @@
 tgetent()
 ; return 0; }
 EOF
-if { (eval echo configure:12022: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:11999: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12066,15 +12043,15 @@
 
     test -z "$with_gpm" && { ac_safe=`echo "gpm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for gpm.h""... $ac_c" 1>&6
-echo "configure:12070: checking for gpm.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 12073 "configure"
+echo "configure:12047: checking for gpm.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 12050 "configure"
 #include "confdefs.h"
 #include <gpm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12078: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12055: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12097,12 +12074,12 @@
  }
   test -z "$with_gpm" && { 
 echo $ac_n "checking for Gpm_Open in -lgpm""... $ac_c" 1>&6
-echo "configure:12101: checking for Gpm_Open in -lgpm" >&5
+echo "configure:12078: checking for Gpm_Open in -lgpm" >&5
 ac_lib_var=`echo gpm'_'Gpm_Open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgpm "
 cat > conftest.$ac_ext <<EOF
-#line 12106 "configure"
+#line 12083 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12113,7 +12090,7 @@
 Gpm_Open()
 ; return 0; }
 EOF
-if { (eval echo configure:12117: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12094: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12163,20 +12140,20 @@
 
 test "$with_database_gdbm $with_database_dbm $with_database_berkdb" \
   != "no no no" && echo "checking for database support" 1>&6
-echo "configure:12167: checking for database support" >&5
+echo "configure:12144: checking for database support" >&5
 
 if test "$with_database_gdbm $with_database_dbm" != "no no"; then
   ac_safe=`echo "ndbm.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for ndbm.h""... $ac_c" 1>&6
-echo "configure:12172: checking for ndbm.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 12175 "configure"
+echo "configure:12149: checking for ndbm.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 12152 "configure"
 #include "confdefs.h"
 #include <ndbm.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12180: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12157: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12206,12 +12183,12 @@
 if test "$with_database_gdbm" != "no"; then
   
 echo $ac_n "checking for dbm_open in -lgdbm""... $ac_c" 1>&6
-echo "configure:12210: checking for dbm_open in -lgdbm" >&5
+echo "configure:12187: checking for dbm_open in -lgdbm" >&5
 ac_lib_var=`echo gdbm'_'dbm_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lgdbm "
 cat > conftest.$ac_ext <<EOF
-#line 12215 "configure"
+#line 12192 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12222,7 +12199,7 @@
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:12226: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12203: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12250,10 +12227,10 @@
 
 if test "$with_database_dbm" != "no"; then
   echo $ac_n "checking for dbm_open""... $ac_c" 1>&6
-echo "configure:12254: checking for dbm_open" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 12257 "configure"
+echo "configure:12231: checking for dbm_open" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 12234 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char dbm_open(); below.  */
@@ -12276,7 +12253,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:12280: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_dbm_open=yes"
 else
@@ -12295,12 +12272,12 @@
 
     
 echo $ac_n "checking for dbm_open in -ldbm""... $ac_c" 1>&6
-echo "configure:12299: checking for dbm_open in -ldbm" >&5
+echo "configure:12276: checking for dbm_open in -ldbm" >&5
 ac_lib_var=`echo dbm'_'dbm_open | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldbm "
 cat > conftest.$ac_ext <<EOF
-#line 12304 "configure"
+#line 12281 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12311,7 +12288,7 @@
 dbm_open()
 ; return 0; }
 EOF
-if { (eval echo configure:12315: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12292: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12352,10 +12329,10 @@
 
 if test "$with_database_berkdb" != "no"; then
   echo $ac_n "checking for Berkeley db.h""... $ac_c" 1>&6
-echo "configure:12356: checking for Berkeley db.h" >&5
+echo "configure:12333: checking for Berkeley db.h" >&5
   for path in "db/db.h" "db.h"; do
     cat > conftest.$ac_ext <<EOF
-#line 12359 "configure"
+#line 12336 "configure"
 #include "confdefs.h"
 
 #include <stdlib.h>
@@ -12377,7 +12354,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:12381: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12358: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   db_h_path="$path"; break
 else
@@ -12393,9 +12370,9 @@
 
   if test "$with_database_berkdb" != "no"; then
     echo $ac_n "checking for Berkeley DB version""... $ac_c" 1>&6
-echo "configure:12397: checking for Berkeley DB version" >&5
+echo "configure:12374: checking for Berkeley DB version" >&5
     cat > conftest.$ac_ext <<EOF
-#line 12399 "configure"
+#line 12376 "configure"
 #include "confdefs.h"
 #include <$db_h_path>
 #if DB_VERSION_MAJOR > 1
@@ -12414,10 +12391,10 @@
 rm -f conftest*
 
     echo $ac_n "checking for $dbfunc""... $ac_c" 1>&6
-echo "configure:12418: checking for $dbfunc" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 12421 "configure"
+echo "configure:12395: checking for $dbfunc" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 12398 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $dbfunc(); below.  */
@@ -12440,7 +12417,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:12444: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12421: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$dbfunc=yes"
 else
@@ -12459,12 +12436,12 @@
 
     
 echo $ac_n "checking for $dbfunc in -ldb""... $ac_c" 1>&6
-echo "configure:12463: checking for $dbfunc in -ldb" >&5
+echo "configure:12440: checking for $dbfunc in -ldb" >&5
 ac_lib_var=`echo db'_'$dbfunc | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldb "
 cat > conftest.$ac_ext <<EOF
-#line 12468 "configure"
+#line 12445 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12475,7 +12452,7 @@
 $dbfunc()
 ; return 0; }
 EOF
-if { (eval echo configure:12479: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12456: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12539,12 +12516,12 @@
 if test "$with_socks" = "yes"; then
   
 echo $ac_n "checking for SOCKSinit in -lsocks""... $ac_c" 1>&6
-echo "configure:12543: checking for SOCKSinit in -lsocks" >&5
+echo "configure:12520: checking for SOCKSinit in -lsocks" >&5
 ac_lib_var=`echo socks'_'SOCKSinit | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lsocks "
 cat > conftest.$ac_ext <<EOF
-#line 12548 "configure"
+#line 12525 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12555,7 +12532,7 @@
 SOCKSinit()
 ; return 0; }
 EOF
-if { (eval echo configure:12559: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12536: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12610,19 +12587,19 @@
 
 if test "$with_modules" != "no"; then
   echo "checking for module support" 1>&6
-echo "configure:12614: checking for module support" >&5
+echo "configure:12591: checking for module support" >&5
 
     ac_safe=`echo "dlfcn.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for dlfcn.h""... $ac_c" 1>&6
-echo "configure:12618: checking for dlfcn.h" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 12621 "configure"
+echo "configure:12595: checking for dlfcn.h" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 12598 "configure"
 #include "confdefs.h"
 #include <dlfcn.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:12626: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:12603: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -12640,12 +12617,12 @@
   
     
 echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
-echo "configure:12644: checking for dlopen in -ldl" >&5
+echo "configure:12621: checking for dlopen in -ldl" >&5
 ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldl "
 cat > conftest.$ac_ext <<EOF
-#line 12649 "configure"
+#line 12626 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12656,7 +12633,7 @@
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:12660: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12637: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12675,12 +12652,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for dlopen in -lc""... $ac_c" 1>&6
-echo "configure:12679: checking for dlopen in -lc" >&5
+echo "configure:12656: checking for dlopen in -lc" >&5
 ac_lib_var=`echo c'_'dlopen | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -lc "
 cat > conftest.$ac_ext <<EOF
-#line 12684 "configure"
+#line 12661 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12691,7 +12668,7 @@
 dlopen()
 ; return 0; }
 EOF
-if { (eval echo configure:12695: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12672: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12730,12 +12707,12 @@
   else
     
 echo $ac_n "checking for shl_load in -ldld""... $ac_c" 1>&6
-echo "configure:12734: checking for shl_load in -ldld" >&5
+echo "configure:12711: checking for shl_load in -ldld" >&5
 ac_lib_var=`echo dld'_'shl_load | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldld "
 cat > conftest.$ac_ext <<EOF
-#line 12739 "configure"
+#line 12716 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12746,7 +12723,7 @@
 shl_load()
 ; return 0; }
 EOF
-if { (eval echo configure:12750: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12773,12 +12750,12 @@
   echo "$ac_t""no" 1>&6
 
 echo $ac_n "checking for dld_init in -ldld""... $ac_c" 1>&6
-echo "configure:12777: checking for dld_init in -ldld" >&5
+echo "configure:12754: checking for dld_init in -ldld" >&5
 ac_lib_var=`echo dld'_'dld_init | sed 'y%./+-%__p_%'`
 
 xe_check_libs=" -ldld "
 cat > conftest.$ac_ext <<EOF
-#line 12782 "configure"
+#line 12759 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
@@ -12789,7 +12766,7 @@
 dld_init()
 ; return 0; }
 EOF
-if { (eval echo configure:12793: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:12770: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -12834,7 +12811,7 @@
 xealias=$internal_configuration
 
 echo "checking how to build dynamic libraries for ${xehost}" 1>&6
-echo "configure:12838: checking how to build dynamic libraries for ${xehost}" >&5
+echo "configure:12815: checking how to build dynamic libraries for ${xehost}" >&5
 # Transform *-*-linux* to *-*-linux-gnu*, to support old configure scripts.
 case "$xehost" in
 *-*-linux-gnu*) ;;
@@ -12862,9 +12839,9 @@
   XEGCC=yes
 else
   echo $ac_n "checking checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:12866: checking checking whether we are using GNU C" >&5
+echo "configure:12843: checking checking whether we are using GNU C" >&5
   cat > conftest.$ac_ext <<EOF
-#line 12868 "configure"
+#line 12845 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -12886,7 +12863,7 @@
 fi
 
 echo $ac_n "checking how to produce PIC code""... $ac_c" 1>&6
-echo "configure:12890: checking how to produce PIC code" >&5
+echo "configure:12867: checking how to produce PIC code" >&5
 wl=
 
 can_build_shared=yes
@@ -12979,18 +12956,18 @@
   
   # Check to make sure the dll_cflags actually works.
   echo $ac_n "checking if PIC flag ${dll_cflags} really works""... $ac_c" 1>&6
-echo "configure:12983: checking if PIC flag ${dll_cflags} really works" >&5
+echo "configure:12960: checking if PIC flag ${dll_cflags} really works" >&5
   save_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS $dll_cflags -DPIC"
   cat > conftest.$ac_ext <<EOF
-#line 12987 "configure"
+#line 12964 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
-if { (eval echo configure:12994: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:12971: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   
     # On HP-UX, the stripped-down bundled CC doesn't accept +Z, but also
@@ -13021,7 +12998,7 @@
 xldf=
 xcldf=
 echo $ac_n "checking if C compiler can produce shared libraries""... $ac_c" 1>&6
-echo "configure:13025: checking if C compiler can produce shared libraries" >&5
+echo "configure:13002: checking if C compiler can produce shared libraries" >&5
 if test "$XEGCC" = yes; then
   xcldf="-shared"
   xldf="-shared"
@@ -13072,14 +13049,14 @@
   xe_libs=
   ac_link='${CC-cc} -o conftest $CFLAGS '"$xe_cppflags $xe_ldflags"' conftest.$ac_ext '"$xe_libs"' 1>&5'
   cat > conftest.$ac_ext <<EOF
-#line 13076 "configure"
+#line 13053 "configure"
 #include "confdefs.h"
 
 int main() {
 int x=0;
 ; return 0; }
 EOF
-if { (eval echo configure:13083: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13060: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   cc_produces_so=yes
 else
@@ -13104,7 +13081,7 @@
   if test "$XEGCC" = yes; then
     # Check if gcc -print-prog-name=ld gives a path.
     echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:13108: checking for ld used by GCC" >&5
+echo "configure:13085: checking for ld used by GCC" >&5
     ac_prog=`($CC -print-prog-name=ld) 2>&5`
     case "$ac_prog" in
     # Accept absolute paths.
@@ -13129,7 +13106,7 @@
     esac
   else
     echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:13133: checking for GNU ld" >&5
+echo "configure:13110: checking for GNU ld" >&5
   fi
 
   if test -z "$LTLD"; then
@@ -13167,7 +13144,7 @@
 
 # Check to see if it really is or isn't GNU ld.
 echo $ac_n "checking if the linker is GNU ld""... $ac_c" 1>&6
-echo "configure:13171: checking if the linker is GNU ld" >&5
+echo "configure:13148: checking if the linker is GNU ld" >&5
 # I'd rather use --version here, but apparently some GNU ld's only accept -v.
 if $LTLD -v 2>&1 </dev/null | egrep '(GNU|with BFD)' 1>&5; then
   xe_gnu_ld=yes
@@ -13194,7 +13171,7 @@
   # OK - only NOW do we futz about with ld.
   # See if the linker supports building shared libraries.
   echo $ac_n "checking whether the linker supports shared libraries""... $ac_c" 1>&6
-echo "configure:13198: checking whether the linker supports shared libraries" >&5
+echo "configure:13175: checking whether the linker supports shared libraries" >&5
   dll_ld=$CC
   dll_ldflags=$LDFLAGS
   ld_shlibs=yes
@@ -13409,10 +13386,10 @@
     for ac_func in dlerror _dlerror
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:13413: checking for $ac_func" >&5
-
-cat > conftest.$ac_ext <<EOF
-#line 13416 "configure"
+echo "configure:13390: checking for $ac_func" >&5
+
+cat > conftest.$ac_ext <<EOF
+#line 13393 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -13435,7 +13412,7 @@
 
 ; return 0; }
 EOF
-if { (eval echo configure:13439: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:13416: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -13474,11 +13451,11 @@
 fi
 
 cat > conftest.$ac_ext <<EOF
-#line 13478 "configure"
+#line 13455 "configure"
 #include "confdefs.h"
 int main(int c,char *v[]){return 0;}
 EOF
-if { (eval echo configure:13482: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
+if { (eval echo configure:13459: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit $?) 2>&5
 then
   :
 else
--- a/configure.in	Mon Aug 13 11:13:33 2007 +0200
+++ b/configure.in	Mon Aug 13 11:14:34 2007 +0200
@@ -14,7 +14,7 @@
 ### from the file `./configure.in'.
 ### To rebuild it, execute the command
 ###	autoconf
-### in the this directory.  You must have autoconf version 2.12 or later.
+### in the this directory.  You must have autoconf version 2.13 or later.
 
 ### This file is part of XEmacs.
 
@@ -50,7 +50,7 @@
 dnl We use the m4 quoting characters [ ] (as established by the
 dnl autoconf system), so quote them like this: [[foo]]
 
-AC_PREREQ(2.12)dnl
+AC_PREREQ(2.13)dnl
 dnl Redefine some standard autoconf macros
 dnl here is how XEmacs is different:
 dnl - no cache file
@@ -1083,8 +1083,7 @@
   m68*-sony-*      ) machine=news ;;
   mips-sony-*      ) machine=news-risc ;;
   clipper-*        ) machine=clipper ;;
-  arm-*            ) machine=arm ;;
-  armv[34][lb]-*   ) machine=arm ;;
+  arm*             ) machine=arm ;;
   ns32k-*          ) machine=ns32000 ;;
 esac
 
@@ -1861,6 +1860,70 @@
   fi
 fi
 
+dnl Search for GCC specific build problems we know about
+if test "$GCC" = "yes"; then
+AC_MSG_CHECKING(for buggy gcc versions)
+GCC_VERSION=`$CC --version`
+case `uname -s`:`uname -m`:$GCC_VERSION in
+	dnl egcs 2.90.21 (egcs-1.00 release)
+	dnl egcs 2.90.29 (egcs-1.0.3 release)
+    *:sun4*:2.8.1|*:sun4*:egcs-2.90.*)
+        dnl Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures
+        dnl without also using `-fno-schedule-insns'.
+        case "$CFLAGS" in
+            *-O2*|*-O3*)
+                case "$CFLAGS" in
+                    *-fno-schedule-insns*) ;;
+                    *)
+                        AC_MSG_RESULT(Yes)
+                        AC_MSG_WARN(Don't use -O2 with gcc 2.8.1 and egcs 1.0 under SPARC architectures)
+                        AC_MSG_WARN(without also using -fno-schedule-insns.)
+                        AC_MSG_ERROR(Aborting due to known problem)
+                        ;;
+                esac
+                ;;
+        esac
+        ;;
+	dnl egcs-2.91.57 (egcs-1.1 release)
+	dnl egcs-2.91.66 (egcs-1.1.2 release)
+    Linux:alpha:egcs-2.91.*)
+        AC_MSG_RESULT(Yes)
+        AC_MSG_WARN(There have been reports of egcs-1.1 not compiling XEmacs correctly on)
+        AC_MSG_WARN(Alpha Linux.  There have also been reports that egcs-1.0.3a is O.K.)
+        AC_MSG_ERROR(Aborting due to known problem)
+        ;;
+    *:i*86*:2.7.2*)
+	case "$GCC_VERSION" in
+	    2.7.2)
+		case "$CFLAGS" in
+        	    *-O2*|*-O3*)
+                	case "$CFLAGS" in
+	                    *-fno-strength-reduce*) ;;
+        	            *)
+                                AC_MSG_RESULT(Yes)
+                      	        AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
+	                        AC_MSG_WARN(-fno-strength-reduce.)
+        	                AC_MSG_ERROR(Aborting due to known problem)
+	                        ;;
+	                esac
+	                ;;
+		esac
+		;;
+	esac
+        case "$CFLAGS" in
+	 *-fno-caller-saves*) ;;
+	 *)
+            AC_MSG_RESULT(Yes)
+	    AC_MSG_WARN(Don't use -O2 with gcc 2.7.2 under Intel/XXX without also using)
+	    AC_MSG_WARN(-fno-caller-saves.)
+            AC_MSG_ERROR(Aborting due to known problem)
+	    ;;
+        esac
+	;;
+esac
+fi
+AC_MSG_RESULT(No)
+
 dnl Inform compiler that certain flags are meant for the linker
 dnl XE_PROTECT_LINKER_FLAGS(shell_var)
 define([XE_PROTECT_LINKER_FLAGS], [
@@ -2217,9 +2280,25 @@
 AC_PROG_YACC
 
 dnl checks for header files
-AC_CHECK_HEADERS(mach/mach.h sys/stropts.h sys/timeb.h sys/time.h unistd.h)
-AC_CHECK_HEADERS(utime.h locale.h libgen.h fcntl.h ulimit.h cygwin/version.h)
-AC_CHECK_HEADERS(kstat.h sys/pstat.h inttypes.h sys/un.h a.out.h)
+AC_CHECK_HEADERS(dnl
+  a.out.h dnl
+  cygwin/version.h dnl
+  fcntl.h dnl
+  inttypes.h dnl
+  libgen.h dnl
+  locale.h dnl
+  mach/mach.h dnl
+  sys/param.h dnl
+  sys/pstat.h dnl
+  sys/stropts.h dnl
+  sys/time.h dnl
+  sys/timeb.h dnl
+  sys/un.h dnl
+  kstat.h dnl
+  ulimit.h dnl
+  unistd.h dnl
+  utime.h dnl
+)
 AC_HEADER_SYS_WAIT
 AC_HEADER_STDC
 AC_HEADER_TIME
@@ -2344,13 +2423,15 @@
 fi
 
 dnl Link with "-z ignore" on Solaris if supported
-if test "$opsys" = "sol2" -a "$os_release" -ge 56; then
-  AC_MSG_CHECKING(for \"-z ignore\" linker flag)
-  case "`ld -h 2>&1`" in
-    *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
-      XE_PREPEND(-z ignore, ld_switch_site) ;;
-    *) AC_MSG_RESULT(no) ;;
-  esac
+if test "$opsys" = "sol2"; then
+  if test "$os_release" -ge 56; then
+    AC_MSG_CHECKING(for \"-z ignore\" linker flag)
+    case "`ld -h 2>&1`" in
+      *-z\ ignore\|record* ) AC_MSG_RESULT(yes)
+        XE_PREPEND(-z ignore, ld_switch_site) ;;
+      *) AC_MSG_RESULT(no) ;;
+    esac
+  fi
 fi
 
 dnl ----------------------
--- a/etc/TUTORIAL.ja	Mon Aug 13 11:13:33 2007 +0200
+++ b/etc/TUTORIAL.ja	Mon Aug 13 11:14:34 2007 +0200
@@ -1,741 +1,1052 @@
-                      ==============================
-                      $BF|K\8l(B GNUEMACS(Mule) $BF~LgJT(B
-                      ==============================
+Copyright (c) 1985, 1996 Free Software Foundation, Inc.
+$B;HMQ>r7o$O%U%!%$%k:G8e$r;2>H$N$3$H(B
+	   $B$"$J$?$,8=:_8+$F$$$k$N$O(B XEmacs $BF~Lg%,%$%I$G$9!#(B
 
-$BCm0U!'(B          $B$3$NF~LgJT$O!"!V=,$&$h$j47$l$m!W$r%b%C%H!<$K:n@.$5$l$F$$$^(B
-               $B$9!#(B">>" $B$+$i;O$^$k9T$O!"$=$N;~2?$r$9$Y$-$+$r;X<($7$F$$$^$9!#(B
-
+XEmacs $B$N%3%^%s%I$rF~NO$9$k$K$O!"0lHL$K%3%s%H%m!<%k%-!<!J%-!<%H%C%W$K(B 
+CTRL $B$H$+(B CTL $B$H=q$$$F$"$k!K$d%a%?%-!<$r;H$$$^$9!#%-!<%\!<%I$K$h$C$F$O!"(B
+META $B%-!<$O(B ALT $B$d(B EDIT $B$H=q$+$l$F$$$?$j!"B>$N$b$N$G$"$C$?$j$7$^$9(B 
+$B!JNc$($P!"(BSun $B$N%-!<%\!<%I$G$O!"%9%Z!<%9%P!<$N:8$N%@%$%"%b%s%I%-!<$,(B 
+META $B$G$9!K!#(BMETA $B%-!<$,L5$$>l9g$O!"(BESC $B$rBe$o$j$K;H$&$3$H$,$G$-$^$9!#(B
+$B$=$3$G!"(BMETA $B$H$+(B CONTROL $B$H$+$r=q$/Be$o$j$K!"<!$N$h$&$J5-9f$r;H$&$3$H(B
+$B$K$7$^$9!#(B
 
-     Mule $B$N%3%^%s%I$rF~NO$9$k$H$-$K$O!"0lHLE*$K%3%s%H%m!<%k!&%-!<!J%-!<!&(B
-$B%H%C%W$K!"(BCTRL $B$"$k$$$O!"(BCTL $B$H=q$$$F$"$k!K$d%a%?!&%-!<!JIaDL!"%(%9%1!<%W!&(B
-$B%-!<$r;H$&!K$,;H$o$l$^$9!#$=$3$G!"(BCONTROL $B$H$+(B META $B$H$+=q$/Be$o$j$K!"<!$N(B
-$B$h$&$J5-9f$r;H$&$3$H$K$7$^$9!#(B
+ C-<$BJ8;z(B>   $B%3%s%H%m!<%k%-!<$r2!$7$?$^$^!"(B<$BJ8;z(B>$B%-!<$r2!$7$^$9!#Nc$($P!"(B
+	    C-f $B$O%3%s%H%m!<%k%-!<$r2!$7$J$,$i(B f $B$N%-!<$r2!$9$3$H$G$9!#(B
 
-C-<$BJ8;z(B>       $B%3%s%H%m!<%k!&%-!<$r2!$7$?$^$^!"(B<$BJ8;z(B>$B%-!<$r2!$7$^$9!#Nc$($P!"(B
-               C-f  $B$O!"%3%s%H%m!<%k!&%-!<$r2!$7$J$,$i(B f $B$N%-!<$r2!$9$3$H$r(B
-               $B0UL#$7$^$9!#(B
-<<Blank lines inserted here by startup of help-with-tutorial>>
-       >> $B$=$l$G$O!"(BC-v$B!J(BView Next Screen; $B<!$N2hLL$r8+$k!K$r%?%$%W$7$F(B
-          $B$_$F2<$5$$!#<!$N2hLL$K?J$`$3$H$,$G$-$^$9!#(B
-	  $B0J9_!"0l2hLL$rFI$_=*$($k$?$S$KF1MM$K$7$F<!$N2hLL$KFI$_?J$s$G(B
-	  $B2<$5$$!#(B
+ M-<$BJ8;z(B>   $B%a%?%-!<$r2!$7$?$^$^!"(B<$BJ8;z(B>$B%-!<$r2!$7$^$9!#$b$7%a%?%-!<$,$J(B
+	    $B$$>l9g$O!"%(%9%1!<%W%-!<$r2!$7$F$+$iN%$7!"$=$l$+$i(B<$BJ8;z(B>$B%-!<(B
+	    $B$r2!$7$^$9!#0J9_%(%9%1!<%W%-!<$N$3$H$r(B <ESC> $B$H=q$-$^$9!#(B
+
+$B!*=EMW!*(B: XEmacs$B$r=*N;$9$k$K$O!"(BC-x C-c $B$r%?%$%W$7$^$9!#(B
 
-ESC <$BJ8;z(B>     $B%(%9%1!<%W!&%-!<$r2!$7$F$+$iN%$7!"$=$l$+$i(B<$BJ8;z(B>$B%-!<$r2!$7$^(B
-               $B$9!#(B
+">>" $B$G;O$^$k9T$O!"$=$N;~2?$r$9$Y$-$+$r;X<($7$F$$$^$9!#Nc$($P!"(B
+<<Middle of page left blank for didactic purposes. Text continues below.>>
+>>  $B$G$O(B C-v $B!J<!$N2hLL$r8+$k!K$r%?%$%W$7$F<!$N2hLL$K?J$s$G2<$5$$!#(B
+	$B!J$5$"!"$d$C$F$_$^$7$g$&!#%3%s%H%m!<%k%-!<$r2!$7$J$,$i(B v $B$G$9!K(B
+	$B0J9_!"0l2hLL$rFI$_=*$($k$?$S$KF1MM$K$7$F<!$N2hLL$KFI$_?J$s$G2<$5$$!#(B
 
-$BCm0U!'(B         <$BJ8;z(B>$B$O!"BgJ8;z$G$b>.J8;z$G$b%3%^%s%I$H$7$F$OF1$80UL#$K$J$j(B
-               $B$^$9!#%a%?%-!<$,;H$($k$J$i$P(B ESC <$BJ8;z(B> $B$NBe$o$j$K(B M-<$BJ8;z(B>
-	       ($B%a%?%-!<$r2!$7$?$^$^(B<$BJ8;z(B>$B%-!<$r2!$9(B) $B$,;H$($^$9!#(B
+$BA0$N2hLL$H<!$N2hLL$H$G$O!"I=<($5$l$kFbMF$K2?9T$+$N=E$J$j$,$"$j$^$9!#$3(B
+$B$l$O!"I=<($5$l$F$$$kFbMF$,O"B3$7$F$$$k$3$H$,$9$0H=$k$h$&$K$9$k$?$a$G$9!#(B
 
-$B=EMW$G$9!'(B     Emacs$B$r=*N;$5$;$?$$;~$O!"(BC-x C-c $B$r%?%$%W$7$^$9!#(BEmacs$B$r(Bcsh
-               $B$+$i5/F0$7$F$$$k>l9g!"%5%9%Z%s%I$9$k!J0l;~E*$K;_$a$k(B)$B$3$H$,(B
-               $B=PMh$^$9!#(BEmacs$B$r%5%9%Z%s%I$9$k$K$O!"(BC-z$B$r%?%$%W$7$^$9!#(B
+$B$^$:$O!"%U%!%$%k$NCf$r0\F0$7$F9T$/J}K!$rCN$kI,MW$,$"$j$^$9!#(BC-v $B$K$h$C(B
+$B$F@h$K?J$`$3$H$O$b$&H=$j$^$7$?!#85$KLa$k$K$O!"(BM-v $B!J%a%?%-!<$r2!$7$J$,(B
+$B$i(B v$B!"$b$7$/$O(B <ESC> $B$r2!$7$FN%$7$F(B v$B!K$G$9!#(B
+
+>> M-v $B$H(B C-v $B$r;H$C$F!"A08e$K0\F0$9$k$3$H$r2?2s$+;n$7$F2<$5$$!#(B
 
 
-     $B$5$F!"$3$l$+$i$O!"0l2hLLJ,FI$_=*$($?$i!"(BC-v  $B$rF~NO$7$F9T$C$F2<$5$$!#(B
-
-     $BA0$N2hLL$H<!$N2hLL$H$G$O!"I=<($5$l$kFbMF$K2?9TJ8$+$N=E$J$j$,$"$j$^$9!#(B
-$B$3$l$O!"I=<($5$l$F$$$kFbMF$,O"B3$7$F$$$k$3$H$,$9$0H=$k$h$&$K$9$k$?$a$G$9!#(B
-
+$B!v$3$3$^$G$NMWLs(B
+================
 
-     $B$^$:$O!"%U%!%$%k$NCf$r0\F0$7$F9T$/J}K!$rCN$kI,MW$,$"$j$^$9!#(BC-v  $B$K$h(B
-$B$C$F@h$K?J$`$3$H$O$b$&H=$j$^$7$?!#85$KLa$k$K$O!"(BESC v $B$r%?%$%W$7$^$9!#(B
-
-      >> ESC v $B$H(B C-v  $B$r;H$C$F!"A08e$K0\F0$9$k$3$H$r2?2s$+;n$7$F$_$J$5$$!#(B
-
-$BMWLs(B
-====
      $B%U%!%$%k$r2hLLKh$K8+$F9T$/$K$O!"<!$N%3%^%s%I$r;H$$$^$9!#(B
 
-     C-v     $BA0$K0l2hLLJ,?J$`(B
-     ESC v   $B8e$m$K0l2hLLJ,La$k(B
-     C-l     $B2hLL$r=q$-D>$9!#$3$N$H$-!"85%+!<%=%k$N$"$C$?9T$,(B
-             $B2hLL$NCf1{$K$/$k$h$&$K$9$k(B
+     C-v     $B<!$N2hLL$K?J$`(B
+     M-v     $BA0$N2hLL$KLa$k(B
+     C-l     $B2hLL$r=q$-D>$9!#$3$N$H$-!"%+!<%=%k$N$"$k9T$,2hLL$NCf1{$K(B
+	     $B$/$k$h$&$K$9$k!#!J(BC-1 $B$8$c$J$/$C$F(B C-L $B$G$9$h!*!K(B
 
-       >> $B:#%+!<%=%k$,$I$3$K$"$k$+!"$=$N6a$/$K$I$s$J%F%-%9%H$,=q$+$l$F$$$k(B
-          $B$+$r3P$($J$5$$!#(BC-l  $B$r%?%$%W$7!"%+!<%=%k$,$I$3$K0\F0$7$?$+!"$=$N(B
-          $B6a$/$N%F%-%9%H$O$I$&$J$C$?$+$rD4$Y$F$_$J$5$$!#(B
+>> $B%+!<%=%k$r8+$D$1!"$=$N6a$/$K$I$s$JJ8>O$,=q$+$l$F$$$k$+$r3P$(!"(B
+   $B$=$l$+$i(B C-l $B$r%?%$%W$7$F2<$5$$!#(B
+   $B%+!<%=%k$,$I$3$K0\F0$7$?$+!"$=$N6a$/$N%F%-%9%H$O$I$&$J$C$?$+$rD4$Y(B
+   $B$F$_$^$7$g$&!#(B
 
-$B4pK\E*$J%+!<%=%k$N@)8f(B
-======================
+
+$B!v4pK\E*$J%+!<%=%k$N@)8f(B
+========================
 
-     $B2hLLKh$N0\F0$O$G$-$k$h$&$K$J$j$^$7$?!#:#EY$O!"2hLL$NCf$G!"FCDj$N>l=j$K(B
-$B0\F0$9$k$?$a$NJ}K!$r21$($^$7$g$&!#$3$l$K$O$$$/$D$+$N$d$jJ}$,$"$j$^$9!#0l$D(B
-$B$NJ}K!$O!"A0(B(previous)$B<!(B(next)$B@h(B(forward)$B8e(B(backward)$B$K0\F0$9$k%3%^%s%I$r;H(B
-$B$&$3$H$G$9!#$3$l$i$N%3%^%s%I$O$=$l$>$l!"(BC-p,  C-n, C-f,C-b $B$K3d$jEv$F$i$l$F(B
-$B$*$j!"8=:_$N>l=j$+$i?7$7$$>l=j$K%+!<%=%k$r0\F0$5$;$^$9!#?^$G=q$1$P!"(B
+$B2hLLKh$N0\F0$O$G$-$k$h$&$K$J$j$^$7$?!#:#EY$O!"2hLL$NCf$G!"FCDj$N>l=j$K(B
+$B0\F0$9$k$?$a$NJ}K!$r21$($^$7$g$&!#(B
 
+$B$3$l$K$O$$$/$D$+$N$d$jJ}$,$"$j$^$9!#0lHV4pK\E*$JJ}K!$O(B C-p, C-b, C-f,
+C-n $B$r;H$&$3$H$G$9!#$3$l$i$O$=$l$>$l%+!<%=%k$rA0$N9T!"A0$NJ8;z!"<!$NJ8(B
+$B;z!"<!$N9T$K0\F0$5$;$^$9!#?^$G=q$1$P!"(B
 
                                $BA0$N9T!$(BC-p
                                     :
                                     :
-     $B8e$NJ8;z!$(BC-b   ....   $B8=:_$N%+!<%=%k0LCV(B   ....   $B@h$NJ8;z!$(BC-f
+     $BA0$NJ8;z!$(BC-b   ....   $B8=:_$N%+!<%=%k0LCV(B   ....   $B<!$NJ8;z!$(BC-f
                                     :
                                     :
                                $B<!$N9T!$(BC-n
 
-
-     $B$3$l$i$O!"$=$l$>$l!"(BPrevious, Next, Backward, Forward $B$NF,J8;z$K$J$C$F(B
-$B$$$k$N$G!"21$($d$9$$$G$7$g$&!#$3$l$i$O!"4pK\E*$J%+!<%=%k0\F0%3%^%s%I$G$"$j!"(B
-$B$$$D$G$b;H$&$b$N$G$9!#(B
-
-       >> C-n $B$r2?2s$+%?%$%W$7!"!J:#!"$"$J$?$,FI$s$G$$$k!K$3$N9T$^$G%+!<%=(B
-          $B%k$r0\F0$5$;$J$5$$!#(B
-
-       >> C-f  $B$r;H$C$F9T$NCf$[$I$K0\F0$7!"(BC-p  $B$G2?9T$+>e$K0\F0$7$F$_$J$5(B
-          $B$$!#%+!<%=%k$N0LCV$NJQ2=$KCm0U$7$J$5$$!#(B
-
-       >> $B9T$N@hF,$G(B C-b $B$r%?%$%W$7$F$_$J$5$$!#%+!<%=%k$O$I$3$K0\F0$7$^$9$+(B
-          $B!)$5$i$K$b$&>/$7(B C-b $B$r%?%$%W$7!":#EY$O(B C-f  $B$G9TKv$NJ}$KLa$j$J$5(B
-          $B$$!#%+!<%=%k$,9TKv$r1[$($k$H$I$&$J$j$^$9$+!)(B
+>> C-n $B$H(B C-p $B$G%+!<%=%k$r>e?^$N??Cf$N9T$KF0$+$7$F2<$5$$!#$=$l$+$i(B C-l 
+   $B$r%?%$%W$7$F?^$NA4BN$,2hLLCf1{$K$/$k$h$&$K$7$F$_$^$7$g$&!#(B
 
 
-     $B2hLL$N@hF,$dKvHx$r1[$($F%+!<%=%k$r0\F0$5$;$h$&$H$9$k$H!"$=$NJ}8~$K$"$k(B
-$B%F%-%9%H$,0\F0$7$FMh$F!"%+!<%=%k$O>o$K2hLLFb$K$"$k$h$&$K$5$l$^$9!#(B
+$B$3$l$i$O$N%3%^%s%I$O$=$l$>$l!"(BPrevious, Next, Backward, Forward $B$NF,J8(B
+$B;z$K$J$C$F$$$k$N$G!"21$($d$9$$$G$7$g$&!#$3$l$i$O!"4pK\E*$J%+!<%=%k0\F0(B
+$B%3%^%s%I$G$"$j!"$$$D$G$b;H$&$b$N$G$9!#:#$3$3$G3P$($F2<$5$$!#(B
+
+>> C-n $B$r2?2s$+%?%$%W$7!"!J:#!"$"$J$?$,FI$s$G$$$k!K$3$N9T$^$G%+!<%=%k(B
+   $B$r0\F0$5$;$^$7$g$&!#(B
+
+>> C-f $B$r;H$C$F9T$NCf$[$I$K0\F0$7!"(BC-p $B$G2?9T$+>e$K0\F0$5$;$^$7$g$&!#(B
+   $B%+!<%=%k$N0LCV$NJQ2=$KCm0U$7$F2<$5$$!#(B
+
+$B3F9T$N:G8e$K$O!JL\$K$O8+$($J$$!K(B Newline $BJ8;z$,$"$j$^$9!#$3$l$O<!$N9T(B
+$B$H$N6h@Z$j$r<($9$?$a$G$9!#%U%!%$%k$N:G8e$b(B Newline $B$rIU$1$k$Y$-$G$9(B
+$B!J$b$C$H$b(B XEmacs $B$O$=$l$r6/@)$O$7$^$;$s$,!K!#(B
+
+>> $B9T$N@hF,$G(B C-b $B$r%?%$%W$7$F$_$^$7$g$&!#%+!<%=%k$OA0$N9T$NKvHx$K0\F0(B
+   $B$9$k$O$:$G$9!#$3$l$O(B C-b $B$,A0$N(B Newline $BJ8;z$r1[$($FLa$C$?$+$i$G$9!#(B
+
+$BF1MM$K(B C-f $B$O%+!<%=%k$r(B Newline $BJ8;z$r1[$($F<!$K?J$a$k$3$H$,$G$-$^$9!#(B
+
+>> $B$5$i$K$b$&>/$7(B C-b $B$r%?%$%W$7$F%+!<%=%k0\F0$N46$8$rGD$s$G2<$5$$!#(B
+   $B:#EY$O(B C-f $B$G9TKv$^$G?J$s$G2<$5$$!#(B
+   $B$5$i$K$b$&0lEY(B C-f $B$r%?%$%W$7$F<!$N9T$K?J$s$G2<$5$$!#(B
+
+$B2hLL$N@hF,$dKvHx$r1[$($F%+!<%=%k$r0\F0$5$;$h$&$H$9$k$H!"$=$NJ}8~$K$"$k(B
+$BJ8>O$,2hLL$NCf$K0\F0$7$FMh$F$^$9!#$3$l$r!V%9%/%m!<%k!W$H8F$S$^$9!#2hLL(B
+$B$,%9%/%m!<%k$9$k$3$H$K$h$C$F!"%+!<%=%k$r0\F0$5$;$F$b!"%+!<%=%k$O>o$K2h(B
+$BLLFb$K$"$k$h$&$K$5$l$^$9!#(B
+
+>> C-n $B$r;H$C$F!"%+!<%=%k$r2hLL$N2<C<$h$j2<$K0\F0$5$;$F$_$J$5$$!#2?(B
+   $B$,5/$3$j$^$7$?$+!)(B
+
+$B0lJ8;zC10L$N0\F0$G$O$^$I$m$C$3$7$$$J$i!"C18lC10L$G0\F0$9$k$3$H$b$G$-$^(B
+$B$9!#(BM-f (<ESC> f) $B$G0lC18l@h$X!"(BM-b (<ESC> b) $B$G0lC18lA0$X0\F0$7$^$9!#(B
+
+$BCm0U!'(B	$BF|K\8l$K$D$$$F$O!"C18l$N@Z$lL\$rG'<1$9$k$3$H$O$G$-$^$;$s$,!"5?(B
+	$B;wE*$JJ8@a$rC18l$N@Z$lL\$H$7$F$$$^$9!#(B
+
+>> M-f $B$d(B M-b $B$r2?2s$+;n$7$F$_$^$7$g$&!#(B
 
-       >> C-n $B$r;H$C$F!"%+!<%=%k$r2hLL$N2<C<$h$j2<$K0\F0$5$;$F$_$J$5$$!#2?(B
-          $B$,5/$3$j$^$7$?$+!)%+!<%=%k$N0LCV$O$I$&JQ$j$^$7$?$+!)(B
+$BC18l$NCfDx$K$$$k;~$O!"(BM-f $B$O$=$NC18l$N=*$o$j$^$G?J$_$^$9!#$b$76uGrJ8;z(B
+$B$K$$$k;~$K$O(B M-f $B$O<!$NC18l$N=*$o$j$^$G?J$_$^$9!#(BM-b $B$bF1MM$G$9!"J}8~(B
+$B$O5U$G$9$,!#(B
+
+>> M-f $B$H(B M-b $B$r(B C-f $B$H(B C-b $B$r8r$($J$,$i?t2s;n$7!"C18l$NCf$KF~$k;~$H!"(B
+   $BC18l$HC18l$N4V$K$$$k;~$NF0$-$rD4$Y$F2<$5$$!#(B
+
+C-f $B$H(B C-b $B$KBP$9$k!"(BM-f $B$H(B M-b $B$NN`;w@-$KCmL\$7$^$7$g$&!#B?$/$N>l9g!"(B
+$B%a%?%-!<$OJ8=q$r9=@.$9$k%f%K%C%H!JC18l!"J8!"CJMn!K$KBP$9$kA`:n$K;H$$!"(B
+$B%3%s%H%m!<%k%-!<$O$=$l$h$j$b$b$C$H4pK\E*$JBP>]!JJ8;z$H$+9TEy!K$KBP$9$k(B
+$BA`:n$K;H$$$^$9!#(B
+
+$B$3$NN`;w@-$O9T$HJ8$N4X78$K$b$"$j$^$9!#(BC-a $B$H(B C-e $B$O$=$l$>$l9TF,$H9TKv(B
+$B$K0\F0$7!"(BM-a $B$H(B M-e $B$O$=$l$>$lJ8F,$HJ8Kv$K0\F0$7$^$9!#(B
+
+>> C-a $B$r#22s!"$=$l$+$i(B C-e $B$r#22s;n$7$^$7$g$&!#(B
+   M-a $B$r#22s!"$=$l$+$i(B M-e $B$r#22s;n$7$^$7$g$&!#(B
+
+C-a $B$d(B C-e $B$O7+JV$7$F$b$=$l0J>e0\F0$7$^$;$s$,!"(BM-a $B$r7+$jJV$9$H$I$s$I(B
+$B$sA0$NJ8F,$KLa$C$F$$$-$^$9!#$3$NItJ,$G$ON`;w@-$,GK$l$F$$$^$9$,!"$^$"$3(B
+$B$l$,<+A3$JF0:n$G$O$J$$$G$7$g$&$+!#(B
 
-     $B0lJ8;zC10L$N0\F0$G$O$^$I$m$C$3$7$$$H;W$&$J$i!"C18lC10L$G0\F0$9$k$3$H$b(B
-$B$G$-$^$9!#(BESC f $B$G0lC18lJ,@h$K?J$_!"(BESC b $B$G0lC18lJ,A0$KLa$j$^$9!#(B
+$BJ8>OCf$G%+!<%=%k$,$"$k0LCV$r!V%]%$%s%H!W$H8F$S$^$9!#8@$$$+$($l$P!"%+!<(B
+$B%=%k$O!"J8>O$N$I$3$K%]%$%s%H$,$"$k$+$r2hLL>e$G<($7$F$$$k$N$G$9!#(B
+
+$B0J2<$KC1=c$J%+!<%=%k0\F0A`:n$K$D$$$FMWLs$7$^$9!#$3$N$J$+$K$O!"C18l$d9T(B
+$BC10L$G$N0\F0%3%^%s%I$b4^$^$l$F$$$^$9!#(B
+
+	C-f	$B0lJ8;z<!$K?J$`(B
+	C-b	$B0lJ8;zA0$KLa$k(B
+
+	M-f	$B0lC18l<!$K?J$`(B
+	M-b	$B0lC18lA0$KLa$k(B
+
+	C-n	$B<!$N9T$K0\F0(B
+	C-p	$BA0$N9T$K0\F0(B
+
+	C-a	$B9TF,$K0\F0(B
+	C-e	$B9TKv$K0\F0(B
+
+>> $B$3$l$iA4It$r2?EY$+;n$7$FN}=,$7$^$7$g$&!#(B
+   $B$I$l$bIQHK$K;H$&%3%^%s%I$G$9!#(B
+
+$B$"$HFs$D!"=EMW$J%+!<%=%k0\F0%3%^%s%I$,$"$j$^$9!#%U%!%$%k$N@hF,$K0\F0$9(B
+$B$k(B M-< $B$H!"%U%!%$%k$NKvHx$K0\F0$9$k(B M-> $B$G$9!#(B
 
-$BCm0U!'(B		$BF|K\8l$K$D$$$F$O!"C18l$N@Z$lL\$rG'<1$9$k$3$H$O$G$-$^$;$s$,!"(B
-		$B5?;wE*$JJ8@a$rC18l$N@Z$lL\$H$7$F$$$^$9!#(B
+$BBgDq$NC<Kv$G$O(B "<" $B%-!<$O(B ","$B%-!<!J%3%s%^!K$N>e$K$"$j!"$=$l$r%?%$%W$9(B
+$B$k$K$O%7%U%H%-!<$r;H$&I,MW$,$"$j$^$9!#$7$?$,$C$F(B M-< $B$r%?%$%W$9$k$K$O!"(B
+$B%a%?%-!<$H%7%U%H%-!<$H%3%s%^%-!<$rF1;~$K2!$5$M$P$J$j$^$;$s!#(B
+
+>> M-< $B$r;n$7$F!"$3$NF~Lg%,%$%I$N@hF,$K0\F0$7$^$7$g$&!#(B
+   $B$=$l$+$i!"(BC-v $B$r2?EY$+;H$C$F$3$3$^$G5"$C$F$-$F$/$@$5$$!#(B
+
+>> M-> $B$r;n$7$F!"$3$NF~Lg%,%$%I$NKvHx$K0\F0$7$^$7$g$&!#(B
+   $B$=$l$+$i!"(BM-v $B$r2?EY$+;H$C$F$3$3$^$G5"$C$F$-$F$/$@$5$$!#(B
+
+$B$b$7C<Kv$KLp0u%-!<$,$"$l$P!"$=$l$r;H$C$F%+!<%=%k$rF0$+$9$3$H$b$G$-$^$9!#(B
+$B$1$l$I!"<!$N#3$D$NM}M3$+$i(B C-b, C-f, C-n, C-p $B$r3P$($k$3$H$r4+$a$^$9!#(B
+$BBh0l$K!"$3$l$i$O$I$s$JC<Kv$G$b;H$($^$9!#BhFs$K!"(BXEmacs$B$r;H$&$N$,>eC#$7(B
+$B$F$/$l$P!"$3$l$i$N%3%s%H%m!<%kJ8;z$rBG$DJ}$,!"Lp0u%-!<$rBG$D$h$j$:$C$H(B
+$BB.$$$3$H$,J,$k$G$7$g$&!J<j$rDL>o$N0LCV$+$iBg$-$/F0$+$5$J$$$G$h$$$N$G!K!#(B
+$B:G8e$K!"0lEY$3$l$i$N%3%s%H%m!<%kJ8;z$rBG$D=,47$rIU$1$?$i!"$b$C$H?J$s$@(B
+$B%+!<%=%k0\F0%3%^%s%I$b4JC1$K3P$($k$3$H$,$G$-$^$9!#(B
 
-       >> ESC f $B$d(B ESC b $B$r2?2s$+%?%$%W$7$F$_$J$5$$!#(BC-f $B$d(B C-b $B$HJ;MQ$7$F(B
-          $B$_$J$5$$!#(B
+XEmacs$B$NBgDq$N%3%^%s%I$K$O?tCM0z?t$rM?$($k$3$H$,$G$-$^$9!#BgDq$N>l9g$3(B
+$B$N?tCM$G7+$jJV$72s?t$r;X<($9$k$3$H$K$J$j$^$9!#?tCM0z?t$rM?$($k$K$O!"%3(B
+$B%^%s%I$rF~NO$9$kA0$K(B C-u $B$KB3$$$F?t;z2?7e$+%?%$%W$7$^$9!#$b$7%a%?%-!<(B
+$B$,;H$($k$J$i!"%a%?%-!<$r2!$7$J$,$i?t;z$r%?%$%W$9$k$3$H$b$G$-$^$9!#$G$b(B
+$B$d$O$j(B C-u $B$r3P$($k$3$H$r4+$a$^$9!#$=$l$O$I$s$JC<Kv$G$b;H$($k$+$i$G$9!#(B
+
+$BNc$($P(B C-u 8 C-f $B$H%?%$%W$9$k$H#8J8;zJ,@h$K0\F0$7$^$9!#(B
+
+>> $BE,Ev$J?tCM0z?t$r(B C-n $B$"$k$$$O(B C-p $B$KM?$(!"0l2s$N%3%^%s%I$G$J$k$Y$/(B
+   $B$3$N9T$N6a$/$KMh$k$h$&$K$7$F$_$^$7$g$&!#(B
+
+$BBgDq$N%3%^%s%I$O?tCM0z?t$r7+$jJV$72s?t$H2r<a$7$^$9$,!"Cf$K$ONc30$b$"$j(B
+$B$^$9!#(BC-v $B$d(B M-v $B$,$=$&$G$9!#$3$N>l9g!";XDj$5$l$??t$N9T$@$12hLL$r%9%/(B
+$B%m!<%k$5$;$k$3$H$K$J$j$^$9!#Nc$($P(B C-u 4 C-v $B$O2hLL$r#49TJ,>e$K%9%/%m!<(B
+$B%k$5$;$^$9!#(B
+
+>> C-u 8 C-v $B$r;n$7$F$_$^$7$g$&!#(B
+
+$B2hLL$,>e$K#89T%9%/%m!<%k$7$?$O$:$G$9!#$^$?2hLL$r2<$K%9%/%m!<%k$5$;$k$K$O(B
+M-v $B$K0z?t$rM?$($l$P$h$$$N$G$9!#(B
+
+$B$b$7(B X $B%&%#%s%I%&$r;H$C$F$$$k$N$J$i!"%9%/%m!<%k%P!<$H8F$P$l$k=DD9$N;M(B
+$B3Q$$%(%j%"$,(B XEmacs $B$N%&%#%s%I%&$N1&C<$K$"$k$O$:$G$9!#$=$3$r%^%&%9$GA`(B
+$B:n$7$F2hLL$r%9%/%m!<%k$5$;$k$3$H$b$G$-$^$9!#(B
 
-     C-f  $B$d(B C-b $B$KBP$9$k!"(BESC f $B$d(B ESC b $B$NN`;w@-$KCmL\$7$^$7$g$&!#B?$/$N(B
-$B>l9g!"(BESC  <$BJ8;z(B>$B$OJ8=q4X78$N=hM}$K;H$o$l!"0lJ}(BC-<$BJ8;z(B>$B$O$=$l$h$j$b$b$C$H4p(B
-$BK\E*$JBP>]!JJ8;z$H$+9T$H$+!K$KBP$9$kA`:n$K;H$o$l$^$9!#(B
+>> $B%9%/%m!<%k%P!<$NCf$G%^%&%9$N??Cf$N%\%?%s$r2!$7$F$_$^$7$g$&!#%\%?%s(B
+   $B$r2!$7$?0LCV$G7h$^$kJ8>O$N0LCV$^$G2hLL$,%9%/%m!<%k$7$^$9!#(B
+
+>> $B%9%/%m!<%k%P!<$N0lHV>e$+$i#39TL\$[$I$N$H$3$m$K%^%&%9$r0\F0$7$F!":8(B
+   $B$N%\%?%s$r2?EY$+2!$7$F$_$^$7$g$&!#(B
+
+* X $BC<Kv$G$N%+!<%=%k$N%3%s%H%m!<%k(B
+----------------------------------
+
+X $BC<Kv$,$"$k$H!"$*$=$i$/%-!<%Q%C%I$G%+!<%=%k$rA`:n$9$kJ}$,4JC1$@$H46$8(B
+$B$k$G$7$g$&!#(Bleft, right, up, down $B$NLp0u%-!<$OM=A[DL$j$NJ}8~$K0\F0$7$"(B
+$B$9!#$=$l$i!"(BC-b, C-f, C-p, C-n $B$HA4$/F1$8$h$&$KF0:n$7$^$9$,!"$h$j%?%$(B
+$B%W$,4JC1$G!"3P$($k$N$b4JC1$G$9!#C18l$4$H$G$N0\F0$K(B C-left $B$H(B C-right
+$B$r;H$&$3$H$b$G$-!"2t(B $B!JNc$($P!"%F%-%9%HJT=8Cf$K$OCJMn!K(B $B$G0\F0$9$k$?$a(B
+$B$K(BC-up $B$H(B C-down $B$r;H$&$3$H$b$G$-$^$9!#(BHOME $B!J$b$7$/$O(B BEGIN$B!K(B $B$H(B END
+$B$H=q$+$l$?%-!<$,$"$l$P!"$=$l$>$l9T$N:G=i$H:G8e$K0\F0$7!"(BC_home $B$H(B
+C-end $B$O%U%!%$%k$N:G=i$H:G8e$K0\F0$7$^$9!#%-!<%\!<%I$K(B PgUp $B$H(B PgDn $B%-!<(B
+$B$,$"$l$P!"(BM-v $B$H(B C-v $B$N$h$&$K!"0lEY$K0l2hLLKh!">e2<$K0\F0$9$k$?$a$K;H(B
+$B$&$3$H$,$G$-$^$9!#(B
 
-     C-a $B$H(B C-e $B$bCN$C$F$$$FJXMx$J%3%^%s%I$G$9!#(BC-a $B$O%+!<%=%k$r9T$N@hF,$K(B
-$B0\F0$5$;!"(BC-e $B$O9T$NKvHx$K0\F0$5$;$^$9!#(B
+$B$3$l$iA4$F$N%3%^%s%I$O>e$G@bL@$5$l$F$$$k$h$&$K?tCM0z?t$r<h$k$3$H$,$G$-(B
+$B$^$9!#$3$l$i$N0z?t$NF~NO$KC;=LO)$r<h$k$3$H$,$G$-$^$9!#(BCONTROL $B$+(B META
+$B%-!<$r2!$7$?$^$^?t;z$r%?%$%W$9$k$@$1$G$9!#Nc$($P!"1&$K#1#28l0\F0$9$k$?(B
+$B$a$K$O!"(BC-1 C-2 C-right $B$H%?%$%W$7$^$9!#BG80$N4V$K(B CONTROL $B%-!<$rN%$5(B
+$B$J$/$F$h$$$N$G!"%?%$%W$OHs>o$K4JC1$G$9!#(B
+
+
+$B!v(B XEmacs $B$,%O%s%0$7$?;~!JF0$+$J$/$J$C$?;~!K(B
+==========================================
+
+$B$b$7(B XEmacs $B$,%3%^%s%I$KH?1~$7$J$/$J$C$?$i!"(BC-g $B$r%?%$%W$9$k$3$H$G(B
+XEmacs $B$r0BA4$K;_$a$k$3$H$,$G$-$^$9!#(BC-g $B$G$H$F$b;~4V$N$+$+$k%3%^%s%I(B
+$B$r;_$a$k$3$H$,$G$-$^$9!#(B
+
+C-g $B$O$^$?!"?tCM0z?t$r<h$j;_$a$?$j!"#2$D0J>e$N%-!<F~NO$rI,MW$H$9$k(B
+$B%3%^%s%I$rF~NO$7$F$$$k:GCf$K$=$l$r<h$j;_$a$?$j$9$k$N$K$b;H$($^$9!#(B
+
+>> C-u 100 $B$H%?%$%W$7$F0z?t#1#0#0$r@_Dj$7$F$+$i(B C-g $B$rBG$C$F$_$^$7$g$&!#(B
+   $B$=$l$+$i(B C-f $B$rBG$C$F2<$5$$!#0lJ8;z$7$+?J$^$J$$$O$:$G$9!#$J$<$J$i!"(B
+   C-g $B$G?tCM0z?t$,%-%c%s%;%k$5$l$?$+$i$G$9!#(B
+
+$B4V0c$C$F(B <ESC> $B$r%?%$%W$7$F$7$^$C$?;~$b!"(BC-g $B$G$=$l$r<h$j>C$;$^$9!#(B
 
 
-       >> C-a $B$r#22s!"$=$l$+$i(B C-e $B$r#22sF~NO$7$F$_$J$5$$!#$3$l$i$N%3%^%s%I(B
-          $B$r#22s0J>e7+JV$7$F$b!"%+!<%=%k$O$=$l0J>e0\F0$7$J$$$3$H$KCm0U!#(B
+$B!v;HMQIT2D(B (disabled) $B%3%^%s%I(B
+==================================
 
-     $B$"$HFs$D!"4JC1$J%+!<%=%k0\F0%3%^%s%I$,$"$j$^$9!#%U%!%$%k$N@hF,$K0\F0$9(B
-$B$k(B ESC < $B$H!"%U%!%$%k$NKvHx$K0\F0$9$k(B ESC > $B$G$9!#(B
+$B$$$/$D$+$N%3%^%s%I$O=i?4<T$,4V0c$C$F;H$o$J$$$h$&;HMQIT2D$K$J$C$F$$$^$9!#(B
 
-     $B%F%-%9%HCf$G%+!<%=%k$NB8:_$9$k0LCV$r!V%]%$%s%H!W$H8F$S$^$9!#8@$$$+$($l(B
-$B$P!"%+!<%=%k$O!"%F%-%9%H$N$I$3$K%]%$%s%H$,$"$k$+$r2hLL>e$G<($7$F$$$k$N$G$9!#(B
+$B$b$72?$l$+$N;HMQIT2D%3%^%s%I$r%?%$%W$7$?$i!"$=$l$O$I$&$$$&%3%^%s%I$+$,(B
+$BI=<($5$l!"K\Ev$K$=$l$r<B9T$7$?$$$N$+$I$&$+?V$M$i$l$^$9!#(B
 
-     $B0J2<$KC1=c$J0\F0A`:n$K$D$$$FMWLs$7$^$9!#$3$N$J$+$K$O!"C18l$d9TC10L$G$N(B
-$B0\F0%3%^%s%I$b4^$^$l$F$$$^$9!#(B
+$B$b$7K\Ev$K<B9T$7$?$$$N$J$i%9%Z!<%9%-!<$r%?%$%W$7$F2<$5$$!#$b$7<B9T$7$?(B
+$B$/$J$1$l$P(B "n" $B$H%?%$%W$7$F2<$5$$!#(B
 
-     C-f     $B0lJ8;z@h$K?J$`(B
-     C-b     $B0lJ8;z8e$KLa$k(B
+>> `C-x n p' : $B$H%?%$%W$7$F$_$^$7$g$&!J$3$l$O;HMQIT2D%3%^%s%I$G$9!K!#(B
+   $B$=$l$+$i(B n $B$H%?%$%W$7$^$7$g$&!#(B
 
-     ESC f   $B0lC18l@h$K?J$`(B
-     ESC b   $B0lC18l8e$KLa$k(B
+
+$B!v%&%#%s%I%&(B
+============
 
-     C-n     $B<!$N9T$K0\F0(B
-     C-p     $BA0$N9T$K0\F0(B
-
-     ESC ]   $BCJMn$N=*$o$j$K0\F0(B
-     ESC [   $BCJMn$N@hF,$K0\F0(B
+XEmacs $B$O4v$D$b$N%&%#%s%I%&$K!"$=$l$>$l8DJL$NJ8>O$rI=<($9$k$3$H$,$G$-(B
+$B$^$9!#(BXEmacs $B$G;H$o$l$F$$$k!V%&%#%s%I%&!W$O%&%#%s%I%&%7%9%F%`$G$N=E$J$C(B
+$B$F$$$kJL$N%&%#%s%I%&$K8@5Z$7$F$$$k$N$G$O$J$/!"C10l$N(B X $B%&%#%s%I%&2<$G(B
+$B$NJL$NAk$N$3$H$r8@$C$F$$$k$3$H$KCm0U$7$F$/$@$5$$!#!J(BXEmacs $B$OJ#?t$N(B X
+$B$N%&%#%s%I%&!"(BXEmacs $B$NMQ8l$G$O!V%U%l!<%`!W$r;}$D$3$H$b$G$-$^$9!#$3$l(B
+$B$O8e$[$I@bL@$7$^$9!#!K(B
 
-     C-a     $B9T$N:G=i$K0\F0(B
-     C-e     $B9T$N:G8e$K0\F0(B
-
-     ESC <   $B%U%!%$%k$N:G=i$K0\F0(B
-     ESC >   $B%U%!%$%k$N:G8e$K0\F0(B
+$B$3$3$G$O!"J#?t$N%&%#%s%I%&$r;H$&5;=Q$K$O?($i$J$$$[$&$,8-L@$G$7$g$&!#$G(B
+$B$b!"%X%k%W$dFCDj$N%3%^%s%I$N=PNO$G8=$l$k$+$b$7$l$J$$M>J,$J%&%#%s%I%&$r(B
+$B>C$7$F!"$I$&$d$C$F85$N0l$D$N%&%#%s%I%&$N>uBV$KLa$k$+$r@bL@$9$k$3$H$OI,(B
+$BMW$G$7$g$&!#$=$l$O4JC1$G$9!#(B
 
-       >> $B3F!9$N%3%^%s%I$r;n$7$F$_$J$5$$!#$3$l$i$N%3%^%s%I$O!":G$b$7$P$7$P(B
-          $B;H$o$l$k$b$N$G$9!#:G8e$NFs$D$G$O!"$3$N>l=j$H$ON%$l$?$H$3$m$K0\F0(B
-          $B$9$k$N$G!"(B C-v  $B$d(B ESC v $B$r;H$C$F$3$3$KLa$C$FMh$k$h$&$K$7$J$5$$!#(B
+	C-x 1	$B%&%#%s%I%&$r#1$D$K$9$k!J$D$^$jB>$N%&%#%s%I%&$rA4It>C$9!K(B
 
-     Emacs$B$NB>$N%3%^%s%I$HF1MM$K!"$3$l$i$N%3%^%s%I$K$O!"7+$jJV$7$N2s?t$r;X(B
-$BDj$9$k0z?t(B  $B$rM?$($k$3$H$,$G$-$^$9!#$=$N$?$a$K$O!"%3%^%s%I$rF~NO$9$kA0$K!"(B
-C-u$B$KB3$$$F7+$jJV$92s?t$rF~NO$7$^$9!#(B
+$B$D$^$j(B C-x $B$rBG$C$F$+$i$5$i$K(B 1 $B$rBG$D$N$G$9!#$3$N%3%^%s%I$O%+!<%=%k$N(B
+$B$"$k%&%#%s%I%&$r2hLLA4BN$K9-$2$^$9!#B>$N%&%#%s%I%&$OA4It>C$($^$9!#(B
+
+>> $B%+!<%=%k$r$3$N9T$K;}$C$F$-$F!"(BC-u 0 C-l $B$H%?%$%W$7$F$_$F2<$5$$!#(B
 
-     $BNc$($P!"(BC-u 8 C-f  $B$H$9$k$H!"#8J8;zJ,@h$K0\F0$7$^$9!#(B
-
-       >> C-n $B$"$k$$$O(B C-p  $B$KE,Ev$J0z?t$r;XDj$7$F!"0l2s$N0\F0$G$J$k$Y$/$3(B
-          $B$N9T$N6a$/$KMh$k$h$&$K$7$F$_$J$5$$!#(B
+$B!J(BC-l $B$,2hLL$r:FIA2h$9$k$3$H$r;W$$=P$7$F$/$@$5$$!#$=$l$K?tCM0z?t$rM?$((B
+$B$k$H!"!V2hLL$r:FIA2h$7$F8=:_$N9T$r2hLL$N:G>eIt$+$i$=$N?t$@$1N%$l$?$H$3(B
+$B$m$K0\F0$7$J$5$$!W$H$$$&0UL#$K$J$j$^$9!#$G$9$+$i!"(BC-u 0 C-l $B$O!V2hLL$r(B
+$B:FIA2h$7$F!"8=:_$N9T$r:G>eIt$K$9$k!W$H$$$&0UL#$K$J$j$^$9!#!K(B
 
-     C-v $B$d(B ESC v $B$K$D$$$F$O>/$70c$$$^$9!#$3$N>l9g!";XDj$5$l$??t$N9T$@$12h(B
-$BLL$r0\F0$9$k$3$H$K$J$j$^$9!#(B
+>> $BB3$$$F(B Control-x 2 $B$H%?%$%W$7$F2<$5$$!#(B
+   $B?7$7$$%&%#%s%I%&$,$3$N%P%C%U%!$NFbMF$rI=<($9$k$?$a$K8=$l$k$H$H$b$K!"(B
+   $B$3$N%&%#%s%I%&$,$I$N$h$&$K=L$`$+$r8+$F2<$5$$!#(B
 
-       >> C-u 3 C-v  $B$HF~NO$7$F$_$J$5$$!#(B
+>> C-x 1 $B$H%?%$%W$7$F!"?7$7$$%&%#%s%I%&$,>C$($k$N$r8+$F2<$5$$!#(B
 
-     $B85$KLa$k$K$O!"(BC-u 3 ESC v $B$r;H$($P$h$$$N$G$9!#(B
 
-$BCf;_%3%^%s%I(B
+$B!vA^F~$H:o=|(B
 ============
 
-     C-g  $B$H$$$&%3%^%s%I$G!"F~NO$rI,MW$H$9$k$h$&$J%3%^%s%I$rCf;_$9$k$3$H$,(B
-$B$G$-$^$9!#Nc$($P!"0z?t$rF~NO$7$F$$$kESCf$d!"#2$D0J>e$N%-!<F~NO$rI,MW$H$9$k(B
-$B%3%^%s%I$rF~NO$7$F$$$k:GCf$K!"$=$l$r$d$a$?$/$J$C$?$i!"(BC-g  $B$r;H$($PNI$$$N$G(B
-$B$9!#(B
+$B%F%-%9%H$rF~NO$7$?$1$l$P!"C1$K$=$l$r%?%$%W$7$F2<$5$$!#(BXEmacs $B$O!"L\$K(B
+$B8+$($kJ8;z!J(BA, 7, * $BEy!K$r%F%-%9%H$G$"$k$H$_$J$9$N$G!"$=$l$i$O$=$N$^$^(B
+$BA^F~$5$l$^$9!#(B<Return>$B!J2~9T%-!<!K$r%?%$%W$9$l$P2~9TJ8;z$,A^F~$5$l$^$9!#(B
+
+$BD>A0$KF~NO$7$?J8;z$r:o=|$9$k$K$O!"(B<Delete> $B$r%?%$%W$7$^$9!#(B<Delete> $B$O!"(B
+$B%-!<%\!<%I>e$K!V(BDel$B!W$H=q$$$F$"$k%-!<$G$9!#;~$K$O(B <Backspace> $B%-!<$b(B
+<Delete> $B$H$7$FF0:n$7$^$9$,!"$$$D$b$G$O$"$j$^$;$s!#(B
+
+$B$h$j0lHLE*$K$O!"(B<Delete> $B$O8=:_%+!<%=%k$N$"$k0LCV$ND>A0$NJ8;z$r:o=|$7(B
+$B$^$9!#(B
+
+>> $BJ8;z$r$$$/$D$+%?%$%W$7!"$=$l$+$i$=$l$i$r(B <Delete> $B$r;H$C$F:o=|$7(B
+   $B$F2<$5$$!#$3$N%U%!%$%k$rJQ99$9$k$3$H$r5$$K$9$kI,MW$O$"$j$^$;$s!#%*(B
+   $B%j%8%J%k$NF~Lg%,%$%I%U%!%$%k$OJQ99$5$l$^$;$s$+$i!#:#8+$F$$$k%U%!%$(B
+   $B%k$O$"$J$?$N$?$a$N%3%T!<$G$9!#(B
 
-       >> C-u 100 $B$r%?%$%W$7$F0z?t$r#1#0#0$K@_Dj$7!"(BC-g  $B$r%?%$%W$7$J$5$$!#(B
-          $B$=$N$"$H$G(B  C-f  $B$r%?%$%W$7$F$_$J$5$$!#2?J8;z0\F0$7$^$7$?$+!)$b$7(B
-          $B4V0c$C$F(B ESC $B$rF~NO$7$F$7$^$C$?;~$b!"(BC-g  $B$rF~NO$9$l$P<h$j>C$;$^(B
-          $B$9!#(B
+$BJ8>O$N0l9T$,2hLL$K<}$^$i$J$$DxD9$/$J$C$?>l9g!"$=$N9T$O2hLL>e$N<!$N9T$X(B
+$B$H7QB3!J(Bcontinued$B!K$5$l$^$9!#2hLL$N1&C<$N(B backslash $BJ8;z(B ("\") $B$O!"$=(B
+$B$N9T$,7QB3$5$l$F$$$k$3$H$rI=$7$F$$$^$9!#(B
+
+>> $B2hLL$N1&C<$^$GJ8>O$rF~NO$7!"$5$i$KF~NO$rB3$1$F2<$5$$!#(B
+   $B7QB39T$,$G$-$k$N$,J,$k$G$7$g$&!#(B
+
+>> <Delete> $B$r;H$C$F2hLL$K<}$^$k$H$3$m$^$G8=:_$N9T$rC;$/$7$F$_$F$/$@$5(B
+   $B$$!#7QB39T$O>C$($^$9!#(B
+
+$B2~9TJ8;z$bB>$NJ8;z$HF1$8$h$&$K:o=|$G$-$^$9!##2$D$N9T$N4V$N2~9TJ8;z$r>C(B
+$B$9$H$=$l$i$N9T$,9g$o$5$j#1$D$N9T$K$J$j$^$9!#$b$7$=$N9g$o$5$C$?9T$,2hLL(B
+$B$NI}$h$j$bD9$$>l9g$O!"7QB39T$H$J$C$FI=<($5$l$^$9!#(B
+
+>> $B%+!<%=%k$r9T$N@hF,$K0\F0$7!"(B<Delete> $B$r%?%$%W$7$F2<$5$$!#8=:_$N9T$,(B
+   $B$=$NA0$N9T$H$D$J$,$j$^$9!#(B
 
-$B%(%i!<(B
-======
+>> <Return> $B$r%?%$%W$7$F!":#:o=|$7$?2~9TJ8;z$r$^$?A^F~$7$F2<$5$$!#(B
+
+XEmacs $B$N$[$H$s$I$N%3%^%s%I$O!"7+$jJV$7$N2s?t;XDj$G$-$k$3$H$r;W$$=P$7(B
+$B$F2<$5$$!#$3$l$O!"J8;z$NA^F~$K$D$$$F$bEv$F$O$^$j$^$9!#(B
+
+>> C-u 8 * $B$H%?%$%W$9$k$H(B ******** $B$,A^F~$5$l$^$9!#;n$7$F$_$^$7$g$&!#(B
+
+$B$3$l$G!"(BXEmacs $B$G%F%-%9%H$rF~NO$7!"$^$?4V0c$$$r=$@5$9$k$b$C$H$b4pK\E*(B
+$B$JJ}K!$r3X$s$@$3$H$K$J$j$^$9!#J8;z$HF1$8MM$K!"C18l$d9T$b:o=|$9$k$3$H$,(B
+$B$G$-$^$9!#:o=|A`:n$K$D$$$FMWLs$9$k$H<!$N$h$&$K$J$j$^$9!#(B
+
+	<Delete>     $B%+!<%=%k$ND>A0$NJ8;z$r:o=|!J(Bdelete$B!K(B
+	C-d	     $B%+!<%=%k$N$"$kJ8;z$r:o=|!J(Bdelete$B!K(B
+
+	M-<Delete>   $B%+!<%=%k$ND>A0$NC18l$r>C5n!J(Bkill$B!K(B
+	M-d	     $B%+!<%=%k0LCV0J9_$K$"$kC18l$r>C5n!J(Bkill$B!K(B
 
-     $B;~$K$O!"(BEmacs$B$G5v$5$l$F$$$J$$A`:n$r$7$F$7$^$&$3$H$,$"$j$^$9!#Nc$($P!"(B
-$B%3%^%s%I$NDj5A$5$l$F$$$J$$%3%s%H%m!<%k!&%-!<$rF~NO$7$F$7$^$C$?;~$K$O!"(BEmacs
-$B$O%Y%k$rLD$i$7!"$5$i$K!"2hLL$N0lHV2<$K!"2?$,0-$+$C$?$+$rI=<($7$^$9!#(B
+	C-k	     $B%+!<%=%k0LCV$+$i9TKv$^$G$r>C5n!J(Bkill$B!K(B
+	M-k	     $B%+!<%=%k0LCV$+$iJ8Kv$^$G$r>C5n!J(Bkill$B!K(B
+
+<Delete> $B$H(B C-d $B$KBP$9$k(B M-<Delete> $B$H(B M-d $B$O!"(BC-f $B$H(B M-f $B$G;O$^$C$?N`(B
+$B;w@-$r$^$?3HD%$7$^$9!#$3$3$G(B <Delete> $B$O%3%s%H%m!<%kJ8;z$G$O$"$j$^$;$s(B
+$B$,!"$^$"!"$=$l$O5$$K$7$J$$$G2<$5$$!#(BC-k $B$H(B M-k $B$N4X78$O(B C-e $B$H(B M-e $B$N(B
+$B4X78!J9T$HJ8$NBPHf!K$HF1$8$G$9!#(B
 
-     Emacs$B$N%P!<%8%g%s$K$h$C$F$O!"$3$NF~LgJT$K=q$+$l$F$$$k$3$H$r<B9T$G$-$J(B
-$B$$>l9g$,$"$jF@$^$9!#$=$NMM$J>l9g$K$O!"%(%i!<%a%C%;!<%8$,I=<($5$l$^$9$+$i!"(B
-$B2?$+%+!<%=%k0\F0%-!<$r2!$7$F!"$=$N<!$NItJ,$K?J$s$G2<$5$$!#(B
+$B0lEY$K#2J8;z0J>e>C$7$?>l9g!"(BXEmacs $B$O$=$N>C$7$?%F%-%9%H$rJ]B8$7$F$*$$(B
+$B$F!"$^$?85$KLa$9$3$H$,$G$-$k$h$&$K$7$F$$$^$9!#$3$N!V85$KLa$9!W$H$$$&F0(B
+$B:n$r:FF~!J(Byanking$B!K$H8F$S$^$9!#>C$7$?%F%-%9%H$O!"85$HF1$8>l=j$K$G$b85(B
+$B$H$O0c$&>l=j$K$G$b:FF~$G$-$^$9!#$^$?!"2?EY$b:FF~$7$F%F%-%9%H$N%3%T!<$r(B
+$BJ#?t:n$k$3$H$b$G$-$^$9!#:FF~$N$?$a$N%3%^%s%I$O(B C-y $B$G$9!#(B
+
+$B!V>C5n!J(Bkill$B!K!W$H!V:o=|!J(Bdelete$B!K!W$N0c$$$K5$$r$D$1$F2<$5$$!#>C5n$7$?(B
+$B%F%-%9%H$O:FF~$G$-$^$9$,!":o=|$7$?$b$N$O:FF~$G$-$^$;$s!#0lHL$K!"BgNL$N(B
+$B%F%-%9%H$r>C$9%3%^%s%I$O$=$N%F%-%9%H$rJ]B8$7$F$*$-$^$9$,!"0lJ8;z$H$+6u(B
+$BGr9T$d6uGrJ8;z$r:o=|$9$k%3%^%s%I$O:o=|$7$?$b$N$rJ]B8$7$-$^$;$s!#(B
 
-$B%&%#%s%I%&(B
-==========
+>> $B6u9T$G$J$$9T$N@hF,$K%+!<%=%k$r0\F0$5$;$F2<$5$$!#(B
+   $B$=$l$+$i(B C-k $B$G$=$N9T$N%F%-%9%H$r>C5n$7$F2<$5$$!#(B
+>> $B$b$&0lEY(B C-k $B$r%?%$%W$7$F$/$@$5$$!#$=$N9T$KB3$/2~9TJ8;z$,>C$5$l$k$N(B
+   $B$,J,$j$^$7$?$+!#(B
+
+$B0l2sL\$N(B C-k $B$O$=$N9T$N%F%-%9%H$r>C$7!"#22sL\$N(B C-k $B$O$=$N9T<+?H$r>C$7(B
+$B$F$=$N@h$N9T$r>e$2$F$-$^$9!#(BC-k $B$N?tCM0z?t$N07$$$OFC<l$G$9!#0z?tJ,$N9T(B
+$B!J9T$NFbMF$H9T<+?H!K$r>C$7$^$9!#$3$l$OC1$J$k7+$jJV$7$G$O$"$j$^$;$s!#(B
+C-u 2 C-k $B$O#2$D$N9T$H$=$l$>$l$KB3$/2~9TJ8;z$r>C$7$^$9$,!"(BC-k $B$r#2EY%?(B
+$B%$%W$7$F$b$=$&$O$J$j$^$;$s!#(B
+
+$B:G8e$K>C5n$7$?%F%-%9%H$r8=:_%+!<%=%k$,$"$k0LCV$K:FF~$9$k$K$O(B C-y $B$r%?(B
+$B%$%W$7$^$9!#(B
+
+>> $B;n$7$F2<$5$$!#(BC-y $B$r%?%$%W$7$F:G8e$K>C5n$7$?%F%-%9%H$r:FF~$7$^$7$g$&!#(B
 
-     Emacs$B$O4v$D$b$N%&%#%s%I%&$r;}$D$3$H$H!"$=$N$=$l$>$l$KBP$7$F%F%-%9%H$r(B
-$BI=<($9$k$3$H$,$G$-$^$9!#%X%k%W$d!"4v$D$+$N%3%^%s%I$+$i$N=PNO$rI=<($9$k$?$a(B
-$B$K8=$l$?M>J,$J%&%#%s%I%&$r>C$9$?$a$K!"<!$N%3%^%s%I$rCN$kI,MW$,$"$j$^$9!#(B
+C-y $B$O!"$"$J$?$,L5$/$7$?$b$N$r<h$jLa$9$b$N$@$H9M$($^$7$g$&!#(BC-k $B$rB3$1(B
+$B$F<B9T$9$k$H!">C5n$7$?3F9T$OA4It$^$H$a$FJ]B8$5$l$k$N$G!"0l2s$N(B C-y $B$G(B
+$B$=$l$i$N9T$,A4It:FF~$5$l$^$9!#(B
+
+>> C-k $B$r2?EY$+B3$1$F%?%$%W$7$F$_$F2<$5$$!#(B
+
+$B$5$"!">C5n$7$?%F%-%9%H$r:FF~$7$^$7$g$&!#(B
 
-     C-x 1             $B%&%#%s%I%&$r#1$D$K$9$k!#(B
+>> C-y $B$r%?%$%W$7$F2<$5$$!#<!$K%+!<%=%k$r?t9T2<$K0\F0$5$;!"$^$?(B C-y $B$r(B
+   $B%?%$%W$7$F2<$5$$!#$I$&$d$C$F%F%-%9%H$r%3%T!<$9$k$+J,$j$^$7$?$M!#(B
+
+$B2a5n$K>C5n$7$?%F%-%9%H$r:FF~$7$?$$$N$K!"JL$N%F%-%9%H$r$=$N8e>C5n$7$?;~(B
+$B$O$I$&$9$l$P$h$$$G$7$g$&!)(B C-y $B$O:G8e$K>C5n$7$?$b$N$r:FF~$7$^$9!#$G$b(B
+$B$=$l$G$h$j0JA0$K>C5n$7$?%F%-%9%H$,$J$/$J$k$o$1$G$O$"$j$^$;$s!#$=$&$$$&(B
+$B%F%-%9%H$O(B M-y $B$G:FF~$G$-$^$9!#(BC-y $B$G:G8e$K>C5n$7$?%F%-%9%H$r:FF~$7$?(B
+$BD>8e$K(BM-y $B$r%?%$%W$9$k$H!"$=$N:FF~$5$l$?%F%-%9%H$O$=$l0JA0$K>C5n$7$?$b(B
+$B$N$KJQ99$5$l$^$9!#2?EY$bB3$1$F(B M-y $B$r%?%$%W$9$k$H!"$5$i$KA0$K>C5n$7$?(B
+$B%F%-%9%H$r8F$SLa$;$^$9!#K>$_$N%F%-%9%H$K9T$-Ev$C$?$i!"$=$l$O$=$N$^$^$K(B
+$B$7$FJT=8:n6H$rB3$1$l$P$h$$$N$G$9!#(B
 
-     C-x 1 $B$O!"B>$N%&%#%s%I%&$r>C$7$F!"%+!<%=%k$N$"$k%&%#%s%I%&$r!"2hLLA4BN(B
-$B$K9-$2$^$9!#(B
+$B$"$k2s?t$@$1(B M-y $B$r7+$jJV$7$?$i!"$^$?:G=i!J$D$^$j:G8e$K>C5n$7$?%F%-%9(B
+$B%H!K$KLa$j$^$9!#(B
 
-       >> $B%+!<%=%k$r$3$N9T$K;}$C$F$-$F!"(BC-u 0 C-l $B$H%?%$%W$7$^$9!#(B
+>> $B0l9T>C5n$7!"JL$N9T$K9T$C$F$=$N9T$r>C5n$7$F2<$5$$!#(B
+   $B$=$l$+$i(B C-y $B$G#2HVL\!J:G8e!K$K>C5n$7$?9T$r:FF~$7$F2<$5$$!#(B
+   $BB3$$$F(B M-y $B$G$=$N9T$r:G=i$K>C5n$7$?9T$KJQ$($F2<$5$$!#(B
+   M-y $B$rB3$1$I$&$J$k$+8+$F$_$^$7$g$&!##2HVL\$K>C5n$7$?9T$,La$C$FMh$k(B
+   $B$^$G(B M-y $B$r7+$jJV$7!"$5$i$K$b$&2?EY$+(B M-y $B$r$7$^$7$g$&!#(B
+   $B$b$7K>$_$J$i(B M-y $B$K@5$b$7$/$OIi$N?tCM0z?t$rM?$($F$bNI$$$G$7$g$&!#(B
+
+
+$B!v<h$j>C$7(B(UNDO)
+================
+
+$B$b$7!"J8>O$rJQ99$7$?8e$G$=$NJQ99$O4V0c$$$@$C$?$H;W$C$?$i!"<h$j>C$7(B
+$B!J(Bundo$B!K%3%^%s%I(B C-x u $B$G$=$NJQ99$r<h$j>C$9$3$H$,$G$-$^$9!#(B
 
-       >> C-h k C-f $B$H%?%$%W$7$J$5$$!#?7$7$$%&%#%s%I%&$,(B C-f $B%3%^%s%I$N%I%-(B
-          $B%e%a%s%H$rI=<($9$k$?$a$K8=$l$k$HF1;~$K!"$3$N%&%#%s%I%&$,$I$N$h$&(B
-          $B$K=L$`$+$r4Q;!$7$J$5$$!#(B
+$BDL>o!"(BC-x u $B$O0l$D$N%3%^%s%I$K$h$kJQ99$r<h$j>C$7$^$9!#B3$1$F2?EY$b(B C-x
+u $B$r9T$($P$=$N$?$S$K0l$DA0$N%3%^%s%I$,<h$j>C$7$K$J$j$^$9!#(B
+
+$B$?$@$7$3$l$K$ONc30$,Fs$D$"$j$^$9!#$^$:!"J8>O$rJQ99$7$J$$%3%^%s%I$O<h$j(B
+$B>C$7$K$J$j$^$;$s!#%+!<%=%k0\F0$d%9%/%m!<%k$N%3%^%s%I$,$=$l$KEv$?$j$^$9!#(B
+$B$=$l$+$i!"%F%-%9%HJ8;z$NA^F~!J<+8JA^F~%3%^%s%I!K$O(B 20 $B8D0l$^$H$a$G07$o(B
+$B$l$^$9!#$3$l$O%F%-%9%H$NA^F~$r<h$j>C$9$?$a$N(B C-x u $B$N2s?t$r8:$i$9$?$a(B
+$B$G$9!#(B
+
+>> $B$3$N9T$r(BC-k$B$G>C$7$F2<$5$$!#$=$7$F!"(BC-x u $B$GLa$7$F2<$5$$!#(B
 
-       >> C-x 1$B$H%?%$%W$7$F!"%I%-%e%a%s%H$N8=$o$l$F$$$?%&%#%s%I%&$r>C$7$J$5(B
-          $B$$!#(B
+C-_ $B$b<h$j>C$7!J(Bundo$B!K$r9T$J$&%3%^%s%I$G$9!#5!G=$O!"(BC-x u $B$HF1$8$G$9$,!"(B
+$BB3$1$F2?EY$b%?%$%W$9$k>l9g$O$h$jJXMx$G$9!#(BC-_ $B$NLdBj$O!"%-!<%\!<%I$K$h$C(B
+$B$F$O$I$&$d$C$F%?%$%W$9$k$N$+J,$j$E$i$$;v$G$9!#$@$+$i(B C-x u $B$,$"$k$N$G(B
+$B$9!#C<Kv$K$h$C$F$O!"%3%s%H%m!<%k%-!<$r2!$7$?$^$^(B / $B$r%?%$%W$9$k$H(B C-_ 
+$B$r%?%$%W$7$?$3$H$K$J$j$^$9!#(B
 
-$BA^F~$H:o=|(B
+C-_ $B$d(B C-x u $B$O?tCM0z?t$r7+$jJV$72s?t$H2r<a$7$^$9!#(B
+
+
+$B!v%U%!%$%k(B
 ==========
 
-     $B%F%-%9%H$r%?%$%W$7$?$1$l$P!"C1$K$=$l$r%?%$%W$9$k$@$1$G9=$$$^$;$s!#L\$K(B
-$B8+$($kJ8;z!J(B'A','7','*','$B$"(B'$B$J$I!K$O(BEmacs$B$K$h$C$F%F%-%9%H$G$"$k$H$_$J$5$l!"(B
-$B$=$N$^$^A^F~$5$l$^$9!#9T$N=*$o$j$O2~9TJ8;z$GI=$5$l!"$3$l$rF~NO$9$k$K$O(B
-<Return> $B$r%?%$%W$7$^$9!#(B
-
-     $BD>A0$KF~NO$7$?J8;z$r:o=|$9$k$K$O!"(B<Delete> $B$rF~NO$7$^$9!#(B<Delete> $B$O!"(B
-$B%-!<%\!<%I$G!V(BDelete$B!W$H=q$$$F$"$k%-!<$r2!$7$FF~NO$7$^$9!#!V(BDelete$B!W$N$+$o(B
-$B$j$K!V(BRubout$B!W$H=q$$$F$"$k$+$bCN$l$^$;$s!#$h$j0lHLE*$K$O!"(B<Delete> $B$O!"8=:_(B
-$B%+!<%=%k$N$"$k0LCV$ND>A0$NJ8;z$r:o=|$7$^$9!#(B
-
-       >> $BJ8;z$r$$$/$D$+%?%$%W$7!"$=$l$+$i$=$l$i$r(B <Delete> $B$r;H$C$F:o=|$7(B
-          $B$J$5$$!#(B
+$BJT=8$7$F$$$kJ8>O$r915WE*$JJ*$K$9$k$K$O!"$=$l$r%U%!%$%k$KJ]B8$7$J$1$l$P(B
+$B$J$j$^$;$s!#$5$b$J$$$H!"(BXEmacs $B$N=*N;$HF1;~$K$=$l$O$J$/$J$C$F$7$^$$$^(B
+$B$9!#JT=8$7$?J*$r%U%!%$%k$KF~$l$k$K$O%U%!%$%k$r3+$$$F$+$i$7$^$9!#!J%U%!(B
+$B%$%k$r(B "visit" $B$9$k$H$b8@$$$^$9!K!#(B
 
-       >> $B1&%^!<%8%s$r1[$($k$^$G%F%-%9%H$r%?%$%W$7$J$5$$!#%F%-%9%H$,0l9T$N(B
-          $BI}0J>e$KD9$/$J$k$H!"$=$N9T$O2hLL$+$i$O$_=P$7$F!V7QB3!W$5$l$^$9!#(B
-          $B1&C<$K$"$k(B'\'$B5-9f$O!"$=$N9T$,7QB3$5$l$F$$$k$3$H$rI=$7$F$$$^$9!#(B
-          Emacs$B$O!"8=:_JT=8Cf$N0LCV$,8+$($k$h$&$K9T$r%9%/%m!<%k$7$^$9!#2hLL(B
-          $B$N1&$"$k$$$O:8$NC<$K$"$k(B'\'$B5-9f$O!"$=$NJ}8~$K9T$,$^$@B3$$$F$$$k$3(B
-          $B$H$rI=$7$F$$$^$9!#(B
+$B%U%!%$%k$r3+$/$H$O!"$=$N%U%!%$%k$NCf?H$r(B XEmacs $B$G8+$k$3$H$r0UL#$7$^$9!#(B
+$B?'!9$J0UL#$G!"$=$l$O$"$J$?$,%U%!%$%k<+?H$rJT=8$7$F$$$k$+$NMM$G$9!#$7$+(B
+$B$7!"(BXEmacs $B$G9T$&JQ99$O%U%!%$%k$r%;!<%V$9$kKx$O915WE*$J$b$N$H$J$j$^$;(B
+$B$s!#$3$l$O!"$=$l$rK>$^$J$$$N$K!"ESCf$^$GJQ99$7$?%U%!%$%k$,;D$k$N$rHr$1(B
+$B$k$?$a$G$9!#%;!<%V$7$?8e$G$5$(!"JQ99$7$?$b$N$,4V0c$C$F$$$?;~$N$?$a$K!"(B
+$B85$N%U%!%$%k$OL>A0$rJQ$($F;D$5$l$^$9!#(B
 
-     $B$3$l$O!"J8>O$G@bL@$9$k$h$j<B:]$K$d$C$?J}$,$h$/H=$k$G$7$g$&!#(B
-
-       >> $B@h$[$IF~NO$7$?!"7QB3$5$l$?9T$N>e$K%+!<%=%k$r$b$C$F$$$-!"(BC-d $B$G%F(B
-          $B%-%9%H$r:o=|$7$F!"%F%-%9%H$,0l9T$K<}$^$k$h$&$K$7$F$_$J$5$$!#7QB3(B
-          $B$rI=$9(B'\'$B5-9f$O>C$($^$7$?$M!#(B
+$B2hLL$N0lHV2<6a$/$K!"(B"ISO7--%%-XEmacs: TUTORIAL.ja" $B$NMM$JJ8;zNs$G;O$^(B
+$B$j(B "----" $B$G=*$C$F$$$k9T$,$"$k$O$:$G$9!#2hLL$N$3$NItJ,$O>o$K8=:_3+$$$F(B
+$B$$$k%U%!%$%k$NL>A0$,I=<($5$l$F$$$^$9!#:#$O(B "TUTORIAL.ja" $B$H$$$&L>$N%U%!(B
+$B%$%k!J$3$l$O(B XEmacs $BF~Lg%,%$%I$N$"$J$?MQ$N%3%T!<$G$9!K$r3+$$$F$$$^$9!#(B
+XEmacs $B$G%U%!%$%k$r3+$/$H$=$N%U%!%$%k$NL>A0$,$3$NItJ,$K8=$l$^$9!#(B
 
-       >> $B%+!<%=%k$r9T$N@hF,$K0\F0$7!"(B<Delete> $B$rF~NO$7$J$5$$!#$3$l$O$=$N9T(B
-          $B$ND>A0$N9T6g@Z$j$r:o=|$9$k$N$G!"$=$N9T$,A0$N9T$H$D$J$,$C$F$7$^$$(B
-          $B$^$9!#$D$J$,$C$?9T$,2hLL$NI}$h$jD9$/$J$k$H!"7QB3$NI=<($,$5$l$k$G(B
-          $B$7$g$&!#(B
+$B%U%!%$%k$r3+$$$?$jJ]B8$7$?$j$9$k%3%^%s%I$O!"#2$D$NJ8;z$+$i@.$k$H$$$&E@(B
+$B$G:#$^$G3X$s$@B>$N%3%^%s%I$H$O0c$$$^$9!#N>J}$H$b!"(BControl-x $B$H$$$&J8;z(B
+$B$G;O$^$j$^$9!#(BControl-x $B$G;O$^$k%3%^%s%I$O$?$/$5$s$"$j$^$9!#B?$/$O%U%!(B
+$B%$%k!"%P%C%U%!$d$=$l$i$K4XO"$7$?$b$N$K4X78$7$?$3$H$r$7$^$9!#$3$l$i$N%3(B
+$B%^%s%I$O#2!"#3!"#4J8;z$G$9!#(B
 
-       >> <Return> $B$r2!$7$F!"$b$&0lEY9T6g@Z$j$rA^F~$7$J$5$$!#(B
-
-     Emacs$B$N$[$H$s$I$N%3%^%s%I$O!"7+$jJV$7$N2s?t$rM?$($k$3$H$,$G$-$^$9!#$3(B
-$B$N$3$H$O!"J8;z$NA^F~$K$D$$$F$bEv$F$O$^$j$^$9!#(B
-
-       >> C-u 8 * $B$HF~NO$7$F$_$J$5$$!#$I$&$J$j$^$7$?$+!#(B
+$B%U%!%$%k$r3+$/$?$a$N%3%^%s%I$O$3$l$^$G3X$s$@$b$N$H$O0c$$!"%U%!%$%k$NL>(B
+$BA0$r;XDj$7$J$1$l$P$J$j$^$;$s!#$3$l$r!"%3%^%s%I$,!VC<Kv$+$i0z?t$rFI$_9~(B
+$B$`!W$H8@$$$^$9!#:#$N>l9g$O0z?t$O%U%!%$%kL>$G$9!#<!$N%3%^%s%I(B
 
-     $BFs$D$N9T$N4V$K6uGr9T$r:n$j$?$$>l9g$K$O!"FsHVL\$N9T$N@hF,$K9T$-!"(BC-o $B$r(B
-$BF~NO$7$^$9!#(B
-
-       >> $BE,Ev$J9T$N@hF,$K9T$-!"$=$3$G(B C-o $B$rF~NO$7$F$_$J$5$$!#(B
+	C-x C-f   Find a file
 
-     $B$3$l$G!"(BEmacs$B$G!"%F%-%9%H$rF~NO$7!"$^$?4V0c$$$r=$@5$9$k$b$C$H$b4pK\E*(B
-$B$JJ}K!$r3X$s$@$3$H$K$J$j$^$9!#J8;z$HF1$8MM$K!"C18l$d9T$b:o=|$9$k$3$H$,$G$-(B
-$B$^$9!#:o=|A`:n$K$D$$$FMWLs$9$k$H<!$N$h$&$K$J$j$^$9!#(B
+$B$r%?%$%W$9$k$H!"(BXEmacs $B$O%U%!%$%kL>$rJ9$$$F$-$^$9!#%?%$%W$7$?%U%!%$%k(B
+$BL>$O2hLL$N:G2<9T$KI=<($5$l$^$9!#$3$N:G2<9T$O!"$3$&$$$&F~NO$N$?$a$K;H$C(B
+$B$F$$$k;~$O!"%_%K%P%C%U%!$H8F$S$^$9!#DL>o$NJT=8%3%^%s%I$G%U%!%$%kL>$rJT(B
+$B=8$9$k$3$H$b$G$-$^$9!#(B
 
-     <Delete>       $B%+!<%=%k$ND>A0$NJ8;z$r:o=|(B
-     C-d            $B%+!<%=%k$N$"$kJ8;z$r:o=|(B
-
-     ESC <Delete>   $B%+!<%=%k$ND>A0$NC18l$r:o=|(B
-     ESC d          $B%+!<%=%k0LCV0J9_$K$"$kC18l$r:o=|(B
+$B%U%!%$%kL>$NF~NOCf!J$"$k$$$O$=$NB>$N%_%K%P%C%U%!F~NOCf!K$K(B C-g $B$K$h$C(B
+$B$F%3%^%s%I$r%-%c%s%;%k$G$-$^$9!#(B
 
-     C-k            $B%+!<%=%k0LCV$+$i9TKv$^$G$r:o=|(B
+>> C-x C-f $B$r%?%$%W$7$F$+$i(B C-g $B$r%?%$%W$7$F$_$^$7$g$&!#%_%K%P%C%U%!$,(B
+   $B<h$j>C$5$l!"$=$l$r;H$C$F$$$?%3%^%s%I(B C-x C-f $B<+BN$b<h$j>C$5$l$^$9!#(B
+   $B$@$+$i!"%U%!%$%k$O2?$b3+$+$l$^$;$s!#(B
 
-     $B2?$+$r:o=|$7$?8e$G!"$=$l$r85$KLa$7$?$/$J$k$3$H$,$"$j$^$9!#(BEmacs$B$O!"0l(B
-$BJ8;z$h$j$bBg$-$$C10L$G:o=|$r9T$C$?;~$K$O!":o=|$7$?FbMF$rJ]B8$7$F$*$-$^$9!#(B
-$B85$KLa$9$K$O!"(BC-y $B$r;H$$$^$9!#Cm0U$7$?$$$N$O!"(BC-y $B$r:o=|$r9T$C$?>l=j$@$1$G(B
-$B$O$J$/!"$I$3$K$G$b=PMh$k$3$H$G$9!#(BC-y  $B$O!"J]B8$5$l$?%F%-%9%H$r8=:_%+!<%=%k(B
-$B$N$"$k>l=j$KA^F~$9$k$?$a$N%3%^%s%I$G$9$+$i!"$3$l$r;H$C$F%F%-%9%H$N0\F0$r9T(B
-$B$&$3$H$,$G$-$^$9!#(B
+$B%U%!%$%kL>$rF~NO$7$?$i!"(B<Return>$B%-!<$r%?%$%W$7F~NO$r40N;$5$;$^$9!#$=$&(B
+$B$9$k$H!"(BC-x C-f $B%3%^%s%I$,Av$j;O$a;XDj$7$?%U%!%$%k$r3+$-$^$9!#%_%K%P%C(B
+$B%U%!$O(B C-x C-f $B%3%^%s%I$N=*N;$H$H$b$K>C$($^$9!#(B
 
-     $B:o=|$r9T$&%3%^%s%I$K$O!"(B"Delete" $B%3%^%s%I$H!"(B"Kill" $B%3%^%s%I$H$,$"$j$^(B
-$B$9!#(B"Kill"  $B%3%^%s%I$G$O:o=|$5$l$?$b$N$OJ]B8$5$l$^$9$,!"(B"Delete" $B%3%^%s%I$G(B
-$B$OJ]B8$5$l$^$;$s!#$?$@$7!"7+$jJV$72s?t$,M?$($i$l$k$H!"J]B8$5$l$^$9!#(B
+$B%U%!%$%k$NFbMF$,2hLL$KI=<($5$l$k$H!"$=$NFbMF$rJQ99$9$k$3$H$,$G$-$^$9!#(B
+$B2C$($?JQ99$r915WE*$J$b$N$K$7$?$1$l$P!"<!$N%3%^%s%I$r%?%$%W$7$^$9!#(B
 
-      >> C-n $B$r#22s$[$I%?%$%W$7$F!"2hLL$NE,Ev$J>l=j$K0\F0$7$J$5$$!#$=$7$F!"(B
-          C-k $B$G!"$=$N9T$r:o=|$7$J$5$$!#(B
+	C-x C-s   Save the file
 
-     $B0l2sL\$N(B C-k $B$G$=$N9T$NFbMF$,:o=|$5$l!"$b$&0lEY(B C-k $B$rF~NO$9$k$H!"$=$N(B
-$B9T<+?H$,:o=|$5$l$^$9!#$b$7!"(BC-k  $B$K7+$jJV$72s?t$r;XDj$7$?>l9g$K$O!"$=$N2s?t(B
-$B$@$1$N9T$,!JFbMF$H9T<+?H$H$,F1;~$K!K:o=|$5$l$^$9!#(B
-
-     $B:#:o=|$5$l$?%F%-%9%H$O!"J]B8$5$l$F$$$k$N$G!"$=$l$r<h$j=P$9$3$H$,$G$-$^(B
-$B$9!#$=$N$?$a$K$O!"(BC-y $B$r%?%$%W$7$^$9!#(B
-
-       >> C-y $B$r;n$7$F$_$J$5$$!#(B
+$B$3$l$O(B XEmacs $B$,J];}$7$F$$$kJ8>O$r%U%!%$%k$K%3%T!<$7$^$9!#=i$a$F$3$l$r(B
+$B<B9T$9$k$H$-$O!"85$N%U%!%$%k$r?7$7$$L>A0$KIU$1BX$($k$N$G!"$=$NFbMF$O<:(B
+$B$o$l$^$;$s!#$=$N?7$7$$L>A0$O85$N%U%!%$%k$NL>A0$N:G8e$K(B'~'$B$r$D$1$?$b$N(B
+$B$G$9!#(B
 
-     C-k $B$r2?EY$bB3$1$F9T$&$H!":o=|$5$l$k%F%-%9%H$O!"$^$H$a$FJ]B8$5$l!"(BC-y
-$B$G!"$=$NA4$F$,<h$j=P$5$l$^$9!#(B
-
-       >> C-k $B$r2?EY$b%?%$%W$7$F$_$J$5$$!#(B
+$B%;!<%V$,=*$o$k$H!"%;!<%V$7$?%U%!%$%k$NL>A0$,I=<($5$l$^$9!#3d$HIQHK$K%;!<(B
+$B%V$7$?J}$,NI$$$G$7$g$&!#%7%9%F%`$,Mn$A$F$b$;$C$+$/$N:n6H$,%Q%"$K$J$i$J(B
+$B$$$h$&$K!#(B
 
-       >> $B%F%-%9%H$r<h$j=P$9$K$O!"(BC-y $B$G$9!#%+!<%=%k$r?t9T2<$K0\F0$5$;!"$b(B
-          $B$&0lEY(B C-y $B$r%?%$%W$7$F$_$J$5$$!#$3$l$G%F%-%9%H$N%3%T!<$,$G$-$k$o(B
-          $B$1$G$9!#(B
-
-     $B8=:_2?$+$N%F%-%9%H$,J]B8$5$l$F$$$F!"$5$i$KB>$N%F%-%9%H$r:o=|$9$k$H$I$&(B
-$B$J$k$G$7$g$&$+!#(BC-y $B$O!"$b$C$H$b:G6a:o=|$5$l$?$b$N$r<h$j=P$7$^$9!#(B
-
+>> C-x C-s $B$H%?%$%W$7$F$3$NF~Lg%,%$%I$N%3%T!<$r%;!<%V$7$F2<$5$$!#(B
+   $B2hLL:G2<CJ$K(B "Wrote ...TUTORIAL.ja" $B$HI=<($5$l$^$9!#(B
 
-       >> $B9T$r:o=|$7!"%+!<%=%k$r0\F0$5$;!"JL$N9T$r:o=|$7$J$5$$!#(BC-y $B$r9T$&(B
-          $B$H!"#2HVL\$N9T$,F@$i$l$^$9!#(B
-
-$B<h$j>C$7(B(UNDO)
-==============
+$BCm0U!'%7%9%F%`$K$h$C$F$O(B C-x C-s $B$H%?%$%W$9$k$H2hLL$,F0$+$J$/$J$j(B 
+XEmacs $B$,I=<($7$h$&$H$9$k$b$N$,2?$b2hLL$K=P$J$/$J$j$^$9!#$3$l$O!"%U%m!<(B
+$B%3%s%H%m!<%k$H8F$P$l$k#O#S$N5!G=$,(B C-s $B$rB*$(!"(BXEmacs $B$KEO$5$J$$$h$&$K(B
+$B$7$F$$$k$N$G$9!#$3$l$r2r=|$9$k$K$O(B C-q $B$r%?%$%W$7$^$9!#$=$l$+$i(B XEmacs 
+$B%^%K%e%"%k$N(B "Spontaneous Entry to Incremental Search ($BCN$i$L4V$K%$%s(B
+$B%/%j%a%s%?%k%5!<%A$K$J$k(B)" $B$N@a$rFI$s$G$/$@$5$$!#$3$N$d$C$+$$$J#O#S$N(B
+$B5!G=$K$I$&BP=h$9$l$PNI$$$+$,:\$C$F$$$^$9!#(B
 
-     $B$$$D$G$b!"%F%-%9%H$rJQ99$7$?$1$l$I$b!"$=$l$r$b$H$KLa$7$?$$$H$-$O(BC-x u
-$B$GD>$j$^$9!#IaDL$O4V0c$($?%3%^%s%I$rL58z$K$9$kF/$-$r$7$^$9!#7+$jJV$7$F(BUNDO
-$B$r9T$J$*$&$H$9$k;~$O!"2?EY$b$=$N%3%^%s%I$r9T$J$($P=PMh$k$h$&$K$J$C$F$$$^$9!#(B
-
-       >> $B$3$N9T$r(BC-k$B$G>C$7$F2<$5$$!#$=$7$F!"(BC-x u$B$GLa$7$F2<$5$$!#(B
-
-     C-_$B$O!"(BUNDO$B$r9T$J$&!"$b$&0l$D$N%3%^%s%I$G$9!#5!G=$O!"(BC-x u$B$HF1$8$G$9!#(B
-
-     C-_$B$d(BC-x u$B$K(BUNDO$B$N2s?t$r!"M?$($k$3$H$,=PMh$^$9!#(B
+$B4{B8$N%U%!%$%k$r3+$-!"FbMF$r8+!"JT=8$9$k$3$H$,$G$-$^$9!#B8:_$7$J$$%U%!(B
+$B%$%k$r3+$/$3$H$b$G$-$^$9!#(BXEmacs $B$G?7$7$$%U%!%$%k$r:n$k$K$O<!$N$h$&$K(B
+$B$7$^$9!#%U%!%$%k$r3+$-$^$9!#:G=i$O6u$C$]$G$9$M!#J8>O$rF~NO$7$F$$$-$^$9!#(B
+$B%U%!%$%k$r%;!<%V$7$h$&$H$7$?;~$K=i$a$F?7$7$$%U%!%$%k$,:n$i$l!":#$^$GF~(B
+$BNO$7$?FbMF$,$=$l$K=q$-9~$^$l$^$9!#$=$l0J9_$O!"$"$J$?$O4{B8$N%U%!%$%k(B
+$B!J$?$C$?:#:n$i$l$?%U%!%$%k!K$rJT=8$7$F$$$k$H;W$C$F2<$5$$!#(B
 
 
-$B%U%!%$%k(B
-========
+$B!v%P%C%U%!(B
+==========
+
+$B#2$DL\$N%U%!%$%k$r(B C-x C-f $B$G3+$$$F$b!":G=i$N%U%!%$%k$O(B XEmacs $BFbIt$K(B
+$B;D$C$?$^$^$G$9!#$=$C$A$N%U%!%$%k$KLa$k$K$O$b$&0lEY(B C-x C-f $B$G$=$N%U%!(B
+$B%$%k$r3+$1$P$h$$$N$G$9!#$3$&$d$C$F!"4v$D$b$N%U%!%$%k$r(B XEmacs $B$G3+$/$3(B
+$B$H$,$G$-$^$9!#(B
 
-     $B%F%-%9%H$X$NJQ99$r1J5WE*$K$9$k$?$a$K$O!"$=$l$r%U%!%$%k$KJ]B8$7$J$1$l$P(B
-$B$J$j$^$;$s!#J]B8$5$l$J$$$H!"$[$I$3$7$?JQ99$O!"(BEmacs$B$r=*N;$9$k$HF1;~$K<:$o$l(B
-$B$F$7$^$$$^$9!#(B
+>> "foo" $B$H$$$&L>$N%U%!%$%k$r:n$j$^$7$g$&!#(BC-x C-f foo <Return> $B$G$9!#(B
+   $B2?$+J8>O$rF~$l!"JT=8$7!"(BC-x C-s $B$G(B "foo" $B$r%;!<%V$7$F2<$5$$!#(B
+   $B:G8e$K(B C-x C-f TUTORIAL.ja <Retrun> $B$H%?%$%W$7(B
+   $BF~Lg%,%$%I$KLa$j$^$7$g$&!#(B
+   
+XEmacs $B$O%U%!%$%k$NFbMF$r%P%C%U%!!J(Bbuffer$B!K$H8F$P$l$k$b$N$NCf$K3JG<$7(B
+$B$F$$$^$9!#%U%!%$%k$r3+$/$H?7$7$$%P%C%U%!$,$G$-$^$9!#(BXEmacs $B$,8=:_;}$C(B
+$B$F$$$k%P%C%U%!$N%j%9%H$r8+$k$K$O!"<!$N$h$&$K%?%$%W$7$^$9!#(B
+
+	C-x C-b   List buffers
 
-     $B$$$^8+$F$$$k%U%!%$%k$KBP$7$F!"$"$J$?$NJT=8$r9T$C$?$b$N$r=q$-9~$_$^$9!#(B
-$B$$$^8+$F$$$k%U%!%$%k$H$O!"4JC1$K$$$($PJT=8$7$F$$$k%U%!%$%k<+BN$N$3$H$G$9!#(B
+>> C-x C-b $B$r;n$7$F$_$^$7$g$&!#(B
+
+$B3F%P%C%U%!$,$I$s$JIw$KL>A0$d$=$l$,3+$$$F$$$k%U%!%$%k$KBP$9$k%U%!%$%kL>(B
+$B$r;}$C$F$$$k$+8+$F2<$5$$!#%U%!%$%k$r3+$$$F$$$J$$%P%C%U%!$b$"$j$^$9!#$?(B
+$B$H$($P!"(B"*Buffer List*" $B$H$$$&L>$N%P%C%U%!$O$I$s$J%U%!%$%k$b3+$$$F$$$^(B
+$B$;$s!#$3$l$O%P%C%U%!$N%j%9%H$rFbMF$H$9$k%P%C%U%!$G!"(BC-x C-b $B$G:n$i$l$?(B
+$B$b$N$G$9!#(BXEmacs $B$N%&%#%s%I%&Fb$K$"$k%F%-%9%H$O$I$l$b!"$$$:$l$+$N%P%C(B
+$B%U%!$N0lIt$G$9!#(B
+
+>> C-x 1 $B$H%?%$%W$7$F%P%C%U%!%j%9%H$r>C$7$^$7$g$&!#(B
 
-     $B$"$J$?$,%U%!%$%k$r%;!<%V!JJ]B8$9$k!K$9$k$^$G!":#$^$G$NJQ99$OJT=8$7$F$$(B
-$B$k%U%!%$%k$K=q$-9~$^$l$k;v$O$"$j$^$;$s!#$=$l$O!"$"$J$?$,$=$N$h$&$K9T$$$?$/(B
-$B$J$$$N$K!"ESCf$^$GJQ99$r2C$($?$b$N$,>!<j$K=q$-9~$^$l$k$h$&$J;v$,$J$$$h$&$K(B
-$B$G$9!#(B
+$B$"$k%U%!%$%k$NFbMF$K$J$s$i$+$NJQ99$r2C$(!"$=$l$+$iB>$N%U%!%$%k$r3+$$$F(B
+$B$b!":G=i$N%U%!%$%k$O$^$@%;!<%V$5$l$^$;$s!#JQ99$O(B XEmacs $B$NFbIt!"$=$N%U%!(B
+$B%$%k$KBP1~$9$k%P%C%U%!$NCf$K;D$C$?$^$^$G$9!##2HVL\$N%U%!%$%k$N%P%C%U%!(B
+$B$r:n$C$?$j!"JT=8$7$?$j$7$F$b!":G=i$N%U%!%$%k$N%P%C%U%!$K$O2?$N1F6A$b$"(B
+$B$j$^$;$s!#$3$l$O$H$F$bLr$KN)$A$^$9$,!":G=i$N%U%!%$%k$N%P%C%U%!$r%;!<%V(B
+$B$9$k2?$+JXMx$JJ}K!$,I,MW$@$H$$$&$3$H$G$b$"$j$^$9!#(B C-x C-s $B$G%;!<%V$9(B
+$B$k$?$a$K(B C-x C-f $B$G85$N%P%C%U%!$KLa$k$N$O$OLq2p$G$9!#$=$3$G<!$N%3%^%s(B
+$B%I$r;H$$$^$9!#(B
 
-     $B%;!<%V$r9T$C$?8e$G$5$(JQ99$7$?$b$N$,4V0c$C$F$$$?;~$N$?$a$K(BEmacs$B$OL>A0(B
-$B$rJQ$($F%*%j%8%J%k$N%U%!%$%k$r;D$7$^$9!#(B
+     C-x s   $B2?$l$+$N%P%C%U%!$r%;!<%V$9$k(B
+
+C-x s $B$O!"$^$@%;!<%V$7$F$$$J$$JQ99$,$"$k%P%C%U%!$=$l$>$l$K$D$$$F!"$=$l(B
+$B$r%;!<%V$9$k$+$I$&$+$rJ9$$$F$-$^$9!#(B
 
-$BHw9M(B:          $B$^$?!"(BEmacs$B$OITB,$N;vBV$KBP$7!"0lDj$N%?%$%_%s%0$4$H$K<+F0E*(B
-               $B$KJT=8$7$F$$$k%U%!%$%k$NFbMF$rL>A0$rJQ$($?%U%!%$%k$K%;!<%V$7(B
-               $B$^$9!#$3$l$K$h$C$F!"K|0l$N>l9g$O9T$C$?$NJQ99$KBP$7:G>.8B$NHo(B
-               $B32$G:Q$`$h$&$K$J$C$F$$$^$9!#(B
+>> $B0l9T%F%-%9%H$rF~NO$7$F$+$i(B C-x s $B$H%?%$%W$7$F2<$5$$!#(B
+   TUTORIAL.ja $B$H$$$&%P%C%U%!$r%;!<%V$9$k$+$I$&$+J9$$$F$/$k$O$:$G$9!#(B
+   $B!V$O$$!W$HEz$($k$?$a$K(B "y" $B$H%?%$%W$7$F2<$5$$!#(B
+
+$B!v%a%K%e!<$r;H$&(B
+----------------
 
-     $B2hLL$N2<$NJ}$r8+$k$H!"$3$N$h$&$J46$8$G%b!<%I%i%$%s$,I=<($5$l$F$$$k$H;W(B
-$B$$$^$9!#(B
+$B$b$7(B X $BC<Kv$r;H$C$F$$$l$P!"(BXEmacs $B$N2hLL$N:G>eIt$K%a%K%e!<%P!<$,$"$k$3(B
+$B$H$K5$IU$/$G$7$g$&!#$3$N%a%K%e!<%P!<$r;H$C$F!V%U%!%$%k$r3+$/!W$H$$$&$h(B
+$B$&$J$[$H$s$I$N$h$/;H$&(B XEmacs $B$N%3%^%s%I$r;HMQ$9$k$3$H$,$G$-$^$9!#FCDj(B
+$B$N%3%^%s%I$r;HMQ$9$k$?$a$NBG80$r3P$($J$/$F$h$$$N$G!":G=i$O$3$NJ}$,4JC1(B
+$B$K;W$($k$G$7$g$&!#(BXEmacs $B$K47$l$F$/$k$K$7$?$,$C$F!"%-!<%\!<%I$N%3%^%s(B
+$B%I$r;H$&$3$H$,4JC1$K$J$C$F$/$k$G$7$g$&!#BP1~$9$k%-!<%\!<%I%3%^%s%I$,%3(B
+$B%^%s%I$N<!$K=q$+$l$F$$$k$+$i$G$9!#(B
 
-
-($BNc(B)  [--]J:--**-Mule: MULE.tut     (Fundamental) ---55%--------------
+$B%a%K%e!<%P!<$K$O%-!<%\!<%I$G40A4$KF1Ey$KBP1~$9$k$b$N$,L5$$9`L\$,B?$/$"(B
+$B$j$^$9!#Nc$($P!"(BBuffers $B%a%K%e!<$O:G6a;H$o$l$?=g$KA*Br2DG=$J%P%C%U%!$N(B
+$B0lMw$rI=<($7$^$9!#C1$K(B Buffers $B%a%K%e!<$GL>A0$r8+$D$1$FA*Br$9$k$@$1$G(B
+$B$I$N%P%C%U%!$K$G$b0\F0$G$-$^$9!#(B
 
 
-     $B$3$N(BEmacs$B%A%e!<%H%j%"%k$N%3%T!<$O(BMULE.tut$B$H8F$P$l$F$$$^$9!#%U%!%$%k$r(B
-$B%U%!%$%s%I!J%U%!%$%k$r8+$D$1$F%P%C%U%!$KFI$_9~$`$3$H!K$9$k$H!"(BMULE.tut$B$NIt(B
-$BJ,$KI=<($5$l$^$9!#Nc$($P!"(Bnew-file$B$H$$$&L>A0$N%U%!%$%k$r%U%!%$%s%I$7$?$J$i(B
-$B$P!"(B"Mule: new-file"$B$H$$$&%b!<%I%i%$%s$K$J$k$G$7$g$&!#(B
-
-$BCm0U!'(B         $B%b!<%I%i%$%s$K$D$$$F$O8e$[$I@bL@$7$^$9!#>/$7$*BT$A$r!#(B
-
-     $B%U%!%$%k$r%U%!%$%s%I$7$?$j!"%;!<%V$7$?$j$9$k%3%^%s%I$O!"$3$l$^$G$N$b$N(B
-$B$H$O0c$$!"#2$D$NJ8;z$+$i$J$C$F$$$^$9!#(BC-x  $B$KB3$$$FF~NO$9$kJ8;z$,!"%U%!%$%k(B
-$B$KBP$7$F9T$&A`:n$rI=$7$^$9!#(B
+$B!v%^%&%9$r;H$&(B
+--------------
 
-     $B$b$&0l$D$3$l$^$G$N$b$N$H0c$&E@$O!"%U%!%$%s%I$N;~!"%U%!%$%kL>$r(BEmacs$B$K(B
-$BLd$o$l$^$9!#$3$N$3$H$r!"C<Kv$+$i0z?t$rFI$_9~$s$G$/$k%3%^%s%I$H8@$C$F$$$^$9!#(B
-
-$BCm0U!'(B         $B$3$N>l9g$O%U%!%$%kL>$G$9!#(B
+X $B$N2<$G<B9T$5$l$F$$$k$H$-$O!"(BXEmacs $B$O40A4$K%^%&%95!G=$H0lBN2=$7$F$$(B
+$B$^$9!#K>$_$N>l=j$G:8%\%?%s$r%/%j%C%/$9$k$3$H$G%F%-%9%H$N%+!<%=%k$r0\F0(B
+$B$9$k$3$H$,$G$-!"A*Br$7$?$$%F%-%9%H$r:8%^%&%9%\%?%s$G%I%i%C%0$9$k$3$H$G(B
+$B%F%-%9%H$rA*Br$9$k$3$H$,$G$-$^$9!#!J$b$7$/$O!"$=$NBe$o$j$K%F%-%9%H$rA*(B
+$BBr$9$k$?$a$K0lJ}$NC<$G:8%^%&%9%\%?%s$r%/%j%C%/$7!"B>$NC<$K0\F0$7$F(B
+Shift $B$r2!$7$J$,$i%/%j%C%/$9$k$3$H$,$G$-$^$9!#!K(B
 
-                    C-x C-f   $B%U%!%$%k$r8+$D$1$k!J%U%!%$%s%I$9$k!K(B
-
-     Emacs$B$O%U%!%$%kL>$rJ9$$$F$-$^$9!#$=$l$O!"2hLL$N2<$N9T$K8=$l$^$9!#%U%!(B
-$B%$%kL>$r;XDj$7$F$$$kItJ,$O!"%_%K%P%C%U%!$H8F$P$l$k$b$N$G$9!#%_%K%P%C%U%!$O(B
-$B$3$NMM$J;H$o$lJ}$r$7$^$9!#%U%!%$%kL>$KB3$$$F!"%j%?!<%s%-!<$r2!$9$H!"%_%K%P(B
-$B%C%U%!$KI=<($5$l$F$$$?FbMF$O$b$&I,MW$G$O$J$/$J$k$N$G>C$($F$7$^$$$^$9!#(B
+$BA*Br$7$?%F%-%9%H$r>C5n(B $B!J(Bkill$B!K(B $B$9$k$?$a$K$O!"(BC-w $B$+!"(BEdit $B%a%K%e!<$N(B
+Cut $B9`L\$r;H$($^$9!#$3$l$i$OEy2A$G$O(B*$BL5$$(B*$B$3$H$KCm0U$7$F$/$@$5$$(B: C-w
+$B$O(BXEmacs $B$NFbIt$N$_$K%F%-%9%H$rJ]B8$7$^$9$,!J>e$G@bL@$7$?(B C-k $B$H;w$F$$(B
+$B$^$9!K!"(BCut $B$O$3$l$H$H$b$K%F%-%9%H$rB>$N%"%W%j%1!<%7%g%s$,;HMQ2DG=$J(B X
+$B$N%/%j%C%W%\!<%I$K$bF~$l$^$9!#(B
 
-       >> C-x C-f$B$H%?%$%W$7$?8e$K(BC-g$B$H%?%$%W$7$F2<$5$$!#%_%K%P%C%U%!$NFbMF(B
-          $B$r<h$j>C$7!"$^$?!"(BC-x C-f$B%3%^%s%I$b<h$j>C$7$^$9!#$H8@$&Lu$G!"2?$b(B
-	  $B%U%!%$%k$r8+$D$1$k$h$&$J$3$H$O$7$^$;$s!#(B
-
-     $B:#EY$O%U%!%$%k$r%;!<%V$7$F$_$^$7$g$&!#:#$^$G$NJQ99$rJ]B8$9$k$?$a$K$O<!(B
-$B$N$h$&$J%3%^%s%I$r;H$$$^$9!#(B
-
-     C-x C-s   $B%U%!%$%k$r%;!<%V$9$k(B
+X $B$N%/%j%C%W%\!<%I$+$i%F%-%9%H$r<hF@$9$k$K$O!"(BEdit $B%a%K%e!<$N(B Paste $B9`(B
+$BL\$r;H$C$F$/$@$5$$!#(B
 
-     Emacs$B$NFbMF$O%U%!%$%k$K=q$-=P$5$l$^$9!#%;!<%V$9$k;~!"%*%j%8%J%k$N(B
-$B%U%!%$%k$O?7$7$$L>A0$r$D$1$i$l$F;D$5$l$F$$$k$N$GFbMF$O<:$o$l$^$;$s!#$=(B
-$B$N?7$7$$L>A0$O%*%j%8%J%k$N%U%!%$%k$NL>A0$K(B'~'$B$r$D$1$?$b$N$G$9!#(B
-
-     $B%;!<%V$,=*$o$k$H!"(BEmacs$B$O%;!<%V$7$?%U%!%$%k$NL>A0$rI=<($7$^$9!#(B
+$B??Cf$N%^%&%9$N%\%?%s$OIaDL$O2hLL$G8+$($F$$$k$b$N$rA*Br$9$k$?$a$K;H$o$l(B
+$B$^$9!#Nc$($P!"(BInfo$B!J%*%s%i%$%s(B XEmacs $B@bL@J8=q!K$K(B C-h i $B$+(B Help $B%a%K%e!<(B
+$B$r;H$C$FF~$l$P!"%O%$%i%$%H$5$l$?%j%s%/$r??Cf$N%\%?%s$r2!$9$3$H$GDI$&$3(B
+$B$H$,$G$-$^$9!#F1MM$K!"%U%!%$%kL>$rF~NO$7$F$$$k$H$-$K!JNc$($P!"!V%U%!%$(B
+$B%k$r3+$/!W$GF~NO$rB%$5$l$?$H$-!K(B TAB $B$GJd408uJd$rI=<($5$;$k$H!"8uJd$N(B
+$B0l$D$rA*Br$9$k$?$a$K??Cf$N%\%?%s$G%/%j%C%/$9$k$3$H$,$G$-$^$9!#(B
 
-       >> C-x C-s$B$H%?%$%W$7$F%A%e!<%H%j%"%k$N%3%T!<$r%;!<%V$7$F2<$5$$!#$=$N(B
-          $B;~!"2hLL$N2<$NJ}$K(B"Wrote ...../MULE.tut"$B$HI=<($5$l$^$9!#(B
+$B1&$N%^%&%9$N%\%?%s$O%]%C%W%"%C%W%a%K%e!<$rI=<($7$^$9$3$N%a%K%e!<$NFbMF(B
+$B$O:#$N%b!<%I$K0MB8$7!"IaDL$O;HMQ$70W$$$h$&$K#2!"#3$NNI$/;H$o$l$k%3%^%s(B
+$B%I$r4^$s$G$-$^$9!#(B
 
-     $B?7$7$$%U%!%$%k$r:n$k;~!"$"$?$+$b0JA0$+$i$"$C$?%U%!%$%k$r%U%!%$%s%I$9$k(B
-$B$h$&$J%U%j$r$7$^$9!#$=$&$7$F!"$=$N%U%!%$%s%I$7$?%U%!%$%k$K%?%$%W$7$F$$$-$^(B
-$B$9!#(B
+>> $B1&%^%&%9%\%?%s$r2!$7$F$/$@$5$$!#(B
 
-     $B%U%!%$%k$r%;!<%V$7$h$&$H$7$?;~$K=i$a$F!"(BEmacs$B$O:#$^$GJT=8$7$F$$$?FbMF(B
-$B$r%U%!%$%k$NCf$K=q$-9~$_$^$9!#(B
+$B%a%K%e!<$rI=<($5$;B3$1$k$?$a$K$O%\%?%s$r2!$7B3$1$kI,MW$,$"$j$^$9!#(B
 
 
-$B%P%C%U%!(B
-========
-
-     $B$b$7!"#2HVL\$N%U%!%$%k$r(B C-x C-f $B$G<h$j=P$9$H!"#1HVL\$N%U%!%$%k$O(BEmacs
-$BFbIt$K;D$j$^$9!#(BEmacs$BFbIt$K$"$k%U%!%$%k$+$i%F%-%9%H$rFI$_9~$s$GJ]B8$7$F$$$k(B
-$B$b$N$O%P%C%U%!$H8F$P$l$^$9!#%U%!%$%k$N<h$j=P$7$O!"(BEmacs$BFbIt$K?7$7$$%P%C%U%!(B
-$B$r:n$j$^$9!#(B
-
-     Emacs$B$NCf$KJ]B8$7$F$$$k%P%C%U%!$N%j%9%H$r8+$k$K$O!"<!$N$h$&$K%?%$%W$7(B
-$B$^$9!#(B
-
-     C-x C-b
-
-       >> C-x C-b $B$H%?%$%W$7$J$5$$!#$=$l$>$l$N%P%C%U%!$,$I$N$h$&$KL>A0$r;}(B
-          $B$C$F$$$k$+!"$=$7$F!"$I$N$h$&$J%U%!%$%kL>$r$D$1$F$$$k$N$+4Q;!$7$J(B
-          $B$5$$!#(B
-
-     $B%P%C%U%!$K$O%U%!%$%k$H0lCW$J$$$b$N$b$"$j$^$9!#$?$H$($P!"(B
-"*Buffer List*" $B$H$$$&%U%!%$%k$O$"$j$^$;$s!#$3$l$O(B C-x C-b $B$K$h$C$F:n$i$l(B
-$B$?%P%C%U%!%j%9%H$KBP$7$F$N%P%C%U%!$G$9!#(B
-
-     $B$"$J$?$,8+$F$$$k(BEmacs$B%&%#%s%I%&Fb$K$"$k!"$I$s$J%F%-%9%H$G$b!"$$$:$l$+(B
-$B$N%P%C%U%!Fb$K$"$j$^$9!#(B
-
-       >> $B%P%C%U%!%j%9%H$r>C$9$?$a(B C-x 1 $B$H%?%$%W$7$J$5$$!#(B
+$B!v%3%^%s%I$N3HD%(B
+================
 
-     $B$b$7!"$"$k%U%!%$%k$N%F%-%9%H$KJQ99$r9T$J$C$F$+$i!"B>$N%U%!%$%k$r<h$j=P(B
-$B$7$?$H$7$?$i!":G=i$N%U%!%$%k$O%;!<%V$5$l$F$$$^$;$s!#$=$NJQ99$O(BEmacs$BFbIt$N%U(B
-$B%!%$%k$HBP1~$9$k%P%C%U%!$NCf$@$1$K9T$J$o$l$F$$$^$9!#(B
-
-     $B#2HVL\$N%U%!%$%k$KBP1~$9$k%P%C%U%!$r:n$C$?$j!"%(%G%#%C%H$7$?$j$7$F$b!"(B
-$B#1HVL\$N%U%!%$%k$KBP1~$9$k%P%C%U%!$K$O2?$b1F6A$rM?$($^$;$s!#$3$l$O$H$F$b;H(B
-$B$$0W$/!"$^$?!"#1HVL\$N%U%!%$%k$KBP1~$9$k%P%C%U%!$r<h$C$F$*$/$?$a$KLr$KN)$D(B
-$BJ}K!$G$9!#(B
-
-     C-x C-s $B$G%P%C%U%!$r%;!<%V$9$k$?$a$K(B C-x C-f $B$G%P%C%U%!$r@Z$jBX$($k$N(B
-$B$OLq2p$G$9!#$=$3$G<!$N%3%^%s%I$r;H$$$^$9!#(B
-
-     C-x s   $B8=:_$"$k%P%C%U%!$r%;!<%V$9$k!#(B
-
-     C-x s $B$OFbMF$rJQ$($?%P%C%U%!A4$F$r%U%!%$%k$K%;!<%V$7$^$9!#$3$N;~!"$R$H(B
-$B$D$R$H$D$N(B($B%;!<%V$5$l$k$Y$-(B)$B%P%C%U%!$KBP$7$F!"%;!<%V$9$k$+!"$7$J$$$+$r(By$B$+(Bn
-$B$GLd$o$l$^$9!#$3$NI=<($O2hLL$N2<$N9T$KI=<($5$l$^$9!#Nc$($P!"$3$N$h$&$K$G$9!#(B
-
-             Save file  /usr/private/yours/MULE.tut? (y or n)
-
-
-
-$B%3%^%s%I$N3HD%(B
-==============
-
-     $B%(%G%#%?$K$O!"%3%s%H%m!<%k!&%-!<$d%a%?!&%-!<$GF~NO$G$-$k$b$N$h$j$b$:$C(B
-$B$HB?$/$N%3%^%s%I$,$"$j$^$9!#$3$l$i$r07$&$?$a$K!"3HD%!J(BeXtend$B!K%3%^%s%I$r(B
+XEmacs $B$K$O!"%3%s%H%m!<%kJ8;z$d%a%?J8;z$K3dEv$i$l$k$h$j$b$:$C$H$:$C$H(B
+$BB?$/$N%3%^%s%I$,$"$j$^$9!#$3$l$i$r07$&$?$a$K!"3HD%!J(BeXtend$B!K%3%^%s%I$r(B
 $B;H$$$^$9!#$=$l$K$O!"0J2<$N#2$D$N<oN`$,$"$j$^$9!#(B
 
      C-x     $BJ8;z$K$h$k3HD%!#B3$1$F0lJ8;z$rF~NO$7$^$9!#(B
      ESC x   $BL>A0$K$h$k3HD%!#B3$1$F%3%^%s%I$NL>A0$rF~NO$7$^$9!#(B
 
-     $B$3$l$i$O0lHL$K!"JXMx$@$1$l$I$b!"$3$l$^$G8+$F$-$?$b$N$[$IIQHK$K$OMQ$$$i(B
-$B$l$J$$%3%^%s%I$N$?$a$N$b$N$G$9!#(BC-x  C-f $B!J%U%!%$%s%I!K$d(B C-x C-s$B!J%;!<%V!K(B
-$B$O$3$NCg4V$G$9!#B>$K!"(BC-x C-c$B!J%(%G%#%?$N=*N;!K$b$=$&$G$9!#(B
+$B$3$l$i$O!"0lHLE*$K$OJXMx$@$1$l$I$b!"$3$l$^$G8+$F$-$?$b$N$[$I$OIQHK$KMQ(B
+$B$$$i$l$J$$%3%^%s%I$G$9!#(BC-x C-f $B!J%U%!%$%k$r3+$/!K$d(B C-x C-s$B!J%U%!%$%k(B
+$B$r%;!<%V!K$O$3$NCg4V$G$9!#B>$K!"(BC-x C-c$B!J(BXEmacs $B$r=*N;!K$b$=$&$G$9!#(B
+C-x C-c $B$K4X$7$F$O!"$=$l$^$G$K2C$($?JQ99$,L5$/$J$k$N$r?4G[$9$kI,MW$O$"(B
+$B$j$^$;$s!#(BXEmacs $B$r=*N;$5$;$kA0$KJQ99$5$l$?3F%U%!%$%k$r%;!<%V$9$k$+$I(B
+$B$&$+J9$$$F$-$^$9$+$i!#(B
 
-     C-z$B$O(BEmacs$B$rH4$1$k$N$KNI$/;H$o$l$kJ}K!$G$9!#(BEmacs$B$r=*N;$9$k$3$H$J$/!"(B
-$B0lC6!"(Bcsh$B$N%l%Y%k$KLa$k$K$O0lHVNI$$J}K!$H8@$($k$G$7$g$&!#(BC-z$B$r9T$J$o$l$F$b(B
-Emacs$B$O%9%H%C%W$7$F$$$k$@$1$G!"FbMF$,GK2u$5$l$k$H$$$&$3$H$O$"$j$^$;$s!#(B
-
-$BCm0U(B:          $B$?$@$7(BX-window$B$G9T$J$C$F$$$k>l9g!"$b$7$/$O;HMQ$7$F$$$k%7%'%k(B
-               $B$,(Bsh$B$N;~$O!"$3$N8B$j$G$O$"$j$^$;$s!#(B
+C-z $B$O!V0l;~E*$K!W(B XEmacs $B$rH4$1$k%3%^%s%I$G$9!#$^$?F1$8(B XEmacs $B%;%C%7%g(B
+$B%s$KLa$k$3$H$,$G$-$^$9!#(B
 
-
-     C-x  $B%3%^%s%I$O!"$?$/$5$s$"$j$^$9!#$9$G$K3X$s$@$b$N$O0J2<$N$b$N$G$9!#(B
+$B$=$l$,$G$-$k%7%9%F%`>e$J$i!"(BC-z $B$O(B XEmacs $B$r!VCfCG!W$5$;$^$9!#$D$^$j(B 
+XEmacs $B$r=*N;$9$k$3$H$J$/!"%3%^%s%I%7%'%k$KLa$k$3$H$,$G$-$^$9!#BgJ}$N(B
+$BI8=`E*$J%7%'%k$J$i!"(B`fg' $B%3%^%s%I$b$7$/$O(B `%emacs' $B$K$h$C$F(B XEmacs $B$r(B
+$B:F3+$G$-$^$9!#(B
 
-     C-x C-f   $B%U%!%$%k$NJT=8!J(BFind$B!K(B
-     C-x C-s   $B%U%!%$%k$NJ]B8!J(BSave$B!K(B
-     C-x C-b   $B%P%C%U%!%j%9%H$NI=<((B
-     C-x C-c   $B%(%G%#%?$r=*N;$9$k!#%U%!%$%k$NJ]B8$O!"<+F0E*$K$O9T$o$l$^$;(B
-               $B$s!#$7$+$7!"$b$7%U%!%$%k$,JQ99$5$l$F$$$l$P!"%U%!%$%k$NJ]B8(B
-               $B$r$9$k$N$+$I$&$+$rJ9$$$F$-$^$9!#J]B8$7$F=*N;$9$kIaDL$NJ}K!(B
-               $B$O!"(BC-x C-s C-x C-c $B$H$9$k$3$H$G$9!#(B
+$B!VCfCG!W5!G=$r<BAu$7$F$$$J$$%7%9%F%`$G$O!"(BC-z $B$O(B XEmacs $B$N2<$GAv$k%5%V(B
+$B%7%'%k$r:n$j!"B>$N%W%m%0%i%`$rAv$i$;$F$+$i$^$?(B XEmacs $B$KLa$k$3$H$,$G$-(B
+$B$k$h$&$K$7$^$9!#$3$N>l9gK\Ev$K(B XEmacs $B$+$iH4$1=P$k$o$1$G$O$"$j$^$;$s$N(B
+$B$G!"%7%'%k%3%^%s%I$N(B `exit' $B$,$=$N%5%V%7%'%k$+$i(B XEmacs $B$KLa$kIaDL$N$d(B
+$B$jJ}$G$9!#(B
 
-     $BL>A0$K$h$k3HD%%3%^%s%I$K$O!"$"$^$j;H$o$l$J$$$b$N$d!"FCDj$N%b!<%I$G$7$+(B
-$B;H$o$J$$$b$N$J$I$,$"$j$^$9!#Nc$H$7$F!"(B"command-apropos" $B$r$H$j$"$2$^$9!#$3(B
-$B$N%3%^%s%I$O%-!<%o!<%I$rF~NO$5$;!"$=$l$K%^%C%A$9$kA4$F$N%3%^%s%I$NL>A0$rI=(B
-$B<($7$^$9!#(BESC x $B$H%?%$%W$9$k$H!"%9%/%j!<%s$N2<$K(B "M-x" $B$,I=<($5$l$^$9!#$3$l(B
-$B$KBP$7$F!"<B9T$9$k%3%^%s%I$NL>A0!J:#$N>l9g!"(B"command-apropos"$B!K$rF~NO$7$^$9!#(B
-"command-a" $B$^$GF~NO$7$?8e%9%Z!<%9$rF~$l$l$P!"8e$NItJ,$O<+F0E*$KJd$o$l$^$9!#(B
-$B$3$N8e!"%-!<%o!<%I$rJ9$+$l$^$9$+$i!"CN$j$?$$J8;zNs$r%?%$%W$7$^$9!#$J$*!"%-!<(B
-$B%o!<%I$rF~$l$J$$$H!"A4$F$N%3%^%s%I$,I=<($5$l$^$9!#(B
+C-x C-c $B$O%m%0%"%&%H$7$h$&$H;W$&;~$K;H$&$b$N$G$9!#%a!<%k%D!<%k!J(Bmail 
+$B%3%^%s%IEy!K$d$=$NB>$NMM!9$J%"%W%j%1!<%7%g%s%W%m%0%i%`$,5/F0$7$?(B 
+XEmacs $B$+$iH4$1=P$k>l9g$K;H$&$N$b@5$7$$;H$$J}$G$9!#$3$l$i$N%W%m%0%i%`(B
+$B$O(B XEmacs $B$NCfCG$K$I$&BP=h$7$FNI$$$+CN$i$J$$$G$7$g$&$+$i!#$7$+$7$J$,$i!"(B
+$BIaDL$N>l9g$O!"%m%0%"%&%H$7$h$&$7$J$$8B$j$O(B XEmacs $B$r=*N;$5$;$k$h$j$O(B 
+C-z $B$GCfCG$5$;$kJ}$,NI$$$G$7$g$&!#(B
 
-       >> ESC x $B$r%?%$%W$7!"B3$1$F!"(B"command-apropos<Return>" $B$"$k$$$O(B
-          "command-a<Space><Return>" $B$H%?%$%W$7$^$9!#<!$K!"(B"kanji<Return>"
-          $B$H%?%$%W$7$^$9!#(B
-
-     $B8=$l$?!V%&%#%s%I%&!W$r>C$9$K$O!"(BC-x 1 $B$H%?%$%W$7$^$9!#(B
+C-x $B%3%^%s%I$O$?$/$5$s$"$j$^$9!#$3$l$^$G$K!"0J2<$r3X$S$^$7$?!#(B
 
-$B%b!<%I%i%$%s(B
-============
-
-     $B$b$7$f$C$/$j$H%3%^%s%I$rBG$C$?$J$i$P!"2hLL$N2<Dl$N%(%3!<%(%j%"$H8F$P$l(B
-$B$k>l=j$KBG$C$?$b$N$,I=<($5$l$^$9!#%(%3!<%(%j%"$O2hLL$N(B1$B$P$s2<$N9T$G$9!#$=$N(B
-$B$9$0>e$N9T$O!"%b!<%I%i%$%s$H8F$P$l$F$$$^$9!#%b!<%I%i%$%s$O$3$s$JIw$KI=<($5(B
-$B$l$F$$$k$G$7$g$&!#(B
+	C-x C-f   $B%U%!%$%k$r3+$/!J(BFind$B!K(B
+	C-x C-s   $B%U%!%$%k$N%;!<%V!J(BSave$B!K(B
+	C-x C-b   $B%P%C%U%!$N%j%9%H%"%C%W(B
+	C-x C-c   XEmacs $B$r=*N;(B
+	C-x u	  $B<h$j>C$7(B	
 
- [--]J:--**-Mule: MULE.tut     (Fundamental) ---NN%--------------
-
+$BL>A0$K$h$k3HD%%3%^%s%I$K$O!"$"$^$j;H$o$J$$$b$N$d!"FCDj$N%b!<%I$G$7$+;H(B
+$B$o$J$$$b$N$,$"$j$^$9!#$?$H$($P(B replace-string $B$G$9$,!"$3$l$OJ8;zNs$rCV(B
+$B49$9$k$b$N$G$9!#(BM-x $B$r%?%$%W$9$k$H!"(BXEmacs $B$O2hLL$N:G2<9T$K(B M-x $B$HI=<((B
+$B$7F~NO$rB%$9$N$G!"$=$3$K%3%^%s%I$NL>A0!J$3$N>l9g(B "replace-string"$B!K$r(B
+$BF~$l$J$1$l$P$J$j$^$;$s!#(B"repl s<TAB>" $B$H$@$1%?%$%W$9$k$H(B XEmacs $B$,%3%^(B
+$B%s%IL>$rJd40$7$F$/$l$^$9!#%3%^%s%IL>$rF~$l$?$i(B <Return> $B$rBG$C$F2<$5$$!#(B
 
-$BCm0U(B:           NN%$B$N(BNN$B$O?t;z$,F~$C$F$$$^$9!#$"$J$?$,;H$C$F$$$k(BEmacs$B$N%b!<(B
-               $B%I%i%$%s$H0c$&$+$bCN$l$J$$$1$I!"92$F$J$$$h$&$K!#Nc$($P!";~4V(B
-               $B$d(Buptime$B$,I=<($5$l$F$$$k$N$O!"(Bdisplay-time$B$H$$$&5!G=$,F0$$$F(B
-               $B$$$k$+$i$G$9!#(B
-
-     $B$3$N9T$K$h$C$FB?$/$NM-MQ$J>pJs$,F@$i$l$^$9!#(B
+"Replace string" $B%3%^%s%I$K$O0z?t$,Fs$DI,MW$G$9!#$I$NJ8;zNs$r$I$&CV49(B
+$B$9$k$+$G$9!#3F0z?t$rF~NO$9$k$?$S$K(B <Return> $B$rBG$C$F2<$5$$!#(B
 
 
-     $B:#!"$"$J$?$,8+$F$$$k%U%!%$%kL>$rI=<($7$F$$$^$9!#(BNN%$B$O8=:_%9%/%j!<%s>e(B
-$B$K%U%!%$%k$N0lHV>e$+$i2?%Q!<%;%s%HL\$,I=<($5$l$F$$$k$+$r<($7$F$$$^$9!#%U%!(B
-$B%$%k$N0lHV:G=i$rI=<($7$F$$$k$J$i$P!"(B--Top--$B$HI=<($5$l$F$^$9!#%U%!%$%k$N0lHV(B
-$B:G8e$rI=<($7$F$$$k$J$i$P!"(B--Bot--$B$HI=<($5$l$^$9!#2hLL$NCf$K%U%!%$%k$NA4$F$,(B
-$BI=<($5$l$F$$$k$J$i$P!"(B--All--$B$HI=<($5$l$^$9!#(B
-
-     $B%b!<%I%i%$%s$N>.3g8L$NCf$O!":#$I$s$J%b!<%I$KF~$C$F$$$k$+$r<($7$F$$$^$9!#(B
-$B8=:_$O!"%G%U%)%k%H$N(BFundamental$B$KF~$C$F$$$^$9!#$3$l$b%a%8%c!<%b!<%I$N0lNc$G(B
-$B$9!#(B
-
-     Emacs$B$O(BLisp mode$B$d(BText mode$B$N$h$&$J$3$H$J$k%W%m%0%i%`8@8l$d%F%-%9%H$K(B
-$BBP$7$F%(%G%#%C%H$r9T$&$?$a$N4v$D$+$N%a%8%c!<%b!<%I$r;}$C$F$$$^$9!#$I$s$J;~(B
-$B$G$bI,$:$$$:$l$+$N%a%8%c!<%b!<%I$N>uBV$K$J$C$F$$$^$9!#(B
-
-     $B$=$l$>$l$N%a%8%c!<%b!<%I$O4v$D$+$N%3%^%s%I$rA4$/0c$&?6$kIq$$$K$7$F$7$^(B
-$B$$$^$9!#Nc$r>e$2$F$_$^$7$g$&!#%W%m%0%i%`$NCf$K%3%a%s%H$r:n$k%3%^%s%I$,$"$j(B
-$B$^$9!#%3%a%s%H$r$I$NMM$J7A<0$K$9$k$+$O!"3F%W%m%0%i%`8@8l$K$h$C$F0c$$$^$9$,!"(B
-$B$=$l$>$l$N%a%8%c!<%b!<%I$O!"$-$A$s$HF~$l$F$/$l$^$9!#(B
+>> $B%+!<%=%k$r$3$3$+$i#29T2<$N6u9T$K0\F0$5$;$F2<$5$$!#(B
+   M-x repl s<Return>changed<Return>Altered<Return> $B$H%?%$%W$7$^$7$g$&!#(B
 
-     $B$=$l$>$l$N%a%8%c!<%b!<%I$KF~$k$?$a$N%3%^%s%I$O%b!<%IL>$N3HD%$5$l$?$b$N(B
-$B$K$J$C$F$$$^$9!#Nc$($P!"(BM-x fundamental-mode$B$O(BFundamental$B$KF~$k$?$a$N$b$N$G(B
-$B$9!#(B
-
-     $B$b$7!"1Q8l$r%(%G%#%C%H$9$k$J$i$P!"(BText mode$B$KF~$j$^$9!#(B
-
-       >> M-x text-mode <Retuen>$B$H%?%$%W$7$J$5$$!#(B
+   $B$3$N9T$,$I$&JQ$o$k$+(B(changed)$B8+$^$7$g$&!#$"$J$?$O%+!<%=%k0J9_A4It$N(B 
+   c-h-a-n-g-e-d $B$H$$$&8l$r(B "altered" $B$KJQ$($?$N$G$9!#(B
 
-     $B8=:_$N%a%8%c!<%b!<%I$K$D$$$F$N%I%-%e%a%s%H$r8+$?$$;~$O!"(BC-h m$B$H%?%$%W(B
-$B$7$^$9!#(B
 
-       >> C-h m $B$r;H$C$F(BText mode$B$H(BFundamental mode$B$N0c$$$rD4$Y$J$5$$!#(B
-
-       >> C-x 1$B$G%I%-%e%a%s%H$r2hLL$+$i>C$7$J$5$$!#(B
-
-     $B:8C<$N(B '[--]' $B$O8=:_$N%-!<F~NO$N%b!<%I$r<($7$F$$$^$9!#(B[--] $B$N;~$K$O(B
-$B1Q8l%"%k%U%!%Y%C%H$,$=$N$^$^F~NO$G$-$^$9!#F~NO%b!<%I$K$D$$$F$N>\$7$$@bL@$O(B
-$B!V$?$^$4!W$N%^%K%e%"%k$rD4$Y$F2<$5$$!#(B
+$B!v<+F0%;!<%V(B
+============
 
-     $B$=$N$9$01&$K$O%3!<%IBN7O(B (coding-system) $B$K4X$9$k%U%i%0$N>uBV$,I=(B
-$B<($5$l$F$$$^$9!#(BMule $B$O!"%U%!%$%kF~=PNO!"F~NO!"2hLL=PNO$K$D$$$F!"$=$l$>$lFH(B
-$BN)$K%3!<%IBN7O$r;XDj$5$;$k$3$H$,=PMh$^$9$,!"DL>o$O%U%!%$%kMQ$N%3!<%IBN7O$N(B
-$B%K!<%b%K%C%/$N$_I=<($7$F$$$^$9!#(B
-
-       >> $B%b!<%I%i%$%s>e$K(B"J:","S:",$B$b$7$/$O(B "E:"$B$,I=<($5$l$F$$$k$+$I$&$+3N(B
-	  $BG'$7$J$5$$!#(B
-
-     $B:G=i$N0lJ8;z$,%3!<%IBN7O$N%K!<%b%K%C%/!"<!$N(B ':' $B$,8=:_1Q8l0J30$NJ8;z(B
-$B!JF|K\8l!"Cf9q8l$J$I!K$b$A$c$s$HI=<($9$k$H$$$&$3$H$r<($7$F$$$^$9!#(BJ$B$O(BJUNET 
-$B$G;H$o$l$F$$$k(B JIS $B%3!<%I!"(BS $B$O(B Shift-JIS$B!"(BE $B$OF|K\8l(BEUC $B$r<($7$F$$$^$9!#(B 
-$BB?9q8l$NI=<($NM-L5$O(B C-x C-k t $B$G(B ON/OFF$B$N%H%0%k$,$G$-$^$9!#(B
-
-     $B<!$NNc$O!"0lEYB?9q8lI=<($r(BOFF$B$7$F$+$i!"$b$&0lEY(BON$B$r9T$C$F$_$^$9!#(B
-
-       >> C-x C-k t$B$r(B2$BEY9T$$$J$5$$!#(B
+$B%U%!%$%k$KJQ99$r2C$($F$^$@%;!<%V$7$F$$$J$$>l9g!"$=$l$i$NJQ99$O7W;;5!$,(B
+$B%/%i%C%7%e$9$k$H<:$o$l$F$7$^$&2DG=@-$,$"$j$^$9!#$=$&$$$&;vBV$rHr$1$k$?(B
+$B$a!"JT=8Cf$N3F%U%!%$%k$K$D$$$F<+F0%;!<%V%U%!%$%k$,Dj4|E*$K=q$+$l$^$9!#(B
+$B<+F0%;!<%V%U%!%$%k$OF,$H$*?,$K(B # $B$,IU$$$F$$$^$9!#Nc$($P(B "hello.c" $B$H$$(B
+$B$&%U%!%$%k$N<+F0%;!<%V%U%!%$%k$O(B "#hello.c#" $B$G$9!#DL>o$NJ}K!$G%U%!%$(B
+$B%k$r%;!<%V$7$?$H$-$K!"$=$&$$$&<+F0%;!<%V%U%!%$%k$O>C$5$l$^$9!#(B
 
-     $BF~NO%b!<%I$,(BJIS$B%3!<%I$N@_Dj$H$J$C$F$$$k;~!"$b$7$"$J$?$N;H$C$F$$$kC<Kv(B
-$B$K%a%?!&%-!<$,IU$$$F$$$k$J$i!"%(%9%1!<%W!&%-!<$NBe$o$j$K$=$l$r;H$&$3$H$,=P(B
-$BMh$^$9!#$=$N;~!"%a%?!&%-!<$N;H$$J}$O%3%s%H%m!<%k!&%-!<$HF1MM$K2!$7$J$,$iJ8(B
-$B;z$r%?%$%W$7$^$9!#(BESC <$BJ8;z(B>$B$b(BM-<$BJ8;z(B>$B$bF1$8F/$-$r$7$^$9!#:#$^$G$N@bL@$G(BESC
-<$BJ8;z(B>$B$H9T$J$C$F$$$?$H$3$m$,!"(BM-<$BJ8;z(B>$B$H$J$j$^$9!#Cm0U$7$J$1$l$P$J$i$J$$$N(B
-$B$O!"%7%U%H(BJIS$B$d(BEUC$B%3!<%I$N;~$O;HMQ$G$-$^$;$s!#(B
-
-     $B%3!<%IBN7O$N$N@Z$jBX$($O!"3F!9$N%P%C%U%!$KBP$7$F$N$_M-8z$G$9!#$=$l$>$l(B
-$B$N!"%3!<%IBN7O;XDj$K$D$$$F$O!"(BC-h a coding-system <Return>$B$G8+$k$3$H(B
-$B$,=PMh$^$9!#(B
+$B7W;;5!$,%/%i%C%7%e$7$?>l9g!"<+F0%;!<%V$5$l$?JT=8$r2sI|$5$;$k$3$H$,$G$-(B
+$B$^$9!#IaDL$K%U%!%$%k!JJT=8$7$F$$$?$b$N$G!"<+F0%;!<%V%U%!%$%k$8$c$"$j$^(B
+$B$;$s!K$r3+$-!"$=$l$+$i(B M-x recover file<Return> $B$H%?%$%W$9$k$N$G$9!#3N(B
+$BG'$r5a$a$F$-$^$9$N$G!"(Byes<Return> $B$H%?%$%W$7<+F0%;!<%V$5$l$?%G!<%?$r2s(B
+$BI|$7$^$9!#(B
 
-       >> C-h a coding-system <Return>$B$G=P$F$/$k%I%-%e%a%s%HCf$N!"(B
-	  set-display-coding-system, set-file-coding-system,
-	  set-process-coding-system $B$N@bL@$rFI$_$J$5$$!#(B
 
-$B8!:w(B
-=====
+$B!v%(%3!<%(%j%"(B
+==============
 
-     $BJ8;zNs$r!"%U%!%$%kFb$G!"A0J}Kt$O8eJ}$K!"C5$9;v$,$G$-$^$9!#8!:w$r;O$a$k(B
-$B%3%^%s%I$O!"%+!<%=%k0LCV0J9_$r8!:w$9$k$J$i$P(B  C-s$B!"%+!<%=%k0LCV0JA0$J$i$P(B
-C-r $B$G$9!#(BC-s $B$r%?%$%W$9$k$H!"%(%3!<%(%j%"$K(B "I-search:"$B$H$$$&J8;zNs$,%W%m(B
-$B%s%W%H$H$7$FI=<($5$l$^$9!#(BESC$B$r2!$9$H!"=*N;$G$-$^$9!#(B
+$B$b$7$f$C$/$j$H%3%^%s%I$rBG$C$?$J$i$P!"2hLL$N2<$N%(%3!<%(%j%"$H8F$P$l(B
+$B$k>l=j$KBG$C$?$b$N$,I=<($5$l$^$9!#%(%3!<%(%j%"$O2hLL$N:G2<9T$G$9!#(B
 
 
-       >> C-s$B$G8!:w$,;O$^$j$^$9!#$=$l$+$i!"$f$C$/$j$H#1J8;z$:$D(B"cursor"$B$H$$(B
-          $B$&C18l$rF~NO$7$^$9!##1J8;zF~NO$9$k$4$H$K!"%+!<%=%k$O!"$I$s$JF0$-(B
-          $B$r$7$^$9$+(B?
+$B!v%b!<%I%i%$%s(B
+==============
+
+$B%(%3!<%(%j%"$N$9$0>e$N9T$O!"%b!<%I%i%$%s$H8F$S$^$9!#%b!<%I%i%$%s$O$3$s$JIw$K8+$($k$G$7$g$&!#(B
+
+ISO7-----XEmacs: TUTORIAL.ja       (Fundamental)--L670--58%----------------
+
+$B$3$N9T$O(B XEmacs $B$N>uBV5Z$SJT=8Cf$NJ8>O$K$D$$$FM-1W$J>pJs$rM?$($F$/$l$^(B
+$B$9!#(B
 
-       >> $B$b$&#1EY(B C-s $B$r%?%$%W$9$k$H!"<!$N(B"cursor"$B$r8+$D$1$i$l$^$9!#(B
+$B%U%!%$%kL>$K$D$$$F$O$b$&J,$C$F$$$^$9$M!#$=$l$O$"$J$?$,3+$$$?%U%!%$%k$G(B
+$B$9!#(B-NN%-- $B$OJ8>OCf$N8=:_0LCV$r<($7$F$$$^$9!#J8>O$N(B NN% $B$,2hLL:G>eCJ$h(B
+$B$jA0$K$"$k$H$$$&$3$H$G$9!#$b$7J8>O$N:G=i$N9T$,2hLL$K$"$k;~$K$O(B --00%-- 
+$B$NBe$j$K(B --Top-- $B$HI=<($7$^$9!#$b$7J8>O$N:G8e$N9T$,2hLL$K$"$k;~$K$O(B 
+--Bot-- $B$HI=<($7$^$9!#$b$72hLL$KA4It<}$^$C$F$7$^$&$h$&$JC;$$J8>O$r8+$F(B
+$B$$$k$H$-$K$O(B --All-- $B$HI=<($7$^$9!#(B
 
-       >> <Delete>$B$r#42sF~NO$7$F!"%+!<%=%k$NF0$-$r8+$J$5$$!#(B
-
-       >> ESC$B$r2!$7$F!"=*N;$7$^$9!#(B
+$B3g8L$K0O$^$l$?ItJ,$O$I$&$JJT=8%b!<%I$K$$$k$+$r<($7$^$9!#%G%U%)%k%H$O(B 
+"Fundamental" $B$H$$$&%b!<%I!"$3$l$,8=:_$N%b!<%I$G$9!#$3$l$O!V%a%8%c!<%b!<(B
+$B%I!J(Bmajor mode$B!K!W$N0lNc$G$9!#(B
 
-     $BC5$7$?$$J8;zNs$r%?%$%WCf$G$b!"%?%$%W$7$?J8;zItJ,$@$1$G!"8!:w$r;O$a$^$9!#(B
-$B<!$NJ8;z$rC5$9$K$O!":F$S(BC-s$B$r%?%$%W$7$^$9!#$b$7!"J8;zNs$,B8:_$7$J$+$C$?$i!"(B
-$B%a%C%;!<%8$,I=<($5$l$^$9!#(BC-g $B$G$b=*N;$G$-$^$9!#(B
+XEmacs $B$K$OB?$/$N<oN`$N%a%8%c!<%b!<%I$,$"$j$^$9!#(BLisp mode $B$d(BText mode 
+$B$N$h$&$K!"$I$s$J%W%m%0%i%`8@8l$d$I$s$J<oN`$NJ8>O$rJT=8Cf$+$r0UL#$9$k$b(B
+$B$N$b$"$j$^$9!#$$$D$G$bI,$:$$$:$l$+$N%a%8%c!<%b!<%I$N>uBV$K$J$C$F$$$^$9!#(B
+$B$I$N%a%8%c!<%b!<%I$K$$$k$N$+$O!"%b!<%I%i%$%s$N8=:_$O(B "Fundamental" $B$H(B
+$BI=<($7$F$$$kItJ,$r8+$l$PJ,$j$^$9!#(B
 
-     $B8!:w<B9TCf$K(B<Delete>$B$rF~NO$9$k$H!"8!:wJ8;zNs$N#1HV8e$m$NJ8;z$,>C$($^$9!#(B
-$B$=$7$F!"%+!<%=%k$O!"A02s$N0LCV$KLa$j$^$9!#$?$H$($P!"(B"cu"$B$H%?%$%W$7$F!":G=i(B
-$B$N(B"cu"$B$N0LCV$K%+!<%=%k$,F0$$$?$H$7$^$9!#$3$3$G(B<Delete>$B$rF~NO$9$k$H!"%5!<%A(B
-$B%i%$%s$N(B'u'$B$,>C$(!"%+!<%=%k$O!"(B'u'$B$r%?%$%W$9$kA0$K!"%+!<%=%k$,$"$C$?(B'c'$B$N0L(B
-$BCV$K!"0\F0$7$^$9!#(B
+$B3F%a%8%c!<%b!<%I$O4v$D$+$N%3%^%s%I$K0[$J$k?6$kIq$$$r$5$;$^$9!#Nc$($P!"(B
+$B%W%m%0%i%`%j%9%HCf$K%3%a%s%H$rF~$l$k$?$a$N%3%^%s%I$,$"$j$^$9!#%3%a%s%H(B
+$B$N7A<0!J%7%s%?%C%/%9!K$O!"%W%m%0%i%`8@8l$K$h$C$F0[$J$j!"%a%8%c!<%b!<%I(B
+$B$O!"$=$l$KBP1~$9$k8@8l$K9g$C$?7A<0$G%3%a%s%H$rA^F~$7$^$9!#3F%a%8%c!<%b!<(B
+$B%I$O3HD%%3%^%s%I$NL>A0$K$J$C$F$$$^$9!#$D$^$j$=$N3HD%%3%^%s%I$r;H$C$F%a(B
+$B%8%c!<%b!<%I$r@Z$j49$($k$N$G$9!#Nc$($P!"(BM-x fundamental-mode $B$H$$$&$N(B
+$B$O(B Fundamental $B%b!<%I$K@Z$j49$($k$?$a$N%3%^%s%I$G$9!#(B
 
-     $B8!:w<B9TCf$K!"(BC-s $B$d(B C-r $B0J30$N%3%s%H%m!<%kJ8;z$r%?%$%W$9$k$H!"8!:w$O(B
-$B=*N;$7$^$9!#(B
+$B$b$7!"DL>o$N1Q8l$dF|K\8l$NJ8>O!J$3$N%U%!%$%k$N$h$&$J!K$rJT=8$9$k$N$J$i(B
+$B$P!"(BText mode $B$r;H$$$^$7$g$&!#(B
+
+>> M-x text-mode <Retuen> $B$H%?%$%W$7$F$_$F2<$5$$!#(B
+
+$B?4G[$7$J$$$G!#$3$l$^$G3X$s$@%3%^%s%I$O$?$$$7$FJQ$o$j$^$;$s$+$i!#$@$1$I!"(B
+M-f $B$d(B M-b $B$,%"%]%9%H%m%U%#(B "'" $B$rC18l$N0lIt$@$H2r<a$9$k$h$&$K$J$C$?$N(B
+$B$,J,$k$G$7$g$&!#0JA0$N(B Fundamental $B%b!<%I$G$O(B M-f $B$d(B M-b $B$O(B "'" $B$rC18l(B
+$B$N6h@Z$j$H8+$J$7$F$$$^$7$?!#(B
 
-     C-s $B$O!"8=:_$N%+!<%=%k0LCV0J9_$K=P$F$/$k8!:wJ8;zNs$rC5$7$^$9!#$b$7!"A0(B
-$B$NJ}$rC5$7$?$+$C$?$i!"(BC-r  $B$r%?%$%W$9$k$3$H$G!"5UJ}8~8!:w$,$G$-$^$9!#(BC-s $B$H(B
-C-r $B$O!"8!:w$NJ}8~$,H?BP$J$@$1$G!"A4$FF1$8F/$-$r$7$^$9!#(B
+$B%a%8%c!<%b!<%I$O$3$N$h$&$K:3:Y$J0c$$$r@8$_$^$9!#Bg35$N%3%^%s%I$O$I$N%a(B
+$B%8%c!<%b!<%I$G$bF1$8F/$-$r$7$^$9$,!"<B:]$NF0$-$O>/$7$@$1$3$H$J$k$N$G$9!#(B
 
-$B%j%+!<%7%V(B $B%(%G%#%F%#%s%0(B $B%l%Y%k(B
+$B8=:_$N%a%8%c!<%b!<%I$K$D$$$F$N@bL@J8$r8+$k$K$O(B C-h m $B$H%?%$%W$7$^$9!#(B
+
+>> C-u C-v $B$r0lFsEY$d$C$F$3$N9T$r2hLL$N>e$NJ}$K;}$C$F$$$-$^$7$g$&!#(B
+>> C-h m $B$H%?%$%W$7!"(BText mode $B$H(B Fundamental mode $B$N0c$$$r$_$^$7$g$&!#(B
+>> q $B$G(B Text mode $B$N@bL@J8$r2hLL$+$i>C$7$^$7$g$&!#(B
 
-     $B$H$-$I$-!"!JITK\0U$K!K%j%+!<%7%V(B $B%(%G%#%F%#%s%0(B $B%l%Y%k$H8F$P$l$k>uBV$K(B
-$BF~$k$3$H$,$"$j$^$9!#%a%8%c!<%b!<%I$N>.3g8L(B'()'$B$N2s$j$rCf3g8L(B'[]'$B$G0O$s$@$b(B
-$B$N$,%b!<%I%i%$%s>e$KI=<($5$l$^$9!#Nc$($P!"(B(Fundamental)$B$HI=<($5$l$kBe$o$j$K(B
-[(Fundamental)]$B$N$h$&$K$J$j$^$9!#(B
+$B%a%8%c!<%b!<%I$,!V%a%8%c!<!W$H$$$&$+$i$K$O!V%^%$%J!<%b!<%I!W$b$"$j$^$9!#(B
+$B%^%$%J!<%b!<%I$O%a%8%c!<%b!<%I$NBe$o$j$K$J$k$b$N$G$O$J$/!"$=$l$r$A$g$C(B
+$B$H$@$1=$@5$9$k$b$N$G$9!#3F%^%$%J!<%b!<%I$O!"%a%8%c!<%b!<%I$dB>$N%^%$%J!<(B
+$B%b!<%I$K1F6A$rM?$($:$K!"$=$l$@$1$r%*%s%*%U$G$-$^$9!#$D$^$j!"%^%$%J!<%b!<(B
+$B%I$rA4$/;H$o$J$+$C$?$j!"0l8D$@$1;H$C$?$j!"$$$/$D$+$rF1;~$K;H$C$?$j$G$-(B
+$B$k$N$G$9!#(B
 
-$BCm0U(B:          $B$3$3$G$O%j%+!<%7%V(B $B%(%G%#%F%#%s%0(B $B%l%Y%k<+BN$K$D$$$F$O@bL@$7(B
-               $B$^$;$s!#(B
+$BDL>o$NJ8>O$rJT=8$7$F$$$k;~$K$H$F$bJXMx$J%^%$%J!<%b!<%I$N0l$D$K%*!<%H%U%#(B
+$B%k!J(BAuto Fill$B!K%b!<%I$H$$$&$N$,$"$j$^$9!#$3$N%b!<%I$,%*%s$N;~$KJ8>O$r(B
+$BF~NO$7$F$$$C$F9T$rD9$/$7$9$.$?>l9g!"<+F0E*$KC18l$HC18l$N4V$G9T$,J,3d$5(B
+$B$l$^$9!JF|K\8l$N>l9g$O$I$NJ8;z$N4V$G$b!K!#(B
 
-     $B%j%+!<%7%V(B $B%(%G%#%F%#%s%0(B $B%l%Y%k$+$iH4$1$G$k$?$a$K$O!"(BM-x top-level
-<Return>$B$H%?%$%W$7$^$9!#(B
+Auto Fill $B%b!<%I$O(B M-x auto-fill-mode<Return> $B$H$d$l$P%*%s$K$G$-$^$9!#(B
+$B$=$l$,%*%s$N>uBV$G(B M-x auto-fill-mode<Return> $B$H$d$l$,%*%U$K$G$-$^$9!#(B
+$B$3$N%3%^%s%I$O!"%b!<%I$,%*%U$J$i%*%s$K!"%*%s$J$i%*%U$K$9$k$N$G$9!#$3$&(B
+$B$$$&$N$r!V%b!<%I$r%H%0%k$9$k!W$H8@$$$^$9!#(B
 
-       >> $B;n$7$F$_$F2<$5$$!#%9%/%j!<%s$NDl$K(B"Back to top level"$B$HI=<($5$l$^(B
-          $B$9!#(B
+>> M-x auto-fill-mode<Return> $B$H%?%$%W$7$F!"(B "asdf " $B$G;O$^$k9T$rF~NO(B
+   $B$7$F2<$5$$!#9T$,J,3d$5$l$k$^$G2?EY$b(B "asdf " $B$H%?%$%W$7$^$7$g$&!#%9(B
+   $B%Z!<%9$rK:$l$:$K!#(BAuto Fill $B$O%9%Z!<%9$,F~NO$5$l$?;~$N$_F/$-$^$9!#(B
+
+$B1&%^!<%8%s$ODL>o(B 70 $BJ8;z!J%+%i%`!K$G$9$,!"(BC-x f $B%3%^%s%I$G$3$l$rJQ99$9(B
+$B$k$3$H$,$G$-$^$9!#;XDj$NJ8;z?t$r?tCM0z?t$H$7$FM?$($^$9!#(B
 
-     $BK\Ev$O!"$3$N;n$_$,9T$o$l$?;~$O!"$9$G$K%H%C%W%l%Y%k$K$$$?$N$G$9!#(BM-x
-top-level$B$O!"2?$b1F6A$rM?$($F$$$^$;$s!#(B
+>> $B?tCM0z?t(B 20 $B$G(B C-x f $B$r$d$j$^$7$g$&!#(B (C-u 2 0 C-x f)$B!#(B
+   $B$=$l$+$iE,Ev$JJ8>O!J1Q8l!K$rF~NO$7!"(B20 $BJ8;z$G9T$,J,3d$5$l$k$N$r8+$F(B
+   $B$_$^$7$g$&!#$=$l$+$i(B C-x f $B%3%^%s%I$G$^$?%^!<%8%s$r(B 70 $BJ8;z$KLa$7$F(B
+   $B2<$5$$!#(B
 
-     $B%j%+!<%7%V(B $B%(%G%#%F%#%s%0(B $B%l%Y%k$+$iH4$1=P$k$N$KBP$7$F$O(BC-g$B$O8z$-$^$;(B
-$B$s!#(B
+$B%Q%i%0%i%U$NESCf$rJQ99$7$F$b(B Auto Fill $B%b!<%I$O$=$l$r<+F0E*$K%U%#%k$7(B
+$BD>$7$O$7$^$;$s!#(B
+$B%Q%i%0%i%U$r%U%#%k$7D>$9$K$O%+!<%=%k$r$=$N%Q%i%0%i%U$NCf$KCV$$$F$+$i(B
+M-q $B$r%?%$%W$7$^$9!#(B
 
+>> $B%+!<%=%k$r$3$N9TD>A0$N%Q%i%0%i%U$K0\F0$5$;(B M-q $B$H%?%$%W$7$F2<$5$$!#(B
 
-$B%X%k%W(B
+$B!v8!:w(B
 ======
 
-     Emacs$B$K$O!"$?$/$5$s$NLr$KN)$D5!G=$,$"$j!"$3$3$G!"$9$Y$F$r@bL@$9$k$3$H(B
-$B$O!"IT2DG=$G$9!#$7$+$7!"$^$@CN$i$J$$B?$/$N5!G=$r3X$V$?$a$K$O!"(B<HELP>$B$H8F$P(B
-$B$l$k(B C-h $B$r%?%$%W$9$k$3$H$G!"$?$/$5$s$N>pJs$r<j$KF~$l$k$3$H$,$G$-$^$9!#(B
+$BJ8>OCf$NFCDj$NJ8;zNs$r!"A08~$-$K$b8e8~$-$K$bC5$9;v$,$G$-$^$9!#J8;zNs$r(B
+$BC5$9$H$$$&$N$O%+!<%=%k0\F0%3%^%s%I$G$9!#$D$^$j!"<!$K$=$NJ8;zNs$,8=$l$k(B
+$B>l=j$^$G%+!<%=%k$r0\F0$5$;$k$N$G$9!#(B
+
+XEmacs $B$N8!:w%3%^%s%I$OB>$NBg35$N%(%G%#%?$N8!:w%3%^%s%I$H$O0[$j!V%$%s(B
+$B%/%j%a%s%?%k!W$G$9!#8!:w$9$kJ8;zNs$r%?%$%W$7$F$$$k$=$P$+$i8!:w$,5/$k$N(B
+$B$G$9!#(B
+
+$B8!:w$r;O$a$k$?$a$N%3%^%s%I$O!"A08~$-$K8!:w$9$k$J$i$P(B C-s$B!"8e8~$-$J$i(B
+C-r $B$G$9!#$^$@$G$9!*!*:#$O$^$@;n$5$J$$$G2<$5$$!#(B
 
-     $B;H$$J}$O!"(BC-h $B$r%?%$%W$7!"B3$$$FI,MW$J%*%W%7%g%s$r#1J8;z%?%$%W$7$^$9!#(B
-$B$o$+$i$J$1$l$P!"(BC-h ?  $B$H%?%$%W$9$k$H!"$I$s$J%*%W%7%g%s$,$"$k$N$+I=<($5$l$^(B
-$B$9!#$b$7!"(BC-h $B$r%?%$%W$7$F$+$i5$$,JQ$o$C$?$i!"(BC-g $B$r%?%$%W$9$l$P!"<h$j>C$9(B
-$B$3$H$,$G$-$^$9!#(B
+C-s $B$rBG$D$H(B "I-search" $B$H$$$&J8;zNs$,%(%3!<%(%j%"$KI=<($5$l$k$N$,8+$((B
+$B$k$G$7$g$&!#$3$l$O(B XEmacs $B$,%$%s%/%j%a%s%?%k8!:w$H$$$&>uBV$K$$$F!"$"$J(B
+$B$?$,C5$7$?$$J8;zNs$rF~NO$9$k$N$rBT$C$F$$$k$N$G$9!#(B<Return> $B$rBG$F$P8!(B
+$B:w$r=*$o$l$^$9!#(B
+
+>> $B$5$F(B C-s $B$H%?%$%W$7$F8!:w$r;O$a$^$7$g$&!#$f$C$/$j$H#1J8;z$:$D(B
+   "cursor" $B$H$$$&C18l$rF~NO$7$^$9!##1J8;zBG$DKh$K%+!<%=%k$,$I$&F0$/$+(B
+   $B8+$^$7$g$&!#(B
+   $B$5$"!"(B"cursor" $B$,#12s8+$D$+$j$^$7$?!#(B
+>> $B$b$&0lEY(B C-s $B$HBG$C$F<!$N(B "cursor" $B$r8+$D$1$^$7$g$&!#(B
+>> $B:#EY$O(B <Delete> $B$r#42sBG$C$F!"%+!<%=%k$NF0$-$r8+$F2<$5$$!#(B
+>> <Return> $B$HBG$C$F8!:w$r=*N;$7$^$7$g$&!#(B
 
-     $B:G$b4pK\E*$J$b$N$O!"(BC-h c $B$G$9!#$3$l$KB3$$$F%-!<$rF~NO$9$k$H!"$=$N%3%^(B
-$B%s%I$K$D$$$F$NC;$$@bL@$rI=<($7$^$9!#(B
+$B2?$,5/$C$?$+J,$j$^$9$+!)%$%s%/%j%a%s%?%k8!:w$G$O!"JXMx$J$?$a$K%O%$%i%$(B
+$B%H$r$7!"$"$J$?$,$=$l$^$G$KBG$C$?J8;zNs$,8=$l$k$H$3$m$K9T$3$&$H$7$^$9!#(B
+$B<!$N(B "cursor" $B$K9T$/$K$O$b$&0lEY(B C-s $B$HBG$A$^$9!#$b$7$b$&$=$&$$$&J8;z(B
+$BNs$,L5$+$C$?$i!"%Y%k$r$J$i$7$F8!:w$,8=:_$O<:GT$7$F$$$k$3$H$rCN$i$;$^$9!#(B
+C-g $B$rBG$F$P8!:w$r=*$o$l$^$9!#(B
 
-       >> C-h c C-p $B$H%?%$%W$7$F$_$J$5$$!#(B"C-p runs the command previous-
-          line"$B$N$h$&$J%a%C%;!<%8$,I=<($5$l$k$O$:$G$9!#(B
+$BCm0U!'%7%9%F%`$K$h$C$F$O(B C-s $B$H%?%$%W$9$k$H2hLL$,F0$+$J$/$J$j(B XEmacs 
+$B$,I=<($7$h$&$H$9$k$b$N$,2?$b2hLL$K=P$J$/$J$j$^$9!#$3$l$O!"%U%m!<%3%s%H(B
+$B%m!<%k$H8F$P$l$k#O#S$N5!G=$,(B C-s $B$rB*$(!"(BXEmacs $B$KEO$5$J$$$h$&$K$7$F$$(B
+$B$k$N$G$9!#$3$l$r2r=|$9$k$K$O(B C-q $B$r%?%$%W$7$^$9!#$=$l$+$i(B XEmacs $B%^%K%e(B
+$B%"%k$N(B "Spontaneous Entry to Incremental Search ($BCN$i$L4V$K%$%s%/%j%a(B
+$B%s%?%k%5!<%A$K$J$k(B)" $B$N@a$rFI$s$G$/$@$5$$!#$3$N$d$C$+$$$J#O#S$N5!G=$K(B
+$B$I$&BP=h$9$l$PNI$$$+$,:\$C$F$$$^$9!#(B
 
-     $B8+$?$3$H$O$"$k$,!"3P$($F$O$$$J$$%3%^%s%I$b;W$$=P$;$k$N$G$9!#(BC-x C-s $B$N(B
-$B$h$&$JJ#?t$G#1$D$N%3%^%s%I$b(BC-h c $B$N8e$m$KB3$1$i$l$^$9!#(B
+$B%$%s%/%j%a%s%?%k8!:w$NESCf$G(B <Delete> $B$rBG$D$H8!:wJ8;zNsCf$N#1HV8e$m$N(B
+$BJ8;z$,>C$($^$9!#$=$7$F!"%+!<%=%k$O!"A02s$N0LCV$KLa$j$^$9!#$?$H$($P!"(B
+"c" $B$H%?%$%W$7$F:G=i$N(B "c" $B$rC5$7$^$9!#$=$l$+$i(B "u" $B$rBG$D$H:G=i$N(B
+"cu" $B$N>l=j$K%+!<%=%k$,F0$-$^$9!#$=$3$G(B <Delete> $B$rBG$D$H(B "u" $B$r8!:wJ8(B
+$B;zNs$+$i>C$7$F!"%+!<%9%k$O:G=i$K(B "c" $B$,8=$l$?>l=j$KLa$j$^$9!#(B
+
 
-     $B$b$C$H>\$7$/CN$j$?$+$C$?$i!"(Bc $B$NBe$o$j$K(B k $B$r;XDj$7$^$9!#(B
+C-s $B$O!"8=:_$N%+!<%=%k0LCV0J9_$K=P$F$/$k8!:wJ8;zNs$rC5$7;O$a$^$9!#$b$7!"(B
+$BJ8>O$NA0$NJ}$rC5$7$?$+$C$?$i!"(BC-r $B$r%?%$%W$7$^$9!#$3$l$^$G$N(B C-s $B$K$D(B
+$B$$$F$N@bL@$O$9$Y$F(B C-r $B$K$bEv$F$O$^$j$^$9!#8!:w$NJ}8~$,H?BP$J$@$1$G$9!#(B
 
-       >> C-h k C-p $B$H%?%$%W$7$F$_$J$5$$!#(B
+$B!vJ#?t$N%&%#%s%I%&(B
+==================
+
+XEmacs $B$NAGE($J5!G=$N0l$D$H$7$F!"0l$D$N2hLL$KF1;~$K$$$/$D$b$N%&%#%s%I(B
+$B%&$rI=<($9$k$3$H$,$G$-$^$9!#(B
+
+>> $B%+!<%=%k$r$3$N9T$K;}$C$F$-$F(B C-u 0 C-l $B$H%?%$%W$7$F2<$5$$!#(B
 
-     Emacs$B$N%&%#%s%I%&$K!"%3%^%s%I$NL>A0$H5!G=$,I=<($5$l$^$9!#FI$_=*$($?$i!"(B
-C-x 1 $B$H%?%$%W$9$k$H!"H4$1$i$l$^$9!#(B
+>> $B$=$l$+$i(B C-x 2 $B$H%?%$%W$72hLL$r#2$D$N%&%#%s%I%&$KJ,3d$7$^$7$g$&!#(B
+   $B$I$A$i$N%&%#%s%I%&$b$3$NF~Lg%,%$%I$rI=<($7$F$$$^$9!#%+!<%=%k$O>e$N(B
+   $B%&%#%s%I%&$K$"$j$^$9!#(B
+
+>> C-M-v $B$H%?%$%W$72<$N%&%#%s%I%&$r%9%/%m!<%k$5$;$^$7$g$&!#(B
+   $B!J%a%?%-!<$,$J$$>l9g$O(B ESC C-v $B$H%?%$%W$7$^$9!#!K(B
 
-     $BB>$K$bLr$KN)$D%*%W%7%g%s$,$"$j$^$9!#(B
+>> C-x o $B!J(B"o" $B$O(B "other$B!JB>J}!K(B" $B$r0UL#$7$^$9!K$r%?%$%W$72<$N%&%#%s%I(B
+   $B%&$K%+!<%=%k$r0\$7$F2<$5$$!#(B
+>> $B2<$N%&%#%s%I%&$G(B C-v $B$d(B M-v $B$r;H$C$F%9%/%m!<%k$5$;$^$7$g$&!#(B
+   $B$3$3$K=q$$$F$"$k;X<($O>e$N%&%#%s%I%&$GFI$_?J$s$G$/$@$5$$!#(B
+
+>> $B$b$&0lEY(B C-x o $B$H%?%$%W$7!"%+!<%=%k$r>e$N%&%#%s%I%&$KLa$7$^$9!#(B
+   $B%+!<%=%k$O>e$N%&%#%s%I%&$N85$"$C$?0LCV$KLa$j$^$9!#(B
 
-    C-h f      $B%U%!%s%/%7%g%sL>$rF~NO$9$k$H!"%U%!%s%/%7%g%s$rI=<($7$^$9!#(B
+C-x o $B$r;H$C$F%&%#%s%I%&4V$r9T$C$?$jMh$?$j$G$-$^$9!#3F%&%#%s%I%&$O$=$l(B
+$B<+?H$N%+!<%=%k0LCV$rJ];}$7$F$$$^$9$,!"0lEY$K$O0l$D$N%&%#%s%I%&$@$1$,%+!<(B
+$B%=%k$rI=<($7$^$9!#DL>o$NJT=8%3%^%s%I$O3'%+!<%=%k$,$"$k%&%#%s%I%&$KBP$7(B
+$B$FF/$-$^$9!#$=$N%&%#%s%I%&$r(B "selected window ($BA*BrCf$N%&%#%s%I%&(B)" $B$H(B
+$B8F$S$^$9!#(B
 
-       >> C-h f previous-line $B$r%?%$%W$7!"(B<Return> $B$r2!$7$J$5$$!#(BC-p $B%3%^%s(B
-          $B%I$r<B9T$9$k%U%!%s%/%7%g%s$K$D$$$F$N>pJs$rI=<($7$^$9!#(B
+C-M-v $B%3%^%s%I$O!"0l$D$N%&%#%s%I%&$GJ8>O$rJT=8Cf$KB>$N%&%#%s%I%&$r;2>H(B
+$B$7$F$$$k;~$KLrN)$A$^$9!#JT=8Cf$N>l=j$K%+!<%=%k$rJ]$C$?$^$^!"(BC-M-v $B$GB>(B
+$B$N%&%#%s%I%&$rFI$_?J$a$F9T$/$3$H$,$G$-$^$9!#(B
+
+C-M-v $B$O%3%s%H%m!<%k%a%?J8;z$N0lNc$G$9!#%a%?%-!<$,$"$k>l9g$O!"%3%s%H%m!<(B
+$B%k%-!<$H%a%?%-!<$r2!$7$J$,$i(B v $B$r%?%$%W$7$^$9!#%3%s%H%m!<%k%-!<$H%a%?(B
+$B%-!<$O$I$A$i$r@h$K2!$7$F$b9=$$$^$;$s!#$I$A$i$b$=$N8e$K%?%$%W$5$l$kJ8;z(B
+$B$KBP$9$k=$>~%-!<(B (modifier key) $B$H$7$FF/$/$+$i$G$9!#(B
 
-    C-h a      $B%-!<%o!<%I$rF~NO$9$k$H!"L>A0$K$=$N%-!<%o!<%I$r4^$`!"A4$F$N%3(B
-               $B%^%s%I$rI=<($7$^$9!#$3$l$i$N%3%^%s%I$O$9$Y$F(BESC x $B$G<B9T$G$-(B
-               $B$^$9!#(B
+$B%a%?%-!<$,L5$$>l9g!"(BESC $B%-!<$r;H$$$^$9$,!"$3$N>l9g=gHV$,Bg;v$G$9!#$^$:(B
+ESC $B$r2!$7$F$+$iN%$7$F(B CTRL-v $B$rBG$A$^$9!#(BCTRL-ESC v $B$G$OBLL\$G$9!#$3(B
+$B$l$O(BESC $B$O$=$l<+BN$,0l$D$NJ8;z$G=$>~%-!<$G$O$J$$$+$i$G$9!#(B
+
+>> $B>e$N%&%#%s%I%&$G(B C-x 1 $B$H%?%$%W$72<$N%&%#%s%I%&$r>C$7$^$7$g$&(B
+
+$B!J$b$72<$N%&%#%s%I%&$G(B C-x 1 $B$H%?%$%W$9$k$H>e$N%&%#%s%I%&$,>C$($^$9!#(B
+$B$3$N%3%^%s%I$O!V8=:_<+J,$,$$$k%&%#%s%I%&$@$1$K$7$J$5$$!W$H$$$&$b$N$@$H(B
+$B;W$C$F2<$5$$!#!K(B
+
+$BF1$8%P%C%U%!$rN>J}$N%&%#%s%I%&$KI=<($9$kI,MW$O$"$j$^$;$s!#0lJ}$N%&%#%s(B
+$B%I%&$G(B C-x C-f $B$G%U%!%$%k$r3+$$$F$bB>J}$N%&%#%s%I%&$OJQ2=$7$^$;$s!#3F(B
+$B%&%#%s%I%&$K$*$$$FJL!9$N%U%!%$%k$r3+$/$3$H$,$G$-$k$N$G$9!#(B
 
-       >> C-h a file $B$H%?%$%W$7!"(B<Return>$B$r2!$7$J$5$$!#L>A0$K(B"file"$B$H$$$&J8(B
-          $B;z$r;}$DA4$F$N%3%^%s%I$rI=<($7$^$9!#$^$?!"(Bfind-file $B$d(B write-file
-          $B$H$$$&L>$N(B C-x C-f $B$d(B C-x C-w $B$N$h$&$J%3%^%s%I$bI=<($5$l$^$9!#(B
+>> C-x 4 C-f $B$H%?%$%W$7B3$1$F2?$+<+J,$N%U%!%$%kL>$rF~NO$7$F2<$5$$!#(B
+   <Return> $B$GF~NO$r=*$o$i$;$F2<$5$$!#:#;XDj$7$?%U%!%$%k$,2<$N%&%#%s%I(B
+   $B%&$K8=$l$^$9!#%+!<%=%k$b$=$C$A$K0\$j$^$9!#(B
+
+>> C-x o $B$H%?%$%W$7>e$N%&%#%s%I%&$KLa$C$F2<$5$$!#$=$l$+$i(B C-x 1 $B$G2<$N(B
+   $B%&%#%s%I%&$r>C$7$^$7$g$&!#(B
+
 
-$B$*$o$j$K(B
-========
+$B!v:F5"JT=8%l%Y%k(B (RECURSIVE EDITING LEVELS)
 
-$BK:$l$:$K!'(B      $B=*N;$9$k$K$O!"(BC-x C-c $B$H$7$^$9!#(B
+$B;~!9!JITK\0U$K!K:F5"JT=8%l%Y%k$H8F$P$l$k>uBV$KF~$k$3$H$,$"$j$^$9!#%b!<(B
+$B%I%i%$%s$N%a%8%c!<%b!<%IL>$r0O$`4]3g8L(B "()" $B$,$5$i$Knl3g8L(B "[]" $B$G0O$^(B
+$B$l$^$9!#Nc$($P!"(B(Fundamental) $B$HI=<($5$l$kBe$o$j$K(B [(Fundamental)] $B$N(B
+$B$h$&$K$J$j$^$9!#(B
+
+$B:F5"JT=8%l%Y%k$+$iH4$1=P$9$K$O(B ESC ESC ESC $B$H%?%$%W$7$^$9!#$3$l$OHFMQ(B
+$B!VH4$1=P$7!W%3%^%s%I$G$9!#M>J,$J%&%#%s%I%&$r>C$7$?$j!"%_%K%P%C%U%!$+$i(B
+$BH4$1$?$j$9$k$N$K$b;H$($^$9!#(B
 
 
-     $B$3$NF~LgJT$O!"$^$C$?$/$N=i?4<T$K$b$o$+$j$d$9$$$h$&$K$H0U?^$7$F$$$^$9!#(B
-$B$G$9$+$i!"$b$72?$+$o$+$j$K$/$$E@$,$"$C$?$J$i!"0l?M$G6rCT$r8@$&$N$G$O$J$/!"(B
-$BJ86g$r$D$1$F2<$5$$!#(B
-
+>> M-x $B$H%?%$%W$7%_%K%P%C%U%!$KF~$C$F2<$5$$!#$=$l$+$i(B ESC ESC ESC $B$H%?(B
+   $B%$%W$7H4$1=P$7$F$_$^$7$g$&!#(B
 
-     $B$b$7!"(BEMACS $B$r2?F|$+$G$b;H$C$F$_$l$P!"$=$l$r$d$a$F$7$^$&$3$H$J$I$G$-$J(B
-$B$/$J$k$G$7$g$&!#:G=i$O8MOG$&$+$bCN$l$^$;$s!#$7$+$7!"$=$l$O$I$s$J%(%G%#%?$G(B
-$B$bF1MM$G$9!#(BEMACS $B$N$h$&$K!"Hs>o$KB?$/$N$3$H$,$G$-$k>l9g$K$OFC$K$=$&$G$7$g(B
-$B$&!#$=$7$F!"(BEMACS $B$G$O!"<B:]!"2?$G$b$G$-$k$N$G$9$+$i!#(B
-
+C-g $B$G$O:F5"JT=8%l%Y%k$+$i$OH4$1=P$;$^$;$s!#$3$l$O!"(BC-g $B$,:F5"JT=8%l%Y(B
+$B%kFb$G$N%3%^%s%I$d0z?t$r<h$j>C$9$N$K;H$o$l$F$$$k$+$i$G$9!#(B
 
 
-$B<U<-(B
-=====
-     $B$3$NJ8=q$O!"(BJUNET$B$GN.$5$l$?(B"$BF|K\8l(B MicroEMACS (kemacs) $BF~LgJT(B" $B$r(BGNUE-
-macs (Nemacs)$B$N(BTutorial$BMQ$K=q$-49$($?$b$N$G$9!#(B
+$B!v$b$C$H$b$C$H%X%k%W(B
+====================
+
+$B$3$NF~Lg%,%$%I$G$O(B XEmacs $B$r;H$$;O$a$k$N$K==J,$J>pJs$rDs6!$7$?$D$b$j$G(B
+$B$9!#(BXEmacs $B$K$O$"$^$j$K$bB?$/$N5!G=$,$"$k$N$G!"$3$3$G$9$Y$F$r@bL@$9$k(B
+$B$N$OL5M}$G$9!#$=$l$G$bLr$KN)$D5!G=$r$b$C$HB?$/3X$S$?$$$H;W$&?M$N$?$a$K(B
+$B$O!"(BXEmacs $B$N%3%^%s%I$N@bL@$rFI$`$?$a$N%3%^%s%I$,$"$j$^$9!#$3$l$i$N(B
+$B!V%X%k%W!W%3%^%s%I$O3'(B Control-h $BJ8;z!J%X%k%WJ8;z$H8F$S$^$9!K$G;O$^$j(B
+$B$^$9!#(B
+
+$B%X%k%W5!G=$r;H$&$K$O!"(BC-h $B$KB3$$$F$I$s$J<oN`$N%X%k%W$,I,MW$+$r<($9#1J8(B
+$B;z$r%?%$%W$7$^$9!#$b$7$=$l$9$iJ,$i$J$$>l9g$O(B C-h ? $B$H%?%$%W$7$^$7$g$&!#(B
+$B$I$s$J<oN`$N%X%k%W$rDs6!$G$-$k$+$,<($5$l$^$9!#$b$7!"(BC-h $B$r%?%$%W$7$F$+(B
+$B$i5$$,JQ$o$C$?$i!"(BC-g $B$r%?%$%W$7$F<h$j>C$9$3$H$,$G$-$^$9!#(B
+
+$B!J%5%$%H$K$h$C$F$O(B C-h $BJ8;z$r:FB+G{$7$^$9!#Am3gE*$J<jCJ$H$7$F$=$s$J$3(B
+$B$H$r$9$k$Y$-$G$O$"$j$^$;$s!#$=$&$$$&>l9g$O%7%9%F%`4IM}<T$KJ86g$r8@$$$^(B
+$B$7$g$&!#$^!"$H$b$+$/!"$b$7(B C-h $B$,2hLL$N2<$NJ}$K%X%k%W$N%a%C%;!<%8$r=P(B
+$B$5$J$1$l$P!"(BM-x help RET $B$r;n$7$F$_$F2<$5$$!#!K(B
+
+$B:G$b4pK\E*$J%X%k%W5!G=$O(B C-h c $B$G$9!#(BC-h$B!"$=$l$+$i(B c$B!"$=$7$F%3%^%s%I$N(B
+$BJ8;z<c$7$/$O$=$N%7!<%1%s%9$r%?%$%W$9$k$H!"$=$N%3%^%s%I$K$D$$$F$NC;$$@b(B
+$BL@$rI=<($7$^$9!#(B
+
+>> C-h c Control-p $B$H%?%$%W$7$F$_$^$7$g$&!#(B
+   $B0J2<$N$h$&$J%a%C%;!<%8$,I=<($5$l$k$O$:$G$9!#(B
+
+	C-p runs the command previous-line
 
-     Jonathan Payne $B$K$h$k(B "JOVE Tutorial" (19 January 86) $B$rJQ99$7$?$b$N$G(B
-     $B$"$j!"$=$l$O$b$H$b$H$O!"(BCCA-UNIX$B$N(BSteve Zimmerman $B$K$h$C$FJQ99$5$l$?!"(B
-     MIT $B$N(B "Teach-Emacs" $BF~LgJT(B (31 October 85) $B$r!J$5$i$K!KJQ99$7$?$b$N$G(B
-     $B$7$?!#(B
+$B$3$l$O!V%U%!%s%/%7%g%s$NL>A0!W$rI=<($7$?$N$G$9!#%U%!%s%/%7%g%sL>$O<g$K(B 
+XEmacs $B$r%+%9%?%^%$%:$7$?$j3HD%$7$?$j$9$k$N$K;H$o$l$^$9!#$7$+$7!"%U%!(B
+$B%s%/%7%g%sL>$O$=$N%3%^%s%I$,2?$r$9$k$b$N$J$N$+$,J,$k$h$&$KIU$1$i$l$^$9(B
+$B$N$G!"4JC1$J@bL@$H$7$F$b$=$N$^$^Lr$KN)$A$^$9!#0lEY3X$s$@%3%^%s%I$K$D$$(B
+$B$F;W$$=P$9$K$O==J,$G$9!#(B
+
+C-x C-s $B$d!J%a%?%-!<$d%"%k%H%-!<$,$J$$>l9g$N!K(B <ESC> v $B$J$I$NJ#?tJ8;z(B
+$B$N%3%^%s%I$r(B C-h c $B$N8e$K%?%$%W$9$k$3$H$b$G$-$^$9!#(B
+
+$B%3%^%s%I$K$D$$$F$b$C$HB?$/$N>pJs$,M_$7$1$l$P(B C-h c $B$NBe$o$j$K(B C-h k $B$r(B
+$B;H$$$^$9!#(B
+
+>> C-h k Control-p $B$H%?%$%W$7$F$_$^$7$g$&!#(B
+
+XEmacs$B$N%&%#%s%I%&$K!"%3%^%s%I$NL>A0$HF1;~$K$=$N5!G=$N@bL@$,I=<($5$l$^(B
+$B$9!#FI$_=*$($?$i!"(Bq $B$H%?%$%W$7$F%X%k%W$N%F%-%9%H$r>C$7$^$7$g$&!#(B
+
+C-h $B$K$OB>$K$bLr$KN)$D%*%W%7%g%s$,$"$j$^$9!#(B
 
-     Update - February 1986 by Dana Hoggatt.
+   C-h f	$B%U%!%s%/%7%g%s$N@bL@!#%U%!%s%/%7%g%sL>$rF~NO$7$^$9!#(B
 
-     Update - December 1986 by Kim Leburg.
+>> C-h f previous-line<Return> $B$H%?%$%W$7$F$_$^$7$g$&!#(B
+   C-p $B%3%^%s%I$r<B9T$9$k%U%!%s%/%7%g%s$K$D$$$F$N$9$Y$F$N>pJs$rI=<($7(B
+   $B$^$9!#(B
 
-     Update/Translate - July 1987 by SANETO Takanori
+   C-h a	$B%O%$%Q!<%"%W%m%]%9!#%-!<%o!<%I$rF~NO$9$k$H!"$=$N%-!<%o!<(B
+                $B%I$rL>A0$K4^$`A4$F$N4X?t$HJQ?t$r%j%9%H%"%C%W$7$^$9!#(B
+                Meta-x $B$G5/F0$G$-$k%3%^%s%I$K$O:8B&$K%"%9%?%j%9%/$,IU(B
+                $B$-$^$9!#(B
+
+>> C-h a newline<Return> $B$H%?%$%W$7$F$_$F2<$5$$!#(B
 
-$BFCJL$J<U<-(B
+"newline"$B$H$$$&J8;zNs$rL>A0$N0lIt$K;}$DA4$F$N4X?t$HJQ?t$rI=<($7$^$9!#(B
+$B4X?t$dJQ?t$r$h$j>\$7$/CN$k$?$a$K(B <Return> $B$+??Cf$N%^%&%9%\%?%s$r2!$7$F(B
+$B$/$@$5$$!#(Bhyper-apropos $B$r=*N;$9$k$?$a$K$O(B `q' $B$rF~NO$7$^$9!#(B
+
+
+$B!v$*$o$j$K(B
 ==========
 
-     $B:G=i$K$3$l$NF|K\8lLu$r:n$i$l$?!"(BSANETO Takanori$B$5$s!#$3$NJ8>O$O(BGMW +
-Wnn  + Nemacs$B$r;H$C$F=q$-$^$7$?!#$=$N$h$&$JAG@2$i$7$$%W%m%0%i%`$r:n$C$?J}!9(B
-$B$X46<U$N0U$rI=$7$?$$$H;W$$$^$9!#K]Lu$H$+!"F~NO$H$+$r?'!9$H<jEA$C$F$/$l$?!"(B
-$BF#86>M;R$5$s!"$I$&$b$"$j$,$H$&!#(B
+$BK:$l$J$$$G!*(BXEmacs $B$r=*N;$9$k$K$O!"(BC-x C-c $B$G$9!#$^$?(B XEmacs $B$KLa$C$F(B
+$BMh$i$l$k$h$&$K0l;~E*$K%7%'%k$KLa$k$@$1$J$i(B C-z $B$G$9!#!J(BX $B$G$O!"$3$l$O(B
+$B8=:_$N(B XEmacs $B$N%U%l!<%`$r%"%$%3%s2=$7$^$9!#!K(B
+
+$B$3$NF~Lg%,%$%I$O!"$^$C$?$/$N=i?4<T$K$b$o$+$j$d$9$$$h$&$K$H0U?^$7$F$$$^(B
+$B$9!#$G$9$+$i!"$b$72?$+$o$+$j$K$/$$E@$,$"$C$?$J$i!"<+J,$r@U$a$J$$$GJ86g(B
+$B$r$D$1$F2<$5$$!#(B
 
 
+$B!v$3$NK]LuHG$K$D$$$F$N<U<-(B
+==========================
 
+$B$3$NJ8=q$O(B XEmacs Ver.21.2 $BIUB0$N1Q8lHG$NF~Lg%,%$%I$rF|K\8l$KK]Lu$7$?(B
+$B$b$N$G$9!#$=$N:]!"(BEmacs $BIUB0$NF|K\8l%,%$%I$r85$K=$@5$7$^$7$?!#$=$NF|K\(B
+$B8l%,%$%I$O!"85$O(B SANETO Takanori $B;a$,F|K\8l(B MicroXEmacs(kemacs) $BF~LgJT(B
+$B$H$7$FK]Lu$5$l!"$=$l$rNkLZM5?.;a(B <hironobu@sra.co.jp> $B$,(BNemacs/Mule $BMQ(B
+$B$KJQ99!"$5$i$K5HEDLP<y;a$,=$@5$5$l$?$b$N$G$9!#$3$l$i$NJ}!9$K?<$/46<U$7(B
+$B$^$9!#(B
 
 
-$B8mLu!"13!"$=$NB>!"$NJ8@U$O!"0J2<$N<T$K$"$j$^$9!#(B
+$B!vCx:n8"I=<((B
+============
+
+$B$3$3$K85$N1Q8lHG$NCx:n8"I=<($r$=$N$^$^IU$1$^$9!#$3$NK]LuHG$b$3$l$K=>$$(B
+$B$^$9!#(B
 
-                        $BNkLZM5?.(B hironobu@sra.co.jp
+This tutorial descends from a long line of Emacs tutorials
+starting with the one written by Stuart Cracraft for the original Emacs.
+Ben Wing updated the tutorial for X Windows.  Martin Buchholz and
+Hrvoje Niksic added more corrections for XEmacs.
 
+This version of the tutorial, like XEmacs, is copyrighted, and comes
+with permission to distribute copies on certain conditions:
+
+Copyright (c) 1985, 1996 Free Software Foundation
 
-Update/Add - December 1987 by Hironobu Suzuki
-Update/Add - November 1989 by Ken'ichi Handa
-Update/Add - January  1990 by Shigeki Yoshida
-Update/Add - March    1992 by Kenichi HANDA
+   Permission is granted to anyone to make or distribute verbatim copies
+   of this document as received, in any medium, provided that the
+   copyright notice and permission notice are preserved,
+   and that the distributor grants the recipient permission
+   for further redistribution as permitted by this notice.
+
+   Permission is granted to distribute modified versions
+   of this document, or of portions of it,
+   under the above conditions, provided also that they
+   carry prominent notices stating who last altered them.
+
+The conditions for copying XEmacs itself are more complex, but in the
+same spirit.  Please read the file COPYING and then do give copies of
+XEmacs to your friends.  Help stamp out software obstructionism
+("ownership") by using, writing, and sharing free software!
--- a/lib-src/ChangeLog	Mon Aug 13 11:13:33 2007 +0200
+++ b/lib-src/ChangeLog	Mon Aug 13 11:14:34 2007 +0200
@@ -1,3 +1,7 @@
+2000-02-21  Martin Buchholz <martin@xemacs.org>
+
+	* XEmacs 21.2.30 is released.
+
 2000-02-16  Martin Buchholz <martin@xemacs.org>
 
 	* XEmacs 21.2.29 is released.
--- a/lib-src/movemail.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/lib-src/movemail.c	Mon Aug 13 11:14:34 2007 +0200
@@ -204,7 +204,9 @@
 #define DEFAULT_LOCKING DOTLOCKING
 #endif
 
+#ifndef DISABLE_DIRECT_ACCESS
 static void lock_dot(char *);
+#endif
 static void unlock_dot(char *);
 static int parse_lock_method(char *);
 static char *unparse_lock_method(int);
@@ -566,6 +568,7 @@
 
 static char *dotlock_filename = NULL;
 
+#ifndef DISABLE_DIRECT_ACCESS
 static void
 lock_dot(char *filename)
 {
@@ -625,6 +628,7 @@
     }
   strcpy(dotlock_filename, filename);
 }
+#endif /* not DISABLE_DIRECT_ACCESS */
 
 static void
 unlock_dot(char *filename)
--- a/lisp/ChangeLog	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/ChangeLog	Mon Aug 13 11:14:34 2007 +0200
@@ -1,3 +1,88 @@
+2000-02-21  Martin Buchholz <martin@xemacs.org>
+
+	* XEmacs 21.2.30 is released.
+
+2000-02-19  Martin Buchholz  <martin@xemacs.org>
+
+	* byte-optimize.el (byte-optimize-plus): 
+	(byte-optimize-minus): 
+	(byte-optimize-multiply): 
+	Optimize (- 0) to 0, not (-)
+	Optimize (+ 5 3.0) to 8.0
+        Optimize (* 5 3.0) to 15.0
+	Improve readability.
+
+2000-02-21  Jonathan Harris  <jhar@tardis.ed.ac.uk>
+
+	* modeline.el: (modeline-scrolling-method): change modeline
+	mswindows cursor appearance according to the value.
+
+	* msw-faces.el: (mswindows-init-device-faces): Initialise 'default
+	and 'gui-element face colors and 'gui-element face font to Windows
+	defaults.
+
+2000-02-09 Stef Epardaud  <stef@lunatech.com>
+	
+	* font-lock.el: Javadoc enhancements 
+
+1999-11-27  Oscar Figueiredo  <Oscar.Figueiredo@di.epfl.ch>
+
+	* ldap.el (toplevel): Test if LDAP support has been compiled in
+	(ldap-verbose): New option
+	(ldap-search-entries): Renamed from the previous ldap-search
+	Conditionalize message display on ldap-verbose
+	(ldap-add-entries, ldap-modify-entries, ldap-delete-entries): New
+	defuns
+	(ldap-search): Is now defined as an obsolete wrapper calling 
+	ldap-search-basic or ldap-search-entries
+
+
+1999-12-06  Hirokazu FUKUI  <hfukui@sannet.ne.jp> 
+            Shuhei KOBAYASHI <shuhei@aqua.ocn.ne.jp>
+	    Jan Vroonhof  <jan@xemacs.org>
+ 
+        * byte-optimize.el (byte-optimize-form-code-walker): Fixed. 
+        When for-effect is true, didn't call `byte-optimize-form' 
+        in and/or subforms without last. 
+ 
+1999-12-07  Jan Vroonhof  <vroonhof@math.ethz.ch> 
+ 
+        * package-get.el (package-get-download-sites): Use correct custom 
+        type. 
+ 
+2000-02-15  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
+
+	* files.el (write-file): Ask for coding system when compiled with
+	file-coding.
+
+2000-02-16  Andy Piper  <andy@xemacs.org>
+
+	* buffer.el (switch-to-buffer): give norecord argument to
+	set-window-buffer instead of explicitly recording.
+
+	* gutter-items.el (buffers-tab-switch-to-buffer): don't record if
+	we have to pick a window.
+
+1999-12-24  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
+
+	* mule/mule-cmds.el (describe-language-support): Don't add
+	unexist function to help-map.
+	(describe-coding-system): Don't use already assigend `C'.
+
+2000-01-23  Björn Torkelsson  <torkel@hpc2n.umu.se>
+
+	* info.el (Info-save-auto-generated-dir): nil -> 'never to make it
+	work in custom.
+
+2000-02-04  Kazuyuki IENAGA <kazz@imasy.or.jp>
+
+	* about.el: Ienaga's e-mail address change.
+
+2000-02-16  Samuel Mikes  <smikes@alumni.hmc.edu>
+
+        * etags.el (find-tag): force new window -- even if buf already
+        visible -- when other-window is t
+
 2000-02-16  Martin Buchholz <martin@xemacs.org>
 
 	* XEmacs 21.2.29 is released.
--- a/lisp/about.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/about.el	Mon Aug 13 11:14:34 2007 +0200
@@ -71,7 +71,7 @@
     (jmiller  "Jeff Miller"       "jmiller@smart.net")
     (juhp     "Jens-Ulrik Holger Petersen" "petersen@kurims.kyoto-u.ac.jp")
     (jwz      "Jamie Zawinski"    "jwz@jwz.org")
-    (kazz     "IENAGA Kazuyuki"   "ienaga@jsys.co.jp")
+    (kazz     "IENAGA Kazuyuki"   "ienaga@xemacs.org")
     (kyle     "Kyle Jones"        "kyle_jones@wonderworks.com")
     (larsi    "Lars Magne Ingebrigtsen" "larsi@gnus.org")
     (marcpa   "Marc Paquette"	  "marcpa@CAM.ORG")
--- a/lisp/buffer.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/buffer.el	Mon Aug 13 11:14:34 2007 +0200
@@ -60,11 +60,10 @@
 	    (set-buffer-major-mode buf))))
     (push-window-configuration)
     (set-buffer buf)
-    (or norecord (record-buffer buf))
     (set-window-buffer (if (eq (selected-window) (minibuffer-window))
 			   (next-window (minibuffer-window))
 			 (selected-window))
-		       buf)
+		       buf norecord)
     buf))
 
 (defun pop-to-buffer (bufname &optional not-this-window-p on-frame)
--- a/lisp/byte-optimize.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/byte-optimize.el	Mon Aug 13 11:14:34 2007 +0200
@@ -473,6 +473,10 @@
 		     (byte-compile-log
 		      "  all subforms of %s called for effect; deleted" form))
 		 (and backwards
+                      ;; Now optimize the rest of the forms. We need the return
+                      ;; values. We already did the car.
+                      (setcdr backwards
+                              (mapcar 'byte-optimize-form (cdr backwards)))
 		      (cons fn (nreverse backwards))))
 	     (cons fn (mapcar 'byte-optimize-form (cdr form)))))
 
@@ -699,33 +703,37 @@
   (setq form (byte-optimize-delay-constants-math form 1 '+))
   (if (memq 0 form) (setq form (delq 0 (copy-sequence form))))
   ;;(setq form (byte-optimize-associative-two-args-math form))
+
   (case (length (cdr form))
-    ((0)
+    ((0)				; (+)
      (condition-case ()
 	 (eval form)
        (error form)))
 
-    ;; `add1' and `sub1' are a marginally fewer instructions
-    ;; than `plus' and `minus', so use them when possible.
-    ((2)
-     (cond
-      ((eq (nth 1 form)  1) `(1+ ,(nth 2 form))) ; (+ 1 x)   -->  (1+ x)
-      ((eq (nth 2 form)  1) `(1+ ,(nth 1 form))) ; (+ x 1)   -->  (1+ x)
-      ((eq (nth 1 form) -1) `(1- ,(nth 2 form))) ; (+ -1 x)  -->  (1- x)
-      ((eq (nth 2 form) -1) `(1- ,(nth 1 form))) ; (+ x -1)  -->  (1- x)
-      (t form)))
+    ;; It is not safe to delete the function entirely
+    ;; (actually, it would be safe if we knew the sole arg
+    ;; is not a marker).
+    ;; ((1)
+    ;;  (nth 1 form))
 
-    ;; It is not safe to delete the function entirely
-    ;; (actually, it would be safe if we know the sole arg
-    ;; is not a marker).
-    ;;	((null (cdr (cdr form))) (nth 1 form))
-    (t form)))
+    ((2)				; (+ x y)
+     (byte-optimize-predicate
+      (cond
+       ;; `add1' and `sub1' are a marginally fewer instructions
+       ;; than `plus' and `minus', so use them when possible.
+       ((eq (nth 1 form)  1) `(1+ ,(nth 2 form))) ; (+ 1 x)   -->  (1+ x)
+       ((eq (nth 2 form)  1) `(1+ ,(nth 1 form))) ; (+ x 1)   -->  (1+ x)
+       ((eq (nth 1 form) -1) `(1- ,(nth 2 form))) ; (+ -1 x)  -->  (1- x)
+       ((eq (nth 2 form) -1) `(1- ,(nth 1 form))) ; (+ x -1)  -->  (1- x)
+       (t form))))
+
+    (t (byte-optimize-predicate form))))
 
 (defun byte-optimize-minus (form)
   ;; Put constants at the end, except the last constant.
   (setq form (byte-optimize-delay-constants-math form 2 '+))
-  ;; Now only first and last element can be a number.
-  (let ((last (car (reverse (nthcdr 3 form)))))
+  ;; Now only first and last element can be an integer.
+  (let ((last (last (nthcdr 3 form))))
     (cond ((eq 0 last)
 	   ;; (- x y ... 0)  --> (- x y ...)
 	   (setq form (copy-sequence form))
@@ -735,54 +743,55 @@
 		(numberp last))
 	   (setq form (nconc (list '- (- (nth 1 form) last) (nth 2 form))
 			     (delq last (copy-sequence (nthcdr 3 form))))))))
-  (setq form
-;;; It is not safe to delete the function entirely
-;;; (actually, it would be safe if we know the sole arg
-;;; is not a marker).
-;;;  (if (eq (nth 2 form) 0)
-;;;      (nth 1 form)			; (- x 0)  -->  x
-    (byte-optimize-predicate
-     (if (and (null (cdr (cdr (cdr form))))
-	      (eq (nth 1 form) 0))	; (- 0 x)  -->  (- x)
-	 (cons (car form) (cdr (cdr form)))
-       form))
-;;;    )
-    )
+
+  (case (length (cdr form))
+    ((0)				; (-)
+     (condition-case ()
+	 (eval form)
+       (error form)))
 
-  ;; `add1' and `sub1' are a marginally fewer instructions than `plus'
-  ;; and `minus', so use them when possible.
-  (cond ((and (null (nthcdr 3 form))
-	      (eq (nth 2 form) 1))
-	 (list '1- (nth 1 form)))	; (- x 1)  -->  (1- x)
-	((and (null (nthcdr 3 form))
-	      (eq (nth 2 form) -1))
-	 (list '1+ (nth 1 form)))	; (- x -1)  -->  (1+ x)
-	(t
-	 form))
-  )
+    ;; It is not safe to delete the function entirely
+    ;; (actually, it would be safe if we knew the sole arg
+    ;; is not a marker).
+    ;; ((1)
+    ;;  (nth 1 form)
+
+    ((2)				; (+ x y)
+     (byte-optimize-predicate
+      (cond
+       ;; `add1' and `sub1' are a marginally fewer instructions than `plus'
+       ;; and `minus', so use them when possible.
+       ((eq (nth 2 form)  1) `(1- ,(nth 1 form))) ; (- x 1)  --> (1- x)
+       ((eq (nth 2 form) -1) `(1+ ,(nth 1 form))) ; (- x -1) --> (1+ x)
+       ((eq (nth 1 form)  0) `(-  ,(nth 2 form))) ; (- 0 x)  --> (- x)
+       (t form))))
+
+    (t (byte-optimize-predicate form))))
 
 (defun byte-optimize-multiply (form)
   (setq form (byte-optimize-delay-constants-math form 1 '*))
-  ;; If there is a constant in FORM, it is now the last element.
+  ;; If there is a constant integer in FORM, it is now the last element.
   (cond ((null (cdr form)) 1)
 ;;; It is not safe to delete the function entirely
 ;;; (actually, it would be safe if we know the sole arg
 ;;; is not a marker or if it appears in other arithmetic).
 ;;;	((null (cdr (cdr form))) (nth 1 form))
-	((let ((last (car (reverse form))))
-	   (cond ((eq 0 last)  (cons 'progn (cdr form)))
-		 ((eq 1 last)  (delq 1 (copy-sequence form)))
-		 ((eq -1 last) (list '- (delq -1 (copy-sequence form))))
-		 ((and (eq 2 last)
-		       (memq t (mapcar 'symbolp (cdr form))))
-		  (prog1 (setq form (delq 2 (copy-sequence form)))
-		    (while (not (symbolp (car (setq form (cdr form))))))
-		    (setcar form (list '+ (car form) (car form)))))
-		 (form))))))
+	((let ((last (last form)))
+	   (byte-optimize-predicate
+	    (cond ((eq 0 last)  (cons 'progn (cdr form)))
+		  ((eq 1 last)  (delq 1 (copy-sequence form)))
+		  ((eq -1 last) (list '- (delq -1 (copy-sequence form))))
+		  ((and (eq 2 last)
+			(memq t (mapcar 'symbolp (cdr form))))
+		   (prog1 (setq form (delq 2 (copy-sequence form)))
+		     (while (not (symbolp (car (setq form (cdr form))))))
+		     (setcar form (list '+ (car form) (car form)))))
+		  (form)))))))
 
 (defun byte-optimize-divide (form)
   (setq form (byte-optimize-delay-constants-math form 2 '*))
-  (let ((last (car (reverse (cdr (cdr form))))))
+  ;; If there is a constant integer in FORM, it is now the last element.
+  (let ((last (last (cdr (cdr form)))))
     (if (numberp last)
 	(cond ((= (length form) 3)
 	       (if (and (numberp (nth 1 form))
@@ -801,13 +810,13 @@
     (cond
 ;;;	  ((null (cdr (cdr form)))
 ;;;	   (nth 1 form))
-	  ((eq (nth 1 form) 0)
-	   (append '(progn) (cdr (cdr form)) '(0)))
-	  ((eq last -1)
-	   (list '- (if (nthcdr 3 form)
-			(butlast form)
-		      (nth 1 form))))
-	  (form))))
+     ((eq (nth 1 form) 0)
+      (append '(progn) (cdr (cdr form)) '(0)))
+     ((eq last -1)
+      (list '- (if (nthcdr 3 form)
+		   (butlast form)
+		 (nth 1 form))))
+     (form))))
 
 (defun byte-optimize-logmumble (form)
   (setq form (byte-optimize-delay-constants-math form 1 (car form)))
--- a/lisp/etags.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/etags.el	Mon Aug 13 11:14:34 2007 +0200
@@ -771,7 +771,7 @@
 		       '(find-tag find-tag-other-window tags-loop-continue))))
 	(push-tag-mark))
     (if other-window
-	(pop-to-buffer tag-buf)
+	(pop-to-buffer tag-buf t)
       (switch-to-buffer tag-buf))
     (widen)
     (push-mark)
@@ -787,7 +787,7 @@
 
 ;;;###autoload
 (defun find-tag-other-window (tagname &optional next)
-  "*Find tag whose name contains TAGNAME.
+  "*Find tag whose name contains TAGNAME, in another window.
  Selects the buffer that the tag is contained in in another window
 and puts point at its definition.
  If TAGNAME is a null string, the expression in the buffer
--- a/lisp/files.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/files.el	Mon Aug 13 11:14:34 2007 +0200
@@ -1831,7 +1831,7 @@
 					  (buffer-local-variables)))
 			       nil nil (buffer-name)))
 	 t
-	 (if (and current-prefix-arg (featurep 'mule))
+	 (if (and current-prefix-arg (featurep 'file-coding))
 	     (read-coding-system "Coding system: "))))
   (and (eq (current-buffer) mouse-grabbed-buffer)
        (error "Can't write minibuffer window"))
--- a/lisp/font-lock.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/font-lock.el	Mon Aug 13 11:14:34 2007 +0200
@@ -2339,8 +2339,9 @@
 	 '("\\<\\(false\\|null\\|true\\)\\>" (1 font-lock-keyword-face))
 
 	 ;; Class names:
-	 (list (concat "\\<class\\>\\s *" java-font-lock-identifier-regexp)
-	       1 'font-lock-function-name-face)
+	 (list (concat "\\<\\(class\\|interface\\)\\>\\s *"
+								 java-font-lock-identifier-regexp)
+	       2 'font-lock-function-name-face)
         
 	 ;; Package declarations:
 	 (list (concat "\\<\\(package\\|import\\)\\>\\s *"
@@ -2478,7 +2479,7 @@
  
 	 (list
 
-	  ;; Java doc tags
+	  ;; Javadoc tags
 	  '("@\\(author\\|exception\\|throws\\|deprecated\\|param\\|return\\|see\\|since\\|version\\)\\s "
 	    0 font-lock-keyword-face t)
 
@@ -2487,34 +2488,30 @@
 		1 'font-lock-variable-name-face t)
 
 	  ;; Doc tag - Exception types
-	  (list (concat "@exception\\s +"
+	  (list (concat "@\\(exception\\|throws\\)\\s +"
 			java-font-lock-identifier-regexp)
-		'(1 (if (equal (char-after (match-end 0)) ?.)
+		'(2 (if (equal (char-after (match-end 0)) ?.)
 			font-lock-reference-face font-lock-type-face) t)
 		(list (concat "\\=\\." java-font-lock-identifier-regexp)
 		      '(goto-char (match-end 0)) nil
 		      '(1 (if (equal (char-after (match-end 0)) ?.)
 			      'font-lock-reference-face 'font-lock-type-face) t)))
     
-	  ;; Doc tag - Exception types
-	  (list (concat "@exception\\s +"
-			java-font-lock-identifier-regexp)
-		'(1 (if (equal (char-after (match-end 0)) ?.)
-			font-lock-reference-face font-lock-type-face) t)
-		(list (concat "\\=\\." java-font-lock-identifier-regexp)
-		      '(goto-char (match-end 0)) nil
-		      '(1 (if (equal (char-after (match-end 0)) ?.)
-			      'font-lock-reference-face 'font-lock-type-face) t)))
-
 	  ;; Doc tag - Cross-references, usually to methods 
 	  '("@see\\s +\\(\\S *[^][ \t\n\r\f(){},.;:]\\)"
 	    1 font-lock-function-name-face t)
     
-	  ;; Doc tag - Links
-	  '("{@link\\s +\\([^}]*\\)}"
+	  ;; Doc tag - docRoot (1.3)
+	  '("\\({ *@docRoot *}\\)"
+	    0 font-lock-keyword-face t)
+	  ;; Doc tag - beaninfo, unofficial but widely used, even by Sun
+	  '("\\(@beaninfo\\)"
 	    0 font-lock-keyword-face t)
 	  ;; Doc tag - Links
-	  '("{@link\\s +\\(\\S +\\s +\\S +\\)}"
+	  '("{ *@link\\s +\\([^}]+\\)}"
+	    0 font-lock-keyword-face t)
+	  ;; Doc tag - Links
+	  '("{ *@link\\s +\\(\\(\\S +\\)\\|\\(\\S +\\s +\\S +\\)\\) *}"
 	    1 font-lock-function-name-face t)
     
 	  )))
--- a/lisp/gutter-items.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/gutter-items.el	Mon Aug 13 11:14:34 2007 +0200
@@ -160,7 +160,7 @@
   "For use as a value for `buffers-tab-switch-to-buffer-function'."
   (unless (eq (window-buffer) buffer)
     (if (> (length (windows-of-buffer buffer)) 0)
-	(select-window (car (windows-of-buffer buffer)))
+	(select-window (car (windows-of-buffer buffer)) t)
       (switch-to-buffer buffer t))))
 
 (defun select-buffers-tab-buffers-by-mode (buf1 buf2)
--- a/lisp/info.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/info.el	Mon Aug 13 11:14:34 2007 +0200
@@ -413,7 +413,7 @@
 		 (const :tag "if-outdated" if-outdated))
   :group 'info)
 
-(defcustom Info-save-auto-generated-dir nil
+(defcustom Info-save-auto-generated-dir 'never
   "*Whether an auto-generated info directory listing should be saved.
 Possible values are:
 nil or `never', the default, auto-generated info directory 
--- a/lisp/ldap.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/ldap.el	Mon Aug 13 11:14:34 2007 +0200
@@ -5,7 +5,7 @@
 ;; Author: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Maintainer: Oscar Figueiredo <Oscar.Figueiredo@di.epfl.ch>
 ;; Created: Jan 1998
-;; Version: $Revision: 1.7.2.6 $
+;; Version: $Revision: 1.7.2.7 $
 ;; Keywords: help comm
 
 ;; This file is part of XEmacs
@@ -35,6 +35,10 @@
 
 ;;; Code:
 
+(eval-when '(load)
+  (if (not (fboundp 'ldap-open))
+      (error "No LDAP support compiled in this XEmacs")))
+
 (defgroup ldap nil
   "Lightweight Directory Access Protocol"
   :group 'comm)
@@ -145,6 +149,11 @@
 				   (integer :tag "(number of records)")))))
 :group 'ldap)
 
+(defcustom ldap-verbose nil
+  "*If non-nil, LDAP operations echo progress messages."
+  :type 'boolean
+  :group 'ldap)
+
 (defcustom ldap-ignore-attribute-codings nil
   "*If non-nil, do not perform any encoding/decoding on LDAP attribute values."
   :type 'boolean
@@ -436,8 +445,17 @@
 	(cons name (mapcar decoder values))
       attr)))
     
+(defun ldap-search (arg1 &rest args)
+  "Perform an LDAP search."  
+      (apply (if (ldapp arg1)
+		 'ldap-search-basic
+	       'ldap-search-entries) arg1 args))
 
-(defun ldap-search (filter &optional host attributes attrsonly withdn)
+(make-obsolete 'ldap-search 
+	       "Use `ldap-search-entries' instead or 
+`ldap-search-basic' for the low-level search API.")
+
+(defun ldap-search-entries (filter &optional host attributes attrsonly withdn)
   "Perform an LDAP search.
 FILTER is the search filter in RFC1558 syntax, i.e., something that
 looks like \"(cn=John Smith)\".
@@ -459,13 +477,16 @@
   (let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
 	ldap
 	result)
-    (message "Opening LDAP connection to %s..." host)
+    (if ldap-verbose
+	(message "Opening LDAP connection to %s..." host))
     (setq ldap (ldap-open host host-plist))
-    (message "Searching with LDAP on %s..." host)
-    (setq result (ldap-search-internal ldap filter 
-				       (plist-get host-plist 'base)
-				       (plist-get host-plist 'scope)
-				       attributes attrsonly withdn))
+    (if ldap-verbose
+	(message "Searching with LDAP on %s..." host))
+    (setq result (ldap-search ldap filter 
+			      (plist-get host-plist 'base)
+			      (plist-get host-plist 'scope)
+			      attributes attrsonly withdn
+			      ldap-verbose))
     (ldap-close ldap)
     (if ldap-ignore-attribute-codings
 	result
@@ -474,6 +495,120 @@
 		 (mapcar 'ldap-decode-attribute record)))
 	      result))))
 
+(defun ldap-add-entries (entries &optional host binddn passwd)
+  "Add entries to an LDAP directory.
+ENTRIES is a list of entry specifications of 
+the form (DN (ATTR . VALUE) (ATTR . VALUE) ...) where
+DN is the distinguished name of an entry to add, the following
+are cons cells containing attribute/value string pairs.
+HOST is the LDAP host, defaulting to `ldap-default-host'
+BINDDN is the DN to bind as to the server
+PASSWD is the corresponding password"
+  (or host
+      (setq host ldap-default-host)
+      (error "No LDAP host specified"))
+  (let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
+	ldap
+	(i 1))
+    (if (or binddn passwd)
+	(setq host-plist (copy-seq host-plist)))
+    (if binddn
+	(setq host-plist (plist-put host-plist 'binddn binddn)))
+    (if passwd
+	(setq host-plist (plist-put host-plist 'passwd passwd)))
+    (if ldap-verbose
+	(message "Opening LDAP connection to %s..." host))
+    (setq ldap (ldap-open host host-plist))
+    (if ldap-verbose
+	(message "Adding LDAP entries..."))
+    (mapcar (function
+	     (lambda (thisentry)
+	       (ldap-add ldap (car thisentry) (cdr thisentry))
+	       (if ldap-verbose
+		   (message "%d added" i))
+	       (setq i (1+ i))))
+	    entries)
+    (ldap-close ldap)))
+
+
+(defun ldap-modify-entries (entry-mods &optional host binddn passwd)
+  "Modify entries of an LDAP directory.
+ENTRY_MODS is a list of entry modifications of the form 
+  (DN MOD-SPEC1 MOD-SPEC2 ...) where DN is the distinguished name of 
+the entry to modify, the following are modification specifications. 
+A modification specification is itself a list of the form 
+(MOD-OP ATTR VALUE1 VALUE2 ...) MOD-OP and ATTR are mandatory, 
+VALUEs are optional depending on MOD-OP.
+MOD-OP is the type of modification, one of the symbols `add', `delete'
+or `replace'. ATTR is the LDAP attribute type to modify.
+HOST is the LDAP host, defaulting to `ldap-default-host'
+BINDDN is the DN to bind as to the server
+PASSWD is the corresponding password"
+  (or host
+      (setq host ldap-default-host)
+      (error "No LDAP host specified"))
+  (let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
+	ldap
+	(i 1))
+    (if (or binddn passwd)
+	(setq host-plist (copy-seq host-plist)))
+    (if binddn
+	(setq host-plist (plist-put host-plist 'binddn binddn)))
+    (if passwd
+	(setq host-plist (plist-put host-plist 'passwd passwd)))
+    (if ldap-verbose
+	(message "Opening LDAP connection to %s..." host))
+    (setq ldap (ldap-open host host-plist))
+    (if ldap-verbose
+	(message "Modifying LDAP entries..."))
+    (mapcar (function
+	     (lambda (thisentry)
+	       (ldap-modify ldap (car thisentry) (cdr thisentry))
+	       (if ldap-verbose
+		   (message "%d modified" i))
+	       (setq i (1+ i))))
+	    entry-mods)
+    (ldap-close ldap)))
+
+
+(defun ldap-delete-entries (dn &optional host binddn passwd)
+  "Delete an entry from an LDAP directory.
+DN is the distinguished name of an entry to delete or 
+a list of those.
+HOST is the LDAP host, defaulting to `ldap-default-host'
+BINDDN is the DN to bind as to the server
+PASSWD is the corresponding password."
+  (or host
+      (setq host ldap-default-host)
+      (error "No LDAP host specified"))
+  (let ((host-plist (cdr (assoc host ldap-host-parameters-alist)))
+	ldap)
+    (if (or binddn passwd)
+	(setq host-plist (copy-seq host-plist)))
+    (if binddn
+	(setq host-plist (plist-put host-plist 'binddn binddn)))
+    (if passwd
+	(setq host-plist (plist-put host-plist 'passwd passwd)))
+    (if ldap-verbose
+	(message "Opening LDAP connection to %s..." host))
+    (setq ldap (ldap-open host host-plist))
+    (if (consp dn)
+	(let ((i 1))
+	  (if ldap-verbose
+	      (message "Deleting LDAP entries..."))
+	  (mapcar (function
+		   (lambda (thisdn)
+		     (ldap-delete ldap thisdn)
+		     (if ldap-verbose
+			 (message "%d deleted" i))
+		     (setq i (1+ i))))
+		  dn))
+      (if ldap-verbose
+	  (message "Deleting LDAP entry..."))
+      (ldap-delete ldap dn))
+    (ldap-close ldap)))
+
+
 (provide 'ldap)
 		
 ;;; ldap.el ends here
--- a/lisp/modeline.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/modeline.el	Mon Aug 13 11:14:34 2007 +0200
@@ -79,7 +79,23 @@
 		  (set-glyph-image modeline-pointer-glyph "fleur" 'global 'x))
 		 (t
 		  (set-glyph-image modeline-pointer-glyph "sb_v_double_arrow"
-				   'global 'x)))))
+				   'global 'x))))
+	 (when (featurep 'mswindows)
+	   (cond ((eq val t)
+		  (set-glyph-image modeline-pointer-glyph
+				   [mswindows-resource :resource-type cursor
+						       :resource-id "SizeAll"]
+				   'global 'mswindows))
+		 ((eq val 'scrollbar)
+		  (set-glyph-image modeline-pointer-glyph
+				   [mswindows-resource :resource-type cursor
+						       :resource-id "Normal"]
+				   'global 'mswindows))
+		 (t
+		  (set-glyph-image modeline-pointer-glyph
+				   [mswindows-resource :resource-type cursor
+						       :resource-id "SizeNS"]
+				   'global 'mswindows)))))
   :group 'modeline)
 
 (defun mouse-drag-modeline (event)
--- a/lisp/msw-faces.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/msw-faces.el	Mon Aug 13 11:14:34 2007 +0200
@@ -29,12 +29,23 @@
 ;; This file does the magic to parse mswindows font names, and make sure that
 ;; the default and modeline attributes of new frames are specified enough.
 
-;;; Force creation of the default face font so that if it fails we get an
-;;; error now instead of a crash at frame creation.
 (defun mswindows-init-device-faces (device)
-  (unless (face-font-instance 'default device)
-    (error "Can't find a suitable default font")))
-
+  (let ((color-default (device-system-metric device 'color-default))
+	(color-3d-face (device-system-metric device 'color-3d-face)))
+    ; Force creation of the default face font so that if it fails we get
+    ; an error now instead of a crash at frame creation.
+    (unless (face-font-instance 'default device)
+      (error "Can't find a suitable default font"))
+    
+    (if (car color-default)
+	(set-face-foreground 'default (car color-default)) device)
+    (if (cdr color-default)
+	(set-face-background 'default (cdr color-default)) device)
+    (if (car color-3d-face)
+	(set-face-foreground 'gui-element (car color-3d-face)) device)
+    (if (cdr color-3d-face)
+	(set-face-background 'gui-element (cdr color-3d-face)) device)
+    (set-face-font 'gui-element "MS Sans Serif:Regular:8" device)))
 
 (defun mswindows-init-frame-faces (frame)
   )
--- a/lisp/mule/mule-cmds.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/mule/mule-cmds.el	Mon Aug 13 11:14:34 2007 +0200
@@ -47,11 +47,9 @@
 (define-key mule-keymap "r" 'toggle-display-direction)	 ; XEmacs
 (define-key mule-keymap "l" 'set-language-environment)
 
-(define-key help-map "\C-L" 'describe-language-support)
 (define-key help-map "L" 'describe-language-environment)
 (define-key help-map "\C-\\" 'describe-input-method)
 (define-key help-map "I" 'describe-input-method)
-(define-key help-map "C" 'describe-coding-system)
 (define-key help-map "h" 'view-hello-file)
 
 ;; Menu for XEmacs were moved to menubar-items.el.
--- a/lisp/package-get.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/lisp/package-get.el	Mon Aug 13 11:14:34 2007 +0200
@@ -239,7 +239,7 @@
 This variable is used to initialize `package-get-remote', the
 variable actually used to specify package download sites."
   :tag "Package download sites"
-  :type '(repeat (list hostname directory))
+  :type '(repeat (list (string :tag "Name") host-name directory))
   :group 'package-get)
 
 (defcustom package-get-remove-copy t
--- a/lwlib/ChangeLog	Mon Aug 13 11:13:33 2007 +0200
+++ b/lwlib/ChangeLog	Mon Aug 13 11:14:34 2007 +0200
@@ -1,3 +1,33 @@
+2000-02-21  Martin Buchholz <martin@xemacs.org>
+
+	* XEmacs 21.2.30 is released.
+
+2000-02-21  Andy Piper  <andy@xemacs.org>
+
+	* lwlib.c (merge_widget_value_args): don't delete the args before
+	copying, lw_copy_widget_value_args will do this for us if
+	necessary.
+	(lw_add_widget_value_arg): Allow existing args to be replaced.
+	(free_widget_value_args): Set args to 0 rather than 0xdeadbeef,
+	reference couting works better that way.
+	(lw_copy_widget_value_args): Do the right thing.
+
+	* lwlib-Xm.c (xm_create_progress): Make sensitive as this looks
+	much better.
+	* lwlib-Xaw.c (xaw_create_progress): ditto.
+
+2000-02-12  Jan Vroonhof  <vroonhof@math.ethz.ch>
+
+	* xlwmenu.h (XmUNSPECIFIED_PIXMAP): Define this if we are using Motif
+	compatible resource names.
+
+	* xlwmenu.c (make_shadow_gcs): Always check for XmUNSPECIFIED_PIXMAP
+	even if we are only 'compatible' with the Motif resources.
+
+2000-02-15  Andy Piper  <andy@xemacs.org>
+
+	* xlwgauge.c (GaugeExpose): remove shadows.
+
 2000-02-16  Martin Buchholz <martin@xemacs.org>
 
 	* XEmacs 21.2.29 is released.
--- a/lwlib/lwlib-Xaw.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/lwlib/lwlib-Xaw.c	Mon Aug 13 11:14:34 2007 +0200
@@ -788,7 +788,7 @@
   int ac = 0;
   Widget scale = 0;
   widget_value* val = instance->info->val;
-
+#if 0		/* This looks too awful, although more correct. */
   if (!val->call_data)
     {
       XtSetArg (al [ac], XtNsensitive, False);		ac++;
@@ -797,6 +797,10 @@
     {
       XtSetArg (al [ac], XtNsensitive, val->enabled);		ac++;
     }
+#else
+  XtSetArg (al [ac], XtNsensitive, True);		ac++;
+#endif
+
   XtSetArg (al [ac], XtNmappedWhenManaged, FALSE);	ac++;
   XtSetArg (al [ac], XtNorientation, XtorientHorizontal);	ac++;
   XtSetArg (al [ac], XtNhighlightThickness, (Dimension)0);ac++;
--- a/lwlib/lwlib-Xm.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/lwlib/lwlib-Xm.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1646,7 +1646,7 @@
   int ac = 0;
   Widget scale = 0;
   widget_value* val = instance->info->val;
-
+#if 0		/* This looks too awful, although more correct. */
   if (!val->call_data)
     {
       XtSetArg (al [ac], XmNsensitive, False);		ac++;
@@ -1655,6 +1655,9 @@
     {
       XtSetArg (al [ac], XmNsensitive, val->enabled);		ac++;
     }
+#else
+  XtSetArg (al [ac], XmNsensitive, True);		ac++;
+#endif
   XtSetArg (al [ac], XmNalignment, XmALIGNMENT_BEGINNING);	ac++;
   XtSetArg (al [ac], XmNuserData, val->call_data);		ac++;
   XtSetArg (al [ac], XmNmappedWhenManaged, FALSE);	ac++;
--- a/lwlib/lwlib.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/lwlib/lwlib.c	Mon Aug 13 11:14:34 2007 +0200
@@ -261,7 +261,6 @@
     {
       /* #### Do something more sensible here than just copying the
          new values (like actually merging the values). */
-      free_widget_value_args (old);
       lw_copy_widget_value_args (new, old);
       changed = True;
     }
@@ -1365,6 +1364,7 @@
 
 void lw_add_widget_value_arg (widget_value* wv, String name, XtArgVal value)
 {
+  int i = 0;
   if (!wv->args)
     {
       wv->args = (widget_args *) malloc (sizeof (widget_args));
@@ -1378,7 +1378,19 @@
   if (wv->args->nargs > 10)
     return;
 
-  XtSetArg (wv->args->args [wv->args->nargs], name, value);   wv->args->nargs++;
+  /* If the arg is already there then we must replace it. */
+  for (i = 0; i < wv->args->nargs; i++)
+    {
+      if (!strcmp (wv->args->args[i].name, name))
+	{
+	  XtSetArg (wv->args->args [i], name, value);
+	  break;
+	}
+    }
+  if (i >= wv->args->nargs)
+    {
+      XtSetArg (wv->args->args [wv->args->nargs], name, value);   wv->args->nargs++;
+    }
 }
 
 static void free_widget_value_args (widget_value* wv)
@@ -1397,20 +1409,22 @@
 #endif
 	  free (wv->args->args);
 	  free (wv->args);
-	  wv->args = (widget_args*)0xDEADBEEF;
+	  wv->args = 0;
 	}
     }
 }
 
 void lw_copy_widget_value_args (widget_value* val, widget_value* copy)
 {
-  if (!val->args)
+  if (val == copy || val->args == copy->args)
+    return;
+
+  if (copy->args)
     {
-      if (copy->args)
-	free_widget_value_args (copy);
-      copy->args = 0;
+      free_widget_value_args (copy);
     }
-  else
+
+  if (val->args)
     {
       copy->args = val->args;
       copy->args->ref_count++;
--- a/lwlib/xlwgauge.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/lwlib/xlwgauge.c	Mon Aug 13 11:14:34 2007 +0200
@@ -466,7 +466,7 @@
 	if( gw->gauge.nlabels > 1 )
 	{
 	  char	label[20], *s = label ;
-	  int	len, w,h =0 ;
+	  int	xlen, wd,h =0 ;
 
 	  if( gw->gauge.orientation == XtorientHorizontal )
 	    y = gw->gauge.lmargin + gw->label.font->max_bounds.ascent - 1 ;
@@ -483,13 +483,13 @@
 	      s = gw->gauge.labels[i] ;
 	    if( s != NULL ) {
 	      x = e0 + i*(e1-e0-1)/(gw->gauge.nlabels-1) ;
-	      len = strlen(s) ;
+	      xlen = strlen(s) ;
 	      if( gw->gauge.orientation == XtorientHorizontal ) {
-		w = XTextWidth(gw->label.font, s, len) ;
-		XDrawString(dpy,win,gc, x-w/2,y, s,len) ;
+		wd = XTextWidth(gw->label.font, s, xlen) ;
+		XDrawString(dpy,win,gc, x-wd/2,y, s,xlen) ;
 	      }
 	      else {
-		XDrawString(dpy,win,gc, y,x+h, s,len) ;
+		XDrawString(dpy,win,gc, y,x+h, s,xlen) ;
 	      }
 	    }
 	  }
--- a/lwlib/xlwmenu.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/lwlib/xlwmenu.c	Mon Aug 13 11:14:34 2007 +0200
@@ -2809,30 +2809,22 @@
   xgcv.foreground = mw->menu.top_shadow_color;
   xgcv.background = mw->core.background_pixel;
 /*  xgcv.stipple = mw->menu.top_shadow_pixmap; gtb */
-#ifdef NEED_MOTIF
   if (mw->menu.top_shadow_pixmap &&
       mw->menu.top_shadow_pixmap != XmUNSPECIFIED_PIXMAP)
      xgcv.stipple = mw->menu.top_shadow_pixmap;
   else
      xgcv.stipple = 0;
-#else
-  xgcv.stipple = mw->menu.top_shadow_pixmap;
-#endif /* NEED_MOTIF */
   pm = (xgcv.stipple ? GCStipple|GCFillStyle : 0);
   mw->menu.shadow_top_gc =
     XtGetGC((Widget)mw, GCForeground|GCBackground|pm, &xgcv);
 
   xgcv.foreground = mw->menu.bottom_shadow_color;
 /*  xgcv.stipple = mw->menu.bottom_shadow_pixmap; gtb */
-#ifdef NEED_MOTIF
   if (mw->menu.bottom_shadow_pixmap &&
       mw->menu.bottom_shadow_pixmap != XmUNSPECIFIED_PIXMAP)
      xgcv.stipple = mw->menu.bottom_shadow_pixmap;
   else
      xgcv.stipple = 0;
-#else
-  xgcv.stipple = mw->menu.bottom_shadow_pixmap;
-#endif /* NEED_MOTIF */
   pm = (xgcv.stipple ? GCStipple|GCFillStyle : 0);
   mw->menu.shadow_bottom_gc =
     XtGetGC ((Widget)mw, GCForeground|GCBackground|pm, &xgcv);
--- a/lwlib/xlwmenu.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/lwlib/xlwmenu.h	Mon Aug 13 11:14:34 2007 +0200
@@ -56,6 +56,7 @@
 # define XmCTopShadowPixmap	"TopShadowPixmap"
 # define XmNbottomShadowPixmap	"bottomShadowPixmap"
 # define XmCBottomShadowPixmap	"BottomShadowPixmap"
+# define XmUNSPECIFIED_PIXMAP   2
 # define XmRHorizontalDimension	"HorizontalDimension"
 # define XmNspacing		"spacing"
 # define XmCSpacing		"Spacing"
--- a/man/ChangeLog	Mon Aug 13 11:13:33 2007 +0200
+++ b/man/ChangeLog	Mon Aug 13 11:14:34 2007 +0200
@@ -1,3 +1,23 @@
+2000-02-21  Martin Buchholz <martin@xemacs.org>
+
+	* XEmacs 21.2.30 is released.
+
+2000-02-21  Jonathan Harris  <jhar@tardis.ed.ac.uk>
+
+	* internals/internals.texi: Made texinfmt-friendly.
+
+2000-01-20  Mark Thomas  <mthomas@jprc.com>
+
+	* lispref/backups.texi (Numbered Backups):
+	* xemacs/files.texi (Backup Deletion):
+	Change trim-versions-without-asking to delete-old-versions.
+
+2000-02-19  Martin Buchholz  <martin@xemacs.org>
+
+	* internals/internals.texi (Conversion to and from External Data):
+	Document TO_EXTERNAL_FORMAT and friends.
+	Doc bug fixes.
+
 2000-02-16  Martin Buchholz <martin@xemacs.org>
 
 	* XEmacs 21.2.29 is released.
--- a/man/cl.texi	Mon Aug 13 11:13:33 2007 +0200
+++ b/man/cl.texi	Mon Aug 13 11:14:34 2007 +0200
@@ -3218,8 +3218,8 @@
 @example
 (declaim (inline foo bar))
 (eval-when (compile load eval) (proclaim '(inline foo bar)))
-(proclaim-inline foo bar)      ; XEmacs only
-(defsubst foo (...) ...)       ; instead of defun; Emacs 19 only
+(proclaim-inline foo bar)   ; XEmacs only
+(defsubst foo (...) ...)    ; instead of defun; Emacs 19 only
 @end example
 
 @strong{Please note:}  This declaration remains in effect after the
@@ -5549,8 +5549,8 @@
 just as well to use a regular quote:
 
 @example
-(loop for x in y by #'cddr collect (mapcar #'plusp x))  ; Common Lisp
-(loop for x in y by 'cddr collect (mapcar 'plusp x))    ; Emacs Lisp
+(loop for x in y by #'cddr collect (mapcar #'plusp x)) ; Common Lisp
+(loop for x in y by 'cddr collect (mapcar 'plusp x))   ; Emacs Lisp
 @end example
 
 When @code{#'} introduces a @code{lambda} form, it is best to
--- a/man/internals/internals.texi	Mon Aug 13 11:13:33 2007 +0200
+++ b/man/internals/internals.texi	Mon Aug 13 11:14:34 2007 +0200
@@ -138,7 +138,9 @@
 * Interface to X Windows::
 * Index::
 
-@detailmenu --- The Detailed Node Listing ---
+@detailmenu
+
+--- The Detailed Node Listing ---
 
 A History of Emacs
 
@@ -189,7 +191,6 @@
 * Allocation from Frob Blocks::
 * lrecords::
 * Low-level allocation::
-* Pure Space::
 * Cons::
 * Vector::
 * Bit Vector::
@@ -966,7 +967,7 @@
 
 Unfortunately, there is no perfect language.  Static typing allows a
 compiler to catch programmer errors and produce more efficient code, but
-makes programming more tedious and less fun.  For the forseeable future,
+makes programming more tedious and less fun.  For the foreseeable future,
 an Ideal Editing and Programming Environment (and that is what XEmacs
 aspires to) will be programmable in multiple languages: high level ones
 like Lisp for user customization and prototyping, and lower level ones
@@ -1619,25 +1620,17 @@
  [ 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 ]
  [ 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 ]
 
-   <---> ^ <------------------------------------------------------>
-    tag  |       a pointer to a structure, or an integer
-         |
-       mark bit
-@end example
-
-The tag describes the type of the Lisp object.  For integers and chars,
-the lower 28 bits contain the value of the integer or char; for all
-others, the lower 28 bits contain a pointer.  The mark bit is used
-during garbage-collection, and is always 0 when garbage collection is
-not happening. (The way that garbage collection works, basically, is that it
-loops over all places where Lisp objects could exist---this includes
-all global variables in C that contain Lisp objects [including
-@code{Vobarray}, the C equivalent of @code{obarray}; through this, all
-Lisp variables will get marked], plus various other places---and
-recursively scans through the Lisp objects, marking each object it finds
-by setting the mark bit.  Then it goes through the lists of all objects
-allocated, freeing the ones that are not marked and turning off the mark
-bit of the ones that are marked.)
+   <---------------------------------------------------------> <->
+            a pointer to a structure, or an integer            tag
+@end example
+
+A tag of 00 is used for all pointer object types, a tag of 10 is used
+for characters, and the other two tags 01 and 11 are joined together to
+form the integer object type.  This representation gives us 31 bits
+integers, 30 bits characters and pointers are represented directly
+without any bit masking.  This representation, though, assumes that
+pointers to structs are always aligned to multiples of 4, so the lower 2
+bits are always zero.
 
 Lisp objects use the typedef @code{Lisp_Object}, but the actual C type
 used for the Lisp object can vary.  It can be either a simple type
@@ -1654,97 +1647,16 @@
 determined by the preprocessor constant @code{USE_UNION_TYPE} which is
 defined via the @code{--use-union-type} option to @code{configure}.
 
-@cindex record type
-
-Note that there are only eight types that the tag can represent, but
-many more actual types than this.  This is handled by having one of the
-tag types specify a meta-type called a @dfn{record}; for all such
-objects, the first four bytes of the pointed-to structure indicate what
-the actual type is.
-
-Note also that having 28 bits for pointers and integers restricts a lot
-of things to 256 megabytes of memory. (Basically, enough pointers and
-indices and whatnot get stuffed into Lisp objects that the total amount
-of memory used by XEmacs can't grow above 256 megabytes.  In older
-versions of XEmacs and GNU Emacs, the tag was 5 bits wide, allowing for
-32 types, which was more than the actual number of types that existed at
-the time, and no ``record'' type was necessary.  However, this limited
-the editor to 64 megabytes total, which some users who edited large
-files might conceivably exceed.)
-
-Also, note that there is an implicit assumption here that all pointers
-are low enough that the top bits are all zero and can just be chopped
-off.  On standard machines that allocate memory from the bottom up (and
-give each process its own address space), this works fine.  Some
-machines, however, put the data space somewhere else in memory
-(e.g. beginning at 0x80000000).  Those machines cope by defining
-@code{DATA_SEG_BITS} in the corresponding @file{m/} or @file{s/} file to
-the proper mask.  Then, pointers retrieved from Lisp objects are
-automatically OR'ed with this value prior to being used.
-
-A corollary of the previous paragraph is that @strong{(pointers to)
-stack-allocated structures cannot be put into Lisp objects}.  The stack
-is generally located near the top of memory; if you put such a pointer
-into a Lisp object, it will get its top bits chopped off, and you will
-lose.
-
-Actually, there's an alternative representation of a @code{Lisp_Object},
-invented by Kyle Jones, that is used when the
-@code{--use-minimal-tagbits} option to @code{configure} is used.  In
-this case the 2 lower bits are used for the tag bits.  This
-representation assumes that pointers to structs are always aligned to
-multiples of 4, so the lower 2 bits are always zero.
-
-@example
- [ 3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 ]
- [ 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 ]
-
-   <---------------------------------------------------------> <->
-            a pointer to a structure, or an integer            tag
-@end example
-
-A tag of 00 is used for all pointer object types, a tag of 10 is used
-for characters, and the other two tags 01 and 11 are joined together to
-form the integer object type.  The markbit is moved to part of the
-structure being pointed at (integers and chars do not need to be marked,
-since no memory is allocated).  This representation has these
-advantages:
-
-@enumerate
-@item
-31 bits can be used for Lisp Integers.
-@item
-@emph{Any} pointer can be represented directly, and no bit masking
-operations are necessary.
-@end enumerate
-
-The disadvantages are:
-
-@enumerate
-@item
-An extra level of indirection is needed when accessing the object types
-that were not record types.  So checking whether a Lisp object is a cons
-cell becomes a slower operation.
-@item
-Mark bits can no longer be stored directly in Lisp objects, so another
-place for them must be found.  This means that a cons cell requires more
-memory than merely room for 2 lisp objects, leading to extra memory use.
-@end enumerate
-
 Various macros are used to construct Lisp objects and extract the
 components.  Macros of the form @code{XINT()}, @code{XCHAR()},
-@code{XSTRING()}, @code{XSYMBOL()}, etc. mask out the pointer/integer
-field and cast it to the appropriate type.  All of the macros that
-construct pointers will @code{OR} with @code{DATA_SEG_BITS} if
-necessary.  @code{XINT()} needs to be a bit tricky so that negative
-numbers are properly sign-extended: Usually it does this by shifting the
-number four bits to the left and then four bits to the right.  This
-assumes that the right-shift operator does an arithmetic shift (i.e. it
-leaves the most-significant bit as-is rather than shifting in a zero, so
-that it mimics a divide-by-two even for negative numbers).  Not all
-machines/compilers do this, and on the ones that don't, a more
-complicated definition is selected by defining
-@code{EXPLICIT_SIGN_EXTEND}.
+@code{XSTRING()}, @code{XSYMBOL()}, etc. shift out the tag field if
+needed cast it to the appropriate type.  @code{XINT()} needs to be a bit
+tricky so that negative numbers are properly sign-extended.  Since
+integers are stored left-shifted, if the right-shift operator does an
+arithmetic shift (i.e. it leaves the most-significant bit as-is rather
+than shifting in a zero, so that it mimics a divide-by-two even for
+negative numbers) the shift to remove the tag bit is enough.  This is
+the case on all the systems we support.
 
 Note that when @code{ERROR_CHECK_TYPECHECK} is defined, the extractor
 macros become more complicated---they check the tag bits and/or the
@@ -1844,9 +1756,8 @@
 segment is re-mapped so that it becomes part of the (unmodifiable) code
 segment in the dumped executable.  This allows this memory to be shared
 among multiple running XEmacs processes.  XEmacs is careful to place as
-much constant data as possible into initialized variables (in
-particular, into what's called the @dfn{pure space}---see below) during
-the @file{temacs} phase.
+much constant data as possible into initialized variables during the
+@file{temacs} phase.
 
 @cindex copy-on-write
 @strong{Please note:} This kludge only works on a few systems nowadays,
@@ -2265,19 +2176,22 @@
 The data representing the text in a buffer or string is logically a set
 of @code{Bufbyte}s.
 
-XEmacs does not work with character formats all the time; when reading
-characters from the outside, it decodes them to an internal format, and
-likewise encodes them when writing.  @code{Bufbyte} (in fact
+XEmacs does not work with the same character formats all the time; when
+reading characters from the outside, it decodes them to an internal
+format, and likewise encodes them when writing.  @code{Bufbyte} (in fact
 @code{unsigned char}) is the basic unit of XEmacs internal buffers and
-strings format.
+strings format.  A @code{Bufbyte *} is the type that points at text
+encoded in the variable-width internal encoding.
 
 One character can correspond to one or more @code{Bufbyte}s.  In the
-current implementation, an ASCII character is represented by the same
-@code{Bufbyte}, and extended characters are represented by a sequence of
-@code{Bufbyte}s.
-
-Without Mule support, a @code{Bufbyte} is equivalent to an
-@code{Emchar}.
+current Mule implementation, an ASCII character is represented by the
+same @code{Bufbyte}, and other characters are represented by a sequence
+of two or more @code{Bufbyte}s.
+
+Without Mule support, there are exactly 256 characters, implicitly
+Latin-1, and each character is represented using one @code{Bufbyte}, and
+there is a one-to-one correspondence between @code{Bufbyte}s and
+@code{Emchar}s.
 
 @item Bufpos
 @itemx Charcount
@@ -2287,8 +2201,8 @@
 A @code{Charcount} represents a number (count) of characters.
 Logically, subtracting two @code{Bufpos} values yields a
 @code{Charcount} value.  Although all of these are @code{typedef}ed to
-@code{int}, we use them in preference to @code{int} to make it clear
-what sort of position is being used.
+@code{EMACS_INT}, we use them in preference to @code{EMACS_INT} to make
+it clear what sort of position is being used.
 
 @code{Bufpos} and @code{Charcount} values are the only ones that are
 ever visible to Lisp.
@@ -2298,7 +2212,7 @@
 @cindex Bytind
 @cindex Bytecount
 A @code{Bytind} represents a byte position in a buffer or string.  A
-@code{Bytecount} represents the distance between two positions in bytes.
+@code{Bytecount} represents the distance between two positions, in bytes.
 The relationship between @code{Bytind} and @code{Bytecount} is the same
 as the relationship between @code{Bufpos} and @code{Charcount}.
 
@@ -2325,10 +2239,10 @@
 @table @code
 @item MAX_EMCHAR_LEN
 @cindex MAX_EMCHAR_LEN
-This preprocessor constant is the maximum number of buffer bytes per
-Emacs character, i.e. the byte length of an @code{Emchar}.  It is useful
-when allocating temporary strings to keep a known number of characters.
-For instance:
+This preprocessor constant is the maximum number of buffer bytes to
+represent an Emacs character in the variable width internal encoding.
+It is useful when allocating temporary strings to keep a known number of
+characters.  For instance:
 
 @example
 @group
@@ -2449,107 +2363,135 @@
 
 The interface to conversion between the internal and external
 representations of text are the numerous conversion macros defined in
-@file{buffer.h}.  Before looking at them, we'll look at the external
-formats supported by these macros.
-
-Currently meaningful formats are @code{FORMAT_BINARY},
-@code{FORMAT_FILENAME}, @code{FORMAT_OS}, and @code{FORMAT_CTEXT}.  Here
-is a description of these.
-
-@table @code
-@item FORMAT_BINARY
-Binary format.  This is the simplest format and is what we use in the
-absence of a more appropriate format.  This converts according to the
-@code{binary} coding system:
-
-@enumerate a
-@item
-On input, bytes 0--255 are converted into characters 0--255.
-@item
-On output, characters 0--255 are converted into bytes 0--255 and other
-characters are converted into `X'.
-@end enumerate
-
-@item FORMAT_FILENAME
-Format used for filenames.  In the original Mule, this is user-definable
-with the @code{pathname-coding-system} variable.  For the moment, we
-just use the @code{binary} coding system.
-
-@item FORMAT_OS
-Format used for the external Unix environment---@code{argv[]}, stuff
-from @code{getenv()}, stuff from the @file{/etc/passwd} file, etc.
-
-Perhaps should be the same as FORMAT_FILENAME.
-
-@item FORMAT_CTEXT
-Compound--text format.  This is the standard X format used for data
-stored in properties, selections, and the like.  This is an 8-bit
-no-lock-shift ISO2022 coding system.
-@end table
-
-The macros to convert between these formats and the internal format, and
-vice versa, follow.
+@file{buffer.h}.  There used to be a fixed set of external formats
+supported by these macros, but now any coding system can be used with
+these macros.  The coding system alias mechanism is used to create the
+following logical coding systems, which replace the fixed external
+formats.  The (dontusethis-set-symbol-value-handler) mechanism was
+enhanced to make this possible (more work on that is needed - like
+remove the @code{dontusethis-} prefix).
 
 @table @code
-@item GET_CHARPTR_INT_DATA_ALLOCA
-@itemx GET_CHARPTR_EXT_DATA_ALLOCA
-These two are the most basic conversion macros.
-@code{GET_CHARPTR_INT_DATA_ALLOCA} converts external data to internal
-format, and @code{GET_CHARPTR_EXT_DATA_ALLOCA} converts the other way
-around.  The arguments each of these receives are @var{ptr} (pointer to
-the text in external format), @var{len} (length of texts in bytes),
-@var{fmt} (format of the external text), @var{ptr_out} (lvalue to which
-new text should be copied), and @var{len_out} (lvalue which will be
-assigned the length of the internal text in bytes).  The resulting text
-is stored to a stack-allocated buffer.  If the text doesn't need
-changing, these macros will do nothing, except for setting
-@var{len_out}.
-
-The macros above take many arguments which makes them unwieldy.  For
-this reason, a number of convenience macros are defined with obvious
-functionality, but accepting less arguments.  The general rule is that
-macros with @samp{INT} in their name convert text to internal Emacs
-representation, whereas the @samp{EXT} macros convert to external
-representation.
-
-@item GET_C_CHARPTR_INT_DATA_ALLOCA
-@itemx GET_C_CHARPTR_EXT_DATA_ALLOCA
-As their names imply, these macros work on C char pointers, which are
-zero-terminated, and thus do not need @var{len} or @var{len_out}
-parameters.
-
-@item GET_STRING_EXT_DATA_ALLOCA
-@itemx GET_C_STRING_EXT_DATA_ALLOCA
-These two macros convert a Lisp string into an external representation.
-The difference between them is that @code{GET_STRING_EXT_DATA_ALLOCA}
-stores its output to a generic string, providing @var{len_out}, the
-length of the resulting external string.  On the other hand,
-@code{GET_C_STRING_EXT_DATA_ALLOCA} assumes that the caller will be
-satisfied with output string being zero-terminated.
-
-Note that for Lisp strings only one conversion direction makes sense.
-
-@item GET_C_CHARPTR_EXT_BINARY_DATA_ALLOCA
-@itemx GET_CHARPTR_EXT_BINARY_DATA_ALLOCA
-@itemx GET_STRING_BINARY_DATA_ALLOCA
-@itemx GET_C_STRING_BINARY_DATA_ALLOCA
-@itemx GET_C_CHARPTR_EXT_FILENAME_DATA_ALLOCA
-@itemx ...
-These macros convert internal text to a specific external
-representation, with the external format being encoded into the name of
-the macro.  Note that the @code{GET_STRING_...} and
-@code{GET_C_STRING...}  macros lack the @samp{EXT} tag, because they
-only make sense in that direction.
-
-@item GET_C_CHARPTR_INT_BINARY_DATA_ALLOCA
-@itemx GET_CHARPTR_INT_BINARY_DATA_ALLOCA
-@itemx GET_C_CHARPTR_INT_FILENAME_DATA_ALLOCA
-@itemx ...
-These macros convert external text of a specific format to its internal
-representation, with the external format being incoded into the name of
-the macro.
+@item Qbinary
+This is the simplest format and is what we use in the absence of a more
+appropriate format.  This converts according to the @code{binary} coding
+system:
+
+@enumerate a
+@item
+On input, bytes 0--255 are converted into (implicitly Latin-1)
+characters 0--255.  A non-Mule xemacs doesn't really know about
+different character sets and the fonts to display them, so the bytes can
+be treated as text in different 1-byte encodings by simply setting the
+appropriate fonts.  So in a sense, non-Mule xemacs is a multi-lingual
+editor if, for example, different fonts are used to display text in
+different buffers, faces, or windows.  The specifier mechanism gives the
+user complete control over this kind of behavior.
+@item
+On output, characters 0--255 are converted into bytes 0--255 and other
+characters are converted into `~'.
+@end enumerate
+
+@item Qfile_name
+Format used for filenames.  This is user-definable via either the
+@code{file-name-coding-system} or @code{pathname-coding-system} (now
+obsolete) variables.
+
+@item Qnative
+Format used for the external Unix environment---@code{argv[]}, stuff
+from @code{getenv()}, stuff from the @file{/etc/passwd} file, etc.
+Currently this is the same as Qfile_name.  The two should be
+distinguished for clarity and possible future separation.
+
+@item Qctext
+Compound--text format.  This is the standard X11 format used for data
+stored in properties, selections, and the like.  This is an 8-bit
+no-lock-shift ISO2022 coding system.  This is a real coding system,
+unlike Qfile_name, which is user-definable.
 @end table
 
+There are two fundamental macros to convert between external and
+internal format.
+
+@code{TO_INTERNAL_FORMAT} converts external data to internal format, and
+@code{TO_EXTERNAL_FORMAT} converts the other way around.  The arguments
+each of these receives are a source type, a source, a sink type, a sink,
+and a coding system (or a symbol naming a coding system).
+
+A typical call looks like
+@example
+TO_EXTERNAL_FORMAT (LISP_STRING, str, C_STRING_MALLOC, ptr, Qfile_name);
+@end example
+
+which means that the contents of the lisp string @code{str} are written
+to a malloc'ed memory area which will be pointed to by @code{ptr}, after
+the function returns.  The conversion will be done using the
+@code{file-name} coding system, which will be controlled by the user
+indirectly by setting or binding the variable
+@code{file-name-coding-system}.
+
+Some sources and sinks require two C variables to specify.  We use some
+preprocessor magic to allow different source and sink types, and even
+different numbers of arguments to specify different types of sources and
+sinks.
+
+So we can have a call that looks like
+@example
+TO_INTERNAL_FORMAT (DATA, (ptr, len),
+                    MALLOC, (ptr, len),
+                    coding_system);
+@end example
+
+The parenthesized argument pairs are required to make the preprocessor
+magic work.
+
+Here are the different source and sink types:
+
+@table @code
+@item @code{DATA, (ptr, len),}
+input data is a fixed buffer of size @var{len} at address @var{ptr}
+@item @code{ALLOCA, (ptr, len),}
+output data is placed in an alloca()ed buffer of size @var{len} pointed to by @var{ptr}
+@item @code{MALLOC, (ptr, len),}
+output data is in a malloc()ed buffer of size @var{len} pointed to by @var{ptr}
+@item @code{C_STRING_ALLOCA, ptr,}
+equivalent to @code{ALLOCA (ptr, len_ignored)} on output.
+@item @code{C_STRING_MALLOC, ptr,}
+equivalent to @code{MALLOC (ptr, len_ignored)} on output
+@item @code{C_STRING, ptr,}
+equivalent to @code{DATA, (ptr, strlen (ptr) + 1)} on input
+@item @code{LISP_STRING, string,}
+input or output is a Lisp_Object of type string
+@item @code{LISP_BUFFER, buffer,}
+output is written to @code{(point)} in lisp buffer @var{buffer}
+@item @code{LISP_LSTREAM, lstream,}
+input or output is a Lisp_Object of type lstream
+@item @code{LISP_OPAQUE, object,}
+input or output is a Lisp_Object of type opaque
+@end table
+
+Often, the data is being converted to a '\0'-byte-terminated string,
+which is the format required by many external system C APIs.  For these
+purposes, a source type of @code{C_STRING} or a sink type of
+@code{C_STRING_ALLOCA} or @code{C_STRING_MALLOC} is appropriate.
+Otherwise, we should try to keep XEmacs '\0'-byte-clean, which means
+using (ptr, len) pairs.
+
+The sinks to be specified must be lvalues, unless they are the lisp
+object types @code{LISP_LSTREAM} or @code{LISP_BUFFER}.
+
+For the sink types @code{ALLOCA} and @code{C_STRING_ALLOCA}, the
+resulting text is stored in a stack-allocated buffer, which is
+automatically freed on returning from the function.  However, the sink
+types @code{MALLOC} and @code{C_STRING_MALLOC} return @code{xmalloc()}ed
+memory.  The caller is responsible for freeing this memory using
+@code{xfree()}.
+
+Note that it doesn't make sense for @code{LISP_STRING} to be a source
+for @code{TO_INTERNAL_FORMAT} or a sink for @code{TO_EXTERNAL_FORMAT}.
+You'll get an assertion failure if you try.
+
+
 @node General Guidelines for Writing Mule-Aware Code, An Example of Mule-Aware Code, Conversion to and from External Data, Coding for Mule
 @subsection General Guidelines for Writing Mule-Aware Code
 
@@ -2577,10 +2519,23 @@
 buffers literally.
 
 This means that when a system function, such as @code{readdir}, returns
-a string, you need to convert it using one of the conversion macros
+a string, you may need to convert it using one of the conversion macros
 described in the previous chapter, before passing it further to Lisp.
-In the case of @code{readdir}, you would use the
-@code{GET_C_CHARPTR_INT_FILENAME_DATA_ALLOCA} macro.
+
+Actually, most of the basic system functions that accept '\0'-terminated
+string arguments, like @code{stat()} and @code{open()}, have been
+@strong{encapsulated} so that they are they @code{always} do internal to
+external conversion themselves.  This means you must pass internally
+encoded data, typically the @code{XSTRING_DATA} of a Lisp_String to
+these functions.  This is actually a design bug, since it unexpectedly
+changes the semantics of the system functions.  A better design would be
+to provide separate versions of these system functions that accepted
+Lisp_Objects which were lisp strings in place of their current
+@code{char *} arguments.
+
+@example
+int stat_lisp (Lisp_Object path, struct stat *buf); /* Implement me */
+@end example
 
 Also note that many internal functions, such as @code{make_string},
 accept Bufbytes, which removes the need for them to convert the data
@@ -2592,10 +2547,9 @@
 @node An Example of Mule-Aware Code,  , General Guidelines for Writing Mule-Aware Code, Coding for Mule
 @subsection An Example of Mule-Aware Code
 
-As an example of Mule-aware code, we shall will analyze the
-@code{string} function, which conses up a Lisp string from the character
-arguments it receives.  Here is the definition, pasted from
-@code{alloc.c}:
+As an example of Mule-aware code, we will analyze the @code{string}
+function, which conses up a Lisp string from the character arguments it
+receives.  Here is the definition, pasted from @code{alloc.c}:
 
 @example
 @group
@@ -2708,7 +2662,7 @@
 Generated header files should be included using the @code{#include <...>} syntax,
 not the @code{#include "..."} syntax.  The generated headers are:
 
-@file{config.h puresize-adjust.h sheap-adjust.h paths.h Emacs.ad.h}
+@file{config.h sheap-adjust.h paths.h Emacs.ad.h}
 
 The basic rule is that you should assume builds using @code{--srcdir}
 and the @code{#include <...>} syntax needs to be used when the
@@ -2741,6 +2695,27 @@
 @end example
 @end itemize
 
+Here is a checklist of things to do when creating a new lisp object type
+named @var{foo}:
+
+@enumerate
+@item
+create @var{foo}.h
+@item
+create @var{foo}.c
+@item
+add definitions of syms_of_@var{foo}, etc. to @var{foo}.c
+@item
+add declarations of syms_of_@var{foo}, etc. to symsinit.h
+@item
+add calls to syms_of_@var{foo}, etc. to emacs.c(main_1)
+@item
+add definitions of macros like CHECK_FOO and FOOP to @var{foo}.h
+@item
+add the new type index to enum lrecord_type
+@item
+add DEFINE_LRECORD_IMPLEMENTATION call to @var{foo}.c
+@end enumerate
 
 @node A Summary of the Various XEmacs Modules, Allocation of Objects in XEmacs Lisp, Rules When Writing New C Code, Top
 @chapter A Summary of the Various XEmacs Modules
@@ -3039,8 +3014,6 @@
 
 @example
 alloc.c
-pure.c
-puresize.h
 @end example
 
 The large module @file{alloc.c} implements all of the basic allocation and
@@ -3066,35 +3039,6 @@
 subtypes in the subsystem; this provides a great deal of robustness to
 the XEmacs code.
 
-@cindex pure space
-@file{pure.c} contains the declaration of the @dfn{purespace} array.
-Pure space is a hack used to place some constant Lisp data into the code
-segment of the XEmacs executable, even though the data needs to be
-initialized through function calls.  (See above in section VIII for more
-info about this.)  During startup, certain sorts of data is
-automatically copied into pure space, and other data is copied manually
-in some of the basic Lisp files by calling the function @code{purecopy},
-which copies the object if possible (this only works in temacs, of
-course) and returns the new object.  In particular, while temacs is
-executing, the Lisp reader automatically copies all compiled-function
-objects that it reads into pure space.  Since compiled-function objects
-are large, are never modified, and typically comprise the majority of
-the contents of a compiled-Lisp file, this works well.  While XEmacs is
-running, any attempt to modify an object that resides in pure space
-causes an error.  Objects in pure space are never garbage collected --
-almost all of the time, they're intended to be permanent, and in any
-case you can't write into pure space to set the mark bits.
-
-@file{puresize.h} contains the declaration of the size of the pure space
-array.  This depends on the optional features that are compiled in, any
-extra purespace requested by the user at compile time, and certain other
-factors (e.g. 64-bit machines need more pure space because their Lisp
-objects are larger).  The smallest size that suffices should be used, so
-that there's no wasted space.  If there's not enough pure space, you
-will get an error during the build process, specifying how much more
-pure space is needed.
-
-
 
 @example
 eval.c
@@ -4418,7 +4362,6 @@
 * Allocation from Frob Blocks::
 * lrecords::
 * Low-level allocation::
-* Pure Space::
 * Cons::
 * Vector::
 * Bit Vector::
@@ -4449,10 +4392,10 @@
 have no corresponding Lisp primitives.  Every Lisp object, though,
 has at least one C primitive for creating it.
 
-  Recall from section (VII) that a Lisp object, as stored in a 32-bit
-or 64-bit word, has a mark bit, a few tag bits, and a ``value'' that
-occupies the remainder of the bits.  We can separate the different
-Lisp object types into four broad categories:
+  Recall from section (VII) that a Lisp object, as stored in a 32-bit or
+64-bit word, has a few tag bits, and a ``value'' that occupies the
+remainder of the bits.  We can separate the different Lisp object types
+into three broad categories:
 
 @itemize @bullet
 @item
@@ -4463,54 +4406,28 @@
 @code{GCPRO}ed.
 @end itemize
 
-  In the remaining three categories, the value is a pointer to a
-structure.
+  In the remaining two categories, the type is stored in the object
+itself.  The tag for all such objects is the generic @dfn{lrecord}
+(Lisp_Type_Record) tag.  The first bytes of the object's structure are an
+integer (actually a char) characterising the object's type and some
+flags, in particular the mark bit used for garbage collection.  A
+structure describing the type is accessible thru the
+lrecord_implementation_table indexed with said integer.  This structure
+includes the method pointers and a pointer to a string naming the type.
 
 @itemize @bullet
 @item
-@cindex frob block
-(b) Those for whom the tag directly specifies the type.  Recall that
-there are only three tag bits; this means that at most five types can be
-specified this way.  The most commonly-used types are stored in this
-format; this includes conses, strings, vectors, and sometimes symbols.
-With the exception of vectors, objects in this category are allocated in
-@dfn{frob blocks}, i.e. large blocks of memory that are subdivided into
-individual objects.  This saves a lot on malloc overhead, since there
-are typically quite a lot of these objects around, and the objects are
-small.  (A cons, for example, occupies 8 bytes on 32-bit machines---4
-bytes for each of the two objects it contains.) Vectors are individually
-@code{malloc()}ed since they are of variable size.  (It would be
-possible, and desirable, to allocate vectors of certain small sizes out
-of frob blocks, but it isn't currently done.) Strings are handled
-specially: Each string is allocated in two parts, a fixed size structure
-containing a length and a data pointer, and the actual data of the
-string.  The former structure is allocated in frob blocks as usual, and
-the latter data is stored in @dfn{string chars blocks} and is relocated
-during garbage collection to eliminate holes.
-@end itemize
-
-  In the remaining two categories, the type is stored in the object
-itself.  The tag for all such objects is the generic @dfn{lrecord}
-(Lisp_Record) tag.  The first four bytes (or eight, for 64-bit machines)
-of the object's structure are a pointer to a structure that describes
-the object's type, which includes method pointers and a pointer to a
-string naming the type.  Note that it's possible to save some space by
-using a one- or two-byte tag, rather than a four- or eight-byte pointer
-to store the type, but it's not clear it's worth making the change.
-
-@itemize @bullet
-@item
-(c) Those lrecords that are allocated in frob blocks (see above).  This
+(b) Those lrecords that are allocated in frob blocks (see above).  This
 includes the objects that are most common and relatively small, and
-includes floats, compiled functions, symbols (when not in category (b)),
+includes conses, strings, subrs, floats, compiled functions, symbols,
 extents, events, and markers.  With the cleanup of frob blocks done in
 19.12, it's not terribly hard to add more objects to this category, but
-it's a bit trickier than adding an object type to type (d) (esp. if the
+it's a bit trickier than adding an object type to type (c) (esp. if the
 object needs a finalization method), and is not likely to save much
 space unless the object is small and there are many of them. (In fact,
 if there are very few of them, it might actually waste space.)
 @item
-(d) Those lrecords that are individually @code{malloc()}ed.  These are
+(c) Those lrecords that are individually @code{malloc()}ed.  These are
 called @dfn{lcrecords}.  All other types are in this category.  Adding a
 new type to this category is comparatively easy, and all types added
 since 19.8 (when the current allocation scheme was devised, by Richard
@@ -4519,17 +4436,11 @@
 @end itemize
 
   Note that bit vectors are a bit of a special case.  They are
-simple lrecords as in category (c), but are individually @code{malloc()}ed
+simple lrecords as in category (b), but are individually @code{malloc()}ed
 like vectors.  You can basically view them as exactly like vectors
 except that their type is stored in lrecord fashion rather than
 in directly-tagged fashion.
 
-  Note that FSF Emacs redesigned their object system in 19.29 to follow
-a similar scheme.  However, given RMS's expressed dislike for data
-abstraction, the FSF scheme is not nearly as clean or as easy to
-extend. (FSF calls items of type (c) @code{Lisp_Misc} and items of type
-(d) @code{Lisp_Vectorlike}, with separate tags for each, although
-@code{Lisp_Vectorlike} is also used for vectors.)
 
 @node Garbage Collection, GCPROing, Introduction to Allocation, Allocation of Objects in XEmacs Lisp
 @section Garbage Collection
@@ -4549,61 +4460,11 @@
 all vectors (which are chained in one big list), and all
 lcrecords (which are likewise chained).
 
-  Note that, when an object is marked, the mark has to occur
-inside of the object's structure, rather than in the 32-bit
-@code{Lisp_Object} holding the object's pointer; i.e. you can't just
-set the pointer's mark bit.  This is because there may be many
-pointers to the same object.  This means that the method of
-marking an object can differ depending on the type.  The
-different marking methods are approximately as follows:
-
-@enumerate
-@item
-For conses, the mark bit of the car is set.
-@item
-For strings, the mark bit of the string's plist is set.
-@item
-For symbols when not lrecords, the mark bit of the
-symbol's plist is set.
-@item
-For vectors, the length is negated after adding 1.
-@item
-For lrecords, the pointer to the structure describing
-the type is changed (see below).
-@item
-Integers and characters do not need to be marked, since
-no allocation occurs for them.
-@end enumerate
-
-  The details of this are in the @code{mark_object()} function.
-
-  Note that any code that operates during garbage collection has
-to be especially careful because of the fact that some objects
-may be marked and as such may not look like they normally do.
-In particular:
-
-@itemize @bullet
-Some object pointers may have their mark bit set.  This will make
-@code{FOOBARP()} predicates fail.  Use @code{GC_FOOBARP()} to deal with
-this.
-@item
-Even if you clear the mark bit, @code{FOOBARP()} will still fail
-for lrecords because the implementation pointer has been
-changed (see below).  @code{GC_FOOBARP()} will correctly deal with
-this.
-@item
-Vectors have their size field munged, so anything that
-looks at this field will fail.
-@item
-Note that @code{XFOOBAR()} macros @emph{will} work correctly on object
-pointers with their mark bit set, because the logical shift operations
-that remove the tag also remove the mark bit.
-@end itemize
-
-  Finally, note that garbage collection can be invoked explicitly
-by calling @code{garbage-collect} but is also called automatically
-by @code{eval}, once a certain amount of memory has been allocated
-since the last garbage collection (according to @code{gc-cons-threshold}).
+  Garbage collection can be invoked explicitly by calling
+@code{garbage-collect} but is also called automatically by @code{eval},
+once a certain amount of memory has been allocated since the last
+garbage collection (according to @code{gc-cons-threshold}).
+
 
 @node GCPROing, Garbage Collection - Step by Step, Garbage Collection, Allocation of Objects in XEmacs Lisp
 @section @code{GCPRO}ing
@@ -4616,14 +4477,17 @@
 
 @enumerate
 @item
-All objects that have been @code{staticpro()}d.  This is used for
-any global C variables that hold Lisp objects.  A call to
-@code{staticpro()} happens implicitly as a result of any symbols
-declared with @code{defsymbol()} and any variables declared with
-@code{DEFVAR_FOO()}.  You need to explicitly call @code{staticpro()}
-(in the @code{vars_of_foo()} method of a module) for other global
-C variables holding Lisp objects. (This typically includes
-internal lists and such things.)
+All objects that have been @code{staticpro()}d or
+@code{staticpro_nodump()}ed.  This is used for any global C variables
+that hold Lisp objects.  A call to @code{staticpro()} happens implicitly
+as a result of any symbols declared with @code{defsymbol()} and any
+variables declared with @code{DEFVAR_FOO()}.  You need to explicitly
+call @code{staticpro()} (in the @code{vars_of_foo()} method of a module)
+for other global C variables holding Lisp objects. (This typically
+includes internal lists and such things.).  Use
+@code{staticpro_nodump()} only in the rare cases when you do not want
+the pointed variable to be saved at dump time but rather recompute it at
+startup.
 
 Note that @code{obarray} is one of the @code{staticpro()}d things.
 Therefore, all functions and variables get marked through this.
@@ -4822,16 +4686,16 @@
 
 The upshot is that garbage collection can basically occur everywhere
 @code{Feval}, respectively @code{Ffuncall}, is used - either directly or
-through another function. Since calls to these two functions are
-hidden in various other functions, many calls to
-@code{garabge_collect_1} are not obviously foreseeable, and therefore
-unexpected. Instances where they are used that are worth remembering are
-various elisp commands, as for example @code{or},
-@code{and}, @code{if}, @code{cond}, @code{while}, @code{setq}, etc.,
-miscellaneous @code{gui_item_...} functions, everything related to
-@code{eval} (@code{Feval_buffer}, @code{call0}, ...) and inside
-@code{Fsignal}. The latter is used to handle signals, as for example the
-ones raised by every @code{QUITE}-macro triggered after pressing Ctrl-g.
+through another function. Since calls to these two functions are hidden
+in various other functions, many calls to @code{garbage_collect_1} are
+not obviously foreseeable, and therefore unexpected. Instances where
+they are used that are worth remembering are various elisp commands, as
+for example @code{or}, @code{and}, @code{if}, @code{cond}, @code{while},
+@code{setq}, etc., miscellaneous @code{gui_item_...} functions,
+everything related to @code{eval} (@code{Feval_buffer}, @code{call0},
+...) and inside @code{Fsignal}. The latter is used to handle signals, as
+for example the ones raised by every @code{QUITE}-macro triggered after
+pressing Ctrl-g.
 
 @node garbage_collect_1, mark_object, Invocation, Garbage Collection - Step by Step
 @subsection @code{garbage_collect_1}
@@ -4852,7 +4716,7 @@
 all the output occurring during garbage collecting is determined. In
 order to be able to restore the old display's state after displaying the
 message, some data about the current cursor position has to be
-saved. The variables @code{pre_gc_curser} and @code{cursor_changed} take
+saved. The variables @code{pre_gc_cursor} and @code{cursor_changed} take
 care of that.
 @item
 The state of @code{gc_currently_forbidden} must be restored after
@@ -4995,7 +4859,7 @@
 
 @item
 The function @code{prune_specifiers} checks all listed specifiers held
-in @code{Vall_speficiers} and removes the ones from the lists that are
+in @code{Vall_specifiers} and removes the ones from the lists that are
 unmarked.
 
 @item
@@ -5301,25 +5165,15 @@
   [see @file{lrecord.h}]
 
   All lrecords have at the beginning of their structure a @code{struct
-lrecord_header}.  This just contains a pointer to a @code{struct
+lrecord_header}.  This just contains a type number and some flags,
+including the mark bit.  The type number, thru the
+@code{lrecord_implementation_table}, gives access to a @code{struct
 lrecord_implementation}, which is a structure containing method pointers
 and such.  There is one of these for each type, and it is a global,
 constant, statically-declared structure that is declared in the
-@code{DEFINE_LRECORD_IMPLEMENTATION()} macro. (This macro actually
-declares an array of two @code{struct lrecord_implementation}
-structures.  The first one contains all the standard method pointers,
-and is used in all normal circumstances.  During garbage collection,
-however, the lrecord is @dfn{marked} by bumping its implementation
-pointer by one, so that it points to the second structure in the array.
-This structure contains a special indication in it that it's a
-@dfn{marked-object} structure: the finalize method is the special
-function @code{this_marks_a_marked_record()}, and all other methods are
-null pointers.  At the end of garbage collection, all lrecords will
-either be reclaimed or unmarked by decrementing their implementation
-pointers, so this second structure pointer will never remain past
-garbage collection.
-
-  Simple lrecords (of type (c) above) just have a @code{struct
+@code{DEFINE_LRECORD_IMPLEMENTATION()} macro.
+
+  Simple lrecords (of type (b) above) just have a @code{struct
 lrecord_header} at their beginning.  lcrecords, however, actually have a
 @code{struct lcrecord_header}.  This, in turn, has a @code{struct
 lrecord_header} at its beginning, so sanity is preserved; but it also
@@ -5534,7 +5388,7 @@
 For an example, see the methods for window configurations and opaques.
 @end enumerate
 
-@node Low-level allocation, Pure Space, lrecords, Allocation of Objects in XEmacs Lisp
+@node Low-level allocation, Cons, lrecords, Allocation of Objects in XEmacs Lisp
 @section Low-level allocation
 
   Memory that you want to allocate directly should be allocated using
@@ -5606,12 +5460,7 @@
 allocated, so that garbage-collection can be invoked when the
 threshold is reached.
 
-@node Pure Space, Cons, Low-level allocation, Allocation of Objects in XEmacs Lisp
-@section Pure Space
-
-  Not yet documented.
-
-@node Cons, Vector, Pure Space, Allocation of Objects in XEmacs Lisp
+@node Cons, Vector, Low-level allocation, Allocation of Objects in XEmacs Lisp
 @section Cons
 
   Conses are allocated in standard frob blocks.  The only thing to
@@ -5649,13 +5498,8 @@
 @node Symbol, Marker, Bit Vector, Allocation of Objects in XEmacs Lisp
 @section Symbol
 
-  Symbols are also allocated in frob blocks.  Note that the code
-exists for symbols to be either lrecords (category (c) above)
-or simple types (category (b) above), and are lrecords by
-default (I think), although there is no good reason for this.
-
-  Note that symbols in the awful horrible obarray structure are
-chained through their @code{next} field.
+  Symbols are also allocated in frob blocks.  Symbols in the awful
+horrible obarray structure are chained through their @code{next} field.
 
 Remember that @code{intern} looks up a symbol in an obarray, creating
 one if necessary.
@@ -6006,12 +5850,17 @@
 then written.  They are:
 
 @enumerate
-@item the staticpro array
-@item the dumpstruct array
-@item the lrecord_implementation_table array
-@item a vector of all the offsets to the objects in the file that include a
+@item
+the staticpro array
+@item
+the dumpstruct array
+@item
+the lrecord_implementation_table array
+@item
+a vector of all the offsets to the objects in the file that include a
 description (for faster relocation at reload time)
-@item the pdump_wired and pdump_wired_list arrays
+@item
+the pdump_wired and pdump_wired_list arrays
 @end enumerate
 
 For each of the arrays we write both the pointer to the variables and
@@ -6581,13 +6430,13 @@
 are converted into an internal form for faster execution.
 
 When a compiled function is executed for the first time by
-@code{funcall_compiled_function()}, or when it is @code{Fpurecopy()}ed
-during the dump phase of building XEmacs, the byte-code instructions are
-converted from a @code{Lisp_String} (which is inefficient to access,
-especially in the presence of MULE) into a @code{Lisp_Opaque} object
-containing an array of unsigned char, which can be directly executed by
-the byte-code interpreter.  At this time the byte code is also analyzed
-for validity and transformed into a more optimized form, so that
+@code{funcall_compiled_function()}, or during the dump phase of building
+XEmacs, the byte-code instructions are converted from a
+@code{Lisp_String} (which is inefficient to access, especially in the
+presence of MULE) into a @code{Lisp_Opaque} object containing an array
+of unsigned char, which can be directly executed by the byte-code
+interpreter.  At this time the byte code is also analyzed for validity
+and transformed into a more optimized form, so that
 @code{execute_optimized_program()} can really fly.
 
 Here are some of the optimizations performed by the internal byte-code
@@ -6602,7 +6451,7 @@
 @code{nil}, or @code{keywordp}) symbols, so that the byte interpreter
 doesn't have to.
 @item
-The maxiumum number of variable bindings in the byte-code is
+The maximum number of variable bindings in the byte-code is
 pre-computed, so that space on the @code{specpdl} stack can be
 pre-reserved once for the whole function execution.
 @item
@@ -6708,7 +6557,7 @@
 @code{let} and @code{let*}) using @code{specbind()} to create bindings
 and @code{unbind_to()} to undo the bindings when finished.
 
-Note that, with the exeption of @code{Fprogn}, these functions are
+Note that, with the exception of @code{Fprogn}, these functions are
 typically called in real life only in interpreted code, since the byte
 compiler knows how to convert calls to these functions directly into
 byte code.
@@ -8049,7 +7898,7 @@
 @dfn{selected display}, @dfn{selected frame}, and @dfn{selected window}.
 Each of these objects is distinguished in various ways, such as being the
 default object for various functions that act on objects of that type.
-Note that every containing object rememembers the ``selected'' object
+Note that every containing object remembers the ``selected'' object
 among the objects that it contains: e.g. not only is there a selected
 window, but every frame remembers the last window in it that was
 selected, and changing the selected frame causes the remembered window
@@ -8422,7 +8271,7 @@
 @code{redisplay-x.c}, @code{redisplay-msw.c} and @code{redisplay-tty.c}
 @end enumerate
 
-Steps 1 and 2 are device-independant and relatively complex.  Step 3 is
+Steps 1 and 2 are device-independent and relatively complex.  Step 3 is
 mostly device-dependent.
 
 Determining the desired display
@@ -8433,7 +8282,7 @@
 dynarr's of @code{display_line}'s are held by each window representing
 the current display and the desired display.
 
-The @code{display_line} structures are tighly tied to buffers which
+The @code{display_line} structures are tightly tied to buffers which
 presents a problem for redisplay as this connection is bogus for the
 modeline. Hence the @code{display_line} generation routines are
 duplicated for generating the modeline. This means that the modeline
@@ -8766,7 +8615,7 @@
 domains. For instance if we create a Pixmap, we can actually display
 this on multiple windows - even though we only need a single Pixmap
 instance to do this. If caching wasn't done then it would be necessary
-to create image-instances for every displayable occurrance of a glyph -
+to create image-instances for every displayable occurrence of a glyph -
 and every usage - and this would be extremely memory and cpu intensive.
 
 Widget-glyphs (a.k.a native widgets) are not cached in this way. This is
@@ -8802,7 +8651,7 @@
 This has desirable properties such as lw_modify_all_widgets which is
 called from glyphs-x.c and updates all the properties of a widget
 without having to know what the widget is or what toolkit it is from.
-Unfortunately this also has hairy properrties such as making the lwlib
+Unfortunately this also has hairy properties such as making the lwlib
 code quite complex. And of course lwlib has to know at some level what
 the widget is and how to set its properties.
 
--- a/man/lispref/backups.texi	Mon Aug 13 11:13:33 2007 +0200
+++ b/man/lispref/backups.texi	Mon Aug 13 11:14:34 2007 +0200
@@ -226,7 +226,7 @@
 (@pxref{Backup Names}) is responsible for determining which backup
 versions to delete, but does not delete them itself.
 
-@defopt trim-versions-without-asking
+@defopt delete-old-versions
 If this variable is non-@code{nil}, then saving a file deletes excess
 backup versions silently.  Otherwise, it asks the user whether to delete
 them.
--- a/man/xemacs/files.texi	Mon Aug 13 11:13:33 2007 +0200
+++ b/man/xemacs/files.texi	Mon Aug 13 11:14:34 2007 +0200
@@ -477,8 +477,8 @@
 that newly made backup is included in the count in @code{kept-new-versions}.
 By default, both variables are 2.
 
-@vindex trim-versions-without-asking
-  If @code{trim-versions-without-asking} is non-@code{nil},  excess
+@vindex delete-old-versions
+  If @code{delete-old-versions} is non-@code{nil},  excess
 middle versions are deleted without notification.  If it is @code{nil}, the
 default, you are asked whether the excess middle versions should
 really be deleted.
--- a/nt/ChangeLog	Mon Aug 13 11:13:33 2007 +0200
+++ b/nt/ChangeLog	Mon Aug 13 11:14:34 2007 +0200
@@ -1,3 +1,18 @@
+2000-02-21  Martin Buchholz <martin@xemacs.org>
+
+	* XEmacs 21.2.30 is released.
+
+2000-02-21  Jonathan Harris  <jhar@tardis.ed.ac.uk>
+
+	* README: Tidy up.
+	Document need for makeinfo program or texinfo package.
+
+	* Xmd.patch: New file, previously in README.
+
+2000-02-17  Martin Buchholz  <martin@xemacs.org>
+
+	* config.h: Delete unused HAVE_LINUX_VERSION_H.
+
 2000-02-16  Martin Buchholz <martin@xemacs.org>
 
 	* XEmacs 21.2.29 is released.
--- a/nt/README	Mon Aug 13 11:13:33 2007 +0200
+++ b/nt/README	Mon Aug 13 11:14:34 2007 +0200
@@ -1,4 +1,4 @@
-	     Building and Installing XEmacs on Windows NT
+Building and Installing XEmacs on Windows NT            -*- mode:outline -*-
 
 			     David Hobley
 			    Marc Paquette
@@ -8,28 +8,61 @@
 and others who worked on the GNU Emacs port to NT. Their version is available
 from http://www.cs.washington.edu/homes/voelker/ntemacs.html
 
-To get it working you will need:
+
+* Required tools and sources
+============================
 
-1.  You will need Visual C++ V4.0 or later to compile everything. Personally we
-    have tested V4.0, V4.2 and V5.0.
-    Note that Visual C++ assumes a couple of environment variables INCLUDE and
-    LIB to be set which specify the location of the includes and libraries.
-    Your PATH environment variable also needs to include the DevStudio vc\bin
-    and sharedide\bin directories.
+1.  You will need Visual C++ V4.0 or later to compile everything. Personally
+    we have tested V4.0, V4.2, V5.0 and v6.0.
+
+    Note that Visual C++ assumes that the environment variables INCLUDE and
+    LIB are set to specify the location of the includes and libraries.
+    Your PATH environment variable also needs to include the DevStudio
+    vc\bin and sharedide\bin directories.
+
     Visual C++ V5.0 installs a batch file called vcvars32.bat in
     c:\Program Files\DevStudio\VC\bin\ (or wherever you installed it) that you
     can run before building to set up all of these environment variables.
 
-2.  Grab the latest XEmacs source from ftp.xemacs.org if necessary. All Win32
-    support is in the nt\ subdirectory. You'll also need the xemacs-base
-    package from the binary-packages subdirectory and you'll probably also
-    want at least the edit-utils, text-modes, fsf-compat, cc-mode,
-    prog-modes and xemacs-devel packages.
+2.  Grab the latest XEmacs source from ftp.xemacs.org if necessary.
+
+    You'll also need the xemacs-base package from the binary-packages
+    subdirectory and you'll probably also want at least the edit-utils,
+    text-modes, fsf-compat, cc-mode, prog-modes and xemacs-devel
+    packages.
+
+    You'll also need the texinfo package unless you have a copy of
+    makeinfo.exe on your machine.
+
     Unpack the packages into, say, "c:\Program Files\XEmacs\xemacs-packages".
 
-3.  At this point you can select X or Win32 native GUI support.
+3.  At this point you can choose to build for X and/or for Win32 native GUI.
+    If you only want to build for the Win32 native GUI then skip the next
+    section.
+
+
+** Extra tools and sources required for X
+
+If you want support for X you will also need:
+
+1.  An X server. MI/X is available on the Internet for free; It is 
+    available from: http://www.microimages.com/www/html/freestuf/mixdlfrm.htm
+
+2.  Source for the MIT X11R6.3 libraries, available from: ftp.x.org
 
-If you want to build for native GUI:
+3.  You'll need to compile the MIT libraries without multi-thread support.
+    To do this, there is an example Win32.cf and site.def provided which set
+    the relevant flags. You will also need to apply the patch in nt/X11.patch
+    in the xc/lib/X11 directory which will fix the DLL definition file.
+
+    Once compiled and installed, you will need to apply the patch in
+    nt/Xmd.patch. This is messy and better solutions would be appreciated.
+
+4.  Goto step 2 under 'Optional libraries' below.
+
+
+* Optional libraries
+====================
 
 1.  If you want XPM image and toolbar support grab the latest version of the
     xpm sources (xpm-3.4k.tar.gz at time of writing) and unpack them somewhere.
@@ -63,10 +96,14 @@
     directory.  cd to that directory and build libcompface with 
     'nmake -f compface.mak'.
 
-6.  cd to the nt subdirectory of the xemacs distribution and build xemacs:
+
+* Building
+==========
+
+1.  cd to the nt subdirectory of the xemacs distribution and build xemacs:
     `nmake install -f xemacs.mak`, but read on before hitting Enter.
 
-7.  If you're building with XPM support, add this to the nmake command line:
+2.  If you're building with XPM support, add this to the nmake command line:
 	HAVE_XPM=1 XPM_DIR="x:\location\of\your\xpm\sources"
     and similarly for JPEG and TIFF support.
 
@@ -78,77 +115,79 @@
 	HAVE_GIF=1
 
     If you're building with X-Face support, add this to the nmake command line:
-    HAVE_XFACE=1 COMPFACE_DIR="x:\location\of\your\compface\sources"
+        HAVE_XFACE=1 COMPFACE_DIR="x:\location\of\your\compface\sources"
 
-8.  By default, XEmacs will expect to find its packages in the subdirectories
+    If you're building for X, add this to the nmake command line:
+	HAVE_X=1 X11_DIR=x:\root\directory\of\your\X11\installation
+
+3.  By default, XEmacs will expect to find its packages in the subdirectories
     "site-packages", "mule-packages" and "xemacs-packages" under the package
     prefix directory "c:\Program Files\XEmacs". If you want it to look for
     these subdirectories elsewhere, add this to the nmake command line:
 	PACKAGE_PREFIX="x:\your\package\directory"
     If you change your mind and want to alter the package prefix directory
-    after you've built XEmacs, delete the file .\obj\emacs.obj and rebuild with
-    the new PACKAGE_PREFIX.
+    after you've built XEmacs, delete the file nt\obj\emacs.obj and rebuild
+    with the new PACKAGE_PREFIX setting.
 
-9.  By default, XEmacs will be installed in directories under the directory
-    "c:\Program Files\XEmacs\XEmacs-21.0". If you want to install it elsewhere,
-    add this to the nmake command line:
+4.  By default, XEmacs will be installed in directories under the directory
+    "c:\Program Files\XEmacs\XEmacs-21.2". If you want to install it
+    elsewhere, add this to the nmake command line:
 	INSTALL_DIR="x:\your\installation\directory"
 
-10. Now you can press Enter. nmake will build temacs, the DOC file, update the
-    elc's, dump xemacs and install the relevant files in the directories under
-    the installation directory. Unless you set INSTALL_DIR above, the file that
-    you should run to start XEmacs will be installed as 
-    "c:\Program Files\XEmacs\XEmacs-21.0\i386-pc-win32\runemacs.exe". You may
-    want to create a shortcut to that file from your Desktop or Start Menu.
+5.  XEmacs can build its info files more quickly if you have a copy of the
+    makeinfo program. If you have a copy, add this to the nmake command line:
+	MAKEINFO="x:\location\of\makeinfo.exe"
+    If you don't have a copy of makeinfo then you'll need to have installed
+    the XEmacs texinfo package.
+
+6.  Now you can press Enter. nmake will build temacs, the DOC file, update
+    the elc's, dump xemacs and install the relevant files in the directories
+    under the installation directory.
+
+    Unless you set INSTALL_DIR above, the file that you should run to start
+    XEmacs will be installed as
+        "c:\Program Files\XEmacs\XEmacs-21.2\i586-pc-win32\runxemacs.exe".
+    You may want to create a shortcut to that file from your Desktop or
+    Start Menu.
 
-11. The build process always creates debugging and "Source Browser" information
-    in the source tree for use with MS DevStudio. If you actually want to debug
-    XEmacs you should run XEmacs from the source directory instead of from the
-    installation directory. You should probably also build a debug version of
-    XEmacs; to do this start with a clean source tree and add DEBUG_XEMACS=1 to
-    the nmake command line. You probably don't want to install your debug build
-    so you should tell nmake to build the 'all' target instead of the 'install'
-    target.
+
+* Debugging under MS Developer Studio
+=====================================
+
+The build process always creates debugging and "Source Browser" information
+in the source tree for use with DevStudio. If you actually want to debug
+XEmacs you should probably build a debug version of XEmacs:
 
-    To make use of the debugging and "Source Browser" information, create a new
-    "console" project in MS DevStudio and, under Project/Settings, set:
+1.  Delete the directory nt\obj and it's contents.
+
+2.  Add DEBUG_XEMACS=1 to the nmake command line and rebuild. You probably
+    don't want to install your debug build so you should tell nmake to build
+    the 'all' target instead of the 'install' target.
+
+3.  To make use of the debugging and "Source Browser" information, create a
+    new "console" project in DevStudio and, under Project/Settings, set:
 	Debug: executable name = full path of src\xemacs.exe
 	Link: output file name = full path of src\temacs.exe
 	Browse Info: browse info file name = full path of src\temacs.bsc
     Remember to close the Source Browser file in DevStudio before rebuilding.
 
-
-If you want support for X you will need:
-
-1.  An X server. MI/X is available on the Internet for free; It is 
-    available from:  http://www.microimages.com/www/html/freestuf/mixdlfrm.htm
+4.  Start XEmacs from within DevStudio or by running src\xemacs.exe so that
+    you get a console window which may contain helpful debugging info.
 
-2.  The MIT X11R6.3 libraries available from: ftp.x.org
-
-3.  You'll need to compile the MIT libraries without multi-thread support.
-    To do this, there is an example Win32.cf and site.def provided which
-    set the relevant flags. You will also need to apply the patch in 
-    nt/X11.patch in the xc/lib/X11 directory which will fix the DLL definition
-    file. Once compiled and installed, you will need to apply the following
-    patch to Xmd.h. This is messy and better solutions would be appreciated. 
+5.  To display the contents of a lisp variable click Debug/QuickWatch, type
+    debug_print(variable) and click Recalculate. The output will appear in
+    the console window.
 
-4.  Goto 2 under 'native GUI' above and add this to the nmake command line:
-	HAVE_X=1 X11_DIR=x:\root\directory\of\your\X11\installation
+6.  To view lisp variables in the "Watch" window wrap the variable in one of
+    the helper functions from the file src\console-msw.c. eg type
+    DSTRING(variable) in the "Watch" window to inspect a lisp string.
+
 
---- Xmd.h~	Thu Jun 08 23:20:40 1995
-+++ Xmd.h	Sun Mar 16 13:09:10 1997
-@@ -150,8 +150,9 @@
- typedef CARD16		BITS16;
- typedef CARD8		BYTE;
- 
-+#ifndef WIN32
- typedef CARD8           BOOL;
--
-+#endif
- 
-Known Problems:
-Please look at the TODO list for the current list of problems and people 
-working on them.
+* Known Problems
+================
+
+Please look at the PROBLEMS file for known problems and at the TODO list for
+the current list of problems and people working on them.
 
 Any other problems you need clarified, please email us and we will endeavour
 to provide any assistance we can:
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/nt/Xmd.patch	Mon Aug 13 11:14:34 2007 +0200
@@ -0,0 +1,10 @@
+--- Xmd.h~	Thu Jun 08 23:20:40 1995
++++ Xmd.h	Sun Mar 16 13:09:10 1997
+@@ -150,8 +150,9 @@
+ typedef CARD16		BITS16;
+ typedef CARD8		BYTE;
+ 
++#ifndef WIN32
+ typedef CARD8           BOOL;
+-
++#endif
--- a/nt/config.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/nt/config.h	Mon Aug 13 11:14:34 2007 +0200
@@ -154,7 +154,6 @@
 #undef HAVE_UTIME_H
 #undef HAVE_SYS_WAIT_H
 #undef HAVE_LIBGEN_H
-#undef HAVE_LINUX_VERSION_H
 #undef WORDS_BIGENDIAN
 #undef TIME_WITH_SYS_TIME
 
--- a/src/.dbxrc	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/.dbxrc	Mon Aug 13 11:14:34 2007 +0200
@@ -64,16 +64,13 @@
   call debug_print ($1);
 }
 
+Lisp_Type_Int=-2
+
 # A bug in dbx prevents string variables from having values beginning with `-'!!
 function XEmacsInit {
   function ToInt { eval "$1=\$[(int) \`alloc.c\`$1]"; }
   ToInt dbg_USE_UNION_TYPE
-  ToInt Lisp_Type_Int
   ToInt Lisp_Type_Char
-  ToInt Lisp_Type_Cons
-  ToInt Lisp_Type_String
-  ToInt Lisp_Type_Vector
-  ToInt Lisp_Type_Symbol
   ToInt Lisp_Type_Record
   ToInt dbg_valbits
   ToInt dbg_gctypebits
@@ -122,9 +119,12 @@
   fi
 
   if test $type = $Lisp_Type_Record; then
-    typeset lheader="((struct lrecord_header *) $val)"
+    lheader="((struct lrecord_header *) $val)"
+    lrecord_type=$[(enum lrecord_type) $lheader->type]
     imp=$[(void*)(`alloc.c`lrecord_implementations_table[$lheader->type])]
   else
+    lheader="((struct lrecord_header *) -1)"
+    lrecord_type=-1
     imp="0xdeadbeef"
   fi
   # printvar obj val type imp
@@ -144,10 +144,6 @@
   decode_object "$*"
   if   test $type = $Lisp_Type_Int;    then echo "int"
   elif test $type = $Lisp_Type_Char;   then echo "char"
-  elif test $type = $Lisp_Type_Symbol; then echo "symbol"
-  elif test $type = $Lisp_Type_String; then echo "string"
-  elif test $type = $Lisp_Type_Vector; then echo "vector"
-  elif test $type = $Lisp_Type_Cons;   then echo "cons"
   elif test $type = null_pointer;      then echo "null_pointer"
   else
     echo "record type with name: $[((struct lrecord_implementation *)$imp)->name]"
@@ -220,14 +216,11 @@
   run -batch -l ../lisp/loadup.el dump
 }
 
-function pstruct {
-  xstruct="((struct $1 *) $val)"
-  print $xstruct
-  print *$xstruct
-}
-
-function lrecord_type_p {
-  if eval test -z \"\$lrecord_$1\" && test $imp = $[(void*)(&lrecord_$1)]; then return 0; else return 1; fi
+function pstruct { # pstruct foo.c struct-name
+  module "$1" > /dev/null
+  type_ptr="((struct $2 *) $val)"
+  print $type_ptr
+  print *$type_ptr
 }
 
 document pobj << 'end'
@@ -245,104 +238,110 @@
     else
       print -f"Char: %d" $val
     fi
-  elif test $type = $Lisp_Type_String || lrecord_type_p string; then
-    pstruct Lisp_String
-  elif test $type = $Lisp_Type_Cons   || lrecord_type_p cons; then
-    pstruct Lisp_Cons
-  elif test $type = $Lisp_Type_Symbol || lrecord_type_p symbol; then
-    pstruct Lisp_Symbol
-    echo "Symbol name: $[(char *)($xstruct->name->data)]"
-  elif test $type = $Lisp_Type_Vector || lrecord_type_p vector; then
-    pstruct Lisp_Vector
-    echo "Vector of length $[$xstruct->size]"
-  elif lrecord_type_p bit_vector; then
-    pstruct Lisp_Bit_Vector
-  elif lrecord_type_p buffer; then
-    pstruct buffer
-  elif lrecord_type_p char_table; then
-    pstruct Lisp_Char_Table
-  elif lrecord_type_p char_table_entry; then
-    pstruct Lisp_Char_Table_Entry
-  elif lrecord_type_p charset; then
-    pstruct Lisp_Charset
-  elif lrecord_type_p coding_system; then
-    pstruct Lisp_Coding_System
-  elif lrecord_type_p color_instance; then
-    pstruct Lisp_Color_Instance
-  elif lrecord_type_p command_builder; then
-    pstruct command_builder
-  elif lrecord_type_p compiled_function; then
-    pstruct Lisp_Compiled_Function
-  elif lrecord_type_p console; then
-    pstruct console
-  elif lrecord_type_p database; then
-    pstruct Lisp_Database
-  elif lrecord_type_p device; then
-    pstruct device
-  elif lrecord_type_p event; then
-    pstruct Lisp_Event
-  elif lrecord_type_p extent; then
-    pstruct extent
-  elif lrecord_type_p extent_auxiliary; then
-    pstruct extent_auxiliary
-  elif lrecord_type_p extent_info; then
-    pstruct extent_info
-  elif lrecord_type_p face; then
-    pstruct Lisp_Face
-  elif lrecord_type_p float; then
-    pstruct Lisp_Float
-  elif lrecord_type_p font_instance; then
-    pstruct Lisp_Font_Instance
-  elif lrecord_type_p frame; then
-    pstruct frame
-  elif lrecord_type_p glyph; then
-    pstruct Lisp_Glyph
-  elif lrecord_type_p hash_table; then
-    pstruct Lisp_Hash_Table
-  elif lrecord_type_p image_instance; then
-    pstruct Lisp_Image_Instance
-  elif lrecord_type_p keymap; then
-    pstruct Lisp_Keymap
-  elif lrecord_type_p lcrecord_list; then
-    pstruct lcrecord_list
-  elif lrecord_type_p lstream; then
-    pstruct lstream
-  elif lrecord_type_p marker; then
-    pstruct Lisp_Marker
-  elif lrecord_type_p opaque; then
-    pstruct Lisp_Opaque
-  elif lrecord_type_p opaque_ptr; then
-    pstruct Lisp_Opaque_Ptr
-  elif lrecord_type_p popup_data; then
-    pstruct popup_data
-  elif lrecord_type_p process; then
-    pstruct Lisp_Process
-  elif lrecord_type_p range_table; then
-    pstruct Lisp_Range_Table
-  elif lrecord_type_p specifier; then
-    pstruct Lisp_Specifier
-  elif lrecord_type_p subr; then
-    pstruct Lisp_Subr
-  elif lrecord_type_p symbol_value_buffer_local; then
-    pstruct symbol_value_buffer_local
-  elif lrecord_type_p symbol_value_forward; then
-    pstruct symbol_value_forward
-  elif lrecord_type_p symbol_value_lisp_magic; then
-    pstruct symbol_value_lisp_magic
-  elif lrecord_type_p symbol_value_varalias; then
-    pstruct symbol_value_varalias
-  elif lrecord_type_p toolbar_button; then
-    pstruct toolbar_button
-  elif lrecord_type_p tooltalk_message; then
-    pstruct Lisp_Tooltalk_Message
-  elif lrecord_type_p tooltalk_pattern; then
-    pstruct Lisp_Tooltalk_Pattern
-  elif lrecord_type_p weak_list; then
-    pstruct weak_list
-  elif lrecord_type_p window; then
-    pstruct window
-  elif lrecord_type_p window_configuration; then
-    pstruct window_config
+  elif test $lrecord_type = lrecord_type_string; then
+    pstruct alloc.c Lisp_String
+  elif test $lrecord_type = lrecord_type_cons; then
+    pstruct alloc.c Lisp_Cons
+  elif test $lrecord_type = lrecord_type_symbol; then
+    pstruct symbols.c Lisp_Symbol
+    echo "Symbol name: $[(char *)($type_ptr->name->data)]"
+  elif test $lrecord_type = lrecord_type_vector; then
+    pstruct alloc.c Lisp_Vector
+    echo "Vector of length $[$type_ptr->size]"
+  elif test $lrecord_type = lrecord_type_bit_vector; then
+    pstruct fns.c Lisp_Bit_Vector
+  elif test $lrecord_type = lrecord_type_buffer; then
+    pstruct buffer.c buffer
+  elif test $lrecord_type = lrecord_type_char_table; then
+    pstruct chartab.c Lisp_Char_Table
+  elif test $lrecord_type = lrecord_type_char_table_entry; then
+    pstruct chartab.c Lisp_Char_Table_Entry
+  elif test $lrecord_type = lrecord_type_charset; then
+    pstruct mule-charset.c Lisp_Charset
+  elif test $lrecord_type = lrecord_type_coding_system; then
+    pstruct file-coding.c Lisp_Coding_System
+  elif test $lrecord_type = lrecord_type_color_instance; then
+    pstruct objects.c Lisp_Color_Instance
+  elif test $lrecord_type = lrecord_type_command_builder; then
+    pstruct event-stream.c command_builder
+  elif test $lrecord_type = lrecord_type_compiled_function; then
+    pstruct bytecode.c Lisp_Compiled_Function
+  elif test $lrecord_type = lrecord_type_console; then
+    pstruct console.c console
+  elif test $lrecord_type = lrecord_type_database; then
+    pstruct database.c Lisp_Database
+  elif test $lrecord_type = lrecord_type_device; then
+    pstruct device.c device
+  elif test $lrecord_type = lrecord_type_event; then
+    pstruct events.c Lisp_Event
+  elif test $lrecord_type = lrecord_type_extent; then
+    pstruct extents.c extent
+  elif test $lrecord_type = lrecord_type_extent_auxiliary; then
+    pstruct extents.c extent_auxiliary
+  elif test $lrecord_type = lrecord_type_extent_info; then
+    pstruct extents.c extent_info
+  elif test $lrecord_type = lrecord_type_face; then
+    pstruct faces.c Lisp_Face
+  elif test $lrecord_type = lrecord_type_float; then
+    pstruct floatfns.c Lisp_Float
+  elif test $lrecord_type = lrecord_type_font_instance; then
+    pstruct objects.c Lisp_Font_Instance
+  elif test $lrecord_type = lrecord_type_frame; then
+    pstruct frame.c frame
+  elif test $lrecord_type = lrecord_type_glyph; then
+    pstruct glyph.c Lisp_Glyph
+  elif test $lrecord_type = lrecord_type_gui_item; then
+    pstruct gui.c Lisp_Gui_Item
+  elif test $lrecord_type = lrecord_type_hash_table; then
+    pstruct elhash.c Lisp_Hash_Table
+  elif test $lrecord_type = lrecord_type_image_instance; then
+    pstruct glyphs.c Lisp_Image_Instance
+  elif test $lrecord_type = lrecord_type_keymap; then
+    pstruct keymap.c Lisp_Keymap
+  elif test $lrecord_type = lrecord_type_lcrecord_list; then
+    pstruct alloc.c lcrecord_list
+  elif test $lrecord_type = lrecord_type_ldap; then
+    pstruct ldap.c Lisp_LDAP
+  elif test $lrecord_type = lrecord_type_lstream; then
+    pstruct lstream.c lstream
+  elif test $lrecord_type = lrecord_type_marker; then
+    pstruct marker.c Lisp_Marker
+  elif test $lrecord_type = lrecord_type_opaque; then
+    pstruct opaque.c Lisp_Opaque
+  elif test $lrecord_type = lrecord_type_opaque_ptr; then
+    pstruct opaque.c Lisp_Opaque_Ptr
+  elif test $lrecord_type = lrecord_type_popup_data; then
+    pstruct gui-x.c popup_data
+  elif test $lrecord_type = lrecord_type_process; then
+    pstruct process.c Lisp_Process
+  elif test $lrecord_type = lrecord_type_range_table; then
+    pstruct rangetab.c Lisp_Range_Table
+  elif test $lrecord_type = lrecord_type_specifier; then
+    pstruct specifier.c Lisp_Specifier
+  elif test $lrecord_type = lrecord_type_subr; then
+    pstruct eval.c Lisp_Subr
+  elif test $lrecord_type = lrecord_type_symbol_value_buffer_local; then
+    pstruct symbols.c symbol_value_buffer_local
+  elif test $lrecord_type = lrecord_type_symbol_value_forward; then
+    pstruct symbols.c symbol_value_forward
+  elif test $lrecord_type = lrecord_type_symbol_value_lisp_magic; then
+    pstruct symbols.c symbol_value_lisp_magic
+  elif test $lrecord_type = lrecord_type_symbol_value_varalias; then
+    pstruct symbols.c symbol_value_varalias
+  elif test $lrecord_type = lrecord_type_timeout; then
+    pstruct event-stream.c Lisp_Timeout
+  elif test $lrecord_type = lrecord_type_toolbar_button; then
+    pstruct toolbar.c toolbar_button
+  elif test $lrecord_type = lrecord_type_tooltalk_message; then
+    pstruct tooltalk.c Lisp_Tooltalk_Message
+  elif test $lrecord_type = lrecord_type_tooltalk_pattern; then
+    pstruct tooltalk.c Lisp_Tooltalk_Pattern
+  elif test $lrecord_type = lrecord_type_weak_list; then
+    pstruct data.c weak_list
+  elif test $lrecord_type = lrecord_type_window; then
+    pstruct window.c window
+  elif test $lrecord_type = lrecord_type_window_configuration; then
+    pstruct window.c window_config
   elif test "$type" = "null_pointer"; then
     echo "Lisp Object is a null pointer!!"
   else
@@ -351,14 +350,8 @@
   fi
 }
 
-function pproc {
-  print *(`process.c`struct Lisp_Process*)$1 ;
-  ldp "(`process.c`struct Lisp_Process*)$1->name" ;
-  ldp "(`process.c`struct Lisp_Process*)$1->command" ;
-}
-
 dbxenv suppress_startup_message 4.0
-dbxenv mt_watchpoints on
+# dbxenv mt_watchpoints on
 
 function dp_core {
   print ((struct x_frame *)(((struct frame*)(Fselected_frame(Qnil)&0x00FFFFFF))->frame_data))->widget->core
--- a/src/.gdbinit	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/.gdbinit	Mon Aug 13 11:14:34 2007 +0200
@@ -48,12 +48,14 @@
 set print union off
 set print pretty off
 
+set $Lisp_Type_Int = -2
+
 define decode_object
   set $obj = (unsigned long) $arg0
   if $obj & 1
   # It's an int
     set $val = $obj >> 1
-    set $type = Lisp_Type_Int
+    set $type = $Lisp_Type_Int
   else
     set $type = $obj & dbg_typemask
     if $type == Lisp_Type_Char
@@ -65,9 +67,12 @@
   end
 
   if $type == Lisp_Type_Record
-    set $lheader = (struct lrecord_header *) $val
-    set $imp = lrecord_implementations_table[$lheader->type]
+    set $lheader = ((struct lrecord_header *) $val)
+    set $lrecord_type = ($lheader->type)
+    set $imp = lrecord_implementations_table[$lrecord_type]
   else
+    set $lrecord_type = -1
+    set $lheader = -1
     set $imp = -1
   end
 end
@@ -85,30 +90,13 @@
 
 define xtype
   decode_object $arg0
-  if $type == Lisp_Type_Int
+  if $type == $Lisp_Type_Int
     echo int\n
   else
   if $type == Lisp_Type_Char
     echo char\n
   else
-  if $type == Lisp_Type_Symbol
-    echo symbol\n
-  else
-  if $type == Lisp_Type_String
-    echo string\n
-  else
-  if $type == Lisp_Type_Vector
-    echo vector\n
-  else
-  if $type == Lisp_Type_Cons
-    echo cons\n
-  else
     printf "record type: %s\n", $imp->name
-  # barf
-  end
-  end
-  end
-  end
   end
   end
 end
@@ -240,15 +228,21 @@
 
 # GDB's command language makes you want to ...
 
-define pstruct
-  set $xstruct = (struct $arg0 *) $val
-  print $xstruct
-  print *$xstruct
+define ptype
+  set $type_ptr = ($arg0 *) $val
+  print $type_ptr
+  print *$type_ptr
+end
+
+define pstructtype
+  set $type_ptr = (struct $arg0 *) $val
+  print $type_ptr
+  print *$type_ptr
 end
 
 define pobj
   decode_object $arg0
-  if $type == Lisp_Type_Int
+  if $type == $Lisp_Type_Int
     printf "Integer: %d\n", $val
   else
   if $type == Lisp_Type_Char
@@ -258,152 +252,161 @@
       printf "Char: %d\n", $val
     end
   else
-  if $type == Lisp_Type_String || $imp == &lrecord_string
-    pstruct Lisp_String
+  if $lrecord_type == lrecord_type_string
+    ptype Lisp_String
   else
-  if $type == Lisp_Type_Cons   || $imp == &lrecord_cons
-    pstruct Lisp_Cons
+  if $lrecord_type == lrecord_type_cons
+    ptype Lisp_Cons
   else
-  if $type == Lisp_Type_Symbol || $imp == &lrecord_symbol
-    pstruct Lisp_Symbol
-    printf "Symbol name: %s\n", $xstruct->name->data
+  if $lrecord_type == lrecord_type_symbol
+    ptype Lisp_Symbol
+    printf "Symbol name: %s\n", $type_ptr->name->data
   else
-  if $type == Lisp_Type_Vector || $imp == &lrecord_vector
-    pstruct Lisp_Vector
-    printf "Vector of length %d\n", $xstruct->size
-    #print *($xstruct->data) @ $xstruct->size
+  if $lrecord_type == lrecord_type_vector
+    ptype Lisp_Vector
+    printf "Vector of length %d\n", $type_ptr->size
+    #print *($type_ptr->data) @ $type_ptr->size
   else
-  if $imp == &lrecord_bit_vector
-    pstruct Lisp_Bit_Vector
+  if $lrecord_type == lrecord_type_bit_vector
+    ptype Lisp_Bit_Vector
   else
-  if $imp == &lrecord_buffer
-    pstruct buffer
+  if $lrecord_type == lrecord_type_buffer
+    pstructtype buffer
   else
-  if $imp == &lrecord_char_table
-    pstruct Lisp_Char_Table
+  if $lrecord_type == lrecord_type_char_table
+    ptype Lisp_Char_Table
   else
-  if $imp == &lrecord_char_table_entry
-    pstruct Lisp_Char_Table_Entry
+  if $lrecord_type == lrecord_type_char_table_entry
+    ptype Lisp_Char_Table_Entry
   else
-  if $imp == &lrecord_charset
-    pstruct Lisp_Charset
+  if $lrecord_type == lrecord_type_charset
+    ptype Lisp_Charset
+  else
+  if $lrecord_type == lrecord_type_coding_system
+    ptype Lisp_Coding_System
   else
-  if $imp == &lrecord_coding_system
-    pstruct Lisp_Coding_System
+  if $lrecord_type == lrecord_type_color_instance
+    ptype Lisp_Color_Instance
   else
-  if $imp == &lrecord_color_instance
-    pstruct Lisp_Color_Instance
+  if $lrecord_type == lrecord_type_command_builder
+    ptype command_builder
   else
-  if $imp == &lrecord_command_builder
-    pstruct command_builder
+  if $lrecord_type == lrecord_type_compiled_function
+    ptype Lisp_Compiled_Function
   else
-  if $imp == &lrecord_compiled_function
-    pstruct Lisp_Compiled_Function
+  if $lrecord_type == lrecord_type_console
+    pstructtype console
   else
-  if $imp == &lrecord_console
-    pstruct console
+  if $lrecord_type == lrecord_type_database
+    ptype Lisp_Database
   else
-  if $imp == &lrecord_database
-    pstruct Lisp_Database
+  if $lrecord_type == lrecord_type_device
+    pstructtype device
   else
-  if $imp == &lrecord_device
-    pstruct device
+  if $lrecord_type == lrecord_type_event
+    ptype Lisp_Event
   else
-  if $imp == &lrecord_event
-    pstruct Lisp_Event
+  if $lrecord_type == lrecord_type_extent
+    pstructtype extent
   else
-  if $imp == &lrecord_extent
-    pstruct extent
+  if $lrecord_type == lrecord_type_extent_auxiliary
+    pstructtype extent_auxiliary
   else
-  if $imp == &lrecord_extent_auxiliary
-    pstruct extent_auxiliary
+  if $lrecord_type == lrecord_type_extent_info
+    pstructtype extent_info
   else
-  if $imp == &lrecord_extent_info
-    pstruct extent_info
+  if $lrecord_type == lrecord_type_face
+    ptype Lisp_Face
   else
-  if $imp == &lrecord_face
-    pstruct Lisp_Face
+  if $lrecord_type == lrecord_type_float
+    ptype Lisp_Float
+  else
+  if $lrecord_type == lrecord_type_font_instance
+    ptype Lisp_Font_Instance
   else
-  if $imp == &lrecord_float
-    pstruct Lisp_Float
+  if $lrecord_type == lrecord_type_frame
+    pstructtype frame
   else
-  if $imp == &lrecord_font_instance
-    pstruct Lisp_Font_Instance
+  if $lrecord_type == lrecord_type_glyph
+    ptype Lisp_Glyph
   else
-  if $imp == &lrecord_frame
-    pstruct frame
+  if $lrecord_type == lrecord_type_gui_item
+    ptype Lisp_Gui_Item
   else
-  if $imp == &lrecord_glyph
-    pstruct Lisp_Glyph
+  if $lrecord_type == lrecord_type_hash_table
+    ptype Lisp_Hash_Table
   else
-  if $imp == &lrecord_hash_table
-    pstruct Lisp_Hash_Table
+  if $lrecord_type == lrecord_type_image_instance
+    ptype Lisp_Image_Instance
   else
-  if $imp == &lrecord_image_instance
-    pstruct Lisp_Image_Instance
+  if $lrecord_type == lrecord_type_keymap
+    ptype Lisp_Keymap
   else
-  if $imp == &lrecord_keymap
-    pstruct Lisp_Keymap
+  if $lrecord_type == lrecord_type_lcrecord_list
+    pstructtype lcrecord_list
   else
-  if $imp == &lrecord_lcrecord_list
-    pstruct lcrecord_list
+  if $lrecord_type == lrecord_type_ldap
+    ptype Lisp_LDAP
   else
-  if $imp == &lrecord_lstream
-    pstruct lstream
+  if $lrecord_type == lrecord_type_lstream
+    pstructtype lstream
   else
-  if $imp == &lrecord_marker
-    pstruct Lisp_Marker
+  if $lrecord_type == lrecord_type_marker
+    ptype Lisp_Marker
   else
-  if $imp == &lrecord_opaque
-    pstruct Lisp_Opaque
+  if $lrecord_type == lrecord_type_opaque
+    ptype Lisp_Opaque
   else
-  if $imp == &lrecord_opaque_ptr
-    pstruct Lisp_Opaque_Ptr
+  if $lrecord_type == lrecord_type_opaque_ptr
+    ptype Lisp_Opaque_Ptr
+  else
+  if $lrecord_type == lrecord_type_popup_data
+    ptype popup_data
   else
-  if $imp == &lrecord_popup_data
-    pstruct popup_data
+  if $lrecord_type == lrecord_type_process
+    ptype Lisp_Process
   else
-  if $imp == &lrecord_process
-    pstruct Lisp_Process
+  if $lrecord_type == lrecord_type_range_table
+    ptype Lisp_Range_Table
   else
-  if $imp == &lrecord_range_table
-    pstruct Lisp_Range_Table
+  if $lrecord_type == lrecord_type_specifier
+    ptype Lisp_Specifier
   else
-  if $imp == &lrecord_specifier
-    pstruct Lisp_Specifier
+  if $lrecord_type == lrecord_type_subr
+    ptype Lisp_Subr
   else
-  if $imp == &lrecord_subr
-    pstruct Lisp_Subr
+  if $lrecord_type == lrecord_type_symbol_value_buffer_local
+    pstructtype symbol_value_buffer_local
   else
-  if $imp == &lrecord_symbol_value_buffer_local
-    pstruct symbol_value_buffer_local
+  if $lrecord_type == lrecord_type_symbol_value_forward
+    pstructtype symbol_value_forward
   else
-  if $imp == &lrecord_symbol_value_forward
-    pstruct symbol_value_forward
+  if $lrecord_type == lrecord_type_symbol_value_lisp_magic
+    pstructtype symbol_value_lisp_magic
   else
-  if $imp == &lrecord_symbol_value_lisp_magic
-    pstruct symbol_value_lisp_magic
+  if $lrecord_type == lrecord_type_symbol_value_varalias
+    pstructtype symbol_value_varalias
   else
-  if $imp == &lrecord_symbol_value_varalias
-    pstruct symbol_value_varalias
+  if $lrecord_type == lrecord_type_timeout
+    ptype Lisp_Timeout
   else
-  if $imp == &lrecord_toolbar_button
-    pstruct toolbar_button
+  if $lrecord_type == lrecord_type_toolbar_button
+    pstructtype toolbar_button
   else
-  if $imp == &lrecord_tooltalk_message
-    pstruct Lisp_Tooltalk_Message
+  if $lrecord_type == lrecord_type_tooltalk_message
+    ptype Lisp_Tooltalk_Message
   else
-  if $imp == &lrecord_tooltalk_pattern
-    pstruct Lisp_Tooltalk_Pattern
+  if $lrecord_type == lrecord_type_tooltalk_pattern
+    ptype Lisp_Tooltalk_Pattern
   else
-  if $imp == &lrecord_weak_list
-    pstruct weak_list
+  if $lrecord_type == lrecord_type_weak_list
+    pstructtype weak_list
   else
-  if $imp == &lrecord_window
-    pstruct window
+  if $lrecord_type == lrecord_type_window
+    pstructtype window
   else
-  if $imp == &lrecord_window_configuration
-    pstruct window_config
+  if $lrecord_type == lrecord_type_window_configuration
+    pstructtype window_config
   else
     echo Unknown Lisp Object type\n
     print $arg0
@@ -423,6 +426,8 @@
   end
   end
   end
+  end
+  end
   # Repeat after me... gdb sux, gdb sux, gdb sux...
   end
   end
@@ -460,6 +465,7 @@
   end
   end
   end
+  end
 end
 
 document pobj
--- a/src/ChangeLog	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/ChangeLog	Mon Aug 13 11:14:34 2007 +0200
@@ -1,3 +1,254 @@
+2000-02-21  Martin Buchholz <martin@xemacs.org>
+
+	* XEmacs 21.2.30 is released.
+
+2000-02-20  Martin Buchholz  <martin@xemacs.org>
+
+	Performance hacking.
+	* *.c (syms_of_*):
+	Add INIT_LRECORD_IMPLEMENTATION macros, paired with
+	DEFINE_LRECORD_IMPLEMENTATION macros in the same file.
+	* emacs.c (main_1):
+	* lisp.h (DEFUN):
+	* console.c (DEFVAR_CONSOLE_LOCAL_1):
+	* buffer.c (DEFVAR_BUFFER_LOCAL_1):
+	* symeval.h (DEFVAR_SYMVAL_FWD):
+	* symbols.c (guts_of_unbound_marker):
+	Make all c_readonly objects also lisp_readonly and marked for life.
+	* lrecord.h (struct lrecord_implementation):
+	Document flags better.
+	* lrecord.h (DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION_WITH_PROPS):
+	* lrecord.h (DECLARE_LRECORD):
+	* lrecord.h (XSETRECORD):
+	* lrecord.h (RECORDP):
+	* lrecord.h (RECORD_TYPEP):
+	* lrecord.h (RECORD_MARKER): New.
+	* lrecord.h (error_check_*):
+	* lrecord.h (CONCHECK_NONRECORD):
+	* lrecord.h (MAKE_LRECORD_IMPLEMENTATION):
+	* lrecord.h (INIT_LRECORD_IMPLEMENTATION): New.
+	* lrecord.h (set_lheader_implementation):
+	* lrecord.h (enum lrecord_type): New.
+	* symeval.h (SYMBOL_VALUE_MAGIC_P):
+	* alloc.c (disksave_object_finalization_1):
+	* alloc.c (mark_object):
+	* alloc.c (lrecord_type_index):
+	* alloc.c (tick_lcrecord_stats):
+	* alloc.c (Fgarbage_collect):
+	* alloc.c (init_alloc_once_early):
+	* alloc.c (pdump_load):
+	* alloc.c (GC_CHECK_LHEADER_INVARIANTS): New.
+	* alloc.c (lrecord_type_index): Delete.
+	Make lisp object type indexes be constant.  
+	  Makes (byte-compile) 5% faster.
+	Put all marker functions into their own array.  
+	  Makes (garbage-collect) 5% faster.
+	Optimize SYMBOL_VALUE_MAGIC_P.
+	  Makes (byte-compile) 2-3% faster.
+	* config.h.in (gc_checking_assert): New.
+	* alloc.c: Use gc_checking_assert().
+	* .dbxrc: Make compatible with new object type implementation.
+	* .gdbinit: Make compatible with new object type implementation.
+	* alloc.c: Delete all symbols defined only for debugging, such as
+	Lisp_Type_Vector and lrecord_charset.
+
+2000-02-21  Andy Piper  <andy@xemacs.org>
+
+	* gui-msw.c (Fmswindows_shell_execute): fix file location
+	problems.
+
+	* buffer.c (Fkill_buffer): remove buffer from alist buffer
+	unshowing so that set_window_buffer doesn't undo
+	kill_buffer_hook's hard work.
+
+	* glyphs-widget.c (tab_control_query_geometry): don't count the
+	first item when calculating geometry.
+
+	* glyphs.c (map_subwindow): remove redundant code.
+	(update_frame_subwindows): be more circumspect about when to
+	update subwindows.
+
+	* glyphs-x.c (x_update_widget): Properly fix sizing bug. Fix bug
+	when items haven't changed. Update faces if faces have changed as
+	well as just the widget face.
+	(x_tab_control_update): Update faces if faces have changed as well
+	as just the widget face.
+
+2000-02-21  Jonathan Harris  <jhar@tardis.ed.ac.uk>
+
+	* device-msw.c: (mswindows_delete_device): Remove redundant DDE
+	registration.
+	(build_syscolor_string): Use mswindows_color_to_string to try to
+	get a named color.
+	(mswindows_device_system_metrics): Reverse the foreground and
+	background colors so that they match the documentation.
+
+	* objects-msw.c: (mswindows_X_color_map): tweak some values so
+	they match the default Windows palette.
+	(mswindows_color_to_string): New function.
+	
+2000-02-21  Jonathan Harris  <jhar@tardis.ed.ac.uk>
+
+	* s/windowsnt.h: Only use __declspec(noreturn) with MSVC>=6.
+
+2000-02-18  Olivier Galibert  <galibert@pobox.com>
+
+	* m/*, s/*: Removed obsolete DATA_SEG_BITS, PURE_SEG_BITS,
+	WORD_MACHINE, SIGN_EXTEND_CHAR and EXPLICIT_SIGN_EXTEND.
+	
+	* symbols.c (init_symbols_once_early): Removed obsolete
+	DATA_SEG_BITS related kludge.
+	(defvar_magic): Ditto.
+
+	* malloc.c: Removed obsolete DATA_SEG_BITS
+	* ralloc.c: Ditto.
+	* mem-limits.h: Ditto.
+
+	* Makefile.in.in: Removed obsolete HAVE_SHM
+	* emacs.c: Ditto.
+
+2000-02-13  Jonathan Harris  <jhar@tardis.ed.ac.uk>
+
+	*  device-msw.c (mswindows_delete_device): Free DDE string
+	handles.
+
+2000-02-16  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
+
+	* keymap.c (get_keyelt): 
+	* unexnt.c (unexec):
+	* vm-limit.c (memory_warnings):
+	* ntheap.c (recreate_heap):
+	* ntheap.h (UNINIT_PTR):
+	* select-msw.c (Fmswindows_get_clipboard): 
+	(Fmswindows_set_clipboard):
+	* objects-msw.h (MSWINDOWS_BAD_HFONT):
+	* objects-msw.c:
+	* menubar-msw.c (displayable_menu_item):
+	* glyphs-msw.c:
+	* glyphs-msw.h (IMAGE_INSTANCE_MSWINDOWS_MASK):
+	* sysdep.c (sys_subshell):
+	* process-nt.c (nt_create_process):
+	* nt.c (normalize_filename):
+	(dostounix_filename): 
+	(unixtodos_filename):
+	* ntproc.c (win32_executable_type):
+	* ntplay.c (play_sound_data_1):
+	(play_sound_file): 
+	* editfns.c (get_home_directory): 
+	* event-msw.c (struct winsock_stream): 
+	(mswindows_dde_callback): 
+	* device-msw.c (msprinter_init_device): 
+	(msprinter_get_devmode_copy): Frobbed syntax frivolities.
+
+	* toolbar-msw.c (mswindows_free_frame_toolbars): Paramters to
+	mswindows_clear_toolbar were swapped!
+
+	* objects-msw.c:(colormap_t):
+	(fontmap_t):
+	* emacs.c (struct standard_args): Fixed const jumble.
+
+	* glyphs-widget.c (update_widget): Fixed comparison notation.
+
+	* event-msw.c (mswindows_dde_callback): Removed extraneous ';'.
+	
+	* s\windowsnt.h (DOESNT_RETURN): Defined to support the MSVC
+	__declspec(noreturn) syntax.
+
+2000-02-19  Martin Buchholz  <martin@xemacs.org>
+
+	* eldap.c (Fldap_open): 
+	(Fldap_search_basic): 
+	(Fldap_add): 
+	(Fldap_modify): 
+	Use new coding system conversion macros.
+
+2000-01-06  Yoshiki Hayashi  <t90553@mail.ecc.u-tokyo.ac.jp>
+
+	* console-tty.c (tty_init_console): Change MULE to FILE_CODING.
+
+1999-11-27  Oscar Figueiredo  <Oscar.Figueiredo@di.epfl.ch>
+
+	* eldap.h (Fldap_search) Renamed from Fldap_search_internal: 
+	(Fldap_add, Fldap_modify, Fldap_delete): New functions
+
+	* eldap.c (Qadd, Qreplace): New constant symbols
+	(Fldap_open): Use the LDAP_OPT_RESTART option to avoid
+	interruptions by XEmacs signals
+	Remove unnecessary calls to slow_down_interrupts and
+	speed_up_interrupts
+	(Fldap_search_basic): Renamed from Fldap_search_internal
+	Added new optional parameter VERBOSE that triggers the 
+	display of progress messages
+	Remove unnecessary calls to slow_down_interrupts and
+	speed_up_interrupts
+	LDAP result code analysis rewritten
+	(Fldap_add, Fldap_modify, Fldap_delete): New functions
+	(syms_of_eldap): Define the new symbols and functions
+
+
+2000-02-17  Martin Buchholz  <martin@xemacs.org>
+
+	* realpath.c: Determine PATH_MAX maximally portably.
+
+	* insdel.c (bytecount_to_charcount): Optimize.
+	The function used to be optimized for entirely ASCII sequences.
+	Now it is optimized for successive characters from the same
+	charset.  This also wins big for _mostly_ ASCII sequences.
+
+	* fileio.c (Ffile_truename): convert return from realpath() using
+	Qfile_name, not Qbinary.  Fixes obvious bug with non-ASCII symlinks.
+	- Rewrite GCPROing slightly.
+
+	* sysdep.c (sys_open): Do filename conversion, like all other
+	sys_* functions.  Fixes bug:
+	(let ((file-name-coding-system 'iso-8859-2))
+	   (write-region x y latin2-name))
+	==> writes filename using internal encoding.
+
+2000-02-18  Martin Buchholz  <martin@xemacs.org>
+
+	* buffer.c (DEFVAR_BUFFER_LOCAL_1): Turn on c_readonly. Always const.
+	* console.c (DEFVAR_CONSOLE_LOCAL_1): Turn on c_readonly. Always const.
+	* symeval.h (DEFVAR_SYMVAL_FWD): Turn on c_readonly. Always const.
+	* eval.c (lrecord_subr): Remove this_one_is_unmarkable.
+	* symbols.c (lrecord_symbol_value_forward): Remove this_one_is_unmarkable.
+	* symbols.c (guts_of_unbound_marker): Turn on c_readonly.
+	* lrecord.h (UNMARKABLE_LRECORD_HEADER_P): Delete.
+	(CONST_IF_NOT_DEBUG): Delete.
+	* alloc.c (this_one_is_unmarkable): Delete.
+	(mark_object): Don't check for this_one_is_unmarkable. Use the
+	c_readonly flag instead.
+	* lisp.h (DEFUN): Define a Lisp_Subr as c_readonly.
+
+2000-02-18  Jonathan Harris  <jhar@tardis.ed.ac.uk>
+
+	* event-msw.c (mswindows_drain_windows_queue):
+	(emacs_mswindows_handle_magic_event): Remove attempt to optimise
+	away redundant repaint events.
+
+2000-02-17  Andy Piper  <andy@xemacs.org>
+
+	* redisplay.h: declare mark_redisplay_structs.
+
+	* redisplay.c (redisplay_window):
+	(redisplay_frame): don't check subwindows_state_changed.
+	(mark_redisplay): mark gutters here.
+
+	* glyphs.c: (instantiate_image_instantiator): always layout if we
+	haven't done so already.
+	(allocate_image_instance): don't mark as dirty.
+	(update_subwindow): bind inhibit_quit.
+
+	* gutter.c (mark_gutters): new function.
+
+	* glyphs-x.c (x_update_widget): Always resize to get round a
+	widget bug.
+
+	* glyphs-msw.c (mswindows_tab_control_update): remove `;' that was
+	breaking absolutely everything.
+
+	* gutter.h: declare mark_gutters.
+
 2000-02-16  Martin Buchholz <martin@xemacs.org>
 
 	* XEmacs 21.2.29 is released.
@@ -43,7 +294,7 @@
 	* general.c (syms_of_general): Initialized it.
 
 	* redisplay-msw.c (get_frame_dc): Conditionally start a new page.
-	(get_frame_dc): 
+	(get_frame_dc):
 	(get_frame_compdc): Made inline.
 
 	* console.h (struct console_methods): Added eject_page method.
@@ -58,7 +309,7 @@
 	* device.c (Fdevice_printer_p): Used these.
 
 	* frame.c (allocate_frame_core): Initialize page number.
-	(Fprint_job_page_number): 
+	(Fprint_job_page_number):
 	(Fprint_job_eject_page): Implemented.
 
 	* frame-msw.c (msprinter_eject_page): Added method.
@@ -124,7 +375,7 @@
 
 	* alloc.c (alloc_lcrecord): Add more type checking assertions.
 	(vector_hash): New.  Code from internal_hash.
-	* lrecord.h: 
+	* lrecord.h:
 	Fix up allocation subsystem comments.
 
 	* config.h.in: Add __EXTENSIONS__ for Solaris.
@@ -141,11 +392,11 @@
 	* sunplay.c (sighandler): Fix prototype to use SIGTYPE.
 
 	* lisp.h (STRETCHY_STRUCT_SIZEOF): Delete.
-	* fns.c (size_bit_vector): 
-	* alloc.c (size_vector): 
-	(make_vector_internal): 
-	(make_bit_vector_internal): 
-	(sweep_bit_vectors_1): 
+	* fns.c (size_bit_vector):
+	* alloc.c (size_vector):
+	(make_vector_internal):
+	(make_bit_vector_internal):
+	(sweep_bit_vectors_1):
 	Replace calls to STRETCHY_STRUCT_SIZEOF with offsetof expression.
 
 2000-02-10  Martin Buchholz  <martin@xemacs.org>
@@ -313,7 +564,7 @@
 	* config.h.in: Add HAVE_XCONVERTCASE.
 
 2000-02-07  Andy Piper  <andy@xemacs.org>
-	
+
 	* glyphs.c (image_instance_layout): undo 2000-01-29 change since
 	it breaks many things.
 
@@ -340,26 +591,26 @@
 
 	* minibuf.c (echo_area_append): Workaround egcs-20000131 c++ compiler bug
 
-	* ExternalShell.c: 
-	* ExternalClient.c: 
-	* EmacsShell-sub.c: 
-	* EmacsManager.c: 
-	* EmacsFrame.c: 
+	* ExternalShell.c:
+	* ExternalClient.c:
+	* EmacsShell-sub.c:
+	* EmacsManager.c:
+	* EmacsFrame.c:
 	Use consistent style for specifying X resources.
 
 	* symbols.c (Fset): Further implement SYMVAL_LISP_MAGIC.
 	This makes (dontusethis-set-symbol-value-handler) actually usable.
 
 	* lrecord.h (lrecord_decription_type):
-	* alloc.c (pdump_register_sub): 
-	(pdump_dump_data): 
-	(pdump_reloc_one): 
+	* alloc.c (pdump_register_sub):
+	(pdump_dump_data):
+	(pdump_reloc_one):
 	Add XD_LISP_OBJECT_ARRAY to describe multiple Lisp_Objects.
 	Comply with XEmacs coding style.
 	All lrecord descriptions updated to use XD_LISP_OBJECT with 2
 	args, and XD_LISP_OBJECT_ARRAY with 3 args.
 
-	* keymap.c (Faccessible_keymaps): 
+	* keymap.c (Faccessible_keymaps):
 	Make (accessible-keymaps map "\C-h") do the Right Thing.
 	Make (accessible-keymaps map []) do the Right Thing.
 	Make (accessible-keymaps map "") do the Right Thing.
@@ -373,8 +624,8 @@
 2000-01-30  Martin Buchholz  <martin@xemacs.org>
 
 	* redisplay.c (init_redisplay): Fix small memory leak.
-	* elhash.h: 
-	* elhash.c (pdump_reorganize_hash_table): 
+	* elhash.h:
+	* elhash.c (pdump_reorganize_hash_table):
 	Rename from reorganize_hash_table. Change prototype.
 	Reuse the original memory for hentries.  Save 100k.
 	* alloc.c (PDUMP_READ): new macro.
@@ -410,7 +661,7 @@
 	ifdefs in readable order.
 	(NEED_STARTS): Do not force NEED_STARTS when PDUMPing.
 	(start_of_text):
-	(end_of_text): 
+	(end_of_text):
 	(end_of_data): Do not compile in if using PDUMP.
 
 	* symsinit.h: Protptyped vars_of_nt().
@@ -431,7 +682,7 @@
 	(fstat, stat): Do not compile in if using MSVC 5.0 and above -
 	stat has been fixed in the C runtime.
 	(vars_of_nt): Added, defined the nt_fake_unix_uid variable there.
-	
+
 	* file-coding.c (struct file_coding_dump): Do not define
 	ucs_to_mule_table in the struct if not MULE.
 	(struct struct lrecord_description fcd_description_1): Do not dump
@@ -478,7 +729,7 @@
 	* faces.c: Moved 'left-margin and 'right-margin defsymbols to
 	general.c.
 
-	* console-msw.h: Added more msprinter device private slots.	
+	* console-msw.h: Added more msprinter device private slots.
 
 2000-02-01  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
 
@@ -609,7 +860,7 @@
 	only.
 
 	* console-msw.h: Moved a few function prototypes here from
-	event-msw.c. 
+	event-msw.c.
 
 	* gui-msw.c (mswindows_handle_gui_wm_command): Changed the ID
 	parameter from unsigned short to unsigned long.
@@ -617,8 +868,8 @@
 
 2000-01-27  URA Hiroshi <ura@hiru.aoba.yokohama.jp>
 
-	* sysdep.c (init_system_name): 
-	  process-unix.c (unix_canonicalized_host_name): 
+	* sysdep.c (init_system_name):
+	  process-unix.c (unix_canonicalized_host_name):
 	Don't call freeaddrinfo() if getaddrinfo() fails.
 
 	* process-unix.c (unix_open_unix_network_stream):
@@ -626,7 +877,7 @@
 
 2000-01-27  Martin Buchholz  <martin@xemacs.org>
 
-	* buffer.c (reinit_vars_of_buffer): 
+	* buffer.c (reinit_vars_of_buffer):
 	The right place to initialize conversion_in_dynarr and
 	conversion_out_dynarr.
 
@@ -787,7 +1038,7 @@
 	file-name-coding-system, terminal-coding-system, and
 	keyboard-coding-system magical variables that are equivalent to
 	defining the corresponding coding system aliases.
-	
+
 	* file-coding.c (Fcoding_system_canonical_name_p): New function.
 	* file-coding.c (Fcoding_system_alias_p): New function.
 	* file-coding.c (Fcoding_system_aliasee): New function.
@@ -831,7 +1082,7 @@
 
 2000-01-24  Martin Buchholz  <martin@xemacs.org>
 
-	* realpath.c (xrealpath): 
+	* realpath.c (xrealpath):
 	Don't call getwd().
 
 2000-01-25  Martin Buchholz  <martin@xemacs.org>
@@ -875,7 +1126,7 @@
 
 2000-01-24  Martin Buchholz  <martin@xemacs.org>
 
-	* glyphs-widget.c (layout_query_geometry): 
+	* glyphs-widget.c (layout_query_geometry):
 	(layout_layout): Use correct types for gheight, gwidth.
 
 2000-01-24  Martin Buchholz  <martin@xemacs.org>
@@ -892,11 +1143,11 @@
 
 2000-01-23  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
 
-	* callproc.c: 
-	* dired-msw.c: 
-	* fileio.c: 
-	* process-nt.c: 
-	* redisplay-msw.c: 
+	* callproc.c:
+	* dired-msw.c:
+	* fileio.c:
+	* process-nt.c:
+	* redisplay-msw.c:
 	* sysdep.c: Removed redundant #include <windows.h>
 
 2000-01-22  Kirill 'Big K' Katsnelson  <kkm@dtmx.com>
@@ -904,7 +1155,7 @@
 	* frame.c (delete_frame_internal): Do not delete device when its
 	implementation so declares.
 	(delete_frame_internal): Set device selected frame to nil when
-	last frame goes away. 
+	last frame goes away.
 
 	* device-msw.c (msprinter_device_system_metrics): Implemented.
 	(mswindows_device_system_metrics): Added 'device-dpi property.
@@ -977,18 +1228,18 @@
 2000-01-22  Martin Buchholz  <martin@xemacs.org>
 
 	* process.c (Fset_process_coding_system):
-	* device-x.c (Fx_keysym_hash_table): 
+	* device-x.c (Fx_keysym_hash_table):
 	Docstring fixes.
 
 	* lstream.c (Lstream_write): Return documented value, not 0.
 
-	* fileio.c (directory_file_name): 
-	(Fsubstitute_in_file_name): 
-	(Fsubstitute_insert_file_contents_internal): 
+	* fileio.c (directory_file_name):
+	(Fsubstitute_in_file_name):
+	(Fsubstitute_insert_file_contents_internal):
 	(Fwrite_region_internal):
 	* emacs.c:
 	* sysdep.c:
-	* getloadavg.c: 
+	* getloadavg.c:
 	* systty.h:
 	Remove vestigial APOLLO-conditional code.
 
@@ -1013,7 +1264,7 @@
 	* miscplay.h: Add guard macros.
 	* *.h: Use consistent C-standards-approved guard macro names.
 
-	* opaque.c (make_opaque): Switch parameter order. 
+	* opaque.c (make_opaque): Switch parameter order.
 	* opaque.h (make_opaque): Switch parameter order.
 	Update all callers.
 	* buffer.h (MAKE_MIRROR_TRT_TABLE): Use symbolic constant OPAQUE_CLEAR.
--- a/src/Makefile.in.in	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/Makefile.in.in	Mon Aug 13 11:14:34 2007 +0200
@@ -326,17 +326,10 @@
 #ifdef CANNOT_DUMP
 	ln temacs ${PROGNAME}
 #else
-#ifdef HAVE_SHM
-	-if [ -w ${srcdir}/../lisp ]; then \
-	  w=`pwd`; cd ${srcdir} && $${w}/temacs -nl -batch -l ${srcdir}/../lisp/inc-vers; \
-	else true; fi
-	-$(DUMPENV) ./temacs -nl -batch -l ${srcdir}/../lisp/loadup.el dump
-#else /* ! defined (HAVE_SHM) */
 	-if [ -w ${srcdir}/../lisp ]; then \
 	  w=`pwd`; cd ${srcdir} && $${w}/temacs -batch -l ${srcdir}/../lisp/inc-vers; \
 	else true; fi
 	-$(DUMPENV) ./temacs -batch -l ${srcdir}/../lisp/loadup.el dump
-#endif /* ! defined (HAVE_SHM) */
 	touch release
 #endif /* ! defined (CANNOT_DUMP) */
 
--- a/src/alloc.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/alloc.c	Mon Aug 13 11:14:34 2007 +0200
@@ -383,17 +383,14 @@
 {
   struct lcrecord_header *lcheader;
 
-#ifdef ERROR_CHECK_TYPECHECK
-  if (implementation->static_size == 0)
-    assert (implementation->size_in_bytes_method);
-  else
-    assert (implementation->static_size == size);
-
-  assert (! implementation->basic_p);
-
-  if (implementation->hash == NULL)
-    assert (implementation->equal == NULL);
-#endif
+  type_checking_assert
+    ((implementation->static_size == 0 ?
+      implementation->size_in_bytes_method != NULL :
+      implementation->static_size == size)
+     &&
+     (! implementation->basic_p)
+     &&
+     (! (implementation->hash == NULL && implementation->equal != NULL)));
 
   lcheader = (struct lcrecord_header *) allocate_lisp_storage (size);
   set_lheader_implementation (&(lcheader->lheader), implementation);
@@ -455,24 +452,12 @@
 
   for (header = all_lcrecords; header; header = header->next)
     {
-      if (LHEADER_IMPLEMENTATION(&header->lheader)->finalizer &&
+      if (LHEADER_IMPLEMENTATION (&header->lheader)->finalizer &&
 	  !header->free)
-	((LHEADER_IMPLEMENTATION(&header->lheader)->finalizer)
-	 (header, 1));
+	LHEADER_IMPLEMENTATION (&header->lheader)->finalizer (header, 1);
     }
 }
 
-/* Semi-kludge -- lrecord_symbol_value_forward objects get stuck
-   in const space and you get SEGV's if you attempt to mark them.
-   This sits in lheader->implementation->marker. */
-
-Lisp_Object
-this_one_is_unmarkable (Lisp_Object obj)
-{
-  abort ();
-  return Qnil;
-}
-
 
 /************************************************************************/
 /*			  Debugger support				*/
@@ -491,42 +476,6 @@
 unsigned char dbg_USE_UNION_TYPE = 0;
 #endif
 
-unsigned char Lisp_Type_Int = 100;
-unsigned char Lisp_Type_Cons = 101;
-unsigned char Lisp_Type_String = 102;
-unsigned char Lisp_Type_Vector = 103;
-unsigned char Lisp_Type_Symbol = 104;
-
-#ifndef MULE
-unsigned char lrecord_char_table_entry;
-unsigned char lrecord_charset;
-#ifndef FILE_CODING
-unsigned char lrecord_coding_system;
-#endif
-#endif
-
-#if !((defined HAVE_X_WINDOWS) && \
-      (defined (HAVE_MENUBARS)   || \
-       defined (HAVE_SCROLLBARS) || \
-       defined (HAVE_DIALOGS)    || \
-       defined (HAVE_TOOLBARS)   || \
-       defined (HAVE_WIDGETS)))
-unsigned char lrecord_popup_data;
-#endif
-
-#ifndef HAVE_TOOLBARS
-unsigned char lrecord_toolbar_button;
-#endif
-
-#ifndef TOOLTALK
-unsigned char lrecord_tooltalk_message;
-unsigned char lrecord_tooltalk_pattern;
-#endif
-
-#ifndef HAVE_DATABASE
-unsigned char lrecord_database;
-#endif
-
 unsigned char dbg_valbits = VALBITS;
 unsigned char dbg_gctypebits = GCTYPEBITS;
 
@@ -2272,22 +2221,23 @@
       struct free_lcrecord_header *free_header =
 	(struct free_lcrecord_header *) lheader;
 
-#ifdef ERROR_CHECK_GC
-      const struct lrecord_implementation *implementation
-	= LHEADER_IMPLEMENTATION(lheader);
-
-      /* There should be no other pointers to the free list. */
-      assert (!MARKED_RECORD_HEADER_P (lheader));
-      /* Only lcrecords should be here. */
-      assert (!implementation->basic_p);
-      /* Only free lcrecords should be here. */
-      assert (free_header->lcheader.free);
-      /* The type of the lcrecord must be right. */
-      assert (implementation == list->implementation);
-      /* So must the size. */
-      assert (implementation->static_size == 0
-	      || implementation->static_size == list->size);
-#endif /* ERROR_CHECK_GC */
+      gc_checking_assert
+	(/* There should be no other pointers to the free list. */
+	 ! MARKED_RECORD_HEADER_P (lheader)
+	 &&
+	 /* Only lcrecords should be here. */
+	 ! LHEADER_IMPLEMENTATION (lheader)->basic_p
+	 &&
+	 /* Only free lcrecords should be here. */
+	 free_header->lcheader.free
+	 &&
+	 /* The type of the lcrecord must be right. */
+	 LHEADER_IMPLEMENTATION (lheader) == list->implementation
+	 &&
+	 /* So must the size. */
+	 (LHEADER_IMPLEMENTATION (lheader)->static_size == 0 ||
+	  LHEADER_IMPLEMENTATION (lheader)->static_size == list->size)
+	 );
 
       MARK_RECORD_HEADER (lheader);
       chain = free_header->chain;
@@ -2325,23 +2275,21 @@
 	(struct free_lcrecord_header *) XPNTR (val);
 
 #ifdef ERROR_CHECK_GC
-      struct lrecord_header *lheader =
-	(struct lrecord_header *) free_header;
-      const struct lrecord_implementation *implementation
-	= LHEADER_IMPLEMENTATION (lheader);
+      struct lrecord_header *lheader = &free_header->lcheader.lheader;
 
       /* There should be no other pointers to the free list. */
-      assert (!MARKED_RECORD_HEADER_P (lheader));
+      assert (! MARKED_RECORD_HEADER_P (lheader));
       /* Only lcrecords should be here. */
-      assert (!implementation->basic_p);
+      assert (! LHEADER_IMPLEMENTATION (lheader)->basic_p);
       /* Only free lcrecords should be here. */
       assert (free_header->lcheader.free);
       /* The type of the lcrecord must be right. */
-      assert (implementation == list->implementation);
+      assert (LHEADER_IMPLEMENTATION (lheader) == list->implementation);
       /* So must the size. */
-      assert (implementation->static_size == 0
-	      || implementation->static_size == list->size);
+      assert (LHEADER_IMPLEMENTATION (lheader)->static_size == 0 ||
+	      LHEADER_IMPLEMENTATION (lheader)->static_size == list->size);
 #endif /* ERROR_CHECK_GC */
+
       list->free = free_header->chain;
       free_header->lcheader.free = 0;
       return val;
@@ -2362,19 +2310,16 @@
   struct lcrecord_list *list = XLCRECORD_LIST (lcrecord_list);
   struct free_lcrecord_header *free_header =
     (struct free_lcrecord_header *) XPNTR (lcrecord);
-  struct lrecord_header *lheader =
-    (struct lrecord_header *) free_header;
+  struct lrecord_header *lheader = &free_header->lcheader.lheader;
   const struct lrecord_implementation *implementation
     = LHEADER_IMPLEMENTATION (lheader);
 
-#ifdef ERROR_CHECK_GC
   /* Make sure the size is correct.  This will catch, for example,
      putting a window configuration on the wrong free list. */
-  if (implementation->size_in_bytes_method)
-    assert (implementation->size_in_bytes_method (lheader) == list->size);
-  else
-    assert (implementation->static_size == list->size);
-#endif /* ERROR_CHECK_GC */
+  gc_checking_assert ((implementation->size_in_bytes_method ?
+		       implementation->size_in_bytes_method (lheader) :
+		       implementation->static_size)
+		      == list->size);
 
   if (implementation->finalizer)
     implementation->finalizer (lheader, 0);
@@ -2398,7 +2343,6 @@
   return obj;
 }
 
-
 
 /************************************************************************/
 /*			   Garbage Collection				*/
@@ -2407,8 +2351,16 @@
 /* This will be used more extensively In The Future */
 static int last_lrecord_type_index_assigned;
 
-const struct lrecord_implementation *lrecord_implementations_table[128];
-#define max_lrecord_type (countof (lrecord_implementations_table) - 1)
+/* All the built-in lisp object types are enumerated in `enum lrecord_type'.
+   Additional ones may be defined by a module (none yet).  We leave some
+   room in `lrecord_implementations_table' for such new lisp object types. */
+#define MODULE_DEFINABLE_TYPE_COUNT 32
+const struct lrecord_implementation *lrecord_implementations_table[lrecord_type_count + MODULE_DEFINABLE_TYPE_COUNT];
+
+/* Object marker functions are in the lrecord_implementation structure.
+   But copying them to a parallel array is much more cache-friendly.
+   This hack speeds up (garbage-collect) by about 5%. */
+Lisp_Object (*lrecord_markers[countof (lrecord_implementations_table)]) (Lisp_Object);
 
 struct gcpro *gcprolist;
 
@@ -2525,6 +2477,19 @@
   pdump_wirevec_list[pdump_wireidx_list++] = varaddress;
 }
 
+#ifdef ERROR_CHECK_GC
+#define GC_CHECK_LHEADER_INVARIANTS(lheader) do {		\
+  struct lrecord_header * GCLI_lh = (lheader);			\
+  assert (GCLI_lh != 0);					\
+  assert (GCLI_lh->type <= last_lrecord_type_index_assigned);	\
+  assert (! C_READONLY_RECORD_HEADER_P (GCLI_lh) ||		\
+	  (MARKED_RECORD_HEADER_P (GCLI_lh) &&			\
+	   LISP_READONLY_RECORD_HEADER_P (GCLI_lh)));		\
+} while (0)
+#else
+#define GC_CHECK_LHEADER_INVARIANTS(lheader)
+#endif
+
 
 /* Mark reference to a Lisp_Object.  If the object referred to has not been
    seen yet, recursively mark all the references contained in it. */
@@ -2534,9 +2499,6 @@
 {
  tail_recurse:
 
-#ifdef ERROR_CHECK_GC
-  assert (! (EQ (obj, Qnull_pointer)));
-#endif
   /* Checks we used to perform */
   /* if (EQ (obj, Qnull_pointer)) return; */
   /* if (!POINTER_TYPE_P (XGCTYPE (obj))) return; */
@@ -2545,25 +2507,21 @@
   if (XTYPE (obj) == Lisp_Type_Record)
     {
       struct lrecord_header *lheader = XRECORD_LHEADER (obj);
-#if defined (ERROR_CHECK_GC)
-      assert (lheader->type <= last_lrecord_type_index_assigned);
-#endif
-      if (C_READONLY_RECORD_HEADER_P (lheader))
-	return;
-
-      if (! MARKED_RECORD_HEADER_P (lheader) &&
-	  ! UNMARKABLE_RECORD_HEADER_P (lheader))
+
+      GC_CHECK_LHEADER_INVARIANTS (lheader);
+
+      gc_checking_assert (LHEADER_IMPLEMENTATION (lheader)->basic_p ||
+			  ! ((struct lcrecord_header *) lheader)->free);
+
+      /* All c_readonly objects have their mark bit set,
+	 so that we only need to check the mark bit here. */
+      if (! MARKED_RECORD_HEADER_P (lheader))
 	{
-	  const struct lrecord_implementation *implementation =
-	    LHEADER_IMPLEMENTATION (lheader);
 	  MARK_RECORD_HEADER (lheader);
-#ifdef ERROR_CHECK_GC
-	  if (!implementation->basic_p)
-	    assert (! ((struct lcrecord_header *) lheader)->free);
-#endif
-	  if (implementation->marker)
+
+	  if (RECORD_MARKER (lheader))
 	    {
-	      obj = implementation->marker (obj);
+	      obj = RECORD_MARKER (lheader) (obj);
 	      if (!NILP (obj)) goto tail_recurse;
 	    }
 	}
@@ -2603,24 +2561,6 @@
 /* static int gc_count_total_records_used, gc_count_records_total_size; */
 
 
-int
-lrecord_type_index (const struct lrecord_implementation *implementation)
-{
-  int type_index = *(implementation->lrecord_type_index);
-  /* Have to do this circuitous validation test because of problems
-     dumping out initialized variables (ie can't set xxx_type_index to -1
-     because that would make xxx_type_index read-only in a dumped emacs. */
-  if (type_index < 0 || type_index > max_lrecord_type
-      || lrecord_implementations_table[type_index] != implementation)
-    {
-      assert (last_lrecord_type_index_assigned < max_lrecord_type);
-      type_index = ++last_lrecord_type_index_assigned;
-      lrecord_implementations_table[type_index] = implementation;
-      *(implementation->lrecord_type_index) = type_index;
-    }
-  return type_index;
-}
-
 /* stats on lcrecords in use - kinda kludgy */
 
 static struct
@@ -2635,21 +2575,21 @@
 static void
 tick_lcrecord_stats (const struct lrecord_header *h, int free_p)
 {
-  const struct lrecord_implementation *implementation =
-    LHEADER_IMPLEMENTATION (h);
-  int type_index = lrecord_type_index (implementation);
+  unsigned int type_index = h->type;
 
   if (((struct lcrecord_header *) h)->free)
     {
-      assert (!free_p);
+      gc_checking_assert (!free_p);
       lcrecord_stats[type_index].instances_on_free_list++;
     }
   else
     {
-      size_t sz = (implementation->size_in_bytes_method
-		   ? implementation->size_in_bytes_method (h)
-		   : implementation->static_size);
-
+      const struct lrecord_implementation *implementation =
+	LHEADER_IMPLEMENTATION (h);
+
+      size_t sz = (implementation->size_in_bytes_method ?
+		   implementation->size_in_bytes_method (h) :
+		   implementation->static_size);
       if (free_p)
 	{
 	  lcrecord_stats[type_index].instances_freed++;
@@ -2687,9 +2627,10 @@
   for (header = *prev; header; header = header->next)
     {
       struct lrecord_header *h = &(header->lheader);
-      if (!C_READONLY_RECORD_HEADER_P(h)
-	  && !MARKED_RECORD_HEADER_P (h)
-	  && ! (header->free))
+
+      GC_CHECK_LHEADER_INVARIANTS (h);
+
+      if (! MARKED_RECORD_HEADER_P (h) && ! header->free)
 	{
 	  if (LHEADER_IMPLEMENTATION (h)->finalizer)
 	    LHEADER_IMPLEMENTATION (h)->finalizer (h, 0);
@@ -2699,9 +2640,9 @@
   for (header = *prev; header; )
     {
       struct lrecord_header *h = &(header->lheader);
-      if (C_READONLY_RECORD_HEADER_P(h) || MARKED_RECORD_HEADER_P (h))
+      if (MARKED_RECORD_HEADER_P (h))
 	{
-	  if (MARKED_RECORD_HEADER_P (h))
+	  if (! C_READONLY_RECORD_HEADER_P (h))
 	    UNMARK_RECORD_HEADER (h);
 	  num_used++;
 	  /* total_size += n->implementation->size_in_bytes (h);*/
@@ -2740,9 +2681,9 @@
     {
       Lisp_Bit_Vector *v = XBIT_VECTOR (bit_vector);
       int len = v->size;
-      if (C_READONLY_RECORD_HEADER_P(&(v->lheader)) || MARKED_RECORD_P (bit_vector))
+      if (MARKED_RECORD_P (bit_vector))
 	{
-	  if (MARKED_RECORD_P (bit_vector))
+	  if (! C_READONLY_RECORD_HEADER_P(&(v->lheader)))
 	    UNMARK_RECORD_HEADER (&(v->lheader));
 	  total_size += len;
           total_storage +=
@@ -2798,7 +2739,7 @@
 	    {								\
 	      num_used++;						\
 	    }								\
-	  else if (!MARKED_RECORD_HEADER_P (&SFTB_victim->lheader))	\
+	  else if (! MARKED_RECORD_HEADER_P (&SFTB_victim->lheader))	\
 	    {								\
 	      num_free++;						\
 	      FREE_FIXED_TYPE (typename, obj_type, SFTB_victim);	\
@@ -2853,7 +2794,7 @@
 	      SFTB_empty = 0;							\
 	      num_used++;							\
 	    }									\
-	  else if (!MARKED_RECORD_HEADER_P (&SFTB_victim->lheader))		\
+	  else if (! MARKED_RECORD_HEADER_P (&SFTB_victim->lheader))		\
 	    {									\
 	      num_free++;							\
 	      FREE_FIXED_TYPE (typename, obj_type, SFTB_victim);		\
@@ -3032,12 +2973,8 @@
 void
 free_marker (Lisp_Marker *ptr)
 {
-#ifdef ERROR_CHECK_GC
   /* Perhaps this will catch freeing an already-freed marker. */
-  Lisp_Object temmy;
-  XSETMARKER (temmy, ptr);
-  assert (MARKERP (temmy));
-#endif /* ERROR_CHECK_GC */
+  gc_checking_assert (ptr->lheader.type = lrecord_type_marker);
 
 #ifndef ALLOC_NO_POOLS
   FREE_FIXED_TYPE_WHEN_NOT_IN_GC (marker, Lisp_Marker, ptr);
@@ -3253,9 +3190,6 @@
 int
 marked_p (Lisp_Object obj)
 {
-#ifdef ERROR_CHECK_GC
-  assert (! (EQ (obj, Qnull_pointer)));
-#endif
   /* Checks we used to perform. */
   /* if (EQ (obj, Qnull_pointer)) return 1; */
   /* if (!POINTER_TYPE_P (XGCTYPE (obj))) return 1; */
@@ -3264,10 +3198,10 @@
   if (XTYPE (obj) == Lisp_Type_Record)
     {
       struct lrecord_header *lheader = XRECORD_LHEADER (obj);
-#if defined (ERROR_CHECK_GC)
-      assert (lheader->type <= last_lrecord_type_index_assigned);
-#endif
-      return C_READONLY_RECORD_HEADER_P (lheader) || MARKED_RECORD_HEADER_P (lheader);
+
+      GC_CHECK_LHEADER_INVARIANTS (lheader);
+
+      return MARKED_RECORD_HEADER_P (lheader);
     }
   return 1;
 }
@@ -3345,7 +3279,9 @@
 	    {
 	      for (i=0; i<rt->count; i++)
 		{
-		  UNMARK_RECORD_HEADER ((struct lrecord_header *)(*(EMACS_INT *)p));
+		  struct lrecord_header *lh = * (struct lrecord_header **) p;
+		  if (! C_READONLY_RECORD_HEADER_P (lh))
+		    UNMARK_RECORD_HEADER (lh);
 		  p += sizeof (EMACS_INT);
 		}
 	    } else
@@ -3726,7 +3662,7 @@
           const char *name = lrecord_implementations_table[i]->name;
 	  int len = strlen (name);
 	  /* save this for the FSFmacs-compatible part of the summary */
-	  if (i == *lrecord_vector.lrecord_type_index)
+	  if (i == lrecord_vector.lrecord_type_index)
 	    gc_count_vector_total_size =
 	      lcrecord_stats[i].bytes_in_use + lcrecord_stats[i].bytes_freed;
 
@@ -4055,31 +3991,20 @@
 void
 init_alloc_once_early (void)
 {
-  int iii;
-
   reinit_alloc_once_early ();
 
-  last_lrecord_type_index_assigned = -1;
-  for (iii = 0; iii < countof (lrecord_implementations_table); iii++)
-    {
-      lrecord_implementations_table[iii] = 0;
-    }
-
-  /*
-   * All the staticly
-   * defined subr lrecords were initialized with lheader->type == 0.
-   * See subr_lheader_initializer in lisp.h.  Force type index 0 to be
-   * assigned to lrecord_subr so that those predefined indexes match
-   * reality.
-   */
-  lrecord_type_index (&lrecord_subr);
-  assert (*(lrecord_subr.lrecord_type_index) == 0);
-  /*
-   * The same is true for symbol_value_forward objects, except the
-   * type is 1.
-   */
-  lrecord_type_index (&lrecord_symbol_value_forward);
-  assert (*(lrecord_symbol_value_forward.lrecord_type_index) == 1);
+  last_lrecord_type_index_assigned = lrecord_type_count - 1;
+
+  {
+    int i;
+    for (i = 0; i < countof (lrecord_implementations_table); i++)
+      lrecord_implementations_table[i] = 0;
+  }
+
+  INIT_LRECORD_IMPLEMENTATION (cons);
+  INIT_LRECORD_IMPLEMENTATION (vector);
+  INIT_LRECORD_IMPLEMENTATION (string);
+  INIT_LRECORD_IMPLEMENTATION (lcrecord_list);
 
   staticidx = 0;
 }
@@ -5190,13 +5115,10 @@
   memcpy (lrecord_implementations_table, p, sizeof (lrecord_implementations_table));
   p += sizeof (lrecord_implementations_table);
 
-  /* Give back their numbers to the lrecord implementations */
-  for (i = 0; i < countof (lrecord_implementations_table); i++)
+  /* Reinitialize lrecord_markers from lrecord_implementations_table */
+  for (i=0; i < countof (lrecord_implementations_table); i++)
     if (lrecord_implementations_table[i])
-      {
-	*(lrecord_implementations_table[i]->lrecord_type_index) = i;
-	last_lrecord_type_index_assigned = i;
-      }
+      lrecord_markers[i] = lrecord_implementations_table[i]->marker;
 
   /* Do the relocations */
   pdump_rt_list = p;
@@ -5256,3 +5178,4 @@
 }
 
 #endif /* PDUMP */
+
--- a/src/buffer.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/buffer.c	Mon Aug 13 11:14:34 2007 +0200
@@ -567,7 +567,7 @@
      local_var_alist is set to Qnil at the same point, in
      nuke_all_buffer_slots(). */
   reset_buffer_local_variables (b, 1);
-  b->directory = ((current_buffer) ? current_buffer->directory : Qnil);
+  b->directory = current_buffer ? current_buffer->directory : Qnil;
 
   b->last_window_start = 1;
 
@@ -1304,13 +1304,13 @@
 
     kill_buffer_processes (buf);
 
+    delete_from_buffer_alist (buf);
+
     /* #### This is a problem if this buffer is in a dedicated window.
        Need to undedicate any windows of this buffer first (and delete them?)
        */
     Freplace_buffer_in_windows (buf);
 
-    delete_from_buffer_alist (buf);
-
     font_lock_buffer_was_killed (b);
 
     /* Delete any auto-save file, if we saved it in this session.  */
@@ -2148,6 +2148,8 @@
 void
 syms_of_buffer (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (buffer);
+
   defsymbol (&Qbuffer_live_p, "buffer-live-p");
   defsymbol (&Qbuffer_or_string_p, "buffer-or-string-p");
   defsymbol (&Qmode_class, "mode-class");
@@ -2373,20 +2375,16 @@
 
 /* Renamed from DEFVAR_PER_BUFFER because FSFmacs D_P_B takes
    a bogus extra arg, which confuses an otherwise identical make-docfile.c */
-
-/* Declaring this stuff as const produces 'Cannot reinitialize' messages
-   from SunPro C's fix-and-continue feature (a way neato feature that
-   makes debugging unbelievably more bearable) */
 #define DEFVAR_BUFFER_LOCAL_1(lname, field_name, forward_type, magicfun) do {	\
-  static CONST_IF_NOT_DEBUG struct symbol_value_forward I_hate_C =		\
+  static const struct symbol_value_forward I_hate_C =				\
   { /* struct symbol_value_forward */						\
     { /* struct symbol_value_magic */						\
       { /* struct lcrecord_header */						\
 	{ /* struct lrecord_header */						\
-	  1, /* type - index into lrecord_implementations_table */		\
-	  0, /* mark bit */							\
-	  0, /* c_readonly bit */						\
-	  0  /* lisp_readonly bit */						\
+	  lrecord_type_symbol_value_forward, /* lrecord_type_index */		\
+	  1, /* mark bit */							\
+	  1, /* c_readonly bit */						\
+	  1  /* lisp_readonly bit */						\
 	},									\
 	0, /* next */								\
 	0, /* uid  */								\
--- a/src/bytecode.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/bytecode.c	Mon Aug 13 11:14:34 2007 +0200
@@ -2410,6 +2410,8 @@
 void
 syms_of_bytecode (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (compiled_function);
+
   deferror (&Qinvalid_byte_code, "invalid-byte-code",
 	    "Invalid byte code", Qerror);
   defsymbol (&Qbyte_code, "byte-code");
--- a/src/chartab.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/chartab.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1804,7 +1804,11 @@
 void
 syms_of_chartab (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (char_table);
+
 #ifdef MULE
+  INIT_LRECORD_IMPLEMENTATION (char_table_entry);
+
   defsymbol (&Qcategory_table_p, "category-table-p");
   defsymbol (&Qcategory_designator_p, "category-designator-p");
   defsymbol (&Qcategory_table_value_p, "category-table-value-p");
--- a/src/config.h.in	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/config.h.in	Mon Aug 13 11:14:34 2007 +0200
@@ -198,30 +198,31 @@
 /* Some things figured out by the configure script, grouped as they are in
    configure.in. */
 #undef HAVE_MCHECK_H
+#undef HAVE_A_OUT_H
+#undef HAVE_CYGWIN_VERSION_H
+#undef HAVE_FCNTL_H
+#undef HAVE_INTTYPES_H
+#undef HAVE_LIBGEN_H
+#undef HAVE_LOCALE_H
 #undef HAVE_MACH_MACH_H
+#undef HAVE_SYS_PARAM_H
+#undef HAVE_SYS_PSTAT_H
 #undef HAVE_SYS_STROPTS_H
+#undef HAVE_SYS_TIME_H
 #undef HAVE_SYS_TIMEB_H
-#undef HAVE_SYS_TIME_H
+#undef HAVE_SYS_UN_H
+#undef HAVE_ULIMIT_H
 #undef HAVE_UNISTD_H
 #undef HAVE_UTIME_H
+
 #undef HAVE_SYS_WAIT_H
 #undef HAVE_LIBINTL_H
-#undef HAVE_LIBGEN_H
-#undef HAVE_LOCALE_H
-#undef HAVE_FCNTL_H
-#undef HAVE_ULIMIT_H
 #undef HAVE_X11_XLOCALE_H
-#undef HAVE_LINUX_VERSION_H
-#undef HAVE_CYGWIN_VERSION_H
-#undef HAVE_INTTYPES_H
-#undef HAVE_SYS_UN_H
-#undef HAVE_A_OUT_H
 #undef STDC_HEADERS
 #undef TIME_WITH_SYS_TIME
 #undef WORDS_BIGENDIAN
 #undef HAVE_VFORK_H
 #undef HAVE_KSTAT_H
-#undef HAVE_SYS_PSTAT_H
 #undef vfork
 
 #undef HAVE_LONG_FILE_NAMES
@@ -438,6 +439,11 @@
 
 /* Attempt to catch bugs related to garbage collection (e.g. not GCPRO'ing). */
 #undef ERROR_CHECK_GC
+#ifdef ERROR_CHECK_GC
+#define gc_checking_assert(assertion) assert (assertion)
+#else
+#define gc_checking_assert(assertion)
+#endif
 
 /* Attempt to catch freeing of a non-malloc()ed block, heap corruption, etc. */
 #undef ERROR_CHECK_MALLOC
--- a/src/console-tty.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/console-tty.c	Mon Aug 13 11:14:34 2007 +0200
@@ -115,7 +115,7 @@
 
   tty_con->instream  = make_filedesc_input_stream  (tty_con->infd,  0, -1, 0);
   tty_con->outstream = make_filedesc_output_stream (tty_con->outfd, 0, -1, 0);
-#ifdef MULE
+#ifdef FILE_CODING
   tty_con->instream =
     make_decoding_input_stream (XLSTREAM (tty_con->instream),
 				Fget_coding_system (Vkeyboard_coding_system));
@@ -123,7 +123,7 @@
   tty_con->outstream =
     make_encoding_output_stream (XLSTREAM (tty_con->outstream),
 				 Fget_coding_system (Vterminal_coding_system));
-#endif /* MULE */
+#endif /* FILE_CODING */
   tty_con->terminal_type = terminal_type;
   tty_con->controlling_process = controlling_process;
 
--- a/src/console.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/console.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1073,6 +1073,8 @@
 void
 syms_of_console (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (console);
+
   DEFSUBR (Fvalid_console_type_p);
   DEFSUBR (Fconsole_type_list);
   DEFSUBR (Fcdfw_console);
@@ -1195,20 +1197,16 @@
 }
 
 /* The docstrings for DEFVAR_* are recorded externally by make-docfile.  */
-
-/* Declaring this stuff as const produces 'Cannot reinitialize' messages
-   from SunPro C's fix-and-continue feature (a way neato feature that
-   makes debugging unbelievably more bearable) */
 #define DEFVAR_CONSOLE_LOCAL_1(lname, field_name, forward_type, magicfun) do {	\
-  static CONST_IF_NOT_DEBUG struct symbol_value_forward I_hate_C =		\
+  static const struct symbol_value_forward I_hate_C =				\
   { /* struct symbol_value_forward */						\
     { /* struct symbol_value_magic */						\
       { /* struct lcrecord_header */						\
 	{ /* struct lrecord_header */						\
-	  1, /* type - index into lrecord_implementations_table */		\
-	  0, /* mark bit */							\
-	  0, /* c_readonly bit */						\
-	  0  /* lisp_readonly bit */						\
+	  lrecord_type_symbol_value_forward, /* lrecord_type_index */		\
+	  1, /* mark bit */							\
+	  1, /* c_readonly bit */						\
+	  1  /* lisp_readonly bit */						\
 	},									\
 	0, /* next */								\
 	0, /* uid  */								\
--- a/src/data.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/data.c	Mon Aug 13 11:14:34 2007 +0200
@@ -2076,6 +2076,8 @@
 void
 syms_of_data (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (weak_list);
+
   defsymbol (&Qquote, "quote");
   defsymbol (&Qlambda, "lambda");
   defsymbol (&Qlistp, "listp");
--- a/src/database.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/database.c	Mon Aug 13 11:14:34 2007 +0200
@@ -759,6 +759,8 @@
 void
 syms_of_database (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (database);
+
   defsymbol (&Qdatabasep, "databasep");
 #ifdef HAVE_DBM
   defsymbol (&Qdbm, "dbm");
--- a/src/device-msw.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/device-msw.c	Mon Aug 13 11:14:34 2007 +0200
@@ -34,6 +34,7 @@
 
 #include "console-msw.h"
 #include "console-stream.h"
+#include "objects-msw.h"
 #include "events.h"
 #include "faces.h"
 #include "frame.h"
@@ -68,18 +69,7 @@
 static Lisp_Object
 build_syscolor_string (int idx)
 {
-  DWORD clr;
-  char buf[16];
-
-  if (idx < 0)
-    return Qnil;
-
-  clr = GetSysColor (idx);
-  sprintf (buf, "#%02X%02X%02X",
-	   GetRValue (clr),
-	   GetGValue (clr),
-	   GetBValue (clr));
-  return build_string (buf);
+  return (idx < 0 ? Qnil : mswindows_color_to_string (GetSysColor (idx)));
 }
 
 static Lisp_Object
@@ -159,7 +149,7 @@
   wc.lpszMenuName = NULL;
 
   wc.lpszClassName = XEMACS_CLASS;
-  wc.hIconSm = LoadImage (GetModuleHandle (NULL), XEMACS_CLASS,
+  wc.hIconSm = (HICON) LoadImage (GetModuleHandle (NULL), XEMACS_CLASS,
 			  IMAGE_ICON, 16, 16, 0);
   RegisterClassEx (&wc);
 
@@ -201,7 +191,10 @@
 mswindows_delete_device (struct device *d)
 {
 #ifdef HAVE_DRAGNDROP
-  DdeNameService (mswindows_dde_mlid, 0L, 0L, DNS_REGISTER);
+  DdeNameService (mswindows_dde_mlid, 0L, 0L, DNS_UNREGISTER);
+  DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_item_open);
+  DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_topic_system);
+  DdeFreeStringHandle (mswindows_dde_mlid, mswindows_dde_service);
   DdeUninitialize (mswindows_dde_mlid);
 #endif
 
@@ -243,22 +236,22 @@
       break;
 
       /*** Colors ***/
-#define FROB(met, index1, index2)			\
+#define FROB(met, fore, back)				\
     case DM_##met:					\
-      return build_syscolor_cons (index1, index2);
+      return build_syscolor_cons (fore, back);
       
-      FROB (color_default, COLOR_WINDOW, COLOR_WINDOWTEXT);
-      FROB (color_select, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT);
-      FROB (color_balloon, COLOR_INFOBK, COLOR_INFOTEXT);
-      FROB (color_3d_face, COLOR_3DFACE, COLOR_BTNTEXT);
-      FROB (color_3d_light, COLOR_3DLIGHT, COLOR_3DHILIGHT);
-      FROB (color_3d_dark, COLOR_3DSHADOW, COLOR_3DDKSHADOW);
-      FROB (color_menu, COLOR_MENU, COLOR_MENUTEXT);
-      FROB (color_menu_highlight, COLOR_HIGHLIGHT, COLOR_HIGHLIGHTTEXT);
-      FROB (color_menu_button, COLOR_MENU, COLOR_MENUTEXT);
-      FROB (color_menu_disabled, COLOR_MENU, COLOR_GRAYTEXT);
-      FROB (color_toolbar, COLOR_BTNFACE, COLOR_BTNTEXT);
-      FROB (color_scrollbar, COLOR_SCROLLBAR, COLOR_CAPTIONTEXT);
+      FROB (color_default, COLOR_WINDOWTEXT, COLOR_WINDOW);
+      FROB (color_select, COLOR_HIGHLIGHTTEXT, COLOR_HIGHLIGHT);
+      FROB (color_balloon, COLOR_INFOTEXT, COLOR_INFOBK);
+      FROB (color_3d_face, COLOR_BTNTEXT, COLOR_BTNFACE);
+      FROB (color_3d_light, COLOR_3DHILIGHT, COLOR_3DLIGHT);
+      FROB (color_3d_dark, COLOR_3DDKSHADOW, COLOR_3DSHADOW);
+      FROB (color_menu, COLOR_MENUTEXT, COLOR_MENU);
+      FROB (color_menu_highlight, COLOR_HIGHLIGHTTEXT, COLOR_HIGHLIGHT);
+      FROB (color_menu_button, COLOR_MENUTEXT, COLOR_MENU);
+      FROB (color_menu_disabled, COLOR_GRAYTEXT, COLOR_MENU);
+      FROB (color_toolbar, COLOR_BTNTEXT, COLOR_BTNFACE);
+      FROB (color_scrollbar, COLOR_CAPTIONTEXT, COLOR_SCROLLBAR);
       FROB (color_desktop, -1, COLOR_DESKTOP);
       FROB (color_workspace, -1, COLOR_APPWORKSPACE);
 #undef FROB
@@ -358,7 +351,8 @@
   if (DEVICE_MSPRINTER_DEVMODE_SIZE(d) <= 0)
     signal_open_printer_error (d);
 
-  DEVICE_MSPRINTER_DEVMODE(d) = xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d));
+  DEVICE_MSPRINTER_DEVMODE(d) =
+    (DEVMODE*) xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d));
   DocumentProperties (NULL, DEVICE_MSPRINTER_HPRINTER(d),
 		      printer_name, DEVICE_MSPRINTER_DEVMODE(d),
 		      NULL, DM_OUT_BUFFER);
@@ -459,7 +453,7 @@
 
   if (DEVICE_MSPRINTER_DEVMODE_MIRROR(d) == NULL)
     DEVICE_MSPRINTER_DEVMODE_MIRROR(d) = 
-      xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d));
+      (DEVMODE*) xmalloc (DEVICE_MSPRINTER_DEVMODE_SIZE(d));
 
   memcpy (DEVICE_MSPRINTER_DEVMODE_MIRROR(d),
 	  DEVICE_MSPRINTER_DEVMODE(d),
--- a/src/device.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/device.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1,4 +1,4 @@
- /* Generic device functions.
+/* Generic device functions.
    Copyright (C) 1994, 1995 Board of Trustees, University of Illinois.
    Copyright (C) 1994, 1995 Free Software Foundation, Inc.
    Copyright (C) 1995, 1996 Ben Wing
@@ -986,7 +986,7 @@
 size-device           Device screen or paper size in pixels.
 size-workspace        Workspace size in pixels. This can be less than or
                       equal to the above. For diplays, this is the area
-                      available to applications less window manager 
+                      available to applications less window manager
                       decorations. For printers, this is the size of
                       printable area.
 offset-workspace      Offset of workspace area from the top left corner
@@ -1244,6 +1244,8 @@
 void
 syms_of_device (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (device);
+
   DEFSUBR (Fvalid_device_class_p);
   DEFSUBR (Fdevice_class_list);
 
--- a/src/editfns.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/editfns.c	Mon Aug 13 11:14:34 2007 +0200
@@ -779,10 +779,10 @@
   /* #### - Stig sez: this should return nil instead of "unknown" when pw==0 */
   /* Ben sez: bad idea because it's likely to break something */
 #ifndef AMPERSAND_FULL_NAME
-  p = ((pw) ? USER_FULL_NAME : "unknown"); /* don't gettext */
+  p = pw ? USER_FULL_NAME : "unknown"; /* don't gettext */
   q = strchr (p, ',');
 #else
-  p = ((pw) ? USER_FULL_NAME : "unknown"); /* don't gettext */
+  p = pw ? USER_FULL_NAME : "unknown"; /* don't gettext */
   q = strchr (p, ',');
 #endif
   tem = ((!NILP (user) && !pw)
@@ -855,12 +855,12 @@
 	       */
 	      if (initial_directory[0] != '\0')
 		{
-		  cached_home_directory = initial_directory;
+		  cached_home_directory = (Extbyte*) initial_directory;
 		}
 	      else
 		{
 		  /* This will probably give the wrong value */
-		  cached_home_directory = getcwd (NULL, 0);
+		  cached_home_directory = (Extbyte*) getcwd (NULL, 0);
 		}
 # else
 	      /*
--- a/src/eldap.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/eldap.c	Mon Aug 13 11:14:34 2007 +0200
@@ -54,6 +54,9 @@
 static Lisp_Object Qkrbv41, Qkrbv42;
 /* Deref policy */
 static Lisp_Object Qnever, Qalways, Qfind;
+/* Modification types (Qdelete is defined in general.c) */
+static Lisp_Object Qadd, Qreplace;
+
 
 /************************************************************************/
 /*                         Utility Functions                            */
@@ -316,6 +319,9 @@
   if ((err = ldap_set_option (ld, LDAP_OPT_REFERRALS,
                               LDAP_OPT_ON)) != LDAP_SUCCESS)
     signal_ldap_error (ld, NULL, err);
+  if ((err = ldap_set_option (ld, LDAP_OPT_RESTART,
+                              LDAP_OPT_ON)) != LDAP_SUCCESS)
+    signal_ldap_error (ld, NULL, err);
 #else  /* not HAVE_LDAP_SET_OPTION */
   ld->ld_deref = ldap_deref;
   ld->ld_timelimit = ldap_timelimit;
@@ -325,12 +331,11 @@
 #else /* not LDAP_REFERRALS */
   ld->ld_options = 0;
 #endif /* not LDAP_REFERRALS */
+  /* XEmacs uses interrupts (SIGIO,SIGALRM), LDAP calls need to ignore them */
+  ld->ld_options |= LDAP_OPT_RESTART;
 #endif /* not HAVE_LDAP_SET_OPTION */
 
-  /* ldap_bind_s calls select and may be wedged by SIGIO.  */
-  slow_down_interrupts ();
   err = ldap_bind_s (ld, ldap_binddn, ldap_passwd, ldap_auth);
-  speed_up_interrupts ();
   if (err != LDAP_SUCCESS)
     signal_simple_error ("Failed binding to the server",
                          build_string (ldap_err2string (err)));
@@ -368,7 +373,6 @@
   struct berval **vals;
 };
 
-
 static Lisp_Object
 ldap_search_unwind (Lisp_Object unwind_obj)
 {
@@ -381,7 +385,12 @@
   return Qnil;
 }
 
-DEFUN ("ldap-search-internal", Fldap_search_internal, 2, 7, 0, /*
+/* The following function is called `ldap-search-basic' instead of      */
+/* plain `ldap-search' to maintain compatibility with the XEmacs 21.1   */
+/* API where `ldap-search' was the name of the high-level search        */
+/* function                                                             */
+
+DEFUN ("ldap-search-basic", Fldap_search_basic, 2, 8, 0, /*
 Perform a search on an open LDAP connection.
 LDAP is an LDAP connection object created with `ldap-open'.
 FILTER is a filter string for the search as described in RFC 1558.
@@ -392,13 +401,14 @@
  for each matching entry. If nil return all available attributes.
 If ATTRSONLY is non-nil then only the attributes are retrieved, not
 the associated values.
-If WITHDN is non-nil each entry in the result will be prepennded with
+If WITHDN is non-nil each entry in the result will be prepended with
 its distinguished name DN.
+If VERBOSE is non-nil progress messages will be echoed.
 The function returns a list of matching entries.  Each entry is itself
 an alist of attribute/value pairs optionally preceded by the DN of the
 entry according to the value of WITHDN.
 */
-       (ldap, filter, base, scope, attrs, attrsonly, withdn))
+       (ldap, filter, base, scope, attrs, attrsonly, withdn, verbose))
 {
   /* This function can GC */
 
@@ -496,10 +506,8 @@
   /* Build the results list */
   matches = 0;
 
-  /* ldap_result calls select() and can get wedged by EINTR signals */
-  slow_down_interrupts ();
   rc = ldap_result (ld, LDAP_RES_ANY, 0, NULL, &unwind.res);
-  speed_up_interrupts ();
+
   while (rc == LDAP_RES_SEARCH_ENTRY)
     {
       QUIT;
@@ -509,7 +517,8 @@
          destroys the current echo area contents, even when invoked
          from Lisp.  It should use echo_area_message() instead, and
          restore the old echo area contents later.  */
-      message ("Parsing ldap results... %d", matches);
+      if (! NILP (verbose))
+        message ("Parsing ldap results... %d", matches);
       entry = Qnil;
       /* Get the DN if required */
       if (! NILP (withdn))
@@ -545,43 +554,242 @@
       ldap_msgfree (unwind.res);
       unwind.res = NULL;
 
-      slow_down_interrupts ();
       rc = ldap_result (ld, LDAP_RES_ANY, 0, NULL, &(unwind.res));
-      speed_up_interrupts ();
     }
 
-  if (rc == -1)
-    signal_ldap_error (ld, unwind.res, 0);
-
-  if (rc == 0)
-    signal_ldap_error (ld, NULL, LDAP_TIMELIMIT_EXCEEDED);
-
 #if defined HAVE_LDAP_PARSE_RESULT
   rc2 = ldap_parse_result (ld, unwind.res,
                            &rc,
                            NULL, NULL, NULL, NULL, 0);
   if (rc2 != LDAP_SUCCESS)
     rc = rc2;
-#elif defined HAVE_LDAP_RESULT2ERROR
+#else
+  if (rc == 0)
+    signal_ldap_error (ld, NULL, LDAP_TIMELIMIT_EXCEEDED);
+
+  if (rc == -1)
+    signal_ldap_error (ld, unwind.res, (unwind.res==NULL) ? ld->ld_errno : 0);
+
+#if defined HAVE_LDAP_RESULT2ERROR
   rc = ldap_result2error (ld, unwind.res, 0);
 #endif
-  if ((rc != LDAP_SUCCESS) && (rc != LDAP_SIZELIMIT_EXCEEDED))
+#endif
+
+  if (rc != LDAP_SUCCESS)
     signal_ldap_error (ld, NULL, rc);
 
   ldap_msgfree (unwind.res);
   unwind.res = (LDAPMessage *)NULL;
+
   /* #### See above for calling message().  */
-  message ("Parsing ldap results... done");
+  if (! NILP (verbose))
+    message ("Parsing ldap results... done");
 
   unbind_to (speccount, Qnil);
   UNGCPRO;
   return Fnreverse (result);
 }
 
+DEFUN ("ldap-add", Fldap_add, 3, 3, 0, /*
+Add an entry to an LDAP directory.
+LDAP is an LDAP connection object created with `ldap-open'.
+DN is the distinguished name of the entry to add.
+ENTRY is an entry specification, i.e., a list of cons cells
+containing attribute/value string pairs.
+*/
+       (ldap, dn, entry))
+{
+  LDAP *ld;
+  LDAPMod *ldap_mods, **ldap_mods_ptrs;
+  struct berval *bervals;
+  int rc;
+  int i, j;
+
+  Lisp_Object current, values;
+  struct gcpro gcpro1, gcpro2;
+  GCPRO2 (current, values);
+
+  /* Do all the parameter checking  */
+  CHECK_LIVE_LDAP (ldap);
+  ld = XLDAP (ldap)->ld;
+
+  /* Check the DN */
+  CHECK_STRING (dn);
+
+  /* Check the entry */
+  CHECK_CONS (entry);
+  if (NILP (entry))
+    signal_simple_error ("Cannot add void entry", entry);
+
+  /* Build the ldap_mods array */
+  ldap_mods = alloca_array (LDAPMod, XINT (Flength (entry)));
+  ldap_mods_ptrs = alloca_array (LDAPMod *, 1 + XINT (Flength (entry)));
+  i = 0;
+  EXTERNAL_LIST_LOOP (entry, entry)
+    {
+      current = XCAR (entry);
+      CHECK_CONS (current);
+      CHECK_STRING (XCAR (current));
+      ldap_mods_ptrs[i] = &(ldap_mods[i]);
+      TO_EXTERNAL_FORMAT (LISP_STRING, XCAR (current),
+			  C_STRING_ALLOCA, ldap_mods[i].mod_type,
+			  Qnative);
+      ldap_mods[i].mod_op = LDAP_MOD_ADD | LDAP_MOD_BVALUES;
+      values = XCDR (current);
+      if (CONSP (values))
+        {
+          bervals =
+            alloca_array (struct berval, XINT (Flength (values)));
+          ldap_mods[i].mod_vals.modv_bvals =
+            alloca_array (struct berval *, 1 + XINT (Flength (values)));
+          j = 0;
+          EXTERNAL_LIST_LOOP (values, values)
+            {
+              current = XCAR (values);
+              CHECK_STRING (current);
+              ldap_mods[i].mod_vals.modv_bvals[j] = &(bervals[j]);
+	      TO_EXTERNAL_FORMAT (LISP_STRING, current,
+				  ALLOCA, (bervals[j].bv_val,
+					   bervals[j].bv_len),
+				  Qnative);
+              j++;
+            }
+          ldap_mods[i].mod_vals.modv_bvals[j] = NULL;
+        }
+      else
+        {
+          CHECK_STRING (values);
+          bervals = alloca_array (struct berval, 1);
+          ldap_mods[i].mod_vals.modv_bvals = alloca_array (struct berval *, 2);
+          ldap_mods[i].mod_vals.modv_bvals[0] = &(bervals[0]);
+	  TO_EXTERNAL_FORMAT (LISP_STRING, values,
+			      ALLOCA, (bervals[0].bv_val,
+				       bervals[0].bv_len),
+			      Qnative);
+          ldap_mods[i].mod_vals.modv_bvals[1] = NULL;
+        }
+      i++;
+    }
+  ldap_mods_ptrs[i] = NULL;
+  rc = ldap_add_s (ld, (char *) XSTRING_DATA (dn), ldap_mods_ptrs);
+  if (rc != LDAP_SUCCESS)
+    signal_ldap_error (ld, NULL, rc);
+
+  UNGCPRO;
+}
+
+DEFUN ("ldap-modify", Fldap_modify, 3, 3, 0, /*
+Add an entry to an LDAP directory.
+LDAP is an LDAP connection object created with `ldap-open'.
+DN is the distinguished name of the entry to modify.
+MODS is a list of modifications to apply.
+A modification is a list of the form (MOD-OP ATTR VALUE1 VALUE2 ...)
+MOD-OP and ATTR are mandatory, VALUEs are optional depending on MOD-OP.
+MOD-OP is the type of modification, one of the symbols `add', `delete'
+or `replace'. ATTR is the LDAP attribute type to modify
+*/
+       (ldap, dn, mods))
+{
+  LDAP *ld;
+  LDAPMod *ldap_mods, **ldap_mods_ptrs;
+  struct berval *bervals;
+  int i, j, rc;
+
+  Lisp_Object current, mod_op, values;
+  struct gcpro gcpro1, gcpro2;
+
+  GCPRO2 (current, values);
+
+  /* Do all the parameter checking  */
+  CHECK_LIVE_LDAP (ldap);
+  ld = XLDAP (ldap)->ld;
+
+  /* Check the DN */
+  CHECK_STRING (dn);
+
+  /* Check the entry */
+  CHECK_CONS (mods);
+  if (NILP (mods))
+    return Qnil;
+
+  /* Build the ldap_mods array */
+  ldap_mods = alloca_array (LDAPMod, XINT (Flength (mods)));
+  ldap_mods_ptrs = alloca_array (LDAPMod *, 1 + XINT (Flength (mods)));
+  i = 0;
+  EXTERNAL_LIST_LOOP (mods, mods)
+    {
+      current = XCAR (mods);
+      CHECK_CONS (current);
+      CHECK_SYMBOL (XCAR (current));
+      mod_op = XCAR (current);
+      ldap_mods_ptrs[i] = &(ldap_mods[i]);
+      ldap_mods[i].mod_op = LDAP_MOD_BVALUES;
+      if (EQ (mod_op, Qadd))
+        ldap_mods[i].mod_op |= LDAP_MOD_ADD;
+      else if (EQ (mod_op, Qdelete))
+        ldap_mods[i].mod_op |= LDAP_MOD_DELETE;
+      else if (EQ (mod_op, Qreplace))
+        ldap_mods[i].mod_op |= LDAP_MOD_REPLACE;
+      else
+        signal_simple_error ("Invalid LDAP modification type", mod_op);
+      current = XCDR (current);
+      CHECK_STRING (XCAR (current));
+      TO_EXTERNAL_FORMAT (LISP_STRING, XCAR (current),
+			  C_STRING_ALLOCA, ldap_mods[i].mod_type,
+			  Qnative);
+      values = XCDR (current);
+      bervals = alloca_array (struct berval, XINT (Flength (values)));
+      ldap_mods[i].mod_vals.modv_bvals =
+        alloca_array (struct berval *, 1 + XINT (Flength (values)));
+      j = 0;
+      EXTERNAL_LIST_LOOP (values, values)
+        {
+          current = XCAR (values);
+          CHECK_STRING (current);
+          ldap_mods[i].mod_vals.modv_bvals[j] = &(bervals[j]);
+	  TO_EXTERNAL_FORMAT (LISP_STRING, current,
+			      ALLOCA, (bervals[j].bv_val,
+				       bervals[j].bv_len),
+			      Qnative);
+          j++;
+        }
+      ldap_mods[i].mod_vals.modv_bvals[j] = NULL;
+      i++;
+    }
+  ldap_mods_ptrs[i] = NULL;
+  rc = ldap_modify_s (ld, (char *) XSTRING_DATA (dn), ldap_mods_ptrs);
+  if (rc != LDAP_SUCCESS)
+    signal_ldap_error (ld, NULL, rc);
+
+  UNGCPRO;
+}
+
+
+DEFUN ("ldap-delete", Fldap_delete, 2, 2, 0, /*
+Delete an entry to an LDAP directory.
+LDAP is an LDAP connection object created with `ldap-open'.
+DN is the distinguished name of the entry to delete.
+*/
+       (ldap, dn))
+{
+  LDAP *ld;
+  int rc;
+
+  /* Check parameters */
+  CHECK_LIVE_LDAP (ldap);
+  ld = XLDAP (ldap)->ld;
+  CHECK_STRING (dn);
+
+  rc = ldap_delete_s (ld, (char *) XSTRING_DATA (dn));
+  if (rc != LDAP_SUCCESS)
+    signal_ldap_error (ld, NULL, rc);
+}
 
 void
 syms_of_eldap (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (ldap);
+
   defsymbol (&Qldapp, "ldapp");
   defsymbol (&Qport, "port");
   defsymbol (&Qauth, "auth");
@@ -598,13 +806,18 @@
   defsymbol (&Qnever, "never");
   defsymbol (&Qalways, "always");
   defsymbol (&Qfind, "find");
+  defsymbol (&Qadd, "add");
+  defsymbol (&Qreplace, "replace");
 
   DEFSUBR (Fldapp);
   DEFSUBR (Fldap_host);
   DEFSUBR (Fldap_status);
   DEFSUBR (Fldap_open);
   DEFSUBR (Fldap_close);
-  DEFSUBR (Fldap_search_internal);
+  DEFSUBR (Fldap_search_basic);
+  DEFSUBR (Fldap_add);
+  DEFSUBR (Fldap_modify);
+  DEFSUBR (Fldap_delete);
 }
 
 void
--- a/src/eldap.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/eldap.h	Mon Aug 13 11:14:34 2007 +0200
@@ -62,12 +62,21 @@
 Lisp_Object Fldap_open (Lisp_Object host,
                         Lisp_Object ldap_plist);
 Lisp_Object Fldap_close (Lisp_Object ldap);
-Lisp_Object Fldap_search_internal (Lisp_Object ldap,
-                                   Lisp_Object filter,
-                                   Lisp_Object base,
-                                   Lisp_Object scope,
-                                   Lisp_Object attrs,
-                                   Lisp_Object attrsonly,
-                                   Lisp_Object withdn);
+Lisp_Object Fldap_search_basic (Lisp_Object ldap,
+                                Lisp_Object filter,
+                                Lisp_Object base,
+                                Lisp_Object scope,
+                                Lisp_Object attrs,
+                                Lisp_Object attrsonly,
+                                Lisp_Object withdn,
+                                Lisp_Object verbose);
+Lisp_Object Fldap_add (Lisp_Object ldap,
+                       Lisp_Object dn,
+                       Lisp_Object entry);
+Lisp_Object Fldap_modify (Lisp_Object ldap,
+                          Lisp_Object dn,
+                          Lisp_Object entry);
+Lisp_Object Fldap_delete (Lisp_Object ldap,
+                          Lisp_Object dn);
 
 #endif /* INCLUDED_eldap_h_ */
--- a/src/elhash.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/elhash.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1425,6 +1425,8 @@
 void
 syms_of_elhash (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (hash_table);
+
   DEFSUBR (Fhash_table_p);
   DEFSUBR (Fmake_hash_table);
   DEFSUBR (Fcopy_hash_table);
--- a/src/emacs.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/emacs.c	Mon Aug 13 11:14:34 2007 +0200
@@ -587,22 +587,6 @@
 
   sort_args (argc, argv);
 
-  /* Map in shared memory, if we are using that.  */
-#ifdef HAVE_SHM
-  if (argmatch (argv, argc, "-nl", "--no-shared-memory", 6, NULL, &skip_args))
-    {
-      map_in_data (0);
-      /* The shared memory was just restored, which clobbered this.  */
-      skip_args = 1;
-    }
-  else
-    {
-      map_in_data (1);
-      /* The shared memory was just restored, which clobbered this.  */
-      skip_args = 0;
-    }
-#endif /* HAVE_SHM */
-
 #if (defined (MSDOS) && defined (EMX)) || defined (WIN32) || defined (_SCO_DS)
   environ = envp;
 #endif
@@ -873,7 +857,7 @@
 
       /* Initialize Qnil, Qt, Qunbound, and the
 	 obarray.  After this, symbols can be
-	 interned.  This depends on init_alloc_once(). */
+	 interned.  This depends on init_alloc_once_early(). */
       init_symbols_once_early ();
 
       /* Declare the basic symbols pertaining to errors,
@@ -888,6 +872,7 @@
 	 The *only* thing that the syms_of_*() functions are allowed to do
 	 is call one of the following three functions:
 
+	 INIT_LRECORD_IMPLEMENTATION()
 	 defsymbol()
 	 defsubr() (i.e. DEFSUBR)
 	 deferror()
@@ -1903,13 +1888,13 @@
 
 struct standard_args
 {
-  const char * const name;
-  const char * const longname;
+  const char *name;
+  const char *longname;
   int priority;
   int nargs;
 };
 
-static struct standard_args standard_args[] =
+static const struct standard_args standard_args[] =
 {
   /* Handled by main_1 above: */
   { "-nl", "--no-shared-memory", 100, 0 },
@@ -2534,45 +2519,6 @@
 extern char my_edata[];
 #endif
 
-#ifdef HAVE_SHM
-
-DEFUN ("dump-emacs-data", Fdump_emacs_data, 1, 1, 0, /*
-Dump current state of XEmacs into data file FILENAME.
-This function exists on systems that use HAVE_SHM.
-*/
-       (intoname))
-{
-  /* This function can GC */
-  int opurify;
-  struct gcpro gcpro1;
-  GCPRO1 (intoname);
-
-  CHECK_STRING (intoname);
-  intoname = Fexpand_file_name (intoname, Qnil);
-
-  opurify = purify_flag;
-  purify_flag = 0;
-
-  fflush (stderr);
-  fflush (stdout);
-
-  disksave_object_finalization ();
-  release_breathing_space ();
-
-  /* Tell malloc where start of impure now is */
-  /* Also arrange for warnings when nearly out of space.  */
-#ifndef SYSTEM_MALLOC
-  memory_warnings (my_edata, malloc_warning);
-#endif
-  UNGCPRO;
-  map_out_data (XSTRING_DATA (intoname));
-
-  purify_flag = opurify;
-
-  return Qnil;
-}
-
-#else /* not HAVE_SHM */
 extern void disable_free_hook (void);
 
 DEFUN ("dump-emacs", Fdump_emacs, 2, 2, 0, /*
@@ -2688,8 +2634,6 @@
   return Qnil;
 }
 
-#endif /* not HAVE_SHM */
-
 #endif /* not CANNOT_DUMP */
 
 #ifndef SEPCHAR
@@ -2863,11 +2807,7 @@
 syms_of_emacs (void)
 {
 #ifndef CANNOT_DUMP
-#ifdef HAVE_SHM
-  DEFSUBR (Fdump_emacs_data);
-#else
   DEFSUBR (Fdump_emacs);
-#endif
 #endif /* !CANNOT_DUMP */
 
   DEFSUBR (Frun_emacs_from_temacs);
@@ -3108,7 +3048,7 @@
     Vmail_lock_methods = Fcons (intern ("locking"), Vmail_lock_methods);
 #endif
   }
-  
+
   DEFVAR_CONST_LISP ("configure-mail-lock-method", &Vconfigure_mail_lock_method /*
 Mail spool locking method suggested by configure.  This is one
 of the symbols in MAIL-LOCK-METHODS.
--- a/src/eval.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/eval.c	Mon Aug 13 11:14:34 2007 +0200
@@ -300,7 +300,7 @@
 };
 
 DEFINE_BASIC_LRECORD_IMPLEMENTATION ("subr", subr,
-				     this_one_is_unmarkable, print_subr, 0, 0, 0,
+				     0, print_subr, 0, 0, 0,
 				     subr_description,
 				     Lisp_Subr);
 
@@ -4960,6 +4960,8 @@
 void
 syms_of_eval (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (subr);
+
   defsymbol (&Qinhibit_quit, "inhibit-quit");
   defsymbol (&Qautoload, "autoload");
   defsymbol (&Qdebug_on_error, "debug-on-error");
--- a/src/event-msw.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/event-msw.c	Mon Aug 13 11:14:34 2007 +0200
@@ -118,9 +118,6 @@
 static Lisp_Object mswindows_u_dispatch_event_queue, mswindows_u_dispatch_event_queue_tail;
 static Lisp_Object mswindows_s_dispatch_event_queue, mswindows_s_dispatch_event_queue_tail;
 
-/* For speed: whether there is a WM_PAINT magic message in the system queue */
-static int mswindows_paint_pending = 0;
-
 /* The number of things we can wait on */
 #define MAX_WAITABLE (MAXIMUM_WAIT_OBJECTS - 1)
 
@@ -636,8 +633,8 @@
   SOCKET s;			/* Socket handle (which is a Win32 handle)   */
   OVERLAPPED ov;		/* Overlapped I/O structure		     */
   void* buffer;			/* Buffer. Allocated for input stream only   */
-  unsigned int bufsize;		/* Number of bytes last read		     */
-  unsigned int bufpos;		/* Position in buffer for next fetch	     */
+  unsigned long bufsize;	/* Number of bytes last read		     */
+  unsigned long bufpos;		/* Position in buffer for next fetch	     */
   unsigned int error_p :1;	/* I/O Error seen			     */
   unsigned int eof_p :1;	/* EOF Error seen			     */
   unsigned int pending_p :1;	/* There is a pending I/O operation	     */
@@ -1257,12 +1254,8 @@
 	     shouldn't have received a paint message for it here. */
 	  assert (msg.wParam == 0);
 
-	  if (!mswindows_paint_pending)
-	    {
-	      /* Queue a magic event for handling when safe */
-	      mswindows_enqueue_magic_event (msg.hwnd, WM_PAINT);
-	      mswindows_paint_pending = 1;
-	    }
+	  /* Queue a magic event for handling when safe */
+	  mswindows_enqueue_magic_event (msg.hwnd, WM_PAINT);
 
 	  /* Don't dispatch. WM_PAINT is always the last message in the
 	     queue so it's OK to just return. */
@@ -1523,7 +1516,7 @@
 	  { mswindows_dde_service, mswindows_dde_topic_system }, { 0, 0 } };
 
 	if (!(hszItem  || DdeCmpStringHandles (hszItem, mswindows_dde_service)) &&
-	    !(hszTopic || DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system)));
+	    !(hszTopic || DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system)))
 	  return (DdeCreateDataHandle (mswindows_dde_mlid, (LPBYTE)pairs,
 				       sizeof (pairs), 0L, 0, uFmt, 0));
       }
@@ -1533,7 +1526,7 @@
       if (!DdeCmpStringHandles (hszTopic, mswindows_dde_topic_system))
 	{
 	  DWORD len = DdeGetData (hdata, NULL, 0, 0);
-	  char *cmd = alloca (len+1);
+	  LPBYTE cmd = (LPBYTE) alloca (len+1);
 	  char *end;
 	  char *filename;
 	  struct gcpro gcpro1, gcpro2;
@@ -2367,7 +2360,7 @@
 
       GCPRO3 (emacs_event, l_dndlist, l_item);
 
-      if (!DragQueryPoint ((HANDLE) wParam, &point))
+      if (!DragQueryPoint ((HDROP) wParam, &point))
 	point.x = point.y = -1;		/* outside client area */
 
       event->event_type = misc_user_event;
@@ -2379,10 +2372,10 @@
       event->event.misc.y = point.y;
       event->event.misc.function = Qdragdrop_drop_dispatch;
 
-      filecount = DragQueryFile ((HANDLE) wParam, 0xffffffff, NULL, 0);
+      filecount = DragQueryFile ((HDROP) wParam, 0xffffffff, NULL, 0);
       for (i=0; i<filecount; i++)
 	{
-	  len = DragQueryFile ((HANDLE) wParam, i, NULL, 0);
+	  len = DragQueryFile ((HDROP) wParam, i, NULL, 0);
 	  /* The URLs that we make here aren't correct according to section
 	   * 3.10 of rfc1738 because they're missing the //<host>/ part and
 	   * because they may contain reserved characters. But that's OK. */
@@ -2396,14 +2389,14 @@
 #else
 	  filename = (char *)xmalloc (len+6);
 	  strcpy (filename, "file:");
-	  DragQueryFile ((HANDLE) wParam, i, filename+5, len+1);
+	  DragQueryFile ((HDROP) wParam, i, filename+5, len+1);
 	  dostounix_filename (filename+5);
 #endif
 	  l_item = make_string (filename, strlen (filename));
 	  l_dndlist = Fcons (l_item, l_dndlist);
 	  xfree (filename);
 	}
-      DragFinish ((HANDLE) wParam);
+      DragFinish ((HDROP) wParam);
 
       event->event.misc.object = Fcons (Qdragdrop_URL, l_dndlist);
       mswindows_enqueue_dispatch_event (emacs_event);
@@ -2725,7 +2718,6 @@
 
     case WM_PAINT:
       mswindows_handle_paint (XFRAME (EVENT_CHANNEL (emacs_event)));
-      mswindows_paint_pending = 0;
       break;
 
     case WM_SETFOCUS:
--- a/src/event-stream.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/event-stream.c	Mon Aug 13 11:14:34 2007 +0200
@@ -4910,6 +4910,9 @@
 void
 syms_of_event_stream (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (command_builder);
+  INIT_LRECORD_IMPLEMENTATION (timeout);
+
   defsymbol (&Qdisabled, "disabled");
   defsymbol (&Qcommand_event_p, "command-event-p");
 
--- a/src/events.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/events.c	Mon Aug 13 11:14:34 2007 +0200
@@ -2188,6 +2188,8 @@
 void
 syms_of_events (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (event);
+
   DEFSUBR (Fcharacter_to_event);
   DEFSUBR (Fevent_to_character);
 
--- a/src/extents.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/extents.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1537,8 +1537,7 @@
   assert (EXTENT_LIVE_P (extent));
   assert (!extent_detached_p (extent));
   {
-    Memind i = (endp) ? (extent_end (extent)) :
-      (extent_start (extent));
+    Memind i = endp ? extent_end (extent) : extent_start (extent);
     Lisp_Object obj = extent_object (extent);
     return buffer_or_string_memind_to_bytind (obj, i);
   }
@@ -1550,8 +1549,7 @@
   assert (EXTENT_LIVE_P (extent));
   assert (!extent_detached_p (extent));
   {
-    Memind i = (endp) ? (extent_end (extent)) :
-      (extent_start (extent));
+    Memind i = endp ? extent_end (extent) : extent_start (extent);
     Lisp_Object obj = extent_object (extent);
     return buffer_or_string_memind_to_bufpos (obj, i);
   }
@@ -6661,6 +6659,10 @@
 void
 syms_of_extents (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (extent);
+  INIT_LRECORD_IMPLEMENTATION (extent_info);
+  INIT_LRECORD_IMPLEMENTATION (extent_auxiliary);
+
   defsymbol (&Qextentp, "extentp");
   defsymbol (&Qextent_live_p, "extent-live-p");
 
--- a/src/faces.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/faces.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1752,6 +1752,8 @@
 void
 syms_of_faces (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (face);
+
   /* Qdefault, Qwidget, Qleft_margin, Qright_margin defined in general.c */
   defsymbol (&Qmodeline, "modeline");
   defsymbol (&Qgui_element, "gui-element");
--- a/src/file-coding.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/file-coding.c	Mon Aug 13 11:14:34 2007 +0200
@@ -5557,6 +5557,8 @@
 void
 syms_of_file_coding (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (coding_system);
+
   deferror (&Qcoding_system_error, "coding-system-error",
 	    "Coding-system error", Qio_error);
 
--- a/src/fileio.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/fileio.c	Mon Aug 13 11:14:34 2007 +0200
@@ -446,8 +446,8 @@
   if (p == beg + 2 && beg[1] == ':')
     {
       /* MAXPATHLEN+1 is guaranteed to be enough space for getdefdir.  */
-      Bufbyte *res = alloca (MAXPATHLEN + 1);
-      if (getdefdir (toupper (*beg) - 'A' + 1, res))
+      Bufbyte *res = (Bufbyte*) alloca (MAXPATHLEN + 1);
+      if (getdefdir (toupper (*beg) - 'A' + 1, (char *)res))
 	{
 	  char *c=((char *) res) + strlen ((char *) res);
 	  if (!IS_DIRECTORY_SEP (*c))
@@ -845,12 +845,12 @@
 #ifdef WINDOWSNT
   /* We will force directory separators to be either all \ or /, so make
      a local copy to modify, even if there ends up being no change. */
-  nm = strcpy (alloca (strlen (nm) + 1), nm);
+  nm = strcpy ((char *)alloca (strlen ((char *)nm) + 1), (char *)nm);
 
   /* Find and remove drive specifier if present; this makes nm absolute
      even if the rest of the name appears to be relative. */
   {
-    Bufbyte *colon = strrchr (nm, ':');
+    Bufbyte *colon = (Bufbyte *) strrchr ((char *)nm, ':');
 
     if (colon)
       /* Only recognize colon as part of drive specifier if there is a
@@ -1256,10 +1256,6 @@
   return make_string (target, o - target);
 }
 
-#if 0 /* FSFmacs */
-/* another older version of expand-file-name; */
-#endif
-
 DEFUN ("file-truename", Ffile_truename, 1, 2, 0, /*
 Return the canonical name of the given FILE.
 Second arg DEFAULT is directory to start with if FILE is relative
@@ -1270,24 +1266,27 @@
 */
        (filename, default_))
 {
-  /* This function can GC.  GC checked 1997.04.06. */
+  /* This function can GC. */
   Lisp_Object expanded_name;
-  Lisp_Object handler;
   struct gcpro gcpro1;
 
   CHECK_STRING (filename);
 
   expanded_name = Fexpand_file_name (filename, default_);
 
+  GCPRO1 (expanded_name);
+
   if (!STRINGP (expanded_name))
     return Qnil;
 
-  GCPRO1 (expanded_name);
-  handler = Ffind_file_name_handler (expanded_name, Qfile_truename);
-  UNGCPRO;
-
-  if (!NILP (handler))
-    return call2_check_string (handler, Qfile_truename, expanded_name);
+  {
+    Lisp_Object handler =
+      Ffind_file_name_handler (expanded_name, Qfile_truename);
+
+    if (!NILP (handler))
+      RETURN_UNGCPRO
+	(call2_check_string (handler, Qfile_truename, expanded_name));
+  }
 
   {
     char resolved_path[MAXPATHLEN];
@@ -1301,7 +1300,7 @@
     p = path;
     if (elen > MAXPATHLEN)
       goto toolong;
-    
+
     /* Try doing it all at once. */
     /* !! Does realpath() Mule-encapsulate?
        Answer: Nope! So we do it above */
@@ -1312,14 +1311,25 @@
 	   It claims to return a useful value in the "error" case, but since
 	   there is no indication provided of how far along the pathname
 	   the function went before erring, there is no way to use the
-	   partial result returned.  What a piece of junk. */
+	   partial result returned.  What a piece of junk.
+
+	   The above comment refers to historical versions of
+	   realpath().  The Unix98 specs state:
+
+	   "On successful completion, realpath() returns a
+	   pointer to the resolved name. Otherwise, realpath()
+	   returns a null pointer and sets errno to indicate the
+	   error, and the contents of the buffer pointed to by
+	   resolved_name are undefined."
+
+	   Since we depend on undocumented semantics of various system realpath()s,
+	   we just use our own version in realpath.c. */
 	for (;;)
 	  {
 	    p = (Extbyte *) memchr (p + 1, '/', elen - (p + 1 - path));
 	    if (p)
 	      *p = 0;
 
-	    /* memset (resolved_path, 0, sizeof (resolved_path)); */
 	    if (xrealpath ((char *) path, resolved_path))
 	      {
 		if (p)
@@ -1337,7 +1347,8 @@
 		/* "On failure, it returns NULL, sets errno to indicate
 		   the error, and places in resolved_path the absolute pathname
 		   of the path component which could not be resolved." */
-		if (p)
+
+ 		if (p)
 		  {
 		    int plen = elen - (p - path);
 
@@ -1358,17 +1369,20 @@
       }
 
     {
+      Lisp_Object resolved_name;
       int rlen = strlen (resolved_path);
       if (elen > 0 && XSTRING_BYTE (expanded_name, elen - 1) == '/'
           && !(rlen > 0 && resolved_path[rlen - 1] == '/'))
 	{
 	  if (rlen + 1 > countof (resolved_path))
 	    goto toolong;
-	  resolved_path[rlen] = '/';
-	  resolved_path[rlen + 1] = 0;
-	  rlen = rlen + 1;
+	  resolved_path[rlen++] = '/';
+	  resolved_path[rlen] = '\0';
 	}
-      return make_ext_string ((Bufbyte *) resolved_path, rlen, Qbinary);
+      TO_INTERNAL_FORMAT (DATA, (resolved_path, rlen),
+			  LISP_STRING, resolved_name,
+			  Qfile_name);
+      RETURN_UNGCPRO (resolved_name);
     }
 
   toolong:
@@ -1377,7 +1391,7 @@
   lose:
     report_file_error ("Finding truename", list1 (expanded_name));
   }
-  return Qnil;	/* suppress compiler warning */
+  RETURN_UNGCPRO (Qnil);
 }
 
 
@@ -1874,8 +1888,8 @@
 }
 
 DEFUN ("delete-file", Fdelete_file, 1, 1, "fDelete file: ", /*
-Delete specified file.  One argument, a file name string.
-If file has multiple names, it continues to exist with the other names.
+Delete the file named FILENAME (a string).
+If FILENAME has multiple names, it continues to exist with the other names.
 */
        (filename))
 {
@@ -3221,8 +3235,8 @@
   if (desc < 0)
     {
       desc = open ((char *) XSTRING_DATA (fn),
-                   (O_WRONLY | O_TRUNC | O_CREAT | OPEN_BINARY),
-		   ((auto_saving) ? auto_save_mode_bits : CREAT_MODE));
+                   O_WRONLY | O_TRUNC | O_CREAT | OPEN_BINARY,
+		   auto_saving ? auto_save_mode_bits : CREAT_MODE);
     }
 
   if (desc < 0)
--- a/src/floatfns.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/floatfns.c	Mon Aug 13 11:14:34 2007 +0200
@@ -988,6 +988,7 @@
 void
 syms_of_floatfns (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (float);
 
   /* Trig functions.  */
 
--- a/src/fns.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/fns.c	Mon Aug 13 11:14:34 2007 +0200
@@ -3719,6 +3719,8 @@
 void
 syms_of_fns (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (bit_vector);
+
   defsymbol (&Qstring_lessp, "string-lessp");
   defsymbol (&Qidentity, "identity");
   defsymbol (&Qyes_or_no_p, "yes-or-no-p");
--- a/src/frame.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/frame.c	Mon Aug 13 11:14:34 2007 +0200
@@ -3145,6 +3145,8 @@
 void
 syms_of_frame (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (frame);
+
   defsymbol (&Qdelete_frame_hook, "delete-frame-hook");
   defsymbol (&Qselect_frame_hook, "select-frame-hook");
   defsymbol (&Qdeselect_frame_hook, "deselect-frame-hook");
--- a/src/glyphs-msw.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/glyphs-msw.c	Mon Aug 13 11:14:34 2007 +0200
@@ -298,7 +298,7 @@
   struct device *d = XDEVICE (device);
   struct frame *f;
   void* bmp_buf=0;
-  int type = 0;
+  enum image_instance_type type;
   HBITMAP bitmap;
   HDC hdc;
 
@@ -458,13 +458,12 @@
   HBITMAP mask;
   HGDIOBJ old = NULL;
   HDC hcdc = FRAME_MSWINDOWS_CDC (f);
-  unsigned char* dibits;
-  BITMAPINFO* bmp_info =
-    xmalloc_and_zero (sizeof(BITMAPINFO) + sizeof(RGBQUAD));
+  unsigned char *dibits, *and_bits;
+  BITMAPINFO *bmp_info =
+    (BITMAPINFO*) xmalloc_and_zero (sizeof(BITMAPINFO) + sizeof(RGBQUAD));
   int i, j;
   int height = IMAGE_INSTANCE_PIXMAP_HEIGHT (image);
 
-  void* and_bits;
   int maskbpline = BPLINE ((IMAGE_INSTANCE_PIXMAP_WIDTH (image)+7)/8);
   int bpline = BPLINE (IMAGE_INSTANCE_PIXMAP_WIDTH (image) * 3);
 
@@ -492,7 +491,7 @@
   if (!(mask = CreateDIBSection (hcdc,
 				 bmp_info,
 				 DIB_RGB_COLORS,
-				 &and_bits,
+				 (void**)&and_bits,
 				 0,0)))
     {
       xfree (bmp_info);
@@ -513,7 +512,7 @@
   bmp_info->bmiHeader.biClrImportant = 0;
   bmp_info->bmiHeader.biSizeImage = height * bpline;
 
-  dibits = xmalloc_and_zero (bpline * height);
+  dibits = (unsigned char*) xmalloc_and_zero (bpline * height);
   if (GetDIBits (hcdc,
 		 IMAGE_INSTANCE_MSWINDOWS_BITMAP (image),
 		 0,
@@ -528,20 +527,20 @@
 
   /* now set the colored bits in the mask and transparent ones to
      black in the original */
-  for(i=0; i<IMAGE_INSTANCE_PIXMAP_WIDTH (image); i++)
+  for (i=0; i<IMAGE_INSTANCE_PIXMAP_WIDTH (image); i++)
     {
-      for(j=0; j<height; j++)
+      for (j=0; j<height; j++)
 	{
 	  unsigned char* idx = &dibits[j * bpline + i * 3];
 
-	  if( RGB (idx[2], idx[1], idx[0]) == transparent_color )
+	  if (RGB (idx[2], idx[1], idx[0]) == transparent_color)
 	    {
 	      idx[0] = idx[1] = idx[2] = 0;
-	      set_mono_pixel( and_bits, maskbpline, height, i, j, TRUE );
+	      set_mono_pixel (and_bits, maskbpline, height, i, j, TRUE);
 	    }
 	  else
 	    {
-	      set_mono_pixel( and_bits, maskbpline, height, i, j, FALSE );
+	      set_mono_pixel (and_bits, maskbpline, height, i, j, FALSE);
             }
 	}
     }
@@ -1222,7 +1221,7 @@
   LPCTSTR resid=0;
   HINSTANCE hinst = NULL;
   ICONINFO iconinfo;
-  int iitype=0;
+  enum image_instance_type iitype;
   char* fname=0;
   Lisp_Object device = IMAGE_INSTANCE_DEVICE (ii);
 
@@ -1304,17 +1303,17 @@
      bitmap and mask */
   if (type != IMAGE_BITMAP)
     {
-      GetIconInfo (himage, &iconinfo);
+      GetIconInfo ((HICON)himage, &iconinfo);
       IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = iconinfo.hbmColor;
       IMAGE_INSTANCE_MSWINDOWS_MASK (ii) = iconinfo.hbmMask;
       XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_X (ii), iconinfo.xHotspot);
       XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_Y (ii), iconinfo.yHotspot);
-      IMAGE_INSTANCE_MSWINDOWS_ICON (ii) = himage;
+      IMAGE_INSTANCE_MSWINDOWS_ICON (ii) = (HICON) himage;
     }
   else
     {
       IMAGE_INSTANCE_MSWINDOWS_ICON (ii) = NULL;
-      IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = himage;
+      IMAGE_INSTANCE_MSWINDOWS_BITMAP (ii) = (HBITMAP) himage;
       IMAGE_INSTANCE_MSWINDOWS_MASK (ii) = NULL;
       XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_X (ii), 0);
       XSETINT (IMAGE_INSTANCE_PIXMAP_HOTSPOT_Y (ii), 0);
@@ -1476,11 +1475,9 @@
  * its arguments won't have been touched.  This routine should look as much
  * like the Xlib routine XReadBitmapfile as possible.
  */
-int read_bitmap_data (fstream, width, height, datap, x_hot, y_hot)
-    FILE *fstream;			/* handle on file  */
-    unsigned int *width, *height;	/* RETURNED */
-    unsigned char **datap;		/* RETURNED */
-    int *x_hot, *y_hot;			/* RETURNED */
+int read_bitmap_data (FILE* fstream, unsigned int *width,
+		      unsigned int *height, unsigned char **datap,
+		      int *x_hot, int *y_hot)
 {
     unsigned char *data = NULL;		/* working variable */
     char line[MAX_SIZE];		/* input line from file */
@@ -1640,8 +1637,8 @@
   void *bmp_buf = 0;
   unsigned char *new_data, *new_offset;
   int i, j;
-  BITMAPINFO* bmp_info =
-    xmalloc_and_zero (sizeof(BITMAPINFO) + sizeof(RGBQUAD));
+  BITMAPINFO *bmp_info =
+    (BITMAPINFO*) xmalloc_and_zero (sizeof(BITMAPINFO) + sizeof(RGBQUAD));
   HBITMAP bitmap;
 
   if (!bmp_info)
@@ -2509,7 +2506,9 @@
 static void
 mswindows_button_update (Lisp_Object image_instance)
 {
+  /* This function can GC if IN_REDISPLAY is false. */
   Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
+
   /* buttons checked or otherwise */
   if (gui_item_selected_p (IMAGE_INSTANCE_WIDGET_ITEM (ii)))
     SendMessage (WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii),
@@ -2723,7 +2722,7 @@
 {
   Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
 
-  if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii));
+  if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii))
     {
       HWND wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
       int i = 0;
@@ -2771,7 +2770,7 @@
 			     int dest_mask, Lisp_Object domain)
 {
   Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
-  HANDLE wnd;
+  HWND wnd;
   Lisp_Object rest;
   Lisp_Object data = Fplist_get (find_keyword_in_vector (instantiator, Q_properties),
 				 Q_items, Qnil);
@@ -2825,12 +2824,12 @@
 mswindows_widget_property (Lisp_Object image_instance, Lisp_Object prop)
 {
   Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
-  HANDLE wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
+  HWND wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
   /* get the text from a control */
   if (EQ (prop, Q_text))
     {
       Extcount len = SendMessage (wnd, WM_GETTEXTLENGTH, 0, 0);
-      Extbyte* buf =alloca (len+1);
+      Extbyte *buf = (Extbyte*) alloca (len+1);
 
       SendMessage (wnd, WM_GETTEXT, (WPARAM)len+1, (LPARAM) buf);
       return build_ext_string (buf, Qnative);
@@ -2843,7 +2842,7 @@
 mswindows_button_property (Lisp_Object image_instance, Lisp_Object prop)
 {
   Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
-  HANDLE wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
+  HWND wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
   /* check the state of a button */
   if (EQ (prop, Q_selected))
     {
@@ -2860,13 +2859,13 @@
 mswindows_combo_box_property (Lisp_Object image_instance, Lisp_Object prop)
 {
   Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
-  HANDLE wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
+  HWND wnd = WIDGET_INSTANCE_MSWINDOWS_HANDLE (ii);
   /* get the text from a control */
   if (EQ (prop, Q_text))
     {
       long item = SendMessage (wnd, CB_GETCURSEL, 0, 0);
       Extcount len = SendMessage (wnd, CB_GETLBTEXTLEN, (WPARAM)item, 0);
-      Extbyte* buf = alloca (len+1);
+      Extbyte* buf = (Extbyte*) alloca (len+1);
       SendMessage (wnd, CB_GETLBTEXT, (WPARAM)item, (LPARAM)buf);
       return build_ext_string (buf, Qnative);
     }
--- a/src/glyphs-msw.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/glyphs-msw.h	Mon Aug 13 11:14:34 2007 +0200
@@ -48,7 +48,7 @@
 #define IMAGE_INSTANCE_MSWINDOWS_BITMAP_SLICES(i) \
      (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->bitmaps)
 #define IMAGE_INSTANCE_MSWINDOWS_MASK(i) \
-     (HBITMAP)(IMAGE_INSTANCE_PIXMAP_MASK (i))
+     (*(HBITMAP*)&(IMAGE_INSTANCE_PIXMAP_MASK (i)))		/* Make it lvalue */
 #define IMAGE_INSTANCE_MSWINDOWS_ICON(i) \
      (MSWINDOWS_IMAGE_INSTANCE_DATA (i)->icon)
 
--- a/src/glyphs-widget.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/glyphs-widget.c	Mon Aug 13 11:14:34 2007 +0200
@@ -335,7 +335,7 @@
   Lisp_Image_Instance* ii = XIMAGE_INSTANCE (widget);
   struct image_instantiator_methods* meths;
 
-  if (!IMAGE_INSTANCE_TYPE (ii) == IMAGE_WIDGET)
+  if (IMAGE_INSTANCE_TYPE (ii) != IMAGE_WIDGET)
     return;
 
   /* Device generic methods. We must update the widget's size as it
@@ -715,7 +715,7 @@
 			    enum image_instance_geometry disp, Lisp_Object domain)
 {
   Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
-  Lisp_Object items = IMAGE_INSTANCE_WIDGET_ITEMS (ii);
+  Lisp_Object items = XCDR (IMAGE_INSTANCE_WIDGET_ITEMS (ii));
   Lisp_Object rest;
   unsigned int tw = 0, th = 0;
 
@@ -726,7 +726,7 @@
       query_string_geometry (XGUI_ITEM (XCAR (rest))->name,
 			     IMAGE_INSTANCE_WIDGET_FACE (ii),
 			     &w, &h, 0, domain);
-      tw += 2 * WIDGET_BORDER_WIDTH; /* some bias */
+      tw += 5 * WIDGET_BORDER_WIDTH; /* some bias */
       tw += w;
       th = max (th, h + 2 * WIDGET_BORDER_HEIGHT);
     }
--- a/src/glyphs-x.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/glyphs-x.c	Mon Aug 13 11:14:34 2007 +0200
@@ -2180,41 +2180,33 @@
 static void
 x_update_widget (Lisp_Image_Instance *p)
 {
+  /* This function can GC if IN_REDISPLAY is false. */
 #ifdef HAVE_WIDGETS
   widget_value* wv = 0;
-  Boolean deep_p = False;
-  /* Possibly update the size. */
-  if (IMAGE_INSTANCE_SIZE_CHANGED (p))
-    {
-      Arg al[2];
-
-      assert (IMAGE_INSTANCE_X_WIDGET_ID (p) &&
-	      IMAGE_INSTANCE_X_CLIPWIDGET (p)) ;
-
-      if ( !XtIsManaged(IMAGE_INSTANCE_X_WIDGET_ID (p))
-	   ||
-	   IMAGE_INSTANCE_X_WIDGET_ID (p)->core.being_destroyed )
-	{
-	  Lisp_Object sw;
-	  XSETIMAGE_INSTANCE (sw, p);
-	  signal_simple_error ("XEmacs bug: subwindow is deleted", sw);
-	}
-
-      XtSetArg (al [0], XtNwidth, (Dimension)IMAGE_INSTANCE_WIDTH (p));
-      XtSetArg (al [1], XtNheight, (Dimension)IMAGE_INSTANCE_HEIGHT (p));
-      XtSetValues (IMAGE_INSTANCE_X_WIDGET_ID (p), al, 2);
-    }
-
-  /* First get the items if they have changed since this is a structural change. */
+
+  /* First get the items if they have changed since this is a
+     structural change. As such it will nuke all added values so we
+     need to update most other things after the items have changed.*/
   if (IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p))
     {
       wv = gui_items_to_widget_values
 	(IMAGE_INSTANCE_WIDGET_ITEMS (p));
-      deep_p = True;
+      wv->change = STRUCTURAL_CHANGE;
+      /* now modify the widget */
+      lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (p),
+			     wv, True);
+      free_widget_value_tree (wv);
     }
 
+  /* Now do non structural updates. */
+  wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (p));
+
   /* Possibly update the colors and font */
-  if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (p))
+  if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (p) 
+      ||
+      XFRAME (IMAGE_INSTANCE_SUBWINDOW_FRAME (p))->faces_changed
+      ||
+      IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p))
     {
       update_widget_face (wv, p, IMAGE_INSTANCE_SUBWINDOW_FRAME (p));
     }
@@ -2230,10 +2222,31 @@
       wv->value = str;
     }
 
+  /* Possibly update the size. */
+  if (IMAGE_INSTANCE_SIZE_CHANGED (p)
+      ||
+      IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (p))
+    {
+      assert (IMAGE_INSTANCE_X_WIDGET_ID (p) &&
+	      IMAGE_INSTANCE_X_CLIPWIDGET (p)) ;
+
+      if (IMAGE_INSTANCE_X_WIDGET_ID (p)->core.being_destroyed
+	  || !XtIsManaged(IMAGE_INSTANCE_X_WIDGET_ID (p)))
+	{
+	  Lisp_Object sw;
+	  XSETIMAGE_INSTANCE (sw, p);
+	  signal_simple_error ("XEmacs bug: subwindow is deleted", sw);
+	}
+
+      lw_add_widget_value_arg (wv, XtNwidth,
+			       (Dimension)IMAGE_INSTANCE_WIDTH (p));
+      lw_add_widget_value_arg (wv, XtNheight,
+			       (Dimension)IMAGE_INSTANCE_HEIGHT (p));
+    }
+
   /* now modify the widget */
   lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (p),
-			 wv, deep_p);
-  free_widget_value_tree (wv);
+			 wv, False);
 #endif
 }
 
@@ -2432,9 +2445,9 @@
 
   lw_add_widget_value_arg (clip_wv, XtNresize, False);
   lw_add_widget_value_arg (clip_wv, XtNwidth,
-			   (Dimension)IMAGE_INSTANCE_SUBWINDOW_WIDTH (ii));
+			   (Dimension)IMAGE_INSTANCE_WIDTH (ii));
   lw_add_widget_value_arg (clip_wv, XtNheight,
-			   (Dimension)IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii));
+			   (Dimension)IMAGE_INSTANCE_HEIGHT (ii));
   clip_wv->enabled = True;
 
   clip_wv->name = xstrdup ("clip-window");
@@ -2470,9 +2483,9 @@
   /* we cannot allow widgets to resize themselves */
   lw_add_widget_value_arg (wv, XtNresize, False);
   lw_add_widget_value_arg (wv, XtNwidth,
-			   (Dimension)IMAGE_INSTANCE_SUBWINDOW_WIDTH (ii));
+			   (Dimension)IMAGE_INSTANCE_WIDTH (ii));
   lw_add_widget_value_arg (wv, XtNheight,
-			   (Dimension)IMAGE_INSTANCE_SUBWINDOW_HEIGHT (ii));
+			   (Dimension)IMAGE_INSTANCE_HEIGHT (ii));
   /* update the font. */
   update_widget_face (wv, ii, domain);
 
@@ -2671,14 +2684,17 @@
   Lisp_Image_Instance *ii = XIMAGE_INSTANCE (image_instance);
 
   /* Possibly update the face. */
-  if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (ii))
+  if (IMAGE_INSTANCE_WIDGET_FACE_CHANGED (ii) 
+      ||
+      XFRAME (IMAGE_INSTANCE_SUBWINDOW_FRAME (ii))->faces_changed
+      ||
+      IMAGE_INSTANCE_WIDGET_ITEMS_CHANGED (ii))
     {
       widget_value* wv = lw_get_all_values (IMAGE_INSTANCE_X_WIDGET_LWID (ii));
       update_tab_widget_face (wv, ii,
 			      IMAGE_INSTANCE_SUBWINDOW_FRAME (ii));
 
       lw_modify_all_widgets (IMAGE_INSTANCE_X_WIDGET_LWID (ii), wv, True);
-      free_widget_value_tree (wv);
     }
 }
 
--- a/src/glyphs.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/glyphs.c	Mon Aug 13 11:14:34 2007 +0200
@@ -580,6 +580,7 @@
 				int dest_mask, Lisp_Object glyph)
 {
   Lisp_Object ii = allocate_image_instance (device, glyph);
+  Lisp_Image_Instance* p = XIMAGE_INSTANCE (ii);
   struct image_instantiator_methods *meths;
   struct gcpro gcpro1;
   int  methp = 0;
@@ -608,6 +609,18 @@
 					    pointer_bg, dest_mask, domain));
   UNGCPRO;
 
+  /* Some code may have already laid out the widget, if not then do it
+     here. */
+  if (IMAGE_INSTANCE_LAYOUT_CHANGED (p))
+    image_instance_layout (ii, IMAGE_UNSPECIFIED_GEOMETRY,
+			   IMAGE_UNSPECIFIED_GEOMETRY, domain);
+
+  /* We *must* have a clean image at this point. */
+  IMAGE_INSTANCE_TEXT_CHANGED (p) = 0;
+  IMAGE_INSTANCE_SIZE_CHANGED (p) = 0;
+  IMAGE_INSTANCE_LAYOUT_CHANGED (p) = 0;
+  IMAGE_INSTANCE_DIRTYP (p) = 0;
+
   return ii;
 }
 
@@ -977,7 +990,6 @@
   lp->parent = glyph;
   /* So that layouts get done. */
   lp->layout_changed = 1;
-  lp->dirty = 1;
 
   XSETIMAGE_INSTANCE (val, lp);
   MARK_GLYPHS_CHANGED;
@@ -1149,7 +1161,7 @@
 {
   if (IMAGE_INSTANCEP (IMAGE_INSTANCE_PARENT (ii)))
     {
-      return image_instance_parent_glyph 
+      return image_instance_parent_glyph
 	(XIMAGE_INSTANCE (IMAGE_INSTANCE_PARENT (ii)));
     }
   return IMAGE_INSTANCE_PARENT (ii);
@@ -2672,7 +2684,14 @@
 static Lisp_Object
 image_instantiate_cache_result (Lisp_Object locative)
 {
-  /* locative = (instance instantiator . subtable) */
+  /* locative = (instance instantiator . subtable)
+
+     So we are using the instantiator as the key and the instance as
+     the value. Since the hashtable is key-weak this means that the
+     image instance will stay around as long as the instantiator stays
+     around. The instantiator is stored in the `image' slot of the
+     glyph, so as long as the glyph is marked the instantiator will be
+     as well and hence the cached image instance also.*/
   Fputhash (XCAR (XCDR (locative)), XCAR (locative), XCDR (XCDR (locative)));
   free_cons (XCONS (XCDR (locative)));
   free_cons (XCONS (locative));
@@ -3821,8 +3840,8 @@
  *****************************************************************************/
 
 /* #### All of this is 95% copied from face cachels.  Consider
-  consolidating.  
-  
+  consolidating.
+
   Why do we need glyph_cachels? Simply because a glyph_cachel captures
   per-window information about a particular glyph. A glyph itself is
   not created in any particular context, so if we were to rely on a
@@ -4247,18 +4266,32 @@
  *                              subwindow functions                          *
  *****************************************************************************/
 
-/* update the displayed characteristics of a subwindow */
+/* Update the displayed characteristics of a subwindow. This function
+   should generally only get called if the subwindow is actually
+   dirty. The only other time it gets called is if subwindow state
+   changed, when we can't actually tell whether its going to be dirty
+   or not. 
+   #### I suspect what we should really do is re-evaluate all the
+   gui slots that could affect this and then mark the instance as
+   dirty. Right now, updating everything is safe but expensive. */
 void
 update_subwindow (Lisp_Object subwindow)
 {
   Lisp_Image_Instance* ii = XIMAGE_INSTANCE (subwindow);
+  int count = specpdl_depth ();
+
+  /* The update method is allowed to call eval.  Since it is quite
+     common for this function to get called from somewhere in
+     redisplay we need to make sure that quits are ignored.  Otherwise
+     Fsignal will abort. */
+  specbind (Qinhibit_quit, Qt);
 
   if (IMAGE_INSTANCE_TYPE (ii) == IMAGE_WIDGET
       ||
       IMAGE_INSTANCE_TYPE (ii) == IMAGE_LAYOUT)
     {
       if (IMAGE_INSTANCE_TYPE (ii) == IMAGE_WIDGET)
-	  update_widget (subwindow);
+	update_widget (subwindow);
       /* Reset the changed flags. */
       IMAGE_INSTANCE_WIDGET_FACE_CHANGED (ii) = 0;
       IMAGE_INSTANCE_WIDGET_PERCENT_CHANGED (ii) = 0;
@@ -4273,6 +4306,8 @@
     }
 
   IMAGE_INSTANCE_SIZE_CHANGED (ii) = 0;
+
+  unbind_to (count, Qnil);
 }
 
 /* Update all the subwindows on a frame. */
@@ -4289,7 +4324,13 @@
 	struct subwindow_cachel *cachel =
 	  Dynarr_atp (f->subwindow_cachels, elt);
 
-	if (cachel->being_displayed)
+	if (cachel->being_displayed
+	    &&
+	    /* We only want to update if something has really
+               changed. */
+	    (f->subwindows_state_changed
+	     ||
+	     XIMAGE_INSTANCE_DIRTYP (cachel->subwindow)))
 	  {
 	    update_subwindow (cachel->subwindow);
 	  }
@@ -4358,17 +4399,6 @@
   cachel->height = dga->height;
   cachel->being_displayed = 1;
 
-#if 0
-  /* This forces any pending display changes to happen to the image
-     before we show it. I'm not sure whether or not we need mark as
-     clean here, but for now we will. */
-  if (IMAGE_INSTANCE_DIRTYP (ii))
-    {
-      update_subwindow (subwindow);
-      IMAGE_INSTANCE_DIRTYP (ii) = 0;
-    }
-#endif
-
   MAYBE_DEVMETH (XDEVICE (ii->device), map_subwindow, (ii, x, y, dga));
 }
 
@@ -4610,7 +4640,7 @@
 		 also might not. */
 	      MARK_DEVICE_FRAMES_GLYPHS_CHANGED
 		(XDEVICE (IMAGE_INSTANCE_DEVICE (ii)));
-	      /* Cascade dirtiness so that we can have an animated glyph in a layout 
+	      /* Cascade dirtiness so that we can have an animated glyph in a layout
 		 for instance. */
 	      set_image_instance_dirty_p (value, 1);
 	    }
@@ -4657,6 +4687,9 @@
 void
 syms_of_glyphs (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (glyph);
+  INIT_LRECORD_IMPLEMENTATION (image_instance);
+
   /* image instantiators */
 
   DEFSUBR (Fimage_instantiator_format_list);
--- a/src/gui-msw.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/gui-msw.c	Mon Aug 13 11:14:34 2007 +0200
@@ -92,9 +92,6 @@
 
   CHECK_STRING (document);
 
-  /* Just get the filename if we were given it. */
-  document = Ffile_name_nondirectory (document);
-
   if (NILP (current_dir))
     current_dir = current_buffer->directory;
 
@@ -118,7 +115,11 @@
       TO_EXTERNAL_FORMAT (LISP_STRING, document,
 			  C_STRING_ALLOCA, f,
 			  Qfile_name);
+#ifdef __CYGWIN32__
+      CYGWIN_WIN32_PATH (f, doc);
+#else
       doc = f;
+#endif
     }
 
   UNGCPRO;
--- a/src/gui-x.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/gui-x.c	Mon Aug 13 11:14:34 2007 +0200
@@ -619,6 +619,8 @@
 void
 syms_of_gui_x (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (popup_data);
+
   defsymbol (&Qmenu_no_selection_hook, "menu-no-selection-hook");
 }
 
--- a/src/gui.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/gui.c	Mon Aug 13 11:14:34 2007 +0200
@@ -625,6 +625,8 @@
 void
 syms_of_gui (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (gui_item);
+
   defkeyword (&Q_active,   ":active");
   defkeyword (&Q_suffix,   ":suffix");
   defkeyword (&Q_keys,     ":keys");
--- a/src/gutter.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/gutter.c	Mon Aug 13 11:14:34 2007 +0200
@@ -337,6 +337,22 @@
   redisplay_clear_region (window, findex, x, y, width, height);
 }
 
+/* #### I don't currently believe that redisplay needs to mark the
+   glyphs in its structures since these will always be referenced from
+   somewhere else. However, I'm not sure enough to stake my life on it
+   at this point, so we do the safe thing. */
+
+/* See the comment in image_instantiate_cache_result as to why marking
+   the glyph will also mark the image_instance. */
+void
+mark_gutters (struct frame* f)
+{
+  if (f->current_display_lines)
+    mark_redisplay_structs (f->current_display_lines);
+  if (f->desired_display_lines)
+    mark_redisplay_structs (f->desired_display_lines);
+}
+
 void
 update_frame_gutters (struct frame *f)
 {
--- a/src/gutter.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/gutter.h	Mon Aug 13 11:14:34 2007 +0200
@@ -54,6 +54,7 @@
 extern Lisp_Object Vgutter_size[4];
 extern Lisp_Object Vgutter_border_width[4];
 void update_frame_gutters (struct frame *f);
+void mark_gutters (struct frame* f);
 void init_frame_gutters (struct frame *f);
 void init_device_gutters (struct device *d);
 void init_global_gutters (struct device *d);
--- a/src/insdel.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/insdel.c	Mon Aug 13 11:14:34 2007 +0200
@@ -309,60 +309,59 @@
   Charcount count = 0;
   const Bufbyte *end = ptr + len;
 
-#if (LONGBITS == 32 || LONGBITS == 64)
-
-# if (LONGBITS == 32)
-#  define LONG_BYTES 4
-#  define ALIGN_MASK 0xFFFFFFFCU
-#  define HIGH_BIT_MASK 0x80808080U
-# else
-#  define LONG_BYTES 8
-#  define ALIGN_MASK 0xFFFFFFFFFFFFFFF8UL
-   /* I had a dream, I was being overrun with early Intel processors ... */
-#  define HIGH_BIT_MASK 0x8080808080808080UL
-# endif
-
-  /* When we have a large number of bytes to scan, we can be trickier
-     and significantly faster by scanning them in chunks of the CPU word
-     size (assuming that they're all ASCII -- we cut out as soon as
-     we find something non-ASCII). */
-  if (len >= 12)
+#if SIZEOF_LONG == 8
+# define STRIDE_TYPE long
+# define HIGH_BIT_MASK 0x8080808080808080UL
+#elif SIZEOF_LONG_LONG == 8 && !(defined (i386) || defined (__i386__))
+# define STRIDE_TYPE long long
+# define HIGH_BIT_MASK 0x8080808080808080ULL
+#elif SIZEOF_LONG == 4
+# define STRIDE_TYPE long
+# define HIGH_BIT_MASK 0x80808080UL
+#else
+# error Add support for 128-bit systems here
+#endif
+
+#define ALIGN_BITS ((EMACS_UINT) (ALIGNOF (STRIDE_TYPE) - 1))
+#define ALIGN_MASK (~ ALIGN_BITS)
+#define ALIGNED(ptr) ((((EMACS_UINT) ptr) & ALIGN_BITS) == 0)
+#define STRIDE sizeof (STRIDE_TYPE)
+
+  while (ptr < end)
     {
-      /* Determine the section in the middle of the string that's
-	 amenable to this treatment.  Everything has to be aligned
-	 on CPU word boundaries. */
-      const Bufbyte *aligned_ptr =
-	(const Bufbyte *) (((unsigned long) (ptr + LONG_BYTES - 1)) &
-			   ALIGN_MASK);
-      const Bufbyte *aligned_end =
-	(const Bufbyte *) (((unsigned long) end) & ALIGN_MASK);
-
-      /* Handle unaligned stuff at the beginning. */
-      while (ptr < aligned_ptr)
+      if (BYTE_ASCII_P (*ptr))
 	{
-	  if (!BYTE_ASCII_P (*ptr))
-	    goto bail;
-	  count++, ptr++;
+	  /* optimize for long stretches of ASCII */
+	  if (! ALIGNED (ptr))
+	    ptr++, count++;
+	  else
+	    {
+	      const unsigned STRIDE_TYPE *ascii_end =
+		(const unsigned STRIDE_TYPE *) ptr;
+	      /* This loop screams, because we can typically
+		 detect ASCII characters 8 at a time. */
+	      while ((const Bufbyte *) ascii_end + STRIDE <= end
+		     && !(*ascii_end & HIGH_BIT_MASK))
+		ascii_end++;
+	      if ((Bufbyte *) ascii_end == ptr)
+		ptr++, count++;
+	      else
+		{
+		  count += (Bufbyte *) ascii_end - ptr;
+		  ptr = (Bufbyte *) ascii_end;
+		}
+	    }
 	}
-      /* Now do it. */
-      while (ptr < aligned_end)
+      else
 	{
-
-	  if ((* (unsigned long *) ptr) & HIGH_BIT_MASK)
-	    goto bail;
-	  ptr += LONG_BYTES;
-	  count += LONG_BYTES;
+	  /* optimize for successive characters from the same charset */
+	  Bufbyte leading_byte = *ptr;
+	  size_t bytes = REP_BYTES_BY_FIRST_BYTE (leading_byte);
+	  while ((ptr < end) && (*ptr == leading_byte))
+	    ptr += bytes, count++;
 	}
     }
 
-#endif /* LONGBITS == 32 || LONGBITS == 64 */
-
- bail:
-  while (ptr < end)
-    {
-      count++;
-      INC_CHARPTR (ptr);
-    }
 #ifdef ERROR_CHECK_BUFPOS
   /* Bomb out if the specified substring ends in the middle
      of a character.  Note that we might have already gotten
--- a/src/keymap.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/keymap.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1069,7 +1069,7 @@
 	  if (!INTP (XCDR (idx)))
 	    return Qnil;
 	  indirection.keysym = XCAR (idx);
-	  indirection.modifiers = XINT (XCDR (idx));
+	  indirection.modifiers = (unsigned char) XINT (XCDR (idx));
 	}
       else if (SYMBOLP (idx))
 	{
@@ -4204,6 +4204,8 @@
 void
 syms_of_keymap (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (keymap);
+
   defsymbol (&Qminor_mode_map_alist, "minor-mode-map-alist");
 
   defsymbol (&Qkeymapp, "keymapp");
--- a/src/lisp.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/lisp.h	Mon Aug 13 11:14:34 2007 +0200
@@ -714,19 +714,19 @@
 
 #define EXTERNAL_LIST_LOOP_1(list)					\
 Lisp_Object ELL1_elt, ELL1_hare, ELL1_tortoise;				\
-EMACS_INT ELL1_len;								\
+EMACS_INT ELL1_len;							\
 EXTERNAL_LIST_LOOP_6 (ELL1_elt, list, ELL1_len, ELL1_hare,		\
 		      ELL1_tortoise, CIRCULAR_LIST_SUSPICION_LENGTH)
 
 #define EXTERNAL_LIST_LOOP_2(elt, list)					\
 Lisp_Object hare_##elt, tortoise_##elt;					\
-EMACS_INT len_##elt;								\
+EMACS_INT len_##elt;							\
 EXTERNAL_LIST_LOOP_6 (elt, list, len_##elt, hare_##elt,			\
 		      tortoise_##elt, CIRCULAR_LIST_SUSPICION_LENGTH)
 
 #define EXTERNAL_LIST_LOOP_3(elt, list, tail)				\
 Lisp_Object tortoise_##elt;						\
-EMACS_INT len_##elt;								\
+EMACS_INT len_##elt;							\
 EXTERNAL_LIST_LOOP_6 (elt, list, len_##elt, tail,			\
 		      tortoise_##elt, CIRCULAR_LIST_SUSPICION_LENGTH)
 
@@ -790,13 +790,13 @@
 /* Optimized and safe macros for looping over external property lists. */
 #define EXTERNAL_PROPERTY_LIST_LOOP_3(key, value, list)			\
 Lisp_Object key, value, hare_##key, tortoise_##key;			\
-EMACS_INT len_##key;								\
+EMACS_INT len_##key;							\
 EXTERNAL_PROPERTY_LIST_LOOP_7 (key, value, list, len_##key, hare_##key,	\
 		     tortoise_##key, CIRCULAR_LIST_SUSPICION_LENGTH)
 
 #define EXTERNAL_PROPERTY_LIST_LOOP_4(key, value, list, tail)		\
 Lisp_Object key, value, tail, tortoise_##key;				\
-EMACS_INT len_##key;								\
+EMACS_INT len_##key;							\
 EXTERNAL_PROPERTY_LIST_LOOP_7 (key, value, list, len_##key, tail,	\
 		     tortoise_##key, CIRCULAR_LIST_SUSPICION_LENGTH)
 
@@ -1104,7 +1104,8 @@
 struct Lisp_Subr
 {
   struct lrecord_header lheader;
-  short min_args, max_args;
+  short min_args;
+  short max_args;
   const char *prompt;
   const char *doc;
   const char *name;
@@ -1479,12 +1480,23 @@
 /* Can't be const, because then subr->doc is read-only and
    Snarf_documentation chokes */
 
-#define subr_lheader_initializer { 0, 0, 0, 0 }
-
 #define DEFUN(lname, Fname, min_args, max_args, prompt, arglist)	\
   Lisp_Object Fname (EXFUN_##max_args);					\
-  static struct Lisp_Subr S##Fname = { subr_lheader_initializer,	\
-	min_args, max_args, prompt, 0, lname, (lisp_fn_t) Fname };	\
+  static struct Lisp_Subr S##Fname =					\
+  {									\
+    { /* struct lrecord_header */					\
+      lrecord_type_subr, /* lrecord_type_index */			\
+      1, /* mark bit */							\
+      1, /* c_readonly bit */						\
+      1  /* lisp_readonly bit */					\
+    },									\
+    min_args,								\
+    max_args,								\
+    prompt,								\
+    0,	/* doc string */						\
+    lname,								\
+    (lisp_fn_t) Fname							\
+  };									\
   Lisp_Object Fname (DEFUN_##max_args arglist)
 
 /* Heavy ANSI C preprocessor hackery to get DEFUN to declare a
--- a/src/lread.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/lread.c	Mon Aug 13 11:14:34 2007 +0200
@@ -983,7 +983,7 @@
       while (1)
 	{
 	  char *esuffix = (char *) strchr (nsuffix, ':');
-	  int lsuffix = ((esuffix) ? (esuffix - nsuffix) : strlen (nsuffix));
+	  int lsuffix = esuffix ? esuffix - nsuffix : strlen (nsuffix);
 
 	  /* Concatenate path element/specified name with the suffix.  */
 	  strncpy (fn + fn_len, nsuffix, lsuffix);
--- a/src/lrecord.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/lrecord.h	Mon Aug 13 11:14:34 2007 +0200
@@ -61,10 +61,18 @@
 {
   /* index into lrecord_implementations_table[] */
   unsigned int type :8;
-  /* 1 if the object is marked during GC. */
+
+  /* If `mark' is 0 after the GC mark phase, the object will be freed
+     during the GC sweep phase.  There are 2 ways that `mark' can be 1:
+     - by being referenced from other objects during the GC mark phase
+     - because it is permanently on, for c_readonly objects */
   unsigned int mark :1;
-  /* 1 if the object resides in read-only space */
+
+  /* 1 if the object resides in logically read-only space, and does not
+     reference other non-c_readonly objects.
+     Invariant: if (c_readonly == 1), then (mark == 1 && lisp_readonly == 1) */
   unsigned int c_readonly :1;
+
   /* 1 if the object is readonly from lisp */
   unsigned int lisp_readonly :1;
 };
@@ -74,7 +82,7 @@
 
 #define set_lheader_implementation(header,imp) do {	\
   struct lrecord_header* SLI_header = (header);		\
-  SLI_header->type = lrecord_type_index (imp);		\
+  SLI_header->type = (imp)->lrecord_type_index;		\
   SLI_header->mark = 0;					\
   SLI_header->c_readonly = 0;				\
   SLI_header->lisp_readonly = 0;			\
@@ -118,8 +126,66 @@
   Lisp_Object chain;
 };
 
-/* see alloc.c for an explanation */
-Lisp_Object this_one_is_unmarkable (Lisp_Object obj);
+enum lrecord_type
+{
+  /* Symbol value magic types come first to make SYMBOL_VALUE_MAGIC_P fast.
+     #### This should be replaced by a symbol_value_magic_p flag
+     in the Lisp_Symbol lrecord_header. */
+  lrecord_type_symbol_value_forward,
+  lrecord_type_symbol_value_varalias,
+  lrecord_type_symbol_value_lisp_magic,
+  lrecord_type_symbol_value_buffer_local,
+  lrecord_type_max_symbol_value_magic = lrecord_type_symbol_value_buffer_local,
+  
+  lrecord_type_symbol,
+  lrecord_type_subr,
+  lrecord_type_cons,
+  lrecord_type_vector,
+  lrecord_type_string,
+  lrecord_type_lcrecord_list,
+  lrecord_type_compiled_function,
+  lrecord_type_weak_list,
+  lrecord_type_bit_vector,
+  lrecord_type_float,
+  lrecord_type_hash_table,
+  lrecord_type_lstream,
+  lrecord_type_process,
+  lrecord_type_charset,
+  lrecord_type_coding_system,
+  lrecord_type_char_table,
+  lrecord_type_char_table_entry,
+  lrecord_type_range_table,
+  lrecord_type_opaque,
+  lrecord_type_opaque_ptr,
+  lrecord_type_buffer,
+  lrecord_type_extent,
+  lrecord_type_extent_info,
+  lrecord_type_extent_auxiliary,
+  lrecord_type_marker,
+  lrecord_type_event,
+  lrecord_type_keymap,
+  lrecord_type_command_builder,
+  lrecord_type_timeout,
+  lrecord_type_specifier,
+  lrecord_type_console,
+  lrecord_type_device,
+  lrecord_type_frame,
+  lrecord_type_window,
+  lrecord_type_window_configuration,
+  lrecord_type_gui_item,
+  lrecord_type_popup_data,
+  lrecord_type_toolbar_button,
+  lrecord_type_color_instance,
+  lrecord_type_font_instance,
+  lrecord_type_image_instance,
+  lrecord_type_glyph,
+  lrecord_type_face,
+  lrecord_type_database,
+  lrecord_type_tooltalk_message,
+  lrecord_type_tooltalk_pattern,
+  lrecord_type_ldap,
+  lrecord_type_count
+};
 
 struct lrecord_implementation
 {
@@ -179,9 +245,8 @@
   size_t static_size;
   size_t (*size_in_bytes_method) (const void *header);
 
-  /* A unique subtag-code (dynamically) assigned to this datatype. */
-  /* (This is a pointer so the rest of this structure can be read-only.) */
-  int *lrecord_type_index;
+  /* The (constant) index into lrecord_implementations_table */
+  enum lrecord_type lrecord_type_index;
 
   /* A "basic" lrecord is any lrecord that's not an lcrecord, i.e.
      one that does not have an lcrecord_header at the front and which
@@ -194,25 +259,27 @@
 extern const struct lrecord_implementation *lrecord_implementations_table[];
 
 #define XRECORD_LHEADER_IMPLEMENTATION(obj) \
-   (lrecord_implementations_table[XRECORD_LHEADER (obj)->type])
-#define LHEADER_IMPLEMENTATION(lh) (lrecord_implementations_table[(lh)->type])
+   LHEADER_IMPLEMENTATION (XRECORD_LHEADER (obj))
+#define LHEADER_IMPLEMENTATION(lh) lrecord_implementations_table[(lh)->type]
 
 extern int gc_in_progress;
 
-#define MARKED_RECORD_P(obj) (gc_in_progress && XRECORD_LHEADER (obj)->mark)
+#define MARKED_RECORD_P(obj) (XRECORD_LHEADER (obj)->mark)
 #define MARKED_RECORD_HEADER_P(lheader) ((lheader)->mark)
 #define MARK_RECORD_HEADER(lheader)   ((void) ((lheader)->mark = 1))
 #define UNMARK_RECORD_HEADER(lheader) ((void) ((lheader)->mark = 0))
 
-#define UNMARKABLE_RECORD_HEADER_P(lheader) \
-  (LHEADER_IMPLEMENTATION (lheader)->marker == this_one_is_unmarkable)
-
 #define C_READONLY_RECORD_HEADER_P(lheader)  ((lheader)->c_readonly)
 #define LISP_READONLY_RECORD_HEADER_P(lheader)  ((lheader)->lisp_readonly)
-#define SET_C_READONLY_RECORD_HEADER(lheader) \
-  ((void) ((lheader)->c_readonly = (lheader)->lisp_readonly = 1))
+#define SET_C_READONLY_RECORD_HEADER(lheader) do {	\
+  struct lrecord_header *SCRRH_lheader = (lheader);	\
+  SCRRH_lheader->c_readonly = 1;			\
+  SCRRH_lheader->lisp_readonly = 1;			\
+  SCRRH_lheader->mark = 1;				\
+} while (0)
 #define SET_LISP_READONLY_RECORD_HEADER(lheader) \
   ((void) ((lheader)->lisp_readonly = 1))
+#define RECORD_MARKER(lheader) lrecord_markers[(lheader)->type]
 
 /* External description stuff
 
@@ -347,17 +414,6 @@
   { XD_INT,        offsetof (base_type, cur) }, \
   { XD_INT_RESET,  offsetof (base_type, max), XD_INDIRECT(1, 0) }
 
-/* Declaring the following structures as const puts them in the
-   text (read-only) segment, which makes debugging inconvenient
-   because this segment is not mapped when processing a core-
-   dump file */
-
-#ifdef DEBUG_XEMACS
-#define CONST_IF_NOT_DEBUG
-#else
-#define CONST_IF_NOT_DEBUG const
-#endif
-
 /* DEFINE_LRECORD_IMPLEMENTATION is for objects with constant size.
    DEFINE_LRECORD_SEQUENCE_IMPLEMENTATION is for objects whose size varies.
  */
@@ -391,18 +447,24 @@
 
 #define MAKE_LRECORD_IMPLEMENTATION(name,c_name,marker,printer,nuker,equal,hash,desc,getprop,putprop,remprop,plist,size,sizer,basic_p,structtype) \
 DECLARE_ERROR_CHECK_TYPECHECK(c_name, structtype)			\
-static int lrecord_##c_name##_lrecord_type_index;			\
-CONST_IF_NOT_DEBUG struct lrecord_implementation lrecord_##c_name =	\
+const struct lrecord_implementation lrecord_##c_name =			\
   { name, marker, printer, nuker, equal, hash, desc,			\
     getprop, putprop, remprop, plist, size, sizer,			\
-    &(lrecord_##c_name##_lrecord_type_index), basic_p }			\
+    lrecord_type_##c_name, basic_p }
+
+extern Lisp_Object (*lrecord_markers[]) (Lisp_Object);
+
+#define INIT_LRECORD_IMPLEMENTATION(type) do {				\
+  lrecord_implementations_table[lrecord_type_##type] = &lrecord_##type;	\
+  lrecord_markers[lrecord_type_##type] =				\
+    lrecord_implementations_table[lrecord_type_##type]->marker;		\
+} while (0)
 
 #define LRECORDP(a) (XTYPE (a) == Lisp_Type_Record)
 #define XRECORD_LHEADER(a) ((struct lrecord_header *) XPNTR (a))
 
 #define RECORD_TYPEP(x, ty) \
-  (LRECORDP (x) && \
-   lrecord_implementations_table[XRECORD_LHEADER (x)->type] == (ty))
+  (LRECORDP (x) && XRECORD_LHEADER (x)->type == (ty))
 
 /* NOTE: the DECLARE_LRECORD() must come before the associated
    DEFINE_LRECORD_*() or you will get compile errors.
@@ -416,13 +478,12 @@
 #ifdef ERROR_CHECK_TYPECHECK
 
 # define DECLARE_LRECORD(c_name, structtype)			\
-extern CONST_IF_NOT_DEBUG struct lrecord_implementation		\
-  lrecord_##c_name;						\
+extern const struct lrecord_implementation lrecord_##c_name;	\
 INLINE structtype *error_check_##c_name (Lisp_Object obj);	\
 INLINE structtype *						\
 error_check_##c_name (Lisp_Object obj)				\
 {								\
-  assert (RECORD_TYPEP (obj, &lrecord_##c_name));		\
+  assert (RECORD_TYPEP (obj, lrecord_type_##c_name));		\
   return (structtype *) XPNTR (obj);				\
 }								\
 extern Lisp_Object Q##c_name##p
@@ -443,15 +504,14 @@
 # define XSETRECORD(var, p, c_name) do				\
 {								\
   XSETOBJ (var, Lisp_Type_Record, p);				\
-  assert (RECORD_TYPEP (var, &lrecord_##c_name));		\
+  assert (RECORD_TYPEP (var, lrecord_type_##c_name));		\
 } while (0)
 
 #else /* not ERROR_CHECK_TYPECHECK */
 
 # define DECLARE_LRECORD(c_name, structtype)			\
 extern Lisp_Object Q##c_name##p;				\
-extern CONST_IF_NOT_DEBUG struct lrecord_implementation		\
-  lrecord_##c_name
+extern const struct lrecord_implementation lrecord_##c_name
 # define DECLARE_NONRECORD(c_name, type_enum, structtype)	\
 extern Lisp_Object Q##c_name##p
 # define XRECORD(x, c_name, structtype) ((structtype *) XPNTR (x))
@@ -461,7 +521,7 @@
 
 #endif /* not ERROR_CHECK_TYPECHECK */
 
-#define RECORDP(x, c_name) RECORD_TYPEP (x, &lrecord_##c_name)
+#define RECORDP(x, c_name) RECORD_TYPEP (x, lrecord_type_##c_name)
 
 /* Note: we now have two different kinds of type-checking macros.
    The "old" kind has now been renamed CONCHECK_foo.  The reason for
@@ -487,7 +547,7 @@
    way out and disabled returning from a signal entirely. */
 
 #define CONCHECK_RECORD(x, c_name) do {			\
- if (!RECORD_TYPEP (x, &lrecord_##c_name))		\
+ if (!RECORD_TYPEP (x, lrecord_type_##c_name))		\
    x = wrong_type_argument (Q##c_name##p, x);		\
 }  while (0)
 #define CONCHECK_NONRECORD(x, lisp_enum, predicate) do {\
@@ -495,7 +555,7 @@
    x = wrong_type_argument (predicate, x);		\
  } while (0)
 #define CHECK_RECORD(x, c_name) do {			\
- if (!RECORD_TYPEP (x, &lrecord_##c_name))		\
+ if (!RECORD_TYPEP (x, lrecord_type_##c_name))		\
    dead_wrong_type_argument (Q##c_name##p, x);		\
  } while (0)
 #define CHECK_NONRECORD(x, lisp_enum, predicate) do {	\
--- a/src/lstream.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/lstream.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1705,5 +1705,7 @@
 void
 vars_of_lstream (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (lstream);
+
   reinit_vars_of_lstream ();
 }
--- a/src/m/7300.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/7300.h	Mon Aug 13 11:14:34 2007 +0200
@@ -25,10 +25,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2-2"  */
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000 are the ones defined so far.  */
--- a/src/m/acorn.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/acorn.h	Mon Aug 13 11:14:34 2007 +0200
@@ -20,19 +20,6 @@
 
 /* Synched up with: FSF 19.31. */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
-/* Define how to take a char and sign-extend into an int.
-   On machines where char is signed, this is a no-op.  */
-
-/* ARM note - The RISCiX Norcroft C Compiler has ALL
-   non-32-bit types as unsigned */
-
-#define SIGN_EXTEND_CHAR(c) (((int)(c) << 24) >> 24)
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -40,14 +27,6 @@
 
 /* ARM note - this is done by the Norcroft compiler - symbol is `__arm' */
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 #ifdef LDAV_SYMBOL
 #undef LDAV_SYMBOL
 #endif
--- a/src/m/alliant-2800.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/alliant-2800.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
@@ -39,15 +34,6 @@
 #define sun			/* Use X support for Sun keyboard stuff. */
 #define C_OPTIMIZE_SWITCH "-Og"	/* No concurrent code allowed here. */
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-/* On Alliants, bitfields are unsigned. */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Concentrix uses a different kernel symbol for load average. */
 
 #undef  LDAV_SYMBOL		/* Undo definition in s-bsd4-2.h */
--- a/src/m/alliant.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/alliant.h	Mon Aug 13 11:14:34 2007 +0200
@@ -27,11 +27,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
@@ -39,15 +34,6 @@
 
 #define ALLIANT
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-/* On Alliants, bitfields are unsigned. */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* No load average information available for Alliants. */
 
 #undef LOAD_AVE_TYPE
--- a/src/m/altos.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/altos.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,8 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
-#define EXPLICIT_SIGN_EXTEND
-
 #define LIB_STANDARD "-lc"
 
 #ifdef __GNUC__
--- a/src/m/amdahl.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/amdahl.h	Mon Aug 13 11:14:34 2007 +0200
@@ -32,11 +32,6 @@
 compiler is so brain damaged that it is not even worth trying to use it.
 */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#define WORD_MACHINE /* not actually used anywhere yet! */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
@@ -46,14 +41,6 @@
 /* However for clarity define amdahl_uts */
 #define amdahl_uts
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 /* #define LOAD_AVE_TYPE long*/
--- a/src/m/arm.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/arm.h	Mon Aug 13 11:14:34 2007 +0200
@@ -20,11 +20,6 @@
 
 /* Synched up with: FSF 19.31. */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -93,10 +88,6 @@
 #endif /* USG */
 
 
-#ifdef USG5_4
-#define DATA_SEG_BITS 0x08000000
-#endif
-
 #ifdef MSDOS
 #define NO_REMAP
 #endif
@@ -116,17 +107,6 @@
 #define SEGMENT_MASK ((SEGMENT_SIZE)-1)
 #endif
 
-#if 0
-#ifdef __GNUC__
-/* GCC's alloca() is semi-broken.  See lisp.h.
-
-   This brokenness has been confirmed under both Linux and NetBSD.
-   It may also exist on non-Intel architectures. */
-#define BROKEN_ALLOCA_IN_FUNCTION_CALLS
-#endif
-#endif
-
-
 /* XEmacs change: John Hughes <john@AtlanTech.COM> says using vfork
    under i386-unknown-sysv4.2 makes C-g sometimes cause a SIGSEGV
    in TTY mode; the problem goes away if you use fork */
--- a/src/m/att3b.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/att3b.h	Mon Aug 13 11:14:34 2007 +0200
@@ -26,23 +26,10 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically */
 #define ATT3B
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 /* #define LOAD_AVE_TYPE long */
 
--- a/src/m/aviion.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/aviion.h	Mon Aug 13 11:14:34 2007 +0200
@@ -20,18 +20,6 @@
 
 /* Synched up with: FSF 19.31. */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#define WORD_MACHINE
-
-/* Define DATA_SEG_BITS if pointers need to be corrected with
-   a segment field.  */
-
-#ifdef FIX_ADDRESS
-#define DATA_SEG_BITS 0xef000000
-#endif
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -41,14 +29,6 @@
 /*#define m88k*/
 /*#endif*/
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 /* #define LOAD_AVE_TYPE long */
--- a/src/m/celerity.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/celerity.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,10 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
-/* XINT must explicitly sign extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* celerity preprocessor defines "accel", however the following is clearer */
 #define celerity
 
--- a/src/m/clipper.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/clipper.h	Mon Aug 13 11:14:34 2007 +0200
@@ -20,11 +20,6 @@
 
 /* Synched up with: FSF 19.31. */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically */
 
@@ -34,14 +29,6 @@
 
 #define DOT_GLOBAL_START
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-/* #define EXPLICIT_SIGN_EXTEND */
-
 /* USG systems I know of running on Vaxes do not actually
    support the load average, so disable it for them.  */
 
--- a/src/m/cnvrgnt.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/cnvrgnt.h	Mon Aug 13 11:14:34 2007 +0200
@@ -20,24 +20,11 @@
 
 /* Synched up with: FSF 19.31. */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically.  */
 
 #define m68000
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.
    These are commented out since it is not supported by this machine.  */
 
--- a/src/m/convex.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/convex.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-  
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically.  */
 #ifndef convex  /* The compiler doesn't always do this.  */
@@ -91,9 +86,6 @@
 
 /* #define NO_REMAP */
 
-/* Addresses on the Convex have the high bit set.  */
-#define DATA_SEG_BITS (1 << (INTBITS-1))
-
 /* Right shift is logical shift.
    And the usual way of handling such machines, which involves
    copying the number into sign_extend_temp, does not work
--- a/src/m/cydra5.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/cydra5.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,24 +24,11 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
    orion, tahoe, APOLLO and many others */
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
@@ -75,11 +62,6 @@
 #define C_ALLOCA
 #undef HAVE_ALLOCA
 
-/* The data segment in this machine always starts at address 0x10000000.
-   An address of data cannot be stored correctly in a Lisp object;
-   we always lose the high bits.  We must tell XPNTR to add them back.  */
-
-#define DATA_SEG_BITS 0x20000000
 #define DATA_START    0x20000000
 
 /* Define NO_REMAP if memory segmentation makes it not work well
--- a/src/m/delta.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/delta.h	Mon Aug 13 11:14:34 2007 +0200
@@ -26,11 +26,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -39,14 +34,6 @@
 #define m68000
 #define MOTOROLA_DELTA
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 /* #define LOAD_AVE_TYPE long */
--- a/src/m/delta88k.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/delta88k.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -42,14 +37,6 @@
    does not define it automatically.  */
 
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-/* #define EXPLICIT_SIGN_EXTEND */
-
 /* Data type of load average, as read out of kmem.  */
 /* No load average on Motorola machines. */
 /* #define LOAD_AVE_TYPE double */
--- a/src/m/dpx2.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/dpx2.h	Mon Aug 13 11:14:34 2007 +0200
@@ -33,11 +33,6 @@
 /* #define ncl_el	/* DPX/2 210,220 etc */
 /* #define ncl_mr 1	/* DPX/2 320,340 (and 360,380 ?) */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE /**/
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -45,14 +40,6 @@
 
 /* /bin/cc on ncl_el and ncl_mr define m68k and mc68000 */
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/dual.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/dual.h	Mon Aug 13 11:14:34 2007 +0200
@@ -36,10 +36,6 @@
 NOTE-END */
 
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000 are the ones defined so far.  */
--- a/src/m/elxsi.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/elxsi.h	Mon Aug 13 11:14:34 2007 +0200
@@ -28,11 +28,6 @@
 /* This file was modified by Matt Crawford <matt@tank.uchicago.edu>
    to work under Elxsi's 12.0 release of BSD unix. */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/*#define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
@@ -42,15 +37,6 @@
 #define elxsi
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
-
 /* Name of kernel load average variable */
 
 #undef LDAV_SYMBOL
--- a/src/m/ews4800r.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/ews4800r.h	Mon Aug 13 11:14:34 2007 +0200
@@ -20,16 +20,6 @@
 
 /* Synched up with: Mule 2.0.  Not in FSF. */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
-/* Define how to take a char and sign-extend into an int.
-   On machines where char is signed, this is a no-op.  */
-
-#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -38,14 +28,6 @@
 #	define mips
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/gould-np1.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/gould-np1.h	Mon Aug 13 11:14:34 2007 +0200
@@ -64,12 +64,6 @@
 #define C_DEBUG_SWITCH "-g"
 #define LIBS_DEBUG "-lg"
 
-
-/* The data segment in this machine always starts at address 0x1000000 = 16M.
-   An address of data cannot be stored correctly in a Lisp object;
-   we always lose the high bits.  We must tell XPNTR to add them back.  */
-
-#define DATA_SEG_BITS 0x1000000
 #define DATA_START    0x1000000
 
 /* The text segment always starts at 0.
--- a/src/m/gould.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/gould.h	Mon Aug 13 11:14:34 2007 +0200
@@ -46,11 +46,6 @@
   A site running a pre-release of 2.1 should #define RELEASE2_1 in config.h.
 NOTE-END */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically */
 
@@ -62,14 +57,6 @@
   - it is no longer needed and interferes with a variable in xmenu.c */
 #undef sel
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE double
--- a/src/m/hp300bsd.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/hp300bsd.h	Mon Aug 13 11:14:34 2007 +0200
@@ -36,9 +36,5 @@
 
 #define HAVE_ALLOCA
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 #define LOAD_AVE_TYPE long
 #define LOAD_AVE_CVT(x) ((int) (((double) (x)) / 2048.0 * 100.0))
--- a/src/m/hp800.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/hp800.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="hpux"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -37,13 +32,6 @@
 #	define hp9000s800
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
 
 #ifdef __hpux
 /* Now define a symbol for the cpu type, if your compiler
@@ -94,8 +82,6 @@
 
 /* the data segment on this machine always starts at address 0x40000000. */
 
-#define DATA_SEG_BITS 0x40000000
-
 #ifdef DATA_START
 #undef DATA_START
 #endif
--- a/src/m/hp9000s300.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/hp9000s300.h	Mon Aug 13 11:14:34 2007 +0200
@@ -39,11 +39,6 @@
 
 /* #define HPUX_5 */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically.  */
 
@@ -51,14 +46,6 @@
 #define hp9000s300
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Define CANNOT_DUMP on machines where unexec does not work.
    Then the function dump-emacs will not be defined
    and temacs will do (load "loadup") automatically unless told otherwise.  */
--- a/src/m/i860.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/i860.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -36,14 +31,6 @@
 
 #define INTEL860
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/ibmps2-aix.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/ibmps2-aix.h	Mon Aug 13 11:14:34 2007 +0200
@@ -30,11 +30,6 @@
   work with certain new X window managers, and may be suboptimal.
 NOTE-END */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -85,11 +80,6 @@
 #define DATA_START 0x00800000
 #define DATA_END 0
 
-/* The data segment in this machine always starts at address 0x00800000.
-   An address of data cannot be stored correctly in a Lisp object;
-   we always lose the high bits.  We must tell XPNTR to add them back.  */
-
-#define DATA_SEG_BITS 0x00800000
 #endif
 
 #if 0 /* I refuse to promulgate a recommendation that would make
--- a/src/m/ibmrs6000.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/ibmrs6000.h	Mon Aug 13 11:14:34 2007 +0200
@@ -51,27 +51,6 @@
 #define DATA_END 0
 #endif
 
-/* The data segment in this machine always starts at address 0x20000000.
-   An address of data cannot be stored correctly in a Lisp object;
-   we always lose the high bits.  We must tell XPNTR to add them back.	*/
-
-#ifndef USG5_4
-#define DATA_SEG_BITS 0x20000000
-#else
-#define DATA_SEG_BITS 0
-#endif
-
-#ifdef CANNOT_DUMP
-/* Define shared memory segment symbols */
-
-#define PURE_SEG_BITS 0x30000000
-
-/* Use shared memory.  */
-/* This is turned off because it does not always work.	See etc/AIX.DUMP.  */
-/* #define HAVE_SHM */
-#define SHMKEY 5305035		/* used for shared memory code segments */
-#endif /* CANNOT_DUMP */
-
 #define N_BADMAG(x) BADMAG(x)
 #define N_TXTOFF(x) A_TEXTPOS(x)
 #define N_SYMOFF(x) A_SYMPOS(x)
--- a/src/m/ibmrt-aix.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/ibmrt-aix.h	Mon Aug 13 11:14:34 2007 +0200
@@ -50,12 +50,6 @@
 #define DATA_START 0x20000000
 #define DATA_END 0
 
-/* The data segment in this machine always starts at address 0x20000000.
-   An address of data cannot be stored correctly in a Lisp object;
-   we always lose the high bits.  We must tell XPNTR to add them back.  */
-
-#define DATA_SEG_BITS 0x20000000
-
 #define N_BADMAG(x) BADMAG(x)
 #define N_TXTOFF(x) A_TEXTPOS(x)
 #define N_SYMOFF(x) A_SYMPOS(x)
--- a/src/m/ibmrt.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/ibmrt.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#define WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically.  */
 
@@ -40,14 +35,6 @@
 #define romp /* unfortunately old include files are hanging around.  */
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE double	/* For AIS (sysV) */
@@ -80,11 +67,6 @@
 
 #define HAVE_ALLOCA
 
-/* The data segment in this machine starts at a fixed address.
-   An address of data cannot be stored correctly in a Lisp object;
-   we always lose the high bits.  We must tell XPNTR to add them back.  */
-
-#define DATA_SEG_BITS 0x10000000
 #define DATA_START    0x10000000
 
 /* The text segment always starts at a fixed address.
--- a/src/m/intel386.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/intel386.h	Mon Aug 13 11:14:34 2007 +0200
@@ -50,11 +50,6 @@
   Minor changes merged in 19.1.
 NOTE-END */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -152,18 +147,11 @@
 
 #ifdef USG
 
-#if 0 /* ALLOCA is now autodetected */
-#define HAVE_ALLOCA
-#endif
 #define NO_REMAP 
 #define TEXT_START 0
 #endif /* USG */
 #endif /* not XENIX */
 
-#ifdef USG5_4
-#define DATA_SEG_BITS 0x08000000
-#endif
-
 #ifdef MSDOS
 #define NO_REMAP
 #endif
--- a/src/m/iris4d.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/iris4d.h	Mon Aug 13 11:14:34 2007 +0200
@@ -20,11 +20,6 @@
 
 /* Synched up with: FSF 19.31. */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -38,14 +33,6 @@
 #define IRIS_4D
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* jg@genmagic.genmagic.com (John Giannandrea) says this is unnecessary.  */
 #if 0
 /* Data type of load average, as read out of kmem.  */
@@ -105,15 +92,7 @@
 #endif
 
 #define TEXT_START 0x400000
-
-/*
- * DATA_SEG_BITS forces extra bits to be or'd in with any pointers which
- * were stored in a Lisp_Object (as Emacs uses fewer than 32 bits for
- * the value field of a LISP_OBJECT).
- */
-
 #define DATA_START 0x10000000
-#define DATA_SEG_BITS	0x10000000
 
 #undef LIBS_MACHINE
 /* -lsun in case using Yellow Pages for passwords.  */
--- a/src/m/iris5d.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/iris5d.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="irix3-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -42,14 +37,6 @@
 #define IRIS_4D
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long	/* This doesn't quite work on the 4D */
@@ -105,14 +92,7 @@
 
 #define TEXT_START 0x400000
 
-/*
- * DATA_SEG_BITS forces extra bits to be or'd in with any pointers which
- * were stored in a Lisp_Object (as Emacs uses fewer than 32 bits for
- * the value field of a LISP_OBJECT).
- */
-
 #define DATA_START 0x10000000
-#define DATA_SEG_BITS	0x10000000
 
 #undef LIBS_MACHINE
 /* -lsun in case using Yellow Pages for passwords.  */
--- a/src/m/iris6d.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/iris6d.h	Mon Aug 13 11:14:34 2007 +0200
@@ -20,11 +20,6 @@
 
 /* Synched up with: FSF 19.31. */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -38,14 +33,6 @@
 #define IRIS_4D
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* jg@genmagic.genmagic.com (John Giannandrea) says this is unnecessary.  */
 #if 0
 /* Data type of load average, as read out of kmem.  */
@@ -105,15 +92,7 @@
 #endif
 
 #define TEXT_START 0x400000
-
-/*
- * DATA_SEG_BITS forces extra bits to be or'd in with any pointers which
- * were stored in a Lisp_Object (as Emacs uses fewer than 32 bits for
- * the value field of a LISP_OBJECT).
- */
-
 #define DATA_START 0x10000000
-#define DATA_SEG_BITS	0x10000000
 
 #undef LIBS_MACHINE
 /* -lsun in case using Yellow Pages for passwords.  */
--- a/src/m/irist.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/irist.h	Mon Aug 13 11:14:34 2007 +0200
@@ -58,11 +58,6 @@
   (copy-file), it would say that it is non-critical...
 #endif /* 0 */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -72,14 +67,6 @@
 #define m68000
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/isi-ov.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/isi-ov.h	Mon Aug 13 11:14:34 2007 +0200
@@ -34,10 +34,6 @@
 
 #define m68000
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #ifdef BSD4_3
--- a/src/m/luna88k.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/luna88k.h	Mon Aug 13 11:14:34 2007 +0200
@@ -31,15 +31,6 @@
 
 /* Synched up with: Mule 2.0.  Not in FSF. */
 
-/* Define how to take a char and sign-extend into an int.
-   On machines where char is signed, this is a no-op.  */
-
-#define SIGN_EXTEND_CHAR(c) (c)
-
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/m68k.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/m68k.h	Mon Aug 13 11:14:34 2007 +0200
@@ -20,14 +20,6 @@
 
 /* Synched up with: FSF 19.31. */
 
-/* The following symbol gives information on
- the size of various data types.  */
-
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically.  */
 
@@ -35,14 +27,6 @@
 #define m68k
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the 24-bit bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Define CANNOT_DUMP on machines where unexec does not work.
    Then the function dump-emacs will not be defined
    and temacs will do (load "loadup") automatically unless told otherwise.  */
@@ -59,9 +43,6 @@
 /* #define VIRT_ADDR_VARIES */
 
 #ifdef linux
-#ifdef __ELF__
-#define DATA_SEG_BITS 0x80000000
-#endif
 
 #define NO_REMAP
 #define TEXT_START 0
--- a/src/m/masscomp.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/masscomp.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="rtu"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
@@ -36,14 +31,6 @@
 /* Masscomp predefines mc68000. */
 #define m68000 mc68000
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#undef EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE double
--- a/src/m/mega68.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/mega68.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,10 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Say this machine is a 68000 */
 
 #define m68000
--- a/src/m/mg1.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/mg1.h	Mon Aug 13 11:14:34 2007 +0200
@@ -34,11 +34,6 @@
 your work; we'd like to distribute this information.
 NOTE-END  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-/* ns16000 addresses are byte addresses */
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
@@ -47,14 +42,6 @@
 #define ns16000
 #define mg1
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 /* mg1 its an unsigned long */
 #define LOAD_AVE_TYPE unsigned long
--- a/src/m/mips-nec.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/mips-nec.h	Mon Aug 13 11:14:34 2007 +0200
@@ -36,16 +36,6 @@
 With this the file mips-siemens.h is obsolete.
 NOTE-END  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
-/* Define how to take a char and sign-extend into an int.
-   On machines where char is signed, this is a no-op.  */
-
-#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -54,14 +44,6 @@
 #	define mips
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the 24-bit bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
@@ -114,10 +96,6 @@
 /* MARCO ???
 */
 #define TEXT_START 0x400000
-/*
-#define DATA_START 0x10000000
-#define DATA_SEG_BITS	0x10000000
-*/
 
 #undef ORDINARY_LINK
 
--- a/src/m/mips-siemens.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/mips-siemens.h	Mon Aug 13 11:14:34 2007 +0200
@@ -36,16 +36,6 @@
 With this the file mips-siemens.h is obsolete.
 NOTE-END  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
-/* Define how to take a char and sign-extend into an int.
-   On machines where char is signed, this is a no-op.  */
-
-#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -54,14 +44,6 @@
 #	define mips
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the 24-bit bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
@@ -114,10 +96,7 @@
 /* MARCO ???
 */
 #define TEXT_START 0x400000
-/*
-#define DATA_START 0x10000000
-#define DATA_SEG_BITS	0x10000000
-*/
+
 #ifdef UNEXEC
 #undef UNEXEC
 #endif
--- a/src/m/mips.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/mips.h	Mon Aug 13 11:14:34 2007 +0200
@@ -29,16 +29,6 @@
 Note that the proper m- file for the Decstation is m-pmax.h.
 NOTE-END  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
-/* Define how to take a char and sign-extend into an int.
-   On machines where char is signed, this is a no-op.  */
-
-#define SIGN_EXTEND_CHAR(c) ((signed char)(c))
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -47,14 +37,6 @@
 #	define mips
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
@@ -116,7 +98,6 @@
 #ifdef linux
 #define TEXT_START      0x00400000
 #define DATA_START      0x10000000
-#define DATA_SEG_BITS   0x10000000
 #else /* !linux */
 #define TEXT_START 0x400000
 #define DATA_START 0x800000
--- a/src/m/next.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/next.h	Mon Aug 13 11:14:34 2007 +0200
@@ -26,15 +26,6 @@
 #define NeXT
 #endif
 
-/* Define how to take a char and sign-extend into an int.
-   On machines where char is signed, this is a no-op.  */
-
-#define SIGN_EXTEND_CHAR(c) (c)
-
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Say that the text segment of a.out includes the header;
    the header actually occupies the first few bytes of the text segment
    and is counted in hdr.a_text.  */
--- a/src/m/nh3000.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/nh3000.h	Mon Aug 13 11:14:34 2007 +0200
@@ -30,11 +30,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -44,14 +39,6 @@
 #define gcx
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-/* #define EXPLICIT_SIGN_EXTEND */
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/nh4000.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/nh4000.h	Mon Aug 13 11:14:34 2007 +0200
@@ -29,11 +29,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the s- or .h>"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -43,18 +38,6 @@
 #define m88000
 #endif
 
-#define VALBITS 26
-
-#define GCTYPEBITS 5
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-/* #define EXPLICIT_SIGN_EXTEND */
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/ns32000.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/ns32000.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,24 +24,11 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
    orion, tahoe, APOLLO and many others */
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 /* #define LOAD_AVE_TYPE long */
--- a/src/m/nu.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/nu.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,10 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000 are the ones defined so far.  */
--- a/src/m/orion.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/orion.h	Mon Aug 13 11:14:34 2007 +0200
@@ -31,15 +31,6 @@
 #define orion
 #endif
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#define WORD_MACHINE
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE double
--- a/src/m/orion105.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/orion105.h	Mon Aug 13 11:14:34 2007 +0200
@@ -25,9 +25,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
 /* Data type of load average, as read out of kmem.  */
 /* This used to be `double'.  */
 
--- a/src/m/pfa50.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/pfa50.h	Mon Aug 13 11:14:34 2007 +0200
@@ -25,10 +25,6 @@
 #define m68000
 #define mc68000 1
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* 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
@@ -51,17 +47,6 @@
 
 #define LD_SWITCH_MACHINE "-e __start"
 
-#if	pfa50 || pfa70
-
-/* On A-50/60/70/80, data space has high order byte use. */
-#define VALBITS 26
-#define VALMASK (((1<<VALBITS) - 1) | 0x60000000)
-/* XEmacs: markbit is between type bits and value bits */
-/* #define XTYPE(a) ((enum Lisp_Type) (((a) >> VALBITS) & GCTYPEMASK)) */
-#define XTYPE(a) ((enum Lisp_Type) (((a) >> ((VALBITS) + 1)) & GCTYPEMASK))
-
-#endif /* pfa50, pfa70 */
-
 /* SX/A has alloca in the PW library.  */
 
 #define LIB_STANDARD "-lPW -lc"
--- a/src/m/plexus.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/plexus.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
@@ -36,14 +31,6 @@
 /* Plexus predefines m68 instead of m68000. */
 #define m68000 m68
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#undef EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #undef LOAD_AVE_TYPE
--- a/src/m/pmax.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/pmax.h	Mon Aug 13 11:14:34 2007 +0200
@@ -30,7 +30,6 @@
 #undef LD_SWITCH_MACHINE
 #undef DATA_START
 #define DATA_START 0x10000000
-#define DATA_SEG_BITS 0x10000000
 
 #if 0
 /* I don't see any such conflict in Ultrix 4.2, 4.2a, or 4.3.  And
--- a/src/m/powerpc.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/powerpc.h	Mon Aug 13 11:14:34 2007 +0200
@@ -43,10 +43,6 @@
 # endif
 #endif
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 #ifndef __linux__
 /* Data type of load average, as read out of kmem.  */
 
@@ -66,32 +62,12 @@
 
 #define NO_REMAP
 
-#if 0
-#define TEXT_START 0x00001000
-#define TEXT_END 0
-#define DATA_START 0x01000000
-#define DATA_END 0
-
-/* The data segment in this machine always starts at address 0x10000000.
-   An address of data cannot be stored correctly in a Lisp object;
-   we always lose the high bits.  We must tell XPNTR to add them back.	*/
-
-#define DATA_SEG_BITS 0x10000000
-#endif
-
 /* Use type int rather than a union, to represent Lisp_Object */
 
 /* #define NO_UNION_TYPE */
 
 #ifdef CANNOT_DUMP
-/* Define shared memory segment symbols */
 
-#define PURE_SEG_BITS 0x30000000
-
-/* Use shared memory.  */
-/* This is turned off because it does not always work.	See etc/AIX.DUMP.  */
-/* #define HAVE_SHM */
-#define SHMKEY 5305035		/* used for shared memory code segments */
 #endif /* CANNOT_DUMP */
 
 #define N_BADMAG(x) BADMAG(x)
--- a/src/m/pyramid.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/pyramid.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,10 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-2"  */
 
-/* XINT must explicitly sign extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* pyramid preprocessor defines "pyr", however the following is clearer */
 #define pyramid
 
--- a/src/m/sequent-ptx.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/sequent-ptx.h	Mon Aug 13 11:14:34 2007 +0200
@@ -26,11 +26,6 @@
 
 #include "intel386.h"
 
-/* Define how to take a char and sign-extend into an int.
-   On machines where char is signed, this is a no-op.  */
-/* CHECK THIS */
-#define SIGN_EXTEND_CHAR(c) (c)
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -45,14 +40,6 @@
 #define CRT0_DUMMIES dummy1, dummy2, dummy3,
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the 24-bit bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE unsigned long
--- a/src/m/sequent.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/sequent.h	Mon Aug 13 11:14:34 2007 +0200
@@ -31,11 +31,6 @@
 /* NOTE: this file works for DYNIX release 2.0 
 	  (not tested on 1.3) on NS32000's */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
@@ -54,14 +49,6 @@
 
 #define DOT_GLOBAL_START
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE unsigned long
--- a/src/m/sgi-challenge.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/sgi-challenge.h	Mon Aug 13 11:14:34 2007 +0200
@@ -28,11 +28,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="irix3-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -54,14 +49,6 @@
 #undef HAVE_NATIVE_SOUND
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long	/* This doesn't quite work on the 4D */
@@ -116,15 +103,7 @@
 #define UNEXEC "unexelfsgi.o"
 
 #define TEXT_START 0x400000
-
-/*
- * DATA_SEG_BITS forces that bit to be or'd in with any pointers which
- * are trying to access pure strings (as gnu-emacs only allows 24 bits
- * for the value field of a LISP_OBJECT).
- */
-
 #define DATA_START 0x10000000
-#define DATA_SEG_BITS	0x10000000
 
 #undef LIBS_MACHINE
 /* -lsun in case using Yellow Pages for passwords.  */
--- a/src/m/sparc.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/sparc.h	Mon Aug 13 11:14:34 2007 +0200
@@ -42,10 +42,6 @@
 # endif
 #endif
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Mask for address bits within a memory segment */
 
 #define SEGMENT_MASK (SEGSIZ - 1)
--- a/src/m/sps7.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/sps7.h	Mon Aug 13 11:14:34 2007 +0200
@@ -32,10 +32,6 @@
 
 #define sps7  
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 /* Suspect there is something weird about this machine, so turn it off.  */
 
--- a/src/m/stride.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/stride.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe, APOLLO and STRIDE
@@ -39,14 +34,6 @@
 #define STRIDE
 #endif
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE double
--- a/src/m/sun1.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/sun1.h	Mon Aug 13 11:14:34 2007 +0200
@@ -47,10 +47,6 @@
 /* Sun can't write competent compilers */
 #define COMPILER_REGISTER_BUG
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/sun2.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/sun2.h	Mon Aug 13 11:14:34 2007 +0200
@@ -51,10 +51,6 @@
 /* Sun can't write competent compilers */
 #define COMPILER_REGISTER_BUG
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/tad68k.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/tad68k.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,22 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
-/* Now define a symbol for the cpu type, if your compiler
-   does not define it automatically */
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-/* #define EXPLICIT_SIGN_EXTEND */
-
 /* Data type of load average, as read out of kmem.  */
 /* #define LOAD_AVE_TYPE long */
 
--- a/src/m/tahoe.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/tahoe.h	Mon Aug 13 11:14:34 2007 +0200
@@ -29,10 +29,6 @@
 Berkeley you are running.
 NOTE-END  */
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Say this machine is a tahoe */
 
 #ifndef tahoe
--- a/src/m/targon31.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/targon31.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#define WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
@@ -37,14 +32,6 @@
 /* #define m68k is defined by the Compiler */
 /* #define m68000 */
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 /* #define LOAD_AVE_TYPE double */
--- a/src/m/tek4300.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/tek4300.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="bsd4-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically.  */
 
--- a/src/m/tekxd88.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/tekxd88.h	Mon Aug 13 11:14:34 2007 +0200
@@ -22,10 +22,6 @@
 
 /* Synched up with: FSF 19.31. */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -34,17 +30,6 @@
 #define m88000
 #endif
 
-/* Define how to take a char and sign-extend into an int.
-   On machines where char is signed, this is a no-op.  */
-#define SIGN_EXTEND_CHAR(c) (c)
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-/* #define EXPLICIT_SIGN_EXTEND */
-
 /* Data type of load average, as read out of kmem.  */
 /* #define LOAD_AVE_TYPE double */	/* No load average on XD88. */
 /* Convert that into an integer that is 100 for a load average of 1.0  */
--- a/src/m/template.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/template.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,24 +24,11 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="<name of system .h file here, without the .h>"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#define WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
    orion, tahoe, APOLLO and many others */
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/tower32.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/tower32.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,25 +24,12 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
    are the ones defined so far.  */
 #define m68000
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 /* #define LOAD_AVE_TYPE long */
--- a/src/m/tower32v3.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/tower32v3.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,25 +24,12 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
    are the ones defined so far.  */
 #define m68000
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 /* #define LOAD_AVE_TYPE long */
--- a/src/m/ustation.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/ustation.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-3"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000, pyramid, orion, tahoe and APOLLO
@@ -37,14 +32,6 @@
 
 #define m68000 mc68000
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#undef EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE double
--- a/src/m/wicat.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/wicat.h	Mon Aug 13 11:14:34 2007 +0200
@@ -24,11 +24,6 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#undef WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    vax, m68000, ns16000 are the ones defined so far.  */
@@ -40,10 +35,6 @@
 /* This flag is used only in alloca.s.  */
 #define WICAT
 
-/* XINT must explicitly sign-extend */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #undef LOAD_AVE_TYPE
--- a/src/m/windowsnt.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/windowsnt.h	Mon Aug 13 11:14:34 2007 +0200
@@ -30,11 +30,6 @@
 
 #define NO_ARG_ARRAY
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#define WORD_MACHINE
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
@@ -45,14 +40,6 @@
 
 #define NO_UNION_TYPE
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the 24-bit bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
--- a/src/m/xps100.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/m/xps100.h	Mon Aug 13 11:14:34 2007 +0200
@@ -26,24 +26,11 @@
    operating system this machine is likely to run.
    USUAL-OPSYS="usg5-2"  */
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-/* #define WORD_MACHINE */
-
 /* Now define a symbol for the cpu type, if your compiler
    does not define it automatically:
    Ones defined so far include vax, m68000, ns16000, pyramid,
    orion, tahoe, APOLLO and many others */
 
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 /* #define LOAD_AVE_TYPE long */
--- a/src/malloc.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/malloc.c	Mon Aug 13 11:14:34 2007 +0200
@@ -201,10 +201,8 @@
 extern char *start_of_data (void);
 
 #ifdef BSD
-#ifndef DATA_SEG_BITS
 #define start_of_data() &etext
 #endif
-#endif
 
 #ifndef emacs
 #define start_of_data() &etext
--- a/src/marker.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/marker.c	Mon Aug 13 11:14:34 2007 +0200
@@ -509,6 +509,8 @@
 void
 syms_of_marker (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (marker);
+
   DEFSUBR (Fmarker_position);
   DEFSUBR (Fmarker_buffer);
   DEFSUBR (Fset_marker);
--- a/src/mem-limits.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/mem-limits.h	Mon Aug 13 11:14:34 2007 +0200
@@ -104,11 +104,9 @@
 #define EXCEEDS_LISP_PTR(ptr) 0
 
 #ifdef BSD
-#ifndef DATA_SEG_BITS
 extern int etext;
 #define start_of_data() &etext
 #endif
-#endif
 
 #else  /* not emacs */
 extern char etext;
--- a/src/menubar-msw.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/menubar-msw.c	Mon Aug 13 11:14:34 2007 +0200
@@ -136,24 +136,24 @@
 
   /* Escape '&' as '&&' */
   ptr = buf;
-  while ((ptr=memchr (ptr, '&', ll-(ptr-buf))) != NULL)
+  while ((ptr = (char*) memchr (ptr, '&', ll - (ptr - buf))) != NULL)
     {
-      if (ll+2 >= MAX_MENUITEM_LENGTH)
+      if (ll + 2 >= MAX_MENUITEM_LENGTH)
 	signal_simple_error ("Menu item produces too long displayable string",
 			     XGUI_ITEM (gui_item)->name);
-      memmove (ptr+1, ptr, (ll-(ptr-buf))+1);
+      memmove (ptr + 1, ptr, (ll - (ptr - buf)) + 1);
       ll++;
-      ptr+=2;
+      ptr += 2;
     }
 
   /* Replace XEmacs accelerator '%_' with Windows accelerator '&' */
   ptr = buf;
-  while ((ptr=memchr (ptr, '%', ll-(ptr-buf))) != NULL)
+  while ((ptr = (char*) memchr (ptr, '%', ll - (ptr - buf))) != NULL)
     {
-      if (*(ptr+1) == '_')
+      if (*(ptr + 1) == '_')
 	{
 	  *ptr = '&';
-	  memmove (ptr+1, ptr+2, ll-(ptr-buf+2));
+	  memmove (ptr + 1, ptr + 2, ll - (ptr - buf + 2));
 	  ll--;
 	}
       ptr++;
--- a/src/mule-charset.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/mule-charset.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1259,6 +1259,8 @@
 void
 syms_of_mule_charset (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (charset);
+
   DEFSUBR (Fcharsetp);
   DEFSUBR (Ffind_charset);
   DEFSUBR (Fget_charset);
--- a/src/nt.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/nt.c	Mon Aug 13 11:14:34 2007 +0200
@@ -290,7 +290,7 @@
     putenv ((GetVersion () & 0x80000000) ? "SHELL=command" : "SHELL=cmd");
 
   /* Set dir and shell from environment variables. */
-  strcpy (the_passwd.pw_dir, get_home_directory());
+  strcpy (the_passwd.pw_dir, (char *)get_home_directory());
   strcpy (the_passwd.pw_shell, getenv ("SHELL"));
 }
 
@@ -299,9 +299,7 @@
    case path name components to lower case.  */
 
 static void
-normalize_filename (fp, path_sep)
-     REGISTER char *fp;
-     char path_sep;
+normalize_filename (char *fp, char path_sep)
 {
   char sep;
   char *elem;
@@ -357,16 +355,14 @@
 
 /* Destructively turn backslashes into slashes.  */
 void
-dostounix_filename (p)
-     REGISTER char *p;
+dostounix_filename (char *p)
 {
   normalize_filename (p, '/');
 }
 
 /* Destructively turn slashes into backslashes.  */
 void
-unixtodos_filename (p)
-     REGISTER char *p;
+unixtodos_filename (char *p)
 {
   normalize_filename (p, '\\');
 }
@@ -375,10 +371,7 @@
    (From msdos.c...probably should figure out a way to share it,
    although this code isn't going to ever change.)  */
 int
-crlf_to_lf (n, buf, lf_count)
-     REGISTER int n;
-     REGISTER unsigned char *buf;
-     REGISTER unsigned *lf_count;
+crlf_to_lf (int n, unsigned char *buf, unsigned *lf_count)
 {
   unsigned char *np = buf;
   unsigned char *startp = buf;
@@ -555,9 +548,7 @@
 #define REG_ROOT "SOFTWARE\\GNU\\XEmacs"
 
 LPBYTE 
-nt_get_resource (key, lpdwtype)
-    char *key;
-    LPDWORD lpdwtype;
+nt_get_resource (char *key, LPDWORD lpdwtype)
 {
   LPBYTE lpvalue;
   HKEY hrootkey = NULL;
@@ -1479,7 +1470,7 @@
   len = strlen (name);
   rootdir = (path >= name + len - 1
 	     && (IS_DIRECTORY_SEP (*path) || *path == 0));
-  name = strcpy (alloca (len + 2), name);
+  name = strcpy ((char *)alloca (len + 2), name);
 
   if (rootdir)
     {
@@ -2034,11 +2025,11 @@
   if (file_base == 0) 
     return FALSE;
 
-  p_file->name = (char*)filename;
+  p_file->name = (char *)filename;
   p_file->size = size;
   p_file->file = file;
   p_file->file_mapping = file_mapping;
-  p_file->file_base = file_base;
+  p_file->file_base = (char *)file_base;
 
   return TRUE;
 }
--- a/src/ntheap.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/ntheap.c	Mon Aug 13 11:14:34 2007 +0200
@@ -80,7 +80,7 @@
   return data_region_end;
 }
 
-static char *
+static unsigned char *
 allocate_heap (void)
 {
   /* The base address for our GNU malloc heap is chosen in conjunction
@@ -122,7 +122,7 @@
   unsigned long base = 0x01B00000;   /*  27MB */
   /* Temporary hack for the non-starting problem - use 28 (256Mb) rather than VALBITS (1Gb) */
   unsigned long end  = 1 << 28;      /* 256MB */
-  void *ptr = NULL;
+  void *ptr;
 
 #define NTHEAP_PROBE_BASE 1
 #if NTHEAP_PROBE_BASE /* This is never normally defined */
@@ -144,7 +144,7 @@
 		      PAGE_NOACCESS);
 #endif
 
-  return ptr;
+  return (unsigned char*) ptr;
 }
 
 
@@ -227,7 +227,7 @@
 void
 recreate_heap (char *executable_path)
 {
-  unsigned char *tmp;
+  void *tmp;
 
   /* First reserve the upper part of our heap.  (We reserve first
      because there have been problems in the past where doing the
--- a/src/ntheap.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/ntheap.h	Mon Aug 13 11:14:34 2007 +0200
@@ -51,7 +51,7 @@
 
 /* To prevent zero-initialized variables from being placed into the bss
    section, use non-zero values to represent an uninitialized state.  */
-#define UNINIT_PTR ((void *) 0xF0A0F0A0)
+#define UNINIT_PTR ((unsigned char*) 0xF0A0F0A0)
 #define UNINIT_LONG (0xF0A0F0A0L)
 
 /* Emulation of Unix sbrk().  */
@@ -80,11 +80,11 @@
 /* Useful routines for manipulating memory-mapped files. */
 
 typedef struct file_data {
-    const char    *name;
-    unsigned long  size;
-    HANDLE         file;
-    HANDLE         file_mapping;
-    unsigned char *file_base;
+  const char    *name;
+  unsigned long  size;
+  HANDLE         file;
+  HANDLE         file_mapping;
+  char *file_base;
 } file_data;
 
 #define OFFSET_TO_RVA(var,section) \
--- a/src/ntplay.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/ntplay.c	Mon Aug 13 11:14:34 2007 +0200
@@ -51,7 +51,7 @@
 	return;
 
       size = lseek (ofd, 0, SEEK_END);
-      data = xmalloc (size);
+      data = (unsigned char *)xmalloc (size);
       lseek (ofd, 0, SEEK_SET);
       
       if (!data)
@@ -90,7 +90,7 @@
 
   if (convert_to_malloc)
     {
-      sound_data = xmalloc (length);
+      sound_data = (unsigned char *)xmalloc (length);
       memcpy (sound_data, data, length);
     }
   else
--- a/src/ntproc.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/ntproc.c	Mon Aug 13 11:14:34 2007 +0200
@@ -533,7 +533,7 @@
 	  if (exe_header->e_magic != DOSMAGIC)
 	    goto unwind;
 
-	  if ((char *) exe_header->e_lfanew > (char *) executable.size)
+	  if ((char*) exe_header->e_lfanew > (char*) executable.size)
 	    {
 	      /* Some dos headers (pkunzip) have bogus e_lfanew fields.  */
 	      *is_dos_app = TRUE;
@@ -550,9 +550,9 @@
 	  if (dos_header->e_magic != IMAGE_DOS_SIGNATURE)
 	    goto unwind;
 	  
-	  nt_header = (PIMAGE_NT_HEADERS) ((char *) dos_header + dos_header->e_lfanew);
+	  nt_header = (PIMAGE_NT_HEADERS) ((char*) dos_header + dos_header->e_lfanew);
 	  
-	  if ((char *) nt_header > (char *) dos_header + executable.size) 
+	  if ((char*) nt_header > (char*) dos_header + executable.size) 
 	    {
 	      /* Some dos headers (pkunzip) have bogus e_lfanew fields.  */
 	      *is_dos_app = TRUE;
@@ -571,11 +571,12 @@
 	      IMAGE_SECTION_HEADER * section;
 
 	      section = rva_to_section (import_dir.VirtualAddress, nt_header);
-	      imports = RVA_TO_PTR (import_dir.VirtualAddress, section, executable);
+	      imports = (IMAGE_IMPORT_DESCRIPTOR *) RVA_TO_PTR (import_dir.VirtualAddress,
+								section, executable);
 	      
 	      for ( ; imports->Name; imports++)
 		{
-		  char * dllname = RVA_TO_PTR (imports->Name, section, executable);
+		  char *dllname = (char*) RVA_TO_PTR (imports->Name, section, executable);
 
 		  if (strcmp (dllname, "cygwin.dll") == 0)
 		    {
@@ -630,7 +631,7 @@
     *nptr++ = *optr++;
   num += optr - envp2;
 
-  qsort (new_envp, num, sizeof (char *), compare_env);
+  qsort (new_envp, num, sizeof (char*), compare_env);
 
   *nptr = NULL;
 }
@@ -681,7 +682,7 @@
     }
   else
     {
-      (char*)cmdname = alloca (strlen (argv[0]) + 1);
+      cmdname = (char*)alloca (strlen (argv[0]) + 1);
       strcpy ((char*)cmdname, argv[0]);
     }
   UNGCPRO;
@@ -703,7 +704,7 @@
      while leaving the real app name as argv[0].  */
   if (is_dos_app)
     {
-      cmdname = alloca (MAXPATHLEN);
+      cmdname = (char*) alloca (MAXPATHLEN);
       if (egetenv ("CMDPROXY"))
 	strcpy ((char*)cmdname, egetenv ("CMDPROXY"));
       else
@@ -802,7 +803,7 @@
 	}
       arglen += strlen (*targ++) + 1;
     }
-  cmdline = alloca (arglen);
+  cmdline = (char*) alloca (arglen);
   targ = (char**)argv;
   parg = cmdline;
   while (*targ)
@@ -884,7 +885,7 @@
   
   /* and envp...  */
   arglen = 1;
-  targ = (char**)envp;
+  targ = (char**) envp;
   numenv = 1; /* for end null */
   while (*targ)
     {
@@ -898,11 +899,11 @@
   numenv++;
 
   /* merge env passed in and extra env into one, and sort it.  */
-  targ = (char **) alloca (numenv * sizeof (char *));
-  merge_and_sort_env ((char**)envp, extra_env, targ);
+  targ = (char **) alloca (numenv * sizeof (char*));
+  merge_and_sort_env ((char**) envp, extra_env, targ);
 
   /* concatenate env entries.  */
-  env = alloca (arglen);
+  env = (char*) alloca (arglen);
   parg = env;
   while (*targ)
     {
--- a/src/objects-msw.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/objects-msw.c	Mon Aug 13 11:14:34 2007 +0200
@@ -59,676 +59,685 @@
 typedef struct colormap_t 
 {
   const char *name;
-  const COLORREF colorref;
+  COLORREF colorref;
 } colormap_t;
 
 /* Colors from X11R6 "XConsortium: rgb.txt,v 10.41 94/02/20 18:39:36 rws Exp" */
+/* MSWindows tends to round up the numbers in it's palette, ie where X uses
+ * 127, MSWindows uses 128. Colors commented as "Adjusted" are tweaked to
+ * match the Windows standard palette to increase the likelyhood of
+ * mswindows_color_to_string() finding a named match.
+ */
 static const colormap_t mswindows_X_color_map[] = 
 {
-  {"snow"			, PALETTERGB (255, 250, 250) },
-  {"GhostWhite"			, PALETTERGB (248, 248, 255) },
-  {"WhiteSmoke"			, PALETTERGB (245, 245, 245) },
-  {"gainsboro"			, PALETTERGB (220, 220, 220) },
-  {"FloralWhite"		, PALETTERGB (255, 250, 240) },
-  {"OldLace"			, PALETTERGB (253, 245, 230) },
-  {"linen"			, PALETTERGB (250, 240, 230) },
-  {"AntiqueWhite"		, PALETTERGB (250, 235, 215) },
-  {"PapayaWhip"			, PALETTERGB (255, 239, 213) },
-  {"BlanchedAlmond"		, PALETTERGB (255, 235, 205) },
-  {"bisque"			, PALETTERGB (255, 228, 196) },
-  {"PeachPuff"			, PALETTERGB (255, 218, 185) },
-  {"NavajoWhite"		, PALETTERGB (255, 222, 173) },
-  {"moccasin"			, PALETTERGB (255, 228, 181) },
-  {"cornsilk"			, PALETTERGB (255, 248, 220) },
-  {"ivory"			, PALETTERGB (255, 255, 240) },
-  {"LemonChiffon"		, PALETTERGB (255, 250, 205) },
-  {"seashell"			, PALETTERGB (255, 245, 238) },
-  {"honeydew"			, PALETTERGB (240, 255, 240) },
-  {"MintCream"			, PALETTERGB (245, 255, 250) },
-  {"azure"			, PALETTERGB (240, 255, 255) },
-  {"AliceBlue"			, PALETTERGB (240, 248, 255) },
-  {"lavender"			, PALETTERGB (230, 230, 250) },
-  {"LavenderBlush"		, PALETTERGB (255, 240, 245) },
-  {"MistyRose"			, PALETTERGB (255, 228, 225) },
-  {"white"			, PALETTERGB (255, 255, 255) },
-  {"black"			, PALETTERGB (0, 0, 0) },
-  {"DarkSlateGray"		, PALETTERGB (47, 79, 79) },
-  {"DarkSlateGrey"		, PALETTERGB (47, 79, 79) },
-  {"DimGray"			, PALETTERGB (105, 105, 105) },
-  {"DimGrey"			, PALETTERGB (105, 105, 105) },
-  {"SlateGray"			, PALETTERGB (112, 128, 144) },
-  {"SlateGrey"			, PALETTERGB (112, 128, 144) },
-  {"LightSlateGray"		, PALETTERGB (119, 136, 153) },
-  {"LightSlateGrey"		, PALETTERGB (119, 136, 153) },
-  {"gray"			, PALETTERGB (190, 190, 190) },
-  {"grey"			, PALETTERGB (190, 190, 190) },
-  {"LightGrey"			, PALETTERGB (211, 211, 211) },
-  {"LightGray"			, PALETTERGB (211, 211, 211) },
-  {"MidnightBlue"		, PALETTERGB (25, 25, 112) },
-  {"navy"			, PALETTERGB (0, 0, 128) },
-  {"NavyBlue"			, PALETTERGB (0, 0, 128) },
-  {"CornflowerBlue"		, PALETTERGB (100, 149, 237) },
-  {"DarkSlateBlue"		, PALETTERGB (72, 61, 139) },
-  {"SlateBlue"			, PALETTERGB (106, 90, 205) },
-  {"MediumSlateBlue"		, PALETTERGB (123, 104, 238) },
-  {"LightSlateBlue"		, PALETTERGB (132, 112, 255) },
-  {"MediumBlue"			, PALETTERGB (0, 0, 205) },
-  {"RoyalBlue"			, PALETTERGB (65, 105, 225) },
-  {"blue"			, PALETTERGB (0, 0, 255) },
-  {"DodgerBlue"			, PALETTERGB (30, 144, 255) },
-  {"DeepSkyBlue"		, PALETTERGB (0, 191, 255) },
-  {"SkyBlue"			, PALETTERGB (135, 206, 235) },
-  {"LightSkyBlue"		, PALETTERGB (135, 206, 250) },
-  {"SteelBlue"			, PALETTERGB (70, 130, 180) },
-  {"LightSteelBlue"		, PALETTERGB (176, 196, 222) },
-  {"LightBlue"			, PALETTERGB (173, 216, 230) },
-  {"PowderBlue"			, PALETTERGB (176, 224, 230) },
-  {"PaleTurquoise"		, PALETTERGB (175, 238, 238) },
-  {"DarkTurquoise"		, PALETTERGB (0, 206, 209) },
-  {"MediumTurquoise"		, PALETTERGB (72, 209, 204) },
-  {"turquoise"			, PALETTERGB (64, 224, 208) },
-  {"cyan"			, PALETTERGB (0, 255, 255) },
-  {"LightCyan"			, PALETTERGB (224, 255, 255) },
-  {"CadetBlue"			, PALETTERGB (95, 158, 160) },
-  {"MediumAquamarine"		, PALETTERGB (102, 205, 170) },
-  {"aquamarine"			, PALETTERGB (127, 255, 212) },
-  {"DarkGreen"			, PALETTERGB (0, 100, 0) },
-  {"DarkOliveGreen"		, PALETTERGB (85, 107, 47) },
-  {"DarkSeaGreen"		, PALETTERGB (143, 188, 143) },
-  {"SeaGreen"			, PALETTERGB (46, 139, 87) },
-  {"MediumSeaGreen"		, PALETTERGB (60, 179, 113) },
-  {"LightSeaGreen"		, PALETTERGB (32, 178, 170) },
-  {"PaleGreen"			, PALETTERGB (152, 251, 152) },
-  {"SpringGreen"		, PALETTERGB (0, 255, 127) },
-  {"LawnGreen"			, PALETTERGB (124, 252, 0) },
-  {"green"			, PALETTERGB (0, 255, 0) },
-  {"chartreuse"			, PALETTERGB (127, 255, 0) },
-  {"MediumSpringGreen"		, PALETTERGB (0, 250, 154) },
-  {"GreenYellow"		, PALETTERGB (173, 255, 47) },
-  {"LimeGreen"			, PALETTERGB (50, 205, 50) },
-  {"YellowGreen"		, PALETTERGB (154, 205, 50) },
-  {"ForestGreen"		, PALETTERGB (34, 139, 34) },
-  {"OliveDrab"			, PALETTERGB (107, 142, 35) },
-  {"DarkKhaki"			, PALETTERGB (189, 183, 107) },
-  {"khaki"			, PALETTERGB (240, 230, 140) },
-  {"PaleGoldenrod"		, PALETTERGB (238, 232, 170) },
-  {"LightGoldenrodYellow"	, PALETTERGB (250, 250, 210) },
-  {"LightYellow"		, PALETTERGB (255, 255, 224) },
-  {"yellow"			, PALETTERGB (255, 255, 0) },
-  {"gold"			, PALETTERGB (255, 215, 0) },
-  {"LightGoldenrod"		, PALETTERGB (238, 221, 130) },
-  {"goldenrod"			, PALETTERGB (218, 165, 32) },
-  {"DarkGoldenrod"		, PALETTERGB (184, 134, 11) },
-  {"RosyBrown"			, PALETTERGB (188, 143, 143) },
-  {"IndianRed"			, PALETTERGB (205, 92, 92) },
-  {"SaddleBrown"		, PALETTERGB (139, 69, 19) },
-  {"sienna"			, PALETTERGB (160, 82, 45) },
-  {"peru"			, PALETTERGB (205, 133, 63) },
-  {"burlywood"			, PALETTERGB (222, 184, 135) },
-  {"beige"			, PALETTERGB (245, 245, 220) },
-  {"wheat"			, PALETTERGB (245, 222, 179) },
-  {"SandyBrown"			, PALETTERGB (244, 164, 96) },
-  {"tan"			, PALETTERGB (210, 180, 140) },
-  {"chocolate"			, PALETTERGB (210, 105, 30) },
-  {"firebrick"			, PALETTERGB (178, 34, 34) },
-  {"brown"			, PALETTERGB (165, 42, 42) },
-  {"DarkSalmon"			, PALETTERGB (233, 150, 122) },
-  {"salmon"			, PALETTERGB (250, 128, 114) },
-  {"LightSalmon"		, PALETTERGB (255, 160, 122) },
-  {"orange"			, PALETTERGB (255, 165, 0) },
-  {"DarkOrange"			, PALETTERGB (255, 140, 0) },
-  {"coral"			, PALETTERGB (255, 127, 80) },
-  {"LightCoral"			, PALETTERGB (240, 128, 128) },
-  {"tomato"			, PALETTERGB (255, 99, 71) },
-  {"OrangeRed"			, PALETTERGB (255, 69, 0) },
-  {"red"			, PALETTERGB (255, 0, 0) },
-  {"HotPink"			, PALETTERGB (255, 105, 180) },
-  {"DeepPink"			, PALETTERGB (255, 20, 147) },
-  {"pink"			, PALETTERGB (255, 192, 203) },
-  {"LightPink"			, PALETTERGB (255, 182, 193) },
-  {"PaleVioletRed"		, PALETTERGB (219, 112, 147) },
-  {"maroon"			, PALETTERGB (176, 48, 96) },
-  {"MediumVioletRed"		, PALETTERGB (199, 21, 133) },
-  {"VioletRed"			, PALETTERGB (208, 32, 144) },
-  {"magenta"			, PALETTERGB (255, 0, 255) },
-  {"violet"			, PALETTERGB (238, 130, 238) },
-  {"plum"			, PALETTERGB (221, 160, 221) },
-  {"orchid"			, PALETTERGB (218, 112, 214) },
-  {"MediumOrchid"		, PALETTERGB (186, 85, 211) },
-  {"DarkOrchid"			, PALETTERGB (153, 50, 204) },
-  {"DarkViolet"			, PALETTERGB (148, 0, 211) },
-  {"BlueViolet"			, PALETTERGB (138, 43, 226) },
-  {"purple"			, PALETTERGB (160, 32, 240) },
-  {"MediumPurple"		, PALETTERGB (147, 112, 219) },
-  {"thistle"			, PALETTERGB (216, 191, 216) },
-  {"snow1"			, PALETTERGB (255, 250, 250) },
-  {"snow2"			, PALETTERGB (238, 233, 233) },
-  {"snow3"			, PALETTERGB (205, 201, 201) },
-  {"snow4"			, PALETTERGB (139, 137, 137) },
-  {"seashell1"			, PALETTERGB (255, 245, 238) },
-  {"seashell2"			, PALETTERGB (238, 229, 222) },
-  {"seashell3"			, PALETTERGB (205, 197, 191) },
-  {"seashell4"			, PALETTERGB (139, 134, 130) },
-  {"AntiqueWhite1"		, PALETTERGB (255, 239, 219) },
-  {"AntiqueWhite2"		, PALETTERGB (238, 223, 204) },
-  {"AntiqueWhite3"		, PALETTERGB (205, 192, 176) },
-  {"AntiqueWhite4"		, PALETTERGB (139, 131, 120) },
-  {"bisque1"			, PALETTERGB (255, 228, 196) },
-  {"bisque2"			, PALETTERGB (238, 213, 183) },
-  {"bisque3"			, PALETTERGB (205, 183, 158) },
-  {"bisque4"			, PALETTERGB (139, 125, 107) },
-  {"PeachPuff1"			, PALETTERGB (255, 218, 185) },
-  {"PeachPuff2"			, PALETTERGB (238, 203, 173) },
-  {"PeachPuff3"			, PALETTERGB (205, 175, 149) },
-  {"PeachPuff4"			, PALETTERGB (139, 119, 101) },
-  {"NavajoWhite1"		, PALETTERGB (255, 222, 173) },
-  {"NavajoWhite2"		, PALETTERGB (238, 207, 161) },
-  {"NavajoWhite3"		, PALETTERGB (205, 179, 139) },
-  {"NavajoWhite4"		, PALETTERGB (139, 121, 94) },
-  {"LemonChiffon1"		, PALETTERGB (255, 250, 205) },
-  {"LemonChiffon2"		, PALETTERGB (238, 233, 191) },
-  {"LemonChiffon3"		, PALETTERGB (205, 201, 165) },
-  {"LemonChiffon4"		, PALETTERGB (139, 137, 112) },
-  {"cornsilk1"			, PALETTERGB (255, 248, 220) },
-  {"cornsilk2"			, PALETTERGB (238, 232, 205) },
-  {"cornsilk3"			, PALETTERGB (205, 200, 177) },
-  {"cornsilk4"			, PALETTERGB (139, 136, 120) },
-  {"ivory1"			, PALETTERGB (255, 255, 240) },
-  {"ivory2"			, PALETTERGB (238, 238, 224) },
-  {"ivory3"			, PALETTERGB (205, 205, 193) },
-  {"ivory4"			, PALETTERGB (139, 139, 131) },
-  {"honeydew1"			, PALETTERGB (240, 255, 240) },
-  {"honeydew2"			, PALETTERGB (224, 238, 224) },
-  {"honeydew3"			, PALETTERGB (193, 205, 193) },
-  {"honeydew4"			, PALETTERGB (131, 139, 131) },
-  {"LavenderBlush1"		, PALETTERGB (255, 240, 245) },
-  {"LavenderBlush2"		, PALETTERGB (238, 224, 229) },
-  {"LavenderBlush3"		, PALETTERGB (205, 193, 197) },
-  {"LavenderBlush4"		, PALETTERGB (139, 131, 134) },
-  {"MistyRose1"			, PALETTERGB (255, 228, 225) },
-  {"MistyRose2"			, PALETTERGB (238, 213, 210) },
-  {"MistyRose3"			, PALETTERGB (205, 183, 181) },
-  {"MistyRose4"			, PALETTERGB (139, 125, 123) },
-  {"azure1"			, PALETTERGB (240, 255, 255) },
-  {"azure2"			, PALETTERGB (224, 238, 238) },
-  {"azure3"			, PALETTERGB (193, 205, 205) },
-  {"azure4"			, PALETTERGB (131, 139, 139) },
-  {"SlateBlue1"			, PALETTERGB (131, 111, 255) },
-  {"SlateBlue2"			, PALETTERGB (122, 103, 238) },
-  {"SlateBlue3"			, PALETTERGB (105, 89, 205) },
-  {"SlateBlue4"			, PALETTERGB (71, 60, 139) },
-  {"RoyalBlue1"			, PALETTERGB (72, 118, 255) },
-  {"RoyalBlue2"			, PALETTERGB (67, 110, 238) },
-  {"RoyalBlue3"			, PALETTERGB (58, 95, 205) },
-  {"RoyalBlue4"			, PALETTERGB (39, 64, 139) },
-  {"blue1"			, PALETTERGB (0, 0, 255) },
-  {"blue2"			, PALETTERGB (0, 0, 238) },
-  {"blue3"			, PALETTERGB (0, 0, 205) },
-  {"blue4"			, PALETTERGB (0, 0, 139) },
-  {"DodgerBlue1"		, PALETTERGB (30, 144, 255) },
-  {"DodgerBlue2"		, PALETTERGB (28, 134, 238) },
-  {"DodgerBlue3"		, PALETTERGB (24, 116, 205) },
-  {"DodgerBlue4"		, PALETTERGB (16, 78, 139) },
-  {"SteelBlue1"			, PALETTERGB (99, 184, 255) },
-  {"SteelBlue2"			, PALETTERGB (92, 172, 238) },
-  {"SteelBlue3"			, PALETTERGB (79, 148, 205) },
-  {"SteelBlue4"			, PALETTERGB (54, 100, 139) },
-  {"DeepSkyBlue1"		, PALETTERGB (0, 191, 255) },
-  {"DeepSkyBlue2"		, PALETTERGB (0, 178, 238) },
-  {"DeepSkyBlue3"		, PALETTERGB (0, 154, 205) },
-  {"DeepSkyBlue4"		, PALETTERGB (0, 104, 139) },
-  {"SkyBlue1"			, PALETTERGB (135, 206, 255) },
-  {"SkyBlue2"			, PALETTERGB (126, 192, 238) },
-  {"SkyBlue3"			, PALETTERGB (108, 166, 205) },
-  {"SkyBlue4"			, PALETTERGB (74, 112, 139) },
-  {"LightSkyBlue1"		, PALETTERGB (176, 226, 255) },
-  {"LightSkyBlue2"		, PALETTERGB (164, 211, 238) },
-  {"LightSkyBlue3"		, PALETTERGB (141, 182, 205) },
-  {"LightSkyBlue4"		, PALETTERGB (96, 123, 139) },
-  {"SlateGray1"			, PALETTERGB (198, 226, 255) },
-  {"SlateGray2"			, PALETTERGB (185, 211, 238) },
-  {"SlateGray3"			, PALETTERGB (159, 182, 205) },
-  {"SlateGray4"			, PALETTERGB (108, 123, 139) },
-  {"LightSteelBlue1"		, PALETTERGB (202, 225, 255) },
-  {"LightSteelBlue2"		, PALETTERGB (188, 210, 238) },
-  {"LightSteelBlue3"		, PALETTERGB (162, 181, 205) },
-  {"LightSteelBlue4"		, PALETTERGB (110, 123, 139) },
-  {"LightBlue1"			, PALETTERGB (191, 239, 255) },
-  {"LightBlue2"			, PALETTERGB (178, 223, 238) },
-  {"LightBlue3"			, PALETTERGB (154, 192, 205) },
-  {"LightBlue4"			, PALETTERGB (104, 131, 139) },
-  {"LightCyan1"			, PALETTERGB (224, 255, 255) },
-  {"LightCyan2"			, PALETTERGB (209, 238, 238) },
-  {"LightCyan3"			, PALETTERGB (180, 205, 205) },
-  {"LightCyan4"			, PALETTERGB (122, 139, 139) },
-  {"PaleTurquoise1"		, PALETTERGB (187, 255, 255) },
-  {"PaleTurquoise2"		, PALETTERGB (174, 238, 238) },
-  {"PaleTurquoise3"		, PALETTERGB (150, 205, 205) },
-  {"PaleTurquoise4"		, PALETTERGB (102, 139, 139) },
-  {"CadetBlue1"			, PALETTERGB (152, 245, 255) },
-  {"CadetBlue2"			, PALETTERGB (142, 229, 238) },
-  {"CadetBlue3"			, PALETTERGB (122, 197, 205) },
-  {"CadetBlue4"			, PALETTERGB (83, 134, 139) },
-  {"turquoise1"			, PALETTERGB (0, 245, 255) },
-  {"turquoise2"			, PALETTERGB (0, 229, 238) },
-  {"turquoise3"			, PALETTERGB (0, 197, 205) },
-  {"turquoise4"			, PALETTERGB (0, 134, 139) },
-  {"cyan1"			, PALETTERGB (0, 255, 255) },
-  {"cyan2"			, PALETTERGB (0, 238, 238) },
-  {"cyan3"			, PALETTERGB (0, 205, 205) },
-  {"cyan4"			, PALETTERGB (0, 139, 139) },
-  {"DarkSlateGray1"		, PALETTERGB (151, 255, 255) },
-  {"DarkSlateGray2"		, PALETTERGB (141, 238, 238) },
-  {"DarkSlateGray3"		, PALETTERGB (121, 205, 205) },
-  {"DarkSlateGray4"		, PALETTERGB (82, 139, 139) },
-  {"aquamarine1"		, PALETTERGB (127, 255, 212) },
-  {"aquamarine2"		, PALETTERGB (118, 238, 198) },
-  {"aquamarine3"		, PALETTERGB (102, 205, 170) },
-  {"aquamarine4"		, PALETTERGB (69, 139, 116) },
-  {"DarkSeaGreen1"		, PALETTERGB (193, 255, 193) },
-  {"DarkSeaGreen2"		, PALETTERGB (180, 238, 180) },
-  {"DarkSeaGreen3"		, PALETTERGB (155, 205, 155) },
-  {"DarkSeaGreen4"		, PALETTERGB (105, 139, 105) },
-  {"SeaGreen1"			, PALETTERGB (84, 255, 159) },
-  {"SeaGreen2"			, PALETTERGB (78, 238, 148) },
-  {"SeaGreen3"			, PALETTERGB (67, 205, 128) },
-  {"SeaGreen4"			, PALETTERGB (46, 139, 87) },
-  {"PaleGreen1"			, PALETTERGB (154, 255, 154) },
-  {"PaleGreen2"			, PALETTERGB (144, 238, 144) },
-  {"PaleGreen3"			, PALETTERGB (124, 205, 124) },
-  {"PaleGreen4"			, PALETTERGB (84, 139, 84) },
-  {"SpringGreen1"		, PALETTERGB (0, 255, 127) },
-  {"SpringGreen2"		, PALETTERGB (0, 238, 118) },
-  {"SpringGreen3"		, PALETTERGB (0, 205, 102) },
-  {"SpringGreen4"		, PALETTERGB (0, 139, 69) },
-  {"green1"			, PALETTERGB (0, 255, 0) },
-  {"green2"			, PALETTERGB (0, 238, 0) },
-  {"green3"			, PALETTERGB (0, 205, 0) },
-  {"green4"			, PALETTERGB (0, 139, 0) },
-  {"chartreuse1"		, PALETTERGB (127, 255, 0) },
-  {"chartreuse2"		, PALETTERGB (118, 238, 0) },
-  {"chartreuse3"		, PALETTERGB (102, 205, 0) },
-  {"chartreuse4"		, PALETTERGB (69, 139, 0) },
-  {"OliveDrab1"			, PALETTERGB (192, 255, 62) },
-  {"OliveDrab2"			, PALETTERGB (179, 238, 58) },
-  {"OliveDrab3"			, PALETTERGB (154, 205, 50) },
-  {"OliveDrab4"			, PALETTERGB (105, 139, 34) },
-  {"DarkOliveGreen1"		, PALETTERGB (202, 255, 112) },
-  {"DarkOliveGreen2"		, PALETTERGB (188, 238, 104) },
-  {"DarkOliveGreen3"		, PALETTERGB (162, 205, 90) },
-  {"DarkOliveGreen4"		, PALETTERGB (110, 139, 61) },
-  {"khaki1"			, PALETTERGB (255, 246, 143) },
-  {"khaki2"			, PALETTERGB (238, 230, 133) },
-  {"khaki3"			, PALETTERGB (205, 198, 115) },
-  {"khaki4"			, PALETTERGB (139, 134, 78) },
-  {"LightGoldenrod1"		, PALETTERGB (255, 236, 139) },
-  {"LightGoldenrod2"		, PALETTERGB (238, 220, 130) },
-  {"LightGoldenrod3"		, PALETTERGB (205, 190, 112) },
-  {"LightGoldenrod4"		, PALETTERGB (139, 129, 76) },
-  {"LightYellow1"		, PALETTERGB (255, 255, 224) },
-  {"LightYellow2"		, PALETTERGB (238, 238, 209) },
-  {"LightYellow3"		, PALETTERGB (205, 205, 180) },
-  {"LightYellow4"		, PALETTERGB (139, 139, 122) },
-  {"yellow1"			, PALETTERGB (255, 255, 0) },
-  {"yellow2"			, PALETTERGB (238, 238, 0) },
-  {"yellow3"			, PALETTERGB (205, 205, 0) },
-  {"yellow4"			, PALETTERGB (139, 139, 0) },
-  {"gold1"			, PALETTERGB (255, 215, 0) },
-  {"gold2"			, PALETTERGB (238, 201, 0) },
-  {"gold3"			, PALETTERGB (205, 173, 0) },
-  {"gold4"			, PALETTERGB (139, 117, 0) },
-  {"goldenrod1"			, PALETTERGB (255, 193, 37) },
-  {"goldenrod2"			, PALETTERGB (238, 180, 34) },
-  {"goldenrod3"			, PALETTERGB (205, 155, 29) },
-  {"goldenrod4"			, PALETTERGB (139, 105, 20) },
-  {"DarkGoldenrod1"		, PALETTERGB (255, 185, 15) },
-  {"DarkGoldenrod2"		, PALETTERGB (238, 173, 14) },
-  {"DarkGoldenrod3"		, PALETTERGB (205, 149, 12) },
-  {"DarkGoldenrod4"		, PALETTERGB (139, 101, 8) },
-  {"RosyBrown1"			, PALETTERGB (255, 193, 193) },
-  {"RosyBrown2"			, PALETTERGB (238, 180, 180) },
-  {"RosyBrown3"			, PALETTERGB (205, 155, 155) },
-  {"RosyBrown4"			, PALETTERGB (139, 105, 105) },
-  {"IndianRed1"			, PALETTERGB (255, 106, 106) },
-  {"IndianRed2"			, PALETTERGB (238, 99, 99) },
-  {"IndianRed3"			, PALETTERGB (205, 85, 85) },
-  {"IndianRed4"			, PALETTERGB (139, 58, 58) },
-  {"sienna1"			, PALETTERGB (255, 130, 71) },
-  {"sienna2"			, PALETTERGB (238, 121, 66) },
-  {"sienna3"			, PALETTERGB (205, 104, 57) },
-  {"sienna4"			, PALETTERGB (139, 71, 38) },
-  {"burlywood1"			, PALETTERGB (255, 211, 155) },
-  {"burlywood2"			, PALETTERGB (238, 197, 145) },
-  {"burlywood3"			, PALETTERGB (205, 170, 125) },
-  {"burlywood4"			, PALETTERGB (139, 115, 85) },
-  {"wheat1"			, PALETTERGB (255, 231, 186) },
-  {"wheat2"			, PALETTERGB (238, 216, 174) },
-  {"wheat3"			, PALETTERGB (205, 186, 150) },
-  {"wheat4"			, PALETTERGB (139, 126, 102) },
-  {"tan1"			, PALETTERGB (255, 165, 79) },
-  {"tan2"			, PALETTERGB (238, 154, 73) },
-  {"tan3"			, PALETTERGB (205, 133, 63) },
-  {"tan4"			, PALETTERGB (139, 90, 43) },
-  {"chocolate1"			, PALETTERGB (255, 127, 36) },
-  {"chocolate2"			, PALETTERGB (238, 118, 33) },
-  {"chocolate3"			, PALETTERGB (205, 102, 29) },
-  {"chocolate4"			, PALETTERGB (139, 69, 19) },
-  {"firebrick1"			, PALETTERGB (255, 48, 48) },
-  {"firebrick2"			, PALETTERGB (238, 44, 44) },
-  {"firebrick3"			, PALETTERGB (205, 38, 38) },
-  {"firebrick4"			, PALETTERGB (139, 26, 26) },
-  {"brown1"			, PALETTERGB (255, 64, 64) },
-  {"brown2"			, PALETTERGB (238, 59, 59) },
-  {"brown3"			, PALETTERGB (205, 51, 51) },
-  {"brown4"			, PALETTERGB (139, 35, 35) },
-  {"salmon1"			, PALETTERGB (255, 140, 105) },
-  {"salmon2"			, PALETTERGB (238, 130, 98) },
-  {"salmon3"			, PALETTERGB (205, 112, 84) },
-  {"salmon4"			, PALETTERGB (139, 76, 57) },
-  {"LightSalmon1"		, PALETTERGB (255, 160, 122) },
-  {"LightSalmon2"		, PALETTERGB (238, 149, 114) },
-  {"LightSalmon3"		, PALETTERGB (205, 129, 98) },
-  {"LightSalmon4"		, PALETTERGB (139, 87, 66) },
-  {"orange1"			, PALETTERGB (255, 165, 0) },
-  {"orange2"			, PALETTERGB (238, 154, 0) },
-  {"orange3"			, PALETTERGB (205, 133, 0) },
-  {"orange4"			, PALETTERGB (139, 90, 0) },
-  {"DarkOrange1"		, PALETTERGB (255, 127, 0) },
-  {"DarkOrange2"		, PALETTERGB (238, 118, 0) },
-  {"DarkOrange3"		, PALETTERGB (205, 102, 0) },
-  {"DarkOrange4"		, PALETTERGB (139, 69, 0) },
-  {"coral1"			, PALETTERGB (255, 114, 86) },
-  {"coral2"			, PALETTERGB (238, 106, 80) },
-  {"coral3"			, PALETTERGB (205, 91, 69) },
-  {"coral4"			, PALETTERGB (139, 62, 47) },
-  {"tomato1"			, PALETTERGB (255, 99, 71) },
-  {"tomato2"			, PALETTERGB (238, 92, 66) },
-  {"tomato3"			, PALETTERGB (205, 79, 57) },
-  {"tomato4"			, PALETTERGB (139, 54, 38) },
-  {"OrangeRed1"			, PALETTERGB (255, 69, 0) },
-  {"OrangeRed2"			, PALETTERGB (238, 64, 0) },
-  {"OrangeRed3"			, PALETTERGB (205, 55, 0) },
-  {"OrangeRed4"			, PALETTERGB (139, 37, 0) },
-  {"red1"			, PALETTERGB (255, 0, 0) },
-  {"red2"			, PALETTERGB (238, 0, 0) },
-  {"red3"			, PALETTERGB (205, 0, 0) },
-  {"red4"			, PALETTERGB (139, 0, 0) },
-  {"DeepPink1"			, PALETTERGB (255, 20, 147) },
-  {"DeepPink2"			, PALETTERGB (238, 18, 137) },
-  {"DeepPink3"			, PALETTERGB (205, 16, 118) },
-  {"DeepPink4"			, PALETTERGB (139, 10, 80) },
-  {"HotPink1"			, PALETTERGB (255, 110, 180) },
-  {"HotPink2"			, PALETTERGB (238, 106, 167) },
-  {"HotPink3"			, PALETTERGB (205, 96, 144) },
-  {"HotPink4"			, PALETTERGB (139, 58, 98) },
-  {"pink1"			, PALETTERGB (255, 181, 197) },
-  {"pink2"			, PALETTERGB (238, 169, 184) },
-  {"pink3"			, PALETTERGB (205, 145, 158) },
-  {"pink4"			, PALETTERGB (139, 99, 108) },
-  {"LightPink1"			, PALETTERGB (255, 174, 185) },
-  {"LightPink2"			, PALETTERGB (238, 162, 173) },
-  {"LightPink3"			, PALETTERGB (205, 140, 149) },
-  {"LightPink4"			, PALETTERGB (139, 95, 101) },
-  {"PaleVioletRed1"		, PALETTERGB (255, 130, 171) },
-  {"PaleVioletRed2"		, PALETTERGB (238, 121, 159) },
-  {"PaleVioletRed3"		, PALETTERGB (205, 104, 137) },
-  {"PaleVioletRed4"		, PALETTERGB (139, 71, 93) },
-  {"maroon1"			, PALETTERGB (255, 52, 179) },
-  {"maroon2"			, PALETTERGB (238, 48, 167) },
-  {"maroon3"			, PALETTERGB (205, 41, 144) },
-  {"maroon4"			, PALETTERGB (139, 28, 98) },
-  {"VioletRed1"			, PALETTERGB (255, 62, 150) },
-  {"VioletRed2"			, PALETTERGB (238, 58, 140) },
-  {"VioletRed3"			, PALETTERGB (205, 50, 120) },
-  {"VioletRed4"			, PALETTERGB (139, 34, 82) },
-  {"magenta1"			, PALETTERGB (255, 0, 255) },
-  {"magenta2"			, PALETTERGB (238, 0, 238) },
-  {"magenta3"			, PALETTERGB (205, 0, 205) },
-  {"magenta4"			, PALETTERGB (139, 0, 139) },
-  {"orchid1"			, PALETTERGB (255, 131, 250) },
-  {"orchid2"			, PALETTERGB (238, 122, 233) },
-  {"orchid3"			, PALETTERGB (205, 105, 201) },
-  {"orchid4"			, PALETTERGB (139, 71, 137) },
-  {"plum1"			, PALETTERGB (255, 187, 255) },
-  {"plum2"			, PALETTERGB (238, 174, 238) },
-  {"plum3"			, PALETTERGB (205, 150, 205) },
-  {"plum4"			, PALETTERGB (139, 102, 139) },
-  {"MediumOrchid1"		, PALETTERGB (224, 102, 255) },
-  {"MediumOrchid2"		, PALETTERGB (209, 95, 238) },
-  {"MediumOrchid3"		, PALETTERGB (180, 82, 205) },
-  {"MediumOrchid4"		, PALETTERGB (122, 55, 139) },
-  {"DarkOrchid1"		, PALETTERGB (191, 62, 255) },
-  {"DarkOrchid2"		, PALETTERGB (178, 58, 238) },
-  {"DarkOrchid3"		, PALETTERGB (154, 50, 205) },
-  {"DarkOrchid4"		, PALETTERGB (104, 34, 139) },
-  {"purple1"			, PALETTERGB (155, 48, 255) },
-  {"purple2"			, PALETTERGB (145, 44, 238) },
-  {"purple3"			, PALETTERGB (125, 38, 205) },
-  {"purple4"			, PALETTERGB (85, 26, 139) },
-  {"MediumPurple1"		, PALETTERGB (171, 130, 255) },
-  {"MediumPurple2"		, PALETTERGB (159, 121, 238) },
-  {"MediumPurple3"		, PALETTERGB (137, 104, 205) },
-  {"MediumPurple4"		, PALETTERGB (93, 71, 139) },
-  {"thistle1"			, PALETTERGB (255, 225, 255) },
-  {"thistle2"			, PALETTERGB (238, 210, 238) },
-  {"thistle3"			, PALETTERGB (205, 181, 205) },
-  {"thistle4"			, PALETTERGB (139, 123, 139) },
-  {"gray0"			, PALETTERGB (0, 0, 0) },
-  {"grey0"			, PALETTERGB (0, 0, 0) },
-  {"gray1"			, PALETTERGB (3, 3, 3) },
-  {"grey1"			, PALETTERGB (3, 3, 3) },
-  {"gray2"			, PALETTERGB (5, 5, 5) },
-  {"grey2"			, PALETTERGB (5, 5, 5) },
-  {"gray3"			, PALETTERGB (8, 8, 8) },
-  {"grey3"			, PALETTERGB (8, 8, 8) },
-  {"gray4"			, PALETTERGB (10, 10, 10) },
-  {"grey4"			, PALETTERGB (10, 10, 10) },
-  {"gray5"			, PALETTERGB (13, 13, 13) },
-  {"grey5"			, PALETTERGB (13, 13, 13) },
-  {"gray6"			, PALETTERGB (15, 15, 15) },
-  {"grey6"			, PALETTERGB (15, 15, 15) },
-  {"gray7"			, PALETTERGB (18, 18, 18) },
-  {"grey7"			, PALETTERGB (18, 18, 18) },
-  {"gray8"			, PALETTERGB (20, 20, 20) },
-  {"grey8"			, PALETTERGB (20, 20, 20) },
-  {"gray9"			, PALETTERGB (23, 23, 23) },
-  {"grey9"			, PALETTERGB (23, 23, 23) },
-  {"gray10"			, PALETTERGB (26, 26, 26) },
-  {"grey10"			, PALETTERGB (26, 26, 26) },
-  {"gray11"			, PALETTERGB (28, 28, 28) },
-  {"grey11"			, PALETTERGB (28, 28, 28) },
-  {"gray12"			, PALETTERGB (31, 31, 31) },
-  {"grey12"			, PALETTERGB (31, 31, 31) },
-  {"gray13"			, PALETTERGB (33, 33, 33) },
-  {"grey13"			, PALETTERGB (33, 33, 33) },
-  {"gray14"			, PALETTERGB (36, 36, 36) },
-  {"grey14"			, PALETTERGB (36, 36, 36) },
-  {"gray15"			, PALETTERGB (38, 38, 38) },
-  {"grey15"			, PALETTERGB (38, 38, 38) },
-  {"gray16"			, PALETTERGB (41, 41, 41) },
-  {"grey16"			, PALETTERGB (41, 41, 41) },
-  {"gray17"			, PALETTERGB (43, 43, 43) },
-  {"grey17"			, PALETTERGB (43, 43, 43) },
-  {"gray18"			, PALETTERGB (46, 46, 46) },
-  {"grey18"			, PALETTERGB (46, 46, 46) },
-  {"gray19"			, PALETTERGB (48, 48, 48) },
-  {"grey19"			, PALETTERGB (48, 48, 48) },
-  {"gray20"			, PALETTERGB (51, 51, 51) },
-  {"grey20"			, PALETTERGB (51, 51, 51) },
-  {"gray21"			, PALETTERGB (54, 54, 54) },
-  {"grey21"			, PALETTERGB (54, 54, 54) },
-  {"gray22"			, PALETTERGB (56, 56, 56) },
-  {"grey22"			, PALETTERGB (56, 56, 56) },
-  {"gray23"			, PALETTERGB (59, 59, 59) },
-  {"grey23"			, PALETTERGB (59, 59, 59) },
-  {"gray24"			, PALETTERGB (61, 61, 61) },
-  {"grey24"			, PALETTERGB (61, 61, 61) },
-  {"gray25"			, PALETTERGB (64, 64, 64) },
-  {"grey25"			, PALETTERGB (64, 64, 64) },
-  {"gray26"			, PALETTERGB (66, 66, 66) },
-  {"grey26"			, PALETTERGB (66, 66, 66) },
-  {"gray27"			, PALETTERGB (69, 69, 69) },
-  {"grey27"			, PALETTERGB (69, 69, 69) },
-  {"gray28"			, PALETTERGB (71, 71, 71) },
-  {"grey28"			, PALETTERGB (71, 71, 71) },
-  {"gray29"			, PALETTERGB (74, 74, 74) },
-  {"grey29"			, PALETTERGB (74, 74, 74) },
-  {"gray30"			, PALETTERGB (77, 77, 77) },
-  {"grey30"			, PALETTERGB (77, 77, 77) },
-  {"gray31"			, PALETTERGB (79, 79, 79) },
-  {"grey31"			, PALETTERGB (79, 79, 79) },
-  {"gray32"			, PALETTERGB (82, 82, 82) },
-  {"grey32"			, PALETTERGB (82, 82, 82) },
-  {"gray33"			, PALETTERGB (84, 84, 84) },
-  {"grey33"			, PALETTERGB (84, 84, 84) },
-  {"gray34"			, PALETTERGB (87, 87, 87) },
-  {"grey34"			, PALETTERGB (87, 87, 87) },
-  {"gray35"			, PALETTERGB (89, 89, 89) },
-  {"grey35"			, PALETTERGB (89, 89, 89) },
-  {"gray36"			, PALETTERGB (92, 92, 92) },
-  {"grey36"			, PALETTERGB (92, 92, 92) },
-  {"gray37"			, PALETTERGB (94, 94, 94) },
-  {"grey37"			, PALETTERGB (94, 94, 94) },
-  {"gray38"			, PALETTERGB (97, 97, 97) },
-  {"grey38"			, PALETTERGB (97, 97, 97) },
-  {"gray39"			, PALETTERGB (99, 99, 99) },
-  {"grey39"			, PALETTERGB (99, 99, 99) },
-  {"gray40"			, PALETTERGB (102, 102, 102) },
-  {"grey40"			, PALETTERGB (102, 102, 102) },
-  {"gray41"			, PALETTERGB (105, 105, 105) },
-  {"grey41"			, PALETTERGB (105, 105, 105) },
-  {"gray42"			, PALETTERGB (107, 107, 107) },
-  {"grey42"			, PALETTERGB (107, 107, 107) },
-  {"gray43"			, PALETTERGB (110, 110, 110) },
-  {"grey43"			, PALETTERGB (110, 110, 110) },
-  {"gray44"			, PALETTERGB (112, 112, 112) },
-  {"grey44"			, PALETTERGB (112, 112, 112) },
-  {"gray45"			, PALETTERGB (115, 115, 115) },
-  {"grey45"			, PALETTERGB (115, 115, 115) },
-  {"gray46"			, PALETTERGB (117, 117, 117) },
-  {"grey46"			, PALETTERGB (117, 117, 117) },
-  {"gray47"			, PALETTERGB (120, 120, 120) },
-  {"grey47"			, PALETTERGB (120, 120, 120) },
-  {"gray48"			, PALETTERGB (122, 122, 122) },
-  {"grey48"			, PALETTERGB (122, 122, 122) },
-  {"gray49"			, PALETTERGB (125, 125, 125) },
-  {"grey49"			, PALETTERGB (125, 125, 125) },
-  {"gray50"			, PALETTERGB (127, 127, 127) },
-  {"grey50"			, PALETTERGB (127, 127, 127) },
-  {"gray51"			, PALETTERGB (130, 130, 130) },
-  {"grey51"			, PALETTERGB (130, 130, 130) },
-  {"gray52"			, PALETTERGB (133, 133, 133) },
-  {"grey52"			, PALETTERGB (133, 133, 133) },
-  {"gray53"			, PALETTERGB (135, 135, 135) },
-  {"grey53"			, PALETTERGB (135, 135, 135) },
-  {"gray54"			, PALETTERGB (138, 138, 138) },
-  {"grey54"			, PALETTERGB (138, 138, 138) },
-  {"gray55"			, PALETTERGB (140, 140, 140) },
-  {"grey55"			, PALETTERGB (140, 140, 140) },
-  {"gray56"			, PALETTERGB (143, 143, 143) },
-  {"grey56"			, PALETTERGB (143, 143, 143) },
-  {"gray57"			, PALETTERGB (145, 145, 145) },
-  {"grey57"			, PALETTERGB (145, 145, 145) },
-  {"gray58"			, PALETTERGB (148, 148, 148) },
-  {"grey58"			, PALETTERGB (148, 148, 148) },
-  {"gray59"			, PALETTERGB (150, 150, 150) },
-  {"grey59"			, PALETTERGB (150, 150, 150) },
-  {"gray60"			, PALETTERGB (153, 153, 153) },
-  {"grey60"			, PALETTERGB (153, 153, 153) },
-  {"gray61"			, PALETTERGB (156, 156, 156) },
-  {"grey61"			, PALETTERGB (156, 156, 156) },
-  {"gray62"			, PALETTERGB (158, 158, 158) },
-  {"grey62"			, PALETTERGB (158, 158, 158) },
-  {"gray63"			, PALETTERGB (161, 161, 161) },
-  {"grey63"			, PALETTERGB (161, 161, 161) },
-  {"gray64"			, PALETTERGB (163, 163, 163) },
-  {"grey64"			, PALETTERGB (163, 163, 163) },
-  {"gray65"			, PALETTERGB (166, 166, 166) },
-  {"grey65"			, PALETTERGB (166, 166, 166) },
-  {"gray66"			, PALETTERGB (168, 168, 168) },
-  {"grey66"			, PALETTERGB (168, 168, 168) },
-  {"gray67"			, PALETTERGB (171, 171, 171) },
-  {"grey67"			, PALETTERGB (171, 171, 171) },
-  {"gray68"			, PALETTERGB (173, 173, 173) },
-  {"grey68"			, PALETTERGB (173, 173, 173) },
-  {"gray69"			, PALETTERGB (176, 176, 176) },
-  {"grey69"			, PALETTERGB (176, 176, 176) },
-  {"gray70"			, PALETTERGB (179, 179, 179) },
-  {"grey70"			, PALETTERGB (179, 179, 179) },
-  {"gray71"			, PALETTERGB (181, 181, 181) },
-  {"grey71"			, PALETTERGB (181, 181, 181) },
-  {"gray72"			, PALETTERGB (184, 184, 184) },
-  {"grey72"			, PALETTERGB (184, 184, 184) },
-  {"gray73"			, PALETTERGB (186, 186, 186) },
-  {"grey73"			, PALETTERGB (186, 186, 186) },
-  {"gray74"			, PALETTERGB (189, 189, 189) },
-  {"grey74"			, PALETTERGB (189, 189, 189) },
-  {"gray75"			, PALETTERGB (191, 191, 191) },
-  {"grey75"			, PALETTERGB (191, 191, 191) },
-  {"gray76"			, PALETTERGB (194, 194, 194) },
-  {"grey76"			, PALETTERGB (194, 194, 194) },
-  {"gray77"			, PALETTERGB (196, 196, 196) },
-  {"grey77"			, PALETTERGB (196, 196, 196) },
-  {"gray78"			, PALETTERGB (199, 199, 199) },
-  {"grey78"			, PALETTERGB (199, 199, 199) },
-  {"gray79"			, PALETTERGB (201, 201, 201) },
-  {"grey79"			, PALETTERGB (201, 201, 201) },
-  {"gray80"			, PALETTERGB (204, 204, 204) },
-  {"grey80"			, PALETTERGB (204, 204, 204) },
-  {"gray81"			, PALETTERGB (207, 207, 207) },
-  {"grey81"			, PALETTERGB (207, 207, 207) },
-  {"gray82"			, PALETTERGB (209, 209, 209) },
-  {"grey82"			, PALETTERGB (209, 209, 209) },
-  {"gray83"			, PALETTERGB (212, 212, 212) },
-  {"grey83"			, PALETTERGB (212, 212, 212) },
-  {"gray84"			, PALETTERGB (214, 214, 214) },
-  {"grey84"			, PALETTERGB (214, 214, 214) },
-  {"gray85"			, PALETTERGB (217, 217, 217) },
-  {"grey85"			, PALETTERGB (217, 217, 217) },
-  {"gray86"			, PALETTERGB (219, 219, 219) },
-  {"grey86"			, PALETTERGB (219, 219, 219) },
-  {"gray87"			, PALETTERGB (222, 222, 222) },
-  {"grey87"			, PALETTERGB (222, 222, 222) },
-  {"gray88"			, PALETTERGB (224, 224, 224) },
-  {"grey88"			, PALETTERGB (224, 224, 224) },
-  {"gray89"			, PALETTERGB (227, 227, 227) },
-  {"grey89"			, PALETTERGB (227, 227, 227) },
-  {"gray90"			, PALETTERGB (229, 229, 229) },
-  {"grey90"			, PALETTERGB (229, 229, 229) },
-  {"gray91"			, PALETTERGB (232, 232, 232) },
-  {"grey91"			, PALETTERGB (232, 232, 232) },
-  {"gray92"			, PALETTERGB (235, 235, 235) },
-  {"grey92"			, PALETTERGB (235, 235, 235) },
-  {"gray93"			, PALETTERGB (237, 237, 237) },
-  {"grey93"			, PALETTERGB (237, 237, 237) },
-  {"gray94"			, PALETTERGB (240, 240, 240) },
-  {"grey94"			, PALETTERGB (240, 240, 240) },
-  {"gray95"			, PALETTERGB (242, 242, 242) },
-  {"grey95"			, PALETTERGB (242, 242, 242) },
-  {"gray96"			, PALETTERGB (245, 245, 245) },
-  {"grey96"			, PALETTERGB (245, 245, 245) },
-  {"gray97"			, PALETTERGB (247, 247, 247) },
-  {"grey97"			, PALETTERGB (247, 247, 247) },
-  {"gray98"			, PALETTERGB (250, 250, 250) },
-  {"grey98"			, PALETTERGB (250, 250, 250) },
-  {"gray99"			, PALETTERGB (252, 252, 252) },
-  {"grey99"			, PALETTERGB (252, 252, 252) },
-  {"gray100"			, PALETTERGB (255, 255, 255) },
-  {"grey100"			, PALETTERGB (255, 255, 255) },
-  {"DarkGrey"			, PALETTERGB (169, 169, 169) },
-  {"DarkGray"			, PALETTERGB (169, 169, 169) },
-  {"DarkBlue"			, PALETTERGB (0, 0, 139) },
-  {"DarkCyan"			, PALETTERGB (0, 139, 139) },
-  {"DarkMagenta"		, PALETTERGB (139, 0, 139) },
-  {"DarkRed"			, PALETTERGB (139, 0, 0) },
-  {"LightGreen"			, PALETTERGB (144, 238, 144) }
+  {"white"		, PALETTERGB (255, 255, 255) },
+  {"black"		, PALETTERGB (0, 0, 0) },
+  {"snow"		, PALETTERGB (255, 250, 250) },
+  {"GhostWhite"		, PALETTERGB (248, 248, 255) },
+  {"WhiteSmoke"		, PALETTERGB (245, 245, 245) },
+  {"gainsboro"		, PALETTERGB (220, 220, 220) },
+  {"FloralWhite"	, PALETTERGB (255, 250, 240) },
+  {"OldLace"		, PALETTERGB (253, 245, 230) },
+  {"linen"		, PALETTERGB (250, 240, 230) },
+  {"AntiqueWhite"	, PALETTERGB (250, 235, 215) },
+  {"PapayaWhip"		, PALETTERGB (255, 239, 213) },
+  {"BlanchedAlmond"	, PALETTERGB (255, 235, 205) },
+  {"bisque"		, PALETTERGB (255, 228, 196) },
+  {"PeachPuff"		, PALETTERGB (255, 218, 185) },
+  {"NavajoWhite"	, PALETTERGB (255, 222, 173) },
+  {"moccasin"		, PALETTERGB (255, 228, 181) },
+  {"cornsilk"		, PALETTERGB (255, 248, 220) },
+  {"ivory"		, PALETTERGB (255, 255, 240) },
+  {"LemonChiffon"	, PALETTERGB (255, 250, 205) },
+  {"seashell"		, PALETTERGB (255, 245, 238) },
+  {"honeydew"		, PALETTERGB (240, 255, 240) },
+  {"MintCream"		, PALETTERGB (245, 255, 250) },
+  {"azure"		, PALETTERGB (240, 255, 255) },
+  {"AliceBlue"		, PALETTERGB (240, 248, 255) },
+  {"lavender"		, PALETTERGB (230, 230, 250) },
+  {"LavenderBlush"	, PALETTERGB (255, 240, 245) },
+  {"MistyRose"		, PALETTERGB (255, 228, 225) },
+  {"DarkSlateGray"	, PALETTERGB (47, 79, 79) },
+  {"DarkSlateGrey"	, PALETTERGB (47, 79, 79) },
+  {"DimGray"		, PALETTERGB (105, 105, 105) },
+  {"DimGrey"		, PALETTERGB (105, 105, 105) },
+  {"SlateGray"		, PALETTERGB (112, 128, 144) },
+  {"SlateGrey"		, PALETTERGB (112, 128, 144) },
+  {"LightSlateGray"	, PALETTERGB (119, 136, 153) },
+  {"LightSlateGrey"	, PALETTERGB (119, 136, 153) },
+  {"gray"		, PALETTERGB (190, 190, 190) },
+  {"grey"		, PALETTERGB (190, 190, 190) },
+  {"LightGrey"		, PALETTERGB (211, 211, 211) },
+  {"LightGray"		, PALETTERGB (211, 211, 211) },
+  {"MidnightBlue"	, PALETTERGB (25, 25, 112) },
+  {"navy"		, PALETTERGB (0, 0, 128) },
+  {"NavyBlue"		, PALETTERGB (0, 0, 128) },
+  {"CornflowerBlue"	, PALETTERGB (100, 149, 237) },
+  {"DarkSlateBlue"	, PALETTERGB (72, 61, 139) },
+  {"SlateBlue"		, PALETTERGB (106, 90, 205) },
+  {"MediumSlateBlue"	, PALETTERGB (123, 104, 238) },
+  {"LightSlateBlue"	, PALETTERGB (132, 112, 255) },
+  {"MediumBlue"		, PALETTERGB (0, 0, 205) },
+  {"RoyalBlue"		, PALETTERGB (65, 105, 225) },
+  {"blue"		, PALETTERGB (0, 0, 255) },
+  {"DodgerBlue"		, PALETTERGB (30, 144, 255) },
+  {"DeepSkyBlue"	, PALETTERGB (0, 191, 255) },
+  {"SkyBlue"		, PALETTERGB (135, 206, 235) },
+  {"LightSkyBlue"	, PALETTERGB (135, 206, 250) },
+  {"SteelBlue"		, PALETTERGB (70, 130, 180) },
+  {"LightSteelBlue"	, PALETTERGB (176, 196, 222) },
+  {"LightBlue"		, PALETTERGB (173, 216, 230) },
+  {"PowderBlue"		, PALETTERGB (176, 224, 230) },
+  {"PaleTurquoise"	, PALETTERGB (175, 238, 238) },
+  {"DarkTurquoise"	, PALETTERGB (0, 206, 209) },
+  {"MediumTurquoise"	, PALETTERGB (72, 209, 204) },
+  {"turquoise"		, PALETTERGB (64, 224, 208) },
+  {"cyan"		, PALETTERGB (0, 255, 255) },
+  {"LightCyan"		, PALETTERGB (224, 255, 255) },
+  {"CadetBlue"		, PALETTERGB (95, 158, 160) },
+  {"MediumAquamarine"	, PALETTERGB (102, 205, 170) },
+  {"aquamarine"		, PALETTERGB (127, 255, 212) },
+  {"DarkGreen"		, PALETTERGB (0, 128, 0) },	/* Adjusted */
+  {"DarkOliveGreen"	, PALETTERGB (85, 107, 47) },
+  {"DarkSeaGreen"	, PALETTERGB (143, 188, 143) },
+  {"SeaGreen"		, PALETTERGB (46, 139, 87) },
+  {"MediumSeaGreen"	, PALETTERGB (60, 179, 113) },
+  {"LightSeaGreen"	, PALETTERGB (32, 178, 170) },
+  {"PaleGreen"		, PALETTERGB (152, 251, 152) },
+  {"SpringGreen"	, PALETTERGB (0, 255, 127) },
+  {"LawnGreen"		, PALETTERGB (124, 252, 0) },
+  {"green"		, PALETTERGB (0, 255, 0) },
+  {"chartreuse"		, PALETTERGB (127, 255, 0) },
+  {"MediumSpringGreen"	, PALETTERGB (0, 250, 154) },
+  {"GreenYellow"	, PALETTERGB (173, 255, 47) },
+  {"LimeGreen"		, PALETTERGB (50, 205, 50) },
+  {"YellowGreen"	, PALETTERGB (154, 205, 50) },
+  {"ForestGreen"	, PALETTERGB (34, 139, 34) },
+  {"OliveDrab"		, PALETTERGB (107, 142, 35) },
+  {"DarkKhaki"		, PALETTERGB (189, 183, 107) },
+  {"khaki"		, PALETTERGB (240, 230, 140) },
+  {"PaleGoldenrod"	, PALETTERGB (238, 232, 170) },
+  {"LightGoldenrodYellow", PALETTERGB (250, 250, 210) },
+  {"LightYellow"	, PALETTERGB (255, 255, 224) },
+  {"LightYellow"	, PALETTERGB (255, 255, 225) },	/* Adjusted */
+  {"yellow"		, PALETTERGB (255, 255, 0) },
+  {"gold"		, PALETTERGB (255, 215, 0) },
+  {"LightGoldenrod"	, PALETTERGB (238, 221, 130) },
+  {"goldenrod"		, PALETTERGB (218, 165, 32) },
+  {"DarkGoldenrod"	, PALETTERGB (184, 134, 11) },
+  {"RosyBrown"		, PALETTERGB (188, 143, 143) },
+  {"IndianRed"		, PALETTERGB (205, 92, 92) },
+  {"SaddleBrown"	, PALETTERGB (139, 69, 19) },
+  {"sienna"		, PALETTERGB (160, 82, 45) },
+  {"peru"		, PALETTERGB (205, 133, 63) },
+  {"burlywood"		, PALETTERGB (222, 184, 135) },
+  {"beige"		, PALETTERGB (245, 245, 220) },
+  {"wheat"		, PALETTERGB (245, 222, 179) },
+  {"SandyBrown"		, PALETTERGB (244, 164, 96) },
+  {"tan"		, PALETTERGB (210, 180, 140) },
+  {"chocolate"		, PALETTERGB (210, 105, 30) },
+  {"firebrick"		, PALETTERGB (178, 34, 34) },
+  {"brown"		, PALETTERGB (165, 42, 42) },
+  {"DarkSalmon"		, PALETTERGB (233, 150, 122) },
+  {"salmon"		, PALETTERGB (250, 128, 114) },
+  {"LightSalmon"	, PALETTERGB (255, 160, 122) },
+  {"orange"		, PALETTERGB (255, 165, 0) },
+  {"DarkOrange"		, PALETTERGB (255, 140, 0) },
+  {"coral"		, PALETTERGB (255, 127, 80) },
+  {"LightCoral"		, PALETTERGB (240, 128, 128) },
+  {"tomato"		, PALETTERGB (255, 99, 71) },
+  {"OrangeRed"		, PALETTERGB (255, 69, 0) },
+  {"red"		, PALETTERGB (255, 0, 0) },
+  {"HotPink"		, PALETTERGB (255, 105, 180) },
+  {"DeepPink"		, PALETTERGB (255, 20, 147) },
+  {"pink"		, PALETTERGB (255, 192, 203) },
+  {"LightPink"		, PALETTERGB (255, 182, 193) },
+  {"PaleVioletRed"	, PALETTERGB (219, 112, 147) },
+  {"maroon"		, PALETTERGB (176, 48, 96) },
+  {"MediumVioletRed"	, PALETTERGB (199, 21, 133) },
+  {"VioletRed"		, PALETTERGB (208, 32, 144) },
+  {"magenta"		, PALETTERGB (255, 0, 255) },
+  {"violet"		, PALETTERGB (238, 130, 238) },
+  {"plum"		, PALETTERGB (221, 160, 221) },
+  {"orchid"		, PALETTERGB (218, 112, 214) },
+  {"MediumOrchid"	, PALETTERGB (186, 85, 211) },
+  {"DarkOrchid"		, PALETTERGB (153, 50, 204) },
+  {"DarkViolet"		, PALETTERGB (148, 0, 211) },
+  {"BlueViolet"		, PALETTERGB (138, 43, 226) },
+  {"purple"		, PALETTERGB (160, 32, 240) },
+  {"MediumPurple"	, PALETTERGB (147, 112, 219) },
+  {"thistle"		, PALETTERGB (216, 191, 216) },
+  {"snow1"		, PALETTERGB (255, 250, 250) },
+  {"snow2"		, PALETTERGB (238, 233, 233) },
+  {"snow3"		, PALETTERGB (205, 201, 201) },
+  {"snow4"		, PALETTERGB (139, 137, 137) },
+  {"seashell1"		, PALETTERGB (255, 245, 238) },
+  {"seashell2"		, PALETTERGB (238, 229, 222) },
+  {"seashell3"		, PALETTERGB (205, 197, 191) },
+  {"seashell4"		, PALETTERGB (139, 134, 130) },
+  {"AntiqueWhite1"	, PALETTERGB (255, 239, 219) },
+  {"AntiqueWhite2"	, PALETTERGB (238, 223, 204) },
+  {"AntiqueWhite3"	, PALETTERGB (205, 192, 176) },
+  {"AntiqueWhite4"	, PALETTERGB (139, 131, 120) },
+  {"bisque1"		, PALETTERGB (255, 228, 196) },
+  {"bisque2"		, PALETTERGB (238, 213, 183) },
+  {"bisque3"		, PALETTERGB (205, 183, 158) },
+  {"bisque4"		, PALETTERGB (139, 125, 107) },
+  {"PeachPuff1"		, PALETTERGB (255, 218, 185) },
+  {"PeachPuff2"		, PALETTERGB (238, 203, 173) },
+  {"PeachPuff3"		, PALETTERGB (205, 175, 149) },
+  {"PeachPuff4"		, PALETTERGB (139, 119, 101) },
+  {"NavajoWhite1"	, PALETTERGB (255, 222, 173) },
+  {"NavajoWhite2"	, PALETTERGB (238, 207, 161) },
+  {"NavajoWhite3"	, PALETTERGB (205, 179, 139) },
+  {"NavajoWhite4"	, PALETTERGB (139, 121, 94) },
+  {"LemonChiffon1"	, PALETTERGB (255, 250, 205) },
+  {"LemonChiffon2"	, PALETTERGB (238, 233, 191) },
+  {"LemonChiffon3"	, PALETTERGB (205, 201, 165) },
+  {"LemonChiffon4"	, PALETTERGB (139, 137, 112) },
+  {"cornsilk1"		, PALETTERGB (255, 248, 220) },
+  {"cornsilk2"		, PALETTERGB (238, 232, 205) },
+  {"cornsilk3"		, PALETTERGB (205, 200, 177) },
+  {"cornsilk4"		, PALETTERGB (139, 136, 120) },
+  {"ivory1"		, PALETTERGB (255, 255, 240) },
+  {"ivory2"		, PALETTERGB (240, 240, 208) },	/* Adjusted */
+  {"ivory3"		, PALETTERGB (205, 205, 193) },
+  {"ivory4"		, PALETTERGB (139, 139, 131) },
+  {"honeydew1"		, PALETTERGB (240, 255, 240) },
+  {"honeydew2"		, PALETTERGB (224, 238, 224) },
+  {"honeydew3"		, PALETTERGB (193, 205, 193) },
+  {"honeydew4"		, PALETTERGB (131, 139, 131) },
+  {"LavenderBlush1"	, PALETTERGB (255, 240, 245) },
+  {"LavenderBlush2"	, PALETTERGB (238, 224, 229) },
+  {"LavenderBlush3"	, PALETTERGB (205, 193, 197) },
+  {"LavenderBlush4"	, PALETTERGB (139, 131, 134) },
+  {"MistyRose1"		, PALETTERGB (255, 228, 225) },
+  {"MistyRose2"		, PALETTERGB (238, 213, 210) },
+  {"MistyRose3"		, PALETTERGB (205, 183, 181) },
+  {"MistyRose4"		, PALETTERGB (139, 125, 123) },
+  {"azure1"		, PALETTERGB (240, 255, 255) },
+  {"azure2"		, PALETTERGB (224, 238, 238) },
+  {"azure3"		, PALETTERGB (193, 205, 205) },
+  {"azure4"		, PALETTERGB (131, 139, 139) },
+  {"SlateBlue1"		, PALETTERGB (131, 111, 255) },
+  {"SlateBlue2"		, PALETTERGB (122, 103, 238) },
+  {"SlateBlue3"		, PALETTERGB (105, 89, 205) },
+  {"SlateBlue4"		, PALETTERGB (71, 60, 139) },
+  {"RoyalBlue1"		, PALETTERGB (72, 118, 255) },
+  {"RoyalBlue2"		, PALETTERGB (67, 110, 238) },
+  {"RoyalBlue3"		, PALETTERGB (58, 95, 205) },
+  {"RoyalBlue4"		, PALETTERGB (39, 64, 139) },
+  {"blue1"		, PALETTERGB (0, 0, 255) },
+  {"blue2"		, PALETTERGB (0, 0, 238) },
+  {"blue3"		, PALETTERGB (0, 0, 205) },
+  {"blue4"		, PALETTERGB (0, 0, 139) },
+  {"DodgerBlue1"	, PALETTERGB (30, 144, 255) },
+  {"DodgerBlue2"	, PALETTERGB (28, 134, 238) },
+  {"DodgerBlue3"	, PALETTERGB (24, 116, 205) },
+  {"DodgerBlue4"	, PALETTERGB (16, 78, 139) },
+  {"SteelBlue1"		, PALETTERGB (99, 184, 255) },
+  {"SteelBlue2"		, PALETTERGB (92, 172, 238) },
+  {"SteelBlue3"		, PALETTERGB (79, 148, 205) },
+  {"SteelBlue4"		, PALETTERGB (54, 100, 139) },
+  {"DeepSkyBlue1"	, PALETTERGB (0, 191, 255) },
+  {"DeepSkyBlue2"	, PALETTERGB (0, 178, 238) },
+  {"DeepSkyBlue3"	, PALETTERGB (0, 154, 205) },
+  {"DeepSkyBlue4"	, PALETTERGB (0, 104, 139) },
+  {"SkyBlue1"		, PALETTERGB (135, 206, 255) },
+  {"SkyBlue2"		, PALETTERGB (126, 192, 238) },
+  {"SkyBlue3"		, PALETTERGB (108, 166, 205) },
+  {"SkyBlue4"		, PALETTERGB (74, 112, 139) },
+  {"LightSkyBlue1"	, PALETTERGB (176, 226, 255) },
+  {"LightSkyBlue2"	, PALETTERGB (164, 211, 238) },
+  {"LightSkyBlue3"	, PALETTERGB (141, 182, 205) },
+  {"LightSkyBlue4"	, PALETTERGB (96, 123, 139) },
+  {"SlateGray1"		, PALETTERGB (198, 226, 255) },
+  {"SlateGray2"		, PALETTERGB (185, 211, 238) },
+  {"SlateGray3"		, PALETTERGB (159, 182, 205) },
+  {"SlateGray4"		, PALETTERGB (108, 123, 139) },
+  {"LightSteelBlue1"	, PALETTERGB (202, 225, 255) },
+  {"LightSteelBlue2"	, PALETTERGB (188, 210, 238) },
+  {"LightSteelBlue3"	, PALETTERGB (162, 181, 205) },
+  {"LightSteelBlue4"	, PALETTERGB (110, 123, 139) },
+  {"LightBlue1"		, PALETTERGB (191, 239, 255) },
+  {"LightBlue2"		, PALETTERGB (178, 223, 238) },
+  {"LightBlue3"		, PALETTERGB (154, 192, 205) },
+  {"LightBlue4"		, PALETTERGB (104, 131, 139) },
+  {"LightCyan1"		, PALETTERGB (224, 255, 255) },
+  {"LightCyan2"		, PALETTERGB (209, 238, 238) },
+  {"LightCyan3"		, PALETTERGB (180, 205, 205) },
+  {"LightCyan4"		, PALETTERGB (122, 139, 139) },
+  {"PaleTurquoise1"	, PALETTERGB (187, 255, 255) },
+  {"PaleTurquoise2"	, PALETTERGB (174, 238, 238) },
+  {"PaleTurquoise3"	, PALETTERGB (150, 205, 205) },
+  {"PaleTurquoise4"	, PALETTERGB (102, 139, 139) },
+  {"CadetBlue1"		, PALETTERGB (152, 245, 255) },
+  {"CadetBlue2"		, PALETTERGB (144, 220, 240) },	/* Adjusted */
+  {"CadetBlue3"		, PALETTERGB (122, 197, 205) },
+  {"CadetBlue4"		, PALETTERGB (83, 134, 139) },
+  {"turquoise1"		, PALETTERGB (0, 245, 255) },
+  {"turquoise2"		, PALETTERGB (0, 229, 238) },
+  {"turquoise3"		, PALETTERGB (0, 197, 205) },
+  {"turquoise4"		, PALETTERGB (0, 134, 139) },
+  {"cyan1"		, PALETTERGB (0, 255, 255) },
+  {"cyan2"		, PALETTERGB (0, 238, 238) },
+  {"cyan3"		, PALETTERGB (0, 205, 205) },
+  {"cyan4"		, PALETTERGB (0, 139, 139) },
+  {"DarkSlateGray1"	, PALETTERGB (151, 255, 255) },
+  {"DarkSlateGray2"	, PALETTERGB (141, 238, 238) },
+  {"DarkSlateGray3"	, PALETTERGB (121, 205, 205) },
+  {"DarkSlateGray4"	, PALETTERGB (82, 139, 139) },
+  {"aquamarine1"	, PALETTERGB (127, 255, 212) },
+  {"aquamarine2"	, PALETTERGB (118, 238, 198) },
+  {"aquamarine3"	, PALETTERGB (102, 205, 170) },
+  {"aquamarine4"	, PALETTERGB (69, 139, 116) },
+  {"DarkSeaGreen1"	, PALETTERGB (193, 255, 193) },
+  {"DarkSeaGreen2"	, PALETTERGB (180, 238, 180) },
+  {"DarkSeaGreen3"	, PALETTERGB (155, 205, 155) },
+  {"DarkSeaGreen4"	, PALETTERGB (105, 139, 105) },
+  {"SeaGreen1"		, PALETTERGB (84, 255, 159) },
+  {"SeaGreen2"		, PALETTERGB (78, 238, 148) },
+  {"SeaGreen3"		, PALETTERGB (67, 205, 128) },
+  {"SeaGreen4"		, PALETTERGB (46, 139, 87) },
+  {"PaleGreen1"		, PALETTERGB (154, 255, 154) },
+  {"PaleGreen2"		, PALETTERGB (144, 238, 144) },
+  {"PaleGreen3"		, PALETTERGB (124, 205, 124) },
+  {"PaleGreen4"		, PALETTERGB (84, 139, 84) },
+  {"SpringGreen1"	, PALETTERGB (0, 255, 127) },
+  {"SpringGreen2"	, PALETTERGB (0, 238, 118) },
+  {"SpringGreen3"	, PALETTERGB (0, 205, 102) },
+  {"SpringGreen4"	, PALETTERGB (0, 139, 69) },
+  {"green1"		, PALETTERGB (0, 255, 0) },
+  {"green2"		, PALETTERGB (0, 238, 0) },
+  {"green3"		, PALETTERGB (0, 205, 0) },
+  {"green4"		, PALETTERGB (0, 139, 0) },
+  {"chartreuse1"	, PALETTERGB (127, 255, 0) },
+  {"chartreuse2"	, PALETTERGB (118, 238, 0) },
+  {"chartreuse3"	, PALETTERGB (102, 205, 0) },
+  {"chartreuse4"	, PALETTERGB (69, 139, 0) },
+  {"OliveDrab1"		, PALETTERGB (192, 255, 62) },
+  {"OliveDrab2"		, PALETTERGB (179, 238, 58) },
+  {"OliveDrab3"		, PALETTERGB (154, 205, 50) },
+  {"OliveDrab4"		, PALETTERGB (105, 139, 34) },
+  {"DarkOliveGreen1"	, PALETTERGB (202, 255, 112) },
+  {"DarkOliveGreen2"	, PALETTERGB (188, 238, 104) },
+  {"DarkOliveGreen3"	, PALETTERGB (162, 205, 90) },
+  {"DarkOliveGreen4"	, PALETTERGB (110, 139, 61) },
+  {"khaki1"		, PALETTERGB (255, 246, 143) },
+  {"khaki2"		, PALETTERGB (238, 230, 133) },
+  {"khaki3"		, PALETTERGB (205, 198, 115) },
+  {"khaki4"		, PALETTERGB (139, 134, 78) },
+  {"LightGoldenrod1"	, PALETTERGB (255, 236, 139) },
+  {"LightGoldenrod2"	, PALETTERGB (238, 220, 130) },
+  {"LightGoldenrod3"	, PALETTERGB (205, 190, 112) },
+  {"LightGoldenrod4"	, PALETTERGB (139, 129, 76) },
+  {"LightYellow1"	, PALETTERGB (255, 255, 224) },
+  {"LightYellow2"	, PALETTERGB (238, 238, 209) },
+  {"LightYellow3"	, PALETTERGB (205, 205, 180) },
+  {"LightYellow4"	, PALETTERGB (139, 139, 122) },
+  {"yellow1"		, PALETTERGB (255, 255, 0) },
+  {"yellow2"		, PALETTERGB (238, 238, 0) },
+  {"yellow3"		, PALETTERGB (205, 205, 0) },
+  {"yellow4"		, PALETTERGB (139, 139, 0) },
+  {"gold1"		, PALETTERGB (255, 215, 0) },
+  {"gold2"		, PALETTERGB (238, 201, 0) },
+  {"gold3"		, PALETTERGB (205, 173, 0) },
+  {"gold4"		, PALETTERGB (139, 117, 0) },
+  {"goldenrod1"		, PALETTERGB (255, 193, 37) },
+  {"goldenrod2"		, PALETTERGB (238, 180, 34) },
+  {"goldenrod3"		, PALETTERGB (205, 155, 29) },
+  {"goldenrod4"		, PALETTERGB (139, 105, 20) },
+  {"DarkGoldenrod1"	, PALETTERGB (255, 185, 15) },
+  {"DarkGoldenrod2"	, PALETTERGB (238, 173, 14) },
+  {"DarkGoldenrod3"	, PALETTERGB (205, 149, 12) },
+  {"DarkGoldenrod4"	, PALETTERGB (139, 101, 8) },
+  {"RosyBrown1"		, PALETTERGB (255, 193, 193) },
+  {"RosyBrown2"		, PALETTERGB (238, 180, 180) },
+  {"RosyBrown3"		, PALETTERGB (205, 155, 155) },
+  {"RosyBrown4"		, PALETTERGB (139, 105, 105) },
+  {"IndianRed1"		, PALETTERGB (255, 106, 106) },
+  {"IndianRed2"		, PALETTERGB (238, 99, 99) },
+  {"IndianRed3"		, PALETTERGB (205, 85, 85) },
+  {"IndianRed4"		, PALETTERGB (139, 58, 58) },
+  {"sienna1"		, PALETTERGB (255, 130, 71) },
+  {"sienna2"		, PALETTERGB (238, 121, 66) },
+  {"sienna3"		, PALETTERGB (205, 104, 57) },
+  {"sienna4"		, PALETTERGB (139, 71, 38) },
+  {"burlywood1"		, PALETTERGB (255, 211, 155) },
+  {"burlywood2"		, PALETTERGB (238, 197, 145) },
+  {"burlywood3"		, PALETTERGB (205, 170, 125) },
+  {"burlywood4"		, PALETTERGB (139, 115, 85) },
+  {"wheat1"		, PALETTERGB (255, 231, 186) },
+  {"wheat2"		, PALETTERGB (238, 216, 174) },
+  {"wheat3"		, PALETTERGB (205, 186, 150) },
+  {"wheat4"		, PALETTERGB (139, 126, 102) },
+  {"tan1"		, PALETTERGB (255, 165, 79) },
+  {"tan2"		, PALETTERGB (238, 154, 73) },
+  {"tan3"		, PALETTERGB (205, 133, 63) },
+  {"tan4"		, PALETTERGB (139, 90, 43) },
+  {"chocolate1"		, PALETTERGB (255, 127, 36) },
+  {"chocolate2"		, PALETTERGB (238, 118, 33) },
+  {"chocolate3"		, PALETTERGB (205, 102, 29) },
+  {"chocolate4"		, PALETTERGB (139, 69, 19) },
+  {"firebrick1"		, PALETTERGB (255, 48, 48) },
+  {"firebrick2"		, PALETTERGB (238, 44, 44) },
+  {"firebrick3"		, PALETTERGB (205, 38, 38) },
+  {"firebrick4"		, PALETTERGB (139, 26, 26) },
+  {"brown1"		, PALETTERGB (255, 64, 64) },
+  {"brown2"		, PALETTERGB (238, 59, 59) },
+  {"brown3"		, PALETTERGB (205, 51, 51) },
+  {"brown4"		, PALETTERGB (139, 35, 35) },
+  {"salmon1"		, PALETTERGB (255, 140, 105) },
+  {"salmon2"		, PALETTERGB (238, 130, 98) },
+  {"salmon3"		, PALETTERGB (205, 112, 84) },
+  {"salmon4"		, PALETTERGB (139, 76, 57) },
+  {"LightSalmon1"	, PALETTERGB (255, 160, 122) },
+  {"LightSalmon2"	, PALETTERGB (238, 149, 114) },
+  {"LightSalmon3"	, PALETTERGB (205, 129, 98) },
+  {"LightSalmon4"	, PALETTERGB (139, 87, 66) },
+  {"orange1"		, PALETTERGB (255, 165, 0) },
+  {"orange2"		, PALETTERGB (238, 154, 0) },
+  {"orange3"		, PALETTERGB (205, 133, 0) },
+  {"orange4"		, PALETTERGB (139, 90, 0) },
+  {"DarkOrange1"	, PALETTERGB (255, 127, 0) },
+  {"DarkOrange2"	, PALETTERGB (238, 118, 0) },
+  {"DarkOrange3"	, PALETTERGB (205, 102, 0) },
+  {"DarkOrange4"	, PALETTERGB (139, 69, 0) },
+  {"coral1"		, PALETTERGB (255, 114, 86) },
+  {"coral2"		, PALETTERGB (238, 106, 80) },
+  {"coral3"		, PALETTERGB (205, 91, 69) },
+  {"coral4"		, PALETTERGB (139, 62, 47) },
+  {"tomato1"		, PALETTERGB (255, 99, 71) },
+  {"tomato2"		, PALETTERGB (238, 92, 66) },
+  {"tomato3"		, PALETTERGB (205, 79, 57) },
+  {"tomato4"		, PALETTERGB (139, 54, 38) },
+  {"OrangeRed1"		, PALETTERGB (255, 69, 0) },
+  {"OrangeRed2"		, PALETTERGB (238, 64, 0) },
+  {"OrangeRed3"		, PALETTERGB (205, 55, 0) },
+  {"OrangeRed4"		, PALETTERGB (139, 37, 0) },
+  {"red1"		, PALETTERGB (255, 0, 0) },
+  {"red2"		, PALETTERGB (238, 0, 0) },
+  {"red3"		, PALETTERGB (205, 0, 0) },
+  {"red4"		, PALETTERGB (139, 0, 0) },
+  {"DeepPink1"		, PALETTERGB (255, 20, 147) },
+  {"DeepPink2"		, PALETTERGB (238, 18, 137) },
+  {"DeepPink3"		, PALETTERGB (205, 16, 118) },
+  {"DeepPink4"		, PALETTERGB (139, 10, 80) },
+  {"HotPink1"		, PALETTERGB (255, 110, 180) },
+  {"HotPink2"		, PALETTERGB (238, 106, 167) },
+  {"HotPink3"		, PALETTERGB (205, 96, 144) },
+  {"HotPink4"		, PALETTERGB (139, 58, 98) },
+  {"pink1"		, PALETTERGB (255, 181, 197) },
+  {"pink2"		, PALETTERGB (238, 169, 184) },
+  {"pink3"		, PALETTERGB (205, 145, 158) },
+  {"pink4"		, PALETTERGB (139, 99, 108) },
+  {"LightPink1"		, PALETTERGB (255, 174, 185) },
+  {"LightPink2"		, PALETTERGB (238, 162, 173) },
+  {"LightPink3"		, PALETTERGB (205, 140, 149) },
+  {"LightPink4"		, PALETTERGB (139, 95, 101) },
+  {"PaleVioletRed1"	, PALETTERGB (255, 130, 171) },
+  {"PaleVioletRed2"	, PALETTERGB (238, 121, 159) },
+  {"PaleVioletRed3"	, PALETTERGB (205, 104, 137) },
+  {"PaleVioletRed4"	, PALETTERGB (139, 71, 93) },
+  {"maroon1"		, PALETTERGB (255, 52, 179) },
+  {"maroon2"		, PALETTERGB (238, 48, 167) },
+  {"maroon3"		, PALETTERGB (205, 41, 144) },
+  {"maroon4"		, PALETTERGB (139, 28, 98) },
+  {"VioletRed1"		, PALETTERGB (255, 62, 150) },
+  {"VioletRed2"		, PALETTERGB (238, 58, 140) },
+  {"VioletRed3"		, PALETTERGB (205, 50, 120) },
+  {"VioletRed4"		, PALETTERGB (139, 34, 82) },
+  {"magenta1"		, PALETTERGB (255, 0, 255) },
+  {"magenta2"		, PALETTERGB (238, 0, 238) },
+  {"magenta3"		, PALETTERGB (205, 0, 205) },
+  {"magenta4"		, PALETTERGB (139, 0, 139) },
+  {"orchid1"		, PALETTERGB (255, 131, 250) },
+  {"orchid2"		, PALETTERGB (238, 122, 233) },
+  {"orchid3"		, PALETTERGB (205, 105, 201) },
+  {"orchid4"		, PALETTERGB (139, 71, 137) },
+  {"plum1"		, PALETTERGB (255, 187, 255) },
+  {"plum2"		, PALETTERGB (238, 174, 238) },
+  {"plum3"		, PALETTERGB (205, 150, 205) },
+  {"plum4"		, PALETTERGB (139, 102, 139) },
+  {"MediumOrchid1"	, PALETTERGB (224, 102, 255) },
+  {"MediumOrchid2"	, PALETTERGB (209, 95, 238) },
+  {"MediumOrchid3"	, PALETTERGB (180, 82, 205) },
+  {"MediumOrchid4"	, PALETTERGB (122, 55, 139) },
+  {"DarkOrchid1"	, PALETTERGB (191, 62, 255) },
+  {"DarkOrchid2"	, PALETTERGB (178, 58, 238) },
+  {"DarkOrchid3"	, PALETTERGB (154, 50, 205) },
+  {"DarkOrchid4"	, PALETTERGB (104, 34, 139) },
+  {"purple1"		, PALETTERGB (155, 48, 255) },
+  {"purple2"		, PALETTERGB (145, 44, 238) },
+  {"purple3"		, PALETTERGB (125, 38, 205) },
+  {"purple4"		, PALETTERGB (85, 26, 139) },
+  {"MediumPurple1"	, PALETTERGB (171, 130, 255) },
+  {"MediumPurple2"	, PALETTERGB (159, 121, 238) },
+  {"MediumPurple3"	, PALETTERGB (137, 104, 205) },
+  {"MediumPurple4"	, PALETTERGB (93, 71, 139) },
+  {"thistle1"		, PALETTERGB (255, 225, 255) },
+  {"thistle2"		, PALETTERGB (238, 210, 238) },
+  {"thistle3"		, PALETTERGB (205, 181, 205) },
+  {"thistle4"		, PALETTERGB (139, 123, 139) },
+  {"gray0"		, PALETTERGB (0, 0, 0) },
+  {"grey0"		, PALETTERGB (0, 0, 0) },
+  {"gray1"		, PALETTERGB (3, 3, 3) },
+  {"grey1"		, PALETTERGB (3, 3, 3) },
+  {"gray2"		, PALETTERGB (5, 5, 5) },
+  {"grey2"		, PALETTERGB (5, 5, 5) },
+  {"gray3"		, PALETTERGB (8, 8, 8) },
+  {"grey3"		, PALETTERGB (8, 8, 8) },
+  {"gray4"		, PALETTERGB (10, 10, 10) },
+  {"grey4"		, PALETTERGB (10, 10, 10) },
+  {"gray5"		, PALETTERGB (13, 13, 13) },
+  {"grey5"		, PALETTERGB (13, 13, 13) },
+  {"gray6"		, PALETTERGB (15, 15, 15) },
+  {"grey6"		, PALETTERGB (15, 15, 15) },
+  {"gray7"		, PALETTERGB (18, 18, 18) },
+  {"grey7"		, PALETTERGB (18, 18, 18) },
+  {"gray8"		, PALETTERGB (20, 20, 20) },
+  {"grey8"		, PALETTERGB (20, 20, 20) },
+  {"gray9"		, PALETTERGB (23, 23, 23) },
+  {"grey9"		, PALETTERGB (23, 23, 23) },
+  {"gray10"		, PALETTERGB (26, 26, 26) },
+  {"grey10"		, PALETTERGB (26, 26, 26) },
+  {"gray11"		, PALETTERGB (28, 28, 28) },
+  {"grey11"		, PALETTERGB (28, 28, 28) },
+  {"gray12"		, PALETTERGB (31, 31, 31) },
+  {"grey12"		, PALETTERGB (31, 31, 31) },
+  {"gray13"		, PALETTERGB (33, 33, 33) },
+  {"grey13"		, PALETTERGB (33, 33, 33) },
+  {"gray14"		, PALETTERGB (36, 36, 36) },
+  {"grey14"		, PALETTERGB (36, 36, 36) },
+  {"gray15"		, PALETTERGB (38, 38, 38) },
+  {"grey15"		, PALETTERGB (38, 38, 38) },
+  {"gray16"		, PALETTERGB (41, 41, 41) },
+  {"grey16"		, PALETTERGB (41, 41, 41) },
+  {"gray17"		, PALETTERGB (43, 43, 43) },
+  {"grey17"		, PALETTERGB (43, 43, 43) },
+  {"gray18"		, PALETTERGB (46, 46, 46) },
+  {"grey18"		, PALETTERGB (46, 46, 46) },
+  {"gray19"		, PALETTERGB (48, 48, 48) },
+  {"grey19"		, PALETTERGB (48, 48, 48) },
+  {"gray20"		, PALETTERGB (51, 51, 51) },
+  {"grey20"		, PALETTERGB (51, 51, 51) },
+  {"gray21"		, PALETTERGB (54, 54, 54) },
+  {"grey21"		, PALETTERGB (54, 54, 54) },
+  {"gray22"		, PALETTERGB (56, 56, 56) },
+  {"grey22"		, PALETTERGB (56, 56, 56) },
+  {"gray23"		, PALETTERGB (59, 59, 59) },
+  {"grey23"		, PALETTERGB (59, 59, 59) },
+  {"gray24"		, PALETTERGB (61, 61, 61) },
+  {"grey24"		, PALETTERGB (61, 61, 61) },
+  {"gray25"		, PALETTERGB (64, 64, 64) },
+  {"grey25"		, PALETTERGB (64, 64, 64) },
+  {"gray26"		, PALETTERGB (66, 66, 66) },
+  {"grey26"		, PALETTERGB (66, 66, 66) },
+  {"gray27"		, PALETTERGB (69, 69, 69) },
+  {"grey27"		, PALETTERGB (69, 69, 69) },
+  {"gray28"		, PALETTERGB (71, 71, 71) },
+  {"grey28"		, PALETTERGB (71, 71, 71) },
+  {"gray29"		, PALETTERGB (74, 74, 74) },
+  {"grey29"		, PALETTERGB (74, 74, 74) },
+  {"gray30"		, PALETTERGB (77, 77, 77) },
+  {"grey30"		, PALETTERGB (77, 77, 77) },
+  {"gray31"		, PALETTERGB (79, 79, 79) },
+  {"grey31"		, PALETTERGB (79, 79, 79) },
+  {"gray32"		, PALETTERGB (82, 82, 82) },
+  {"grey32"		, PALETTERGB (82, 82, 82) },
+  {"gray33"		, PALETTERGB (84, 84, 84) },
+  {"grey33"		, PALETTERGB (84, 84, 84) },
+  {"gray34"		, PALETTERGB (87, 87, 87) },
+  {"grey34"		, PALETTERGB (87, 87, 87) },
+  {"gray35"		, PALETTERGB (89, 89, 89) },
+  {"grey35"		, PALETTERGB (89, 89, 89) },
+  {"gray36"		, PALETTERGB (92, 92, 92) },
+  {"grey36"		, PALETTERGB (92, 92, 92) },
+  {"gray37"		, PALETTERGB (94, 94, 94) },
+  {"grey37"		, PALETTERGB (94, 94, 94) },
+  {"gray38"		, PALETTERGB (97, 97, 97) },
+  {"grey38"		, PALETTERGB (97, 97, 97) },
+  {"gray39"		, PALETTERGB (99, 99, 99) },
+  {"grey39"		, PALETTERGB (99, 99, 99) },
+  {"gray40"		, PALETTERGB (102, 102, 102) },
+  {"grey40"		, PALETTERGB (102, 102, 102) },
+  {"gray41"		, PALETTERGB (105, 105, 105) },
+  {"grey41"		, PALETTERGB (105, 105, 105) },
+  {"gray42"		, PALETTERGB (107, 107, 107) },
+  {"grey42"		, PALETTERGB (107, 107, 107) },
+  {"gray43"		, PALETTERGB (110, 110, 110) },
+  {"grey43"		, PALETTERGB (110, 110, 110) },
+  {"gray44"		, PALETTERGB (112, 112, 112) },
+  {"grey44"		, PALETTERGB (112, 112, 112) },
+  {"gray45"		, PALETTERGB (115, 115, 115) },
+  {"grey45"		, PALETTERGB (115, 115, 115) },
+  {"gray46"		, PALETTERGB (117, 117, 117) },
+  {"grey46"		, PALETTERGB (117, 117, 117) },
+  {"gray47"		, PALETTERGB (120, 120, 120) },
+  {"grey47"		, PALETTERGB (120, 120, 120) },
+  {"gray48"		, PALETTERGB (122, 122, 122) },
+  {"grey48"		, PALETTERGB (122, 122, 122) },
+  {"gray49"		, PALETTERGB (125, 125, 125) },
+  {"grey49"		, PALETTERGB (125, 125, 125) },
+  {"gray50"		, PALETTERGB (128, 128, 128) },	/* Adjusted */
+  {"grey50"		, PALETTERGB (128, 128, 128) },	/* Adjusted */
+  {"gray51"		, PALETTERGB (130, 130, 130) },
+  {"grey51"		, PALETTERGB (130, 130, 130) },
+  {"gray52"		, PALETTERGB (133, 133, 133) },
+  {"grey52"		, PALETTERGB (133, 133, 133) },
+  {"gray53"		, PALETTERGB (135, 135, 135) },
+  {"grey53"		, PALETTERGB (135, 135, 135) },
+  {"gray54"		, PALETTERGB (138, 138, 138) },
+  {"grey54"		, PALETTERGB (138, 138, 138) },
+  {"gray55"		, PALETTERGB (140, 140, 140) },
+  {"grey55"		, PALETTERGB (140, 140, 140) },
+  {"gray56"		, PALETTERGB (143, 143, 143) },
+  {"grey56"		, PALETTERGB (143, 143, 143) },
+  {"gray57"		, PALETTERGB (145, 145, 145) },
+  {"grey57"		, PALETTERGB (145, 145, 145) },
+  {"gray58"		, PALETTERGB (148, 148, 148) },
+  {"grey58"		, PALETTERGB (148, 148, 148) },
+  {"gray59"		, PALETTERGB (150, 150, 150) },
+  {"grey59"		, PALETTERGB (150, 150, 150) },
+  {"gray60"		, PALETTERGB (153, 153, 153) },
+  {"grey60"		, PALETTERGB (153, 153, 153) },
+  {"gray61"		, PALETTERGB (156, 156, 156) },
+  {"grey61"		, PALETTERGB (156, 156, 156) },
+  {"gray62"		, PALETTERGB (158, 158, 158) },
+  {"grey62"		, PALETTERGB (158, 158, 158) },
+  {"gray63"		, PALETTERGB (161, 161, 161) },
+  {"grey63"		, PALETTERGB (161, 161, 161) },
+  {"gray64"		, PALETTERGB (163, 163, 163) },
+  {"grey64"		, PALETTERGB (163, 163, 163) },
+  {"gray65"		, PALETTERGB (166, 166, 166) },
+  {"grey65"		, PALETTERGB (166, 166, 166) },
+  {"gray66"		, PALETTERGB (168, 168, 168) },
+  {"grey66"		, PALETTERGB (168, 168, 168) },
+  {"gray67"		, PALETTERGB (171, 171, 171) },
+  {"grey67"		, PALETTERGB (171, 171, 171) },
+  {"gray68"		, PALETTERGB (173, 173, 173) },
+  {"grey68"		, PALETTERGB (173, 173, 173) },
+  {"gray69"		, PALETTERGB (176, 176, 176) },
+  {"grey69"		, PALETTERGB (176, 176, 176) },
+  {"gray70"		, PALETTERGB (179, 179, 179) },
+  {"grey70"		, PALETTERGB (179, 179, 179) },
+  {"gray71"		, PALETTERGB (181, 181, 181) },
+  {"grey71"		, PALETTERGB (181, 181, 181) },
+  {"gray72"		, PALETTERGB (184, 184, 184) },
+  {"grey72"		, PALETTERGB (184, 184, 184) },
+  {"gray73"		, PALETTERGB (186, 186, 186) },
+  {"grey73"		, PALETTERGB (186, 186, 186) },
+  {"gray74"		, PALETTERGB (189, 189, 189) },
+  {"grey74"		, PALETTERGB (189, 189, 189) },
+  {"gray75"		, PALETTERGB (192, 192, 192) },	/* Adjusted */
+  {"grey75"		, PALETTERGB (192, 192, 192) },	/* Adjusted */
+  {"gray76"		, PALETTERGB (194, 194, 194) },
+  {"grey76"		, PALETTERGB (194, 194, 194) },
+  {"gray77"		, PALETTERGB (196, 196, 196) },
+  {"grey77"		, PALETTERGB (196, 196, 196) },
+  {"gray78"		, PALETTERGB (199, 199, 199) },
+  {"grey78"		, PALETTERGB (199, 199, 199) },
+  {"gray79"		, PALETTERGB (201, 201, 201) },
+  {"grey79"		, PALETTERGB (201, 201, 201) },
+  {"gray80"		, PALETTERGB (204, 204, 204) },
+  {"grey80"		, PALETTERGB (204, 204, 204) },
+  {"gray81"		, PALETTERGB (207, 207, 207) },
+  {"grey81"		, PALETTERGB (207, 207, 207) },
+  {"gray82"		, PALETTERGB (209, 209, 209) },
+  {"grey82"		, PALETTERGB (209, 209, 209) },
+  {"gray83"		, PALETTERGB (212, 212, 212) },
+  {"grey83"		, PALETTERGB (212, 212, 212) },
+  {"gray84"		, PALETTERGB (214, 214, 214) },
+  {"grey84"		, PALETTERGB (214, 214, 214) },
+  {"gray85"		, PALETTERGB (217, 217, 217) },
+  {"grey85"		, PALETTERGB (217, 217, 217) },
+  {"gray86"		, PALETTERGB (219, 219, 219) },
+  {"grey86"		, PALETTERGB (219, 219, 219) },
+  {"gray87"		, PALETTERGB (222, 222, 222) },
+  {"grey87"		, PALETTERGB (222, 222, 222) },
+  {"gray88"		, PALETTERGB (224, 224, 224) },
+  {"grey88"		, PALETTERGB (224, 224, 224) },
+  {"gray89"		, PALETTERGB (227, 227, 227) },
+  {"grey89"		, PALETTERGB (227, 227, 227) },
+  {"gray90"		, PALETTERGB (229, 229, 229) },
+  {"grey90"		, PALETTERGB (229, 229, 229) },
+  {"gray91"		, PALETTERGB (232, 232, 232) },
+  {"grey91"		, PALETTERGB (232, 232, 232) },
+  {"gray92"		, PALETTERGB (235, 235, 235) },
+  {"grey92"		, PALETTERGB (235, 235, 235) },
+  {"gray93"		, PALETTERGB (237, 237, 237) },
+  {"grey93"		, PALETTERGB (237, 237, 237) },
+  {"gray94"		, PALETTERGB (240, 240, 240) },
+  {"grey94"		, PALETTERGB (240, 240, 240) },
+  {"gray95"		, PALETTERGB (242, 242, 242) },
+  {"grey95"		, PALETTERGB (242, 242, 242) },
+  {"gray96"		, PALETTERGB (245, 245, 245) },
+  {"grey96"		, PALETTERGB (245, 245, 245) },
+  {"gray97"		, PALETTERGB (247, 247, 247) },
+  {"grey97"		, PALETTERGB (247, 247, 247) },
+  {"gray98"		, PALETTERGB (250, 250, 250) },
+  {"grey98"		, PALETTERGB (250, 250, 250) },
+  {"gray99"		, PALETTERGB (252, 252, 252) },
+  {"grey99"		, PALETTERGB (252, 252, 252) },
+  {"gray100"		, PALETTERGB (255, 255, 255) },
+  {"grey100"		, PALETTERGB (255, 255, 255) },
+  {"DarkGrey"		, PALETTERGB (169, 169, 169) },
+  {"DarkGray"		, PALETTERGB (169, 169, 169) },
+  {"DarkBlue"		, PALETTERGB (0, 0, 128) },	/* Adjusted == Navy */
+  {"DarkCyan"		, PALETTERGB (0, 128, 128) },	/* Adjusted */
+  {"DarkMagenta"	, PALETTERGB (128, 0, 128) },	/* Adjusted */
+  {"DarkRed"		, PALETTERGB (128, 0, 0) },	/* Adjusted */
+  {"LightGreen"		, PALETTERGB (144, 238, 144) },
+  /* Added to match values in the default Windows palette: */
+  {"DarkYellow"		, PALETTERGB (128, 128, 0) },
+  {"PaleYellow"		, PALETTERGB (255, 255, 128) }
 };
 
 
 typedef struct fontmap_t 
 {
   const char *name;
-  const int value;
+  int value;
 } fontmap_t;
 
 /* Default weight first, preferred names listed before synonyms */
@@ -857,22 +866,39 @@
     }
   else if (*name)	/* Can't be an empty string */
     {
-      char *nospaces = alloca (strlen (name)+1);
-      char *c=nospaces;
+      char *nospaces = (char*) alloca (strlen (name)+1);
+      char *c = nospaces;
       while (*name)
 	if (*name != ' ')
-	  *(c++) = *(name++);
+	  *c++ = *name++;
 	else
 	  name++;
       *c = '\0';
 
-      for (i=0; i< countof (mswindows_X_color_map); i++)
+      for (i = 0; i < countof (mswindows_X_color_map); i++)
 	if (!stricmp (nospaces, mswindows_X_color_map[i].name))
 	  return (mswindows_X_color_map[i].colorref);
     }
   return (COLORREF) -1;
 }
 
+Lisp_Object
+mswindows_color_to_string (COLORREF color)
+{
+  int i;
+  char buf[8];
+  COLORREF pcolor = PALETTERGB (GetRValue (color), GetGValue (color),
+				GetBValue (color));
+
+  for (i=0; i < countof (mswindows_X_color_map); i++)
+    if (pcolor == (mswindows_X_color_map[i].colorref))
+      return  build_string (mswindows_X_color_map[i].name);
+
+  sprintf (buf, "#%02X%02X%02X",
+	   GetRValue (color), GetGValue (color), GetBValue (color));
+  return build_string (buf);
+}
+
 /*
  * Returns non-zero if the two supplied font patterns match.
  * If they match and fontname is not NULL, copies the logical OR of the
@@ -1428,7 +1454,7 @@
   if (hfont2 != MSWINDOWS_BAD_HFONT)
     hfont = hfont2;
 
-  hfont2 = SelectObject(hdc, hfont);
+  hfont2 = (HFONT) SelectObject (hdc, hfont);
   if (!hfont2)
     {
       mswindows_finalize_font_instance (f);
@@ -1539,7 +1565,7 @@
   int nsep=0;
   char *name = (char *) XSTRING_DATA (f->name);
   char* ptr = name;
-  char* extname = alloca (strlen (name) + 19);
+  char* extname = (char*) alloca (strlen (name) + 19);
   strcpy (extname, name);
 
   while ((ptr = strchr (ptr, ':')) != 0)
--- a/src/objects-msw.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/objects-msw.h	Mon Aug 13 11:14:34 2007 +0200
@@ -69,8 +69,10 @@
 /* If font creation during redisplay fails, then the following
    value is used to prevent future attempts to create this font.
    Redisplay uses the "main" font when encounters this value */
-#define MSWINDOWS_BAD_HFONT INVALID_HANDLE_VALUE
+#define MSWINDOWS_BAD_HFONT ((HFONT)INVALID_HANDLE_VALUE)
 
 HFONT mswindows_get_hfont (Lisp_Font_Instance* f, int under, int strike);
 
+Lisp_Object mswindows_color_to_string (COLORREF color);
+
 #endif /* INCLUDED_objects_msw_h_ */
--- a/src/objects.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/objects.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1009,6 +1009,9 @@
 void
 syms_of_objects (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (color_instance);
+  INIT_LRECORD_IMPLEMENTATION (font_instance);
+
   DEFSUBR (Fcolor_specifier_p);
   DEFSUBR (Ffont_specifier_p);
   DEFSUBR (Fface_boolean_specifier_p);
--- a/src/opaque.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/opaque.c	Mon Aug 13 11:14:34 2007 +0200
@@ -173,5 +173,8 @@
 void
 init_opaque_once_early (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (opaque);
+  INIT_LRECORD_IMPLEMENTATION (opaque_ptr);
+
   reinit_opaque_once_early ();
 }
--- a/src/process-nt.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/process-nt.c	Mon Aug 13 11:14:34 2007 +0200
@@ -581,7 +581,7 @@
     new_space++;
     
     /* Allocate space and copy variables into it */
-    penv = proc_env = alloca(new_space);
+    penv = proc_env = (char*) alloca(new_space);
     for (i = 0; i < new_length; i++)
       {
  	strcpy(penv, env[i]);
--- a/src/process.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/process.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1990,6 +1990,8 @@
 void
 syms_of_process (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (process);
+
   defsymbol (&Qprocessp, "processp");
   defsymbol (&Qprocess_live_p, "process-live-p");
   defsymbol (&Qrun, "run");
--- a/src/ralloc.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/ralloc.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1726,7 +1726,7 @@
   addr_chain = (ADDRESS_CHAIN) UNDERLYING_MALLOC( sizeof( ADDRESS_BLOCK ));
   addr_chain->next = 0;		/* Last block in chain */
   addr_chain->sz = 0x0c000000;	/* Size */
-  addr_chain->addr = (POINTER) (0x04000000 | DATA_SEG_BITS);
+  addr_chain->addr = (POINTER) (0x04000000);
   addr_chain->flag = empty;
 }
 
--- a/src/rangetab.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/rangetab.c	Mon Aug 13 11:14:34 2007 +0200
@@ -704,6 +704,8 @@
 void
 syms_of_rangetab (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (range_table);
+
   defsymbol (&Qrange_tablep, "range-table-p");
   defsymbol (&Qrange_table, "range-table");
 
--- a/src/realpath.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/realpath.c	Mon Aug 13 11:14:34 2007 +0200
@@ -28,13 +28,14 @@
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
+#include <limits.h>
+
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
-#ifdef _POSIX_VERSION
-#include <limits.h>			/* for PATH_MAX */
-#else
-#include <sys/param.h>			/* for MAXPATHLEN */
+
+#if defined (HAVE_SYS_PARAM_H)
+#include <sys/param.h>
 #endif
 
 #ifdef WINDOWSNT
@@ -74,7 +75,7 @@
 #endif
 
   /* Make a copy of the source path since we may need to modify it. */
-  strcpy(copy_path, path);
+  strcpy (copy_path, path);
   path = copy_path;
   max_path = copy_path + PATH_MAX - 2;
 #ifdef WINDOWSNT
@@ -153,21 +154,20 @@
 	      continue;
 	    }
 
-	  if (path[1] == '.')
+	  /* Handle ".." */
+	  if (path[1] == '.' &&
+	      (path[2] == '\0' || path[2] == '/'))
 	    {
-	      if (path[2] == '\0' || path[2] == '/')
-		{
-		  path += 2;
+	      path += 2;
 
-		  /* Ignore ".." at root. */
-		  if (new_path == resolved_path + 1)
-		    continue;
+	      /* Ignore ".." at root. */
+	      if (new_path == resolved_path + 1)
+		continue;
 
-		  /* Handle ".." by backing up. */
-		  while ((--new_path)[-1] != '/')
-		    ;
-		  continue;
-		}
+	      /* Handle ".." by backing up. */
+	      while ((--new_path)[-1] != '/')
+		;
+	      continue;
 	    }
 	}
 
@@ -185,7 +185,7 @@
 #ifdef S_IFLNK
       /* See if latest pathname component is a symlink. */
       *new_path = '\0';
-      n = readlink(resolved_path, link_path, PATH_MAX - 1);
+      n = readlink (resolved_path, link_path, PATH_MAX - 1);
 
       if (n < 0)
 	{
--- a/src/redisplay.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/redisplay.c	Mon Aug 13 11:14:34 2007 +0200
@@ -6027,7 +6027,7 @@
 	  && !f->faces_changed
 	  && !f->glyphs_changed
 	  && !f->subwindows_changed
-	  && !f->subwindows_state_changed
+	  /*	  && !f->subwindows_state_changed*/
 	  && !f->point_changed
 	  && !f->windows_structure_changed)
 	{
@@ -6049,7 +6049,7 @@
 	      && !f->faces_changed
 	      && !f->glyphs_changed
 	      && !f->subwindows_changed
-	      && !f->subwindows_state_changed
+	      /*	      && !f->subwindows_state_changed*/
 	      && !f->windows_structure_changed)
 	    {
 	      if (point_visible (w, pointm, CURRENT_DISP)
@@ -6108,7 +6108,7 @@
 	   && !f->faces_changed
 	   && !f->glyphs_changed
 	   && !f->subwindows_changed
-	   && !f->subwindows_state_changed
+	   /*	   && !f->subwindows_state_changed*/
 	   && !f->windows_structure_changed
 	   && !f->frame_changed
 	   && !truncation_changed
@@ -6363,8 +6363,15 @@
     }
   else
     mark_subwindow_cachels_as_not_updated (f);
+
   /* We can now update the gutters, safe in the knowledge that our
      efforts won't get undone. */
+
+  /* #### This can call lisp, it may be that if the subwindow cachels
+     have been reset there are no remaining references to the
+     displayed glyphs and so they get garbage collected. We should
+     consider putting this call inside the critical redisplay
+     section. */
   update_frame_gutters (f);
 
   hold_frame_size_changes ();
@@ -7047,7 +7054,9 @@
     }
 }
 
-static void
+/* See the comment in image_instantiate_cache_result as to why marking
+   the glyph will also mark the image_instance. */
+void
 mark_redisplay_structs (display_line_dynarr *dla)
 {
   display_line *dl = Dynarr_atp (dla, 0);
@@ -7107,6 +7116,7 @@
       struct frame *f = XFRAME (XCAR (frmcons));
       update_frame_window_mirror (f);
       mark_window_mirror (f->root_mirror);
+      mark_gutters (f);
     }
 }
 
--- a/src/redisplay.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/redisplay.h	Mon Aug 13 11:14:34 2007 +0200
@@ -696,6 +696,7 @@
 void redisplay_echo_area (void);
 void free_display_structs (struct window_mirror *mir);
 void free_display_lines (display_line_dynarr *dla);
+void mark_redisplay_structs (display_line_dynarr *dla);
 void generate_displayable_area (struct window *w, Lisp_Object disp_string,
 				int xpos, int ypos, int width, int height,
 				display_line_dynarr* dl,
--- a/src/s/cygwin32.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/s/cygwin32.h	Mon Aug 13 11:14:34 2007 +0200
@@ -187,19 +187,6 @@
 
 #define NO_ARG_ARRAY
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#define WORD_MACHINE
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the 24-bit bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
-
 /* Data type of load average, as read out of kmem.  */
 
 #define LOAD_AVE_TYPE long
@@ -218,10 +205,6 @@
 /* Text does precede data space, but this is never a safe assumption.  */
 #define VIRT_ADDR_VARIES
 
-/* set this if you have a new version of cygwin
-#define DATA_SEG_BITS 0x10000000
-*/
-
 /* If you are compiling with a non-C calling convention but need to
    declare vararg routines differently, put it here */
 #define _VARARGS_ __cdecl
--- a/src/s/mingw32.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/s/mingw32.h	Mon Aug 13 11:14:34 2007 +0200
@@ -85,18 +85,6 @@
 
 #define NO_ARG_ARRAY
 
-/* Define WORD_MACHINE if addresses and such have
- * to be corrected before they can be used as byte counts.  */
-
-#define WORD_MACHINE
-
-/* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
-   the 24-bit bit field into an int.  In other words, if bit fields
-   are always unsigned.
-
-   If you use NO_UNION_TYPE, this flag does not matter.  */
-
-#define EXPLICIT_SIGN_EXTEND
 /* System calls that are encapsulated */
 #define ENCAPSULATE_RENAME
 #define ENCAPSULATE_OPEN
@@ -121,10 +109,6 @@
 /* Text does precede data space, but this is never a safe assumption.  */
 #define VIRT_ADDR_VARIES
 
-/* set this if you have a new version of cygwin
-#define DATA_SEG_BITS 0x10000000
-*/
-
 /* If you are compiling with a non-C calling convention but need to
    declare vararg routines differently, put it here */
 #define _VARARGS_ __cdecl
--- a/src/s/windowsnt.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/s/windowsnt.h	Mon Aug 13 11:14:34 2007 +0200
@@ -304,3 +304,11 @@
   #define _WIN32_WINNT 0x0400
  #endif
 #endif
+
+/* MSVC 6.0 has a mechanism to declare functions which never return */
+#if (_MSC_VER >= 1200)
+#define DOESNT_RETURN __declspec(noreturn) void
+#define DECLARE_DOESNT_RETURN(decl) __declspec(noreturn) extern void decl
+#define DECLARE_DOESNT_RETURN_GCC_ATTRIBUTE_SYNTAX_SUCKS(decl,str,idx) \
+          __declspec(noreturn) extern void decl PRINTF_ARGS(str,idx)
+#endif /* MSVC 6.0 */
--- a/src/select-msw.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/select-msw.c	Mon Aug 13 11:14:34 2007 +0200
@@ -71,7 +71,7 @@
   do
     {
       /* copy next line or remaining bytes including '\0' */
-      next = memccpy (dst, src, '\n', rawsize);
+      next = (char*) memccpy (dst, src, '\n', rawsize);
       if (next)
 	{
 	  /* copied one line ending with '\n' */
@@ -141,7 +141,7 @@
       do
 	{
 	  /* copy next line or remaining bytes excluding '\0' */
-	  next = memccpy (dst, src, '\r', rawsize);
+	  next = (char*) memccpy (dst, src, '\r', rawsize);
 	  if (next)
 	    {
 	      /* copied one line ending with '\r' */
--- a/src/specifier.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/specifier.c	Mon Aug 13 11:14:34 2007 +0200
@@ -3114,6 +3114,8 @@
 void
 syms_of_specifier (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (specifier);
+
   defsymbol (&Qspecifierp, "specifierp");
 
   defsymbol (&Qconsole_type, "console-type");
--- a/src/symbols.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/symbols.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1008,7 +1008,7 @@
 
 DEFINE_LRECORD_IMPLEMENTATION ("symbol-value-forward",
 			       symbol_value_forward,
-			       this_one_is_unmarkable,
+			       0,
 			       print_symbol_value_magic, 0, 0, 0,
 			       symbol_value_forward_description,
 			       struct symbol_value_forward);
@@ -3133,14 +3133,14 @@
 #endif
 
 /* some losing systems can't have static vars at function scope... */
-static struct symbol_value_magic guts_of_unbound_marker =
+static const struct symbol_value_magic guts_of_unbound_marker =
 { /* struct symbol_value_magic */
   { /* struct lcrecord_header */
     { /* struct lrecord_header */
-      1, /* type - index into lrecord_implementations_table */
-      0, /* mark */
-      0, /* c_readonly */
-      0, /* lisp_readonly */
+      lrecord_type_symbol_value_forward, /* lrecord_type_index */
+      1, /* mark bit */
+      1, /* c_readonly bit */
+      1, /* lisp_readonly bit */
     },
     0, /* next */
     0, /* uid  */
@@ -3153,6 +3153,12 @@
 void
 init_symbols_once_early (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (symbol);
+  INIT_LRECORD_IMPLEMENTATION (symbol_value_forward);
+  INIT_LRECORD_IMPLEMENTATION (symbol_value_buffer_local);
+  INIT_LRECORD_IMPLEMENTATION (symbol_value_lisp_magic);
+  INIT_LRECORD_IMPLEMENTATION (symbol_value_varalias);
+
   reinit_symbols_once_early ();
 
   /* Bootstrapping problem: Qnil isn't set when make_string_nocopy is
@@ -3174,21 +3180,10 @@
   {
     /* Required to get around a GCC syntax error on certain
        architectures */
-    struct symbol_value_magic *tem = &guts_of_unbound_marker;
+    const struct symbol_value_magic *tem = &guts_of_unbound_marker;
 
     XSETSYMBOL_VALUE_MAGIC (Qunbound, tem);
   }
-  if ((const void *) XPNTR (Qunbound) !=
-      (const void *)&guts_of_unbound_marker)
-    {
-      /* This might happen on DATA_SEG_BITS machines. */
-      /* abort (); */
-      /* Can't represent a pointer to constant C data using a Lisp_Object.
-	 So heap-allocate it. */
-      struct symbol_value_magic *urk = xnew (struct symbol_value_magic);
-      memcpy (urk, &guts_of_unbound_marker, sizeof (*urk));
-      XSETSYMBOL_VALUE_MAGIC (Qunbound, urk);
-    }
 
   XSYMBOL (Qnil)->function = Qunbound;
 
@@ -3428,19 +3423,7 @@
 void
 defvar_magic (const char *symbol_name, const struct symbol_value_forward *magic)
 {
-  Lisp_Object sym, kludge;
-
-  /* Check that `magic' points somewhere we can represent as a Lisp pointer */
-  XSETOBJ (kludge, Lisp_Type_Record, magic);
-  if ((void *)magic != (void*) XPNTR (kludge))
-    {
-      /* This might happen on DATA_SEG_BITS machines. */
-      /* abort (); */
-      /* Copy it to somewhere which is representable. */
-      struct symbol_value_forward *p = xnew (struct symbol_value_forward);
-      memcpy (p, magic, sizeof *magic);
-      magic = p;
-    }
+  Lisp_Object sym;
 
 #if defined(HAVE_SHLIB)
   /*
--- a/src/symeval.h	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/symeval.h	Mon Aug 13 11:14:34 2007 +0200
@@ -75,10 +75,9 @@
   void *value;
   enum symbol_value_type type;
 };
-#define SYMBOL_VALUE_MAGIC_P(x)				\
-  (LRECORDP (x)						\
-   && (XRECORD_LHEADER_IMPLEMENTATION (x)->printer	\
-       == print_symbol_value_magic))
+#define SYMBOL_VALUE_MAGIC_P(x)						\
+(LRECORDP (x) &&							\
+ XRECORD_LHEADER (x)->type <= lrecord_type_max_symbol_value_magic)
 #define XSYMBOL_VALUE_MAGIC_TYPE(v) \
 	(((struct symbol_value_magic *) XPNTR (v))->type)
 #define XSETSYMBOL_VALUE_MAGIC(s, p) XSETOBJ (s, Lisp_Type_Record, p)
@@ -296,15 +295,15 @@
 void defvar_magic (const char *symbol_name, const struct symbol_value_forward *magic);
 
 #define DEFVAR_SYMVAL_FWD(lname, c_location, forward_type, magicfun) do {	\
-  static CONST_IF_NOT_DEBUG struct symbol_value_forward I_hate_C =		\
+  static const struct symbol_value_forward I_hate_C =				\
   { /* struct symbol_value_forward */						\
     { /* struct symbol_value_magic */						\
       { /* struct lcrecord_header */						\
 	{ /* struct lrecord_header */						\
-	  1, /* type - index into lrecord_implementations_table */		\
-	  0, /* mark bit */							\
-	  0, /* c_readonly bit */						\
-	  0  /* lisp_readonly bit */						\
+	  lrecord_type_symbol_value_forward, /* lrecord_type_index */		\
+	  1, /* mark bit */							\
+	  1, /* c_readonly bit */						\
+	  1  /* lisp_readonly bit */						\
 	},									\
 	0, /* next */								\
 	0, /* uid  */								\
--- a/src/sysdep.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/sysdep.c	Mon Aug 13 11:14:34 2007 +0200
@@ -699,7 +699,7 @@
 
 #ifdef WINDOWSNT
       /* Waits for process completion */
-      pid = _spawnlp (_P_WAIT, sh, sh, NULL);
+      pid = (HANDLE) _spawnlp (_P_WAIT, sh, sh, NULL);
       if (pid == NULL)
         write (1, "Can't execute subshell", 22);
 
@@ -2653,6 +2653,8 @@
   mode = va_arg (ap, int);
   va_end (ap);
 
+  PATHNAME_CONVERT_OUT (path);
+
 #ifdef WINDOWSNT
   /* Make all handles non-inheritable */
   oflag |= _O_NOINHERIT;
--- a/src/toolbar-msw.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/toolbar-msw.c	Mon Aug 13 11:14:34 2007 +0200
@@ -573,9 +573,10 @@
 mswindows_free_frame_toolbars (struct frame *f)
 {
   HWND twnd=NULL;
-#define DELETE_TOOLBAR(pos) \
-  mswindows_clear_toolbar(f, 0, pos); \
-  if ((twnd=GetDlgItem(FRAME_MSWINDOWS_HANDLE(f), TOOLBAR_ID_BIAS + pos))) \
+#define DELETE_TOOLBAR(pos)				\
+  mswindows_clear_toolbar(f, pos, 0);			\
+  if ((twnd=GetDlgItem(FRAME_MSWINDOWS_HANDLE(f),	\
+		       TOOLBAR_ID_BIAS + pos)))		\
       DestroyWindow(twnd)
 
   DELETE_TOOLBAR(TOP_TOOLBAR);
--- a/src/toolbar.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/toolbar.c	Mon Aug 13 11:14:34 2007 +0200
@@ -722,10 +722,10 @@
 static void
 compute_frame_toolbars_data (struct frame *f)
 {
-  set_frame_toolbar (f, TOP_TOOLBAR);			 
-  set_frame_toolbar (f, BOTTOM_TOOLBAR);			 
-  set_frame_toolbar (f, LEFT_TOOLBAR);			 
-  set_frame_toolbar (f, RIGHT_TOOLBAR);			 
+  set_frame_toolbar (f, TOP_TOOLBAR);
+  set_frame_toolbar (f, BOTTOM_TOOLBAR);
+  set_frame_toolbar (f, LEFT_TOOLBAR);
+  set_frame_toolbar (f, RIGHT_TOOLBAR);
 }
 
 void
@@ -737,7 +737,7 @@
       && (f->toolbar_changed || f->frame_changed || f->clear))
     {
       int pos;
-      
+
       /* We're not officially "in redisplay", so we still have a
 	 chance to re-layout toolbars and windows. This is done here,
 	 because toolbar is the only thing which currently might
@@ -1272,6 +1272,8 @@
 void
 syms_of_toolbar (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (toolbar_button);
+
   defsymbol (&Qtoolbar_buttonp, "toolbar-button-p");
   defsymbol (&Q2D, "2D");
   defsymbol (&Q3D, "3D");
@@ -1633,7 +1635,7 @@
   fb = Fcons (Fcons (list1 (Qx), make_int (DEFAULT_TOOLBAR_HEIGHT)), fb);
 #endif
 #ifdef HAVE_MS_WINDOWS
-  fb = Fcons (Fcons (list1 (Qmswindows), 
+  fb = Fcons (Fcons (list1 (Qmswindows),
 		     make_int (MSWINDOWS_DEFAULT_TOOLBAR_HEIGHT)), fb);
 #endif
   if (!NILP (fb))
@@ -1647,7 +1649,7 @@
   fb = Fcons (Fcons (list1 (Qx), make_int (DEFAULT_TOOLBAR_WIDTH)), fb);
 #endif
 #ifdef HAVE_MS_WINDOWS
-  fb = Fcons (Fcons (list1 (Qmswindows), 
+  fb = Fcons (Fcons (list1 (Qmswindows),
 		     make_int (MSWINDOWS_DEFAULT_TOOLBAR_WIDTH)), fb);
 #endif
   if (!NILP (fb))
--- a/src/tooltalk.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/tooltalk.c	Mon Aug 13 11:14:34 2007 +0200
@@ -1301,6 +1301,9 @@
 void
 syms_of_tooltalk (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (tooltalk_message);
+  INIT_LRECORD_IMPLEMENTATION (tooltalk_pattern);
+
   defsymbol (&Qtooltalk_messagep, "tooltalk-message-p");
   DEFSUBR (Ftooltalk_message_p);
   defsymbol (&Qtooltalk_patternp, "tooltalk-pattern-p");
--- a/src/unexnt.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/unexnt.c	Mon Aug 13 11:14:34 2007 +0200
@@ -63,9 +63,10 @@
 
 /* From IMAGEHLP.H which is not installed by default by MSVC < 5 */
 /* The IMAGEHLP.DLL library is not distributed by default with Windows95 */
-PIMAGE_NT_HEADERS
-(__stdcall * pfnCheckSumMappedFile) (LPVOID BaseAddress, DWORD FileLength,
-				     LPDWORD HeaderSum, LPDWORD CheckSum);
+typedef PIMAGE_NT_HEADERS
+(__stdcall * pfnCheckSumMappedFile_t) (LPVOID BaseAddress, DWORD FileLength,
+				       LPDWORD HeaderSum, LPDWORD CheckSum);
+
 
 #if 0
 extern BOOL ctrl_c_handler (unsigned long type);
@@ -190,7 +191,7 @@
   char out_filename[MAX_PATH], in_filename[MAX_PATH];
   unsigned long size;
   char *ptr;
-  HANDLE hImagehelp;
+  HINSTANCE hImagehelp;
   
   /* Make sure that the input and output filenames have the
      ".exe" extension...patch them up if they don't.  */
@@ -245,21 +246,29 @@
   {
     PIMAGE_DOS_HEADER dos_header;
     PIMAGE_NT_HEADERS nt_header;
+
     DWORD  headersum;
     DWORD  checksum;
+    pfnCheckSumMappedFile_t pfnCheckSumMappedFile;
 
     dos_header = (PIMAGE_DOS_HEADER) out_file.file_base;
     nt_header = (PIMAGE_NT_HEADERS) ((char *) dos_header + dos_header->e_lfanew);
 
     nt_header->OptionalHeader.CheckSum = 0;
-//    nt_header->FileHeader.TimeDateStamp = time (NULL);
-//    dos_header->e_cp = size / 512;
-//    nt_header->OptionalHeader.SizeOfImage = size;
+#if 0
+    nt_header->FileHeader.TimeDateStamp = time (NULL);
+    dos_header->e_cp = size / 512;
+    nt_header->OptionalHeader.SizeOfImage = size;
+#endif
 
-    pfnCheckSumMappedFile = (void *) GetProcAddress (hImagehelp, "CheckSumMappedFile");
+    pfnCheckSumMappedFile =
+      (pfnCheckSumMappedFile_t) GetProcAddress (hImagehelp,
+						"CheckSumMappedFile");
     if (pfnCheckSumMappedFile)
       {
-//	nt_header->FileHeader.TimeDateStamp = time (NULL);
+#if 0
+	nt_header->FileHeader.TimeDateStamp = time (NULL);
+#endif
 	pfnCheckSumMappedFile (out_file.file_base,
 			       out_file.size,
 			       &headersum,
@@ -295,14 +304,14 @@
     return FALSE;
   
   file_base = MapViewOfFile (file_mapping, FILE_MAP_WRITE, 0, 0, size);
-  if (file_base == 0) 
+  if (file_base == NULL) 
     return FALSE;
   
   p_file->name = filename;
   p_file->size = size;
   p_file->file = file;
   p_file->file_mapping = file_mapping;
-  p_file->file_base = file_base;
+  p_file->file_base = (char*) file_base;
 
   return TRUE;
 }
@@ -486,7 +495,7 @@
   DUMP_MSG (("Dumping data section...\n"));
   DUMP_MSG (("\t0x%08x Address in process.\n", data_va));
   DUMP_MSG (("\t0x%08x Offset in output file.\n", 
-	     data_file - p_outfile->file_base));
+	     (char*)data_file - p_outfile->file_base));
   DUMP_MSG (("\t0x%08x Size in bytes.\n", size));
   memcpy (data_file, data_va, size);
 
--- a/src/vm-limit.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/vm-limit.c	Mon Aug 13 11:14:34 2007 +0200
@@ -124,7 +124,7 @@
   extern void (* __after_morecore_hook) (void);	/* From gmalloc.c */
 
   if (start)
-    data_space_start = start;
+    data_space_start = (char*) start;
   else
     data_space_start = start_of_data ();
 
--- a/src/window.c	Mon Aug 13 11:13:33 2007 +0200
+++ b/src/window.c	Mon Aug 13 11:14:34 2007 +0200
@@ -5773,6 +5773,9 @@
 void
 syms_of_window (void)
 {
+  INIT_LRECORD_IMPLEMENTATION (window);
+  INIT_LRECORD_IMPLEMENTATION (window_configuration);
+
   defsymbol (&Qwindowp, "windowp");
   defsymbol (&Qwindow_live_p, "window-live-p");
   defsymbol (&Qwindow_configurationp, "window-configuration-p");
--- a/tests/ChangeLog	Mon Aug 13 11:13:33 2007 +0200
+++ b/tests/ChangeLog	Mon Aug 13 11:14:34 2007 +0200
@@ -1,3 +1,11 @@
+2000-02-21  Martin Buchholz <martin@xemacs.org>
+
+	* XEmacs 21.2.30 is released.
+
+2000-02-17  Martin Buchholz  <martin@xemacs.org>
+
+	* automated/mule-tests.el: Added some fileio tests.
+
 2000-02-16  Martin Buchholz <martin@xemacs.org>
 
 	* XEmacs 21.2.29 is released.
--- a/tests/automated/mule-tests.el	Mon Aug 13 11:13:33 2007 +0200
+++ b/tests/automated/mule-tests.el	Mon Aug 13 11:14:34 2007 +0200
@@ -83,7 +83,9 @@
 ;;-----------------------------------------------------------------
 
 (when (featurep 'mule)
+  ;;---------------------------------------------------------------
   ;; Test fillarray
+  ;;---------------------------------------------------------------
   (macrolet
       ((fillarray-test
 	(charset1 charset2)
@@ -104,7 +106,9 @@
     (aset string 0 (make-char 'latin-iso8859-2 42))
     (Assert (eq (aref string 1) (make-char 'latin-iso8859-2 69))))
 
+  ;;---------------------------------------------------------------
   ;; Test coding system functions
+  ;;---------------------------------------------------------------
 
   ;; Create alias for coding system without subsidiaries
   (Assert (coding-system-p (find-coding-system 'binary)))
@@ -225,7 +229,9 @@
   (Assert (not (coding-system-alias-p 'nested-mule-tests-alias)))
   (Assert (not (coding-system-alias-p 'nested-mule-tests-alias-dos)))
 
+  ;;---------------------------------------------------------------
   ;; Test strings waxing and waning across the 8k BIG_STRING limit (see alloc.c)
+  ;;---------------------------------------------------------------
   (defun charset-char-string (charset)
     (let (lo hi string n)
       (if (= (charset-chars charset) 94)
@@ -282,4 +288,28 @@
     (loop for k in '(0 1 58 59) do
       (Assert (equal (substring string (* 94 k) (* 94 (1+ k))) ascii-string))))
 
+  ;;---------------------------------------------------------------
+  ;; Test file-system character conversion (and, en passant, file ops)
+  ;;---------------------------------------------------------------
+  (let* ((scaron (make-char 'latin-iso8859-2 57))
+	 (latin2-string (make-string 4 scaron))
+	 (prefix (concat (file-name-as-directory (temp-directory)) latin2-string))
+	 (name1 (make-temp-name prefix))
+	 (name2 (make-temp-name prefix))
+	 (file-name-coding-system 'iso-8859-2))
+    ;; This is how you suppress output from `message', called by `write-region'
+    (flet ((append-message (&rest args) ()))
+      (Assert (not (file-exists-p name1)))
+      (write-region (point-min) (point-max) name1)
+      (Assert (file-exists-p name1))
+      (when (fboundp 'make-symbolic-link)
+	(make-symbolic-link name1 name2)
+	(Assert (file-exists-p name2))
+	(Assert (equal (file-truename name2) name1))
+	(Assert (equal (file-truename name1) name1)))
+
+      (ignore-file-errors (delete-file name1) (delete-file name2))))
+
+  ;; Add many more file operation tests here...
+
   )
--- a/version.sh	Mon Aug 13 11:13:33 2007 +0200
+++ b/version.sh	Mon Aug 13 11:14:34 2007 +0200
@@ -2,8 +2,8 @@
 emacs_is_beta=t
 emacs_major_version=21
 emacs_minor_version=2
-emacs_beta_version=29
-xemacs_codename="Hestia"
+emacs_beta_version=30
+xemacs_codename="Hygeia"
 infodock_major_version=4
 infodock_minor_version=0
 infodock_build_version=8